From 41c11ce484cb75b3db12e602bd0169e17b3f4aaf Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Fri, 6 Jul 2012 15:03:27 +0200 Subject: [PATCH 01/20] gnulib: update * bootstrap, build-aux/.gitignore, gnulib, m4/.gitignore: update. --- bootstrap | 111 +++++++++++++++++++++++++------------------ build-aux/.gitignore | 6 +-- gnulib | 2 +- m4/.gitignore | 6 +-- 4 files changed, 71 insertions(+), 54 deletions(-) diff --git a/bootstrap b/bootstrap index e9849102..e00c8bbb 100755 --- a/bootstrap +++ b/bootstrap @@ -1,6 +1,6 @@ #! /bin/sh # Print a version string. -scriptversion=2012-07-03.20; # UTC +scriptversion=2012-07-10.09; # UTC # Bootstrap this package from checked-out sources. @@ -77,6 +77,33 @@ Running without arguments will suffice in most cases. EOF } +# warnf_ FORMAT-STRING ARG1... +warnf_ () +{ + warnf_format_=$1 + shift + nl=' +' + case $* in + *$nl*) me_=$(printf "$me"|tr "$nl|" '??') + printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;; + *) printf "$me: $warnf_format_" "$@" ;; + esac >&2 +} + +# warn_ WORD1... +warn_ () +{ + # If IFS does not start with ' ', set it and emit the warning in a subshell. + case $IFS in + ' '*) warnf_ '%s\n' "$*";; + *) (IFS=' '; warn_ "$@");; + esac +} + +# die WORD1... +die() { warn_ "$@"; exit 1; } + # Configuration. # Name of the Makefile.am @@ -130,7 +157,8 @@ extract_package_name=' p } ' -package=$(sed -n "$extract_package_name" configure.ac) || exit +package=$(sed -n "$extract_package_name" configure.ac) \ + || die 'cannot find package name in configure.ac' gnulib_name=lib$package build_aux=build-aux @@ -203,14 +231,10 @@ find_tool () else find_tool_error_prefix="\$$find_tool_envvar: " fi - if test x"$find_tool_res" = x; then - echo >&2 "$me: one of these is required: $find_tool_names" - exit 1 - fi - ($find_tool_res --version /dev/null 2>&1 || { - echo >&2 "$me: ${find_tool_error_prefix}cannot run $find_tool_res --version" - exit 1 - } + test x"$find_tool_res" != x \ + || die "one of these is required: $find_tool_names" + ($find_tool_res --version /dev/null 2>&1 \ + || die "${find_tool_error_prefix}cannot run $find_tool_res --version" eval "$find_tool_envvar=\$find_tool_res" eval "export $find_tool_envvar" } @@ -269,21 +293,15 @@ do --no-git) use_git=false;; *) - echo >&2 "$0: $option: unknown option" - exit 1;; + die "$option: unknown option";; esac done -if $use_git || test -d "$GNULIB_SRCDIR"; then - : -else - echo "$0: Error: --no-git requires --gnulib-srcdir" >&2 - exit 1 -fi +$use_git || test -d "$GNULIB_SRCDIR" \ + || die "Error: --no-git requires --gnulib-srcdir" if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then - echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2 - exit 1 + die "Bootstrapping from a non-checked-out distribution is risky." fi # Ensure that lines starting with ! sort last, per gitignore conventions @@ -309,7 +327,7 @@ insert_sorted_if_absent() { echo "$str" | sort_patterns - $file | cmp -s - $file > /dev/null \ || { echo "$str" | sort_patterns - $file > $file.bak \ && mv $file.bak $file; } \ - || exit 1 + || die "insert_sorted_if_absent $file $str: failed" } # Adjust $PATTERN for $VC_IGNORE_FILE and insert it with @@ -333,11 +351,8 @@ grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \ >/dev/null && found_aux_dir=yes grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \ >/dev/null && found_aux_dir=yes -if test $found_aux_dir = no; then - echo "$0: expected line not found in configure.ac. Add the following:" >&2 - echo " AC_CONFIG_AUX_DIR([$build_aux])" >&2 - exit 1 -fi +test $found_aux_dir = yes \ + || die "configure.ac lacks 'AC_CONFIG_AUX_DIR([$build_aux])'; add it" # If $build_aux doesn't exist, create it now, otherwise some bits # below will malfunction. If creating it, also mark it as ignored. @@ -443,7 +458,7 @@ check_versions() { automake-ng|aclocal-ng) app=${app%-ng} ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || { - echo "$me: Error: '$app' not found or not from Automake-NG" >&2 + warn_ "Error: '$app' not found or not from Automake-NG" ret=1 continue } ;; @@ -453,20 +468,21 @@ check_versions() { # so we have to rely on $? rather than get_version. $app --version >/dev/null 2>&1 if [ 126 -le $? ]; then - echo "$me: Error: '$app' not found" >&2 + warn_ "Error: '$app' not found" ret=1 fi else # Require app to produce a new enough version string. inst_ver=$(get_version $app) if [ ! "$inst_ver" ]; then - echo "$me: Error: '$app' not found" >&2 + warn_ "Error: '$app' not found" ret=1 else latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2) if [ ! "$latest_ver" = "$inst_ver" ]; then - echo "$me: Error: '$app' version == $inst_ver is too old" >&2 - echo " '$app' version >= $req_ver is required" >&2 + warnf_ '%s\n' \ + "Error: '$app' version == $inst_ver is too old" \ + " '$app' version >= $req_ver is required" ret=1 fi fi @@ -523,11 +539,10 @@ fi if ! printf "$buildreq" | check_versions; then echo >&2 if test -f README-prereq; then - echo "$0: See README-prereq for how to get the prerequisite programs" >&2 + die "See README-prereq for how to get the prerequisite programs" else - echo "$0: Please install the prerequisite programs" >&2 + die "Please install the prerequisite programs" fi - exit 1 fi echo "$0: Bootstrapping from checked-out $package sources..." @@ -738,11 +753,10 @@ symlink_to_dir() *) case /$dst/ in *//* | */../* | */./* | /*/*/*/*/*/) - echo >&2 "$me: invalid symlink calculation: $src -> $dst" - exit 1;; - /*/*/*/*/) dot_dots=../../../;; - /*/*/*/) dot_dots=../../;; - /*/*/) dot_dots=../;; + die "invalid symlink calculation: $src -> $dst";; + /*/*/*/*/) dot_dots=../../../;; + /*/*/*/) dot_dots=../../;; + /*/*/) dot_dots=../;; esac;; esac @@ -764,7 +778,7 @@ version_controlled_file() { grep -F "/${file##*/}/" "$parent/CVS/Entries" 2>/dev/null | grep '^/[^/]*/[0-9]' > /dev/null else - echo "$me: no version control for $file?" >&2 + warn_ "no version control for $file?" false fi } @@ -855,11 +869,11 @@ $gnulib_tool $gnulib_tool_options --import $gnulib_modules && for file in $gnulib_files; do symlink_to_dir "$GNULIB_SRCDIR" $file \ - || { echo "$0: failed to symlink $file" 1>&2; exit 1; } + || die "failed to symlink $file" done bootstrap_post_import_hook \ - || { echo >&2 "$me: bootstrap_post_import_hook failed"; exit 1; } + || die "bootstrap_post_import_hook failed" # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some # gnulib-populated directories. Such .m4 files would cause aclocal to fail. @@ -887,7 +901,7 @@ echo "running: AUTOPOINT=true LIBTOOLIZE=true " \ "$AUTORECONF --verbose --install $no_recursive -I $m4_base $ACLOCAL_FLAGS" AUTOPOINT=true LIBTOOLIZE=true \ $AUTORECONF --verbose --install $no_recursive -I $m4_base $ACLOCAL_FLAGS \ - || exit 1 + || die "autoreconf failed" # Get some extra files from gnulib, overriding existing files. for file in $gnulib_extra_files; do @@ -897,7 +911,7 @@ for file in $gnulib_extra_files; do *) dst=$file;; esac symlink_to_dir "$GNULIB_SRCDIR" $file $dst \ - || { echo "$0: failed to symlink $file" 1>&2; exit 1; } + || die "failed to symlink $file" done if test $with_gettext = yes; then @@ -913,7 +927,8 @@ if test $with_gettext = yes; then a\ '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} } - ' po/Makevars.template >po/Makevars || exit 1 + ' po/Makevars.template >po/Makevars \ + || die 'cannot generate po/Makevars' # If the 'gettext' module is in use, grab the latest Makefile.in.in. # If only the 'gettext-h' module is in use, assume autopoint already @@ -921,7 +936,8 @@ if test $with_gettext = yes; then case $gnulib_modules in *gettext-h*) ;; *gettext*) - cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in || exit 1 + cp $GNULIB_SRCDIR/build-aux/po/Makefile.in.in po/Makefile.in.in \ + || die "cannot create po/Makefile.in.in" ;; esac @@ -937,7 +953,8 @@ if test $with_gettext = yes; then a\ '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} } - ' po/Makevars.template >runtime-po/Makevars || exit 1 + ' po/Makevars.template >runtime-po/Makevars \ + || die 'cannot generate runtime-po/Makevars' # Copy identical files from po to runtime-po. (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) diff --git a/build-aux/.gitignore b/build-aux/.gitignore index d8efe9f9..17aa5451 100644 --- a/build-aux/.gitignore +++ b/build-aux/.gitignore @@ -8,9 +8,12 @@ /config.rpath /config.sub /depcomp +/do-release-commit-and-tag /gendocs.sh /git-version-gen /gitlog-to-changelog +/gnu-web-doc-update +/gnupload /install-sh /javacomp.sh.in /javaexec.sh.in @@ -23,6 +26,3 @@ /vc-list-files /warn-on-use.h /ylwrap -/do-release-commit-and-tag -/gnu-web-doc-update -/gnupload diff --git a/gnulib b/gnulib index be2b0391..4df9d155 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit be2b039116133e5fd07e07c5d272b8adb91d72b2 +Subproject commit 4df9d155485595d7bae28d434a945f9c22dd1a71 diff --git a/m4/.gitignore b/m4/.gitignore index dc915a40..8a24eb00 100644 --- a/m4/.gitignore +++ b/m4/.gitignore @@ -34,6 +34,7 @@ /fprintf-posix.m4 /frexp.m4 /frexpl.m4 +/fseterr.m4 /fstat.m4 /getdtablesize.m4 /getopt.m4 @@ -95,6 +96,7 @@ /multiarch.m4 /nls.m4 /nocrash.m4 +/off_t.m4 /open.m4 /pathmax.m4 /perror.m4 @@ -150,6 +152,7 @@ /sys_ioctl_h.m4 /sys_socket_h.m4 /sys_stat_h.m4 +/sys_types_h.m4 /sys_wait_h.m4 /sysexits.m4 /threadlib.m4 @@ -176,6 +179,3 @@ /xalloc.m4 /xsize.m4 /xstrndup.m4 -/off_t.m4 -/sys_types_h.m4 -/fseterr.m4 From ae63f0e8e25712df48ba089c1cbefac7373a15ab Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Mon, 16 Jul 2012 20:40:18 +0200 Subject: [PATCH 02/20] gnulib: update. * gnulib: Update so that gitlog-to-changelog support --srcdir. * Makefile.am: Use it. --- Makefile.am | 1 + gnulib | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index d5d3db28..aed166e6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -74,6 +74,7 @@ gen-ChangeLog: --strip-cherry-pick \ --no-cluster \ --amend=$(srcdir)/build-aux/git-log-fix \ + --srcdir=$(srcdir) \ --since=$(gen_start_date) > $$cl.tmp && \ mv -f $$cl.tmp $$cl; \ fi diff --git a/gnulib b/gnulib index 4df9d155..d9326d08 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 4df9d155485595d7bae28d434a945f9c22dd1a71 +Subproject commit d9326d0888f9ec970169178ebe83528b3280c521 From ea6a2d96dbfbee56a1e33c1537617dc2e50af715 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 17 Jul 2012 09:49:57 +0200 Subject: [PATCH 03/20] gnulib: update --- gnulib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnulib b/gnulib index d9326d08..368a3177 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit d9326d0888f9ec970169178ebe83528b3280c521 +Subproject commit 368a317788935c0423dc2afbd16754d9c7c73a48 From 15ffba51b00396d4ca37ff196cb47e8a6242f673 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 17 Jul 2012 10:35:58 +0200 Subject: [PATCH 04/20] maint: fix syntax-check ignore patterns. * cfg.mk: here. --- cfg.mk | 4 +++- gnulib | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cfg.mk b/cfg.mk index 222d3bc3..2f1a9e94 100644 --- a/cfg.mk +++ b/cfg.mk @@ -60,7 +60,8 @@ update-copyright: update-b4-copyright update-package-copyright-year update-copyright-env = \ UPDATE_COPYRIGHT_FORCE=1 UPDATE_COPYRIGHT_USE_INTERVALS=1 -exclude = $(foreach a,$(1),$(eval exclude_file_name_regexp--sc_$(a))) +exclude = \ + $(foreach a,$(1),$(eval $(subst $$,$$$$,exclude_file_name_regexp--sc_$(a)))) $(call exclude, \ bindtextdomain=^lib/main.c$$ \ program_name=^lib/main.c$$ \ @@ -68,6 +69,7 @@ $(call exclude, \ prohibit_always-defined_macros+=?|^lib/timevar.c$$ \ prohibit_always-defined_macros+=?|^src/(parse-gram.c|system.h)$$ \ prohibit_always-defined_macros+=?|^tests/regression.at$$ \ + prohibit_defined_have_decl_tests=?|^lib/timevar.c$$ \ prohibit_empty_lines_at_EOF=^src/parse-gram.[ch]$$ \ require_config_h_first=^(lib/yyerror|data/(glr|yacc))\.c$$ \ space_tab=^tests/(input|c\+\+)\.at$$ \ diff --git a/gnulib b/gnulib index 368a3177..cabce6b8 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 368a317788935c0423dc2afbd16754d9c7c73a48 +Subproject commit cabce6b8f2042e42c2098f7cf18873c61ac7bcd5 From a122efad8a2640f0f52b0be4fa35bb0d518f0a12 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 17 Jul 2012 12:45:29 +0200 Subject: [PATCH 05/20] tests: refactor the bison invocations. * tests/local.at (m4_null_if, AT_BISON_CHECK_): New. --- tests/local.at | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/tests/local.at b/tests/local.at index 35d406fe..62e05709 100644 --- a/tests/local.at +++ b/tests/local.at @@ -20,6 +20,15 @@ m4_version_prereq([2.58]) +# m4_null_if(VAL, IF-TRUE, IF-FALSE) +# ---------------------------------- +# If VAL evaluates to empty or 0, run IF-TRUE, otherwise IF-FALSE. +m4_define([m4_null_if], +[m4_case(m4_quote($1), + [0], [$2], + [], [$2], + [$3])]) + ## ------------- ## ## Basic tests. ## ## ------------- ## @@ -404,6 +413,9 @@ void # AT_BISON_CHECK(BISON_ARGS, [OTHER_AT_CHECK_ARGS]) # ------------------------------------------------- +# High-level routine that may call bison several times, under different +# conditions. +# # Check Bison by invoking `bison BISON_ARGS'. BISON_ARGS should not contain # shell constructs (such as redirection or pipes) that would prevent # appending additional command-line arguments for bison. OTHER_AT_CHECK_ARGS @@ -424,13 +436,20 @@ void # # 4. If stderr contains a warning, -Wnone and --warnings=none suppress it. m4_define([AT_BISON_CHECK], -[m4_if(m4_quote($2), [0], [AT_BISON_CHECK_XML($@)], - m4_quote($2), [], [AT_BISON_CHECK_XML($@)]) +[m4_null_if([$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_(BISON_ARGS, [OTHER_AT_CHECK_ARGS]) +# -------------------------------------------------- +# Low-level macro to run bison once. +m4_define([AT_BISON_CHECK_], +[AT_CHECK(AT_QUELL_VALGRIND[[ bison ]]$@)]) + + # 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 @@ -451,8 +470,7 @@ m4_if(m4_bregexp([$4], [: warning: ]), [-1], [], ]AT_DATA([expout], [$3])[ # Run with -Werror. - ]AT_CHECK(AT_QUELL_VALGRIND[[ bison ]$1[ -Werror]], - [[1]], [expout], [stderr])[ + ]AT_BISON_CHECK_([$1[ -Werror]], [[1]], [expout], [stderr])[ # Build expected stderr up to and including the "warnings being # treated as errors" message. @@ -486,16 +504,13 @@ m4_if(m4_bregexp([$4], [: warning: ]), [-1], [], # Now check --warnings=error. cp stderr experr - ]AT_CHECK(AT_QUELL_VALGRIND[[ bison ]$1[ --warnings=error]], - [[1]], [expout], [experr])[ + ]AT_BISON_CHECK_([$1[ --warnings=error]], [[1]], [expout], [experr])[ # Now check -Wnone and --warnings=none by making sure that # -Werror doesn't change the exit status when -Wnone or # --warnings=none is specified. - ]AT_CHECK(AT_QUELL_VALGRIND[[ bison ]$1[ -Wnone -Werror]], - [[0]], [expout])[ - ]AT_CHECK(AT_QUELL_VALGRIND[[ bison ]$1[ --warnings=none \ - -Werror]], [[0]], [expout])[ + ]AT_BISON_CHECK_([$1[ -Wnone -Werror]], [[0]], [expout])[ + ]AT_BISON_CHECK_([$1[ --warnings=none -Werror]], [[0]], [expout])[ ]AT_RESTORE_SPECIAL_FILES[ fi @@ -518,11 +533,11 @@ m4_define([AT_BISON_CHECK_XML], [--xml=[^][ ]*], [])])dnl # Don't combine these Bison invocations since we want to be sure that # --report=all isn't required to get the full XML file. - AT_CHECK([[bison --report=all --report-file=xml-tests/test.output \ - --graph=xml-tests/test.dot ]]AT_BISON_ARGS, - [[0]], [ignore], [ignore]) - AT_CHECK([[bison --xml=xml-tests/test.xml ]]AT_BISON_ARGS, - [[0]], [ignore], [ignore]) + AT_BISON_CHECK_([[--report=all --report-file=xml-tests/test.output \ + --graph=xml-tests/test.dot ]]AT_BISON_ARGS, + [[0]], [ignore], [ignore]) + AT_BISON_CHECK_([[--xml=xml-tests/test.xml ]]AT_BISON_ARGS, + [[0]], [ignore], [ignore]) m4_popdef([AT_BISON_ARGS])dnl [cp xml-tests/test.output expout] AT_CHECK([[$XSLTPROC \ From e4828e238445e3bf1bde0e2b7c38a73de7a7719e Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 17 Jul 2012 13:40:26 +0200 Subject: [PATCH 06/20] tests: refactor for legibility. * tests/local.at (AT_BISON_CHECK_WARNINGS, AT_BISON_CHECK_WARNINGS_): New. --- tests/local.at | 129 ++++++++++++++++++++++++++----------------------- 1 file changed, 69 insertions(+), 60 deletions(-) diff --git a/tests/local.at b/tests/local.at index 62e05709..f2532809 100644 --- a/tests/local.at +++ b/tests/local.at @@ -450,72 +450,79 @@ m4_define([AT_BISON_CHECK_], [AT_CHECK(AT_QUELL_VALGRIND[[ bison ]]$@)]) +# AT_BISON_CHECK_WARNINGS(BISON_ARGS, [OTHER_AT_CHECK_ARGS]) +# ---------------------------------------------------------- +# Check that warnings (if some are expected) are correctly +# turned into errors with -Werror, etc. +m4_define([AT_BISON_CHECK_WARNINGS], +[m4_if(m4_bregexp([$4], [: warning: ]), [-1], [], + [m4_null_if([$2], [AT_BISON_CHECK_WARNINGS_($@)])])]) + +m4_define([AT_BISON_CHECK_WARNINGS_], +[[# Defining POSIXLY_CORRECT causes bison to complain if options +# are added after the grammar file name, so skip these checks +# in that case. +if test -z "${POSIXLY_CORRECT+set}"; then + ]AT_SAVE_SPECIAL_FILES[ + + # To avoid expanding it repeatedly, store specified stdout. + ]AT_DATA([expout], [$3])[ + + # Run with -Werror. + ]AT_BISON_CHECK_([$1[ -Werror]], [[1]], [expout], [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: /{=;q;}' at-bison-check-warnings` + : ${at_bison_check_first:=1} + at_bison_check_first_tmp=`sed -n \ + '/conflicts: [0-9].*reduce$/{=;q;}' at-bison-check-warnings` + : ${at_bison_check_first_tmp:=1} + if test $at_bison_check_first_tmp -lt $at_bison_check_first; then + at_bison_check_first=$at_bison_check_first_tmp + fi + 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` + : ${at_bison_check_last:=1} + 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_BISON_CHECK_([$1[ --warnings=error]], [[1]], [expout], [experr])[ + + # Now check -Wnone and --warnings=none by making sure that + # -Werror doesn't change the exit status when -Wnone or + # --warnings=none is specified. + ]AT_BISON_CHECK_([$1[ -Wnone -Werror]], [[0]], [expout])[ + ]AT_BISON_CHECK_([$1[ --warnings=none -Werror]], [[0]], [expout])[ + + ]AT_RESTORE_SPECIAL_FILES[ +fi]dnl +]) + # 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 # when a tortured grammar's XML is known to be too large for xsltproc to # handle. m4_define([AT_BISON_CHECK_NO_XML], -[AT_CHECK(m4_if(m4_quote($2), [0], [], m4_quote($2), [], [], - [AT_QUELL_VALGRIND ])[[bison ]]$@) -m4_if(m4_bregexp([$4], [: warning: ]), [-1], [], - m4_quote(m4_if(m4_quote($2), [], [0], [$2])), [0], [[ - # Defining POSIXLY_CORRECT causes bison to complain if options - # are added after the grammar file name, so skip these checks - # in that case. - if test -z "${POSIXLY_CORRECT+set}"; then - ]AT_SAVE_SPECIAL_FILES[ - - # To avoid expanding it repeatedly, store specified stdout. - ]AT_DATA([expout], [$3])[ - - # Run with -Werror. - ]AT_BISON_CHECK_([$1[ -Werror]], [[1]], [expout], [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: /{=;q;}' at-bison-check-warnings` - : ${at_bison_check_first:=1} - at_bison_check_first_tmp=`sed -n \ - '/conflicts: [0-9].*reduce$/{=;q;}' at-bison-check-warnings` - : ${at_bison_check_first_tmp:=1} - if test $at_bison_check_first_tmp -lt $at_bison_check_first; then - at_bison_check_first=$at_bison_check_first_tmp - fi - 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` - : ${at_bison_check_last:=1} - 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_BISON_CHECK_([$1[ --warnings=error]], [[1]], [expout], [experr])[ - - # Now check -Wnone and --warnings=none by making sure that - # -Werror doesn't change the exit status when -Wnone or - # --warnings=none is specified. - ]AT_BISON_CHECK_([$1[ -Wnone -Werror]], [[0]], [expout])[ - ]AT_BISON_CHECK_([$1[ --warnings=none -Werror]], [[0]], [expout])[ - - ]AT_RESTORE_SPECIAL_FILES[ - fi - ]]) -]) +[AT_CHECK(m4_null_if([$2], [], [AT_QUELL_VALGRIND ])[[bison ]]$@) +AT_BISON_CHECK_WARNINGS($@)]) # AT_BISON_CHECK_XML(BISON_ARGS, [OTHER_AT_CHECK_ARGS]) # ----------------------------------------------------- @@ -565,6 +572,8 @@ m4_define([AT_BISON_CHECK_XML], m4_define([AT_QUELL_VALGRIND], [[[VALGRIND_OPTS="$VALGRIND_OPTS --leak-check=summary --show-reachable=no"; export VALGRIND_OPTS;]]]) + + ## ------------------------ ## ## Compiling C, C++ Files. ## ## ------------------------ ## From 321b8117a6fa421256d6b633b65ef4494ab5757c Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 17 Jul 2012 14:08:53 +0200 Subject: [PATCH 07/20] maint: dead comment. * etc/README: here. --- etc/README | 3 --- 1 file changed, 3 deletions(-) diff --git a/etc/README b/etc/README index 6e8161af..e4f2abc0 100644 --- a/etc/README +++ b/etc/README @@ -1,6 +1,3 @@ -A directory of tools provided to people using CVS Bison. None of -these is distributed. - * bench.pl A primitive Perl script to run benches. Currently its only bench is the usual calculator: it has a lightweight processing part (but not From 1aa9fa823b452cfd76c0ca34d652f7562c94864a Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 17 Jul 2012 14:25:26 +0200 Subject: [PATCH 08/20] tests: be sure that backups are safe. * tests/local.at (at_save_special_files): here. --- tests/local.at | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/local.at b/tests/local.at index f2532809..2dbbfc71 100644 --- a/tests/local.at +++ b/tests/local.at @@ -53,6 +53,8 @@ m4_divert_text([PREPARE_TESTS], { for at_save_file in stderr experr expout do + test ! -f at-bison-check-$at_save_file.bak || + as_fn_error 1 "fatal error: back-up on top of a back-up" test ! -f $at_save_file || mv $at_save_file at-bison-check-$at_save_file.bak done } From bcbbf654863dd285b176a0f54a75a28c4bdac1d3 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 17 Jul 2012 10:45:00 +0200 Subject: [PATCH 09/20] maint: Valgrind on OS X. * configure.ac (VALGRIND_PREBISON): New. * tests/Makefile.am (maintainer-check-valgrind): Use it. * etc/darwin11.4.0.supp: New. * configure.ac, etc/Makefile.am: Use it. * configure.ac: Disable Valgrind on Mac OS X. * README-hacking: Explain why. --- README-hacking | 39 ++++++++++++++++---- build-aux/Makefile.am | 22 ++++++++++-- build-aux/darwin11.4.0.valgrind | 64 +++++++++++++++++++++++++++++++++ configure.ac | 10 ++++++ tests/Makefile.am | 2 +- 5 files changed, 127 insertions(+), 10 deletions(-) create mode 100644 build-aux/darwin11.4.0.valgrind diff --git a/README-hacking b/README-hacking index d06d1389..bb91ac06 100644 --- a/README-hacking +++ b/README-hacking @@ -1,5 +1,3 @@ --*- outline -*- - This file attempts to describe the rules to use when hacking Bison. Don't put this file into the distribution. @@ -60,8 +58,8 @@ tools we depend upon, including: - Rsync - Tar -Valgrind is also highly recommended, if -Valgrind supports your architecture. +Valgrind is also highly recommended, if it supports +your architecture. Bison is written using Bison grammars, so there are bootstrapping issues. The bootstrap script attempts to discover when the C code @@ -124,7 +122,7 @@ import requests for updated submodules. A simple "git diff" will reveal if the current version of the submodule (i.e., the actual contents of the gnulib directory) and the current request from the subscriber (i.e., the reference of the version of gnulib that the -Bison reporitory requests) differ. To upgrade the submodules (i.e., +Bison repository requests) differ. To upgrade the submodules (i.e., to check out the version that is actually requested by the subscriber, run "git submodule update". @@ -155,7 +153,7 @@ formal release, see the ChangeLog in the latest gnulib snapshot at: http://erislabs.net/ianb/projects/gnulib/ -The autoconf files we use are currently: +The Autoconf files we use are currently: m4/m4.m4 lib/m4sugar/m4sugar.m4 @@ -170,6 +168,23 @@ decide whether to update. ** make check Use liberally. +** make maintainer-check-valgrind +This target uses valgrind both to check bison, and the generated parsers. + +This is not mature on Mac OS X. First, Valgrind does support the way bison +calls m4, so Valgrind cannot be used to check bison on Mac OS X. + +Second, there are many errors that come from the platform itself, not from +bison. build-aux/darwin11.4.0.valgrind addresses some of them. + +Third, valgrind issues warnings such as: + + --99312:0:syswrap- WARNING: Ignoring sigreturn( ..., UC_RESET_ALT_STACK ); + +which cause the test to fail uselessly. It is hard to ignore these errors +with a major overhaul of the way instrumentation is performed in the test +suite. So currently, do not try to run valgrind on Mac OS X. + ** Release checks Try to run the test suite with more severe conditions before a release: @@ -377,7 +392,6 @@ spaces): Push these changes. - ----- Copyright (C) 2002-2005, 2007-2012 Free Software Foundation, Inc. @@ -396,3 +410,14 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . + + LocalWords: Automake Autoconf Gettext Gzip Rsync Valgrind gnulib submodules + LocalWords: submodule init cd distcheck checkin ChangeLog valgrind sigreturn + LocalWords: UC gcc DGNULIB POSIXCHECK xml XSLT glr lalr README po runtime rc + LocalWords: gnupload gnupg gpg keyserver BDF ncftp filename clearsign cvs dir + LocalWords: symlinks vti html lt POSIX Cc'ed + +Local Variables: +mode: outline +fill-column: 76 +End: diff --git a/build-aux/Makefile.am b/build-aux/Makefile.am index 8d0cfb29..2c72cebf 100644 --- a/build-aux/Makefile.am +++ b/build-aux/Makefile.am @@ -1,2 +1,20 @@ -## Process this file with automake to produce Makefile.in -*-Makefile-*- -EXTRA_DIST = prev-version.txt cross-options.pl update-b4-copyright +## Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +EXTRA_DIST = \ + cross-options.pl \ + darwin11.4.0.valgrind \ + prev-version.txt \ + update-b4-copyright diff --git a/build-aux/darwin11.4.0.valgrind b/build-aux/darwin11.4.0.valgrind new file mode 100644 index 00000000..ff355ebc --- /dev/null +++ b/build-aux/darwin11.4.0.valgrind @@ -0,0 +1,64 @@ +# Copyright (C) 2012 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Valgrind suppression file for Bison. + +{ + Mac OS X initialization + Memcheck:Leak + fun:?alloc* + ... + fun:*ImageLoader* +} + +{ + Mac OS X initialization + Memcheck:Leak + fun:?alloc* + ... + fun:*dyld* +} + +{ + Mac OS X initialization + Memcheck:Leak + fun:?alloc* + ... + fun:__CFInitialize +} + +{ + Mac OS X I/O buffer + Memcheck:Leak + fun:malloc + fun:__smakebuf + fun:__swsetup + fun:__sfvwrite + fun:fwrite +} + +{ + Mac OS X I/O buffer + Memcheck:Leak + fun:malloc + fun:__smakebuf + fun:__swsetup + fun:__swbuf + fun:putchar +} + +# Local Variables: +# mode: shell-script +# End: diff --git a/configure.ac b/configure.ac index 6a75d7b4..2773167a 100644 --- a/configure.ac +++ b/configure.ac @@ -163,6 +163,16 @@ AC_CONFIG_TESTDIR(tests) AC_CONFIG_FILES([tests/Makefile tests/atlocal]) AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison]) AC_CHECK_PROGS([VALGRIND], [valgrind]) +case $VALGRIND:$host_os in + '':*) ;; + *:darwin*) + # See README-hacking. + # VALGRIND+=' --suppressions=$(abs_top_srcdir)/build-aux/darwin11.4.0.valgrind' + VALGRIND=;; + *:*) + AC_SUBST([VALGRIND_PREBISON], [$VALGRIND -q]);; +esac + AM_MISSING_PROG([AUTOM4TE], [autom4te]) # Needed by tests/atlocal.in. AC_SUBST([GCC]) diff --git a/tests/Makefile.am b/tests/Makefile.am index 7f5fd167..f94eaa13 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -89,7 +89,7 @@ maintainer-check-posix: $(TESTSUITE) maintainer-check-valgrind: $(TESTSUITE) test -z '$(VALGRIND)' || \ $(TESTSUITE) $(TESTSUITEFLAGS) \ - PREBISON='$(VALGRIND) -q' PREPARSER='$(VALGRIND) -q' \ + PREBISON='$(VALGRIND_PREBISON)' PREPARSER='$(VALGRIND) -q' \ VALGRIND_OPTS='--leak-check=full --show-reachable=yes' .PHONY: maintainer-check From e6ae99fe756493288df062299dff09de4f7a8e52 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 17 Jul 2012 15:11:47 +0200 Subject: [PATCH 10/20] doc: fix Texinfo command * doc/bison.texi: In parens, use @pxref. --- doc/bison.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/bison.texi b/doc/bison.texi index 15ee270e..6346bf03 100644 --- a/doc/bison.texi +++ b/doc/bison.texi @@ -8498,7 +8498,7 @@ parser. This is compliant with POSIX Yacc. You could use YYDEBUG 1} in the prologue of the grammar file (@pxref{Prologue, , The Prologue}). -If the @code{%define} variable @code{api.prefix} is used (@xref{Multiple +If the @code{%define} variable @code{api.prefix} is used (@pxref{Multiple Parsers, ,Multiple Parsers in the Same Program}), for instance @samp{%define api.prefix x}, then if @code{CDEBUG} is defined, its value controls the tracing feature (enabled iff nonzero); otherwise tracing is enabled iff From d5c20d1a360e7fa234fe410cf1a6fa8677f2a39d Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 17 Jul 2012 15:19:37 +0200 Subject: [PATCH 11/20] tests: fix dependencies * tests/Makefile.am: we need atconfig and atlocal to be up to date when calling testsuite. --- tests/Makefile.am | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/Makefile.am b/tests/Makefile.am index f94eaa13..b6848d77 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -73,20 +73,20 @@ check-local: atconfig atlocal $(TESTSUITE) check_SCRIPTS = bison # Run the test suite on the *installed* tree. -installcheck-local: +installcheck-local: atconfig atlocal $(TESTSUITE) $(TESTSUITE) AUTOTEST_PATH="$(bindir)" $(TESTSUITEFLAGS) # Be real mean with it. .PHONY: maintainer-check-g++ -maintainer-check-g++: $(TESTSUITE) +maintainer-check-g++: atconfig atlocal $(TESTSUITE) $(TESTSUITE) $(TESTSUITEFLAGS) --compile-c-with-cxx .PHONY: maintainer-check-posix -maintainer-check-posix: $(TESTSUITE) +maintainer-check-posix: atconfig atlocal $(TESTSUITE) $(TESTSUITE) $(TESTSUITEFLAGS) POSIXLY_CORRECT=1 _POSIX2_VERSION=200112 .PHONY: maintainer-check-valgrind -maintainer-check-valgrind: $(TESTSUITE) +maintainer-check-valgrind: atconfig atlocal $(TESTSUITE) test -z '$(VALGRIND)' || \ $(TESTSUITE) $(TESTSUITEFLAGS) \ PREBISON='$(VALGRIND_PREBISON)' PREPARSER='$(VALGRIND) -q' \ From 0e98a81e00ea6422f76f13054d8dec23ff40c33a Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 17 Jul 2012 15:20:11 +0200 Subject: [PATCH 12/20] tests: adjust to case where the C compiler is actually a C++ compiler * tests/atlocal.in (CC_IS_CXX): New. * tests/headers.at (Several parsers): Use it. --- tests/atlocal.in | 3 +++ tests/headers.at | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/tests/atlocal.in b/tests/atlocal.in index 7302209f..d059d630 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -49,10 +49,13 @@ BISON_CXX_WORKS='@BISON_CXX_WORKS@' # Handle --compile-c-with-cxx here, once CXX and CXXFLAGS are known. if "$at_arg_compile_c_with_cxx"; then + CC_IS_CXX=1 CC=$CXX O0CFLAGS=$O0CXXFLAGS NO_WERROR_CFLAGS=$NO_WERROR_CXXFLAGS CFLAGS=$CXXFLAGS +else + CC_IS_CXX=0 fi diff --git a/tests/headers.at b/tests/headers.at index 07f1d1bc..cac7fe5f 100644 --- a/tests/headers.at +++ b/tests/headers.at @@ -182,8 +182,12 @@ AT_BISON_OPTION_POPDEFS AT_DATA([main.cc], [AT_DATA_SOURCE_PROLOGUE -[extern "C" +[// If we are compiling with CC=$CXX, then do not load the C headers +// inside extern "C", since they were _not_ compiled this way. +#if ! CC_IS_CXX +extern "C" { +#endif #include "x1.h" #include "x2.h" #include "x3.h" @@ -191,7 +195,9 @@ AT_DATA([main.cc], #include "x6.h" #include "x7.h" #include "x8.h" +#if ! CC_IS_CXX } +#endif #include "x5.hh" //#include "x6.hh" @@ -230,7 +236,7 @@ AT_TEST([x7], [%define api.push-pull both]) AT_TEST([x8], [%define api.pure %define api.push-pull both]) #AT_TEST([x5], [%locations %language "c++" %glr-parser]) -AT_COMPILE_CXX([parser], [[x[1-8].o main.cc]]) +AT_COMPILE_CXX([parser], [[x[1-8].o -DCC_IS_CXX=$CC_IS_CXX main.cc]]) AT_CHECK([./parser], [0], [[expout]]) m4_popdef([AT_TEST]) From c30717cafaf6e45fb82999ddd4907ff39ec39474 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 18 Jul 2012 17:56:30 +0200 Subject: [PATCH 13/20] maint: fix spaces. * build-aux/Makefile.am: here. --- build-aux/Makefile.am | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build-aux/Makefile.am b/build-aux/Makefile.am index 2c72cebf..5b077b8d 100644 --- a/build-aux/Makefile.am +++ b/build-aux/Makefile.am @@ -13,8 +13,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -EXTRA_DIST = \ - cross-options.pl \ +EXTRA_DIST = \ + cross-options.pl \ darwin11.4.0.valgrind \ - prev-version.txt \ + prev-version.txt \ update-b4-copyright From 858c700fc0cf45389580d21f86d0950291754a55 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 18 Jul 2012 18:19:12 +0200 Subject: [PATCH 14/20] maint: prepare NEWS. --- NEWS | 3 --- 1 file changed, 3 deletions(-) diff --git a/NEWS b/NEWS index 24f43d51..dfdbe24d 100644 --- a/NEWS +++ b/NEWS @@ -2,9 +2,6 @@ GNU Bison NEWS * Noteworthy changes in release ?.? (????-??-??) [?] - -* Noteworthy changes in release 2.5.90 (2012-07-05) [beta] - ** Future Changes The next major release of Bison will drop support for the following From 5d614dfa8c3b98804a88239d1c80f3b20e56b7df Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 18 Jul 2012 18:19:32 +0200 Subject: [PATCH 15/20] version 2.5.91 * NEWS: Record release date. --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index dfdbe24d..02d38555 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ GNU Bison NEWS -* Noteworthy changes in release ?.? (????-??-??) [?] +* Noteworthy changes in release 2.5.91 (2012-07-18) [beta] ** Future Changes From ad6b775fc541a0151260e5284f7faec36de2a0d7 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 18 Jul 2012 18:33:25 +0200 Subject: [PATCH 16/20] maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. --- .prev-version | 2 +- NEWS | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.prev-version b/.prev-version index b042f94e..e710b3f7 100644 --- a/.prev-version +++ b/.prev-version @@ -1 +1 @@ -2.5.90 +2.5.91 diff --git a/NEWS b/NEWS index 02d38555..52a5c805 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,8 @@ GNU Bison NEWS +* Noteworthy changes in release ?.? (????-??-??) [?] + + * Noteworthy changes in release 2.5.91 (2012-07-18) [beta] ** Future Changes From 58c7e5ee2c742d72de05465e6d1316e1bdacea04 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 19 Jul 2012 15:20:20 +0200 Subject: [PATCH 17/20] maint: prepare for release 2.6 * NEWS: here. --- NEWS | 3 --- 1 file changed, 3 deletions(-) diff --git a/NEWS b/NEWS index 52a5c805..dfdbe24d 100644 --- a/NEWS +++ b/NEWS @@ -2,9 +2,6 @@ GNU Bison NEWS * Noteworthy changes in release ?.? (????-??-??) [?] - -* Noteworthy changes in release 2.5.91 (2012-07-18) [beta] - ** Future Changes The next major release of Bison will drop support for the following From 1505e8bb78ce6c58031b7edd8034380217eda71d Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 19 Jul 2012 15:24:23 +0200 Subject: [PATCH 18/20] version 2.6 * NEWS: Record release date. --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index dfdbe24d..912107c6 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ GNU Bison NEWS -* Noteworthy changes in release ?.? (????-??-??) [?] +* Noteworthy changes in release 2.6 (2012-07-19) [stable] ** Future Changes From a4107f24bc70e529737a3708c5ac74492783c49d Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 19 Jul 2012 15:38:29 +0200 Subject: [PATCH 19/20] maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update. --- .prev-version | 2 +- NEWS | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.prev-version b/.prev-version index e710b3f7..5154b3f6 100644 --- a/.prev-version +++ b/.prev-version @@ -1 +1 @@ -2.5.91 +2.6 diff --git a/NEWS b/NEWS index 912107c6..be9ed7ca 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,8 @@ GNU Bison NEWS +* Noteworthy changes in release ?.? (????-??-??) [?] + + * Noteworthy changes in release 2.6 (2012-07-19) [stable] ** Future Changes From d0d3313d10a28aa6fe77f158d61b84424aa9b3ce Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 19 Jul 2012 16:24:33 +0200 Subject: [PATCH 20/20] maint: update gnu-web-doc-update. * gnulib: here. --- gnulib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnulib b/gnulib index cabce6b8..2f67aa79 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit cabce6b8f2042e42c2098f7cf18873c61ac7bcd5 +Subproject commit 2f67aa79c6f13961eda685144130692dc9f7b95f