]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* src/output.c (output, prepare): Make sure the values of the
[bison.git] / ChangeLog
index eb53eab6ff0d6e05feb31f2e46f8646367546f18..b98d47fd66480fb5170d560ad0aaa7b640344cb8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,144 @@
+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.
        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.
        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
        (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.
        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.