From unknown Mon Jun 23 23:54:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#26193: [0-9] versus [[:digit:]] Resent-From: "John P. Linderman" Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 20 Mar 2017 17:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 26193 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: 26193@debbugs.gnu.org X-Debbugs-Original-To: bug-grep@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.149002919317144 (code B ref -1); Mon, 20 Mar 2017 17:00:02 +0000 Received: (at submit) by debbugs.gnu.org; 20 Mar 2017 16:59:53 +0000 Received: from localhost ([127.0.0.1]:36556 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cq0eu-0004SR-Qn for submit@debbugs.gnu.org; Mon, 20 Mar 2017 12:59:53 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44918) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cpzK3-0002TA-UP for submit@debbugs.gnu.org; Mon, 20 Mar 2017 11:34:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cpzJx-0005hn-Lt for submit@debbugs.gnu.org; Mon, 20 Mar 2017 11:34:10 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:60088) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cpzJx-0005hi-Iu for submit@debbugs.gnu.org; Mon, 20 Mar 2017 11:34:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35887) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpzJw-0003tm-2c for bug-grep@gnu.org; Mon, 20 Mar 2017 11:34:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cpzJu-0005hD-Rc for bug-grep@gnu.org; Mon, 20 Mar 2017 11:34:08 -0400 Received: from mail-oi0-x22a.google.com ([2607:f8b0:4003:c06::22a]:34030) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cpzJu-0005h2-MF for bug-grep@gnu.org; Mon, 20 Mar 2017 11:34:06 -0400 Received: by mail-oi0-x22a.google.com with SMTP id w81so24105801oig.1 for ; Mon, 20 Mar 2017 08:34:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=j8Rq4Q9EYiiz4pz8tnXoTAaUfb8Or0ucwkKQ3CzCKn4=; b=jzAheh+ESZitPMm55H2i8gIIgJlHUVDqpHKk/OiOZvhN/o+68p7Dhil7iNWNPch5h7 zY6ZaAkFqPrZekHxoMNG1nKV8FzvCTqDoJV0Je5++DpqGy4kT5ylZa6D0NLqm574A049 QYaCyeM6XooQuxaM4VNWaJS1a5/ah6svpJFWc3Qs6b/CKjAEZAnXGJTGhUIQwPiWfb/d RYNcjK+V+BoDLvc56PNtbIUOvC1Hz27rsm3O8QQvOFJJDblKXyTiD+ZqsXiIh6k9AbNi 6OdIAAzOVj5aGeNmta2ta5VMWhU6eqZ7cnNuNWTRWWNjOzrrsDGYO680iNvgErtPUf8f 73gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=j8Rq4Q9EYiiz4pz8tnXoTAaUfb8Or0ucwkKQ3CzCKn4=; b=qu84GiW+sKETRcb/VH/MEV7LLR/7H43VyTk5s58WnGjw2ogdc/lDCFfvbNv7dGCIhc 2E5sjMjnQSZ8oNV4H+PvOwBydnNe+g4ZsxPQAO3mQ+eBXtNO565S/sezaWL8ZIpDOGJK YQNueZmSYkQ/ggIVkCtCxqDFsSM1p3Qb3ot+Hg0Qr9VNaNFDCyNnqIgMHzU0Ka3F5Mxa 4YVZUYGKnvISi3MkEQ2TD302DKTulHV3RZerV9ViX912MN1ZGN1B3tswZoCT6jlwWu0F rQQRw17QV2mz17Zo5+gWcttDsTZPXsgJqppFYbIivnwh66UFEuKtfBLDcCET8JkZ3BdA PHrA== X-Gm-Message-State: AFeK/H0KFJFvT9Irj4MECF/jqqNBh9GpYzrotRtnBjIIm80BdEYg6rxjWLZtosB90+qyre9fBHQDvoTWXNZ8sQ== X-Received: by 10.202.241.131 with SMTP id p125mr14199976oih.106.1490024045504; Mon, 20 Mar 2017 08:34:05 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.4.1 with HTTP; Mon, 20 Mar 2017 08:34:05 -0700 (PDT) From: "John P. Linderman" Date: Mon, 20 Mar 2017 11:34:05 -0400 Message-ID: Content-Type: multipart/alternative; boundary=94eb2c095ed4f06cc0054b2b4187 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Mailman-Approved-At: Mon, 20 Mar 2017 12:59:51 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --94eb2c095ed4f06cc0054b2b4187 Content-Type: text/plain; charset=UTF-8 In what follows, file "conjectures" is a 6 billion bytes file in which each line contains at most one letter P, and few (see output) have a digit following a P. "rusage" is just a home-brew resource usage summary command. rusage egrep 'P[0-9]' conjectures > xxx 695.55 real 688.33 user 2.40 sys 0 pf 186 pr 0 sw 0 rb 8 wb 1 vcx 19206 icx 2488 mx 0 ix 0 id 0 is cat xxx A[21]=11{11}:22 xxx 14.88 real 13.36 user 1.43 sys 0 pf 186 pr 0 sw 0 rb 8 wb 0 vcx 516 icx 2500 mx 0 ix 0 id 0 is cat xxx A[21]=11{11}:22. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Mike Haertel and others, see . uname -a Linux jpl 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux --94eb2c095ed4f06cc0054b2b4187 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
In what follows, file "conjectures" is a 6 billi= on bytes file in which each line contains at most one letter P, and few (se= e output) have a digit following a P. "rusage" is just a home-bre= w resource usage summary command.

=C2=A0 rusage egrep 'P[0-9]' conjectures > xx= x =C2=A0 =C2=A0=C2=A0
= 695.55 real 688.33 user 2.40 sys 0 pf 186 pr 0 sw 0 rb 8 wb 1 vcx 19206 icx= 2488 mx 0 ix 0 id 0 is

=C2=A0 cat xxx
A[21]=3D11{11}:22<LP3

=C2=A0 rusage egrep 'P[[:digit:]]' conj= ectures > xxx
14.88= real 13.36 user 1.43 sys 0 pf 186 pr 0 sw 0 rb 8 wb 0 vcx 516 icx 2500 mx = 0 ix 0 id 0 is

=C2=A0 cat xxx
A[21]=3D11{11}:22<LP3

Using what = is to me the more obvious [0-9] pattern takes almost 50 times as long as us= ing the [[:digit:]] pattern. Seems very strange.

<= div>=C2=A0 grep --version
<= div>grep (GNU grep) 2.25
Copyright (C) 2016 Free Software Fou= ndation, Inc.
License = GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: = you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.=

Written by Mike Haertel and others, se= e <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.<= /font>

= =C2=A0 uname -a
Linux jpl 4.4.0-66-generic #87-Ubuntu SMP Fri= Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
<= div>



=
--94eb2c095ed4f06cc0054b2b4187-- From unknown Mon Jun 23 23:54:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#26193: [0-9] versus [[:digit:]] Resent-From: Jim Meyering Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 20 Mar 2017 19:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26193 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: "John P. Linderman" Cc: 26193@debbugs.gnu.org Received: via spool by 26193-submit@debbugs.gnu.org id=B26193.14900394211187 (code B ref 26193); Mon, 20 Mar 2017 19:51:02 +0000 Received: (at 26193) by debbugs.gnu.org; 20 Mar 2017 19:50:21 +0000 Received: from localhost ([127.0.0.1]:36702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cq3Jt-0000J4-Ck for submit@debbugs.gnu.org; Mon, 20 Mar 2017 15:50:21 -0400 Received: from mail-vk0-f46.google.com ([209.85.213.46]:33772) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cq3Jr-0000Is-4R for 26193@debbugs.gnu.org; Mon, 20 Mar 2017 15:50:20 -0400 Received: by mail-vk0-f46.google.com with SMTP id d188so76013207vka.0 for <26193@debbugs.gnu.org>; Mon, 20 Mar 2017 12:50:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=X2fd0Pir89F/YXed4RQtRzJ587YKwxLAy6V/URIO9Gw=; b=PHjYtvKEf1e97XAnqVZ9NZ1F2hbC5IDt8hDlAbDb7jqdjcrPjdZf8IBB32pJR30W8j i2LViA+Bul8xomb/HlW/gaMluHOR4p+IC56yCubomXUcTS2Y3xWXAKysjtcrCQ2kNvAE 6C8d4iirVkElafeXB1VUNPX+E+0trg/lNB1hliAwChAfWCCDTu8bDq4N0mR9JZQvCvqs wwgEmJ9ehZqOYiqOBiLv1wRytalF+itHbnL+g3dQ5iR45lX64WeXiXsn98nESmWirB+u hUuPxaaDA5bCPY4MQBxp/cCEazf5ze/XWCMyScChgRGx8TUyOpis0VsTGBnmdSGD9pmR KnUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=X2fd0Pir89F/YXed4RQtRzJ587YKwxLAy6V/URIO9Gw=; b=bsX4v1u4Ls1irSDUJePF35vzU5FXvAAebZMFs7cFuU/ta2BgJTzfV1np+M+Cf2Su1i mhucdRK/cwJ0FQCO/PKvrE8pZ467hSt8+ixCd4DTN+s6DnRo6wPBOZBvXyAMwyHC5Yyc QHjFLUiAoPFBUVELFXK3Stvvxjfc//Vt1dG1CgK9dKAkQPduWz5gM5GSkXiMlq8Bw0jZ N1QDiNcOAL38WW8ajYCBR7cbDPQ8+0nh5uVz+m13S9xrq/LjjdRijYbt5LI8ynVIrk6/ ZQv2lmIRvp0fe/SVFB418lKgW73HB317cZK3l/ujYlRrPra2juVrHZPl5WMwBRxD4Nc+ RTyA== X-Gm-Message-State: AFeK/H2souF86Njx7tHqJ5EpWExuT7vxJyyyL1ss1GfN0noPLFNWNTf4L8wf2oAwT7Rsrq2cxVPSEm8OYkpxwQ== X-Received: by 10.31.236.6 with SMTP id k6mr10374910vkh.144.1490039413199; Mon, 20 Mar 2017 12:50:13 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.59.41 with HTTP; Mon, 20 Mar 2017 12:49:52 -0700 (PDT) In-Reply-To: References: From: Jim Meyering Date: Mon, 20 Mar 2017 12:49:52 -0700 X-Google-Sender-Auth: o2US8XsCU6vn58dlo1MiQoanRb8 Message-ID: Content-Type: text/plain; charset=UTF-8 X-Spam-Score: 0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.7 (/) tags 26193 moreinfo done On Mon, Mar 20, 2017 at 8:34 AM, John P. Linderman wrote: > In what follows, file "conjectures" is a 6 billion bytes file in which each > line contains at most one letter P, and few (see output) have a digit > following a P. "rusage" is just a home-brew resource usage summary command. > > rusage egrep 'P[0-9]' conjectures > xxx > 695.55 real 688.33 user 2.40 sys 0 pf 186 pr 0 sw 0 rb 8 wb 1 vcx 19206 icx > 2488 mx 0 ix 0 id 0 is > > cat xxx > A[21]=11{11}:22 > rusage egrep 'P[[:digit:]]' conjectures > xxx > 14.88 real 13.36 user 1.43 sys 0 pf 186 pr 0 sw 0 rb 8 wb 0 vcx 516 icx > 2500 mx 0 ix 0 id 0 is > > cat xxx > A[21]=11{11}:22 > Using what is to me the more obvious [0-9] pattern takes almost 50 times as > long as using the [[:digit:]] pattern. Seems very strange. ... Thank you for the report. However, there have been numerous improvements since grep-2.25, which was released nearly a year ago. The latest is grep-3.0, and using it, I am unable to reproduce the problem on an input of 333M lines, each of length 19, and ending in "P": $ yes 'A[21]=11{11}:22 /dev/shm/k $ env time grep 'P[0-9]' /dev/shm/k 7.84user 2.06system 0:09.90elapsed 100%CPU (0avgtext+0avgdata 2008maxresident)k 0inputs+0outputs (0major+97minor)pagefaults 0swaps [Exit 1] $ env time grep 'P[[:digit:]]' /dev/shm/k 7.86user 1.96system 0:09.83elapsed 99%CPU (0avgtext+0avgdata 2004maxresident)k 0inputs+0outputs (0major+97minor)pagefaults 0swaps [Exit 1] From unknown Mon Jun 23 23:54:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#26193: [0-9] versus [[:digit:]] Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Wed, 22 Mar 2017 02:10:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26193 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: "John P. Linderman" , 26193@debbugs.gnu.org Cc: Gnulib bugs Received: via spool by 26193-submit@debbugs.gnu.org id=B26193.149014859216894 (code B ref 26193); Wed, 22 Mar 2017 02:10:01 +0000 Received: (at 26193) by debbugs.gnu.org; 22 Mar 2017 02:09:52 +0000 Received: from localhost ([127.0.0.1]:38488 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqVii-0004OQ-Av for submit@debbugs.gnu.org; Tue, 21 Mar 2017 22:09:52 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:34536) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqVif-0004OB-H3 for 26193@debbugs.gnu.org; Tue, 21 Mar 2017 22:09:50 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 7217016004E; Tue, 21 Mar 2017 19:09:43 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id ENeVAAaDR_d4; Tue, 21 Mar 2017 19:09:42 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 3F30B16008C; Tue, 21 Mar 2017 19:09:42 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id P9Gh-q7biBcC; Tue, 21 Mar 2017 19:09:42 -0700 (PDT) Received: from [192.168.1.9] (unknown [47.153.188.248]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 14D9216004E; Tue, 21 Mar 2017 19:09:42 -0700 (PDT) References: From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <9b8602c0-1a55-5b51-657f-24e46485c9db@cs.ucla.edu> Date: Tue, 21 Mar 2017 19:09:41 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------1DCADA5F810CB6BC56BE19E6" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) This is a multi-part message in MIME format. --------------1DCADA5F810CB6BC56BE19E6 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit John P. Linderman wrote: > Using what is to me the more obvious [0-9] pattern takes almost 50 times as > long as using the [[:digit:]] pattern. Seems very strange. Thanks for reporting that. In general, patterns like [a-z] can be much slower than [[:lower:]] due to poorly-thought-out POSIX interfaces. However, [0-9] is a special case: we can optimize such patterns safely if both ends are ASCII digits. I installed the attached patch to Gnulib to do that; it fixes the performance glitch you noticed, at least for me. --------------1DCADA5F810CB6BC56BE19E6 Content-Type: text/x-diff; name="0001-dfa-make-0-9-faster-in-non-C-locales.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0001-dfa-make-0-9-faster-in-non-C-locales.patch" >From 6afba02d7869d39ed7f61981045ddbdcb2814101 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 21 Mar 2017 19:05:17 -0700 Subject: [PATCH] dfa: make [0-9] faster in non-C locales Problem reported by John P. Linderman (Bug#26193). * lib/dfa.c (parse_bracket_exp): Remove redundant assignment. If both ends of the range are ASCII digits, do not worry about multi-character collating sequences and the like. Be consistent about using isalpha as a precondition for setbit_case_fold_c. --- ChangeLog | 9 +++++++++ lib/dfa.c | 35 ++++++++++++----------------------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/ChangeLog b/ChangeLog index 625f007..33bd6a1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2017-03-21 Paul Eggert + + dfa: make [0-9] faster in non-C locales + Problem reported by John P. Linderman (Bug#26193). + * lib/dfa.c (parse_bracket_exp): Remove redundant assignment. + If both ends of the range are ASCII digits, do not worry about + multi-character collating sequences and the like. Be consistent + about using isalpha as a precondition for setbit_case_fold_c. + 2017-03-19 Bruno Haible lock: Fix compilation error with HP-UX IA64 cc. diff --git a/lib/dfa.c b/lib/dfa.c index 5bac288..e97dae1c 100644 --- a/lib/dfa.c +++ b/lib/dfa.c @@ -551,8 +551,9 @@ struct dfa bool, size_t *, bool *); /* The locale is simple, like the C locale. These locales can be - processed more efficiently, e.g., the relationship between lower- - and upper-case letters is 1-1. */ + processed more efficiently, as they are single-byte, their native + character set is in collating-sequence order, and they do not + have multi-character collating elements. */ bool simple_locale; /* Other cached information derived from the locale. */ @@ -1012,7 +1013,6 @@ parse_bracket_exp (struct dfa *dfa) if (invert) { c = bracket_fetch_wc (dfa); - invert = true; known_bracket_exp = dfa->simple_locale; } wint_t wc = dfa->lex.wctok; @@ -1143,24 +1143,14 @@ parse_bracket_exp (struct dfa *dfa) /* Treat [x-y] as a range if x != y. */ if (wc != wc2 || wc == WEOF) { - if (dfa->localeinfo.multibyte) - known_bracket_exp = false; - else if (dfa->simple_locale) + if (dfa->simple_locale + || (isasciidigit (c) & isasciidigit (c2))) { - int ci; - for (ci = c; ci <= c2; ci++) - setbit (ci, &ccl); - if (dfa->syntax.case_fold) - { - int uc = toupper (c); - int uc2 = toupper (c2); - for (ci = 0; ci < NOTCHAR; ci++) - { - int uci = toupper (ci); - if (uc <= uci && uci <= uc2) - setbit (ci, &ccl); - } - } + for (int ci = c; ci <= c2; ci++) + if (dfa->syntax.case_fold && isalpha (ci)) + setbit_case_fold_c (ci, &ccl); + else + setbit (ci, &ccl); } else known_bracket_exp = false; @@ -1174,7 +1164,7 @@ parse_bracket_exp (struct dfa *dfa) if (!dfa->localeinfo.multibyte) { - if (dfa->syntax.case_fold) + if (dfa->syntax.case_fold && isalpha (c)) setbit_case_fold_c (c, &ccl); else setbit (c, &ccl); @@ -1209,7 +1199,7 @@ parse_bracket_exp (struct dfa *dfa) if (! known_bracket_exp) return BACKREF; - if (dfa->localeinfo.multibyte) + if (dfa->localeinfo.multibyte && (invert || dfa->lex.brack.nchars != 0)) { dfa->lex.brack.invert = invert; dfa->lex.brack.cset = emptyset (&ccl) ? -1 : charclass_index (dfa, &ccl); @@ -1218,7 +1208,6 @@ parse_bracket_exp (struct dfa *dfa) if (invert) { - assert (!dfa->localeinfo.multibyte); notset (&ccl); if (dfa->syntax.syntax_bits & RE_HAT_LISTS_NOT_NEWLINE) clrbit ('\n', &ccl); -- 2.7.4 --------------1DCADA5F810CB6BC56BE19E6-- From unknown Mon Jun 23 23:54:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#26193: [0-9] versus [[:digit:]] Resent-From: Jim Meyering Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Wed, 22 Mar 2017 04:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26193 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Paul Eggert Cc: "John P. Linderman" , 26193@debbugs.gnu.org, Gnulib bugs Received: via spool by 26193-submit@debbugs.gnu.org id=B26193.14901569133712 (code B ref 26193); Wed, 22 Mar 2017 04:29:01 +0000 Received: (at 26193) by debbugs.gnu.org; 22 Mar 2017 04:28:33 +0000 Received: from localhost ([127.0.0.1]:38549 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqXsv-0000xn-5V for submit@debbugs.gnu.org; Wed, 22 Mar 2017 00:28:33 -0400 Received: from mail-vk0-f67.google.com ([209.85.213.67]:33884) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqXst-0000xb-9p for 26193@debbugs.gnu.org; Wed, 22 Mar 2017 00:28:31 -0400 Received: by mail-vk0-f67.google.com with SMTP id y16so9085213vky.1 for <26193@debbugs.gnu.org>; Tue, 21 Mar 2017 21:28:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=hweXzYEbt1CG9OQP/duUto3sQhqcsjDJBYryqwle3AQ=; b=q6kyAkw6nGqB/hkcnHcNtvA3+QXMwG9KBSxS0U2OKjyvCbDIzBMJay9n7E+DL2z1MZ D1d2Qz8/sKkmK3diqNAw4XGx2ssFjmRH2ULMWcBlqYCE6nd70QthgtuMSW572N2uSjX5 etbSnGkTk38NiUoO5KuWGN134zaBtEZ9WoE6uGnly4Ymf8/lYFDdhOZZY2nznNZ3U0ej osgHWOZn3oS0iwkUZuB1tH/zWHLZSUUI8QlU3bj7B4j0Xh6+HA3sv0d2HYLowlgfKnnY PiBYeb8MRVyEP6PyHN69c66VJZ/5f92/nP3S/Srq3y+WnO4Xz1mWUWv1hoN+jygJ6FAJ 7wYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=hweXzYEbt1CG9OQP/duUto3sQhqcsjDJBYryqwle3AQ=; b=YTPJ3TtY1Q0iYQ+lt9j08dg7z9E1Mc8QlnvpJO1e7WlOo2SCYEmCe9RNOGP31dLJUc OxiIJw2esXG0kQbVydR6DjM8JbHxWu2s5/RrvWrwzEV1Me6zv+5D4K88MjedpRp73Q0u MwqsRcJMy8N+OEG0X+8DtHkVQunQZJOHpzweraiT/ySqUXb8WABSbIw1r/eHAaxY0v4W uT/skx4Cl1d7JMLDxn+7MpF10Qq1U10YLc6gScKEDxtmlQdmhTumWabZB2hr9rDBvvgi nKLojt9a+BrjffkkqCgulA3ACew/gQ4W8NziY/INI4zt+/0J6vqqXKmrmoEpQHvCrIIR 5ksg== X-Gm-Message-State: AFeK/H2TedRIqPKjK3aT2iZ/FYUuhiOwlWLMvYtUOWx4K+i8VPuv2ua5iHiUgJKRX7YzOe2f+31CuMc8Z0eYRg== X-Received: by 10.31.51.12 with SMTP id z12mr11423545vkz.69.1490156905536; Tue, 21 Mar 2017 21:28:25 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.59.41 with HTTP; Tue, 21 Mar 2017 21:28:05 -0700 (PDT) In-Reply-To: <9b8602c0-1a55-5b51-657f-24e46485c9db@cs.ucla.edu> References: <9b8602c0-1a55-5b51-657f-24e46485c9db@cs.ucla.edu> From: Jim Meyering Date: Tue, 21 Mar 2017 21:28:05 -0700 X-Google-Sender-Auth: vLD2d50EClP28WfbX-h6NtagOaw Message-ID: Content-Type: text/plain; charset=UTF-8 X-Spam-Score: 0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.7 (/) On Tue, Mar 21, 2017 at 7:09 PM, Paul Eggert wrote: > John P. Linderman wrote: >> >> Using what is to me the more obvious [0-9] pattern takes almost 50 times >> as >> long as using the [[:digit:]] pattern. Seems very strange. > > > Thanks for reporting that. In general, patterns like [a-z] can be much > slower than [[:lower:]] due to poorly-thought-out POSIX interfaces. However, > [0-9] is a special case: we can optimize such patterns safely if both ends > are ASCII digits. I installed the attached patch to Gnulib to do that; it > fixes the performance glitch you noticed, at least for me. Thank you, Paul. I confirmed that that solves it for me, too, with a multibyte locale. I didn't reproduce it initially because I was using LC_ALL=C. From unknown Mon Jun 23 23:54:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#26193: [0-9] versus [[:digit:]] Resent-From: "John P. Linderman" Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Wed, 22 Mar 2017 12:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26193 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Jim Meyering Cc: 26193@debbugs.gnu.org, Paul Eggert , Gnulib bugs Received: via spool by 26193-submit@debbugs.gnu.org id=B26193.149018667124366 (code B ref 26193); Wed, 22 Mar 2017 12:45:02 +0000 Received: (at 26193) by debbugs.gnu.org; 22 Mar 2017 12:44:31 +0000 Received: from localhost ([127.0.0.1]:38760 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqfct-0006Ku-AJ for submit@debbugs.gnu.org; Wed, 22 Mar 2017 08:44:31 -0400 Received: from mail-ot0-f171.google.com ([74.125.82.171]:36381) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqfcr-0006Ki-Tn for 26193@debbugs.gnu.org; Wed, 22 Mar 2017 08:44:30 -0400 Received: by mail-ot0-f171.google.com with SMTP id i1so168848194ota.3 for <26193@debbugs.gnu.org>; Wed, 22 Mar 2017 05:44:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=eFXAptpXQXYOZYn8FhQP0pjc7lQczpTA8Yxs21yYLAw=; b=GnLuc+EZCpVA4/OcXL0owK9J1Efa5NhVZJYyaqehOuPPW6StwUcOlDnK2bfu462H8E XgJ4qmYLlsCVnNegRQgw0d943lvv9oKLM1yPt/3sSi8Y8xXDNgUdAQoklcjXqf5JmU3s T0FnLteDM38hjoIUx6NAJkB/XKhQDESfDkXXEWRyU5gE18TbzzHKqnerdR/C9vI7rrbb DJEj+a7MzSYSWJYkUfmfUsrA531f92jXH9NvY2ywoAzYOx8BpOEiYsQgudenVVvNGE5U UQ0ZlB8X4Koi7XWWQ5OW3GH7J7WVBdBDzsTDux4RpyuiYfOtdlkpEz81zhngFjw2yALO tG9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=eFXAptpXQXYOZYn8FhQP0pjc7lQczpTA8Yxs21yYLAw=; b=tZVyBVK4BrxzbWBPF2MoGFRs2B6riRi+r5m+W+oH/AhzpzzeWaDFdPZ9A5GBzNA3CF iqWgLgNZ82lNWw6X+QzphcHUpZlf70RFaV/S55tr8zUDXuGcHCM1EAvl9bjh3aQ89aVR kn2Fs5+uz9MKtkn1oFRzFnBiHXJFLo0l+BxMUcfSadBpymhvztrop4VckgI1SASPXuIJ gNCYXppRZnjrxf8GN+jxMLn9RY5A6VA8wjA8Avx9QoXt4esbPiOneCKCDrUtOQgjwAxn ymxZf8l4i9DA6dxFCoqc8KoIZX/fVC1kVCQMUQTdj7gLi3JN2g2m06AAtQhTAj9fciPB 5DFg== X-Gm-Message-State: AFeK/H3tLEVmBQFgJQNW8zu2GD4g6XFptVit803l3J8DnNKkC763IeEEsIsh1i47Gag1tywLsUr99isvfOhEUA== X-Received: by 10.157.48.193 with SMTP id r1mr20222810otg.151.1490186664197; Wed, 22 Mar 2017 05:44:24 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.4.1 with HTTP; Wed, 22 Mar 2017 05:44:23 -0700 (PDT) In-Reply-To: References: <9b8602c0-1a55-5b51-657f-24e46485c9db@cs.ucla.edu> From: "John P. Linderman" Date: Wed, 22 Mar 2017 08:44:23 -0400 Message-ID: Content-Type: multipart/alternative; boundary=f40304379954c4c2fd054b511ebd X-Spam-Score: 0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) --f40304379954c4c2fd054b511ebd Content-Type: text/plain; charset=UTF-8 Thanks, all. That puts the runtimes on equal footing: + wc conjectures 125441818 125441818 6249180939 conjectures + rusage /home/jpl/src/grep-3.0/src/grep P[[:digit:]] conjectures A[21]=11{11}:22 wrote: > On Tue, Mar 21, 2017 at 7:09 PM, Paul Eggert wrote: > > John P. Linderman wrote: > >> > >> Using what is to me the more obvious [0-9] pattern takes almost 50 times > >> as > >> long as using the [[:digit:]] pattern. Seems very strange. > > > > > > Thanks for reporting that. In general, patterns like [a-z] can be much > > slower than [[:lower:]] due to poorly-thought-out POSIX interfaces. > However, > > [0-9] is a special case: we can optimize such patterns safely if both > ends > > are ASCII digits. I installed the attached patch to Gnulib to do that; it > > fixes the performance glitch you noticed, at least for me. > > Thank you, Paul. I confirmed that that solves it for me, too, with a > multibyte locale. I didn't reproduce it initially because I was using > LC_ALL=C. > --f40304379954c4c2fd054b511ebd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Thanks, all. That puts the runtimes on equal footing:
=
+ wc conjectures
=C2=A0125441818 =C2=A0125441= 818 6249180939 conjectures
+ rusage /home/jpl/src/grep-3.0/src/gr= ep P[[:digit:]] conjectures
A[21]=3D11{11}:22<LP3
5.= 85 real 5.14 user 0.70 sys 0 pf 118 pr 0 sw 0 rb 0 wb 1 vcx 11 icx 2420 mx = 0 ix 0 id 0 is
+ rusage /home/jpl/src/grep-3.0/src/grep P[[:digit= :]] conjectures
A[21]=3D11{11}:22<LP3
5.77 real 5.10= user 0.67 sys 0 pf 121 pr 0 sw 0 rb 0 wb 1 vcx 7 icx 2492 mx 0 ix 0 id 0 i= s
+ rusage /home/jpl/src/grep-3.0/src/grep P[0-9] conjectures
A[21]=3D11{11}:22<LP3
5.80 real 5.15 user 0.62 sys 0 pf= 119 pr 0 sw 0 rb 0 wb 1 vcx 1001 icx 2424 mx 0 ix 0 id 0 is


