]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Undo my 2007-02-07 change, switching back to the c-strcase module
[bison.git] / ChangeLog
index f6fe4cec1ba8325174247c9ba23cb810ef7bdb19..dde006f1cd3875c2c5321792b2eb870495ab69c6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,292 @@
+2007-02-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Undo my 2007-02-07 change, switching back to the c-strcase module
+       introduced in the 2007-02-03 change.  Bruno Haible reported that
+       the 2007-02-07 change would be dangerous in Turkish if we add a
+       language whose name contains "i", since "i" is not lowercase "I"
+       in Turkish.
+       * bootstrap.conf (gnulib_modules): Add c-strcase.  Remove strcase.
+       * lib/.cvsignore: Add c-ctype.c, c-ctype.h, c-strcase.h,
+       c-strcasecomp.c, c-strncasecmp.c.  Remove strcasecmp.c, strncasecmp.c.
+       * m4/.cvsignore: Remove strcase.m4.
+       * src/getargs.c: Revert 2007-02-07 change, as follows.
+       Include c-strcase.h.
+       (language_argmatch): Use c_strcasecmp rather than strcasecmp.
+
+2007-02-11  Bruno Haible  <bruno@clisp.org>
+
+       Enable the Java related testsuite tests when the only Java compiler
+       found is a gcj < 4.3.  Discussed at
+       <http://lists.gnu.org/archive/html/bug-bison/2007-02/msg00016.html>.
+       * configure.ac (gt_JAVACOMP): Don't specify a target_version.
+
+2007-02-11  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * data/Makefile.am: Update copyright date.
+       * data/push.c (yypull_parse): Report memory exhaustion and return 2 if
+       yypstate_new returns NULL.
+       (yypstate_new): Return NULL if malloc does.
+       * src/reader.c (packgram): Move translation of rule actions from the
+       beginning of packgram to...
+       (check_and_convert_grammar): ... here right before packgram is invoked
+       so it's easier to write more complete comments, and remove redundant
+       code.
+
+2007-02-10  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       As in semantic actions, make @$ in %initial-action, %destructor, and
+       %printer imply %locations.
+       * src/scan-code.l (SC_SYMBOL_ACTION): Set locations_flag = true when
+       scanning @$.
+       * tests/actions.at (AT_CHECK_ACTION_LOCATIONS): New macro supporting...
+       (@$ in %initial-action implies %locations,
+       @$ in %destructor implies %locations,
+       @$ in %printer implies %locations): ... these new test cases.
+
+2007-02-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Undo most of the 2007-02-03 change, switching to the strcase module
+       now that gnulib strcase has been fixed.
+       * bootstrap.conf (gnulib_modules): Remove c-strcase.  Add strcase.
+       * lib/.cvsignore: Remove c-ctype.c, c-ctype.h, c-strcase.h,
+       c-strcasecomp.c, c-strncasecmp.c.  Add strcasecmp.c, strncasecmp.c
+       * m4/.cvsignore: Add strcase.m4.
+       * src/getargs.c: Revert 2007-02-03 change, as follows.
+       Don't include c-strcase.h.
+       (language_argmatch): Use strcasecmp rather than c_strcasecmp.
+       strcasecmp has "unspecified behavior" outside the POSIX locale,
+       but it works fine in practice if at least one argument is ASCII,
+       as is the case in Bison.
+
+2007-02-07  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tests/java.at: Skip tests if only one of javac/java is present.
+       Reported by Joel E. Denny.
+       * tests/atlocal.in: Adjust copyright years.
+
+2007-02-05  Paolo Bonzini  <bonzini@gnu.org>
+
+       * data/lalr1.java (Stack): Work around old verifiers that disallow
+       access to the private fields of an inner class, from the outer class.
+       We can make Stack's fields public because user code doesn't have access
+       to the instance of Stack used by parse().  Reported by Paul Eggert.
+
+2007-02-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * .cvsignore: Add javacomp.sh, javaexec.sh.  Is this really
+       the right spot for these files?
+       * bootstrap.conf (gnulib_modules): Add c-strcase.
+       * lib/.cvsignore: Add c-ctype.c c-ctype.h, c-strcasecomp.c,
+       c-strncasecmp.c.
+       * src/getargs.c: Include c-strcase.h.
+       (language_argmatch): Use c_strcasecmp rather than strcasecmp,
+       to avoid unspecified behavior.
+
+2007-02-01  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * doc/bison.texinfo (Decl Summary): Correct typo.
+
+2007-01-30  Paolo Bonzini  <bonzini@gnu.org>
+
+       * data/bison.m4 (b4_percent_define_flag_if): Don't treat 0 as false.
+       Complain if the value does not match empty, "true" or "false".
+       * data/c++.m4: Adjust default definitions of %define variables.
+       * data/java.m4: Adjust default definitions of %define variables.
+       * doc/bison.texinfo (Decl Summary): Adjust the %define entry according
+       to above behavior.
+       * tests/input.at (Boolean %define variables): Test new behavior.
+
+2007-01-29  Paolo Bonzini  <bonzini@gnu.org>
+
+       * NEWS: Mention java.
+       * TODO: Remove things that are done.
+       * bootstrap.conf: Add javacomp-script and javaexec-script.
+       * configure.ac: Invoke gt_JAVACOMP and gt_JAVAEXEC.
+
+       * data/Makefile.am: Add new files.
+       * data/java-skel.m4: New.
+       * data/java.m4: New.
+       * data/lalr1.java: New.
+
+       * doc/bison.texinfo: Put "A Complete C++ Example" under
+       C++ Parsers.  Add Java Parsers.  Put C++ Parsers and Java Parsers
+       under Other Languages.
+
+       * src/getargs.c (valid_languages): Add Java.
+       * src/getargs.h (struct bison_language): Update size of string fields.
+
+       * tests/Makefile.am: Add java.at.
+       * tests/atlocal.in: Add CONF_JAVA and CONF_JAVAC.
+       * tests/java.at: New.
+       * tests/testsuite.at: Include it.
+
+2007-01-28  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Clean up.
+       * src/scan-skel.l (at_directive_perform): Add at_directive_argc and
+       at_directive_argv arguments so these no longer have to be global
+       variables.  Also, update the implementation for the following changes.
+       (fail_for_at_directive_too_many_args,
+       fail_for_at_directive_too_few_args): Add at_directive_name argument.
+       (at_directive_name): Remove as at_directive_argv[0] will be used for
+       this now.
+       (AT_DIRECTIVE_ARGC_MAX): Increment to make space in at_directive_argv
+       for the directive name.
+       (at_directive_argc, at_directive_argv): Make these local within
+       skel_lex instead of global.
+       (INITIAL): Update directive start action for above changes.
+       (SC_AT_DIRECTIVE_ARG): Rename to...
+       (SC_AT_DIRECTIVE_ARGS): ... this, and update for above changes.
+       (SC_AT_DIRECTIVE_SKIP_WS): Update.
+       (scan_skel): Move yylex_destroy to...
+       (skel_scanner_free): ... here.
+       * tests/skeletons.at (installed skeleton file name): Rename to...
+       (installed skeleton file names): ... this.
+
+2007-01-27  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * ChangeLog: For changes in doc/bison.texinfo, consistently reference
+       node names: say "Table of Symbols" not "Bison Symbols", and say "Decl
+       Summary" not "Directives".
+       * doc/bison.texinfo (Decl Summary, Calc++ Parser): Cross-reference the
+       %code entry in "Decl Summary" rather than the one in "Table of Symbols"
+       since the former is now the more complete one.
+       (Prologue Alternatives): Likewise and do the same for %defines.
+       (Table of Symbols): Add summary of %code, add summary of %define, and
+       move full %code documentation to...
+       (Decl Summary): ... here for consistency with other entries in these
+       sections.
+       Move %define entry in order to keep this list alphabetized.
+       Reword %define entry a little to put less emphasis on the skeleton
+       concept, which most users shouldn't have to think about.
+
+2007-01-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Adjust to recent gnulib changes.
+       * lib/.cvsignore: Remove stpcpy.h, strndup.h, strnlen.h.
+       Add string.h, string_.h, unistd_.h, wchar_.h.
+       * m4/.cvsignore: Add gnulib-common.m4, string_h.m4, wchar.m4.
+       * src/system.h: Don't include <stpcpy.h>; this is now done by
+       <string.h>.
+
+2007-01-23  Paolo Bonzini  <bonzini@gnu.org>
+
+       Simplify implementation of unqualified %code, implement macros for
+       uniform treatment of boolean %define flags.  Document %define.
+       * data/bison.m4 (b4_percent_define_ifdef, b4_percent_define_flag_if,
+       b4_percent_code_ifdef): New.
+       (b4_percent_code_get): Map unqualified %code to b4_percent_code().
+       * data/c++.m4: Define default value for global_tokens_and_yystype.
+       * data/glr.cc: Likewise.
+       * data/location.cc: Use b4_percent_define_flag_if.
+
+       * doc/bison.texinfo (Decl Summary): Document %define.
+
+       * src/parse-gram.y (Unqualified %code): Change muscle name to
+       b4_percent_code().
+       (content.opt): Default to empty.
+
+2007-01-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Implement support for relative and absolute skeleton file names.
+       Discussed starting at
+       <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00071.html>.
+       * doc/bison.texinfo (Decl Summary): Document in %skeleton entry.
+       (Bison Options): Document in --skeleton entry.
+       * src/output.c (output_skeleton): Use strncpy rather than strcpy since
+       full_skeleton can't necessarily hold all of pkgdatadir.
+       If the specified skeleton file name contains a `/', don't prepend
+       pkgdatadir.
+       * src/parse-gram.y (prologue_declaration): If the specified skeleton
+       file name contains a `/', prepend the grammar file directory.
+       * tests/Makefile.am (TESTSUITE_AT): Add skeletons.at.
+       * skeletons.at: New file.
+       (relative skeleton file names): New test case.
+       (installed skeleton file names): New test case.
+       * tests/testsuite.at: Include skeletons.at.
+
+       * bootstrap: Update copyright to 2007.
+
+2007-01-17  Paolo Bonzini  <bonzini@gnu.org>
+
+       * bootstrap: Remove occurrences of .#bootmp from the files.
+
+2007-01-17  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo (Calc++ Parser): Don't try to alias
+       nonterminals.
+       Use per-type %printer.
+
+2007-01-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * NEWS, data/c++-skel.m4, data/c++.m4, data/c-skel.m4, data/c.m4,
+       data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
+       djgpp/config.site, src/files.c, src/files.h, src/main.c,
+       src/muscle_tab.c, src/muscle_tab.h, src/parse-gram.y, src/reader.h,
+       src/scan-skel.h, src/scan-skel.l, tests/actions.at, tests/calc.at,
+       tests/glr-regression.at, tests/input.at, tests/local.at,
+       tests/output.at, tests/torture.at: Update copyright to 2007.
+
+2007-01-16  Akim Demaille  <akim@epita.fr>
+
+       * doc/bison.texinfo (Calc++ Parsing Driver): Let "parse" return an
+       error code.
+       (Calc++ Scanner): Exit with failure if we can't open the input
+       file.
+       Accept "-" standing for stdin.
+       (Calc++ Top Level): Print the result only if the parsing was
+       successful.
+
+2007-01-16  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (yy_reduce_print_): Add a missing end-of-line.
+
+2007-01-15  Paolo Bonzini  <bonzini@gnu.org>
+       and Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Clean up %define and %code implementation in M4 some.  Most
+       importantly, rename all related macros to be in the b4_percent_define
+       and b4_percent_code namespaces.  Also, complete support for `.' in
+       %define variable names and %code qualifiers.
+       * data/bison.m4 (b4_check_user_names): Check for special
+       "SKELETON-NAMESPACE(name)" macros instead of using two nested
+       m4_foreach loops.
+       (b4_get_percent_define, b4_get_percent_code): Rename to...
+       (b4_percent_define_get, b4_percent_code_get): ... these.
+       Extend documentation with examples.
+       For SKELETON-NAMESPACE (as documented for b4_check_user_names), use
+       b4_percent_define_skeleton_variables and
+       b4_percent_code_skeleton_qualifiers.
+       Expect any value for the %define variable `foo' to be stored in the
+       macro named `b4_percent_define(foo)'; expect any %code blocks for the
+       qualifier `foo' to be stored in a macro named `b4_percent_code(foo)';
+       expect any unqualified %code blocks to be stored in a macro named
+       `b4_percent_code_unqualified'.
+       Use m4_indir so that %define variable names and %code qualifiers can
+       contain `.', which is allowed by the grammar parser.
+       (b4_percent_define_default): New macro to set a default value for a
+       %define variable.
+       (m4_wrap): Update wrapped code, and fix some underquoting.
+       (b4_check_user_names_wrap): Update and define outside the m4_wrap.
+       Expect grammar uses of %define variables and %code qualifiers to be
+       defined in b4_percent_define_user_variables and
+       b4_percent_code_user_qualifiers.
+       * data/c++.m4: Use b4_percent_define_default rather than
+       m4_define_default.  Fix some underquoting.  Skeleton usage of %define
+       variable define_location_comparison now implies skeleton usage of
+       %define variable filename_type.
+       * data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
+       data/push.c, data/yacc.c: Update macro names.
+       * src/parse-gram.y (prologue_declaration, grammar_declaration): Update
+       muscle names.
+
+2007-01-14  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+       DJGPP specific issues.
+
+       * djgpp/config.site: Set ac_cv_path_mkdir to a sane DJGPP specific
+       default.  Set gl_cv_absolute_wctype_h to a sane DJGPP specific default.
+
 2007-01-09  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        * tests/glr-regression.at: Use AT_PARSER_CHECK rather than AT_CHECK to
        (C++ Location Values): Update %define uses.
        (Calc++ Parser Interface): Likewise.
        (Calc++ Parser): Likewise, and update `%code requires' uses.
-       (Bison Symbols): Update %code documentation.
+       (Table of Symbols): Update %code documentation.
        * src/parse-gram.y (prologue_declaration): For %define variables, use
        `variable' instead of `STRING'.
        (grammar_declaration): For %code qualifiers, use `ID' instead of
        b4_check_percent_code_qualifiers.  Use b4_get_percent_code.
        * data/glr.cc, data/lalr1.cc: Likewise, and use b4_get_percent_define.
        (b4_parser_class_name, b4_namespace): Define these using
-       b4_get_percent_define for parser_class_name and namespace.  Normally
-       this would be a bad idea since there might be cases when the variables
-       aren't used, but these variables are too pervasive in these skeletons
-       for that to be a problem.
+       b4_get_percent_define for parser_class_name and namespace.
        * data/location.cc: Use b4_get_percent_define.
        * data/push.c: Don't use b4_check_percent_define_variables and
        b4_check_percent_code_qualifiers.  Use b4_get_percent_code.
        * data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
        data/push.c, data/yacc.c: Likewise, and replace m4_divert(0) with
        m4_divert_push(0) and m4_divert_pop(0).
-       * data/output.c (output_skeleton): Don't add an m4_divert_push(0) and
+       * src/output.c (output_skeleton): Don't add an m4_divert_push(0) and
        an m4_wrap([m4_divert_pop(0)]) to the M4.  Diversion -1, which is
        pushed and popped by m4sugar, should be first on the stack.
 
        * doc/bison.texinfo (Prologue Alternatives): Update.
        (Decl Summary): Update to %code "requires" and %code "provides".
        (Calc++ Parser): Update to %code "requires".
-       (Bison Symbols): Remove entries for %requires, %provides, and
+       (Table of Symbols): Remove entries for %requires, %provides, and
        %code-top.  Rewrite %code entry, and add a %code "QUALIFIER" entry.
        * data/bison.m4 (b4_user_provides, b4_user_requires): Remove as these
        are replaced by b4_percent_code_provides and b4_percent_code_requires,
        documentation instead.
        (Calc++ Parser): Use `%require "@value{VERSION}"' rather than
        `%require "2.3b"' so that the example is always up-to-date.
-       (Bison Symbols): Add entries for %language and %skeleton.
+       (Table of Symbols): Add entries for %language and %skeleton.
        * examples/extexi (normalize): Instead of replacing every %require
        argument with the current Bison version, just substitute for
        `@value{VERSION}'.  This guarantees that we're testing what actually
 
        * doc/bison.texinfo (C++ Parser Interface): Prefer %language
        over %skeleton.
