]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Steal GCC's --time-report support.
[bison.git] / ChangeLog
index 3ff544199a3fc85b98ceb1eeb3381a593d392b56..c204f90ca64d29bff02a0dd8f83ed738dd8d07b4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,289 @@
+2002-07-31  Akim Demaille  <akim@epita.fr>
+
+       Steal GCC's --time-report support.
+
+       * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
+       stolen/adjusted from GCC.
+       * m4/stage.m4: Remove time related checks.
+       * m4/timevar.m4: New.
+       * configure.in: Adjust.
+       * src/system.h: Adjust to using timevar.h.
+       * src/getargs.h, src/getargs.c: Support trace_time for
+       --trace=time.
+       * src/main.c (stage): Remove.
+       (main): Replace `stage' invocations with timevar calls.
+       * src/output.c: Insert pertinent timevar calls.
+
+2002-07-31  Akim Demaille  <akim@epita.fr>
+
+       Let --trace have arguments.
+
+       * src/getargs.h (enum trace_e): New.
+       * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
+       (long_options, short_options): --trace/-T takes an optional
+       argument.
+       Change all the uses of trace_flag to reflect the new flags.
+       * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
+
+       Strengthen `stage' portability.
+
+       * m4/stage.m4 (BISON_PREREQ_STAGE): New.
+       * configure.in: Use it.
+       Don't check for malloc.h and sys/times.h.
+       * src/system.h: Include them when appropriate.
+       * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
+       times and struct tms are available.
+
+2002-07-30  Akim Demaille  <akim@epita.fr>
+
+       In verbose parse error message, don't report `error' as an
+       expected token.
+       * tests/actions.at (Printers and Destructors): Adjust.
+       * tests/calc.at (Calculator $1): Adjust.
+       * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
+       error message, do not report the parser accepts the error token in
+       that state.
+
+2002-07-30  Akim Demaille  <akim@epita.fr>
+
+       Normalize conflict related messages.
+
+       * src/complain.h, src/complain.c (warn, complain): New.
+       * src/conflicts.c (conflicts_print): Use them.
+       (conflict_report_yacc): New, extracted from...
+       (conflicts_print): here.
+       * tests/conflicts.at, tests/existing.at: Adjust.
+
+2002-07-30  Akim Demaille  <akim@epita.fr>
+
+       Report rules which are never reduced by the parser: those hidden
+       by conflicts.
+
+       * src/LR0.c (save_reductions): Don't make the final state too
+       different: save its reduction (accept) instead of having a state
+       without any action (no shift or goto, no reduce).
+       Note: the final state is now a ``regular'' state, i.e., the
+       parsers now contain `reduce 0' as default reduction.
+       Nevertheless, since they decide to `accept' when yystate =
+       final_state, they still will not reduce rule 0.
+       * src/print.c (print_actions, print_reduction): Adjust.
+       * src/output.c (action_row): Track reduced rules.
+       (token_actions): Report rules never reduced.
+       * tests/conflicts.at, tests/regression.at: Adjust.
+
+2002-07-30  Akim Demaille  <akim@epita.fr>
+
+       `stage' was accidently included in a previous patch.
+       Initiate its autoconfiscation.
+
+       * configure.in: Look for malloc.h and sys/times.h.
+       * src/main.c (stage): Adjust.
+       Report only when trace_flag.
+
+2002-07-29  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
+       state_number_t.
+       (errs_t): symbol_t*, not symbol_number_t.
+       (reductions_t): rule_t*, not rule_number_t.
+       (FOR_EACH_SHIFT): New.
+       * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
+       * src/print.c, src/print_graph.c: Adjust.
+
+2002-07-29  Akim Demaille  <akim@epita.fr>
+
+       Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
+
+       * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
+       (endtoken, accept): these.
+       * src/reader.c (reader): Set endtoken's default tag to "$end".
+       Set undeftoken's tag to "$undefined" instead of "$undefined.".
+       * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
+       Adjust.
+
+2002-07-29  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (reduce_grammar): When the language is empty,
+       complain about the start symbol, not the axiom.
+       Use its location.
+       * tests/reduce.at (Empty Language): New.
+
+2002-07-26  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.h, src/reader.c (gram_error): ... can't get
+       yycontrol without making too strong assumptions on the parser
+       itself.
+       * src/output.c (prepare_tokens): Use the real 0th value of
+       token_translations instead of `0'.
+       * src/parse-gram.y (yyerror): Don't rely on yycontrol being
+       visible here.
+       * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
+       for the time being: %locations ought to provide it to yyerror.
+
+2002-07-25  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
+       * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
+       * tests/regression.at (Web2c Actions): Adjust.
+
+2002-07-25  Akim Demaille  <akim@epita.fr>
+
+       Stop storing rules from 1 to nrules + 1.
+
+       * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
+       * src/nullable.c, src/output.c, src/print.c, src/reader.c
+       * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
+       Iterate from 0 to nrules.
+       Use rule_number_as_item_number and item_number_as_rule_number.
+       Adjust to `derive' now containing possibly 0.
+       * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
+       Handle the `- 1' part in rule numbers from/to item numbers.
+       * src/conflicts.c (log_resolution): Fix the message which reversed
+       shift and reduce.
+       * src/output.c (action_row): Initialize default_rule to -1.
+       (token_actions): Adjust.
+       * tests/sets.at (Nullable, Firsts): Fix the previously bogus
+       expected output.
+       * tests/conflicts.at (Resolved SR Conflicts): Likewise.
+
+2002-07-25  Akim Demaille  <akim@epita.fr>
+
+       * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
+       (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
+       (b4_c_knr_arg_decl): New.
+       * data/yacc.c: Use it to define yysymprint, yydestruct, and
+       yyreport_parse_error.
+
+2002-07-25  Akim Demaille  <akim@epita.fr>
+
+       * data/yacc.c (yyreport_parse_error): New, extracted from...
+       (yyparse): here.
+       (yydestruct, yysymprint): Move above yyparse.
+       Be K&R compliant.
+
+2002-07-25  Akim Demaille  <akim@epita.fr>
+
+       * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
+       replace...
+       (b4_sint_type, b4_uint_type): these.
+       * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
+       * tests/regression.at (Web2c Actions): Adjust.
+
+2002-07-25  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h (TIEM_NUMBER_MAX): New.
+       (item_number_of_rule_number, rule_number_of_item_number): Rename
+       as...
+       (rule_number_as_item_number, item_number_as_rule_number): these.
+       Adjust dependencies.
+       * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
+       (VECTOR_NUMBER_MIN, state_number_to_vector_number)
+       (symbol_number_to_vector_number): New.
+       (order): Of vector_number_t* type.
+       (base_t, BASE_MAX, BASE_MIN): New.
+       (froms, tos, width, pos, check): Of base_t type.
+       (action_number_t, ACTION_MIN, ACTION_MAX): New.
+       (actrow): Of action_number_t type.
+       (conflrow): Of unsigned int type.
+       (table_ninf, base_ninf): New.
+       (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
+       (muscle_insert_int_table, muscle_insert_base_table)
+       (muscle_insert_rule_number_table): New.
+       (prepare_tokens): Output `toknum' as int_table.
+       (action_row): Returns a rule_number_t.
+       Use ACTION_MIN, not SHRT_MIN.
+       (token_actions): yydefact is rule_number_t*.
+       (table_ninf_remap): New.
+       (pack_table): Use it for `base' and `table'.
+       * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
+       replaced with...
+       (YYPACT_NINF, YYTABLE_NINF): these.
+       (yypact, yytable): Compute their types instead of hard-coded
+       `short'.
+       * tests/regression.at (Web2c Actions): Adjust.
+
+2002-07-19  Akim Demaille  <akim@epita.fr>
+
+       * src/scan-gram.l (id): Can start with an underscore.
+
+2002-07-16  Akim Demaille  <akim@epita.fr>
+
+       * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
+       Adjust all former `associativity' dependencies.
+       * src/symtab.c (symbol_new): Default associativity is `undef', not
+       `right'.
+       (symbol_check_alias_consistence): Adjust.
+
+2002-07-09  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo: Properly set the ``header'' part.
+       Use @dircategory ``GNU programming tools'' as per Texinfo's
+       documentation.
+       Use @copying.
+
+2002-07-09  Akim Demaille  <akim@epita.fr>
+
+       * lib/quotearg.h: Protect against multiple inclusions.
+       * src/location.h (location_t): Add a `file' member.
+       (LOCATION_RESET, LOCATION_PRINT): Adjust.
+       * src/complain.c (warn_at, complain_at, fatal_at): Drop
+       `error_one_per_line' support.
+
+2002-07-09  Akim Demaille  <akim@epita.fr>
+
+       * src/complain.h, src/complain.c (warn, complain): Remove, unused.
+       * src/reader.c (lineno): Remove.
+       Adjust all dependencies.
+       (get_merge_function): Take a location and use complain_at.
+       * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
+       * tests/regression.at (Invalid inputs, Mixing %token styles):
+       Adjust.
+
+2002-07-09  Akim Demaille  <akim@epita.fr>
+
+       * src/parse-gram.y (rules_or_grammar_declaration): Add an error
+       recovery rule, and forbid extensions when --yacc.
+       (gram_error): Use complain_at.
+       * src/reader.c (reader): Exit if there were parse errors.
+
+2002-07-09  Akim Demaille  <akim@epita.fr>
+
+       * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
+       (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
+       Reported by R Blake <blakers@mac.com>.
+
+2002-07-09  Akim Demaille  <akim@epita.fr>
+
+       * data/yacc.c: Output the copyright notive in the header.
+
+2002-07-03  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (froms, tos): Are state_number_t.
+       (save_column): sp, sp1, and sp2 are state_number_t.
+       (prepare): Rename `final' as `final_state_number', `nnts' as
+       `nterms_number', `nrules' as `rules_number', `nstates' as
+       `states_number', and `ntokens' as `tokens_number'.  Remove `nsym',
+       unused.
+       * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
+       * data/lalr1.cc (nsym_): Remove, unused.
+
+2002-07-03  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.h, src/lalr.c (goto_number_t): New.
+       * src/lalr.c (goto_list_t): New.
+       Propagate them.
+       * src/nullable.c (rule_list_t): New.
+       Propagate.
+       * src/types.h: Remove.
+
+2002-07-03  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (print_fderives): Use rule_rhs_print.
+       * src/derives.c (print_derives): Use rule_rhs_print.
+       (rule_list_t): New, replaces `shorts'.
+       (set_derives): Add comments.
+       * tests/sets.at (Nullable, Firsts): Adjust.
+
 2002-07-03  Akim Demaille  <akim@epita.fr>
 
        * src/output.c (prepare_actions): Free `tally' and `width'.
@@ -8,7 +294,6 @@
        * src/scan-skel.l: here.
        (<<EOF>>): Close yyout, and free its name.
 
-       
 2002-07-03  Akim Demaille  <akim@epita.fr>
 
        Fix some memory leaks, and fix a bug: state 0 was examined twice.
 
 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
-This file is part of GNU Autoconf.
+This file is part of GNU Bison.
 
-GNU Autoconf is free software; you can redistribute it and/or modify
+GNU Bison is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
 
-GNU Autoconf is distributed in the hope that it will be useful,
+GNU Bison is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with autoconf; see the file COPYING.  If not, write to
+along with GNU Bison; see the file COPYING.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.