On Wed, Mar 22, 2017 at 12:28 AM, Jim Meyering <jim@meyering.net> wrote:
On Tue, Mar 21, 2017 at 7:09 PM, Paul Eggert <eggert@cs.ucla.edu> wrote:
> John P. Linderman wrote:
>>
>> Using what is to me the more obvious [0-9] pattern takes almost 50= times
>> as
>> long as using the [[:digit:]] pattern. Seems very strange.
>
>
> Thanks for reporting that. In general, patterns like [a-z] can be much=
> slower than [[:lower:]] due to poorly-thought-out POSIX interfaces. Ho= wever,
> [0-9] is a special case: we can optimize such patterns safely if both = ends
> are ASCII digits. I installed the attached patch to Gnulib to do that;= it
> fixes the performance glitch you noticed, at least for me.

Thank you, Paul. I confirmed that that solves it for me, too, w= ith a
multibyte locale. I didn't reproduce it initially because I was using LC_ALL=3DC.

--f40304379954c4c2fd054b511ebd-- From unknown Mon Jun 23 23:54:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#26193: [0-9] versus [[:digit:]] Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Wed, 22 Mar 2017 18:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26193 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: "John P. Linderman" , Jim Meyering Cc: 26193@debbugs.gnu.org, Gnulib bugs Received: via spool by 26193-submit@debbugs.gnu.org id=B26193.149020571428542 (code B ref 26193); Wed, 22 Mar 2017 18:02:02 +0000 Received: (at 26193) by debbugs.gnu.org; 22 Mar 2017 18:01:54 +0000 Received: from localhost ([127.0.0.1]:39715 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqka1-0007QI-RA for submit@debbugs.gnu.org; Wed, 22 Mar 2017 14:01:54 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:51730) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqkZz-0007Q2-Ka for 26193@debbugs.gnu.org; Wed, 22 Mar 2017 14:01:52 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id B0E4A160069; Wed, 22 Mar 2017 11:01:44 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 2fOzb9FXgXzh; Wed, 22 Mar 2017 11:01:44 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 13C78160064; Wed, 22 Mar 2017 11:01:44 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id pa73WEs3aBUS; Wed, 22 Mar 2017 11:01:43 -0700 (PDT) Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id ED25F160069; Wed, 22 Mar 2017 11:01:43 -0700 (PDT) References: <9b8602c0-1a55-5b51-657f-24e46485c9db@cs.ucla.edu> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <26f8e9ca-a632-e382-ee6d-018b6a6001c1@cs.ucla.edu> Date: Wed, 22 Mar 2017 11:01:43 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) On 03/22/2017 05:44 AM, John P. Linderman wrote: > That puts the runtimes on equal footing: > In my measurements, P[0-9] is still a tiny bit slower if one is using glibc regex, due to a performance problem in glibc. You can work around it by configuring --with-included-regex. It's probably not worth worrying about, though. By the way, using LC_ALL=C should help avoid performance problems like these in the future, if all you're doing is something where single-byte pattern matching suffices. From unknown Mon Jun 23 23:54:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#26193: [0-9] versus [[:digit:]] Resent-From: "John P. Linderman" Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Wed, 22 Mar 2017 21:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26193 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Paul Eggert Cc: 26193@debbugs.gnu.org, Gnulib bugs , Jim Meyering Received: via spool by 26193-submit@debbugs.gnu.org id=B26193.149021992718081 (code B ref 26193); Wed, 22 Mar 2017 21:59:02 +0000 Received: (at 26193) by debbugs.gnu.org; 22 Mar 2017 21:58:47 +0000 Received: from localhost ([127.0.0.1]:39852 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqoHH-0004hY-Ey for submit@debbugs.gnu.org; Wed, 22 Mar 2017 17:58:47 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:33227) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqoHF-0004hL-Hq for 26193@debbugs.gnu.org; Wed, 22 Mar 2017 17:58:45 -0400 Received: by mail-oi0-f66.google.com with SMTP id a94so9813926oic.0 for <26193@debbugs.gnu.org>; Wed, 22 Mar 2017 14:58:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=d92OxrRyhaqrlbxXG2LPT1mivxyP4QX+bPGamXMm+fA=; b=oC1S2Rudd6Veam2UsFZ6bAvzisiBCIiN5wMEVfSrWhwedM9CcTNXyoGV2wObuB9mI9 VkDBSjwHmicHDkEskTog/eSU6vBbTFHiu2WrPki7NcVp6eo7z4fAj9y47+GguKQgZrv7 NUER6y33g7J/YWXtW6vbxttgp85yR/IkDHQjoO9G5/ycFCYS9lmM7pk8r65DIc2FVbCQ k1UqnKKWqr3rLa8aps9xBXueiqK8RkgBAgH7fnUI3M3qLsAzpsSeNZCkSd3XZwiN4p+b F4MVNqcc0E2mMF1VkfuZmHnEm9KsIK/XAZsrKYbc72lbYtRVJqa8GaRhvip6Ne4qId9a cU9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=d92OxrRyhaqrlbxXG2LPT1mivxyP4QX+bPGamXMm+fA=; b=GHLoBXv2xilYK79iTkZV8W0qHkL+NA+3SV1Z1BCWC4YNIQH+sVKMvzIOKQyXZrKIN2 gu2xcTWygP75fPdC9JydPYpRIh0CQnxTo1x4z7yV3/I6+v6uySMzb3DuJsMwV6u2nz2C nHn5As7PZPzAIZsLIMAVQoztDFuR2aXQLAvtvlC5AUj2u6ODJKsU1xq/rokYOmhJz2QY LFrKfvCLJ+9akzNetrjVvHMTY+60An6xWbfRb0OHDXfT3xDp0uvgywtgZ0LVNJxjcQEV dgYfOwBeti3IbGdIyv+rBN6Mp3rBbmEgsUPwXbWFyXHSpn8khRi+Ew2ngu3249JTz8Sj EdMg== X-Gm-Message-State: AFeK/H3EaSiGUA0q8xRjc87urt1UYek74IAiHFsBSVDkmKsE7hMKnrw+ZVhNn+hTAcggXHT3MXxelYlcVNB8oQ== X-Received: by 10.202.168.199 with SMTP id r190mr17690908oie.42.1490219919824; Wed, 22 Mar 2017 14:58:39 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.4.1 with HTTP; Wed, 22 Mar 2017 14:58:39 -0700 (PDT) In-Reply-To: <26f8e9ca-a632-e382-ee6d-018b6a6001c1@cs.ucla.edu> References: <9b8602c0-1a55-5b51-657f-24e46485c9db@cs.ucla.edu> <26f8e9ca-a632-e382-ee6d-018b6a6001c1@cs.ucla.edu> From: "John P. Linderman" Date: Wed, 22 Mar 2017 17:58:39 -0400 Message-ID: Content-Type: multipart/alternative; boundary=001a113cd4b6f577d7054b58dca3 X-Spam-Score: 0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) --001a113cd4b6f577d7054b58dca3 Content-Type: text/plain; charset=UTF-8 I used to use LC_ALL=C, but, as I vaguely recall, it got in the way of dealing with UNICODE. I tried a couple LC values aimed at UNICODE and the US, but something always went pear-shaped. I finally give up. I am perfectly happy to suffer a tiny bit of performance, to have most things work without thinking. A factor of 6, or 35, is not tiny, since I use grep and friends intensely. That's how I discovered the performance problem to begin with. Anyway, thank you for fixing my problem. I suspect that many of us pioneers (using UNIX since 1973) have '[0-9]' wired into our fingers. On Wed, Mar 22, 2017 at 2:01 PM, Paul Eggert wrote: > On 03/22/2017 05:44 AM, John P. Linderman wrote: > >> That puts the runtimes on equal footing: >> >> In my measurements, P[0-9] is still a tiny bit slower if one is using > glibc regex, due to a performance problem in glibc. You can work around it > by configuring --with-included-regex. It's probably not worth worrying > about, though. > > By the way, using LC_ALL=C should help avoid performance problems like > these in the future, if all you're doing is something where single-byte > pattern matching suffices. > > --001a113cd4b6f577d7054b58dca3 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I used to use=C2=A0LC_ALL=3DC, but, as I vaguely recall, i= t got in the way of dealing with UNICODE. I tried a couple LC values aimed = at UNICODE and the US, but something always went pear-shaped. I finally giv= e up. I am perfectly happy to suffer a tiny bit of performance, to have mos= t things work without thinking. A factor of 6, or 35, is not tiny, since I = use grep and friends intensely. That's how I discovered the performance= problem to begin with. Anyway, thank you for fixing my problem. I suspect = that many of us pioneers (using UNIX since 1973) have '[0-9]' wired= into our fingers.

