]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Pessimize the code to simplify it: from now on, all the states
[bison.git] / ChangeLog
index 8a8ecbd1571415b9cbca0822676ea42647bebb2e..f77d7f246b9f6f60a82360ebc26e0825eca13cc3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,174 @@
+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
+       to be the same as the stack names.
+       (yyparse): yyptr is now union yyalloc *, not char *.
+       (YYSTACK_RELOCATE): Likewise.  This avoids a GCC warning,
+       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.