最近一直在关注 Fil-C 这个项目,Fil-C 是一个「内存安全」的 C/C++ 实现。其实现原理基于一个运行时无暂停 GC 以及指针能力(capabilities)机制,能实现在运行时捕获常见的数组越界等导致 UB 的内存错误。
Fil-C 与常规 C 实现(已有的二进制库等)不兼容,必须手动用 Fil-C 工具链编译软件源码,并使用其配套的 libc 实现才能使用。最近我看到 Fil-C 声称自己移植了 Emacs,而且还是用了自己的 GC 替换 Emacs GC
GNU Emacs 30.1. Replaced the elisp GC with calls to zgc_alloc. Disabled dumping, for now.
我不认为 Fil-C 编译的 Emacs 会比 IGC 版本或者原生版本更快,因为 Fil-C 的指针能力系统存在一定开销,使其通常比原生 C 程序慢。只是感觉这个东西有点喜感,请问有没有尝试过的坛友?