is this a typo on your manual?

2023-02-15 Thread Shailan Patel
Dear Make

do you know whether the third prerequisite list here
https://prnt.sc/_l1Jg2gkV4v_  expands to "foo.1 bar.1 foo.2 bar.2 foo.1
foo.1 bar.1 foo.1 bar.1" https://pastebin.com/DFr9Athi ?

Shailan


Re: is this a typo on your manual?

2023-02-15 Thread Paul Smith
On Wed, 2023-02-15 at 05:10 +, Shailan Patel wrote:
> do you know whether the third prerequisite list here
> https://prnt.sc/_l1Jg2gkV4v_  expands to "foo.1 bar.1 foo.2 bar.2
> foo.1 foo.1 bar.1 foo.1 bar.1" https://pastebin.com/DFr9Athi ?

Hi;

Please choose just one mailing list to ask on since most people read
both.  I chose to keep bug-make in this reply.

Also please cut and paste the text you're talking about, or at least
include a reference to where in the manual you're looking, rather than
using links to external sites containing screenshots.  Some people
can't or won't follow these links, others can't view screenshots, and
at some point those external sites will go away and those links will
stop working, then we can't understand the question when we view it in
the email list archives.

Thanks!



Re: Regression on Cygwin: Problems with parallel make in 4.4

2023-02-15 Thread Paul Smith
On Tue, 2023-02-14 at 01:04 +0100, Bruno Haible wrote:
> And possibly also on GNU/Hurd. Cf.
> https://lists.gnu.org/archive/html/bug-make/2023-01/msg00107.html

I may be misremembering but I thought that you had tried forcing the
pipe jobserver option on GNU/Hurd and it didn't help.



Re: Regression on Cygwin: Problems with parallel make in 4.4

2023-02-15 Thread Bruno Haible
Paul Smith wrote:
> > And possibly also on GNU/Hurd. Cf.
> > https://lists.gnu.org/archive/html/bug-make/2023-01/msg00107.html
> 
> I may be misremembering but I thought that you had tried forcing the
> pipe jobserver option on GNU/Hurd and it didn't help.

This must be a misunderstanding. I never said that. I don't even know
how to do this, within the framework of GNU make's test suite.

All I said was, comparing the Cygwin failures with the GNU/Hurd failures [1]:
  "In all these failures, where we see an error message "Leftover temporary
   files" in GNU/Hurd, we see "Device or resource busy" in Cygwin."

Bruno

[1] https://lists.gnu.org/archive/html/bug-make/2023-01/msg00134.html






Re: Regression on Cygwin: Problems with parallel make in 4.4

2023-02-15 Thread Ken Brown

On 2/15/2023 1:34 PM, Bruno Haible wrote:

Paul Smith wrote:

And possibly also on GNU/Hurd. Cf.
https://lists.gnu.org/archive/html/bug-make/2023-01/msg00107.html


I may be misremembering but I thought that you had tried forcing the
pipe jobserver option on GNU/Hurd and it didn't help.


This must be a misunderstanding. I never said that. I don't even know
how to do this, within the framework of GNU make's test suite.

All I said was, comparing the Cygwin failures with the GNU/Hurd failures [1]:
   "In all these failures, where we see an error message "Leftover temporary
files" in GNU/Hurd, we see "Device or resource busy" in Cygwin."

Bruno

[1] https://lists.gnu.org/archive/html/bug-make/2023-01/msg00134.html


One thing to keep in mind here is that your tests on Cygwin were done on 
Cygwin 2.9.0, in which FIFOs were very poorly supported.  For example, a 
FIFO couldn't have multiple readers or writers.  If GNU/Hurd has similar 
limitations, that could explain the similar test results.


Cygwin's FIFO implementation was completely rewritten starting with 3.0, 
and it now supports multiple readers and writers.  So the issue with 
current Cygwin is more likely a bug in Cygwin and/or make.


Marco, did you by any chance run the test suite when you built make for 
Cygwin?  It would by interesting to know what test failures there are 
with Cygwin 3.4.6.


Ken

P.S. Here's a footnote about the failures I'm seeing.  I cited

  https://tug.org/pipermail/tlbuild/2023q1/005290.html ,

