Написание кода кросс-компиляции выглядит для меня болезненным миром.Джон Уиттингтон из Coherent PDF - единственный человек, которого я знаю, кто пытался сделать это в какой-то степени.
Я перевел много кода OCaml на F # (вероятно, больше, чем кто-либо в мире) иосновными проблемами являются синтаксис #light
, использование любых нетривиальных возможностей OCaml (объекты, полиморфные варианты, модули высшего порядка, помеченные и необязательные аргументы и т. д.), библиотеки (например, lablgl, lablgtk, ocamlgraph, laziness),макросы (синтаксический анализ, потоки, расширения сопоставления с образцом) и изменения в базовом синтаксисе, таком как индексация массива.Например, я только что попытался перенести бенчмарк Almabench с OCaml на F #, и это заняло несколько часов, потому что в итоге мне пришлось вручную перезаписывать каждый a.[i]
в a.(i)
из-за множестваошибки в компиляторе F #: режим совместимости с OCaml довольно хрупок.
Поэтому я бы посоветовал вам выбирать между языками, а не пытаться кросс-компилировать.