5
votes

I am trying the Real World OCaml book. It talks about installing OPAM, then OCaml and Jane Street Core. I got utop loaded properly per the book instructions so that it automatically loads Core.

Without Core, I can run a generic OCaml script simply by ocaml script.ml without compiling. But this doesn't work if the script uses Core. What's the right command if I want to run a Core based OCaml script without compiling?

1

1 Answers

5
votes

Running a script that depends on additional libraries requires you to tell the compiler where to find the libraries. Your best option is to use ocamlscript, which you can also install with OPAM. Just do opam install ocamlscript. Then read about ocamlscript here. Here's a working example:

$ cat a.ml
#! /usr/bin/env ocamlscript
Ocaml.ocamlflags := ["-thread"];
Ocaml.packs := [ "core" ]
--
open Core.Std

let () = print_endline "hello"

Make sure a.ml has the executable bit set. Then run it:

$ ./a.ml
hello

As a bonus, ocamlscript also compiles to native code, so you get high performance scripts.