[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ANNOUNCE] GNU textutils 2.1

From: Jim Meyering
Subject: [ANNOUNCE] GNU textutils 2.1
Date: Sun, 04 Aug 2002 23:15:59 +0200
User-agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.3.50 (i686-pc-linux-gnu)

We're happy to say that texutils-2.1 is released.
It has been three years and 22 test releases since textutuls-2.0.
Obviously, that's too long for those who use only major releases.
We hope the next one won't take so long :-)

Jim and Paul

Version 2.1 is available here (but please use a GNU mirror):

  ftp://ftp.gnu.org/gnu/textutils/textutils-2.1.tar.gz   (2.7 MB)
  ftp://ftp.gnu.org/gnu/textutils/textutils-2.1.tar.bz2  (1.9 MB)

Here are the MD5 and SHA1 signatures:

2e5d1f614f0b6dbea9a14460a908ef9c  textutils-2.1.tar.gz
47455186d12b65d363adc80e900f8682  textutils-2.1.tar.bz2
b520c017f0433da8cbdb0159e6a3caa9b67338d0  textutils-2.1.tar.gz
a51c96af2ff9e06650c10fa7655a13edb053467e  textutils-2.1.tar.bz2

There is one new program, sha1sum, written by Ulrich Drepper and Scott Miller.

Changes between 2.0 and 2.1

There have been many portability fixes and changes to adapt to and take
advantage of advances in newer versions of autoconf and automake.

