delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2017/03/06/11:29:38

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Message-Id: <201703061629.v26GTDa1032701@delorie.com>
Date: Mon, 06 Mar 2017 12:38:41 +0100
From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-announce AT delorie DOT com]" <djgpp-announce AT delorie DOT com>
To: djgpp-announce AT delorie DOT com
Subject: ANNOUNCE: DJGPP port of GNU grep 2.28 uploaded.
Reply-To: djgpp AT delorie DOT com

This is a port of GNU grep 2.28 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.
   =======================

   - The directory under inspection has two file descriptors associated to it.
     But when the directory is left only one of them is closed thus the pool of
     descriptors become exhausted if the directory tree contains more than 234
     (= 254 - 20) directories.  This produces then an error message like this:
       grep: dir1/dir2/foobar: Too many open files (EMFILE)
     This has been fixed by recording the descriptor that remains open and that
     now is closed when the directory is left.

   - On DOS, CWD is global, so the starting directory must be recorded, to be
     able to restore and return to it in case the program gets interrupted by
     SIGINT or similar.  To this purpose a signal catcher has been added.

   - The port has been tested by using it.  I have used it on WinXP only.
     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 and Win98SE using
     gcc630b and bnu227b.  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 does not provide NLS support.

   - The 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/pcre840b.zip
     if you decide to compile the the preconfigured sources.  If you prefer
     to disable the pcre support you will have to reconfigure and recompile
     the sources again, but this time passing the "no-pcre" command line
     option to config.bat.  The zip file contains only the one build with
     perl-regexp support enabled.
     I have tried to configure with pcr1021b but the configuration step failed,
     so that pcre840b has been used.


   While I have ported grep and the latest version of sed, I have noted that
   the support for non-posix operating systems has been partially removed or
   broken and the complete package has become even more posix centric.  This
   may have happened intentionaly or by incompetence.  In the very best case,
   the maintainers have only a cygwin installation and if the code can be
   compiled there it seems to be assumed that that is enough support for
   Windows-like operating systems.  It is clear that explicit DJGPP/MS-DOS
   support has expired but also the support for mingw seems to suffer from
   this disign politics.  But having some kind of Windows support in the code
   automaticaly generates also some amount of DOS/DJGPP support.  E.g.: taking
   care about O_BINARY/O_TEXT file issues, etc.
   The bottom line of all this is that a new version of a port does not need
   to be better than an old version of the same port.  I am maintaining a lot
   of ports and I do not have the time to follow all mailing lists to become
   aware of what "obsolete" feature they have decided to drop this time.
   Noting it and calling their attention to this issue is a fruitless operation
   so I do not do it at all.  But at least I can try to repair what they have
   removed if I note it.  Although this may not always be possible.  In that
   case we have reached the end of the DOS/DJGPP port for that particular GNU
   software.  Anyway most of the new features like multi-byte character support
   are not really relevant for DOS and not supported by DJGPP so that a serious
   user can life with an old port version.


   As usual, all djgpp specific files (diffs, README files, etc.) are stored in
   the /djgpp directory.  The sources have been configured to be build in the
   /_build directory.  If for some reason it does not work for you, delete its
   contents and configure from scratch again.

   For further information about GNU grep please read the info docs and NEWS file.



   This is a verbatim extract of the NEWS file (multi-byte specific features are
   not supported by the DJGPP port):

-------------------------------------------------------------------------------

* Noteworthy changes in release 2.28 (2017-02-06) [stable]

** Bug fixes

   When grep -Fo finds matches of differing length, it could
   mistakenly print a shorter one.  Now it prints a longest one.
   [bug introduced in grep-2.26]

   When standard output is /dev/null, grep no longer fails when
   standard input is a file in the Linux /proc file system, or when
   standard input is a pipe and standard output is in append mode.
   [bugs introduced in grep-2.27]

   Fix performance regression with multiple patterns, e.g., for -Fi in
   a multi-byte locale, or for -Fw in a single-byte locale.
   [bugs introduced in grep-2.19, grep-2.22 and grep-2.26]

** Improvements

   Improve performance for -E or -G pattern lists that are easily
   converted to -F format.


-------------------------------------------------------------------------------




   The port consists of the usual three packages produced using djdev205
   that can be downloaded from ftp.delorie.com and mirrors as (time stamp 2017-03-05):

     grep 2.28 binaries, info and man format documentation:
     ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/grep228b.zip

     grep 2.28 dvi, html, pdf and ps format documentation:
     ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/grep228d.zip

     grep 2.28 source:
     ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/grep228s.zip



   Send grep specific bug reports to <bug-grep AT gnu DOT org>.
   Send suggestions and bug reports concerning the DJGPP port to
   comp.os.msdos.djgpp or <djgpp AT delorie DOT com>.
   If you are not sure if the failure is really a grep failure
   or a djgpp specific failure, report it here and *not* to
   <bug-grep AT gnu DOT org>.

Enjoy.

     Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019