2013-07-10 3 views
4

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

ответ

3

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

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

Смежные вопросы