Ystok-FFC — это небольшая библитека на языке Коммон Лисп для вызова внешних функций (foreign function interface, FFI). Под внешними подразумеваются функции, написанные на других языках программирования, обычно на С, откомпилированные и хранящиеся в виде динамически подключаемых библиотек (DLL).
Традиционно, каждая Лисп-система включают собственный FFI-пакет, не совместимый с другими реализациями Коммон Лисп. Использование Ystok-FFC делает исходный код легко переносимым, ибо обращения к внешним функциям происходят через одинаковый программный интрерфейс.
Ystok-FFC состоит из вспомогательных функций и макросов для
fli
системы LispWorks.fli
LispWorks.%cstring-length
,
которая не экспортирована.sb-alien:make-alien-string
всегда возвращает#<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP # :TYPE (* (SIGNED 8))>
,:UCS-2LE
.alien-value
,
а не бестиповые (System Area Pointer, SAP), в отличии от CFFI.Ystok-FFC не претендует на всесторонний охват всех возможностей, встречающихся в современных реализациях Коммон Лисп. Модуль предназначен лишь для наиболее популярных платформ и поддерживает функции, которые оказались полезными в наших проектах.
Ystok-FFC может использоваться, хотя и необязательно, вместе с Ystok-Library.
Ystok-FFC необходим для
Модуль Ystok-FFC тестировался на следующих реализациях Коммон Лисп:
Модуль Ystok-FFC доступен в виде одного из двух упакованных файлов:
Дистрибутивы содержат файлы определения систем:
См. файл change.log (на английском).