[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bison and g++: It's been broken for more than a year!
From: |
Jim Babcock |
Subject: |
Bison and g++: It's been broken for more than a year! |
Date: |
Fri, 09 Jul 2004 18:37:28 -0400 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6) Gecko/20040113 |
The most recent official version of bison is 1.875. That is the version
bundled with every distro I have around to try. It has been that way for
more than a year. Given that, you would expect it to be free of major
bugs. But 1.875 is completely unusable with C++, because its output
includes the following:
yyerrlab1:
#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
__attribute__ ((__unused__))
#endif
After running into this with my own project, and finding a really
disgusting workaround ("#undef __GNUC__" in the header section), I
ran into the problem *again* with the ctree source package. I traced
the problem through gcc's bugzilla where I found that the g++ devs
explicitly reject this construct, and that g++ never supported it in
the first place. So I proceed to here, where searching the list
archives, I discover that the issue has been fixed in an alpha version
since Jan 2003.
WHY is there still no Bison 1.876?
When a release-critical bug is found, the fix should be backported
and a new version released as soon as possible. Instead, the bug has
sat there for more than a year. Who, exactly, is in charge of release
management?
There's simply no way I can give my program a dependency on an
unofficial version of bison. So I'm either going to find another
parser generator, or just use C.
- Bison and g++: It's been broken for more than a year!,
Jim Babcock <=