tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Make and makefile bugs (PRs 49085, 49086, 49087)
In article <20140817141345.GS965%roskakori.fi@localhost>,
Jarmo Jaakkola <jarmo.jaakkola%roskakori.fi@localhost> wrote:
>On Sun, Aug 17, 2014 at 11:14:00AM +0000, Christos Zoulas wrote:
>> In article <20140817101611.GQ965%roskakori.fi@localhost>,
>> Jarmo Jaakkola <jarmo.jaakkola%roskakori.fi@localhost> wrote:
>> >And these are the three possible solutions I could come up with:
>> > a) Retain full .NULL support. We then need to specify how it
>> > interacts with the POSIX single suffix rules. This would IMO get
>> > ugly and complicated.
>>
>> I think that (a) is workable. Or we can wait for pattern rules, then
>> deprecate .NULL.
>
>What would the interaction rules then be? But hold on a while before
>answering, see below.
>
>> >What should be done? Are there some other solutions?
>
>Inspired by Valery's email, I got thinking. Conceptually, there is only
>one case of "no (known) suffix". The problem is, we cannot write the case
>of "no suffix" explicitly. Unless:
> d) Replace .NULL with .NULL.xx. This would look just like a regular
> double suffix transformation rule and that's what it would be.
> We just write the "" as ".NULL". The reverse of ".xx.NULL" would
> not exist, because we have the standard ".xx". Or perhaps
> ".NOSUFFIX.xx", as null is already way too overloaded. The target
> name would also fall into the POSIX "reserved for implementation
> extensions" namespace.
>
>I think this would be the best. The old .NULL could be removed and
>there would be no need to think how it should work properly with
>single suffix transformations. People could also be directed to use
>the replacement they need by the emitted parse error. They could also
>be informed that in case of "add a suffix" they will face another change
>when pattern rules get implemented.
Sure, but I don't see how this is better. No matter what string you choose
to represent as the empty suffix, it could be used in real life. Yes, this
is far fetched, but I think this is why the designers of pmake invented
.NULL (so that you can choose a strng that you don't use as the empty suffix).
>
>> >Do you mean that .NULL should support multiple suffixes? Sounds a bit
>> >hairy.
>>
>> You could make .NULL take a list of suffixes and then check a suffix against
>> the list. Wouldn't that work?
>>
>> .NULL: .b .d
>
>This wouldn't be without its problems. In the case of "remove a suffix"
>it would just add more crutches to a feature that is going away anyway.
>For "add a suffix" we would need to handle the case where both ".b.x"
>and ".d.x" exist. Do we pretend "foo" is "foo.b" or "foo.d" to make
>"foo.x"? Also, what if "foo" and "foo.b" both exist? The current
>implementation would favor "foo", I think. What if .b is before .d in
>.SUFFIXES, and "foo" and "foo.d" exist?
I am sorry, but I've lost track of the case we are trying to fix. The
single suffix rule already works (see .c: in sys.mk). The way .NULL works
is kind of strange (I've even forgotten how it worked until you reminded
me), but if documented I think it is adequate. It all becomes a moot point
if we have suffix rules which are cleaner and better.
christos
Home |
Main Index |
Thread Index |
Old Index