Compare commits

..
6 Commits
Author SHA1 Message Date
Joel E. Denny 06d61f775a Version 2.4.3.
* NEWS (2.4.3): Set date.
2010-08-05 20:56:44 -04:00
Joel E. Denny b3b1806888 maint: add gettext version to release announcements.
Suggested by Paul Hilfinger at
<http://lists.gnu.org/archive/html/bison-patches/2010-07/msg00019.html>
<http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00002.html>.
* cfg.mk (bootstrap-tools): Add gettext.
2010-08-04 21:15:59 -04:00
Joel E. Denny 3ffdd5f125 doc: fix -W and %expect documentation some.
* NEWS (2.4.3): Mention that there are documentation fixes.
* doc/bison.texinfo (Expect Decl): Make it clear that %expect
turns conflicts into errors not warnings.
(Shift/Reduce): Likewise.
(Bison Options): Don't mention -Wsyntax.  It doesn't exist.
2010-08-04 20:17:40 -04:00
Joel E. Denny 954474bfa1 -Werror: fix for rules useless in parser after conflicts.
* NEWS (2.4.3): Document fix.
* src/complain.c (error_message): Extend to handle incomplete
error messages so warn and warn_at can be used in more cases.
* src/gram.c (grammar_rules_useless_report): Use warn_at so that
-Werror is always obeyed.
* src/reduce.c (reduce_print): Use warn so that the "warnings
being treated as errors" message is printed consistently before
the first warning message.  This makes testing easier.
* tests/local.at (AT_BISON_WERROR_MSG): New macro.
(AT_BISON_CHECK_NO_XML): Extend to check -Werror and
--warnings=error when warnings appear in bison's stderr.
2010-08-01 22:31:10 -04:00
Joel E. Denny 122ff44429 maint: enable gnits only at stable releases.
* configure.ac (AM_INIT_AUTOMAKE): Underscore or dash in a
version string should disable gnits.  Explain in comments.
2010-07-29 23:11:12 -04:00
Joel E. Denny 6895eefc04 Prepare for 2.4.3 release.
* NEWS (2.4.3_rc1): Rename back to...
(2.4.3): ... this, and unset date.
2010-07-29 21:55:02 -04:00
9 changed files with 160 additions and 36 deletions
+49
View File
@@ -1,3 +1,52 @@
2010-08-05 Joel E. Denny <[email protected]>
Version 2.4.3.
* NEWS (2.4.3): Set date.
2010-08-04 Joel E. Denny <[email protected]>
maint: add gettext version to release announcements.
Suggested by Paul Hilfinger at
<http://lists.gnu.org/archive/html/bison-patches/2010-07/msg00019.html>
<http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00002.html>.
* cfg.mk (bootstrap-tools): Add gettext.
2010-08-04 Joel E. Denny <[email protected]>
doc: fix -W and %expect documentation some.
* NEWS (2.4.3): Mention that there are documentation fixes.
* doc/bison.texinfo (Expect Decl): Make it clear that %expect
turns conflicts into errors not warnings.
(Shift/Reduce): Likewise.
(Bison Options): Don't mention -Wsyntax. It doesn't exist.
2010-08-01 Joel E. Denny <[email protected]>
-Werror: fix for rules useless in parser after conflicts.
* NEWS (2.4.3): Document fix.
* src/complain.c (error_message): Extend to handle incomplete
error messages so warn and warn_at can be used in more cases.
* src/gram.c (grammar_rules_useless_report): Use warn_at so that
-Werror is always obeyed.
* src/reduce.c (reduce_print): Use warn so that the "warnings
being treated as errors" message is printed consistently before
the first warning message. This makes testing easier.
* tests/local.at (AT_BISON_WERROR_MSG): New macro.
(AT_BISON_CHECK_NO_XML): Extend to check -Werror and
--warnings=error when warnings appear in bison's stderr.
2010-07-29 Joel E. Denny <[email protected]>
maint: enable gnits only at stable releases.
* configure.ac (AM_INIT_AUTOMAKE): Underscore or dash in a
version string should disable gnits. Explain in comments.
2010-07-29 Joel E. Denny <[email protected]>
Prepare for 2.4.3 release.
* NEWS (2.4.3_rc1): Rename back to...
(2.4.3): ... this, and unset date.
2010-07-28 Joel E. Denny <[email protected]>
Version 2.4.3_rc1.
+6 -1
View File
@@ -1,7 +1,10 @@
Bison News
----------
* Changes in version 2.4.3_rc1 (2010-07-29):
* Changes in version 2.4.3 (2010-08-05):
** Bison now obeys -Werror and --warnings=error for warnings about
grammar rules that are useless in the parser due to conflicts.
** Problems with spawning M4 on at least FreeBSD 8 and FreeBSD 9 have
been fixed.
@@ -16,6 +19,8 @@ Bison News
errors in Bison 2.5. They will remain warnings, which should be
sufficient for POSIX while avoiding backward compatibility issues.
** Minor documentation fixes.
* Changes in version 2.4.2 (2010-03-20):
** Some portability problems that resulted in failures and livelocks
+1 -1
View File
@@ -42,7 +42,7 @@ local-checks-to-skip = changelog-check
# this release. Used solely to get a date for the "announcement" target.
gnulib_dir = $(srcdir)/gnulib
bootstrap-tools = autoconf,automake,flex,gnulib
bootstrap-tools = autoconf,automake,flex,gettext,gnulib
announcement_Cc_ = \
[email protected], [email protected], [email protected], \
+8 -4
View File
@@ -37,11 +37,15 @@ AC_CONFIG_MACRO_DIR([m4])
#
# To avoid 1.11, we make 1.11.1 the minimum version.
#
# We want gnits strictness only when rolling a formal release so that we can,
# for example, run make dist at other times without being required to add a
# bogus NEWS entry.
# We want gnits strictness only when rolling a stable release. For
# release candidates, we use version strings like 2.4.3_rc1, but gnits
# doesn't like that, so we let the underscore disable gnits. Between
# releases, we want to be able run make dist without being required to
# add a bogus NEWS entry. In that case, the version string
# automatically contains a dash, which we also let disable gnits.
AM_INIT_AUTOMAKE([1.11.1 dist-bzip2]
m4_bmatch(m4_defn([AC_PACKAGE_VERSION]), [_], [gnu], [gnits]))
m4_bmatch(m4_defn([AC_PACKAGE_VERSION]), [[-_]],
[gnu], [gnits]))
AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
# Checks for the compiler.
+8 -6
View File
@@ -4494,8 +4494,8 @@ number which Bison printed. With @acronym{GLR} parsers, add an
@code{%expect-rr} declaration as well.
@end itemize
Now Bison will warn you if you introduce an unexpected conflict, but
will keep silent otherwise.
Now Bison will report an error if you introduce an unexpected conflict,
but will keep silent otherwise.
@node Start Decl
@subsection The Start-Symbol
@@ -6172,8 +6172,10 @@ This particular ambiguity was first encountered in the specifications of
Algol 60 and is called the ``dangling @code{else}'' ambiguity.
To avoid warnings from Bison about predictable, legitimate shift/reduce
conflicts, use the @code{%expect @var{n}} declaration. There will be no
warning as long as the number of shift/reduce conflicts is exactly @var{n}.
conflicts, use the @code{%expect @var{n}} declaration.
There will be no warning as long as the number of shift/reduce conflicts
is exactly @var{n}, and Bison will report an error if there is a
different number.
@xref{Expect Decl, ,Suppressing Conflict Warnings}.
The definition of @code{if_stmt} above is solely to blame for the
@@ -7813,8 +7815,8 @@ Treat warnings as errors.
@end table
A category can be turned off by prefixing its name with @samp{no-}. For
instance, @option{-Wno-syntax} will hide the warnings about unused
variables.
instance, @option{-Wno-yacc} will hide the warnings about
@acronym{POSIX} Yacc incompatibilities.
@end table
@noindent
+11 -3
View File
@@ -37,7 +37,10 @@ bool complaint_issued;
* \param loc the location, defaulting to the current file,
* or the program name.
* \param prefix put before the message (e.g., "warning").
* \param message the error message, a printf format string.
* \param message the error message, a printf format string. Iff it
* ends with ": ", then no trailing newline is printed,
* and the caller should print the remaining
* newline-terminated message to stderr.
* \param args the arguments of the format string.
*/
static
@@ -56,8 +59,13 @@ error_message (location *loc,
fprintf (stderr, "%s: ", prefix);
vfprintf (stderr, message, args);
putc ('\n', stderr);
fflush (stderr);
{
size_t l = strlen (message);
if (l < 2 || message[l-2] != ':' || message[l-1] != ' ') {
putc ('\n', stderr);
fflush (stderr);
}
}
}
/** Wrap error_message() with varargs handling. */
+5 -4
View File
@@ -23,11 +23,12 @@
#include <quotearg.h>
#include "complain.h"
#include "gram.h"
#include "print-xml.h"
#include "reader.h"
#include "reduce.h"
#include "symtab.h"
#include "print-xml.h"
/* Comments for these variables are in gram.h. */
@@ -307,9 +308,9 @@ grammar_rules_useless_report (const char *message)
for (r = 0; r < nrules ; ++r)
if (!rules[r].useful)
{
location_print (stderr, rules[r].location);
fprintf (stderr, ": %s: %s: ", _("warning"), message);
rule_print (&rules[r], stderr);
warn_at (rules[r].location, "%s: ", message);
rule_print (&rules[r], stderr);
fflush (stderr);
}
}
+8 -16
View File
@@ -383,23 +383,15 @@ static void
reduce_print (void)
{
if (nuseless_nonterminals > 0)
{
fprintf (stderr, "%s: %s: ", grammar_file, _("warning"));
fprintf (stderr, ngettext ("%d nonterminal useless in grammar",
"%d nonterminals useless in grammar",
nuseless_nonterminals),
nuseless_nonterminals);
fprintf (stderr, "\n");
}
warn (ngettext ("%d nonterminal useless in grammar",
"%d nonterminals useless in grammar",
nuseless_nonterminals),
nuseless_nonterminals);
if (nuseless_productions > 0)
{
fprintf (stderr, "%s: %s: ", grammar_file, _("warning"));
fprintf (stderr, ngettext ("%d rule useless in grammar",
"%d rules useless in grammar",
nuseless_productions),
nuseless_productions);
fprintf (stderr, "\n");
}
warn (ngettext ("%d rule useless in grammar",
"%d rules useless in grammar",
nuseless_productions),
nuseless_productions);
}
void
+64 -1
View File
@@ -204,11 +204,17 @@ $2])
#
# 2. In the case of maintainer-xml-check, XML/XSLT output is compared with
# --graph and --report=all output for every working grammar.
#
# 3. If stderr contains a warning, -Werror and --warnings=error
# convert the warning to an error.
m4_define([AT_BISON_CHECK],
[m4_if(m4_quote($2), [0], [AT_BISON_CHECK_XML($@)],
m4_quote($2), [], [AT_BISON_CHECK_XML($@)])
AT_BISON_CHECK_NO_XML($@)])
m4_define([AT_BISON_WERROR_MSG],
[[bison: warnings being treated as errors]])
# AT_BISON_CHECK_NO_XML(BISON_ARGS, [OTHER_AT_CHECK_ARGS])
# --------------------------------------------------------
# Same as AT_BISON_CHECK except don't perform XML/XSLT checks. This is useful
@@ -216,7 +222,64 @@ AT_BISON_CHECK_NO_XML($@)])
# handle.
m4_define([AT_BISON_CHECK_NO_XML],
[AT_CHECK(m4_if(m4_quote($2), [0], [], m4_quote($2), [], [],
[AT_QUELL_VALGRIND ])[[bison ]]$@)])
[AT_QUELL_VALGRIND ])[[bison ]]$@)
m4_if(m4_bregexp([$4], [: warning: ]), [-1], [],
[m4_if(m4_quote(m4_if(m4_quote($2), [], [0], [$2])), [0],
[[# Don't interfere with caller's files.
if test -f stderr; then
mv stderr at-bison-check-stderr.bak
fi
if test -f experr; then
mv experr at-bison-check-experr.bak
fi
# Run with -Werror.
]AT_CHECK(AT_QUELL_VALGRIND[[ bison -Werror ]$1],
[[1]], [$3], [stderr])[
# Build expected stderr up to and including the "warnings
# being treated as errors" message.
]AT_DATA([[at-bison-check-warnings]], [$4])[
at_bison_check_first="` \
sed -n '/: warning: /=' at-bison-check-warnings \
| sed -n 1p \
`"
if test $at_bison_check_first -gt 1; then
sed -n "1,`expr $at_bison_check_first - 1`"p \
at-bison-check-warnings > experr
fi
echo ']AT_BISON_WERROR_MSG[' >> experr
# Finish building expected stderr and check. Unlike
# warnings, complaints cause bison to exit early. Thus,
# with -Werror, bison does not necessarily report all
# warnings that it does without -Werror, but it at least
# reports one.
at_bison_check_last="`sed -n '$=' stderr`"
if test x"$at_bison_check_last" = x; then
at_bison_check_last=1
fi
at_bison_check_last="`expr $at_bison_check_last - 1`"
sed -n "$at_bison_check_first,$at_bison_check_last"p \
at-bison-check-warnings >> experr
]AT_CHECK([[sed 's,.*/\(]AT_BISON_WERROR_MSG[\)$,\1,' \
stderr 1>&2]], [[0]], [[]], [experr])[
# Now check --warnings=error.
cp stderr experr
]AT_CHECK(AT_QUELL_VALGRIND[[ bison --warnings=error ]$1],
[[1]], [$3], [experr])[
# Restore caller's files.
if test -f at-bison-check-experr.bak; then
mv at-bison-check-experr.bak experr
fi
if test -f at-bison-check-stderr.bak; then
mv at-bison-check-stderr.bak stderr
fi
]])
])
])
# AT_BISON_CHECK_XML(BISON_ARGS, [OTHER_AT_CHECK_ARGS])
# -----------------------------------------------------