Общие библиотеки в Poly/ML

Можно ли построить общую библиотеку, используя Poly/ML? Я хочу быть в состоянии создать C API для библиотеки Poly / ML и вызывает / загружает ее из разных языков программирования (например, Python). Кто-нибудь пытался это сделать? Я знаю, что это можно сделать в OCaml:

1 ответ

Решение

Вот ответ, предоставленный Дэвидом Мэтьюсом, основным разработчиком Poly/ML ( http://www.polyml.org/):

Простой ответ - нет, по крайней мере, на данный момент. Я посмотрел на это и подумал, возможно ли это. Интерфейс сторонних функций допускает функции обратного вызова, поэтому существует механизм для создания функции C, которая при вызове вызывает функцию ML. Трудность, с которой я столкнулся, заключалась в том, что для создания разделяемой библиотеки замыкание для функции C должно быть "снято", чтобы можно было получить информацию о перемещении для адресов внутри замыкания. Я должен был бы добавить что-то в libffi, чтобы сделать это. Это не выглядит слишком сложным для X86, но я не пошел дальше. Могут быть и другие проблемы, о которых я не знаю.

Другие вопросы по тегам