Quantcast
Channel: Active questions tagged ocaml - Stack Overflow
Viewing all articles
Browse latest Browse all 531

Compiling OCaml .cmm file

$
0
0

I wrote simple OCaml code like:

let rec fib(n: int) =   match n with  | 0 -> 0  | 1 -> 1  | _ -> fib(n-1) + fib(n-2)

With -dcmm option to ocamlopt, I could generate .cmm files following:

cmm:(data)(data int 3063 "camlTest__1": addr "camlTest__fib_267" int 72057594037927941)(data int 1792 global "camlTest" "camlTest": int 1)(data global "camlTest__gc_roots""camlTest__gc_roots": addr "camlTest" int 0)(function{test.ml:1,11-88} camlTest__fib_267 (n/268: val) (if (!= n/268 1)   (if (!= n/268 3)     (+       (+ (app{test.ml:5,9-17} "camlTest__fib_267" (+ n/268 -2) val)         (app{test.ml:5,20-28} "camlTest__fib_267" (+ n/268 -4) val))       -1)     3)   1))(function camlTest__entry () (let clos/271 "camlTest__1" (store val(root-init) "camlTest" clos/271)) 1)(data)

ocamlopt can compile OCaml code (.ml) into machine code, then can I generate machine code directly from .cmm files?

I didn't find any option that compile .cmm files to machine code in ocamlopt, so I tried to use Asmgen in ocaml-base-compiler modules.

However, Asmgen function requires Cmm.phrase type but did not found how to convert .cmm files to Cmm.phrase type.


Viewing all articles
Browse latest Browse all 531

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>