Subject: bug#16417: closed (Re: bug#16417: --mmap: removing for good, now)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 27 Jan 2014 15:25:03 +0000

Your bug report

#16417: --mmap: removing for good, now

which was filed against the grep package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
16417: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16417
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#16417: --mmap: removing for good, now
From: Jim Meyering <[email-masked]>
To: [email-masked]
Date: Mon, 27 Jan 2014 07:24:18 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

On Sat, Jan 11, 2014 at 12:21 PM, Jim Meyering <[email-masked]> wrote:
> Disabled in early 2010, elicited a warning starting in Jan 2012.
> Now, I'm removing it altogether:

Pushed.

Subject: --mmap: removing for good, now
From: Jim Meyering <[email-masked]>
To: [email-masked]
Date: Sat, 11 Jan 2014 12:21:11 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Disabled in early 2010, elicited a warning starting in Jan 2012.
Now, I'm removing it altogether:
From 4de79eb6685c78ac1312bb527539a64dc93c0960 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[email-masked]>
Date: Sat, 11 Jan 2014 12:15:30 -0800
Subject: [PATCH] maint: remove vestiges of support for long-disabled --mmap
 option

This option was disabled in March of 2010, and began to elicit a
warning in January of 2012.  Its time has come.
* doc/grep.in.1: Remove mention.
* doc/grep.texi: Likewise.
* src/main.c (GROUP_SEPARATOR_OPTION, usage, MMAP_OPTION)
(long_options, main): Remove all traces.
* tests/Makefile.am (check_PROGRAMS): Remove mention of ignore-mmap.
* tests/ignore-mmap: Remove file.
* NEWS (Maintenance): Mention it.
---
 NEWS              |  5 +++++
 doc/grep.in.1     | 19 +------------------
 doc/grep.texi     |  9 ---------
 src/main.c        | 12 ++----------
 tests/Makefile.am |  1 -
 tests/ignore-mmap | 20 --------------------
 6 files changed, 8 insertions(+), 58 deletions(-)
 delete mode 100755 tests/ignore-mmap

diff --git a/NEWS b/NEWS
index 6e46684..97ee31b 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,11 @@ GNU grep NEWS                                    -*- outline -*-
   grep -i in a multibyte locale is now typically 10 times faster
   for patterns that do not contain \ or [.

+** Maintenance
+
+  grep's --mmap option was disabled in March of 2010, and began to
+  elicit a warning in January of 2012.  Now it is completely gone.
+

 * Noteworthy changes in release 2.16 (2014-01-01) [stable]

diff --git a/doc/grep.in.1 b/doc/grep.in.1
index d91de8c..58a6c0e 100644
--- a/doc/grep.in.1
+++ b/doc/grep.in.1
@@ -544,23 +544,6 @@ Follow all symbolic links, unlike
 Use line buffering on output.
 This can cause a performance penalty.
 .TP
-.B \-\^\-mmap
-If possible, use the
-.BR mmap (2)
-system call to read input, instead of
-the default
-.BR read (2)
-system call.
-In some situations,
-.B \-\^\-mmap
-yields better performance.
-However,
-.B \-\^\-mmap
-can cause undefined behavior (including core dumps)
-if an input file shrinks while
-.B grep
-is operating, or if an I/O error occurs.
-.TP
 .BR \-U ", " \-\^\-binary
 Treat the file(s) as binary.
 By default, under \s-1MS-DOS\s0 and \s-1MS\s0-Windows,
@@ -1219,7 +1202,7 @@ Back-references are very slow, and may require exponential time.
 .SS "Regular Manual Pages"
 awk(1), cmp(1), diff(1), find(1), gzip(1),
 perl(1), sed(1), sort(1), xargs(1), zgrep(1),
-mmap(2), read(2),
+read(2),
 pcre(3), pcresyntax(3), pcrepattern(3),
 terminfo(5),
 glob(7), regex(7).
diff --git a/doc/grep.texi b/doc/grep.texi
index 473a181..e32ab18 100644
--- a/doc/grep.texi
+++ b/doc/grep.texi
@@ -706,15 +706,6 @@ directory, recursively, following all symbolic links.
 Use line buffering on output.
 This can cause a performance penalty.

-@item --mmap
-@opindex --mmap
-@cindex memory mapped input
-This option is deprecated and now elicits a warning, but is otherwise a no-op.
-It used to make @command{grep} read
-input with the @code{mmap} system call, instead of the default @code{read}
-system call.  On modern systems, @code{mmap} would rarely if ever yield
-better performance.
-
 @item -U
 @itemx --binary
 @opindex -U
diff --git a/src/main.c b/src/main.c
index bfd0982..3f16061 100644
--- a/src/main.c
+++ b/src/main.c
@@ -288,8 +288,7 @@ enum
   LINE_BUFFERED_OPTION,
   LABEL_OPTION,
   EXCLUDE_DIRECTORY_OPTION,
-  GROUP_SEPARATOR_OPTION,
-  MMAP_OPTION
+  GROUP_SEPARATOR_OPTION
 };

 /* Long options equivalences. */
@@ -327,8 +326,6 @@ static struct option const long_options[] =
   {"line-regexp", no_argument, NULL, 'x'},
   {"max-count", required_argument, NULL, 'm'},

-  /* FIXME: disabled in Mar 2010; warn towards end of 2011; remove in 2013.  */
-  {"mmap", no_argument, NULL, MMAP_OPTION},
   {"no-filename", no_argument, NULL, 'h'},
   {"no-group-separator", no_argument, NULL, GROUP_SEPARATOR_OPTION},
   {"no-messages", no_argument, NULL, 's'},
@@ -1572,8 +1569,7 @@ Miscellaneous:\n\
   -s, --no-messages         suppress error messages\n\
   -v, --invert-match        select non-matching lines\n\
   -V, --version             print version information and exit\n\
-      --help                display this help and exit\n\
-      --mmap                deprecated no-op; evokes a warning\n"));
+      --help                display this help and exit\nn"));
       printf (_("\
 \n\
 Output control:\n\
@@ -2263,10 +2259,6 @@ main (int argc, char **argv)
         label = optarg;
         break;

-      case MMAP_OPTION:
-        error (0, 0, _("the --mmap option has been a no-op since 2010"));
-        break;
-
       case 0:
         /* long options */
         break;
diff --git a/tests/Makefile.am b/tests/Makefile.am
index a37a814..e2967fa 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -65,7 +65,6 @@ TESTS =						\
   grep-dev-null					\
   grep-dir					\
   help-version					\
-  ignore-mmap					\
   in-eq-out-infloop				\
   include-exclude				\
   inconsistent-range				\
diff --git a/tests/ignore-mmap b/tests/ignore-mmap
deleted file mode 100755
index 8c40868..0000000
--- a/tests/ignore-mmap
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-# Ensure that --mmap is ignored
-. "${srcdir=.}/init.sh"; path_prepend_ ../src
-
-echo a > in || framework_failure_
-fail=0
-
-echo grep: the --mmap option has been a no-op since 2010 > exp
-
-grep --mmap a in > out 2> err || fail=1
-compare out in || fail=1
-compare exp err || fail=1
-
-grep --mmap b in > out 2>err
-# Expect no match and no output.
-test $? = 1 || fail=1
-compare /dev/null out || fail=1
-compare exp err || fail=1
-
-Exit $fail
-- 
1.8.5.2.229.g4448466