Message-Id: <201207090032.q690WJsb026094@delorie.com> From: Juan Manuel Guerrero To: djgpp-announce AT delorie DOT com Subject: ANNOUNCE: DJGPP port of GNU grep 2.13 uploaded. Date: Mon, 9 Jul 2012 00:42:21 +0200 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline This is a port of GNU grep 2.13 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. ======================= DJGPP specific changes are those required to implement colorization support for this port. If grep is called with the command line option --color and the output is directed to the screen then the default colors will be used to mark matches, file names and line numbers. If the output does not go to the screen then colorization is automatically suppressed. Read the docs to learn how to control the color using the environment variable GREP_COLORS. As usual all changes are documented in the diffs file that is stored in the /djgpp directory. Please note that to run the test suite produced with autoconf 2.64 and later you must install mktmp17br2 or later. Because the test suite also tries to test multibyte patterns but multibyte strings are not fully supported by DJGPP some tests will be skipped or fail. The yesno test is known to fail, so please do not report it. Before starting the testsuite, please make sure to unset the GREP_OPTIONS in djgpp.env or the testsuite may not work as expected. The grep program uses a new method called fts to traverse a file tree. This code is very posix centric, especially it uses gnulib functions like openat, openat-proc and fdopendir that try to access directories using file descriptors with open(). This is only supported by djdev204 but not by djdev203. This means that if grep is compiled using djdev203, the program will no longer be able neither to recurse directories nor will be able to follow symlinks. This is because djdev203 only produces symlinks for programs. In both cases grep will always terminated with ENOSYS. grep211 was probably the last DJGPP port of grep compiled with djdev203. This port has been configured with perl-regexp (pcre) support enabled. This means that you will have to install pcre libray available as: ftp://ftp.delorie.com/pub/djgpp/current/v2tk/pcre830b.zip or ftp://ftp.delorie.com/pub/djgpp/beta/v2tk/pcre830b.zip if you decide to compile the sources. If you prefer to disable the pcre support you will have to reconfigure and recompile the suorces again, but this time passing the "no-pcre" command line option to config.bat. The grep213b.zip file contains both versions of the grep program, the one build without perl-regexp support have the usual name and the one compiled with perl-regexp support is called greppcre.exe. You can install both versions or keep the one you prefer and delete the other one. This port has no wide character/multi byte support at all. To build this port and run the testsuite you will need LFN support. Please note that the testsuite also runs a lot of gnulib tests that will all fail. I have no intension to fix them. For further information about GNU grep please read the info docs and NEWS file. This is an verbatim extract of the NEWS file: ------------------------------------------------------------------------------- * Noteworthy changes in release 2.13 (2012-07-04) [stable] ** Bug fixes grep -i, in a multi-byte locale, when matching a line containing a character like the UTF-8 Turkish I-with-dot (U+0130) (whose lower-case representation occupies fewer bytes), would print an incomplete output line. Similarly, with a matched line containing a character (e.g., the Latin capital I in a Turkish UTF-8 locale), where the lower-case representation occupies more bytes, grep could print garbage. [bug introduced in grep-2.6] --include and --exclude can again be combined, and again apply to the command line, e.g., "grep --include='*.[ch]' --exclude='system.h' PATTERN *" again reads all *.c and *.h files except for system.h. [bug introduced in grep-2.6] ** New features 'grep' without -z now treats a sparse file as binary, if it can easily determine that the file is sparse. ** Dropped features Bootstrapping with Makefile.boot has been broken since grep 2.6, and was removed. ------------------------------------------------------------------------------- The port has been compiled using stock djdev203 (patchlevel 2) and consists of the usual three packages that can be downloaded from ftp.delorie.com and mirrors as (timestamp 2012-07-08): grep 2.13 binaries, info and man format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/grep213b.zip grep 2.13 dvi, html, pdf and ps format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/grep213d.zip grep 2.13 source: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/grep213s.zip The binaries have been produced a second time using the stock version of djdev204 beta library. This package is available at ftp.delorie.com and mirrors as (timestamp 2012-07-08): grep 2.13 binaries, info and man format documentation: ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/grep213b.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