]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* tests/cxx-type.at: Construct a tree, count the parents of shared
[bison.git] / ChangeLog
index ace626ad10897a068629b4185b475f6bf8636786..4bcf0a31cdd005a8a6f8b09117a2b87d82e75e71 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,369 @@
+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 subdirectorioes, and
+       * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
        additional checks.
        Use this to exercise C++ outputs in subdirs.
        Reported by Oleg Smolsky.