On Wed, Mar 22, 2017 at 2:01 PM, Paul Eggert <<= a href=3D"mailto:eggert@cs.ucla.edu" target=3D"_blank">eggert@cs.ucla.edu> wrote:
On = 03/22/2017 05:44 AM, John P. Linderman wrote:
That puts the runtimes on equal footing:

In my measurements, P[0-9] is still a tiny bit slower if one is using glibc= regex, due to a performance problem in glibc. You can work around it by co= nfiguring --with-included-regex. It's probably not worth worrying about= , though.

By the way, using LC_ALL=3DC should help avoid performance problems like th= ese in the future, if all you're doing is something where single-byte p= attern matching suffices.


--001a113cd4b6f577d7054b58dca3-- From unknown Mon Jun 23 23:54:39 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: "John P. Linderman" Subject: bug#26193: closed (Re: bug#26193: [0-9] versus [[:digit:]]) Message-ID: References: X-Gnu-PR-Message: they-closed 26193 X-Gnu-PR-Package: grep Reply-To: 26193@debbugs.gnu.org Date: Thu, 23 Mar 2017 01:58:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1490234282-7424-1" This is a multi-part message in MIME format... ------------=_1490234282-7424-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #26193: [0-9] versus [[:digit:]] 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 26193@debbugs.gnu.org. --=20 26193: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D26193 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1490234282-7424-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 26193-done) by debbugs.gnu.org; 23 Mar 2017 01:57:34 +0000 Received: from localhost ([127.0.0.1]:39958 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqs0M-0001v3-32 for submit@debbugs.gnu.org; Wed, 22 Mar 2017 21:57:34 -0400 Received: from mail-ua0-f179.google.com ([209.85.217.179]:35130) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqs0K-0001uq-2r for 26193-done@debbugs.gnu.org; Wed, 22 Mar 2017 21:57:32 -0400 Received: by mail-ua0-f179.google.com with SMTP id q7so85975323uaf.2 for <26193-done@debbugs.gnu.org>; Wed, 22 Mar 2017 18:57:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=KynBSCaTEbJXb+S0tNtmKv//cb2e7v0s19S0ft+vzBo=; b=goYQQoMpCpfdMrvEou4/rHb6dqoqJuv17/XXuEbb6KuGyfKjUDzj48y+MG6PLbOW7V PjTEC06fKME43ZSdVeKSplxqJqavV8Lok6bRxjdjV6dHBcAt/b+pnnpTCwgsOkS5/Hnq IZe0xgr4AqFJTcWYp6afjsg8WKjx67NwmK+AFIpfUgKqRcwu1x4Kn4iDW+kLlZnxnG/3 QhwOk1og5SjulspMntfe/owOvLRzcuVKuWhDl05Uw9fgHM9hMqsPJzTmnJy6rffvEAjw AdUquiBLNFpbXhSZZB68idK/FbQ/vPeKIjtLAgM5a/5xHYqJi+jaQqiGhaQeqP35tCQn 8LMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=KynBSCaTEbJXb+S0tNtmKv//cb2e7v0s19S0ft+vzBo=; b=l9V/iFn7fGxDyxVDK4qrI9KiqTtaO5smGWskwMKDyt8y3aZ58YcX1C+hOPQ8kozBIw dw1GtUA8qsu5QZQxpznygH4hAS6UF5X/0n5MWvsJFyJHHRFD/HHLI/f72BsOv4Tv3ZSN aeiq+u5HNgC9FKO3T5UIre3LA8KE1ByA2NVhedMq4e6MY4WmMDbs+s8aNTApvVxXbwqs k5Fp07BsToBCLwhdsmyndLKuV9Ud9r4Ggzit2/X8mkWhv+IybxOVQgt0o7LEgsl3pY9r npzLC85ehJLVjuWtwy4nYHH+IOvmntqjtRvf2AShd6ZiCXejpaWdE1dqQTX2HJUvbfrc IaZg== X-Gm-Message-State: AFeK/H1e0EBFJbewc3BLA9zL5vPq5DW1G/hgr3Dy186FvHi5MJBDoFr9umAMEmSP0Tr5Kov4A2TsLpOmh2sCXg== X-Received: by 10.176.90.137 with SMTP id w9mr36478uae.0.1490234246370; Wed, 22 Mar 2017 18:57:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.59.41 with HTTP; Wed, 22 Mar 2017 18:57:05 -0700 (PDT) In-Reply-To: References: <9b8602c0-1a55-5b51-657f-24e46485c9db@cs.ucla.edu> <26f8e9ca-a632-e382-ee6d-018b6a6001c1@cs.ucla.edu> From: Jim Meyering Date: Wed, 22 Mar 2017 18:57:05 -0700 X-Google-Sender-Auth: PZHSxzADbqhYuYgcmcA5HxR2HGg Message-ID: Subject: Re: bug#26193: [0-9] versus [[:digit:]] To: "John P. Linderman" Content-Type: multipart/mixed; boundary=f403045f8f84e375ab054b5c3217 X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 26193-done Cc: 26193-done@debbugs.gnu.org, Paul Eggert , Gnulib bugs X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.7 (/) --f403045f8f84e375ab054b5c3217 Content-Type: text/plain; charset=UTF-8 On Wed, Mar 22, 2017 at 2:58 PM, John P. Linderman wrote: > I used to use LC_ALL=C, but, as I vaguely recall, it got in the way of > dealing with UNICODE. I tried a couple LC values aimed at UNICODE and the > US, but something always went pear-shaped. I finally give up. I am perfectly > happy to suffer a tiny bit of performance, to have most things work without > thinking. A factor of 6, or 35, is not tiny, since I use grep and friends > intensely. That's how I discovered the performance problem to begin with. > Anyway, thank you for fixing my problem. I suspect that many of us pioneers > (using UNIX since 1973) have '[0-9]' wired into our fingers. > > On Wed, Mar 22, 2017 at 2:01 PM, Paul Eggert wrote: >> >> On 03/22/2017 05:44 AM, John P. Linderman wrote: >>> >>> That puts the runtimes on equal footing: >>> >> In my measurements, P[0-9] is still a tiny bit slower if one is using >> glibc regex, due to a performance problem in glibc. You can work around it >> by configuring --with-included-regex. It's probably not worth worrying >> about, though. >> >> By the way, using LC_ALL=C should help avoid performance problems like >> these in the future, if all you're doing is something where single-byte >> pattern matching suffices. I've just pulled that gnulib change into grep's repository with the attached, along with a NEWS update: --f403045f8f84e375ab054b5c3217 Content-Type: text/plain; charset=US-ASCII; name="grep-gnulib-dfa-NEWS.diff" Content-Disposition: attachment; filename="grep-gnulib-dfa-NEWS.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j0lqz6go0 RnJvbSBlMmI3MjUzNTI0YjkyYzMxNmUyZjUxZmMxOTk4Yjg1OTU1NTRlNzc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog VHVlLCAyMSBNYXIgMjAxNyAyMDoxOTo0OSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGdudWxpYjog dXBkYXRlIHRvIGxhdGVzdCBmb3IgZGZhIFswLTldIHBlcmZvcm1hbmNlCiBpbXByb3ZlbWVudAoK VGhpcyBwdWxscyBpbiB0aGUgZm9sbG93aW5nIGNoYW5nZSB0aGF0IGlzIHZlcnkgcmVsZXZhbnQg dG8gZ3JlcDoKCiAgICBjb21taXQgNmFmYmEwMmQ3ODY5ZDM5ZWQ3ZjYxOTgxMDQ1ZGRiZGNiMjgx NDEwMQogICAgQXV0aG9yOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgogICAgZGZh OiBtYWtlIFswLTldIGZhc3RlciBpbiBub24tQyBsb2NhbGVzCgoqIGdudWxpYjogVXBkYXRlIHRv IGxhdGVzdC4KKiBORVdTIChJbXByb3ZlbWVudHMpOiBEZXNjcmliZSB0aGUgZWZmZWN0IG9uIGdy ZXAuCi0tLQogTkVXUyAgIHwgNSArKysrKwogZ251bGliIHwgMiArLQogMiBmaWxlcyBjaGFuZ2Vk LCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9ORVdTIGIvTkVX UwppbmRleCBjMzg3YWVmLi4wYThjYmJjIDEwMDY0NAotLS0gYS9ORVdTCisrKyBiL05FV1MKQEAg LTIsNiArMiwxMSBAQCBHTlUgZ3JlcCBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLSotIG91dGxpbmUgLSotCgogKiBOb3Rld29ydGh5IGNoYW5nZXMgaW4gcmVsZWFzZSA/ Lj8gKD8/Pz8tPz8tPz8pIFs/XQoKKyoqIEltcHJvdmVtZW50cworCisgIGdyZXAgJ1swLTldJyBp cyBub3cganVzdCBhcyBmYXN0IGFzIGdyZXAgJ1tbOmRpZ2l0Ol1dJyB3aGVuIHJ1bgorICBpbiBh IG11bHRpLWJ5dGUgbG9jYWxlLiAgQmVmb3JlLCBpdCB3YXMgc2V2ZXJhbCB0aW1lcyBzbG93ZXIu CisKICoqIENoYW5nZXMgaW4gYmVoYXZpb3IKCiAgIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhZmZl Y3Qgb25seSBNUy1XaW5kb3dzIHBsYXRmb3Jtcy4gIEZpcnN0LCB0aGUKZGlmZiAtLWdpdCBhL2du dWxpYiBiL2dudWxpYgppbmRleCBmYWQ2MzFlLi5iZDc4Y2EzIDE2MDAwMAotLS0gYS9nbnVsaWIK KysrIGIvZ251bGliCkBAIC0xICsxIEBACi1TdWJwcm9qZWN0IGNvbW1pdCBmYWQ2MzFlNzRkZDZj MWYwYzdmYWRkOTliYWQxYjRiNzMyZjZlZWI4CitTdWJwcm9qZWN0IGNvbW1pdCBiZDc4Y2EzZDNk N2I1ZWMyNjc5YWYxZWEzZDIzZTI3OGM4MWUwMWQ4Ci0tIAoyLjkuMwoK --f403045f8f84e375ab054b5c3217-- ------------=_1490234282-7424-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 20 Mar 2017 16:59:53 +0000 Received: from localhost ([127.0.0.1]:36556 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cq0eu-0004SR-Qn for submit@debbugs.gnu.org; Mon, 20 Mar 2017 12:59:53 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44918) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cpzK3-0002TA-UP for submit@debbugs.gnu.org; Mon, 20 Mar 2017 11:34:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cpzJx-0005hn-Lt for submit@debbugs.gnu.org; Mon, 20 Mar 2017 11:34:10 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:60088) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cpzJx-0005hi-Iu for submit@debbugs.gnu.org; Mon, 20 Mar 2017 11:34:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35887) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cpzJw-0003tm-2c for bug-grep@gnu.org; Mon, 20 Mar 2017 11:34:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cpzJu-0005hD-Rc for bug-grep@gnu.org; Mon, 20 Mar 2017 11:34:08 -0400 Received: from mail-oi0-x22a.google.com ([2607:f8b0:4003:c06::22a]:34030) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cpzJu-0005h2-MF for bug-grep@gnu.org; Mon, 20 Mar 2017 11:34:06 -0400 Received: by mail-oi0-x22a.google.com with SMTP id w81so24105801oig.1 for ; Mon, 20 Mar 2017 08:34:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=j8Rq4Q9EYiiz4pz8tnXoTAaUfb8Or0ucwkKQ3CzCKn4=; b=jzAheh+ESZitPMm55H2i8gIIgJlHUVDqpHKk/OiOZvhN/o+68p7Dhil7iNWNPch5h7 zY6ZaAkFqPrZekHxoMNG1nKV8FzvCTqDoJV0Je5++DpqGy4kT5ylZa6D0NLqm574A049 QYaCyeM6XooQuxaM4VNWaJS1a5/ah6svpJFWc3Qs6b/CKjAEZAnXGJTGhUIQwPiWfb/d RYNcjK+V+BoDLvc56PNtbIUOvC1Hz27rsm3O8QQvOFJJDblKXyTiD+ZqsXiIh6k9AbNi 6OdIAAzOVj5aGeNmta2ta5VMWhU6eqZ7cnNuNWTRWWNjOzrrsDGYO680iNvgErtPUf8f 73gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=j8Rq4Q9EYiiz4pz8tnXoTAaUfb8Or0ucwkKQ3CzCKn4=; b=qu84GiW+sKETRcb/VH/MEV7LLR/7H43VyTk5s58WnGjw2ogdc/lDCFfvbNv7dGCIhc 2E5sjMjnQSZ8oNV4H+PvOwBydnNe+g4ZsxPQAO3mQ+eBXtNO565S/sezaWL8ZIpDOGJK YQNueZmSYkQ/ggIVkCtCxqDFsSM1p3Qb3ot+Hg0Qr9VNaNFDCyNnqIgMHzU0Ka3F5Mxa 4YVZUYGKnvISi3MkEQ2TD302DKTulHV3RZerV9ViX912MN1ZGN1B3tswZoCT6jlwWu0F rQQRw17QV2mz17Zo5+gWcttDsTZPXsgJqppFYbIivnwh66UFEuKtfBLDcCET8JkZ3BdA PHrA== X-Gm-Message-State: AFeK/H0KFJFvT9Irj4MECF/jqqNBh9GpYzrotRtnBjIIm80BdEYg6rxjWLZtosB90+qyre9fBHQDvoTWXNZ8sQ== X-Received: by 10.202.241.131 with SMTP id p125mr14199976oih.106.1490024045504; Mon, 20 Mar 2017 08:34:05 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.4.1 with HTTP; Mon, 20 Mar 2017 08:34:05 -0700 (PDT) From: "John P. Linderman" Date: Mon, 20 Mar 2017 11:34:05 -0400 Message-ID: Subject: [0-9] versus [[:digit:]] To: bug-grep@gnu.org Content-Type: multipart/alternative; boundary=94eb2c095ed4f06cc0054b2b4187 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Mon, 20 Mar 2017 12:59:51 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --94eb2c095ed4f06cc0054b2b4187 Content-Type: text/plain; charset=UTF-8 In what follows, file "conjectures" is a 6 billion bytes file in which each line contains at most one letter P, and few (see output) have a digit following a P. "rusage" is just a home-brew resource usage summary command. rusage egrep 'P[0-9]' conjectures > xxx 695.55 real 688.33 user 2.40 sys 0 pf 186 pr 0 sw 0 rb 8 wb 1 vcx 19206 icx 2488 mx 0 ix 0 id 0 is cat xxx A[21]=11{11}:22 xxx 14.88 real 13.36 user 1.43 sys 0 pf 186 pr 0 sw 0 rb 8 wb 0 vcx 516 icx 2500 mx 0 ix 0 id 0 is cat xxx A[21]=11{11}:22. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Mike Haertel and others, see . uname -a Linux jpl 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux --94eb2c095ed4f06cc0054b2b4187 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
In what follows, file "conjectures" is a 6 billi= on bytes file in which each line contains at most one letter P, and few (se= e output) have a digit following a P. "rusage" is just a home-bre= w resource usage summary command.

