Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005550OCamlOCamlbuild (the tool)public2012-03-20 11:312012-03-20 15:19
Reportergasche 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
StatusacknowledgedResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0005550: Cache results from `ocamlfind query` in _build/
DescriptionAnil Madhavapeddy reported that he uses ocamlbuild on large build trees for Mirage, and found the -use-ocamlfind integration unusable in his case because of the ocamlbuild's repeated invocation of `ocamlfind query`. His workaround is to devise his own ocamlfind logic in myocamlbuild.ml, that reuse library-location information gathered at ./configure time.

It would be nice if ocamlbuild cached `ocamlfind query` results in the _build/ subdirectory, so that they don't have to be recomputed across ocamlbuild calls.
Additional InformationAfter a quick look at ocamlbuild/findlib.ml, it appears that ocamlbuild already caches `ocamlfind query` results across a single ocamlbuild run, by using a hashtable at runtime. So this amount to making this hash-table pervasive by somehow storing it in a file in _build.
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0007114)
gasche (developer)
2012-03-20 11:32

Marking this acknowledged after discussion with xclerc.
As always, patches are welcome.
(0007115)
gasche (developer)
2012-03-20 11:34

Remark: if documented, that feature should be documented because the user could observe caching by compiling a project, installing/removing/updating ocamlfind stuff, then recompiling from (now outdated) cached information.

I don't think there is any magic technique to detect such getting-out-of-date case: does ocamlfind store a time-of-last-update somewhere that is less costly to access that `ocamlfind query`? But this is probably a rare case and we could just document it and recommend to -clean on such occasions, or provide a -clean-ocamlfind option, or advise to `rm _build/ocamlfind.cache` or something.

- Issue History
Date Modified Username Field Change
2012-03-20 11:31 gasche New Issue
2012-03-20 11:32 gasche Note Added: 0007114
2012-03-20 11:32 gasche Status new => acknowledged
2012-03-20 11:34 gasche Note Added: 0007115


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker