Weekly8 社区周报 2025/6/30 ~ 2025/7/13 [weekly/weekly8]
Weekly8 社区周报 2025/6/30 ~ 2025/7/13 [weekly/weekly8]
这里是 2025/6/30 ~ 2025/7/13 的社区周报,为双周周报。
MoonBit 官方开源了使用 MoonBit 编写的编译器前端 parser,基于 moonlex 与moonyacc。证明 MoonBit 当前的编译器前端已经完成了自举,也证明了 MoonBit 在符号计算相关领域的优势。 MoonBit 官方开源了异步基础设施 async,目前可以确保在 Linux/macOS 的 Native/LLVM 后端上正常运行。库的功能非常完善,支持结构化并发、优秀的错误传播和任务取消。未来将会支持比如 Windows 支持之类的更多功能。 MoonBit 官方开源了使用 WasmOfOCaml 编译的跨平台 MoonBit 编译器 moonc_wasm,采用 Wasm 文件发行,可以解决很多小众平台的 MoonBit 发行问题。 MoonBit 官方的 Pearls 系列文章更新了第三、四篇文章《MoonBit Pearls Vol.03:算法竞赛经典:背包问题》、《MoonBit Pearls Vol.04:用 MoonBit 探索协同式编程(上)》,分别讨论了 MoonBit 与动态规划和协同式编程的的话题。 MoonBit 官方在 Beta 阶段的双周报正式改为月报,7 月 15 日发布了一次月报,有以下内容: 1. 本周官方重要动态 [weekly/weekly8/official]
!expr
语法。对布尔表达式取反现在可以直接使用 !
符号,不一定要使用 not
函数。try .. catch .. else ..
语法中的 else
关键字被替换为 noraise
,原因是 try .. catch .. else ..
中的else
后是模式匹配而非代码块,和其他地方的 else
不一致。旧的写法将被废弃,编译器会提出警告。noraise
,一方面可以使类型签名中提供更清晰的文档信息,另一方可以用于防止在一些情况下编译器自动插入 raise
标记,比如:fn h(f: () -> Int raise) -> Int { ... }
fn init {
let _ = h(fn () { 42 }) // ok
let _ = h(fn () noraise { 42 }) // not ok
}
2. 本周社区新增优质项目 [weekly/weekly8/projects]
trait impl
,用于给 core 的开发者提供 review 支持。
3. 本周社区新增优质包 [weekly/weekly8/packages]
camelCase
、PascalCase
、snake_case
等等多种命名格式中转换。ArrayView[Byte]
形式读写的支持库 binaryPrimitives,该库受启发自 C# 语言的 System.Buffers.Binary.BinaryPrimitives
。目前的完成度较高。
4. 本周社区动态 [weekly/weekly8/community]