[Omake] Going back to "relaxed" sensitivity.

Aleksey Nogin anogin at hrl.com
Mon May 14 13:24:08 PDT 2007


Here is what I currently inclined to do:

- Go back to the latest version of the "relaxed" sensitivity code (where 
the case is preserved, but the equality is case-insensitive; with a 
"vertical split" implemented transparently by the Lm_hash module).

- _Not_ using two separate "node" types (I did not understand your 
reasoning behind this idea).

- Implement the "OCaml path lookup" in builtin, matching the logic Ocaml 
uses (if include path is [a; b] and we are looking for foo, use the 
first of [a/foo; a/Foo; b/foo; b/Foo]). This way the uppercase 
dependencies for OCaml files will never be generated on case-insensitive 
fs. I would not add any hacks to Omake_cache, but rather add an extra 
OCaml-specific lightweight caching layer in builtin itself. The 
algorithm for cache misses would be something like:
    1. Do Omake_cache lookup (separately) for both uncapitalized and 
capitalized names.
    2. If at most one is found, or if found results are equal, us it.
    3. Otherwise (if both found), if both are in the same directory, use 
the uncapitalized one.
    4. If the directory names are different, find the indices of those 
directories in the search path and use the earlier one.

- Long-term, implement the "propagate case from source to target in 
implicit rules" approach. However, I'd rather release 0.9.8.2 without 
this and worry about this stuff later. I think this would be nice to 
have, but if OCaml stuff is no longer crazy, this would not be a big 
priority for us.

-- 
Aleksey Nogin, Research Staff Member
Advanced Technologies Department, Information & System Sciences Lab
HRL Laboratories, LLC, Malibu, CA


More information about the OMake-Devel mailing list