We use "MPR#$N" to denote the ticket number $N on the Mantis bugtracker:
  http://caml.inria.fr/mantis/view.php?id=$N
and OGPR#$N to denote the github pull issue against the OCaml repository
  https://github.com/ocaml/ocaml/pull/$N

The form #$N indicates an issue on the github ocamlbuild repository,
  https://github.com/ocaml/ocamlbuild/issues/$N
  https://github.com/ocaml/ocamlbuild/pulls/$N
We also use PR#$N for pull requests.

Changes breaking compatibility are marked with a "* " bullet instead
of the usual "- ".

0.9.2 (1 May 2016):
-------------------

OCamlbuild 0.9.2 is a release to support OCaml 4.03. Martin Neuhäußer
contributed new flags for flambda-specific optimization options. We
also extend the scope of the flags -opaque and -for-pack, to align
with 4.03 best practices. Note that OCamlbuild should still work
correctly under older OCaml releases.

- #67: Add support for flambda's optimization parameters
  The flags are named according to the flambda options with two exceptions:
    optimization_rounds(int) for -rounds <int>
    optimize({2,3,classic}) for -O{2,3,classic}
  (Martin Neuhäußer)
- #70 (pratial): fix hygiene complains about the build directory under
  Windows
  (Andreas Hauptmann, Gabriel Scherer)
- #73: also pass predicates(foo) to ocamldep
  (Jérémie Dimino)
- extend the scope of the -opaque flag under 4.03
  (Gabriel Scherer)
