Joel E. Denny [Sun, 6 Mar 2011 17:46:27 +0000 (12:46 -0500)]
lr.default-reductions: rename "all" value to "full".
States that shift the error token do not have default reductions,
and GLR disables some default reductions, so "all" was a misnomer.
* doc/bison.texinfo (%define Summary): Update.
(Default Reductions): Update.
* src/print.c (print_reductions): Update.
* src/reader.c (prepare_percent_define_front_end_variables):
Update.
* src/tables.c (action_row): Update.
* tests/input.at (%define enum variables): Update.
* tests/reduce.at (%define lr.default-reductions): Update.
Joel E. Denny [Tue, 22 Feb 2011 00:09:24 +0000 (19:09 -0500)]
doc: create a new Tuning LR section in the manual.
And clean up all other documentation of the features described
there.
* NEWS (2.5): Tweak wording of lr.type and parse.lac entries a
bit, update the cross-references to the manual, and point out that
LAC has caveats. Don't be so adamant that IELR+LAC=canonical LR.
That is, as the referenced section in the manual documents, LAC
does not fix infinite parsing loops on syntax errors.
* doc/bison.texinfo: Consistently drop the "(1)" suffix from LALR,
IELR, and LR in @cindex.
(%define Summary): Condense the entries for lr.default-reductions,
lr.keep-unreachable-states, lr.type, and parse.lac into brief
summaries, and cross-reference the appropriate subsections of
Tuning LR. For parse.lac, mention that it's only implemented for
deterministic parsers in C.
(Error Reporting): When mentioning %error-verbose, mention LAC,
and add cross-reference to the LAC section.
(Tuning LR): New section with an extended version of the
documentation removed from %define Summary. Change all
cross-references in the manual to point here instead of there.
(Calc++ Parser): When mentioning %error-verbose, mention LAC, and
add cross-reference to the LAC section.
(Table of Symbols): In %error-verbose and YYERROR_VERBOSE entries,
add cross-references to Error Reporting.
(Glossary): Capitalize entry titles consistently. Add definitions
for "defaulted state" and "unreachable state". Expand IELR
acronym in IELR's entry.
Joel E. Denny [Sun, 20 Feb 2011 21:58:52 +0000 (16:58 -0500)]
doc: add bibliography to manual.
* doc/bison.texinfo (Mystery Conflicts): Cross-reference
bibliography instead of citing publications directly.
(Generalized LR Parsing): Likewise.
(Bibliography): New section. Not all entries are cross-referenced
yet, but that will come in future patches.
Joel E. Denny [Sun, 20 Feb 2011 00:36:33 +0000 (19:36 -0500)]
java: test and document previous bug fix.
* NEWS (2.5): Document it.
* tests/java.at (_AT_DATA_JAVA_CALC_Y): To one of the yyerror
invocations, pass a location that spans multiple tokens. Change
yyerror to report all of a location rather than just the begin
position. Extend yylex and Position to count tokens on a line.
Remove getHashCode as it's unused. Update all expected output.
Bernd Kiefer [Sun, 20 Feb 2011 00:24:07 +0000 (19:24 -0500)]
java: fix location handling bug.
Reported at
<http://lists.gnu.org/archive/html/bison-patches/2011-02/msg00005.html>.
* data/lalr1.java (YYParser::yylloc): For non-empty RHS, fix
reversed access to location stack.
* THANKS (Bernd Kiefer): Add.
Akim Demaille [Tue, 11 May 2010 19:31:31 +0000 (21:31 +0200)]
doc: please Emacs.
* doc/bison.texinfo (Local Variables): Move this after the
LocalWords, since the latter are looked for in the whole document,
while the former are looked for only at its end.
Require american spell checking.
(cherry picked from commit
e944aaff36c500c8de9537551fe1aa8458b23fe2)
Joel E. Denny [Sun, 6 Feb 2011 19:18:01 +0000 (14:18 -0500)]
doc: clean up new subsections in manual.
* doc/bison.texinfo (%define Summary): Reword so it reads well as
a separate section. For example, add an intro, and move most of
the text outside of the @deffn so it is not indented so far.
(%code Summary): Likewise.
(Table of Symbols): Reword %code entry to match the %code entry in
Decl Summary.
Joel E. Denny [Sun, 6 Feb 2011 17:41:24 +0000 (12:41 -0500)]
doc: finish splitting apart the manual's Decl Summary section.
Suggested by Akim Demaille at
<http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00013.html>.
* doc/bison.texinfo (Decl Summary): Extract most of the %define
entry into...
(%define Summary): ... this new subsection, and update all
cross-references. For readability of the patches, rewriting of
the text so it makes sense as a separate subsection will come in a
later patch. Moreover, the majority of the text describing the
various new LR features should likely move to another new section
somewhere.
Joel E. Denny [Sun, 6 Feb 2011 17:29:56 +0000 (12:29 -0500)]
doc: begin to split apart the manual's Decl Summary section.
Discussed in thread starting at
<http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00013.html>.
* doc/bison.texinfo (Decl Summary): Extract most of the %code
entry into...
(%code Summary): ... this new subsection, and update all
cross-references. For readability of the patches, rewriting of
the text so it makes sense as a separate subsection will come in a
later patch.
Joel E. Denny [Sun, 6 Feb 2011 16:08:27 +0000 (11:08 -0500)]
doc: clean up naming of various Bison files.
The Bison manual's names for various files associated with a Bison
parser has devolved into inconsistency. This patch makes the
naming consistent for the most important files. First, it chooses
"grammar file" over "input file". The former appears to be more
traditional in the Bison manual, and Bison has other input
files (skeletons). Second, it chooses "parser implementation
file" over names like "parser file", "parser source file", "parser
source code file", and "parser output file". The new name makes
it clearer where Bison generates the main parser implementation,
and it is easily distinguishable from "parser header file".
* doc/bison.texinfo: Implement throughout.
Joel E. Denny [Sun, 6 Feb 2011 13:59:05 +0000 (08:59 -0500)]
doc: give credit to more of Bison's developers.
* doc/bison.texinfo (Introduction): Don't imply that only Robert
Corbett, Richard Stallman, and Wilfred Hansen have contributed to
Bison. However, I don't have time to write a full history, so
just point readers to THANKS and ChangeLog.
Joel E. Denny [Sun, 6 Feb 2011 13:52:09 +0000 (08:52 -0500)]
doc: document experimental features better.
* doc/bison.texinfo (Introduction): Say that IELR(1) and canonical
LR(1) are experimental. Mention Java. Normally experimental
features probably shouldn't be mentioned in the introduction.
However, if Bison's limitations to LALR(1), C, and C++ are so
important that they should be mentioned here, then it's important
to point out that Bison is beginning to escape those limitations.
Moreover, these particular experimental features have very little
chance of being removed.
* src/getargs.c (usage): Say that IELR(1) and canonical LR(1) are
experimental.
Joel E. Denny [Sat, 29 Jan 2011 17:54:28 +0000 (12:54 -0500)]
Do not allow identifiers that start with a dash.
This cleans up our previous fixes for a bug whereby Bison
discarded `.field' in `$-1.field'. The previous fixes were less
restrictive about where a dash could appear in an identifier, but
the restrictions were hard to explain. That bug was reported and
this final fix was originally suggested by Paul Hilfinger. This
also fixes a remaining bug reported by Paul Eggert whereby Bison
parses `%token ID -123' as `%token ID - 123' and handles `-' as an
identifier. Now, `-' cannot be an identifier. Discussed in
threads beginning at
<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00000.html>,
<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00004.html>.
* NEWS (2.5): Update entry describing the dash extension to
grammar symbol names. Also, move that entry before the named
references entry because the latter mentions the former.
* doc/bison.texinfo (Symbol): Update documentation for symbol
names. As suggested by Paul Eggert, mention the effect of periods
and dashes on named references.
(Decl Summary): Update documentation for unquoted %define values,
which, as a side effect, can no longer start with dashes either.
* src/scan-code.l (id): Implement.
* src/scan-gram.l (id): Implement.
* tests/actions.at (Exotic Dollars): Extend test group to exercise
bug reported by Paul Hilfinger.
* tests/input.at (Symbols): Update test group, and extend to
exercise bug reported by Paul Eggert.
* tests/named-refs.at (Stray symbols in brackets): Update test
group.
($ or @ followed by . or -): Likewise.
* tests/regression.at (Invalid inputs): Likewise.
(cherry picked from commit
82f3355eaf8d5988391021262dc9acfa6485c098)
Joel E. Denny [Tue, 25 Jan 2011 02:10:41 +0000 (21:10 -0500)]
* data/yacc.c: Fix last apostrophe warning from xgettext.
Paul Eggert [Mon, 10 Jan 2011 01:08:33 +0000 (17:08 -0800)]
Fix minor problems encountered by a fresh bootstrap.
* data/glr.c, data/yacc.c: Do not use apostrophes in '#' comments,
as they confuse xgettext, which tries to parse them as C character
constants in a preprocessor directive.
* data/yacc.c (yy_lac): Don't use printf %d format on *yyesp, as
that expression might not promote to int on some platforms.
* src/parse-gram.c, src/parse-gram.h: Regenerate.
(cherry picked from commit
3c9b20ff5acd1ad1a888a05717bf45b77b623f55)
Conflicts:
data/yacc.c
src/parse-gram.c
src/parse-gram.h
Joel E. Denny [Sun, 9 Jan 2011 23:06:19 +0000 (18:06 -0500)]
Improve error messages for `$' or `@' followed by `.' or `-'.
Previously, for this special case of an invalid reference, the
usual "symbol not found in production:" was printed. However,
because the symbol name was parsed as the empty string, that
message was followed immediately by a newline instead of a symbol
name. In reality, this is a syntax error, so the reference is
invalid regardless of the symbols actually appearing in the
production. Discussed at
<http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00012.html>.
* src/scan-code.l (parse_ref): Report the above case as a syntax
error. Other than that, continue to handle this case like any
other invalid reference that Bison manages to parse because
"possibly meant" messages can still be helpful to the user.
* tests/named-refs.at ($ or @ followed by . or -): New test group.
(cherry picked from commit
5c9efc755e61e47011a71b022ad232e28af67bd0)
Joel E. Denny [Sat, 8 Jan 2011 18:52:05 +0000 (13:52 -0500)]
doc: don't use @acronym.
Lately, many GNU packages are dropping it. See
<http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00003.html>.
* doc/bison.texinfo: Remove all uses.
(cherry picked from commit
8a4281b987577d911e418e8a37aef0c9c7121bf8)
Conflicts:
doc/bison.texinfo
Alex Rozenman [Wed, 5 Jan 2011 13:47:25 +0000 (15:47 +0200)]
Do not allow identifiers that start with a negative number.
Reported by Paul Hilfinger as a side effect of named references
support at
<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00000.html>.
Suggested by Paul Eggert.
* src/scan-code.l ({letter}, {id}): Adjust lexical definitions.
* src/scan-gram.l ({letter}, {id}): Likewise.
Joel E. Denny [Mon, 3 Jan 2011 23:37:56 +0000 (18:37 -0500)]
* ChangeLog (2011-01-02): improve description.
(cherry picked from commit
15fe6bb421f00932e92a1d5bacaf1d4cefa0522d)
Joel E. Denny [Mon, 3 Jan 2011 14:00:09 +0000 (09:00 -0500)]
maint: don't update copyright years in bootstrap.
* .x-update-copyright: Add entry for bootstrap.
* bootstrap: Remove 2011 from copyright years. The bootstrap
version we're currently using comes from an older version of
gnulib.
* bootstrap.conf (bootstrap_sync): Add comments explaining this
issue.
(cherry picked from commit
355bdbdc723fe79beb6a8aeb04b516eac64c3ec8)
Joel E. Denny [Sun, 2 Jan 2011 14:56:16 +0000 (09:56 -0500)]
maint: run "make update-copyright".
Joel E. Denny [Sun, 2 Jan 2011 13:17:44 +0000 (08:17 -0500)]
maint: prepare to use date ranges in copyright notices.
* README (Copyright statements): New section explaining the range
notation. The GNU coding standards require this explanation. I
copied ours from coreutils.
* build-aux/update-b4-copyright: Revert 2010-06-17 changes that
disabled Bison's automated use of ranges.
* cfg.mk (update-copyright-env): Likewise.
(cherry picked from commit
cb3f7f335aa69ba3e6478fea8d4591f4f6d43bc5)
Joel E. Denny [Sun, 2 Jan 2011 13:59:40 +0000 (08:59 -0500)]
Correct my email address.
* ChangeLog: In all recent entries.
* THANKS (Joel E. Denny): Here.
(cherry picked from commit
1eb6350451be28c3bec08b21711eb6b1cdd6143f)
Conflicts:
ChangeLog
Joel E. Denny [Mon, 20 Dec 2010 03:15:57 +0000 (22:15 -0500)]
doc: cleanup.
* NEWS (2.5): Try to sort entries according to how interesting
users might find them.
(cherry picked from commit
d397d9f08cc963c5b90ce62549498b82bf499cc1)
Joel E. Denny [Mon, 20 Dec 2010 03:14:08 +0000 (22:14 -0500)]
doc: cleanup.
* NEWS (2.5): Make some minor improvements to wording, and format
entries more consistently.
* doc/bison.texinfo (Language and Grammar): Point out that IELR
and canonical LR are experimental features.
(Decl Summary): In list of %define variables, make wording more
consistent. Improve discussion of using LALR for GLR.
(cherry picked from commit
f1b238df182101b9c9d3808bf2d5e2333e27c50f)
Conflicts:
doc/bison.texinfo
Joel E. Denny [Mon, 20 Dec 2010 03:12:32 +0000 (22:12 -0500)]
parse.lac: document.
* NEWS (2.5): Add entry for LAC, and mention LAC in entry for
other corrections to verbose syntax error messages.
* doc/bison.texinfo (Decl Summary): Rewrite entries for
lr.default-reductions and lr.type to be clearer, to mention
%nonassoc's effect on canonical LR, and to mention LAC. Add entry
for parse.lac.
(Glossary): Add entry for LAC.
(cherry picked from commit
fcf834f9ecf080784b741782f4206df1e1a2957a)
Conflicts:
doc/bison.texinfo
Joel E. Denny [Sat, 11 Dec 2010 18:17:13 +0000 (13:17 -0500)]
parse.lac: implement exploratory stack reallocations.
* data/yacc.c: Rename %define variable parse.lac.es-capacity to
parse.lac.es-capacity-initial. Accept parse.lac.memory-trace
with values of "failures" (default) or "full".
(b4_declare_parser_state_variables): Add yyesa, yyes, and
yyes_capacity variables.
(YYSTACK_USE_ALLOCA): Ignore it if LAC requested.
(YYSTACK_ALLOC, YYSTACK_FREE, YYSTACK_ALLOC_MAXIMUM): Define if
LAC requested.
(YYCOPY_NEEDED): New cpp macro.
(YYCOPY): Define if LAC requested.
(yy_lac_stack_realloc): New function implementing stack
reallocations. Use YYMAXDEPTH for maximum stack size given that
the stack should never need to grow larger than the main state
stack needs to grow without LAC.
(YY_LAC_ESTABLISH): Update yy_lac invocation.
(yy_lac): Add arguments for exploratory stack memory data
recorded in the main parser. Invoke yy_lac_stack_realloc when
reallocation is necessary.
(yysyntax_error): Add the same new arguments and pass them to
yy_lac.
(yypstate_delete): Free yyes if necessary.
(yyesa, yyes, yyes_capacity): #define these to yypstate members
in the case of push parsing.
(yyparse, yypush_parse): Initialize yyes and yyes_capacity.
Update yysyntax_error invocations. At yyreturn, free yyes if
necessary.
* src/parse-gram.y: %define parse.lac full.
* tests/input.at (LAC: errors for %define): Extend for
parse.lac-memory-trace.
* tests/regression.at (LAC: Exploratory stack): Extend to check
that stack reallocs happen when expected.
(LAC: Memory exhaustion): Update to use YYMAXDEPTH and
parse.lac.es-capacity-initial.
(cherry picked from commit
107844a3eea478e1d61551e47a88ed73374724c9)
Conflicts:
src/parse-gram.c
src/parse-gram.h
src/parse-gram.y
Joel E. Denny [Sat, 11 Dec 2010 16:13:33 +0000 (11:13 -0500)]
parse.lac: implement as %define variable.
LAC = lookahead correction. See discussion at
<http://lists.gnu.org/archive/html/bison-patches/2009-09/msg00034.html>.
However, one point there must be corrected: because of %nonassoc,
LAC is *not* always redundant for lr.type=canonical-lr.
* data/yacc.c: Accept values of "none" (default) or "full" for
parse.lac. Accept %define parse.lac.es-capacity to specify
capacity of LAC's temporary exploratory stack. It defaults to 20
and, for now, will not grow dynamically.
(b4_lac_flag, b4_lac_if): New m4 macros. Evaluate as true for
parse.lac!=none.
(YYBACKUP): Invoke YY_LAC_DISCARD.
(YY_LAC_ESTABLISH, YY_LAC_DISCARD): New cpp macros that invoke
yy_lac and track when it needs to be invoked
(yy_lac): New function that, given the current stack, determines
whether a token can eventually be shifted. Return status mimics
yyparse return status.
(yysyntax_error): Change yystate argument to yyssp so stack top
can be passed to yy_lac. If LAC is requested, build expected
token list by invoking yy_lac for every token instead of just
checking the current state for lookaheads. Return 2 if yy_lac
exhausts memory.
(yyparse, yypush_parse): Use local variable yy_lac_established and
cpp macros YY_LAC_ESTABLISH and YY_LAC_DISCARD to implement LAC.
Update yysyntax_error invocation. Add yyexhaustedlab code if LAC
is requested.
* tests/conflicts.at (%nonassoc and eof): Extend to check the
effect of each of -Dlr.type=canonical-lr and -Dparse.lac=full.
(%error-verbose and consistent errors): Likewise.
(LAC: %nonassoc requires splitting canonical LR states): New test
group demonstrating how LAC can fix canonical LR.
* tests/input.at (LAC: Errors for %define): New test group.
* tests/regression.at (LAC: Exploratory stack): New test group.
(LAC: Memory exhaustion): New test group.
(cherry picked from commit
bf35c71c5827d735c125ee25b048eabf40960a55)
Conflicts:
src/parse-gram.c
src/parse-gram.h
Joel E. Denny [Sun, 21 Nov 2010 15:07:13 +0000 (10:07 -0500)]
build: use gnulib's new bootstrap_sync option.
Now, whenever we update bison's copy of gnulib, bootstrap will
update itself the next time it's run.
* bootstrap: Copy from latest gnulib for bootstrap_sync support.
* bootstrap.conf (bootstrap_sync): Set to true.
* gnulib: Update to latest so bootstrap is in sync now.
(cherry picked from commit
10bae98af27edbb84a06d82a20a63ad7a0cca688)
Joel E. Denny [Sun, 7 Nov 2010 21:10:09 +0000 (16:10 -0500)]
yysyntax_error: adjust prior fixes for branch-2.5's lalr1.cc.
On master, there is no yychar in lalr1.cc, but there is on
branch-2.5, and the prior cherry-pick of "Fix handling of yychar
manipulation in user semantic actions" wasn't adjusted for that
difference.
* data/lalr1.cc (yy::parser::parse): Translate yychar before
every use of yytoken, and add comments explaining this approach.
* tests/conflicts.at (%error-verbose and consistent errors):
Extend to test yychar manipulation with lalr1.cc.
Joel E. Denny [Sun, 7 Nov 2010 21:01:56 +0000 (16:01 -0500)]
yysyntax_error: fix for consistent error with lookahead.
* NEWS (2.5): Document.
* data/yacc.c (yysyntax_error): In a verbose syntax error
message while in a consistent state with a default action (which
must be an error action given that yysyntax_error is being
invoked), continue to drop the expected token list, but don't
drop the unexpected token unless there actually is no lookahead.
Moreover, handle that internally instead of returning 1 to tell
the caller to do it. With that meaning of 1 gone, renumber
return codes more usefully.
(yyparse, yypush_parse): Update yysyntax_error usage. Most
importantly, set yytoken to YYEMPTY when there's no lookahead.
* data/glr.c (yyreportSyntaxError): As in yacc.c, don't drop the
unexpected token unless there actually is no lookahead.
* data/lalr1.cc (yy::parser::parse): If there's no lookahead,
set yytoken to yyempty_ before invoking yysyntax_error_.
(yy::parser::yysyntax_error_): Again, don't drop the unexpected
token unless there actually is no lookahead.
* data/lalr1.java (YYParser::parse): If there's no lookahead,
set yytoken to yyempty_ before invoking yysyntax_error.
(YYParser::yysyntax_error): Again, don't drop the unexpected
token unless there actually is no lookahead.
* tests/conflicts.at (%error-verbose and consistent
errors): Extend test group to further reveal how the previous
use of the simple "syntax error" message was too general. Test
yacc.c, glr.c, lalr1.cc, and lalr1.java. No longer an expected
failure.
* tests/java.at (AT_JAVA_COMPILE, AT_JAVA_PARSER_CHECK): Move
to...
* tests/local.at: ... here.
(_AT_BISON_OPTION_PUSHDEFS): Push AT_SKEL_JAVA_IF definition.
(AT_BISON_OPTION_POPDEFS): Pop it.
(AT_FULL_COMPILE): Extend to handle Java.
(cherry picked from commit
d2060f0634f4adfb5db74cce540a9d27806091fe)
Conflicts:
data/lalr1.cc
data/lalr1.java
src/parse-gram.c
src/parse-gram.h
tests/java.at
Joel E. Denny [Sun, 7 Nov 2010 14:45:18 +0000 (09:45 -0500)]
yysyntax_error: more preparation for readability of next patch.
There are no behavioral changes here.
* data/glr.c (yyreportSyntaxError): Reorganize.
* data/lalr1.cc (yy::parser::yysyntax_error_): Reorganize.
* tests/conflicts.at (%error-verbose and consistent errors):
Reorganize.
(cherry picked from commit
25a648d8a6a00bb810844e375d0d15125ed7eaf8)
Conflicts:
tests/conflicts.at
Joel E. Denny [Sun, 7 Nov 2010 14:44:07 +0000 (09:44 -0500)]
yysyntax_error: prepare for readability of next patches.
These are purely whitespace changes that result in ugly code
but that make the next couple of patches much easier to read.
* data/glr.c (yyreportSyntaxError): Reindent.
* data/lalr1.cc (yy::parser::yysyntax_error_): Reindent.
* data/lalr1.java (YYParser::yysyntax_error): Reindent.
* data/yacc.c (yysyntax_error): Reindent.
(cherry picked from commit
b4bbc4a03c6f4799a4442c912b71a28c3a986e54)
Conflicts:
src/parse-gram.c
src/parse-gram.h
Joel E. Denny [Sun, 31 Oct 2010 22:56:34 +0000 (18:56 -0400)]
yysyntax_error: improve invocation readability.
* data/yacc.c (yyparse, yypush_parse): For yysyntax_error
invocation, get rid of the while loop, which is misleading
because there are really at most two iterations.
(cherry picked from commit
34db451c379888fa593268b65518ad191bef21f5)
Joel E. Denny [Sun, 31 Oct 2010 22:23:12 +0000 (18:23 -0400)]
* ChangeLog: Correct some errors in previous entries.
Joel E. Denny [Sun, 17 Oct 2010 14:18:26 +0000 (10:18 -0400)]
maint: re-anchor all .gitignore entries.
* bootstrap: Copy from gnulib's latest for the fix to
automatically anchor entries it constructs.
* gnulib: Update to latest just so it has the same bootstrap.
* .gitignore, build-aux/.gitignore, doc/.gitignore:
* lib/.gitignore, m4/.gitignore, po/.gitignore:
* runtime-po/.gitignore: Re-anchor all entries.
(cherry picked from commit
e503b9cbbebde5e0ecccdcc864969b9a609b940d)
Conflicts:
build-aux/.gitignore
doc/.gitignore
src/.gitignore
Paul Eggert [Fri, 8 Oct 2010 19:12:48 +0000 (12:12 -0700)]
Fix portability problem on OpenBSD 4.7.
Jim Meyering reported this in
<http://lists.gnu.org/archive/html/bug-bison/2010-10/msg00007.html>.
* data/yacc.c: Use EXIT_SUCCESS as a witness for stdlib.h,
not _STDLIB_H. EXIT_SUCCESS has been defined by the standard
for quite some time.
* src/parse-gram.c, src/parse-gram.h: Regenerate.
* tests/regression.at: Tamper with the renamed witness.
(cherry picked from commit
8ff146cd31d887f9bb28ec5f96bffcad4b4057f7)
Conflicts:
ChangeLog
src/parse-gram.c
src/parse-gram.h
Paul Eggert [Fri, 8 Oct 2010 18:10:06 +0000 (11:10 -0700)]
Adjust to recent changes to gnulib bootstrap.
* .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore:
* examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore:
* po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore:
* tests/.cvsignore: Remove; I don't use CVS to maintain Bison
anymore and don't know of anybody else who does. If someone needs
these files, they can resurrect them.
* .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore:
* m4/.gitignore, po/.gitignore, runtime-po/.gitignore:
Omit leading '/', since bootstrap omits it.
Adjust file names to match current contents better.
* bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook
installed just for us.
* bootstrap.conf (excluded_files): Don't exclude codeset.m4,
glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now
needed somehow. Don't have time to look into why.
(gnulib_modules): Change malloc to malloc-gnu. Do we really assume
the GNU malloc behavior, where malloc (0) != NULL unless we're
out of storage? If not, we can omit malloc-gnu; but for now I left
it in to be safe.
(vc_ignore): Remove.
* README-hacking: Renamed from HACKING, since gnulib bootstrap now
uses that convention.
(cherry picked from commit
95aed8db15a0bb0f7819bf77586d0cf6812ffdfd)
Conflicts:
bootstrap
build-aux/.cvsignore
build-aux/.gitignore
doc/.cvsignore
doc/.gitignore
etc/.cvsignore
m4/.cvsignore
m4/.gitignore
src/.cvsignore
src/.gitignore
tests/.cvsignore
Paul Eggert [Fri, 8 Oct 2010 18:03:04 +0000 (11:03 -0700)]
Sync from upstream gnulib and autoconf.
(cherry picked from commit
771a7fb869219992c78dfd4ee651da07fb937323)
Joel E. Denny [Fri, 6 Aug 2010 00:56:44 +0000 (20:56 -0400)]
Version 2.4.3.
* NEWS (2.4.3): Set date.
(cherry picked from commit
06d61f775a47b9ae42c84872090cdbaf7204aef7)
Conflicts:
NEWS
Joel E. Denny [Thu, 5 Aug 2010 01:15:59 +0000 (21:15 -0400)]
maint: add gettext version to release announcements.
Suggested by Paul Hilfinger at
<http://lists.gnu.org/archive/html/bison-patches/2010-07/msg00019.html>
<http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00002.html>.
* cfg.mk (bootstrap-tools): Add gettext.
(cherry picked from commit
b3b18068885986d25ec2c8f76a7d2b971194598a)
Joel E. Denny [Thu, 5 Aug 2010 00:17:40 +0000 (20:17 -0400)]
doc: fix -W and %expect documentation some.
* NEWS (2.4.3): Mention that there are documentation fixes.
* doc/bison.texinfo (Expect Decl): Make it clear that %expect
turns conflicts into errors not warnings.
(Shift/Reduce): Likewise.
(Bison Options): Don't mention -Wsyntax. It doesn't exist.
(cherry picked from commit
3ffdd5f1254fd9403a5a1d31dbdc5b2756c22775)
Joel E. Denny [Sun, 1 Aug 2010 22:51:46 +0000 (18:51 -0400)]
-Werror: fix for rules useless in parser after conflicts.
* NEWS (2.4.3): Document fix.
* src/complain.c (error_message): Extend to handle incomplete
error messages so warn and warn_at can be used in more cases.
* src/gram.c (grammar_rules_useless_report): Use warn_at so that
-Werror is always obeyed.
* src/reduce.c (reduce_print): Use warn so that the "warnings
being treated as errors" message is printed consistently before
the first warning message. This makes testing easier.
* tests/local.at (AT_BISON_WERROR_MSG): New macro.
(AT_BISON_CHECK_NO_XML): Extend to check -Werror and
--warnings=error when warnings appear in bison's stderr.
(cherry picked from commit
954474bfa1a875eeefe9aa1989d9c7be6f64726b)
Joel E. Denny [Fri, 30 Jul 2010 02:05:09 +0000 (22:05 -0400)]
maint: enable gnits only at stable releases.
* configure.ac (AM_INIT_AUTOMAKE): Underscore or dash in a
version string should disable gnits. Explain in comments.
(cherry picked from commit
122ff4442985540837fae4b4c904c7018a1a3d38)
Conflicts:
configure.ac
Joel E. Denny [Thu, 29 Jul 2010 01:59:34 +0000 (21:59 -0400)]
i18n: update.
* po/POTFILES.in: Add src/graphviz.c.
Joel E. Denny [Thu, 29 Jul 2010 01:46:07 +0000 (21:46 -0400)]
i18n: fix for gnulib.
* po/POTFILES.in: Add remaining gnulib files that have
translatable strings.
(cherry picked from commit
4b07bd01d81cca58fb8e0ca86ea40669895fd90c)
Joel E. Denny [Sun, 25 Jul 2010 19:53:18 +0000 (15:53 -0400)]
maint: use announce-gen's new --mail-headers.
* HACKING (Announce): Update instructions.
* cfg.mk (announcement_Cc_): Define.
* configure.ac (AM_GNU_GETTEXT_VERSION): Update to 0.18 as
required by latest gnulib.
* gnulib: Update to latest.
(cherry picked from commit
e5655564583f2f704dd85d6f602f5fcd86f87467)
Joel E. Denny [Sat, 24 Jul 2010 20:30:07 +0000 (16:30 -0400)]
tests: handle Valgrind that complains about >&-.
* tests/output.at (AT_CHECK_OUTPUT): Extend to accept pre-tests.
(Output files: -dv >&-): Skip test group if running
maintainer-check-valgrind.
(cherry picked from commit
c027cccb351b7b553f92a827787fa91d28934e5c)
Paul Eggert [Wed, 23 Jun 2010 20:07:29 +0000 (13:07 -0700)]
Do not use date ranges in copyright notices.
See http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices
* HACKING, Makefile.am, NEWS, PACKAGING, README, README-alpha:
* TODO, bootstrap, bootstrap.conf:
* build-aux/update-b4-copyright, cfg.mk, configure.ac:
* data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4:
* data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc:
* data/java-skel.m4, data/java.m4, data/lalr1.cc:
* data/lalr1.java, data/location.cc:
* data/xslt/bison.xsl:
* data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl:
* data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint:
* djgpp/README.in, djgpp/config.bat, djgpp/config.sed:
* djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat:
* djgpp/subpipe.c, djgpp/subpipe.h:
* djgpp/testsuite.sed, doc/bison.texinfo:
* doc/refcard.tex, etc/README, etc/bench.pl.in:
* examples/calc++/Makefile.am, examples/extexi:
* lib/abitset.c, lib/abitset.h:
* lib/bbitset.h, lib/bitset.c, lib/bitset.h:
* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
* lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
* lib/libiberty.h, lib/main.c, lib/timevar.c:
* lib/timevar.def, lib/timevar.h, lib/vbitset.c:
* lib/vbitset.h, lib/yyerror.c, m4/bison-i18n.m4:
* m4/c-working.m4, m4/cxx.m4, m4/subpipe.m4, m4/timevar.m4:
* src/AnnotationList.c, src/AnnotationList.h:
* src/InadequacyList.c, src/InadequacyList.h, src/LR0.c:
* src/LR0.h, src/Sbitset.c, src/Sbitset.h, src/assoc.c:
* src/assoc.h, src/closure.c, src/closure.h, src/complain.c:
* src/complain.h, src/conflicts.c, src/conflicts.h:
* src/derives.c, src/derives.h, src/files.c, src/files.h:
* src/flex-scanner.h, src/getargs.c, src/getargs.h:
* src/gram.c, src/gram.h, src/graphviz.c, src/ielr.c:
* src/ielr.h, src/lalr.c, src/lalr.h:
* src/location.c, src/location.h, src/main.c:
* src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c:
* src/named-ref.h, src/nullable.c, src/nullable.h:
* src/output.c, src/output.h, src/parse-gram.y:
* src/print-xml.c, src/print-xml.h, src/print.c, src/print.h:
* src/print_graph.c, src/print_graph.h, src/reader.c:
* src/reader.h, src/reduce.c, src/reduce.h, src/relation.c:
* src/relation.h, src/scan-code.h, src/scan-code.l:
* src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
* tests/actions.at, tests/atlocal.in, tests/c++.at:
* tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
* tests/existing.at, tests/glr-regression.at:
* tests/headers.at, tests/input.at, tests/java.at:
* tests/local.at, tests/named-refs.at:
* tests/output.at, tests/push.at, tests/reduce.at:
* tests/regression.at, tests/sets.at, tests/skeletons.at:
* tests/synclines.at, tests/testsuite.at, tests/torture.at:
* data/Makefile.am, data/location.cc, doc/Makefile.am, src/Makefile.am:
* tests/Makefile.am, lib/Makefile.am, examples/Makefile.am:
* etc/Makefile.am:
Don't use date ranges in copyright notices.
Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010 Free Software Foundation, Inc.
Akim Demaille [Wed, 23 Jun 2010 12:49:40 +0000 (14:49 +0200)]
Update from GFDL GFDL 1.2 to 1.3.
* doc/bison.texinfo: Update GFDL version number.
* doc/fdl.texi: Update to version 1.3, taken from:
http://www.gnu.org/licenses/fdl.texi
(cherry picked from commit
804e83b26daa5c1c2cd84195faf114cc531b876b)
Conflicts:
ChangeLog
Akim Demaille [Wed, 12 May 2010 09:12:24 +0000 (11:12 +0200)]
lalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.
* data/lalr1.cc (YYLLOC_DEFAULT): Move its definition from the
header file to the implementation file, after the user %code
sections.
* NEWS: Document it.
Conflicts:
ChangeLog
data/lalr1.cc
Akim Demaille [Wed, 12 May 2010 05:27:13 +0000 (07:27 +0200)]
c++: use YYRHSLOC.
* data/lalr1.cc (YYRHSLOC): New.
(YYLLOC_DEFAULT): Use it.
* data/glr.cc: If location_type was user defined, do not include
location.hh, and do not produce location.hh and position.hh.
* tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC.
Check that glr.cc supports user defined location_type.
* NEWS: Document this.
(cherry picked from commit
bb9191dd311e4c6d80f8dd12c6a7ce9254404fbc)
Conflicts:
ChangeLog
NEWS
data/lalr1.cc
tests/calc.at
Akim Demaille [Mon, 10 May 2010 08:27:23 +0000 (10:27 +0200)]
doc: fix lalr1.cc documentation.
* doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature.
(C++ Bison Interface): Fix lalr1.cc skeleton name.
(C++ Parser Interface): Fix semantic_type and location_type names.
Document yy::parser::token.
Reported by Jerry Quinn.
(cherry picked from commit
0100cd629d91e3e799b9feb7182965ff348ba61c)
Conflicts:
doc/bison.texinfo
Akim Demaille [Sun, 9 May 2010 12:29:35 +0000 (14:29 +0200)]
lalr1.cc: don't generate location.hh when location_type is defined
* data/bison.m4 (b4_percent_define_use): New.
(b4_percent_define_get): Use it.
Accept a default value.
* data/c++.m4: Do not provide a default value for the %define
variable location_type, rather, use b4_percent_define_get with a
default argument where its value is needed.
* data/lalr1.cc: Do not load location.cc (which outputs both
location.hh and position.hh) if the user defined location_type.
Do not include location.hh either.
* data/glr.cc: Likewise.
(cherry picked from commit
7789b6e3e7199a00437f03591a4605e6c042bdea)
Conflicts:
ChangeLog
data/bison.m4
data/c++.m4
data/lalr1.cc
Akim Demaille [Fri, 7 May 2010 20:53:15 +0000 (22:53 +0200)]
Akim Demaille [Wed, 14 Apr 2010 14:37:54 +0000 (16:37 +0200)]
lalr1.cc: location_type: make sure we don't depend on loc.(begin|end).
* tests/calc.at (Span): Instead of begin/end, as in the built-in
location class, use first and last.
Define YYLLOC_DEFAULT to adjust to these changes.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the
location_type changes.
(cherry picked from commit
c826013fb38c98861ef0fc5d4dc3fb3fb4f555be)
Conflicts:
tests/calc.at
Akim Demaille [Wed, 14 Apr 2010 14:40:18 +0000 (16:40 +0200)]
tests: enhance AT_SYNCLINES_COMPILE.
* tests/synclines.at (AT_TEST_SYNCLINE): Move GCC 4.5 protection
into...
(AT_SYNCLINES_COMPILE): here.
Add more distcc patterns.
(cherry picked from commit
c826013fb38c98861ef0fc5d4dc3fb3fb4f555be)
Conflicts:
tests/synclines.at
Joel E. Denny [Fri, 30 Apr 2010 23:50:52 +0000 (19:50 -0400)]
tests: fix maintainer-xml-check.
* data/xslt/xml2dot.xsl (xsl:template match="bison-xml-report"):
Update output to include comments now produced by --graph.
(xsl:template match="automaton"): As for --graph, name the
digraph after the grammar file.
* src/print-xml.c (escape_bufs): Enlarge array.
(print_xml): Add bug-report and url attributes to
bison-xml-report element.
(cherry picked from commit
bc81de36b7ef78ff280e14a173e5cc5d5a3191eb)
Joel E. Denny [Fri, 30 Apr 2010 23:50:34 +0000 (19:50 -0400)]
In DOT output, convert from "/*" comments to "//" comments.
This handles the possibility that a "*/" might appear in
variable portions of those comments at some point in the future.
* src/graphviz.c (start_graph): Implement.
(cherry picked from commit
b7666378f5cb5e9587d3c918f0cdcaf6f8aca5c7)
Joel E. Denny [Sat, 1 May 2010 18:47:49 +0000 (14:47 -0400)]
* ChangeLog (2010-04-30): Fix typo.
(cherry picked from commit
56e92e0bffe6f7d3d6ecb0506280529b0a2fa7bf)
Joel E. Denny [Fri, 30 Apr 2010 19:29:23 +0000 (15:29 -0400)]
Document that undefined %prec identifier warnings will remain.
* NEWS (2.4.3): Here.
(2.4.2): Here.
(cherry picked from commit
ff1f7871df81d5183eafeff380104da7a4a94749)
Joel E. Denny [Fri, 30 Apr 2010 18:41:07 +0000 (14:41 -0400)]
Revert 2009-12-30 change for undefined %prec token complaints.
That is, keep them as warnings because that should be sufficient
to satisfy POSIX without creating backward compatibility issues.
Suggested by Richard Stallman at
<http://lists.gnu.org/archive/html/bison-patches/2010-03/msg00033.html>.
* NEWS (2.5): Remove mention of complaint.
* src/reader.c (grammar_rule_check): Convert warning back to
complaint.
* tests/input.at (%prec's token must be defined): Update.
(cherry picked from commit
02354690ee02dfa05564137aafc6721eb54d21ab)
Joel E. Denny [Sun, 25 Apr 2010 21:44:43 +0000 (17:44 -0400)]
build: don't require src/bison during bootstrap.
Suggested by Eric Blake at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00003.html>.
* bootstrap.conf (bootstrap_epilogue): New function to make sure
src/parse-gram.[ch] are stamped later than src/parse-gram.y.
(cherry picked from commit
b733bcd00e6fc8db45c86dc289938a28c1bf72d8)
Joel E. Denny [Sun, 25 Apr 2010 21:05:18 +0000 (17:05 -0400)]
i18n: fix untranslatable string.
Reported by Goran Uddeborg at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00000.html>.
* src/muscle-tab.c (muscle_percent_define_insert): Here.
Akim Demaille [Tue, 13 Apr 2010 21:09:14 +0000 (23:09 +0200)]
tests: calc: minor refactoring.
* tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex.
(cherry picked from commit
67f1a2c254e71e15125a1f4f64fae8f68deaa4fd)
Akim Demaille [Tue, 13 Apr 2010 21:04:03 +0000 (23:04 +0200)]
tests: calc: simplify location management.
* tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New.
(_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to
define the appropriate AT_LOC accessors.
* tests/calc.at: Use AT_LOC accessors.
(cherry picked from commit
4f756f887bca79b6feeeeedc821b17fd08079e5b)
Conflicts:
tests/local.at
Akim Demaille [Tue, 13 Apr 2010 20:05:42 +0000 (22:05 +0200)]
test location_type.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS):
Define AT_LOCATION_TYPE_IF.
(_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF.
* tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is
used, provide a user location type and use it.
(Simple LALR1 C++ Calculator): Add a test case for location_type.
(cherry picked from commit
24bb8c8c257631f988941fcd78ecce09bc5d5f23)
Conflicts:
tests/calc.at
Akim Demaille [Sat, 10 Apr 2010 11:38:37 +0000 (13:38 +0200)]
tests: check fclose's return value.
* tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status.
(cherry picked from commit
af129079f04cc53129c9056af3ed3e3ae30fd10a)
Akim Demaille [Sat, 10 Apr 2010 11:37:21 +0000 (13:37 +0200)]
tests: don't depend on the actual location type.
* tests/calc.at: Use yy::parser::location_type rather than
yy::location, since the former is always right, and might point to
another type than the latter.
(cherry picked from commit
36dc3637a40459dbf1043f6ada9badbbba291957)
Conflicts:
tests/calc.at
Akim Demaille [Sat, 10 Apr 2010 11:35:59 +0000 (13:35 +0200)]
formatting changes.
* tests/calc.at: Formatting changes.
(cherry picked from commit
c499231de45a4a30aadbc17db4ceafd74c44b9c4)
Akim Demaille [Wed, 7 Apr 2010 14:01:42 +0000 (16:01 +0200)]
lalr1.cc: remove useless forward declaration.
* data/lalr1.cc: Include location.hh before stack.hh.
Remove the useless forward declarations of position and location.
Reported by Chris Morley.
* data/glr.cc: Likewise.
(cherry picked from commit
7799ef159452772946d91aa89213e87729288ef0)
Conflicts:
data/lalr1.cc.
Joel E. Denny [Sun, 11 Apr 2010 18:43:38 +0000 (14:43 -0400)]
* NEWS (2.4.3): Mention fix for Sun Studio C++.
(cherry picked from commit
cb76b1f1a343642c46bbfa2c4a99ae537b22bd9f)
Joel E. Denny [Sat, 10 Apr 2010 21:37:27 +0000 (17:37 -0400)]
tests: fix for newer Sun Studio C++.
Reported by Dagobert Michelsen at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00023.html>.
* THANKS (Dagobert Michelsen): Add.
* configure.ac (AC_PREREQ): Set to 2.64 so we get the latest
Autoconf macro for handling the restrict keyword.
* gnulib: Update to latest, which no longer overrides that macro
from Autoconf.
(cherry picked from commit
4333ba11c65f428040d54820b6d4c6aa663944d2)
Joel E. Denny [Sat, 3 Apr 2010 18:58:22 +0000 (14:58 -0400)]
portability: fix pointer arithmetic to conform to C standard.
Reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00035.html>.
This fix is already implemented in glr.c and does not apply to
lalr1.java.
* data/lalr1.cc (yy::parser::parse): Increase size of
yyerror_range and adjust subscripting so you don't have to
subtract one from the beginning of the array.
* data/yacc.c (b4_declare_parser_state_variables,
yyparse, yypush_parse): Likewise.
(cherry picked from commit
48f4100a8299918a3abc9c5d29db85319cad3cee)
Conflicts:
data/yacc.c
src/parse-gram.c
src/parse-gram.h
Akim Demaille [Tue, 30 Mar 2010 12:55:41 +0000 (14:55 +0200)]
remove useless include.
* src/graphviz.h: Don't include stdbool.h.
(cherry picked from commit
218287f5676ea3d4b1b44c3c43da831170c0fe2a)
Akim Demaille [Mon, 5 Apr 2010 19:30:36 +0000 (21:30 +0200)]
graph: sign the output file.
* src/graphviz.c (start_graph): Issue comments about Bison.
Suggested by Tys Lefering.
(cherry picked from commit
8176ab33c83a8f393fb9a55b4ba28a8f5dc526c8)
Joel E. Denny [Wed, 31 Mar 2010 16:46:53 +0000 (12:46 -0400)]
portability: fix test suite for GCC 4.5's new #error message.
Reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00030.html>.
* NEWS (2.4.3): Mention.
* tests/synclines.at (AT_TEST_SYNCLINE): Implement.
(cherry picked from commit
18493762be5ddaaa64c9e498dad11afd6b0e82f6)
Akim Demaille [Tue, 30 Mar 2010 12:33:58 +0000 (14:33 +0200)]
fix comments.
* src/graphviz.h: Add missing license notice.
Document.
(cherry picked from commit
c7b5c7fd0647140e557fc66ec1f5d7a2fa615e9a)
Akim Demaille [Thu, 25 Mar 2010 16:02:38 +0000 (17:02 +0100)]
tests: fix 250: parse.error=verbose overflow.
* tests/regression.at (parse.error=verbose overflow): Avoid the
double inclusion of stdlib.h as it triggers hard errors.
(cherry picked from commit
d6b347e43324926f750b22709e2c5262f60fa991)
Joel E. Denny [Wed, 24 Mar 2010 00:21:59 +0000 (20:21 -0400)]
portability: fix for BSD make.
Reported by Johan van Selst at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00016.html>.
* tests/Makefile.am ($(TESTSUITE)): Qualify package.m4 in
this dependency list as in package.m4's target rule.
(cherry picked from commit
cf80e9c3868b4a6a9caf53c3b281ee089deffc86)
Joel E. Denny [Tue, 23 Mar 2010 15:07:46 +0000 (11:07 -0400)]
portability: fix spawning on at least FreeBSD 8 and FreeBSD 9.
Reported by Johan van Selst at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00014.html>.
* NEWS (2.4.3): New.
* THANKS (Johan van Selst): Add.
* gnulib: Update to latest.
(cherry picked from commit
311b2e56eaad952fc7908336e3aeb019dd8bf1ee)
Conflicts:
NEWS
Joel E. Denny [Sat, 20 Mar 2010 19:41:34 +0000 (15:41 -0400)]
maint: update for changes to gnulib's announce-gen.
* HACKING (Announce): RELEASE_TYPE=major must now be written
RELEASE_TYPE=stable.
Joel E. Denny [Sat, 20 Mar 2010 17:10:09 +0000 (13:10 -0400)]
Version 2.4.2.
* NEWS (2.4.2): Set version and date. For the recent test suite
portability fixes, don't be so optimistic about their success
given the lack of feedback on the affected platforms.
(cherry picked from commit
08090fe64c2956a4211fb5f6fd40762fe1f198b5)
Conflicts:
NEWS
Joel E. Denny [Tue, 23 Feb 2010 02:52:39 +0000 (21:52 -0500)]
tests: fix maintainer-xml-check for recent changes.
* tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Use
AT_BISON_CHECK_NO_XML rather than AT_BISON_CHECK because an
output file whose name conflicts with a previous output file
is now never generated.
(cherry picked from commit
a3d760ef5d7d9bcab78268f5117c39566aa0345c)
Joel E. Denny [Mon, 22 Feb 2010 23:09:19 +0000 (18:09 -0500)]
portability: fix several issues with M4 subprocess.
M4's output pipe was not being drained upon fatal errors during
scan_skel. As a result, broken-pipe messages from M4 were seen
on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a
failure in the test suite. The problem was that, on platforms
where the default disposition for SIGPIPE is ignore instead of
terminate, M4 sometimes saw fwrite fail with errno=EPIPE and
then reported it. However, there's some sort of race condition,
because the new test group occasionally succeeded.
Reported by Albert Chin at
<http://lists.gnu.org/archive/html/bug-bison/2010-02/msg00004.html>.
There were also problems with the test suite livelocking on
Tru64 5.1b. Reported by Didier Godefroy at
<http://lists.gnu.org/archive/html/bug-bison/2009-05/msg00005.html>.
Switching to create_pipe_bidi suggested by Akim Demaille.
To attempt to solve both of these problems, switch to gnulib's
create_pipe_bidi and register M4 process as a slave. Along the
way, clean up file name conflict handling, which was affected by
the broken-pipe problem before the switch.
* NEWS (2.4.2): Document.
* THANKS (Didier Godefroy): Add.
* bootstrap.conf (gnulib_modules): Add pipe.
* gnulib: Update to latest to make sure we have all the latest
fixes.
* lib/Makefile.am (libbison_a_SOURCES): Remove subpipe.h and
subpipe.c.
* po/POTFILES.in (lib/subpipe.c): Remove.
* src/files.c (compute_output_file_names): Update invocations
of output_file_name_check.
(output_file_name_check): In the case that the grammar file
would be overwritten, use complain instead of fatal, but replace
the output file name with /dev/null. Use the /dev/null solution
for the case of two conflicting output files as well because it
seems safer in case Bison one day tries to open both files at
the same time.
* src/files.h (output_file_name_check): Update prototype.
* src/output.c (output_skeleton): Use create_pipe_bidi and
wait_subprocess. Assert that scan_skel completely drains the
pipe.
* src/scan-skel.l (at_directive_perform): Update
output_file_name_check invocation.
* tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Check that the
grammar file actually isn't overwritten.
(Conflicting output files: -o foo.y): Update expected output.
* tests/skeletons.at (Fatal errors but M4 continues producing
output): New test group.
(cherry picked from commit
22cc8d813ee57c9631e527a31010ab138f9b7e06)
Conflicts:
NEWS
bootstrap.conf
lib/.cvsignore
lib/.gitignore
m4/.cvsignore
m4/.gitignore
src/output.c
Joel E. Denny [Fri, 5 Feb 2010 02:07:07 +0000 (21:07 -0500)]
Update POTFILES.
* HACKING (Release Procedure): Add reminder about keeping
POTFILES files up-to-date.
* po/POTFILES.in (src/muscle-tab.c, src/scan-skel.l): Add.
(cherry picked from commit
9398411bfc774e7d5c46c77039d8ea72f8185a7d)
Joel E. Denny [Mon, 1 Feb 2010 22:26:29 +0000 (17:26 -0500)]
Code cleanup.
* tests/atlocal.in (abs_top_srcdir): Remove shell variable,
which is already defined in atconfig.
Joel E. Denny [Thu, 21 Jan 2010 23:51:29 +0000 (18:51 -0500)]
* cfg.mk (gnulib_dir): Assume gnulib is a subdirectory.
(cherry picked from commit
97d520633b611829cbd867aec5479e8a9a2759a7)
Joel E. Denny [Thu, 21 Jan 2010 17:18:45 +0000 (12:18 -0500)]
maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.
* HACKING (Release Procedure): Update notes on copyright years.
* Makefile.am (update-package-copyright-year): New target rule.
* build-aux/update-package-copyright-year: New file.
* cfg.mk (update-copyright): Add update-package-copyright-year
as a dependency.
(cherry picked from commit
af8a609a90c48d1a7e6ea9e31dba4fbad6c7fbed)
Joel E. Denny [Wed, 20 Jan 2010 05:24:55 +0000 (00:24 -0500)]
* bootstrap: Import improvements from latest gnulib.
(cherry picked from commit
73edad9a25ff7dd15f276a071a39e95bc8cca07a)
Joel E. Denny [Tue, 19 Jan 2010 23:08:48 +0000 (18:08 -0500)]
build: require Automake 1.11.1 to avoid a security flaw.
* HACKING (Release Procedure): Don't document Automake security
flaw here.
* configure.ac (AM_INIT_AUTOMAKE): Require 1.11.1, and explain
why here.
(cherry picked from commit
9736697d6d8f9e719cae8b22ff842c5098c7edcb)
Joel E. Denny [Tue, 19 Jan 2010 19:39:16 +0000 (14:39 -0500)]
gnulib: update to latest.
Joel E. Denny [Tue, 19 Jan 2010 16:41:54 +0000 (11:41 -0500)]
ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
(cherry picked from commit
d6bdb90a2a2ced43828cf6591b3baf513d38285d)
Joel E. Denny [Fri, 15 Jan 2010 18:42:04 +0000 (13:42 -0500)]
Thank the developer of the initial push parser implementation.
This unfortunate oversight is several years old.
* THANKS (Odd Arild Olsen): Add.
(cherry picked from commit
326e5cf81eada2ebd9007fa5fe9903a27a8bd067)
Joel E. Denny [Mon, 4 Jan 2010 19:13:43 +0000 (14:13 -0500)]
Fix some comments concerning LR(0) versus LALR(1).
Stop equating LR(0) with nondeterminism and LALR(1) with
determinism. That is, if all states are consistent, then LR(0)
tables are deterministic. On the other hand, LALR(1) tables
might be nondeterministic before conflict resolution, and GLR
permits LALR(1) tables to remain nondeterministic.
* src/LR0.c, src/LR0.h: Here.
* src/lalr.c, src/lalr.h: Here.
* src/main.c (main): Here.
* src/state.c, src/state.h: Here.
* src/ielr.h (ielr): In preconditions, expect LR(0) not LALR(1)
parser tables.
Joel E. Denny [Mon, 4 Jan 2010 18:46:45 +0000 (13:46 -0500)]
maint: run "make update-copyright"
Joel E. Denny [Wed, 30 Dec 2009 08:14:12 +0000 (03:14 -0500)]
POSIX: complain if %prec's token was not defined.
* NEWS (2.5): Document.
* src/reader.c (grammar_rule_check): Convert warning to
complaint.
* tests/input.at (%prec's token must be defined): Update.
Joel E. Denny [Wed, 30 Dec 2009 08:20:11 +0000 (03:20 -0500)]
POSIX: warn if %prec's token was not defined.
Reported by Florian Krohm at
<http://lists.gnu.org/archive/html/bug-bison/2009-12/msg00005.html>.
* NEWS (2.4.2): Document.
* src/reader.c (grammar_rule_check): Implement.
(grammar_current_rule_prec_set): Add comments explaining that we
here assume a %prec identifier is a token, but we still manage
to support POSIX.
* tests/input.at (%prec's token must be defined): New test
group.
(cherry picked from commit
f1ceed07743630aa2aef7c77d8bde23c3794ee1b)
Joel E. Denny [Thu, 31 Dec 2009 17:43:33 +0000 (12:43 -0500)]
* HACKING (Release Procedure): Recommend a secure automake.
(cherry picked from commit
d2829fdc040f928cc3596725783183f9af8ca5af)
Akim Demaille [Thu, 11 Dec 2008 08:37:40 +0000 (09:37 +0100)]
Propagate i18n changes into glr.c.
* data/glr.c (yyreportSyntaxError): Use "switch" instead of
building the error message format dynamically.
* data/lalr1.java: Formatting changes.
(cherry picked from commit
2b008529edd233bac07a58d557869ae902be1818)
Conflicts:
TODO