]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Use unlocked I/O for a minor performance improvement on hosts like
[bison.git] / ChangeLog
index cbae3bed5ff33a4aed8515e7472a1317061a40cc..888421cf194b5ac0098a8f9fbfd55a7a9cee781d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,247 @@
+2005-10-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use unlocked I/O for a minor performance improvement on hosts like
+       GNU/Linux and Solaris that support unlocked I/O.  The basic idea
+       is to use the gnlib unlocked-io module, and to prefer putc and
+       puts to printf when either will work (since the latter doesn't
+       come in an unlocked flavor).
+       * bootstrap (gnulib_modules): Add unlocked-io.
+       * data/c.m4 (yysymprint): Prefer puts and putc to printf.
+       * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
+       Prefer them to YYFPRINTF and YYDPRINTF if either will do,
+       and similarly for puts and putc and printf.
+       * data/yacc.c: Likewise.
+       * lib/bitset.c (bitset_print): Likewise.
+       * lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
+       * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
+       to printf.
+       * lib/lbitset.c (debug_lbitset): Likewise.
+       * src/closure.c (print_firsts, print_fderives): Likewise.
+       * src/gram.c (grammar_dump): Likewise.
+       * src/lalr.c (look_ahead_tokens_print): Likewise.
+       * src/output.c (escaped_output): Likewise.
+       (user_actions_output): Coalesce two printfs.
+       * src/parse-gram.h (%printer): Prefer putc and puts to printf.
+       * src/reduce.c (reduce_print): Likewise.
+       * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
+       * src/system.h: Include unlocked-io.h rathe than stdio.h.
+
+       * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
+       this confuses xgettext.
+
+2005-10-02  Akim Demaille  <akim@epita.fr>
+
+       * bootstrap (gnulib_modules): Add strverscmp.
+       * lib/.cvsignore: Add strverscmp.c, strverscmp.h.
+       * m4/.cvsignore: Add strverscmp.m4.
+       * src/parse-gram.y (%require): New token, new rule.
+       (version_check): New.
+       * src/scan-gram.l (%require): Adjust.
+       * tests/input.at (AT_REQUIRE): New.
+       Use it.
+       * doc/bison.texinfo (Require Decl): New.
+       (Calc++ Parser): Use %require.
+
+2005-10-02  Akim Demaille  <akim@epita.fr>
+
+       * data/location.cc: New.
+
+2005-10-02  Paul Eggert  <eggert@cs.ucla.edu>,
+           Akim Demaille  <akim@epita.fr>
+
+       Make sure -odir/foo.cc creates dir/location.hh etc.
+       * src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
+       (spec_file_prefix, spec_verbose_file, spec_graph_file)
+       (spec_defines_file): Now const.
+       (dir_prefix): New.
+       (short_base_name): Remove.
+       * src/files.c: Adjust.
+       (dirname.h): Include.
+       (base_name): Don't prototype it.
+       (finput): Remove, duplicates gram_in.
+       (full_base_name, short_base_name): Replace by...
+       (all_but_ext, all_but_tab_ext): these.
+       (compute_base_names): Rename as...
+       (compute_file_name_parts): this.
+       Update to compute the new variables, including dir_prefix.
+       Adjust dependencies.
+       * src/output.c (prepare): Output them.
+       * src/reader.c: Adjust to use gram_in, not finput.
+       * src/scan-skel.l (@dir_prefix@): New.
+
+2005-10-02  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+
+       * lib/subpipe.c: New function end_of_output_subpipe() added
+       to allow support for non-posix systems. This is a no-op function
+       for posix systems.
+
+       * lib/subpipe.h: New function end_of_output_subpipe() added
+       to allow support for non-posix systems. This is a no-op function
+       for posix systems.
+
+       * src/output.c (output_skeleton): Use end_of_output_subpipe() to
+       handle the lack of pipe/fork functionality on non-posix systems.
+
+       * djgpp/Makefile.maint: DJGPP specific file.
+
+       * djgpp/README.in: DJGPP specific file.
+
+       * djgpp/config.bat: DJGPP specific configuration file.
+
+       * djgpp/config.sed: DJGPP specific configuration file.
+
+       * djgpp/config.site: DJGPP specific configuration file.
+
+       * djgpp/config_h.sed: DJGPP specific configuration file.
+
+       * djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
+
+       * djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
+
+2005-10-02  Akim Demaille  <akim@epita.fr>
+
+       * data/location.cc: New, extract from...
+       * data/lalr1.cc: here.
+       (location.hh): Include it after the user prologue, in case the
+       filename type is defined by the user.
+       Forward declation location and position before the pre-prologue.
+       (yyresult_): Rename as...
+       (yyresult): this, it's a local variable, not an attribute.
+       * data/Makefile.am (dist_pkgdata_DATA): Adjust.
+
+2005-10-01  Akim Demaille  <akim@epita.fr>
+
+       * examples/extexi: Restore the #line generation.
+
+2005-09-30  Akim Demaille  <akim@epita.fr>,
+           Alexandre Duret-Lutz <adl@gnu.org>
+
+       Move the token type and YYSTYPE in the parser class.
+       * data/lalr1.cc (stack.hh, location.hh): Include earlier.
+       (parser::token): New, from the moved free definition of tokens.
+       (parser::semantic_value): Now a full definition instead of an
+       indirection to YYSTYPE.
+       (b4_post_prologue): No longer included in the header file, but
+       in the implementation file.
+       * doc/bison.texi (C+ Language Interface): Update.
+       * src/parse-gram.y: Support unary %define.
+       * tests/actions.at: Define global_tokens_and_yystype for backward
+       compatibility until we update the tests.
+       * tests/calc.at: Idem.
+       (first_line, first_column, last_line, last_column): Define for lalr1.cc
+       to simplify the code.
+
+2005-09-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to SunOS 4.1.4, which lacks strtoul and strerror.
+       Ah, the good old days!  Problem reported by Peter Klein.
+       * bootstrap (gnulib_modules): Add strerror, strtoul.
+       * lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
+       * m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
+
+2005-09-29  Akim Demaille  <akim@epita.fr>
+
+       * data/c.m4 (b4_error_verbose_if): New.
+       * data/lalr1.cc: Use it.
+       (YYERROR_VERBOSE_IF): Remove.
+       (yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
+       parser members, replaced by...
+       (yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
+       local variables.
+       (yysyntax_error_): Takes the state number as argument.
+       (yyreduce_print_): Use the argument yyrule, not the former
+       attribute yyn_.
+
+2005-09-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap (gnulib_modules): Add verify.
+       * lib/.cvsignore: Add verify.h.
+       * src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
+       * src/system.h (verify): Remove.
+       Include verify.h instead.
+       * src/tables.c (tables_generate): Use new API for 'verify'.
+
+2005-09-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
+       local variables whose names begin with 'yy'.
+       * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
+       Trivial changes from Joel E. Denny.
+
+       * bootstrap (gnulib_modules): Remove alloca.  Bison doesn't need
+       it itself.
+       * src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
+       don't use alloca any more.
+
+       * data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
+       __BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
+       defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
+       * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
+       to match yacc.c, to test more hosts.
+
+2005-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (YYSIZE_T): Reindent to make it clearer.  This
+       doesn't affect behavior.
+       (YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
+       Solaris, AIX, MSC.
+       (_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H.  All uses changed.
+       This works a bit better with glibc, if user code has already included
+       stdlib.h.
+       * doc/bison.texinfo (Bison Parser): Document that users can't
+       arbitrarily use malloc and free for other purposes.  Document
+       that <alloca.h> and <malloc.h> might be included.
+       (Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
+       user must declare alloca.
+
+       * HACKING (release): Forwarn the Translation Project about
+       stable releses.
+
+2005-09-20  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
+
+2005-09-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (YYSIZE_MAXIMUM): New macro.
+       (YYSTACK_ALLOC_MAXIMUM): Use it.
+       (yysyntax_error): New function.
+       (yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
+       multiple syntax errors are reported, and alloca is being used.
+       Instead, reallocate buffers twice as big each time, so that
+       we waste at most half the allocated memory.  Start with a small
+       (128-byte) buffer that will suffice in most cases anyway.
+       Use yysyntax_error to do most of the work.
+
+       * doc/bison.texinfo (Error Reporting, Table of Symbols):
+       yynerrs is the number of errors reported, not the number of
+       errors encountered.
+
+       * tests/glr-regression.at (Duplicated user destructor for lookahead):
+       Mark it as expected to fail.
+       Cast result of malloc; problem reported by twlevo@xs4all.nl.
+       * tests/actions.at, tests/calc.at, tests/glr-regression.at:
+       Don't start user-code symbols with "yy", to avoid name space problems.
+
+2005-09-19  Akim Demaille  <akim@epita.fr>
+
+       Remove the traits, failed experiment.
+       It never proved useful, and anyway because of the current
+       definition, it was not possible to have several specialization of
+       this traits, making it useless.
+       * data/lalr1.cc (yy:traits): Remove.
+       Inline its definitions in the parser class.
+
+2005-09-19  Akim Demaille  <akim@epita.fr>
+
+       * tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
+       least Mac OSX with a /usr/local install of gettext.
+
+2005-09-19  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
+       and yytoken for similarity with the other skeletons.
+
 2005-09-19  Akim Demaille  <akim@epita.fr>
 
        * NEWS, configure.ac: Bump to 2.1a.