X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/a30e920d175dc87911322fc791a9f919ffa4cc82..58bd33b7fc5d13fbd4b61404e1e878ab3b3c16da:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index 7c06eb0c..ec5dd705 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,663 @@
+2008-11-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix user actions without a trailing semicolon.
+	Reported by Sergei Steshenko at
+	<http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00001.html>.
+	* THANKS (Sergei Steshenko): Add.
+	* src/scan-code.l (SC_RULE_ACTION): Fix it.
+	* tests/regression.at (Fix user actions without a trailing semicolon):
+	New test case.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Use b4_copyright_years.
+	* data/yacc.c (b4_copyright_years): New.
+	Fix its value according to the comments in the file.
+	Use it and undefine it.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Formatting changes.
+	* data/lalr1-fusion.cc, src/parse-gram.y: here.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Formatting changes.
+	* data/lalr1-fusion.cc: here.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Use strict on bench.pl.
+	* etc/bench.pl.in (&run, &generate_grammar): New.
+	Rename the grammar generating functions for consistency.
+	Change the interface so that the list of benches to run is passed
+	as (optionless) arguments.
+	(&compile): Use &run.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Remove spurious initial empty lines.
+	* data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
+	* data/yacc.c: End the @output lines with an @.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Improve the display of sizes.
+	* etc/bench.p.in: Higher precision.
+	Sort by decreasing size.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Don't memcpy C++ structures.
+	* data/lalr1-fusion.cc (b4_symbol_variant): Adjust additional
+	arguments.
+	(variant::build): New overload for
+	copy-construction-that-destroys.
+	(variant::swap): New.
+	(parser::yypush_): Use it in variant mode.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Better defaults for bench.pl.
+	* etc/bench.pl.in ($verbose, $cflags, $iterations): Change the
+	default values.
+	Adjust &verbose uses.
+	(-q, --quiet): New.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Make variant.yy more complex.
+	std::list cannot be copied via memcpy, they are more demanding than
+	std::string.  Use one std::list to strengthen the test.
+	
+	* examples/variant.yy: Use lalr1-fusion.cc, not lalr1.cc.
+	Adjust.
+	Create a list of strings, instead of a single large string.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	bench.pl --bench.
+	* etc/bench.pl.in (--bench, $bench): New.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Sort methods.
+	* data/lalr1-fusion.cc (destroy): Use as() in its definition.
+	Define it after as().
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Useless parens.
+	* data/lalr1-fusion.cc (b4_rhs_location): Remove useless parens.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Issue missing synclines after user actions.
+	* data/c.m4 (b4_case): Issue synclines on the output file.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Remove trailing empty line.
+	* data/lalr1-fusion.cc: Don't add an empty line after the user's
+	epilogue.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Fix output of copyright years.
+	* data/bison.m4 (b4_copyright): Fix the indentation of the
+	copyright year paragraph.
+	Use b4_copyright_years when no years are given.
+	* data/lalr1.cc, data/lalr1-fusion.cc, data/location.cc
+	(b4_copyright_years): New.
+	Use it.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Avoid the spurious initial empty line.
+	* data/lalr1-fusion.cc, data/location.cc: Put a trailing "@" at
+	the end of @output request to suppress the empty line that
+	results.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Remove parser::rhs_number_type.
+	* data/lalr1-fusion.cc (rhs_number_type): No longer define it.
+	(yyrhs_): Use b4_table_define.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Fix iteration type.
+	* data/lalr1-fusion.cc: Use an int to iterate up to an int.
+
+2008-11-04  Akim Demaille  <demaille@gostai.com>
+
+	Factor the declaration of the integer tables.
+	* data/lalr1-fusion.cc (b4_table_define): New.
+	Use it.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Fix indentation of tables in lalr1.cc
+	* data/lalr1-fusion.cc: Fix the indentation.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Destroy the lhs symbols after reduction.
+	* data/lalr1-fusion.cc (parse): After the user action, when in
+	variant mode, destroy the lhs symbols.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Simplify yysyntax_error_ use.
+	* data/lalr1-fusion.cc (yysyntax_error_): Always pass it the token
+	type, but make it unnamed in the declaration when it is not used.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Let yy::variant::build return an lvalue.
+	* data/lalr1-fusion.cc (variant::build): Return a reference to the
+	object.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Define yy::variant only when needed.
+	* data/lalr1-fusion.cc (yy::variant): Define only if variants are
+	used.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Bench the three-stack lalr1.cc.
+	* etc/bench.pl.in: Bench the three-stack lalr1.cc vs. the
+	one-stack one.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Fail on parse error in calc++.
+	* doc/bison.texinfo (calc++.cc): Propagate failures to the exit
+	status.
+	* examples/calc++/test ($me, $number, $exit, run): New.
+	Use them to propagate errors to the exit status.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Don't specify the skeleton twice in the example.
+	* examples/calc++/Makefile.am: Don't pass -S to Bison, the grammar
+	file does what is needed.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	bench: Improve output.
+	* etc/bench.pl.in (bench_grammar): Tune the printf format.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	bench: check impact of %debug on variants.
+	* etc/bench.pl.in (variant_grammar): Fix the computation of
+	$variant.
+	Generate a grammar file that can work with or without %debug.
+	Do use the @directive.
+	(bench_variant_parser): Check impact of %debug.
+	(@directives): Rename all the occurrences to...
+	(@directive): this, for consistency.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	bench: report the size too.
+	* etc/bench.pl.in ($iterations): Defaults to -3.
+	(&bench_grammar): Require hireswallclock.
+	Compute and display the size of the result.
+	More comments.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	bench: More use of the verbosity level.
+	* etc/bench.pl.in ($verbose, &verbose): New.
+	Use them.
+	More POD documentation.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	bench.pl: a command line interface
+	* etc/bench.pl.in: More doc.
+	Some fixes in the documentation.
+	($cflags, $iterations, &help, &getopt): New.
+	Use them.
+	(&variant_grammar): Let the number of stages be 10 times what is
+	specified.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Bench the use of Boost.Variants.
+	* etc/bench.pl.in ($cxx, &variant_grammar, &bench_variant_parser):
+	New.
+	(&compile): Be ready to compile C++ parsers.
+	(&bench_push_parser): Move debug information to the outermost
+	level.
+	* THANKS: Add Michiel De Wilde.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	bench.pl: Pass directives as a list instead of as a string.
+	* etc/bench.pl.in (&directives): New.
+	(&triangular_grammar, &calc_grammar): Use it to format the Bison
+	directives.
+	(&triangular_grammar): Do use the directives (were ignored).
+	(&bench_grammar, &bench_push_parser): Adjust to pass lists of
+	directives.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Improve genericity of bench.pl.
+	* etc/bench.pl.in (&bench_grammar): Take the set of benches as
+	argument.
+	(&bench_push_parser): New.
+	Call it.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Add documentation to bench.pl.
+	* etc/bench.pl.in: Comment changes.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Fuse the three stacks into a single one.
+	In order to make it easy to perform benchmarks to ensure that there are no
+	performance loss, lalr1.cc is forked into lalr1-fusion.cc.  Eventually,
+	lalr1-fusion.cc will replace lalr1.cc.
+	
+	Meanwhile, to make sure that lalr1-fusion.cc is correctly exercized by the
+	test suite, the user must install a symbolic link from lalr1.cc to it.
+	
+	Instead of having three stacks (state, value, location), use a stack
+	of triples.  This considerably simplifies the code (and it will be
+	easier not to require locations as currently does the C++ parser),
+	and also gives a 10% speedup according to etc/bench (probably mainly since
+	memory allocation is done once instead of three times).
+	
+	Another motivation is to make it easier to destruct properly
+	semantic values: now that they are bound to their state (hence
+	symbol type) it will be easier to call the appropriate destructor.
+	
+	These changes should probably benefit the C parser too.
+	
+	* data/lalr1.cc: Copy as...  * data/lalr1-fusion.cc: this new
+	file.
+	(b4_rhs_value, b4_rhs_location): New definitions overriding those
+	from c++.m4.
+	(state_stack_type, semantic_stack_type, location_stack_type)
+	(yystate_stack_, yysemantic_stack_, yylocation_stack_): Remove.
+	(data_type, stack_type, yystack_): New.
+	(YYLLOC_DEFAULT, yypush_): Adjust.
+	(yyerror_range): Now based on data_type, not location_type.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Push the state, value, and location at the same time.
+	This is needed to prepare a forthcoming patch that fuses the three
+	stacks into one.
+	
+	* data/lalr1.cc (parser::yypush_): New.
+	(parser::yynewstate): Change the semantics: instead of arriving to
+	this label when value and location have been pushed, but yystate
+	is to be pushed on the state stack, now the three of them must
+	have been pushed before.  yystate still must be the new state.
+	This allows to use yypush_ everywhere instead of individual
+	handling of the stacks.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Prefer references to pointers.
+	* data/lalr1.cc (b4_symbol_actions): New, overrides the default C
+	definition to use references instead of pointers.
+	(yy_symbol_value_print_, yy_symbol_print_, yydestruct_):
+	Take the value and location as references.
+	Adjust callers.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	stack::size instead of stack::height.
+	* data/lalr1.cc (stack::height): Rename as...
+	(stack::size): this.
+	Fix the output type.
+	Comment changes.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Use variants to support objects as semantic values.
+	This patch was inspired by work by Michiel De Wilde.  But he used Boost
+	variants which (i) requires Boost on the user side, (ii) is slow, and
+	(iii) has useless overhead (the parser knows the type of the semantic value
+	there is no reason to duplicate this information as Boost.Variants do).
+	
+	This implementation reserves a buffer large enough to store the largest
+	objects.  yy::variant implements this buffer.  It was implemented with
+	Quentin Hocquet.
+	
+	* src/output.c (type_names_output): New.
+	(output_skeleton): Invoke it.
+	* data/c++.m4 (b4_variant_if): New.
+	(b4_symbol_value): If needed, provide a definition for variants.
+	* data/lalr1.cc (b4_symbol_value, b4_symbol_action_)
+	(b4_symbol_variant, _b4_char_sizeof_counter, _b4_char_sizeof_dummy)
+	(b4_char_sizeof, yy::variant): New.
+	(parser::parse): If variants are requested, define
+	parser::union_type, parser::variant, change the definition of
+	semantic_type, construct $$ before running the user action instead
+	of performing a default $$ = $1.
+	* examples/variant.yy: New.
+	Based on an example by Michiel De Wilde.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Parameterize the extraction of semantic values.
+	To make future changes easier, no longer rely on ".TYPE" being the
+	way to get a semantic value.
+	
+	* data/c.m4 (b4_symbol_value): New.
+	Use it.
+	* data/c++.m4, data/yacc.c: Use it.
+	* data/glr.c: Use b4_symbol_value.
+	(b4_rhs_data): New.
+	Use it.
+
+2008-11-03  Akim Demaille  <demaille@gostai.com>
+
+	Prepare easier M4 changes.
+	* data/lalr1.cc: Use escaped [] instead of literals to prepare
+	future changes.
+
+2008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Initiate further development.
+	* NEWS: Create an empty section for new entries.
+	* gnulib: Update submodule to HEAD.
+
+2008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* NEWS: Version 2.4.
+
+2008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	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  <jdenny@ces.clemson.edu>
+
+	Say %language is experimental.
+	We're thinking of extending it's effect on output file naming.  See the
+	thread at
+	<http://lists.gnu.org/archive/html/bison-patches/2008-10/msg00003.html>.
+	* 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  <dianj@freeshell.org>
+	    Paolo Bonzini  <bonzini@gnu.org>
+
+	Support all Java parser class modifiers.
+	* data/java.m4 (b4_percent_define_get3): New.
+	(b4_final_if, b4_strictfp_if): New.
+	* data/lalr1.java (final, strictfp, extends, implements): Support.
+	* doc/bison.texinfo (final, strictfp, extends, implements): Add
+	documentation.
+	* tests/java.at (AT_CHECK_JAVA_MINIMAL): New.
+	(AT_CHECK_JAVA_MINIMAL_W_LEXER): New.
+	(AT_CHECK_JAVA_GREP): 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/lalr1.java (yyaction): Add throws.
+	(parse): Add lex_throws in addition to throws.
+	* doc/bison.texinfo (throws, lex_throws): Add documentation.
+	* tests/java.at (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.at (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  <dianj@freeshell.org>
+
+	* 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  <jdenny@ces.clemson.edu>
+
+	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/output.at (AT_CHECK_OUTPUT): Automatically create directories
+	for expected output files.
+	(Output files): Add a test for the above.
+
+2008-10-29  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	* gnulib: Update submodule to HEAD.
+
+2008-10-28  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Update copyright year.
+	* src/files.c: Here.
+
+2008-10-28  Di-an Jan  <dianj@freeshell.org>  (tiny change)
+
+	Don't overwrite the input file.
+	* src/files.c (output_file_name_check): Fatal error if using input file
+	for output.
+	* tests/output.at: (AT_CHECK_CONFLICTING_OUTPUT): Add return status
+	argument.
+	(Conflicting output files): Add test.
+
+2008-10-28  Akim Demaille  <demaille@gostai.com>
+
+	Space changes.
+	* data/lalr1.cc: Formatting changes.
+
+2008-10-28  Akim Demaille  <demaille@gostai.com>
+
+	Don't define debugging functions when !YYDEBUG.
+	* data/lalr1.cc (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  <demaille@gostai.com>
+
+	Prefer "continue" for empty loop bodies.
+	* etc/bench.pl.in: Use "continue" instead of {}.
+
+2008-10-28  Akim Demaille  <demaille@gostai.com>
+
+	Space and comments changes.
+	* data/c++.m4, data/glr.c, data/lalr1.cc: Copyright year changes.
+	* data/c.m4, data/lalr1.cc: Space changes.
+
+2008-10-28  Akim Demaille  <demaille@gostai.com>
+
+	Make gnulib a submodule.
+	* gnulib: New.
+	* .gitmodules (gnulib): New.
+
+2008-10-18  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Fix yyerror_range for user-defined location type in C++.  Reported by
+	Georg Sauthoff at
+	<http://lists.gnu.org/archive/html/bug-bison/2008-08/msg00008.html>.
+	* data/lalr1.cc (parse): Change type of yyerror_range to location_type.
+	* THANKS (Georg Sauthoff): Add.
+
+2008-10-18  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Update several administrative files mainly to facilitate releasing.
+	* HACKING (Administrivia): Make the git-merge-changelog notes more
+	helpful.
+	(Test suite): Don't say lalr1.cc is not exercised in the test suite.
+	(Release Procedure): Update for git and add numerous details that were
+	previously missing.
+	* Makefile.am (EXTRA_DIST): Remove Makefile.cfg and Makefile.maint.
+	* maint.mk (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 maint.mk.
+	* Makefile.cfg: Remove, and migrate settings to...
+	* cfg.mk: ... 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
+	Berry.
+
+2008-10-08  Di-an Jan  <dianj@freeshell.org>  (tiny change)
+
+	Small but important bugfixes for the Java skeleton.
+	* data/lalr1.java (yyerror): Change Location to b4_location_type.
+	(yy_symbol_print): Call toString on yyvaluep.
+
+2008-08-29  Akim Demaille  <demaille@gostai.com>
+
+	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  <demaille@gostai.com>
+
+	* README: Update FAQ pointer.
+	Reported by Joel E. Denny.
+
+2008-08-27  Eric Blake  <ebb9@byu.net>
+
+	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
+	effects.
+	* data/m4sugar/foreach.m4 (_m4_shiftn): Fix off-by-one bug.
+	(_m4_list_cmp): Reduce side effects.
+
+2008-08-27  Akim Demaille  <demaille@gostai.com>
+
+	Check yyerrok in calc.at.
+        * tests/calc.at (calc.y): Use yyerrok on "( error )".
+        (AT_CHECK_CALC): Add a check that ensures that yyerrok works as
+        expected.
+
+2008-08-27  Akim Demaille  <demaille@gostai.com>
+
+	Support yyerrok in lalr1.cc.
+	YYBACKUP is still to import back into lalr1.cc.
+        * data/lalr1.cc (yyerrork, yyclearin, YYRECOVERING): Define.
+
+2008-08-26  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	For maintainer-check*, don't recompile for a $(VERSION) update.
+	* cfg.mk: New file.
+	(_is-dist-target): Override the one in GNUmakefile.
+	* Makefile.am (EXTRA_DIST): Add cfg.mk.
+
+2008-08-26  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	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  <ebb9@byu.net>
+
+	Remaining m4sugar merge from autoconf.
+	* data/m4sugar/m4sugar.m4: Copy entire file from autoconf.
+	* data/m4sugar/foreach.m4: New file, copied from autoconf.
+	* data/Makefile.am (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):
+	Likewise.
+	(b4_parse_param_for): Avoid m4_fst, now that autoconf no longer
+	declares it.
+
+2008-08-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Keep .version and PACKAGE_VERSION in sync.
+	* Makefile.am ($(top_srcdir)/.version): Declare configure as a
+	dependency, and add comments justifying this in more detail.  Discussed
+	starting at
+	<http://lists.gnu.org/archive/html/bison-patches/2008-07/msg00022.html>.
+
+2008-08-06  Eric Blake  <ebb9@byu.net>
+
+	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  <ebb9@byu.net>
 
+	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.