Sml 使用`-codegen C时查看中间C文件`

Sml 使用`-codegen C时查看中间C文件`,sml,mlton,Sml,Mlton,我有以下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 我正在尝试使用C后端用MLTon编译它,并查看生成的C代码 % mlton -codegen

我有以下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
我正在尝试使用C后端用MLTon编译它,并查看生成的C代码

% mlton -codegen c fact.sml
但是,没有任何中间文件转储到当前工作目录中,并且
/tmp
中似乎也没有任何相关内容。有没有一种方法可以指导MLTon:a)只生成C源文件并停止,或者b)即使在生成最终工件之后仍保留中间文件

% pwd
~/tmp/sml
% ls
fact*       fact.sml

mlton-stop g-codegen c
应该做您想做的事情,但是由于mlton作为一个完整的程序编译器的工作方式,您的函数将不会剩下任何东西。

也没有。代码似乎几乎完全是与MLTon运行时和描述ML端编译器选项的神奇注释相关的东西。