ocaml/ocamlbuild
Gabriel Scherer c068aac93b ocamlbuild: move plugin second-run to the end of the initialization phase
If in the future we want to be able to use information from _tags when
compiling the myocamlbuild.ml plugin, we should compile the plugin
*after* the OCaml-tags rules of Ocaml_specific have been loaded
(OCaml_specific.init()). This patch does not change the plugin
compilation, but it delays it to the end of the initialization phase
to allow such future changes.

This means that the parsing of configuration files
(including traversing directories to find _tags files in depth) will
be done twice (once during the first run to compile the plugin, and
then once when run from the plugin). Of these operations, the only
that has user-visible consequences (and the first candidate to
performance degradations) is the hygiene checking, which we therefore
disable during the first run. Note that checksumming files is not
duplicated (it is done after the initialization phase).

Note that the semantics of _tags files in subdirectories is that they
are only ranging over files in that subhierarchy (even "true: foo"
lines do not apply to the files in ancestor or
sibling directories). This means that no _tags file in a subdirectory
can add tags to "myocamlbuild.ml". If performance of file traversing
ever was to become an issue, we could therefore skip it and read only
the root _tags file if present.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13998 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-08-13 11:43:14 +00:00
..
examples fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
man fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
misc fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
test Update reference file for the ocamlbuild tests - still need some more work 2012-12-22 01:34:23 +00:00
testsuite PR#5547: Enable the "-use-ocamlfind" option by default 2013-07-27 00:02:13 +00:00
.depend Commit also .depend file for ocamlbuild Makefile.noboot 2013-01-01 00:33:29 +00:00
AUTHORS Add the ocamlbuild directory 2007-02-07 08:59:16 +00:00
ChangeLog clean up TABs and whitespace 2012-07-30 18:04:46 +00:00
FAQ [ocamlbuild] See ChangeLog 2007-03-01 14:40:11 +00:00
Makefile remove all $Id keywords 2012-10-15 17:50:56 +00:00
Makefile.noboot build: select win32 variants of unix and graph for mingw. 2013-06-30 12:58:34 +00:00
TODO ocamlbuild,TODO: one thing done 2010-02-03 13:11:21 +00:00
_tags Fix PR#5461 2012-01-17 21:57:54 +00:00
bool.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
bool.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
command.ml PR#5547: Enable the "-use-ocamlfind" option by default 2013-07-27 00:02:13 +00:00
command.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
configuration.ml PR#5212: Fix: ocamlbuild does not warn for bad input 2013-01-01 04:53:51 +00:00
configuration.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
digest_cache.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
digest_cache.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
discard_printf.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
discard_printf.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
display.ml Use name of the the tools in high detail level logs, this helps comparing logs 2012-12-22 01:34:16 +00:00
display.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
exit_codes.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
exit_codes.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
fda.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
fda.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
findlib.ml PR#5212: Fix: ocamlbuild does not warn for bad input 2013-01-01 04:53:51 +00:00
findlib.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
flags.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
flags.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
glob.ml turn more (or) into (||) to please the new warning 2013-05-28 12:16:10 +00:00
glob.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
glob_ast.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
glob_ast.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
glob_lexer.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
glob_lexer.mll fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
hooks.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
hooks.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
hygiene.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
hygiene.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
lexers.mli PR#5212: Fix: ocamlbuild does not warn for bad input 2013-01-01 04:53:51 +00:00
lexers.mll PR#5212: Fix: ocamlbuild does not warn for bad input 2013-01-01 04:53:51 +00:00
log.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
log.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
main.ml ocamlbuild: move plugin second-run to the end of the initialization phase 2013-08-13 11:43:14 +00:00
main.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
my_std.ml PR#5201: ocamlbuild: add --norc to the bash invocation to help Windows performances 2013-08-04 19:58:01 +00:00
my_std.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
my_unix.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
my_unix.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocaml_arch.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocaml_arch.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocaml_compiler.ml [PR#6059, patch by Anil Madhavapeddy] add -output-obj rules and targets to ocamlbuild for byte and native code 2013-06-30 08:34:42 +00:00
ocaml_compiler.mli [PR#6059, patch by Anil Madhavapeddy] add -output-obj rules and targets to ocamlbuild for byte and native code 2013-06-30 08:34:42 +00:00
ocaml_dependencies.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocaml_dependencies.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocaml_specific.ml ocamlbuild: portable -output-obj target names (e.g. foo.byte.obj is accepted if configured as so) 2013-08-06 18:55:21 +00:00
ocaml_specific.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocaml_tools.ml fix PR#5763: ocamlbuild does not give correct flags when running menhir 2012-09-21 15:16:24 +00:00
ocaml_tools.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocaml_utils.ml Implement memoization for expand_module to improve performance 2013-01-16 07:36:07 +00:00
ocaml_utils.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuild.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuild.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuild.mltop [ocamlbuild] Extract executor as ocamlbuild_excutor and my_unix_with_unix as ocamlbuild_unix_plugin. 2007-11-22 18:34:22 +00:00
ocamlbuild.odocl Remove old module from ocamlbuild bootstrap Std_signatures to tide up 2013-01-01 00:33:26 +00:00
ocamlbuild_executor.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuild_executor.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuild_pack.mlpack clean up TABs and whitespace 2012-07-30 18:04:46 +00:00
ocamlbuild_plugin.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuild_plugin.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuild_unix_plugin.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuild_unix_plugin.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuild_where.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuild_where.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuildlib.mllib [ocamlbuild] Extract executor as ocamlbuild_excutor and my_unix_with_unix as ocamlbuild_unix_plugin. 2007-11-22 18:34:22 +00:00
ocamlbuildlight.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuildlight.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ocamlbuildlightlib.mllib Add the ocamlbuild directory 2007-02-07 08:59:16 +00:00
options.ml PR#5547: Enable the "-use-ocamlfind" option by default 2013-07-27 00:02:13 +00:00
options.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
param_tags.ml PR#5468: ocamlbuild should preserve order of parametric tags 2012-09-10 02:41:09 +00:00
param_tags.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
pathname.ml PR#5933 type-specialize 'let compare = compare' on ints and strings 2013-03-19 07:22:12 +00:00
pathname.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
plugin.ml ocamlbuild: move plugin second-run to the end of the initialization phase 2013-08-13 11:43:14 +00:00
plugin.mli ocamlbuild: move plugin second-run to the end of the initialization phase 2013-08-13 11:43:14 +00:00
ppcache.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
ppcache.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
report.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
report.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
resource.ml PR#5102: ocamlbuild fails when using an unbound variable in rule dependency 2012-10-10 13:59:47 +00:00
resource.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
rule.ml ocamlbuild: remove the deprecated ~tags from ocaml_specific.ml, and warn on use 2013-08-06 16:46:00 +00:00
rule.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
shell.ml remove non-ascii chars 2012-10-17 21:03:19 +00:00
shell.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
signatures.mli improve ocamlbuild API documentation (patch by Cristophe Troestler) 2013-06-16 17:04:29 +00:00
slurp.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
slurp.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
solver.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
solver.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
start.sh Remove old module from ocamlbuild bootstrap Std_signatures to tide up 2013-01-01 00:33:26 +00:00
tags.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
tags.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
tools.ml fix formatting of copyright headers 2012-08-01 14:47:00 +00:00
tools.mli fix formatting of copyright headers 2012-08-01 14:47:00 +00:00