[bug #16389] Defaults for Objective-C

2007-04-30 Thread Icarus Sparry

Follow-up Comment #6, bug #16389 (project make):

Perhaps it is time to consider forking GNU make?
The current maintainer seems too busy to give it the attention it deserves,
but appears unwilling to allow others to help.

If we look at CVS, we see a burst of activity on March 19th, with a small
fixup on the 21st. Prior to that the last checkin was November 18th of last
year, and before that was the end of September, and then some at the start of
April. So 4 checkins in the last 12 months.

In this time crippling bugs have been reported, and in some cases patches
submitted, but are still not available even via CVS. Paul says that a new
version will not be out for "months".

Paul seems to have some interesting projects in the works, in particular
adding Guile to make, but I think users deserve to have access to the best
bug free product the community can currently build. It took 3.5 years to go
from 3.80 to 3.81, will we need to wait until 2010 before we see 3.82?

___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #20006] Regression between 3.80 and 3.81

2007-05-29 Thread Icarus Sparry

URL:
  

 Summary: Regression between 3.80 and 3.81
 Project: make
Submitted by: icarus
Submitted on: Wednesday 30/05/07 at 00:20
Severity: 3 - Normal
  Item Group: Bug
  Status: None
 Privacy: Public
 Assigned to: None
 Open/Closed: Open
 Discussion Lock: Any
   Component Version: 3.81
Operating System: Any
   Fixed Release: None

___

Details:

Given a directory containing only a file T.in (any contents) and a Makefile
with the following contents

%.out: %; touch $@
%: %.in;touch $@
.PHONY: good bad
good: T T.out
bad: T.out T

then running "make -r bad" with GNU make 3.81 gives

make: *** No rule to make target `T.out', needed by `bad'.  Stop.

On the other had using 3.80, it produces the expected results.
touch T
touch T.out

The change from version 1.40 to 1.41 of implicit.c which has the following
log message
revision 1.41
date: 2004-09-21 13:23:12 -0700;  author: bosk;  state: Exp;  lines: +3 -1;
Fixed bug in implicit rule prerequisite evaluation code. Added test.

is at least partly responsible for the regression. Making just this change
causes the modified make to give the error message. However both 3.80 and
3.81 manage to build the 'good' target, but the modified one gives

touch T
make+: *** No rule to make target `T.out', needed by `good'.  Stop.






___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #712] GNU make can't handle spaces in pathnames

2007-07-03 Thread Icarus Sparry

Follow-up Comment #9, bug #712 (project make):

"How hard is it to handle quoting properly?" - impossible if we wish to
maintain backward compatibility.

As Paul said nearly 4 years ago, make works in terms of "words" which are
whitespace separated.

The quotation that starts this comment is viewed by make as 8 words  , the
first of which is 4 characters long, a double quote followed by the letters
'H', 'o' and 'w'.

"Heck, even DOS can accept quoted arguments.". Does it? I type

echo "fred x"

and it returns

"fred x"

rather than the 

fred x

I would expect. And if I try and create a file called a"b from the command
line it fails, if I try from wordpad it tells me the name is invalid. Unix
allows any characters in components of filenames except NUL and /. Whilst
this is very flexible it also causes problems. The people who wrote unix
recognised this, and in their next operating system they restricted the
characters permitted in filenames to not allow control characters and the
normal whitespace characters. At the same time they extended the valid
characters to include things like alpha α, which are outside the traditional
ASCII character set.
 

___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2007-07-05 Thread Icarus Sparry

Follow-up Comment #15, bug #15919 (project make):

If I take the current (July 4th 2007) sources of make from CVS (Paul has just
updated the license to GPL 3), and apply my patch I get the following output

$ make -j2
cp 1.a 1.b
cp 2.a 2.b
cp 1.b 1.c
cp 2.b 2.c
rm 1.b 2.b

Note that there have been 7 changes to remake.c since 3.81 was released. In
particular there has been a fix for bug 16051
, which may affect the result.

It is hard to get enthusiastic about fixing bugs, or even reporting them when
the current maintainer sits for over a year on a request to be added to the
project. Not accepting, not rejecting, just ignoring the request.

Then one attempts to help other people, and they can not even spell my name
correctly!

___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2007-07-08 Thread Icarus Sparry

Follow-up Comment #18, bug #15919 (project make):

Sorry J David Bryan, as you say there is no obvious way to edit comments once
they have been submitted. I am just very frustrated with the current lack of
progress with GNU make, and you caught me on a bad day.

Looking over my current sources I see I have updated my sources since my
patch. If you email me directly (savannah at icarus freeuk com)I will send
you an updated patch which is actually the fix to your problem, it is not the
fix to 16051.

Paul, it would be nice to believe you. However you released 3.81 without
testing bug 3330 . If you had done this
testing you would have found this bug before releasing 3.81.

Personally I consider this bug to be a "release critical" bug, by which I
mean it has to be fixed before a release is made, and just fixing this bug is
a reason for creating a new release. It takes a perfectly valid input, and
causes make to enter an infinite loop. If "cat" had a bug so that if it was
given a filename with "dog" in it it went into an infinite loop then people
would expect a fix faster than a year, let alone 4 years.

Do you agree Paul?

___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2007-08-15 Thread Icarus Sparry

Follow-up Comment #23, bug #15919 (project make):

Glad its fixed. Now all I need do is work on you to get a quick release out
the door.

I no longer have access to the codebase that provoked the original bug
report, the company has gone "dot bust".

___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #23928] Add MAKEFILE variable

2008-07-25 Thread Icarus Sparry

Follow-up Comment #2, bug #23928 (project make):

You probably want lastword, rather than firstword.


___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2008-12-19 Thread Icarus Sparry

Follow-up Comment #26, bug #15919 (project make):

Knut St Osmundsen, 
Your fix is similar to the one I mentioned in comment 18.

Yes, the idea is that tests pass cleanly. I just assumed that Paul tested his
fix against the test cases. I can also reproduce the problems with the
INTERMEDIATE tests if run with -j.

Paul, How do we get you to reopen this bug as I still am not a member of this
project after 2.5 years of asking?




___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2006-10-25 Thread Icarus Sparry

Follow-up Comment #6, bug #15919 (project make):

I have another makefile which shows the same effect.
I am trimming it at the moment, but things it has in common with the second
makefile below is an "order only" dependency and a ".INTERMEDIATE". make -j1
works fine. make -j2 works fine the first time. make -j2 burns infinite
amounts of CPU the second time, looping, thinking that things are already
being made.

This is the currect CVS version of Make.

___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2006-10-25 Thread Icarus Sparry

Follow-up Comment #7, bug #15919 (project make):

Here is the Makefile, stripped as much as I think I can. In particular if I
change the intermed dependency on phony to be a normal one, rather than an
order only one then everything works as I would expect. Run "make clean" (or
touch src) to get things started.

The version that Make reports is 3.81.90, and was pulled from CVS yesterday
(24th Oct 2006). The tabs have been replaced by spaces, so hopefully it will
look reasonable,

# Run with make -Rj

target: intermed
touch $@

.INTERMEDIATE: intermed
intermed: src | phony
touch $@

.PHONY: phony
phony:
: Running Order only phony target

clean:
rm -fr target
test -e src || touch src


___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2006-10-26 Thread Icarus Sparry

Follow-up Comment #8, bug #15919 (project make):

Line numbers are relative to remake.c, version 1.130.
The problem appears to be in check_dep. Stepping through the second and later
times it traverses the graph, in the case where "file" has the record for
"intermed".

It increases depth, and marks the structure as updating.
The if on line 941 is false, this is an intermediate file.
So take the else on 953. The if on 958 is false, we have cmds for this file.
The if on line 966 is false, as we have cmds still!

At line 976 mtime is 1, NONEXISTENT_MTIME, so the if on 978 is false, so we
take the else part, lines 983 to 1032. This is a loop over the dependencies,
in this case there are 2, "src" and "phony".

Stepping through for "src"
The if on 993 is false, "src" is not being updated.
line 1013, maybe_make = 0
The call to check_dep (line 1014) returns 0, and leaves maybe_make
unchanged.
The if on 1016 is true, so *must_make_ptr = 0 (unchanged)
The if on 1019 is false (dep_status==0)
The if on lines 102[23] is false, the command status is cs_finished.

Stepping through for "phony"
The if on 993 is false, "phony" is not being updated.
line 1013, maybe_make = 0
The call to check_dep (line 1014 returns 0, but changes maybe_make to 1.
The if on 1016 is false, this is an order only dependency,
so *must_make_ptr is unchanged.
The if on 1019 is false (dep_status == 0)
The if on lines 102[23] is false, the command_status is cs_finished.

It then unmarks the "intermed" file as being updated, and returns.

However this leaves a tree

+ src
target -- intermed -|
+ phony

where src & phony are in state "cs_finished", target and intermed are in
state cs_deps_running, and nothing is going to change this.

The "maybe_make" local variable in the update_file_1("target",1) (to abuse
notation) is left as zero, but its dependency ("intermed") is still in
cs_deps_running state, so it is not updated.


___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2006-10-30 Thread Icarus Sparry

Follow-up Comment #9, bug #15919 (project make):

I have a fix, which works with the two Makefiles that are attached to this
bug, plus my stripped down makefile, plus the real life makefile that it was
stripped from.

It also passes the "make check" stage.

It also fixes another old bug.

Paul, how do I get commit access to CVS?



___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2006-11-11 Thread Icarus Sparry

Follow-up Comment #11, bug #15919 (project make):

This bug appears to be the latest incarnation of bug#3330. When that was
submitted make didn't go into an infinite loop, but the makefile that was
listed then caues make 3.81 to go into a loop.

Attached is a patch which fixes the bug, and adds a new test case to ensure
there is no regression.
___

Additional Item Attachment:

File name: patch  Size:3 KB
Fix for bugs 15919 and 3330, plus new test case


___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #3330] gmake -j2 does very different things to gmake -j1

2006-11-12 Thread Icarus Sparry

Follow-up Comment #3, bug #3330 (project make):

see bug#15919 for a fix

___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #15919] Make-3.81 rc1 hangs with -j 2 but not with -j 1

2006-11-14 Thread Icarus Sparry

Follow-up Comment #13, bug #15919 (project make):

How much explanation do you want for a 1 line patch, which just initialises a
variable?

The way that make builds when it is in parallel make mode is different from
the way that it builds when it is building sequentially. The bug manifests
itself for any number of jobs greater than 1, there is nothing special about
2, and my test case sets it to infinite.

The guts of the GNU make engine is two mutually recursive routines, check_dep
and update_file. (update_file_1 is just called from one place, and so could be
usefully declared "inline", or make could be compiled with
-finline-functions-called-once)

The underdocumented requirement for check_dep is to build an non-intermediate
files that this file depends on, and set *must_make_pointer to be 1 if this
needs to be made. There is an undocumented requirement when jobs are run in
parrallel for the state not to be left in cs_deps_running if all of the
dependencies have completed. The is what my fix does.

More later.

___

Reply to this item at:

  

___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make