ocaml/ocamlbuild/test/good-output

1085 lines
50 KiB
Plaintext
Raw Normal View History

_____ _ ____
|_ _|__ ___| |_|___ \
| |/ _ \/ __| __| __) |
| | __/\__ \ |_ / __/
|_|\___||___/\__|_____|
+ CMDOPTS=-- -help
+ BUILD=../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display
+ BUILD1=../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help
+ BUILD2=../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help
+ rm -rf _build
+ cp vivi1.ml vivi.ml
+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help
ocamldep.opt -modules toto.ml > toto.ml.depends
ocamldep.opt -modules tata.mli > tata.mli.depends
ocamldep.opt -modules titi.ml > titi.ml.depends
ocamldep.opt -modules tutu.mli > tutu.mli.depends
ocamlc.opt -c -o tata.cmi tata.mli
ocamlc.opt -c -o titi.cmo titi.ml
ocamlc.opt -c -o tutu.cmi tutu.mli
ocamlc.opt -c -o toto.cmo toto.ml
ocamldep.opt -modules tata.ml > tata.ml.depends
ocamldep.opt -modules tutu.ml > tutu.ml.depends
ocamldep.opt -modules tyty.mli > tyty.mli.depends
ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
ocamlc.opt -c -o tyty.cmi tyty.mli
ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
ocamlc.opt -c -o tata.cmo tata.ml
ocamlc.opt -c -o tutu.cmo tutu.ml
ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
ocamlopt.opt -c -o tata.cmx tata.ml
ocamlopt.opt -c -o titi.cmx titi.ml
ocamlopt.opt -c -o tutu.cmx tutu.ml
ocamlopt.opt -c -o toto.cmx toto.ml
ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
Warning: Using -- only run the last target
toto.native: _build/toto.native: Hello world!!!
Tutu.tutu => 1
Tata.tata => "TATA2"
+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help
[cache hit] ocamldep.opt -modules toto.ml > toto.ml.depends
[cache hit] ocamldep.opt -modules tata.mli > tata.mli.depends
[cache hit] ocamlc.opt -c -o tata.cmi tata.mli
[cache hit] ocamldep.opt -modules titi.ml > titi.ml.depends
[cache hit] ocamlc.opt -c -o titi.cmo titi.ml
[cache hit] ocamldep.opt -modules tutu.mli > tutu.mli.depends
[cache hit] ocamlc.opt -c -o tutu.cmi tutu.mli
[cache hit] ocamlc.opt -c -o toto.cmo toto.ml
[cache hit] ocamldep.opt -modules tata.ml > tata.ml.depends
[cache hit] ocamlc.opt -c -o tata.cmo tata.ml
[cache hit] ocamldep.opt -modules tutu.ml > tutu.ml.depends
[cache hit] ocamldep.opt -modules tyty.mli > tyty.mli.depends
[cache hit] ocamlc.opt -c -o tyty.cmi tyty.mli
[cache hit] ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
[cache hit] ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
[cache hit] ocamlc.opt -c -o tutu.cmo tutu.ml
[cache hit] ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
[cache hit] ocamlopt.opt -c -o tata.cmx tata.ml
[cache hit] ocamlopt.opt -c -o titi.cmx titi.ml
[cache hit] ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
[cache hit] ocamlopt.opt -c -o tutu.cmx tutu.ml
[cache hit] ocamlopt.opt -c -o toto.cmx toto.ml
[cache hit] ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
Warning: Using -- only run the last target
toto.native: _build/toto.native: Hello world!!!
Tutu.tutu => 1
Tata.tata => "TATA2"
+ cp vivi2.ml vivi.ml
+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help
ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
Warning: Using -- only run the last target
toto.native: _build/toto.native: Hello world!!!
Tutu.tutu => 1
Tata.tata => "TATA2"
+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help
[cache hit] ocamldep.opt -modules toto.ml > toto.ml.depends
[cache hit] ocamldep.opt -modules tata.mli > tata.mli.depends
[cache hit] ocamlc.opt -c -o tata.cmi tata.mli
[cache hit] ocamldep.opt -modules titi.ml > titi.ml.depends
[cache hit] ocamlc.opt -c -o titi.cmo titi.ml
[cache hit] ocamldep.opt -modules tutu.mli > tutu.mli.depends
[cache hit] ocamlc.opt -c -o tutu.cmi tutu.mli
[cache hit] ocamlc.opt -c -o toto.cmo toto.ml
[cache hit] ocamldep.opt -modules tata.ml > tata.ml.depends
[cache hit] ocamlc.opt -c -o tata.cmo tata.ml
[cache hit] ocamldep.opt -modules tutu.ml > tutu.ml.depends
[cache hit] ocamldep.opt -modules tyty.mli > tyty.mli.depends
[cache hit] ocamlc.opt -c -o tyty.cmi tyty.mli
[cache hit] ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
[cache hit] ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
[cache hit] ocamlc.opt -c -o tutu.cmo tutu.ml
[cache hit] ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
[cache hit] ocamlopt.opt -c -o tata.cmx tata.ml
[cache hit] ocamlopt.opt -c -o titi.cmx titi.ml
[cache hit] ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
[cache hit] ocamlopt.opt -c -o tutu.cmx tutu.ml
[cache hit] ocamlopt.opt -c -o toto.cmx toto.ml
[cache hit] ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
Warning: Using -- only run the last target
toto.native: _build/toto.native: Hello world!!!
Tutu.tutu => 1
Tata.tata => "TATA2"
+ cp vivi3.ml vivi.ml
+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -- -help
ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
ocamlc.opt -c -o tutu.cmo tutu.ml
ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
ocamlopt.opt -c -o tutu.cmx tutu.ml
ocamlopt.opt -c -o toto.cmx toto.ml
ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
Warning: Using -- only run the last target
toto.native: _build/toto.native: Hello world!!!
Tutu.tutu => 2
Tata.tata => "TATA2"
+ ../../_build/ocamlbuild.native toto.byte toto.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt -- -help
[cache hit] ocamldep.opt -modules toto.ml > toto.ml.depends
[cache hit] ocamldep.opt -modules tata.mli > tata.mli.depends
[cache hit] ocamlc.opt -c -o tata.cmi tata.mli
[cache hit] ocamldep.opt -modules titi.ml > titi.ml.depends
[cache hit] ocamlc.opt -c -o titi.cmo titi.ml
[cache hit] ocamldep.opt -modules tutu.mli > tutu.mli.depends
[cache hit] ocamlc.opt -c -o tutu.cmi tutu.mli
[cache hit] ocamlc.opt -c -o toto.cmo toto.ml
[cache hit] ocamldep.opt -modules tata.ml > tata.ml.depends
[cache hit] ocamlc.opt -c -o tata.cmo tata.ml
[cache hit] ocamldep.opt -modules tutu.ml > tutu.ml.depends
[cache hit] ocamldep.opt -modules tyty.mli > tyty.mli.depends
[cache hit] ocamlc.opt -c -o tyty.cmi tyty.mli
[cache hit] ocamldep.opt -pp camlp4o -modules vivi.ml > vivi.ml.depends
[cache hit] ocamlc.opt -c -pp camlp4o -o vivi.cmo vivi.ml
[cache hit] ocamlc.opt -c -o tutu.cmo tutu.ml
[cache hit] ocamlc.opt tata.cmo titi.cmo vivi.cmo tutu.cmo toto.cmo -o toto.byte
[cache hit] ocamlopt.opt -c -o tata.cmx tata.ml
[cache hit] ocamlopt.opt -c -o titi.cmx titi.ml
[cache hit] ocamlopt.opt -c -pp camlp4o -o vivi.cmx vivi.ml
[cache hit] ocamlopt.opt -c -o tutu.cmx tutu.ml
[cache hit] ocamlopt.opt -c -o toto.cmx toto.ml
[cache hit] ocamlopt.opt tata.cmx titi.cmx vivi.cmx tutu.cmx toto.cmx -o toto.native
Warning: Using -- only run the last target
toto.native: _build/toto.native: Hello world!!!
Tutu.tutu => 2
Tata.tata => "TATA2"
_____ _ _____
|_ _|__ ___| |_|___ /
| |/ _ \/ __| __| |_ \
| | __/\__ \ |_ ___) |
|_|\___||___/\__|____/
+ CMDOTPS=
+ BUILD=../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display
+ BUILD1=../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display
+ BUILD2=../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
+ rm -rf _build
+ ../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display
ocamldep.opt -modules a.mli > a.mli.depends
ocamlc.opt -c -o a.cmi a.mli
ocamldep.opt -modules a.ml > a.ml.depends
ocamldep.opt -modules b.mli > b.mli.depends
ocamlc.opt -c -o b.cmi b.mli
ocamlc.opt -c -o a.cmo a.ml
ocamldep.opt -modules b.ml > b.ml.depends
ocamldep.opt -modules c.mli > c.mli.depends
ocamlc.opt -c -o c.cmi c.mli
ocamlc.opt -c -o b.cmo b.ml
ocamldep.opt -modules c.ml > c.ml.depends
ocamldep.opt -modules d.mli > d.mli.depends
ocamlc.opt -c -o d.cmi d.mli
ocamlc.opt -c -o c.cmo c.ml
ocamldep.opt -modules d.ml > d.ml.depends
ocamldep.opt -modules e.mli > e.mli.depends
ocamlc.opt -c -o e.cmi e.mli
ocamlc.opt -c -o d.cmo d.ml
ocamldep.opt -modules e.ml > e.ml.depends
ocamldep.opt -modules f.mli > f.mli.depends
ocamlc.opt -c -o f.cmi f.mli
ocamlc.opt -c -o e.cmo e.ml
ocamldep.opt -modules f.ml > f.ml.depends
ocamlc.opt -c -o f.cmo f.ml
ocamlc.opt unix.cma f.cmo e.cmo d.cmo c.cmo b.cmo a.cmo -o a.byte
ocamlopt.opt -c -o f.cmx f.ml
ocamlopt.opt -c -o e.cmx e.ml
ocamlopt.opt -c -o d.cmx d.ml
ocamlopt.opt -c -o c.cmx c.ml
ocamlopt.opt -c -o b.cmx b.ml
ocamlopt.opt -c -o a.cmx a.ml
ocamlopt.opt unix.cmxa f.cmx e.cmx d.cmx c.cmx b.cmx a.cmx -o a.native
ocamldoc.opt -dump a.odoc a.mli
ocamldoc.opt -dump b.odoc b.mli
ocamldoc.opt -dump c.odoc c.mli
ocamldoc.opt -dump d.odoc d.mli
ocamldoc.opt -dump e.odoc e.mli
ocamldoc.opt -dump f.odoc f.mli
rm -rf proj.docdir
mkdir -p proj.docdir
ocamldoc.opt -load a.odoc -load b.odoc -load c.odoc -load d.odoc -load e.odoc -load f.odoc -html -d proj.docdir
+ ../../_build/ocamlbuild.native a.byte a.native proj.docdir/index.html -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] ocamldep.opt -modules a.mli > a.mli.depends
[cache hit] ocamlc.opt -c -o a.cmi a.mli
[cache hit] ocamldep.opt -modules a.ml > a.ml.depends
[cache hit] ocamldep.opt -modules b.mli > b.mli.depends
[cache hit] ocamlc.opt -c -o b.cmi b.mli
[cache hit] ocamlc.opt -c -o a.cmo a.ml
[cache hit] ocamldep.opt -modules b.ml > b.ml.depends
[cache hit] ocamldep.opt -modules c.mli > c.mli.depends
[cache hit] ocamlc.opt -c -o c.cmi c.mli
[cache hit] ocamlc.opt -c -o b.cmo b.ml
[cache hit] ocamldep.opt -modules c.ml > c.ml.depends
[cache hit] ocamldep.opt -modules d.mli > d.mli.depends
[cache hit] ocamlc.opt -c -o d.cmi d.mli
[cache hit] ocamlc.opt -c -o c.cmo c.ml
[cache hit] ocamldep.opt -modules d.ml > d.ml.depends
[cache hit] ocamldep.opt -modules e.mli > e.mli.depends
[cache hit] ocamlc.opt -c -o e.cmi e.mli
[cache hit] ocamlc.opt -c -o d.cmo d.ml
[cache hit] ocamldep.opt -modules e.ml > e.ml.depends
[cache hit] ocamldep.opt -modules f.mli > f.mli.depends
[cache hit] ocamlc.opt -c -o f.cmi f.mli
[cache hit] ocamlc.opt -c -o e.cmo e.ml
[cache hit] ocamldep.opt -modules f.ml > f.ml.depends
[cache hit] ocamlc.opt -c -o f.cmo f.ml
[cache hit] ocamlc.opt unix.cma f.cmo e.cmo d.cmo c.cmo b.cmo a.cmo -o a.byte
[cache hit] ocamlopt.opt -c -o f.cmx f.ml
[cache hit] ocamlopt.opt -c -o e.cmx e.ml
[cache hit] ocamlopt.opt -c -o d.cmx d.ml
[cache hit] ocamlopt.opt -c -o c.cmx c.ml
[cache hit] ocamlopt.opt -c -o b.cmx b.ml
[cache hit] ocamlopt.opt -c -o a.cmx a.ml
[cache hit] ocamlopt.opt unix.cmxa f.cmx e.cmx d.cmx c.cmx b.cmx a.cmx -o a.native
[cache hit] ocamldoc.opt -dump a.odoc a.mli
[cache hit] ocamldoc.opt -dump b.odoc b.mli
[cache hit] ocamldoc.opt -dump c.odoc c.mli
[cache hit] ocamldoc.opt -dump d.odoc d.mli
[cache hit] ocamldoc.opt -dump e.odoc e.mli
[cache hit] ocamldoc.opt -dump f.odoc f.mli
[cache hit] rm -rf proj.docdir
[cache hit] mkdir -p proj.docdir
[cache hit] ocamldoc.opt -load a.odoc -load b.odoc -load c.odoc -load d.odoc -load e.odoc -load f.odoc -html -d proj.docdir
_____ _ _ _
|_ _|__ ___| |_| || |
| |/ _ \/ __| __| || |_
| | __/\__ \ |_|__ _|
|_|\___||___/\__| |_|
+ CMDOTPS=
+ BUILD=../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display
+ BUILD1=../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display
+ BUILD2=../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
+ rm -rf _build
+ ../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display
ocamldep.opt -modules a/aa.mli > a/aa.mli.depends
ocamlc.opt -c -I a -I b -o a/aa.cmi a/aa.mli
ocamldep.opt -modules a/aa.ml > a/aa.ml.depends
ocamldep.opt -modules b/bb.ml > b/bb.ml.depends
ocamlc.opt -c -I b -I a -o b/bb.cmo b/bb.ml
ocamlc.opt -c -I a -I b -o a/aa.cmo a/aa.ml
ocamlc.opt str.cma b/bb.cmo a/aa.cmo -o a/aa.byte
ocamlopt.opt -c -I b -I a -o b/bb.cmx b/bb.ml
ocamlopt.opt -c -I a -I b -o a/aa.cmx a/aa.ml
ocamlopt.opt str.cmxa b/bb.cmx a/aa.cmx -o a/aa.native
+ ../../_build/ocamlbuild.native -I a -I b aa.byte aa.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] ocamldep.opt -modules a/aa.mli > a/aa.mli.depends
[cache hit] ocamlc.opt -c -I a -I b -o a/aa.cmi a/aa.mli
[cache hit] ocamldep.opt -modules a/aa.ml > a/aa.ml.depends
[cache hit] ocamldep.opt -modules b/bb.ml > b/bb.ml.depends
[cache hit] ocamlc.opt -c -I b -I a -o b/bb.cmo b/bb.ml
[cache hit] ocamlc.opt -c -I a -I b -o a/aa.cmo a/aa.ml
[cache hit] ocamlc.opt str.cma b/bb.cmo a/aa.cmo -o a/aa.byte
[cache hit] ocamlopt.opt -c -I b -I a -o b/bb.cmx b/bb.ml
[cache hit] ocamlopt.opt -c -I a -I b -o a/aa.cmx a/aa.ml
[cache hit] ocamlopt.opt str.cmxa b/bb.cmx a/aa.cmx -o a/aa.native
_____ _ ____
|_ _|__ ___| |_| ___|
| |/ _ \/ __| __|___ \
| | __/\__ \ |_ ___) |
|_|\___||___/\__|____/
+ CMDOPTS=
+ BUILD=../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display
+ BUILD1=../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display
+ BUILD2=../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
+ rm -rf _build
+ ../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display
ocamldep.opt -modules d.ml > d.ml.depends
ocamldep.opt -modules a.mli > a.mli.depends
ocamlc.opt -c -o a.cmi a.mli
ocamldep.opt -modules a.ml > a.ml.depends
ocamldep.opt -modules stack.ml > stack.ml.depends
ocamlc.opt -c -o stack.cmo stack.ml
ocamldep.opt -modules b.ml > b.ml.depends
ocamlc.opt -c -o a.cmo a.ml
ocamlc.opt -c -o b.cmo b.ml
ocamlc.opt -pack a.cmo b.cmo -o c.cmo
ocamlc.opt -c -o d.cmo d.ml
ocamlc.opt stack.cmo c.cmo d.cmo -o d.byte
ocamlopt.opt -c -o stack.cmx stack.ml
ocamlopt.opt -c -for-pack C -o a.cmx a.ml
ocamlopt.opt -c -for-pack C -o b.cmx b.ml
touch c.mli ; if ocamlopt.opt -pack a.cmx b.cmx -o c.cmx ; then rm -f c.mli ; else rm -f c.mli ; exit 1; fi
ocamlopt.opt -c -o d.cmx d.ml
ocamlopt.opt stack.cmx c.cmx d.cmx -o d.native
+ ../../_build/ocamlbuild.native d.byte d.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] ocamldep.opt -modules d.ml > d.ml.depends
[cache hit] ocamldep.opt -modules a.mli > a.mli.depends
[cache hit] ocamlc.opt -c -o a.cmi a.mli
[cache hit] ocamldep.opt -modules a.ml > a.ml.depends
[cache hit] ocamldep.opt -modules stack.ml > stack.ml.depends
[cache hit] ocamlc.opt -c -o stack.cmo stack.ml
[cache hit] ocamlc.opt -c -o a.cmo a.ml
[cache hit] ocamldep.opt -modules b.ml > b.ml.depends
[cache hit] ocamlc.opt -c -o b.cmo b.ml
[cache hit] ocamlc.opt -pack a.cmo b.cmo -o c.cmo
[cache hit] ocamlc.opt -c -o d.cmo d.ml
[cache hit] ocamlc.opt stack.cmo c.cmo d.cmo -o d.byte
[cache hit] ocamlopt.opt -c -o stack.cmx stack.ml
[cache hit] ocamlopt.opt -c -for-pack C -o a.cmx a.ml
[cache hit] ocamlopt.opt -c -for-pack C -o b.cmx b.ml
[cache hit] touch c.mli ; if ocamlopt.opt -pack a.cmx b.cmx -o c.cmx ; then rm -f c.mli ; else rm -f c.mli ; exit 1; fi
[cache hit] ocamlopt.opt -c -o d.cmx d.ml
[cache hit] ocamlopt.opt stack.cmx c.cmx d.cmx -o d.native
_____ _ __
|_ _|__ ___| |_ / /_
| |/ _ \/ __| __| '_ \
| | __/\__ \ |_| (_) |
|_|\___||___/\__|\___/
+ rm -rf _build
+ CMDOPTS=
+ BUILD=../../_build/ocamlbuild.native -no-skip main.byte -classic-display
+ BUILD1=../../_build/ocamlbuild.native -no-skip main.byte -classic-display
+ BUILD2=../../_build/ocamlbuild.native -no-skip main.byte -classic-display -verbose 0 -nothing-should-be-rebuilt
+ cp b.mli.v1 b.mli
+ cp d.mli.v1 d.mli
+ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display
ocamldep.opt -modules main.mli > main.mli.depends
ocamlc.opt -c -o main.cmi main.mli
ocamldep.opt -modules main.ml > main.ml.depends
ocamldep.opt -modules a.mli > a.mli.depends
ocamldep.opt -modules d.mli > d.mli.depends
ocamlc.opt -c -o a.cmi a.mli
ocamlc.opt -c -o d.cmi d.mli
ocamlc.opt -c -o main.cmo main.ml
ocamldep.opt -modules a.ml > a.ml.depends
ocamldep.opt -modules b.mli > b.mli.depends
ocamlc.opt -c -o b.cmi b.mli
ocamldep.opt -modules d.ml > d.ml.depends
ocamlc.opt -c -o a.cmo a.ml
ocamlc.opt -c -o d.cmo d.ml
ocamldep.opt -modules b.ml > b.ml.depends
ocamlc.opt -c -o b.cmo b.ml
ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte
+ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] ocamldep.opt -modules main.mli > main.mli.depends
[cache hit] ocamlc.opt -c -o main.cmi main.mli
[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] ocamldep.opt -modules a.mli > a.mli.depends
[cache hit] ocamlc.opt -c -o a.cmi a.mli
[cache hit] ocamldep.opt -modules d.mli > d.mli.depends
[cache hit] ocamlc.opt -c -o d.cmi d.mli
[cache hit] ocamlc.opt -c -o main.cmo main.ml
[cache hit] ocamldep.opt -modules a.ml > a.ml.depends
[cache hit] ocamldep.opt -modules b.mli > b.mli.depends
[cache hit] ocamlc.opt -c -o b.cmi b.mli
[cache hit] ocamlc.opt -c -o a.cmo a.ml
[cache hit] ocamldep.opt -modules d.ml > d.ml.depends
[cache hit] ocamlc.opt -c -o d.cmo d.ml
[cache hit] ocamldep.opt -modules b.ml > b.ml.depends
[cache hit] ocamlc.opt -c -o b.cmo b.ml
[cache hit] ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte
+ cp b.mli.v2 b.mli
+ cp d.mli.v2 d.mli
+ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display
ocamldep.opt -modules d.mli > d.mli.depends
ocamlc.opt -c -o d.cmi d.mli
ocamlc.opt -c -o main.cmo main.ml
ocamldep.opt -modules b.mli > b.mli.depends
+ ocamldep.opt -modules b.mli > b.mli.depends
File "b.mli", line 1, characters 0-2:
Syntax error
Command exited with code 2.
+ cp b.mli.v1 b.mli
+ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display
ocamldep.opt -modules b.mli > b.mli.depends
ocamlc.opt -c -o b.cmi b.mli
ocamlc.opt -c -o d.cmo d.ml
ocamlc.opt -c -o b.cmo b.ml
ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte
+ ../../_build/ocamlbuild.native -no-skip main.byte -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] ocamldep.opt -modules main.mli > main.mli.depends
[cache hit] ocamlc.opt -c -o main.cmi main.mli
[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] ocamldep.opt -modules a.mli > a.mli.depends
[cache hit] ocamlc.opt -c -o a.cmi a.mli
[cache hit] ocamldep.opt -modules d.mli > d.mli.depends
[cache hit] ocamlc.opt -c -o d.cmi d.mli
[cache hit] ocamlc.opt -c -o main.cmo main.ml
[cache hit] ocamldep.opt -modules a.ml > a.ml.depends
[cache hit] ocamldep.opt -modules b.mli > b.mli.depends
[cache hit] ocamlc.opt -c -o b.cmi b.mli
[cache hit] ocamlc.opt -c -o a.cmo a.ml
[cache hit] ocamldep.opt -modules d.ml > d.ml.depends
[cache hit] ocamlc.opt -c -o d.cmo d.ml
[cache hit] ocamldep.opt -modules b.ml > b.ml.depends
[cache hit] ocamlc.opt -c -o b.cmo b.ml
[cache hit] ocamlc.opt d.cmo b.cmo a.cmo main.cmo -o main.byte
+ echo PASS
PASS
_____ _ _____
|_ _|__ ___| ||___ |
| |/ _ \/ __| __| / /
| | __/\__ \ |_ / /
|_|\___||___/\__/_/
+ CMDOPTS=
+ BUILD=../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display
+ BUILD1=../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display
+ BUILD2=../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
+ rm -rf _build
+ cp bb1.ml bb.ml
+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display
ocamlopt.opt -I /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild unix.cmxa /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuildlib.cmxa myocamlbuild.ml /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuild.cmx -o myocamlbuild
ocamldep.opt -modules bb.mli > bb.mli.depends
ocamlc.opt -c -o bb.cmi bb.mli
ocamldep.opt -modules bb.ml > bb.ml.depends
ocamldep.opt -modules cc.ml > cc.ml.depends
ocamldep.opt -modules aa.ml > aa.ml.depends
ocamldep.opt -modules c2.mli > c2.mli.depends
ocamlc.opt -c -o aa.cmo aa.ml
ocamlc.opt -c -o c2.cmi c2.mli
ocamlc.opt -c -o bb.cmo bb.ml
ocamlc.opt -c -o cc.cmo cc.ml
ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
ocamldep.opt -modules main.ml > main.ml.depends
ocamldep.opt -modules c3.ml > c3.ml.depends
ocamlc.opt -c -o c3.cmo c3.ml
ocamlc.opt -c -o main.cmo main.ml
ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
ocamldep.opt -modules c2.ml > c2.ml.depends
ocamlc.opt -c -o c2.cmo c2.ml
ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
ocamlopt.opt -c -o bb.cmx bb.ml
ocamlopt.opt -c -o aa.cmx aa.ml
ocamlopt.opt -c -o c2.cmx c2.ml
ocamlopt.opt -c -o cc.cmx cc.ml
ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
ocamlopt.opt -c -o c3.cmx c3.ml
ocamlopt.opt -c -o main.cmx main.ml
ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends
[cache hit] ocamlc.opt -c -o bb.cmi bb.mli
[cache hit] ocamldep.opt -modules bb.ml > bb.ml.depends
[cache hit] ocamlc.opt -c -o bb.cmo bb.ml
[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends
[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends
[cache hit] ocamlc.opt -c -o aa.cmo aa.ml
[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends
[cache hit] ocamlc.opt -c -o c2.cmi c2.mli
[cache hit] ocamlc.opt -c -o cc.cmo cc.ml
[cache hit] ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends
[cache hit] ocamlc.opt -c -o c3.cmo c3.ml
[cache hit] ocamlc.opt -c -o main.cmo main.ml
[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends
[cache hit] ocamlc.opt -c -o c2.cmo c2.ml
[cache hit] ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
[cache hit] ocamlopt.opt -c -o bb.cmx bb.ml
[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml
[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml
[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml
[cache hit] ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml
[cache hit] ocamlopt.opt -c -o main.cmx main.ml
[cache hit] ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
+ cp bb2.ml bb.ml
+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0
[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends
[cache hit] ocamlc.opt -c -o bb.cmi bb.mli
ocamldep.opt -modules bb.ml > bb.ml.depends
[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends
[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends
[cache hit] ocamlc.opt -c -o aa.cmo aa.ml
[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends
[cache hit] ocamlc.opt -c -o c2.cmi c2.mli
[cache hit] ocamlc.opt -c -o cc.cmo cc.ml
ocamlc.opt -c -o bb.cmo bb.ml
ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends
[cache hit] ocamlc.opt -c -o c3.cmo c3.ml
[cache hit] ocamlc.opt -c -o main.cmo main.ml
[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends
[cache hit] ocamlc.opt -c -o c2.cmo c2.ml
ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml
ocamlopt.opt -c -o bb.cmx bb.ml
[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml
ocamlopt.opt -c -o cc.cmx cc.ml
ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
ocamlopt.opt -c -o c3.cmx c3.ml
ocamlopt.opt -c -o main.cmx main.ml
ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends
[cache hit] ocamlc.opt -c -o bb.cmi bb.mli
[cache hit] ocamldep.opt -modules bb.ml > bb.ml.depends
[cache hit] ocamlc.opt -c -o bb.cmo bb.ml
[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends
[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends
[cache hit] ocamlc.opt -c -o aa.cmo aa.ml
[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends
[cache hit] ocamlc.opt -c -o c2.cmi c2.mli
[cache hit] ocamlc.opt -c -o cc.cmo cc.ml
[cache hit] ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends
[cache hit] ocamlc.opt -c -o c3.cmo c3.ml
[cache hit] ocamlc.opt -c -o main.cmo main.ml
[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends
[cache hit] ocamlc.opt -c -o c2.cmo c2.ml
[cache hit] ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
[cache hit] ocamlopt.opt -c -o bb.cmx bb.ml
[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml
[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml
[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml
[cache hit] ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml
[cache hit] ocamlopt.opt -c -o main.cmx main.ml
[cache hit] ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
+ cp bb3.ml bb.ml
+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0
[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends
[cache hit] ocamlc.opt -c -o bb.cmi bb.mli
ocamldep.opt -modules bb.ml > bb.ml.depends
[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends
[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends
[cache hit] ocamlc.opt -c -o aa.cmo aa.ml
[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends
[cache hit] ocamlc.opt -c -o c2.cmi c2.mli
[cache hit] ocamlc.opt -c -o cc.cmo cc.ml
ocamlc.opt -c -o bb.cmo bb.ml
ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends
[cache hit] ocamlc.opt -c -o c3.cmo c3.ml
[cache hit] ocamlc.opt -c -o main.cmo main.ml
[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends
[cache hit] ocamlc.opt -c -o c2.cmo c2.ml
ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml
ocamlopt.opt -c -o bb.cmx bb.ml
[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml
[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml
ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml
[cache hit] ocamlopt.opt -c -o main.cmx main.ml
ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
+ ../../_build/ocamlbuild.native bbcc.cma main.byte bbcc.cmxa main.native -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] ocamldep.opt -modules bb.mli > bb.mli.depends
[cache hit] ocamlc.opt -c -o bb.cmi bb.mli
[cache hit] ocamldep.opt -modules bb.ml > bb.ml.depends
[cache hit] ocamlc.opt -c -o bb.cmo bb.ml
[cache hit] ocamldep.opt -modules cc.ml > cc.ml.depends
[cache hit] ocamldep.opt -modules aa.ml > aa.ml.depends
[cache hit] ocamlc.opt -c -o aa.cmo aa.ml
[cache hit] ocamldep.opt -modules c2.mli > c2.mli.depends
[cache hit] ocamlc.opt -c -o c2.cmi c2.mli
[cache hit] ocamlc.opt -c -o cc.cmo cc.ml
[cache hit] ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
[cache hit] ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] ocamldep.opt -modules c3.ml > c3.ml.depends
[cache hit] ocamlc.opt -c -o c3.cmo c3.ml
[cache hit] ocamlc.opt -c -o main.cmo main.ml
[cache hit] ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
[cache hit] ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
[cache hit] ocamldep.opt -modules c2.ml > c2.ml.depends
[cache hit] ocamlc.opt -c -o c2.cmo c2.ml
[cache hit] ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
[cache hit] ocamlopt.opt -c -o bb.cmx bb.ml
[cache hit] ocamlopt.opt -c -o aa.cmx aa.ml
[cache hit] ocamlopt.opt -c -o c2.cmx c2.ml
[cache hit] ocamlopt.opt -c -o cc.cmx cc.ml
[cache hit] ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
[cache hit] ocamlopt.opt -c -o c3.cmx c3.ml
[cache hit] ocamlopt.opt -c -o main.cmx main.ml
[cache hit] ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
_____ _ ___
|_ _|__ ___| |_( _ )
| |/ _ \/ __| __/ _ \
| | __/\__ \ || (_) |
|_|\___||___/\__\___/
+ CMDOPTS=
+ BUILD=../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display
+ BUILD1=../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display
+ BUILD2=../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
+ rm -rf _build
+ ../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display
ocamlopt.opt -I /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild unix.cmxa /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuildlib.cmxa myocamlbuild.ml /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuild.cmx -o myocamlbuild
ocamldep.opt -modules a.ml > a.ml.depends
ocamldep.opt -modules myconfig.ml > myconfig.ml.depends
ocamlc.opt -c -o myconfig.cmo myconfig.ml
ocamlc.opt -c -o a.cmo a.ml
ocamlc.opt myconfig.cmo a.cmo -o a.byte
ocamlopt.opt -c -o myconfig.cmx myconfig.ml
ocamlopt.opt -c -o a.cmx a.ml
ocamlopt.opt myconfig.cmx a.cmx -o a.native
cp -p a.byte a
cp -p a.native a.opt
cp -p a.byte bin/a.byte
cp -p bin/a.byte bin/a
cp -p a.native bin/a.native
cp -p bin/a.native bin/a.opt
+ ../../_build/ocamlbuild.native a.byte a.native a a.opt bin/a bin/a.opt -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] ocamldep.opt -modules a.ml > a.ml.depends
[cache hit] ocamldep.opt -modules myconfig.ml > myconfig.ml.depends
[cache hit] ocamlc.opt -c -o myconfig.cmo myconfig.ml
[cache hit] ocamlc.opt -c -o a.cmo a.ml
[cache hit] ocamlc.opt myconfig.cmo a.cmo -o a.byte
[cache hit] ocamlopt.opt -c -o myconfig.cmx myconfig.ml
[cache hit] ocamlopt.opt -c -o a.cmx a.ml
[cache hit] ocamlopt.opt myconfig.cmx a.cmx -o a.native
[cache hit] cp -p a.byte a
[cache hit] cp -p a.native a.opt
[cache hit] cp -p a.byte bin/a.byte
[cache hit] cp -p bin/a.byte bin/a
[cache hit] cp -p a.native bin/a.native
[cache hit] cp -p bin/a.native bin/a.opt
_____ _ ___
|_ _|__ ___| |_ / _ \
| |/ _ \/ __| __| (_) |
| | __/\__ \ |_ \__, |
|_|\___||___/\__| /_/
++ dirname ./test9/test.sh
+ cd ./test9/../..
+ ./_build/ocamlbuild.native -quiet -build-dir _buildtest -no-links test/test9/testglob.native
+ ./_buildtest/test/test9/testglob.native
Globexp for "\"hello\"" OK
Globexp for "<hello>" OK
Globexp for "<hel*lo>" OK
Globexp for "<a> and <b> or <c>" OK
Globexp for "<a> titi" OK
Glob.eval "<[a]>" "a" = true OK
Glob.eval "<[a]>" "b" = false OK
Glob.eval "<[a]>" "a" = true OK
Glob.eval "<[a]>" "b" = false OK
Glob.eval "<[a]>" "a" = true OK
Glob.eval "<[a]>" "b" = false OK
Glob.eval "<[a-z]>" "a" = true OK
Glob.eval "<[a-z]>" "e" = true OK
Glob.eval "<[a-z]>" "k" = true OK
Glob.eval "<[a-z]>" "z" = true OK
Glob.eval "<[a-z]>" "0" = false OK
Glob.eval "<[a-z]>" "A" = false OK
Glob.eval "<[a-z]>" "~" = false OK
Glob.eval "<[a-z]>" "a" = true OK
Glob.eval "<[a-z]>" "e" = true OK
Glob.eval "<[a-z]>" "k" = true OK
Glob.eval "<[a-z]>" "z" = true OK
Glob.eval "<[a-z]>" "0" = false OK
Glob.eval "<[a-z]>" "A" = false OK
Glob.eval "<[a-z]>" "~" = false OK
Glob.eval "<[a-z]>" "a" = true OK
Glob.eval "<[a-z]>" "e" = true OK
Glob.eval "<[a-z]>" "k" = true OK
Glob.eval "<[a-z]>" "z" = true OK
Glob.eval "<[a-z]>" "0" = false OK
Glob.eval "<[a-z]>" "A" = false OK
Glob.eval "<[a-z]>" "~" = false OK
Glob.eval "<[a-z][0-9]>" "a0" = true OK
Glob.eval "<[a-z][0-9]>" "b9" = true OK
Glob.eval "<[a-z][0-9]>" "a00" = false OK
Glob.eval "<[a-z][0-9]>" "a0a" = false OK
Glob.eval "<[a-z][0-9]>" "b0a" = false OK
Glob.eval "<[a-z][0-9]>" "isduis" = false OK
Glob.eval "<[a-z][0-9]>" "" = false OK
Glob.eval "<[a-z][0-9]>" "a0" = true OK
Glob.eval "<[a-z][0-9]>" "b9" = true OK
Glob.eval "<[a-z][0-9]>" "a00" = false OK
Glob.eval "<[a-z][0-9]>" "a0a" = false OK
Glob.eval "<[a-z][0-9]>" "b0a" = false OK
Glob.eval "<[a-z][0-9]>" "isduis" = false OK
Glob.eval "<[a-z][0-9]>" "" = false OK
Glob.eval "<[a-z][0-9]>" "a0" = true OK
Glob.eval "<[a-z][0-9]>" "b9" = true OK
Glob.eval "<[a-z][0-9]>" "a00" = false OK
Glob.eval "<[a-z][0-9]>" "a0a" = false OK
Glob.eval "<[a-z][0-9]>" "b0a" = false OK
Glob.eval "<[a-z][0-9]>" "isduis" = false OK
Glob.eval "<[a-z][0-9]>" "" = false OK
Glob.eval "<hello>" "hello" = true OK
Glob.eval "<hello>" "helli" = false OK
Glob.eval "<hello>" "hello" = true OK
Glob.eval "<hello>" "helli" = false OK
Glob.eval "<hello>" "hello" = true OK
Glob.eval "<hello>" "helli" = false OK
Glob.eval "\"hello\"" "hello" = true OK
Glob.eval "\"hello\"" "heidi" = false OK
Glob.eval "\"hello\"" "hello" = true OK
Glob.eval "\"hello\"" "heidi" = false OK
Glob.eval "\"hello\"" "hello" = true OK
Glob.eval "\"hello\"" "heidi" = false OK
Glob.eval "<*>" "" = true OK
Glob.eval "<*>" "a" = true OK
Glob.eval "<*>" "ax" = true OK
Glob.eval "<*>" "" = true OK
Glob.eval "<*>" "a" = true OK
Glob.eval "<*>" "ax" = true OK
Glob.eval "<*>" "" = true OK
Glob.eval "<*>" "a" = true OK
Glob.eval "<*>" "ax" = true OK
Glob.eval "<a*b>" "ab" = true OK
Glob.eval "<a*b>" "acb" = true OK
Glob.eval "<a*b>" "axxxxxb" = true OK
Glob.eval "<a*b>" "ababbababb" = true OK
Glob.eval "<a*b>" "abx" = false OK
Glob.eval "<a*b>" "xxxxxab" = false OK
Glob.eval "<a*b>" "xab" = false OK
Glob.eval "<a*b>" "ab" = true OK
Glob.eval "<a*b>" "acb" = true OK
Glob.eval "<a*b>" "axxxxxb" = true OK
Glob.eval "<a*b>" "ababbababb" = true OK
Glob.eval "<a*b>" "abx" = false OK
Glob.eval "<a*b>" "xxxxxab" = false OK
Glob.eval "<a*b>" "xab" = false OK
Glob.eval "<a*b>" "ab" = true OK
Glob.eval "<a*b>" "acb" = true OK
Glob.eval "<a*b>" "axxxxxb" = true OK
Glob.eval "<a*b>" "ababbababb" = true OK
Glob.eval "<a*b>" "abx" = false OK
Glob.eval "<a*b>" "xxxxxab" = false OK
Glob.eval "<a*b>" "xab" = false OK
Glob.eval "<*.ml>" "hello.ml" = true OK
Glob.eval "<*.ml>" ".ml" = true OK
Glob.eval "<*.ml>" "ml" = false OK
Glob.eval "<*.ml>" "" = false OK
Glob.eval "<*.ml>" "toto.mli" = false OK
Glob.eval "<*.ml>" "hello.ml" = true OK
Glob.eval "<*.ml>" ".ml" = true OK
Glob.eval "<*.ml>" "ml" = false OK
Glob.eval "<*.ml>" "" = false OK
Glob.eval "<*.ml>" "toto.mli" = false OK
Glob.eval "<*.ml>" "hello.ml" = true OK
Glob.eval "<*.ml>" ".ml" = true OK
Glob.eval "<*.ml>" "ml" = false OK
Glob.eval "<*.ml>" "" = false OK
Glob.eval "<*.ml>" "toto.mli" = false OK
Glob.eval "<a>" "a" = true OK
Glob.eval "<a>" "" = false OK
Glob.eval "<a>" "aa" = false OK
Glob.eval "<a>" "ba" = false OK
Glob.eval "<a>" "ab" = false OK
Glob.eval "<a>" "abaa" = false OK
Glob.eval "<a>" "a" = true OK
Glob.eval "<a>" "" = false OK
Glob.eval "<a>" "aa" = false OK
Glob.eval "<a>" "ba" = false OK
Glob.eval "<a>" "ab" = false OK
Glob.eval "<a>" "abaa" = false OK
Glob.eval "<a>" "a" = true OK
Glob.eval "<a>" "" = false OK
Glob.eval "<a>" "aa" = false OK
Glob.eval "<a>" "ba" = false OK
Glob.eval "<a>" "ab" = false OK
Glob.eval "<a>" "abaa" = false OK
Glob.eval "<ab>" "ab" = true OK
Glob.eval "<ab>" "" = false OK
Glob.eval "<ab>" "abab" = false OK
Glob.eval "<ab>" "aba" = false OK
Glob.eval "<ab>" "abx" = false OK
Glob.eval "<ab>" "ab" = true OK
Glob.eval "<ab>" "" = false OK
Glob.eval "<ab>" "abab" = false OK
Glob.eval "<ab>" "aba" = false OK
Glob.eval "<ab>" "abx" = false OK
Glob.eval "<ab>" "ab" = true OK
Glob.eval "<ab>" "" = false OK
Glob.eval "<ab>" "abab" = false OK
Glob.eval "<ab>" "aba" = false OK
Glob.eval "<ab>" "abx" = false OK
Glob.eval "<ab?c>" "abac" = true OK
Glob.eval "<ab?c>" "abxc" = true OK
Glob.eval "<ab?c>" "abab" = false OK
Glob.eval "<ab?c>" "ababab" = false OK
Glob.eval "<ab?c>" "ababa" = false OK
Glob.eval "<ab?c>" "abac" = true OK
Glob.eval "<ab?c>" "abxc" = true OK
Glob.eval "<ab?c>" "abab" = false OK
Glob.eval "<ab?c>" "ababab" = false OK
Glob.eval "<ab?c>" "ababa" = false OK
Glob.eval "<ab?c>" "abac" = true OK
Glob.eval "<ab?c>" "abxc" = true OK
Glob.eval "<ab?c>" "abab" = false OK
Glob.eval "<ab?c>" "ababab" = false OK
Glob.eval "<ab?c>" "ababa" = false OK
Glob.eval "<*ab?cd*>" "123abecd345" = true OK
Glob.eval "<*ab?cd*>" "abccd" = true OK
Glob.eval "<*ab?cd*>" "abccd345" = true OK
Glob.eval "<*ab?cd*>" "ababcababccdab" = true OK
Glob.eval "<*ab?cd*>" "abcd" = false OK
Glob.eval "<*ab?cd*>" "aaaaabcdababcd" = false OK
Glob.eval "<*ab?cd*>" "123abecd345" = true OK
Glob.eval "<*ab?cd*>" "abccd" = true OK
Glob.eval "<*ab?cd*>" "abccd345" = true OK
Glob.eval "<*ab?cd*>" "ababcababccdab" = true OK
Glob.eval "<*ab?cd*>" "abcd" = false OK
Glob.eval "<*ab?cd*>" "aaaaabcdababcd" = false OK
Glob.eval "<*ab?cd*>" "123abecd345" = true OK
Glob.eval "<*ab?cd*>" "abccd" = true OK
Glob.eval "<*ab?cd*>" "abccd345" = true OK
Glob.eval "<*ab?cd*>" "ababcababccdab" = true OK
Glob.eval "<*ab?cd*>" "abcd" = false OK
Glob.eval "<*ab?cd*>" "aaaaabcdababcd" = false OK
Glob.eval "<*this*is*a*test*>" "this is a test" = true OK
Glob.eval "<*this*is*a*test*>" "You know this is a test really" = true OK
Glob.eval "<*this*is*a*test*>" "thisisatest" = true OK
Glob.eval "<*this*is*a*test*>" "thisatest" = false OK
Glob.eval "<*this*is*a*test*>" "this is a test" = true OK
Glob.eval "<*this*is*a*test*>" "You know this is a test really" = true OK
Glob.eval "<*this*is*a*test*>" "thisisatest" = true OK
Glob.eval "<*this*is*a*test*>" "thisatest" = false OK
Glob.eval "<*this*is*a*test*>" "this is a test" = true OK
Glob.eval "<*this*is*a*test*>" "You know this is a test really" = true OK
Glob.eval "<*this*is*a*test*>" "thisisatest" = true OK
Glob.eval "<*this*is*a*test*>" "thisatest" = false OK
Glob.eval "<b*>" "bxx" = true OK
Glob.eval "<b*>" "bx" = true OK
Glob.eval "<b*>" "aaab" = false OK
Glob.eval "<b*>" "" = false OK
Glob.eval "<b*>" "bxx" = true OK
Glob.eval "<b*>" "bx" = true OK
Glob.eval "<b*>" "aaab" = false OK
Glob.eval "<b*>" "" = false OK
Glob.eval "<b*>" "bxx" = true OK
Glob.eval "<b*>" "bx" = true OK
Glob.eval "<b*>" "aaab" = false OK
Glob.eval "<b*>" "" = false OK
Glob.eval "<*>" "" = true OK
Glob.eval "<*>" "a" = true OK
Glob.eval "<*>" "aaa" = true OK
Glob.eval "<*>" "aaaaa" = true OK
Glob.eval "<*>" "" = true OK
Glob.eval "<*>" "a" = true OK
Glob.eval "<*>" "aaa" = true OK
Glob.eval "<*>" "aaaaa" = true OK
Glob.eval "<*>" "" = true OK
Glob.eval "<*>" "a" = true OK
Glob.eval "<*>" "aaa" = true OK
Glob.eval "<*>" "aaaaa" = true OK
Glob.eval "<?>" "a" = true OK
Glob.eval "<?>" "" = false OK
Glob.eval "<?>" "aaa" = false OK
Glob.eval "<?>" "aaaaa" = false OK
Glob.eval "<?>" "a" = true OK
Glob.eval "<?>" "" = false OK
Glob.eval "<?>" "aaa" = false OK
Glob.eval "<?>" "aaaaa" = false OK
Glob.eval "<?>" "a" = true OK
Glob.eval "<?>" "" = false OK
Glob.eval "<?>" "aaa" = false OK
Glob.eval "<?>" "aaaaa" = false OK
Glob.eval "<{a,b}>" "a" = true OK
Glob.eval "<{a,b}>" "b" = true OK
Glob.eval "<{a,b}>" "" = false OK
Glob.eval "<{a,b}>" "aa" = false OK
Glob.eval "<{a,b}>" "ab" = false OK
Glob.eval "<{a,b}>" "ba" = false OK
Glob.eval "<{a,b}>" "bb" = false OK
Glob.eval "<{a,b}>" "c" = false OK
Glob.eval "<{a,b}>" "a" = true OK
Glob.eval "<{a,b}>" "b" = true OK
Glob.eval "<{a,b}>" "" = false OK
Glob.eval "<{a,b}>" "aa" = false OK
Glob.eval "<{a,b}>" "ab" = false OK
Glob.eval "<{a,b}>" "ba" = false OK
Glob.eval "<{a,b}>" "bb" = false OK
Glob.eval "<{a,b}>" "c" = false OK
Glob.eval "<{a,b}>" "a" = true OK
Glob.eval "<{a,b}>" "b" = true OK
Glob.eval "<{a,b}>" "" = false OK
Glob.eval "<{a,b}>" "aa" = false OK
Glob.eval "<{a,b}>" "ab" = false OK
Glob.eval "<{a,b}>" "ba" = false OK
Glob.eval "<{a,b}>" "bb" = false OK
Glob.eval "<{a,b}>" "c" = false OK
Glob.eval "<toto.{ml,mli}>" "toto.ml" = true OK
Glob.eval "<toto.{ml,mli}>" "toto.mli" = true OK
Glob.eval "<toto.{ml,mli}>" "toto." = false OK
Glob.eval "<toto.{ml,mli}>" "toto.mll" = false OK
Glob.eval "<toto.{ml,mli}>" "toto.ml" = true OK
Glob.eval "<toto.{ml,mli}>" "toto.mli" = true OK
Glob.eval "<toto.{ml,mli}>" "toto." = false OK
Glob.eval "<toto.{ml,mli}>" "toto.mll" = false OK
Glob.eval "<toto.{ml,mli}>" "toto.ml" = true OK
Glob.eval "<toto.{ml,mli}>" "toto.mli" = true OK
Glob.eval "<toto.{ml,mli}>" "toto." = false OK
Glob.eval "<toto.{ml,mli}>" "toto.mll" = false OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "acf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "acg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "adf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "adg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "aef" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "aeg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bef" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "beg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "afg" = false OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "af" = false OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "aee" = false OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "acf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "acg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "adf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "adg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "aef" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "aeg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bef" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "beg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "afg" = false OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "af" = false OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "aee" = false OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "acf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "acg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "adf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "adg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "aef" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "aeg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bcg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdf" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bdg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "bef" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "beg" = true OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "afg" = false OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "af" = false OK
Glob.eval "<{a,b}{c,[de]}{f,g}>" "aee" = false OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.ml" = true OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "b.ml" = true OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli" = true OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "hello.ml" = false OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli.x" = false OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.ml" = true OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "b.ml" = true OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli" = true OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "hello.ml" = false OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli.x" = false OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.ml" = true OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "b.ml" = true OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli" = true OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "hello.ml" = false OK
Glob.eval "(<*.ml> or <*.mli>) and not \"hello.ml\"" "a.mli.x" = false OK
Glob.eval "<*>" "alpha" = true OK
Glob.eval "<*>" "beta" = true OK
Glob.eval "<*>" "alpha/beta" = false OK
Glob.eval "<*>" "gamma/delta" = false OK
Glob.eval "<*>" "alpha" = true OK
Glob.eval "<*>" "beta" = true OK
Glob.eval "<*>" "alpha/beta" = false OK
Glob.eval "<*>" "gamma/delta" = false OK
Glob.eval "<*>" "alpha" = true OK
Glob.eval "<*>" "beta" = true OK
Glob.eval "<*>" "alpha/beta" = false OK
Glob.eval "<*>" "gamma/delta" = false OK
Glob.eval "<alpha/**/beta>" "alpha/beta" = true OK
Glob.eval "<alpha/**/beta>" "alpha/gamma/beta" = true OK
Glob.eval "<alpha/**/beta>" "alpha/gamma/delta/beta" = true OK
Glob.eval "<alpha/**/beta>" "alpha" = false OK
Glob.eval "<alpha/**/beta>" "beta" = false OK
Glob.eval "<alpha/**/beta>" "gamma/delta" = false OK
Glob.eval "<alpha/**/beta>" "alpha/beta" = true OK
Glob.eval "<alpha/**/beta>" "alpha/gamma/beta" = true OK
Glob.eval "<alpha/**/beta>" "alpha/gamma/delta/beta" = true OK
Glob.eval "<alpha/**/beta>" "alpha" = false OK
Glob.eval "<alpha/**/beta>" "beta" = false OK
Glob.eval "<alpha/**/beta>" "gamma/delta" = false OK
Glob.eval "<alpha/**/beta>" "alpha/beta" = true OK
Glob.eval "<alpha/**/beta>" "alpha/gamma/beta" = true OK
Glob.eval "<alpha/**/beta>" "alpha/gamma/delta/beta" = true OK
Glob.eval "<alpha/**/beta>" "alpha" = false OK
Glob.eval "<alpha/**/beta>" "beta" = false OK
Glob.eval "<alpha/**/beta>" "gamma/delta" = false OK
Glob.eval "<**/*.ml>" "toto.ml" = true OK
Glob.eval "<**/*.ml>" "toto/tata.ml" = true OK
Glob.eval "<**/*.ml>" "alpha/gamma/delta/beta.ml" = true OK
Glob.eval "<**/*.ml>" "toto.mli" = false OK
Glob.eval "<**/*.ml>" "toto.ml" = true OK
Glob.eval "<**/*.ml>" "toto/tata.ml" = true OK
Glob.eval "<**/*.ml>" "alpha/gamma/delta/beta.ml" = true OK
Glob.eval "<**/*.ml>" "toto.mli" = false OK
Glob.eval "<**/*.ml>" "toto.ml" = true OK
Glob.eval "<**/*.ml>" "toto/tata.ml" = true OK
Glob.eval "<**/*.ml>" "alpha/gamma/delta/beta.ml" = true OK
Glob.eval "<**/*.ml>" "toto.mli" = false OK
Glob.eval "<toto/**>" "toto/" = true OK
Glob.eval "<toto/**>" "toto/tata" = true OK
Glob.eval "<toto/**>" "toto/alpha/gamma/delta/beta.ml" = true OK
Glob.eval "<toto/**>" "toto" = true OK
Glob.eval "<toto/**>" "toto2/tata" = false OK
Glob.eval "<toto/**>" "tata/titi" = false OK
Glob.eval "<toto/**>" "toto/" = true OK
Glob.eval "<toto/**>" "toto/tata" = true OK
Glob.eval "<toto/**>" "toto/alpha/gamma/delta/beta.ml" = true OK
Glob.eval "<toto/**>" "toto" = true OK
Glob.eval "<toto/**>" "toto2/tata" = false OK
Glob.eval "<toto/**>" "tata/titi" = false OK
Glob.eval "<toto/**>" "toto/" = true OK
Glob.eval "<toto/**>" "toto/tata" = true OK
Glob.eval "<toto/**>" "toto/alpha/gamma/delta/beta.ml" = true OK
Glob.eval "<toto/**>" "toto" = true OK
Glob.eval "<toto/**>" "toto2/tata" = false OK
Glob.eval "<toto/**>" "tata/titi" = false OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/bar/libfoo.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibs/unix/libunix.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibsliblib/unlibix/libunix.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "bar" = None OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libbar/foo.a" = None OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.b.a" = None OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/bar/libfoo.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibs/unix/libunix.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibsliblib/unlibix/libunix.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "bar" = None OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libbar/foo.a" = None OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.b.a" = None OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/bar/libfoo.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibs/unix/libunix.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "otherlibsliblib/unlibix/libunix.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "bar" = None OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libbar/foo.a" = None OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "libfoo.b.a" = None OK
_____ _ __ ___ _ _
|_ _|__ ___| |_ \ \ / (_)_ __| |_ _ _ __ _| |
| |/ _ \/ __| __| \ \ / /| | '__| __| | | |/ _` | |
| | __/\__ \ |_ \ V / | | | | |_| |_| | (_| | |
|_|\___||___/\__| \_/ |_|_| \__|\__,_|\__,_|_|
_____ _
|_ _|_ _ _ __ __ _ ___| |_ ___
| |/ _` | '__/ _` |/ _ \ __/ __|
| | (_| | | | (_| | __/ |_\__ \
|_|\__,_|_| \__, |\___|\__|___/
|___/
+ CMDOPTS=
+ BUILD=../../_build/ocamlbuild.native bar -no-skip -classic-display
+ BUILD1=../../_build/ocamlbuild.native bar -no-skip -classic-display
+ BUILD2=../../_build/ocamlbuild.native bar -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
+ rm -rf _build
+ cp foo1 foo
+ ../../_build/ocamlbuild.native bar -no-skip -classic-display
ocamlopt.opt -I /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild unix.cmxa /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuildlib.cmxa myocamlbuild.ml /Users/ertai/l/ocaml/ocamlbuild-unstable/ocamlbuild/_install/lib/ocamlbuild/ocamlbuild.cmx -o myocamlbuild
cp foo bar
+ ../../_build/ocamlbuild.native bar -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] cp foo bar
+ cp foo2 foo
+ ../../_build/ocamlbuild.native bar -no-skip -classic-display -verbose 0
cp foo bar
+ ../../_build/ocamlbuild.native bar -no-skip -classic-display -verbose 0 -nothing-should-be-rebuilt
[cache hit] cp foo bar
+ rm foo