Message-Id: <201506280348.t5S3mv6s025452@delorie.com> Date: Sun, 28 Jun 2015 03:35:03 +0200 From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de)" To: djgpp-announce AT delorie DOT com Subject: ANNOUNCE: Release 2 of the DJGPP port of GNU grep 2.21 uploaded (DJGPP 2.05 only). Content-Type: text/plain; charset=ISO-8859-15; format=flowed Reply-To: djgpp AT delorie DOT com This is a port of GNU grep 2.21 to MSDOS/DJGPP. This is GNU grep, the "fastest grep in the west". GNU grep is based on a fast lazy-state deterministic matcher (about twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper search for a fixed string that eliminates impossible text from being considered by the full regexp matcher without necessarily having to look at every character. The result is typically many times faster than Unix grep or egrep. (Regular expressions containing backreferencing will run more slowly, however.) DJGPP specific changes. ======================= - There are no DJGPP specific user visible changes. - This is the first port that has been compiled using djdev205. Starting with this port version I will no longer support neither djdev204 nor djdev203. - The port has been tested by using it. I have used them only on WinXP. It has worked flawlessly. I do not konw if this will ever be the case on FreeDOS. I have never used/tested them in that environment. - The port has been configured and compiled on WinXP SP3. There is no guarantee that this may be possible with any other DOS-like OS. Due to the massive use of long file names it will not be possible to configure and compile without LFN support. The port has been compiled using gcc510 and bnu225br2. - The port does neither provide NLS support nor pcre support. No one of the required libraries have been ported using DJGPP 2.05. As usual, all djgpp specific files (diffs, README files, etc.) are located in the /djgpp directory. The sources have been configured to be build in the /_build.205 directory. If for some reason it does not work for you, delete it contennts and configure from scratch again. For further information about GNU grep please read the info docs and NEWS file. This is an verbatim extract of the NEWS file (multi-byte specific features are not supported by the DJGPP port): ------------------------------------------------------------------------------- * Noteworthy changes in release 2.21 (2014-11-23) [stable] ** Improvements Performance has been greatly improved for searching files containing holes, on platforms where lseek's SEEK_DATA flag works efficiently. Performance has improved for rejecting data that cannot match even the first part of a nontrivial pattern. Performance has improved for very long strings in patterns. If a file contains data improperly encoded for the current locale, and this is discovered before any of the file's contents are output, grep now treats the file as binary. grep -P no longer reports an error and exits when given invalid UTF-8 data. Instead, it considers the data to be non-matching. ** Bug fixes grep no longer mishandles patterns that contain \w or \W in multibyte locales. grep would fail to count newlines internally when operating in non-UTF8 multibyte locales, leading it to print potentially many lines that did not match. E.g., the command, "seq 10 | env LC_ALL=zh_CN src/grep -n .." would print this: 1:1 2 3 4 5 6 7 8 9 10 implying that the match, "10" was on line 1. [bug introduced in grep-2.19] grep -F -x -o no longer prints an extra newline for each match. [bug introduced in grep-2.19] grep in a non-UTF8 multibyte locale could mistakenly match in the middle of a multibyte character when using a '^'-anchored alternate in a pattern, leading it to print non-matching lines. [bug present since "the beginning"] grep -F Y no longer fails to match in non-UTF8 multibyte locales like Shift-JIS, when the input contains a 2-byte character, XY, followed by the single-byte search pattern, Y. grep would find the first, middle- of-multibyte matching "Y", and then mistakenly advance an internal pointer one byte too far, skipping over the target "Y" just after that. [bug introduced in grep-2.19] grep -E rejected unmatched ')', instead of treating it like '\)'. [bug present since "the beginning"] On NetBSD, grep -r no longer reports "Inappropriate file type or format" when refusing to follow a symbolic link. [bug introduced in grep-2.12] ** Changes in behavior The GREP_OPTIONS environment variable is now obsolescent, and grep now warns if it is used. Please use an alias or script instead. In locales with multibyte character encodings other than UTF-8, grep -P now reports an error and exits instead of misbehaving. When searching binary data, grep now may treat non-text bytes as line terminators. This can boost performance significantly. grep -z no longer automatically treats the byte '\200' as binary data. ------------------------------------------------------------------------------- The port consists of the usual three packages produced using djdev205 that can be downloaded from ftp.delorie.com and mirrors as (time tamp 2015-06-27): grep 2.21 binaries, info and man format documentation: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/grep221br2.zip grep 2.21 dvi, html, pdf and ps format documentation: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/grep221dr2.zip grep 2.21 source: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/grep221sr2.zip Send grep specific bug reports to . Send suggestions and bug reports concerning the DJGPP port to comp.os.msdos.djgpp or . If you are not sure if the failure is really a grep failure or a djgpp specific failure, report it here and *not* to . Enjoy. Guerrero, Juan Manuel