X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/70d8f2910e8cb30f99f37541a887889cb5ccf48b..668c5d192776326107790e8d622dfa7ddd015ea3:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index e392ea26..06b62a82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,838 @@
+2005-12-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* src/reader.c (grammar_midrule_action, grammar_symbol_append):
+	Remove unnecessary forward static decls.
+
+2005-12-27  Akim Demaille  <akim@epita.fr>
+
+	* src/reader.c (grammar_current_rule_check): Also check that $$
+	is used.
+	Take the rule to check as argument, hence rename as...
+	(grammar_rule_check): this.
+	* src/reader.h, src/reader.c (grammar_rule_begin, grammar_rule_end):
+	Rename as...
+	(grammar_rule_begin, grammar_rule_end): these, for consistency.
+	(grammar_midrule_action, grammar_symbol_append): Now static.
+	* tests/torture.at (input): Don't rely on the default action
+	being always performed.
+	* tests/calc.at: "Set" $$ even when the action is "cut" with
+	YYERROR or other.
+	* tests/actions.at (Exotic Dollars): Instead of using unused
+	values, check that the warning is issued.
+
+2005-12-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Improve wording for unused-value warnings.
+
+2005-12-22  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
+	(b4_yysymprint_generate): Rename as...
+	(b4_yy_symbol_print_generate): this.
+	Generate yy_symbol_print instead of yysymprint.
+	Generate also yy_symbol_value_print, and use it.
+
+2005-12-22  Akim Demaille  <akim@epita.fr>
+
+	* NEWS: Warn about unused values.
+	* src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
+	a `used' member.
+	(symbol_list_n_get, symbol_list_n_used_set): New.
+	(symbol_list_n_type_name_get): Use symbol_list_n_get.
+	* src/scan-gram.l (handle_action_dollar): Flag used symbols.
+	* src/reader.c (grammar_current_rule_check): Check that values are
+	used.
+	* src/symtab.c (symbol_print): Accept 0.
+	* tests/existing.at: Remove the type information.
+	Empty the actions.
+	Remove useless actions (beware of mid-rule actions: perl -000
+	-pi -e 's/\s*\{\}(?=[\n\s]*[|;])//g').
+	* tests/actions.at (Exotic Dollars): Use unused values.
+	* tests/calc.at: Likewise.
+	* tests/glr-regression.at (No users destructors if stack 0 deleted):
+	Likewise.
+
+	* src/gram.c (rule_useful_p, rule_never_reduced_p): Use
+	rule_useful_p.
+
+2005-12-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Undo 2005-12-01 tentative license wording change.  The wording is
+	still being reviewed by the lawyers, and we don't want to wait for
+	them before publishing a test release.  For now, revert to the
+	previous wording.
+	* NEWS: Undo 2005-12-01 change.
+	* data/glr.c: Revert to previous license wording.
+	* data/glr.cc: Likewise.
+	* data/lalr1.cc: Likewise.
+	* data/location.cc: Likewise.
+	* data/yacc.c: Likewise.
+
+	* NEWS: Reword %destructor vs YYABORT etc.
+	* data/glr.c: Use American spacing, for consistency.
+	* data/glr.cc: Likewise.
+	* data/lalr1.cc: Likewise.
+	* data/yacc.c: Likewise.
+	* data/yacc.c: Reformat comments slightly.
+	* doc/bison.texinfo: Replace "non-" with "non" when that makes sense,
+	for consistency.  Fix some spelling errors and reword recently-included
+	text slightly.
+	* tests/cxx-type.at: Cast results of malloc, for C++.
+
+2005-12-21  Joel E. Denny  <address@hidden>
+
+	* tests/cxx-type.at: Construct a tree, count the parents of shared
+	nodes, and free each node once and only once.  Previously, the memory
+	for semantic values was leaked instead.
+
+2005-12-21  Joel E. Denny  <address@hidden>
+
+	* data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
+	(yylval, yylloc): If pure, #define to yystackp->yyval and
+	yystackp->yyloc similar to yychar and yynerrs.
+	(yyparse): If pure, remove local yylval and yylloc. Add local
+	yystackp to accommodate pure definitions of yylval and yylloc.
+	(b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
+	yylvalp and yyllocp to &yylval and &yylloc.
+	(nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
+	namespace. Previously, nerrs and char were missing, but lval and lloc
+	weren't necessary.
+	(yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
+	yylvalp and yyllocp parameters since, if pure, these are now always
+	accessible through yystackp.  If not pure, they are still accessible
+	globally.
+	* data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
+	`if (YYID (N))' to pacify lint.
+
+2005-12-21  Akim Demaille  <akim@epita.fr>
+
+	YYACCEPT, YYERROR, and YYABORT, as user actions, should not
+	destroy the RHS symbols of a rule.
+	* data/yacc.c (yylen): Initialize to 0.
+	Keep its value to the number of items to possibly shift.
+	In particular, a regular successful parse that ends on YYFINAL by
+	a (internal) YYACCEPT must not have yylen != 0.
+	(yyerrorlab, yyreturn): Pop the RHS.
+	Reorder a bit to emphasize the `shifting' bits of code.
+	(YYPOPSTACK): Now accept a number of items to pop.
+	* data/lalr1.cc: Likewise.
+	* data/glr.c: Formatting changes.
+	Use goto instead of fall through.
+	* doc/bison.texinfo (Destructor Decl): Complete.
+
+2005-12-20  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+	* Makefile.am: DJGPP specific files added to EXTRA_DIST.
+	* djgpp/Makefile.maint: Fix PACKAGE variable computation.
+	* djgpp/config.bat: Replace every occurence of the file name
+	scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
+	c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
+	* djgpp/config.sed: Replace every occurence of the file name
+	scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
+	c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
+	* djgpp/djunpack.bat: DJGPP specific file.
+	* djgpp/fnchange.lst: DJGPP specific file.
+	* djgpp/README.in: Add new information about how to unpack the bison
+	source on MSDOS and other systems which have 8.3 file name restrictions
+	using djunpack.bat and fnchange.lst.
+
+2005-12-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* bootstrap (build_cvs_prefix): Remove; unused.
+	(CVS_PREFIX): Adjust to yesterday's Savannah reorganization
+	when getting gnulib.
+
+2005-12-12  "Joel E. Denny" <jdenny@ces.clemson.edu>
+
+	* data/glr.c: Reorder typedef declarations for structs to match order
+	of struct declarations.
+	Rename yystack everywhere to yystackp except in yyparse where it's not
+	a pointer.
+	(yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
+	consistency.
+	(yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
+	(yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
+	(yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
+	lint.
+
+2005-12-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* tests/sets.at (Accept): Fix typos in regular expression used to
+	sed out the final state number.
+
+	Work around portability problem on Solaris 10: flex-generated
+	files include <stdio.h> before <config.h>, which messes up
+	because the latter defines __EXTENSIONS__.  Address the problem
+	by creating two new little files that include <config.h> first,
+	then include the flex-generated files.  Rewrite everyone else
+	to include <config.h> first, as well.
+	* lib/timevar.c: Always include "config.h".
+	* src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
+	scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
+	(EXTRA_bison_SOURCES): New macro.
+	* src/scan-gram-c.c, src/scan-skel-c.c: New files.
+	* src/system.h: Don't include config.h.
+	* src/LR0.c: Include <config.h> first.
+	* src/assoc.c: Likewise.
+	* src/closure.c: Likewise.
+	* src/complain.c: Likewise.
+	* src/conflicts.c: Likewise.
+	* src/derives.c: Likewise.
+	* src/files.c: Likewise.
+	* src/getargs.c: Likewise.
+	* src/gram.c: Likewise.
+	* src/lalr.c: Likewise.
+	* src/location.c: Likewise.
+	* src/main.c: Likewise.
+	* src/muscle_tab.c: Likewise.
+	* src/nullable.c: Likewise.
+	* src/output.c: Likewise.
+	* src/parse-gram.y: Likewise.
+	* src/print.c: Likewise.
+	* src/print_graph.c: Likewise.
+	* src/reader.c: Likewise.
+	* src/reduce.c: Likewise.
+	* src/relation.c: Likewise.
+	* src/state.c: Likewise.
+	* src/symlist.c: Likewise.
+	* src/symtab.c: Likewise.
+	* src/tables.c: Likewise.
+	* src/uniqstr.c: Likewise.
+	* src/vcg.c: Likewise.
+
+	* src/parse-gram.y: Fix minor problems uncovered by lint.
+	(current_lhs, current_lhs_location): Now static.
+	(current_assoc): Remove unused variable.
+
+	Cleanups so that Bison-generated parsers have less lint.
+	* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
+	Prepend /*ARGSUSED*/, for lint's sake.
+	* data/glr.c (YYUSE): Properly parenthesize, and use an alternate
+	definition if 'lint' is defined.
+	(YYID): New macro (or function, if lint).
+	All uses of /*CONSTCOND*/0 replaced by YYID(0).
+	* data/yacc.c: Likewise.
+	* data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
+	(yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
+	* data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
+	is C++ only.
+	* data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
+	* data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
+	Use YYID(0) rather than 0, for lint.
+	(yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
+	(yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
+
+2005-12-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* tests/glr-regression.at
+	(Improper handling of embedded actions and dollar(-N) in GLR parsers):
+	Close memory leak reported by twlevo.
+
+2005-12-06  "Joel E. Denny" <jdenny@ces.clemson.edu>
+
+	* data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
+	all stacks.
+	(yyparse): Iterate another stack in order to call user destructors.
+	* tests/glr-regression.at (No users destructors if stack 0 deleted):
+	New test case.
+	(Duplicated user destructor for lookahead): This test now is expected
+	to succeed.
+
+2005-12-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Document the following change.
+	* data/yacc.c: Say "parser skeleton" rather than "file", since
+	it's no longer just a file.
+	* data/glr.c: Grant a special exception for C GLR parsers, that
+	reads like the already-existing exception for C LALR(1) parsers.
+	* data/glr.cc: Likewise.
+	* data/lalr1.cc: Likewise.
+	* data/location.cc: Likewise.
+	* data/yacc.c: Reword the "written by" statement to clarify that
+	it was the parser skeleton, not the entire output file.
+	* data/glr.c: Written by Paul Hilfinger.
+	* data/glr.cc: Written by Akim Demaille.
+	* data/lalr1.cc: Likewise.
+
+2005-11-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
+	Fix typos in previous change that broke 'make check'.
+	YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
+	supported in C.
+	* tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
+	Don't check NUM-STDERR-LINES, since the output format is fluctuating.
+	We can revert this once things settle down.
+
+	* src/conflicts.c (conflicts_print): Don't print file name twice
+	when %expect fails because there were no conflicts.
+	* doc/bison.texinfo (Expect Decl): Tighten up wording in previous
+	change.
+	* tests/conflicts.at (%expect not enough, %expect too much):
+	(%expect with reduce conflicts): Adjust to new behavior.
+
+2005-11-18  Akim Demaille  <akim@epita.fr>
+
+	* src/conflicts.c (conflicts_print): Unsatisfied %expectation are
+	errors.
+	* NEWS: Document this.
+	* doc/bison.texinfo (Expect Decl): Likewise.
+
+2005-11-16  Akim Demaille  <akim@epita.fr>
+
+	Generalize the display of semantic values and locations in traces.
+	* data/glr.c (yy_reduce_print): Fix indices (again).
+	* data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
+	literal integers.
+	* data/lalr1.cc (yyreduce_print): Rename as...
+	(yy_reduce_print): this.
+	Display values and locations.
+	* data/yacc.c (yy_reduce_print): Likewise.
+	(YY_REDUCE_PRINT): Adjust to pass the required arguments.
+	(yysymprint): Move higher to be visible from yy_reduce_print).
+	(yyparse): Adjust.
+	* tests/calc.at: Adjust the expected length of the traces.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+	* data/glr.c (yy_reduce_print): The loop was quite wrong: type are
+	from 1 to N, while values and location start at 0.
+	(b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+	* data/glr.c (yy_reduce_print): Fix the $ number.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+	"Use" parse parameters.
+	* data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
+	* data/glr.c, data/glr.cc: Use them.
+	* data/glr.c (YYUSE): Have a C++ definition that supports
+	non-pointer types.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+	* data/glr.c (yyexpandGLRStack): Declare only if defined.
+
+2005-11-14  Akim Demaille  <akim@epita.fr>
+
+	* data/glr.cc: New.
+	* data/m4sugar/m4sugar.m4 (m4_prepend): New.
+
+2005-11-12  Akim Demaille  <akim@epita.fr>
+
+	Let position and location be PODs.
+	* data/location.cc (position::initialize, location::initialize): New.
+	(position::position, location::location): Define only if
+	b4_location_constructors is defined.
+	* data/lalr1.cc (b4_location_constructors): Define it for backward
+	compatibility.
+	* doc/bison.texinfo (Initial Action Decl): Use initialize.
+
+2005-11-12  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc: Move the body of the ctor and dtor into the
+	parser file (instead of the header).
+	Wrap the implementations in a "namespace yy".
+
+2005-11-12  Akim Demaille  <akim@epita.fr>
+
+	Have glr.c include its header file when created.
+	* data/glr.c (b4_shared_declarations): New.
+	Output them verbatim in the parser if !%defines, otherwise
+	output then in the header file, and include it instead.
+
+2005-11-11  Akim Demaille  <akim@epita.fr>
+
+	* data/glr.c: Comment changes.
+
+2005-11-11  Akim Demaille  <akim@epita.fr>
+
+	When yydebug, report semantic and location values for reductions.
+	* data/glr.c (yy_reduce_print): Report the semantic values and the
+	locations.
+	(YY_REDUCE_PRINT): Adjust.
+	(yyglrReduce): Use them.
+	(b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
+	* data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
+	* tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
+	traces.
+
+2005-11-10  Akim Demaille  <akim@epita.fr>
+
+	* data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
+	(yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
+	(yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
+
+2005-11-09  Albert Chin-A-Young  <china@thewrittenword.com>
+
+	* m4/cxx.m4, examples/Makefile.am: Don't build
+	examples/calc++ if no C++ compiler is available.  (trivial change)
+
+2005-11-09  Akim Demaille  <akim@epita.fr>
+
+	* src/scan-skel.l: Use a couple of asserts.
+
+2005-11-03  Akim Demaille  <akim@epita.fr>
+
+	In some (weird) cases, the final state number is incorrect.
+	Reported by Alexandre Duret-Lutz.
+	* src/LR0.c (state_list_append): Remove the computation of
+	final_state.
+	(save_reductions): Do it here.
+	(get_state): Alpha conversion.
+	(generate_states): Use a for loop.
+	* src/gram.h (item_number_is_rule_number)
+	(item_number_is_symbol_number): New.
+	* src/state.c: Use assert.
+	* src/system.h: Include assert.h.
+	* tests/sets.at (Accept): New.
+
+2005-10-30  Paul Hilfinger  <hilfingr@tully.CS.Berkeley.EDU>
+
+	* data/glr.c (yyfill): Adjust comment.
+	(yyresolveAction): Initialize default location properly
+	for empty right-hand sides.
+	(yydoAction): Ditto.
+	Add comment explaining apparently dead code.
+	* tests/glr-regression.at
+	(Incorrectly initialized location for empty right-hand side in GLR):
+	New test.
+
+2005-10-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* bootstrap (cleanup_gnulib): New function.  Use it to clean up
+	gnulib when interrupted.  This fixes some race conditions and
+	works around some portability problems (one noted by Paul
+	Hilfinger).
+
+2005-10-22  Akim  <akim@epita.fr>
+
+	* Makefile.cfg: Adjust to config -> build-aux.
+	Reported by twledo.
+
+2005-10-21  Akim Demaille  <akim@epita.fr>
+
+	* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
+	the %parse-params.
+	* data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
+	* data/yacc.c (b4_Pure_if): Rename as...
+	(b4_yacc_pure_if): this.
+	(YY_SYMBOL_PRINT, yyparse): Adjust.
+	* doc/bison.texinfo: Formatting changes.
+
+2005-10-21  Akim Demaille  <akim@epita.fr>
+
+	Finish the transition config -> build-aux.
+	* configure.ac, Makefile.am: Use build-aux.
+	* config/prev-version, config/announce-gen, config/Makefile.am:
+	Move to...
+	* build-aux/prev-version, build-aux/announce-gen,
+	* build-aux/Makefile.am: here.
+
+2005-10-14  Akim Demaille  <akim@epita.fr>
+
+	* examples/calc++/test: Use set -x only when VERBOSE.
+
+2005-10-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
+	* src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
+
+2005-10-13  Akim Demaille  <akim@epita.fr>
+
+	* src/scan-skel.l: Output the base name parts of the parser and
+	header file names.
+	* tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
+	additional checks.
+	Use this to exercise C++ outputs in subdirs.
+	Reported by Oleg Smolsky.
+
+2005-10-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
+	__STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
+	Problem reported by John P. Hartmann.
+	* data/yacc.c (YYMODERN_C): Likewise.  Don't define if the user has
+	already defined it.
+
+2005-10-12  Akim Demaille  <akim@epita.fr>
+
+	* src/parse-gram.y (version_check): Exit 63 to please missing
+	(stands for "version mismatch).
+	* tests/input.at, doc/bison.texinfo: Adjust.
+
+2005-10-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Work around portability problems with Visual Age C compiler
+	(xlc and xlC_r) reported by John P. Hartmann.
+	* data/location.cc (initial_column, initial_line): Remove.
+	All uses replaced by 0 and 1.
+	* src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
+	that xlc complains about.
+	* src/scan-skel.l (skel_wrap): Likewise.
+	* data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
+	as __STDC__.
+	* data/yacc.c (YYMODERN_C): New macro, which also looks at
+	__STDC_VERSION__.  Use it everywhere instead of looking at
+	__STDC__ and __cplusplus.
+
+2005-10-10  Akim Demaille  <akim@epita.fr>
+
+	* examples/calc++/test: Be quiet unless VERBOSE.
+
+2005-10-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/c.m4 (yydestruct, yysymprint):
+	Use YYUSE instead of casting to void.
+	* data/glr.c (YYUSE): New macro.
+	(yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
+	Use it instead of rolling our own.
+	(YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
+	(YYCHK1):
+	Use /*CONSTCOND*/ to suppress lint warnings.
+	* data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
+	(YY_STACK_PRINT): Use 'false' not '0'.
+	(YYUSE): New macro.
+	(yysymprint_, yydestruct_): Use it instead of rolling our own.
+	* data/yacc.c (YYUSE): New macro.
+	(YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
+	(YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
+	(yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
+
+
+	* data/m4sugar/m4sugar.m4 (_m4_map): New macro.
+	(m4_map, m4_map_sep): Use it.  Handle the empty list correctly.
+
+2005-10-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Undo the parts of the unlocked-I/O change that substituted
+	putc or puts for printf.  This might hurt performance a bit,
+	but some people prefer the printf style.
+	* data/c.m4 (yysymprint): Prefer printf to puts and putc.
+	* data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
+	All uses replaced by YYFPRINTF and YYDPRINTF.
+	* data/yacc.c: Likewise.
+	* lib/bitset.c (bitset_print): Likewise.
+	* lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
+	putc and puts.
+	* lib/lbitset.c (debug_lbitset): Likewise.
+	* src/closure.c (print_firsts, print_fderives): Likewise.
+	* src/gram.c (grammar_dump): Likewise.
+	* src/lalr.c (look_ahead_tokens_print): Likewise.
+	* src/output.c (escaped_output): Likewise.
+	(user_actions_output): Break apart two printfs.
+	* src/parse-gram.y (%printer): Prefer printf to putc and puts.
+	* src/reduce.c (reduce_print): Likewise.
+	* src/state.c (state_rule_look_ahead_tokens_print): Likewise.
+	* src/system.h: Include unlocked-io.h rathe than stdio.h.
+
+	* data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
+	Use assignments rather than casts-to-void to suppress
+	unused-variable warnings.  This pacifies 'lint'.
+	* data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
+	unused-variable warnings.
+
+2005-10-03  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+	* Makefile.am: DJGPP specific files added to EXTRA_DIST.
+
+2005-10-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Use unlocked I/O for a minor performance improvement on hosts like
+	GNU/Linux and Solaris that support unlocked I/O.  The basic idea
+	is to use the gnlib unlocked-io module, and to prefer putc and
+	puts to printf when either will work (since the latter doesn't
+	come in an unlocked flavor).
+	* bootstrap (gnulib_modules): Add unlocked-io.
+	* data/c.m4 (yysymprint): Prefer puts and putc to printf.
+	* data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
+	Prefer them to YYFPRINTF and YYDPRINTF if either will do,
+	and similarly for puts and putc and printf.
+	* data/yacc.c: Likewise.
+	* lib/bitset.c (bitset_print): Likewise.
+	* lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
+	* lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
+	to printf.
+	* lib/lbitset.c (debug_lbitset): Likewise.
+	* src/closure.c (print_firsts, print_fderives): Likewise.
+	* src/gram.c (grammar_dump): Likewise.
+	* src/lalr.c (look_ahead_tokens_print): Likewise.
+	* src/output.c (escaped_output): Likewise.
+	(user_actions_output): Coalesce two printfs.
+	* src/parse-gram.y (%printer): Prefer putc and puts to printf.
+	* src/reduce.c (reduce_print): Likewise.
+	* src/state.c (state_rule_look_ahead_tokens_print): Likewise.
+	* src/system.h: Include unlocked-io.h rather than stdio.h.
+
+	* data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
+	this confuses xgettext.
+
+2005-10-02  Akim Demaille  <akim@epita.fr>
+
+	* bootstrap (gnulib_modules): Add strverscmp.
+	* lib/.cvsignore: Add strverscmp.c, strverscmp.h.
+	* m4/.cvsignore: Add strverscmp.m4.
+	* src/parse-gram.y (%require): New token, new rule.
+	(version_check): New.
+	* src/scan-gram.l (%require): Adjust.
+	* tests/input.at (AT_REQUIRE): New.
+	Use it.
+	* doc/bison.texinfo (Require Decl): New.
+	(Calc++ Parser): Use %require.
+
+2005-10-02  Akim Demaille  <akim@epita.fr>
+
+	* data/location.cc: New.
+
+2005-10-02  Paul Eggert  <eggert@cs.ucla.edu>,
+	    Akim Demaille  <akim@epita.fr>
+
+	Make sure -odir/foo.cc creates dir/location.hh etc.
+	* src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
+	(spec_file_prefix, spec_verbose_file, spec_graph_file)
+	(spec_defines_file): Now const.
+	(dir_prefix): New.
+	(short_base_name): Remove.
+	* src/files.c: Adjust.
+	(dirname.h): Include.
+	(base_name): Don't prototype it.
+	(finput): Remove, duplicates gram_in.
+	(full_base_name, short_base_name): Replace by...
+	(all_but_ext, all_but_tab_ext): these.
+	(compute_base_names): Rename as...
+	(compute_file_name_parts): this.
+	Update to compute the new variables, including dir_prefix.
+	Adjust dependencies.
+	* src/output.c (prepare): Output them.
+	* src/reader.c: Adjust to use gram_in, not finput.
+	* src/scan-skel.l (@dir_prefix@): New.
+
+2005-10-02  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+	* lib/subpipe.c: New function end_of_output_subpipe() added
+	to allow support for non-posix systems. This is a no-op function
+	for posix systems.
+
+	* lib/subpipe.h: New function end_of_output_subpipe() added
+	to allow support for non-posix systems. This is a no-op function
+	for posix systems.
+
+	* src/output.c (output_skeleton): Use end_of_output_subpipe() to
+	handle the lack of pipe/fork functionality on non-posix systems.
+
+	* djgpp/Makefile.maint: DJGPP specific file.
+
+	* djgpp/README.in: DJGPP specific file.
+
+	* djgpp/config.bat: DJGPP specific configuration file.
+
+	* djgpp/config.sed: DJGPP specific configuration file.
+
+	* djgpp/config.site: DJGPP specific configuration file.
+
+	* djgpp/config_h.sed: DJGPP specific configuration file.
+
+	* djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
+
+	* djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
+
+2005-10-02  Akim Demaille  <akim@epita.fr>
+
+	* data/location.cc: New, extract from...
+	* data/lalr1.cc: here.
+	(location.hh): Include it after the user prologue, in case the
+	filename type is defined by the user.
+	Forward declation location and position before the pre-prologue.
+	(yyresult_): Rename as...
+	(yyresult): this, it's a local variable, not an attribute.
+	* data/Makefile.am (dist_pkgdata_DATA): Adjust.
+
+2005-10-01  Akim Demaille  <akim@epita.fr>
+
+	* examples/extexi: Restore the #line generation.
+
+2005-09-30  Akim Demaille  <akim@epita.fr>,
+	    Alexandre Duret-Lutz <adl@gnu.org>
+
+	Move the token type and YYSTYPE in the parser class.
+	* data/lalr1.cc (stack.hh, location.hh): Include earlier.
+	(parser::token): New, from the moved free definition of tokens.
+	(parser::semantic_value): Now a full definition instead of an
+	indirection to YYSTYPE.
+	(b4_post_prologue): No longer included in the header file, but
+	in the implementation file.
+	* doc/bison.texi (C+ Language Interface): Update.
+	* src/parse-gram.y: Support unary %define.
+	* tests/actions.at: Define global_tokens_and_yystype for backward
+	compatibility until we update the tests.
+	* tests/calc.at: Idem.
+	(first_line, first_column, last_line, last_column): Define for lalr1.cc
+	to simplify the code.
+
+2005-09-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Port to SunOS 4.1.4, which lacks strtoul and strerror.
+	Ah, the good old days!  Problem reported by Peter Klein.
+	* bootstrap (gnulib_modules): Add strerror, strtoul.
+	* lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
+	* m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
+
+2005-09-29  Akim Demaille  <akim@epita.fr>
+
+	* data/c.m4 (b4_error_verbose_if): New.
+	* data/lalr1.cc: Use it.
+	(YYERROR_VERBOSE_IF): Remove.
+	(yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
+	parser members, replaced by...
+	(yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
+	local variables.
+	(yysyntax_error_): Takes the state number as argument.
+	(yyreduce_print_): Use the argument yyrule, not the former
+	attribute yyn_.
+
+2005-09-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* bootstrap (gnulib_modules): Add verify.
+	* lib/.cvsignore: Add verify.h.
+	* src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
+	* src/system.h (verify): Remove.
+	Include verify.h instead.
+	* src/tables.c (tables_generate): Use new API for 'verify'.
+
+2005-09-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
+	local variables whose names begin with 'yy'.
+	* tests/calc.at (_AT_DATA_CALC_Y): Likewise.
+	Trivial changes from Joel E. Denny.
+
+	* bootstrap (gnulib_modules): Remove alloca.  Bison doesn't need
+	it itself.
+	* src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
+	don't use alloca any more.
+
+	* data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
+	__BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
+	defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
+	* tests/torture.at (Exploding the Stack Size with Alloca): Adjust
+	to match yacc.c, to test more hosts.
+
+2005-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/yacc.c (YYSIZE_T): Reindent to make it clearer.  This
+	doesn't affect behavior.
+	(YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
+	Solaris, AIX, MSC.
+	(_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H.  All uses changed.
+	This works a bit better with glibc, if user code has already included
+	stdlib.h.
+	* doc/bison.texinfo (Bison Parser): Document that users can't
+	arbitrarily use malloc and free for other purposes.  Document
+	that <alloca.h> and <malloc.h> might be included.
+	(Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
+	user must declare alloca.
+
+	* HACKING (release): Forwarn the Translation Project about
+	stable releses.
+
+2005-09-20  Akim Demaille  <akim@epita.fr>
+
+	* data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
+
+2005-09-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* data/yacc.c (YYSIZE_MAXIMUM): New macro.
+	(YYSTACK_ALLOC_MAXIMUM): Use it.
+	(yysyntax_error): New function.
+	(yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
+	multiple syntax errors are reported, and alloca is being used.
+	Instead, reallocate buffers twice as big each time, so that
+	we waste at most half the allocated memory.  Start with a small
+	(128-byte) buffer that will suffice in most cases anyway.
+	Use yysyntax_error to do most of the work.
+
+	* doc/bison.texinfo (Error Reporting, Table of Symbols):
+	yynerrs is the number of errors reported, not the number of
+	errors encountered.
+
+	* tests/glr-regression.at (Duplicated user destructor for lookahead):
+	Mark it as expected to fail.
+	Cast result of malloc; problem reported by twlevo@xs4all.nl.
+	* tests/actions.at, tests/calc.at, tests/glr-regression.at:
+	Don't start user-code symbols with "yy", to avoid name space problems.
+
+2005-09-19  Akim Demaille  <akim@epita.fr>
+
+	Remove the traits, failed experiment.
+	It never proved useful, and anyway because of the current
+	definition, it was not possible to have several specialization of
+	this traits, making it useless.
+	* data/lalr1.cc (yy:traits): Remove.
+	Inline its definitions in the parser class.
+
+2005-09-19  Akim Demaille  <akim@epita.fr>
+
+	* tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
+	least Mac OSX with a /usr/local install of gettext.
+
+2005-09-19  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
+	and yytoken for similarity with the other skeletons.
+
+2005-09-19  Akim Demaille  <akim@epita.fr>
+
+	* NEWS, configure.ac: Bump to 2.1a.
+
+2005-09-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* NEWS: Version 2.1.
+
+	* NEWS: Remove notice of yytname change, since it was never in an
+	official release.
+	* data/glr.c (yydestroyGLRState): Rename local var to avoid shadowing
+	diagnostic.
+	* src/output.c (prepare): Likewise.
+	* data/lalr1.cc (YYERROR_VERBOSE_IF): New macro.
+	(yysyntax_error_): Use it to avoid GCC warning when YYERROR_VERBOSE
+	is not defined.  This is an awful hack, but it's enough for now.
+	All callers changed.
+	* tests/glr-regression-at (make_value): Args are const pointers now,
+	to avoid GCC warning.
+	(Duplicated user destructor for lookahead): New test.  Currently
+	skipped.  It fails on my host but I'm not sure it'll always fail.
+
+2005-09-16  Akim Demaille  <akim@epita.fr>
+
+	* src/symtab.h (struct symbol): Declare the printer and destructor
+	as const, to avoid accidental calls to free.
+	(symbol_destructor_set, symbol_printer_set): Adjust.
+	* src/symtab.c: Adjust.
+
+2005-09-16  Akim Demaille  <akim@epita.fr>
+
+	* data/c.m4 (b4_token_enums): New.
+	(b4_token_defines): Rename as...
+	(b4_token_enums_defines): this.
+	(b4_token_defines): New, output only the #defines.
+	* data/yacc.c, data/glr.c: Adjust.
+	* data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
+	* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
+	as default values.
+
+2005-09-16  Akim Demaille  <akim@epita.fr>
+
+	* data/lalr1.cc (yylex_): Remove, inline its code.
+	(yyreport_syntax_error_): Remove, replaced by...
+	(yysyntax_error_): this which returns a string and leaves to the
+	caller the call to the users' error function.
+	(yylooka_, yyilooka_, yylval, yylloc, yyerror_range_, yyval, yyloc):
+	Move from members of the parser object...
+	(yylooka, yyilooka, yylval, yylloc, yyerror_range, yyval, yyloc):
+	to local variables of the parse function.
+
 2005-09-16  Akim Demaille  <akim@epita.fr>
 
 	* doc/bison.texinfo (Calc++ Parser): Don't promote defining YYEOF
@@ -5543,7 +6378,7 @@
 	Reported by Charles-Henry de Boysson.
 
 	* tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
-	check the length of the	traces when %glr.
+	check the length of the traces when %glr.
 	(_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
 	GLR's traces.
 	(AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
@@ -5688,7 +6523,7 @@
 	struct lbitset_struct, struct bitset_stats_struct): New types.
 	All uses of struct bitset_struct changed to union bitset_union,
 	etc.
-	* lib/abitset.c	(struct abitset_struct, abitset,
+	* lib/abitset.c (struct abitset_struct, abitset,
 	struct bitset_struct): Remove.
 	* lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
 	struct bitset_struct): Remove.
@@ -6774,7 +7609,7 @@
 
 2002-06-28  Akim Demaille  <akim@epita.fr>
 
-	* src/reader.h:	s/grammer_current_rule_merge_set/grammar_.../.
+	* src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
 	* src/conflicts.c (conflicts_total_count): `i' is unsigned, to
 	pacify GCC.
 	* src/output.c (save_row): Initialize all the variables to pacify GCC.