=C2=A0 rusage egrep 'P[0-9]' conjectures > xx= x =C2=A0 =C2=A0=C2=A0
= 695.55 real 688.33 user 2.40 sys 0 pf 186 pr 0 sw 0 rb 8 wb 1 vcx 19206 icx= 2488 mx 0 ix 0 id 0 is

=C2=A0 cat xxx
A[21]=3D11{11}:22<LP3

=C2=A0 rusage egrep 'P[[:digit:]]' conj= ectures > xxx
14.88= real 13.36 user 1.43 sys 0 pf 186 pr 0 sw 0 rb 8 wb 0 vcx 516 icx 2500 mx = 0 ix 0 id 0 is

=C2=A0 cat xxx
A[21]=3D11{11}:22<LP3

Using what = is to me the more obvious [0-9] pattern takes almost 50 times as long as us= ing the [[:digit:]] pattern. Seems very strange.

<= div>=C2=A0 grep --version
<= div>grep (GNU grep) 2.25
Copyright (C) 2016 Free Software Fou= ndation, Inc.
License = GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: = you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.=

Written by Mike Haertel and others, se= e <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.<= /font>

= =C2=A0 uname -a
Linux jpl 4.4.0-66-generic #87-Ubuntu SMP Fri= Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
<= div>



=
--94eb2c095ed4f06cc0054b2b4187-- ------------=_1490234282-7424-1--