Промежуточный файл C просмотра в mlton при использовании `-codegen c`
У меня есть следующий исходный файл SML с тривиальной функцией в нем:
(* fact.sml *)
fun fact_unguarded 0 = 1
| fact_unguarded n = n * fact_unguarded(n-1)
fun fact 0 = SOME(1)
| fact n = if n > 0 then SOME(n * fact_unguarded(n-1)) else NONE
Я пытаюсь скомпилировать его с помощью MLTon, используя бэкэнд C, и посмотреть на сгенерированный C-код.
% mlton -codegen c fact.sml
Однако ни один из промежуточных файлов не выгружается в текущем рабочем каталоге, и, похоже, в /tmp
или. Есть ли способ направить MLTon либо: а) создать только исходный файл C и остановить его, либо б) сохранить промежуточные файлы даже после того, как будет создан последний артефакт.
% pwd
~/tmp/sml
% ls
fact* fact.sml
1 ответ
Решение
mlton -stop g -codegen c
должен делать то, что вы хотите, но благодаря тому, как MLton работает как компилятор всей программы, от ваших функций ничего не останется.