Compiler du ReasonML avec Dune. Dune est un outil d’aide à la compilation de grand projets pour OCaml.
Information mostly took from : joshbranchaud.
1. Natively compile ReasonML
Dune is “a composable build system for OCaml” with out-of-the-box support for ReasonML. Dune can be used for a lot of things, but in simplest terms it can be used to compile ReasonML programs into native executables.
Considering the following ReasonML program :
/* hello_reason.re */ print_endline("Hello, Reason!")
We can then create the following Dune build file (named
;; dune (executable (name hello_reason))
Then running the
dune build hello_reason.exe command will compile the
hello_reason.re into a
hello_reason.exe executable binary that can be found in
We can also run
dune exec hello_reason.exe which will firstly build the
.exe if needed (if the sources have been updated).
Read more in the Quickstart guide of Dune.
OCaml libraries in your program
For instance, if you need an OCaml library in your ReasonML program, instruct Dune about it :
(executable (name hello_reason) (libraries yojson) )
We should really provide the library :
$ eval (opam env) $ opam install yojson
Now we can use the Yojson library in our code :
// month_nb.re open Yojson.Basic open Yojson.Basic.Util let month_nb_json = from_file ("../../month_nb.json") let () = print_endline(show(member("comment", month_nb_json)))
$ dune exec month_nb.re `List ([`String ("Name: month_nb.json"); `String ("Desc: contains the regexp tree of month number deternimation by month_nb.js");