Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ANNOUNCE: DJGPP port of GNU Bison 2.4.1 uploaded.

1 view
Skip to first unread message

Juan Manuel Guerrero

unread,
Jan 10, 2010, 1:37:16 PM1/10/10
to djgpp-a...@delorie.com
This is a port of GNU Bison 2.4.1 to MSDOS/DJGPP.

Bison is a Yacc compatible parser generator.
This is mostly a porting and bug-fix release; the only change to
user-visible behavior is to the YYRECOVERING macro in GLR grammars,
as noted in the user-visible change list.


DJGPP specific changes.
=======================

- The DJGPP port of Bison offers LFN and SFN support depending on which OS it
is running. If LFN support is available or not is determinated at run time.
If LFN support is available (DOS session under Win9X), the standard posix
file name extensions will be used. These are: y.tab.c, y.tab.c++, y.tab.h,
y.output, etc. If only SFN support is available (plain DOS), then the
standard MSDOS short file names will be used. These are: y_tab.c, y_tab.h,
y.out, etc.
- It should be noticed that this version of Bison uses the m4 program as a
backend to generate the parser file (e.g. y_tab.c, etc.) from the skeleton
files. This means that m4 *must* be installed and available when bison's is
invoked or bison will not be able to generate the parser file. m4 will use
a couple m4 scripts that will be installed in /dev/env/DJDIR/share/bison.
This version of bison requires at least m4 1.4.3 available as m4-143b.zip
at ftp://ftp.delorie.com and mirrors.
- It should also be noticed that the two skeleton files bison.simple and
bison.hairy are no longer used nor supported anymore. This applies also to
the two environment variables BISON_HAIRY and BISON_SIMPLE.
Those variables are *no* longer honored at all. This implies that you can
no longer use these variables to point bison to an alternative skeleton file.
Use the command line option `-S' instead.
- The skeleton file bison.simple is now called yacc.c and is an m4 script.
Please notice that the grammar type coded in the skeleton file bison.hairy
is no longer supported by the bison maintainer. The other two skeleton
files supported by this bison version are glr.c and lalr1.cc. The first one
is a generalized LR C parser based on Bison's LALR(1) tables and the
second one is a experimental C++ parser class.

As usual, all djgpp specific files (config.bat, diffs, README files, etc.)
are located in the /djgpp subdir.


Here is a list of user-visible changes in version 2.4.1. taken from the NEWS file:

* Changes in version 2.4.1 (2008-12-11):

** In the GLR defines file, unexpanded M4 macros in the yylval and yylloc
declarations have been fixed.

** Temporary hack for adding a semicolon to the user action.

Bison used to prepend a trailing semicolon at the end of the user
action for reductions. This allowed actions such as

exp: exp "+" exp { $$ = $1 + $3 };

instead of

exp: exp "+" exp { $$ = $1 + $3; };

Some grammars still depend on this `feature'. Bison 2.4.1 restores
the previous behavior in the case of C output (specifically, when
neither %language or %skeleton or equivalent command-line options
are used) to leave more time for grammars depending on the old
behavior to be adjusted. Future releases of Bison will disable this
feature.

** A few minor improvements to the Bison manual.

* Changes in version 2.4 (2008-11-02):

** %language is an experimental feature.

We first introduced this feature in test release 2.3b as a cleaner
alternative to %skeleton. Since then, we have discussed the possibility of
modifying its effect on Bison's output file names. Thus, in this release,
we consider %language to be an experimental feature that will likely evolve
in future releases.

** Forward compatibility with GNU M4 has been improved.

** Several bugs in the C++ skeleton and the experimental Java skeleton have been
fixed.


For futher information about GNU bison please read the info docs and NEWS file.

The port has been configured, compiled and tested on a WinXP Prof SP3 system
with LFN support using stock djdev204, gcc442 and bsh205bbr3. To be able to
compile the sources you must fix the "_rdtsc" issue, this means that you have
to change the following lines in your /dev/env/DJDIR/include/time.h like this:
< unsigned long long _rdtsc(void);
---
> static unsigned long long _rdtsc(void);

Please also note that the testsuite will only work if LFN are available. All
tests concerning java and doxygen will be skipped. It should be noticed that
all tests from the testsuite checking g++ specific features fail with an error
message like this:
c:/djgpp-2.04/bin/ld.exe: cannot find -lgcc
collect2: ld returned 1 exit status
This happens always when the testsuite ist invoked from the Makefile like
this:
make check
If the same testsuite is startet from inside the /tests directory like this:
sh ./testsuite
the testsuite passes flawless. I was not able to figure out what is wrong
with the Makefile. The port has mostly testet for 2.04 and very little for
2.03.


The port consists of the usual three packages that have been compiled
using stock djdev203 and that can be downloaded from ftp.delorie.com
and mirrors as (timestamp 2010-01-10):

Bison 2.4.1 binary, info and man format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bsn241b.zip

Bison 2.4.1 dvi, html, ps and pdf format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bsn241d.zip

Bison 2.4.1 source:
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bsn241s.zip


For the convenience of the WinXP users the binaries has been produced
a second time using the djdev204 beta library. This package is available
at ftp.delorie.com and mirrors as (timestamp 2010-01-10):

Bison 2.4.1 binary, info and man format documentation:
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bsn241b.zip


Send GNU bison specific bug reports to <bug-...@gnu.org>.
Send suggestions and bug reports concerning the DJGPP port to
comp.os.msdos.djgpp or <dj...@delorie.com>.


Enjoy.

Guerrero, Juan Manuel <juan.g...@gmx.de>

0 new messages