Re: [HACKERS] Re: [PATCHES] Patch for more readable parse error messages

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: PostgreSQL Development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: [HACKERS] Re: [PATCHES] Patch for more readable parse error messages
Date: 2000-02-23 05:48:09
Message-ID: 1176.951284889@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
> On 2000-02-22, Tom Lane mentioned:
>>>> Anyone for getting rid of GNU make?
>>
>> No ;-). GNU make has enough important features that there is no
>> near-equivalent non-GNU make. VPATH, for example.

> There are other makes that support this too. While I love GNU make, too,
> all the talk about allowing vanilla lex, etc. is pointless while GNU make
> is required. Users don't see lex at all, they do see make.

Huh? Assuming someone will have program X installed is not the same as
assuming they will have program Y installed. In this particular case,
a more exact way of putting it is that assuming program X is installed
is not the same as assuming that program Y's prebuilt-on-another-machine
output is usable on this platform.

> OTOH, it is very hard for me to get an overview these days what's actually
> out there in terms of other make's, other lex's, other yacc's, other
> compilers.

Not much. The real problem here is "what set of tool features do you
assume you have, and what's it costing you in portability?" GNU make
provides a very rich feature set that's widely portable, although you
do have to port the particular implementation. If you don't want to
assume GNU make but just a generic make, there's a big gap in features
before you drop down to what's actually portable to a wide class of
vendor-provided makes. VPATH, for example, does exist in *some*
vendor makes, but as a practical matter if you use it then you'd better
tell people "my program requires GNU make". It's not worth the trouble
to keep track of the exceptions.

I will be the first to admit this is all a matter of judgment calls
rather than certainties. As far as I can see, it's not worth our
trouble to try to operate with non-GNU makes; it is worth the trouble
to work with non-GNU yaccs, because we're not really using any bison-
specific features; it's looking like we should forget about non-GNU
lexes, but I'm not quite convinced yet. You're free to hold different
opinions of course. I've been around for a few years in the portable-
software game, so I tend to think I know where the minefields are, but
perhaps my hard experiences are out of date.

> The best way of going about this seems to take one of the perpetrators
> (make file, gram.y, etc.) and try to port it to some given non-GNU tool
> and take a look at the consequences.

But that only tells you about the one tool; in fact, only about the one
version of the one tool that you test. In practice, useful knowledge
in this area comes from the school of hard knocks: ship an open-source
program and see what complaints you get. I'd rather rely on experience
previously gained than learn those lessons again...

>> One thing I hope we will be able to do sometime soon is build in an
>> object directory tree separate from the source tree... can't
>> realistically do that with any non-GNU make that I've heard of.

> I'm planning to work on that for 7.1. But here's an interesting tidbit:
> Automake does support this feature but in its manual it claims that it
> does not use any GNU make specific features.

Yeah? Do they claim not to need VPATH to do it? I suppose it might
be possible, if they are willing to write sufficiently ugly and
non-hand-maintainable makefiles. Not sure that's a good tradeoff
though.

> And in fact, VPATH exists in both System V's and 4.3 BSD's make.

You're still confusing two datapoints with the wide world...

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Joe Conway 2000-02-23 05:57:00 pltcl and LDAP
Previous Message Roberto Cornacchia 2000-02-23 05:40:43 about 7.0 LIMIT optimization

Browse pgsql-patches by date

  From Date Subject
Next Message Peter Eisentraut 2000-02-23 13:20:44 GNU make (Re: [HACKERS] Re: [PATCHES] Patch for more readable parse error messages)
Previous Message Peter Eisentraut 2000-02-23 01:20:12 Re: [HACKERS] Re: [PATCHES] Patch for more readable parse error messages