我从 impnotes 32.3 看到 clisp 有一个 FFI 系统。我还在http://common-lisp.net/project/cffi/看到了一个 CFFI 项目。
有知识的人可以详细说明这两个系统之间的任何重要区别吗?哪个是“更好”/“更官方”/“推荐”/“更高效”/“更可靠”等?
非常感谢,R。
我从 impnotes 32.3 看到 clisp 有一个 FFI 系统。我还在http://common-lisp.net/project/cffi/看到了一个 CFFI 项目。
有知识的人可以详细说明这两个系统之间的任何重要区别吗?哪个是“更好”/“更官方”/“推荐”/“更高效”/“更可靠”等?
非常感谢,R。
CLISP FFI 是非常高级的,并且必然是特定于 CLISP 的(就像 SBCL FFI 是特定于 SBCL 的 &c)。
CFFI是一个比较底层的跨实现兼容层,它依赖于底层实现的FFI来工作。
因此,如果您对使用特定实现一无所知,那么您应该学习它自己的 FFI。
如果您想编写将在许多不同实现上运行的代码,请使用 CFFI。
PS。Low-level vs high-level 粗略的意思是,你需要写更多的字符才能在 CFFI 中比在 CLISP FFI 中达到相同的效果;结果也可能在 CLISP FFI 中运行得更快。