[Omake] Case-insensitivity and cons-hashing.

Jason Hickey jyh at cs.caltech.edu
Thu May 3 16:31:25 PDT 2007


On May 3, 2007, at 12:10 PM, Jason Hickey wrote:

>    %.a:
>        section rule
>           %.a: %.b
>              touch $@
>
>    touch foo.b
>
>    target-exists(Foo.a)
>
>    .DEFAULT: foo.a

Verified, it does indeed create Foo.a.  Note that this will happen  
whether or not we are using hash-consing.

For this particular issue, we can figure out something special to do  
with active rules.

However, the general problem will persist.  Whenever the entries of a  
NodeTable.t contain Node.t values, we can run into the same issue.

     (... Node.t ...) NodeTable.t

A fix for this is way too complicated.

As I mentioned before, I don't know if it is such a big deal.  If the  
programmer writes the "wrong" name at some point in his OMakefile,  
then it shouldn't be surprising that the wrong name appears once in a  
while.

The real problem is that it is the scanner that is generating the  
wrong names.  If we simply fix that, then things will return to normal.

And I think we should probably remove the HashMarshalEq (see commit  
post for rev 10621).  It is a good idea, but there isn't much point  
in hash-consing if comparison is not O(1).  We should probably do the  
vertical split instead.

Jason

--
Jason Hickey                  http://www.cs.caltech.edu/~jyh
Caltech Computer Science      Tel: 626-395-6568 FAX: 626-792-4257





More information about the OMake-Devel mailing list