双周报Vol.69: C FFI 支持 borrow、新增.mbt.md测试与调试、WASM 后端支持extern type..

更新目录

· WASM 后端支持将 extern type T 存储到数组等数据结构中

· C FFI 支持 borrow

· type 和 trait支持了 #deprecated attribute

‍· FFI 的 extern 函数的声明添加了后端一致性的检查

· 新增了对 .mbt.md 的测试和调试支持

· moon info --package 支持模糊匹配包名

MoonBit 更新

1、 WASM 后端支持 extern type T 存储到数组等数据结构中

在 FFI 边界(导入/导出函数的签名)上,extern type T 依然会被编译成 WASM 的 externref 类型。2、 C FFI 支持 borrow现在,你可以通过在extern "c"的函数上方指定#borrow(args, ...) 来修改 C FFI 对参数的生命周期管理方式,其中args是 C FFI 的参数名字的一个子集。

默认情况下,C FFI 需要负责把参数释放掉,这意味着,绑定 C FFI 时,往往需要写一个辅助函数来释放掉参数:

kotlin 复制代码
fn open(path : Bytes, flags : Int, mode : Int) -> Int = "open_wrapper"
arduino 复制代码
int open_wrapper(moonbit_bytes_t path, int flags, int mode) {
  int rc = open(path, flags, mode);
  moonbit_decref(path)
  return rc;
}

使用borrow attribute,我们可以指示 MoonBit 对 C FFI 函数调用不生成引用计数指令,从而不用再写辅助函数,可以直接绑定 C 库中的函数:

kotlin 复制代码
#borrow(path)
fn open(path : Bytes, flags : Int, mode : Int) -> Int = "open"

由于 #borrow 标记,MoonBit 会自动在调用完 open 后释放掉 path3、type&trait支持#deprecated attribute我们下次发布将移除旧的 pragmas 机制,建议使用 attribute 替代:

csharp 复制代码
/// the @alert pragmas is deprecated
/// @alert deprecated "message"
fn f() -> Unit {...}

/// use attribute #deprecated instead
#deprecated("message")
fn f() -> Unit {...}

4、 FFI 的 extern 函数声明添加后端一致性检查例如下列函数会在非 Native 后端构建的时候报错。

kotlin 复制代码
extern "c" fn open(path : Bytes, flags : Int, mode : Int) -> Int = "open"

工具链更新

1、从本周开始,工具链的发布从周一改到周四。

2、修复了 test explorer 的 bug,并新增了对 .mbt.md 的测试和调试支持:

可通过开启以下设置来允许在 Markdown 文件中设置断点:

Settings > Debug: Allow Breakpoint Everywhere

3、moon info --package 支持模糊匹配包名。

相关推荐
狂师1 小时前
2026 性能测试工具大盘点:13 款主流压测工具,测试工程师必备!
程序员·测试·ab测试
程序员cxuan17 小时前
GPT-6 Astra 的提示词泄露了,里面居然藏着个保安?
人工智能·后端·程序员
一拳不是超人1 天前
一个没测暗色模式的 Bug,吃掉了我一半 谷歌扩展用户
前端·javascript·程序员
敲代码的嘎仔1 天前
28届后端开发-百人小厂面试题
java·后端·面试·程序员·秋招·实习·转正
爱勇宝1 天前
程序员都开始懂业务了,产品经理还剩下什么价值?
程序员·产品经理
程序员20071 天前
“这需求用 AI 也就十分钟吧?”——周五深夜十一点,我在工位给 Cursor 擦屁股
程序员
狂师1 天前
最近火爆出圈的,FDE 到底是个什么岗位?
人工智能·程序员·全栈
demo007x2 天前
让大模型活在你的鼠标旁:我用 Tauri 2 + Rust 打造了一款“反直觉”的 AI 全局划词效率神器
macos·程序员·llm
程序员海军2 天前
AI 越来越强,为什么打工人反而越来越累、越来越内耗了?
前端·程序员·aigc
badhope2 天前
同样写 AI,为什么有的文章 549 人看、有的只有 16 人看?——我用 40 篇掘金文章的真实数据复盘
程序员