[Omake] "Strict" case sensitivity.
Jason Hickey
jyh at cs.caltech.edu
Mon May 14 12:41:20 PDT 2007
On May 14, 2007, at 12:15 PM, Aleksey Nogin wrote:
> (the real file name is RpcDceP.h, but the C scanner prints all the
> header files in lowercase).
Oh, bleh:(
>
>> I think I prefer strict. For the mixed style, there are two
>> approaches,
>> 1. Case-sensitive nodes, but canonical comparison (the style
>> you had before).
>
> This is probably the way to go. Except, we might want to try adding
> some code to "inherit" the real case through the implicit rules.
>
>> 2. Nodes are canonized, but they display using their realpath
>> osh> X = $(file aBc)
>> Abc : File
>> osh> rm abc
>> osh> touch abC
>> osh> value $X
>> abC : File
>
> The issue is that we'd also have to have the notion of a "realpath"
> for any "future" targets that we are planning to build in order for
> this to do what we want.
I'm not arguing the choice, but note that the "future realpath" is
not an issue I believe. We assume that if a file doesn't exist, then
the way it gets created is because we build it. So the correct thing
to do is preserve the case of the part that doesn't exist (this is
how it is already implemented).
If I understand, what you mean is that the value of % is determined
by the realpath case of the (first) dependency with a %, not the
target. This seems like a good idea.
sh> touch bAr.c
sh> omake Bar.o
# Builds bAr.o
In any case, I'm arguing for the following implementation.
- Remove the realpath check from Omake_cache_stat
- Omake_cache_stat nodes always use canonical names
- Actual nodes are layered on top, as Omake_cache.Node
In other words, the case-preserving nodes are layered on top of
canonical nodes, the implementations are not interleaved.
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