On Mon, 22 Jan 2007, Ben Elliston wrote:

> I submitted a patch to gengtype-lex.l last week to gcc-patches.  The
> patch uses some flex %option directives.  Ian Taylor asked me to check
> if the patch passed through flex 2.5.4, which is the current minimum
> required version.  It didn't work.
> 
> Through some experimentation, I learned that the minimum version of Flex
> that did accept my patch was 2.5.31.  The effect of the patch is that it
> eliminates around ten warnings from the build.
> 
> I think it's worth raising the minimum required version from 2.5.4 to
> 2.5.31.  The latter version was released in March, 2003, so it is hardly
> bleeding edge.  Mike Stump commented that so few developers actually
> need flex for development work, that it will represent a very small
> inconvenience.  Moreover, users get the generated C code in their GCC
> releases, so they never have to install flew anyway.
> 
> Thoughts?

I'm not at all impressed with the recent series of flex releases, since it 
started using m4 internally and passing user code through m4.  This 
created a whole series of bugs and piles of patches distributions needed 
to apply with scanners conforming to the POSIX lex definition being 
mangled.  The manual in flex 2.5.33 suggests that this class of bug is 
still present and certain arbitrary non-POSIX restrictions are being 
applied to user scanners, and I don't think distribution patches 
completely fix this.  flex needs more attention paid to POSIX and 
backwards compatibility to clean up this mess (cf. bison, which unlike 
flex pays proper attention to assuring that arbitrary valid parsers are 
not mangled by m4).

Perhaps the various distributions people have noted still using 2.5.4 are 
equally unimpressed by the approach of recent flex releases to correctness 
and compatibility.

-- 
Joseph S. Myers
[EMAIL PROTECTED]

Reply via email to