我想在小型设备中使用像 NekoVM 这样的虚拟机,但要构建它,它需要 Boehm GC,但是该小型设备没有该 GC 的端口,所以我想知道是否有任何替代方案可以只用 C 代码完成吗?
Paulo Lopes
问问题
3712 次
3 回答
4
我会说您最好的选择是将 GC 移植到您的平台,其中有说明(libgc 移植说明)。
此外,应该可以换出 GC 实现(NekoVM FAQ),请参阅 vm/alloc.c 文件。
编辑:
希望有用的附加链接:(未经测试)
- Smieciuch 垃圾收集器
- libgcroots(基于 libgc 7,抽象架构相关位)
- 松鼠编程语言
于 2009-01-12T08:24:39.320 回答
3
也许你最好使用Lua,它有一个非常小但功能强大的虚拟机,内置了自己的垃圾收集器,并且可以在任何支持 ANSI 标准 C 的平台上运行。只需一点点努力,你甚至可以在其上构建 Lua缺少标准输入和标准输出的机器。我见过 Lua 在嵌入式设备上运行,该设备是一个小型 LCD 触摸屏,背面有一个嵌入式 CPU。Neko 是好作品,但我认为你会发现 Lua 一样令人满意。
于 2009-01-08T20:34:31.913 回答
3
我可以建议 TinyGC (tinygc.sf.net) - 针对小型设备的 BoehmGC 的独立轻量级实现。它与 BoehmGC v7+ 完全 API 兼容(甚至更多,二进制兼容),但只实现了 API 的一小部分(但足以用于类似 Java/GCJ 的内存管理),并且没有自动线程和静态数据根注册。然而,后者可能需要一些努力才能使 NekoVM 与它一起工作(即调用 GC_register_my_thread() 和 GC_add_roots())。
于 2009-12-20T16:59:25.420 回答