-       (Directives): Document %language and %skeleton.
+       (Decl Summary): Document %language and %skeleton.
        (Command line): Document -L.
 
        * examples/extexi: Rewrite %require directive.
        (2.3a): Annotate this entry to say the old forms of these features were
        also experimental.
        * doc/bison.texinfo (Prologue Alternatives, Freeing Discarded Symbols,
-       Bison Symbols): Say they're experimental.  Comment out any mention
+       Table of Symbols): Say they're experimental.  Comment out any mention
        of Java (we'll want this back eventually).
 
 2006-12-01  Joel E. Denny  <jdenny@ces.clemson.edu>
        %file-prefix, %name-prefix, and %output.  Discussed at
        <http://lists.gnu.org/archive/html/help-bison/2006-09/msg00001.html>.
        * NEWS (2.3a+): Mention.
-       * doc/bison.texinfo (Decl Summary, Bison Symbols): Add entry for new
+       * doc/bison.texinfo (Decl Summary, Table of Symbols): Add entry for new
        form of %defines, and remove `=' from entries for %file-prefix,
        %name-prefix, and %output.
        * src/parse-gram.y (prologue_declaration): Implement.
        Rename <!> to <>.  Discussed starting at
        <http://lists.gnu.org/archive/html/bison-patches/2006-11/msg00039.html>.
        * NEWS (2.3a+): Update.
-       * doc/bison.texinfo (Freeing Discarded Symbols, Bison Symbols):
+       * doc/bison.texinfo (Freeing Discarded Symbols, Table of Symbols):
        Update.
        * src/parse-gram.y (TYPE_TAG_NONE, generic_symlist_item): Implement.
        * src/scan-gram.l (INITIAL): Implement.
        * NEWS (2.3a+): Mention.
        * doc/bison.texinfo (Freeing Discarded Symbols): Document this and the
        previous change today related to mid-rules.
-       (Bison Symbols): Remove %symbol-default and add <*> and <!>.
+       (Table of Symbols): Remove %symbol-default and add <*> and <!>.
        * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): Remove.
        (TYPE_TAG_ANY): Add as <*>.
        (TYPE_TAG_NONE): Add as <!>.
        alternatives to...
        (Prologue Alternatives): ... this new section, and extend it to discuss
        all 4 directives in detail.
-       (Bison Symbols): Clean up discussion of prologue alternatives and add
-       %code-top.
+       (Table of Symbols): Clean up discussion of prologue alternatives and
+       add %code-top.
 
 2006-10-16  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
 
        <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00007.html>.
        * NEWS (2.3+): Add %symbol-default to example.
        * bison.texinfo (Freeing Discarded Symbols): Likewise.
-       (Bison Symbols): Add entry for %symbol-default.
+       (Table of Symbols): Add entry for %symbol-default.
        * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): New token.
        (generic_symlist, generic_symlist_item): New nonterminals for creating
        a list in which each item is a symbol, semantic type, or
        prologue blocks with %*-header declarations.
        (Calc++ Parser): Likewise.
        (Bison Declaration Summary): Update names.
-       (Bison Symbols): Update description.
+       (Table of Symbols): Update description.
        * src/parse-gram.y (PERCENT_AFTER_DEFINITIONS): Update to...
        (PERCENT_END_HEADER): ... this.
        (PERCENT_BEFORE_DEFINITIONS): Update to...
        file.
        (Calc++ Parser): Forward declare driver in a %before-definitions rather
        than in the pre-prologue so that make check succeeds.
-       (Bison Symbols): Add entries for %before-definitions and
+       (Table of Symbols): Add entries for %before-definitions and
        %after-definitions.
        * src/parse-gram.y (PERCENT_BEFORE_DEFINITIONS): New token for
        %before-definitions.
        in the yychar entry.
        In the yychar entry, remove mention of the local yychar case (pure
        parser) since this is irrelevant information when writing semantic
-       actions and since it's already discussed in `Bison Symbols' where
+       actions and since it's already discussed in `Table of Symbols' where
        yychar is otherwise described as an external variable.
        In the yychar entry, don't call it the `current' look-ahead since it
        isn't when semantic actions are deferred.
        `current' look-ahead, and do mention yylval and yylloc.
        (Error Recovery): Cross-reference `Action Features' when mentioning
        yyclearin.
-       (Bison Symbols): In the yychar entry, don't call it the `current'
+       (Table of Symbols): In the yychar entry, don't call it the `current'
        look-ahead.
        In the yylloc and yylval entries, mention look-ahead usage.