[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: the release of grep-2.9 is imminent
From: |
Jim Meyering |
Subject: |
Re: the release of grep-2.9 is imminent |
Date: |
Tue, 21 Jun 2011 12:05:53 +0200 |
Jim Meyering wrote:
> I'm prepared to release grep-2.9.
> There have been more than enough fixes since 2.8:
> (from NEWS):
>
> grep no longer clobbers heap for an ERE like '(^| )*( |$)'
> [bug introduced in grep-2.6]
>
> grep is faster on regular expressions that match multibyte characters
> in brackets (such as '[<C3><A1><C3><A9><C3><AD><C3><B3><C3><BA>]').
>
> echo c|grep '[c]' would fail for any c in 0x80..0xff, with a uni-byte
> encoding for which the byte-to-wide-char mapping is nontrivial. For
> example, the ISO-88591 locales are not affected, but ru_RU.KOI8-R is.
> [bug introduced in grep-2.6]
>
> grep -P no longer aborts when PCRE's backtracking limit is exceeded
> Before, echo aaaaaaaaaaaaaab |grep -P '((a+)*)+$' would abort. Now,
> it diagnoses the problem and exits with status 2.
>
> If anyone has something that they'd like to see in 2.9,
> please let us know.
>
> Also, I want to make this bug-fix release before we perform
> any regex-rationalization surgery.
FYI, I've just pushed the following.
Now, I expect to tag grep-2.9 and release later today.
Last chance...
>From 5f7848a0dc89b30b15e3a76a8d53d43d4f746a36 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Tue, 21 Jun 2011 11:42:22 +0200
Subject: [PATCH] maint: update bootstrap from gnulib
* bootstrap: Update from gnulib.
---
bootstrap | 94 ++++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 66 insertions(+), 28 deletions(-)
diff --git a/bootstrap b/bootstrap
index e9ec11e..522ac70 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,6 +1,6 @@
#! /bin/sh
# Print a version string.
-scriptversion=2011-01-21.16; # UTC
+scriptversion=2011-05-16.16; # UTC
# Bootstrap this package from checked-out sources.
@@ -130,18 +130,7 @@ source_base=lib
m4_base=m4
doc_base=doc
tests_base=tests
-
-# Extra files from gnulib, which override files from other sources.
-gnulib_extra_files="
- $build_aux/install-sh
- $build_aux/missing
- $build_aux/mdate-sh
- $build_aux/texinfo.tex
- $build_aux/depcomp
- $build_aux/config.guess
- $build_aux/config.sub
- doc/INSTALL
-"
+gnulib_extra_files=''
# Additional gnulib-tool options to use. Use "\newline" to break lines.
gnulib_tool_option_extras=
@@ -229,6 +218,18 @@ case "$0" in
*) test -r "$0.conf" && . ./"$0.conf" ;;
esac
+# Extra files from gnulib, which override files from other sources.
+test -z "${gnulib_extra_files}" && \
+ gnulib_extra_files="
+ $build_aux/install-sh
+ $build_aux/missing
+ $build_aux/mdate-sh
+ $build_aux/texinfo.tex
+ $build_aux/depcomp
+ $build_aux/config.guess
+ $build_aux/config.sub
+ doc/INSTALL
+"
if test "$vc_ignore" = auto; then
vc_ignore=
@@ -278,14 +279,29 @@ if test -n "$checkout_only_file" && test ! -r
"$checkout_only_file"; then
exit 1
fi
+# Ensure that lines starting with ! sort last, per gitignore conventions
+# for whitelisting exceptions after a more generic blacklist pattern.
+sort_patterns() {
+ sort -u "$@" | sed '/^!/ {
+ H
+ d
+ }
+ $ {
+ P
+ x
+ s/^\n//
+ }'
+}
+
# If $STR is not already on a line by itself in $FILE, insert it,
# sorting the new contents of the file and replacing $FILE with the result.
insert_sorted_if_absent() {
file=$1
str=$2
test -f $file || touch $file
- echo "$str" | sort -u - $file | cmp - $file > /dev/null \
- || echo "$str" | sort -u - $file -o $file \
+ echo "$str" | sort_patterns - $file | cmp - $file > /dev/null \
+ || { echo "$str" | sort_patterns - $file > $file.bak \
+ && mv $file.bak $file; } \
|| exit 1
}
@@ -405,18 +421,32 @@ check_versions() {
# Honor $APP variables ($TAR, $AUTOCONF, etc.)
appvar=`echo $app | tr '[a-z]-' '[A-Z]_'`
test "$appvar" = TAR && appvar=AMTAR
- eval "app=\${$appvar-$app}"
- inst_ver=$(get_version $app)
- if [ ! "$inst_ver" ]; then
- echo "$me: Error: '$app' not found" >&2
- ret=1
- elif [ ! "$req_ver" = "-" ]; then
- 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
+ case $appvar in
+ GZIP) ;; # Do not use $GZIP: it contains gzip options.
+ *) eval "app=\${$appvar-$app}" ;;
+ esac
+ if [ "$req_ver" = "-" ]; then
+ # Merely require app to exist; not all prereq apps are well-behaved
+ # 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
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
+ 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
+ ret=1
+ fi
+ fi
fi
done
@@ -640,10 +670,18 @@ symlink_to_dir()
cp -fp "$src" "$dst"
}
else
+ # Leave any existing symlink alone, if it already points to the source,
+ # so that broken build tools that care about symlink times
+ # aren't confused into doing unnecessary builds. Conversely, if the
+ # existing symlink's time stamp is older than the source, make it afresh,
+ # so that broken tools aren't confused into skipping needed builds. See
+ # <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00326.html>.
test -h "$dst" &&
src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
- test "$src_i" = "$dst_i" || {
+ test "$src_i" = "$dst_i" &&
+ both_ls=`ls -dt "$src" "$dst"` &&
+ test "X$both_ls" = "X$dst$nl$src" || {
dot_dots=
case $src in
/*) ;;
@@ -874,7 +912,7 @@ grep -E '^[ ]*AC_CONFIG_HEADERS?\>' configure.ac
>/dev/null ||
for command in \
libtool \
- "${ACLOCAL-aclocal} --force -I m4 $ACLOCAL_FLAGS" \
+ "${ACLOCAL-aclocal} --force -I '$m4_base' $ACLOCAL_FLAGS" \
"${AUTOCONF-autoconf} --force" \
"${AUTOHEADER-autoheader} --force" \
"${AUTOMAKE-automake} --add-missing --copy --force-missing"
@@ -885,7 +923,7 @@ do
command="${LIBTOOLIZE-libtoolize} -c -f"
fi
echo "$0: $command ..."
- $command || exit
+ eval "$command" || exit
done
--
1.7.6.rc2.295.gb63f3
- the release of grep-2.9 is imminent, Jim Meyering, 2011/06/17
- Re: the release of grep-2.9 is imminent,
Jim Meyering <=
- Re: the release of grep-2.9 is imminent, Stefano Lattarini, 2011/06/21
- Re: the release of grep-2.9 is imminent, Jim Meyering, 2011/06/21
- Re: the release of grep-2.9 is imminent, Stefano Lattarini, 2011/06/21
- Re: the release of grep-2.9 is imminent, Jim Meyering, 2011/06/21
- Re: the release of grep-2.9 is imminent, Jim Meyering, 2011/06/21
- Re: the release of grep-2.9 is imminent, Bruno Haible, 2011/06/21
- Re: the release of grep-2.9 is imminent, Jim Meyering, 2011/06/22
Re: the release of grep-2.9 is imminent, Eric Blake, 2011/06/21