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-10-26

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。Gleam v0.24 现已发布,具体更新内容包括: In-project Elixir support Gleam 构建工具一直支持编译用Gleam或Erlang编写的模块,但现在它也支持Elixir模块。

2023-04-07

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最新发布的 0.28 包含以下变化: 改进语言服务器 (Language server) Gleam 0.21 引入了语言服务器,不过这个初始版本的功能有限。此后开发团队

2022-11-29

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最近发布的 0.25 版本引入了一项期待已久的新特性:use表达式(useexpressions)。 官方介绍称,use表达式是一种语法糖,它将所有后续表达式转换

2023-02-01

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最近发布的 0.26 版本引入了增量编译。该项特性改进了构建工具,仅在必要的情况下编译所需模块,而不是整个包,从而显著提升 Gleam 编译器

2023-03-07

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最新发布的 0.27 包含以下变化: 支持在use 表达式 (useexpressions)中使用模式 Gleam v0.25 引入了use表达式,该功能有助于避免 Gl

2023-03-27

BAT 是一个用 Rust 编写的命令行工具,目标是提供漂亮高级的语法高亮、与 Git 集成以显示文件的修改、成为(POSIX)cat 的直接替代品,并提供一个用户友好的命令行界面。 功能 实现了 S 和 -chop-long-lines 标志作为 -wrap=never 的

2023-04-24

日在社交网站发布招聘信息时,提到了他们团队对于各种编程语言的丰富使用经历。 接着他本人谈论了一些关于各种编程语言的感悟,其中包括 Golang、Rust、Java、Python,甚至提到了比较小众的 Vala。下面是对他发布内容的整理

2022-10-15

需要它”。 2、喜欢:Rust 是一门现代语言 现如今许多编程语言的设计都专注于在创建功能性语言,以引导开发人员编写更容易分析的软件,Rust 也是如此。许多开发人员喜欢 Rust 的 logical、functional syntax,它鼓励将代码结构化

2023-04-05

WebAssembly Slint 完全采用 Rust 实现,同时支持不同的编程语言,目前为 C++、JavaScript 和 Rust 提供了 API。 详情查看发布公告。

2022-09-06

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

2022-12-19

Rust 团队于近日发布了 Rust 1.66.0 新版本,1.66.0 稳定版中的主要更新内容如下: 对有字段的枚举进行显式判别 有整数表示的枚举现在可以使用显式判别,即使它们有字段。 #[repr(u8)] enum Foo { A(u8), B(i8), C(bool) = 42, } 以前,你

2023-11-15

万份开发工作机会,以了解市场以及最热门、薪酬最高的编程语言。值得注意的是,本项研究只关注了来自美国的职位。在总共 1000 万个开发工作岗位中,有 130 万个有工资。在这 130 万个职位中,有 23 万个职位属于编程语言类

2022-02-28

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

2023-02-24

经过一年多的开发,Ambient 终于发布了 0.1 版本,这是一款采用 Rust 构建的开源多人游戏引擎。 据介绍,Ambient 是一个用于构建高性能多人游戏和 3D 应用程序的 runtime,使用了 WebAssembly 和 WebGPU 技术,与任何编译为 WebAssembly 或在