Можно ли создать солиб в OCaml
Я хочу реализовать общую библиотеку для Linux/FreeBSD в OCaml, и мне нужно, чтобы она имела интерфейс C. Таким образом я смогу реализовать привязки для разных языков. У меня есть несколько опасений:
- OCaml собирает мусор, и я боюсь, что объекты, переданные внешнему коду, могут быть объединены в сборку мусора. Можно ли отключить сборщик мусора? Может есть другой способ решения таких проблем?
- Есть ли способ написать код OCaml, такой как C++
extern "C"
или так он будет отображаться как символ C? - Есть ли аналогичный язык высокого уровня, который лучше подходит для написания солибов? Мне все еще нужно, чтобы компилятор языка был написан на C/C++, чтобы его было относительно легко перенести на новые архитектуры.
1 ответ
Решение
То, что я пытался сделать, невозможно описанным способом. Было решено открыть библиотеку через D-Bus, потому что сложно правильно реализовать привязки для множества языков программирования, но в настоящее время каждый язык имеет батарейки для D-Bus.
PS: Rust может быть хорошим инструментом для реализации C solib.