@@ -6804,7 +7639,7 @@
 	* src/getargs.c:
 
 	* src/symlist.h:  Add dprec and merger fields to symbol_list_s.
-	* src/symlist.c	(symbol_list_new): Initialize dprec and merger fields.
+	* src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
 
 	Originally 2002-06-16  Paul Hilfinger  <Hilfinger@CS.Berkeley.EDU>
 
@@ -8811,8 +9646,8 @@
 
 2002-01-20  Marc Autret  <marc@gnu.org>
 
-	* src/system.h: Need to	define __attribute__ away for non-GCC
-	compilers as well (i.e.	the vendor C compiler).
+	* src/system.h: Need to define __attribute__ away for non-GCC
+	compilers as well (i.e., the vendor C compiler).
 	Suggested by Albert Chin-A-Young.
 
 2002-01-11  Tim Van Holder  <tim.van.holder@pandora.be>
@@ -9982,7 +10817,7 @@
 
 	* src/warshall.c (bitmatrix_print): New.
 	(TC): Use it.
-	When performing a transitive closure R(i, j) && R(j, k) => R(i,	k),
+	When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
 	j must be the outer loop.
 	* tests/regression.at (Broken Closure): New.
 
@@ -11567,7 +12402,7 @@
 
 	* src/output.c (output): Delete call to reader_output_yylsp.
 	* src/reader.c (reader): Likewise.
-	* src/reader.h:	Delete declaration of reader_output_yylsp.
+	* src/reader.h: Delete declaration of reader_output_yylsp.
 
 2001-09-02  Marc Autret  <autret_m@epita.fr>