Blob Blame History Raw
 _____         _   ____
|_   _|__  ___| |_|___ \
  | |/ _ \/ __| __| __) |
  | |  __/\__ \ |_ / __/
  |_|\___||___/\__|_____|

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.opt -modules vivi.ml > vivi.ml.depends
ocamlc.opt -c -o tyty.cmi tyty.mli
ocamlc.opt -c -pp camlp4o.opt -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.opt -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: /home/danmey/src/ocaml-trunk/ocamlbuild/test/test2/_build/toto.native: Hello world!!!
Tutu.tutu => 1
Tata.tata => "TATA2"
[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.opt -modules vivi.ml > vivi.ml.depends
[cache hit] ocamlc.opt -c -pp camlp4o.opt -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.opt -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: /home/danmey/src/ocaml-trunk/ocamlbuild/test/test2/_build/toto.native: Hello world!!!
Tutu.tutu => 1
Tata.tata => "TATA2"
ocamldep.opt -pp camlp4o.opt -modules vivi.ml > vivi.ml.depends
ocamlc.opt -c -pp camlp4o.opt -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.opt -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: /home/danmey/src/ocaml-trunk/ocamlbuild/test/test2/_build/toto.native: Hello world!!!
Tutu.tutu => 1
Tata.tata => "TATA2"
[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.opt -modules vivi.ml > vivi.ml.depends
[cache hit] ocamlc.opt -c -pp camlp4o.opt -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.opt -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: /home/danmey/src/ocaml-trunk/ocamlbuild/test/test2/_build/toto.native: Hello world!!!
Tutu.tutu => 1
Tata.tata => "TATA2"
ocamldep.opt -pp camlp4o.opt -modules vivi.ml > vivi.ml.depends
ocamlc.opt -c -pp camlp4o.opt -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.opt -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: /home/danmey/src/ocaml-trunk/ocamlbuild/test/test2/_build/toto.native: Hello world!!!
Tutu.tutu => 2
Tata.tata => "TATA2"
[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.opt -modules vivi.ml > vivi.ml.depends
[cache hit] ocamlc.opt -c -pp camlp4o.opt -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.opt -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: /home/danmey/src/ocaml-trunk/ocamlbuild/test/test2/_build/toto.native: Hello world!!!
Tutu.tutu => 2
Tata.tata => "TATA2"
 _____         _   _____
|_   _|__  ___| |_|___ /
  | |/ _ \/ __| __| |_ \
  | |  __/\__ \ |_ ___) |
  |_|\___||___/\__|____/

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
[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
 _____         _   _  _
|_   _|__  ___| |_| || |
  | |/ _ \/ __| __| || |_
  | |  __/\__ \ |_|__   _|
  |_|\___||___/\__|  |_|

aa.mli.depends
aa.mli
aa.ml.depends
bb.ml.depends
bb.ml
aa.ml
aa.byte
bb.ml
aa.ml
aa.native
[cache hit] aa.mli.depends
[cache hit] aa.mli
[cache hit] aa.ml.depends
[cache hit] bb.ml.depends
[cache hit] bb.ml
[cache hit] aa.ml
[cache hit] aa.byte
[cache hit] bb.ml
[cache hit] aa.ml
[cache hit] aa.native
 _____         _   ____
|_   _|__  ___| |_| ___|
  | |/ _ \/ __| __|___ \
  | |  __/\__ \ |_ ___) |
  |_|\___||___/\__|____/

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
+ /home/danmey/src/ocaml-trunk/bin/ocamlc.opt stack.cmo c.cmo d.cmo -o d.byte
File "stack.cmo", line 1:
Warning 31: files stack.cmo and /home/danmey/src/ocaml-trunk/lib/ocaml/stdlib.cma(Stack) both define a module named Stack
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
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
[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] 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
 _____         _    __
|_   _|__  ___| |_ / /_
  | |/ _ \/ __| __| '_ \
  | |  __/\__ \ |_| (_) |
  |_|\___||___/\__|\___/

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
[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
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
+ /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules b.mli > b.mli.depends
File "b.mli", line 13, characters 0-2:
Error: Syntax error
Command exited with code 2.
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
[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
PASS
 _____         _  _____
|_   _|__  ___| ||___  |
  | |/ _ \/ __| __| / /
  | |  __/\__ \ |_ / /
  |_|\___||___/\__/_/

ocamlbuild.cmx -o myocamlbuild
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.mli > bb.mli.depends
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmi bb.mli
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.ml > bb.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cc.ml > cc.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules aa.ml > aa.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.mli > c2.mli.depends
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o aa.cmo aa.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmi c2.mli
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmo bb.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cc.cmo cc.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules main.ml > main.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c3.ml > c3.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c3.cmo c3.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o main.cmo main.ml
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.ml > c2.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmo c2.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o bb.cmx bb.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o aa.cmx aa.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c2.cmx c2.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o cc.cmx cc.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c3.cmx c3.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o main.cmx main.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.mli > bb.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmi bb.mli
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.ml > bb.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmo bb.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cc.ml > cc.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules aa.ml > aa.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o aa.cmo aa.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.mli > c2.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmi c2.mli
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cc.cmo cc.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c3.ml > c3.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c3.cmo c3.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o main.cmo main.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.ml > c2.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmo c2.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o bb.cmx bb.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o aa.cmx aa.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c2.cmx c2.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o cc.cmx cc.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c3.cmx c3.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o main.cmx main.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.mli > bb.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmi bb.mli
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.ml > bb.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cc.ml > cc.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules aa.ml > aa.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o aa.cmo aa.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.mli > c2.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmi c2.mli
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cc.cmo cc.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmo bb.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c3.ml > c3.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c3.cmo c3.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o main.cmo main.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.ml > c2.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmo c2.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o aa.cmx aa.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o bb.cmx bb.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c2.cmx c2.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o cc.cmx cc.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c3.cmx c3.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o main.cmx main.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.mli > bb.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmi bb.mli
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.ml > bb.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmo bb.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cc.ml > cc.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules aa.ml > aa.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o aa.cmo aa.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.mli > c2.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmi c2.mli
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cc.cmo cc.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c3.ml > c3.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c3.cmo c3.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o main.cmo main.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.ml > c2.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmo c2.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o bb.cmx bb.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o aa.cmx aa.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c2.cmx c2.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o cc.cmx cc.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c3.cmx c3.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o main.cmx main.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.mli > bb.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmi bb.mli
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.ml > bb.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cc.ml > cc.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules aa.ml > aa.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o aa.cmo aa.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.mli > c2.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmi c2.mli
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cc.cmo cc.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmo bb.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c3.ml > c3.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c3.cmo c3.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o main.cmo main.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.ml > c2.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmo c2.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o aa.cmx aa.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o bb.cmx bb.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c2.cmx c2.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o cc.cmx cc.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c3.cmx c3.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o main.cmx main.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.mli > bb.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmi bb.mli
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules bb.ml > bb.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o bb.cmo bb.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cc.ml > cc.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules aa.ml > aa.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o aa.cmo aa.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.mli > c2.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmi c2.mli
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cc.cmo cc.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -a bb.cmo cc.cmo -o bbcc.cma
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules main.ml > main.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c3.ml > c3.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c3.cmo c3.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o main.cmo main.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules cool_plugin.ml > cool_plugin.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o cool_plugin.cmo cool_plugin.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules c2.ml > c2.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o c2.cmo c2.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt aa.cmo c2.cmo bbcc.cma c3.cmo main.cmo cool_plugin.cmo -o main.byte
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o bb.cmx bb.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o aa.cmx aa.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c2.cmx c2.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o cc.cmx cc.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -a bb.cmx cc.cmx -o bbcc.cmxa
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o c3.cmx c3.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o main.cmx main.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt aa.cmx c2.cmx bbcc.cmxa c3.cmx main.cmx -o main.native
 _____         _   ___
|_   _|__  ___| |_( _ )
  | |/ _ \/ __| __/ _ \
  | |  __/\__ \ || (_) |
  |_|\___||___/\__\___/

ocamlbuild.cmx -o myocamlbuild
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules a.ml > a.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules myconfig.ml > myconfig.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o myconfig.cmo myconfig.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o a.cmo a.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt myconfig.cmo a.cmo -o a.byte
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o myconfig.cmx myconfig.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o a.cmx a.ml
/home/danmey/src/ocaml-trunk/bin/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
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules a.ml > a.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules myconfig.ml > myconfig.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o myconfig.cmo myconfig.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -o a.cmo a.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt myconfig.cmo a.cmo -o a.byte
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o myconfig.cmx myconfig.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -o a.cmx a.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/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
 _____         _    ___
|_   _|__  ___| |_ / _ \
  | |/ _ \/ __| __| (_) |
  | |  __/\__ \ |_ \__, |
  |_|\___||___/\__|  /_/

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" "libfoo/libbar.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/libfoo/boo/libbar.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" "libfoo/libbar.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/libfoo/boo/libbar.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" "libfoo/libbar.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/libfoo/boo/libbar.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
 _____         _   _  ___
|_   _|__  ___| |_/ |/ _ \
  | |/ _ \/ __| __| | | | |
  | |  __/\__ \ |_| | |_| |
  |_|\___||___/\__|_|\___/

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" "libfoo/libbar.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/libfoo/boo/libbar.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" "libfoo/libbar.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/libfoo/boo/libbar.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" "libfoo/libbar.a" OK
Resource.matchit "%(path:<**/>)lib%(libname:<*> and not <*.*>).a" "src/libfoo/boo/libbar.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
 _____         _   _ _
|_   _|__  ___| |_/ / |
  | |/ _ \/ __| __| | |
  | |  __/\__ \ |_| | |
  |_|\___||___/\__|_|_|

ocamlbuild.cmx -o myocamlbuild
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules a/aa.mli > a/aa.mli.depends
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -I a -I b -o a/aa.cmi a/aa.mli
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules a/aa.ml > a/aa.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules b/bb.ml > b/bb.ml.depends
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -I b -I a -o b/bb.cmo b/bb.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -I a -I b -o a/aa.cmo a/aa.ml
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt -a b/bb.cmo -o b/libb.cma
/home/danmey/src/ocaml-trunk/bin/ocamlc.opt b/libb.cma a/aa.cmo -o a/aa.byte
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -I b -I a -o b/bb.cmx b/bb.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -I a -I b -o a/aa.cmx a/aa.ml
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -a b/bb.cmx -o b/libb.cmxa
/home/danmey/src/ocaml-trunk/bin/ocamlopt.opt b/libb.cmxa a/aa.cmx -o a/aa.native
looks if libs are there
_build/b/libb.a
_build/b/libb.cma
_build/b/libb.cmxa
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules a/aa.mli > a/aa.mli.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -I a -I b -o a/aa.cmi a/aa.mli
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules a/aa.ml > a/aa.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamldep.opt -modules b/bb.ml > b/bb.ml.depends
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -I b -I a -o b/bb.cmo b/bb.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -c -I a -I b -o a/aa.cmo a/aa.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt -a b/bb.cmo -o b/libb.cma
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlc.opt b/libb.cma a/aa.cmo -o a/aa.byte
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -I b -I a -o b/bb.cmx b/bb.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -c -I a -I b -o a/aa.cmx a/aa.ml
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt -a b/bb.cmx -o b/libb.cmxa
[cache hit] /home/danmey/src/ocaml-trunk/bin/ocamlopt.opt b/libb.cmxa a/aa.cmx -o a/aa.native
 _____         _   _ ____
|_   _|__  ___| |_/ |___ \
  | |/ _ \/ __| __| | __) |
  | |  __/\__ \ |_| |/ __/
  |_|\___||___/\__|_|_____|

ocamldep.opt -modules Main.ml > Main.ml.depends
Packed.ml.depends
Lib.mli.depends
Lib.mli
Packed.ml
Packed.cmo -o Pack.cmo
ocamlc.opt -c -I lib -o Main.cmo Main.ml
Lib.ml.depends
Lib.ml
Packed.ml
Packed.cmx -o Pack.cmx  ; then  rm -f Pack.mli  ; else  rm -f Pack.mli  ; exit 1; fi
ocamlopt.opt -c -I lib -o Main.cmx Main.ml
Lib.cmx Pack.cmx Main.cmx -o Main.native
Lib.ml
Lib.cmo Pack.cmo Main.cmo -o Main.byte
looks if executable are there
_build/Main.byte
_build/Main.byte
_build/Main.native
 _____         _    __     ___      _               _
|_   _|__  ___| |_  \ \   / (_)_ __| |_ _   _  __ _| |
  | |/ _ \/ __| __|  \ \ / /| | '__| __| | | |/ _` | |
  | |  __/\__ \ |_    \ V / | | |  | |_| |_| | (_| | |
  |_|\___||___/\__|    \_/  |_|_|   \__|\__,_|\__,_|_|

 _____                    _
|_   _|_ _ _ __ __ _  ___| |_ ___
  | |/ _` | '__/ _` |/ _ \ __/ __|
  | | (_| | | | (_| |  __/ |_\__ \
  |_|\__,_|_|  \__, |\___|\__|___/
               |___/