【发布时间】:2025-12-05 14:10:01
【问题描述】:
在 OCaml 中,我可以创建具有相同名称的嵌套模块的模块。
module X = struct
module X = struct
let x = 42
end
end
我也可以用 ocamlc 打包它:
ocamlc -for-pack X -c X.ml
mkdir tmp
mv X.cmo tmp/X.cmo
mv X.cmi tmp/X.cmi
ocamlc -pack -o X.cmo t/X.cmo
但是当我尝试使用 ocamlopt 时,我有:
致命错误:异常堆栈溢出
make 文件运行后。
如何使用 ocamlopt 将模块打包到同名模块中?
【问题讨论】:
-
你做不到。
ocamlopt假设打包模块和目标模块具有不同的名称... -
这个案例看起来像是理论研究,但我的实际任务是代码生成和模块树构建,有时我已经打包和目标模块具有相同的名称并且无法更改此名称。跨度>
-
OCaml 4.09 中问题依然存在
标签: compilation nested ocaml stack-overflow packing