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]