This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
|
|
@ -0,0 +1,3 @@
|
|||
(cram
|
||||
(applies_to load-with-pp)
|
||||
(deps %{bin:dunepp}))
|
||||
|
|
@ -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
|
||||
|
|
@ -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__
|
||||
;;
|
||||
|
|
@ -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;;
|
||||
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue