blob: 789e7605fef6d00342d9cae67daee083b889a826 [file] [log] [blame]
2012-01-15 Jim Meyering <>
maint: get fdl.texi from gnulib
* bootstrap.conf (gnulib_modules): Add fdl.
* doc/fdl.texi: Remove file.
* doc/.gitignore: Add it here.
2012-01-15 Jim Meyering <>
maint: spell "file system" as two separate words
* doc/ Spell it "file system", to avoid a
"make syntax-check" failure.
2012-01-15 Jim Meyering <>
maint: avoid "the the"
* djgpp/ s/the the/the/
* src/parse-gram.c (lloc_default): Likewise.
* src/parse-gram.y (lloc_default): Likewise, and remove a
trailing space.
2012-01-13 Jim Meyering <>
build: avoid warning from coverity about lbitset_elt_find
* lib/lbitset.c (lbitset_elt_find): Remove unnecessary test of "elt",
at a point where we know it is non-NULL, due to prior dereference.
2012-01-13 Akim Demaille <>
maint: factor copyright year.
* Use $PACKAGE_COPYRIGHT_YEAR instead of repeating it.
2012-01-13 Akim Demaille <>
maint: catch missing gnulib macros.
* Add m4_pattern_forbid.
2012-01-11 Tim Landscheidt <>
java: remove used variable.
* data/ (yyresult): remove, unused.
2012-01-11 Akim Demaille <>
scanner: fix typo.
* src/scan-skel.l (@`): s/emtpy/empty/.
Reported by Tim Landscheidt.
2012-01-06 Jim Meyering <>
build: avoid warnings about set-but-not-used variables
* lib/bitset_stats.c (bitset_stats_list): Remove declaration
and set of unused local, "type".
* lib/ebitset.c (ebitset_init): Likewise, for "size".
* lib/lbitset.c (lbitset_not): Likewise, for "elt".
2011-08-21 Joel E. Denny <>
tests: add -pedantic for --enable-gcc-warnings.
This should help to avoid some portability problems. For example,
it would have revealed the empty unions fixed by the last patch
* tests/ (AT_TEST_SYNCLINE): Avoid -pedantic warning
about an empty translation unit.
2011-08-21 Joel E. Denny <>
tests: fix empty unions.
Empty unions are not accepted by the ISO C99 grammar or by at
least some versions of Sun Studio. Reported by Wolfgang S. Kechel
* NEWS (2.5.1): Document fix.
* THANKS (Wolfgang S. Kechel): Add.
* tests/ (GNU Cim Grammar)
(GNU pic (Groff 1.18.1) Grammar.): Remove empty %union.
2011-07-10 Joel E. Denny <>
build: avoid YACC typo inherited from Autoconf.
The typo shows up in the `configure --help' output. Reported by
W.C.A. Wijngaards and Paul Eggert at
* README-hacking (Release Procedure): Remind about updating
maintainer tools before a release.
* THANKS (W.C.A. Wijngaards): Add.
* (AC_PREREQ): Set to 2.68, which fixes the YACC
2011-07-10 Joel E. Denny <>
build: create xz instead of bzip2 tarballs.
Suggested by Jim Meyering at
* README-hacking (Release Procedure): Update example.
* (AM_INIT_AUTOMAKE): Replace dist-bzip2 with
2011-05-29 Joel E. Denny <>
doc: clean up references to `Locations Overview'.
* doc/bison.texinfo (Locations Overview): Rename node to...
(Locations): ... this, which is its section name. Update menus to
match that and not to use the title `Tracking Locations', which is
a different section.
2011-05-29 Joel E. Denny <>
doc: clean up references to `Tracking Locations'.
* doc/bison.texinfo (Locations): Rename node to...
(Tracking Locations): ... this, which is its section name, and
update all cross references. The trouble is that there is another
node about locations. Its section name is `Locations', which was
easily confused with the node name of this node. Moreover, its
node name is `Locations Overview', which was mistakenly used to
label some cross references to this node.
2011-05-29 Joel E. Denny <>
doc: clean up `Named References' a little.
* doc/bison.texinfo (Named References): Rename section to match
the node name, and update all cross references. Don't use the
acronyms RHS and LHS given that we don't expand them anywhere in
the manual. Try to use @samp and @code properly. Mention that
named references are experimental as we've already stated in NEWS.
(Destructor Decl): Expand the only remaining use of RHS or LHS.
2011-05-29 Joel E. Denny <>
doc: motivate named references.
Suggested by Hans Aberg at
* doc/bison.texinfo (Named References): Explain briefly how
they're better than the traditional positional references.
2011-05-29 Joel E. Denny <>
doc: discuss named references after locations.
Reported by Hans Aberg at
* NEWS (2.5.1): Document.
* doc/bison.texinfo (Named References): Because it discusses
locations in addition to semantic values, move this subsection out
of the section `Defining Language Semantics', where locations have
not yet been introduced, to be a new section after the following
section, `Tracking Locations'.
2011-05-29 Joel E. Denny <>
Prepare for the possibility of a 2.5.1 release.
* NEWS (2.5.1): New heading.
2011-05-14 Joel E. Denny <>
Version 2.5.
* NEWS (2.5): Set date.
2011-05-14 Joel E. Denny <>
Don't use IF_LINT in Bison sources.
It creates unnecessary differences between the sources that Bison
maintainers build and test (given that maintainers normally
configure with --enable-gcc-warnings) and the sources that Bison
users build. Instead, use PACIFY_CC, which doesn't. This change
fixes compiler warnings reported by Tys Lefering at
* Don't AC_DEFINE lint regardless of the configure
options. This change affects imported gnulib sources, where
IF_LINT still appears and depends on lint.
* src/scan-gram.l, src/scan-skel.l: Replace uses of IF_LINT with
* src/system.h (IF_LINT): Remove cpp macro.
(PACIFY_CC): New cpp macro.
2011-05-01 Joel E. Denny <>
Fix precedence for end token.
Since Bison 2.3b, which restored the ability of precedence
directives to assign user token numbers, doing so for user token
number 0 has produced an assertion failure.
* NEWS (2.5): Document fix.
* src/symtab.c (symbol_user_token_number_set): In the case of the
end token, don't decrement ntokens if it was never incremented.
* tests/ (Token number in precedence declaration):
2011-05-01 Joel E. Denny <>
Prepare for 2.5 release.
* NEWS (2.5_rc1): Rename back to...
(2.5): ... this, and unset date.
2011-05-01 Joel E. Denny <>
Version 2.5_rc1.
* NEWS (2.5): Rename to...
(2.5_rc1): ... this, and set date.
2011-05-01 Joel E. Denny <>
* bootstrap.conf (gnulib_modules): Add all modules suggested by
* src/files.c (file_name_split)
* src/getargs.c (getargs)
* src/location.c (boundary_set_from_string)
* src/output.c (token_definitions_output, output_skeleton)
* src/parse-gram.y (prologue_declaration)
* src/scan-gram.l (handle_syncline)
* src/symtab.c (symbol_new): Use mbschr and mbsrchr instead of
strchr and strrchr. In the cases of command-line options, file
names, and thus locations, functionality may be improved. In the
case of symbol names, there should be no functional difference as
all characters are ASCII, so the intended benefit is just warning
2011-05-01 Joel E. Denny <>
* NEWS (2.5): Fix minor typos.
2011-05-01 Joel E. Denny <>
doc: clean up quotation style in NEWS.
* NEWS (2.5): For multi-character tokens in example grammar rules,
use "token" not 'token'. In English, use a consistent quotation
style; we might as well follow the precedent seen in info pages:
`quote' not "quote".
2011-04-16 Joel E. Denny <>
tests: pacify gcc 4.6.0's -Wunused-but-set-variable.
Reported by Jim Meyering at
* tests/
(Default %printer and %destructor for mid-rule values): Define
YYLLOC_DEFAULT so that it uses its Rhs argument.
2011-04-16 Joel E. Denny <>
glr.c: omit yyresolveLocations when locations are disabled.
This prevents gcc 4.6.0's -Wunused-but-set-variable from warning
about yyresolveLocations's local yyrhsloc. When locations are
enabled, there's no such warning because YYLLOC_DEFAULT then uses
yyrhsloc. Reported by Jim Meyering at
* data/glr.c (yyresolveLocations): Omit definition when locations
are disabled.
(yyresolveValue): Omit yyresolveLocations invocation when
locations are disabled.
2011-04-16 Joel E. Denny <>
gnulib, autoconf: update.
* README-hacking (Updating a submodule): Give advice on how to
determine the versions of gnulib and autoconf to which we should
(Release Procedure): Note that submodules should be updated.
* bootstrap.conf (gnulib_modules): Rename pipe to spawn-pipe as
suggested in updated gnulib NEWS.
* gnulib: Choose a stable snapshot according to advice in Bison's
* po/ (lib/pipe.c): Rename to...
(lib/spawn-pipe.c): ... this.
* src/output.c: Update to include spawn-pipe.h.
* submodules/autoconf: Update to latest for improvement in m4.m4
that excludes M4 with buggy strstr. The only other changes to
files that we use are copyright updates.
2011-04-09 Joel E. Denny <>
Fix missing updates to GPLv3.
Reported by Tys Lefering at
* src/print-xml.c, src/print-xml.h: In these files.
2011-03-27 Joel E. Denny <>
Add -Wconflicts-sr and -Wconflicts-rr.
Thus, conflict reports are now affected by -Werror and -Wnone
(unless %expect or %expect-rr is specified). Reported by George
Neuner at
* NEWS (2.5): Document.
* doc/bison.texinfo (Bison Options): Document.
* src/complain.c, src/complain.h (set_warning_issued): Export
* src/conflicts.c (conflicts_print): Suppress conflict report
based on -Wno-conflicts-sr and -Wno-conflicts-rr, and treat
conflicts as errors if -Werror.
* src/getargs.c (warnings_flag): Initialize with
warnings_conflicts_sr and warnings_conflicts_rr as well.
(warnings_args, warnings_types): Add entries for
warnings_conflicts_sr and warnings_conflicts_rr.
(usage): Update.
* src/getargs.h (enum warnings): Add entries for
warnings_conflicts_sr and warnings_conflicts_rr.
* tests/ (-W versus %expect and %expect-rr): New test
* tests/ (AT_BISON_CHECK_NO_XML): Update now that the
conflict report can produce a "warnings being treated as errors"
message. Also, check that stderr is now fully scrubbed by -Wnone
when the exit status is 0.
2011-03-27 Joel E. Denny <>
Pacify maintainer-check-posix.
Adding command-line options after the grammar file name is not
permitted, so disable checks that do that when
maintainer-check-posix is running.
* tests/ (AT_BISON_CHECK_NO_XML): Don't run the
problematic checks when POSIXLY_CORRECT=1. Also, for readability,
remove an unnecessary m4_if.
2011-03-27 Joel E. Denny <>
Add -Wother so -Wnone suppresses all warnings.
Reported by George Neuner at
* NEWS (2.5): Document.
* THANKS (George Neuner): Add.
* doc/bison.texinfo (Bison Options): Document.
* src/complain.c, src/complain.h
(warn_at, warn_at_indent, warn): Suppress warning if -Wno-other.
(midrule_value_at): New warning function, similar to yacc_at in
that it's controlled by its own warning category.
* src/getargs.c (warnings_flag): Initialize to warnings_other.
(warnings_args, warnings_types): Add entry for warnings_other.
(usage): Update.
* src/getargs.h (enum warnings): Add entry for warnings_other.
* src/gram.c (grammar_rules_useless_report): If -Wno-other, then
don't print useless rules.
* src/reader.c (symbol_should_be_used): Rather than adjusting the
return value based on whether midrule value warnings are enabled,
accept a new parameter for telling the caller whether true is
being returned for a potential midrule warning.
(grammar_rule_check): Use midrule_value_at for midrule value
warnings, and continue to use warn_at for all other warnings. Let
them check whether the warnings are enabled.
* tests/ (AT_BISON_CHECK): Update documentation.
(AT_BISON_CHECK_NO_XML): Check that -Wnone and --warnings=none
disable all warnings exercised in the test suite.
2011-03-27 Joel E. Denny <>
Don't let -Wnone disable -Werror.
Discussed at
* NEWS (2.5): Document.
* src/getargs.c (flags_argmatch): Accept a new argument that
specifies what flags "all" and thus "none" affect.
(FLAGS_ARGMATCH): Update flags_argmatch invocation.
* tests/ (-Werror is not affected by -Wnone and -Wall):
New test group.
2011-03-27 Joel E. Denny <>
* NEWS (2.5): Document fix for -Wno-CATEGORY.
2008-11-21 Di-an Jan <>
Implement no-XXX arguments for --warnings, --report, --trace.
* src/getargs.c (flags_argmatch): Handles no-XXX.
Fix typo in doxygen comment.
2011-03-20 Joel E. Denny <>
doc: fix confusing citation of LAC publication.
Suggested by Akim Demaille.
* doc/bison.texinfo (LAC): Here.
2011-03-20 Joel E. Denny <>
lr.default-reductions: rename "full" value to "most".
Unlike "consistent" and "accepting", "full" doesn't answer the
question of "which states".
* doc/bison.texinfo (%define Summary): Update.
(Default Reductions): Update.
* src/print.c (print_reductions): Update.
* src/reader.c (prepare_percent_define_front_end_variables):
* src/tables.c (action_row): Update.
* tests/ (%define enum variables): Update.
* tests/ (%define lr.default-reductions): Update.
2011-03-13 Joel E. Denny <>
* src/parse-gram.c, src/parse-gram.h: Regenerate.
2011-03-09 Akim Demaille <>
named references: fix double free.
In `rhs[name]: "a" | "b"', do not free "name" twice.
Reported by Tys Lefering.
* src/named-ref.h, src/named-ref.c (named_ref_copy): New.
* src/parse-gram.y (current_lhs): Rename as...
(current_lhs_symbol): this.
(current_lhs): New function. Use it to free the current lhs
named reference.
* src/reader.c: Bind lhs to a copy of the current named reference.
* src/symlist.c: Rely on free (0) being valid.
* tests/ Test this.
2011-03-09 Akim Demaille <>
tests: style changes.
* tests/ (Redundant words in LHS brackets)
(Unresolved references): here.
2011-03-06 Joel E. Denny <>
java: fix parser tracing bug.
* NEWS (2.5): Document.
* data/ (YYParser::YYStack::print): Don't skip top
2011-03-06 Joel E. Denny <>
java: finish fixing parser stack popping bug.
* NEWS (2.5): Document.
* data/ (YYParser::YYStack::pop): Fix off-by-one error
in clearing the location stack. Also fix pop function that
accepts no arguments.
2011-03-06 Angelo Borsotti <> (tiny change)
java: fix parser stack popping bug.
Reported at
* THANKS (Angelo Borsotti): Add.
* data/ (YYParser::YYStack::pop): Fix off-by-one error
in clearing the value stack. Previously, the top element of the
stack wasn't cleared and so the value was not garbage collected.
2011-03-06 Joel E. Denny <>
doc: cite publication for LAC.
* doc/bison.texinfo (LAC): Here.
2011-03-06 Joel E. Denny <>
doc: clean up terminology for mysterious conflicts.
* doc/bison.texinfo (Mystery Conflicts): Rename node to...
(Mysterious Conflicts): ... this, which is already the section
title and the name used in the index. Update all cross-references
to this node. Also, don't imply that R/R conflicts are the only
kind of mysterious conflict.
2011-03-06 Joel E. Denny <>
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):
* src/tables.c (action_row): Update.
* tests/ (%define enum variables): Update.
* tests/ (%define lr.default-reductions): Update.
2011-03-06 Joel E. Denny <>
doc: create a new Tuning LR section in the manual.
And clean up all other documentation of the features described
* 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.
2011-02-20 Joel E. Denny <>
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.
2011-02-19 Joel E. Denny <>
java: test and document previous bug fix.
* NEWS (2.5): Document it.
* tests/ (_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.
2011-02-19 Bernd Kiefer <> (tiny change)
java: fix location handling bug.
Reported at
* data/ (YYParser::yylloc): For non-empty RHS, fix
reversed access to location stack.
* THANKS (Bernd Kiefer): Add.
2010-05-11 Akim Demaille <>
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.
2011-02-06 Joel E. Denny <>
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.
2011-02-06 Joel E. Denny <>
doc: finish splitting apart the manual's Decl Summary section.
Suggested by Akim Demaille at
* 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
2011-02-06 Joel E. Denny <>
doc: begin to split apart the manual's Decl Summary section.
Discussed in thread starting at
* 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.
2011-02-06 Joel E. Denny <>
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.
2011-02-06 Joel E. Denny <>
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.
2011-02-06 Joel E. Denny <>
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
2011-01-29 Joel E. Denny <>
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
* 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/ (Exotic Dollars): Extend test group to exercise
bug reported by Paul Hilfinger.
* tests/ (Symbols): Update test group, and extend to
exercise bug reported by Paul Eggert.
* tests/ (Stray symbols in brackets): Update test
($ or @ followed by . or -): Likewise.
* tests/ (Invalid inputs): Likewise.
2011-01-24 Joel E. Denny <>
* data/yacc.c: Fix last apostrophe warning from xgettext.
2011-01-09 Paul Eggert <>
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.
2011-01-09 Joel E. Denny <>
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
* 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/ ($ or @ followed by . or -): New test group.
2011-01-08 Joel E. Denny <>
doc: don't use @acronym.
Lately, many GNU packages are dropping it. See
* doc/bison.texinfo: Remove all uses.
2011-01-05 Alex Rozenman <>
Do not allow identifiers that start with a negative number.
Reported by Paul Hilfinger as a side effect of named references
support at
Suggested by Paul Eggert.
* src/scan-code.l ({letter}, {id}): Adjust lexical definitions.
* src/scan-gram.l ({letter}, {id}): Likewise.
2011-01-03 Joel E. Denny <>
* ChangeLog (2011-01-02): improve description.
2011-01-03 Joel E. Denny <>
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
* bootstrap.conf (bootstrap_sync): Add comments explaining this
2011-01-02 Joel E. Denny <>
maint: run "make update-copyright".
2011-01-02 Joel E. Denny <>
maint: prepare to use year ranges in copyright notices.
* README (Copyright statements): New section explaining the range
notation. The GNU maintainers document requires this explanation:
I copied our explanation from coreutils.
* build-aux/update-b4-copyright: Revert 2010-06-17 changes that
disabled Bison's automated use of ranges.
* (update-copyright-env): Likewise.
2011-01-02 Joel E. Denny <>
Correct my email address.
* ChangeLog: In all recent entries.
* THANKS (Joel E. Denny): Here.
2010-12-19 Joel E. Denny <>
doc: cleanup.
* NEWS (2.5): Try to sort entries according to how interesting
users might find them.
2010-12-19 Joel E. Denny <>
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.
2010-12-19 Joel E. Denny <>
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.
2010-12-11 Joel E. Denny <>
parse.lac: implement exploratory stack reallocations.
* data/yacc.c: Rename %define variable to 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.
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
(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
* src/parse-gram.y: %define parse.lac full.
* tests/ (LAC: errors for %define): Extend for
* tests/ (LAC: Exploratory stack): Extend to check
that stack reallocs happen when expected.
(LAC: Memory exhaustion): Update to use YYMAXDEPTH and
2010-12-11 Joel E. Denny <>
parse.lac: implement as %define variable.
LAC = lookahead correction. See discussion at
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 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
(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/ (%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/ (LAC: Errors for %define): New test group.
* tests/ (LAC: Exploratory stack): New test group.
(LAC: Memory exhaustion): New test group.
2010-11-21 Joel E. Denny <>
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.
2010-11-07 Joel E. Denny <>
yysyntax_error: adjust prior fixes for branch-2.5's
On master, there is no yychar in, 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
* data/ (yy::parser::parse): Translate yychar before
every use of yytoken, and add comments explaining this approach.
* tests/ (%error-verbose and consistent errors):
Extend to test yychar manipulation with
2010-11-07 Joel E. Denny <>
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/ (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/ (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/ (%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,, and No longer an expected
* tests/ ... here.
(AT_FULL_COMPILE): Extend to handle Java.
2010-11-07 Joel E. Denny <>
yysyntax_error: more preparation for readability of next patch.
There are no behavioral changes here.
* data/glr.c (yyreportSyntaxError): Reorganize.
* data/ (yy::parser::yysyntax_error_): Reorganize.
* tests/ (%error-verbose and consistent errors):
2010-11-07 Joel E. Denny <>
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/ (yy::parser::yysyntax_error_): Reindent.
* data/ (YYParser::yysyntax_error): Reindent.
* data/yacc.c (yysyntax_error): Reindent.
2010-10-31 Joel E. Denny <>
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.
2010-10-31 Joel E. Denny <>
* ChangeLog: Correct some errors in previous entries.
2010-10-17 Joel E. Denny <>
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.
2010-10-08 Paul Eggert <>
Fix portability problem on OpenBSD 4.7.
Jim Meyering reported this in
* 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/ Tamper with the renamed witness.
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.
2010-08-05 Joel E. Denny <>
Version 2.4.3.
* NEWS (2.4.3): Set date.
2010-08-04 Joel E. Denny <>
maint: add gettext version to release announcements.
Suggested by Paul Hilfinger at
* (bootstrap-tools): Add gettext.
2010-08-04 Joel E. Denny <>
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.
2010-08-01 Joel E. Denny <>
-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/ (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.
2010-07-29 Joel E. Denny <>
maint: enable gnits only at stable releases.
* (AM_INIT_AUTOMAKE): Underscore or dash in a
version string should disable gnits. Explain in comments.
2010-07-28 Joel E. Denny <>
i18n: update.
* po/ Add src/graphviz.c.
2010-07-28 Joel E. Denny <>
i18n: fix for gnulib.
* po/ Add remaining gnulib files that have
translatable strings.
2010-07-25 Joel E. Denny <>
maint: use announce-gen's new --mail-headers.
* HACKING (Announce): Update instructions.
* (announcement_Cc_): Define.
* (AM_GNU_GETTEXT_VERSION): Update to 0.18 as
required by latest gnulib.
* gnulib: Update to latest.
2010-07-24 Joel E. Denny <>
tests: handle Valgrind that complains about >&-.
* tests/ (AT_CHECK_OUTPUT): Extend to accept pre-tests.
(Output files: -dv >&-): Skip test group if running
2010-06-17 Paul Eggert <>
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:
2010-06-17 Paul Eggert <>
Do not use date ranges in copyright notices.
* TODO, bootstrap, bootstrap.conf:
* build-aux/update-b4-copyright,,
* data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4:
* data/c-skel.m4, data/c.m4, data/glr.c, data/
* data/java-skel.m4, data/java.m4, data/
* data/, data/
* data/xslt/bison.xsl:
* data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl:
* data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint:
* djgpp/, djgpp/config.bat, djgpp/config.sed:
* djgpp/, 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/
* examples/calc++/, 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/, tests/, tests/
* tests/, tests/, tests/
* tests/, tests/
* tests/, tests/, tests/
* tests/, tests/
* tests/, tests/, tests/
* tests/, tests/, tests/
* tests/, tests/, tests/
* data/, data/, doc/, src/
* tests/, lib/, examples/
* etc/
Don't use date ranges in copyright notices.
2010-05-11 Akim Demaille <> give a chance to user defined YYLLOC_DEFAULT.
* data/ (YYLLOC_DEFAULT): Move its definition from the
header file to the implementation file, after the user %code
* NEWS (2.5): Document this.
2010-05-07 Akim Demaille <>
c++: use YYRHSLOC.
* data/ (YYRHSLOC): New.
* data/ If location_type was user defined, do not include
location.hh, and do not produce location.hh and position.hh.
Check that supports user defined location_type.
* NEWS: Document this.
2010-05-10 Akim Demaille <>
doc: fix documentation.
* doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature.
(C++ Bison Interface): Fix skeleton name.
(C++ Parser Interface): Fix semantic_type and location_type names.
Document yy::parser::token.
Reported by Jerry Quinn.
2010-05-04 Akim Demaille <> 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/ Do not load (which outputs both
location.hh and position.hh) if the user defined location_type.
Do not include location.hh either.
* data/ Likewise.
2010-05-04 Akim Demaille <> location_type: make sure we don't depend on loc.(begin|end).
* tests/ (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/ (_AT_BISON_OPTION_PUSHDEFS): Adjust to the
location_type changes.
2010-05-04 Akim Demaille <>
tests: enhance AT_SYNCLINES_COMPILE.
* tests/ (AT_TEST_SYNCLINE): Move GCC 4.5 protection
Add more distcc patterns.
2010-05-01 Joel E. Denny <>
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.
2010-05-01 Joel E. Denny <>
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.
2010-04-30 Joel E. Denny <>
Document that undefined %prec identifier warnings will remain.
* NEWS (2.4.3): Here.
(2.4.2): Here.
2010-04-30 Joel E. Denny <>
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
* NEWS (2.5): Remove mention of complaint.
* src/reader.c (grammar_rule_check): Convert complaint back to
* tests/ (%prec's token must be defined): Update.
2010-04-25 Joel E. Denny <>
build: don't require src/bison during bootstrap.
Suggested by Eric Blake at
* bootstrap.conf (bootstrap_epilogue): New function to make sure
src/parse-gram.[ch] are stamped later than src/parse-gram.y.
2010-04-25 Joel E. Denny <>
i18n: fix untranslatable string.
Reported by Goran Uddeborg at
* src/muscle-tab.c (muscle_percent_define_insert): Here.
2010-04-13 Akim Demaille <>
tests: calc: minor refactoring.
* tests/ (_AT_DATA_CALC_Y): Simplify yylex.
2010-04-13 Akim Demaille <>
tests: calc: simplify location management.
define the appropriate AT_LOC accessors.
* tests/ Use AT_LOC accessors.
2010-04-13 Akim Demaille <>
test location_type.
* tests/ (_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.
2010-04-13 Akim Demaille <>
tests: check fclose's return value.
* tests/ (_AT_DATA_CALC_Y): Check fclose's return status.
2010-04-13 Akim Demaille <>
tests: don't depend on the actual location type.
* tests/ Use yy::parser::location_type rather than
yy::location, since the former is always right, and might point to
another type than the latter.
2010-04-13 Akim Demaille <>
formatting changes.
* tests/ Formatting changes.
2010-04-13 Akim Demaille <> remove useless forward declaration.
* data/ Include location.hh before stack.hh.
Remove the useless forward declarations of position and location.
Reported by Chris Morley.
* data/ Likewise.
2010-04-11 Joel E. Denny <>
* NEWS (2.4.3): Mention fix for Sun Studio C++.
2010-04-10 Joel E. Denny <>
tests: fix for newer Sun Studio C++.
Reported by Dagobert Michelsen at
* THANKS (Dagobert Michelsen): Add.
* (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.
2010-04-03 Joel E. Denny <>
portability: fix pointer arithmetic to conform to C standard.
Reported by Tys Lefering at
This fix is already implemented in glr.c and does not apply to
* data/ (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.
2010-04-05 Akim Demaille <>
remove useless include.
* src/graphviz.h: Don't include stdbool.h.
2010-04-05 Akim Demaille <>
graph: sign the output file.
* src/graphviz.c (start_graph): Issue comments about Bison.
Suggested by Tys Lefering.
2010-03-31 Joel E. Denny <>
portability: fix test suite for GCC 4.5's new #error message.
Reported by Tys Lefering at
* NEWS (2.4.3): Mention.
* tests/ (AT_TEST_SYNCLINE): Implement.
2010-03-30 Akim Demaille <>
fix comments.
* src/graphviz.h: Add missing license notice.
2010-03-25 Akim Demaille <>
tests: fix 250: parse.error=verbose overflow.
* tests/ (parse.error=verbose overflow): Avoid the
double inclusion of stdlib.h as it triggers hard errors.
2010-03-23 Joel E. Denny <>
portability: fix for BSD make.
Reported by Johan van Selst at
* tests/ ($(TESTSUITE)): Qualify package.m4 in
this dependency list as in package.m4's target rule.
2010-03-23 Joel E. Denny <>
portability: fix spawning on at least FreeBSD 8 and FreeBSD 9.
Reported by Johan van Selst at
* NEWS (2.4.3): New.
* THANKS (Johan van Selst): Add.
* gnulib: Update to latest.
2010-03-20 Joel E. Denny <>
maint: update for changes to gnulib's announce-gen.
* HACKING (Announce): RELEASE_TYPE=major must now be written
2010-03-20 Joel E. Denny <>
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.
2010-02-22 Joel E. Denny <>
tests: fix maintainer-xml-check for recent changes.
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.
2010-02-22 Joel E. Denny <>
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
There were also problems with the test suite livelocking on
Tru64 5.1b. Reported by Didier Godefroy at
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
* lib/ (libbison_a_SOURCES): Remove subpipe.h and
* po/ (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
* src/scan-skel.l (at_directive_perform): Update
output_file_name_check invocation.
* tests/ (AT_CHECK_CONFLICTING_OUTPUT): Check that the
grammar file actually isn't overwritten.
(Conflicting output files: -o foo.y): Update expected output.
* tests/ (Fatal errors but M4 continues producing
output): New test group.
2010-02-04 Joel E. Denny <>
* HACKING (Release Procedure): Add reminder about keeping
POTFILES files up-to-date.
* po/ (src/muscle-tab.c, src/scan-skel.l): Add.
2010-02-01 Joel E. Denny <>
Code cleanup.
* tests/ (abs_top_srcdir): Remove shell variable,
which is already defined in atconfig.
2010-01-21 Joel E. Denny <>
* (gnulib_dir): Assume gnulib is a subdirectory.
2010-01-21 Joel E. Denny <>
maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.
* HACKING (Release Procedure): Update notes on copyright years.
* (update-package-copyright-year): New target rule.
* build-aux/update-package-copyright-year: New file.
* (update-copyright): Add update-package-copyright-year
as a dependency.
2010-01-19 Joel E. Denny <>
* bootstrap: Import improvements from latest gnulib.
2010-01-19 Joel E. Denny <>
build: require Automake 1.11.1 to avoid a security flaw.
* HACKING (Release Procedure): Don't document Automake security
flaw here.
* (AM_INIT_AUTOMAKE): Require 1.11.1, and explain
why here.
2010-01-19 Joel E. Denny <>
gnulib: update to latest.
2010-01-19 Joel E. Denny <>
ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
2010-01-15 Joel E. Denny <>
Thank the developer of the initial push parser implementation.
This unfortunate oversight is several years old.
* THANKS (Odd Arild Olsen): Add.
2010-01-04 Joel E. Denny <>
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.
2010-01-04 Joel E. Denny <>
maint: run "make update-copyright"
2009-12-30 Joel E. Denny <>
POSIX: complain if %prec's token was not defined.
* NEWS (2.5): Document.
* src/reader.c (grammar_rule_check): Convert warning to
* tests/ (%prec's token must be defined): Update.
2009-12-30 Joel E. Denny <>
POSIX: warn if %prec's token was not defined.
Reported by Florian Krohm at
* 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/ (%prec's token must be defined): New test
2009-12-31 Joel E. Denny <>
* HACKING (Release Procedure): Recommend a secure automake.
2008-12-11 Akim Demaille <>
Propagate i18n changes into glr.c.
* data/glr.c (yyreportSyntaxError): Use "switch" instead of
building the error message format dynamically.
* data/ Formatting changes.
2009-12-22 Joel E. Denny <>
Port small part of master's 11707b2b so future ports are easier.
* data/ (YYParser::yysyntax_error): Untabify.
2008-12-11 Akim Demaille <>
Simplify the i18n of the error messages.
* data/ Comment changes.
2008-11-11 Akim Demaille <>
Prefer M4 to CPP.
* data/ Use b4_error_verbose_if instead of #if
2008-11-11 Akim Demaille <>
Support i18n of the parse error messages.
* TODO ( Remove.
* data/ (yysyntax_error_): Support the translation of the
error messages, as done in yacc.c.
Stay within the yy* pseudo namespace.
2009-12-22 Joel E. Denny <>
Port small part of master's 8901f32e so future ports are easier.
* data/ (yy::parser::yysyntax_error_): Always add second
argument, but name it in the function definition only when
verbose error messages are enabled and it'll thus be used.
(yy::parser::parse): Update use of yysyntax_error_.
2009-12-29 Joel E. Denny <>
portability: `<' and `>' are not always defined on addresses.
Specifically, don't sort objects by their memory addresses when
they're not allocated in the same array or other object. Though
I haven't found a test case where that fails on my platform, C
says the behavior is undefined.
* src/AnnotationList.c (AnnotationList__insertInto): Remove
FIXME. Use new id field of InadequacyList nodes rather than
their memory addresses when sorting.
(AnnotationList__compute_from_inadequacies): Add
inadequacy_list_node_count argument to pass to
* src/AnnotationList.h
(AnnotationList__compute_from_inadequacies): Update prototype
and documentation for new argument.
* src/InadequacyList.c (InadequacyList__new_conflict): Add
node_count argument and use it to assign a unique ID.
* src/InadequacyList.h (InadequacyListNodeCount): New typedef.
(InadequacyList): Add id field.
(InadequacyList__new_conflict): Update prototype and
documentation for new argument.
* src/ielr.c (ielr_compute_annotation_lists): Update
AnnotationList__compute_from_inadequacies invocation.
2009-12-20 Joel E. Denny <>
Fix handling of yychar manipulation in user semantic actions.
The problem was that yacc.c didn't always update the yychar
translation afterwards. However, other skeletons appear to be
fine. glr.c appears to already translate yychar before every
use. does not define yychar and does not document its
replacement, yyla, for users. It does provide yyclearin, but
that does not manipulate yyla and thus requires no translation
update. In, yychar is out of scope during semantic
* NEWS (2.5): Document.
* data/yacc.c (YYBACKUP): Don't bother translating yychar into
yytoken here.
(yyparse, yypush_parse): Instead, translate before every use of
yytoken, and add comments explaining this approach.
* tests/ (Destroying lookahead assigned by semantic
action): New test group checking that translation happens before
lookahead destructor calls at parser return. Previously,
incorrect destructors were called.
* tests/ (%error-verbose and consistent
errors): New test group checking that translation happens at
syntax error detection before the associated verbose error
message and the associated lookahead destructor calls. While
the destructor call is fixed by this patch, the verbose error
message is currently incorrect due to another bug (see
comments in test group), so this is an expected failure for now.
2009-12-21 Joel E. Denny <>
YYFAIL: warn about uses and remove from
* NEWS (2.5): Document.
* data/ (YYParser::YYFAIL): Rename to YYERRLAB,
and make it private. Update all uses.
* src/scan-code.l (SC_RULE_ACTION): Implement warning.
2009-12-21 Joel E. Denny <>
YYFAIL: deprecate.
* NEWS (2.4.2): Document deprecation and the phase-out plan.
* data/ (YYParser::YYFAIL): Add comment about
* data/yacc.c (YYFAIL): Likewise, and suppress warnings about
YYFAIL from GCC cpp's -Wunused-macros.
* doc/bison.texinfo (Java Action Features): Remove YYFAIL
(LocalWords): Remove YYFAIL.
2009-12-17 Joel E. Denny <>
Code cleanup.
* src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
function, which is no longer used.
2009-12-16 Joel E. Denny <>
Add gcc's -Wundef to test suite and fix another warning from it.
* NEWS (2.4.2): Update description of -Wundef fix.
* (WARN_CXXFLAGS_TEST): New substitution.
(WARN_CFLAGS_TEST): New substitution.
* data/glr.c: Avoid warning about __STRICT_ANSI__.
* tests/ (CFLAGS): Use WARN_CFLAGS_TEST instead of
2009-12-16 Joel E. Denny <>
* data/yacc.c: Reformat m4 a little.
2009-12-16 Joel E. Denny <>
Document gcc -Wundef fix.
* NEWS (2.4.2): Here.
* THANKS (Jonathan Nieder): Add.
2009-12-15 Jonathan Nieder <> (tiny change)
Simplify when location tracking is disabled.
* data/yacc.c: Do not check YYLTYPE_IS_TRIVIAL if location
tracking is not enabled. Instead, unconditionally define
YY_LOCATION_PRINT as a no-op for backward compatibility.
2009-12-15 Jonathan Nieder <> (tiny change)
Avoid warnings from gcc -Wundef
* data/glr.c: Check if YYENABLE_NLS and YYLTYPE_IS_TRIVIAL are
defined before using them.
* data/ Likewise.
* data/yacc.c: Likewise.
2009-12-15 Joel E. Denny <>
autoconf: update to latest for fix of M4 detection.
Reported by Eric Blake.
* submodules/autoconf: Update.
2009-12-15 Joel E. Denny <>
portability: use -DGNULIB_POSIXCHECK.
Reported by Eric Blake. See discussions at
* HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK.
* bootstrap.conf (gnulib_modules): Add all the printf modules
suggested by -DGNULIB_POSIXCHECK. Add realloc-posix as
suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c.
(excluded_files): Remove m4/printf-posix.m4.
* tests/ (LIBS): As for LDADD in src/, add
lib/libbison.a so gnulib libraries can be linked.
2009-12-14 Joel E. Denny <>
Enable assertion output and --disable-assert for configure.
* bootstrap.conf (gnulib_modules): Add assert module.
* src/system.h (aver): Define as assert, and summarize the
discussion on this issue.
2009-12-14 Joel E. Denny <>
Expand GLR acronym in summary of Bison.
Based on discussion with Akim Demaille starting at
* doc/bison.texinfo (Introduction): Here.
* src/getargs.c (usage): Here.
2009-10-03 Alex Rozenman <>
Document named references.
* doc/bison.texinfo (Actions): Add new example and xref to
Using Named References node.
(Using Named References): New node.
2009-10-16 Joel E. Denny <>
* src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead
of char*.
(Sbitset__isEmpty): Use Sbitset instead of char*.
* src/Sbitset.h (Sbitset): Make it a pointer to unsigned char
instead of char. This helps to avoid casting errors.
(Sbitset__or): Use Sbitset instead of char*.
2009-10-16 Joel E. Denny <>
portability: don't assume 8-bit bytes.
That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff.
* src/Sbitset.h (Sbitset__nbytes): Here.
(Sbitset__byteAddress): Here.
(Sbitset__bit_mask): Here.
(Sbitset__last_byte_mask): Here.
(Sbitset__ones): Here.
2009-10-11 Joel E. Denny <>
portability: use va_start and va_end in the same function.
* src/complain.c (error_message): Move va_end from here...
(ERROR_MESSAGE): ... to here.
2009-10-08 Joel E. Denny <>
* data/bison.m4: Update comments for rename to muscle-tab.h.
2009-10-08 Joel E. Denny <>
Rename muscle_tab.* to muscle-tab.* for consistency with master.
* src/ (bison_SOURCES): Update.
* src/getargs.c, src/ielr.c, src/lalr.c, src/main.c,
src/output.c, src/parse-gram.y, src/print.c, src/reader.c,
src/tables.c: Update include.
* src/muscle_tab.c, src/muscle_tab.h: Rename to...
* src/muscle-tab.c, src/muscle-tab.h: ... these and update
2009-10-07 Joel E. Denny <>
Minor code cleanup.
* src/muscle_tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and
replace all uses with UNIQSTR_CONCAT.
* src/uniqstr.c (uniqstr_vsprintf): New function.
* src/uniqstr.h (uniqstr_vsprintf): Add prototype.
2009-10-04 Joel E. Denny <>
Minor code cleanup.
* src/parse-gram.y: Clean up sorting of declarations.
Use types to simplify %printer declarations where possible.
Provide %printer for BRACKETED_ID and symbol.prec.
* src/symtab.c: Whitespace change.
2009-10-04 Joel E. Denny <>
tests: skip tests of file names that platform does not support.
Reported by Michael Raskin at
* THANKS (Michael Raskin): Add.
* tests/ (AT_CHECK_OUTPUT_FILE_NAME): Fix. Cygwin used
to fail at least for file names containing ":" or "\".
2009-09-23 Joel E. Denny <>
yysyntax_error: avoid duplicate lookahead collection.
Except when memory reallocation is required, this change
eliminates the need to invoke yysyntax_error twice and thus to
repeat the collection of lookaheads. It also prepares for
future extensions that will make those repetitions more
expensive and that will require additional memory management in
yysyntax_error. Finally, it fixes an obscure bug already
exercised in the test suite.
* data/yacc.c (yysyntax_error): Add arguments for message
buffer variables stored in the parser. Instead of size, return
status similar to yyparse status but indicating success of
message creation. Other than the actual reallocation of the
message buffer, import and clean up memory management code
(yyparse, yypush_parse): ... here.
* tests/ (%error-verbose overflow): No longer an
expected failure.
2009-09-23 Joel E. Denny <>
yysyntax_error: test memory management more.
* tests/ (NO_WERROR_CFLAGS): New cpp macro.
* tests/ (%error-verbose and YYSTACK_USE_ALLOCA):
New test group.
(%error-verbose overflow): New test group that reveals an
obscure bug. Expected fail for now.
2008-12-11 Akim Demaille <>
Pass the token type to yysyntax_error.
* data/yacc.c (yysyntax_error): Take the transated token instead
of the raw number.
Adjust callers.
2008-12-11 Akim Demaille <>
Simplify the i18n of the error messages.
* data/yacc.c (yysyntax_error): Rewrite, using a switch instead
of building dynamically the format string.
2009-10-03 Joel E. Denny <>
Remove dead code.
* src/symtab.c (symbol_pack): Here because every symbol's number
is always defined by this time.
2009-10-03 Alex Rozenman <>
Add additional space after periods in NEWS.
* NEWS (2.5): here.
2009-09-29 Joel E. Denny <>
Use the correct conversion specifier for size_t.
Reported by Jim Meyering.
* src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu"
because Sbitset__Index is size_t.
* src/Sbitset.c (Sbitset__fprint): Use it instead of %d.
2009-09-27 Joel E. Denny <>
tests: don't abuse AT_BISON_CHECK.
* tests/ (parse-gram.y: LALR = IELR): Move
additional shell commands outside of AT_BISON_CHECK.
2009-09-26 Joel E. Denny <>
tests: check that parse-gram.y's IELR and LALR are identical.
* tests/ (abs_top_srcdir): New shell variable.
* tests/ (parse-gram.y: LALR = IELR): New test
2009-09-16 Akim Demaille <>
doc: comment changes.
* doc/bison.texinfo: Comment changes.
2009-09-16 Akim Demaille <>
doc: spell checking.
* doc/bison.texinfo: here.
2009-09-19 Alex Rozenman <>
Keep sub-messages aligned. Fix strings for translation.
* src/location.h (location_print): Add return value.
* src/location.c (location_print): Return number of printed
* src/complain.h (complain_at_indent, warn_at_indent): Prototype
new functions.
* src/complain.cpp (indent_ptr): New static variable.
(error_message, complain_at_indent, warn_at_indent): Implement
the alignment mechanism.
* src/scan-code.l (parse_ref, show_sub_messages): Fix strings
for translations. Use new alignment mechanism.
* tests/ Adjust test-cases.
* NEWS (2.5): Add an announcement about named references.
2009-09-13 Joel E. Denny <>
tests: clean up test group titles.
* tests/ Remove "Push Parsing: " from test group titles
because these are already under the banner "Push Parsing Tests".
2009-09-12 Alex Rozenman <>
Provide an additional sub-message for clarity.
Add "symbol not found in production" error message when
an "invalid reference" is detected in named references
* src/scan-code.l: Update "invalid reference" case.
* tests/ Adjust test-cases.
2009-09-10 Joel E. Denny <>
Clean up yacc.c a little.
* data/yacc.c: Clean up M4 for readability, and make output
whitespace more consistent. For the main parse function
comment, instead of saying "yyparse or yypush_parse", say either
"yyparse" or "yypush_parse" depending on which it actually is.
2009-09-03 Joel E. Denny <>
Complain about unused %define variables and %code qualifiers.
* NEWS (2.5): Document.
* data/bison.m4 (b4_check_user_names): Complain instead of warn.
* doc/bison.texinfo (Decl Summary): Document complaint, and
improve %define documentation a little otherwise.
* tests/ (Reject unused %code qualifiers): Update.
(%define errors): Update.
(%define, --define, --force-define): Update.
(%define backward compatibility): Update.
(Unused %define api.pure): Update.
* tests/ (Push Parsing: Unsupported Skeletons): Update.
2009-09-03 Joel E. Denny <>
Use aver not assert.
* src/output.c: Don't include assert.h.
(output_skeleton): Use aver not assert.
* src/system.h (aver): In documentation of why, add links to
Paul Eggert's explanations in the mailing lists.
2009-09-05 Alex Rozenman <>
Use "Unresolved reference" error message when no symbols were found
in a symbolic reference resolution. Remove .expr and -expr from
the shown reference when the reference is unresolved.
* src/scan-code.l: Change the error message, adjust location columns,
rename variable "exact_mode" to "explicit_bracketing".
* tests/ Adjust existing tests and add a new one.
2009-09-03 Akim Demaille <>
* NEWS (2.4.2): Add "Internationalization" item.
2009-09-03 Akim Demaille <>
bootstrap: fix/improve find_tool.
* bootstrap (find_tool): Improve error messages.
Fix typo about find_tool_names.
2009-08-29 Joel E. Denny <>
Fix gcc 3.4.4 shadowing warning reported by Eric Blake.
* src/scan-code.h (code_props_rule_action_init): Rename
named_ref arg to name so it doesn't shadow named_ref type. This
makes it consistent with the function definition in scan-code.l
2009-08-28 Joel E. Denny <>
%define: accept unquoted values.
* NEWS (2.5): Group all %define changes together, and document
this one. Remove quotes in IELR and canonical LR entry.
* doc/bison.texinfo: Remove quotes in most examples throughout.
(Decl Summary): Update %define documentation.
(Table of Symbols): Likewise.
* src/ielr.c (LrType): Update documentation.
* src/parse-gram.y (content.opt): Add production for ID.
* tests/ Remove quotes in most tests.
* tests/ Likewise.
* tests/ Likewise.
* tests/ Likewise.
* tests/ Likewise.
* tests/ Likewise.
* tests/ Likewise.
2009-08-28 Joel E. Denny <>
%define lr.type: make values lowercase IDs.
That is, "LALR" => "lalr", "IELR" => "ielr", and
"canonical LR" => "canonical-lr".
* NEWS (2.5): Update documentation.
* doc/bison.texinfo (Decl Summary): Likewise.
* src/ielr.c (ielr): Use new values.
* src/ielr.h (ielr): Update documentation.
* src/reader.c (prepare_percent_define_front_end_variables): Use
and validate new values.
* tests/ (AT_TEST_EXISTING_GRAMMAR): Update test
* tests/ (AT_TEST_LR_TYPE): Likewise.
2009-08-27 Eric Blake <>
scan-gram: avoid portability trap with ctype usage.
Avoid compiler warning.
2009-08-27 Joel E. Denny <>
tests: use perl for printing special sequences to files.
And skip tests if perl is not available. This is better than
playing tricks with shell portability. Suggested by Akim
* tests/ (Bad character literals): Use it here for
omitting final newlines.
(Bad escapes in literals): Use it here for special characters.
2009-08-26 Joel E. Denny <>
tests: show a use of %define lr.default-reductions "consistent"
* tests/ (%nonassoc and eof): Extend to test that it
prevents the omission of expected tokens for %error-verbose.
2009-08-26 Akim Demaille <>
tests: portability fix.
* tests/ (Bad escapes in literals): Don't expect "echo
'\0'" to output \ then 0.
2009-08-26 Joel E. Denny <>
Actually handle the yytable zero value correctly this time.
* data/glr.c, data/, data/, data/yacc.c: Don't
mention zero values in the YYTABLE comments.
* data/glr.c (yytable_value_is_error): Don't check for zero
* data/ (yy_table_value_is_error_): Likewise.
* data/yacc.c (yytable_value_is_error): Likewise.
* data/ (yy_table_value_is_error_): Likewise.
(yysyntax_error): Fix typo in code: use yytable_ not yycheck_.
* src/tables.h: In header comments, explain why it's useless to
check for a zero value in yytable.
2009-08-25 Joel E. Denny <>
More fixes related to last two patches.
* data/c.m4 (b4_table_value_equals): Comment that YYID must be
* data/glr.c, data/, data/, data/yacc.c: Fix
yytable comments: zero indicates syntax error not default
* data/glr.c (yyis_pact_ninf): Rename to...
(yypact_value_is_default): ... this.
(yyisDefaultedState): Update for rename.
(yyis_table_ninf): Rename to...
(yytable_value_is_error): ... this, and check for value zero
besides just YYTABLE_NINF.
(yygetLRActions): Check for default value from yypact. It
appears that this check is always performed before this function
is invoked, and so adding the check here is probably redundant.
However, the code may evolve after this subtlety is forgotten.
Also, update for rename to yytable_value_is_error. Because that
macro now checks for zero, a different but equivalent branch of
the if-then-else here is evaluated.
(yyreportSyntaxError): Update for rename to
yytable_value_is_error. The zero condition was mishandled
(yyrecoverSyntaxError): Update for renames. No behavioral
* data/, data/ (yy_pact_value_is_default_):
New function.
(yy_table_value_is_error_): New function.
(parse): Use new functions where possible. No behavioral
(yysyntax_error_, yysyntax_error): Use yy_table_value_is_error_.
The zero condition was mishandled before.
* data/yacc.c (yyis_pact_ninf): Rename to...
(yypact_value_is_default): ... this.
(yyis_table_ninf): Rename to...
(yytable_value_is_error): ... this, and check for value zero
besides just YYTABLE_NINF.
(yysyntax_error): Update for rename to yytable_value_is_error.
The zero condition was mishandled before.
(yyparse): Update for renames. No behavioral changes.
* src/tables.h: Improve comments about yypact, yytable, etc.
more. Most importantly, say yytable value of zero means syntax
error not default action.
2009-08-25 Joel E. Denny <>
Fix %error-verbose for conflicts resolved by %nonassoc.
* NEWS (2.5): Document.
* data/glr.c (yyreportSyntaxError): Fix this by checking
* data/yacc.c (yysyntax_error): Likewise.
* data/ (yysyntax_error_): Fix this by checking
* data/ (yysyntax_error): Likewise.
* tests/ (%nonassoc and eof): Update expected output
and remove FIXME.
2009-08-25 Joel E. Denny <>
Some code and documentation improvements.
* data/c.m4 (b4_table_value_equals): New macro to capture
some repeated code.
* data/glr.c (yyis_pact_ninf): Use it here.
(yyis_table_ninf): Likewise.
(yyreportSyntaxError): Improve internal comments.
* data/yacc.c (yyis_pact_ninf): New macro copied from glr.c.
Use it everywhere possible.
(yyis_table_ninf): Likewise.
(yysyntax_error): Improve internal comments.
* data/ (yysyntax_error_): Likewise.
* data/ (yysyntax_error): Likewise.
* src/tables.h: Improve comments about yypact, yytable, etc.
2009-08-21 Joel E. Denny <>
Use locale when quoting.
quote rather than implementing quoting here.
2009-08-20 Eric Blake <>
Make previous patch more robust.
* src/output.c (ARRAY_CARDINALITY): New macro, copied from
(output_skeleton): Use it.
Suggested by Akim Demaille.
Import latest m4/m4.m4.
* submodules/autoconf: Update to autoconf 2.64.
* (M4_GNU_OPTION): New define.
* src/output.c (output_skeleton): Use it to resolve FIXME.
* NEWS: Mention this.
2009-08-19 Joel E. Denny <>
Fix complaints about escape sequences.
Discussed starting at
For a \0 and similar escape sequences meaning the null
character, report an invalid escape sequence instead of an
invalid null character because the latter does not actually
appear in the user's input.
In all escape sequence complaints, don't escape the initial
backslash, and don't quote when the sequence appears at the end
of the complaint line unless there's whitespace that quotearg
won't escape.
Consistently say "invalid" not "unrecognized".
Consistently prefer "empty character literal" over "extra
characters in character literal" warning for invalid escape
sequences; that is, consistently discard those sequences.
* tests/ (Bad escapes in literals): New.
2009-08-19 Akim Demaille <>
doc: fixes.
* doc/bison.texinfo: Fix minor Texinfo errors.
2009-08-19 Akim Demaille <>
doc: %initial-action to initialize yylloc.
Reported by Bill Allombert.
* doc/bison.texinfo: Set fill-column to 76.
(Location Type): Document the use of %initial-action to initialize
2009-08-18 Joel E. Denny <>
maint: update for gnulib's recent update-copyright changes
* gnulib: Update.
* .x-update-copyright (COPYING): Add as it's no longer implied
when .x-update-copyright is present.
* (update-copyright-local): Remove, now ignored.
(update-copyright): Declare update-b4-copyright as a dependency.
2009-08-17 Akim Demaille <>
build: require gettext 0.17.
Suggested by Bruno Haible.
* require gettext 0.17 to ensure compatibility with
2009-08-17 Akim Demaille <>
build: lower gettext requirements.
Bison was uselessly requiring the formatstring macros from
gettext, which resulted in mo files not being installed on systems
that perfectly supported Bison mo files. Lower the requirement.
* Require need-ngettext instead of
Reported by Martin Jabocs.
Suggested by Bruno Haible.
* INSTALL: Restructure.
(Internationalization): New.
2009-08-14 Joel E. Denny <>
maint: fix use of copyright year intervals.
* gnulib: Update.
* bootstrap.conf (gnulib_modules): Update getopt to getopt-gnu
as now recommended in gnulib/NEWS.
* build-aux/update-b4-copyright: Fix.
* (update-copyright-env): Configure update-copyright.
2009-08-13 Joel E. Denny <>
Make it easier to write deterministic tests.
Continues Akim's work from his 2009-06-10 commits.
* src/reader.c (check_and_convert_grammar): Don't add any
symbols after the first symbols_do invocation.
* src/symtab.c (symbols_sorted): New static global.
(user_token_number_redeclaration): Update comments.
(symbol_from_uniqstr): If a new symbol is being created, assert
that symbols_sorted hasn't been allocated yet.
(symbols_free): Free symbols_sorted.
(symbols_cmp, symbols_cmp_qsort): New functions.
(symbols_do): Sort symbol_table into symbols_sorted on first
* tests/ (Numbered tokens): Recombine tests now that the
output should be deterministic across multiple numbers.
2009-08-12 Akim Demaille <>
distcheck: fix.
* examples/calc++/ (EXTRA_DIST): Ship calc.stamp.
2009-08-10 Joel E. Denny <>
* tests/ (TESTSUITE_AT): Add
2009-08-10 Joel E. Denny <>
Miscellaneous code readability improvements.
* src/reader.c (reader): Move %define front-end variable
defaults and checking into...
(prepare_percent_define_front_end_variables): ... this new
* src/scan-gram.l (INITIAL): For consistency with string
literals, don't store open quote on character literal. It's
discarded before returning anyway.
(SC_ESCAPED_CHARACTER): Similarly, don't store close quote.
Make length test more readable, and make the character stored
for an empty literal more obvious while consistent with the
previous behavior.
* src/symtab.c, src/symtab.h: Rename USER_NUMBER_ALIAS to
* src/symtab.c (symbol_make_alias): Remove comment from symtab.c
that is repeated in symtab.h. Improve argument names to make it
clear which side of the symbol-string alias pair is which.
(symbol_check_alias_consistency): Improve local variable names
for the same purpose.
* src/symtab.h (struct symbol): Make comments about aliases
(symbol_make_alias): Improve comments and argument name.
* src/output.c (token_definitions_output): Update for rename to
USER_NUMBER_HAS_STRING_ALIAS and improve comments about aliases.
2009-08-08 Alex Rozenman <>
Convert "misleading reference" messages to warnings.
* src/scan-code.l: New function 'show_sub_messages', more
* tests/ Adjust tests.
2009-08-06 Joel E. Denny <>
maint: run "make update-copyright"
2009-08-06 Joel E. Denny <>
maint: make update-b4-copyright easier to use
* build-aux/update-b4-copyright: In warnings, report line
numbers rather than character positions.
* (update-copyright-local): Set to update-b4-copyright so
that update-copyright runs it.
* gnulib: Update.
2009-08-05 Joel E. Denny <>
maint: clean up update-b4-copyright code
* build-aux/update-b4-copyright: Do not accept 2-digit
UPDATE_COPYRIGHT_YEAR, which was not handled correctly.
Don't accept a `[' in a b4_copyright argument.
Format code more consistently.
Don't assume b4*copyright never occurs.
2009-08-04 Joel E. Denny <>
maint: automate b4_copyright updates.
* (update-b4-copyright): New target rule.
* build-aux/ (EXTRA_DIST): Add update-b4-copyright.
* build-aux/update-b4-copyright: New.
* data/yacc.c: Remove stray characters around b4_copyright
2009-08-04 Joel E. Denny <>
maint: automate annual package-wide copyright-year update.
* .x-update-copyright: New.
* (EXTRA_DIST): Remove
* bootstrap.conf (gnulib_modules): Add maintainer-makefile and
update-copyright. Remove gnumakefile, which is implied by
* (bootstrap-tools): Copy from old
* gnulib: Update.
* Remove, now copied from gnulib.
* examples/extexi: Add missing "(C)" in copyright statement so
update-copyright can recognize it.
* src/LR0.h: Likewise.
* src/print.h: Likewise.
* src/print_graph.h: Likewise.
* src/gram.c: Add missing comma in copyright statement.
* src/gram.h: Likewise.
2009-08-04 Joel E. Denny <>
Fix "make distcheck".
* examples/calc++/ Say $(srcdir)/calc.stamp instead
of just calc.stamp.
2009-08-01 Joel E. Denny <>
Pacify "gcc -Wunused" for the input function from Flex.
Reported by Alex Rozenman. This warning shows up with gcc-4.3.0
and later.
* src/scan-code.l: Add "%option noinput", which I cannot find in
the Flex manual, but which Flex has supported since at least as
far back as 2.5.4. However, if any of our developers still use
Flex 2.5.4, they'll need to stop configuring with
--enable-gcc-warnings because "%option noinput" didn't work
correctly until Flex 2.5.6.
* src/scan-gram.l: Likewise.
* src/scan-skel.l: Likewise.
2009-07-31 Alex Rozenman <>
Fix --enable-gcc-warnings problems.
* src/reader.c: Adjust variable names.
* src/scan-code.l: Fix prototypes and adjust names.
* src/named-ref.c: Remove redundant "if".
2009-07-29 Joel E. Denny <>
Fix a --enable-gcc-warnings problem.
* src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length
2009-07-24 Alex Rozenman <>
Fix some memory leaks.
* src/named-ref.c: Add a pointer check (named_ref_free).
* src/scan-code.l: New function (variant_table_free). Called in
* src/symlist.c: Call to named_ref_free (symbol_list_free).
2009-07-24 Joel E. Denny <>
Warn about character literals not of length one.
* NEWS (2.5): Document.
* src/scan-gram.l (INITIAL): Remove comment that we don't check
the length.
(SC_ESCAPED_CHARACTER): Warn if length is wrong.
* tests/ (Bad character literals): New test group.
2009-07-24 Joel E. Denny <>
* src/lalr.c (state_lookahead_tokens_count): Correct comment.
2009-07-22 Joel E. Denny <>
Some M4 cleanup in the testsuite.
Suggested by Eric Blake at
* tests/ (_AT_TEST_EXISTING_GRAMMAR): Do not
complicate the code by distinguishing between a missing value
and an empty string value for an optional argument. This fix is
allowed by the similar fix in AT_TEST_TABLES_AND_PARSE below.
* tests/ (_AT_TEST_TABLES_AND_PARSE): Merge into...
(AT_TEST_TABLES_AND_PARSE): ... this now that the special
arguments are not needed because of the following changes.
Fix stale comments.
Bison developers should use GNU M4 and should not use
POSIXLY_CORRECT when building the test suite, so do not
complicate the code by avoiding $10 and above.
Do not quote an empty string value for an optional argument, and
do not distinguish between a missing value and an empty string
2009-07-21 Joel E. Denny <>
* m4/m4.m4: Make it a sym link to submodules/autoconf/m4/m4.m4.
2009-07-15 Joel E. Denny <>
Revert unnecessary column realignment in --help output.
Reported by Akim Demaille at
* src/getargs.c (usage): Here.
2009-07-04 Alex Rozenman <>
Alphabetical order in src/
* src/ Adjust.
2009-07-04 Alex Rozenman <>
Style changes and factoring.
* src/named-ref.h: Add comments.
* src/parse-gram.y: Readability and style changes.
* src/reader.c: Factoring: assign_named_ref function.
* src/scan-code.l: Factoring and style changes. Rename
parse_named_ref to parse_ref. Use "c-ctype.h" from gnulib.
Use "unsigned" type for variant index. Improve readablity.
* src/scan-gram.l: Change error messages and add comments.
* src/symlist.h: symbol_list_null: New function decl.
* src/symlist.c: symbol_list_null: Implement here.
* tests/ Adjust for new error messages.
2009-06-29 Eric Blake <>
scan-code: avoid compiler warnings
* src/scan-code.l (parse_named_ref): Use correct specifiers.
2009-06-29 Akim Demaille <>
build: avoid concurrent extraction of calc++.
* examples/calc++/ (calc.stamp): New.
Depend on it to create the sources of calc++ so that concurrent
builds don't launch several "extexi" in parallel.
Not only this is inefficient, this also builds incorrect sources
with several extractions mixed together.
2009-06-27 Alex Rozenman <>
Implement support for named symbol references.
* src/parse-gram.y: Add new syntax (named_ref.opt).
* src/reader.c: Store named refs in symbol lists.
* src/reader.h: New argument for symbol_append and
action_append functions.
* src/scan-code.h: Add new field (named_ref) into
code_props data structure. Keeps named ref of midrule
* src/scan-code.l: Support for named refs in semantic
action code. New function 'parse_named_ref'.
* src/scan-gram.l: Support bracketed id.
* src/symlist.c: Store named refs in symbol lists.
* src/symlist.h: New field in symbol list: named_ref.
* src/named-ref.h: New file, a struct for named_ref.
* src/named-ref.cp: New file, named_ref_new function.
* src/ Add two new files.
* tests/ Include new test group:
* tests/ this new file.
2009-06-25 Akim Demaille <>
hash: check insertion for memory exhaustion.
* src/uniqstr.c (uniqstr_new): New.
2009-06-11 Akim Demaille <>
style changes.
* data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
* src/print-xml.c: Style changes.
* tests/ Comment changes.
2009-06-11 Akim Demaille <>
xml: beware of user strings used to give a %prec to rules.
* tests/ (%prec with user strings): New.
* src/gram.c (grammar_rules_print_xml): Escape the precedence for
XML output.
2009-06-11 Akim Demaille <>
hash: check insertion for memory exhaustion.
* src/muscle-tab.c (muscle_insert, muscle_grow)
* src/state.c (state_hash_insert): Check the return value of
2009-06-10 Akim Demaille <>
deterministic test suite.
Some consistency checks on symbols are performed after all the
symbols were read, by an iteration over the symbol table. This
traversal is nondeterministic, which can be a problem for test
Avoid this.
Addresses another form of nondeterminism reported by Joel E. Denny.
* tests/ (Numbered tokens): Split the hexadecimal/decimal
test in two.
Use different file names for the three tests to make the
maintenance easier.
2009-06-10 Akim Demaille <>
deterministic user-token-number redeclaration errors.
Address nondeterminism reported by Joel E. Denny.
* src/uniqstr.h: Comment changes.
* src/location.h (boundary_cmp, location_cmp): New.
* src/symtab.c (user_token_number_redeclaration): New.
(symbol_translation): Use it.
* tests/ (Numbered tokens): Adjust the expected output.
2009-05-25 Akim Demaille <>
gnulib: update.
* gnulib: Update to latest.
* lib/.cvsignore, lib/.gitignore, m4/.cvsignore,
* m4/.gitignore: Regen.
* src/symtab.c (symbol_from_uniqstr, semantic_type_from_uniqstr):
Call xalloc_die on hash_insert failures.
Requested by the new __warn_unused_result__ attribute of
2009-05-22 Joel E. Denny <>
Convert multiple variable definition warnings to complaints.
* NEWS (2.5): Add a new entry for that change.
* doc/bison.texinfo (Decl Summary): Update %define entry.
(Bison Options): Update -D/--define/-F/--force-define entry.
* src/muscle_tab.c (muscle_percent_define_insert): Implement.
* src/muscle_tab.h (muscle_percent_define_insert): Update
* tests/ (`%define errors'): Update.
(`%define, --define, --force-define'): Update.
2009-05-22 Joel E. Denny <>
-F/--force-define and relative %define/-D/--define priorities.
* NEWS (2.5): Add documentation to -D/--define entry.
* build-aux/ Hard-code association of
--force-define with %define.
* doc/bison.texinfo (Decl Summary): In %define entry,
cross-reference command-line options.
(Bison Options): Add documentation to -D/--define entry.
(Option Cross Key): Widen column for --force-define row.
* src/getargs.c (usage): Document -F/--force-define. Realign
options in output.
(short_options, long_options, getargs): Parse -F/--force-define,
and update muscle_percent_define_insert invocation.
* src/muscle_tab.h (muscle_percent_define_how): New enum type.
(muscle_percent_define_insert): Add argument with that type.
* src/muscle_tab.c (muscle_percent_define_insert): Implement
-F/--force-define behavior and priorities.
* src/parse-gram.y (prologue_declaration): Update
muscle_percent_define_insert invocations.
* tests/ (`%define, --define'): Rename to...
(`%define, --define, --force-define'): ... this and extend.
2009-05-22 Joel E. Denny <>
Update some comments to make sense for -D.
* data/bison.m4 (b4_check_user_names): In header comments, say
"user occurrence" instead of "grammar occurrence".
* src/muscle_tab.h (muscle_percent_define_insert): Likewise.
(muscle_percent_code_grow): Likewise just for consistency.
2009-05-22 Joel E. Denny <>
* data/c++.m4: Update copyright year.
2009-05-20 Joel E. Denny <>
* data/c++.m4 (b4_namespace_close): Simplify slightly.
2009-05-19 Joel E. Denny <>
Handle a trailing `:' in a user-supplied C++ namespace better.
* data/c++.m4 (b4_namespace_close): Don't let it be printed
among the closing braces here. This fix might make the
generated code easier to debug, but otherwise it should be
insignificant because a trailing `:' is a C++ error already.
2009-05-19 Akim Demaille <>
remove useless variable.
* src/getargs.c (skeleton_arg): Remove now useless variable.
Should help the compiler see that this printf-like call is sane.
2009-05-11 Akim Demaille <>
doc: use C++ headers.
* doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
2009-05-05 Akim Demaille <>
fix hexadecimal token number support.
* src/scan-gram.l: Catch incorrect ids after hexadecimal numbers.
2009-05-05 Akim Demaille <>
tests: check token numbers.
* tests/ (Numbered tokens): New.
2009-05-04 Akim Demaille <>
bison: catch bad symbol names.
* src/scan-gram.l({int}{id}): Report as an invalid identifier.
* tests/ Adjust.
2009-05-04 Akim Demaille <>
space changes.
* src/scan-gram.l: Untabify to be robust to zealous editors.
2009-05-04 Akim Demaille <>
identifiers: dashes are letters.
Dashes can now start identifiers (symbols and directives).
* src/scan-gram.l ({letter}): Add dash.
({id}): Remove it.
* tests/ (Symbols): Adjust.
Remove stray comment.
* tests/ (Invalid inputs): Adjust error message.
* doc/bison.texinfo (Symbols): Update.
2009-05-01 Joel E. Denny <>
Declare %code to be a permanent feature.
* NEWS (2.4.2): Here.
* doc/bison.texinfo (Prologue Alternatives): Don't say it's
(Decl Summary): Likewise.
2009-04-30 Joel E. Denny <>
Convert underscores to dashes in some %define variable names.
For now, just api.push-pull and lr.keep-unreachable-states.
Maintain old names for backward compatibility.
* NEWS (2.5): Document.
* data/c.m4 (b4_identification): Update comment.
* data/yacc.c: Update access.
* doc/bison.texinfo: Update.
* etc/ (bench_grammar): Update use.
* src/files.c (tr): Move to...
* src/getargs.c, src/getargs.h (tr): ... here because I can't
think of a better place to expose it. My logic is that, for all
uses of tr so far, command-line arguments can be involved, and
getargs.h is already included.
* src/main.c (main): Update access.
* src/muscle_tab.c (muscle_percent_define_insert): Convert old
variable names to new variable names before assigning value.
* src/reader.c (reader): Update setting default.
* tests/ Update uses.
* tests/ (Unreachable States After Conflict
Resolution): Update use.
* tests/ (%define enum variables): Update use.
(%define backward compatibility): New test group.
* tests/ Update uses.
* tests/ Update uses.
* tests/ Update uses.
2009-04-30 Joel E. Denny <>
Set all front-end %define defaults in one place.
* src/main.c (main): Move lr.keep_unreachable_states default...
* src/reader.c (reader): ... to here.
2009-04-29 Joel E. Denny <>
Rename lr.default_reductions to lr.default-reductions.
* NEWS (2.5): Here.
* doc/bison.texinfo: Here.
* src/lalr.c (initialize_LA): Here.
* src/print.c (print_reductions): Here.
* src/reader.c (reader): Here.
* src/tables.c (action_row): Here.
* tests/ (%define enum variables): Here.
2009-04-29 Joel E. Denny <>
Pacify ./configure --enable-gcc-warnings.
* tests/ (Symbols): Prototype yyerror and yylex.
2009-04-21 Akim Demaille <>
tests: check the use of dashes and periods in symbols.
* tests/ (Symbol): New test group.
2009-04-29 Joel E. Denny <>
Document how `%define "var" "value"' is not M4-friendly.
* src/parse-gram.y (variable): In comments here.
2009-04-29 Joel E. Denny <>
Add copyright updates missed during previous cherry pick.
* src/output.c: Here.
* src/parse-gram.y: Here.
* src/scan-gram.l: Here.
2009-04-20 Akim Demaille <>
variables: accept dashes.
* src/scan-gram.l ({id}): Also accept dashes after the initial
({directive}): Use {id}.
* src/parse-gram.y: Comment and formatting changes.
* doc/bison.texinfo (Symbols): Adjust the lexical definitions of
* src/complain.h, src/complain.c (yacc_at): New.
* src/symtab.c (symbol_new): Use yacc_at to report inappropriate
symbol names.
* src/output.c (token_definitions_output): Do not #define token
names with dashes.
2009-04-24 Joel E. Denny <>
Clean up recent patches a little.
Reported by Akim Demaille.
* doc/bison.texinfo (Understanding): Fix typos.
* src/print.c (print_reductions): Don't use negated variable.
2009-04-24 Joel E. Denny <>
List accepted values for a %define enum variable with an invalid value.
Suggested by Akim Demaille at
* data/bison.m4 (_b4_percent_define_check_values): Implement.
* src/muscle_tab.c (muscle_percent_define_check_values): Implement.
* tests/ (%define lr.default_reductions invalid values): Merge
(%define enum variables): ... here, and update output.
2009-04-23 Joel E. Denny <>
Rename "default rule" to "default reduction".
This includes changing variable names in code, changing
comments, and renaming %define lr.default_rules to %define
* NEWS (2.5): Update IELR documentation.
* data/glr.c, data/, data/, data/yacc.c:
Adjust YYDEFACT and yydefact_ documentation.
* doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions
and lr.type documentation. Make some other wording
(Glossary): Adjust cross-references and Default Reduction
* src/lalr.c (state_lookahead_tokens_count): Adjust code.
Remove a confusing comment pointed out by Akim Demaille.
(initialize_LA): Adjust code.
* src/print-xml.c (print_reductions): Adjust code.
* src/print.c (print_reductions): Adjust code.
* src/reader.c (reader): Adjust code.
* src/tables.c (action_row): Adjust code.
(token_actions): Adjust code.
* src/tables.h: Adjust YYDEFACT documentation.
* tests/ (%define lr.default_rules invalid values):
Rename test group to...
(%define lr.default_reductions invalid values): ... this, and
update grammar file and expected output.
* tests/ (AT_TEST_LR_DEFAULT_RULES): Rename to...
(AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.
2009-04-21 Joel E. Denny <>
Document %define lr.type and lr.default_rules.
* NEWS (2.5): Add an entry.
* src/getargs.c (usage): Mention IELR(1) and canonical LR(1)
besides just LALR(1) and GLR(1).
* doc/bison.texinfo (Introduction): Likewise.
(Language and Grammar): Bison is no longer limited to LALR(1)
(GLR parsing): Say deterministic or LR(1) rather than LALR(1)
when trying to distinguish from GLR. Talk about LR(1) grammars
rather than LALR(1) grammars.
(Decl Summary): In %define api.push_pull entry, say it applies
to deterministic parsers in C rather than LALR(1) parsers in C.
Add lr.default_rules entry.
Add lr.type entry.
(Mystery Conflicts): Bison is no longer limited to LALR(1)
(Generalized LR Parsing): Same changes as for the previous GLR
(Memory Management): Say deterministic rather than LALR(1).
(Understanding): Correct some bison output.
Index discussion of "accepting state".
Say deterministic rather than LALR(1).
(Bison Options): In --yacc entry, say deterministic rather than
In --report, --graph, and --xml entries, just don't mention
(C++ Parsers): Say deterministic rather than LALR(1).
(Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry.
(Glossary): Add Accepting State, Consistent State, Default Rule,
and IELR(1) definitions.
In Generalized LR (GLR) definition, make same changes as in
previous GLR sections.
In LALR(1) definition, say Bison uses LALR(1) by default rather
than implying Bison is limited to LALR(1).
(LocalWords): Add IELR.
2009-04-21 Joel E. Denny <>
Finish implementing %define lr.type.
Its value can be "LALR", "IELR", or "canonical LR".
* lib/timevar.def (TV_IELR_PHASE1): New var.
(TV_IELR_PHASE2): New var.
(TV_IELR_PHASE3): New var.
(TV_IELR_PHASE4): New var.
* src/ (bison_SOURCES): Add AnnotationList.c,
AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c,
Sbitset.h, ielr.h, and ielr.c.
* src/getargs.h, src/getargs.c (enum trace, trace_args,
trace_types): Add trace_ielr.
* src/lalr.h, src/lalr.c (ngotos): Export it.
(F): Rename to...
(goto_follows): ... this, update all uses, and export it.
(set_goto_map): Export it.
(map_goto): Export it.
(compute_lookahead_tokens): Don't free goto_follows yet. Now
handled in ielr.
(initialize_LA): Export it. Move lookback allocation to...
(lalr): ... here because, for canonical LR, initialize_LA must
be invoked but lookback and much of the rest of LALR isn't
* main.c (main): Instead of lalr, invoke ielr, which invokes
* src/reader.c (reader): Default lr.type to "LALR".
Default lr.default_rules to "accepting" if lr.type is "canonical
LR". Leave the default as "all" otherwise.
Check for a valid lr.type value.
* src/state.h, src/state.c (struct state_list): Add state_list
(state_new): Initialize state_list member to NULL.
(state_new_isocore): New function, exported.
* tests/ (AT_TEST_EXISTING_GRAMMAR): New macro that
exercises all values of lr.type.
(GNU AWK Grammar): Rename test group to...
(GNU AWK 3.1.0 Grammar): ... this, and extend to use
(GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR.
(GNU pic Grammar): Rename test group to...
(GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use
* tests/ (AT_TEST_LR_TYPE): New macro that exercises
all values of lr.type.
(Single State Split): New test groups using AT_TEST_LR_TYPE.
(Lane Split): Likewise.
(Complex Lane Split): Likewise.
(Split During Added Lookahead Propagation): Likewise.
2009-04-21 Joel E. Denny <>
Add new files for IELR and canonical LR implementation.
* src/AnnotationList.c: New.
* src/AnnotationList.h: New.
* src/InadequacyList.c: New.
* src/InadequacyList.h: New.
* src/Sbitset.c: New.
* src/Sbitset.h: New.
* src/ielr.c: New.
* src/ielr.h: New.
2009-04-20 Joel E. Denny <>
Implement %define lr.default_rules.
Its value describes the states that are permitted to contain
default rules: "all", "consistent", or "accepting".
* src/reader.c (reader): Default lr.default_rules to "all".
Check for a valid lr.default_rules value.
* src/lalr.c (state_lookahead_tokens_count): If lr.default_rules
is "accepting", then only mark the accepting state as
(initialize_LA): Tell state_lookahead_tokens_count whether
lr.default_rules is "accepting".
* src/tables.c (action_row): If lr.default_rules is not "all",
then disable default rules in inconsistent states.
* src/print.c (print_reductions): Use this opportunity to
perform some assertions about whether lr.default_rules was
obeyed correctly.
* tests/ (AT_TEST_TABLES_AND_PARSE): New macro that
helps with checking the parser tables for a grammar.
* tests/ (%define lr.default_rules invalid values): New
test group.
* tests/ (AT_TEST_LR_DEFAULT_RULES): New macro using
(`no %define lr.default_rules'): New test group generated by
(`%define lr.default_rules "all"'): Likewise.
(`%define lr.default_rules "consistent"'): Likewise.
(`%define lr.default_rules "accepting"'): Likewise.
2009-04-20 Akim Demaille <>
Consistently refer to Yacc, not YACC.
* src/getargs.c (usage, warnings_args): s/YACC/Yacc/.
2009-04-17 Joel E. Denny <>
Pacify make maintainer-check-posix.
* tests/ (%define, --define): Move bison command-line
options before grammar file name.
2009-04-04 Joel E. Denny <>
Document semicolon warnings.
* NEWS (2.5): Here.
2008-12-08 Akim Demaille <>
Fix portability issue in the test suite.
* tests/ (AT_MATCHES_CHECK): New.
Based on Perl instead of Sed. Sed has too many portability
pitfalls, not ever Sed is GNU Sed.
* tests/ (Fix user actions without a trailing semicolon):
Use it.
2008-12-07 Di-an Jan <>
Implement the FIXME that ends an user action with a semicolon
if it seems necessary.
* src/scan-code.l (flex rules section): Flag cpp directive from
any `#' to the first unescaped end-of-line. Semicolon is not
needed after `;', `{', '}', or cpp directives and is needed after
any other token (whitespaces and comments have no effect).
* tests/ (Fix user actions without a trailing semicolon):
New test.
* tests/ (AT_CHECK_UNUSED_VALUES): Add semicolons to
to make user actions complete statements.
Adjust column numbers in error messages.
* tests/ (Fix user actions without a trailing semicolon):
Remove. Covered by new test.
2009-04-14 Akim Demaille <>
doc: minor fixes.
* doc/bison.texinfo (Decl Summary): Fix entry about %debug.
(Table of Symbols): Remove duplicate entry for %debug.
2009-04-10 Eric Blake <>
submodules: update to latest
* submodules/autoconf: Use latest upstream Autoconf.
2009-04-06 Eric Blake <>
Work around autoconf 2.63b bug in testsuite.
* tests/ (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping
autoconf bug related to # in test.
2009-04-06 Joel E. Denny <>
* NEWS (2.5): Describe new -D/--define feature.
2008-11-10 Akim Demaille <>
* src/getargs.h, src/getargs.c (trace_muscle): New.
(trace_types, trace_args): Support it.
* src/output.c (output_skeleton): Use it.
2008-11-10 Akim Demaille <>
* src/output.c (muscles_output): New, extracted from...
(output_skeleton): here.
2008-11-21 Akim Demaille <>
Display the changes in cross-options.texi.
* build-aux/ ($sep): New, to separate items.
* doc/ ($(srcdir)/cross-options.texi): Use diff to display
the changes.
2008-11-20 Di-an Jan <>
Improves options in the manual.
* doc/bison.texinfo (-g, -x): Add space before argument.
(Option Cross Key): Implement FIXME: listing directives also.
* build-aux/ Read from <STDIN> rather than <>.
(Short Option): Special case -d. Put arguments inside @option.
(Bison Directive): Add column, automatically extracted from
src/scan-gram.l (actual name passed as the first argument)
with special case for %define.
* doc/ (doc/cross-options.texi): Pass src/scan-gram.l
to build-aux/
* src/getargs.c (usage): Document limitations of
* src/scan-gram.l: Likewise.
2009-02-25 Akim Demaille <>
Copyright years.
* data/glr.c: Add 2007 and 2008 here, consistenly with the comments.
2008-12-08 Akim Demaille <>
Install autoconf as a submodule to get m4sugar.
* .gitmodules: Add submodules/autoconf.
* data/m4sugar/foreach.m4, data/m4sugar/m4sugar.m4: Now links into
2008-11-17 Joel E. Denny <>
Simplify last patch slightly.
* src/getargs.c (getargs): Here.
2008-11-17 Joel E. Denny <>
Fix last warning from --enable-gcc-warnings.
* src/getargs.c (getargs): Don't assign const address to non-const
2008-11-17 Di-an Jan <>
Handle --enable-gcc-warnings.
* src/getargs.c (command_line_location): Set parameters to void.
2008-11-11 Akim Demaille <>
* tests/, tests/ Use it.
2008-11-07 Akim Demaille <>
Pass command line location to skeleton_arg and language_argmatch.
* src/getargs.h, src/getargs.c (skeleton_arg, language_argmatch):
The location argument is now mandatory.
Adjust all dependencies.
(getargs): Use command_line_location.
2008-11-07 Akim Demaille <>
-D, --define.
* src/getargs.c (usage): Document -D.
Fix help string for --locations.
(command_line_location): New.
(short_options, long_options, getargs): Support -D, --define.
(getargs): Move -d support at the right place.
* doc/bison.texinfo (Bison Options): Update.
* tests/ (%define, --define): New.
2008-11-07 Akim Demaille <>
Initialize the muscle table before parsing the command line.
* src/getargs.c (quotearg.h, muscle_tab.h): Include.
(getargs): Define file_name.
* src/main.c (main): Initialize muscle_tab before calling
* src/muscle_tab.c (muscle_init): No longer define file_name, as
its value is not available yet.
2008-11-09 Akim Demaille <>
Require the generation of parse-gram.output.
* src/ (YACC): Pass --report=all.
2009-04-06 Joel E. Denny <>
* NEWS (2.5): New stub.
2009-04-06 Joel E. Denny <>
Fix options documentation.
* build-aux/ As in --help output, write optional
arguments as [=ARG] not =[ARG].
* doc/bison.texinfo (Bison Options): Add -W/--warnings argument.
2008-11-07 Akim Demaille <>
Fix --help.
* src/getargs.c (usage): Fix help string for -W.
2008-11-07 Akim Demaille <>
Handle more general types of option arguments.
* build-aux/ The argument ends at the first
space, not the first non-symbol character.
Use @var for each word appearing the argument description.
2009-04-04 Joel E. Denny <>
Remove spurious initial empty lines.
* data/ End the @output lines with an @.
2008-11-04 Akim Demaille <>
Remove spurious initial empty lines.
* data/glr.c, data/, data/, data/,
* data/yacc.c: End the @output lines with an @.
2009-04-04 Joel E. Denny <>
Replace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4.
If the first m4 in $PATH is wrong, it keeps looking. Moreover, its
requirements for a correct m4 are stricter.
* m4/m4.m4: Replace with Autoconf 2.63's m4/m4.m4.
* Update to use AC_PROG_GNU_M4.
Reported by Eric Blake.
2009-04-03 Joel E. Denny <>
Help with updating web manual.
* HACKING: Incorporate instructions from gnulib/doc/README.
* bootstrap.conf (gnulib_modules): Add gendocs.
2009-04-03 Joel E. Denny <>
Fix strange %define locations for default values.
Reported by Akim Demaille at
and discussed again starting at
* data/bison.m4 (b4_percent_define_default): Leave syncline blank
because location information is bogus.
Use angle brackets to delimit fake file name because square brackets
look like underexpanded m4. Choose a better fake file name.
Use negative line numbers.
* src/muscle_tab.c (muscle_percent_define_default): Likewise.
* src/location.c (location_print): If line for a boundary is negative,
only print that boundary's file name.
* src/location.h: Document that.
* tests/ (%define Boolean variables: invalid skeleton
defaults): Update output.
2008-11-07 Akim Demaille <>
Locations without columns for command line arguments.
* src/location.c (location_print): Don't display negative columns.
* src/location.h: Document this.
2009-02-03 Joel E. Denny <>
Add reminder about uploading public key to
* HACKING (Release Procedure): Here.
2009-03-31 Akim Demaille <>
bootstrap: --help to stdout.
* bootstrap (usage): Don't send --help to stderr.
Use a here doc instead of a long string.
2009-03-31 Akim Demaille <>
bootstrap: README-hacking no longer exists
* bootstrap (checkout_only_file): Set to HACKING.
2009-03-26 Akim Demaille <>
doc: merge HACKING and README-hacking.
Two files is confusing.
Reported by Alexandre Duret-Lutz.
* README-hacking: Merge into...
* HACKING (Working from the repository): here.
2009-03-26 Akim Demaille <>
doc: update README-hacking.
* README-hacking: We now use git and git submodules.
Reported by Ralf Wildenhues and Alexandre Duret-Lutz.
2009-03-26 Akim Demaille <> avoid GCC 4.3 warnings.
GCC 4.3 now warns about "a || b && c" and asks for explicit
Reported by Alexandre Duret-Lutz.
* data/ Update copyright years.
(Position::operator==): Use parens to make precedence explicit.
Compare lines and columns first, as they are more likely to be
different, and they are faster to compare.
2009-03-26 Akim Demaille <>
gnulib: update.
* gnulib: Update to latest.
* lib/ (AM_CPPFLAGS): It is now defined by gnulib, so
use +=.
2009-01-08 Akim Demaille <>
Fix grep portability issues.
Grep on Solaris does not support -q.
Reported by Summum Bonum.
* NEWS: Add a stub for 2.4.2.
* THANKS: Add Summum Bonum.
* tests/ (EGREP): New.
(CC, CXX, XSLTPROC): Make it possible to override them via
* tests/ Use $EGREP instead of egrep.
Use AT_CHECK's ignore instead of grep's -q.
2008-12-11 Joel E. Denny <>
Version 2.4.1.
* NEWS: Set version and date.
* lib/ Update copyright year.
* tests/ Update copyright year.
2008-12-11 Joel E. Denny <>
Semicolon feature removal is not about future language support.
* NEWS: The semicolon feature is no longer active for newer languages,
so don't claim that it causes trouble for them.
2008-12-11 Joel E. Denny <>
* gnulib: Update submodule to HEAD.
2008-12-09 Akim Demaille <>
Update data/README.
* data/README: Document,, m4sugar and xslt.
2008-12-05 Eric Blake <>
Build testsuite with newer autoconf.
* tests/ (m4_expand): Don't override in newer autoconf,
where the underlying implementation changed.
(_AT_VERBOSE_GLR_STDERR): Expand to double-quoted strings,
since some of them contain unbalanced ')'.
2008-11-19 Joel E. Denny <>
* NEWS: Clarify a little.
2008-11-19 Joel E. Denny <>
* NEWS: Update for recent changes.
2008-11-18 Joel E. Denny <>
Fix unexpanded macros in GLR defines file.
Reported by Csaba Raduly at
* THANKS (Csaba Raduly): Add.
* data/glr.c: Fix overquoting on b4_prefix for yylval and yylloc.
* tests/ (_AT_DATA_CALC_Y): If %defines is specified, generate
lexer in a separate module that includes the defines file.
(AT_CHECK_CALC): Use AT_FULL_COMPILE and request compilation of lexer
Adjust AT_LOC and AT_VAL to use AT_NAME_PREFIX.
(AT_FULL_COMPILE): New, copied from master branch and extended to
support an additional source file.
2008-11-17 Joel E. Denny <>
Don't let maintainer-*-check targets force a version update.
* (_is-dist-target): Implement. maintainer-check* was already
2008-11-17 Di-an Jan <>
* doc/bison.texinfo: Synchronize ``Detail Node Listing''.
Align menus. Adjust word wrapping. Use node names for menu names.
(Examples): Don't abbreviate node names.
(LocalWords): Remove abbreviations.
(Copying): Make description a sentence.
(Java Action Features): Remove period to match the rest of menu.
2008-11-11 Paolo Bonzini <>
* bootstrap.conf: Replace m4/warning.m4 with warnings module.
* Adjust usage.
* lib/ Replace $(WARNING_CFLAGS) with $(WARN_CFLAGS).
* src/ Replace $(WARNING_CFLAGS) with $(WARN_CFLAGS).
* tests/ Replace $(WARNING_*FLAGS) with $(WARN_*FLAGS).
2008-11-07 Joel E. Denny <>
Don't add a semicolon to actions for %skeleton or %language.
It breaks Java test cases as reported by Akim Demaille.
* src/scan-code.l: Implement.
2008-11-07 Joel E. Denny <>
Clean up %skeleton and %language priority implementation.
* src/getargs.c (skeleton_prio): Use default_prio rather than 2, and
remove static qualifier because others will soon need to see it.
(language_prio): Likewise.
(getargs): Use command_line_prio rather than 0.
* src/getargs.h (command_line_prio, grammar_prio, default_prio): New
enum fields.
(skeleton_prio): Extern it.
(language_prio): Extern it.
* src/parse-gram.y: Use grammar_prio rather than 1.
2008-11-04 Akim Demaille <>
* NEWS: Mention the trailing semicolon in action.
2008-11-04 Akim Demaille <>
Reformat NEWS.
* NEWS: Use more outline-mode markup.
Suggested by Jim Meyering.
2008-11-04 Joel E. Denny <>
Fix user actions without a trailing semicolon.
Reported by Sergei Steshenko at
* THANKS (Sergei Steshenko): Add.
* src/scan-code.l (SC_RULE_ACTION): Fix it.
* tests/ (Fix user actions without a trailing semicolon):
New test case.
2008-11-02 Joel E. Denny <>
Initiate further development.
* NEWS: Create an empty section for new entries.
* gnulib: Update submodule to HEAD.
2008-11-02 Joel E. Denny <>
* NEWS: Version 2.4.
2008-11-02 Joel E. Denny <>
Prepare for next release.
* NEWS: Briefly mention changes since 2.3b.
* README: Say GNU m4 1.4.6, which we've been requiring in release
announcements already, not 1.4.3, which breaks the build.
2008-11-02 Joel E. Denny <>
Say %language is experimental.
We're thinking of extending it's effect on output file naming. See the
thread at
* NEWS: Say it's experimental.
* doc/bison.texinfo (Decl Summary): Say it's experimental, and so don't
recommend it over %skeleton for now.
(Bison Options): Likewise.
(C++ Bison Interface): Use %skeleton not %language.
(Calc++ Parser): Use %skeleton not %language.
* src/getargs.c (usage): Say it's experimental.
2008-11-01 Di-an Jan <>
Paolo Bonzini <>
Support all Java parser class modifiers.
* data/java.m4 (b4_percent_define_get3): New.
(b4_final_if, b4_strictfp_if): New.
* data/ (final, strictfp, extends, implements): Support.
* doc/bison.texinfo (final, strictfp, extends, implements): Add
* tests/ (AT_CHECK_JAVA_MINIMAL): New.
(Java parser class modifiers): New test.
(Java parser class extends and implements): New test.
Model exception propagation better with throws and lex_throws.
* data/java.m4 (b4_list2): New.
(throws): Change default.
* data/ (yyaction): Add throws.
(parse): Add lex_throws in addition to throws.
* doc/bison.texinfo (throws, lex_throws): Add documentation.
* tests/ (Java throws specifications): New test.
Improve documentation for Java parsers.
* doc/bison.texinfo (Java Parsers): Add subsections.
Don't quote first argument of %define.
(Java Bison Interface): Document output files. Move documentation
of parser class and merge into Java Parser Interface. Document
features that error out. Document directives with no effect.
Move note about Javadoc higher.
(Java Semantic Values): Explicitly mention stype.
Document that generic types cannot be used.
(Java Location Values): Use @deftypeivar. Document constructors.
Correct return value for toString.
(Java Parser Interface): List undocumented constants/fields.
Move documentation of fields added by %parse-param closer to list
of members. Document that token names are added as fields.
Document constructors accurately. Remove error method.
(Java Scanner Interface): Move note on %pure-parser to Java Bison
Interface. Describe %code lexer and yylex accutately.
Remove documentation that does not match the code.
(Java Action Features): New.
(Java Differences): Add reference. Add item on semantic values.
Add note about @{ ... @}. Clarify %% epilogue placement.
(Java Declarations Summary): New.
Fix Java skeleton.
* data/java.m4 (b4_prefix): Correct quoting for m4_define_default.
(b4_remove_comma): Quote test argument.
(b4_identification): Remove "bison" field.
* tests/ (Java parser class and package names): New test.
(Java %parse-param and %lex-param): New test.
(Java stype, position_class and location_class): New test.
2008-10-31 Di-an Jan <>
* data/lalr1.jave: Update copyright years.
(YYParser): Correct name of "generated from" file in Javadoc:
use b4_file_name instead of @ofile@.
(Location constructor): Correct Javadoc parameter name.
(yylloc): Add missing opening m4 quote after b4_location_if.
This removes a stray [ in the Javadoc of Lexer.getStartPos.
(Lexer.yyerror): Fix incorrect m4 and Javadoc.
(YYParser constructor): Correct Javadoc parameter name.
2008-10-30 Joel E. Denny <>
Always put auxiliary code files in the same dir as other output files.
* src/files.c (compute_file_name_parts): When the user specifies
--output but not --file-prefix, extract the directory prefix from the
file prefix not from the grammar file name. This affects the location
of files like location.hh generated by the C++ skeleton. The includes
in the other output files require this fix.
* tests/ (AT_CHECK_OUTPUT): Automatically create directories
for expected output files.
(Output files): Add a test for the above.
2008-10-29 Joel E. Denny <>
* gnulib: Update submodule to HEAD.
2008-10-28 Joel E. Denny <>
Update copyright year.
* src/files.c: Here.
2008-10-28 Di-an Jan <> (tiny change)
Don't overwrite the input file.
* src/files.c (output_file_name_check): Fatal error if using input file
for output.
* tests/ (AT_CHECK_CONFLICTING_OUTPUT): Add return status
(Conflicting output files): Add test.
2008-10-28 Akim Demaille <>
Space changes.
* data/ Formatting changes.
2008-10-28 Akim Demaille <>
Don't define debugging functions when !YYDEBUG.
* data/ (debug_stream, set_debug_stream)
(debug_level_type, debug_level, set_debug_level): Don't
declare them when YYDEBUG is not defined.
The implementation are already YYDEBUG-aware.
2008-10-28 Akim Demaille <>
Prefer "continue" for empty loop bodies.
* etc/ Use "continue" instead of {}.
2008-10-28 Akim Demaille <>
Space and comments changes.
* data/c++.m4, data/glr.c, data/ Copyright year changes.
* data/c.m4, data/ Space changes.
2008-10-28 Akim Demaille <>
Make gnulib a submodule.
* gnulib: New.
* .gitmodules (gnulib): New.
2008-10-18 Joel E. Denny <>
Fix yyerror_range for user-defined location type in C++. Reported by
Georg Sauthoff at
* data/ (parse): Change type of yyerror_range to location_type.
* THANKS (Georg Sauthoff): Add.
2008-10-18 Joel E. Denny <>
Update several administrative files mainly to facilitate releasing.
* HACKING (Administrivia): Make the git-merge-changelog notes more
(Test suite): Don't say is not exercised in the test suite.
(Release Procedure): Update for git and add numerous details that were
previously missing.
* (EXTRA_DIST): Remove Makefile.cfg and Makefile.maint.
* (announcement): Don't list bison as a bootstrap tool so
that announcements don't claim we bootstrapped with whatever bison
happened to be in PATH. Add flex as a bootstrap tool.
* Makefile.maint: Remove, previously replaced by
* Makefile.cfg: Remove, and migrate settings to...
* ... here for the sake of `make announcement'.
* bootstrap.conf (gnulib_modules): Add announce-gen.
* README: Say GNU Bison instead of just Bison. Suggested by Karl
2008-10-08 Di-an Jan <> (tiny change)
Small but important bugfixes for the Java skeleton.
* data/ (yyerror): Change Location to b4_location_type.
(yy_symbol_print): Call toString on yyvaluep.
2008-08-29 Akim Demaille <>
Clarify UPDATED use.
* doc/bison.texinfo: It refers to the last edition of this file,
not to the release date of Bison.
Reported by Joel E. Denny.
2008-08-29 Akim Demaille <>
* README: Update FAQ pointer.
Reported by Joel E. Denny.
2008-08-27 Eric Blake <>
Resync m4sugar from autoconf.
* data/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine)
(m4_init): Adjust to latest m4.git changes.
(m4_mapall_sep, _m4_list_cmp, m4_version_compare): Reduce side
* data/m4sugar/foreach.m4 (_m4_shiftn): Fix off-by-one bug.
(_m4_list_cmp): Reduce side effects.
2008-08-27 Akim Demaille <>
Check yyerrok in
* tests/ (calc.y): Use yyerrok on "( error )".
(AT_CHECK_CALC): Add a check that ensures that yyerrok works as
2008-08-27 Akim Demaille <>
Support yyerrok in
YYBACKUP is still to import back into
* data/ (yyerrork, yyclearin, YYRECOVERING): Define.
2008-08-26 Joel E. Denny <>
For maintainer-check*, don't recompile for a $(VERSION) update.
* New file.
(_is-dist-target): Override the one in GNUmakefile.
2008-08-26 Joel E. Denny <>
Update for recent change to gnulib.
* src/parse-gram.y: Don't include strverscmp.h. It comes from
string.h now.
2008-08-15 Eric Blake <>
Remaining m4sugar merge from autoconf.
* data/m4sugar/m4sugar.m4: Copy entire file from autoconf.
* data/m4sugar/foreach.m4: New file, copied from autoconf.
* data/ (dist_m4sugar_DATA): Distribute it.
* src/output.c (output_skeleton): Tell m4 how to find it.
Partial m4sugar merge from autoconf: m4_map.
* data/m4sugar/m4sugar.m4 (m4_fst): Delete.
(m4_map, m4_map_sep, _m4_map): Rewrite more efficiently.
(m4_apply, _m4_apply, m4_mapall, m4_mapall_sep): New macros.
* data/java.m4 (b4_token_enums): Use more efficient short-circuit
for empty list.
* data/c.m4 (b4_token_defines, b4_token_enums, b4_c_ansi_formals):
(b4_parse_param_for): Avoid m4_fst, now that autoconf no longer
declares it.
2008-08-07 Joel E. Denny <>
Keep .version and PACKAGE_VERSION in sync.
* ($(top_srcdir)/.version): Declare configure as a
dependency, and add comments justifying this in more detail. Discussed
starting at
2008-08-06 Eric Blake <>
Partial m4sugar merge from autoconf: m4_shiftn.
* data/m4sugar/m4sugar.m4 (m4_shiftn): Faster implementation.
(m4_shift2, m4_shift3): New macros.
(m4_case, m4_bmatch, m4_bpatsubsts, m4_join): Adjust clients.
* data/c.m4 (b4_c_function_def, b4_c_ansi_function_def)
(b4_c_ansi_function_decl, b4_c_function_call): Likewise.
* data/java.m4 (b4_remove_comma): Likewise.
Partial m4sugar merge from autoconf: m4_wrap vs. m4 1.6.
* data/m4sugar/m4sugar.m4 (m4_unquote, m4_wrap_lifo): New macros.
(m4_wrap): Guarantee FIFO order, in spite of m4 1.6.
(m4_init): Consolidate wrapped text into single m4_wrap.
* data/bison.m4 (b4_check_user_names_wrap): Stick with LIFO order
in wrapped text.
2008-08-05 Eric Blake <>
Partial m4sugar merge from autoconf: builtins, version.m4.
* data/m4sugar/m4sugar.m4 (changeword): Nuke.
(m4_prepend): Remove, as it is unused and inherently quadratic,
whereas m4_append is linear in newer m4.
(m4_mkstemp): New builtin.
(m4_symbols): Make rename conditional.
(m4_version_prereq): Ensure fatal error if used in bison, which
intentionally lacks version.m4.
Fix comments in m4sugar.
* data/m4sugar/m4sugar.m4: Comment changes, borrowed from autoconf.
2008-08-02 Joel E. Denny <>
Update for recent .gitignore fix in Gnulib.
* bootstrap: Back out 2008-07-18 hack now that gnulib-tool creates
anchored .gitignore entries.
2008-08-02 Joel E. Denny <>
Set gnu or gnits strictness.
* (AM_INIT_AUTOMAKE): Set gnu strictness during
development and gnits strictness for releases. Based on Eric Blake's
suggestion at
2008-07-31 Paolo Bonzini <>
* NEWS: Clarify documentation of %language.
2008-07-31 Paolo Bonzini <>
Support usage of git-merge-changelog.
* .gitattributes: New.
* HACKING: Document usage of git-merge-changelog.
* bootstrap: Install git-merge-changelog entries in .git/config
if appropriate.
2008-07-27 Joel E. Denny <>
Remove remaining dependence on CVS Id keyword.
* ChangeLog: For the sake of people still using CVS, don't use dollars
when mentioning Id.
* data/xslt/bison.xsl: Remove Id from header comments, where it was
unusual anyway.
* data/xslt/xml2dot.xsl: Likewise.
* data/xslt/xml2text.xsl: Likewise.
* data/xslt/xml2xhtml.xsl: Likewise.
* doc/ (PROJECT_NUMBER): Don't use ID.
* doc/ (neutralize): Remove, no longer needed.
(.x.1): Don't use neutralize.
(edit): Don't substitute for ID.
(Doxyfile): Don't define Id, and thus don't depend on ChangeLog.
2008-07-27 Joel E. Denny <>
Fix dependence on computed configure variables.
* doc/ (common_dep): Depend on $(top_srcdir)/configure not
$(top_srcdir)/ so that changes to computed variables, such
as PACKAGE_VERSION, are seen.
* tests/ ($(srcdir)/package.m4): Likewise.
2008-07-20 Joel E. Denny <>
Update copyright dates for recent changes.
* Here.
* src/ Here.
* src/reduce.c: Here.
* tests/ Here.
2008-07-18 Joel E. Denny <>
Use git-version-gen for version names between releases.
* .cvsignore (.tarball-version, GNUmakefile, *~): Add.
* .gitignore (/.tarball-version, /GNUmakefile, /*~): Add.
* .prev-version: New.
* Remove.
* ChangeLog: Remove the Id previously used for capturing the CVS
* GNUmakefile: Remove, now copied from Gnulib.
* Add code suggested by comments in