]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Regen.
[bison.git] / ChangeLog
index 134e862df451dded27db27ad19a54bc8a4a69ef8..edb5cf66e153de3c4f0f9b57a72c4ed68029f8e2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,128 @@
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+       Regen.
+       * src/parse-gram.h, src/parse-gram.h: Regen.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+       Remove src/Makefile.am.
+       * src/Makefile.am: Rename as...
+       * src/local.mk: this.
+       Prefix all the paths with src/.
+       (AUTOMAKE_OPTIONS): Build object files in the sub dirs.
+       (AM_CPPFLAGS): Find find in builddir/src.
+       (YACC): Move the flags into...
+       (AM_YFLAGS): here.
+       * maint.mk (sc_tight_scope): Disable.
+       It used to bounce to the version in src/Makefile.am which is now
+       part of this very Makefile.
+       * Makefile.am, configure.ac: Adjust.
+       * src/scan-code-c.c, src/scan-code.l: We can no longer rely on
+       include "..." to find files "here": we are no longer in src/, so
+       qualify the includes with src/.
+       * doc/Makefile.am (PREPATH): No longer include the top_builddir
+       prefix.
+       (.x.1): Adjust to be able to create src/foo from the top level
+       Makefile, instead of going bounce to src/Makefile the creation of
+       foo.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+       Remove useless variable.
+       * doc/Makefile.am (srcsrcdir): Remove.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+       Remove data/Makefile.am.
+       * data/Makefile.am: Rename as...
+       * data/local.mk: this.
+       Adjust paths.
+       * Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+       Remove etc/Makefile.am.
+       * etc/Makefile.am: Rename as...
+       * etc/local.mk: this.
+       Adjust.
+       * Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+       Remove examples/local.mk.
+       examples/calc++/Makefile.am might be interesting to keep as is, since
+       it is an example in itself.
+
+       * examples/Makefile.am: Rename as...
+       * examples/local.mk: this.
+       Adjust.
+       * Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+       Remove build-aux/Makefile.am.
+       Recursive Makefiles are really way too slow, let's get rid of some of
+       them.
+
+       * build-aux/Makefile.am: Rename as...
+       * build-aux/local.mk: this.
+       Adjust paths.
+       * Makefile.am, configure.ac: Adjust.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+       Provide convenience constructors for locations and positions.
+       * data/location.cc (position::position): Accept file, line and
+       column as arguments with default values.
+       Always qualify initial line and column literals as unsigned.
+       (location::location): Provide convenience constructors.
+
+2008-11-15  Akim Demaille  <demaille@gostai.com>
+
+       Instead of using make_symbol<TOK_FOO>, generate make_FOO for each token type.
+       Using template buys us nothing, and makes it uselessly complex to
+       construct a symbol.  Besides, it could not be generalized to other
+       languages, while make_FOO would work in C/Java etc.
+
+       * data/lalr1.cc (b4_symbol_): New.
+       (b4_symbol): Use it.
+       (b4_symbol_constructor_declaration_)
+       (b4_symbol_constructor_definition_): Instead of generating
+       specializations of an overloaded template function, just generate
+       several functions whose names are forged from the token names
+       without the token.prefix.
+       (b4_symbol_constructor_declarations): Generate them for all the
+       symbols, not just by class of symbol type, now that instead of
+       specializing a function template by the token, we generate a
+       function named after the token.
+       (b4_symbol_constructor_specialization_)
+       (b4_symbol_constructor_specializations): Remove.
+       * etc/bench.pl.in: Adjust to this new API.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+       %define token.prefix.
+       Provide a means to add a prefix to the name of the tokens as output in the
+       generated files.  Because of name clashes, it is good to have such a
+       prefix such as TOK_ that protects from names such as EOF, FILE etc.
+       But it clutters the grammar itself.
+
+       * data/bison.m4 (token.prefix): Empty by default.
+       * data/c.m4 (b4_token_enum, b4_token_define): Use it.
+       * data/lalr1.cc (b4_symbol): Ditto.
+
+2008-11-13  Akim Demaille  <demaille@gostai.com>
+
+       Compute at M4 time some of the subtractions.
+       * data/lalr1.cc (b4_substract): New.
+       (b4_rhs_data): Use it.
+
 2008-11-13  Akim Demaille  <demaille@gostai.com>
 
        symbol::token.
        This is allows the user to get the type of a token return by
        yylex.
 2008-11-13  Akim Demaille  <demaille@gostai.com>
 
        symbol::token.
        This is allows the user to get the type of a token return by
        yylex.
