我想知道Pharo 4支持哪些FFI接口和功能,推荐使用哪些接口(如果有的话),以及未来Pharo版本是否计划进行一些重大更改。
特别是我想知道哪种稳定的FFI回调机制可用,它的限制和局限是什么。
答案 0 :(得分:2)
抱歉这么久。
目前,在Pharo你有两种可能性(和三个包 - 项目 - 解决它们)。
在Pharo 4中开箱即用,你有NativeBoost-FFI,它使用ASMJIT作为后端来生成本机调用。这意味着超级快速调用,但没有那么快的回调(因为它使用了一些硬技巧来使VM正常回调)。 您可以在源代码周围找到它的示例,您可以专门查看NBBasicExamples类。
您还有FFI插件,它实现了更传统的方法。你必须打包处理这个:
所有这些都非常稳定,但我们会在不久的将来做一些改变:
我们将为NativeBoost-FFI添加后端以使用FFI插件。原因是我们难以维护当前版本,事实上我们可以找到更多愿意在C中工作的维护人员而不是ASM:)
此更改应向后兼容,以便您可以安全地使用NativeBoost。
希望此信息适合您。