]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* src/output.c (output, prepare): Make sure the values of the
[bison.git] / ChangeLog
index 5c0df688c8c3905ed80cb23e66257e96f0a4531a..b98d47fd66480fb5170d560ad0aaa7b640344cb8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,280 @@
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output, prepare): Make sure the values of the
+       muscles `action' and `prologue' are 0-terminated.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       Clean up GCC warnings.
+
+       * src/reader.c (copy_action): `buf' is not used.
+       (parse_skel_decl): Be static.
+       * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
+       * src/options.h (create_long_option_table): Have a real prototype.
+       * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
+       (hash_delete_at): Return const void *.
+       Adjust casts to preserve the const.
+
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       * configure.in: Require 2.52g.
+       M4 is not needed, but AUTOM4TE is.
+       * m4/m4.m4: Remove.
+       * tests/Makefile.am: Adjust.
+
+       
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       One structure for states is enough, even though theoretically
+       there are LR(0) states and LALR(1) states.
+
+       * src/lalr.h (state_t): Remove.
+       (state_table): Be state_t **, not state_t *.
+       * src/state.h (core, CORE_ALLOC): Rename as...
+       (state_t, STATE_ALLOC): this.
+       Add the LALR(1) members: shifts, reductions, errs.
+       * src/LR0.c (state_table): Rename as...
+       (state_hash): this, to avoid name clashes with the global
+       `state_table'.
+       * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
+       * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
+
+       
+2001-12-10  Akim Demaille  <akim@epita.fr>
+
+       Bison dumps core on bash.y.
+       Reported by Pascal Bart.
+
+       * src/warshall.c (bitmatrix_print): New.
+       (TC): Use it.
+       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.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
+       its argument.
+       Reported by Peter Hámorský.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (err_table): Remove.
+       (resolve_sr_conflict): Adjust.
+       * src/lalr.h (state_t.reduction_table, state_t.shift_table):
+       Rename as...
+       (state_t.reductions, state_t.shifts): this.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/reduce.c (reduce_grammar_tables): No longer disable the
+       removal of useless rules via CPP but via `if (0)', so that the
+       compiler still check the code is valid.
+       For instance, it should have noticed `rline' no longer exists: use
+       the `line' member of rule_t.
+       * src/gram.c (dummy, rline): Remove, unused.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (pack_vector): Use assert, not berror.
+       * src/main.c (berror): Remove, unused.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       New experimental feature: if --verbose --trace output all the
+       items of a state, not only its kernel.
+
+       * src/print.c (print_core): If `trace_flag', then invoke closure
+       before outputting the items of the state (print_core is no longer
+       a correct name them).
+       (print_results): Invoke new_closure/free_closure if needed.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
+       * src/closure.c, src/closure.h (itemsetsize): Rename as...
+       (nitemset): for consistency with the rest of the project.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (print_closure): Improve.
+       (closure): Use it for printing input and output.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
+       indexed by nonterminals.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
+       what it was!).
+       * src/warshall.h: Remove accidental duplication of the content.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (set_fderives): De-obfuscate.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (print_firsts, print_fderives): De-obfuscate.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/closure.c (set_firsts): De-obfuscate.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (action_row): De-obfuscate
+       using the good o' techniques: arrays not pointers, variable
+       locality, BITISSET, RESETBIT etc.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       Pessimize the code to simplify it: from now on, all the states
+       have a valid SHIFTS, which NSHIFTS is possibly 0.
+
+       * src/LR0.c (shifts_new): Be global and move to..
+       * src/state.c, src/state.h: here.
+       * src/conflicts, src/lalr.c, src/output.c, src/print.c,
+       * src/print_graph: Adjust.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
+       * src/conflicts.c: Use it.
+       Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
+       incorrectly ``simplified''.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
+       using the good o' techniques: arrays not pointers, variable
+       locality, BITISSET, RESETBIT etc.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h (SHIFT_SYMBOL): New.
+       * src/conflicts.c: Use it to deobfuscate.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
+       (print_reductions): De-obfuscate using the good o' techniques:
+       arrays not pointers, variable locality, BITISSET.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Arrays, not pointers.
+       Use BITISSET.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Pessimize, but clarify.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Improve variable locality.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Pessimize, but clarify.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (print_reductions): Improve variable locality.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
+       * src/lalr.c: Use them.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/LR0.c (augment_automaton): Formatting changes.
+       Better variable locality.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (matrix_print): New.
+       (transpose): Use it.
+       Use arrays instead of pointers.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (maxrhs): Move to...
+       * src/gram.c, src/gram.h (ritem_longest_rhs): here.
+       * src/lalr.c (build_relations): Adjust.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (transpose): Free the memory allocated to the
+       argument, as it is replaced by the results by the unique caller.
+       (build_relations): Merely invoke transpose: it handles the memory
+       deallocation.
+       Improve variable locality.
+       Avoid variables used as mere abbreviations.
+       (compute_lookaheads): Use arrays instead of pointers.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (initialize_F): Improve variable locality.
+       Avoid variables used as mere abbreviations.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/derives.c (print_derives): Display the ruleno.
+       * src/lalr.c (initialize_F, transpose): Better variable locality
+       to improve readability.
+       Avoid variables used as mere abbreviations.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/lalr.c (traverse): Use arrays instead of pointers.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
+       the handling of squeue.
+       `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       Because useless nonterminals are now kept alive (instead of being
+       `destroyed'), we now sometimes examine them, and store information
+       related to them.  Hence we need to know their number, and adjust
+       memory allocations.
+
+       * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
+       static.
+       * src/LR0.c (allocate_itemsets): The memory allocated to
+       `symbol_count' was used for two different purpose: once to count
+       the number of occurrences of each symbol, and later reassigned to
+       `shift_symbol', containing the symbol that can be shifted from a
+       given state.
+       Deobfuscate, i.e., allocate, use and free `symbol_count' here
+       only, and...
+       (new_itemsets): Allocate `shift_symbol' here.
+       (allocate_itemsets): symbol_count includes useless nonterminals.
+       Make room for them.
+       (free_storage): Use `free', not `XFREE', for pointers that cannot
+       be null.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/nullable.c (set_nullable): Deobfuscate the handling of
+       ritem.
+       `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
+
+2001-12-05  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.c, src/gram.h (ritem_print): New.
+       * src/gram.c (dummy): Remove, now there is actual code in gram.c.
+       (This useless function was defined only to work around VMS linkers
+       that can't handle compilation units with variables only).
+       * src/reduce.c (dump_grammar): Use it to trace the construction of
+       ritem.
+
 2001-12-04  Paul Eggert  <eggert@twinsun.com>
 
        * src/bison.simple (union yyalloc): Change member names
@@ -7,7 +284,7 @@
        and may generate better code on some machines.
        (yystpcpy): Use prototype if __STDC__ is defined, not just
        if __cplusplus is defined.
-       
+
 2001-11-30  Akim Demaille  <akim@epita.fr>
 
        * configure.in (WARNING_CFLAGS): Add -Werror when possible.