-       
+
        * data/lalr1.cc (symbol::token): New.
        (yytoknum_): Define when %define lex_symbol, independently of
        %debug.
        * data/lalr1.cc (symbol::token): New.
        (yytoknum_): Define when %define lex_symbol, independently of
        %debug.
        Define make_symbol in the header.
        To reach good performances these functions should be inlined (yet this is
        to measure precisely).  To this end they must be available to the caller.
        Define make_symbol in the header.
        To reach good performances these functions should be inlined (yet this is
        to measure precisely).  To this end they must be available to the caller.
-       
+
        * data/lalr1.cc (b4_symbol_constructor_definition_): Qualify
        location_type with the class name.
        Since will now be output in the header, declare "inline".
        * data/lalr1.cc (b4_symbol_constructor_definition_): Qualify
        location_type with the class name.
        Since will now be output in the header, declare "inline".
        The constructors are called by the make_symbol functions, which a
        forthcoming patch will move elsewhere.  Hence the interest of putting them
        together.
        The constructors are called by the make_symbol functions, which a
        forthcoming patch will move elsewhere.  Hence the interest of putting them
        together.
-       
+
        The stack_symbol_type does not need to be moved, it is used only by the
        parser.
        The stack_symbol_type does not need to be moved, it is used only by the
        parser.
-       
+
        * data/lalr1.cc: Move symbol_type and symbol_base_type
        constructors into...
        (b4_symbol_constructor_definitions): here.
        * data/lalr1.cc: Move symbol_type and symbol_base_type
        constructors into...
        (b4_symbol_constructor_definitions): here.
        Make it easier to move the definition of yytranslate_.
        Forthcoming changes will make it possible to use yytranslate_
        from outside the parser implementation file.
        Make it easier to move the definition of yytranslate_.
        Forthcoming changes will make it possible to use yytranslate_
        from outside the parser implementation file.
-       
+
        * data/lalr1.cc (b4_yytranslate_definition): New.
        Use it.
 
        * data/lalr1.cc (b4_yytranslate_definition): New.
        Use it.
 
        goes against the stronger typing I am trying to have with the new
        lex interface which return a symbol_type.  So in this case, feed
        yytranslate_ with a token_type.
        goes against the stronger typing I am trying to have with the new
        lex interface which return a symbol_type.  So in this case, feed
        yytranslate_ with a token_type.
-       
+
        * data/lalr1.cc (yytranslate_): When in %define lex-symbol,
        expect a token_type.
 
        * data/lalr1.cc (yytranslate_): When in %define lex-symbol,
        expect a token_type.
 
        The union used to compute the size of the variant used to iterate over the
        type of all the symbols, with a lot of redundancy.  Now iterate over the
        lists of symbols having the same type-name.
        The union used to compute the size of the variant used to iterate over the
        type of all the symbols, with a lot of redundancy.  Now iterate over the
        lists of symbols having the same type-name.
-       
+
        * data/lalr1.cc (b4_char_sizeof_): New.
        (b4_char_sizeof): Use it.
        Adjust to be called with a list of numbers instead of a single
        * data/lalr1.cc (b4_char_sizeof_): New.
        (b4_char_sizeof): Use it.
        Adjust to be called with a list of numbers instead of a single
        Symbols may have several string representations, for instance if they
        have an alias.  What I call its "id" is a string that can be used as
        an identifier.  May not exist.
        Symbols may have several string representations, for instance if they
        have an alias.  What I call its "id" is a string that can be used as
        an identifier.  May not exist.
-       
+
        Currently the symbols which have the "tag_is_id" flag set are those that
        don't have an alias.  Look harder for the id.
        Currently the symbols which have the "tag_is_id" flag set are those that
        don't have an alias.  Look harder for the id.
-       
+
        * src/output.c (is_identifier): Move to...
        * src/symtab.c (is_identifier): here.
        * src/symtab.h, src/symtab.c (symbol_id_get): New.
        * src/output.c (is_identifier): Move to...
        * src/symtab.c (is_identifier): here.
        * src/symtab.h, src/symtab.c (symbol_id_get): New.
        not work well in C++ (unless the parameter also appears as an argument,
        which is not acceptable), hence the use of a function instead of a
        constructor.
        not work well in C++ (unless the parameter also appears as an argument,
        which is not acceptable), hence the use of a function instead of a
        constructor.
-       
+
        * data/lalr1.cc (b4_symbol_constructor_declaration_)
        (b4_symbol_constructor_declarations)
        (b4_symbol_constructor_specialization_)
        * data/lalr1.cc (b4_symbol_constructor_declaration_)
        (b4_symbol_constructor_declarations)
        (b4_symbol_constructor_specialization_)