- extend the scope of the -for-pack flag to ocamlc,
  as recommend by OCaml compiler maintainers in
  [PR#5996](http://caml.inria.fr/mantis/view.php?id=5995#c13339)
  (Gabriel Scherer)

0.9.1 (29 Feb 2016):
--------------------

OCamlbuild 0.9.1 synchronizes the behavior of ocamlbuild with
changes in the OCaml compiler that are present in the 4.03 release
branch; this version that should be usable for testing packages using
4.03 before its release.

- Do not exclude files whose name starts with '_' from the source tree
  (Gabriel Scherer, report by Daniel Bünzli on the caml-list)
- #44: When ocamlbuild discovers a cycle in the dependencies, the
   displayed problematic path is now refined to the actual cycle
  (François Bobot, review by Armaël Géneau)
- #51: synchronize handling of -o flag for C files with upstream OCaml
  (whitequark)

OCamlbuild 0.9.0 (19 Jan 2016):
-------------------------------

OCamlbuild 0.9.0 is an experimental release designed to help testing
OCaml software in preparation for the 4.03 release -- the first one to
not include ocamlbuild.

- MPR#6794, MPR#6809: pass package-specific include flags when building C files
  (Jérémie Dimino, request by whitequark)
- OGPR#208: add "asm" tag to ocamlbuild to enable flag -S
  (ygrek)
- Changed OCamlbuild's license to LGPLv2 with static linking exception.
- OGPR#219: speedup target-already-built builds
  (ygrek)
- MPR#6605, OGPR#117: un-hardcode camlp4 library path
  (Vincent Laporte and Gabriel Scherer)
- #20: add -dot and -man-related ocamldoc options
  (Gabriel Scherer)
- #10, PR#21: Fix manpages generation: properly pass the "manpage" tag.
  (Armaël Guéneau)
- #20: add -documentation support for parametrized flag
  (Gabriel Scherer, review by Rudi Grinberg and François Bobot)
- #10, #35: Use extension-independent tags for ocamldoc rules.
  (Armaël Guéneau)



OCamlbuild was included in the OCaml compiler distribution between
OCaml 3.10.0 (May 2007) and OCaml 4.02.3 (July 2015). The changes
below correspond to the subset of ocamlbuild-related changes in those
OCaml releases.
-------------------------------------------------------------------------


OCaml 4.02.3 (27 Jul 2015):
---------------------------

OCaml 4.02.2 (17 Jun 2015):
---------------------------

OCamlbuild:
- MPR#6237: explicit "infer" tag to control or disable menhir --infer
  (Hugo Heuzard)
- MPR#6625: pass -linkpkg to files built with -output-obj.
  (whitequark)
- MPR#6702: explicit "linkpkg" and "dontlink(foo)" flags
  (whitequark, Gabriel Scherer)
- MPR#6712: Ignore common VCS directories
  (whitequark)
- MPR#6720: pass -g to C compilers when tag 'debug' is set
  (whitequark, Gabriel Scherer)
- MPR#6733: add .byte.so and .native.so targets to pass
  -output-obj -cclib -shared.
  (whitequark)
- MPR#6733: "runtime_variant(X)" to pass -runtime-variant X option.
  (whitequark)
- MPR#6774: new menhir-specific flags "only_tokens" and "external_tokens(Foo)"
  (François Pottier)

Bug fixes:
- MPR#6626: ocamlbuild on cygwin cannot find ocamlfind
  (Gergely Szilvasy)
- MPR#6640: ocamlbuild: wrong "unused tag" warning on "precious"
  (report by user 'william')
- MPR#6652: ocamlbuild -clean does not print a newline after output
  (Damien Doligez, report by Andi McClure)
- MPR#6793: ocamlbuild passes nonsensical "-ocamlc ..." commands to menhir
  (Gabriel Scherer, report by Damien Doligez)
- MPR#6893: ocamlbuild:  "tag not used" warning when using (p)dep
  (Gabriel Scherer, report by Christiano Haesbaert)

OCaml 4.02.1 (14 Oct 2014):
---------------------------

Bug Fixes:
- MPR#6599: ocamlbuild: add -bin-annot when using -pack
  (Christopher Zimmermann)
- ocamlbuild: add an -ocamlmklib option to change the ocamlmklib command
  (Jérôme Vouillon)

OCaml 4.02.0 (29 Aug 2014):
---------------------------

Bug fixes:
- MPR#5406 ocamlbuild: "tag 'package' does not expect a parameter"
  (Gabriel Scherer)
- MPR#6184: ocamlbuild: `ocamlfind ocamldep` does not support -predicate
  (Jacques-Pascal Deplaix)
- MPR#6300: ocamlbuild -use-ocamlfind conflicts with -ocamlc
  (Gabriel Scherer)
- MPR#6482: ocamlbuild fails when _tags file in unhygienic directory
  (Gabriel Scherer)
- MPR#6502: ocamlbuild spurious warning on "use_menhir" tag
  (Xavier Leroy)

Features wishes:
- MPR#5201: ocamlbuild: add --norc to the bash invocation to help performances
  (Daniel Weil)
- MPR#6087: ocamlbuild, improve _tags parsing of escaped newlines
  (Gabriel Scherer, request by Daniel Bünzli)
- MPR#6109: Typos in ocamlbuild error messages
  (Gabriel Kerneis)
- MPR#6166: document -ocamldoc option of ocamlbuild
  (Xavier Clerc)
- MPR#6187: ocamlbuild: warn when using -plugin-tag(s) without myocamlbuild.ml
  (Jacques-Pascal Deplaix)
- MPR#6495: ocamlbuild tags 'safe_string', 'unsafe_string'
  (Anil Madhavapeddy)
- make ocamldebug -I auto-detection work with ocamlbuild
  (Josh Watzman)

OCaml 4.01.0 (12 Sep 2013):
---------------------------

Bug fixes:
- MPR#4469: emacs mode: caml-set-compile-command is annoying with ocamlbuild
  (Daniel Bünzli)
- MPR#4502: ocamlbuild now reliably excludes the build-dir from hygiene check
  (Gabriel Scherer, report by Romain Bardou)
- MPR#5102: ocamlbuild fails when using an unbound variable in rule dependency
  (Xavier Clerc, report by Daniel Bünzli)
- MPR#5212: Improve ocamlbuild error messages of _tags parser
  (ygrek)
- MPR#5300: ocamlbuild: verbose parameter should implicitly set classic display
  (Xavier Clerc, report by Robert Jakob)
- MPR#5468: ocamlbuild should preserve order of parametric tags
  (Wojciech Meyer, report by Dario Texeira)
- MPR#5763: ocamlbuild does not give correct flags when running menhir
  (Gabriel Scherer, reported by Philippe Veber)
- MPR#5891: ocamlbuild: support rectypes tag for mlpack
  (Khoo Yit Phang)
- MPR#6058: 'ocamlbuild -use-ocamlfind -tag thread -package threads t.cma' fails
  (Gabriel Scherer, report by Hezekiah M. Carty)
- MPR#6109: Typos in ocamlbuild error messages
  (Gabriel Kerneis)

Feature wishes:
- MPR#5243: improve the ocamlbuild API documentation in signatures.mli
  (Christophe Troestler)
- MPR#6059: add -output-obj rules for ocamlbuild
  (Anil Madhavapeddy)
- MPR#6060: ocamlbuild tags 'principal', 'strict_sequence' and 'short_paths'
  (Anil Madhavapeddy)
- ocamlbuild tag 'no_alias_deps'
  (Daniel Bünzli)

Tools:
- OCamlbuild now features a bin_annot tag to generate .cmt files.
  (Jonathan Protzenko)
- OCamlbuild now features a strict_sequence tag to trigger the
  strict-sequence option.
  (Jonathan Protzenko)
- OCamlbuild now picks the non-core tools like ocamlfind and menhir from PATH
  (Wojciech Meyer)

OCaml 4.00.1 (5 Oct 2012):
--------------------------

Bug fixes:
- MPR#5468: ocamlbuild should preserve order of parametric tags


OCaml 4.00.0 (26 Jul 2012):
---------------------------

Bug Fixes:
- MPR#5305: prevent ocamlbuild from complaining about links to _build/
- MPR#5356: ocamlbuild handling of 'predicates' for ocamlfind
- MPR#5435: ocamlbuild does not find .opt executables on Windows
- MPR#5503: error when ocamlbuild is passed an absolute path as build directory
- MPR#5531: Allow ocamlbuild to add ocamldoc flags through -docflag
- MPR#5604: fix permissions of files created by ocamlbuild itself
- MPR#5616: move ocamlbuild documentation to the reference manual
- MPR#5655: ocamlbuild doesn't pass cflags when building C stubs


OCaml 3.12.1 (4 Jul 2011):
--------------------------

Bug fixes:
- MPR#4380: ocamlbuild should not use tput on windows
- MPR#4552: ocamlbuild does not create symlinks when using '.itarget' file
- MPR#4967: ocamlbuild passes wrong switches to ocamldep through menhir
- MPR#5039: ocamlbuild should use '-linkpkg' only when linking programs
- MPR#5095: ocamlbuild ignores some tags when building bytecode objects
- MPR#5100: ocamlbuild always rebuilds a 'cmxs' file
- MPR#5103: build and install objinfo when building with ocamlbuild
- MPR#5165: ocamlbuild does not pass '-thread' option to ocamlfind
- MPR#5213: ocamlbuild should pass '-rectypes' to ocamldoc when needed

Feature wishes:
- MPR#5065: added '-ocamldoc' option to ocamlbuild
- MPR#5139: added possibility to add options to ocamlbuild
- ocamlbuild: allow dependency on file "_oasis"

Other changes:
- Changed default minor heap size from 32k to 256k words.
- Added new operation 'compare_ext' to custom blocks, called when
  comparing a custom block value with an unboxed integer.


Objective Caml 3.12.0 (2 Aug 2010):
-----------------------------------

Ocamlbuild:
- Add support for native dynlink.

All tools:
- MPR#4857: add a -vnum option to display the version number and nothing else

Objective Caml 3.11.2 (20 Jan 2010):
------------------------------------

Bug fixes:
- MPR#4421: ocamlbuild uses wrong compiler for C files
- MPR#4710, MPR#4720: ocamlbuild does not use properly configuration information
- MPR#4856: ocamlbuild uses ocamlrun to execute a native plugin
- MPR#4873: ocamlbuild ignores "thread" tag when building a custom toplevel
- MPR#4890: ocamlbuild tries to use native plugin on bytecode-only arch
- MPR#4896: ocamlbuild should always pass -I to tools for external libraries
- MPR#4922: ocamlbuild recompiles too many files
- Various build problems with ocamlbuild under Windows with msvc

Feature wishes:
- MPR#4723: "clear_rules" function to empty the set of ocamlbuild rules

Objective Caml 3.11.1 (12 Jun 2009):
------------------------------------

- ocamlbuild: incorrectly using the compile-time value of $OCAMLLIB


Objective Caml 3.11.0 (03 Dec 2008):
------------------------------------

Objective Caml 3.10.2 (29 Feb 2008):
------------------------------------

Objective Caml 3.10.1 (11 Jan 2008):
------------------------------------

- MPR#4286 ocamlbuild: cannot compile under AIX and SunOS
- MPR#4304 ocamlbuild: handle -I correctly
- MPR#4313 ocamlbuild: -log and missing directories
- MPR#4327 ocamlbuild: make emacs look for .annot in _build directory
- MPR#4378 ocamlbuild: typo in plugin.ml
- MPR#4379 ocamlbuild: problem with plugins under Windows
- MPR#4387 ocamlbuild: build directory not used properly
- MPR#4410 ocamlbuild: problem with plugin and -build


Objective Caml 3.10.0 (18 May 2007):
------------------------------------

New tools:
- ocamlbuild: compilation manager for OCaml applications and libraries.
  See draft documentation at http://gallium.inria.fr/~pouillar/



The content below corresponds to the old Changelog, before ocamlbuild was
included in the OCaml distribution. The version control history of those changes
is unfortunately lost, but the log below is kept for historical purposes.

(The use of a "* " bullet below does not indicate
a compatibility-breaking change, it was just the standard format for
this Changelog.)
-------------------------------------------------------------------------


2007-03-22  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Allow to receive the build function in {custom,file}_rule.

	* rule.ml,
	* rule.mli,
	* signatures.mli: Ditto.
	* ocaml_specific.ml: Update.

	* command.ml,
	* command.mli: Add a function to get string and tags.

	* ocamldep.ml,
	* ocamldep.mli: Make tag based dependencies.

	* ocaml_compiler.ml: Do the pack as one command to be sure running the
	remove.

	* test/test8/myocamlbuild.ml,
	* test/good-output: Update.

2007-03-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix the previous fix.

	* ocaml_compiler.ml: Remove the empty file.
	* test/good-output: Update.

2007-03-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	[native pack] use touch instead of mv and cmp.

	* ocaml_compiler.ml: This version is will force ocamlopt to do the
	right thing.
	* test/good-output: Update.

2007-03-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Two bugs, two fixes.

	* ocaml_tools.ml: Add pp flags to interface inference.
	* ocaml_specific.ml: Add a rule for packing with a cmi that already
	exists.
	* test/good-output: Update.
	* Makefile: Change the default location.

2007-03-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix a bug in expand_module.

	* ocaml_utils.ml: Handle correctly pathnames instead of just basenames.

2007-03-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use sys_file_exists instead of Sys.file_exists.

	* my_unix.ml: Since Sys.file_exists don't treat well captial letters.
	* my_std.ml: Fix a bug.
	* pathname.ml: Here is a an exception to the previous rule so, put a
	comment.

2007-03-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix the List.union order.

	* my_std.ml: Fix and improve List.union.
	* pathname.ml: Use it and fix merge_include_dirs.
	* test/good-output: Update since the union order was wrong.

2007-03-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Re fix menhir and include dirs.

	* ocaml_tools.ml: Specifiy ocamlc and -I with --ocamlc.

2007-03-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix a bug: Add include directories to menhir.

	* ocaml_tools.ml: Ditto.
	* my_std.ml,
	* signatures.mli: Specification typo.

2007-03-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Handle specially archives files during an import.

	* shell.ml: Ditto.

2007-03-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use cp -p in copy_rule, and fix some typos in the manual.

	* manual/manual.tex: Typos.
	* rule.ml,
	* rule.mli: Add cp_p and use it for copy_rule.

2007-03-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Relaxe executor on exception condition.

	Patch from Berke.
	* executor.ml: Ignore Not_found and exceptional conditions.
	* TODO: Add an entry (needs to better understand POSIX).

2007-03-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Split where in bindir and libdir.

	* ocamlbuild_where.mli: Ditto.
	* ocaml_specific.ml: Update.
	* options.ml: Use bindir.
	* plugin.ml: Update.
	* start.sh: Update.

2007-03-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Virtual solvers for ocaml tools.

	* options.ml: Setup virtual command solver for commands like ocamlc,
	ocamlopt... This allow to have full pathname but let also failback to
	classic search path.
	* ocaml_compiler.ml: Add a tag to differentiate dependencies at link
	time.
	* ocamlbuild-presentation.rslide: Add an item as suggested by a friend.

2007-03-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Same thing for the second link function.

	* ocaml_compiler.ml: Ignore stdlib.

2007-03-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Move the stdlib hack.

	* ocaml_compiler.ml: Should works better.

2007-03-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Little fix about library linking.

	* ocaml_utils.ml: Avoid linking twice in some cases.
	* ocaml_compiler.ml: Handle specially the OCaml stdlib.

2007-03-01  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Remove a rec.

	* glob.ml: Parse is not rec.

2007-03-01  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	true: traverse and FAQ.

	* main.ml: Move the inital config upper to be loaded before the others
	and hygiene.
	* FAQ: New.

2007-02-28  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Improve the glob dir handling.

	* glob.ml: Extend the ast instead of parsing an extended string.

2007-02-28  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Ensure that the whole boolean expression is only valid in the directory.

	* glob.ml: Ditto.

2007-02-28  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Put -g on link only for programs.

	* ocaml_specific.ml: Ditto.

2007-02-26  Berke Durak  <berke.durak@inria.fr>

	Added disclaimer to default rules table.

	* manual/manual.tex: .

2007-02-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add the -documentation option.

	* main.ml: Implement it.
	* flags.ml,
	* flags.mli: Add get_flags.
	* man/ocamlbuild.1: Update.
	* signatures.mli,
	* options.ml: Add show_documention.
	* rule.ml,
	* rule.mli: Add pretty_print.

2007-02-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add the -dont-catch-errors option.

	* main.ml: Implement it.
	* options.ml: Parse it.
	* signatures.mli: Declare it.
	* _tags: Use debug.

2007-02-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Deal with the camlp4 library name.

	* ocaml_specific.ml: Introduce use_old_camlp4 for the old one.

2007-02-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Minor `ocaml_lib' improvments.

	* signatures.mli: Declare and doc it.
	* ocamlbuild_plugin.ml: Export it.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Add some dirs to std libs.
	Move the ocaml_lib implem to ...
	* ocaml_utils.mli,
	* ocaml_utils.ml: ... here. Improve it by adding the ~tag_name option.
	* ocaml_compiler.ml: The hash now contains the tag.
	* _tags: *.top use unix too.

2007-02-22  Berke Durak  <berke.durak@inria.fr>

	Should use Log.eprintf for show_tags.

	* main.ml: .

2007-02-22  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	( & ), sanitize.sh, and the manual...

	* signatures.mli: Add ( & ).

	* hygiene.ml: Also clean the sanitize.sh script itself.
	* my_std.ml: Add ( & ).
	* manual/manual.tex: Some fixes and a section that I wrote but that's
	needs reflexion about what solution we want to support.

2007-02-22  Berke Durak  <berke.durak@inria.fr>

	Implemented fixes suggested  by Commissar Leroy.

	* fda.ml: .
	* hygiene.ml: .
	* hygiene.mli: .
	* man/ocamlbuild.1: .
	* manual/manual.tex: .
	* ocaml_specific.ml: .
	* options.ml: .
	* signatures.mli: .

2007-02-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add -show-tags.

	* hygiene.ml: Rewrap the error message.
	* main.ml: Do the show_tags job. Move one hook.
	* ocaml_specific.ml: Add -g also in native code.
	* options.ml,
	* signatures.mli: Add the -show-tags option.
	* tags.ml: Fix print.
	* TODO: Add a done entry.

2007-02-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Relaxing plural options to spaces.

	* lexers.mli,
	* lexers.mll: Add comma_or_blank_sep_strings.
	* options.ml: Use it.

2007-02-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a plugin example.

	* manual/myocamlbuild.ml: New.

2007-02-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Typos.

	* ocamlbuild-presentation.rslide: .
	* manual/trace.out: .

2007-02-16  Berke Durak  <berke.durak@inria.fr>

	Fixed a few typos and sentences.

	* ocamlbuild-presentation.rslide: .

2007-02-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Little changes...

	* ocamlbuild-presentation.rslide: .

2007-02-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Slides almost done...

	* manual/trace.out: New. Of course you needed it.
	* ocamlbuild-presentation.rslide: Ditto.

2007-02-15  Berke Durak  <berke.durak@inria.fr>

	Improving slides.

	* ocamlbuild-presentation.rslide: .

2007-02-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Slides...

	* ocamlbuild-presentation.rslide: .

2007-02-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Working on slides...

	* ocamlbuild-presentation.rslide: .

2007-02-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	More slides...

	* ocamlbuild-presentation.rslide: .

2007-02-12  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Keep include dirs uniq.

	* ocaml_compiler.ml: Ditto.

2007-02-12  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Keep include dirs uniq.

	* ocaml_compiler.ml: Ditto.

2007-02-12  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add ocamlmktop support.

	* ocamlbuild.mltop: New.
	* main.ml: Handle .top as binaries.
	* ocaml_compiler.ml,
	* ocaml_specific.ml,
	* ocaml_compiler.mli: Add mktop functions and rules.
	* options.ml,
	* signatures.mli: Add an ocamlmktop option.

2007-02-09  Berke Durak  <berke.durak@inria.fr>

	Was attempting to link with threads.cmxa in byte mode.

	* ocaml_specific.ml: .

2007-02-09  Berke Durak  <berke.durak@inria.fr>

	Talking of sterilize.sh.

	* manual/manual.tex: .

2007-02-09  Berke Durak  <berke.durak@inria.fr>

	Rewrote some parts, filled the abstract, moved rantings to the appendix.

	* manual/manual.tex: .
	* .vcs: .

2007-02-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add manual/manual.hva.

	* manual/manual.hva: New.

2007-02-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Changes done with Luc.

	* manual/manual.tex: .
	* manual/Makefile: .

2007-02-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix a bug found by Luc in hevea.

	* ocaml_utils.ml,
	* ocaml_utils.mli: Change keep_this_module into module_importance to
	have a finer grain.
	* ocaml_compiler.ml: Update to importance.
	* ocamldep.ml,
	* ocamldep.mli: We now try to also build stdlib modules but don't fail
	if they don't exists.
	* test/test5/stack.ml: New.
	* test/test5/a.ml: A test case (from hevea).
	* test/good-output: Update.

2007-02-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Ocamldoc, extension:* tag ...

	* ocaml_tools.mli,
	* ocaml_tools.ml: The ocamldoc support now takes into account two modes
	*d and -o.
	* ocaml_specific.ml: Two more rules and many flags for some of the
	standard behaviors.
	* signatures.mli: Some comments.
	* tools.ml: Add the extension:* tag.
	* TODO: Update.

2007-02-08  Berke Durak  <berke.durak@inria.fr>

	Hygiene generates sterilize.sh.

	* fda.ml: .
	* fda.mli: .
	* hygiene.ml: .
	* hygiene.mli: .
	* main.ml: .
	* options.ml: .
	* signatures.mli: .

2007-02-07  Berke Durak  <berke.durak@inria.fr>

	Updated section on ocamldoc.

	* manual/manual.tex: .

2007-02-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Some minor manual and slides changes.

	* ocamlbuild-presentation.rslide,
	* manual/manual.tex: Ditto.

2007-02-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Make links for the documentation.

	* main.ml: Handle doc.
	* test/good-output: Update.

2007-02-07  Berke Durak  <berke.durak@inria.fr>

	Added manual section for ocamldoc.

	* manual/manual.tex: .
	* manual/Makefile: .

2007-02-07  Berke Durak  <berke.durak@inria.fr>

	Fixed truncated display problem.

	* executor.ml: .
	* .vcs: .

2007-02-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix the bootstrap.

	* start.sh: Swap lines.
	* Makefile: -verbose.

2007-02-07  Berke Durak  <berke.durak@inria.fr>

	TODO + Executor.

	* manual/manual.tex: .
	* TODO: .

2007-02-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Make -a more static, to avoid some complications.

	* ocaml_utils.ml,
	* ocaml_compiler.ml,
	* ocaml_compiler.ml,
	* ocaml_specific.ml: Ditto.

2007-02-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	A fix.

	* ocaml_compiler.ml: Don't use these refs too early.
	* ocamlbuild-presentation.rslide: .

2007-02-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Plugin signature.

	Somewhat a big patch, but that's just moving things around.

	* signatures.mli: Add TAGS, OUTCOME, MISC, OPTIONS, ARCH and PLUGIN.
	* ocamlbuild_plugin.mli: New.
	* ocamlbuild_plugin.ml: Conform to the sig.

	* command.ml,
	* command.mli: Add a tags type.
	* main.ml: Quit early if no targets.
	* my_std.ml,
	* my_std.mli: More things are in signatures.
	* resource.ml,
	* resource.mli: Remove the type t that was an Pathname.t alias.
	* options.ml,
	* options.mli: Add ext_lib, ext_obj, ext_dll.
	* ocaml_compiler.ml: Update.
	* ocaml_tools.ml: Update to Outcome.
	* ocaml_specific.ml: Update.
	* ocaml_utils.mli: Remove *ext_*.
	* ocaml_arch.mli: Now in signatures.
	* pathname.ml: Add readdir.
	* slurp.ml: open Outcome.
	* rule.ml,
	* rule.mli,
	* solver.ml,
	* solver.mli: Update to Resource.t and Outcome.t.
	* tags.mli: Now in Signatures.
	* test/good-output: Update.
	* test/test8/test.sh,
	* test/test3/test.sh,
	* test/test4/test.sh,
	* test/test5/test.sh,
	* test/test6/test.sh,
	* test/test7/test.sh,
	* test/test2/test.sh: Update to -verbose 0.

2007-02-05  Berke Durak  <berke.durak@inria.fr>

	Continuing doc.

	* manual/manual.tex: .
	* .: .

2007-02-05  Berke Durak  <berke.durak@inria.fr>

	Described display line.

	* manual/manual.tex: .

2007-02-05  Berke Durak  <berke.durak@inria.fr>

	Renamed -debug as -verbose.  Authorized spaces etc. in flags.  Continuing documentation.

	* lexers.mll: .
	* manual/manual.tex: .
	* options.ml: .

2007-02-05  Berke Durak  <berke.durak@inria.fr>

	Added man page.

	* main.ml: .
	* man: New.
	* man/ocamlbuild.1: New.
	* manual/manual.tex: .
	* TODO: .

2007-02-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Update start.sh.

	* start.sh: Update.

2007-02-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Typo s/Orignal/Original/g.

2007-02-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Make signatures and std_signatures mliS.

	* signatures.ml: Remove.
	* std_signatures.ml: Remove.
	* signatures.mli: New.
	* std_signatures.mli: New.
	* Makefile: Update.
	* lexers.mll: Allow any prefix: for tags.

2007-02-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	The beginning of a presentation.

	* ocamlbuild-presentation.rslide: New.

2007-02-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Also add who is the original author of the file.

	* ocamlbuild.ml,
	* ocamlbuild_plugin.ml,
	* ocamlbuildlight.ml,
	* ocamlbuild_where.mli,
	* ocamlbuild.mli,
	* ocamlbuildlight.mli,
	* bool.ml,
	* bool.mli,
	* configuration.ml,
	* configuration.mli,
	* command.ml,
	* command.mli,
	* display.ml,
	* discard_printf.ml,
	* display.mli,
	* discard_printf.mli,
	* executor.ml,
	* executor.mli,
	* flags.ml,
	* fda.ml,
	* flags.mli,
	* fda.mli,
	* glob.ml,
	* glob_ast.ml,
	* glob_ast.mli,
	* glob.mli,
	* glob_lexer.mli,
	* glob_lexer.mll,
	* hygiene.ml,
	* hooks.ml,
	* hygiene.mli,
	* hooks.mli,
	* log.ml,
	* lexers.mli,
	* log.mli,
	* lexers.mll,
	* my_unix_with_unix.ml,
	* main.ml,
	* my_unix.ml,
	* my_std.ml,
	* my_unix_with_unix.mli,
	* my_std.mli,
	* my_unix.mli,
	* main.mli,
	* ocaml_utils.ml,
	* ocaml_tools.ml,
	* ocaml_arch.ml,
	* ocaml_specific.ml,
	* ocaml_compiler.ml,
	* ocaml_dependencies.ml,
	* ocaml_utils.mli,
	* ocaml_specific.mli,
	* ocaml_dependencies.mli,
	* ocaml_tools.mli,
	* ocaml_arch.mli,
	* ocaml_compiler.mli,
	* options.ml,
	* options.mli,
	* ocamldep.ml,
	* ocamldep.mli,
	* plugin.ml,
	* ppcache.ml,
	* pathname.ml,
	* ppcache.mli,
	* plugin.mli,
	* pathname.mli,
	* resource.ml,
	* resource.mli,
	* rule.ml,
	* rule.mli,
	* report.ml,
	* report.mli,
	* signatures.ml,
	* slurp.ml,
	* std_signatures.ml,
	* solver.ml,
	* shell.ml,
	* shell.mli,
	* slurp.mli,
	* solver.mli,
	* tags.ml,
	* tools.ml,
	* tags.mli,
	* tools.mli: Ditto.

2007-02-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add the header license.

	* ocamlbuildlight.ml,
	* ocamlbuild.ml,
	* ocamlbuild_plugin.ml,
	* ocamlbuild_where.mli,
	* ocamlbuild.mli,
	* ocamlbuildlight.mli,
	* bool.ml,
	* bool.mli,
	* configuration.ml,
	* configuration.mli,
	* command.ml,
	* command.mli,
	* discard_printf.ml,
	* display.ml,
	* display.mli,
	* discard_printf.mli,
	* executor.ml,
	* executor.mli,
	* fda.ml,
	* flags.ml,
	* flags.mli,
	* fda.mli,
	* glob.ml,
	* glob_ast.ml,
	* glob.mli,
	* glob_ast.mli,
	* glob_lexer.mli,
	* glob_lexer.mll,
	* hygiene.ml,
	* hooks.ml,
	* hygiene.mli,
	* hooks.mli,
	* log.ml,
	* lexers.mli,
	* log.mli,
	* lexers.mll,
	* my_unix.ml,
	* main.ml,
	* my_std.ml,
	* my_unix_with_unix.ml,
	* misc/opentracer.ml,
	* my_std.mli,
	* main.mli,
	* my_unix.mli,
	* my_unix_with_unix.mli,
	* ocaml_arch.ml,
	* ocaml_compiler.ml,
	* ocaml_specific.ml,
	* ocaml_tools.ml,
	* ocaml_utils.ml,
	* ocaml_dependencies.ml,
	* ocaml_utils.mli,
	* ocaml_tools.mli,
	* ocaml_dependencies.mli,
	* ocaml_compiler.mli,
	* ocaml_specific.mli,
	* ocaml_arch.mli,
	* options.ml,
	* options.mli,
	* ocamldep.ml,
	* ocamldep.mli,
	* plugin.ml,
	* pathname.ml,
	* ppcache.ml,
	* plugin.mli,
	* ppcache.mli,
	* pathname.mli,
	* resource.ml,
	* resource.mli,
	* rule.ml,
	* rule.mli,
	* report.ml,
	* report.mli,
	* slurp.ml,
	* std_signatures.ml,
	* signatures.ml,
	* solver.ml,
	* shell.ml,
	* shell.mli,
	* slurp.mli,
	* solver.mli,
	* tools.ml,
	* tags.ml,
	* tags.mli,
	* tools.mli: Ditto.

2007-02-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix a bug in copy_file.

	* my_std.ml: Also use the binary mode for the output channel.

2007-02-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add nopervasives, and nolabels.

	* ocaml_specific.ml: Ditto.

2007-02-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Windows cannot use executor.

	* shell.ml: As in command.ml use executor only in non-windows and
	non-degraded mode.
	* rule.ml: Update two error messages.

2007-02-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Some minor things for the ocaml myocamlbuild for instance.

	* configuration.ml,
	* configuration.mli: Add has_tag.
	* my_std.ml,
	* my_std.mli: Add getenv and copy_chan.
	* ocaml_utils.ml,
	* ocaml_utils.mli: Move some commands to rule.
	* ocaml_specific.ml: Improve the menhir switching.
	* options.ml,
	* options.mli: Add -use-menhir and -menhir options.
	* rule.ml,
	* rule.mli: Add copy_rule and move some commands from ocaml_utils.
	* signatures.ml: .

2007-02-01  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Move main sigs in signatures.ml and std_signatures.ml.

	* ocamlbuild_pack.mlpack: .
	* ocamlbuildlib.mllib: .
	* ocamlbuildlightlib.mllib: .
	* ocamlbuild.odocl: .
	* command.mli: .
	* glob.mli: .
	* log.mli: .
	* my_unix_with_unix.ml: .
	* my_std.ml: .
	* my_std.mli: .
	* ocaml_specific.ml: .
	* pathname.mli: .
	* std_signatures.ml: New.
	* signatures.ml: New.
	* start.sh: .
	* tags.ml: .
	* tags.mli: .
	* test/test5/_tags: .
	* Makefile: .
	* _tags: .

2007-02-01  Berke Durak  <berke.durak@inria.fr>

	Shell.run doesn't use execute_many in degraded mode.

	* shell.ml: .

2007-02-01  Berke Durak  <berke.durak@inria.fr>

	cp, rm -rf and mv-like commands use Executor to better play with display.

	* display.ml: .
	* my_unix.ml: .
	* main.ml: .
	* my_std.ml: .
	* my_unix.mli: .
	* shell.ml: .
	* shell.mli: .
	* start.sh: .
	* _tags: .

2007-02-01  Berke Durak  <berke.durak@inria.fr>

	Systematizing exit codes.

	* executor.ml: .
	* main.ml: .

2007-02-01  Berke Durak  <berke.durak@inria.fr>

	Added automatic file: tag, changed flag syntax.

	* lexers.mli: .
	* lexers.mll: .
	* main.ml: .
	* ocamldep.ml: .
	* ocamldep.mli: .
	* tools.ml: .

2007-01-31  Berke Durak  <berke.durak@inria.fr>

	Cleans up links to the _build directory.

	* main.ml: .
	* options.ml: .
	* options.mli: .
	* pathname.ml: .
	* pathname.mli: .

2007-01-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Restore the link to binary targets functionality.

	* main.ml: Make it separate from target running.

2007-01-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add an hygiene hook pair.

	* ocamlbuild_plugin.ml,
	* hooks.ml,
	* hooks.mli,
	* main.ml: Ditto.

2007-01-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	The Killer feature about a fine grained dependency injection control.

	* rule.ml,
	* rule.mli: Add build_deps_of_tags and call it automatically before
	* ocaml_compiler.ml,
	* ocaml_compiler.mli: Rework tags, to have them when callinng
	build_deps_of_tags.
	executing a command.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Move the exception Exit_build_error to main and
	remove the old dep function.
	* ocamlbuild_plugin.ml: Export some new functions.
	* test/test7/myocamlbuild.ml: Add a dep declaration.
	* test/test7/cool_plugin.ml: New.
	* test/test7/_tags: New.
	* test/good-output: Update.
	* flags.ml,
	* command.ml,
	* command.mli: Rename flags_of_tags as tag_handler.
	* main.ml: Update error handling.
	* TODO: Done.

2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix and improve the new link/deps system.

	* ocaml_dependencies.ml,
	* ocaml_dependencies.mli: Some fixes and improvements.
	* pathname.ml,
	* pathname.mli: Add check_extension.
	* ocaml_compiler.ml,
	* ocaml_compiler.mli: Add support for hidden_packages and update.

2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Reverse the last 2 patches, since there is fact no name clash.

2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Shell -> Oshell second part.

	* ocamlbuild.odocl: Ditto.
	* test/good-output: Update.

2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Rename the Shell module as Oshell to avoid a name clash with labltk.

	* shell.ml: Remove.
	* shell.mli: Remove.
	* oshell.ml: New.
	* oshell.mli: New.
	* ocamlbuild_pack.mlpack,
	* command.ml,
	* display.ml,
	* main.ml,
	* options.ml,
	* ppcache.ml,
	* pathname.ml,
	* plugin.ml,
	* resource.ml,
	* start.sh: Update.

2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix 2 bugs.

	* test/test9/testglob.ml: More tests.
	* glob_lexer.mll: Fix "/**".
	* _tags: Restore my warnings.
	* executor.ml: Use the unused variable.

2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Improve dprintf and update.

	* log.ml, log.mli: dprintf now wraps the message between "@[<2>" and "@]@.".
	* command.ml,
	* display.ml,
	* fda.ml,
	* main.ml,
	* ocaml_dependencies.ml,
	* ocaml_compiler.ml,
	* ocaml_utils.ml,
	* ocamldep.ml,
	* pathname.ml,
	* resource.ml,
	* rule.ml,
	* solver.ml: Update the dprintf usage.

2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add the new dependency linking system (plz test it !).

	* ocamlbuild_pack.mlpack: Add a brand new module.
	* ocaml_dependencies.ml: New.
	* ocaml_dependencies.mli: New.
	* ocaml_compiler.ml,
	* ocaml_compiler.mli: Use this new module.
	* resource.ml,
	* resource.mli: Export a folding function on dependencies.
	* TODO: Add something to do.
	* start.sh: .
	* main.ml: Update.

2007-01-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Executor exit codes.

	* executor.ml: Use the standard exit.
	* main.ml: Some exit codes are reserved for Executor.

2007-01-29  Berke Durak  <berke.durak@inria.fr>

	Executor returns finer-grained results.

	* executor.ml: .
	* manual/manual.tex: .

2007-01-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Toward a working command execute feature :).

	* executor.ml,
	* executor.mli: FIXME.
	* command.ml,
	* command.mli: Update to the new signature and merge the degraded mode
	to avoid duplication.
	* my_unix.ml,
	* my_unix.mli,
	* ocaml_utils.ml,
	* ocamldep.ml,
	* plugin.ml,
	* resource.ml,
	* rule.ml,
	* solver.ml,
	* test/good-output: Update.

2007-01-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Revert almost all of the 2 last patches.

	* command.ml: .
	* command.mli: .
	* executor.ml: .
	* executor.mli: .
	* my_unix.ml: .
	* my_unix.mli: .
	* ocaml_utils.ml: .
	* ocaml_specific.ml: .
	* ocamldep.ml: .
	* plugin.ml: .
	* resource.ml: .
	* rule.ml: .
	* solver.ml: .

2007-01-29  Berke Durak  <berke.durak@inria.fr>

	Fixing before/after thunks.

	* command.ml: .
	* command.mli: .
	* ocaml_utils.ml: .
	* ocamldep.ml: .
	* plugin.ml: .
	* resource.ml: .
	* rule.ml: .
	* solver.ml: .
	* TODO: .

2007-01-29  Berke Durak  <berke.durak@inria.fr>

	Adding before and after handlers to Executor.

	* command.ml: .
	* executor.ml: .
	* executor.mli: .
	* my_unix.ml: .
	* my_unix.mli: .
	* manual/manual.tex: .

2007-01-29  Berke Durak  <berke.durak@inria.fr>

	Fixed multi-dir globbing.

	* glob_lexer.mll: .
	* manual/manual.tex: .

2007-01-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add Rule.custom_rule and cleanup the ocamldep meta rule.

	* ocamldep.ml,
	* ocamldep.mli: Make it a meta rule (or a rule generator).
	* rule.ml,
	* rule.mli: Add custom_rule.
	* ocaml_specific.ml: Update to Ocamldep.
	* test/good-output: Minor update.

2007-01-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	MakefileS...

	* manual/Makefile: More things to remove (sometimes).
	* Makefile: Use $(BUILDDIR) instead of _build.

2007-01-26  Berke Durak  <berke.durak@inria.fr>

	Documenting glob expressions.

	* glob_lexer.mll: Added negative character classes.
	* manual/manual.tex: .

2007-01-26  Berke Durak  <berke.durak@inria.fr>

	Started documenting glob syntax.

	* manual/manual.tex: .

2007-01-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	One other include dir fix.

	* main.ml: Ditto.
	* test/test9/testglob.ml: Add a failing test (request for feature).
	* test/good-output: Update.

2007-01-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Include dirs and Backtrace.

	* main.ml: Fix -I, and restore the backtrace.
	* report.ml,
	* report.mli: Fix the backtrace and rename analyze to
	print_backtrace_analyze.

2007-01-25  Berke Durak  <berke.durak@inria.fr>

	Added cross-directory globbing.

	* glob_ast.ml: .
	* glob.ml: .
	* glob_ast.mli: .
	* glob_lexer.mll: .
	* test/test9/testglob.ml: .

2007-01-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Inlcude dirs trought tags.

	* main.ml: Ditto.
	* my_unix_with_unix.ml: Imrpove stat errors.
	* my_std.ml,
	* my_std.mli: .
	* pathname.ml: bmla.
	* slurp.ml,
	* slurp.mli: Add force, fix bugs.

2007-01-25  Berke Durak  <berke.durak@inria.fr>

	Fixed double display of error status.

	* command.ml: .
	* display.ml: .
	* display.mli: .
	* log.ml: .
	* log.mli: .
	* main.ml: .
	* my_std.ml: .
	* my_std.mli: .
	* plugin.ml: .

2007-01-25  Berke Durak  <berke.durak@inria.fr>

	Stupid bug.

	* log.ml: .
	* main.ml: .
	* options.ml: .

2007-01-25  Berke Durak  <berke.durak@inria.fr>

	Fixed interface, handling of -- with no argument.

	* ocamlbuild_plugin.mli: Remove.
	* manual/manual.tex: .
	* options.ml: .

2007-01-25  Berke Durak  <berke.durak@inria.fr>

	Updated start.sh.

	* start.sh: .

2007-01-25  Berke Durak  <berke.durak@inria.fr>

	Added .mlis.

	* ocamlbuild_plugin.mli: New.
	* fda.mli: New.
	* main.ml: .
	* ocaml_specific.ml: .
	* plugin.ml: .
	* plugin.mli: New.

2007-01-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Cut down ocaml_specific in pieces.

	* ocaml_specific.ml,
	* ocaml_specific.mli: Split.
	* ocamlbuild_plugin.ml: Update.
	* ocamlbuild_pack.mlpack: Add new modules.
	* my_std.ml,
	* my_std.mli: Add good_outcome.
	* ocaml_utils.ml: New.
	* ocaml_tools.ml: New.
	* ocaml_compiler.ml: New.
	* ocaml_utils.mli: New.
	* ocaml_compiler.mli: New.
	* ocaml_tools.mli: New.
	* ocamldep.ml: New.
	* ocamldep.mli: New.
	* start.sh: Update.
	* TODO: Move things done.

2007-01-25  Berke Durak  <berke.durak@inria.fr>

	Fixer return codes and error message flushing issues.

	* display.ml: .
	* log.ml: .
	* log.mli: .
	* main.ml: .
	* report.ml: .
	* report.mli: .

2007-01-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a warning.

	* ocaml_specific.ml: In -debug 1 mode there is a now a warning when
	ocamlbuild skip a seliently a module, supposing that's an error of
	ocamldep.

2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	More hooks.

	* ocamlbuild_plugin.ml,
	* hooks.ml,
	* hooks.mli,
	* main.ml: Add {Before,After}_rules.

2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Call these hooks.

	* main.ml: Call these hooks.

2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a first version of dispatch.

	* ocamlbuild_plugin.ml: Export dispatch and the hooks type.
	* ocamlbuild_pack.mlpack: Add Hooks.
	* hooks.ml: New.
	* hooks.mli: New.
	* ocaml_specific.mli: New line.

2007-01-24  Berke Durak  <berke.durak@inria.fr>

	Mini slurp bug.

	* slurp.ml: .
	* TODO: .

2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix few more things.

	* ocamlbuildlight.ml: .
	* ocamlbuild_version.ml: Remove.
	* ocamlbuild.ml: .
	* ocamlbuild_pack.mlpack: .
	* main.ml: .
	* ocaml_specific.ml: .
	* ocaml_specific.mli: .
	* start.sh: .
	* test/test2/toto.ml: .
	* test/good-output: .

2007-01-24  Berke Durak  <berke.durak@inria.fr>

	Read directories before files in Slurp.

	* slurp.ml: .
	* TODO: .

2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix some bugs.

	* ocamlbuild_version.ml: Remove.
	* ocamlbuild.ml,
	* ocamlbuildlight.ml: Main is now in the pack.
	* ocamlbuild_pack.mlpack: more things.
	* ocaml_specific.ml: One fix and one comment.
	* start.sh: Update.

2007-01-24  Berke Durak  <berke.durak@inria.fr>

	Splitting ocaml_specific into multiple files.

	* ocamlbuildlight.ml: .
	* ocamlbuild.ml: .
	* ocamlbuild_version.ml: New.
	* ocamlbuild.mli: .
	* ocamlbuildlight.mli: .
	* ocamlbuild_pack.mlpack: .
	* command.ml: .
	* fda.ml: New.
	* hygiene.ml: .
	* main.ml: New.
	* my_std.ml: .
	* my_std.mli: .
	* main.mli: New.
	* manual/manual.tex: .
	* ocaml_specific.ml: .
	* ocaml_specific.mli: .
	* options.ml: .
	* options.mli: .
	* plugin.ml: New.
	* rule.ml: .
	* report.ml: .
	* tools.ml: New.
	* tools.mli: New.
	* TODO: .
	* _tags: .

2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Minor changes.

	* manual/manual.tex: Typo s/the the/the/g.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Add some function to deal with linking of a
	module list. Add a better lib declaration function.
	* TODO: Update.

2007-01-17  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	A new pathname operator and a bug fix.

	* pathname.ml,
	* pathname.mli: add the ( -.- ) operator to add an extension to a
	pathname.
	* ocaml_specific.ml: Use that new operator.
	* resource.ml: Fix a bug.

2007-01-17  Berke Durak  <berke.durak@inria.fr>

	More examples.

	* examples/example3/epoch.ml: .
	* examples/example3/make.sh: New.
	* manual/manual.tex: .
	* TODO: .

2007-01-17  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Infered mli's, and bug fixes.

	* my_unix.ml: Fix a bug.
	* my_std.mli: Doc.
	* manual/manual.tex: Use \verb.
	* ocaml_arch.ml: Don't always overide the forpack_flags_of_pathname
	function reference.
	* ocaml_arch.mli: Remove the reference.
	* ocaml_specific.ml: Update for forpack and add infered mli's.
	* pathname.ml,
	* pathname.mli: Add is_directory.

2007-01-17  Berke Durak  <berke.durak@inria.fr>

	More examples.

	* examples/example3/epoch.ml: New.
	* examples/example2/hello.ml: .
	* examples/example2/greet.ml: New.
	* examples/example3: New.
	* examples/example2: New.
	* manual/manual.tex: .
	* TODO: .

2007-01-17  Berke Durak  <berke.durak@inria.fr>

	Started examples.

	* examples/example1/hello.ml: New.
	* examples/example1: New.
	* examples: New.
	* manual/manual.tex: .
	* .vcs: .
	* TODO: .

2007-01-17  Berke Durak  <berke.durak@inria.fr>

	Wrote limitations and features.

	* manual/manual.tex: .

2007-01-17  Berke Durak  <berke.durak@inria.fr>

	Wrote motivations.

	* manual/manual.tex: .
	* _tags: .

2007-01-17  Berke Durak  <berke.durak@inria.fr>

	Started manual.

	* manual/Makefile: New.
	* manual/manual.tex: New.
	* manual: New.

2007-01-17  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Bugs, menhir, path variables.

	* display.ml: Fix a bug.
	* glob.mli: Fix a typo.
	* lexers.mli,
	* lexers.mll: Extend ocamldep_output lexer and meta_path lexer.
	* my_std.ml,
	* my_std.mli: Add memo and String.rev.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Better rules for C lib linking and menhir rules.
	* resource.ml,
	* resource.mli: Handle naively some multiple variables.
	* rule.ml,
	* rule.mli: Update.
	* start.sh: Update.

2007-01-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Integrate dprintf to the display.

	* display.ml,
	* display.mli: Add dprintf and log_level.
	* log.ml,
	* log.mli: Add dprintf and level.
	* debug.ml: Remove.
	* debug.mli: Remove.
	* options.ml: Update.
	* command.ml, ocaml_specific.ml, my_std.ml,
	* pathname.ml, ppcache.ml, resource.ml,
	* rule.ml, report.ml, slurp.ml, solver.ml,
	* configuration.ml, tags.ml: Update to Log.
	* ocamlbuild.odocl: Add Log, remove Debug.
	* ocamlbuild_pack.mlpack: Remove Debug.
	* bool.ml: Remove the debug dependency.

2007-01-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Execute and windows...

	* command.ml: Test windows here.
	* my_unix_with_unix.ml: Revert a little.

2007-01-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Don't use executor on windows.

	* my_unix_with_unix.ml: Since at least set_nonblock does not works on
	windows.

2007-01-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add the -no-log option and fix a log bug.

	* log.mli,
	* log.ml: Log is now a lazy to have the good setup order.
	* options.ml: Add the -no-log option.

2007-01-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix a bug with quoting of the nil string.

	* shell.ml: Quote the nil string.

2007-01-09  Berke Durak  <berke.durak@inria.fr>

	Documented the interface of the glob module.

	* glob.mli: .

2007-01-09  Berke Durak  <berke.durak@inria.fr>

	Continuing to document interfaces.

	* bool.mli: .
	* debug.mli: .
	* discard_printf.mli: .
	* executor.mli: .
	* hygiene.mli: .
	* my_std.mli: .
	* slurp.mli: .
	* Makefile: .

2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix a bug with directory links to build dir.

	* ocaml_specific.ml,
	* options.ml,
	* options.mli: Keep the Slurp.entry instead of a set.
	* pathname.ml: Clean the entry instead of the set, that more precise.
	* Makefile: Add doc phonny rules.

2007-01-09  Berke Durak  <berke.durak@inria.fr>

	Doc for Configuration.

	* ocamlbuild_plugin.ml: .
	* bool.mli: .
	* configuration.ml: .
	* configuration.mli: .
	* command.mli: .
	* doc: New.
	* glob.ml: .
	* ocaml_specific.ml: .
	* Makefile: .

2007-01-09  Berke Durak  <berke.durak@inria.fr>

	Started documentation.

	* bool.mli: .
	* command.ml: .
	* command.mli: .

2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Export the doc.

	* Makefile: Use a link.
	* _tags: Don't spend times in that dir.

2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Put the log file in the source dir and not when building plugin.

	* log.ml,
	* log.mli: Use an optional.
	* options.ml: Update.
	* pathname.mli: Export in_source_dir.
	* .vcs: Add _log.

2007-01-09  Berke Durak  <berke.durak@inria.fr>

	Added doc target.

	* report.ml: .
	* Makefile: .
	* TODO: .

2007-01-09  Berke Durak  <berke.durak@inria.fr>

	Writes tags to log file.

	* display.ml: .

2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add the Log module.

	* ocamlbuild_pack.mlpack: Add Log.
	* command.ml,
	* command.mli: Use Log.
	* log.ml: New.
	* log.mli: New.
	* options.ml: Use Log.
	* start.sh: Update.

2007-01-09  Berke Durak  <berke.durak@inria.fr>

	Added -log option.

	* command.ml: .
	* command.mli: .
	* display.ml: .
	* display.mli: .
	* executor.mli: .
	* options.ml: .
	* _tags: .

2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Make usable the ocamldoc support.

	* ocaml_specific.ml: Add rules for ocamldoc.
	* ocamlbuild.odocl: New.
	* test/test3/proj.odocl: New.
	* test/good-output: Update.
	* test/test3/test.sh: Add a odoc test.

2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Some cleanups.

	* ocamlbuild_plugin.ml: Add tag_file that simule one simple line in the
	_tags file.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Add ln_s, touch, chmod.
	* pathname.ml,
	* pathname.mli: Remove map_extension*, split_extension* and compiled
	files hack skipping.
	* rule.ml: Improve logging.
	* solver.ml: Use another level.

2007-01-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix a bug with debug rules.

	* ocaml_specific.ml: Move %.cmi from prods to deps.
	* test/good-output: Update.

2007-01-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add debugging rules.
	To get a ocamlbuild with debugging info you can
	call `make debug' that will produce ocamlbuild.d.byte
	and x.d.cmo files.

	* ocaml_specific.ml,
	* ocaml_specific.mli: Add debugging rules, reorder warnings flag to
	have 'A' and 'a' before others.
	* Makefile: Add the debug target.
	* _tags: Cleanup (remove the debug tag that was set by default).

2007-01-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add profiling support directly in rules.
	This means that you can now request for building a target such as
	my_main.p.native or my_lib.p.cmxa, that will create %.p.cmx
	intermediate files that do not interfer with non-profiling ones.

	* ocaml_specific.ml,
	* ocaml_specific.mli: Add rules and functions for native link and
	comilation in profiling mode.
	* Makefile: Add a profile target (require a fixed ocamlopt w.r.t pack).
	* _tags: Take care also of .p.cmx files.
	* glob.ml: IS.print is equivalent to print_is.
	* my_std.ml: Fix a bug.

2007-01-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add some functions...

	* glob.ml: Extract is_suffix and is_prefix.
	* my_std.ml,
	* my_std.mli: Add String.{is_suffix,is_prefix,first_chars,last_chars}
	and List.union.
	* pathname.ml,
	* pathname.mli: Add get_extensions, remove_extensions,
	update_extensions, map_extensions that treat all extensions instead of
	just the last.
	* tags.ml,
	* tags.mli: Add +++ and --- that treat optional tags.

2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Change the default display in degraded mode.

	* command.ml: Ditto.

2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Cleanup Makefile options.

	* Makefile: Ditto.

2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a simple opened files tracer.

	* misc/opentracer.ml: New.
	Just support ktrace for now. A strace one will be appreciated the
	interface to follow is quite simple anyway.
	* misc: New.

2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Handle better commands without Px atom.

	* command.ml: Display the whole command if no Px is found.
	* display.mli: No longer export these strings.

2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Handle myocamlbuild_config.mli.

	* ocaml_specific.ml: Add support for an interface to the config.

2007-01-06  Berke Durak  <berke.durak@inria.fr>

	Improved language of explanations in Report.

	* report.ml: .

2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Factor and fix the plugin building.

	* ocamlbuildlight.mli: New.
	* executor.ml: Call cleanup, add a fixme.
	* ocaml_specific.ml: Factor and fix plugin stuffs.
	* start.sh: Update.
	* Makefile: Update.
	* TODO: Update.
	* _tags: No longer do favors to some modules.

2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix plugins.

	* ocamlbuildlib.mllib: Add missing modules.
	* ocamlbuildlightlib.mllib: New.
	* Makefile: Update.

2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Change the my_unix system.

	* ocamlbuildlight.ml: Just call the main.
	* ocamlbuild.ml: Setup my_unix_with_unix.
	* ocamlbuildlib.mllib: Remove executor and exit_codes for the lib.
	* ocamlbuild_pack.mlpack: Remove my_std and my_unix.
	* exit_codes.ml: Remove. Put them directly in executor.
	* executor.ml: Add exitcodes.
	* my_unix.ml: New. Default implem.
	* my_unix_with_unix.ml: Extend the default implem.
	* my_unix_without_unix.ml: Remove.
	* my_unix.mli: Add the implem type and val.
	* my_unix_with_unix.mli: New.
	* ocaml_specific.ml,
	* pathname.ml,
	* slurp.ml,
	* Makefile,
	* command.ml,
	* _tags: Update.

2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Don't use executor for the myocamlbuild call.

	* ocaml_specific.ml: Use sys_command directly.

2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix a stupid bug.

	* command.ml: That cause to have reversed sequences.

2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Some libs and ocamldoc changes.

	* ocaml_specific.ml,
	* ocaml_specific.mli: Improve ocaml_lib_flag, add fews libs.
	Fix ocamldoc support update tags, and use Px only once.

2007-01-05  Berke Durak  <berke.durak@inria.fr>

	Started ocamldoc support.

	* ocaml_specific.ml: .
	* options.ml: .
	* options.mli: .

2007-01-05  Berke Durak  <berke.durak@inria.fr>

	Pretend option didn't work.

	* command.ml: .

2007-01-05  Berke Durak  <berke.durak@inria.fr>

	TODO + typo.

	* options.ml: .
	* TODO: .

2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Really call executor all time.

	* command.ml,
	* command.mli: Remove normalization.
	And execute_many, it's now execute that do all the job.
	In degraded mode it's execute_degraded.
	* my_unix_without_unix.ml: Update.
	* ocaml_specific.ml,
	* resource.ml,
	* rule.ml,
	* solver.ml: Update to Command.execute type.

2007-01-05  Berke Durak  <berke.durak@inria.fr>

	Isatty detection logic.

	* command.ml: .
	* executor.ml: .
	* my_unix_with_unix.ml: .
	* my_unix_without_unix.ml: .
	* my_unix.mli: .

2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Always call executor.

	* command.ml: Unless in degraded mode.

2007-01-05  Berke Durak  <berke.durak@inria.fr>

	Removed debugging output, added period argument for ticker.

	* display.ml: .
	* executor.ml: .
	* executor.mli: .
	* my_unix.mli: .

2007-01-05  Berke Durak  <berke.durak@inria.fr>

	Somewhat slow but executor seems to work.

	* executor.ml: .

2007-01-05  Berke Durak  <berke.durak@inria.fr>

	Added an Exit_codes module.  Fixing Executor...

	* ocamlbuild.ml: .
	* ocamlbuildlib.mllib: .
	* executor.ml: .
	* exit_codes.ml: New.
	* solver.ml: .

2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix the max_jobs argument passing.

	* command.ml: Use an optional argument.

2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Subway changes...

	* my_unix_without_unix.ml,
	* my_unix_with_unix.ml,
	* my_unix.mli,
	* command.ml: Call the new execute_many.
	* executor.ml,
	* executor.mli: Handle command sequences.

2007-01-04  Berke Durak  <berke.durak@inria.fr>

	Added Display.update.

	* display.ml: .
	* display.mli: .
	* executor.ml: .

2007-01-04  Berke Durak  <berke.durak@inria.fr>

	Added display function, indentation, language.

	* display.ml: .
	* display.mli: .
	* hygiene.ml: .

2007-01-04  Berke Durak  <berke.durak@inria.fr>

	Fixing interface of Executor.

	* executor.ml: .
	* executor.mli: .
	* my_unix_with_unix.ml: .

2007-01-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add attributes to entries. Add the -byte-plugin option.

	* slurp.ml,
	* slurp.mli: Add an attribute field, add map, rename fold_pathnames to
	fold and filter_on_names to filter.
	* hygiene.ml,
	* hygiene.mli: Perform hygiene only on entries with a true attribute.
	* options.ml,
	* options.mli: Add the native_plugin reference and the -byte-plugin
	option.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Exclude files tagged not_hygienic or precious
	from hygiene.

2007-01-04  Berke Durak  <berke.durak@inria.fr>

	Fixed pack issues.

	* ocamlbuild.ml: .
	* executor.ml: .
	* executor.mli: New.
	* _tags: .

2007-01-04  Berke Durak  <berke.durak@inria.fr>

	Started executor module.

	* executor.ml: New.
	* hygiene.ml: .
	* my_unix_with_unix.ml: .

2007-01-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add virtual commands.

	* command.ml,
	* command.mli: Add the V constructor for virtual commands that
	will query a virtual command solver to use the best implementation
	of that virtual command.

2007-01-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Mainly, prepare for parallel display.

	* ocamlbuild_plugin.ml: Export file_rule.
	* command.ml,
	* command.mli: Some cleanup and preparation.
	* lexers.mll: Remove the dirty hack.
	* my_std.ml,
	* my_std.mli: Move search_in_path to Command and add ( @:= ).
	* my_unix_with_unix.ml,
	* my_unix_without_unix.ml,
	* my_unix.mli: Change the execute_many_using_fork type.
	* ocaml_specific.ml: Use the nopervasives tag for
	pervasives dependencies.
	* start.sh: Update.
	* test/test8/myocamlbuild.ml: Update.
	* test/good-output: Update.
	* Makefile: Update.

2007-01-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	I don't like microbes.

	* hygiene.ml: Reverse the bool.

2007-01-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix the stat problem.

	* ocaml_specific.ml: Use the filtered entry for source_dir_path_set.

2007-01-03  Berke Durak  <berke.durak@inria.fr>

	Hygiene filters cleaned out microbes.

	* hygiene.ml: .
	* hygiene.mli: .
	* ocaml_specific.ml: .
	* ocaml_specific.mli: .
	* slurp.ml: .
	* slurp.mli: .

2007-01-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Filename concat cleanup.

	* my_std.ml,
	* my_std.mli: Add filename_concat.
	* glob.ml,
	* hygiene.ml,
	* lexers.mll,
	* pathname.ml,
	* resource.ml,
	* report.ml,
	* solver.ml,
	* slurp.ml,
	* solver.mli:
	Use filename_concat.
	* flags.ml: FIXME.

2007-01-03  Berke Durak  <berke.durak@inria.fr>

	Revert to old.

	* slurp.ml: .

2007-01-03  Berke Durak  <berke.durak@inria.fr>

	Debugging tags for myocamlbuild.ml.

	* ocaml_specific.ml: .
	* slurp.ml: .

2007-01-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Another atempt to fix the slurp bug and lazy.

	* slurp.ml: Ditto.

2007-01-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix slurp w.r.t lazyness: keep the cwd.

	* slurp.ml: Ditto.

2007-01-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	My_unix, slurp in degraded mode, _tags in subdirs, fix the bug with -j...

	* ocamlbuild_version.mli: Remove.
	* ocamlbuild_where.mli: New.
	* display.mli: New.
	* shell.ml: New.
	* shell.mli: New.
	* glob.ml,
	* glob.mli,
	* configuration.ml,
	* lexers.mli,
	* lexers.mll,
	* configuration.mli: Honor _tags files in subdirs.
	* my_unix_with_unix.ml,
	* command.ml,
	* command.mli,
	* resource.ml,
	* resource.mli,
	* solver.ml: Fix the bug with the -j option.
	* slurp.ml,
	* slurp.mli: New degraded mode using the find command.
	Use lazy values to avoid computing useless directories.
	* options.ml,
	* options.mli: Update -version and -where.
	* pathname.ml,
	* pathname.mli: Remove the init section.
	* rule.ml,
	* rule.mli: Add file_rule useful for rules that don't run a command but
	just write a file.
	* ocaml_specific.ml: Fix some plugin bugs. Remove -I to ocamldep.
	Handle msvc .obj,.lib instead of .o,.a.
	* my_unix_without_unix.ml: Make works link stuffs running the readlink
	command.
	* display.ml,
	* hygiene.ml,
	* my_std.ml,
	* my_unix.mli,
	* my_std.mli,
	* start.sh,
	* test/test5/test.sh,
	* test/good-output,
	* test/test6/test.sh,
	* test/test7/test.sh,
	* test/test4/test.sh,
	* test/test8/test.sh,
	* test/test3/test.sh,
	* test/test2/test.sh,
	* Makefile,
	* _tags,
	* ocamlbuild_pack.mlpack: Update.

2007-01-02  Berke Durak  <berke.durak@inria.fr>

	Fixed ticker.

	* display.ml: .

2006-12-21  Berke Durak  <berke.durak@inria.fr>

	Cosmetic.

	* command.ml: .
	* display.ml: .

2006-12-21  Berke Durak  <berke.durak@inria.fr>

	Computing display length.

	* display.ml: .

2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add -classic-display.

	* command.ml,
	* command.mli: Provide a way to use the classic display.
	* options.ml: Add the -classic-display option.
	* Makefile: Remove ppcache form the default.

2006-12-21  Berke Durak  <berke.durak@inria.fr>

	Finish display only once ; display number of jobs cached.

	* command.ml: .
	* display.ml: .

2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Oops fix a bug.

	* command.ml: Add begin .. end.

2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Some display fixes.

	* command.ml: Select the display mode and remove the assert false.
	* display.ml: Change the print function to have a more compact one.
	* start.sh: Update.

2006-12-21  Berke Durak  <berke.durak@inria.fr>

	Error support in Display.finish.

	* display.ml: .

2006-12-21  Berke Durak  <berke.durak@inria.fr>

	Support for cache.

	* display.ml: .

2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Integrate display mode.

	* ocamlbuild_pack.mlpack: Add display.
	* command.mli: Add Px to indicate to highligth this pathname.
	* command.ml: Support Px and call Display.
	* display.ml: Fix minor bugs.
	* ocaml_specific.ml: Declare some Px, and quiet ocamlyacc, ocamllex.
	* options.ml: Add quiet to default tags.
	* ppcache.ml: Detect more accuratly ocamlrun.
	* pathname.ml: Improve concat.
	* _tags: No profile.

2006-12-21  Berke Durak  <berke.durak@inria.fr>

	Added pretend.

	* display.ml: .

2006-12-21  Berke Durak  <berke.durak@inria.fr>

	Added ticker.

	* display.ml: .

2006-12-21  Berke Durak  <berke.durak@inria.fr>

	Display module.

	* display.ml: .
	* my_unix_with_unix.ml: .
	* my_unix_without_unix.ml: .
	* my_unix.mli: .
	* test/test10/test.sh: New.
	* test/test10: New.
	* test/test10/dbdi: New.

2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use a better init order, and fix a Filename.concat usage.

	* ocaml_specific.ml: The plugin should act before any initialization.
	* ocaml_arch.ml: Use Pathname.(/).

2006-12-21  Berke Durak  <berke.durak@inria.fr>

	Started user-friendly display module.

	* display.ml: New.

2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix init order.

	* ocaml_specific.ml: Config must be available for plugin building.

2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Some fixes.

	* command.ml: Quote if needed.
	* my_std.mli: Comment String.contains_string.
	* resource.ml: Remove a useless separator.
	* test/good-output: Update.

2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Plugin config file and profile mode.

	* ocaml_specific.ml: Fix a bug due to the lazyness of &&.
	* ocaml_specific.mli: Move some functions.

2006-12-21  Berke Durak  <berke.durak@inria.fr>

	Now compiles patterns for fast matching.  Removed regexp support.

	* glob_ast.ml: .
	* glob.ml: .
	* glob_lexer.mli: .
	* glob_ast.mli: .
	* glob_lexer.mll: .
	* test/test9/testglob.ml: .
	* test/test9/dbgl: New.

2006-12-20  Berke Durak  <berke.durak@inria.fr>

	Pattern matching seems to start to work.

	* glob.ml: .

2006-12-20  Berke Durak  <berke.durak@inria.fr>

	Started faster pattern matching code.

	* ocaml_specific.ml: .
	* _tags: .

2006-12-20  Berke Durak  <berke.durak@inria.fr>

	myocamlbuild is rebuilt only as needed.

	* hygiene.ml: .
	* ocaml_specific.ml: .
	* pathname.ml: .
	* pathname.mli: .
	* resource.ml: .

2006-12-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Some changes mainly for windows support.

	* command.ml,
	* command.mli: Add the Quote constructor to help quoting building in
	commands.
	* my_unix_with_unix.ml,
	* my_unix_without_unix.ml,
	* glob.ml: Commented reslash mode.
	* my_std.ml,
	* my_std.mli: Some new functions.
	* my_unix.mli: Export sys_command.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Update and windows support.
	* options.ml,
	* options.mli: Remove the ocamlmklib option.
	* ppcache.ml: Fix a bug.
	* pathname.ml: Add more dirseps. Use a custom Filename.concat (for now).
	* resource.ml,
	* rule.ml,
	* Makefile,
	* _tags: Update.

2006-12-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Update start order.

	* start.sh: Ditto.

2006-12-11  Berke Durak  <berke.durak@inria.fr>

	Added -custom, fixed paths for installation.

	* ocaml_specific.ml: .
	* Makefile: .

2006-12-11  Berke Durak  <berke.durak@inria.fr>

	Typo.

	* report.ml: .

2006-12-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a basic ocamlmklib support.

	* ocaml_specific.ml,
	* ocaml_specific.mli: Use ocamlmklib to make libraries if enabled.
	* options.ml,
	* options.mli: Add -ocamlmklib and -use-ocamlmklib.

2006-12-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Export more references of options.

	* command.ml,
	* command.mli: Add ?quiet to execute.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Update to options.
	* options.ml,
	* options.mli: Move ocamlc, ocamlopt... to references on command specs.
	* solver.ml: Update.
	* Makefile: Use _ocamldistr to avoid hygiene.
	* .vcs: Use _ocamldistr.

2006-12-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	OCaml distrib stuffs.

	* command.ml,
	* command.mli: Add a normalization callback.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Add a more complete interface.
	* options.ml,
	* options.mli: Add nostdlib.
	* pathname.ml: Add mkdir -p to import in build.
	* rule.ml,
	* rule.mli: Call normalization of commands for digest.
	* report.ml: Add ignore.
	* start.sh: Add report.ml*.
	* Makefile: Add distrib exportation (make a link).
	* .vcs: Unmask ocamldistrib link.

2006-12-07  Berke Durak  <berke.durak@inria.fr>

	Added TODO item.

	* .vcs: .
	* TODO: .

2006-12-07  Berke Durak  <berke.durak@inria.fr>

	Added TODO file.

	* TODO: New.

2006-12-07  Berke Durak  <berke.durak@inria.fr>

	Very rudimentary report analysis.

	* report.ml: .
	* _tags: .

2006-12-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Update tests to run ocamlbuild correctly.

	* test/test2/test.sh,
	* test/test3/test.sh,
	* test/test4/test.sh,
	* test/test5/test.sh,
	* test/test6/test.sh,
	* test/test7/test.sh,
	* test/test8/test.sh,
	* test/test9/test.sh: Ditto.
	* test/good-output: Update.

2006-12-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Make test9 independant.

	* test/test9/test.sh: Ditto.

2006-12-07  Berke Durak  <berke.durak@inria.fr>

	Rewrote globbing engine, adding {,} ; moved reporting functions to Report.

	* ocamlbuild_pack.mlpack: .
	* command.ml: .
	* glob_ast.ml: .
	* glob.ml: .
	* glob_ast.mli: .
	* glob_lexer.mll: .
	* ocaml_specific.ml: .
	* report.ml: New.
	* report.mli: New.
	* solver.ml: .
	* solver.mli: .
	* start.sh: .
	* test/test9/testglob.ml: .
	* test/test9/test.sh: .
	* test/test3/test.sh: .
	* _tags: .

2006-12-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Degraded mode...

	* ocamlbuildlight.ml: New.
	* ocamlbuild_pack.mlpack: Include new modules.
	* bool.ml: Fake dependency.
	* configuration.ml: Adapt to the glob parser.
	* command.ml: Export the fork usage.
	* glob.ml: Use Str through My_unix.
	* glob_lexer.mli: New.
	* glob_lexer.mll: Add slashs to valid character patterns.
	* lexers.mli,
	* lexers.mll: Use the glob parser.
	* my_std.ml: Use My_unix.
	* my_unix_with_unix.ml: New.
	* my_unix_without_unix.ml: New.
	* my_unix.mli: New.
	* my_std.mli: Add search_in_path and change lazy force to ( !* ).
	* ocaml_specific.ml: Some updates.
	* options.ml,
	* options.mli: Add -ocamlrun.
	* pathname.ml: Adapt to an optional slurp.
	* ppcache.ml: Use search_in_path of my_std.
	* resource.ml: Update to ( !* ).
	* solver.ml: Export Unix errors reporting.
	* slurp.ml,
	* slurp.mli: Use My_unix.
	* start.sh: Update.
	* test/test9/testglob.ml: Test a constant.
	* test/test5/_tags,
	* test/test3/_tags,
	* test/test4/_tags: Don't use regexp.
	* test/good-output: Add test9.
	* test/test9/test.sh: Remove the parent usage.
	* Makefile: Add the light mode.
	* .vcs: Update.
	* _tags: Update.

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	Extra tests for globbing.

	* test/test9/testglob.ml: .

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	First draft of pattern matching.

	* glob_ast.ml: .
	* glob.ml: .
	* glob_ast.mli: .
	* glob_lexer.mll: .

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	More hard-wired but common cases for globbing.

	* glob.ml: .
	* test/test9/testglob.ml: .

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	Hidden interface in globber.

	* glob.mli: .
	* test/test9/testglob.ml: .

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	Basic globbing works.

	* glob.ml: .
	* glob.mli: .
	* test/test9/testglob.ml: .

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	Improved interface.

	* glob.ml: .
	* glob_ast.ml: New.
	* glob_ast.mli: New.
	* glob.mli: New.
	* glob_lexer.mll: .
	* test/test9/testglob.ml: .
	* _tags: .

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	Added test9.

	* test/test9/testglob.ml: New.
	* test/test9/parent: New.
	* test/runtest.sh: .
	* test/test9: New.
	* test/test9/test.sh: New.

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	Parser seems to work.

	* glob.ml: .
	* glob_lexer.mll: .

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	Removed eof_char.

	* glob.ml: .
	* glob_lexer.mll: .

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	Interface seems to be OK.

	* glob.ml: .
	* glob_lexer.mll: .

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	Adding files for the globbing module.

	* bool.ml: New.
	* bool.mli: New.
	* glob.ml: New.
	* glob_lexer.mll: New.
	* _tags: .

2006-12-06  Berke Durak  <berke.durak@inria.fr>

	Replaced numeric escapes.

	* lexers.mll: .

2006-12-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Remove most of the Str usage by using ocamllex.

	* ocamlbuild_pack.mlpack: Remove Re, add Lexers.
	* configuration.ml: Use Lexers.
	* command.ml: Don't use Re.
	* lexers.mli: New.
	* lexers.mll: New.
	* my_std.ml,
	* my_std.mli: Add String.before and String.after.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Use Lexers but also provide tags for warnings.
	* resource.ml,
	* rule.ml,
	* options.ml,
	* ppcache.ml,
	* pathname.ml: Use Lexers.
	* re.ml: Remove.
	* re.mli: Remove.
	* start.sh: Update.
	* Makefile: Igonre _build... and gives -ml to ocamllex.
	* _tags: Warnings for lexers.

2006-12-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use Sys instead of Unix for readdir.

	* my_std.ml,
	* my_std.mli: Supress a Unix usage.

2006-12-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add an option to disable the link creation.

	* ocaml_specific.ml: Honor this option.
	* options.ml: Declare it.
	* options.mli: Define it.

2006-12-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Don't import compiled files...

	* pathname.ml: For the OCaml compilation itself I need to exclude some
	dirs that contains compiled files but I want to use some of them with
	ocamlbuild.

2006-12-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Support flags for ocamlyacc and ocamllex.

	* ocaml_specific.ml,
	* options.ml,
	* options.mli: Add these options.

2006-12-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Two fixes (hygiene and libraries)...

	* hygiene.ml: Exit 0 if sterilize removes some files (since source
	files are cached in a rather persistent data structure I prefer let the
	user start on a fresh setup).
	* ocaml_specific.ml: Use the dirname if there is no directory named by
	removing the extension.

2006-12-04  Berke Durak  <berke.durak@inria.fr>

	Small bug in hygiene.

	* hygiene.ml: .

2006-12-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add postition specifications to rules.

	* rule.ml,
	* rule.mli: Add a way to specifie where to put a new rule
	(top,bottom,before another,after another).
	* flags.ml: Reorder.
	* my_std.ml,
	* my_std.mli: Add mv, fix an error handling.
	* ocaml_specific.ml: Better error message for circular dependencies.
	* ppcache.ml: Handle errors better.

2006-11-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a working multiple job support.

	* command.ml,
	* command.mli: Add different versions of execute_many including a
	version that use forks.
	* options.ml,
	* options.mli: Restore the -j option.
	* solver.ml: Call Command.execute_many.
	* test/runtest.sh: Pass $@ to sub tests.
	* test/good-output: Update.

2006-11-28  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix the link order.

	* start.sh: Fix the link order.

2006-11-28  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	One step toward multiple jobs: Add the support for suspended building.

	* resource.ml,
	* resource.mli: Add the notion of suspended building.
	This represent a resource that is fully ready for evaluation, it's just
	a command and a function to apply after.
	* rule.ml: Do not really execute rules that can be safely suspended.
	* solver.ml: Play with suspended rules to collect as many as possible
	to get closer to a pararllel execution.

2006-11-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix the makefile.

	* Makefile: Fix deps.

2006-11-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Activates more warnings, and prepare the -j feature.

	* hygiene.ml: Consolidates fragile patterns.
	* my_std.ml: Likewise.
	* ocaml_specific.ml: Mainly update to the new builder prototype.
	* pathname.ml,
	* pathname.mli: Kick a useless parameter.
	* resource.ml: Remove dead code and update.
	* rule.ml,
	* rule.mli: The bulider now takes a list of resource lists, it will
	try to make in parallel the first level of commands.
	* solver.ml: Update to builder without parallelism.
	* test/good-output: Update.
	* Makefile: Warnings are now set to -w A -warn-error A.

2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix packages... again.

	* ocaml_specific.ml: Ditto.

2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix packages.

	* ocaml_specific.ml: Try to handle better packages during link.
	* Makefile: Add the try_bootstrap rule.

2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add -tag, -tags to options.

	* ocaml_specific.ml: Append default tags from options.
	* options.ml,
	* options.mli: Add -tag and -tags.
	* tags.mli: Indent.

2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix a bug and update tests.

	* resource.ml: Use Hashtbl.replace of course instead of Hashtbl.add to
	avoid a nasty bug.
	* test/test7/test.sh,
	* test/test8/test.sh,
	* test/test2/test.sh,
	* test/test6/test.sh,
	* test/test4/test.sh,
	* test/test5/test.sh,
	* test/test3/test.sh: Extract program options to be sure that
	the -nothing-should-be-rebuilt option is before the -- one.
	* test/good-output: Update.

2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use a hashtbl for digests.

	* resource.ml: Ditto.
	* ocaml_specific.ml: Remove dead code.

2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use lists instead of sets for rule deps & prods.

	* ocaml_specific.ml: Move the mli dep first.
	* resource.ml,
	* resource.mli: No more provide digest_resources but digest_resource.
	* rule.ml,
	* rule.mli: Use list instead of sets for deps and prods, since they are
	not heavily updated and the order matter.
	* solver.ml: Adapt.
	* test/good-output: Yeah!

2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	One more fix for libraries.

	* ocaml_specific.ml: Improve the link_exception handling.
	* test/good-output: Update.

2006-11-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix the library linking.

	* ocaml_specific.ml: The test7 is specially made to check that feature.

2006-11-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Remove list_set.

	* ocamlbuild_pack.mlpack: Remove list_set
	* list_set.ml: Remove.
	* list_set.mli: Remove.
	* start.sh: Remove list_set.
	* test/good-output: Regen.

2006-11-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix the C rule when dirname = '.'.

	* ocaml_specific.ml: Don't move the output when it's useless.

2006-11-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Ignore ocamlbuild_version.ml.

2006-11-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	New transitive closure.

	* ocamlbuild_version.ml: Remove.
	* my_std.ml,
	* my_std.mli: Add a debug mode for digests and run_and_read.
	* ocaml_specific.ml: New transitive closure.
	* pathname.ml,
	* pathname.mli: Export also parent_dir_name and fix same_contents.
	* resource.ml,
	* resource.mli: Add dependencies.
	* rule.ml: Adapt.
	* test/good-output: Regen.
	* Makefile: Improve install.
	* .vcs: Ignore other _build dirs.

2006-11-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Rule definition shortcut and C files.

	* rule.ml,
	* rule.mli: Allow to pass ~prod and ~dep when there is just one file.
	* ocaml_specific.ml: Add a rule for C files and use the previous
	shortcut.

2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	No more extend Format.

	* command.ml,
	* my_std.ml,
	* my_std.mli: Put directly ksbprintf and sbprintf in My_std.

2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Clean up and consistent use of Pathname instead of Filename.

	* command.ml,
	* my_std.ml,
	* my_std.mli,
	* ocaml_specific.ml,
	* pathname.ml,
	* ppcache.ml,
	* pathname.mli,
	* resource.ml: That's it.

2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Restore List_set.

	* ocamlbuild_pack.mlpack,
	* list_set.ml,
	* list_set.mli,
	* resource.ml,
	* start.sh: Ditto.

2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Remove List_set and List_map.

	* ocamlbuild_pack.mlpack: No more in the pack.
	* list_set.ml: Remove.
	* list_map.ml: Remove.
	* list_map.mli: Remove.
	* list_set.mli: Remove.
	* resource.ml: Use a Set.
	* start.sh: Adapt.

2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Huge speed up, worth updating.

	* resource.ml,
	* resource.mli: Use a hash instead of map, remove the percent type.
	* rule.ml,
	* rule.mli: Remove the function for rule names. Use an exception to
	choose matching rules.

2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Speedup rule calling.

	* rule.ml,
	* rule.mli: No more call the code rule twice to compute the digest.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Adapt to Rule.
	* test/test8/myocamlbuild.ml: Use the exception.
	* test/good-output: Update.
	* boot: Update svn:ignore.

2006-11-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Remove phony resources and include dependencies.

	* ocaml_specific.ml,
	* options.ml,
	* options.mli,
	* pathname.ml,
	* pathname.mli,
	* resource.ml,
	* resource.mli,
	* rule.ml,
	* rule.mli,
	* solver.ml,
	* test/test8/myocamlbuild.ml: Simplify a lot the code.

2006-11-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Some improvements...

	* ocamlbuild.ml: .
	* ocamlbuild_version.ml: New.
	* ocamlbuild_plugin.ml: New.
	* ocamlbuild_version.mli: New.
	* ocamlbuildlib.mllib: .
	* ocamlbuild.sh: Remove.
	* ocamlbuild_pack.mlpack: New.
	* boot: .
	* ocaml_specific.ml: .
	* ocaml_specific.mli: .
	* options.ml: .
	* options.mli: .
	* rule.ml: .
	* rule.mli: .
	* start.sh: .
	* test/test8/a.ml: New.
	* test/test7/a2.ml: .
	* test/test7/a3.ml: New.
	* test/test8/myocamlbuild.ml: New.
	* test/test7/myocamlbuild.ml: New.
	* test/test8: New.
	* test/test8/test.sh: New.
	* test/runtest.sh: .
	* test/test7/test.sh: .
	* test/good-output: .
	* Makefile: .
	* _tags: .

2006-11-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add support for libraries.

	* ocamlbuildlib.ml: Remove.
	* ocamlbuildlib.mllib: New.
	* ocaml_specific.ml: Rules and actions for libraries.
	* rule.ml: Improve explanations.
	* start.sh: Don't make ocamlbuildlib.
	* test/test7/a.mli: New.
	* test/runtest.sh: Add test7.
	* test/test7/test.sh: Add reverts for a.ml.
	* test/good-output: Update.
	* Makefile: Remove junk lines.

2006-11-14  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a tests for libraries.

	* test/test7/e.ml: New.
	* test/test7/d.ml: New.
	* test/test7/a.ml: New.
	* test/test7/b.ml: New.
	* test/test7/a2.ml: New.
	* test/test7/c.ml: New.
	* test/test7/test.sh: New.
	* test/test7/ablib.mllib: New.
	* test/test7: New.

2006-11-14  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Simplify dependency rules.

	* ocaml_specific.ml: No more use bytelinkdeps...
	* rule.ml,
	* rule.mli: Add a dyndeps set.
	* ocamlbuild.sh,
	* pathname.ml,
	* Makefile: Update.

2006-11-14  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Update tests...

	* test/test2/vivi3.ml: .
	* test/good-output: .

2006-11-10  Berke Durak  <berke.durak@inria.fr>

	Added -sterilize option.

	* hygiene.ml: ditto
	* hygiene.mli: ditto
	* ocaml_specific.ml: ditto
	* options.ml: ditto
	* options.mli: ditto

2006-11-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	View the context dir in first.

	* pathname.ml: Ditto.

2006-11-10  Berke Durak  <berke.durak@inria.fr>

	Added thread and profile tags.

	* ocaml_specific.ml: ditto.

2006-11-10  Berke Durak  <berke.durak@inria.fr>

	Added law for leftover dependency files.

	* ocaml_specific.ml: ditto.

2006-11-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Reverse the ignore_auto default value.

	* options.ml: Add -no-skip, remove -ignore-auto, add -Is and -Xs.
	* test/test2/test.sh,
	* test/test5/test.sh,
	* test/test6/test.sh,
	* test/test4/test.sh,
	* test/test3/test.sh,
	* Makefile: Revert flags.

2006-11-10  Berke Durak  <berke.durak@inria.fr>

	Added install target to Makefile.

	* Makefile: .

2006-11-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Deal with for-pack flags...

	* ocaml_arch.ml: Define a hook.
	* ocaml_arch.mli: Declare it.
	* ocaml_specific.ml: Use it.
	* test/test6: Ignore main.byte.

2006-11-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix start.sh and remove dead code.

	* ocaml_specific.ml: Remove dead code about ignore_auto.
	* start.sh: Swap two modules.
	* test/test6/main.byte: Remove.

2006-11-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Pack now works great...

	* ocamlbuild.sh: Use ocamlopt.
	* command.ml: Reset filesys cache.
	* my_std.ml,
	* my_std.mli: Add a filesys cache for
	case sensitive file_exists and digest over files.
	* ocaml_specific.ml: Work on link and packs.
	* ppcache.ml: Exit 2 is for unix.
	* pathname.ml,
	* resource.ml,
	* rule.ml,
	* rule.mli,
	* slurp.ml,
	* solver.ml,
	* solver.mli,
	* test/test5: Update.

2006-11-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Too lazy to fill this up :).

	* ocamlbuild.sh,
	* configuration.ml,
	* command.ml,
	* debug.ml,
	* debug.mli,
	* my_std.ml,
	* my_std.mli,
	* ocaml_specific.ml,
	* ocaml_specific.mli,
	* options.ml,
	* options.mli,
	* pathname.ml,
	* ppcache.ml,ew.
	* ppcache.mli,ew.
	* pathname.mli,
	* resource.ml,
	* resource.mli,
	* rule.ml,
	* rule.mli,
	* slurp.ml,
	* solver.ml,
	* solver.mli,
	* slurp.mli,
	* start.sh,
	* tags.ml,
	* test/test5/test.sh,
	* test/test4/test.sh,
	* test/test3/test.sh,
	* test/good-output,
	* test/test2/test.sh,
	* test/test6/test.sh,
	* Makefile,
	* _tags: This too.

