Hasty Briefsbeta

双语

Gleam doesn't compile to Erlang source anymore

5 hours ago
  • Gleam v1.19.0 引入了一个新的代码生成器,它输出 Erlang 抽象形式而非源代码,从而提高了构建性能,在堆栈跟踪中提供了准确的行号,并增强了代码质量。
  • 新的生成器通过直接使用二进制格式消除了“转译器”标签,基准测试显示编译时间显著减少。
  • Gleam 选择不直接针对 BEAM 字节码,因为维护成本和资源限制,遵循了 Elixir 的方法。
  • JavaScript 编译得到了优化:模式匹配产生的更扁平决策树和短列表的直接列表构建,提升了性能。
  • TypeScript 声明现在包含重载,以在检查自定义类型变体时保留类型信息。
  • 构建工具支持得到改进:自动生成 .app 文件、--no-dev 标志和 stdout 输出选项,以便更容易地与 Mix 和 rebar3 集成。
  • 语言服务器获得了完整的标签支持(转到定义、查找引用、重命名),新的 format_source 函数允许通过 WebAssembly 在浏览器中进行代码格式化。
  • 错误消息针对常见错误如合并冲突标记、无效的记录更新语法和不存在的操作符进行了增强。
  • 该项目由社区支持,并呼吁赞助者以维持开发。