make-3.80: `eval' bug

2002-10-24 Thread Toomas Rosin
Hello! Given this input: f0 = $(foreach s,foobar,$(firstword $s:)) e0 = $(foreach s,foobar,$(eval $s:)) f1 = $(foreach s,foobar, $(firstword $s:)) e1 = $(foreach s,foobar, $(eval $s:)) f2 = $(foreach s,foobar, $(firstword $s:)) e2 = $(foreach s,foobar, $(eval $s:)) all:

Re: make-3.80: `eval' bug

2002-10-24 Thread Paul D. Smith
%% [EMAIL PROTECTED] (Toomas Rosin) writes: tr> Given this input: tr>e0 = $(foreach s,foobar,$(eval $s:)) tr>e0 == tr> I certainly did not expect this! Nevertheless, this one is correct. tr>e1 == f tr>e2 == fo These are indeed incorrect; they should all be like e0

Re: make-3.80: `eval' bug

2002-10-24 Thread Paul D. Smith
Actually, I may have been too abrupt when I said your fix was "not correct"; I mean, it _is_ not correct in some sense since your post contains some incorrect statements about how and why the problem occurs, and also incorrect implications for the fix. However, the basic idea behind your proposed

Re: make-3.80: `eval' bug

2002-10-24 Thread Toomas Rosin
You <[EMAIL PROTECTED]> wrote: Your fix is not correct; note that the documentation for $(eval ...) says: The result of the `eval' function is always the empty string; thus, it can be placed virtually anywhere in a makefile without causing syntax errors. Thus, there is no

Re: make-3.80: `eval' bug

2002-10-24 Thread Toomas Rosin
You <[EMAIL PROTECTED]> wrote: your post contains some incorrect statements about how and why the problem occurs, and also incorrect implications for the fix. Well, make's code is not easy to debug (deep recursion), and I have not done this before. I certainly do not see all the issues eve

Re: make-3.80: `eval' bug

2002-10-24 Thread Paul D. Smith
%% [EMAIL PROTECTED] (Toomas Rosin) writes: tr> Well, make's code is not easy to debug (deep recursion), and I tr> have not done this before. I certainly do not see all the issues tr> even now, after spending a long and busy day gdb'ing it. I simply tr> tried to find the simplest working