2006-11-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Some pack,dirs stuffs.

	* ocamlbuild.ml,
	* ocamlbuildlib.ml,ew.
	* ocamlbuild.sh,ew.
	* configuration.ml,
	* my_std.ml,
	* my_std.mli,
	* ocaml_arch.ml,ew.
	* ocaml_specific.ml,
	* ocaml_specific.mli,
	* ocaml_arch.mli,ew.
	* options.ml,
	* options.mli,
	* pathname.ml,
	* pathname.mli,
	* resource.ml,
	* resource.mli,
	* rule.ml,
	* solver.ml,
	* test/good-output,
	* Makefile,
	* _tags: That's it.

2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Remove the dirty thing about cmi's.

	* ocaml_specific.ml,
	* ocaml_specific.mli: Moves of files are no more needed.
	* test/good-output: Update.

2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Some renaming and cleanup...

	* ocamlbuild.ml,
	* configuration.ml,
	* configuration.mli,
	* list_set.ml,
	* ocaml_specific.ml,
	* resource.ml,
	* test/good-output,
	* test/test6/test.sh: Do that.

2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use the nothing-should-be-rebuilt for tests and update the output.

	* test/test2,
	* test/test2/test.sh,
	* test/test3/test.sh,
	* test/test4/test.sh,
	* test/test5/test.sh,
	* test/test6/test.sh,
	* test/good-output: Do that.

2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a mode usefull for tests.

	* options.ml, options.mli, rule.ml:
	This new mode fails when something needs to be rebuilt.

2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Improve the ocaml rule set.

	* ocaml_specific.ml: Yipee!

2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add scripts to run tests.

	* test/test2/vivi1.ml: New.
	* test/test2/vivi2.ml: New.
	* test/test2/vivi3.ml: New.
	* test/test2/vivi.ml: .
	* test/test4/test.sh: New.
	* test/test5/test.sh: New.
	* test/test2/test.sh: New.
	* test/test6/test.sh: .
	* test/good-output: New.
	* test/test3/test.sh: New.
	* test/runtest.sh: New.

2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Restore some recursivity for includes.

	* resource.ml,
	* resource.mli: Remove the digest field.
	* rule.ml: .
	* test/test6/test.sh: .

2006-10-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Remove the arbitrary deep dependencies.

	* ocaml_specific.ml,
	* ocaml_specific.mli: No more implicit transitives deps.
	* resource.ml,
	* resource.mli: Remove as many things as possible.
	* rule.ml,
	* rule.mli,
	* solver.ml: Simplify.
	* command.ml: Fix newlines and flush.

2006-10-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Separated preprocessing, total order over rules...

	* ocamlbuild.ml,
	* my_std.ml,
	* my_std.mli,
	* ocaml_specific.ml,
	* ocaml_specific.mli,
	* options.ml,
	* options.mli,
	* pathname.ml,
	* pathname.mli,
	* resource.ml,
	* resource.mli,
	* rule.ml,
	* rule.mli,
	* solver.ml,
	* test/test2/tutu.ml,
	* tags.ml,
	* test/test2/tyty.mli,ew.
	* test/test6/test.sh,
	* test/test6,
	* test/test5/_tags,
	* test/test5: Update.

2006-10-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add options: -ocamlc,-ocamlopt,-ocamldep,-ocamlyacc,-ocamllex.

	* options.ml,
	* options.mli: Declare them.
	* ocaml_specific.ml: Use them.

2006-10-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix start.sh.

	* start.sh: Fix the output.

2006-10-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Regen start.sh.

	* start.sh: Regen.

2006-10-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use the list based implems and fix many bugs.

	* ocamlbuild.ml: Rename some dependency files.
	* boot: Ignore boot/ocamlbuild.byte.save.* files.
	* command.ml: Fix command printing.
	* my_std.ml,
	* my_std.mli: Add List.equal, use the cp command in Shell.cp.
	* ocaml_specific.ml,
	* ocaml_specific.mli: Many things.
	* pathname.ml, pathname.mli: Make compare obselete prefer equal.
	* resource.ml, resource.mli: Add print_cache and use list based
	sets and maps.
	* Makefile: Add the bootstrap rule.

2006-10-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a test for fine-grained dependencies.

	* test/test6/main.ml: New.
	* test/test6/d.ml: New.
	* test/test6/b.ml: New.
	* test/test6/a.ml: New.
	* test/test6/main.mli: New.
	* test/test6/a.mli: New.
	* test/test6/d.mli: New.
	* test/test6/b.mli: New.
	* test/test6/b.mli.v2: New.
	* test/test6/main.byte: New.
	* test/test6/d.mli.v1: New.
	* test/test6/test.sh: New.
	* test/test6/d.mli.v2: New.
	* test/test6/b.mli.v1: New.
	* test/test6: New.

2006-10-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Dummy implementations for set and map using lists.
	The main advantage is to only rely on the equal function that is simpler
	to maintain correct in an imperative setting.

	* list_map.ml: New.
	* list_set.ml: New.
	* list_map.mli: New.
	* list_set.mli: New.

2006-10-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fixes and improvment.

	* ocamlbuild.ml,
	* my_std.ml,
	* my_std.mli,
	* ocaml_specific.ml,
	* ocaml_specific.mli,
	* pathname.ml,
	* resource.ml,
	* rule.ml,
	* rule.mli,
	* solver.ml,
	* solver.mli: The previous version was somwhat unstable.

2006-10-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Many things...

	* ocamlbuild.ml,
	* command.ml,
	* command.mli,
	* ocaml_specific.ml,
	* ocaml_specific.mli,
	* options.ml,
	* options.mli,
	* resource.ml,
	* resource.mli,
	* rule.ml,
	* rule.mli,
	* solver.ml,
	* solver.mli:
	Simplify the whole solver by removing the value type.
	Rule code now returns a resource set, that is injected as dependencies.
	So rule code always returns unit. But can raise exceptions.
	Add -ignore, and -ignore-auto options to workaround ocamldep
	approximations without igonring errors.
	* Makefile: Add backup and restore targets.

2006-10-23  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Compute digests of dependencies recursively.

	* ocamlbuild.ml,
	* ocaml_specific.ml,
	* options.ml,
	* options.mli,
	* resource.ml,
	* resource.mli,
	* rule.ml: Ditto.

2006-10-23  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	One step toward a parallelisable system.

	* boot,
	* command.ml,
	* ocaml_specific.ml,
	* ocaml_specific.mli,
	* options.ml,
	* options.mli,
	* rule.ml,
	* rule.mli,
	* solver.ml: Update.
	* value.ml: Remove.
	* value.mli: Remove.

2006-10-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add vcs config file to setup a good default setup.

	* .vcs: New.

2006-10-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Simplify the bootstrap by introducing a shell script.

	* boot/ocamlbuild.byte: Remove. Useless in distribution mode
	but will be created, the first time. So the devel is not
	disturbed.
	* start.sh: New.
	* Makefile: Remove the old one to use start.sh.

2006-10-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Take command line in account for the digest computation.

	* command.ml,
	* command.mli,
	* debug.ml,
	* ocaml_specific.ml,
	* ocaml_specific.mli,
	* resource.ml,
	* resource.mli,
	* rule.ml,
	* rule.mli,
	* solver.ml,
	* value.ml,
	* value.mli: Update.

