Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0004573OCaml-for ocamlbuild use 13:172015-12-11 19:19
ReporterRadzevich Belevich 
Assigned Togasche 
StatusclosedResolutionno change required 
PlatformOSOS Version
Product Version 
Target Version4.00.2+devFixed in Version 
Summary0004573: Packing modules without _tag
DescriptionSorry for my bad english.
Ocamlbuild try to find submodules for <ident>.mlpack file in same dir when the <ident>.mlpack file exists, but when we get "touch _tags" it's look at subdir <ident> for this modules.
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
gasche (developer)
2013-06-17 16:17
edited on: 2013-06-17 16:19

This is not a bug, but rather a not-well-documented feature of ocamlbuild, related to the default value of the "traverse" tag that controls recursive traversal of subdirectories.

Initially ocamlbuild has "traverse: true" in all circumstances, because that's the most convenient when compiling an OCaml project. However, that was a performance nightmare when ocamlbuild was called from somewhere else: calling ocamlbuild from your home directory could try to traverse it entirely!

So the change that was made (around 3.11 I'd guess) is to use a heuristic to detect whether we're in an real OCaml project, or in a random directory:
- if a "_tags" or a "" exists in the current working directory, then "traverse" is enabled by default (all subdirectories are recursively traversed)
- if no "_tags" and no "" file exists, "traverse" is not enabled by default

Note that in either case you can change this default by adding the "traverse" tag to specific subdirectories ("<foo>: traverse") or for everything ("true: traverse"), and conversely disabling it with "-traverse" instead -- either in a _tags file or through the -tag-line "..." option).

PS: I'm not fond of this heuristic, for precisely the reason that it is surprising that adding a "_tags" file would change the observed semantics. But I'm not sure what would be a better choice, and don't see how to change this without breaking compatibility.

- Issue History
Date Modified Username Field Change
2008-07-01 13:17 Radzevich Belevich New Issue
2008-08-01 16:18 xleroy Assigned To => ertai
2008-08-01 16:18 xleroy Status new => assigned
2010-07-22 11:46 ertai Assigned To ertai => xclerc
2012-02-02 15:17 protz Category OCamlbuild => OCamlbuild (the tool)
2012-07-04 17:15 doligez Target Version => 4.00.0+dev
2012-07-19 13:50 doligez Target Version 4.00.0+dev => 4.01.0+dev
2012-07-31 13:36 doligez Target Version 4.01.0+dev => 4.00.1+dev
2012-09-10 14:05 frisch Target Version 4.00.1+dev => 4.00.2+dev
2013-06-17 16:17 gasche Note Added: 0009537
2013-06-17 16:17 gasche Status assigned => resolved
2013-06-17 16:17 gasche Resolution open => no change required
2013-06-17 16:17 gasche Assigned To xclerc => gasche
2013-06-17 16:19 gasche Note Edited: 0009537 View Revisions
2013-06-17 16:32 gasche Severity major => tweak
2015-12-11 19:19 xleroy Status resolved => closed
2017-02-23 16:34 doligez Category OCamlbuild (the tool) => for ocamlbuild use [^]
2017-02-23 16:44 doligez Category for ocamlbuild use [^] => -for ocamlbuild use [^]

Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker