Gleam v0.23 发布,Rust 编写的函数式编程语言


Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。

最近发布的 0.23 版本增加了新特性,以及其他优化。

  • 支持 Elixir

Gleam 在 Erlang 虚拟机上与各种其他优秀编程语言一起运行,因此开发团队希望利用通过这些语言编写的所有包。

以前使用 Gleam 构建工具的项目可能依赖于用 Gleam 或 Erlang 编写的包。从这个版本开始,还支持用 Elixir 编写的项目,让 Gleam 程序员可以访问几乎所有在 Erlang 生态的包管理器 Hex 上找到的软件包。

在 Gleam 中使用 Elixir 软件包的开发者体验与使用 Erlang 软件包相同。

# Add an Elixir package to the Gleam project
$ gleam add tzdata
// Import a function from the package
external fn tzdata_version() -> String =
"Elixir.Tzdata" "tzdata_version"

// Use it in Gleam
pub fn main() {
io.println(tzdata_version())
}
  • 针对软件包升级的优化

开发团队希望尽可能简单地使用其他人编写的代码,并且希望避免“依赖地狱”,因此构建工具的用户体验是 Gleam 的一个重要领域。

到目前为止,难题的一个缺失部分是升级项目所依赖的包版本——以前它在很大程度上是一个手动过程。

在此版本中,有一个新gleam update命令将使用 PubGrub 算法有效地解析最新的兼容版本的依赖项。

$ gleam update
# Tada, you're on the latest versions!
  • 优化文档

Gleam 为软件包生成文档并将 HTML 发布到 HexDocs,这是 Erlang 生态的文档站点。

在此版本中,生成的文档包括一个搜索栏,因此可以比以往更轻松地更快地找到函数、类型和模块。该搜索由Lunr JavaScript 库提供支持,因此支持模糊匹配以帮助解决拼写错误,或者不太记得所需要查询的名称。

详情查看发布公告。


相关文章

2022-09-06

Elixir v1.14 已发布。此版本为 Elixir 的调试体验和数据类型检查带来了许多改进。此外还添加了一个新的抽象,以方便进程的分区,称为PartitionSupervisor,以及优化编译时间和错误信息。 另外,Elixir v1.14 是支持 Erlang/OTP 23 的最后

2022-02-28

Rust 1.59.0 稳定版已正式发布,新版本最值得关注的特性是支持在代码中内联汇编 (Inline assembly),其他变化包括:引入解构式赋值、默认关闭增量编译,以及 Const 泛型参数支持设置默认值等。 内联汇编 (Inline assembly) 此项特

2022-09-20

Vitest v0.23.4 现已发布,它是一个基于 Vite 的原生快速单元测试框架。具体更新内容如下 特征 使用 vi.mock 时提供有用的信息  #2047 基准:仅模式 #2039 Bug修复 将 outputFile 移动到基准测试,允许 --reporter 进行基准测试

2022-07-26

多举办的 CppNorth 大会上宣布,正式开源谷歌内部打造的编程语言:Carbon,并称 Carbon 是 C++ 的继任者(目前处于实验性阶段)。 Chandler 列举了当今流行编程语言演进的一些例子,比如:Java 到 Kotlin、Objective-C 到 Swift、JavaScript

2022-08-20

原文由 Yury Selivanov(@1st1)和 Elvis Pranskevichus(@elprans)发布于 2022 年 7 月 28 日。 在 Hacker News 上查看 EdgeDB 2.0 的英文讨论,以及在 YouTube 上观看上线直播的回放。也可以在 Gitee Issues 上参与中文讨论,发布会视频也发在了 B 站

2022-09-20

很有意义的领域,GStreamer 的开发人员也一直对这种现代编程语言的使用很感兴趣。目前,相关的 GStreamer 合并请求已落地,以支持为 native builds 构建 Cargo-C recipes;这是将 Rust 编写的插件作为项目的官方二进制版本的一部分发

2022-08-19

Lux 0.7 已发布,这是一门函数式、具备静态类型的 Lisp 编程语言,支持在 Java 虚拟机、JavaScript、Python、Lua 和 Ruby 解释器上运行。 Lux 0.7 主要变化 新增 内联函数 支持将配置参数从构建描述 (build description) 传递给编译器 基

2022-09-21

称,“或者更好的方式是:不要再过度的去宣传推广一种编程语言。不同的工具适合不同的问题。Rust 很好,但它不是所有编程问题的解决方案”。 更有甚者提出了自己认为更好的 C/C++ 替代方案,“当 GCed 系统语言可以接

2022-05-20

Rust 1.61.0 已正式发布。此版本包含多项重要的语法变更,以及编辑器和标准库方面的改动。 语言特性 const fn 签名已引入通用 trait 边界 const fn 签名现已支持在参数中使用impl Trait并返回位置 支持在const fn创建、转换

2022-06-20

Tauri 1.0 已正式发布。 Tauri 是一个桌面 UI 框架,可让开发者使用每个平台的 Webview 技术栈为所有主要桌面操作系统构建应用程序,目前支持 Windows/macOS/Linux 等平台。开发者通过 Tauri 几乎可以使用任何编译为 HTML、JS 和 CSS 的前端

2022-09-15

的大方向大致为:正在进行的使 Rust 成为一种合适的系统编程语言的工作,以及在主线 Linux 内核中整合对 Rust 的支持。 领导"Rust for Linux"工作的 Miguel Ojeda 在会上介绍了 Linux 内核工作的最新状况;内容主要在于最新的补丁系列

2022-09-17

部分;但现在,他们宣布已将 Nginx 替换为其内部由 Rust 编写的 Pingora 软件,“我们已经建立了一个更快、更高效、更通用的内部代理,作为我们当前和未来产品的平台”。 根据介绍,该软件每天可处理超过一万亿个请求,并可

2022-03-18

lobal_asm) 以及 Csymbol-mangling-version=v0 flag。 添加了对用 Rust 编写的主机程序的支持。 现在,目标规范文件是根据内核配置,通过 Rust 脚本即时生成的,而不是有几个预定义的文件。生成文件的内容被简化了,对于 x86 来说,所有可

2022-02-24

这条推文评论了自己的看法,他完全同意此观点,还表示编程语言的编译器可以做得更好,因为目前在编译器上的投入还不够多。 对此,有网友提到了 Rust,并表示 Rust 极大程度地解决了编译器方面的问题。 马斯克回复