[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: incompatibility between 2.7 and 3.0.2
From: |
arnold |
Subject: |
Re: incompatibility between 2.7 and 3.0.2 |
Date: |
Mon, 08 Sep 2014 05:45:38 -0600 |
User-agent: |
Heirloom mailx 12.4 7/29/08 |
Hi Akim.
Seems that the core dump is fixed in the latest in the 'comment' branch.
If I do a clean checkout of the 'comment' branch, run bootstrap.sh
to adjust time stamps, confgiure, make, and make check, I get 4 test
failures.
If I then 'make clean', remove awkgram.c, and use bison 3.0.2 to
regenerate awkgram.c, (just by running make with that bison in my $PATH)
and then run 'make check' I get 22 failures.
'make diffout' compares the results from the run of make check with
the "good" results.
I'm on Ubuntu 12.04, 64 bit, stock gcc (4.6.3, I think).
The gawk parser doesn't take advantage of bison features since I
have not had a need to, and so that it can be run with Unix or BSD
yacc.
HTH,
Thanks,
Arnold
Akim Demaille <address@hidden> wrote:
>
> Le 8 sept. 2014 à 06:08, Aharon Robbins <address@hidden> a écrit :
>
> > Hi.
>
> Hi Aharon,
>
> > We're doing some experimental gawk development, and have found that
> > there is a difference if using bison 2.7 or 3.0.2. If you check out
> > the gawk repository from savannah and checkout the 'comment' branch,
> > then
> >
> > ./boostrap.sh
> > ./configure && make && make check
> >
> > Only a few tests will fail, which we're working on.
> >
> > However, if you remove awkgram.c and use bison 3.0.2 to regenerate
> > it, then run
> >
> > make && make check
> >
> > A larger number of tests fail with errors due to line numbers being
> > off and also a core dump, apparently from a semantic action not
> > getting run, or run correctly.
>
> Do you know what rule is not executed? The parser is hard to
> read, it does not seem to use Bison's location tracking, and
> there are no %printer to assist the debugging.
>
> When I enable the debug traces, all the differences there are
> before 2.7 and 3.0 is:
>
> --- old.log 2014-09-08 12:07:06.000000000 +0200
> +++ new.log 2014-09-08 12:08:03.000000000 +0200
> @@ -1817,4 +1817,4 @@
> Stack now 0 1 2
> Cleanup: popping token $end ()
> Cleanup: popping nterm program ()
> -gawk: test/arrayparm.awk:13: fatal: attempt to use array `i (from foo)' in a
> scalar context
> +gawk: test/arrayparm.awk:7: fatal: attempt to use array `i (from foo)' in a
> scalar context
>
> which is a bit short to try to debug. What test actually
> fails with a SEGV? What did Valgrind report?