You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Anil 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 information
After 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.
The text was updated successfully, but these errors were encountered:
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.
Original bug ID: 5550
Reporter: @gasche
Status: resolved (set by @damiendoligez on 2017-03-03T13:55:42Z)
Resolution: suspended
Priority: normal
Severity: feature
Category: -for ocamlbuild use https://github.com/ocaml/ocamlbuild/issues
Monitored by: @gasche @diml @hcarty
Bug description
Anil 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 information
After 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.The text was updated successfully, but these errors were encountered: