Common lisp ECL是否支持回调?

Common lisp ECL是否支持回调?,common-lisp,ecl,Common Lisp,Ecl,虽然这个问题听起来很琐碎,但在查阅了ECL文档、CFFI文档并求助于谷歌一段时间后,我仍然无法得出一个明确的答案。ECL文档没有提到回调语法,CFFI文档没有提到ECL中回调的任何实现限制,我无法将google提示的页面转换为逻辑页面。ECL在解释和编译模式下都支持回调。CFFI为您处理一切,这就是为什么没有特别提到ECL(为什么应该有?)。如果您关心实际实现,请查看ecl/src/lsp/ffi.lsp。FFI:DEFCALLBACK的签名为 (defmacro defcallback(nam

虽然这个问题听起来很琐碎,但在查阅了ECL文档、CFFI文档并求助于谷歌一段时间后,我仍然无法得出一个明确的答案。ECL文档没有提到回调语法,CFFI文档没有提到ECL中回调的任何实现限制,我无法将google提示的页面转换为逻辑页面。

ECL在解释和编译模式下都支持回调。CFFI为您处理一切,这就是为什么没有特别提到ECL(为什么应该有?)。如果您关心实际实现,请查看ecl/src/lsp/ffi.lsp。FFI:DEFCALLBACK的签名为 (defmacro defcallback(name ret type((arg name arg type)*)和body)
换句话说,它与DEF-FUNCTION或多或少采用相同的参数(类型语法相同,UFFI),但它明确地命名了每个参数(arg name),并用lisp提供要执行的代码。

得到开发人员的响应是令人鼓舞的:)我没有提到,但在评估CFFI:DEFCALLBACK时,我遇到了一个错误“CDECL不表示有效的调用约定。”因此,我开始检查一般情况下是否可以进行回调。我的安装或程序可能存在一些本地问题,然后,我将尝试找出原因。谢谢。Ups,您可能是对的。问题是我们使用的是libffi库,因此没有CDECL约定(名称因平台而异)。如果您通过ECL bug tracker报告此问题,将有助于我解决此问题。将尽快解决。我已提交一份bug报告: