Merge commit 'ocaml3102'
[ocaml.git] / ocamlbuild / ChangeLog
bloba844e38b8507cdaaaf4e8562476ad7f56f477fcd
1 2007-03-22  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3         Allow to receive the build function in {custom,file}_rule.
5         * rule.ml,
6         * rule.mli,
7         * signatures.mli: Ditto.
8         * ocaml_specific.ml: Update.
10         * command.ml,
11         * command.mli: Add a function to get string and tags.
13         * ocamldep.ml,
14         * ocamldep.mli: Make tag based dependencies.
16         * ocaml_compiler.ml: Do the pack as one command to be sure running the
17         remove.
19         * test/test8/myocamlbuild.ml,
20         * test/good-output: Update.
22 2007-03-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
24         Fix the previous fix.
26         * ocaml_compiler.ml: Remove the empty file.
27         * test/good-output: Update.
29 2007-03-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
31         [native pack] use touch instead of mv and cmp.
33         * ocaml_compiler.ml: This version is will force ocamlopt to do the
34         right thing.
35         * test/good-output: Update.
37 2007-03-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
39         Two bugs, two fixes.
41         * ocaml_tools.ml: Add pp flags to interface inference.
42         * ocaml_specific.ml: Add a rule for packing with a cmi that already
43         exists.
44         * test/good-output: Update.
45         * Makefile: Change the default location.
47 2007-03-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
49         Fix a bug in expand_module.
51         * ocaml_utils.ml: Handle correctly pathnames instead of just basenames.
53 2007-03-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
55         Use sys_file_exists instead of Sys.file_exists.
57         * my_unix.ml: Since Sys.file_exists don't treat well captial letters.
58         * my_std.ml: Fix a bug.
59         * pathname.ml: Here is a an exception to the previous rule so, put a
60         comment.
62 2007-03-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
64         Fix the List.union order.
66         * my_std.ml: Fix and improve List.union.
67         * pathname.ml: Use it and fix merge_include_dirs.
68         * test/good-output: Update since the union order was wrong.
70 2007-03-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
72         Re fix menhir and include dirs.
74         * ocaml_tools.ml: Specifiy ocamlc and -I with --ocamlc.
76 2007-03-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
78         Fix a bug: Add include directories to menhir.
80         * ocaml_tools.ml: Ditto.
81         * my_std.ml,
82         * signatures.mli: Specification typo.
84 2007-03-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
86         Handle specially archives files during an import.
88         * shell.ml: Ditto.
90 2007-03-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
92         Use cp -p in copy_rule, and fix some typos in the manual.
94         * manual/manual.tex: Typos.
95         * rule.ml,
96         * rule.mli: Add cp_p and use it for copy_rule.
98 2007-03-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
100         Relaxe executor on exception condition.
102         Patch from Berke.
103         * executor.ml: Ignore Not_found and exceptional conditions.
104         * TODO: Add an entry (needs to better understand POSIX).
106 2007-03-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
108         Split where in bindir and libdir.
110         * ocamlbuild_where.mli: Ditto.
111         * ocaml_specific.ml: Update.
112         * options.ml: Use bindir.
113         * plugin.ml: Update.
114         * start.sh: Update.
116 2007-03-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
118         Virtual solvers for ocaml tools.
120         * options.ml: Setup virtual command solver for commands like ocamlc,
121         ocamlopt... This allow to have full pathname but let also failback to
122         classic search path.
123         * ocaml_compiler.ml: Add a tag to differentiate dependencies at link
124         time.
125         * ocamlbuild-presentation.rslide: Add an item as suggested by a friend.
127 2007-03-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
129         Same thing for the second link function.
131         * ocaml_compiler.ml: Ignore stdlib.
133 2007-03-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
135         Move the stdlib hack.
137         * ocaml_compiler.ml: Should works better.
139 2007-03-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
141         Little fix about library linking.
143         * ocaml_utils.ml: Avoid linking twice in some cases.
144         * ocaml_compiler.ml: Handle specially the OCaml stdlib.
146 2007-03-01  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
148         Remove a rec.
150         * glob.ml: Parse is not rec.
152 2007-03-01  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
154         true: traverse and FAQ.
156         * main.ml: Move the inital config upper to be loaded before the others
157         and hygiene.
158         * FAQ: New.
160 2007-02-28  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
162         Improve the glob dir handling.
164         * glob.ml: Extend the ast instead of parsing an extended string.
166 2007-02-28  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
168         Ensure that the whole boolean expression is only valid in the directory.
170         * glob.ml: Ditto.
172 2007-02-28  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
174         Put -g on link only for programs.
176         * ocaml_specific.ml: Ditto.
178 2007-02-26  Berke Durak  <berke.durak@inria.fr>
180         Added disclaimer to default rules table.
182         * manual/manual.tex: .
184 2007-02-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
186         Add the -documentation option.
188         * main.ml: Implement it.
189         * flags.ml,
190         * flags.mli: Add get_flags.
191         * man/ocamlbuild.1: Update.
192         * signatures.mli,
193         * options.ml: Add show_documention.
194         * rule.ml,
195         * rule.mli: Add pretty_print.
197 2007-02-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
199         Add the -dont-catch-errors option.
201         * main.ml: Implement it.
202         * options.ml: Parse it.
203         * signatures.mli: Declare it.
204         * _tags: Use debug.
206 2007-02-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
208         Deal with the camlp4 library name.
210         * ocaml_specific.ml: Introduce use_old_camlp4 for the old one.
212 2007-02-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
214         Minor `ocaml_lib' improvments.
216         * signatures.mli: Declare and doc it.
217         * ocamlbuild_plugin.ml: Export it.
218         * ocaml_specific.ml,
219         * ocaml_specific.mli: Add some dirs to std libs.
220         Move the ocaml_lib implem to ...
221         * ocaml_utils.mli,
222         * ocaml_utils.ml: ... here. Improve it by adding the ~tag_name option.
223         * ocaml_compiler.ml: The hash now contains the tag.
224         * _tags: *.top use unix too.
226 2007-02-22  Berke Durak  <berke.durak@inria.fr>
228         Should use Log.eprintf for show_tags.
230         * main.ml: .
232 2007-02-22  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
234         ( & ), sanitize.sh, and the manual...
236         * signatures.mli: Add ( & ).
238         * hygiene.ml: Also clean the sanitize.sh script itself.
239         * my_std.ml: Add ( & ).
240         * manual/manual.tex: Some fixes and a section that I wrote but that's
241         needs reflexion about what solution we want to support.
243 2007-02-22  Berke Durak  <berke.durak@inria.fr>
245         Implemented fixes suggested  by Commissar Leroy.
247         * fda.ml: .
248         * hygiene.ml: .
249         * hygiene.mli: .
250         * man/ocamlbuild.1: .
251         * manual/manual.tex: .
252         * ocaml_specific.ml: .
253         * options.ml: .
254         * signatures.mli: .
256 2007-02-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
258         Add -show-tags.
260         * hygiene.ml: Rewrap the error message.
261         * main.ml: Do the show_tags job. Move one hook.
262         * ocaml_specific.ml: Add -g also in native code.
263         * options.ml,
264         * signatures.mli: Add the -show-tags option.
265         * tags.ml: Fix print.
266         * TODO: Add a done entry.
268 2007-02-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
270         Relaxing plural options to spaces.
272         * lexers.mli,
273         * lexers.mll: Add comma_or_blank_sep_strings.
274         * options.ml: Use it.
276 2007-02-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
278         Add a plugin example.
280         * manual/myocamlbuild.ml: New.
282 2007-02-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
284         Typos.
286         * ocamlbuild-presentation.rslide: .
287         * manual/trace.out: .
289 2007-02-16  Berke Durak  <berke.durak@inria.fr>
291         Fixed a few typos and sentences.
293         * ocamlbuild-presentation.rslide: .
295 2007-02-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
297         Little changes...
299         * ocamlbuild-presentation.rslide: .
301 2007-02-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
303         Slides almost done...
305         * manual/trace.out: New. Of course you needed it.
306         * ocamlbuild-presentation.rslide: Ditto.
308 2007-02-15  Berke Durak  <berke.durak@inria.fr>
310         Improving slides.
312         * ocamlbuild-presentation.rslide: .
314 2007-02-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
316         Slides...
318         * ocamlbuild-presentation.rslide: .
320 2007-02-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
322         Working on slides...
324         * ocamlbuild-presentation.rslide: .
326 2007-02-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
328         More slides...
330         * ocamlbuild-presentation.rslide: .
332 2007-02-12  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
334         Keep include dirs uniq.
336         * ocaml_compiler.ml: Ditto.
338 2007-02-12  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
340         Keep include dirs uniq.
342         * ocaml_compiler.ml: Ditto.
344 2007-02-12  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
346         Add ocamlmktop support.
348         * ocamlbuild.mltop: New.
349         * main.ml: Handle .top as binaries.
350         * ocaml_compiler.ml,
351         * ocaml_specific.ml,
352         * ocaml_compiler.mli: Add mktop functions and rules.
353         * options.ml,
354         * signatures.mli: Add an ocamlmktop option.
356 2007-02-09  Berke Durak  <berke.durak@inria.fr>
358         Was attempting to link with threads.cmxa in byte mode.
360         * ocaml_specific.ml: .
362 2007-02-09  Berke Durak  <berke.durak@inria.fr>
364         Talking of sterilize.sh.
366         * manual/manual.tex: .
368 2007-02-09  Berke Durak  <berke.durak@inria.fr>
370         Rewrote some parts, filled the abstract, moved rantings to the appendix.
372         * manual/manual.tex: .
373         * .vcs: .
375 2007-02-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
377         Add manual/manual.hva.
379         * manual/manual.hva: New.
381 2007-02-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
383         Changes done with Luc.
385         * manual/manual.tex: .
386         * manual/Makefile: .
388 2007-02-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
390         Fix a bug found by Luc in hevea.
392         * ocaml_utils.ml,
393         * ocaml_utils.mli: Change keep_this_module into module_importance to
394         have a finer grain.
395         * ocaml_compiler.ml: Update to importance.
396         * ocamldep.ml,
397         * ocamldep.mli: We now try to also build stdlib modules but don't fail
398         if they don't exists.
399         * test/test5/stack.ml: New.
400         * test/test5/a.ml: A test case (from hevea).
401         * test/good-output: Update.
403 2007-02-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
405         Ocamldoc, extension:* tag ...
407         * ocaml_tools.mli,
408         * ocaml_tools.ml: The ocamldoc support now takes into account two modes
409         *d and -o.
410         * ocaml_specific.ml: Two more rules and many flags for some of the
411         standard behaviors.
412         * signatures.mli: Some comments.
413         * tools.ml: Add the extension:* tag.
414         * TODO: Update.
416 2007-02-08  Berke Durak  <berke.durak@inria.fr>
418         Hygiene generates sterilize.sh.
420         * fda.ml: .
421         * fda.mli: .
422         * hygiene.ml: .
423         * hygiene.mli: .
424         * main.ml: .
425         * options.ml: .
426         * signatures.mli: .
428 2007-02-07  Berke Durak  <berke.durak@inria.fr>
430         Updated section on ocamldoc.
432         * manual/manual.tex: .
434 2007-02-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
436         Some minor manual and slides changes.
438         * ocamlbuild-presentation.rslide,
439         * manual/manual.tex: Ditto.
441 2007-02-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
443         Make links for the documentation.
445         * main.ml: Handle doc.
446         * test/good-output: Update.
448 2007-02-07  Berke Durak  <berke.durak@inria.fr>
450         Added manual section for ocamldoc.
452         * manual/manual.tex: .
453         * manual/Makefile: .
455 2007-02-07  Berke Durak  <berke.durak@inria.fr>
457         Fixed truncated display problem.
459         * executor.ml: .
460         * .vcs: .
462 2007-02-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
464         Fix the bootstrap.
466         * start.sh: Swap lines.
467         * Makefile: -verbose.
469 2007-02-07  Berke Durak  <berke.durak@inria.fr>
471         TODO + Executor.
473         * manual/manual.tex: .
474         * TODO: .
476 2007-02-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
478         Make -a more static, to avoid some complications.
480         * ocaml_utils.ml,
481         * ocaml_compiler.ml,
482         * ocaml_compiler.ml,
483         * ocaml_specific.ml: Ditto.
485 2007-02-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
487         A fix.
489         * ocaml_compiler.ml: Don't use these refs too early.
490         * ocamlbuild-presentation.rslide: .
492 2007-02-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
494         Plugin signature.
496         Somewhat a big patch, but that's just moving things around.
498         * signatures.mli: Add TAGS, OUTCOME, MISC, OPTIONS, ARCH and PLUGIN.
499         * ocamlbuild_plugin.mli: New.
500         * ocamlbuild_plugin.ml: Conform to the sig.
502         * command.ml,
503         * command.mli: Add a tags type.
504         * main.ml: Quit early if no targets.
505         * my_std.ml,
506         * my_std.mli: More things are in signatures.
507         * resource.ml,
508         * resource.mli: Remove the type t that was an Pathname.t alias.
509         * options.ml,
510         * options.mli: Add ext_lib, ext_obj, ext_dll.
511         * ocaml_compiler.ml: Update.
512         * ocaml_tools.ml: Update to Outcome.
513         * ocaml_specific.ml: Update.
514         * ocaml_utils.mli: Remove *ext_*.
515         * ocaml_arch.mli: Now in signatures.
516         * pathname.ml: Add readdir.
517         * slurp.ml: open Outcome.
518         * rule.ml,
519         * rule.mli,
520         * solver.ml,
521         * solver.mli: Update to Resource.t and Outcome.t.
522         * tags.mli: Now in Signatures.
523         * test/good-output: Update.
524         * test/test8/test.sh,
525         * test/test3/test.sh,
526         * test/test4/test.sh,
527         * test/test5/test.sh,
528         * test/test6/test.sh,
529         * test/test7/test.sh,
530         * test/test2/test.sh: Update to -verbose 0.
532 2007-02-05  Berke Durak  <berke.durak@inria.fr>
534         Continuing doc.
536         * manual/manual.tex: .
537         * .: .
539 2007-02-05  Berke Durak  <berke.durak@inria.fr>
541         Described display line.
543         * manual/manual.tex: .
545 2007-02-05  Berke Durak  <berke.durak@inria.fr>
547         Renamed -debug as -verbose.  Authorized spaces etc. in flags.  Continuing documentation.
549         * lexers.mll: .
550         * manual/manual.tex: .
551         * options.ml: .
553 2007-02-05  Berke Durak  <berke.durak@inria.fr>
555         Added man page.
557         * main.ml: .
558         * man: New.
559         * man/ocamlbuild.1: New.
560         * manual/manual.tex: .
561         * TODO: .
563 2007-02-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
565         Update start.sh.
567         * start.sh: Update.
569 2007-02-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
571         Typo s/Orignal/Original/g.
573 2007-02-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
575         Make signatures and std_signatures mliS.
577         * signatures.ml: Remove.
578         * std_signatures.ml: Remove.
579         * signatures.mli: New.
580         * std_signatures.mli: New.
581         * Makefile: Update.
582         * lexers.mll: Allow any prefix: for tags.
584 2007-02-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
586         The beginning of a presentation.
588         * ocamlbuild-presentation.rslide: New.
590 2007-02-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
592         Also add who is the original author of the file.
594         * ocamlbuild.ml,
595         * ocamlbuild_plugin.ml,
596         * ocamlbuildlight.ml,
597         * ocamlbuild_where.mli,
598         * ocamlbuild.mli,
599         * ocamlbuildlight.mli,
600         * bool.ml,
601         * bool.mli,
602         * configuration.ml,
603         * configuration.mli,
604         * command.ml,
605         * command.mli,
606         * display.ml,
607         * discard_printf.ml,
608         * display.mli,
609         * discard_printf.mli,
610         * executor.ml,
611         * executor.mli,
612         * flags.ml,
613         * fda.ml,
614         * flags.mli,
615         * fda.mli,
616         * glob.ml,
617         * glob_ast.ml,
618         * glob_ast.mli,
619         * glob.mli,
620         * glob_lexer.mli,
621         * glob_lexer.mll,
622         * hygiene.ml,
623         * hooks.ml,
624         * hygiene.mli,
625         * hooks.mli,
626         * log.ml,
627         * lexers.mli,
628         * log.mli,
629         * lexers.mll,
630         * my_unix_with_unix.ml,
631         * main.ml,
632         * my_unix.ml,
633         * my_std.ml,
634         * my_unix_with_unix.mli,
635         * my_std.mli,
636         * my_unix.mli,
637         * main.mli,
638         * ocaml_utils.ml,
639         * ocaml_tools.ml,
640         * ocaml_arch.ml,
641         * ocaml_specific.ml,
642         * ocaml_compiler.ml,
643         * ocaml_dependencies.ml,
644         * ocaml_utils.mli,
645         * ocaml_specific.mli,
646         * ocaml_dependencies.mli,
647         * ocaml_tools.mli,
648         * ocaml_arch.mli,
649         * ocaml_compiler.mli,
650         * options.ml,
651         * options.mli,
652         * ocamldep.ml,
653         * ocamldep.mli,
654         * plugin.ml,
655         * ppcache.ml,
656         * pathname.ml,
657         * ppcache.mli,
658         * plugin.mli,
659         * pathname.mli,
660         * resource.ml,
661         * resource.mli,
662         * rule.ml,
663         * rule.mli,
664         * report.ml,
665         * report.mli,
666         * signatures.ml,
667         * slurp.ml,
668         * std_signatures.ml,
669         * solver.ml,
670         * shell.ml,
671         * shell.mli,
672         * slurp.mli,
673         * solver.mli,
674         * tags.ml,
675         * tools.ml,
676         * tags.mli,
677         * tools.mli: Ditto.
679 2007-02-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
681         Add the header license.
683         * ocamlbuildlight.ml,
684         * ocamlbuild.ml,
685         * ocamlbuild_plugin.ml,
686         * ocamlbuild_where.mli,
687         * ocamlbuild.mli,
688         * ocamlbuildlight.mli,
689         * bool.ml,
690         * bool.mli,
691         * configuration.ml,
692         * configuration.mli,
693         * command.ml,
694         * command.mli,
695         * discard_printf.ml,
696         * display.ml,
697         * display.mli,
698         * discard_printf.mli,
699         * executor.ml,
700         * executor.mli,
701         * fda.ml,
702         * flags.ml,
703         * flags.mli,
704         * fda.mli,
705         * glob.ml,
706         * glob_ast.ml,
707         * glob.mli,
708         * glob_ast.mli,
709         * glob_lexer.mli,
710         * glob_lexer.mll,
711         * hygiene.ml,
712         * hooks.ml,
713         * hygiene.mli,
714         * hooks.mli,
715         * log.ml,
716         * lexers.mli,
717         * log.mli,
718         * lexers.mll,
719         * my_unix.ml,
720         * main.ml,
721         * my_std.ml,
722         * my_unix_with_unix.ml,
723         * misc/opentracer.ml,
724         * my_std.mli,
725         * main.mli,
726         * my_unix.mli,
727         * my_unix_with_unix.mli,
728         * ocaml_arch.ml,
729         * ocaml_compiler.ml,
730         * ocaml_specific.ml,
731         * ocaml_tools.ml,
732         * ocaml_utils.ml,
733         * ocaml_dependencies.ml,
734         * ocaml_utils.mli,
735         * ocaml_tools.mli,
736         * ocaml_dependencies.mli,
737         * ocaml_compiler.mli,
738         * ocaml_specific.mli,
739         * ocaml_arch.mli,
740         * options.ml,
741         * options.mli,
742         * ocamldep.ml,
743         * ocamldep.mli,
744         * plugin.ml,
745         * pathname.ml,
746         * ppcache.ml,
747         * plugin.mli,
748         * ppcache.mli,
749         * pathname.mli,
750         * resource.ml,
751         * resource.mli,
752         * rule.ml,
753         * rule.mli,
754         * report.ml,
755         * report.mli,
756         * slurp.ml,
757         * std_signatures.ml,
758         * signatures.ml,
759         * solver.ml,
760         * shell.ml,
761         * shell.mli,
762         * slurp.mli,
763         * solver.mli,
764         * tools.ml,
765         * tags.ml,
766         * tags.mli,
767         * tools.mli: Ditto.
769 2007-02-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
771         Fix a bug in copy_file.
773         * my_std.ml: Also use the binary mode for the output channel.
775 2007-02-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
777         Add nopervasives, and nolabels.
779         * ocaml_specific.ml: Ditto.
781 2007-02-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
783         Windows cannot use executor.
785         * shell.ml: As in command.ml use executor only in non-windows and
786         non-degraded mode.
787         * rule.ml: Update two error messages.
789 2007-02-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
791         Some minor things for the ocaml myocamlbuild for instance.
793         * configuration.ml,
794         * configuration.mli: Add has_tag.
795         * my_std.ml,
796         * my_std.mli: Add getenv and copy_chan.
797         * ocaml_utils.ml,
798         * ocaml_utils.mli: Move some commands to rule.
799         * ocaml_specific.ml: Improve the menhir switching.
800         * options.ml,
801         * options.mli: Add -use-menhir and -menhir options.
802         * rule.ml,
803         * rule.mli: Add copy_rule and move some commands from ocaml_utils.
804         * signatures.ml: .
806 2007-02-01  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
808         Move main sigs in signatures.ml and std_signatures.ml.
810         * ocamlbuild_pack.mlpack: .
811         * ocamlbuildlib.mllib: .
812         * ocamlbuildlightlib.mllib: .
813         * ocamlbuild.odocl: .
814         * command.mli: .
815         * glob.mli: .
816         * log.mli: .
817         * my_unix_with_unix.ml: .
818         * my_std.ml: .
819         * my_std.mli: .
820         * ocaml_specific.ml: .
821         * pathname.mli: .
822         * std_signatures.ml: New.
823         * signatures.ml: New.
824         * start.sh: .
825         * tags.ml: .
826         * tags.mli: .
827         * test/test5/_tags: .
828         * Makefile: .
829         * _tags: .
831 2007-02-01  Berke Durak  <berke.durak@inria.fr>
833         Shell.run doesn't use execute_many in degraded mode.
835         * shell.ml: .
837 2007-02-01  Berke Durak  <berke.durak@inria.fr>
839         cp, rm -rf and mv-like commands use Executor to better play with display.
841         * display.ml: .
842         * my_unix.ml: .
843         * main.ml: .
844         * my_std.ml: .
845         * my_unix.mli: .
846         * shell.ml: .
847         * shell.mli: .
848         * start.sh: .
849         * _tags: .
851 2007-02-01  Berke Durak  <berke.durak@inria.fr>
853         Systematizing exit codes.
855         * executor.ml: .
856         * main.ml: .
858 2007-02-01  Berke Durak  <berke.durak@inria.fr>
860         Added automatic file: tag, changed flag syntax.
862         * lexers.mli: .
863         * lexers.mll: .
864         * main.ml: .
865         * ocamldep.ml: .
866         * ocamldep.mli: .
867         * tools.ml: .
869 2007-01-31  Berke Durak  <berke.durak@inria.fr>
871         Cleans up links to the _build directory.
873         * main.ml: .
874         * options.ml: .
875         * options.mli: .
876         * pathname.ml: .
877         * pathname.mli: .
879 2007-01-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
881         Restore the link to binary targets functionality.
883         * main.ml: Make it separate from target running.
885 2007-01-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
887         Add an hygiene hook pair.
889         * ocamlbuild_plugin.ml,
890         * hooks.ml,
891         * hooks.mli,
892         * main.ml: Ditto.
894 2007-01-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
896         The Killer feature about a fine grained dependency injection control.
898         * rule.ml,
899         * rule.mli: Add build_deps_of_tags and call it automatically before
900         * ocaml_compiler.ml,
901         * ocaml_compiler.mli: Rework tags, to have them when callinng
902         build_deps_of_tags.
903         executing a command.
904         * ocaml_specific.ml,
905         * ocaml_specific.mli: Move the exception Exit_build_error to main and
906         remove the old dep function.
907         * ocamlbuild_plugin.ml: Export some new functions.
908         * test/test7/myocamlbuild.ml: Add a dep declaration.
909         * test/test7/cool_plugin.ml: New.
910         * test/test7/_tags: New.
911         * test/good-output: Update.
912         * flags.ml,
913         * command.ml,
914         * command.mli: Rename flags_of_tags as tag_handler.
915         * main.ml: Update error handling.
916         * TODO: Done.
918 2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
920         Fix and improve the new link/deps system.
922         * ocaml_dependencies.ml,
923         * ocaml_dependencies.mli: Some fixes and improvements.
924         * pathname.ml,
925         * pathname.mli: Add check_extension.
926         * ocaml_compiler.ml,
927         * ocaml_compiler.mli: Add support for hidden_packages and update.
929 2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
931         Reverse the last 2 patches, since there is fact no name clash.
933 2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
935         Shell -> Oshell second part.
937         * ocamlbuild.odocl: Ditto.
938         * test/good-output: Update.
940 2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
942         Rename the Shell module as Oshell to avoid a name clash with labltk.
944         * shell.ml: Remove.
945         * shell.mli: Remove.
946         * oshell.ml: New.
947         * oshell.mli: New.
948         * ocamlbuild_pack.mlpack,
949         * command.ml,
950         * display.ml,
951         * main.ml,
952         * options.ml,
953         * ppcache.ml,
954         * pathname.ml,
955         * plugin.ml,
956         * resource.ml,
957         * start.sh: Update.
959 2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
961         Fix 2 bugs.
963         * test/test9/testglob.ml: More tests.
964         * glob_lexer.mll: Fix "/**".
965         * _tags: Restore my warnings.
966         * executor.ml: Use the unused variable.
968 2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
970         Improve dprintf and update.
972         * log.ml, log.mli: dprintf now wraps the message between "@[<2>" and "@]@.".
973         * command.ml,
974         * display.ml,
975         * fda.ml,
976         * main.ml,
977         * ocaml_dependencies.ml,
978         * ocaml_compiler.ml,
979         * ocaml_utils.ml,
980         * ocamldep.ml,
981         * pathname.ml,
982         * resource.ml,
983         * rule.ml,
984         * solver.ml: Update the dprintf usage.
986 2007-01-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
988         Add the new dependency linking system (plz test it !).
990         * ocamlbuild_pack.mlpack: Add a brand new module.
991         * ocaml_dependencies.ml: New.
992         * ocaml_dependencies.mli: New.
993         * ocaml_compiler.ml,
994         * ocaml_compiler.mli: Use this new module.
995         * resource.ml,
996         * resource.mli: Export a folding function on dependencies.
997         * TODO: Add something to do.
998         * start.sh: .
999         * main.ml: Update.
1001 2007-01-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1003         Executor exit codes.
1005         * executor.ml: Use the standard exit.
1006         * main.ml: Some exit codes are reserved for Executor.
1008 2007-01-29  Berke Durak  <berke.durak@inria.fr>
1010         Executor returns finer-grained results.
1012         * executor.ml: .
1013         * manual/manual.tex: .
1015 2007-01-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1017         Toward a working command execute feature :).
1019         * executor.ml,
1020         * executor.mli: FIXME.
1021         * command.ml,
1022         * command.mli: Update to the new signature and merge the degraded mode
1023         to avoid duplication.
1024         * my_unix.ml,
1025         * my_unix.mli,
1026         * ocaml_utils.ml,
1027         * ocamldep.ml,
1028         * plugin.ml,
1029         * resource.ml,
1030         * rule.ml,
1031         * solver.ml,
1032         * test/good-output: Update.
1034 2007-01-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1036         Revert almost all of the 2 last patches.
1038         * command.ml: .
1039         * command.mli: .
1040         * executor.ml: .
1041         * executor.mli: .
1042         * my_unix.ml: .
1043         * my_unix.mli: .
1044         * ocaml_utils.ml: .
1045         * ocaml_specific.ml: .
1046         * ocamldep.ml: .
1047         * plugin.ml: .
1048         * resource.ml: .
1049         * rule.ml: .
1050         * solver.ml: .
1052 2007-01-29  Berke Durak  <berke.durak@inria.fr>
1054         Fixing before/after thunks.
1056         * command.ml: .
1057         * command.mli: .
1058         * ocaml_utils.ml: .
1059         * ocamldep.ml: .
1060         * plugin.ml: .
1061         * resource.ml: .
1062         * rule.ml: .
1063         * solver.ml: .
1064         * TODO: .
1066 2007-01-29  Berke Durak  <berke.durak@inria.fr>
1068         Adding before and after handlers to Executor.
1070         * command.ml: .
1071         * executor.ml: .
1072         * executor.mli: .
1073         * my_unix.ml: .
1074         * my_unix.mli: .
1075         * manual/manual.tex: .
1077 2007-01-29  Berke Durak  <berke.durak@inria.fr>
1079         Fixed multi-dir globbing.
1081         * glob_lexer.mll: .
1082         * manual/manual.tex: .
1084 2007-01-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1086         Add Rule.custom_rule and cleanup the ocamldep meta rule.
1088         * ocamldep.ml,
1089         * ocamldep.mli: Make it a meta rule (or a rule generator).
1090         * rule.ml,
1091         * rule.mli: Add custom_rule.
1092         * ocaml_specific.ml: Update to Ocamldep.
1093         * test/good-output: Minor update.
1095 2007-01-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1097         MakefileS...
1099         * manual/Makefile: More things to remove (sometimes).
1100         * Makefile: Use $(BUILDDIR) instead of _build.
1102 2007-01-26  Berke Durak  <berke.durak@inria.fr>
1104         Documenting glob expressions.
1106         * glob_lexer.mll: Added negative character classes.
1107         * manual/manual.tex: .
1109 2007-01-26  Berke Durak  <berke.durak@inria.fr>
1111         Started documenting glob syntax.
1113         * manual/manual.tex: .
1115 2007-01-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1117         One other include dir fix.
1119         * main.ml: Ditto.
1120         * test/test9/testglob.ml: Add a failing test (request for feature).
1121         * test/good-output: Update.
1123 2007-01-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1125         Include dirs and Backtrace.
1127         * main.ml: Fix -I, and restore the backtrace.
1128         * report.ml,
1129         * report.mli: Fix the backtrace and rename analyze to
1130         print_backtrace_analyze.
1132 2007-01-25  Berke Durak  <berke.durak@inria.fr>
1134         Added cross-directory globbing.
1136         * glob_ast.ml: .
1137         * glob.ml: .
1138         * glob_ast.mli: .
1139         * glob_lexer.mll: .
1140         * test/test9/testglob.ml: .
1142 2007-01-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1144         Inlcude dirs trought tags.
1146         * main.ml: Ditto.
1147         * my_unix_with_unix.ml: Imrpove stat errors.
1148         * my_std.ml,
1149         * my_std.mli: .
1150         * pathname.ml: bmla.
1151         * slurp.ml,
1152         * slurp.mli: Add force, fix bugs.
1154 2007-01-25  Berke Durak  <berke.durak@inria.fr>
1156         Fixed double display of error status.
1158         * command.ml: .
1159         * display.ml: .
1160         * display.mli: .
1161         * log.ml: .
1162         * log.mli: .
1163         * main.ml: .
1164         * my_std.ml: .
1165         * my_std.mli: .
1166         * plugin.ml: .
1168 2007-01-25  Berke Durak  <berke.durak@inria.fr>
1170         Stupid bug.
1172         * log.ml: .
1173         * main.ml: .
1174         * options.ml: .
1176 2007-01-25  Berke Durak  <berke.durak@inria.fr>
1178         Fixed interface, handling of -- with no argument.
1180         * ocamlbuild_plugin.mli: Remove.
1181         * manual/manual.tex: .
1182         * options.ml: .
1184 2007-01-25  Berke Durak  <berke.durak@inria.fr>
1186         Updated start.sh.
1188         * start.sh: .
1190 2007-01-25  Berke Durak  <berke.durak@inria.fr>
1192         Added .mlis.
1194         * ocamlbuild_plugin.mli: New.
1195         * fda.mli: New.
1196         * main.ml: .
1197         * ocaml_specific.ml: .
1198         * plugin.ml: .
1199         * plugin.mli: New.
1201 2007-01-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1203         Cut down ocaml_specific in pieces.
1205         * ocaml_specific.ml,
1206         * ocaml_specific.mli: Split.
1207         * ocamlbuild_plugin.ml: Update.
1208         * ocamlbuild_pack.mlpack: Add new modules.
1209         * my_std.ml,
1210         * my_std.mli: Add good_outcome.
1211         * ocaml_utils.ml: New.
1212         * ocaml_tools.ml: New.
1213         * ocaml_compiler.ml: New.
1214         * ocaml_utils.mli: New.
1215         * ocaml_compiler.mli: New.
1216         * ocaml_tools.mli: New.
1217         * ocamldep.ml: New.
1218         * ocamldep.mli: New.
1219         * start.sh: Update.
1220         * TODO: Move things done.
1222 2007-01-25  Berke Durak  <berke.durak@inria.fr>
1224         Fixer return codes and error message flushing issues.
1226         * display.ml: .
1227         * log.ml: .
1228         * log.mli: .
1229         * main.ml: .
1230         * report.ml: .
1231         * report.mli: .
1233 2007-01-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1235         Add a warning.
1237         * ocaml_specific.ml: In -debug 1 mode there is a now a warning when
1238         ocamlbuild skip a seliently a module, supposing that's an error of
1239         ocamldep.
1241 2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1243         More hooks.
1245         * ocamlbuild_plugin.ml,
1246         * hooks.ml,
1247         * hooks.mli,
1248         * main.ml: Add {Before,After}_rules.
1250 2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1252         Call these hooks.
1254         * main.ml: Call these hooks.
1256 2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1258         Add a first version of dispatch.
1260         * ocamlbuild_plugin.ml: Export dispatch and the hooks type.
1261         * ocamlbuild_pack.mlpack: Add Hooks.
1262         * hooks.ml: New.
1263         * hooks.mli: New.
1264         * ocaml_specific.mli: New line.
1266 2007-01-24  Berke Durak  <berke.durak@inria.fr>
1268         Mini slurp bug.
1270         * slurp.ml: .
1271         * TODO: .
1273 2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1275         Fix few more things.
1277         * ocamlbuildlight.ml: .
1278         * ocamlbuild_version.ml: Remove.
1279         * ocamlbuild.ml: .
1280         * ocamlbuild_pack.mlpack: .
1281         * main.ml: .
1282         * ocaml_specific.ml: .
1283         * ocaml_specific.mli: .
1284         * start.sh: .
1285         * test/test2/toto.ml: .
1286         * test/good-output: .
1288 2007-01-24  Berke Durak  <berke.durak@inria.fr>
1290         Read directories before files in Slurp.
1292         * slurp.ml: .
1293         * TODO: .
1295 2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1297         Fix some bugs.
1299         * ocamlbuild_version.ml: Remove.
1300         * ocamlbuild.ml,
1301         * ocamlbuildlight.ml: Main is now in the pack.
1302         * ocamlbuild_pack.mlpack: more things.
1303         * ocaml_specific.ml: One fix and one comment.
1304         * start.sh: Update.
1306 2007-01-24  Berke Durak  <berke.durak@inria.fr>
1308         Splitting ocaml_specific into multiple files.
1310         * ocamlbuildlight.ml: .
1311         * ocamlbuild.ml: .
1312         * ocamlbuild_version.ml: New.
1313         * ocamlbuild.mli: .
1314         * ocamlbuildlight.mli: .
1315         * ocamlbuild_pack.mlpack: .
1316         * command.ml: .
1317         * fda.ml: New.
1318         * hygiene.ml: .
1319         * main.ml: New.
1320         * my_std.ml: .
1321         * my_std.mli: .
1322         * main.mli: New.
1323         * manual/manual.tex: .
1324         * ocaml_specific.ml: .
1325         * ocaml_specific.mli: .
1326         * options.ml: .
1327         * options.mli: .
1328         * plugin.ml: New.
1329         * rule.ml: .
1330         * report.ml: .
1331         * tools.ml: New.
1332         * tools.mli: New.
1333         * TODO: .
1334         * _tags: .
1336 2007-01-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1338         Minor changes.
1340         * manual/manual.tex: Typo s/the the/the/g.
1341         * ocaml_specific.ml,
1342         * ocaml_specific.mli: Add some function to deal with linking of a
1343         module list. Add a better lib declaration function.
1344         * TODO: Update.
1346 2007-01-17  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1348         A new pathname operator and a bug fix.
1350         * pathname.ml,
1351         * pathname.mli: add the ( -.- ) operator to add an extension to a
1352         pathname.
1353         * ocaml_specific.ml: Use that new operator.
1354         * resource.ml: Fix a bug.
1356 2007-01-17  Berke Durak  <berke.durak@inria.fr>
1358         More examples.
1360         * examples/example3/epoch.ml: .
1361         * examples/example3/make.sh: New.
1362         * manual/manual.tex: .
1363         * TODO: .
1365 2007-01-17  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1367         Infered mli's, and bug fixes.
1369         * my_unix.ml: Fix a bug.
1370         * my_std.mli: Doc.
1371         * manual/manual.tex: Use \verb.
1372         * ocaml_arch.ml: Don't always overide the forpack_flags_of_pathname
1373         function reference.
1374         * ocaml_arch.mli: Remove the reference.
1375         * ocaml_specific.ml: Update for forpack and add infered mli's.
1376         * pathname.ml,
1377         * pathname.mli: Add is_directory.
1379 2007-01-17  Berke Durak  <berke.durak@inria.fr>
1381         More examples.
1383         * examples/example3/epoch.ml: New.
1384         * examples/example2/hello.ml: .
1385         * examples/example2/greet.ml: New.
1386         * examples/example3: New.
1387         * examples/example2: New.
1388         * manual/manual.tex: .
1389         * TODO: .
1391 2007-01-17  Berke Durak  <berke.durak@inria.fr>
1393         Started examples.
1395         * examples/example1/hello.ml: New.
1396         * examples/example1: New.
1397         * examples: New.
1398         * manual/manual.tex: .
1399         * .vcs: .
1400         * TODO: .
1402 2007-01-17  Berke Durak  <berke.durak@inria.fr>
1404         Wrote limitations and features.
1406         * manual/manual.tex: .
1408 2007-01-17  Berke Durak  <berke.durak@inria.fr>
1410         Wrote motivations.
1412         * manual/manual.tex: .
1413         * _tags: .
1415 2007-01-17  Berke Durak  <berke.durak@inria.fr>
1417         Started manual.
1419         * manual/Makefile: New.
1420         * manual/manual.tex: New.
1421         * manual: New.
1423 2007-01-17  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1425         Bugs, menhir, path variables.
1427         * display.ml: Fix a bug.
1428         * glob.mli: Fix a typo.
1429         * lexers.mli,
1430         * lexers.mll: Extend ocamldep_output lexer and meta_path lexer.
1431         * my_std.ml,
1432         * my_std.mli: Add memo and String.rev.
1433         * ocaml_specific.ml,
1434         * ocaml_specific.mli: Better rules for C lib linking and menhir rules.
1435         * resource.ml,
1436         * resource.mli: Handle naively some multiple variables.
1437         * rule.ml,
1438         * rule.mli: Update.
1439         * start.sh: Update.
1441 2007-01-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1443         Integrate dprintf to the display.
1445         * display.ml,
1446         * display.mli: Add dprintf and log_level.
1447         * log.ml,
1448         * log.mli: Add dprintf and level.
1449         * debug.ml: Remove.
1450         * debug.mli: Remove.
1451         * options.ml: Update.
1452         * command.ml, ocaml_specific.ml, my_std.ml,
1453         * pathname.ml, ppcache.ml, resource.ml,
1454         * rule.ml, report.ml, slurp.ml, solver.ml,
1455         * configuration.ml, tags.ml: Update to Log.
1456         * ocamlbuild.odocl: Add Log, remove Debug.
1457         * ocamlbuild_pack.mlpack: Remove Debug.
1458         * bool.ml: Remove the debug dependency.
1460 2007-01-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1462         Execute and windows...
1464         * command.ml: Test windows here.
1465         * my_unix_with_unix.ml: Revert a little.
1467 2007-01-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1469         Don't use executor on windows.
1471         * my_unix_with_unix.ml: Since at least set_nonblock does not works on
1472         windows.
1474 2007-01-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1476         Add the -no-log option and fix a log bug.
1478         * log.mli,
1479         * log.ml: Log is now a lazy to have the good setup order.
1480         * options.ml: Add the -no-log option.
1482 2007-01-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1484         Fix a bug with quoting of the nil string.
1486         * shell.ml: Quote the nil string.
1488 2007-01-09  Berke Durak  <berke.durak@inria.fr>
1490         Documented the interface of the glob module.
1492         * glob.mli: .
1494 2007-01-09  Berke Durak  <berke.durak@inria.fr>
1496         Continuing to document interfaces.
1498         * bool.mli: .
1499         * debug.mli: .
1500         * discard_printf.mli: .
1501         * executor.mli: .
1502         * hygiene.mli: .
1503         * my_std.mli: .
1504         * slurp.mli: .
1505         * Makefile: .
1507 2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1509         Fix a bug with directory links to build dir.
1511         * ocaml_specific.ml,
1512         * options.ml,
1513         * options.mli: Keep the Slurp.entry instead of a set.
1514         * pathname.ml: Clean the entry instead of the set, that more precise.
1515         * Makefile: Add doc phonny rules.
1517 2007-01-09  Berke Durak  <berke.durak@inria.fr>
1519         Doc for Configuration.
1521         * ocamlbuild_plugin.ml: .
1522         * bool.mli: .
1523         * configuration.ml: .
1524         * configuration.mli: .
1525         * command.mli: .
1526         * doc: New.
1527         * glob.ml: .
1528         * ocaml_specific.ml: .
1529         * Makefile: .
1531 2007-01-09  Berke Durak  <berke.durak@inria.fr>
1533         Started documentation.
1535         * bool.mli: .
1536         * command.ml: .
1537         * command.mli: .
1539 2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1541         Export the doc.
1543         * Makefile: Use a link.
1544         * _tags: Don't spend times in that dir.
1546 2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1548         Put the log file in the source dir and not when building plugin.
1550         * log.ml,
1551         * log.mli: Use an optional.
1552         * options.ml: Update.
1553         * pathname.mli: Export in_source_dir.
1554         * .vcs: Add _log.
1556 2007-01-09  Berke Durak  <berke.durak@inria.fr>
1558         Added doc target.
1560         * report.ml: .
1561         * Makefile: .
1562         * TODO: .
1564 2007-01-09  Berke Durak  <berke.durak@inria.fr>
1566         Writes tags to log file.
1568         * display.ml: .
1570 2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1572         Add the Log module.
1574         * ocamlbuild_pack.mlpack: Add Log.
1575         * command.ml,
1576         * command.mli: Use Log.
1577         * log.ml: New.
1578         * log.mli: New.
1579         * options.ml: Use Log.
1580         * start.sh: Update.
1582 2007-01-09  Berke Durak  <berke.durak@inria.fr>
1584         Added -log option.
1586         * command.ml: .
1587         * command.mli: .
1588         * display.ml: .
1589         * display.mli: .
1590         * executor.mli: .
1591         * options.ml: .
1592         * _tags: .
1594 2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1596         Make usable the ocamldoc support.
1598         * ocaml_specific.ml: Add rules for ocamldoc.
1599         * ocamlbuild.odocl: New.
1600         * test/test3/proj.odocl: New.
1601         * test/good-output: Update.
1602         * test/test3/test.sh: Add a odoc test.
1604 2007-01-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1606         Some cleanups.
1608         * ocamlbuild_plugin.ml: Add tag_file that simule one simple line in the
1609         _tags file.
1610         * ocaml_specific.ml,
1611         * ocaml_specific.mli: Add ln_s, touch, chmod.
1612         * pathname.ml,
1613         * pathname.mli: Remove map_extension*, split_extension* and compiled
1614         files hack skipping.
1615         * rule.ml: Improve logging.
1616         * solver.ml: Use another level.
1618 2007-01-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1620         Fix a bug with debug rules.
1622         * ocaml_specific.ml: Move %.cmi from prods to deps.
1623         * test/good-output: Update.
1625 2007-01-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1627         Add debugging rules.
1628         To get a ocamlbuild with debugging info you can
1629         call `make debug' that will produce ocamlbuild.d.byte
1630         and x.d.cmo files.
1632         * ocaml_specific.ml,
1633         * ocaml_specific.mli: Add debugging rules, reorder warnings flag to
1634         have 'A' and 'a' before others.
1635         * Makefile: Add the debug target.
1636         * _tags: Cleanup (remove the debug tag that was set by default).
1638 2007-01-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1640         Add profiling support directly in rules.
1641         This means that you can now request for building a target such as
1642         my_main.p.native or my_lib.p.cmxa, that will create %.p.cmx
1643         intermediate files that do not interfer with non-profiling ones.
1645         * ocaml_specific.ml,
1646         * ocaml_specific.mli: Add rules and functions for native link and
1647         comilation in profiling mode.
1648         * Makefile: Add a profile target (require a fixed ocamlopt w.r.t pack).
1649         * _tags: Take care also of .p.cmx files.
1650         * glob.ml: IS.print is equivalent to print_is.
1651         * my_std.ml: Fix a bug.
1653 2007-01-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1655         Add some functions...
1657         * glob.ml: Extract is_suffix and is_prefix.
1658         * my_std.ml,
1659         * my_std.mli: Add String.{is_suffix,is_prefix,first_chars,last_chars}
1660         and List.union.
1661         * pathname.ml,
1662         * pathname.mli: Add get_extensions, remove_extensions,
1663         update_extensions, map_extensions that treat all extensions instead of
1664         just the last.
1665         * tags.ml,
1666         * tags.mli: Add +++ and --- that treat optional tags.
1668 2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1670         Change the default display in degraded mode.
1672         * command.ml: Ditto.
1674 2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1676         Cleanup Makefile options.
1678         * Makefile: Ditto.
1680 2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1682         Add a simple opened files tracer.
1684         * misc/opentracer.ml: New.
1685         Just support ktrace for now. A strace one will be appreciated the
1686         interface to follow is quite simple anyway.
1687         * misc: New.
1689 2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1691         Handle better commands without Px atom.
1693         * command.ml: Display the whole command if no Px is found.
1694         * display.mli: No longer export these strings.
1696 2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1698         Handle myocamlbuild_config.mli.
1700         * ocaml_specific.ml: Add support for an interface to the config.
1702 2007-01-06  Berke Durak  <berke.durak@inria.fr>
1704         Improved language of explanations in Report.
1706         * report.ml: .
1708 2007-01-06  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1710         Factor and fix the plugin building.
1712         * ocamlbuildlight.mli: New.
1713         * executor.ml: Call cleanup, add a fixme.
1714         * ocaml_specific.ml: Factor and fix plugin stuffs.
1715         * start.sh: Update.
1716         * Makefile: Update.
1717         * TODO: Update.
1718         * _tags: No longer do favors to some modules.
1720 2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1722         Fix plugins.
1724         * ocamlbuildlib.mllib: Add missing modules.
1725         * ocamlbuildlightlib.mllib: New.
1726         * Makefile: Update.
1728 2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1730         Change the my_unix system.
1732         * ocamlbuildlight.ml: Just call the main.
1733         * ocamlbuild.ml: Setup my_unix_with_unix.
1734         * ocamlbuildlib.mllib: Remove executor and exit_codes for the lib.
1735         * ocamlbuild_pack.mlpack: Remove my_std and my_unix.
1736         * exit_codes.ml: Remove. Put them directly in executor.
1737         * executor.ml: Add exitcodes.
1738         * my_unix.ml: New. Default implem.
1739         * my_unix_with_unix.ml: Extend the default implem.
1740         * my_unix_without_unix.ml: Remove.
1741         * my_unix.mli: Add the implem type and val.
1742         * my_unix_with_unix.mli: New.
1743         * ocaml_specific.ml,
1744         * pathname.ml,
1745         * slurp.ml,
1746         * Makefile,
1747         * command.ml,
1748         * _tags: Update.
1750 2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1752         Don't use executor for the myocamlbuild call.
1754         * ocaml_specific.ml: Use sys_command directly.
1756 2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1758         Fix a stupid bug.
1760         * command.ml: That cause to have reversed sequences.
1762 2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1764         Some libs and ocamldoc changes.
1766         * ocaml_specific.ml,
1767         * ocaml_specific.mli: Improve ocaml_lib_flag, add fews libs.
1768         Fix ocamldoc support update tags, and use Px only once.
1770 2007-01-05  Berke Durak  <berke.durak@inria.fr>
1772         Started ocamldoc support.
1774         * ocaml_specific.ml: .
1775         * options.ml: .
1776         * options.mli: .
1778 2007-01-05  Berke Durak  <berke.durak@inria.fr>
1780         Pretend option didn't work.
1782         * command.ml: .
1784 2007-01-05  Berke Durak  <berke.durak@inria.fr>
1786         TODO + typo.
1788         * options.ml: .
1789         * TODO: .
1791 2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1793         Really call executor all time.
1795         * command.ml,
1796         * command.mli: Remove normalization.
1797         And execute_many, it's now execute that do all the job.
1798         In degraded mode it's execute_degraded.
1799         * my_unix_without_unix.ml: Update.
1800         * ocaml_specific.ml,
1801         * resource.ml,
1802         * rule.ml,
1803         * solver.ml: Update to Command.execute type.
1805 2007-01-05  Berke Durak  <berke.durak@inria.fr>
1807         Isatty detection logic.
1809         * command.ml: .
1810         * executor.ml: .
1811         * my_unix_with_unix.ml: .
1812         * my_unix_without_unix.ml: .
1813         * my_unix.mli: .
1815 2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1817         Always call executor.
1819         * command.ml: Unless in degraded mode.
1821 2007-01-05  Berke Durak  <berke.durak@inria.fr>
1823         Removed debugging output, added period argument for ticker.
1825         * display.ml: .
1826         * executor.ml: .
1827         * executor.mli: .
1828         * my_unix.mli: .
1830 2007-01-05  Berke Durak  <berke.durak@inria.fr>
1832         Somewhat slow but executor seems to work.
1834         * executor.ml: .
1836 2007-01-05  Berke Durak  <berke.durak@inria.fr>
1838         Added an Exit_codes module.  Fixing Executor...
1840         * ocamlbuild.ml: .
1841         * ocamlbuildlib.mllib: .
1842         * executor.ml: .
1843         * exit_codes.ml: New.
1844         * solver.ml: .
1846 2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1848         Fix the max_jobs argument passing.
1850         * command.ml: Use an optional argument.
1852 2007-01-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1854         Subway changes...
1856         * my_unix_without_unix.ml,
1857         * my_unix_with_unix.ml,
1858         * my_unix.mli,
1859         * command.ml: Call the new execute_many.
1860         * executor.ml,
1861         * executor.mli: Handle command sequences.
1863 2007-01-04  Berke Durak  <berke.durak@inria.fr>
1865         Added Display.update.
1867         * display.ml: .
1868         * display.mli: .
1869         * executor.ml: .
1871 2007-01-04  Berke Durak  <berke.durak@inria.fr>
1873         Added display function, indentation, language.
1875         * display.ml: .
1876         * display.mli: .
1877         * hygiene.ml: .
1879 2007-01-04  Berke Durak  <berke.durak@inria.fr>
1881         Fixing interface of Executor.
1883         * executor.ml: .
1884         * executor.mli: .
1885         * my_unix_with_unix.ml: .
1887 2007-01-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1889         Add attributes to entries. Add the -byte-plugin option.
1891         * slurp.ml,
1892         * slurp.mli: Add an attribute field, add map, rename fold_pathnames to
1893         fold and filter_on_names to filter.
1894         * hygiene.ml,
1895         * hygiene.mli: Perform hygiene only on entries with a true attribute.
1896         * options.ml,
1897         * options.mli: Add the native_plugin reference and the -byte-plugin
1898         option.
1899         * ocaml_specific.ml,
1900         * ocaml_specific.mli: Exclude files tagged not_hygienic or precious
1901         from hygiene.
1903 2007-01-04  Berke Durak  <berke.durak@inria.fr>
1905         Fixed pack issues.
1907         * ocamlbuild.ml: .
1908         * executor.ml: .
1909         * executor.mli: New.
1910         * _tags: .
1912 2007-01-04  Berke Durak  <berke.durak@inria.fr>
1914         Started executor module.
1916         * executor.ml: New.
1917         * hygiene.ml: .
1918         * my_unix_with_unix.ml: .
1920 2007-01-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1922         Add virtual commands.
1924         * command.ml,
1925         * command.mli: Add the V constructor for virtual commands that
1926         will query a virtual command solver to use the best implementation
1927         of that virtual command.
1929 2007-01-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1931         Mainly, prepare for parallel display.
1933         * ocamlbuild_plugin.ml: Export file_rule.
1934         * command.ml,
1935         * command.mli: Some cleanup and preparation.
1936         * lexers.mll: Remove the dirty hack.
1937         * my_std.ml,
1938         * my_std.mli: Move search_in_path to Command and add ( @:= ).
1939         * my_unix_with_unix.ml,
1940         * my_unix_without_unix.ml,
1941         * my_unix.mli: Change the execute_many_using_fork type.
1942         * ocaml_specific.ml: Use the nopervasives tag for
1943         pervasives dependencies.
1944         * start.sh: Update.
1945         * test/test8/myocamlbuild.ml: Update.
1946         * test/good-output: Update.
1947         * Makefile: Update.
1949 2007-01-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1951         I don't like microbes.
1953         * hygiene.ml: Reverse the bool.
1955 2007-01-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1957         Fix the stat problem.
1959         * ocaml_specific.ml: Use the filtered entry for source_dir_path_set.
1961 2007-01-03  Berke Durak  <berke.durak@inria.fr>
1963         Hygiene filters cleaned out microbes.
1965         * hygiene.ml: .
1966         * hygiene.mli: .
1967         * ocaml_specific.ml: .
1968         * ocaml_specific.mli: .
1969         * slurp.ml: .
1970         * slurp.mli: .
1972 2007-01-03  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
1974         Filename concat cleanup.
1976         * my_std.ml,
1977         * my_std.mli: Add filename_concat.
1978         * glob.ml,
1979         * hygiene.ml,
1980         * lexers.mll,
1981         * pathname.ml,
1982         * resource.ml,
1983         * report.ml,
1984         * solver.ml,
1985         * slurp.ml,
1986         * solver.mli:
1987         Use filename_concat.
1988         * flags.ml: FIXME.
1990 2007-01-03  Berke Durak  <berke.durak@inria.fr>
1992         Revert to old.
1994         * slurp.ml: .
1996 2007-01-03  Berke Durak  <berke.durak@inria.fr>
1998         Debugging tags for myocamlbuild.ml.
2000         * ocaml_specific.ml: .
2001         * slurp.ml: .
2003 2007-01-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2005         Another atempt to fix the slurp bug and lazy.
2007         * slurp.ml: Ditto.
2009 2007-01-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2011         Fix slurp w.r.t lazyness: keep the cwd.
2013         * slurp.ml: Ditto.
2015 2007-01-02  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2017         My_unix, slurp in degraded mode, _tags in subdirs, fix the bug with -j...
2019         * ocamlbuild_version.mli: Remove.
2020         * ocamlbuild_where.mli: New.
2021         * display.mli: New.
2022         * shell.ml: New.
2023         * shell.mli: New.
2024         * glob.ml,
2025         * glob.mli,
2026         * configuration.ml,
2027         * lexers.mli,
2028         * lexers.mll,
2029         * configuration.mli: Honor _tags files in subdirs.
2030         * my_unix_with_unix.ml,
2031         * command.ml,
2032         * command.mli,
2033         * resource.ml,
2034         * resource.mli,
2035         * solver.ml: Fix the bug with the -j option.
2036         * slurp.ml,
2037         * slurp.mli: New degraded mode using the find command.
2038         Use lazy values to avoid computing useless directories.
2039         * options.ml,
2040         * options.mli: Update -version and -where.
2041         * pathname.ml,
2042         * pathname.mli: Remove the init section.
2043         * rule.ml,
2044         * rule.mli: Add file_rule useful for rules that don't run a command but
2045         just write a file.
2046         * ocaml_specific.ml: Fix some plugin bugs. Remove -I to ocamldep.
2047         Handle msvc .obj,.lib instead of .o,.a.
2048         * my_unix_without_unix.ml: Make works link stuffs running the readlink
2049         command.
2050         * display.ml,
2051         * hygiene.ml,
2052         * my_std.ml,
2053         * my_unix.mli,
2054         * my_std.mli,
2055         * start.sh,
2056         * test/test5/test.sh,
2057         * test/good-output,
2058         * test/test6/test.sh,
2059         * test/test7/test.sh,
2060         * test/test4/test.sh,
2061         * test/test8/test.sh,
2062         * test/test3/test.sh,
2063         * test/test2/test.sh,
2064         * Makefile,
2065         * _tags,
2066         * ocamlbuild_pack.mlpack: Update.
2068 2007-01-02  Berke Durak  <berke.durak@inria.fr>
2070         Fixed ticker.
2072         * display.ml: .
2074 2006-12-21  Berke Durak  <berke.durak@inria.fr>
2076         Cosmetic.
2078         * command.ml: .
2079         * display.ml: .
2081 2006-12-21  Berke Durak  <berke.durak@inria.fr>
2083         Computing display length.
2085         * display.ml: .
2087 2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2089         Add -classic-display.
2091         * command.ml,
2092         * command.mli: Provide a way to use the classic display.
2093         * options.ml: Add the -classic-display option.
2094         * Makefile: Remove ppcache form the default.
2096 2006-12-21  Berke Durak  <berke.durak@inria.fr>
2098         Finish display only once ; display number of jobs cached.
2100         * command.ml: .
2101         * display.ml: .
2103 2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2105         Oops fix a bug.
2107         * command.ml: Add begin .. end.
2109 2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2111         Some display fixes.
2113         * command.ml: Select the display mode and remove the assert false.
2114         * display.ml: Change the print function to have a more compact one.
2115         * start.sh: Update.
2117 2006-12-21  Berke Durak  <berke.durak@inria.fr>
2119         Error support in Display.finish.
2121         * display.ml: .
2123 2006-12-21  Berke Durak  <berke.durak@inria.fr>
2125         Support for cache.
2127         * display.ml: .
2129 2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2131         Integrate display mode.
2133         * ocamlbuild_pack.mlpack: Add display.
2134         * command.mli: Add Px to indicate to highligth this pathname.
2135         * command.ml: Support Px and call Display.
2136         * display.ml: Fix minor bugs.
2137         * ocaml_specific.ml: Declare some Px, and quiet ocamlyacc, ocamllex.
2138         * options.ml: Add quiet to default tags.
2139         * ppcache.ml: Detect more accuratly ocamlrun.
2140         * pathname.ml: Improve concat.
2141         * _tags: No profile.
2143 2006-12-21  Berke Durak  <berke.durak@inria.fr>
2145         Added pretend.
2147         * display.ml: .
2149 2006-12-21  Berke Durak  <berke.durak@inria.fr>
2151         Added ticker.
2153         * display.ml: .
2155 2006-12-21  Berke Durak  <berke.durak@inria.fr>
2157         Display module.
2159         * display.ml: .
2160         * my_unix_with_unix.ml: .
2161         * my_unix_without_unix.ml: .
2162         * my_unix.mli: .
2163         * test/test10/test.sh: New.
2164         * test/test10: New.
2165         * test/test10/dbdi: New.
2167 2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2169         Use a better init order, and fix a Filename.concat usage.
2171         * ocaml_specific.ml: The plugin should act before any initialization.
2172         * ocaml_arch.ml: Use Pathname.(/).
2174 2006-12-21  Berke Durak  <berke.durak@inria.fr>
2176         Started user-friendly display module.
2178         * display.ml: New.
2180 2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2182         Fix init order.
2184         * ocaml_specific.ml: Config must be available for plugin building.
2186 2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2188         Some fixes.
2190         * command.ml: Quote if needed.
2191         * my_std.mli: Comment String.contains_string.
2192         * resource.ml: Remove a useless separator.
2193         * test/good-output: Update.
2195 2006-12-21  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2197         Plugin config file and profile mode.
2199         * ocaml_specific.ml: Fix a bug due to the lazyness of &&.
2200         * ocaml_specific.mli: Move some functions.
2202 2006-12-21  Berke Durak  <berke.durak@inria.fr>
2204         Now compiles patterns for fast matching.  Removed regexp support.
2206         * glob_ast.ml: .
2207         * glob.ml: .
2208         * glob_lexer.mli: .
2209         * glob_ast.mli: .
2210         * glob_lexer.mll: .
2211         * test/test9/testglob.ml: .
2212         * test/test9/dbgl: New.
2214 2006-12-20  Berke Durak  <berke.durak@inria.fr>
2216         Pattern matching seems to start to work.
2218         * glob.ml: .
2220 2006-12-20  Berke Durak  <berke.durak@inria.fr>
2222         Started faster pattern matching code.
2224         * ocaml_specific.ml: .
2225         * _tags: .
2227 2006-12-20  Berke Durak  <berke.durak@inria.fr>
2229         myocamlbuild is rebuilt only as needed.
2231         * hygiene.ml: .
2232         * ocaml_specific.ml: .
2233         * pathname.ml: .
2234         * pathname.mli: .
2235         * resource.ml: .
2237 2006-12-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2239         Some changes mainly for windows support.
2241         * command.ml,
2242         * command.mli: Add the Quote constructor to help quoting building in
2243         commands.
2244         * my_unix_with_unix.ml,
2245         * my_unix_without_unix.ml,
2246         * glob.ml: Commented reslash mode.
2247         * my_std.ml,
2248         * my_std.mli: Some new functions.
2249         * my_unix.mli: Export sys_command.
2250         * ocaml_specific.ml,
2251         * ocaml_specific.mli: Update and windows support.
2252         * options.ml,
2253         * options.mli: Remove the ocamlmklib option.
2254         * ppcache.ml: Fix a bug.
2255         * pathname.ml: Add more dirseps. Use a custom Filename.concat (for now).
2256         * resource.ml,
2257         * rule.ml,
2258         * Makefile,
2259         * _tags: Update.
2261 2006-12-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2263         Update start order.
2265         * start.sh: Ditto.
2267 2006-12-11  Berke Durak  <berke.durak@inria.fr>
2269         Added -custom, fixed paths for installation.
2271         * ocaml_specific.ml: .
2272         * Makefile: .
2274 2006-12-11  Berke Durak  <berke.durak@inria.fr>
2276         Typo.
2278         * report.ml: .
2280 2006-12-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2282         Add a basic ocamlmklib support.
2284         * ocaml_specific.ml,
2285         * ocaml_specific.mli: Use ocamlmklib to make libraries if enabled.
2286         * options.ml,
2287         * options.mli: Add -ocamlmklib and -use-ocamlmklib.
2289 2006-12-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2291         Export more references of options.
2293         * command.ml,
2294         * command.mli: Add ?quiet to execute.
2295         * ocaml_specific.ml,
2296         * ocaml_specific.mli: Update to options.
2297         * options.ml,
2298         * options.mli: Move ocamlc, ocamlopt... to references on command specs.
2299         * solver.ml: Update.
2300         * Makefile: Use _ocamldistr to avoid hygiene.
2301         * .vcs: Use _ocamldistr.
2303 2006-12-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2305         Ocaml distrib stuffs.
2307         * command.ml,
2308         * command.mli: Add a normalization callback.
2309         * ocaml_specific.ml,
2310         * ocaml_specific.mli: Add a more complete interface.
2311         * options.ml,
2312         * options.mli: Add nostdlib.
2313         * pathname.ml: Add mkdir -p to import in build.
2314         * rule.ml,
2315         * rule.mli: Call normalization of commands for digest.
2316         * report.ml: Add ignore.
2317         * start.sh: Add report.ml*.
2318         * Makefile: Add distrib exportation (make a link).
2319         * .vcs: Unmask ocamldistrib link.
2321 2006-12-07  Berke Durak  <berke.durak@inria.fr>
2323         Added TODO item.
2325         * .vcs: .
2326         * TODO: .
2328 2006-12-07  Berke Durak  <berke.durak@inria.fr>
2330         Added TODO file.
2332         * TODO: New.
2334 2006-12-07  Berke Durak  <berke.durak@inria.fr>
2336         Very rudimentary report analysis.
2338         * report.ml: .
2339         * _tags: .
2341 2006-12-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2343         Update tests to run ocamlbuild correctly.
2345         * test/test2/test.sh,
2346         * test/test3/test.sh,
2347         * test/test4/test.sh,
2348         * test/test5/test.sh,
2349         * test/test6/test.sh,
2350         * test/test7/test.sh,
2351         * test/test8/test.sh,
2352         * test/test9/test.sh: Ditto.
2353         * test/good-output: Update.
2355 2006-12-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2357         Make test9 independant.
2359         * test/test9/test.sh: Ditto.
2361 2006-12-07  Berke Durak  <berke.durak@inria.fr>
2363         Rewrote globbing engine, adding {,} ; moved reporting functions to Report.
2365         * ocamlbuild_pack.mlpack: .
2366         * command.ml: .
2367         * glob_ast.ml: .
2368         * glob.ml: .
2369         * glob_ast.mli: .
2370         * glob_lexer.mll: .
2371         * ocaml_specific.ml: .
2372         * report.ml: New.
2373         * report.mli: New.
2374         * solver.ml: .
2375         * solver.mli: .
2376         * start.sh: .
2377         * test/test9/testglob.ml: .
2378         * test/test9/test.sh: .
2379         * test/test3/test.sh: .
2380         * _tags: .
2382 2006-12-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2384         Degraded mode...
2386         * ocamlbuildlight.ml: New.
2387         * ocamlbuild_pack.mlpack: Include new modules.
2388         * bool.ml: Fake dependency.
2389         * configuration.ml: Adapt to the glob parser.
2390         * command.ml: Export the fork usage.
2391         * glob.ml: Use Str through My_unix.
2392         * glob_lexer.mli: New.
2393         * glob_lexer.mll: Add slashs to valid character patterns.
2394         * lexers.mli,
2395         * lexers.mll: Use the glob parser.
2396         * my_std.ml: Use My_unix.
2397         * my_unix_with_unix.ml: New.
2398         * my_unix_without_unix.ml: New.
2399         * my_unix.mli: New.
2400         * my_std.mli: Add search_in_path and change lazy force to ( !* ).
2401         * ocaml_specific.ml: Some updates.
2402         * options.ml,
2403         * options.mli: Add -ocamlrun.
2404         * pathname.ml: Adapt to an optional slurp.
2405         * ppcache.ml: Use search_in_path of my_std.
2406         * resource.ml: Update to ( !* ).
2407         * solver.ml: Export Unix errors reporting.
2408         * slurp.ml,
2409         * slurp.mli: Use My_unix.
2410         * start.sh: Update.
2411         * test/test9/testglob.ml: Test a constant.
2412         * test/test5/_tags,
2413         * test/test3/_tags,
2414         * test/test4/_tags: Don't use regexp.
2415         * test/good-output: Add test9.
2416         * test/test9/test.sh: Remove the parent usage.
2417         * Makefile: Add the light mode.
2418         * .vcs: Update.
2419         * _tags: Update.
2421 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2423         Extra tests for globbing.
2425         * test/test9/testglob.ml: .
2427 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2429         First draft of pattern matching.
2431         * glob_ast.ml: .
2432         * glob.ml: .
2433         * glob_ast.mli: .
2434         * glob_lexer.mll: .
2436 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2438         More hard-wired but common cases for globbing.
2440         * glob.ml: .
2441         * test/test9/testglob.ml: .
2443 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2445         Hidden interface in globber.
2447         * glob.mli: .
2448         * test/test9/testglob.ml: .
2450 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2452         Basic globbing works.
2454         * glob.ml: .
2455         * glob.mli: .
2456         * test/test9/testglob.ml: .
2458 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2460         Improved interface.
2462         * glob.ml: .
2463         * glob_ast.ml: New.
2464         * glob_ast.mli: New.
2465         * glob.mli: New.
2466         * glob_lexer.mll: .
2467         * test/test9/testglob.ml: .
2468         * _tags: .
2470 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2472         Added test9.
2474         * test/test9/testglob.ml: New.
2475         * test/test9/parent: New.
2476         * test/runtest.sh: .
2477         * test/test9: New.
2478         * test/test9/test.sh: New.
2480 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2482         Parser seems to work.
2484         * glob.ml: .
2485         * glob_lexer.mll: .
2487 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2489         Removed eof_char.
2491         * glob.ml: .
2492         * glob_lexer.mll: .
2494 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2496         Interface seems to be OK.
2498         * glob.ml: .
2499         * glob_lexer.mll: .
2501 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2503         Adding files for the globbing module.
2505         * bool.ml: New.
2506         * bool.mli: New.
2507         * glob.ml: New.
2508         * glob_lexer.mll: New.
2509         * _tags: .
2511 2006-12-06  Berke Durak  <berke.durak@inria.fr>
2513         Replaced numeric escapes.
2515         * lexers.mll: .
2517 2006-12-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2519         Remove most of the Str usage by using ocamllex.
2521         * ocamlbuild_pack.mlpack: Remove Re, add Lexers.
2522         * configuration.ml: Use Lexers.
2523         * command.ml: Don't use Re.
2524         * lexers.mli: New.
2525         * lexers.mll: New.
2526         * my_std.ml,
2527         * my_std.mli: Add String.before and String.after.
2528         * ocaml_specific.ml,
2529         * ocaml_specific.mli: Use Lexers but also provide tags for warnings.
2530         * resource.ml,
2531         * rule.ml,
2532         * options.ml,
2533         * ppcache.ml,
2534         * pathname.ml: Use Lexers.
2535         * re.ml: Remove.
2536         * re.mli: Remove.
2537         * start.sh: Update.
2538         * Makefile: Igonre _build... and gives -ml to ocamllex.
2539         * _tags: Warnings for lexers.
2541 2006-12-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2543         Use Sys instead of Unix for readdir.
2545         * my_std.ml,
2546         * my_std.mli: Supress a Unix usage.
2548 2006-12-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2550         Add an option to disable the link creation.
2552         * ocaml_specific.ml: Honor this option.
2553         * options.ml: Declare it.
2554         * options.mli: Define it.
2556 2006-12-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2558         Don't import compiled files...
2560         * pathname.ml: For the OCaml compilation itself I need to exclude some
2561         dirs that contains compiled files but I want to use some of them with
2562         ocamlbuild.
2564 2006-12-05  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2566         Support flags for ocamlyacc and ocamllex.
2568         * ocaml_specific.ml,
2569         * options.ml,
2570         * options.mli: Add these options.
2572 2006-12-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2574         Two fixes (hygiene and libraries)...
2576         * hygiene.ml: Exit 0 if sterilize removes some files (since source
2577         files are cached in a rather persistent data structure I prefer let the
2578         user start on a fresh setup).
2579         * ocaml_specific.ml: Use the dirname if there is no directory named by
2580         removing the extension.
2582 2006-12-04  Berke Durak  <berke.durak@inria.fr>
2584         Small bug in hygiene.
2586         * hygiene.ml: .
2588 2006-12-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2590         Add postition specifications to rules.
2592         * rule.ml,
2593         * rule.mli: Add a way to specifie where to put a new rule
2594         (top,bottom,before another,after another).
2595         * flags.ml: Reorder.
2596         * my_std.ml,
2597         * my_std.mli: Add mv, fix an error handling.
2598         * ocaml_specific.ml: Better error message for circular dependencies.
2599         * ppcache.ml: Handle errors better.
2601 2006-11-29  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2603         Add a working multiple job support.
2605         * command.ml,
2606         * command.mli: Add different versions of execute_many including a
2607         version that use forks.
2608         * options.ml,
2609         * options.mli: Restore the -j option.
2610         * solver.ml: Call Command.execute_many.
2611         * test/runtest.sh: Pass $@ to sub tests.
2612         * test/good-output: Update.
2614 2006-11-28  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2616         Fix the link order.
2618         * start.sh: Fix the link order.
2620 2006-11-28  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2622         One step toward multiple jobs: Add the support for suspended building.
2624         * resource.ml,
2625         * resource.mli: Add the notion of suspended building.
2626         This represent a resource that is fully ready for evaluation, it's just
2627         a command and a function to apply after.
2628         * rule.ml: Do not really execute rules that can be safely suspended.
2629         * solver.ml: Play with suspended rules to collect as many as possible
2630         to get closer to a pararllel execution.
2632 2006-11-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2634         Fix the makefile.
2636         * Makefile: Fix deps.
2638 2006-11-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2640         Activates more warnings, and prepare the -j feature.
2642         * hygiene.ml: Consolidates fragile patterns.
2643         * my_std.ml: Likewise.
2644         * ocaml_specific.ml: Mainly update to the new builder prototype.
2645         * pathname.ml,
2646         * pathname.mli: Kick a useless parameter.
2647         * resource.ml: Remove dead code and update.
2648         * rule.ml,
2649         * rule.mli: The bulider now takes a list of resource lists, it will
2650         try to make in parallel the first level of commands.
2651         * solver.ml: Update to builder without parallelism.
2652         * test/good-output: Update.
2653         * Makefile: Warnings are now set to -w A -warn-error A.
2655 2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2657         Fix packages... again.
2659         * ocaml_specific.ml: Ditto.
2661 2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2663         Fix packages.
2665         * ocaml_specific.ml: Try to handle better packages during link.
2666         * Makefile: Add the try_bootstrap rule.
2668 2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2670         Add -tag, -tags to options.
2672         * ocaml_specific.ml: Append default tags from options.
2673         * options.ml,
2674         * options.mli: Add -tag and -tags.
2675         * tags.mli: Indent.
2677 2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2679         Fix a bug and update tests.
2681         * resource.ml: Use Hashtbl.replace of course instead of Hashtbl.add to
2682         avoid a nasty bug.
2683         * test/test7/test.sh,
2684         * test/test8/test.sh,
2685         * test/test2/test.sh,
2686         * test/test6/test.sh,
2687         * test/test4/test.sh,
2688         * test/test5/test.sh,
2689         * test/test3/test.sh: Extract program options to be sure that
2690         the -nothing-should-be-rebuilt option is before the -- one.
2691         * test/good-output: Update.
2693 2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2695         Use a hashtbl for digests.
2697         * resource.ml: Ditto.
2698         * ocaml_specific.ml: Remove dead code.
2700 2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2702         Use lists instead of sets for rule deps & prods.
2704         * ocaml_specific.ml: Move the mli dep first.
2705         * resource.ml,
2706         * resource.mli: No more provide digest_resources but digest_resource.
2707         * rule.ml,
2708         * rule.mli: Use list instead of sets for deps and prods, since they are
2709         not heavily updated and the order matter.
2710         * solver.ml: Adapt.
2711         * test/good-output: Yeah!
2713 2006-11-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2715         One more fix for libraries.
2717         * ocaml_specific.ml: Improve the link_exception handling.
2718         * test/good-output: Update.
2720 2006-11-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2722         Fix the library linking.
2724         * ocaml_specific.ml: The test7 is specially made to check that feature.
2726 2006-11-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2728         Remove list_set.
2730         * ocamlbuild_pack.mlpack: Remove list_set
2731         * list_set.ml: Remove.
2732         * list_set.mli: Remove.
2733         * start.sh: Remove list_set.
2734         * test/good-output: Regen.
2736 2006-11-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2738         Fix the C rule when dirname = '.'.
2740         * ocaml_specific.ml: Don't move the output when it's useless.
2742 2006-11-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2744         Ignore ocamlbuild_version.ml.
2746 2006-11-25  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2748         New transitive closure.
2750         * ocamlbuild_version.ml: Remove.
2751         * my_std.ml,
2752         * my_std.mli: Add a debug mode for digests and run_and_read.
2753         * ocaml_specific.ml: New transitive closure.
2754         * pathname.ml,
2755         * pathname.mli: Export also parent_dir_name and fix same_contents.
2756         * resource.ml,
2757         * resource.mli: Add dependencies.
2758         * rule.ml: Adapt.
2759         * test/good-output: Regen.
2760         * Makefile: Improve install.
2761         * .vcs: Ignore other _build dirs.
2763 2006-11-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2765         Rule definition shortcut and C files.
2767         * rule.ml,
2768         * rule.mli: Allow to pass ~prod and ~dep when there is just one file.
2769         * ocaml_specific.ml: Add a rule for C files and use the previous
2770         shortcut.
2772 2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2774         No more extend Format.
2776         * command.ml,
2777         * my_std.ml,
2778         * my_std.mli: Put directly ksbprintf and sbprintf in My_std.
2780 2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2782         Clean up and consistent use of Pathname instead of Filename.
2784         * command.ml,
2785         * my_std.ml,
2786         * my_std.mli,
2787         * ocaml_specific.ml,
2788         * pathname.ml,
2789         * ppcache.ml,
2790         * pathname.mli,
2791         * resource.ml: That's it.
2793 2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2795         Restore List_set.
2797         * ocamlbuild_pack.mlpack,
2798         * list_set.ml,
2799         * list_set.mli,
2800         * resource.ml,
2801         * start.sh: Ditto.
2803 2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2805         Remove List_set and List_map.
2807         * ocamlbuild_pack.mlpack: No more in the pack.
2808         * list_set.ml: Remove.
2809         * list_map.ml: Remove.
2810         * list_map.mli: Remove.
2811         * list_set.mli: Remove.
2812         * resource.ml: Use a Set.
2813         * start.sh: Adapt.
2815 2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2817         Huge speed up, worth updating.
2819         * resource.ml,
2820         * resource.mli: Use a hash instead of map, remove the percent type.
2821         * rule.ml,
2822         * rule.mli: Remove the function for rule names. Use an exception to
2823         choose matching rules.
2825 2006-11-18  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2827         Speedup rule calling.
2829         * rule.ml,
2830         * rule.mli: No more call the code rule twice to compute the digest.
2831         * ocaml_specific.ml,
2832         * ocaml_specific.mli: Adapt to Rule.
2833         * test/test8/myocamlbuild.ml: Use the exception.
2834         * test/good-output: Update.
2835         * boot: Update svn:ignore.
2837 2006-11-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2839         Remove phony resources and include dependencies.
2841         * ocaml_specific.ml,
2842         * options.ml,
2843         * options.mli,
2844         * pathname.ml,
2845         * pathname.mli,
2846         * resource.ml,
2847         * resource.mli,
2848         * rule.ml,
2849         * rule.mli,
2850         * solver.ml,
2851         * test/test8/myocamlbuild.ml: Simplify a lot the code.
2853 2006-11-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2855         Some improvements...
2857         * ocamlbuild.ml: .
2858         * ocamlbuild_version.ml: New.
2859         * ocamlbuild_plugin.ml: New.
2860         * ocamlbuild_version.mli: New.
2861         * ocamlbuildlib.mllib: .
2862         * ocamlbuild.sh: Remove.
2863         * ocamlbuild_pack.mlpack: New.
2864         * boot: .
2865         * ocaml_specific.ml: .
2866         * ocaml_specific.mli: .
2867         * options.ml: .
2868         * options.mli: .
2869         * rule.ml: .
2870         * rule.mli: .
2871         * start.sh: .
2872         * test/test8/a.ml: New.
2873         * test/test7/a2.ml: .
2874         * test/test7/a3.ml: New.
2875         * test/test8/myocamlbuild.ml: New.
2876         * test/test7/myocamlbuild.ml: New.
2877         * test/test8: New.
2878         * test/test8/test.sh: New.
2879         * test/runtest.sh: .
2880         * test/test7/test.sh: .
2881         * test/good-output: .
2882         * Makefile: .
2883         * _tags: .
2885 2006-11-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2887         Add support for libraries.
2889         * ocamlbuildlib.ml: Remove.
2890         * ocamlbuildlib.mllib: New.
2891         * ocaml_specific.ml: Rules and actions for libraries.
2892         * rule.ml: Improve explanations.
2893         * start.sh: Don't make ocamlbuildlib.
2894         * test/test7/a.mli: New.
2895         * test/runtest.sh: Add test7.
2896         * test/test7/test.sh: Add reverts for a.ml.
2897         * test/good-output: Update.
2898         * Makefile: Remove junk lines.
2900 2006-11-14  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2902         Add a tests for libraries.
2904         * test/test7/e.ml: New.
2905         * test/test7/d.ml: New.
2906         * test/test7/a.ml: New.
2907         * test/test7/b.ml: New.
2908         * test/test7/a2.ml: New.
2909         * test/test7/c.ml: New.
2910         * test/test7/test.sh: New.
2911         * test/test7/ablib.mllib: New.
2912         * test/test7: New.
2914 2006-11-14  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2916         Simplify dependency rules.
2918         * ocaml_specific.ml: No more use bytelinkdeps...
2919         * rule.ml,
2920         * rule.mli: Add a dyndeps set.
2921         * ocamlbuild.sh,
2922         * pathname.ml,
2923         * Makefile: Update.
2925 2006-11-14  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2927         Update tests...
2929         * test/test2/vivi3.ml: .
2930         * test/good-output: .
2932 2006-11-10  Berke Durak  <berke.durak@inria.fr>
2934         Added -sterilize option.
2936         * hygiene.ml: ditto
2937         * hygiene.mli: ditto
2938         * ocaml_specific.ml: ditto
2939         * options.ml: ditto
2940         * options.mli: ditto
2942 2006-11-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2944         View the context dir in first.
2946         * pathname.ml: Ditto.
2948 2006-11-10  Berke Durak  <berke.durak@inria.fr>
2950         Added thread and profile tags.
2952         * ocaml_specific.ml: ditto.
2954 2006-11-10  Berke Durak  <berke.durak@inria.fr>
2956         Added law for leftover dependency files.
2958         * ocaml_specific.ml: ditto.
2960 2006-11-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2962         Reverse the ignore_auto default value.
2964         * options.ml: Add -no-skip, remove -ignore-auto, add -Is and -Xs.
2965         * test/test2/test.sh,
2966         * test/test5/test.sh,
2967         * test/test6/test.sh,
2968         * test/test4/test.sh,
2969         * test/test3/test.sh,
2970         * Makefile: Revert flags.
2972 2006-11-10  Berke Durak  <berke.durak@inria.fr>
2974         Added install target to Makefile.
2976         * Makefile: .
2978 2006-11-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2980         Deal with for-pack flags...
2982         * ocaml_arch.ml: Define a hook.
2983         * ocaml_arch.mli: Declare it.
2984         * ocaml_specific.ml: Use it.
2985         * test/test6: Ignore main.byte.
2987 2006-11-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2989         Fix start.sh and remove dead code.
2991         * ocaml_specific.ml: Remove dead code about ignore_auto.
2992         * start.sh: Swap two modules.
2993         * test/test6/main.byte: Remove.
2995 2006-11-09  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
2997         Pack now works great...
2999         * ocamlbuild.sh: Use ocamlopt.
3000         * command.ml: Reset filesys cache.
3001         * my_std.ml,
3002         * my_std.mli: Add a filesys cache for
3003         case sensitive file_exists and digest over files.
3004         * ocaml_specific.ml: Work on link and packs.
3005         * ppcache.ml: Exit 2 is for unix.
3006         * pathname.ml,
3007         * resource.ml,
3008         * rule.ml,
3009         * rule.mli,
3010         * slurp.ml,
3011         * solver.ml,
3012         * solver.mli,
3013         * test/test5: Update.
3015 2006-11-07  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3017         Too lazy to fill this up :).
3019         * ocamlbuild.sh,
3020         * configuration.ml,
3021         * command.ml,
3022         * debug.ml,
3023         * debug.mli,
3024         * my_std.ml,
3025         * my_std.mli,
3026         * ocaml_specific.ml,
3027         * ocaml_specific.mli,
3028         * options.ml,
3029         * options.mli,
3030         * pathname.ml,
3031         * ppcache.ml,ew.
3032         * ppcache.mli,ew.
3033         * pathname.mli,
3034         * resource.ml,
3035         * resource.mli,
3036         * rule.ml,
3037         * rule.mli,
3038         * slurp.ml,
3039         * solver.ml,
3040         * solver.mli,
3041         * slurp.mli,
3042         * start.sh,
3043         * tags.ml,
3044         * test/test5/test.sh,
3045         * test/test4/test.sh,
3046         * test/test3/test.sh,
3047         * test/good-output,
3048         * test/test2/test.sh,
3049         * test/test6/test.sh,
3050         * Makefile,
3051         * _tags: This too.
3053 2006-11-04  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3055         Some pack,dirs stuffs.
3057         * ocamlbuild.ml,
3058         * ocamlbuildlib.ml,ew.
3059         * ocamlbuild.sh,ew.
3060         * configuration.ml,
3061         * my_std.ml,
3062         * my_std.mli,
3063         * ocaml_arch.ml,ew.
3064         * ocaml_specific.ml,
3065         * ocaml_specific.mli,
3066         * ocaml_arch.mli,ew.
3067         * options.ml,
3068         * options.mli,
3069         * pathname.ml,
3070         * pathname.mli,
3071         * resource.ml,
3072         * resource.mli,
3073         * rule.ml,
3074         * solver.ml,
3075         * test/good-output,
3076         * Makefile,
3077         * _tags: That's it.
3079 2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3081         Remove the dirty thing about cmi's.
3083         * ocaml_specific.ml,
3084         * ocaml_specific.mli: Moves of files are no more needed.
3085         * test/good-output: Update.
3087 2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3089         Some renaming and cleanup...
3091         * ocamlbuild.ml,
3092         * configuration.ml,
3093         * configuration.mli,
3094         * list_set.ml,
3095         * ocaml_specific.ml,
3096         * resource.ml,
3097         * test/good-output,
3098         * test/test6/test.sh: Do that.
3100 2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3102         Use the nothing-should-be-rebuilt for tests and update the output.
3104         * test/test2,
3105         * test/test2/test.sh,
3106         * test/test3/test.sh,
3107         * test/test4/test.sh,
3108         * test/test5/test.sh,
3109         * test/test6/test.sh,
3110         * test/good-output: Do that.
3112 2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3114         Add a mode usefull for tests.
3116         * options.ml, options.mli, rule.ml:
3117         This new mode fails when something needs to be rebuilt.
3119 2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3121         Improve the ocaml rule set.
3123         * ocaml_specific.ml: Yipee!
3125 2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3127         Add scripts to run tests.
3129         * test/test2/vivi1.ml: New.
3130         * test/test2/vivi2.ml: New.
3131         * test/test2/vivi3.ml: New.
3132         * test/test2/vivi.ml: .
3133         * test/test4/test.sh: New.
3134         * test/test5/test.sh: New.
3135         * test/test2/test.sh: New.
3136         * test/test6/test.sh: .
3137         * test/good-output: New.
3138         * test/test3/test.sh: New.
3139         * test/runtest.sh: New.
3141 2006-10-31  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3143         Restore some recursivity for includes.
3145         * resource.ml,
3146         * resource.mli: Remove the digest field.
3147         * rule.ml: .
3148         * test/test6/test.sh: .
3150 2006-10-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3152         Remove the arbitrary deep dependencies.
3154         * ocaml_specific.ml,
3155         * ocaml_specific.mli: No more implicit transitives deps.
3156         * resource.ml,
3157         * resource.mli: Remove as many things as possible.
3158         * rule.ml,
3159         * rule.mli,
3160         * solver.ml: Simplify.
3161         * command.ml: Fix newlines and flush.
3163 2006-10-30  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3165         Separated preprocessing, total order over rules...
3167         * ocamlbuild.ml,
3168         * my_std.ml,
3169         * my_std.mli,
3170         * ocaml_specific.ml,
3171         * ocaml_specific.mli,
3172         * options.ml,
3173         * options.mli,
3174         * pathname.ml,
3175         * pathname.mli,
3176         * resource.ml,
3177         * resource.mli,
3178         * rule.ml,
3179         * rule.mli,
3180         * solver.ml,
3181         * test/test2/tutu.ml,
3182         * tags.ml,
3183         * test/test2/tyty.mli,ew.
3184         * test/test6/test.sh,
3185         * test/test6,
3186         * test/test5/_tags,
3187         * test/test5: Update.
3189 2006-10-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3191         Add options: -ocamlc,-ocamlopt,-ocamldep,-ocamlyacc,-ocamllex.
3193         * options.ml,
3194         * options.mli: Declare them.
3195         * ocaml_specific.ml: Use them.
3197 2006-10-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3199         Fix start.sh.
3201         * start.sh: Fix the output.
3203 2006-10-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3205         Regen start.sh.
3207         * start.sh: Regen.
3209 2006-10-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3211         Use the list based implems and fix many bugs.
3213         * ocamlbuild.ml: Rename some dependency files.
3214         * boot: Ignore boot/ocamlbuild.byte.save.* files.
3215         * command.ml: Fix command printing.
3216         * my_std.ml,
3217         * my_std.mli: Add List.equal, use the cp command in Shell.cp.
3218         * ocaml_specific.ml,
3219         * ocaml_specific.mli: Many things.
3220         * pathname.ml, pathname.mli: Make compare obselete prefer equal.
3221         * resource.ml, resource.mli: Add print_cache and use list based
3222         sets and maps.
3223         * Makefile: Add the bootstrap rule.
3225 2006-10-27  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3227         Add a test for fine-grained dependencies.
3229         * test/test6/main.ml: New.
3230         * test/test6/d.ml: New.
3231         * test/test6/b.ml: New.
3232         * test/test6/a.ml: New.
3233         * test/test6/main.mli: New.
3234         * test/test6/a.mli: New.
3235         * test/test6/d.mli: New.
3236         * test/test6/b.mli: New.
3237         * test/test6/b.mli.v2: New.
3238         * test/test6/main.byte: New.
3239         * test/test6/d.mli.v1: New.
3240         * test/test6/test.sh: New.
3241         * test/test6/d.mli.v2: New.
3242         * test/test6/b.mli.v1: New.
3243         * test/test6: New.
3245 2006-10-26  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3247         Dummy implementations for set and map using lists.
3248         The main advantage is to only rely on the equal function that is simpler
3249         to maintain correct in an imperative setting.
3251         * list_map.ml: New.
3252         * list_set.ml: New.
3253         * list_map.mli: New.
3254         * list_set.mli: New.
3256 2006-10-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3258         Fixes and improvment.
3260         * ocamlbuild.ml,
3261         * my_std.ml,
3262         * my_std.mli,
3263         * ocaml_specific.ml,
3264         * ocaml_specific.mli,
3265         * pathname.ml,
3266         * resource.ml,
3267         * rule.ml,
3268         * rule.mli,
3269         * solver.ml,
3270         * solver.mli: The previous version was somwhat unstable.
3272 2006-10-24  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3274         Many things...
3276         * ocamlbuild.ml,
3277         * command.ml,
3278         * command.mli,
3279         * ocaml_specific.ml,
3280         * ocaml_specific.mli,
3281         * options.ml,
3282         * options.mli,
3283         * resource.ml,
3284         * resource.mli,
3285         * rule.ml,
3286         * rule.mli,
3287         * solver.ml,
3288         * solver.mli:
3289         Simplify the whole solver by removing the value type.
3290         Rule code now returns a resource set, that is injected as dependencies.
3291         So rule code always returns unit. But can raise exceptions.
3292         Add -ignore, and -ignore-auto options to workaround ocamldep
3293         approximations without igonring errors.
3294         * Makefile: Add backup and restore targets.
3296 2006-10-23  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3298         Compute digests of dependencies recursively.
3300         * ocamlbuild.ml,
3301         * ocaml_specific.ml,
3302         * options.ml,
3303         * options.mli,
3304         * resource.ml,
3305         * resource.mli,
3306         * rule.ml: Ditto.
3308 2006-10-23  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3310         One step toward a parallelisable system.
3312         * boot,
3313         * command.ml,
3314         * ocaml_specific.ml,
3315         * ocaml_specific.mli,
3316         * options.ml,
3317         * options.mli,
3318         * rule.ml,
3319         * rule.mli,
3320         * solver.ml: Update.
3321         * value.ml: Remove.
3322         * value.mli: Remove.
3324 2006-10-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3326         Add vcs config file to setup a good default setup.
3328         * .vcs: New.
3330 2006-10-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3332         Simplify the bootstrap by introducing a shell script.
3334         * boot/ocamlbuild.byte: Remove. Useless in distribution mode
3335         but will be created, the first time. So the devel is not
3336         disturbed.
3337         * start.sh: New.
3338         * Makefile: Remove the old one to use start.sh.
3340 2006-10-20  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3342         Take command line in account for the digest computation.
3344         * command.ml,
3345         * command.mli,
3346         * debug.ml,
3347         * ocaml_specific.ml,
3348         * ocaml_specific.mli,
3349         * resource.ml,
3350         * resource.mli,
3351         * rule.ml,
3352         * rule.mli,
3353         * solver.ml,
3354         * value.ml,
3355         * value.mli: Update.
3357 2006-10-19  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3359         New pathname representation.
3361         * pathname.ml, pathname.mli: This new representation should
3362         avoids "fix" problems.
3364 2006-10-17  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3366         Change the cache implem -> now really fast at link time.
3368         * ocamlbuild.ml,
3369         * boot/ocamlbuild.byte,
3370         * my_std.ml,
3371         * ocaml_specific.ml,
3372         * pathname.ml,
3373         * resource.ml,
3374         * resource.mli,
3375         * solver.ml: By replacing various sets by a map of records and
3376         remember that something has not changed, or cannot be built;
3377         there is a real speedup. In particular to detect that the link is
3378         not necessary to do.
3380 2006-10-17  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3382         Add a basic support for a digest based cache verification.
3384         * resource.ml, resource.mli: Add have_digest and store_digest.
3385         * rule.ml: Use these digests but don't include the command for
3386         now.
3387         * test/test2/vivi.ml, test/test2/tata.mli: Dummy updates.
3389 2006-10-16  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3391         Split in many files.
3393         * ocamlbuild.ml: Splitted.
3394         * boot/ocamlbuild.byte: Updated.
3395         * configuration.ml: New.
3396         * configuration.mli: New.
3397         * command.ml: New.
3398         * command.mli: New.
3399         * debug.ml: New.
3400         * debug.mli: New.
3401         * flags.ml: New.
3402         * flags.mli: New.
3403         * my_std.ml: New.
3404         * my_std.mli: New.
3405         * ocaml_specific.ml: New.
3406         * ocaml_specific.mli: New.
3407         * options.ml: New.
3408         * options.mli: New.
3409         * pathname.ml: New.
3410         * pathname.mli: New.
3411         * re.ml: New.
3412         * re.mli: New.
3413         * resource.ml: New.
3414         * resource.mli: New.
3415         * rule.ml: New.
3416         * rule.mli: New.
3417         * solver.ml: New.
3418         * solver.mli: New.
3419         * test/test5/d.ml: New.
3420         * tags.ml: New.
3421         * test/test5/b.ml: New.
3422         * test/test5/a.ml: New.
3423         * tags.mli: New.
3424         * test/test5/a.mli: New.
3425         * test/test5/c.mlpack: New.
3426         * test/test5/_tags: New.
3427         * test/test5: New.
3428         * value.ml: New.
3429         * value.mli: New.
3430         * Makefile: .
3432 2006-10-16  Berke Durak  <berke.durak@inria.fr>
3434         Various useful changes.
3436         * ocamlbuild.ml: Hygiene to true.
3437         * slurp.ml: Remove debugging
3438         * Makefile: Clean annot and object files.
3440 2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3442         Bootstrap it ;).
3444         * ocamlbuild.ml: Add support for -g, -dtypes, and -rectypes in
3445         four lines.
3446         * _tags: New. Specify how to build ocamlbuild itself.
3447         * boot: New.
3448         * boot/ocamlbuild.byte: New. A bytecode version needed to
3449         bootstrap
3450         * Makefile: By default make it a wrapper over ocamlbuild in boot.
3452 2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3454         Little fix...
3456         * ocamlbuild.ml: Don't assoc over pathnames since the default
3457         compare is wrong and slow use the string repr.
3459 2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3461         Allow to control flags, and libraries by tags.
3463         * ocamlbuild.ml: In the _tags file you can add or remove flags
3464         using a colon flag_name:flag_value.
3465         * test/test2/vivi.ml,
3466         * test/test3/f.ml,
3467         * test/test4/b/bb.ml: Dummy updates.
3468         * test/test3/_tags: New.
3469         * test/test4/_tags: New.
3471 2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3473         Add a tag based flag system.
3475         * test/test2/vivi.ml: An example.
3476         * test/test2/_tags: New.
3477         * ocamlbuild.ml: Now a command can request for flags by giving a
3478         set of tags these tags include file specific tags this allow to
3479         tweak flags by just providing a _tags file.
3481 2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3483         Add -lib,-libs options remove -P.
3485         * ocamlbuild.ml: -P Is useless due to the fact that we now
3486         have the same directory structure in the _build directory.
3487         Add -lib,-libs that allows one to specify -lib unix without
3488         its extension in order to request for native and byte
3489         compilations.
3491 2006-10-15  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3493         Multi directories now works ;).
3495         * ocamlbuild.ml: Solve the whole problem by improving the
3496         Pathname module. Pathnames are now symbolic values that
3497         can include variable names. These variable names represent
3498         still ambiguous pathnames /a/b/(c|d as x1)/e.ml but variables
3499         can be shared, so discovering that /a/b/(c|d as x1)/e.ml is in
3500         fact /a/b/c/e.ml will make /a/b/(c|d as x1)/e.cmo automatically
3501         take this value /a/b/c/e.cmo cause it shares the x1 variable.
3503 2006-10-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3505         I prefer capitalized names.
3507         * AUTHORS
3509 2006-10-13  Berke Durak  <berke.durak@inria.fr>
3511         Added an AUTHORS file.
3513         * AUTHORS: New.
3515 2006-10-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3517         Add the vcs dir.
3519         * vcs: New.
3520         * vcs/ocamlbuild.rb: New.
3522 2006-10-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3524         * ocamlbuild.ml: Restore dependencies.
3526 2006-10-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3528         Fix the makefile.
3530         * Makefile, discard_printf.ml: Ditto.
3532 2006-10-13  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3534         Improve the directory handling.
3536         * ocamlbuild.ml: Ditto, but there is still a problem with native.
3537         * Makefile: Update.
3539 2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3541         Fix native dependencies.
3543         * ocamlbuild.ml: By default due to inlining the cmx dependencies
3544         are needed to build a cmx.
3545         * Makefile: Add native support.
3547 2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3549         Use phony for linkdeps.
3551         * ocamlbuild.ml: Ditto.
3553 2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3555         Fix exit on multiple targets.
3557         * ocamlbuild.ml: Ditto.
3559 2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3561         More flags -lflags,-lflag...
3563         * ocamlbuild.ml: Add plrual form options for those that use
3564         comma separated lists.
3566 2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3568         Use phony resources for .cmo.linkdeps.
3570         * ocamlbuild.ml: Also restore the command running if "--"
3571         is specified
3573 2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3575         Remove Include_string_list resources, add Phony resources.
3577         * ocamlbuild.ml: Also fix some rules.
3579 2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3581         Shift debug levels.
3583         * ocamlbuild.ml: Add -quiet.
3585 2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3587         Use str more intensively.
3589         * ocamlbuild.ml: Also clean up useless functions.
3591 2006-10-11  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3593         Fix link dependencies.
3595         * ocamlbuild.ml: Force to consider recursivly Include_ tagged
3596         resources for their full contents. Alas it takes more time to
3597         know if we need to recompute the link.
3598         * test/test2/vivi.ml: Update.
3600 2006-10-10  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3602         Support multiple directories, it can compile the OCaml compiler :).
3604         * ocamlbuild.ml: Add directory handling but also start
3605         the tags config files handling.
3606         * Makefile: Use str.cma.
3608 2006-10-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3610         Add library support.
3612         * ocamlbuild.ml: Deduce basic set of tags form the target
3613         extension.
3615 2006-10-08  Nicolas Pouillard  <nicolas.pouillard@gmail.com>
3617         More customisable flags, and cycle detection.
3619         * ocamlbuild.ml: Add some flags -lflag, -ppflag, -cflag, --.
3620         Also add a detection mechanism for dependencies.
3621         * discard_printf.ml, Makefile: Update.