This commit is contained in:
swrup 2025-11-11 02:07:51 +01:00
parent aa2ff7b2f0
commit 2f3113f55d
11742 changed files with 1223940 additions and 0 deletions

View file

@ -0,0 +1,3 @@
(cram
(applies_to load-with-pp)
(deps %{bin:dunepp}))

View file

@ -0,0 +1,40 @@
We try to load a module defined in an executable
$ cat >dune-project <<EOF
> (lang dune 3.3)
> EOF
$ cat >bar.ml <<EOF
> let v = 42
> EOF
$ cat >foo.ml <<EOF
> let foo = Bar.v + 42
> EOF
$ cat >dune <<EOF
> (executable
> (name foo))
> EOF
$ dune ocaml top-module foo.ml
#directory "$TESTCASE_ROOT/_build/default/.topmod/foo.ml";;
#load "$TESTCASE_ROOT/_build/default/.foo.eobjs/byte/dune__exe.cmo";;
#load "$TESTCASE_ROOT/_build/default/.foo.eobjs/byte/dune__exe__Bar.cmo";;
#load "$TESTCASE_ROOT/_build/default/.topmod/foo.ml/dune__exe__Foo.cmo";;
open Dune__exe
;;
$ ls _build/default/.topmod/foo.ml/
dune__exe.cmi
dune__exe__Bar.cmi
dune__exe__Foo.cmi
dune__exe__Foo.cmo
$ dir=_build/default/.foo.eobjs/byte/
$ ls $dir/*.cmi
_build/default/.foo.eobjs/byte//dune__exe.cmi
_build/default/.foo.eobjs/byte//dune__exe__Bar.cmi
$ ls $dir/*.cmo
_build/default/.foo.eobjs/byte//dune__exe.cmo
_build/default/.foo.eobjs/byte//dune__exe__Bar.cmo

View file

@ -0,0 +1,68 @@
We try to load a module defined in a library with a dependency
$ cat >dune-project <<EOF
> (lang dune 3.3)
> EOF
$ mkdir foo
$ cd foo
$ cat >bar.ml <<EOF
> let v = 42
> EOF
$ cat >foo.ml <<EOF
> let foo = Bar.v + 42
> EOF
$ cat >dune <<EOF
> (library
> (libraries mydummylib)
> (name foo))
> EOF
$ cd ..
$ mkdir mydummylib
$ cd mydummylib
$ cat >dune <<EOF
> (library (name mydummylib))
> EOF
$ touch mydummylib.ml
$ touch blabla.ml
$ cd ..
$ dune ocaml top-module foo/foo.ml
#directory "$TESTCASE_ROOT/_build/default/.topmod/foo/foo.ml";;
#directory "$TESTCASE_ROOT/_build/default/mydummylib/.mydummylib.objs/byte";;
#load "$TESTCASE_ROOT/_build/default/mydummylib/mydummylib.cma";;
#load "$TESTCASE_ROOT/_build/default/foo/.foo.objs/byte/foo__.cmo";;
#load "$TESTCASE_ROOT/_build/default/foo/.foo.objs/byte/foo__Bar.cmo";;
#load "$TESTCASE_ROOT/_build/default/.topmod/foo/foo.ml/foo.cmo";;
open Foo__
;;
$ ls _build/default/.topmod/foo/foo.ml
foo.cmi
foo.cmo
foo__.cmi
foo__Bar.cmi
$ ls _build/default/mydummylib/.mydummylib.objs/byte/*.cmi
_build/default/mydummylib/.mydummylib.objs/byte/mydummylib.cmi
_build/default/mydummylib/.mydummylib.objs/byte/mydummylib__.cmi
_build/default/mydummylib/.mydummylib.objs/byte/mydummylib__Blabla.cmi
$ ls _build/default/mydummylib/*.cma
_build/default/mydummylib/mydummylib.cma
$ dune ocaml top-module $PWD/foo/foo.ml
#directory "$TESTCASE_ROOT/_build/default/.topmod/foo/foo.ml";;
#directory "$TESTCASE_ROOT/_build/default/mydummylib/.mydummylib.objs/byte";;
#load "$TESTCASE_ROOT/_build/default/mydummylib/mydummylib.cma";;
#load "$TESTCASE_ROOT/_build/default/foo/.foo.objs/byte/foo__.cmo";;
#load "$TESTCASE_ROOT/_build/default/foo/.foo.objs/byte/foo__Bar.cmo";;
#load "$TESTCASE_ROOT/_build/default/.topmod/foo/foo.ml/foo.cmo";;
open Foo__
;;

View file

@ -0,0 +1,18 @@
$ cat >dune-project <<EOF
> (lang dune 3.3)
> EOF
$ cat >dune <<EOF
> (library
> (preprocess (action (run %{bin:dunepp} %{input-file})))
> (name foo))
> EOF
$ cat >foo.ml <<EOF
> let foo = _STRING_
> EOF
$ dune ocaml top-module foo.ml | sed 's/"[^"]*dunepp"/$dunepp/g'
#directory "$TESTCASE_ROOT/_build/default/.topmod/foo.ml";;
#load "$TESTCASE_ROOT/_build/default/.topmod/foo.ml/foo.cmo";;
#pp $dunepp;;

View file

@ -0,0 +1,33 @@
Load a module that requires ppx
$ cat >dune-project <<EOF
> (lang dune 3.3)
> EOF
$ cat >dune <<EOF
> (library
> (name driver_print_args)
> (kind ppx_rewriter)
> (modules ())
> (ppx.driver (main "\| (fun () ->
> "\| let out = Sys.argv.(4) in
> "\| let out = open_out out in
> "\| let rec loop () =
> "\| match input_line stdin with
> "\| | s -> output_string out (s ^ "\n"); loop ()
> "\| | exception End_of_file -> close_out out
> "\| in loop ())
> )))
> (library
> (name foo)
> (preprocess (pps driver_print_args)))
> EOF
$ cat >foo.ml <<EOF
> let () = ()
> EOF
$ dune ocaml top-module foo.ml
#directory "$TESTCASE_ROOT/_build/default/.topmod/foo.ml";;
#load "$TESTCASE_ROOT/_build/default/.topmod/foo.ml/foo.cmo";;
#ppx "$TESTCASE_ROOT/_build/default/.ppx/70f69f007f7d5814898c75dac997e15a/ppx.exe --as-ppx --cookie 'library-name=\"foo\"'";;
$ basename $(ls _build/default/.ppx/*/*.exe)
ppx.exe