From: "grischka" <grishka@gmx.de>
To: "Dave Korn" <dave.korn@artimi.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: removing compile directive
Date: Fri, 25 Apr 2008 18:32:11 +0200 [thread overview]
Message-ID: <040901c8a6f2$1a209ae0$5e45fe91@j4f3n1> (raw)
In-Reply-To: 002c01c8a56b$da5ed1b0$2708a8c0@CAM.ARTIMI.COM
From: "Dave Korn":
> >> On Mon, 2008-04-21 at 10:43 -0700, Brian Dessent wrote:
> >>> CFLAGS = $(filter-out -D_REMOVE_THIS_,$(CFLAGS))
> >>
> >> You can't do this: recursive variables cannot reference themselves.
> >
> > I'm actually curious whether this is considered as a feature or a
> > limitation, or maybe just tradition with GNU make?
>
> It's a limitation in the nature of the universe: the universe is finite, and
> therefore the entropic limits on computability that follow from its finite
> nature mean we can never run an infinite loop to recursion.
>
> > I mean, basically it is very clear what the writer of above line
> > has in mind, so the program could as well support it.
>
> I assume the "very clear" intention that you perceive the writer to have had
> in mind is this:
>
> CFLAGS := $(filter-out -D_REMOVE_THIS_,$(CFLAGS))
>
> i.e. a non-recursive operation; and that you are suggesting that make could
> overlook the fact that what they actually wrote was an operation that recurses
> infinitely because it has no termination condition.
What I mean is that it is not obvious that it has no termination condition,
anyway less obvious than that it could have one.
Just as you could see 'CFLAGS += -Dxxx' also as an impossibility with
no termination condition, but it is more useful if you don't.
Similar in the general case the more obvious model incidentally also
seems to be the more useful one, because (if supported) it allows
you to emulate 'CFLAGS -= -Dxxx' by other facitilities that GNU make
already has, quite easily.
Btw, could be I saw '-=' in jam (or maybe some other make program).
--- grischka
next parent reply other threads:[~2008-04-25 16:32 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <00c701c8a4c8$d96134e0$a01a90d4@j4f3n1>
[not found] ` <002c01c8a56b$da5ed1b0$2708a8c0@CAM.ARTIMI.COM>
2008-04-25 16:32 ` grischka [this message]
2008-04-25 18:02 ` removing compile directive Dave Korn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='040901c8a6f2$1a209ae0$5e45fe91@j4f3n1' \
--to=grishka@gmx.de \
--cc=dave.korn@artimi.com \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).