Akim Demaille [Thu, 9 Feb 2012 13:09:23 +0000 (14:09 +0100)]
maint: more silent rules.
* tests/local.mk (TESTSUITE_AT): Include plackage.m4.
Adjust dependencies.
Make testsuite.at its first argument.
(package.m4): Be silent.
(testsuite): Be silent.
Use $<.
Akim Demaille [Thu, 9 Feb 2012 13:02:22 +0000 (14:02 +0100)]
skeletons: simplify the protections against "unused" warnings.
* data/c.m4 (b4_parse_param_use): Also accept optional arguments
to "use".
Simplify callers.
* data/glr.c (yyuserAction): Simplify use of b4_parse_param_use.
(yy_reduce_print): Don't use b4_parse_param_use, as all the arguments
_are_ used.
* data/lalr1.cc (YY_SYMBOL_PRINT): Even when disabled, "use" the
symbol argument.
This neutralizes a warning in yypush_ when there are no symbols
with a semantic values.
(yy_destroy_): Remove useless "use" of yymsg.
Akim Demaille [Wed, 8 Feb 2012 09:28:58 +0000 (10:28 +0100)]
use a more consistent quoting style.
See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>.
Use quotearg as often as possible instead of leaving the choice of
the quotes to the translators. Use shorter messages. Factor similar
messages to a single format, to make localization easier.
* src/files.c, src/getargs.c, src/muscle-tab.c, src/reader.c
* src/scan-code.l, src/scan-gram.l, src/symtab.c:
Use quote() or quotearg_colon() on printf arguments instead of
quotes in the format string.
* data/bison.m4: Keep sync with the changes in muscle-tab.c.
Akim Demaille [Wed, 8 Feb 2012 09:28:58 +0000 (10:28 +0100)]
use a more consistent quoting style.
See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>.
Use quotearg as often as possible instead of leaving the choice of
the quotes to the translators. Use shorter messages. Factor similar
messages to a single format, to make localization easier.
* src/files.c, src/getargs.c, src/muscle-tab.c, src/reader.c
* src/scan-code.l, src/scan-gram.l, src/symtab.c:
Use quote() or quotearg_colon() on printf arguments instead of
quotes in the format string.
* data/bison.m4: Keep sync with the changes in muscle-tab.c.
Akim Demaille [Mon, 30 Jan 2012 15:21:13 +0000 (16:21 +0100)]
maint: more silent-rules.
* doc/local.mk, src/local.mk, examples/calc++/Makefile.am: Use
$(AM_V_GEN) and $(AM_V_at) where appropriate.
(cherry picked from commit f67c0a1c35cbc342e1c1b2201aa563b17c26e3b1)
Jim Meyering [Sun, 29 Jan 2012 11:50:32 +0000 (12:50 +0100)]
do not ignore errors like ENOSPC,EIO when writing to stdout
Standard output was never explicitly closed, so we could not
detect failure. Thus, bison would ignore the errors of writing
to a full file system and getting an I/O error on write, but only
for standard output, e.g., for --print-localedir, --print-datadir,
--help and some verbose output.
Now, "bison --print-datadir > /dev/full" reports the write failure:
bison: write error: No space left on device
Before, it would exit 0 with no diagnostic, implying success.
This is not an issue for "--output=-" or the other FILE-accepting
command-line options, because unlike most other GNU programs,
an output file argument of "-" is treated as the literal "./-",
rather than standard output.
* bootstrap.conf (gnulib_modules): Add closeout.
* src/main.c: Include "closeout.h".
Use atexit to ensure we close stdout.
* .gitignore: Ignore new files pulled in via gnulib-tool.
(cherry picked from commit acb5895680611f8beb497b41694d9686f2932c50)
Jim Meyering [Sun, 29 Jan 2012 11:50:32 +0000 (12:50 +0100)]
do not ignore errors like ENOSPC,EIO when writing to stdout
Standard output was never explicitly closed, so we could not
detect failure. Thus, bison would ignore the errors of writing
to a full file system and getting an I/O error on write, but only
for standard output, e.g., for --print-localedir, --print-datadir,
--help and some verbose output.
Now, "bison --print-datadir > /dev/full" reports the write failure:
bison: write error: No space left on device
Before, it would exit 0 with no diagnostic, implying success.
This is not an issue for "--output=-" or the other FILE-accepting
command-line options, because unlike most other GNU programs,
an output file argument of "-" is treated as the literal "./-",
rather than standard output.
* bootstrap.conf (gnulib_modules): Add closeout.
* src/main.c: Include "closeout.h".
Use atexit to ensure we close stdout.
* .gitignore: Ignore new files pulled in via gnulib-tool.
Akim Demaille [Wed, 25 Jan 2012 15:57:58 +0000 (16:57 +0100)]
yacc: fix YYBACKUP.
Reported by David Kastrup:
https://lists.gnu.org/archive/html/bug-bison/2011-10/msg00002.html.
* data/yacc.c (YYBACKUP): Accept rhs size.
Restore the proper state value.
* TODO (YYBACKUP): Make it...
* tests/actions.at: a new test case.
* NEWS, THANKS: Update.
(cherry picked from commit d115aad9112fb4e2fe1b268c9db7390732d39539)
Akim Demaille [Wed, 25 Jan 2012 12:04:43 +0000 (13:04 +0100)]
maint: fix --gcc-warnings support.
* configure.ac: Use enable_gcc_warnings instead of enableval,
which is valid only with AC_ARG_ENABLE.
(cherry picked from commit 1890a2a816dab86c23cc1d0af8fac3986335deb7)
Akim Demaille [Wed, 25 Jan 2012 15:57:58 +0000 (16:57 +0100)]
yacc: fix YYBACKUP.
Reported by David Kastrup:
https://lists.gnu.org/archive/html/bug-bison/2011-10/msg00002.html.
* data/yacc.c (YYBACKUP): Accept rhs size.
Restore the proper state value.
* TODO (YYBACKUP): Make it...
* tests/actions.at: a new test case.
* NEWS, THANKS: Update.
Paul Eggert [Tue, 24 Jan 2012 21:54:12 +0000 (13:54 -0800)]
tests: port to Solaris 10 'diff -u'
* tests/regression.at (parse-gram.y: LALR = IELR): Port to Solaris 10,
where "diff -u X X" outputs "No differences encountered"
instead of outputting nothing. Reported by Tomohiro Suzuki in
<http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00101.html>.
(cherry picked from commit 071ca141ec7987a5eca782227ce70db434a206ab)
Jim Meyering [Mon, 23 Jan 2012 10:47:46 +0000 (11:47 +0100)]
build: avoid possibly-replaced fprintf in liby-source, yyerror.c
* lib/yyerror.c (yyerror): Use fputs and fputc rather than fprintf
with a mere "%s\n" format. Always return 0 now, on the assumption
that the return value was never used anyway.
Don't include <config.h> after all. This avoids a problem
reported by Thiru Ramakrishnan in
http://lists.gnu.org/archive/html/help-bison/2011-11/msg00000.html
* cfg.mk: Exempt lib/yyerror.c from the sc_require_config_h_first test.
* THANKS: Update.
(cherry picked from commit fb9eea88856d73a5f25295a52f6d4df7fabc565b)
Paul Eggert [Tue, 24 Jan 2012 21:54:12 +0000 (13:54 -0800)]
tests: port to Solaris 10 'diff -u'
* tests/regression.at (parse-gram.y: LALR = IELR): Port to Solaris 10,
where "diff -u X X" outputs "No differences encountered"
instead of outputting nothing. Reported by Tomohiro Suzuki in
<http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00101.html>.
Jim Meyering [Mon, 16 Jan 2012 18:20:50 +0000 (19:20 +0100)]
quote consistently and make tests pass with new quoting from gnulib
Updating to gnulib pulled in new quote and quotarg modules,
by which quoting is now done like 'this' rather than `this'.
That change induces many "make check" test failures. This change
adapts code and tests so that "make check" passes once again.
* src/scan-code.l: Quote like 'this', not like `this'.
* src/scan-gram.l: Likewise.
* src/symtab.c: Likewise.
* tests/actions.at: Adjust tests to match.
* tests/input.at: Likewise.
* tests/named-refs.at: Likewise.
* tests/output.at: Likewise.
* tests/regression.at: Likewise.
* lib/.gitignore: Regenerate.
* m4/.gitignore: Likewise.
(cherry picked from commit ae93e4e4b8e78396a7707de3dcdd47aca7a46dec)
Jim Meyering [Mon, 23 Jan 2012 10:47:46 +0000 (11:47 +0100)]
build: avoid possibly-replaced fprintf in liby-source, yyerror.c
* lib/yyerror.c (yyerror): Use fputs and fputc rather than fprintf
with a mere "%s\n" format. Always return 0 now, on the assumption
that the return value was never used anyway.
Don't include <config.h> after all. This avoids a problem
reported by Thiru Ramakrishnan in
http://lists.gnu.org/archive/html/help-bison/2011-11/msg00000.html
* cfg.mk: Exempt lib/yyerror.c from the sc_require_config_h_first test.
* THANKS: Update.
Jim Meyering [Mon, 16 Jan 2012 11:29:19 +0000 (12:29 +0100)]
build: manually update bootstrap from gnulib, and adapt
Updating to the latest bootstrap from gnulib involves more of a
change than usual, and updating to the latest gnulib would involve
its own set of challenges with the upcoming quoting changes, so
we update bootstrap manually and separately.
* bootstrap: Update from gnulib.
* lib/Makefile.am: Initialize more variables to empty, so that gnulib.mk
can append to them with "+=".
* bootstrap.conf (gnulib_mk_hook): Remove. No longer honored.
(gnulib_tool_option_extras): Generate gnulib.mk.
(cherry picked from commit 85ad742d4e94345d5ac07755f6722344cfd49603)
Jim Meyering [Mon, 16 Jan 2012 11:18:46 +0000 (12:18 +0100)]
maint: include <config.h> first
* cfg.mk (exclude_file_name_regexp--sc_require_config_h_first):
Exempt data/glr.c and data/yacc.c from the include-config.h-first
requirement.
(cherry picked from commit 77f114dd6e50ab39e0962f39ad9c2f2e1d347acf)
Jim Meyering [Mon, 16 Jan 2012 10:58:41 +0000 (11:58 +0100)]
maint: placate the space-TAB syntax-check
* cfg.mk (exclude_file_name_regexp--sc_space_tab): Exempt
tests/input.at and tests/c++.at, since they appear to use
SP-TAB sequences deliberately.
* OChangeLog: Remove space-before-TAB.
(cherry picked from commit aebc4303615a4431acaa54e42380feb6b63e7f12)
Jim Meyering [Sat, 21 Jan 2012 21:43:09 +0000 (22:43 +0100)]
build: generalize etc/prefix-gnulib-mk
This script hard-coded "libbison" and lib/gnulib.mk.
Adjust the script to require a --lib-name=$gnulib_name option
and a FILE argument like lib/$gnulib_mk.
Also add support for --help and --version.
* etc/prefix-gnulib-mk: Generalize.
* bootstrap.conf (bootstrap_post_import_hook): Update its invocation.
Jim Meyering [Mon, 16 Jan 2012 10:47:05 +0000 (11:47 +0100)]
maint: get gpl-3.0 from gnulib
* bootstrap.conf (gnulib_modules): Add gpl-3.0.
* doc/gpl-3.0.texi: Remove from version control, now that
we get it via gnulib.
* doc/.gitignore: Ignore it.
(cherry picked from commit b87414a05e43ed270d5a88d365d0139f43acb34d)
Jim Meyering [Mon, 16 Jan 2012 18:20:50 +0000 (19:20 +0100)]
quote consistently and make tests pass with new quoting from gnulib
Updating to gnulib pulled in new quote and quotarg modules,
by which quoting is now done like 'this' rather than `this'.
That change induces many "make check" test failures. This change
adapts code and tests so that "make check" passes once again.
* src/scan-code.l: Quote like 'this', not like `this'.
* src/scan-gram.l: Likewise.
* src/symtab.c: Likewise.
* tests/actions.at: Adjust tests to match.
* tests/input.at: Likewise.
* tests/named-refs.at: Likewise.
* tests/output.at: Likewise.
* tests/regression.at: Likewise.
* lib/.gitignore: Regenerate.
* m4/.gitignore: Likewise.
Jim Meyering [Mon, 16 Jan 2012 11:29:19 +0000 (12:29 +0100)]
build: manually update bootstrap from gnulib, and adapt
Updating to the latest bootstrap from gnulib involves more of a
change than usual, and updating to the latest gnulib would involve
its own set of challenges with the upcoming quoting changes, so
we update bootstrap manually and separately.
* bootstrap: Update from gnulib.
* Makefile.am: Initialize more variables to empty, so that gnulib.mk
can append to them with "+=".
* bootstrap.conf (gnulib_mk_hook): Remove. No longer honored.
(bootstrap_post_import_hook): Instead, run the same command,
etc/prefix-gnulib-mk lib/$gnulib_mk, via slightly different API.
Temporarily disable "bootstrap_sync=true".
* etc/prefix-gnulib-mk: Don't prepend "lib/" to tokens like -I$(...
or "\".
Jim Meyering [Mon, 16 Jan 2012 10:58:41 +0000 (11:58 +0100)]
maint: placate the space-TAB syntax-check
* cfg.mk (exclude_file_name_regexp--sc_space_tab): Exempt
tests/input.at and tests/c++.at, since they appear to use
SP-TAB sequences deliberately.
* OChangeLog: Remove space-before-TAB.
Jim Meyering [Mon, 16 Jan 2012 10:47:05 +0000 (11:47 +0100)]
maint: get gpl-3.0 from gnulib
* bootstrap.conf (gnulib_modules): Add gpl-3.0.
* doc/gpl-3.0.texi: Remove from version control, now that
we get it via gnulib.
* doc/.gitignore: Ignore it.
Jim Meyering [Fri, 6 Jan 2012 12:55:11 +0000 (13:55 +0100)]
build: avoid warnings about set-but-not-used variables
* lib/bitset_stats.c (bitset_stats_list): Remove declaration
and set of unused local, "type".
* lib/ebitset.c (ebitset_init): Likewise, for "size".
* lib/lbitset.c (lbitset_not): Likewise, for "elt".
Jim Meyering [Fri, 6 Jan 2012 12:55:11 +0000 (13:55 +0100)]
build: avoid warnings about set-but-not-used variables
* lib/bitset_stats.c (bitset_stats_list): Remove declaration
and set of unused local, "type".
* lib/ebitset.c (ebitset_init): Likewise, for "size".
* lib/lbitset.c (lbitset_not): Likewise, for "elt".
Joel E. Denny [Sun, 21 Aug 2011 17:07:16 +0000 (13:07 -0400)]
tests: add -pedantic for --enable-gcc-warnings.
This should help to avoid some portability problems. For example,
it would have revealed the empty unions fixed by the last patch
* configure.ac (WARN_CFLAGS_TESTS, WARN_CXXFLAGS_TEST): Implement.
* tests/synclines.at (AT_TEST_SYNCLINE): Avoid -pedantic warning
about an empty translation unit.
(cherry picked from commit 5422d56a718805a2470558808355e04182a12d65)
Joel E. Denny [Sun, 21 Aug 2011 18:45:03 +0000 (14:45 -0400)]
tests: fix empty unions.
Empty unions are not accepted by the ISO C99 grammar or by at
least some versions of Sun Studio. Reported by Wolfgang S. Kechel
at
<http://lists.gnu.org/archive/html/bug-bison/2011-08/msg00003.html>.
* NEWS (2.5.1): Document fix.
* THANKS (Wolfgang S. Kechel): Add.
* tests/existing.at (GNU Cim Grammar)
(GNU pic (Groff 1.18.1) Grammar.): Remove empty %union.
(cherry picked from commit 7451638148706f6317975db418cc78e488f420aa)
Joel E. Denny [Sun, 21 Aug 2011 17:07:16 +0000 (13:07 -0400)]
tests: add -pedantic for --enable-gcc-warnings.
This should help to avoid some portability problems. For example,
it would have revealed the empty unions fixed by the last patch
* configure.ac (WARN_CFLAGS_TESTS, WARN_CXXFLAGS_TEST): Implement.
* tests/synclines.at (AT_TEST_SYNCLINE): Avoid -pedantic warning
about an empty translation unit.
Joel E. Denny [Sun, 21 Aug 2011 18:45:03 +0000 (14:45 -0400)]
tests: fix empty unions.
Empty unions are not accepted by the ISO C99 grammar or by at
least some versions of Sun Studio. Reported by Wolfgang S. Kechel
at
<http://lists.gnu.org/archive/html/bug-bison/2011-08/msg00003.html>.
* NEWS (2.5.1): Document fix.
* THANKS (Wolfgang S. Kechel): Add.
* tests/existing.at (GNU Cim Grammar)
(GNU pic (Groff 1.18.1) Grammar.): Remove empty %union.
Joel E. Denny [Sun, 24 Jul 2011 21:50:37 +0000 (17:50 -0400)]
global: remove unnecessary horizontal tabs.
This change was made by applying emacs' untabify function to
nearly all files in Bison's repository. Required tabs in make
files, ChangeLog, regexps, and test code were manually skipped.
Other notable exceptions and changes are listed below.
* bootstrap: Skip because we sync this with gnulib.
* data/m4sugar/foreach.m4
* data/m4sugar/m4sugar.m4: Skip because we sync these with
Autoconf.
* djgpp: Skip because I don't know how to test djgpp properly, and
this code appears to be unmaintained anyway.
* README-hacking (Hacking): Specify that tabs should be avoided
where not required.
Joel E. Denny [Sun, 10 Jul 2011 17:42:12 +0000 (13:42 -0400)]
build: avoid YACC typo inherited from Autoconf.
The typo shows up in the `configure --help' output. Reported by
W.C.A. Wijngaards and Paul Eggert at
<http://lists.gnu.org/archive/html/bug-bison/2011-07/msg00000.html>.
* README-hacking (Release Procedure): Remind about updating
maintainer tools before a release.
* THANKS (W.C.A. Wijngaards): Add.
* configure.ac (AC_PREREQ): Set to 2.68, which fixes the YACC
typo.
(cherry picked from commit 845346b3bb526d0f18878f15d906f05205b5c618)
Joel E. Denny [Sun, 10 Jul 2011 17:42:12 +0000 (13:42 -0400)]
build: avoid YACC typo inherited from Autoconf.
The typo shows up in the `configure --help' output. Reported by
W.C.A. Wijngaards and Paul Eggert at
<http://lists.gnu.org/archive/html/bug-bison/2011-07/msg00000.html>.
* README-hacking (Release Procedure): Remind about updating
maintainer tools before a release.
* THANKS (W.C.A. Wijngaards): Add.
* configure.ac (AC_PREREQ): Set to 2.68, which fixes the YACC
typo.
Joel E. Denny [Sun, 10 Jul 2011 16:38:24 +0000 (12:38 -0400)]
build: create xz instead of bzip2 tarballs.
Suggested by Jim Meyering at
<http://lists.gnu.org/archive/html/bug-bison/2011-06/msg00012.html>.
* README-hacking (Release Procedure): Update example.
* configure.ac (AM_INIT_AUTOMAKE): Replace dist-bzip2 with
dist-xz.
(cherry picked from commit abd189e8dc6ca848f038da12e4110d6192374b82)
Joel E. Denny [Sun, 10 Jul 2011 16:38:24 +0000 (12:38 -0400)]
build: create xz instead of bzip2 tarballs.
Suggested by Jim Meyering at
<http://lists.gnu.org/archive/html/bug-bison/2011-06/msg00012.html>.
* README-hacking (Release Procedure): Update example.
* configure.ac (AM_INIT_AUTOMAKE): Replace dist-bzip2 with
dist-xz.
Joel E. Denny [Mon, 30 May 2011 02:30:55 +0000 (22:30 -0400)]
doc: clean up references to `Locations Overview'.
* doc/bison.texinfo (Locations Overview): Rename node to...
(Locations): ... this, which is its section name. Update menus to
match that and not to use the title `Tracking Locations', which is
a different section.
(cherry picked from commit 8348436580ae3db8091f564e8b24d552a9d23590)
Joel E. Denny [Mon, 30 May 2011 02:18:27 +0000 (22:18 -0400)]
doc: clean up references to `Tracking Locations'.
* doc/bison.texinfo (Locations): Rename node to...
(Tracking Locations): ... this, which is its section name, and
update all cross references. The trouble is that there is another
node about locations. Its section name is `Locations', which was
easily confused with the node name of this node. Moreover, its
node name is `Locations Overview', which was mistakenly used to
label some cross references to this node.
(cherry picked from commit 7404cdf3a1235c4f7304c29b942ac72029600f19)
Joel E. Denny [Mon, 30 May 2011 00:28:09 +0000 (20:28 -0400)]
doc: clean up `Named References' a little.
* doc/bison.texinfo (Named References): Rename section to match
the node name, and update all cross references. Don't use the
acronyms RHS and LHS given that we don't expand them anywhere in
the manual. Try to use @samp and @code properly. Mention that
named references are experimental as we've already stated in NEWS.
(Destructor Decl): Expand the only remaining use of RHS or LHS.
(cherry picked from commit ce24f7f59b9ececb3137a53a881e25fa28e19466)
Joel E. Denny [Mon, 30 May 2011 00:06:22 +0000 (20:06 -0400)]
doc: motivate named references.
Suggested by Hans Aberg at
<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
* doc/bison.texinfo (Named References): Explain briefly how
they're better than the traditional positional references.
(cherry picked from commit 7d31f0928907ccdd647479075d385b5a36c62611)
Joel E. Denny [Sun, 29 May 2011 23:59:44 +0000 (19:59 -0400)]
doc: discuss named references after locations.
Reported by Hans Aberg at
<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
* NEWS (2.5.1): Document.
* doc/bison.texinfo (Named References): Because it discusses
locations in addition to semantic values, move this subsection out
of the section `Defining Language Semantics', where locations have
not yet been introduced, to be a new section after the following
section, `Tracking Locations'.
(cherry picked from commit 908c8647de654d4ab0944ecef7811af1d736742b)
Joel E. Denny [Mon, 30 May 2011 02:30:55 +0000 (22:30 -0400)]
doc: clean up references to `Locations Overview'.
* doc/bison.texinfo (Locations Overview): Rename node to...
(Locations): ... this, which is its section name. Update menus to
match that and not to use the title `Tracking Locations', which is
a different section.
Joel E. Denny [Mon, 30 May 2011 02:18:27 +0000 (22:18 -0400)]
doc: clean up references to `Tracking Locations'.
* doc/bison.texinfo (Locations): Rename node to...
(Tracking Locations): ... this, which is its section name, and
update all cross references. The trouble is that there is another
node about locations. Its section name is `Locations', which was
easily confused with the node name of this node. Moreover, its
node name is `Locations Overview', which was mistakenly used to
label some cross references to this node.
Joel E. Denny [Mon, 30 May 2011 00:28:09 +0000 (20:28 -0400)]
doc: clean up `Named References' a little.
* doc/bison.texinfo (Named References): Rename section to match
the node name, and update all cross references. Don't use the
acronyms RHS and LHS given that we don't expand them anywhere in
the manual. Try to use @samp and @code properly. Mention that
named references are experimental as we've already stated in NEWS.
(Destructor Decl): Expand the only remaining use of RHS or LHS.
Joel E. Denny [Mon, 30 May 2011 00:06:22 +0000 (20:06 -0400)]
doc: motivate named references.
Suggested by Hans Aberg at
<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
* doc/bison.texinfo (Named References): Explain briefly how
they're better than the traditional positional references.
Joel E. Denny [Sun, 29 May 2011 23:59:44 +0000 (19:59 -0400)]
doc: discuss named references after locations.
Reported by Hans Aberg at
<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
* NEWS (2.5.1): Document.
* doc/bison.texinfo (Named References): Because it discusses
locations in addition to semantic values, move this subsection out
of the section `Defining Language Semantics', where locations have
not yet been introduced, to be a new section after the following
section, `Tracking Locations'.