Re: make --guaranteed-real-dry-run

2009-01-23 Thread jidanni
So was this ever resolved? Did anything get into the documentation? Thanks.


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


RE: make --guaranteed-real-dry-run

2009-01-23 Thread Martin Dorey
 So was this ever resolved?

I was happy with the suggestions on the thread, whatever they were, and
no-one objected.

 Did anything get into the documentation?

No.  If someone were motivated enough to raise a bug, then I expect I
could find the time to dig out the old mails, apply them to the current
source and generate a patch to attach to the bug.  Someone might then
commit the changes.

-Original Message-
From: jida...@jidanni.org [mailto:jida...@jidanni.org] 
Sent: Friday, January 23, 2009 12:16
To: Martin Dorey
Cc: m...@packages.debian.org; bug-make@gnu.org
Subject: Re: make --guaranteed-real-dry-run

So was this ever resolved? Did anything get into the documentation?
Thanks.


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


make --guaranteed-real-dry-run

2009-01-01 Thread jidanni
In the documentation everywhere you mention
   -n, --just-print, --dry-run, --recon
Print  the  commands  that  would  be executed, but do not execute
them.
You should also say:
Well, that is not exactly the truth, in some cases
a even non-malicious programmer can construct a makefile
that will still execute commands. In fact it is quite
common and intentional... The same goes for -t... See
(info (make)MAKE Variable) (info (make)Options/Recursion).

At least add one word that one still can get wet.

Also please document how one can achieve a --guaranteed-real-dry-run.

Furthermore, one notes in the make --dry-run output that there is no
way to distinguish the lines that were really run from those that
weren't. Only when one sees e.g., /bin/sh: curl-config: command not
found does one notice something sneaky is happening.


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


RE: make --guaranteed-real-dry-run

2009-01-01 Thread Martin Dorey
It's not clear whether you're complaining about rules whose commands are
run even with -n or -t, or whether you're complaining about commands run
by eg $(shell).
 
Assuming the former, the documentation already explains:
 