in which I reported problems with the build of TeX Live.  I said I had a 
hang in 'make -j13 world'.  This was an oversimplification.  What really 
happens is that the hang occurs when I run the 'Build' script provided 
by the TeX Live sources.  This is a shell script that runs make in a 
further sub-shell.  If I simply run 'make -j13 world' without using the 
Build script, it doesn't hang.  I don't know if this provides any clue 
as to where the problem is.




Re: is this a typo on your manual?

2023-02-15 Thread Paul Smith
Please reply to the list, not privately, then everyone can help and/or
see the answer.


On Wed, 2023-02-15 at 18:19 +, Shailan Patel wrote:
> Hello im referring to this
> chapter https://www.gnu.org/software/make/manual/make.html#Secondary-
> Expansion 
> 
> and im referring to this example here:
> 
> The following example will help illustrate these behaviors:
> .SECONDEXPANSION:
> 
> foo: foo.1 bar.1 $$< $$^ $$+# line #1
> 
> foo: foo.2 bar.2 $$< $$^ $$+# line #2
> 
> foo: foo.3 bar.3 $$< $$^ $$+# line #3
> In the first prerequisite list, all three variables ($$<, $$^,
> and $$+) expand to the empty string. In the second, they will have
> values foo.1, foo.1 bar.1, and foo.1 bar.1 respectively. In the third
> they will have values foo.1, foo.1 bar.1 foo.2 bar.2, and foo.1 bar.1
> foo.2 bar.2 foo.1 foo.1 bar.1 foo.1 bar.1 respectively.
> please could you tell me how foo.1 bar.1 foo.2 bar.2 foo.1 foo.1
> bar.1 foo.1 bar.1 is derived?

In line #1 all the variables are empty.

After line #1 parsed, in line #2, the variables have values as computed
in line #1: $$< is "foo.1" and $$^ is "foo.1 bar.1", and $$+ is "foo.1
bar.1".

After line #2 is parsed (when we are parsing line #3) the prerequisites
of "foo" are as follows:

  foo.1 bar.1  (from line #1)
  foo.2 bar.2  (new prereqs added by line #2)
  foo.1($$< in line #2)
  foo.1 bar.1  ($$^ in line #2)
  foo.1 bar.1  ($$+ in line #2)




Re: is this a typo on your manual?

2023-02-15 Thread Shailan Patel
Hello im referring to this chapter
https://www.gnu.org/software/make/manual/make.html#Secondary-Expansion

and im referring to this example here:

The following example will help illustrate these behaviors:

.SECONDEXPANSION:

foo: foo.1 bar.1 $$< $$^ $$+# line #1

foo: foo.2 bar.2 $$< $$^ $$+# line #2

foo: foo.3 bar.3 $$< $$^ $$+# line #3

In the first prerequisite list, all three variables ($$<, $$^, and $$+)
expand to the empty string. In the second, they will have values foo.1, foo.1
bar.1, and foo.1 bar.1 respectively. In the third they will have values
foo.1, foo.1 bar.1 foo.2 bar.2, and foo.1 bar.1 foo.2 bar.2 foo.1 foo.1
bar.1 foo.1 bar.1 respectively.

please could you tell me how* foo.1 bar.1 foo.2 bar.2 foo.1 foo.1 bar.1
foo.1 bar.1* is derived?

On Wed, Feb 15, 2023 at 6:06 PM Paul Smith  wrote:

> On Wed, 2023-02-15 at 05:10 +, Shailan Patel wrote:
> > do you know whether the third prerequisite list here
> > https://prnt.sc/_l1Jg2gkV4v_  expands to "foo.1 bar.1 foo.2 bar.2
> > foo.1 foo.1 bar.1 foo.1 bar.1" https://pastebin.com/DFr9Athi ?
>
> Hi;
>
> Please choose just one mailing list to ask on since most people read
> both.  I chose to keep bug-make in this reply.
>
> Also please cut and paste the text you're talking about, or at least
> include a reference to where in the manual you're looking, rather than
> using links to external sites containing screenshots.  Some people
> can't or won't follow these links, others can't view screenshots, and
> at some point those external sites will go away and those links will
> stop working, then we can't understand the question when we view it in
> the email list archives.
>
> Thanks!
>