X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/a1a9422d4a2f70ff89e06318ba154851c3700f60..1deef26d0ca3df3d1c845a8cf41fc0cdef009d79:/ChangeLog?ds=sidebyside

diff --git a/ChangeLog b/ChangeLog
index be422d29..3a1c6c79 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,452 @@
+2009-09-03  Akim Demaille  <demaille@gostai.com>
+
+	bootstrap: fix/improve find_tool.
+	* bootstrap (find_tool): Improve error messages.
+	Fix typo about find_tool_names.
+
+2009-08-29  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix gcc 3.4.4 shadowing warning reported by Eric Blake.
+	See
+	<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00093.html>.
+	* 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
+	anyway.
+
+2009-08-28  Joel E. Denny  <jdenny@clemson.edu>
+
+	%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/actions.at: Remove quotes in most tests.
+	* tests/calc.at: Likewise.
+	* tests/existing.at: Likewise.
+	* tests/input.at: Likewise.
+	* tests/local.at: Likewise.
+	* tests/push.at: Likewise.
+	* tests/reduce.at: Likewise.
+	* tests/torture.at: Likewise.
+
+2009-08-28  Joel E. Denny  <jdenny@clemson.edu>
+
+	%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/existing.at (AT_TEST_EXISTING_GRAMMAR): Update test
+	grammars.
+	* tests/reduce.at (AT_TEST_LR_TYPE): Likewise.
+
+2009-08-27  Eric Blake  <ebb9@byu.net>
+
+	scan-gram: avoid portability trap with ctype usage.
+	* src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
+	Avoid compiler warning.
+
+2009-08-27  Joel E. Denny  <jdenny@clemson.edu>
+
+	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
+	Demaille.
+	* tests/input.at (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  <jdenny@clemson.edu>
+
+	tests: show a use of %define lr.default-reductions "consistent"
+	* tests/conflicts.at (%nonassoc and eof): Extend to test that it
+	prevents the omission of expected tokens for %error-verbose.
+
+2009-08-26  Akim Demaille  <demaille@gostai.com>
+
+	tests: portability fix.
+	* tests/input.at (Bad escapes in literals): Don't expect "echo
+	'\0'" to output \ then 0.
+
+2009-08-26  Joel E. Denny  <jdenny@clemson.edu>
+
+	Actually handle the yytable zero value correctly this time.
+	* data/bison.m4 (b4_integral_parser_tables_map): Don't mention
+	zero values in the YYTABLE comments.
+	* data/glr.c (yytable_value_is_error): Don't check for zero
+	value.
+	* data/lalr1.cc (yy_table_value_is_error_): Likewise.
+	* data/yacc.c (yytable_value_is_error): Likewise.
+	* data/lalr1.java (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  <jdenny@clemson.edu>
+
+	More fixes related to last two patches.
+	* data/bison.m4 (b4_integral_parser_tables_map): Fix YYTABLE
+	comments: zero indicates syntax error not default action.
+	* data/c.m4 (b4_table_value_equals): Comment that YYID must be
+	defined.
+	* 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
+	before.
+	(yyrecoverSyntaxError): Update for renames.  No behavioral
+	changes.
+	* data/lalr1.cc, data/lalr1.java (yy_pact_value_is_default_):
+	New function.
+	(yy_table_value_is_error_): New function.
+	(parse): Use new functions where possible.  No behavioral
+	changes.
+	(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  <jdenny@clemson.edu>
+
+	Fix %error-verbose for conflicts resolved by %nonassoc.
+	* NEWS (2.5): Document.
+	* data/glr.c (yyreportSyntaxError): Fix this by checking
+	yyis_table_ninf.
+	* data/yacc.c (yysyntax_error): Likewise.
+	* data/lalr1.cc (yysyntax_error_): Fix this by checking
+	yytable_ninf_.
+	* data/lalr1.java (yysyntax_error): Likewise.
+	* tests/conflicts.at (%nonassoc and eof): Update expected output
+	and remove FIXME.
+
+2009-08-25  Joel E. Denny  <jdenny@clemson.edu>
+
+	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/lalr1.cc (yysyntax_error_): Likewise.
+	* data/lalr1.java (yysyntax_error): Likewise.
+	* src/tables.h: Improve comments about yypact, yytable, etc.
+
+2009-08-21  Joel E. Denny  <jdenny@clemson.edu>
+
+	Use locale when quoting.
+	* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER): Use
+	quote rather than implementing quoting here.
+
+2009-08-20  Eric Blake  <ebb9@byu.net>
+
+	Make previous patch more robust.
+	* src/output.c (ARRAY_CARDINALITY): New macro, copied from
+	argmatch.h.
+	(output_skeleton): Use it.
+	Suggested by Akim Demaille.
+
+	Import latest m4/m4.m4.
+	* submodules/autoconf: Update to autoconf 2.64.
+	* configure.ac (M4_GNU_OPTION): New define.
+	* src/output.c (output_skeleton): Use it to resolve FIXME.
+	* NEWS: Mention this.
+
+2009-08-19  Joel E. Denny  <jdenny@clemson.edu>
+
+	Fix complaints about escape sequences.
+	Discussed starting at
+	<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00036.html>.
+	* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER):
+	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/input.at (Bad escapes in literals): New.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	doc: fixes.
+	* doc/bison.texinfo: Fix minor Texinfo errors.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	tests: distcc compliance.
+	* tests/synclines.at (AT_SYNCLINES_COMPILE): Discard distcc's
+	error messages from the output.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	variables: simplify the upgrade of namespace into api.namespace.
+
+	This patch simplifies "variables: rename namespace as
+	api.namespace", commit 67501061076ba46355cfd9f9361c7eed861b389c.
+	Suggested by Joel E. Denny in
+	http://lists.gnu.org/archive/html/bison-patches/2009-07/msg00006.html
+
+	* src/muscle-tab.c (muscle_percent_variable_update): New.
+	(muscle_percent_define_insert): Use it in replacement of the
+	previous tr invocation.
+	Remove variable_tr, no longer needed.
+	* data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
+	Remove.
+	* data/c++.m4: No longer handle namespace -> api.namespace.
+	* tests/input.at (%define backward compatibility): Check that
+	namespace is treated as api.namespace.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	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
+	yylloc.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	lalr1.cc: use state_type.
+	* data/lalr1.cc (yysyntax_error_): Use state_type.
+	Move argument names into yy*.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	lalr1.cc: get rid of yyparse's yystate.
+	yystate and yystack_[0].state are equal, keep only the latter.
+	The former was also used as a temporary variable to compute the
+	post-reduction state.  Move this computation into an auxiliary
+	function.
+
+	* data/glr.c (yyLRgotoState): Fuse variable definition and first
+	assignment.
+	* data/lalr1.cc (yy_lr_goto_state_): New.
+	(yyparse): Use it.
+	Replace remaining uses of yystate by yystate_[0].state.
+	Remove the former.
+
+2009-08-19  Akim Demaille  <demaille@gostai.com>
+
+	lalr1.cc: destroy $$ when YYERROR is called.
+	* data/lalr1.cc (yyreduce): Compute the resulting state before
+	running the user action so that yylhs is a valid symbol.
+	(yyerrorlab): Since yylhs is complete (it knows its type), we can
+	simply call yy_destroy_ to destroy $$ on YYERROR invocations.
+	* tests/c++.at (AT_CHECK_VARIANTS): Test YYERROR with variants.
+
+2009-08-18  Joel E. Denny  <jdenny@clemson.edu>
+
+	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.
+	* cfg.mk (update-copyright-local): Remove, now ignored.
+	(update-copyright): Declare update-b4-copyright as a dependency.
+
+2009-08-17  Akim Demaille  <demaille@gostai.com>
+
+	build: require gettext 0.17.
+
+	Suggested by Bruno Haible.
+	http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00009.html
+	* configure.ac: require gettext 0.17 to ensure compatibility with
+	gnulib.
+
+2009-08-17  Akim Demaille  <demaille@gostai.com>
+
+	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.
+	http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00006.html
+
+	* configure.ac: Require need-ngettext instead of
+	need-formatstring-macros.
+	Reported by Martin Jabocs.
+	Suggested by Bruno Haible.
+	* INSTALL: Restructure.
+	(Internationalization): New.
+
+2009-08-14  Joel E. Denny  <jdenny@clemson.edu>
+
+	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.
+	* cfg.mk (update-copyright-env): Configure update-copyright.
+
+2009-08-13  Joel E. Denny  <jdenny@clemson.edu>
+
+	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
+	invocation.
+	* tests/input.at (Numbered tokens): Recombine tests now that the
+	output should be deterministic across multiple numbers.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	tests: GCC 4.5 compliance.
+	* tests/synclines.at (AT_SYNCLINES_COMPILE): Adjust to GCC 4.5's
+	messages about #error.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	build: fix the generation of the documentation.
+	Some of our targets use "bison --help", but they can't depend on
+	"bison" itself (to avoid additional requirements on the user), so
+	they used to call "make src/bison" in the commands.  Then
+	concurrent builds may fail: one make might be aiming one of its
+	jobs at compiling src/bison, and another job at generating the man
+	page.  If the latter is faster than the former, then we have two
+	makes that concurrently try to compile src/bison.
+
+	This might also be a more convincing explanation for the failure
+	described in the patch "build: fix paths".
+
+	* Makefile.am (SUFFIXES): Initialize.
+	* build-aux/move-if-change: New, symlink to gnulib's.
+	* build-aux/local.mk: Ship it.
+	* doc/common.x: Remove, merged into...
+	* doc/bison.x: here.
+	* doc/local.mk (doc/bison.help): New.
+	($(CROSS_OPTIONS_TEXI)): Depend on it.
+	Use src/bison.
+	(.x.1): Replace with...
+	(doc/bison.1): this explicit, simpler, target.
+	(common_dep): Remove, inlined where appropriate.
+	(SUFFIXES, PREPATH): Remove, unused.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	gnulib: improve prefixing.
+	* configure.ac (gl_PREFIXED_LIBOBJS): Don't rename it, rather,
+	change the value of...
+	(gl_LIBOBJS): this.
+	Adjust more variables.
+	* etc/prefix-gnulib-mk (prefix_assignment): Don't rename
+	gl_LIBOBJS.
+	(prefix): Also transform rules whose targets have slashes.
+	Use $prefix liberally.
+	Map @MKDIR_P@ to $(MKDIR_P).
+	Prefix directories that are mkdir'd.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	build: fix paths.
+	When using $(top_builddir) inconsistently, Make (including GNU
+	Make) is sometimes confused.  As a result it may want to build
+	lib/libbison.la and $(top_builddir)/lib/libbison.la (the same
+	file, different names) concurrently, which, amusingly enough,
+	might end with:
+
+	  ranlib lib/libbison.a
+	  ranlib lib/libbison.a
+	  make[2]: *** [lib/libbison.a] Segmentation fault
+
+	on OS X.
+
+	* doc/local.mk, src/local.mk: Do not use $(top_builddir) when not
+	needed.
+
+2009-08-12  Akim Demaille  <demaille@gostai.com>
+
+	distcheck: fix.
+
+	* examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+	* tests/local.mk (TESTSUITE_AT): Add named-refs.at.
+
+2009-08-10  Joel E. Denny  <jdenny@clemson.edu>
+
+	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
+	function.
+
+	* 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
+	USER_NUMBER_HAS_STRING_ALIAS throughout.
+	* 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
+	clearer.
+	(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  <rozenman@gmail.com>
+
+	Convert "misleading reference" messages to warnings.
+	* src/scan-code.l: New function 'show_sub_messages', more
+	factoring.
+	* tests/named-ref.at: Adjust tests.
+
+2009-08-06  Joel E. Denny  <jdenny@clemson.edu>
+
+	maint: run "make update-copyright"
+
 2009-08-06  Joel E. Denny  <jdenny@clemson.edu>
 
 	maint: make update-b4-copyright easier to use
@@ -281,13 +730,13 @@
 2009-06-10  Akim Demaille  <demaille@gostai.com>
 
 	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
-        hash_insert.
+	* 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
+	hash_insert.
 
 2009-06-10  Akim Demaille  <demaille@gostai.com>