Тривиальный вопрос, но после некоторого времени, просматривая документацию ECL, документацию CFFI и прибегая к Google, я до сих пор не смог прийти к окончательному ответу. В документах ECL ничего не говорится о синтаксисе обратного вызова, документы CFFI не упоминают никаких ограничений реализации в отношении обратных вызовов в ECL, и я не могу использовать страницы, на которые намекает Google логический.Поддерживает ли ECL обратные вызовы?
4
A
ответ
6
ECL поддерживает обратные вызовы как в интерпретируемом, так и в скомпилированном режиме. CFFI заботится обо всем для вас, поэтому нет особого упоминания о ECL (почему это должно быть?). Если вы заботитесь о фактической реализации, посмотрите на ecl/src/lsp/ffi.lsp. Подпись для FFI: DEFCALLBACK: (defmacro defcallback (имя ret-type ((arg-name arg-type) *) & body body) Иными словами, он принимает более или менее те же аргументы, что и DEF-FUNCTION (тип синтаксис тот же, UFFI), но он явно называет каждый из аргументов (arg-name) и предоставляет код в lisp для исполнения.
Смежные вопросы
- 1. Поддерживает ли GWT JSNI обратные вызовы?
- 2. Поддерживает ли интерфейсы retrofit шаблонные обратные вызовы
- 3. Обратные обратные вызовы
- 4. Обратные обратные вызовы
- 5. Поддерживает ли сервер django обратные вызовы URL (webhooks)?
- 6. Обратные обратные вызовы
- 7. Обратные вызовы Websocket-Node
- 8. Требуются ли асинхронные обратные вызовы?
- 9. Нужно ли использовать обратные вызовы?
- 10. Может ли твиттер делать обратные вызовы?
- 11. WCF Обратные вызовы
- 12. Обратные обратные вызовы в Rails
- 13. Обратные вызовы сервера NodeJS
- 14. Обратные вызовы обработчиков RailsAdmin
- 15. IntentService, регистрирующий обратные вызовы
- 16. обратные вызовы «org.eclipse.jface.wizard.WizardPage»
- 17. Закрытие и обратные вызовы
- 18. Обратные вызовы Phoenix Framework
- 19. Обратные вызовы в java
- 20. Javascript условные обратные вызовы
- 21. Пользовательские обратные вызовы в VBA
- 22. Обратные вызовы Protobuf RPC
- 23. WebHttpBinding и обратные вызовы
- 24. Hibernate обратные вызовы
- 25. Угловые обратные вызовы Toastr
- 26. Делегаты и обратные вызовы
- 27. Поддерживает ли PHP асинхронные вызовы?
- 28. Обратные вызовы в JavaScript
- 29. обратные вызовы модели рельсов
- 30. Обратные вызовы в node.js
Отрадно получить ответ от разработчика :) Я не упоминал, но при оценке CFFI: DEFCALLBACK Я получаю сообщение об ошибке «CDECL не обозначает действительного соглашения о вызове». Поэтому я начал проверять, возможны ли обратные вызовы вообще. Должна быть какая-то локальная проблема с моей установкой или программой, тогда попытайтесь выяснить. Благодарю. – Andrei
Упс, возможно, вы правы. Проблема в том, что мы используем библиотеку libffi, и поэтому нет соглашения CDECL (имена меняются с платформы на платформу). Это поможет мне решить эту проблему, если вы сообщите об этом через отслеживатель ошибок ECL. Решится как можно скорее. – Juanjo
Я отправил отчет об ошибке: https://sourceforge.net/tracker/?func=detail&aid=3514934&group_id=30035&atid=398053 – Andrei