使用 `-codegen c` 时 mlton 查看中间 C 文件
mlton view intermediate C file when using `-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
我正在尝试使用 C 后端使用 MLTon 编译它并查看生成的 C 代码。
% mlton -codegen c fact.sml
但是,none 的中间文件被转储到当前工作目录中,/tmp
中似乎也没有任何相关内容。有没有办法将 MLTon 引导至 a) 仅生成 C 源文件并停止或 b) 即使在生成最终工件后仍保留中间文件。
% pwd
~/tmp/sml
% ls
fact* fact.sml
mlton -stop g -codegen c
应该做你想做的事,但由于 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 c fact.sml
但是,none 的中间文件被转储到当前工作目录中,/tmp
中似乎也没有任何相关内容。有没有办法将 MLTon 引导至 a) 仅生成 C 源文件并停止或 b) 即使在生成最终工件后仍保留中间文件。
% pwd
~/tmp/sml
% ls
fact* fact.sml
mlton -stop g -codegen c
应该做你想做的事,但由于 MLton 的工作方式是一个完整的程序编译器,你的函数不会留下任何东西。