Можно ли создать солиб в OCaml

Я хочу реализовать разделяемую библиотеку для Linux / FreeBSD в OCaml, и мне нужно, чтобы она имела интерфейс C. Таким образом я смогу реализовать привязки для разных языков. У меня есть несколько опасений:

  • OCaml собирает мусор, и я боюсь, что объекты, переданные во внешний код, могут быть объединены в сборку мусора. Можно ли отключить сборщик мусора? Может есть другой способ решения таких проблем?
  • Есть ли способ написать код OCaml, такой как extern "C" C ++ или ему подобный, чтобы он отображался как символ C?
  • Есть ли какой-нибудь аналогичный язык высокого уровня, который лучше подходит для написания солибов? Мне все еще нужно, чтобы компилятор языка был написан на C / C ++, поэтому его будет относительно легко перенести на новые архитектуры.

person NIR    schedule 25.04.2020    source источник


Ответы (1)


То, что я пытался сделать, невозможно описанным способом. Было решено открыть библиотеку через D-Bus, потому что сложно правильно реализовать привязки для множества языков программирования, но в настоящее время каждый язык имеет батарейки для D-Bus.

П. С .: Rust может быть хорошим инструментом для реализации C solib.

person NIR    schedule 29.04.2020