The `-n', `-t', and `-q' options do not affect command lines that begin
with `+' characters or contain the strings `$(MAKE)' or `${MAKE}'. Note
that only the line containing the `+' character or the strings `$(MAKE)'
or `${MAKE}' is run regardless of these options. Other lines in the same
rule are not run unless they too begin with `+' or contain `$(MAKE)' or
`${MAKE}'
 
That's just below the main description of what -n does, but it looks
like you're reading the summary of the command line switches.  There's a
link to the main description right after the sentence you quoted.  That
sentence has been further improved in the CVS version to read:
 
Print the recipe that would be executed, but do not execute it.
@xref{Instead of Execution, ,Instead of Executing the Recipes}.
 
One reason why I find that to be an improvement is because it's now
clearer that it only refers to commands in recipes, not commands in
variable assignments, conditionals or elsewhere.
 
 Also please document how one can achieve a --guaranteed-real-dry-run.
 
That would be ignoring the wish of the makefile author that those
commands be run even with -n.  More constructively, make --debug might
help you.  A program called remake received rave reviews in
http://savannah.gnu.org/bugs/?18617.  And, in the last resort, strace
remains excellent.
 
-Original Message-
From: bug-make-bounces+mdorey=bluearc@gnu.org
[mailto:bug-make-bounces+mdorey=bluearc@gnu.org] On Behalf Of
jida...@jidanni.org
Sent: Thursday, January 01, 2009 09:12
To: bug-make@gnu.org
Subject: make --guaranteed-real-dry-run
 
In the documentation everywhere you mention
   -n, --just-print, --dry-run, --recon
Print  the  commands  that  would  be executed, but do not
execute
them.
You should also say:
Well, that is not exactly the truth, in some cases
a even non-malicious programmer can construct a makefile
that will still execute commands. In fact it is quite
common and intentional... The same goes for -t... See
(info (make)MAKE Variable) (info
(make)Options/Recursion).
 
At least add one word that one still can get wet.
 
Also please document how one can achieve a --guaranteed-real-dry-run.
 
Furthermore, one notes in the make --dry-run output that there is no
way to distinguish the lines that were really run from those that
weren't. Only when one sees e.g., /bin/sh: curl-config: command not
found does one notice something sneaky is happening.
 
 
___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make
___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: make --guaranteed-real-dry-run

2009-01-01 Thread jidanni
What really bugs me is we do man make, and see

   -n, --just-print, --dry-run, --recon
Print the commands that would be executed, but do not execute them.

But that is just plain not always true, and one has to read the fine
print in other documents to find the whole story.

So throughout the years we use make -n, until one day something blows
up in our face.

What I'm saying is that things like that at least need a asterisk and
a footnote, else, well, how can you say with a clear conscience we
warned you?

Yes down on the bottom is says for the full story see the info pages,
but that's not how warning labels are done.


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


Re: make --guaranteed-real-dry-run

2009-01-01 Thread Philip Guenther
On Thu, Jan 1, 2009 at 12:15 PM,  jida...@jidanni.org wrote:
 What really bugs me is we do man make, and see

   -n, --just-print, --dry-run, --recon
Print the commands that would be executed, but do not execute them.

 But that is just plain not always true, and one has to read the fine
 print in other documents to find the whole story.

So make a serious suggestion for the additional words that would have
clarified it for you.  Please don't try to use a footnote, as they
work poorly when a manpage is viewed on-line.  (Footnotes in
info-pages are only bearable because the viewer forcibly presents
them.)


 What I'm saying is that things like that at least need a asterisk and
 a footnote, else, well, how can you say with a clear conscience we
 warned you?

The GNU make manpage starts with this:

WARNING
   This  man  page  is an extract of the documentation of GNU
   make.  It is updated only occasionally,  because  the  GNU
   project  does  not use nroff.  For complete, current docu-
   mentation, refer to the Info file make.info which is  made
   from the Texinfo source file make.texi.

Since you continued to read past that, you apparently were unconcerned
that you were reading incomplete, possibly out-of-date documentation.

If you don't see that in your version, then you're either using an
out-of-date version of GNU make, or your system packager has rewritten
the manpage, placing it out of control of the GNU make developers.


 Yes down on the bottom is says for the full story see the info pages,
 but that's not how warning labels are done.

1) it's at the top, not the bottom, of the official manpage.
2) if that's not enough, then I suggest you remove the make manpage
from your system,
   as that's the only sure way to not have incomplete data on it.


Philip Guenther


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


RE: make --guaranteed-real-dry-run

2009-01-01 Thread Martin Dorey
make --help in CVS has been updated with the recipe clarification but
still says:

  -n, --just-print, --dry-run, --recon\n\
  Don't actually run any recipe; just print
them.\n

I agree that make --help is on particularly dubious ground when saying
any recipe.  Saying something woolly and referring to the
documentation is one thing, but saying something definitive yet,
strictly speaking, incorrect, with no caveat or reference, is something
else.  We need to be concise, so people can find what they're looking
for, yet we still need to convey the sense of what the switch does.  How
about:

Don't actually run normal recipes; just print them.

-Original Message-
From: bug-make-bounces+mdorey=bluearc@gnu.org
[mailto:bug-make-bounces+mdorey=bluearc@gnu.org] On Behalf Of
jida...@jidanni.org
Sent: Thursday, January 01, 2009 12:54
To: guent...@gmail.com
Cc: bug-make@gnu.org
Subject: Re: make --guaranteed-real-dry-run

PG The GNU make manpage starts with this:
PG WARNING
OK, but not make --help.

Anyway please change things like
  -n, --just-print, --dry-run, --recon
 Don't actually run any commands; just print them.
To
 Don't actually run any commands usually; just print them.

The exact wording I leave up to you.


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


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


Re: make --guaranteed-real-dry-run

2009-01-01 Thread jidanni
MD Don't actually run normal recipes; just print them.
Well OK. A hint in the air that something is up the sleeve is better
than nothing.

P.S. here on Debian sid
$ man make|egrep 19\|Manual|tr -s ' '|tac
GNU 22 August 1989 MAKE(1)
 Copyright (C) 1992, 1993, 1996, 1999 Free Software Foundation, Inc. This file 
is part of GNU make.
 See the chapter `Problems and Bugs' in The GNU Make Manual.
 The GNU Make Manual
$ make --version
GNU Make 3.81


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