[GRASS5] PATCH: sql expression parser

Glynn Clements glynn at gclements.plus.com
Mon Jun 13 05:05:32 EDT 2005


Michael Tiemann wrote:

> There is a /huge/ difference between configure scripts and generated lex
> and yacc files.  The former are /likely/ to be different across a
> variety of build environments (though it's true that a single configure
> script can also likely succeed in being useful on most systems).  In the
> latter case it is almost always the case that generated files
> are /identical/ in form and definitely in function across all systems.

Actually, I'd say it's the other way around.

First, the configure script is supposed to be identical on all
systems. The only people who are supposed to generate configure from
configure.in are developers who modify configure.in. Everyone else
should use the configure script from CVS or the source tarball; it is
supposed to work on all systems.

Second, there is only one source for autoconf: GNU (although there are
multiple versions, it's not uncommon for projects to stipulate a
specific version). Also, the m4 version which is used shouldn't be
relevant (and non-GNU m4 is unlikely to work anyhow).

OTOH, lex/yacc implementations other than GNU flex/bison are widely
used, and they will typically generate different code (even if it's
semantically equivalent, that won't stop "cvs commit" from committing
the "new" version).

Furthermore, the generated code should depend upon any settings of
LFLAGS and YFLAGS in the environment when configure is run (in
reality, we aren't propogating these settings into the Makefiles;
that's a bug). Using lex flags such as -C will substantially alter the
actual code which is generated.

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list