X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/4d7370cb4fe960032afd4a42293b6d55e02237fe..41f58bae8b4adc853c44beaa749683cab33faff1:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index f8867cbc..ab7be133 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,203 @@
+2006-09-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Port to GCC 2.95.  First two problems reported by Michael Deutschmann in
+	<http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00018.html>.
+
+	* src/parse-gram.y (symbol_declaration): Don't put statements
+	before declarations; it's not portable to C89.
+	* src/scan-code.l (handle_action_at): Likewise.
+
+	* src/scan-code.l: Always initialize braces_level; the old code
+	left it uninitialized and therefore had undefined behavior.
+
+	Don't attempt to redefine 'assert', since it runs afoul of
+	systems where standard headers (mistakenly) include <assert.h>.
+	Instead, define and use our own alternative, called 'aver'.
+	* src/reader.c: Don't include assert.h, since we no longer
+	use assert.
+	* src/scan-code.l: Likewise.
+	* src/system.h (assert): Remove, replacing with....
+	(aver): New function, taking a bool arg.  All uses changed.
+	* src/tables.c (pack_vector): Ensure that aver arg is bool,
+	not merely an integer.
+
+2006-09-15  Bob Rossi  <bob@brasko.net>
+
+	* data/Makefile.am (dist_pkgdata_DATA): Add push.c.
+	* data/c.m4 (YYPUSH): New.
+	(b4_push_if): New macro.  Use it instead of #ifdef YYPUSH.
+	* src/getargs.c (push_parser): New var.
+	* src/getargs.h (push_parser): New declaration.
+	* src/output.c (prepare): Add macro insertion of `push_flag'.
+	* src/parse-gram.y (PERCENT_PUSH_PARSER): New token.
+	(prologue_declaration): Parse %push-parser.
+	* src/scan-gram.l: Scan new PERCENT_PUSH_PARSER token.
+	* tests/calc.at (_AT_CHECK_CALC_ERROR): Add "Return" and "Now" to
+	list of removed lines from the traces observed.
+	(AT_CHECK_CALC_LALR): Added push parser tests.
+
+2006-09-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Version 2.3a.
+	* configure.ac (AC_INIT): Likewise.
+
+	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Remove
+	"#define YYSTYPE int" that caused "make maintainer-check" to fail
+	due to header ordering dependencies.  I don't know why the #define
+	was there.
+
+	Fix glr.cc and lalr1.cc's use of YYDEBUG so that there's zero
+	runtime cost when YYDEBUG is not defined, and so that some tests
+	that used to fail now work.  Problem and initial suggestion by
+	Paolo Bonzini.
+	* data/c++.m4 (b4_parse_param_cons): Omit leading ','.
+	* data/glr.cc (b4_parser_class_name):
+	Initialize yycdebug_ only if YYDEBUG.  Also, initialize yydebug_.
+	(debug_level, set_debug_level): Affect yydebug_, not ::yydebug.
+	(yydebug_) [YYDEBUG]: New member.
+	(yycdebug_): Now defined only if YYDEBUG.
+	* data/lalr1.cc (yydebug_, yycdebug_): Now defined only if YYDEBUG.
+	(YYCDEBUG) [!YYDEBUG]: Don't use yydebug_ and yycdebug_.
+	(b4_parser_class_name): Initialize yydebug_ and yycdebug_ only
+	if YYYDEBUG.
+	(debug_stream, set_debug_stream, debug_level, set_debug_level):
+	Define only if YYDEBUG.
+	* tests/calc.at (_AT_DATA_CALC_Y) [!YYDEBUG]: Omit call to
+	set_debug_level.
+	* tests/regression.at (_AT_DATA_DANCER_Y) [!YYDEBUG]: Likewise.
+	* tests/calc.at (AT_CHECK_CALC_GLR_CC): Uncomment calls to
+	AT_CHECK_CALC_GLR_CC that are working now.
+
+2006-09-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/glr.cc (YYERROR_VERBOSE, YYTOKEN_TABLE): Remove.
+	We don't need them in glr.cc, and glr.c defines them.
+	Defining YYERROR_VERBOSE to 0 here breaks glr.c, since glr.c
+	assumes that defining it to anything is the same as defining
+	it to 1.  Problem reported by Paolo Bonzini.
+
+2006-09-12  Paolo Bonzini  <bonzini@gnu.org>  (tiny change)
+
+	* data/c.m4 (b4_null, b4_case): Define.
+	* src/output.c (prepare_symbols): Use b4_null.
+	(user_actions_output): Use b4_case.
+
+2006-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/glr.c (b4_shared_declarations): Put start-header first,
+	before any #includes that we generate, so that feature-test
+	macros work.  Problem reported by Michael Deutschmann in
+	<http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00004.html>.
+	* data/lalr1.cc: Likewise.
+	* doc/bison.texinfo (Prologue): Document that feature-test macros
+	should be defined before any Bison declarations.
+	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Put defns
+	that depend on location.hh after, not before, Bison decls, since
+	we now include location.hh after the first user prologue.
+
+	* doc/bison.texinfo (Calc++ Parser): Fix memory leak reported by
+	Sander Brandenburg in
+	<http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00002.html>.
+	Also, fix minor white space and comment issues.
+	(Prologue): Mention that it's better to define feature-test macros
+	before Bison declarations.  Problem reported by Michael Deutschmann.
+
+	* README-cvs: Fix typo: "&" should be "&&".  Problem reported
+	by Jim Meyering.
+	* m4/.cvsignore: Add argmatch.m4.  Remove obstack.m4, strerror_r.m4.
+	This adjusts to recent gnulib changes.
+
+2006-09-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Finish implementation of per-type %destructor/%printer.  Discussed
+	starting at
+	<http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>
+	and
+	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>.
+	* NEWS (2.3+): Add a description of this feature to the default
+	%destructor/%printer description.
+	* doc/bison.texinfo (Freeing Discarded Symbols): Likewise.
+	* src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
+	Invoke semantic_type_destructor_set or semantic_type_printer_set when a
+	list node contains a semantic type.
+	* src/symtab.c, src/symtab.h: Extend with a table that associates
+	semantic types with their %destructor's and %printer's.
+	(semantic_type_from_uniqstr, semantic_type_get,
+	semantic_type_destructor_set, semantic_type_printer_set): New functions
+	composing the public interface of that table.
+	(symbol_destructor_get, symbol_destructor_location_get,
+	symbol_printer_get, symbol_printer_location_get):  If there's no
+	per-symbol %destructor/%printer, look up the per-type before trying
+	the default.
+	* tests/actions.at (Per-type %printer and %destructor): New test case.
+	* tests/input.at (Default %printer and %destructor redeclared):
+	Extend to check that multiple occurrences of %symbol-default in a
+	single %destructor/%printer declaration is an error.
+	(Per-type %printer and %destructor redeclared, Unused values with
+	per-type %destructor): New test cases.
+
+2006-09-04  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Require default %destructor/%printer to be declared using
+	%symbol-default instead of an empty symbol list, and start working on
+	new per-type %destructor/%printer.  Discussed at
+	<http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00007.html>.
+	* NEWS (2.3+): Add %symbol-default to example.
+	* bison.texinfo (Freeing Discarded Symbols): Likewise.
+	(Bison Symbols): Add entry for %symbol-default.
+	* src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): New token.
+	(generic_symlist, generic_symlist_item): New nonterminals for creating
+	a list in which each item is a symbol, semantic type, or
+	%symbol-default.
+	(grammar_declaration): Use generic_symlist in %destructor and %printer
+	declarations instead of symbols.1 or an empty list.
+	(symbol_declaration, precedence_declaration, symbols.1): Update actions
+	for changes to symbol_list.
+	* src/reader.c: Update for changes to symbol_list.
+	* src/scan-code.l: Likewise.
+	* src/scan-gram.l: Scan new PERCENT_SYMBOL_DEFAULT token.
+	* src/symlist.c, src/symlist.h: Extend such that a list node may
+	represent a semantic type or a %symbol-default in addition to just an
+	ordinary symbol.  Add switched functions for setting %destructor's and
+	%printer's.
+	* tests/actions.at, tests/input.at: Add %symbol-default to all default
+	%destructor/%printer declarations.
+
+2006-08-23  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Whether the default %destructor/%printer applies to a particular symbol
+	isn't a question of whether the user *declares* that symbol (in %token,
+	for example).  It's a question of whether the user by any means
+	*defines* the symbol at all (by simply using a char token, for
+	example).  $end is defined by Bison whereas any other token with token
+	number 0 is defined by the user.  The error token is always defined by
+	Bison regardless of whether the user declares it with %token, but we
+	may one day let the user define error as a nonterminal instead.
+	* NEWS (2.3+): Say "user-defined" instead of "user-declared".
+	* doc/bison.texinfo (Freeing Discarded Symbols): Likewise, and document
+	the meaning of "user-defined".
+	* tests/actions.at (Default %printer and %destructor for user-declared
+	end token): Rename to...
+	(Default %printer and %destructor for user-defined end token): ...
+	this.
+
+	* src/symtab.c (symbol_destructor_get, symbol_printer_get): In the
+	computation of whether to apply the default, don't maintain a list of
+	every Bison-defined symbol.  Instead, just check for a first character
+	of '$', which a user symbol cannot have, and check for the error token.
+
+2006-08-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+	Don't apply the default %destructor or %printer to the error token,
+	$undefined, or $accept.  This change fits the general rule that the
+	default %destructor and %printer are only for user-declared symbols,
+	and it solves several difficulties that are described in the new test
+	cases listed below.
+	* src/symtab.c (symbol_destructor_get, symbol_printer_get): Implement.
+	* tests/actions.at (Default %printer and %destructor are not for error
+	or $undefined, Default %printer and %destructor are not for $accept):
+	New test cases.
+
 2006-08-19  Joel E. Denny  <jdenny@ces.clemson.edu>
 
 	Allow %start after the first rule.