GNU sed - News
sed-4.3 released [stable]
Item posted by Jim Meyering <meyering> on Fri 30 Dec 2016 05:59:45 PM UTC.
This is to announce sed-4.3, a stable release (and my first release).
There have been 195 commits by 10 people in the four years since 4.2.2.
And that does not include the 1390 commits to gnulib.
See the NEWS below for a brief summary.
Thanks to everyone who has contributed!
Special thanks to Norihiro Tanaka for his DFA-related improvements
and to Assaf Gordon, who is now a co-maintainer.
The following people contributed changes to this release:
Assaf Gordon (58)
David A. Wheeler (1)
Jim Meyering (117)
Jose E. Marchesi (6)
Norihiro Tanaka (6)
Paolo Bonzini (1)
Stanislav Brabec (1)
Stefano Lattarini (3)
Tristan Verniquet (1)
Vincenzo Romano (1)
Jim [on behalf of the sed maintainers]
========================================================
Here is the GNU sed home page:
http://gnu.org/s/sed/
For a summary of changes and contributors, see:
http://git.sv.gnu.org/gitweb/?p=sed.git;a=shortlog;h=v4.3
or run this command from a git-cloned sed directory:
git shortlog v4.2.2..v4.3
To summarize the 1390 gnulib-related changes, run these commands
from a git-cloned sed directory:
git checkout v4.3
git submodule summary v4.2.2
Here are the compressed sources and a GPG detached signature[*]:
[While I've been a sed maintainer for over two years, this is my
first release, and a lagging access control list prevents my
uploading to the usual URLs. While we wait for that to be fixed,
I've made the tarball and signature available here:
http://meyering.net/sed/sed-4.3.tar.xz
http://meyering.net/sed/sed-4.3.tar.xz.sig
The usual URLs below will eventually become valid.
]
http://ftp.gnu.org/gnu/sed/sed-4.3.tar.xz
http://ftp.gnu.org/gnu/sed/sed-4.3.tar.xz.sig
Use a mirror for higher download bandwidth:
http://ftpmirror.gnu.org/sed/sed-4.3.tar.xz
http://ftpmirror.gnu.org/sed/sed-4.3.tar.xz.sig
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify sed-4.3.tar.xz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Autoconf 2.69.183-96821
Automake 1.99a
Gnulib v0.1-1076-g0d53486
========================================================
NEWS
* Noteworthy changes in release 4.3 (2016-12-30) [stable]
** Improvements
sed's regular expression matching is now typically 10x faster
sed now uses unlocked-io where available, resulting in faster I/O
operations.
** Bug fixes
sed no longer mishandles anchors ^/$ in multiline regex (s///mg)
with -z option (NUL terminated lines). [Bug introducted in sed-4.2.2
with the initial implementation of -z]
sed no longer accepts a ":" command without a label; before, it would
treat that as defining a label whose name is empty, and subsequent
label-free "t" and "b" commands would use that label. Now, sed emits
a diagnostic and fails for that invalid construct.
sed no longer accesses uninitialized memory when processing certain
invalid multibyte sequences. Demonstrate with this:
echo a | LC_ALL=ja_JP.eucJP valgrind sed/sed 's/a/b\U\xb2c/'
The error appears to have been introduced with the sed-4.0a release.
The 'y' (transliterate) operator once again works with a NUL byte
on the RHS. E.g., sed 'y/b/\x00/' now works like tr b '\0'. GNU sed
has never before recognized \x00 in this context. However, sed-3.02
and prior did accept a literal NUL byte in the RHS, which was possible
only when reading a script from a file. For example, this:
echo abc|sed -f <(printf 'y/b/\x00/\n')|cat -A
is what stopped working. [bug introduced some time after sed-3.02 and
prior to the first sed-4* test release]
When the closed-above line number ranges of N editing commands
overlap (N>1), sed would apply commands 2..N to the line just
beyond the largest range endpoint.
[bug introduced some time after sed-4.09 and prior to release in sed-4.1]
Before, this command would mistakenly modify line 5:
$ seq 6|sed '2,4d;2,3s/^/x/;3,4s/^/y/'
1
yx5
6
Now, it does not:
$ seq 6|sed '2,4d;2,3s/^/x/;3,4s/^/y/'
1
5
6
An erroneous sed invocation like "echo > F; sed -i s//b/ F" no longer
leaves behind a temporary file. Before, that command would create a file
alongside F with a name matching /^sed......$/ and fail to remove it.
sed --follow-symlinks now works again for stdin.
[bug introduced in sed-4.2.2]
sed no longer elides invalid bytes in a substitution RHS.
Now, sed copies such bytes into the output, just as Perl does.
[bug introduced in sed-4.1 -- it was also present prior to 4.0.6]
sed no longer prints extraneous character when a backslash follows \c.
'\c\\' generates control character ^\ (ASCII 0x1C).
Other characters after the second backslash are rejected (e.g. '\c\d').
[bug introduced in the sed-4.0.* releases]
sed no longer mishandles incomplete multibyte sequences in s,y commands
and valid multibyte SHIFT-JIS characters in character classes.
Previously, the following commands would fail:
LC_ALL=en_US.UTF-8 sed $'s/\316/X/'
LC_ALL=ja_JP.shiftjis sed $'/[\203]/]/p'
[bug introduced some time after sed-4.1.5 and before sed-4.2.1]
** Feature removal
The "L" command (format a paragraph like the fmt(1) command would)
has been listed in the documentation as a failed experiment for at
least 10 years. That command is now removed.
** Build-related
"make dist" now builds .tar.xz files, rather than .tar.gz ones.
xz is portable enough and in wide-enough use that distributing
only .tar.xz files is enough. It has been fine for coreutils, grep,
diffutils and parted for a few years.
** New Features
new --sandbox option rejects programs with r/w/e commands.
Powered by Savane 3.14-8aba.
Corresponding source code