There have been many bug fixes and a few new features/options.
The following are most of the entries from the NEWS file.
(for the full list, see the `NEWS' and ChangeLog files)

The following describe new options and important changes to
existing ones:

* split accepts new option -a or --suffix-length.
* unexpand accepts new option: --first-only
* tail accepts new option: -F, equivalent to `--follow=name --retry',
    for compatibility with the FreeBSD and NetBSD versions of tail.
* uniq's --all-repeated option has new modes to delimit groups
    of duplicate lines: --all-repeated={precede,separate,none(default)}
* sort now accepts long options like "--reverse" and "--".
* sort now checks option syntax as POSIX requires, except that (as usual
  for GNU) options can follow file names unless POSIXLY_CORRECT is set.
  For example, invalid positional combinations like "sort +1 -r -2" are
  now rejected as per POSIX.
* The next POSIX standard will require that obsolescent 'sort'
  positional options like +1 be treated as file names, not options.
  Please use 'sort -k' instead.
* pr accepts new -D or --date option, to specify date format.
* sort accepts new -S SIZE option, to specify main-memory usage.

* The _POSIX2_VERSION environment variable lets you select which version
  of POSIX the utilities should conform to.  Its default value is system
  dependent.  Set _POSIX2_VERSION=199209 to cause the utilities to support
  obsolete usage like "sort +1".
* The following obsolete usages are no longer supported when conforming
  to POSIX 1003.1-2001, which prohibits most digit-string options:
    expand -N   (instead, use expand -t N)
    head -N     (instead, use head -c N or head -n N)
    fold -N     (instead, use fold -w N)
    split -N    (instead, use split -l N)
    tail -N     (instead, use tail -c N or tail -n N)
    unexpand -N (instead, use unexpand --first-only -t N)
    uniq -N     (instead, use uniq -f N)
  The following obsolete usages (options without arguments) are no
  longer supported when conforming to POSIX 1003.1-2001, which
  prohibits most options with optional arguments:
    od -s       (instead, use od --strings)
    od -w       (instead, use od --width)
    pr -S       (instead, use pr --sep-string)
* tr no longer gets failed a assertion for [==] or [::]
* The following obsolete usages are no longer supported when conforming
  to POSIX 1003.1-2001, which prohibits most options with leading "+":
    sort +POS1 -POS2    (instead, use sort -k)
    tail +N             (instead, use tail -c +N or tail -n +N)
    uniq +N             (instead, use uniq -s N)

[ Practical note: very few systems currently have headers that would enable
  the above POSIX 1003.1-2001 behavior by default, so the obsolete forms
  listed above probably still work on your system.  If you want to prepare
  yourself for when this changes, and you are prepared to debug the occasional
  application, set _POSIX2_VERSION=200112 in your environment.  But beware
  that this will provoke failures in scripts that use the obsolete option
  syntax. ]

The following summarize bug fixes, performance improvements, and
changes that remove limitations:

* split no longer generates longer suffixes than requested; instead, it reports
  an error when suffixes are exhausted.  POSIX requires this behavior.
* sort -m no longer segfaults when given an empty file
* sort -S now accepts 'K' as a synonym for 'k'.
* wc recognizes all locale-defined white-space characters, not just those
    in the "C" locale.
* csplit no longer gets a failed assertion for this:
    printf 'a\n\n'|csplit - '/^$/' 2
* tail no longer gets a segfault on Linux's /proc/ksyms
* uniq is now about 3 times faster than the version from 2.0 on Linux systems;
    the code uses lock-avoiding variants of common I/O functions
* tail -F no longer segfaults
* `head -c N' and `od -N N' now read no more than N bytes of input
* fmt no longer segfaults when using a maximum line width larger than 32767
* The following changes are required by POSIX:
  - If POSIXLY_CORRECT is set, dates in pr headers now look something like
    'Dec  4 23:59 2001', with the exact appearance affected by LC_TIME.
  - pr -h now affects only the center header string, not the entire header.
  - pr no longer truncates headers.
* Spacing in pr headers has been adjusted slightly.
* `fmt --prefix=S' now works when S contains a byte with the high bit set
* sort has improved performance when using very little main memory
* sort has improved memory management
* sort is no longer susceptible to certain denial of service attacks
* sort no longer suffers from a race condition whereby an interrupt received
    during cleanup could cause it to fail to remove temporary files.
    This problem could arise only on hosts without sigaction.
* tail avoids an uninitialized memory reference
* od now prints valid addresses for offsets of 2^32 and larger, and allows
    the byte offset (-j) and byte count (-N) arguments to be 2^32 and larger.
* tail now works with line and byte counts of 2^32 and larger, on systems
    with large file support
* join now works with an 8-bit delimiter
* od now supports 8-byte integers, assuming they're printable with e.g., %lld
* wc accepts new -m option: count (potentially multi-byte) characters
* wc's `--chars' option is now equivalent to -m, not --bytes as it used to be
* `cat -n' works properly when processing 2^31 or more lines
* tail: fix a buffer underrun error that occurred on an empty pipe,
  also thanks to bounded pointers
* pr: fix a bounds violation found by Greg McGary's bounded-pointers-enabled gcc
  It could have caused (with low probability) the columns on the last page of
  output *not* to be `balanced' when they should have been.
* sort: if the -T tmpdir option is given multiple times, all the given
  directories are used; this can improve performance for huge sort/merges.
* all programs fail when printing --help or --version output to a full device
* cut no longer gets a segfault under some circumstances
* `tail -f directory' no longer gets a failed assertion
* sort: big performance improvement when sorting many small files;
  from Charles Randall
* preliminary sort performance improvements
* tsort now works more like the traditional UNIX tsort.  Before it would
  exit when it found a loop.  Now it continues and outputs all items.
* unexpand no longer infloops on certain sequences of white space
* `tail --follow=name' no longer gets a failed assertion for a
  dev,inode-reusing race condition
* sort and comm no longer consider newlines to be part of the line,
  as this requirement will likely be removed from POSIX.2.
  This undoes some changes made for textutils 1.22m and 1.22n.
* tail's (short only) -f option no longer accepts an optional argument,
  so e.g., `tail -fn 2 file' works again.
* tail no longer refuses to operate on certain types of files
* fixed bug in tsort's handling of cycles

Attachment: pgpikO58CC0nC.pgp
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]