Hi,
I am trying to compile a Typedtree
from a .cmt
file to a Lambda
(using ocaml-4.08.1
) with this minimal example:
let () =
let cmt = Cmt_format.read_cmt Sys.argv.(1) in
match cmt.cmt_annots with
| Implementation structure ->
let tstructure = (structure, Typedtree.Tcoerce_none) in
Load_path.init cmt.cmt_loadpath;
ignore (Translmod.transl_implementation cmt.cmt_modname tstructure)
| _ -> failwith "not a structure"
Sadly, transl_implementation
fails when the source file corresponding to the .cmt
had a definition with a local variable.
For example using the .cmt
(produced with ocamlopt -bin-annot
) from:
let f = let x = 42 in x
the first code fails with:
>> Fatal error: Cannot find address for: x
Fatal error: exception Misc.Fatal_error
Did I miss something? It seems to be a problem from Env
which is not set properly so the local variable x
is not found.
Thanks in advance for your time!