Elixir v1.18 发布:调用的类型检查、LSP 监听器、内置 JSON 等更多内容

  • Elixir v1.18 主要改进

    • 类型系统:在 Elixir 生态系统的两个主要工作(集合论类型和语言服务器)中取得进展,新增内置 JSON 支持和单元测试库功能。

      • 模式和返回类型的类型推断:正在进行将静态类型引入 Elixir 的研发工作,其类型系统是可靠、渐进且开发者友好的,可组合dynamic()与其他类型,v1.18 新增函数调用的类型检查、模式和返回类型的渐进推断,还增加了对元组和列表的支持以及几乎所有 Elixir 语言结构的类型检查,但不包括for-comprehensions、with和闭包。未来工作包括改进对地图、元组和闭包的类型检查,以及专注于完全的守卫类型推断。
    • 语言服务器监听器:引入编译器锁和监听器,解决语言服务器实现中重复编译的问题,改善编辑器工具和项目体验,如在 IEx 中实现自动重新加载。
    • 参数化测试和 ExUnit 组:ExUnit 支持参数化测试,可在不同参数下多次运行测试模块,提高编译和运行效率;还具备指定测试组的能力,使不同组的测试可并发运行,增加开发和 CI 中的机器资源利用灵活性。
    • mix format --migratemix format命令新增--migrate标志,可将 Elixir 中已弃用的结构转换为最新版本,但与也进行 AST 重写的宏结合使用时可能无效,此版本已执行的迁移包括规范化位串修饰符中的括号、将字符列表格式化为~csigils、将unless转换为否定的if等,未来将添加更多迁移。
  • 其他 notable 变化:包括PartitionSupervisor.resize!/2用于运行时调整主管的分区数量,Registry.lock/3用于简单的进程内键锁,PowerShell 版本的elixirelixirc脚本以改善 Windows 上的开发体验等。
阅读 7
0 条评论