2006-10-19  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	New pathname representation.

	* pathname.ml, pathname.mli: This new representation should
	avoids "fix" problems.

2006-10-17  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Change the cache implem -> now really fast at link time.

	* ocamlbuild.ml,
	* boot/ocamlbuild.byte,
	* my_std.ml,
	* ocaml_specific.ml,
	* pathname.ml,
	* resource.ml,
	* resource.mli,
	* solver.ml: By replacing various sets by a map of records and
	remember that something has not changed, or cannot be built;
	there is a real speedup. In particular to detect that the link is
	not necessary to do.

2006-10-17  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a basic support for a digest based cache verification.

	* resource.ml, resource.mli: Add have_digest and store_digest.
	* rule.ml: Use these digests but don't include the command for
	now.
	* test/test2/vivi.ml, test/test2/tata.mli: Dummy updates.

2006-10-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Split in many files.

	* ocamlbuild.ml: Splitted.
	* boot/ocamlbuild.byte: Updated.
	* configuration.ml: New.
	* configuration.mli: New.
	* command.ml: New.
	* command.mli: New.
	* debug.ml: New.
	* debug.mli: New.
	* flags.ml: New.
	* flags.mli: New.
	* my_std.ml: New.
	* my_std.mli: New.
	* ocaml_specific.ml: New.
	* ocaml_specific.mli: New.
	* options.ml: New.
	* options.mli: New.
	* pathname.ml: New.
	* pathname.mli: New.
	* re.ml: New.
	* re.mli: New.
	* resource.ml: New.
	* resource.mli: New.
	* rule.ml: New.
	* rule.mli: New.
	* solver.ml: New.
	* solver.mli: New.
	* test/test5/d.ml: New.
	* tags.ml: New.
	* test/test5/b.ml: New.
	* test/test5/a.ml: New.
	* tags.mli: New.
	* test/test5/a.mli: New.
	* test/test5/c.mlpack: New.
	* test/test5/_tags: New.
	* test/test5: New.
	* value.ml: New.
	* value.mli: New.
	* Makefile: .

2006-10-16  Berke Durak  <berke.durak@inria.fr>

	Various useful changes.

	* ocamlbuild.ml: Hygiene to true.
	* slurp.ml: Remove debugging
	* Makefile: Clean annot and object files.

2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Bootstrap it ;).

	* ocamlbuild.ml: Add support for -g, -dtypes, and -rectypes in
	four lines.
	* _tags: New. Specify how to build ocamlbuild itself.
	* boot: New.
	* boot/ocamlbuild.byte: New. A bytecode version needed to
	bootstrap
	* Makefile: By default make it a wrapper over ocamlbuild in boot.

2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Little fix...

	* ocamlbuild.ml: Don't assoc over pathnames since the default
	compare is wrong and slow use the string repr.

2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Allow to control flags, and libraries by tags.

	* ocamlbuild.ml: In the _tags file you can add or remove flags
	using a colon flag_name:flag_value.
	* test/test2/vivi.ml,
	* test/test3/f.ml,
	* test/test4/b/bb.ml: Dummy updates.
	* test/test3/_tags: New.
	* test/test4/_tags: New.

2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add a tag based flag system.

	* test/test2/vivi.ml: An example.
	* test/test2/_tags: New.
	* ocamlbuild.ml: Now a command can request for flags by giving a
	set of tags these tags include file specific tags this allow to
	tweak flags by just providing a _tags file.

2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add -lib,-libs options remove -P.

	* ocamlbuild.ml: -P Is useless due to the fact that we now
	have the same directory structure in the _build directory.
	Add -lib,-libs that allows one to specify -lib unix without
	its extension in order to request for native and byte
	compilations.

2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Multi directories now works ;).

	* ocamlbuild.ml: Solve the whole problem by improving the
	Pathname module. Pathnames are now symbolic values that
	can include variable names. These variable names represent
	still ambiguous pathnames /a/b/(c|d as x1)/e.ml but variables
	can be shared, so discovering that /a/b/(c|d as x1)/e.ml is in
	fact /a/b/c/e.ml will make /a/b/(c|d as x1)/e.cmo automatically
	take this value /a/b/c/e.cmo cause it shares the x1 variable.

2006-10-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	I prefer capitalized names.

	* AUTHORS

2006-10-13  Berke Durak  <berke.durak@inria.fr>

	Added an AUTHORS file.

	* AUTHORS: New.

2006-10-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add the vcs dir.

	* vcs: New.
	* vcs/ocamlbuild.rb: New.

2006-10-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	* ocamlbuild.ml: Restore dependencies.

2006-10-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix the makefile.

	* Makefile, discard_printf.ml: Ditto.

2006-10-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Improve the directory handling.

	* ocamlbuild.ml: Ditto, but there is still a problem with native.
	* Makefile: Update.

2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix native dependencies.

	* ocamlbuild.ml: By default due to inlining the cmx dependencies
	are needed to build a cmx.
	* Makefile: Add native support.

2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use phony for linkdeps.

	* ocamlbuild.ml: Ditto.

2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix exit on multiple targets.

	* ocamlbuild.ml: Ditto.

2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	More flags -lflags,-lflag...

	* ocamlbuild.ml: Add plrual form options for those that use
	comma separated lists.

2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use phony resources for .cmo.linkdeps.

	* ocamlbuild.ml: Also restore the command running if "--"
	is specified

2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Remove Include_string_list resources, add Phony resources.

	* ocamlbuild.ml: Also fix some rules.

2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Shift debug levels.

	* ocamlbuild.ml: Add -quiet.

2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Use str more intensively.

	* ocamlbuild.ml: Also clean up useless functions.

2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Fix link dependencies.

	* ocamlbuild.ml: Force to consider recursivly Include_ tagged
	resources for their full contents. Alas it takes more time to
	know if we need to recompute the link.
	* test/test2/vivi.ml: Update.

2006-10-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Support multiple directories, it can compile the OCaml compiler :).

	* ocamlbuild.ml: Add directory handling but also start
	the tags config files handling.
	* Makefile: Use str.cma.

2006-10-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	Add library support.

	* ocamlbuild.ml: Deduce basic set of tags form the target
	extension.

2006-10-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>

	More customisable flags, and cycle detection.

	* ocamlbuild.ml: Add some flags -lflag, -ppflag, -cflag, --.
	Also add a detection mechanism for dependencies.
	* discard_printf.ml, Makefile: Update.
