[gnu-sed-devel] sed-4.3 released [stable]


[resending, now that the gnu.org URLs are valid]

This is to announce sed-4.3, a stable release (and my first sed 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[*]:
  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.

==================================================================
Also posted as:
  https://savannah.gnu.org/forum/forum.php?forum_id=8762

This message from: http://www.mailbrowse.com/gnu-sed-devel/201.html
Previous message: FYI: PATCH: remove support for the 'L' (fmt/flow-paragraph) command
Next message:doc: new 'branches and flow control' + example sections