Здравствуйте!
Есть идея вставить интерпретатор языка Python в SBCL. Насколько это нужно -- вопрос отдельный, но, по-видимому, доступ к библиотекам Python может пригодиться в определённых ситуациях. Например, Python имеет выход на некоторые C++ билиотеки, а как привязать эти билиотеки к SBCL, непонятно. Нужен отдельный binding к C++. Безусловно, логику приятнее писать на Lisp, но бывает, что нужна какая-нибудь утилита (тот же XML-парсер), которую очень удобно использовать в Python, а в Lisp (по крайней мере в стандартной комплектации stable Debian) аналогичная программа либо вообще отсутствует, либо сильно уступает по функциональности. А так можно использовать "лучшее из двух миров" :)
Вопрос у меня возник по дизайну. Как сделать API универсальным? Возможно, эти проблемы типичные и уже кем-то решались:
1) Передача произвольного (но разумно ограниченного) числа аргументов,
2) Передача аргуметнов разных типов и разной структуры (одиночные значения, массивы, структуры, массивы структур и т.п.,
3) Управление памятью,
4) То же что в пп 1-2 для получения результата выполнения функции Python
Есть мысль сделать некий универсальный "контейнер" (структуру) на C для обмена данными, абстрагировать API на Lisp-е, но насколько это практично пока неясно.
В общем, буду рад любям замечаниям, предложениям.