SML - NJ, как скомпилировать автономный исполняемый файл
Я начинаю изучать стандартный ML, и теперь я пытаюсь использовать стандартный ML компилятора Нью-Джерси.
теперь я могу использовать интерактивный цикл, но как я могу скомпилировать исходный файл в автономный исполняемый файл?
В C, например, можно просто написать
$ gcc hello_world.c -o helloworld
а затем запустите двоичный файл helloworld.
Я читал документацию для SML NJ Compilation Manager, но у него нет четких примеров.
кроме того, есть ли другой компилятор SML (которые позволяют автономное двоичное создание) доступно?
1 ответов
и MosML и MLton также имеют возможность создавать автономные двоичные файлы. MosML через команду mosmlc и MLton через команду mlton.
обратите внимание, что MLton не имеет интерактивного цикла, но является компилятором оптимизации всей программы. Что в основном означает, что для компиляции требуется довольно много времени, но в свою очередь он генерирует невероятно быстро программы SML.
для SML / NJ вы можете использовать CM.mk_standalone
функция, но это не рекомендуется в руководстве пользователя CM страница 45. Вместо этого они рекомендуют использовать команду ml-build. Это создаст образ кучи SML/NJ. Образ кучи должен быть запущен с параметром @SMLload, или вы можете использовать heap2exec программа, при условии, что у вас есть поддерживаемая система. Если вы этого не сделаете, я бы предложил вам использовать MLton вместо этого.
для создания допустимой кучи SML/NJ можно использовать следующее изображение:
тест.см:
Group is
test.sml
$/basis.cm