From unknown Mon Jun 23 13:07:51 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#17350 <17350@debbugs.gnu.org> To: bug#17350 <17350@debbugs.gnu.org> Subject: Status: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset Reply-To: bug#17350 <17350@debbugs.gnu.org> Date: Mon, 23 Jun 2025 20:07:51 +0000 retitle 17350 [PATCH] grep: speed up for a case to repeat failure in DFA af= ter success in kwset reassign 17350 grep submitter 17350 Norihiro Tanaka severity 17350 normal tag 17350 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 26 07:26:25 2014 Received: (at submit) by debbugs.gnu.org; 26 Apr 2014 11:26:26 +0000 Received: from localhost ([127.0.0.1]:59024 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1We0kS-0006ak-M3 for submit@debbugs.gnu.org; Sat, 26 Apr 2014 07:26:25 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47528) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1We0kM-0006aS-2P for submit@debbugs.gnu.org; Sat, 26 Apr 2014 07:26:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1We0kD-00018Q-BH for submit@debbugs.gnu.org; Sat, 26 Apr 2014 07:26:17 -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 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:33563) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1We0kD-00017u-7V for submit@debbugs.gnu.org; Sat, 26 Apr 2014 07:26:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49229) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1We0k5-0005ze-GK for bug-grep@gnu.org; Sat, 26 Apr 2014 07:26:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1We0ju-00010Q-Hp for bug-grep@gnu.org; Sat, 26 Apr 2014 07:26:01 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:46867) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1We0ju-0000zo-1c for bug-grep@gnu.org; Sat, 26 Apr 2014 07:25:50 -0400 Received: from imp02 (mailgw6.kcn.ne.jp [61.86.15.232]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id 60D54B0012 for ; Sat, 26 Apr 2014 20:25:45 +0900 (JST) Received: from mail04.kcn.ne.jp ([61.86.6.183]) by imp02 with bizsmtp id ubRl1n00F3wvxAM01bRlKR; Sat, 26 Apr 2014 20:25:45 +0900 X-OrgRCPT: bug-grep@gnu.org Received: from [10.120.1.8] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail04.kcn.ne.jp (Postfix) with ESMTPA id 382F4129009F for ; Sat, 26 Apr 2014 20:25:45 +0900 (JST) Date: Sat, 26 Apr 2014 20:25:43 +0900 From: Norihiro Tanaka To: bug-grep@gnu.org Subject: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset Message-Id: <20140426202533.94E5.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_535B94CE000000009537_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (----) --------_535B94CE000000009537_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Patch#17230 causes slowdown for a case to repeat failure in DFA after success in kwset, although it improves the performance for many cases. In fact, the master without this patch is 3.5x slower than grep 2.18 for below. $ yes abcdabc | head -50000000 >k $ env LC_ALL=C time -p src/grep -i 'abcd.bd' k This patch fixes the degradation of the performance for such cases. See the commit log for details. Norihiro --------_535B94CE000000009537_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSBiMzNiNDhlNjMwNzU5YmRjNWIzYmM5NWRjNDc3ZWIyZWU0ODk5NjBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTYXQsIDI2IEFwciAyMDE0IDE4OjE5OjMyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogc3BlZWQgdXAgZm9yIGEgY2FzZSB0byByZXBlYXQgZmFpbHVyZSBpbiBERkEgYWZ0ZXIKIHN1 Y2Nlc3MgaW4ga3dzZXQKCldoZW4gYG11bHRpYnl0ZScgYXR0cmlidXRlIG9mIHN0cnVjdCBkZmEg aXMgZmFsc2UgYW5kIHRoZSBwYXR0ZXJuIGRvZXNuJ3QKaGF2ZSBCQUNLUkVGLCBERkEgaXMgbXVj aCBmYXN0ZXIsIGFsdGhvdWdoIGl0IGlzbid0IGZhc3QgYXMga3dzZXQgaW4gbW9zdApvZiBjYXNl cy4gIFRoZXJlZm9yZSwgd2hlbiByZXBlYXQgZmFpbHVyZSBpbiBERkEgYWZ0ZXIgc3VjY2VzcyBp biBrd3NldAphcyBmb2xsb3dpbmcsIGl0IG1heSBiZSBsb3dlciB0aGFuIHN0YXJ0aW5nIHdpdGgg REZBIHdpdGhvdXQga3dzZXQuCgogICAgeWVzIGFiY2RhYmMgfCBoZWFkIC01MDAwMDAwMCA+awog ICAgZW52IExDX0FMTD1DIHRpbWUgLXAgc3JjL2dyZXAgLWkgJ2FiY2QuYmQnIGsKClRoaXMgcGF0 Y2ggaW1wcm92ZXMgdGhlIHBlcmZvcm1hbmNlIGZvciBzdWNoIGNhc2VzLgoKSSBtZWFzdXJlZCB0 aGUgcGVyZm9ybWFuY2Ugd2l0aG91dCBhcHBsaWNhdGlvbiBvZiB0aGUgcGF0Y2ggZm9yIGFib3Zl CmNhc2UuCgogICAgcmVhbCA0Ljg2ICAgICAgIHVzZXIgNC4xOSAgICAgICBzeXMgMC43MAoKU3Vi c2VxdWVudGx5LCBJIGFwcGxpZWQgdGhlIHBhdGNoLCBhbmQgcmVjb21waWxlZCBhbmQgbWVhc3Vy ZWQgdGhlCnBlcmZvcm1hbmNlLgoKICAgIHJlYWwgMS4zNCAgICAgICB1c2VyIDAuODUgICAgICAg c3lzIDAuNDcKCiogc3JjL2RmYS5jIChkZmFpc2Zhc3QpOiBOZXcgZnVuY3Rpb24uICBJdCByZXR1 cm4gdHJ1ZSwgaWYgYG11bHRpYnl0ZScKYXR0cmlidXRlIG9mIHN0cnVjdCBkZmEgaXMgZmFsc2Ug YW5kIHRoZSBwYXR0ZXJuIGRvZXNuJ3QgaGF2ZSBCQUNLUkVGLgoqIHNyYy9kZmEuaCAoZGZhaXNm YXN0KTogTmV3IGRlY2wuCiogc3JjL2RmYXNlYXJjaC5jIChFR2V4ZWN1dGUpOiBVc2UgZGZhaXNm YXN0LgotLS0KIHNyYy9kZmEuYyAgICAgICB8IDIyICsrKysrKysrKysrKysrKysrKysrKysKIHNy Yy9kZmEuaCAgICAgICB8ICA0ICsrKysKIHNyYy9kZmFzZWFyY2guYyB8IDE1ICsrKysrKysrKyst LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCA4ZTZjNzA4Li5mYzYzOGM4 IDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBAIC0zNDExLDYgKzM0MTEs MjggQEAgZGZhaGludCAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVu ZCwgc2l6ZV90ICpjb3VudCkKICAgICB9CiB9CiAKK2Jvb2wKK2RmYWlzZmFzdCAoc3RydWN0IGRm YSAqZCkKK3sKKyAgc2l6ZV90IGk7CisgIGlmIChkLT5zdXBlcnNldCkKKyAgICB7CisgICAgICBm b3IgKGkgPSAwOyBpIDwgZC0+c3VwZXJzZXQtPnRpbmRleDsgaSsrKQorICAgICAgICBpZiAoZC0+ c3VwZXJzZXQtPnRva2Vuc1tpXSA9PSBCQUNLUkVGKQorICAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgZWxzZSBpZiAoIWQtPm11bHRpYnl0ZSkKKyAg ICB7CisgICAgICBmb3IgKGkgPSAwOyBpIDwgZC0+dGluZGV4OyBpKyspCisgICAgICAgIGlmIChk LT50b2tlbnNbaV0gPT0gQkFDS1JFRikKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICBy ZXR1cm4gdHJ1ZTsKKyAgICB9CisgIGVsc2UKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRp YyB2b2lkCiBmcmVlX21iZGF0YSAoc3RydWN0IGRmYSAqZCkKIHsKZGlmZiAtLWdpdCBhL3NyYy9k ZmEuaCBiL3NyYy9kZmEuaAppbmRleCA2MGFmZjExLi4yZGQ0ODcxIDEwMDY0NAotLS0gYS9zcmMv ZGZhLmgKKysrIGIvc3JjL2RmYS5oCkBAIC04Miw2ICs4MiwxMCBAQCBleHRlcm4gY2hhciAqZGZh ZXhlYyAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVuZCwKIGV4dGVy biBzaXplX3QgZGZhaGludCAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIg KmVuZCwKICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpjb3VudCk7CiAKKy8qIFJldHVy biB0cnVlLCBpZiBgbXVsdGlieXRlJyBhdHRyaWJ1dGUgb2Ygc3RydWN0IGRmYSBpcyBmYWxzZSBh bmQgdGhlCisgICBwYXR0ZXJuIGRvZXNuJ3QgaGF2ZSBCQUNLUkVGLiAgKi8KK2V4dGVybiBib29s IGRmYWlzZmFzdCAoc3RydWN0IGRmYSAqKTsKKwogLyogRnJlZSB0aGUgc3RvcmFnZSBoZWxkIGJ5 IHRoZSBjb21wb25lbnRzIG9mIGEgc3RydWN0IGRmYS4gKi8KIGV4dGVybiB2b2lkIGRmYWZyZWUg KHN0cnVjdCBkZmEgKik7CiAKZGlmZiAtLWdpdCBhL3NyYy9kZmFzZWFyY2guYyBiL3NyYy9kZmFz ZWFyY2guYwppbmRleCBkYzc2Mzk3Li43OWEwY2Q4IDEwMDY0NAotLS0gYS9zcmMvZGZhc2VhcmNo LmMKKysrIGIvc3JjL2RmYXNlYXJjaC5jCkBAIC0yMTMsNiArMjEzLDcgQEAgRUdleGVjdXRlIChj aGFyIGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgIHNpemVf dCBsZW4sIGJlc3RfbGVuOwogICBzdHJ1Y3Qga3dzbWF0Y2gga3dzbTsKICAgc2l6ZV90IGk7Cisg IGJvb2wgZGZhZmFzdCA9IGRmYWlzZmFzdCAoZGZhKTsKIAogICBtYl9zdGFydCA9IGJ1ZjsKICAg YnVmbGltID0gYnVmICsgc2l6ZTsKQEAgLTIzMiwxMyArMjMzLDEzIEBAIEVHZXhlY3V0ZSAoY2hh ciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICptYXRjaF9zaXplLAogICAgICAgICAg ICAgICBiZWcgKz0gb2Zmc2V0OwogICAgICAgICAgICAgICAvKiBOYXJyb3cgZG93biB0byB0aGUg bGluZSBjb250YWluaW5nIHRoZSBjYW5kaWRhdGUsIGFuZAogICAgICAgICAgICAgICAgICBydW4g aXQgdGhyb3VnaCBERkEuICovCi0gICAgICAgICAgICAgIGVuZCA9IG1lbWNociAoYmVnLCBlb2ws IGJ1ZmxpbSAtIGJlZyk7Ci0gICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZs aW07CiAgICAgICAgICAgICAgIG1hdGNoID0gYmVnOwogICAgICAgICAgICAgICBiZWcgPSBtZW1y Y2hyIChidWYsIGVvbCwgYmVnIC0gYnVmKTsKICAgICAgICAgICAgICAgYmVnID0gYmVnID8gYmVn ICsgMSA6IGJ1ZjsKICAgICAgICAgICAgICAgaWYgKGt3c20uaW5kZXggPCBrd3NldF9leGFjdF9t YXRjaGVzKQogICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGVuZCA9IG1lbWNo ciAoYmVnLCBlb2wsIGJ1ZmxpbSAtIGJlZyk7CisgICAgICAgICAgICAgICAgICBlbmQgPSBlbmQg PyBlbmQgKyAxIDogYnVmbGltOwogICAgICAgICAgICAgICAgICAgaWYgKE1CX0NVUl9NQVggPT0g MSkKICAgICAgICAgICAgICAgICAgICAgZ290byBzdWNjZXNzOwogICAgICAgICAgICAgICAgICAg aWYgKG1iX3N0YXJ0IDwgYmVnKQpAQCAtMjUzLDE3ICsyNTQsMjEgQEAgRUdleGVjdXRlIChjaGFy IGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmYmFja3JlZikpCiAgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg ICAgICBlbHNlIGlmICghZGZhZmFzdCkKICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAvKiBOYXJyb3cgZG93biB0byB0aGUgbGluZSB3ZSd2ZSBmb3VuZCBpZiBkZmEgaXNuJ3Qg ZmFzdC4gKi8KKyAgICAgICAgICAgICAgICAgIGVuZCA9IG1lbWNociAobWF0Y2gsIGVvbCwgYnVm bGltIC0gYmVnKTsKKyAgICAgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZs aW07CiAgICAgICAgICAgICAgICAgICBpZiAoZGZhaGludCAoZGZhLCBiZWcsIChjaGFyICopIGVu ZCwgTlVMTCkgPT0gKHNpemVfdCkgLTEpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog ICAgICAgICAgICAgICAgICAgaWYgKCEgZGZhZXhlYyAoZGZhLCBiZWcsIChjaGFyICopIGVuZCwg MCwgTlVMTCwgJmJhY2tyZWYpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZQorICAgICAgICAgIGlm ICgha3dzZXQgfHwgZGZhZmFzdCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgLyogTm8g Z29vZCBmaXhlZCBzdHJpbmdzOyBzdGFydCB3aXRoIERGQS4gKi8KKyAgICAgICAgICAgICAgLyog Tm8gZ29vZCBmaXhlZCBzdHJpbmdzIG9yIERGQSBpcyBmYXN0OyBzdGFydCB3aXRoIERGQQorICAg ICAgICAgICAgICAgICBicm9hZGx5LiAqLwogICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0LCBj b3VudDsKICAgICAgICAgICAgICAgY2hhciBjb25zdCAqbmV4dF9iZWc7CiAgICAgICAgICAgICAg IGNvdW50ID0gMDsKLS0gCjEuOS4yCgo= --------_535B94CE000000009537_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 26 21:08:26 2014 Received: (at 17350-done) by debbugs.gnu.org; 27 Apr 2014 01:08:26 +0000 Received: from localhost ([127.0.0.1]:59407 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WeDZx-00083w-JW for submit@debbugs.gnu.org; Sat, 26 Apr 2014 21:08:26 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:60810) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WeDZu-00083i-JQ for 17350-done@debbugs.gnu.org; Sat, 26 Apr 2014 21:08:23 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id B8726A60008; Sat, 26 Apr 2014 18:08:21 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id n7T2awu13i6t; Sat, 26 Apr 2014 18:08:17 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id E7693A60005; Sat, 26 Apr 2014 18:08:16 -0700 (PDT) Message-ID: <535C587C.3010801@cs.ucla.edu> Date: Sat, 26 Apr 2014 18:08:12 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Norihiro Tanaka , 17350-done@debbugs.gnu.org Subject: Re: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset References: <20140426202533.94E5.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140426202533.94E5.27F6AC2D@kcn.ne.jp> Content-Type: multipart/mixed; boundary="------------010601050001090003080309" X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17350-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -3.0 (---) This is a multi-part message in MIME format. --------------010601050001090003080309 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thanks, I installed that patch with minor reworking of the ChangeLog entry and am marking this as done. By the way, a minor point -- nowadays we prefer single-quoting 'like this' rather than the old style `like this' -- the GNU coding standards changed recently in this regard. I noticed a mostly-theoretical read buffer overrun in the patch, along with some other opportunities for simplification and tuning, and installed the attached fixup patch as well. --------------010601050001090003080309 Content-Type: text/plain; charset=UTF-8; name="0001-dfa-fix-index-bug-in-previous-patch-and-simplify.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-dfa-fix-index-bug-in-previous-patch-and-simplify.patch" RnJvbSBhNWM0MDk5M2Y1M2IyODhmYzZhYWYwNThhMDliM2Y3NTM4YTI0MjJjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDI2IEFwciAyMDE0IDE4OjAxOjExIC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gZGZhOiBmaXggaW5kZXggYnVnIGluIHByZXZpb3VzIHBhdGNoLCBhbmQgc2ltcGxpZnkK Ciogc3JjL2RmYS5jLCBzcmMvZGZhLmggKGRmYWlzZmFzdCk6IEFyZyBpcyBjb25zdCBwb2lu dGVyLgoqIHNyYy9kZmEuYyAoZGZhaXNmYXN0KTogU2ltcGxpZnksIHNpbmNlIHN1cGVyc2V0 cyBuZXZlciBjb250YWluIEJBQ0tSRUYuCiogc3JjL2RmYS5oIChkZmFpc2Zhc3QpOiBEZWNs YXJlIHRvIGJlIHB1cmUuCiogc3JjL2RmYXNlYXJjaC5jIChFR2V4ZWN1dGUpOiBGaXggdHlw byB0aGF0IGNvdWxkIGNhdXNlIGJ1ZmZlcgpyZWFkIG92ZXJydW4gd2hlbiAhZGZhZmFzdC4g IEhvaXN0IGR1cGxpY2F0ZSBjb21wdXRhdGlvbiBvdXQKb2YgYW4gaWYncyB0aGVuIGFuZCBl bHNlIHBhcnRzLgotLS0KIHNyYy9kZmEuYyAgICAgICB8IDE3ICsrKysrKy0tLS0tLS0tLS0t CiBzcmMvZGZhLmggICAgICAgfCAgNSArKy0tLQogc3JjL2RmYXNlYXJjaC5jIHwgMjQgKysr KysrKysrKy0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMo KyksIDI4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEu YwppbmRleCBmYzYzOGM4Li4zNjJkZTJjIDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIv c3JjL2RmYS5jCkBAIC0zNDEyLDI1ICszNDEyLDIwIEBAIGRmYWhpbnQgKHN0cnVjdCBkZmEg KmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICplbmQsIHNpemVfdCAqY291bnQpCiB9CiAK IGJvb2wKLWRmYWlzZmFzdCAoc3RydWN0IGRmYSAqZCkKK2RmYWlzZmFzdCAoc3RydWN0IGRm YSBjb25zdCAqZCkKIHsKLSAgc2l6ZV90IGk7CiAgIGlmIChkLT5zdXBlcnNldCkKKyAgICBy ZXR1cm4gdHJ1ZTsKKyAgZWxzZSBpZiAoZC0+bXVsdGlieXRlKQorICAgIHJldHVybiBmYWxz ZTsKKyAgZWxzZQogICAgIHsKLSAgICAgIGZvciAoaSA9IDA7IGkgPCBkLT5zdXBlcnNldC0+ dGluZGV4OyBpKyspCi0gICAgICAgIGlmIChkLT5zdXBlcnNldC0+dG9rZW5zW2ldID09IEJB Q0tSRUYpCi0gICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgcmV0dXJuIHRydWU7Ci0g ICAgfQotICBlbHNlIGlmICghZC0+bXVsdGlieXRlKQotICAgIHsKKyAgICAgIHNpemVfdCBp OwogICAgICAgZm9yIChpID0gMDsgaSA8IGQtPnRpbmRleDsgaSsrKQogICAgICAgICBpZiAo ZC0+dG9rZW5zW2ldID09IEJBQ0tSRUYpCiAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg ICAgcmV0dXJuIHRydWU7CiAgICAgfQotICBlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwogfQog CiBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvc3JjL2RmYS5oIGIvc3JjL2RmYS5oCmluZGV4 IDJkZDQ4NzEuLmZiY2IxOTEgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuaAorKysgYi9zcmMvZGZh LmgKQEAgLTgyLDkgKzgyLDggQEAgZXh0ZXJuIGNoYXIgKmRmYWV4ZWMgKHN0cnVjdCBkZmEg KmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICplbmQsCiBleHRlcm4gc2l6ZV90IGRmYWhp bnQgKHN0cnVjdCBkZmEgKmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICplbmQsCiAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVfdCAqY291bnQpOwogCi0vKiBSZXR1cm4gdHJ1ZSwg aWYgYG11bHRpYnl0ZScgYXR0cmlidXRlIG9mIHN0cnVjdCBkZmEgaXMgZmFsc2UgYW5kIHRo ZQotICAgcGF0dGVybiBkb2Vzbid0IGhhdmUgQkFDS1JFRi4gICovCi1leHRlcm4gYm9vbCBk ZmFpc2Zhc3QgKHN0cnVjdCBkZmEgKik7CisvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgREZBIGlz IGxpa2VseSB0byBiZSBmYXN0LiAgKi8KK2V4dGVybiBib29sIGRmYWlzZmFzdCAoc3RydWN0 IGRmYSBjb25zdCAqKSBfR0xfQVRUUklCVVRFX1BVUkU7CiAKIC8qIEZyZWUgdGhlIHN0b3Jh Z2UgaGVsZCBieSB0aGUgY29tcG9uZW50cyBvZiBhIHN0cnVjdCBkZmEuICovCiBleHRlcm4g dm9pZCBkZmFmcmVlIChzdHJ1Y3QgZGZhICopOwpkaWZmIC0tZ2l0IGEvc3JjL2RmYXNlYXJj aC5jIGIvc3JjL2RmYXNlYXJjaC5jCmluZGV4IDc5YTBjZDguLjdlZGM5NmIgMTAwNjQ0Ci0t LSBhL3NyYy9kZmFzZWFyY2guYworKysgYi9zcmMvZGZhc2VhcmNoLmMKQEAgLTIyNSwyMSAr MjI1LDIxIEBAIEVHZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6 ZV90ICptYXRjaF9zaXplLAogICAgICAgICAgIC8qIFdlIGRvbid0IGNhcmUgYWJvdXQgYW4g ZXhhY3QgbWF0Y2guICAqLwogICAgICAgICAgIGlmIChrd3NldCkKICAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgLyogRmluZCBhIHBvc3NpYmxlIG1hdGNoIHVzaW5nIHRoZSBLV3Nl dCBtYXRjaGVyLiAqLworICAgICAgICAgICAgICAvKiBGaW5kIGEgcG9zc2libGUgbWF0Y2gg dXNpbmcgdGhlIEtXc2V0IG1hdGNoZXIuICAqLwogICAgICAgICAgICAgICBzaXplX3Qgb2Zm c2V0ID0ga3dzZXhlYyAoa3dzZXQsIGJlZyAtIGJlZ2xpbmUsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBidWZsaW0gLSBiZWcgKyBiZWdsaW5lLCAma3dzbSk7 CiAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPT0gKHNpemVfdCkgLTEpCiAgICAgICAgICAg ICAgICAgZ290byBmYWlsdXJlOwotICAgICAgICAgICAgICBiZWcgKz0gb2Zmc2V0OwotICAg ICAgICAgICAgICAvKiBOYXJyb3cgZG93biB0byB0aGUgbGluZSBjb250YWluaW5nIHRoZSBj YW5kaWRhdGUsIGFuZAotICAgICAgICAgICAgICAgICBydW4gaXQgdGhyb3VnaCBERkEuICov Ci0gICAgICAgICAgICAgIG1hdGNoID0gYmVnOwotICAgICAgICAgICAgICBiZWcgPSBtZW1y Y2hyIChidWYsIGVvbCwgYmVnIC0gYnVmKTsKKyAgICAgICAgICAgICAgbWF0Y2ggPSBiZWcg KyBvZmZzZXQ7CisKKyAgICAgICAgICAgICAgLyogTmFycm93IGRvd24gdG8gdGhlIGxpbmUg Y29udGFpbmluZyB0aGUgY2FuZGlkYXRlLiAgKi8KKyAgICAgICAgICAgICAgYmVnID0gbWVt cmNociAoYnVmLCBlb2wsIG1hdGNoIC0gYnVmKTsKICAgICAgICAgICAgICAgYmVnID0gYmVn ID8gYmVnICsgMSA6IGJ1ZjsKKyAgICAgICAgICAgICAgZW5kID0gbWVtY2hyIChtYXRjaCwg ZW9sLCBidWZsaW0gLSBtYXRjaCk7CisgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCAr IDEgOiBidWZsaW07CisKICAgICAgICAgICAgICAgaWYgKGt3c20uaW5kZXggPCBrd3NldF9l eGFjdF9tYXRjaGVzKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIGVu ZCA9IG1lbWNociAoYmVnLCBlb2wsIGJ1ZmxpbSAtIGJlZyk7Ci0gICAgICAgICAgICAgICAg ICBlbmQgPSBlbmQgPyBlbmQgKyAxIDogYnVmbGltOwogICAgICAgICAgICAgICAgICAgaWYg KE1CX0NVUl9NQVggPT0gMSkKICAgICAgICAgICAgICAgICAgICAgZ290byBzdWNjZXNzOwog ICAgICAgICAgICAgICAgICAgaWYgKG1iX3N0YXJ0IDwgYmVnKQpAQCAtMjU2LDkgKzI1Niw2 IEBAIEVHZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICpt YXRjaF9zaXplLAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZSBpZiAo IWRmYWZhc3QpCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgLyogTmFy cm93IGRvd24gdG8gdGhlIGxpbmUgd2UndmUgZm91bmQgaWYgZGZhIGlzbid0IGZhc3QuICov Ci0gICAgICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIgKG1hdGNoLCBlb2wsIGJ1ZmxpbSAt IGJlZyk7Ci0gICAgICAgICAgICAgICAgICBlbmQgPSBlbmQgPyBlbmQgKyAxIDogYnVmbGlt OwogICAgICAgICAgICAgICAgICAgaWYgKGRmYWhpbnQgKGRmYSwgYmVnLCAoY2hhciAqKSBl bmQsIE5VTEwpID09IChzaXplX3QpIC0xKQogICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsKICAgICAgICAgICAgICAgICAgIGlmICghIGRmYWV4ZWMgKGRmYSwgYmVnLCAoY2hhciAq KSBlbmQsIDAsIE5VTEwsICZiYWNrcmVmKSkKQEAgLTI2Nyw4ICsyNjQsNyBAQCBFR2V4ZWN1 dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwK ICAgICAgICAgICAgIH0KICAgICAgICAgICBpZiAoIWt3c2V0IHx8IGRmYWZhc3QpCiAgICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgIC8qIE5vIGdvb2QgZml4ZWQgc3RyaW5ncyBvciBE RkEgaXMgZmFzdDsgc3RhcnQgd2l0aCBERkEKLSAgICAgICAgICAgICAgICAgYnJvYWRseS4g Ki8KKyAgICAgICAgICAgICAgLyogTm8gZ29vZCBmaXhlZCBzdHJpbmdzIG9yIERGQSBpcyBm YXN0OyB1c2UgREZBLiAgKi8KICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldCwgY291bnQ7 CiAgICAgICAgICAgICAgIGNoYXIgY29uc3QgKm5leHRfYmVnOwogICAgICAgICAgICAgICBj b3VudCA9IDA7CkBAIC0yODcsNyArMjgzLDcgQEAgRUdleGVjdXRlIChjaGFyIGNvbnN0ICpi dWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV4dF9iZWcgPSBiZWcg KyBvZmZzZXQ7Ci0gICAgICAgICAgICAgIC8qIE5hcnJvdyBkb3duIHRvIHRoZSBsaW5lIHdl J3ZlIGZvdW5kLiAqLworICAgICAgICAgICAgICAvKiBOYXJyb3cgZG93biB0byB0aGUgbGlu ZSB3ZSd2ZSBmb3VuZC4gICovCiAgICAgICAgICAgICAgIGJlZyA9IG1lbXJjaHIgKGJ1Ziwg ZW9sLCBuZXh0X2JlZyAtIGJ1Zik7CiAgICAgICAgICAgICAgIGJlZyA9IGJlZyA/IGJlZyAr IDEgOiBidWY7CiAgICAgICAgICAgICAgIGlmIChjb3VudCAhPSAwKQotLSAKMS45LjAKCg== --------------010601050001090003080309-- From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 27 02:15:35 2014 Received: (at 17350-done) by debbugs.gnu.org; 27 Apr 2014 06:15:35 +0000 Received: from localhost ([127.0.0.1]:59470 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WeINB-0001yq-6d for submit@debbugs.gnu.org; Sun, 27 Apr 2014 02:15:33 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:53323) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WeIN7-0001yc-RU for 17350-done@debbugs.gnu.org; Sun, 27 Apr 2014 02:15:31 -0400 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id 53028138017 for <17350-done@debbugs.gnu.org>; Sun, 27 Apr 2014 15:15:27 +0900 (JST) Received: from mail09.kcn.ne.jp ([61.86.6.188]) by imp01 with bizsmtp id uuFT1n00443QJrh01uFTS8; Sun, 27 Apr 2014 15:15:27 +0900 X-OrgRCPT: 17350-done@debbugs.gnu.org Received: from [10.120.1.53] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail09.kcn.ne.jp (Postfix) with ESMTPA id 13F3B1BD0097; Sun, 27 Apr 2014 15:15:27 +0900 (JST) Date: Sun, 27 Apr 2014 15:15:27 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <535C587C.3010801@cs.ucla.edu> References: <20140426202533.94E5.27F6AC2D@kcn.ne.jp> <535C587C.3010801@cs.ucla.edu> Message-Id: <20140427151506.5C2F.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_535C9E29000000005C23_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350-done Cc: 17350-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) --------_535C9E29000000005C23_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Paul, Thank you always for everything. Fix for dfaisfast() is right. A superset never has BACKREF. However, I think that we don't have to check the end pointer when dfaisfast is true, because run DFA for whole a buffer (use buflim) and check the end pointer. By the way, I took into another bug by my previous patch. If `kwsm.index < kwset_exact_matches', don't have to run DFA for whole a buffer. Norihiro --------_535C9E29000000005C23_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSA4NjU0YjFlYTYwYjM3OGJmYjBkODllNGViOTE4NDA5MmY0Nzk5MThjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTdW4sIDI3IEFwciAyMDE0IDE0OjU4OjM2ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogZml4IHRoZSBidWdzIGluIHByZXZpb3VzIHBhdGNoCgoqIHNyYy9kZmFzZWFyY2guYyAoRUdl eGVjdXRlKTogRml4IGl0LgotLS0KIHNyYy9kZmFzZWFyY2guYyB8IDggKysrKystLS0KIDEgZmls ZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2RmYXNlYXJjaC5jIGIvc3JjL2RmYXNlYXJjaC5jCmluZGV4IDdlZGM5NmIuLmYyMzAwOWMg MTAwNjQ0Ci0tLSBhL3NyYy9kZmFzZWFyY2guYworKysgYi9zcmMvZGZhc2VhcmNoLmMKQEAgLTIz NSwxMSArMjM1LDExIEBAIEVHZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwg c2l6ZV90ICptYXRjaF9zaXplLAogICAgICAgICAgICAgICAvKiBOYXJyb3cgZG93biB0byB0aGUg bGluZSBjb250YWluaW5nIHRoZSBjYW5kaWRhdGUuICAqLwogICAgICAgICAgICAgICBiZWcgPSBt ZW1yY2hyIChidWYsIGVvbCwgbWF0Y2ggLSBidWYpOwogICAgICAgICAgICAgICBiZWcgPSBiZWcg PyBiZWcgKyAxIDogYnVmOwotICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIgKG1hdGNoLCBlb2ws IGJ1ZmxpbSAtIG1hdGNoKTsKLSAgICAgICAgICAgICAgZW5kID0gZW5kID8gZW5kICsgMSA6IGJ1 ZmxpbTsKIAogICAgICAgICAgICAgICBpZiAoa3dzbS5pbmRleCA8IGt3c2V0X2V4YWN0X21hdGNo ZXMpCiAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgZW5kID0gbWVtY2hyICht YXRjaCwgZW9sLCBidWZsaW0gLSBtYXRjaCk7CisgICAgICAgICAgICAgICAgICBlbmQgPSBlbmQg PyBlbmQgKyAxIDogYnVmbGltOwogICAgICAgICAgICAgICAgICAgaWYgKE1CX0NVUl9NQVggPT0g MSkKICAgICAgICAgICAgICAgICAgICAgZ290byBzdWNjZXNzOwogICAgICAgICAgICAgICAgICAg aWYgKG1iX3N0YXJ0IDwgYmVnKQpAQCAtMjU2LDEzICsyNTYsMTUgQEAgRUdleGVjdXRlIChjaGFy IGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICBlbHNlIGlmICghZGZhZmFzdCkKICAgICAgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIgKG1hdGNoLCBlb2wsIGJ1ZmxpbSAt IG1hdGNoKTsKKyAgICAgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZsaW07 CiAgICAgICAgICAgICAgICAgICBpZiAoZGZhaGludCAoZGZhLCBiZWcsIChjaGFyICopIGVuZCwg TlVMTCkgPT0gKHNpemVfdCkgLTEpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg ICAgICAgICAgICAgICAgaWYgKCEgZGZhZXhlYyAoZGZhLCBiZWcsIChjaGFyICopIGVuZCwgMCwg TlVMTCwgJmJhY2tyZWYpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKCFrd3NldCB8fCBkZmFmYXN0 KQorICAgICAgICAgIGlmICgha3dzZXQgfHwgKGRmYWZhc3QgJiYga3dzbS5pbmRleCA+PSBrd3Nl dF9leGFjdF9tYXRjaGVzKSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLyogTm8gZ29v ZCBmaXhlZCBzdHJpbmdzIG9yIERGQSBpcyBmYXN0OyB1c2UgREZBLiAgKi8KICAgICAgICAgICAg ICAgc2l6ZV90IG9mZnNldCwgY291bnQ7Ci0tIAoxLjkuMgoK --------_535C9E29000000005C23_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 27 07:54:17 2014 Received: (at 17350-done) by debbugs.gnu.org; 27 Apr 2014 11:54:17 +0000 Received: from localhost ([127.0.0.1]:59639 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WeNey-000501-Ca for submit@debbugs.gnu.org; Sun, 27 Apr 2014 07:54:16 -0400 Received: from mailgw01.kcn.ne.jp ([61.86.7.208]:42350) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WeNeu-0004zn-Tv for 17350-done@debbugs.gnu.org; Sun, 27 Apr 2014 07:54:14 -0400 Received: from imp03 (mailgw7.kcn.ne.jp [61.86.15.238]) by mailgw01.kcn.ne.jp (Postfix) with ESMTP id 55BB1802D9 for <17350-done@debbugs.gnu.org>; Sun, 27 Apr 2014 20:54:10 +0900 (JST) Received: from mail09.kcn.ne.jp ([61.86.6.188]) by imp03 with bizsmtp id uzuA1n00443QJrh01zuA82; Sun, 27 Apr 2014 20:54:10 +0900 X-OrgRCPT: 17350-done@debbugs.gnu.org Received: from [10.120.1.53] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail09.kcn.ne.jp (Postfix) with ESMTPA id E610C1BD0096; Sun, 27 Apr 2014 20:54:09 +0900 (JST) Date: Sun, 27 Apr 2014 20:54:09 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <20140427151506.5C2F.27F6AC2D@kcn.ne.jp> References: <535C587C.3010801@cs.ucla.edu> <20140427151506.5C2F.27F6AC2D@kcn.ne.jp> Message-Id: <20140427205355.5C55.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_535CEAA7000000005CB9_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350-done Cc: 17350-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) --------_535CEAA7000000005CB9_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Norihiro Tanaka wrote: > By the way, I took into another bug by my previous patch. If > `kwsm.index < kwset_exact_matches', don't have to run DFA for whole a buffer. I found a issue in the patch. If failed in DFA after succeed in kwset, doesn't return to kwset until reaches the end of the buffer or find a match. By that, thought some cases speed up, there is also a case slowdown. Although A is speed-up, B is slowdown. (A) yes abcdabc | head -50000000 >k env LC_ALL=C time -p src/grep abcd.bd k (B) yes "abcdabc $(yes jjjjjjj | head -99)" | head -50000000 >k env LC_ALL=C time -p src/grep abcd.bd k In A, KWset doesn't work at all, and it's harmful. OTOH, in B, It works effectively in A. I considered only the case of A, but it's necessary to consider how B does not slowdown. I wrote the patch for the master to return to KWset, after checking with DFA about 30 line. `30' is based on results of the tests. However, I don't so like this patch, since the basis to 30 is weak... Is there anyone that have any good ideas? Norihiro --------_535CEAA7000000005CB9_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSA0ZDZhNjAyOTM2MWVkYzI3MTBjNzI5ZmU5OWZiMmVhNTYwMDdiZjg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTdW4sIDI3IEFwciAyMDE0IDIwOjE4OjU4ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZ3Jl cDogYWp1c3RtZW50IG9mIHRpbWluZyBiYWNrIHRvIGt3c2V0IHdoZW4gZGZhaXNmYXN0IGlzCiB0 cnVlCgpJZiBmYWlsZWQgaW4gREZBIGFmdGVyIHN1Y2NlZWQgaW4ga3dzZXQsIGRvZXNuJ3QgcmV0 dXJuIHRvIGt3c2V0IHVudGlsCnJlYWNoZXMgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIG9yIGZpbmQg YSBtYXRjaC4gIEJ5IHRoYXQsIHRob3VnaHQgc29tZQpjYXNlcyBzcGVlZCB1cCwgdGhlcmUgaXMg YWxzbyBhIGNhc2Ugc2xvd2Rvd24uCgpUaGlzIHBhdGNoIGFqdXN0cyB0aW1pbmcgYmFjayB0byBr d3NldCB3aGVuIGRmYWlzZmFzdCBpcyB0cnVlLgoKKiBzcmMvZGZhc2VhcmNoLmMgKEVHZXhlY3V0 ZSk6IERvIGl0LgotLS0KIHNyYy9kZmFzZWFyY2guYyB8IDI1ICsrKysrKysrKysrKysrKysrKyst LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9kZmFzZWFyY2guYyBiL3NyYy9kZmFzZWFyY2guYwppbmRleCA3ZWRj OTZiLi42MTY3YzRkIDEwMDY0NAotLS0gYS9zcmMvZGZhc2VhcmNoLmMKKysrIGIvc3JjL2RmYXNl YXJjaC5jCkBAIC0yNjEsMjUgKzI2MSwzOCBAQCBFR2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwg c2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgICAgICAgICAgICAgIGlmICgh IGRmYWV4ZWMgKGRmYSwgYmVnLCAoY2hhciAqKSBlbmQsIDAsIE5VTEwsICZiYWNrcmVmKSkKICAg ICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgZW5kICs9IChl bmQgLSBiZWcpICogMzA7CisgICAgICAgICAgICAgICAgICBpZiAoZW5kIDwgYnVmbGltKQorICAg ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgZW5kID0gbWVtY2hyIChl bmQsIGVvbCwgYnVmbGltIC0gZW5kKTsKKyAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBlbmQg PyBlbmQgKyAxIDogYnVmbGltOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGVuZCA9IGJ1ZmxpbTsKKyAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKCFrd3NldCB8fCBkZmFmYXN0KQor ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVuZCA9IGJ1ZmxpbTsKKyAgICAgICAgICBpZiAo IWt3c2V0IHx8IChkZmFmYXN0ICYmIGt3c20uaW5kZXggPj0ga3dzZXRfZXhhY3RfbWF0Y2hlcykp CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIC8qIE5vIGdvb2QgZml4ZWQgc3RyaW5ncyBv ciBERkEgaXMgZmFzdDsgdXNlIERGQS4gICovCiAgICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQs IGNvdW50OwogICAgICAgICAgICAgICBjaGFyIGNvbnN0ICpuZXh0X2JlZzsKICAgICAgICAgICAg ICAgY291bnQgPSAwOwotICAgICAgICAgICAgICBvZmZzZXQgPSBkZmFoaW50IChkZmEsIGJlZywg KGNoYXIgKikgYnVmbGltLCAmY291bnQpOworICAgICAgICAgICAgICBvZmZzZXQgPSBkZmFoaW50 IChkZmEsIGJlZywgKGNoYXIgKikgZW5kLCAmY291bnQpOwogICAgICAgICAgICAgICBpZiAob2Zm c2V0ID09IChzaXplX3QpIC0xKQotICAgICAgICAgICAgICAgIGdvdG8gZmFpbHVyZTsKKyAgICAg ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PSAoc2l6ZV90 KSAtMikKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAvKiBObyB1c2UgaGlu dC4gKi8KLSAgICAgICAgICAgICAgICAgIG5leHRfYmVnID0gZGZhZXhlYyAoZGZhLCBiZWcsIChj aGFyICopIGJ1ZmxpbSwgMCwKKyAgICAgICAgICAgICAgICAgIG5leHRfYmVnID0gZGZhZXhlYyAo ZGZhLCBiZWcsIChjaGFyICopIGVuZCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCwgJmJhY2tyZWYpOwogICAgICAgICAgICAgICAgICAgLyogSWYgdGhlcmUn cyBubyBtYXRjaCwgb3IgaWYgd2UndmUgbWF0Y2hlZCB0aGUgc2VudGluZWwsCiAgICAgICAgICAg ICAgICAgICAgICB3ZSdyZSBkb25lLiAgKi8KLSAgICAgICAgICAgICAgICAgIGlmIChuZXh0X2Jl ZyA9PSBOVUxMIHx8IG5leHRfYmVnID09IGJ1ZmxpbSkKLSAgICAgICAgICAgICAgICAgICAgZ290 byBmYWlsdXJlOworICAgICAgICAgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4 dF9iZWcgPT0gZW5kKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBuZXh0X2JlZyA9IGJl ZyArIG9mZnNldDsKLS0gCjEuOS4yCgo= --------_535CEAA7000000005CB9_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 28 02:09:51 2014 Received: (at 17350) by debbugs.gnu.org; 28 Apr 2014 06:09:51 +0000 Received: from localhost ([127.0.0.1]:43527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WeelC-0002T0-Eq for submit@debbugs.gnu.org; Mon, 28 Apr 2014 02:09:50 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:51174) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Weel9-0002Sj-Qj for 17350@debbugs.gnu.org; Mon, 28 Apr 2014 02:09:48 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 43B8239E801E; Sun, 27 Apr 2014 23:09:42 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BScJAxgQxWII; Sun, 27 Apr 2014 23:09:33 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id B08DE39E8015; Sun, 27 Apr 2014 23:09:33 -0700 (PDT) Message-ID: <535DF09A.4050300@cs.ucla.edu> Date: Sun, 27 Apr 2014 23:09:30 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset References: <535C587C.3010801@cs.ucla.edu> <20140427151506.5C2F.27F6AC2D@kcn.ne.jp> <20140427205355.5C55.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140427205355.5C55.27F6AC2D@kcn.ne.jp> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -3.0 (---) Thanks, but I'm hoping that a simpler patch is possible in that area. It is unfortunately that this part of the code calls dfaexec in 4 places and dfahint in 3. Surely we can simplify it so that it calls dfahint in one place, and dfaexec in one place -- or, if that's two ambitious, at least we should cut the complexity down somewhat. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 28 08:28:11 2014 Received: (at 17350) by debbugs.gnu.org; 28 Apr 2014 12:28:11 +0000 Received: from localhost ([127.0.0.1]:43636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WekfK-00074E-Ah for submit@debbugs.gnu.org; Mon, 28 Apr 2014 08:28:11 -0400 Received: from mailgw01.kcn.ne.jp ([61.86.7.208]:56491) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WekfE-00073Z-F5 for 17350@debbugs.gnu.org; Mon, 28 Apr 2014 08:28:08 -0400 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw01.kcn.ne.jp (Postfix) with ESMTP id A204D80250 for <17350@debbugs.gnu.org>; Mon, 28 Apr 2014 21:27:56 +0900 (JST) Received: from mail02.kcn.ne.jp ([61.86.6.181]) by imp01 with bizsmtp id vQTw1n00G3uLcVp01QTwXz; Mon, 28 Apr 2014 21:27:56 +0900 X-OrgRCPT: 17350@debbugs.gnu.org Received: from [10.120.1.47] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail02.kcn.ne.jp (Postfix) with ESMTPA id 21161F10025; Mon, 28 Apr 2014 21:27:56 +0900 (JST) Date: Mon, 28 Apr 2014 21:27:55 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <535DF09A.4050300@cs.ucla.edu> References: <20140427205355.5C55.27F6AC2D@kcn.ne.jp> <535DF09A.4050300@cs.ucla.edu> Message-Id: <20140428212743.743D.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_535E484C000000007435_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) --------_535E484C000000007435_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit I simplified a superset of DFA and EGexecute(), and changed the patch for this bug into the logic better. Now, Each dfahint and dfaexec is called in one place. Thanks, Norihiro --------_535E484C000000007435_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSA1YmFlODhjNDE5MGJmY2YzOGFlODU0YTdjOGViNmNjZWZiMWI5ZDQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDI4IEFwciAyMDE0IDIxOjEzOjU3ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxLzJd IGdyZXA6IHNpbXBsaWZpY2F0aW9uIGZvciBzdXBlcnNldAoKKiBzcmMvZGZhLmggKGRmYWhpbnQp OiBSZW1vdmUgaXQuCihkZmFzdXBlcnNldCk6IE5ldyBmdW5jdGlvbi4KKiBzcmMvZGZhLmMgKGRm YWhpbnQpOiBSZW1vdmUgaXQuCihkZmFzc2J1aWxkKTogUmVuYW1lIGZyb20gZGZhc3VwZXJzZXQu CihkZmFzdXBlcnNldCk6IE5ldyBmdW5jdGlvbi4gIGl0IHJldHVybnMgdGhlIHN1cGVyc2V0IG9u ZXNlbGYgb2YgRC4KKiBzcmMvZGZhc2VhcmNoLmM6IFN1YnN0aXR1dGUgZGZhaGludCB0byBkZmFz dXBlcnNldCBhbmQgc2ltcGxpZnkuCi0tLQogc3JjL2RmYS5jICAgICAgIHwgIDI2ICsrKystLS0t LS0tLS0tCiBzcmMvZGZhLmggICAgICAgfCAgMTMgKystLS0tLQogc3JjL2RmYXNlYXJjaC5jIHwg MTA2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDc2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCAzNjJkZTJjLi5jOTA3MGZl IDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBAIC0zMzkxLDI0ICszMzkx LDEyIEBAIGRmYWV4ZWMgKHN0cnVjdCBkZmEgKmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICpl bmQsCiAgIHJldHVybiAoY2hhciAqKSBwOwogfQogCi0vKiBTZWFyY2ggdGhyb3VnaCBhIGJ1ZmZl ciBsb29raW5nIGZvciBhIHBvdGVudGlhbCBtYXRjaCBmb3IgRC4KLSAgIFJldHVybiB0aGUgb2Zm c2V0IG9mIHRoZSBieXRlIGFmdGVyIHRoZSBmaXJzdCBwb3RlbnRpYWwgbWF0Y2guCi0gICBJZiB0 aGVyZSBpcyBubyBtYXRjaCwgcmV0dXJuIChzaXplX3QpIC0xLiAgSWYgRCBsYWNrcyBhIHN1cGVy c2V0Ci0gICBzbyBpdCdzIG5vdCBrbm93biB3aGV0aGVyIHRoZXJlIGlzIGEgbWF0Y2gsIHJldHVy biAoc2l6ZV90KSAtMi4KLSAgIEJFR0lOIHBvaW50cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBi dWZmZXIsIGFuZCBFTkQgcG9pbnRzIHRvIHRoZQotICAgZmlyc3QgYnl0ZSBhZnRlciBpdHMgZW5k LiAgU3RvcmUgYSBzZW50aW5lbCBieXRlICh1c3VhbGx5IG5ld2xpbmUpCi0gICBpbiAqRU5ELCBz byB0aGUgYWN0dWFsIGJ1ZmZlciBtdXN0IGJlIG9uZSBieXRlIGxvbmdlci4gIElmIENPVU5UIGlz Ci0gICBub24tTlVMTCwgaW5jcmVtZW50ICpDT1VOVCBvbmNlIGZvciBlYWNoIG5ld2xpbmUgcHJv Y2Vzc2VkLiAgKi8KLXNpemVfdAotZGZhaGludCAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAq YmVnaW4sIGNoYXIgKmVuZCwgc2l6ZV90ICpjb3VudCkKKy8qIFJldHVybiBzdXBlcnNldCBmb3Ig RCwgd2hpY2ggc2VhcmNocyB0aHJvdWdoIGEgYnVmZmVyIGxvb2tpbmcgZm9yIGEKKyAgIHBvdGVu dGlhbCBtYXRjaC4gICovCitzdHJ1Y3QgZGZhICoKK2RmYXN1cGVyc2V0IChzdHJ1Y3QgZGZhICpk KQogewotICBpZiAoISBkLT5zdXBlcnNldCkKLSAgICByZXR1cm4gLTI7Ci0gIGVsc2UKLSAgICB7 Ci0gICAgICBjaGFyIGNvbnN0ICptYXRjaCA9IGRmYWV4ZWMgKGQtPnN1cGVyc2V0LCBiZWdpbiwg ZW5kLCAxLCBjb3VudCwgTlVMTCk7Ci0gICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaCAtIGJlZ2lu IDogLTE7Ci0gICAgfQorICByZXR1cm4gZC0+c3VwZXJzZXQ7CiB9CiAKIGJvb2wKQEAgLTM0OTUs NyArMzQ4Myw3IEBAIGRmYW9wdGltaXplIChzdHJ1Y3QgZGZhICpkKQogfQogCiBzdGF0aWMgdm9p ZAotZGZhc3VwZXJzZXQgKHN0cnVjdCBkZmEgKmQpCitkZmFzc2J1aWxkIChzdHJ1Y3QgZGZhICpk KQogewogICBzaXplX3QgaSwgajsKICAgY2hhcmNsYXNzIGNjbDsKQEAgLTM1NzksNyArMzU2Nyw3 IEBAIGRmYWNvbXAgKGNoYXIgY29uc3QgKnMsIHNpemVfdCBsZW4sIHN0cnVjdCBkZmEgKmQsIGlu dCBzZWFyY2hmbGFnKQogICBkZmFwYXJzZSAocywgbGVuLCBkKTsKICAgZGZhbXVzdCAoZCk7CiAg IGRmYW9wdGltaXplIChkKTsKLSAgZGZhc3VwZXJzZXQgKGQpOworICBkZmFzc2J1aWxkIChkKTsK ICAgZGZhYW5hbHl6ZSAoZCwgc2VhcmNoZmxhZyk7CiAgIGlmIChkLT5zdXBlcnNldCkKICAgICBk ZmFhbmFseXplIChkLT5zdXBlcnNldCwgc2VhcmNoZmxhZyk7CmRpZmYgLS1naXQgYS9zcmMvZGZh LmggYi9zcmMvZGZhLmgKaW5kZXggZmJjYjE5MS4uMmRlN2JhOCAxMDA2NDQKLS0tIGEvc3JjL2Rm YS5oCisrKyBiL3NyYy9kZmEuaApAQCAtNzEsMTYgKzcxLDkgQEAgZXh0ZXJuIHZvaWQgZGZhY29t cCAoY2hhciBjb25zdCAqLCBzaXplX3QsIHN0cnVjdCBkZmEgKiwgaW50KTsKIGV4dGVybiBjaGFy ICpkZmFleGVjIChzdHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdpbiwgY2hhciAqZW5kLAog ICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdsaW5lLCBzaXplX3QgKmNvdW50LCBpbnQgKmJh Y2tyZWYpOwogCi0vKiBTZWFyY2ggdGhyb3VnaCBhIGJ1ZmZlciBsb29raW5nIGZvciBhIHBvdGVu dGlhbCBtYXRjaCBmb3IgRC4KLSAgIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBieXRlIGFmdGVy IHRoZSBmaXJzdCBwb3RlbnRpYWwgbWF0Y2guCi0gICBJZiB0aGVyZSBpcyBubyBtYXRjaCwgcmV0 dXJuIChzaXplX3QpIC0xLiAgSWYgRCBsYWNrcyBhIHN1cGVyc2V0Ci0gICBzbyBpdCdzIG5vdCBr bm93biB3aGV0aGVyIHRoZXJlIGlzIGEgbWF0Y2gsIHJldHVybiAoc2l6ZV90KSAtMi4KLSAgIEJF R0lOIHBvaW50cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBidWZmZXIsIGFuZCBFTkQgcG9pbnRz IHRvIHRoZQotICAgZmlyc3QgYnl0ZSBhZnRlciBpdHMgZW5kLiAgU3RvcmUgYSBzZW50aW5lbCBi eXRlICh1c3VhbGx5IG5ld2xpbmUpCi0gICBpbiAqRU5ELCBzbyB0aGUgYWN0dWFsIGJ1ZmZlciBt dXN0IGJlIG9uZSBieXRlIGxvbmdlci4gIElmIENPVU5UIGlzCi0gICBub24tTlVMTCwgaW5jcmVt ZW50ICpDT1VOVCBvbmNlIGZvciBlYWNoIG5ld2xpbmUgcHJvY2Vzc2VkLiAgKi8KLWV4dGVybiBz aXplX3QgZGZhaGludCAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVu ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpjb3VudCk7CisvKiBSZXR1cm4gc3Vw ZXJzZXQgZm9yIEQsIHdoaWNoIHNlYXJjaHMgdGhyb3VnaCBhIGJ1ZmZlciBsb29raW5nIGZvciBh CisgICBwb3RlbnRpYWwgbWF0Y2guICAqLworZXh0ZXJuIHN0cnVjdCBkZmEgKmRmYXN1cGVyc2V0 IChzdHJ1Y3QgZGZhICpkKTsKIAogLyogUmV0dXJuIHRydWUgaWYgdGhlIERGQSBpcyBsaWtlbHkg dG8gYmUgZmFzdC4gICovCiBleHRlcm4gYm9vbCBkZmFpc2Zhc3QgKHN0cnVjdCBkZmEgY29uc3Qg KikgX0dMX0FUVFJJQlVURV9QVVJFOwpkaWZmIC0tZ2l0IGEvc3JjL2RmYXNlYXJjaC5jIGIvc3Jj L2RmYXNlYXJjaC5jCmluZGV4IDdlZGM5NmIuLmMxODIyYjQgMTAwNjQ0Ci0tLSBhL3NyYy9kZmFz ZWFyY2guYworKysgYi9zcmMvZGZhc2VhcmNoLmMKQEAgLTIxMyw2ICsyMTMsNyBAQCBFR2V4ZWN1 dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAg c2l6ZV90IGxlbiwgYmVzdF9sZW47CiAgIHN0cnVjdCBrd3NtYXRjaCBrd3NtOwogICBzaXplX3Qg aTsKKyAgc3RydWN0IGRmYSAqc3VwZXJzZXQgPSBkZmFzdXBlcnNldCAoZGZhKTsKICAgYm9vbCBk ZmFmYXN0ID0gZGZhaXNmYXN0IChkZmEpOwogCiAgIG1iX3N0YXJ0ID0gYnVmOwpAQCAtMjIwLDI2 ICsyMjEsMzcgQEAgRUdleGVjdXRlIChjaGFyIGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXpl X3QgKm1hdGNoX3NpemUsCiAKICAgZm9yIChiZWcgPSBlbmQgPSBidWY7IGVuZCA8IGJ1ZmxpbTsg YmVnID0gZW5kKQogICAgIHsKKyAgICAgIGVuZCA9IGJ1ZmxpbTsKKwogICAgICAgaWYgKCFzdGFy dF9wdHIpCiAgICAgICAgIHsKLSAgICAgICAgICAvKiBXZSBkb24ndCBjYXJlIGFib3V0IGFuIGV4 YWN0IG1hdGNoLiAgKi8KKyAgICAgICAgICBjaGFyIGNvbnN0ICpuZXh0X2JlZywgKmRmYV9iZWcg PSBiZWc7CisgICAgICAgICAgc2l6ZV90IGNvdW50ID0gMDsKKyAgICAgICAgICBib29sIG5hcnJv d2VkID0gZmFsc2U7CisKKyAgICAgICAgICAvKiBUcnkgbWF0Y2hpbmcgd2l0aCBLV3NldCwgaWYg aXQncyBkZWZpbmVkLiAgKi8KICAgICAgICAgICBpZiAoa3dzZXQpCiAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgIGNoYXIgY29uc3QgKnByZXZfYmVnOworCiAgICAgICAgICAgICAgIC8qIEZp bmQgYSBwb3NzaWJsZSBtYXRjaCB1c2luZyB0aGUgS1dzZXQgbWF0Y2hlci4gICovCiAgICAgICAg ICAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVnIC0gYmVnbGluZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmxpbSAtIGJlZyArIGJlZ2xp bmUsICZrd3NtKTsKICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PSAoc2l6ZV90KSAtMSkKICAg ICAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7CiAgICAgICAgICAgICAgIG1hdGNoID0gYmVnICsg b2Zmc2V0OwotCi0gICAgICAgICAgICAgIC8qIE5hcnJvdyBkb3duIHRvIHRoZSBsaW5lIGNvbnRh aW5pbmcgdGhlIGNhbmRpZGF0ZS4gICovCisgICAgICAgICAgICAgIHByZXZfYmVnID0gYmVnOwor ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgLyogTmFycm93IGRvd24gdG8gdGhlIGxpbmUg d2UndmUgZm91bmQuICAqLwogICAgICAgICAgICAgICBiZWcgPSBtZW1yY2hyIChidWYsIGVvbCwg bWF0Y2ggLSBidWYpOwogICAgICAgICAgICAgICBiZWcgPSBiZWcgPyBiZWcgKyAxIDogYnVmOwot ICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIgKG1hdGNoLCBlb2wsIGJ1ZmxpbSAtIG1hdGNoKTsK LSAgICAgICAgICAgICAgZW5kID0gZW5kID8gZW5kICsgMSA6IGJ1ZmxpbTsKKyAgICAgICAgICAg ICAgZGZhX2JlZyA9IGJlZzsKIAogICAgICAgICAgICAgICBpZiAoa3dzbS5pbmRleCA8IGt3c2V0 X2V4YWN0X21hdGNoZXMpCiAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgZW5k ID0gbWVtY2hyIChtYXRjaCwgZW9sLCBidWZsaW0gLSBtYXRjaCk7CisgICAgICAgICAgICAgICAg ICBlbmQgPSBlbmQgPyBlbmQgKyAxIDogYnVmbGltOworCiAgICAgICAgICAgICAgICAgICBpZiAo TUJfQ1VSX01BWCA9PSAxKQogICAgICAgICAgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CiAgICAg ICAgICAgICAgICAgICBpZiAobWJfc3RhcnQgPCBiZWcpCkBAIC0yNTAsNjEgKzI2Miw2MyBAQCBF R2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6 ZSwKICAgICAgICAgICAgICAgICAgIC8qIFRoZSBtYXRjaGVkIGxpbmUgc3RhcnRzIGluIHRoZSBt aWRkbGUgb2YgYSBtdWx0aWJ5dGUKICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rlci4gIFBl cmZvcm0gdGhlIERGQSBzZWFyY2ggc3RhcnRpbmcgZnJvbSB0aGUKICAgICAgICAgICAgICAgICAg ICAgIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIuICAqLwotICAgICAgICAgICAgICAg ICAgaWYgKCEgZGZhZXhlYyAoZGZhLCBtYl9zdGFydCwgKGNoYXIgKikgZW5kLCAwLCBOVUxMLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJhY2tyZWYpKQotICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgIGRmYV9iZWcgPSBtYl9zdGFydDsK KyAgICAgICAgICAgICAgICAgIG5hcnJvd2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgIGVsc2UgaWYgKCFkZmFmYXN0KQogICAgICAgICAgICAgICAgIHsKLSAgICAg ICAgICAgICAgICAgIGlmIChkZmFoaW50IChkZmEsIGJlZywgKGNoYXIgKikgZW5kLCBOVUxMKSA9 PSAoc2l6ZV90KSAtMSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg ICAgICAgICBpZiAoISBkZmFleGVjIChkZmEsIGJlZywgKGNoYXIgKikgZW5kLCAwLCBOVUxMLCAm YmFja3JlZikpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAg ICAgZW5kID0gbWVtY2hyIChtYXRjaCwgZW9sLCBidWZsaW0gLSBtYXRjaCk7CisgICAgICAgICAg ICAgICAgICBlbmQgPSBlbmQgPyBlbmQgKyAxIDogYnVmbGltOworICAgICAgICAgICAgICAgICAg bmFycm93ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAg ICAgICBpZiAoIWt3c2V0IHx8IGRmYWZhc3QpCisKKyAgICAgICAgICAvKiBUcnkgbWF0Y2hpbmcg d2l0aCB0aGUgc3VwZXJzZXQgb2YgREZBLCBpZiBpdCdzIGRlZmluZWQuICAqLworICAgICAgICAg IGlmIChzdXBlcnNldCAmJiAhKGt3c2V0ICYmIGt3c20uaW5kZXggPCBrd3NldF9leGFjdF9tYXRj aGVzKSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgLyogTm8gZ29vZCBmaXhlZCBzdHJp bmdzIG9yIERGQSBpcyBmYXN0OyB1c2UgREZBLiAgKi8KLSAgICAgICAgICAgICAgc2l6ZV90IG9m ZnNldCwgY291bnQ7Ci0gICAgICAgICAgICAgIGNoYXIgY29uc3QgKm5leHRfYmVnOwotICAgICAg ICAgICAgICBjb3VudCA9IDA7Ci0gICAgICAgICAgICAgIG9mZnNldCA9IGRmYWhpbnQgKGRmYSwg YmVnLCAoY2hhciAqKSBidWZsaW0sICZjb3VudCk7Ci0gICAgICAgICAgICAgIGlmIChvZmZzZXQg PT0gKHNpemVfdCkgLTEpCi0gICAgICAgICAgICAgICAgZ290byBmYWlsdXJlOwotICAgICAgICAg ICAgICBpZiAob2Zmc2V0ID09IChzaXplX3QpIC0yKQorICAgICAgICAgICAgICBuZXh0X2JlZyA9 IGRmYWV4ZWMgKHN1cGVyc2V0LCBkZmFfYmVnLCAoY2hhciAqKSBlbmQsIDEsICZjb3VudCwgTlVM TCk7CisgICAgICAgICAgICAgIC8qIElmIHRoZXJlJ3Mgbm8gbWF0Y2gsIG9yIGlmIHdlJ3ZlIG1h dGNoZWQgdGhlIHNlbnRpbmVsLAorICAgICAgICAgICAgICAgICB3ZSdyZSBkb25lLiAgKi8KKyAg ICAgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4dF9iZWcgPT0gZW5kKQorICAg ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICBpZiAoIW5hcnJvd2VkKQogICAg ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIC8qIE5vIHVzZSBoaW50LiAqLwotICAg ICAgICAgICAgICAgICAgbmV4dF9iZWcgPSBkZmFleGVjIChkZmEsIGJlZywgKGNoYXIgKikgYnVm bGltLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAmYmFj a3JlZik7Ci0gICAgICAgICAgICAgICAgICAvKiBJZiB0aGVyZSdzIG5vIG1hdGNoLCBvciBpZiB3 ZSd2ZSBtYXRjaGVkIHRoZSBzZW50aW5lbCwKLSAgICAgICAgICAgICAgICAgICAgIHdlJ3JlIGRv bmUuICAqLwotICAgICAgICAgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4dF9i ZWcgPT0gYnVmbGltKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7CisgICAgICAg ICAgICAgICAgICAvKiBOYXJyb3cgZG93biB0byB0aGUgbGluZSB3ZSd2ZSBmb3VuZC4gICovCisg ICAgICAgICAgICAgICAgICBpZiAoY291bnQgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAgIGJlZyA9IG1lbXJjaHIgKGJ1ZiwgZW9sLCBuZXh0X2JlZyAt IGJ1Zik7CisgICAgICAgICAgICAgICAgICAgICAgYmVnID0gYmVnID8gYmVnICsgMSA6IGJ1ZjsK KworICAgICAgICAgICAgICAgICAgICAgIC8qIElmIGRmYWV4ZWMgbWF5IG1hdGNoIGluIG11bHRp cGxlIGxpbmVzLCB0cnkgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBpbiBvbmUg bGluZS4gICovCisgICAgICAgICAgICAgICAgICAgICAgZW5kID0gYmVnOworICAgICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgICBlbmQgPSBtZW1jaHIgKG5leHRfYmVnLCBlb2wsIGJ1ZmxpbSAtIG5leHRfYmVnKTsKKyAg ICAgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZsaW07CisgICAgICAgICAg ICAgICAgICBuYXJyb3dlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICBlbHNlCi0gICAgICAgICAgICAgICAgbmV4dF9iZWcgPSBiZWcgKyBvZmZzZXQ7CisgICAgICAg ICAgICB9CisKKyAgICAgICAgICAvKiBUcnkgbWF0Y2hpbmcgd2l0aCBERkEuICAqLworICAgICAg ICAgIG5leHRfYmVnID0gZGZhZXhlYyAoZGZhLCBkZmFfYmVnLCAoY2hhciAqKSBlbmQsIDAsICZj b3VudCwgJmJhY2tyZWYpOworCisgICAgICAgICAgLyogSWYgdGhlcmUncyBubyBtYXRjaCwgb3Ig aWYgd2UndmUgbWF0Y2hlZCB0aGUgc2VudGluZWwsCisgICAgICAgICAgICAgd2UncmUgZG9uZS4g ICovCisgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4dF9iZWcgPT0gZW5kKQor ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgaWYgKCFuYXJyb3dlZCkKKyAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgLyogTmFycm93IGRvd24gdG8gdGhlIGxpbmUgd2UndmUgZm91 bmQuICAqLwotICAgICAgICAgICAgICBiZWcgPSBtZW1yY2hyIChidWYsIGVvbCwgbmV4dF9iZWcg LSBidWYpOwotICAgICAgICAgICAgICBiZWcgPSBiZWcgPyBiZWcgKyAxIDogYnVmOwogICAgICAg ICAgICAgICBpZiAoY291bnQgIT0gMCkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg ICAgICAvKiBJZiBkZmFoaW50IG1heSBtYXRjaCBpbiBtdWx0aXBsZSBsaW5lcywgdHJ5IHRvCi0g ICAgICAgICAgICAgICAgICAgICBtYXRjaCBpbiBvbmUgbGluZS4gICovCi0gICAgICAgICAgICAg ICAgICBlbmQgPSBiZWc7Ci0gICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg ICAgICAgIGJlZyA9IG1lbXJjaHIgKGJ1ZiwgZW9sLCBuZXh0X2JlZyAtIGJ1Zik7CisgICAgICAg ICAgICAgICAgICBiZWcgPSBiZWcgPyBiZWcgKyAxIDogYnVmOwogICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgZW5kID0gbWVtY2hyIChuZXh0X2JlZywgZW9sLCBidWZsaW0gLSBuZXh0 X2JlZyk7CiAgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZsaW07Ci0gICAg ICAgICAgICAgIGlmIChvZmZzZXQgIT0gKHNpemVfdCkgLTIpCi0gICAgICAgICAgICAgICAgewot ICAgICAgICAgICAgICAgICAgbmV4dF9iZWcgPSBkZmFleGVjIChkZmEsIGJlZywgKGNoYXIgKikg ZW5kLCAwLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYmFj a3JlZik7Ci0gICAgICAgICAgICAgICAgICAvKiBJZiB0aGVyZSdzIG5vIG1hdGNoLCBvciBpZiB3 ZSd2ZSBtYXRjaGVkIHRoZSBzZW50aW5lbCwKLSAgICAgICAgICAgICAgICAgICAgIHdlJ3JlIGRv bmUuICAqLwotICAgICAgICAgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4dF9i ZWcgPT0gZW5kKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAvKiBTdWNjZXNzZnVsLCBubyBiYWNrcmVm ZXJlbmNlcyBlbmNvdW50ZXJlZCEgKi8KICAgICAgICAgICBpZiAoIWJhY2tyZWYpCiAgICAgICAg ICAgICBnb3RvIHN1Y2Nlc3M7CkBAIC0zMTQsOCArMzI4LDYgQEAgRUdleGVjdXRlIChjaGFyIGNv bnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgICAgICAgIHsKICAg ICAgICAgICAvKiBXZSBhcmUgbG9va2luZyBmb3IgdGhlIGxlZnRtb3N0ICh0aGVuIGxvbmdlc3Qp IGV4YWN0IG1hdGNoLgogICAgICAgICAgICAgIFdlIHdpbGwgZ28gdGhyb3VnaCB0aGUgb3V0ZXIg bG9vcCBvbmx5IG9uY2UuICAqLwotICAgICAgICAgIGJlZyA9IGJ1ZjsKLSAgICAgICAgICBlbmQg PSBidWZsaW07CiAgICAgICAgICAgcHRyID0gc3RhcnRfcHRyOwogICAgICAgICB9CiAKLS0gCjEu OS4yCgoKRnJvbSA3NTAxNGUzN2M0ZTY2ZWQxYTkzYjc3ZWI5ZGNiMDMzZDZkZmYxNDQ4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5l LmpwPgpEYXRlOiBNb24sIDI4IEFwciAyMDE0IDIxOjIyOjA0ICswOTAwClN1YmplY3Q6IFtQQVRD SCAyLzJdIGdyZXA6IFtQQVRDSF0gZ3JlcDogYWp1c3RtZW50IG9mIHRpbWluZyBiYWNrIHRvIGt3 c2V0CiB3aGVuIGRmYWlzZmFzdCBpcyB0cnVlCgpJZiBmYWlsZWQgaW4gREZBIGFmdGVyIHN1Y2Nl ZWQgaW4ga3dzZXQsIGRvZXNuJ3QgcmV0dXJuIHRvIGt3c2V0IHVudGlsCnJlYWNoZXMgdGhlIGVu ZCBvZiB0aGUgYnVmZmVyIG9yIGZpbmQgYSBtYXRjaC4gIEJ5IHRoYXQsIHRob3VnaHQgc29tZQpj YXNlcyBzcGVlZCB1cCwgdGhlcmUgaXMgYWxzbyBhIGNhc2Ugc2xvd2Rvd24uCgpUaGlzIHBhdGNo IGFqdXN0cyB0aW1pbmcgYmFjayB0byBrd3NldCB3aGVuIGRmYWlzZmFzdCBpcyB0cnVlLgoKKiBz cmMvZGZhc2VhcmNoLmMgKEVHZXhlY3V0ZSk6IERvIGl0LgotLS0KIHNyYy9kZmFzZWFyY2guYyB8 IDE4ICsrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvZGZhc2VhcmNoLmMgYi9zcmMvZGZhc2Vh cmNoLmMKaW5kZXggYzE4MjJiNC4uMzcxZjkwNyAxMDA2NDQKLS0tIGEvc3JjL2RmYXNlYXJjaC5j CisrKyBiL3NyYy9kZmFzZWFyY2guYwpAQCAtMjY1LDcgKzI2NSwyMyBAQCBFR2V4ZWN1dGUgKGNo YXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAgICAgICAg ICAgICAgICAgIGRmYV9iZWcgPSBtYl9zdGFydDsKICAgICAgICAgICAgICAgICAgIG5hcnJvd2Vk ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UgaWYgKCFkZmFm YXN0KQorICAgICAgICAgICAgICBlbHNlIGlmIChkZmFmYXN0ICYmIGJlZyA9PSBwcmV2X2JlZykK KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAvKiBBcyBhIGhldXJpc3RpYywg cHJlZmVyIERGQSB0byBLV3NldCB0ZW1wb3JhcmlseSwKKyAgICAgICAgICAgICAgICAgICAgIHdo ZW4gdGhlIGxldHRlciBkb2Vzbid0IGFkdmFuY2UgbXVjaC4gICovCisgICAgICAgICAgICAgICAg ICBvZmZzZXQgPSAobWF0Y2ggLSBiZWcpICogODsKKyAgICAgICAgICAgICAgICAgIGlmIChvZmZz ZXQgPCAxMDI0KQorICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSAxMDI0OworICAgICAgICAg ICAgICAgICAgZW5kID0gbWF0Y2ggKyBvZmZzZXQ7CisgICAgICAgICAgICAgICAgICBpZiAoZW5k IDwgYnVmbGltKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg ZW5kID0gbWVtY2hyIChlbmQsIGVvbCwgYnVmbGltIC0gZW5kKTsKKyAgICAgICAgICAgICAgICAg ICAgICBlbmQgPSBlbmQgPyBlbmQgKyAxIDogYnVmbGltOworICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGVuZCA9IGJ1Zmxp bTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIgKG1hdGNoLCBlb2wsIGJ1ZmxpbSAt IG1hdGNoKTsKICAgICAgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZsaW07 Ci0tIAoxLjkuMgoK --------_535E484C000000007435_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 29 08:03:17 2014 Received: (at 17350) by debbugs.gnu.org; 29 Apr 2014 12:03:17 +0000 Received: from localhost ([127.0.0.1]:44548 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wf6km-0004t9-H9 for submit@debbugs.gnu.org; Tue, 29 Apr 2014 08:03:17 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:51683) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wf6kj-0004sw-4f for 17350@debbugs.gnu.org; Tue, 29 Apr 2014 08:03:15 -0400 Received: from imp03 (mailgw7.kcn.ne.jp [61.86.15.238]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id E300FE88009 for <17350@debbugs.gnu.org>; Tue, 29 Apr 2014 21:03:07 +0900 (JST) Received: from mail03.kcn.ne.jp ([61.86.6.182]) by imp03 with bizsmtp id vo371n00T3veGq501o37sV; Tue, 29 Apr 2014 21:03:07 +0900 X-OrgRCPT: 17350@debbugs.gnu.org Received: from [10.120.1.19] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail03.kcn.ne.jp (Postfix) with ESMTPA id 2D8FA141009A; Tue, 29 Apr 2014 21:03:07 +0900 (JST) Date: Tue, 29 Apr 2014 21:03:05 +0900 From: Norihiro Tanaka To: 17350@debbugs.gnu.org Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <20140428212743.743D.27F6AC2D@kcn.ne.jp> References: <535DF09A.4050300@cs.ucla.edu> <20140428212743.743D.27F6AC2D@kcn.ne.jp> Message-Id: <20140429210254.691A.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_535F8EAB00000000690E_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350 Cc: Paul Eggert X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) --------_535F8EAB00000000690E_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit The previous version of 2nd patch wasn't so better still, because it was slow for below in order that it never fills beg == prev_beg. $ yes 'abcdabc jjjjjjj' | head -50000000 >k $ env LC_ALL=C time -p src/grep abcd.bd k Accordingly, I have fixed it. It works below if dfafast is true. - If `beg - prev_beg' is small, overhead by calls of KWset and DFA is high. So use constant 64 as minimum shift of the `end' pointer. - If ratio of `match - beg' to `beg - prev_beg' is large, KWset isn't effective. So consider it. As far as I have tested, It improves the performance of the worst cases with little slowdown to others. Thanks, Norihiro --------_535F8EAB00000000690E_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSA2YTczYTM2YjRmZmE1NWE5ZjYyMDE4Yjg2M2IwNjY3OTBiMDQ2YzAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDI4IEFwciAyMDE0IDIxOjEzOjU3ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxLzJd IGdyZXA6IHNpbXBsaWZpY2F0aW9uIGZvciBzdXBlcnNldAoKKiBzcmMvZGZhLmggKGRmYWhpbnQp OiBSZW1vdmUgaXQuCihkZmFzdXBlcnNldCk6IE5ldyBmdW5jdGlvbi4KKiBzcmMvZGZhLmMgKGRm YWhpbnQpOiBSZW1vdmUgaXQuCihkZmFzc2J1aWxkKTogUmVuYW1lIGZyb20gZGZhc3VwZXJzZXQu CihkZmFzdXBlcnNldCk6IE5ldyBmdW5jdGlvbi4gIGl0IHJldHVybnMgdGhlIHN1cGVyc2V0IG9u ZXNlbGYgb2YgRC4KKiBzcmMvZGZhc2VhcmNoLmM6IFN1YnN0aXR1dGUgZGZhaGludCB0byBkZmFz dXBlcnNldCBhbmQgc2ltcGxpZnkuCi0tLQogc3JjL2RmYS5jICAgICAgIHwgIDI2ICsrKystLS0t LS0tLS0tCiBzcmMvZGZhLmggICAgICAgfCAgMTMgKystLS0tLQogc3JjL2RmYXNlYXJjaC5jIHwg MTA2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDc2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCAzNjJkZTJjLi5jOTA3MGZl IDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBAIC0zMzkxLDI0ICszMzkx LDEyIEBAIGRmYWV4ZWMgKHN0cnVjdCBkZmEgKmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICpl bmQsCiAgIHJldHVybiAoY2hhciAqKSBwOwogfQogCi0vKiBTZWFyY2ggdGhyb3VnaCBhIGJ1ZmZl ciBsb29raW5nIGZvciBhIHBvdGVudGlhbCBtYXRjaCBmb3IgRC4KLSAgIFJldHVybiB0aGUgb2Zm c2V0IG9mIHRoZSBieXRlIGFmdGVyIHRoZSBmaXJzdCBwb3RlbnRpYWwgbWF0Y2guCi0gICBJZiB0 aGVyZSBpcyBubyBtYXRjaCwgcmV0dXJuIChzaXplX3QpIC0xLiAgSWYgRCBsYWNrcyBhIHN1cGVy c2V0Ci0gICBzbyBpdCdzIG5vdCBrbm93biB3aGV0aGVyIHRoZXJlIGlzIGEgbWF0Y2gsIHJldHVy biAoc2l6ZV90KSAtMi4KLSAgIEJFR0lOIHBvaW50cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBi dWZmZXIsIGFuZCBFTkQgcG9pbnRzIHRvIHRoZQotICAgZmlyc3QgYnl0ZSBhZnRlciBpdHMgZW5k LiAgU3RvcmUgYSBzZW50aW5lbCBieXRlICh1c3VhbGx5IG5ld2xpbmUpCi0gICBpbiAqRU5ELCBz byB0aGUgYWN0dWFsIGJ1ZmZlciBtdXN0IGJlIG9uZSBieXRlIGxvbmdlci4gIElmIENPVU5UIGlz Ci0gICBub24tTlVMTCwgaW5jcmVtZW50ICpDT1VOVCBvbmNlIGZvciBlYWNoIG5ld2xpbmUgcHJv Y2Vzc2VkLiAgKi8KLXNpemVfdAotZGZhaGludCAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAq YmVnaW4sIGNoYXIgKmVuZCwgc2l6ZV90ICpjb3VudCkKKy8qIFJldHVybiBzdXBlcnNldCBmb3Ig RCwgd2hpY2ggc2VhcmNocyB0aHJvdWdoIGEgYnVmZmVyIGxvb2tpbmcgZm9yIGEKKyAgIHBvdGVu dGlhbCBtYXRjaC4gICovCitzdHJ1Y3QgZGZhICoKK2RmYXN1cGVyc2V0IChzdHJ1Y3QgZGZhICpk KQogewotICBpZiAoISBkLT5zdXBlcnNldCkKLSAgICByZXR1cm4gLTI7Ci0gIGVsc2UKLSAgICB7 Ci0gICAgICBjaGFyIGNvbnN0ICptYXRjaCA9IGRmYWV4ZWMgKGQtPnN1cGVyc2V0LCBiZWdpbiwg ZW5kLCAxLCBjb3VudCwgTlVMTCk7Ci0gICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaCAtIGJlZ2lu IDogLTE7Ci0gICAgfQorICByZXR1cm4gZC0+c3VwZXJzZXQ7CiB9CiAKIGJvb2wKQEAgLTM0OTUs NyArMzQ4Myw3IEBAIGRmYW9wdGltaXplIChzdHJ1Y3QgZGZhICpkKQogfQogCiBzdGF0aWMgdm9p ZAotZGZhc3VwZXJzZXQgKHN0cnVjdCBkZmEgKmQpCitkZmFzc2J1aWxkIChzdHJ1Y3QgZGZhICpk KQogewogICBzaXplX3QgaSwgajsKICAgY2hhcmNsYXNzIGNjbDsKQEAgLTM1NzksNyArMzU2Nyw3 IEBAIGRmYWNvbXAgKGNoYXIgY29uc3QgKnMsIHNpemVfdCBsZW4sIHN0cnVjdCBkZmEgKmQsIGlu dCBzZWFyY2hmbGFnKQogICBkZmFwYXJzZSAocywgbGVuLCBkKTsKICAgZGZhbXVzdCAoZCk7CiAg IGRmYW9wdGltaXplIChkKTsKLSAgZGZhc3VwZXJzZXQgKGQpOworICBkZmFzc2J1aWxkIChkKTsK ICAgZGZhYW5hbHl6ZSAoZCwgc2VhcmNoZmxhZyk7CiAgIGlmIChkLT5zdXBlcnNldCkKICAgICBk ZmFhbmFseXplIChkLT5zdXBlcnNldCwgc2VhcmNoZmxhZyk7CmRpZmYgLS1naXQgYS9zcmMvZGZh LmggYi9zcmMvZGZhLmgKaW5kZXggZmJjYjE5MS4uMmRlN2JhOCAxMDA2NDQKLS0tIGEvc3JjL2Rm YS5oCisrKyBiL3NyYy9kZmEuaApAQCAtNzEsMTYgKzcxLDkgQEAgZXh0ZXJuIHZvaWQgZGZhY29t cCAoY2hhciBjb25zdCAqLCBzaXplX3QsIHN0cnVjdCBkZmEgKiwgaW50KTsKIGV4dGVybiBjaGFy ICpkZmFleGVjIChzdHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdpbiwgY2hhciAqZW5kLAog ICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdsaW5lLCBzaXplX3QgKmNvdW50LCBpbnQgKmJh Y2tyZWYpOwogCi0vKiBTZWFyY2ggdGhyb3VnaCBhIGJ1ZmZlciBsb29raW5nIGZvciBhIHBvdGVu dGlhbCBtYXRjaCBmb3IgRC4KLSAgIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBieXRlIGFmdGVy IHRoZSBmaXJzdCBwb3RlbnRpYWwgbWF0Y2guCi0gICBJZiB0aGVyZSBpcyBubyBtYXRjaCwgcmV0 dXJuIChzaXplX3QpIC0xLiAgSWYgRCBsYWNrcyBhIHN1cGVyc2V0Ci0gICBzbyBpdCdzIG5vdCBr bm93biB3aGV0aGVyIHRoZXJlIGlzIGEgbWF0Y2gsIHJldHVybiAoc2l6ZV90KSAtMi4KLSAgIEJF R0lOIHBvaW50cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBidWZmZXIsIGFuZCBFTkQgcG9pbnRz IHRvIHRoZQotICAgZmlyc3QgYnl0ZSBhZnRlciBpdHMgZW5kLiAgU3RvcmUgYSBzZW50aW5lbCBi eXRlICh1c3VhbGx5IG5ld2xpbmUpCi0gICBpbiAqRU5ELCBzbyB0aGUgYWN0dWFsIGJ1ZmZlciBt dXN0IGJlIG9uZSBieXRlIGxvbmdlci4gIElmIENPVU5UIGlzCi0gICBub24tTlVMTCwgaW5jcmVt ZW50ICpDT1VOVCBvbmNlIGZvciBlYWNoIG5ld2xpbmUgcHJvY2Vzc2VkLiAgKi8KLWV4dGVybiBz aXplX3QgZGZhaGludCAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVu ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpjb3VudCk7CisvKiBSZXR1cm4gc3Vw ZXJzZXQgZm9yIEQsIHdoaWNoIHNlYXJjaHMgdGhyb3VnaCBhIGJ1ZmZlciBsb29raW5nIGZvciBh CisgICBwb3RlbnRpYWwgbWF0Y2guICAqLworZXh0ZXJuIHN0cnVjdCBkZmEgKmRmYXN1cGVyc2V0 IChzdHJ1Y3QgZGZhICpkKTsKIAogLyogUmV0dXJuIHRydWUgaWYgdGhlIERGQSBpcyBsaWtlbHkg dG8gYmUgZmFzdC4gICovCiBleHRlcm4gYm9vbCBkZmFpc2Zhc3QgKHN0cnVjdCBkZmEgY29uc3Qg KikgX0dMX0FUVFJJQlVURV9QVVJFOwpkaWZmIC0tZ2l0IGEvc3JjL2RmYXNlYXJjaC5jIGIvc3Jj L2RmYXNlYXJjaC5jCmluZGV4IDdlZGM5NmIuLmMxODIyYjQgMTAwNjQ0Ci0tLSBhL3NyYy9kZmFz ZWFyY2guYworKysgYi9zcmMvZGZhc2VhcmNoLmMKQEAgLTIxMyw2ICsyMTMsNyBAQCBFR2V4ZWN1 dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6ZSwKICAg c2l6ZV90IGxlbiwgYmVzdF9sZW47CiAgIHN0cnVjdCBrd3NtYXRjaCBrd3NtOwogICBzaXplX3Qg aTsKKyAgc3RydWN0IGRmYSAqc3VwZXJzZXQgPSBkZmFzdXBlcnNldCAoZGZhKTsKICAgYm9vbCBk ZmFmYXN0ID0gZGZhaXNmYXN0IChkZmEpOwogCiAgIG1iX3N0YXJ0ID0gYnVmOwpAQCAtMjIwLDI2 ICsyMjEsMzcgQEAgRUdleGVjdXRlIChjaGFyIGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXpl X3QgKm1hdGNoX3NpemUsCiAKICAgZm9yIChiZWcgPSBlbmQgPSBidWY7IGVuZCA8IGJ1ZmxpbTsg YmVnID0gZW5kKQogICAgIHsKKyAgICAgIGVuZCA9IGJ1ZmxpbTsKKwogICAgICAgaWYgKCFzdGFy dF9wdHIpCiAgICAgICAgIHsKLSAgICAgICAgICAvKiBXZSBkb24ndCBjYXJlIGFib3V0IGFuIGV4 YWN0IG1hdGNoLiAgKi8KKyAgICAgICAgICBjaGFyIGNvbnN0ICpuZXh0X2JlZywgKmRmYV9iZWcg PSBiZWc7CisgICAgICAgICAgc2l6ZV90IGNvdW50ID0gMDsKKyAgICAgICAgICBib29sIG5hcnJv d2VkID0gZmFsc2U7CisKKyAgICAgICAgICAvKiBUcnkgbWF0Y2hpbmcgd2l0aCBLV3NldCwgaWYg aXQncyBkZWZpbmVkLiAgKi8KICAgICAgICAgICBpZiAoa3dzZXQpCiAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgIGNoYXIgY29uc3QgKnByZXZfYmVnOworCiAgICAgICAgICAgICAgIC8qIEZp bmQgYSBwb3NzaWJsZSBtYXRjaCB1c2luZyB0aGUgS1dzZXQgbWF0Y2hlci4gICovCiAgICAgICAg ICAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVnIC0gYmVnbGluZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmxpbSAtIGJlZyArIGJlZ2xp bmUsICZrd3NtKTsKICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PSAoc2l6ZV90KSAtMSkKICAg ICAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7CiAgICAgICAgICAgICAgIG1hdGNoID0gYmVnICsg b2Zmc2V0OwotCi0gICAgICAgICAgICAgIC8qIE5hcnJvdyBkb3duIHRvIHRoZSBsaW5lIGNvbnRh aW5pbmcgdGhlIGNhbmRpZGF0ZS4gICovCisgICAgICAgICAgICAgIHByZXZfYmVnID0gYmVnOwor ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgLyogTmFycm93IGRvd24gdG8gdGhlIGxpbmUg d2UndmUgZm91bmQuICAqLwogICAgICAgICAgICAgICBiZWcgPSBtZW1yY2hyIChidWYsIGVvbCwg bWF0Y2ggLSBidWYpOwogICAgICAgICAgICAgICBiZWcgPSBiZWcgPyBiZWcgKyAxIDogYnVmOwot ICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIgKG1hdGNoLCBlb2wsIGJ1ZmxpbSAtIG1hdGNoKTsK LSAgICAgICAgICAgICAgZW5kID0gZW5kID8gZW5kICsgMSA6IGJ1ZmxpbTsKKyAgICAgICAgICAg ICAgZGZhX2JlZyA9IGJlZzsKIAogICAgICAgICAgICAgICBpZiAoa3dzbS5pbmRleCA8IGt3c2V0 X2V4YWN0X21hdGNoZXMpCiAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgZW5k ID0gbWVtY2hyIChtYXRjaCwgZW9sLCBidWZsaW0gLSBtYXRjaCk7CisgICAgICAgICAgICAgICAg ICBlbmQgPSBlbmQgPyBlbmQgKyAxIDogYnVmbGltOworCiAgICAgICAgICAgICAgICAgICBpZiAo TUJfQ1VSX01BWCA9PSAxKQogICAgICAgICAgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CiAgICAg ICAgICAgICAgICAgICBpZiAobWJfc3RhcnQgPCBiZWcpCkBAIC0yNTAsNjEgKzI2Miw2MyBAQCBF R2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6 ZSwKICAgICAgICAgICAgICAgICAgIC8qIFRoZSBtYXRjaGVkIGxpbmUgc3RhcnRzIGluIHRoZSBt aWRkbGUgb2YgYSBtdWx0aWJ5dGUKICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rlci4gIFBl cmZvcm0gdGhlIERGQSBzZWFyY2ggc3RhcnRpbmcgZnJvbSB0aGUKICAgICAgICAgICAgICAgICAg ICAgIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIuICAqLwotICAgICAgICAgICAgICAg ICAgaWYgKCEgZGZhZXhlYyAoZGZhLCBtYl9zdGFydCwgKGNoYXIgKikgZW5kLCAwLCBOVUxMLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJhY2tyZWYpKQotICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgIGRmYV9iZWcgPSBtYl9zdGFydDsK KyAgICAgICAgICAgICAgICAgIG5hcnJvd2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgIGVsc2UgaWYgKCFkZmFmYXN0KQogICAgICAgICAgICAgICAgIHsKLSAgICAg ICAgICAgICAgICAgIGlmIChkZmFoaW50IChkZmEsIGJlZywgKGNoYXIgKikgZW5kLCBOVUxMKSA9 PSAoc2l6ZV90KSAtMSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg ICAgICAgICBpZiAoISBkZmFleGVjIChkZmEsIGJlZywgKGNoYXIgKikgZW5kLCAwLCBOVUxMLCAm YmFja3JlZikpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAg ICAgZW5kID0gbWVtY2hyIChtYXRjaCwgZW9sLCBidWZsaW0gLSBtYXRjaCk7CisgICAgICAgICAg ICAgICAgICBlbmQgPSBlbmQgPyBlbmQgKyAxIDogYnVmbGltOworICAgICAgICAgICAgICAgICAg bmFycm93ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAg ICAgICBpZiAoIWt3c2V0IHx8IGRmYWZhc3QpCisKKyAgICAgICAgICAvKiBUcnkgbWF0Y2hpbmcg d2l0aCB0aGUgc3VwZXJzZXQgb2YgREZBLCBpZiBpdCdzIGRlZmluZWQuICAqLworICAgICAgICAg IGlmIChzdXBlcnNldCAmJiAhKGt3c2V0ICYmIGt3c20uaW5kZXggPCBrd3NldF9leGFjdF9tYXRj aGVzKSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgLyogTm8gZ29vZCBmaXhlZCBzdHJp bmdzIG9yIERGQSBpcyBmYXN0OyB1c2UgREZBLiAgKi8KLSAgICAgICAgICAgICAgc2l6ZV90IG9m ZnNldCwgY291bnQ7Ci0gICAgICAgICAgICAgIGNoYXIgY29uc3QgKm5leHRfYmVnOwotICAgICAg ICAgICAgICBjb3VudCA9IDA7Ci0gICAgICAgICAgICAgIG9mZnNldCA9IGRmYWhpbnQgKGRmYSwg YmVnLCAoY2hhciAqKSBidWZsaW0sICZjb3VudCk7Ci0gICAgICAgICAgICAgIGlmIChvZmZzZXQg PT0gKHNpemVfdCkgLTEpCi0gICAgICAgICAgICAgICAgZ290byBmYWlsdXJlOwotICAgICAgICAg ICAgICBpZiAob2Zmc2V0ID09IChzaXplX3QpIC0yKQorICAgICAgICAgICAgICBuZXh0X2JlZyA9 IGRmYWV4ZWMgKHN1cGVyc2V0LCBkZmFfYmVnLCAoY2hhciAqKSBlbmQsIDEsICZjb3VudCwgTlVM TCk7CisgICAgICAgICAgICAgIC8qIElmIHRoZXJlJ3Mgbm8gbWF0Y2gsIG9yIGlmIHdlJ3ZlIG1h dGNoZWQgdGhlIHNlbnRpbmVsLAorICAgICAgICAgICAgICAgICB3ZSdyZSBkb25lLiAgKi8KKyAg ICAgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4dF9iZWcgPT0gZW5kKQorICAg ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICBpZiAoIW5hcnJvd2VkKQogICAg ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIC8qIE5vIHVzZSBoaW50LiAqLwotICAg ICAgICAgICAgICAgICAgbmV4dF9iZWcgPSBkZmFleGVjIChkZmEsIGJlZywgKGNoYXIgKikgYnVm bGltLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAmYmFj a3JlZik7Ci0gICAgICAgICAgICAgICAgICAvKiBJZiB0aGVyZSdzIG5vIG1hdGNoLCBvciBpZiB3 ZSd2ZSBtYXRjaGVkIHRoZSBzZW50aW5lbCwKLSAgICAgICAgICAgICAgICAgICAgIHdlJ3JlIGRv bmUuICAqLwotICAgICAgICAgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4dF9i ZWcgPT0gYnVmbGltKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7CisgICAgICAg ICAgICAgICAgICAvKiBOYXJyb3cgZG93biB0byB0aGUgbGluZSB3ZSd2ZSBmb3VuZC4gICovCisg ICAgICAgICAgICAgICAgICBpZiAoY291bnQgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAgIGJlZyA9IG1lbXJjaHIgKGJ1ZiwgZW9sLCBuZXh0X2JlZyAt IGJ1Zik7CisgICAgICAgICAgICAgICAgICAgICAgYmVnID0gYmVnID8gYmVnICsgMSA6IGJ1ZjsK KworICAgICAgICAgICAgICAgICAgICAgIC8qIElmIGRmYWV4ZWMgbWF5IG1hdGNoIGluIG11bHRp cGxlIGxpbmVzLCB0cnkgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBpbiBvbmUg bGluZS4gICovCisgICAgICAgICAgICAgICAgICAgICAgZW5kID0gYmVnOworICAgICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgICBlbmQgPSBtZW1jaHIgKG5leHRfYmVnLCBlb2wsIGJ1ZmxpbSAtIG5leHRfYmVnKTsKKyAg ICAgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZsaW07CisgICAgICAgICAg ICAgICAgICBuYXJyb3dlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICBlbHNlCi0gICAgICAgICAgICAgICAgbmV4dF9iZWcgPSBiZWcgKyBvZmZzZXQ7CisgICAgICAg ICAgICB9CisKKyAgICAgICAgICAvKiBUcnkgbWF0Y2hpbmcgd2l0aCBERkEuICAqLworICAgICAg ICAgIG5leHRfYmVnID0gZGZhZXhlYyAoZGZhLCBkZmFfYmVnLCAoY2hhciAqKSBlbmQsIDAsICZj b3VudCwgJmJhY2tyZWYpOworCisgICAgICAgICAgLyogSWYgdGhlcmUncyBubyBtYXRjaCwgb3Ig aWYgd2UndmUgbWF0Y2hlZCB0aGUgc2VudGluZWwsCisgICAgICAgICAgICAgd2UncmUgZG9uZS4g ICovCisgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4dF9iZWcgPT0gZW5kKQor ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgaWYgKCFuYXJyb3dlZCkKKyAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgLyogTmFycm93IGRvd24gdG8gdGhlIGxpbmUgd2UndmUgZm91 bmQuICAqLwotICAgICAgICAgICAgICBiZWcgPSBtZW1yY2hyIChidWYsIGVvbCwgbmV4dF9iZWcg LSBidWYpOwotICAgICAgICAgICAgICBiZWcgPSBiZWcgPyBiZWcgKyAxIDogYnVmOwogICAgICAg ICAgICAgICBpZiAoY291bnQgIT0gMCkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg ICAgICAvKiBJZiBkZmFoaW50IG1heSBtYXRjaCBpbiBtdWx0aXBsZSBsaW5lcywgdHJ5IHRvCi0g ICAgICAgICAgICAgICAgICAgICBtYXRjaCBpbiBvbmUgbGluZS4gICovCi0gICAgICAgICAgICAg ICAgICBlbmQgPSBiZWc7Ci0gICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg ICAgICAgIGJlZyA9IG1lbXJjaHIgKGJ1ZiwgZW9sLCBuZXh0X2JlZyAtIGJ1Zik7CisgICAgICAg ICAgICAgICAgICBiZWcgPSBiZWcgPyBiZWcgKyAxIDogYnVmOwogICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgZW5kID0gbWVtY2hyIChuZXh0X2JlZywgZW9sLCBidWZsaW0gLSBuZXh0 X2JlZyk7CiAgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZsaW07Ci0gICAg ICAgICAgICAgIGlmIChvZmZzZXQgIT0gKHNpemVfdCkgLTIpCi0gICAgICAgICAgICAgICAgewot ICAgICAgICAgICAgICAgICAgbmV4dF9iZWcgPSBkZmFleGVjIChkZmEsIGJlZywgKGNoYXIgKikg ZW5kLCAwLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYmFj a3JlZik7Ci0gICAgICAgICAgICAgICAgICAvKiBJZiB0aGVyZSdzIG5vIG1hdGNoLCBvciBpZiB3 ZSd2ZSBtYXRjaGVkIHRoZSBzZW50aW5lbCwKLSAgICAgICAgICAgICAgICAgICAgIHdlJ3JlIGRv bmUuICAqLwotICAgICAgICAgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4dF9i ZWcgPT0gZW5kKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAvKiBTdWNjZXNzZnVsLCBubyBiYWNrcmVm ZXJlbmNlcyBlbmNvdW50ZXJlZCEgKi8KICAgICAgICAgICBpZiAoIWJhY2tyZWYpCiAgICAgICAg ICAgICBnb3RvIHN1Y2Nlc3M7CkBAIC0zMTQsOCArMzI4LDYgQEAgRUdleGVjdXRlIChjaGFyIGNv bnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgICAgICAgIHsKICAg ICAgICAgICAvKiBXZSBhcmUgbG9va2luZyBmb3IgdGhlIGxlZnRtb3N0ICh0aGVuIGxvbmdlc3Qp IGV4YWN0IG1hdGNoLgogICAgICAgICAgICAgIFdlIHdpbGwgZ28gdGhyb3VnaCB0aGUgb3V0ZXIg bG9vcCBvbmx5IG9uY2UuICAqLwotICAgICAgICAgIGJlZyA9IGJ1ZjsKLSAgICAgICAgICBlbmQg PSBidWZsaW07CiAgICAgICAgICAgcHRyID0gc3RhcnRfcHRyOwogICAgICAgICB9CiAKLS0gCjEu OS4yCgoKRnJvbSBjZWU5YjZiOWVmYTZkYjkwNTY2ZjMyNDA4ZGFiNjA2ODBhN2IzYTlmIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5l LmpwPgpEYXRlOiBNb24sIDI4IEFwciAyMDE0IDIxOjIyOjA0ICswOTAwClN1YmplY3Q6IFtQQVRD SCAyLzJdIGdyZXA6IFtQQVRDSF0gZ3JlcDogYWp1c3RtZW50IG9mIHRpbWluZyBiYWNrIHRvIGt3 c2V0CiB3aGVuIGRmYWlzZmFzdCBpcyB0cnVlCgpJZiBmYWlsZWQgaW4gREZBIGFmdGVyIHN1Y2Nl ZWQgaW4ga3dzZXQsIGRvZXNuJ3QgcmV0dXJuIHRvIGt3c2V0IHVudGlsCnJlYWNoZXMgdGhlIGVu ZCBvZiB0aGUgYnVmZmVyIG9yIGZpbmQgYSBtYXRjaC4gIEJ5IHRoYXQsIHRob3VnaHQgc29tZQpj YXNlcyBzcGVlZCB1cCwgdGhlcmUgaXMgYWxzbyBhIGNhc2Ugc2xvd2Rvd24uCgpUaGlzIHBhdGNo IGFqdXN0cyB0aW1pbmcgYmFjayB0byBrd3NldCB3aGVuIGRmYWlzZmFzdCBpcyB0cnVlLgoKKiBz cmMvZGZhc2VhcmNoLmMgKEVHZXhlY3V0ZSk6IERvIGl0LgotLS0KIHNyYy9kZmFzZWFyY2guYyB8 IDMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDI5IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvZGZhc2VhcmNoLmMg Yi9zcmMvZGZhc2VhcmNoLmMKaW5kZXggYzE4MjJiNC4uNmQzNzY1YiAxMDA2NDQKLS0tIGEvc3Jj L2RmYXNlYXJjaC5jCisrKyBiL3NyYy9kZmFzZWFyY2guYwpAQCAtMjY1LDcgKzI2NSwzNSBAQCBF R2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6 ZSwKICAgICAgICAgICAgICAgICAgIGRmYV9iZWcgPSBtYl9zdGFydDsKICAgICAgICAgICAgICAg ICAgIG5hcnJvd2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVs c2UgaWYgKCFkZmFmYXN0KQorICAgICAgICAgICAgICBlbHNlIGlmIChkZmFmYXN0KQorICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIC8qIERldGVybWluZSB0aGUgZW5kIHBvaW50 ZXIgdG8gc3RhcnQgd2l0aCBERkEuICBJdCdzCisgICAgICAgICAgICAgICAgICAgICBgbWF0Y2gn IGJ5IGRlZmF1bHQuICBJZiB0aGUgb2Zmc2V0IGZyb20gcHJldl9iZWcgaXMKKyAgICAgICAgICAg ICAgICAgICAgIGxlc3NlciB0aGFuIChtYXRjaCAtIGJlZykgKiA0IGFuZC9vciA2NCwgc2V0IGl0 IHRvCisgICAgICAgICAgICAgICAgICAgICBncmVhdGVzdCB2YWx1ZSBpbiB0aGVtLiAgQSBsYXJn ZXIgb2Zmc2V0IHRoYW4gdGhlCisgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IG1lYW5zIHRo YXQgREZBIGlzIHByZWZlcnJlZCB0byBLV3NldC4gICovCisgICAgICAgICAgICAgICAgICBvZmZz ZXQgPSAobWF0Y2ggLSBiZWcpICogNDsKKyAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPCA2 NCkKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gNjQ7CisgICAgICAgICAgICAgICAgICBp ZiAocHJldl9iZWcgKyBvZmZzZXQgPiBtYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgICAgICAgIGVuZCA9IHByZXZfYmVnICsgb2Zmc2V0OworICAgICAgICAgICAg ICAgICAgICAgIGlmIChlbmQgPCBidWZsaW0pCisgICAgICAgICAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IG1lbWNociAoZW5kLCBlb2wsIGJ1ZmxpbSAt IGVuZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBi dWZsaW07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg ZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gYnVmbGltOworICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIgKG1hdGNoLCBlb2wsIGJ1ZmxpbSAt IG1hdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBlbmQgPyBlbmQgKyAxIDogYnVm bGltOworICAgICAgICAgICAgICAgICAgICAgIG5hcnJvd2VkID0gdHJ1ZTsKKyAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQogICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGVuZCA9IG1lbWNociAobWF0Y2gsIGVvbCwg YnVmbGltIC0gbWF0Y2gpOwogICAgICAgICAgICAgICAgICAgZW5kID0gZW5kID8gZW5kICsgMSA6 IGJ1ZmxpbTsKLS0gCjEuOS4yCgo= --------_535F8EAB00000000690E_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 30 03:10:45 2014 Received: (at 17350) by debbugs.gnu.org; 30 Apr 2014 07:10:45 +0000 Received: from localhost ([127.0.0.1]:45936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfOfD-00060P-TU for submit@debbugs.gnu.org; Wed, 30 Apr 2014 03:10:45 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:38127) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfOf7-0005zx-9C for 17350@debbugs.gnu.org; Wed, 30 Apr 2014 03:10:39 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 8F308A60039; Wed, 30 Apr 2014 00:10:31 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id C4e60DaDTlz9; Wed, 30 Apr 2014 00:10:27 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 00C0EA60001; Wed, 30 Apr 2014 00:10:26 -0700 (PDT) Message-ID: <5360A1E2.1020008@cs.ucla.edu> Date: Wed, 30 Apr 2014 00:10:26 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Norihiro Tanaka , 17350@debbugs.gnu.org Subject: Re: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset References: <535DF09A.4050300@cs.ucla.edu> <20140428212743.743D.27F6AC2D@kcn.ne.jp> <20140429210254.691A.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140429210254.691A.27F6AC2D@kcn.ne.jp> Content-Type: multipart/mixed; boundary="------------040500080106060609070900" X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17350 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -3.0 (---) This is a multi-part message in MIME format. --------------040500080106060609070900 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thanks for working on that. A few comments. First, the ChangeLog entries can be improved; I put a proposed rewrite of them into the first two attached patches (the code's the same). Second, building with --enable-gcc-warnings causes a complaint about dfasuperset needing to be declared pure. Third, EGexecute still has quite a bit of duplicate code, even with the patch. I took at shot at simplifying it (and fixing the 2nd problem) in the third attached patch. This passes "make check" but I have not benchmarked it. --------------040500080106060609070900 Content-Type: text/plain; charset=UTF-8; name="0001-grep-simplify-superset.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-grep-simplify-superset.patch" RnJvbSBjOWQ0ODQxOWYzNmU4NTJkNGY2NzM2YjMwMmJiZDg5MGUwMWE3NTg0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5l LmpwPgpEYXRlOiBNb24sIDI4IEFwciAyMDE0IDIxOjEzOjU3ICswOTAwClN1YmplY3Q6IFtQ QVRDSCAxLzNdIGdyZXA6IHNpbXBsaWZ5IHN1cGVyc2V0CgoqIHNyYy9kZmEuaCAoZGZhaGlu dCk6IFJlbW92ZSBkZWNsLgooZGZhc3VwZXJzZXQpOiBOZXcgZGVjbC4KKiBzcmMvZGZhLmMg KGRmYWhpbnQpOiBSZW1vdmUuCihkZmFzc2J1aWxkKTogUmVuYW1lIGZyb20gZGZhc3VwZXJz ZXQuCihkZmFzdXBlcnNldCk6IE5ldyBmdW5jdGlvbi4gIGl0IHJldHVybnMgdGhlIHN1cGVy c2V0IG9mIEQuCiogc3JjL2RmYXNlYXJjaC5jOiBVc2UgZGZhc3VwZXJzZXQgaW5zdGVhZCBv ZiBkZmFoaW50LCBhbmQgc2ltcGxpZnkuCi0tLQogc3JjL2RmYS5jICAgICAgIHwgIDI2ICsr KystLS0tLS0tLS0tCiBzcmMvZGZhLmggICAgICAgfCAgMTMgKystLS0tLQogc3JjL2RmYXNl YXJjaC5jIHwgMTA2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDc2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRl eCAzNjJkZTJjLi5jOTA3MGZlIDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2Rm YS5jCkBAIC0zMzkxLDI0ICszMzkxLDEyIEBAIGRmYWV4ZWMgKHN0cnVjdCBkZmEgKmQsIGNo YXIgY29uc3QgKmJlZ2luLCBjaGFyICplbmQsCiAgIHJldHVybiAoY2hhciAqKSBwOwogfQog Ci0vKiBTZWFyY2ggdGhyb3VnaCBhIGJ1ZmZlciBsb29raW5nIGZvciBhIHBvdGVudGlhbCBt YXRjaCBmb3IgRC4KLSAgIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBieXRlIGFmdGVyIHRo ZSBmaXJzdCBwb3RlbnRpYWwgbWF0Y2guCi0gICBJZiB0aGVyZSBpcyBubyBtYXRjaCwgcmV0 dXJuIChzaXplX3QpIC0xLiAgSWYgRCBsYWNrcyBhIHN1cGVyc2V0Ci0gICBzbyBpdCdzIG5v dCBrbm93biB3aGV0aGVyIHRoZXJlIGlzIGEgbWF0Y2gsIHJldHVybiAoc2l6ZV90KSAtMi4K LSAgIEJFR0lOIHBvaW50cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBidWZmZXIsIGFuZCBF TkQgcG9pbnRzIHRvIHRoZQotICAgZmlyc3QgYnl0ZSBhZnRlciBpdHMgZW5kLiAgU3RvcmUg YSBzZW50aW5lbCBieXRlICh1c3VhbGx5IG5ld2xpbmUpCi0gICBpbiAqRU5ELCBzbyB0aGUg YWN0dWFsIGJ1ZmZlciBtdXN0IGJlIG9uZSBieXRlIGxvbmdlci4gIElmIENPVU5UIGlzCi0g ICBub24tTlVMTCwgaW5jcmVtZW50ICpDT1VOVCBvbmNlIGZvciBlYWNoIG5ld2xpbmUgcHJv Y2Vzc2VkLiAgKi8KLXNpemVfdAotZGZhaGludCAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25z dCAqYmVnaW4sIGNoYXIgKmVuZCwgc2l6ZV90ICpjb3VudCkKKy8qIFJldHVybiBzdXBlcnNl dCBmb3IgRCwgd2hpY2ggc2VhcmNocyB0aHJvdWdoIGEgYnVmZmVyIGxvb2tpbmcgZm9yIGEK KyAgIHBvdGVudGlhbCBtYXRjaC4gICovCitzdHJ1Y3QgZGZhICoKK2RmYXN1cGVyc2V0IChz dHJ1Y3QgZGZhICpkKQogewotICBpZiAoISBkLT5zdXBlcnNldCkKLSAgICByZXR1cm4gLTI7 Ci0gIGVsc2UKLSAgICB7Ci0gICAgICBjaGFyIGNvbnN0ICptYXRjaCA9IGRmYWV4ZWMgKGQt PnN1cGVyc2V0LCBiZWdpbiwgZW5kLCAxLCBjb3VudCwgTlVMTCk7Ci0gICAgICByZXR1cm4g bWF0Y2ggPyBtYXRjaCAtIGJlZ2luIDogLTE7Ci0gICAgfQorICByZXR1cm4gZC0+c3VwZXJz ZXQ7CiB9CiAKIGJvb2wKQEAgLTM0OTUsNyArMzQ4Myw3IEBAIGRmYW9wdGltaXplIChzdHJ1 Y3QgZGZhICpkKQogfQogCiBzdGF0aWMgdm9pZAotZGZhc3VwZXJzZXQgKHN0cnVjdCBkZmEg KmQpCitkZmFzc2J1aWxkIChzdHJ1Y3QgZGZhICpkKQogewogICBzaXplX3QgaSwgajsKICAg Y2hhcmNsYXNzIGNjbDsKQEAgLTM1NzksNyArMzU2Nyw3IEBAIGRmYWNvbXAgKGNoYXIgY29u c3QgKnMsIHNpemVfdCBsZW4sIHN0cnVjdCBkZmEgKmQsIGludCBzZWFyY2hmbGFnKQogICBk ZmFwYXJzZSAocywgbGVuLCBkKTsKICAgZGZhbXVzdCAoZCk7CiAgIGRmYW9wdGltaXplIChk KTsKLSAgZGZhc3VwZXJzZXQgKGQpOworICBkZmFzc2J1aWxkIChkKTsKICAgZGZhYW5hbHl6 ZSAoZCwgc2VhcmNoZmxhZyk7CiAgIGlmIChkLT5zdXBlcnNldCkKICAgICBkZmFhbmFseXpl IChkLT5zdXBlcnNldCwgc2VhcmNoZmxhZyk7CmRpZmYgLS1naXQgYS9zcmMvZGZhLmggYi9z cmMvZGZhLmgKaW5kZXggZmJjYjE5MS4uMmRlN2JhOCAxMDA2NDQKLS0tIGEvc3JjL2RmYS5o CisrKyBiL3NyYy9kZmEuaApAQCAtNzEsMTYgKzcxLDkgQEAgZXh0ZXJuIHZvaWQgZGZhY29t cCAoY2hhciBjb25zdCAqLCBzaXplX3QsIHN0cnVjdCBkZmEgKiwgaW50KTsKIGV4dGVybiBj aGFyICpkZmFleGVjIChzdHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdpbiwgY2hhciAq ZW5kLAogICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdsaW5lLCBzaXplX3QgKmNvdW50 LCBpbnQgKmJhY2tyZWYpOwogCi0vKiBTZWFyY2ggdGhyb3VnaCBhIGJ1ZmZlciBsb29raW5n IGZvciBhIHBvdGVudGlhbCBtYXRjaCBmb3IgRC4KLSAgIFJldHVybiB0aGUgb2Zmc2V0IG9m IHRoZSBieXRlIGFmdGVyIHRoZSBmaXJzdCBwb3RlbnRpYWwgbWF0Y2guCi0gICBJZiB0aGVy ZSBpcyBubyBtYXRjaCwgcmV0dXJuIChzaXplX3QpIC0xLiAgSWYgRCBsYWNrcyBhIHN1cGVy c2V0Ci0gICBzbyBpdCdzIG5vdCBrbm93biB3aGV0aGVyIHRoZXJlIGlzIGEgbWF0Y2gsIHJl dHVybiAoc2l6ZV90KSAtMi4KLSAgIEJFR0lOIHBvaW50cyB0byB0aGUgYmVnaW5uaW5nIG9m IHRoZSBidWZmZXIsIGFuZCBFTkQgcG9pbnRzIHRvIHRoZQotICAgZmlyc3QgYnl0ZSBhZnRl ciBpdHMgZW5kLiAgU3RvcmUgYSBzZW50aW5lbCBieXRlICh1c3VhbGx5IG5ld2xpbmUpCi0g ICBpbiAqRU5ELCBzbyB0aGUgYWN0dWFsIGJ1ZmZlciBtdXN0IGJlIG9uZSBieXRlIGxvbmdl ci4gIElmIENPVU5UIGlzCi0gICBub24tTlVMTCwgaW5jcmVtZW50ICpDT1VOVCBvbmNlIGZv ciBlYWNoIG5ld2xpbmUgcHJvY2Vzc2VkLiAgKi8KLWV4dGVybiBzaXplX3QgZGZhaGludCAo c3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVuZCwKLSAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZV90ICpjb3VudCk7CisvKiBSZXR1cm4gc3VwZXJzZXQgZm9y IEQsIHdoaWNoIHNlYXJjaHMgdGhyb3VnaCBhIGJ1ZmZlciBsb29raW5nIGZvciBhCisgICBw b3RlbnRpYWwgbWF0Y2guICAqLworZXh0ZXJuIHN0cnVjdCBkZmEgKmRmYXN1cGVyc2V0IChz dHJ1Y3QgZGZhICpkKTsKIAogLyogUmV0dXJuIHRydWUgaWYgdGhlIERGQSBpcyBsaWtlbHkg dG8gYmUgZmFzdC4gICovCiBleHRlcm4gYm9vbCBkZmFpc2Zhc3QgKHN0cnVjdCBkZmEgY29u c3QgKikgX0dMX0FUVFJJQlVURV9QVVJFOwpkaWZmIC0tZ2l0IGEvc3JjL2RmYXNlYXJjaC5j IGIvc3JjL2RmYXNlYXJjaC5jCmluZGV4IDdlZGM5NmIuLmMxODIyYjQgMTAwNjQ0Ci0tLSBh L3NyYy9kZmFzZWFyY2guYworKysgYi9zcmMvZGZhc2VhcmNoLmMKQEAgLTIxMyw2ICsyMTMs NyBAQCBFR2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAq bWF0Y2hfc2l6ZSwKICAgc2l6ZV90IGxlbiwgYmVzdF9sZW47CiAgIHN0cnVjdCBrd3NtYXRj aCBrd3NtOwogICBzaXplX3QgaTsKKyAgc3RydWN0IGRmYSAqc3VwZXJzZXQgPSBkZmFzdXBl cnNldCAoZGZhKTsKICAgYm9vbCBkZmFmYXN0ID0gZGZhaXNmYXN0IChkZmEpOwogCiAgIG1i X3N0YXJ0ID0gYnVmOwpAQCAtMjIwLDI2ICsyMjEsMzcgQEAgRUdleGVjdXRlIChjaGFyIGNv bnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAKICAgZm9yIChi ZWcgPSBlbmQgPSBidWY7IGVuZCA8IGJ1ZmxpbTsgYmVnID0gZW5kKQogICAgIHsKKyAgICAg IGVuZCA9IGJ1ZmxpbTsKKwogICAgICAgaWYgKCFzdGFydF9wdHIpCiAgICAgICAgIHsKLSAg ICAgICAgICAvKiBXZSBkb24ndCBjYXJlIGFib3V0IGFuIGV4YWN0IG1hdGNoLiAgKi8KKyAg ICAgICAgICBjaGFyIGNvbnN0ICpuZXh0X2JlZywgKmRmYV9iZWcgPSBiZWc7CisgICAgICAg ICAgc2l6ZV90IGNvdW50ID0gMDsKKyAgICAgICAgICBib29sIG5hcnJvd2VkID0gZmFsc2U7 CisKKyAgICAgICAgICAvKiBUcnkgbWF0Y2hpbmcgd2l0aCBLV3NldCwgaWYgaXQncyBkZWZp bmVkLiAgKi8KICAgICAgICAgICBpZiAoa3dzZXQpCiAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgIGNoYXIgY29uc3QgKnByZXZfYmVnOworCiAgICAgICAgICAgICAgIC8qIEZpbmQg YSBwb3NzaWJsZSBtYXRjaCB1c2luZyB0aGUgS1dzZXQgbWF0Y2hlci4gICovCiAgICAgICAg ICAgICAgIHNpemVfdCBvZmZzZXQgPSBrd3NleGVjIChrd3NldCwgYmVnIC0gYmVnbGluZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmxpbSAtIGJlZyAr IGJlZ2xpbmUsICZrd3NtKTsKICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PSAoc2l6ZV90 KSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7CiAgICAgICAgICAgICAgIG1h dGNoID0gYmVnICsgb2Zmc2V0OwotCi0gICAgICAgICAgICAgIC8qIE5hcnJvdyBkb3duIHRv IHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGNhbmRpZGF0ZS4gICovCisgICAgICAgICAgICAg IHByZXZfYmVnID0gYmVnOworICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgLyogTmFy cm93IGRvd24gdG8gdGhlIGxpbmUgd2UndmUgZm91bmQuICAqLwogICAgICAgICAgICAgICBi ZWcgPSBtZW1yY2hyIChidWYsIGVvbCwgbWF0Y2ggLSBidWYpOwogICAgICAgICAgICAgICBi ZWcgPSBiZWcgPyBiZWcgKyAxIDogYnVmOwotICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIg KG1hdGNoLCBlb2wsIGJ1ZmxpbSAtIG1hdGNoKTsKLSAgICAgICAgICAgICAgZW5kID0gZW5k ID8gZW5kICsgMSA6IGJ1ZmxpbTsKKyAgICAgICAgICAgICAgZGZhX2JlZyA9IGJlZzsKIAog ICAgICAgICAgICAgICBpZiAoa3dzbS5pbmRleCA8IGt3c2V0X2V4YWN0X21hdGNoZXMpCiAg ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgZW5kID0gbWVtY2hyIChtYXRj aCwgZW9sLCBidWZsaW0gLSBtYXRjaCk7CisgICAgICAgICAgICAgICAgICBlbmQgPSBlbmQg PyBlbmQgKyAxIDogYnVmbGltOworCiAgICAgICAgICAgICAgICAgICBpZiAoTUJfQ1VSX01B WCA9PSAxKQogICAgICAgICAgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CiAgICAgICAgICAg ICAgICAgICBpZiAobWJfc3RhcnQgPCBiZWcpCkBAIC0yNTAsNjEgKzI2Miw2MyBAQCBFR2V4 ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAqbWF0Y2hfc2l6 ZSwKICAgICAgICAgICAgICAgICAgIC8qIFRoZSBtYXRjaGVkIGxpbmUgc3RhcnRzIGluIHRo ZSBtaWRkbGUgb2YgYSBtdWx0aWJ5dGUKICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rl ci4gIFBlcmZvcm0gdGhlIERGQSBzZWFyY2ggc3RhcnRpbmcgZnJvbSB0aGUKICAgICAgICAg ICAgICAgICAgICAgIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIuICAqLwotICAg ICAgICAgICAgICAgICAgaWYgKCEgZGZhZXhlYyAoZGZhLCBtYl9zdGFydCwgKGNoYXIgKikg ZW5kLCAwLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJhY2ty ZWYpKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAg IGRmYV9iZWcgPSBtYl9zdGFydDsKKyAgICAgICAgICAgICAgICAgIG5hcnJvd2VkID0gdHJ1 ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGVsc2UgaWYgKCFkZmFmYXN0 KQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIGlmIChkZmFoaW50IChk ZmEsIGJlZywgKGNoYXIgKikgZW5kLCBOVUxMKSA9PSAoc2l6ZV90KSAtMSkKLSAgICAgICAg ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICBpZiAoISBkZmFleGVj IChkZmEsIGJlZywgKGNoYXIgKikgZW5kLCAwLCBOVUxMLCAmYmFja3JlZikpCi0gICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgZW5kID0gbWVtY2hy IChtYXRjaCwgZW9sLCBidWZsaW0gLSBtYXRjaCk7CisgICAgICAgICAgICAgICAgICBlbmQg PSBlbmQgPyBlbmQgKyAxIDogYnVmbGltOworICAgICAgICAgICAgICAgICAgbmFycm93ZWQg PSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICBp ZiAoIWt3c2V0IHx8IGRmYWZhc3QpCisKKyAgICAgICAgICAvKiBUcnkgbWF0Y2hpbmcgd2l0 aCB0aGUgc3VwZXJzZXQgb2YgREZBLCBpZiBpdCdzIGRlZmluZWQuICAqLworICAgICAgICAg IGlmIChzdXBlcnNldCAmJiAhKGt3c2V0ICYmIGt3c20uaW5kZXggPCBrd3NldF9leGFjdF9t YXRjaGVzKSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgLyogTm8gZ29vZCBmaXhl ZCBzdHJpbmdzIG9yIERGQSBpcyBmYXN0OyB1c2UgREZBLiAgKi8KLSAgICAgICAgICAgICAg c2l6ZV90IG9mZnNldCwgY291bnQ7Ci0gICAgICAgICAgICAgIGNoYXIgY29uc3QgKm5leHRf YmVnOwotICAgICAgICAgICAgICBjb3VudCA9IDA7Ci0gICAgICAgICAgICAgIG9mZnNldCA9 IGRmYWhpbnQgKGRmYSwgYmVnLCAoY2hhciAqKSBidWZsaW0sICZjb3VudCk7Ci0gICAgICAg ICAgICAgIGlmIChvZmZzZXQgPT0gKHNpemVfdCkgLTEpCi0gICAgICAgICAgICAgICAgZ290 byBmYWlsdXJlOwotICAgICAgICAgICAgICBpZiAob2Zmc2V0ID09IChzaXplX3QpIC0yKQor ICAgICAgICAgICAgICBuZXh0X2JlZyA9IGRmYWV4ZWMgKHN1cGVyc2V0LCBkZmFfYmVnLCAo Y2hhciAqKSBlbmQsIDEsICZjb3VudCwgTlVMTCk7CisgICAgICAgICAgICAgIC8qIElmIHRo ZXJlJ3Mgbm8gbWF0Y2gsIG9yIGlmIHdlJ3ZlIG1hdGNoZWQgdGhlIHNlbnRpbmVsLAorICAg ICAgICAgICAgICAgICB3ZSdyZSBkb25lLiAgKi8KKyAgICAgICAgICAgICAgaWYgKG5leHRf YmVnID09IE5VTEwgfHwgbmV4dF9iZWcgPT0gZW5kKQorICAgICAgICAgICAgICAgIGNvbnRp bnVlOworICAgICAgICAgICAgICBpZiAoIW5hcnJvd2VkKQogICAgICAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgICAgIC8qIE5vIHVzZSBoaW50LiAqLwotICAgICAgICAgICAgICAg ICAgbmV4dF9iZWcgPSBkZmFleGVjIChkZmEsIGJlZywgKGNoYXIgKikgYnVmbGltLCAwLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAmYmFja3JlZik7 Ci0gICAgICAgICAgICAgICAgICAvKiBJZiB0aGVyZSdzIG5vIG1hdGNoLCBvciBpZiB3ZSd2 ZSBtYXRjaGVkIHRoZSBzZW50aW5lbCwKLSAgICAgICAgICAgICAgICAgICAgIHdlJ3JlIGRv bmUuICAqLwotICAgICAgICAgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4 dF9iZWcgPT0gYnVmbGltKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7Cisg ICAgICAgICAgICAgICAgICAvKiBOYXJyb3cgZG93biB0byB0aGUgbGluZSB3ZSd2ZSBmb3Vu ZC4gICovCisgICAgICAgICAgICAgICAgICBpZiAoY291bnQgIT0gMCkKKyAgICAgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGJlZyA9IG1lbXJjaHIgKGJ1Ziwg ZW9sLCBuZXh0X2JlZyAtIGJ1Zik7CisgICAgICAgICAgICAgICAgICAgICAgYmVnID0gYmVn ID8gYmVnICsgMSA6IGJ1ZjsKKworICAgICAgICAgICAgICAgICAgICAgIC8qIElmIGRmYWV4 ZWMgbWF5IG1hdGNoIGluIG11bHRpcGxlIGxpbmVzLCB0cnkgdG8KKyAgICAgICAgICAgICAg ICAgICAgICAgICBtYXRjaCBpbiBvbmUgbGluZS4gICovCisgICAgICAgICAgICAgICAgICAg ICAgZW5kID0gYmVnOworICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIgKG5leHRf YmVnLCBlb2wsIGJ1ZmxpbSAtIG5leHRfYmVnKTsKKyAgICAgICAgICAgICAgICAgIGVuZCA9 IGVuZCA/IGVuZCArIDEgOiBidWZsaW07CisgICAgICAgICAgICAgICAgICBuYXJyb3dlZCA9 IHRydWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBlbHNlCi0gICAgICAg ICAgICAgICAgbmV4dF9iZWcgPSBiZWcgKyBvZmZzZXQ7CisgICAgICAgICAgICB9CisKKyAg ICAgICAgICAvKiBUcnkgbWF0Y2hpbmcgd2l0aCBERkEuICAqLworICAgICAgICAgIG5leHRf YmVnID0gZGZhZXhlYyAoZGZhLCBkZmFfYmVnLCAoY2hhciAqKSBlbmQsIDAsICZjb3VudCwg JmJhY2tyZWYpOworCisgICAgICAgICAgLyogSWYgdGhlcmUncyBubyBtYXRjaCwgb3IgaWYg d2UndmUgbWF0Y2hlZCB0aGUgc2VudGluZWwsCisgICAgICAgICAgICAgd2UncmUgZG9uZS4g ICovCisgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4dF9iZWcgPT0gZW5k KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgaWYgKCFuYXJyb3dlZCkKKyAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgLyogTmFycm93IGRvd24gdG8gdGhlIGxpbmUg d2UndmUgZm91bmQuICAqLwotICAgICAgICAgICAgICBiZWcgPSBtZW1yY2hyIChidWYsIGVv bCwgbmV4dF9iZWcgLSBidWYpOwotICAgICAgICAgICAgICBiZWcgPSBiZWcgPyBiZWcgKyAx IDogYnVmOwogICAgICAgICAgICAgICBpZiAoY291bnQgIT0gMCkKICAgICAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgICAvKiBJZiBkZmFoaW50IG1heSBtYXRjaCBpbiBtdWx0 aXBsZSBsaW5lcywgdHJ5IHRvCi0gICAgICAgICAgICAgICAgICAgICBtYXRjaCBpbiBvbmUg bGluZS4gICovCi0gICAgICAgICAgICAgICAgICBlbmQgPSBiZWc7Ci0gICAgICAgICAgICAg ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgIGJlZyA9IG1lbXJjaHIgKGJ1Ziwg ZW9sLCBuZXh0X2JlZyAtIGJ1Zik7CisgICAgICAgICAgICAgICAgICBiZWcgPSBiZWcgPyBi ZWcgKyAxIDogYnVmOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZW5kID0g bWVtY2hyIChuZXh0X2JlZywgZW9sLCBidWZsaW0gLSBuZXh0X2JlZyk7CiAgICAgICAgICAg ICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZsaW07Ci0gICAgICAgICAgICAgIGlmIChv ZmZzZXQgIT0gKHNpemVfdCkgLTIpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAg ICAgICAgbmV4dF9iZWcgPSBkZmFleGVjIChkZmEsIGJlZywgKGNoYXIgKikgZW5kLCAwLCBO VUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYmFja3JlZik7 Ci0gICAgICAgICAgICAgICAgICAvKiBJZiB0aGVyZSdzIG5vIG1hdGNoLCBvciBpZiB3ZSd2 ZSBtYXRjaGVkIHRoZSBzZW50aW5lbCwKLSAgICAgICAgICAgICAgICAgICAgIHdlJ3JlIGRv bmUuICAqLwotICAgICAgICAgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5VTEwgfHwgbmV4 dF9iZWcgPT0gZW5kKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAvKiBTdWNjZXNzZnVsLCBu byBiYWNrcmVmZXJlbmNlcyBlbmNvdW50ZXJlZCEgKi8KICAgICAgICAgICBpZiAoIWJhY2ty ZWYpCiAgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CkBAIC0zMTQsOCArMzI4LDYgQEAgRUdl eGVjdXRlIChjaGFyIGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3Np emUsCiAgICAgICAgIHsKICAgICAgICAgICAvKiBXZSBhcmUgbG9va2luZyBmb3IgdGhlIGxl ZnRtb3N0ICh0aGVuIGxvbmdlc3QpIGV4YWN0IG1hdGNoLgogICAgICAgICAgICAgIFdlIHdp bGwgZ28gdGhyb3VnaCB0aGUgb3V0ZXIgbG9vcCBvbmx5IG9uY2UuICAqLwotICAgICAgICAg IGJlZyA9IGJ1ZjsKLSAgICAgICAgICBlbmQgPSBidWZsaW07CiAgICAgICAgICAgcHRyID0g c3RhcnRfcHRyOwogICAgICAgICB9CiAKLS0gCjEuOS4wCgo= --------------040500080106060609070900 Content-Type: text/plain; charset=UTF-8; name="0002-grep-adjust-timing-back-to-kwset-when-dfaisfast-is-t.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-grep-adjust-timing-back-to-kwset-when-dfaisfast-is-t.pa"; filename*1="tch" RnJvbSBhMjdkMGU2ZjNlZGM1YTEzZTI2ODk2MTY1MTk4YTNhNjY2NGI3MmZiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5l LmpwPgpEYXRlOiBNb24sIDI4IEFwciAyMDE0IDIxOjIyOjA0ICswOTAwClN1YmplY3Q6IFtQ QVRDSCAyLzNdIGdyZXA6IGFkanVzdCB0aW1pbmcgYmFjayB0byBrd3NldCB3aGVuIGRmYWlz ZmFzdCBpcyB0cnVlCgoqIHNyYy9kZmFzZWFyY2guYyAoRUdleGVjdXRlKTogSWYgREZBIGZh aWxzIGFmdGVyIGt3c2V0IHN1Y2NlZWRzLAp0aGUgY29kZSBkb2Vzbid0IHJldHVybiB0byBr d3NldCB1bnRpbCBpdCByZWFjaGVzIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlcgpvciBmaW5kcyBh IG1hdGNoLiAgQmVjYXVzZSBvZiB0aGlzLCBhbHRob3VnaCBzb21lIGNhc2VzIHNwZWVkIHVw LApvdGhlcnMgc2xvdyBkb3duLgoKQWRqdXN0IHRoZSBoZXVyaXN0aWMgZm9yIHN3aXRjaGlu ZyB0byB0aGUgREZBLCBzbyB0aGF0IGl0CmlzIG1vcmUgbGlrZWx5IHRvIHN3aXRjaCBhdCB0 aGUgcmlnaHQgdGltZXMuCi0tLQogc3JjL2RmYXNlYXJjaC5jIHwgMzAgKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9kZmFzZWFyY2guYyBiL3NyYy9kZmFz ZWFyY2guYwppbmRleCBjMTgyMmI0Li42ZDM3NjViIDEwMDY0NAotLS0gYS9zcmMvZGZhc2Vh cmNoLmMKKysrIGIvc3JjL2RmYXNlYXJjaC5jCkBAIC0yNjUsNyArMjY1LDM1IEBAIEVHZXhl Y3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICptYXRjaF9zaXpl LAogICAgICAgICAgICAgICAgICAgZGZhX2JlZyA9IG1iX3N0YXJ0OwogICAgICAgICAgICAg ICAgICAgbmFycm93ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgZWxzZSBpZiAoIWRmYWZhc3QpCisgICAgICAgICAgICAgIGVsc2UgaWYgKGRmYWZhc3Qp CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgLyogRGV0ZXJtaW5lIHRo ZSBlbmQgcG9pbnRlciB0byBzdGFydCB3aXRoIERGQS4gIEl0J3MKKyAgICAgICAgICAgICAg ICAgICAgIGBtYXRjaCcgYnkgZGVmYXVsdC4gIElmIHRoZSBvZmZzZXQgZnJvbSBwcmV2X2Jl ZyBpcworICAgICAgICAgICAgICAgICAgICAgbGVzc2VyIHRoYW4gKG1hdGNoIC0gYmVnKSAq IDQgYW5kL29yIDY0LCBzZXQgaXQgdG8KKyAgICAgICAgICAgICAgICAgICAgIGdyZWF0ZXN0 IHZhbHVlIGluIHRoZW0uICBBIGxhcmdlciBvZmZzZXQgdGhhbiB0aGUKKyAgICAgICAgICAg ICAgICAgICAgIGRlZmF1bHQgbWVhbnMgdGhhdCBERkEgaXMgcHJlZmVycmVkIHRvIEtXc2V0 LiAgKi8KKyAgICAgICAgICAgICAgICAgIG9mZnNldCA9IChtYXRjaCAtIGJlZykgKiA0Owor ICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA8IDY0KQorICAgICAgICAgICAgICAgICAg ICBvZmZzZXQgPSA2NDsKKyAgICAgICAgICAgICAgICAgIGlmIChwcmV2X2JlZyArIG9mZnNl dCA+IG1hdGNoKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg ICAgZW5kID0gcHJldl9iZWcgKyBvZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgICAgaWYg KGVuZCA8IGJ1ZmxpbSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgZW5kID0gbWVtY2hyIChlbmQsIGVvbCwgYnVmbGltIC0gZW5kKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gZW5kID8gZW5kICsgMSA6IGJ1Zmxp bTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICBl bHNlCisgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBidWZsaW07CisgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IG1lbWNociAobWF0Y2gsIGVvbCwg YnVmbGltIC0gbWF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVu ZCArIDEgOiBidWZsaW07CisgICAgICAgICAgICAgICAgICAgICAgbmFycm93ZWQgPSB0cnVl OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgZW5kID0g bWVtY2hyIChtYXRjaCwgZW9sLCBidWZsaW0gLSBtYXRjaCk7CiAgICAgICAgICAgICAgICAg ICBlbmQgPSBlbmQgPyBlbmQgKyAxIDogYnVmbGltOwotLSAKMS45LjAKCg== --------------040500080106060609070900 Content-Type: text/plain; charset=UTF-8; name="0003-grep-simplify-EGexecute-further.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-grep-simplify-EGexecute-further.patch" RnJvbSBiY2ZmZjhmNzFjOGYyMWI5MGI4OTkyNjk5MTRhNjJmZjQzZjc0ZjFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBXZWQsIDMwIEFwciAyMDE0IDAwOjAzOjE4IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAzLzNdIGdyZXA6IHNpbXBsaWZ5IEVHZXhlY3V0ZSBmdXJ0aGVyCgoqIHNyYy9kZmEuYywg c3JjL2RmYS5oIChkZmFzdXBlcnNldCk6IEFyZyBpcyBub3cgY29uc3QgcG9pbnRlci4KTm93 IHB1cmUuCiogc3JjL2RmYXNlYXJjaC5jIChFR2V4ZWN1dGUpOiBDb2FsZXNjZSBzb21lIGR1 cGxpY2F0ZSBjb2RlLgpEb24ndCB3b3JyeSBhYm91dCBtZW1yY2hyIHJldHVybmluZyBOVUxM IHdoZW4gdGhhdCdzIGltcG9zc2libGUuCi0tLQogc3JjL2RmYS5jICAgICAgIHwgICA0ICst CiBzcmMvZGZhLmggICAgICAgfCAgIDggKystLQogc3JjL2RmYXNlYXJjaC5jIHwgMTExICsr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAzIGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDc2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCBjOTA3MGZlLi40M2Fk M2NmIDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBAIC0zMzkxLDEw ICszMzkxLDggQEAgZGZhZXhlYyAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4s IGNoYXIgKmVuZCwKICAgcmV0dXJuIChjaGFyICopIHA7CiB9CiAKLS8qIFJldHVybiBzdXBl cnNldCBmb3IgRCwgd2hpY2ggc2VhcmNocyB0aHJvdWdoIGEgYnVmZmVyIGxvb2tpbmcgZm9y IGEKLSAgIHBvdGVudGlhbCBtYXRjaC4gICovCiBzdHJ1Y3QgZGZhICoKLWRmYXN1cGVyc2V0 IChzdHJ1Y3QgZGZhICpkKQorZGZhc3VwZXJzZXQgKHN0cnVjdCBkZmEgY29uc3QgKmQpCiB7 CiAgIHJldHVybiBkLT5zdXBlcnNldDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9kZmEuaCBiL3Ny Yy9kZmEuaAppbmRleCAyZGU3YmE4Li5lM2FiNzAwIDEwMDY0NAotLS0gYS9zcmMvZGZhLmgK KysrIGIvc3JjL2RmYS5oCkBAIC03MSw5ICs3MSwxMSBAQCBleHRlcm4gdm9pZCBkZmFjb21w IChjaGFyIGNvbnN0ICosIHNpemVfdCwgc3RydWN0IGRmYSAqLCBpbnQpOwogZXh0ZXJuIGNo YXIgKmRmYWV4ZWMgKHN0cnVjdCBkZmEgKmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICpl bmQsCiAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld2xpbmUsIHNpemVfdCAqY291bnQs IGludCAqYmFja3JlZik7CiAKLS8qIFJldHVybiBzdXBlcnNldCBmb3IgRCwgd2hpY2ggc2Vh cmNocyB0aHJvdWdoIGEgYnVmZmVyIGxvb2tpbmcgZm9yIGEKLSAgIHBvdGVudGlhbCBtYXRj aC4gICovCi1leHRlcm4gc3RydWN0IGRmYSAqZGZhc3VwZXJzZXQgKHN0cnVjdCBkZmEgKmQp OworLyogUmV0dXJuIGEgc3VwZXJzZXQgZm9yIEQuICBUaGUgc3VwZXJzZXQgbWF0Y2hlcyBl dmVyeXRoaW5nIHRoYXQgRAorICAgbWF0Y2hlcywgYWxvbmcgd2l0aCBzb21lIG90aGVyIHN0 cmluZ3MgKHRob3VnaCB0aGUgbGF0dGVyIHNob3VsZCBiZQorICAgcmFyZSwgZm9yIGVmZmlj aWVuY3kgcmVhc29ucykuICBSZXR1cm4gYSBudWxsIHBvaW50ZXIgaWYgbm8gdXNlZnVsCisg ICBzdXBlcnNldCBpcyBhdmFpbGFibGUuICAqLworZXh0ZXJuIHN0cnVjdCBkZmEgKmRmYXN1 cGVyc2V0IChzdHJ1Y3QgZGZhIGNvbnN0ICpkKSBfR0xfQVRUUklCVVRFX1BVUkU7CiAKIC8q IFJldHVybiB0cnVlIGlmIHRoZSBERkEgaXMgbGlrZWx5IHRvIGJlIGZhc3QuICAqLwogZXh0 ZXJuIGJvb2wgZGZhaXNmYXN0IChzdHJ1Y3QgZGZhIGNvbnN0ICopIF9HTF9BVFRSSUJVVEVf UFVSRTsKZGlmZiAtLWdpdCBhL3NyYy9kZmFzZWFyY2guYyBiL3NyYy9kZmFzZWFyY2guYwpp bmRleCA2ZDM3NjViLi41YWQ2YzlkIDEwMDY0NAotLS0gYS9zcmMvZGZhc2VhcmNoLmMKKysr IGIvc3JjL2RmYXNlYXJjaC5jCkBAIC0yMjcsNyArMjI3LDcgQEAgRUdleGVjdXRlIChjaGFy IGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgICAgICAg IHsKICAgICAgICAgICBjaGFyIGNvbnN0ICpuZXh0X2JlZywgKmRmYV9iZWcgPSBiZWc7CiAg ICAgICAgICAgc2l6ZV90IGNvdW50ID0gMDsKLSAgICAgICAgICBib29sIG5hcnJvd2VkID0g ZmFsc2U7CisgICAgICAgICAgYm9vbCBleGFjdF9rd3NldF9tYXRjaCA9IGZhbHNlOwogCiAg ICAgICAgICAgLyogVHJ5IG1hdGNoaW5nIHdpdGggS1dzZXQsIGlmIGl0J3MgZGVmaW5lZC4g ICovCiAgICAgICAgICAgaWYgKGt3c2V0KQpAQCAtMjQxLDE3ICsyNDEsMzAgQEAgRUdleGVj dXRlIChjaGFyIGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUs CiAgICAgICAgICAgICAgICAgZ290byBmYWlsdXJlOwogICAgICAgICAgICAgICBtYXRjaCA9 IGJlZyArIG9mZnNldDsKICAgICAgICAgICAgICAgcHJldl9iZWcgPSBiZWc7Ci0gICAgICAg ICAgICAgIAotICAgICAgICAgICAgICAvKiBOYXJyb3cgZG93biB0byB0aGUgbGluZSB3ZSd2 ZSBmb3VuZC4gICovCisKKyAgICAgICAgICAgICAgLyogTmFycm93IGRvd24gdG8gdGhlIGxp bmUgY29udGFpbmluZyB0aGUgcG9zc2libGUgbWF0Y2guICAqLwogICAgICAgICAgICAgICBi ZWcgPSBtZW1yY2hyIChidWYsIGVvbCwgbWF0Y2ggLSBidWYpOwogICAgICAgICAgICAgICBi ZWcgPSBiZWcgPyBiZWcgKyAxIDogYnVmOwogICAgICAgICAgICAgICBkZmFfYmVnID0gYmVn OwogCi0gICAgICAgICAgICAgIGlmIChrd3NtLmluZGV4IDwga3dzZXRfZXhhY3RfbWF0Y2hl cykKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIg KG1hdGNoLCBlb2wsIGJ1ZmxpbSAtIG1hdGNoKTsKLSAgICAgICAgICAgICAgICAgIGVuZCA9 IGVuZCA/IGVuZCArIDEgOiBidWZsaW07CisgICAgICAgICAgICAgIC8qIERldGVybWluZSB0 aGUgZW5kIHBvaW50ZXIgdG8gZ2l2ZSB0aGUgREZBIG5leHQuICBUeXBpY2FsbHkKKyAgICAg ICAgICAgICAgICAgdGhpcyBpcyBhZnRlciB0aGUgZmlyc3QgbmV3bGluZSBhZnRlciBNQVRD SDsgYnV0IGlmIHRoZSBLV3NldAorICAgICAgICAgICAgICAgICBtYXRjaCBpcyBub3QgZXhh Y3QsIHRoZSBERkEgaXMgZmFzdCwgYW5kIHRoZSBvZmZzZXQgZnJvbQorICAgICAgICAgICAg ICAgICBQUkVWX0JFRyBpcyBsZXNzIHRoYW4gNjQgb3IgKE1BVENIIC0gUFJFVl9CRUcpLCB0 aGlzIGlzIHRoZQorICAgICAgICAgICAgICAgICBncmVhdGVyIG9mIHRoZSBsYXR0ZXIgdHdv IHZhbHVlczsgdGhpcyB0ZW1wb3JhcmlseSBwcmVmZXJzCisgICAgICAgICAgICAgICAgIHRo ZSBERkEgdG8gS1dzZXQuICAqLworICAgICAgICAgICAgICBleGFjdF9rd3NldF9tYXRjaCA9 IGt3c20uaW5kZXggPCBrd3NldF9leGFjdF9tYXRjaGVzOworICAgICAgICAgICAgICBlbmQg PSAoKGV4YWN0X2t3c2V0X21hdGNoIHx8ICFkZmFmYXN0CisgICAgICAgICAgICAgICAgICAg ICAgfHwgTUFYICgxNiwgbWF0Y2ggLSBiZWcpIDwgKG1hdGNoIC0gcHJldl9iZWcpID4+IDIp CisgICAgICAgICAgICAgICAgICAgICA/IG1hdGNoCisgICAgICAgICAgICAgICAgICAgICA6 IChidWZsaW0gLSBwcmV2X2JlZykgPj4gMiA8PSBtYXRjaCAtIGJlZworICAgICAgICAgICAg ICAgICAgICAgPyBidWZsaW0KKyAgICAgICAgICAgICAgICAgICAgIDogcHJldl9iZWcgKyA0 ICogKG1hdGNoIC0gYmVnKSk7CisgICAgICAgICAgICAgIGVuZCA9IG1lbWNociAoZW5kLCBl b2wsIGJ1ZmxpbSAtIGVuZCk7CisgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEg OiBidWZsaW07CiAKKyAgICAgICAgICAgICAgaWYgKGV4YWN0X2t3c2V0X21hdGNoKQorICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGlmIChNQl9DVVJfTUFYID09IDEp CiAgICAgICAgICAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKICAgICAgICAgICAgICAgICAg IGlmIChtYl9zdGFydCA8IGJlZykKQEAgLTI2Myw2OSArMjc2LDMwIEBAIEVHZXhlY3V0ZSAo Y2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICptYXRjaF9zaXplLAogICAg ICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyLiAgUGVyZm9ybSB0aGUgREZBIHNlYXJjaCBz dGFydGluZyBmcm9tIHRoZQogICAgICAgICAgICAgICAgICAgICAgYmVnaW5uaW5nIG9mIHRo ZSBuZXh0IGNoYXJhY3Rlci4gICovCiAgICAgICAgICAgICAgICAgICBkZmFfYmVnID0gbWJf c3RhcnQ7Ci0gICAgICAgICAgICAgICAgICBuYXJyb3dlZCA9IHRydWU7Ci0gICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICBlbHNlIGlmIChkZmFmYXN0KQotICAgICAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgICAgIC8qIERldGVybWluZSB0aGUgZW5kIHBvaW50ZXIg dG8gc3RhcnQgd2l0aCBERkEuICBJdCdzCi0gICAgICAgICAgICAgICAgICAgICBgbWF0Y2gn IGJ5IGRlZmF1bHQuICBJZiB0aGUgb2Zmc2V0IGZyb20gcHJldl9iZWcgaXMKLSAgICAgICAg ICAgICAgICAgICAgIGxlc3NlciB0aGFuIChtYXRjaCAtIGJlZykgKiA0IGFuZC9vciA2NCwg c2V0IGl0IHRvCi0gICAgICAgICAgICAgICAgICAgICBncmVhdGVzdCB2YWx1ZSBpbiB0aGVt LiAgQSBsYXJnZXIgb2Zmc2V0IHRoYW4gdGhlCi0gICAgICAgICAgICAgICAgICAgICBkZWZh dWx0IG1lYW5zIHRoYXQgREZBIGlzIHByZWZlcnJlZCB0byBLV3NldC4gICovCi0gICAgICAg ICAgICAgICAgICBvZmZzZXQgPSAobWF0Y2ggLSBiZWcpICogNDsKLSAgICAgICAgICAgICAg ICAgIGlmIChvZmZzZXQgPCA2NCkKLSAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gNjQ7 Ci0gICAgICAgICAgICAgICAgICBpZiAocHJldl9iZWcgKyBvZmZzZXQgPiBtYXRjaCkKLSAg ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IHByZXZf YmVnICsgb2Zmc2V0OwotICAgICAgICAgICAgICAgICAgICAgIGlmIChlbmQgPCBidWZsaW0p Ci0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg IGVuZCA9IG1lbWNociAoZW5kLCBlb2wsIGJ1ZmxpbSAtIGVuZCk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZsaW07Ci0gICAgICAgICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg ICAgICAgICAgICAgICAgZW5kID0gYnVmbGltOwotICAgICAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg ICAgICAgICAgICAgICBlbmQgPSBtZW1jaHIgKG1hdGNoLCBlb2wsIGJ1ZmxpbSAtIG1hdGNo KTsKLSAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBlbmQgPyBlbmQgKyAxIDogYnVmbGlt OwotICAgICAgICAgICAgICAgICAgICAgIG5hcnJvd2VkID0gdHJ1ZTsKLSAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZQotICAg ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIGVuZCA9IG1lbWNociAobWF0Y2gs IGVvbCwgYnVmbGltIC0gbWF0Y2gpOwotICAgICAgICAgICAgICAgICAgZW5kID0gZW5kID8g ZW5kICsgMSA6IGJ1ZmxpbTsKLSAgICAgICAgICAgICAgICAgIG5hcnJvd2VkID0gdHJ1ZTsK ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAvKiBUcnkg bWF0Y2hpbmcgd2l0aCB0aGUgc3VwZXJzZXQgb2YgREZBLCBpZiBpdCdzIGRlZmluZWQuICAq LwotICAgICAgICAgIGlmIChzdXBlcnNldCAmJiAhKGt3c2V0ICYmIGt3c20uaW5kZXggPCBr d3NldF9leGFjdF9tYXRjaGVzKSkKKyAgICAgICAgICBpZiAoc3VwZXJzZXQgJiYgIWV4YWN0 X2t3c2V0X21hdGNoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICBuZXh0X2JlZyA9 IGRmYWV4ZWMgKHN1cGVyc2V0LCBkZmFfYmVnLCAoY2hhciAqKSBlbmQsIDEsICZjb3VudCwg TlVMTCk7CisgICAgICAgICAgICAgIG5leHRfYmVnID0gZGZhZXhlYyAoc3VwZXJzZXQsIGRm YV9iZWcsIChjaGFyICopIGVuZCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmY291bnQsIE5VTEwpOwogICAgICAgICAgICAgICAvKiBJZiB0aGVyZSdzIG5vIG1h dGNoLCBvciBpZiB3ZSd2ZSBtYXRjaGVkIHRoZSBzZW50aW5lbCwKICAgICAgICAgICAgICAg ICAgd2UncmUgZG9uZS4gICovCiAgICAgICAgICAgICAgIGlmIChuZXh0X2JlZyA9PSBOVUxM IHx8IG5leHRfYmVnID09IGVuZCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg ICAgICAgICAgaWYgKCFuYXJyb3dlZCkKKworICAgICAgICAgICAgICAvKiBOYXJyb3cgZG93 biB0byB0aGUgbGluZSB3ZSd2ZSBmb3VuZC4gICovCisgICAgICAgICAgICAgIGlmIChjb3Vu dCAhPSAwKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIC8qIE5hcnJv dyBkb3duIHRvIHRoZSBsaW5lIHdlJ3ZlIGZvdW5kLiAgKi8KLSAgICAgICAgICAgICAgICAg IGlmIChjb3VudCAhPSAwKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg ICAgICAgICAgYmVnID0gbWVtcmNociAoYnVmLCBlb2wsIG5leHRfYmVnIC0gYnVmKTsKLSAg ICAgICAgICAgICAgICAgICAgICBiZWcgPSBiZWcgPyBiZWcgKyAxIDogYnVmOwotCi0gICAg ICAgICAgICAgICAgICAgICAgLyogSWYgZGZhZXhlYyBtYXkgbWF0Y2ggaW4gbXVsdGlwbGUg bGluZXMsIHRyeSB0bwotICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIGluIG9uZSBs aW5lLiAgKi8KLSAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBiZWc7Ci0gICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICAgICAgIGVuZCA9IG1lbWNociAobmV4dF9iZWcsIGVvbCwgYnVmbGltIC0gbmV4dF9i ZWcpOwotICAgICAgICAgICAgICAgICAgZW5kID0gZW5kID8gZW5kICsgMSA6IGJ1ZmxpbTsK LSAgICAgICAgICAgICAgICAgIG5hcnJvd2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAg IC8qIElmIGRmYWV4ZWMgbWF5IG1hdGNoIGluIG11bHRpcGxlIGxpbmVzLCB0cnkgdG8KKyAg ICAgICAgICAgICAgICAgICAgIG1hdGNoIGluIG9uZSBsaW5lLiAgKi8KKyAgICAgICAgICAg ICAgICAgIGVuZCA9IG1lbXJjaHIgKGJ1ZiwgZW9sLCBuZXh0X2JlZyAtIGJ1Zik7CisgICAg ICAgICAgICAgICAgICBlbmQrKzsKKyAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZW5kID0gbWVtY2hyIChuZXh0X2JlZywg ZW9sLCBidWZsaW0gLSBuZXh0X2JlZyk7CisgICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVu ZCArIDEgOiBidWZsaW07CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAvKiBUcnkgbWF0 Y2hpbmcgd2l0aCBERkEuICAqLwpAQCAtMzM1LDE3ICszMDksMTUgQEAgRUdleGVjdXRlIChj aGFyIGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3NpemUsCiAgICAg ICAgICAgICAgd2UncmUgZG9uZS4gICovCiAgICAgICAgICAgaWYgKG5leHRfYmVnID09IE5V TEwgfHwgbmV4dF9iZWcgPT0gZW5kKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg ICAgaWYgKCFuYXJyb3dlZCkKKworICAgICAgICAgIC8qIE5hcnJvdyBkb3duIHRvIHRoZSBs aW5lIHdlJ3ZlIGZvdW5kLiAgKi8KKyAgICAgICAgICBpZiAoY291bnQgIT0gMCkKICAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgLyogTmFycm93IGRvd24gdG8gdGhlIGxpbmUgd2Un dmUgZm91bmQuICAqLwotICAgICAgICAgICAgICBpZiAoY291bnQgIT0gMCkKLSAgICAgICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICBiZWcgPSBtZW1yY2hyIChidWYsIGVvbCwg bmV4dF9iZWcgLSBidWYpOwotICAgICAgICAgICAgICAgICAgYmVnID0gYmVnID8gYmVnICsg MSA6IGJ1ZjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVuZCA9IG1lbWNo ciAobmV4dF9iZWcsIGVvbCwgYnVmbGltIC0gbmV4dF9iZWcpOwotICAgICAgICAgICAgICBl bmQgPSBlbmQgPyBlbmQgKyAxIDogYnVmbGltOworICAgICAgICAgICAgICBiZWcgPSBtZW1y Y2hyIChidWYsIGVvbCwgbmV4dF9iZWcgLSBidWYpOworICAgICAgICAgICAgICBiZWcrKzsK ICAgICAgICAgICAgIH0KKyAgICAgICAgICBlbmQgPSBtZW1jaHIgKG5leHRfYmVnLCBlb2ws IGJ1ZmxpbSAtIG5leHRfYmVnKTsKKyAgICAgICAgICBlbmQgPSBlbmQgPyBlbmQgKyAxIDog YnVmbGltOwogCiAgICAgICAgICAgLyogU3VjY2Vzc2Z1bCwgbm8gYmFja3JlZmVyZW5jZXMg ZW5jb3VudGVyZWQhICovCiAgICAgICAgICAgaWYgKCFiYWNrcmVmKQpAQCAtMzY0LDggKzMz Niw3IEBAIEVHZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90 ICptYXRjaF9zaXplLAogICAgICAgaWYgKFRZUEVfTUFYSU1VTSAocmVnb2ZmX3QpIDwgZW5k IC0gYmVnIC0gMSkKICAgICAgICAgeGFsbG9jX2RpZSAoKTsKIAotICAgICAgLyogSWYgd2Un dmUgbWFkZSBpdCB0byB0aGlzIHBvaW50LCB0aGlzIG1lYW5zIERGQSBoYXMgc2VlbgotICAg ICAgICAgYSBwcm9iYWJsZSBtYXRjaCwgYW5kIHdlIG5lZWQgdG8gcnVuIGl0IHRocm91Z2gg UmVnZXguICovCisgICAgICAvKiBSdW4gdGhlIHBvc3NpYmxlIG1hdGNoIHRocm91Z2ggUmVn ZXguICAqLwogICAgICAgYmVzdF9tYXRjaCA9IGVuZDsKICAgICAgIGJlc3RfbGVuID0gMDsK ICAgICAgIGZvciAoaSA9IDA7IGkgPCBwY291bnQ7IGkrKykKLS0gCjEuOS4wCgo= --------------040500080106060609070900-- From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 30 10:42:58 2014 Received: (at 17350) by debbugs.gnu.org; 30 Apr 2014 14:42:58 +0000 Received: from localhost ([127.0.0.1]:46630 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfVir-0004lz-Qb for submit@debbugs.gnu.org; Wed, 30 Apr 2014 10:42:58 -0400 Received: from mailgw01.kcn.ne.jp ([61.86.7.208]:53203) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfVim-0004ld-TD for 17350@debbugs.gnu.org; Wed, 30 Apr 2014 10:42:54 -0400 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw01.kcn.ne.jp (Postfix) with ESMTP id 92C79802C6 for <17350@debbugs.gnu.org>; Wed, 30 Apr 2014 23:42:44 +0900 (JST) Received: from mail06.kcn.ne.jp ([61.86.6.185]) by imp01 with bizsmtp id wEik1n00D3zXHqt01EikYS; Wed, 30 Apr 2014 23:42:44 +0900 X-OrgRCPT: 17350@debbugs.gnu.org Received: from [10.120.1.66] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail06.kcn.ne.jp (Postfix) with ESMTPA id 25D5F1BF00B0; Wed, 30 Apr 2014 23:42:44 +0900 (JST) Date: Wed, 30 Apr 2014 23:42:44 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <5360A1E2.1020008@cs.ucla.edu> References: <20140429210254.691A.27F6AC2D@kcn.ne.jp> <5360A1E2.1020008@cs.ucla.edu> Message-Id: <20140430234242.818A.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) Thanks for the investigation. `narrowed' in my patch means not `kwset_exact_match' but that it has been narrowed down to one line for DFA. If `narrowed' is false, don't have to seek eolbyte. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 30 10:49:30 2014 Received: (at 17350) by debbugs.gnu.org; 30 Apr 2014 14:49:30 +0000 Received: from localhost ([127.0.0.1]:46636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfVpB-0004xR-VT for submit@debbugs.gnu.org; Wed, 30 Apr 2014 10:49:30 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:53922) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfVpA-0004xD-0A for 17350@debbugs.gnu.org; Wed, 30 Apr 2014 10:49:28 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id DFA3339E801A; Wed, 30 Apr 2014 07:49:21 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VpT1RzdcoZlY; Wed, 30 Apr 2014 07:49:13 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 5E933A60001; Wed, 30 Apr 2014 07:49:13 -0700 (PDT) Message-ID: <53610D69.9020209@cs.ucla.edu> Date: Wed, 30 Apr 2014 07:49:13 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset References: <20140429210254.691A.27F6AC2D@kcn.ne.jp> <5360A1E2.1020008@cs.ucla.edu> <20140430234242.818A.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140430234242.818A.27F6AC2D@kcn.ne.jp> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -3.0 (---) Norihiro Tanaka wrote: > If `narrowed' is false, don't have to seek eolbyte. Sure, but how much does that help performance in the typical case? The 'narrowed' code is there purely for performance reasons, so if it doesn't significantly help performance, it's better to keep things simple and remove it. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 30 19:04:41 2014 Received: (at 17350) by debbugs.gnu.org; 30 Apr 2014 23:04:41 +0000 Received: from localhost ([127.0.0.1]:46887 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfdYO-0002ry-Lp for submit@debbugs.gnu.org; Wed, 30 Apr 2014 19:04:41 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:33087) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfdYL-0002rb-FI for 17350@debbugs.gnu.org; Wed, 30 Apr 2014 19:04:38 -0400 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id D69518B801C for <17350@debbugs.gnu.org>; Thu, 1 May 2014 08:04:29 +0900 (JST) Received: from mail07.kcn.ne.jp ([61.86.6.186]) by imp01 with bizsmtp id wP4V1n00540oyB901P4Vae; Thu, 01 May 2014 08:04:29 +0900 X-OrgRCPT: 17350@debbugs.gnu.org Received: from [10.120.1.58] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail07.kcn.ne.jp (Postfix) with ESMTPA id 9AEC8D5002B; Thu, 1 May 2014 08:04:29 +0900 (JST) Date: Thu, 01 May 2014 08:04:29 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <53610D69.9020209@cs.ucla.edu> References: <20140430234242.818A.27F6AC2D@kcn.ne.jp> <53610D69.9020209@cs.ucla.edu> Message-Id: <20140501080429.5CFF.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) Paul Eggert wrote: > Sure, but how much does that help performance in the typical case? Perhaps, You are right. I tested it for some cases, but couldn't find any cases speeded-up by it. Thanks, From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 30 21:33:56 2014 Received: (at 17350-done) by debbugs.gnu.org; 1 May 2014 01:33:56 +0000 Received: from localhost ([127.0.0.1]:46916 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wffsp-0006yn-Qb for submit@debbugs.gnu.org; Wed, 30 Apr 2014 21:33:56 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:60399) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wffsl-0006yM-EK for 17350-done@debbugs.gnu.org; Wed, 30 Apr 2014 21:33:52 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 686C639E801B; Wed, 30 Apr 2014 18:33:45 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Tm+fGcKujfbP; Wed, 30 Apr 2014 18:33:36 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id D295639E8019; Wed, 30 Apr 2014 18:33:36 -0700 (PDT) Message-ID: <5361A46C.3040509@cs.ucla.edu> Date: Wed, 30 Apr 2014 18:33:32 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset References: <20140430234242.818A.27F6AC2D@kcn.ne.jp> <53610D69.9020209@cs.ucla.edu> <20140501080429.5CFF.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140501080429.5CFF.27F6AC2D@kcn.ne.jp> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17350-done Cc: 17350-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -3.0 (---) Norihiro Tanaka wrote: > I tested it for some cases, but couldn't find > any cases speeded-up by it. Thanks for checking; I installed that combination of patches and am marking this as done. From debbugs-submit-bounces@debbugs.gnu.org Thu May 01 07:51:56 2014 Received: (at 17350) by debbugs.gnu.org; 1 May 2014 11:51:56 +0000 Received: from localhost ([127.0.0.1]:47068 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfpWu-0002Oi-6d for submit@debbugs.gnu.org; Thu, 01 May 2014 07:51:56 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:59058) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WfpWq-0002OX-Ci for 17350@debbugs.gnu.org; Thu, 01 May 2014 07:51:53 -0400 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id 78431E8806C for <17350@debbugs.gnu.org>; Thu, 1 May 2014 20:51:49 +0900 (JST) Received: from mail05.kcn.ne.jp ([61.86.6.184]) by imp01 with bizsmtp id wbrp1n00P3yDdWd01brp1y; Thu, 01 May 2014 20:51:49 +0900 X-OrgRCPT: 17350@debbugs.gnu.org Received: from [10.120.1.61] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail05.kcn.ne.jp (Postfix) with ESMTPA id 19F0D7D00A2; Thu, 1 May 2014 20:51:49 +0900 (JST) Date: Thu, 01 May 2014 20:51:49 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <5361A46C.3040509@cs.ucla.edu> References: <20140501080429.5CFF.27F6AC2D@kcn.ne.jp> <5361A46C.3040509@cs.ucla.edu> Message-Id: <20140501205140.B0EE.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_536234B800000000B0E4_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) --------_536234B800000000B0E4_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Paul Eggert wrote: > Thanks for checking; I installed that combination of patches and am > marking this as done. Sorry, I have discovered a bug in your improvement, and fix it. --------_536234B800000000B0E4_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSAxNzhhMTU0ZmJlYTU1NTI3NWYwMmYwYjg4M2JlMGMwNGQ2MGVjZDM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBUaHUsIDEgTWF5IDIwMTQgMTE6MzQ6MzYgKzA5MDAKU3ViamVjdDogW1BBVENIXSBncmVw OiBmaXggdGhlIGJ1ZyBpbiBwcmV2aW91cyBwYXRjaC4KCiogc3JjL2RmYXNlYXJjaC5jIChFR2V4 ZWN1dGUpOiBEbyBpdC4KLS0tCiBzcmMvZGZhc2VhcmNoLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Rm YXNlYXJjaC5jIGIvc3JjL2RmYXNlYXJjaC5jCmluZGV4IDVhZDZjOWQuLjZkMjc0ODkgMTAwNjQ0 Ci0tLSBhL3NyYy9kZmFzZWFyY2guYworKysgYi9zcmMvZGZhc2VhcmNoLmMKQEAgLTI1Nyw5ICsy NTcsOSBAQCBFR2V4ZWN1dGUgKGNoYXIgY29uc3QgKmJ1Ziwgc2l6ZV90IHNpemUsIHNpemVfdCAq bWF0Y2hfc2l6ZSwKICAgICAgICAgICAgICAgZW5kID0gKChleGFjdF9rd3NldF9tYXRjaCB8fCAh ZGZhZmFzdAogICAgICAgICAgICAgICAgICAgICAgIHx8IE1BWCAoMTYsIG1hdGNoIC0gYmVnKSA8 IChtYXRjaCAtIHByZXZfYmVnKSA+PiAyKQogICAgICAgICAgICAgICAgICAgICAgPyBtYXRjaAot ICAgICAgICAgICAgICAgICAgICAgOiAoYnVmbGltIC0gcHJldl9iZWcpID4+IDIgPD0gbWF0Y2gg LSBiZWcKKyAgICAgICAgICAgICAgICAgICAgIDogKGJ1ZmxpbSAtIHByZXZfYmVnKSA+PiAyIDw9 IE1BWCAoMTYsIG1hdGNoIC0gYmVnKQogICAgICAgICAgICAgICAgICAgICAgPyBidWZsaW0KLSAg ICAgICAgICAgICAgICAgICAgIDogcHJldl9iZWcgKyA0ICogKG1hdGNoIC0gYmVnKSk7CisgICAg ICAgICAgICAgICAgICAgICA6IHByZXZfYmVnICsgNCAqIE1BWCAoMTYsIG1hdGNoIC0gYmVnKSk7 CiAgICAgICAgICAgICAgIGVuZCA9IG1lbWNociAoZW5kLCBlb2wsIGJ1ZmxpbSAtIGVuZCk7CiAg ICAgICAgICAgICAgIGVuZCA9IGVuZCA/IGVuZCArIDEgOiBidWZsaW07CiAKLS0gCjEuOS4yCgo= --------_536234B800000000B0E4_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sat May 03 18:40:20 2014 Received: (at 17350) by debbugs.gnu.org; 3 May 2014 22:40:20 +0000 Received: from localhost ([127.0.0.1]:50112 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WgibT-00009J-B8 for submit@debbugs.gnu.org; Sat, 03 May 2014 18:40:19 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:46925) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WgibQ-000092-1t for 17350@debbugs.gnu.org; Sat, 03 May 2014 18:40:17 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 5EF78A6002B; Sat, 3 May 2014 15:40:10 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PshNsjZCNqPk; Sat, 3 May 2014 15:40:05 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id A70A3A6001F; Sat, 3 May 2014 15:40:05 -0700 (PDT) Message-ID: <53657045.3070709@cs.ucla.edu> Date: Sat, 03 May 2014 15:40:05 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset References: <20140501080429.5CFF.27F6AC2D@kcn.ne.jp> <5361A46C.3040509@cs.ucla.edu> <20140501205140.B0EE.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140501205140.B0EE.27F6AC2D@kcn.ne.jp> Content-Type: multipart/mixed; boundary="------------030302060508000308000405" X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -3.0 (---) This is a multi-part message in MIME format. --------------030302060508000308000405 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Norihiro Tanaka wrote: > Sorry, I have discovered a bug in your improvement, and fix it. Thanks for reporting and fixing that! I installed that. Also, I tried to change the code a bit to make similar bugs less likely in the future, and installed the attached followup patch. --------------030302060508000308000405 Content-Type: text/plain; charset=UTF-8; name="0001-grep-clarify-EGexecute-slightly.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-grep-clarify-EGexecute-slightly.patch" RnJvbSA5OTVmMGM0M2EwMTk4ZDYyZTc3OWVjNTExM2E1OGUyMjg4OTM2N2FhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDMgTWF5IDIwMTQgMTU6Mzc6MTcgLTA3MDAKU3ViamVjdDogW1BBVENI XSBncmVwOiBjbGFyaWZ5IEVHZXhlY3V0ZSBzbGlnaHRseQoKKiBzcmMvZGZhc2VhcmNoLmMg KEVHZXhlY3V0ZSk6IENoYW5nZSBpZi10aGVuLWVsc2UgdG8gIWlmLWVsc2UtdGhlbi4KLS0t CiBzcmMvZGZhc2VhcmNoLmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvZGZhc2VhcmNoLmMg Yi9zcmMvZGZhc2VhcmNoLmMKaW5kZXggNmQyNzQ4OS4uNGIzYzc5YSAxMDA2NDQKLS0tIGEv c3JjL2RmYXNlYXJjaC5jCisrKyBiL3NyYy9kZmFzZWFyY2guYwpAQCAtMjU3LDkgKzI1Nyw5 IEBAIEVHZXhlY3V0ZSAoY2hhciBjb25zdCAqYnVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90ICpt YXRjaF9zaXplLAogICAgICAgICAgICAgICBlbmQgPSAoKGV4YWN0X2t3c2V0X21hdGNoIHx8 ICFkZmFmYXN0CiAgICAgICAgICAgICAgICAgICAgICAgfHwgTUFYICgxNiwgbWF0Y2ggLSBi ZWcpIDwgKG1hdGNoIC0gcHJldl9iZWcpID4+IDIpCiAgICAgICAgICAgICAgICAgICAgICA/ IG1hdGNoCi0gICAgICAgICAgICAgICAgICAgICA6IChidWZsaW0gLSBwcmV2X2JlZykgPj4g MiA8PSBNQVggKDE2LCBtYXRjaCAtIGJlZykKLSAgICAgICAgICAgICAgICAgICAgID8gYnVm bGltCi0gICAgICAgICAgICAgICAgICAgICA6IHByZXZfYmVnICsgNCAqIE1BWCAoMTYsIG1h dGNoIC0gYmVnKSk7CisgICAgICAgICAgICAgICAgICAgICA6IE1BWCAoMTYsIG1hdGNoIC0g YmVnKSA8IChidWZsaW0gLSBwcmV2X2JlZykgPj4gMgorICAgICAgICAgICAgICAgICAgICAg PyBwcmV2X2JlZyArIDQgKiBNQVggKDE2LCBtYXRjaCAtIGJlZykKKyAgICAgICAgICAgICAg ICAgICAgIDogYnVmbGltKTsKICAgICAgICAgICAgICAgZW5kID0gbWVtY2hyIChlbmQsIGVv bCwgYnVmbGltIC0gZW5kKTsKICAgICAgICAgICAgICAgZW5kID0gZW5kID8gZW5kICsgMSA6 IGJ1ZmxpbTsKIAotLSAKMS45LjAKCg== --------------030302060508000308000405-- From debbugs-submit-bounces@debbugs.gnu.org Tue May 06 08:46:05 2014 Received: (at 17350) by debbugs.gnu.org; 6 May 2014 12:46:05 +0000 Received: from localhost ([127.0.0.1]:52443 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Whel2-0005MF-KB for submit@debbugs.gnu.org; Tue, 06 May 2014 08:46:05 -0400 Received: from mailgw01.kcn.ne.jp ([61.86.7.208]:47113) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Whekw-0005LY-K9 for 17350@debbugs.gnu.org; Tue, 06 May 2014 08:46:00 -0400 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw01.kcn.ne.jp (Postfix) with ESMTP id D59C3802ED for <17350@debbugs.gnu.org>; Tue, 6 May 2014 21:45:55 +0900 (JST) Received: from mail04.kcn.ne.jp ([61.86.6.183]) by imp01 with bizsmtp id yclv1n00L3wvxAM01clvak; Tue, 06 May 2014 21:45:55 +0900 X-OrgRCPT: 17350@debbugs.gnu.org Received: from [10.120.1.76] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail04.kcn.ne.jp (Postfix) with ESMTPA id 6329612900C1; Tue, 6 May 2014 21:45:55 +0900 (JST) Date: Tue, 06 May 2014 21:45:54 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <53657045.3070709@cs.ucla.edu> References: <20140501205140.B0EE.27F6AC2D@kcn.ne.jp> <53657045.3070709@cs.ucla.edu> Message-Id: <20140506214526.784A.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_5368D77900000000783E_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) --------_5368D77900000000783E_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit It seems that we can't ignore overheads by searching BACKREF in dfaisfast(). First patch fixes it. Second patch fixes a typo in a comment I have found in the process. --------_5368D77900000000783E_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="0001-dfa-checking-BACKREF-in-advance.patch" Content-Disposition: attachment; filename="0001-dfa-checking-BACKREF-in-advance.patch" Content-Transfer-Encoding: base64 RnJvbSA5YmNjMDQwZDU3NjY5MzkzYzI4YTE4NTJkYzNlOTAzN2RjOGM4MWY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDUgTWF5IDIwMTQgMTU6MTQ6MzQgKzA5MDAKU3ViamVjdDogW1BBVENIIDEvMl0g ZGZhOiBjaGVja2luZyBCQUNLUkVGIGluIGFkdmFuY2UKCiogc3JjL2RmYS5jIChzdHJ1Y3QgZGZh KTogRGVmaW5lIG5ldyBtZW1iZXIgYGhhc19iYWNrcmVmJy4KKGFkZHRva19tYik6IFR1cm4gb24g aXQsIHdoZW4gYWRkIEJBQ0tSRUYgdG8gdG9rZW5zLgooZGZhaXNmYXN0KTogVXNlIGl0IGluc3Rl YWQgb2YgY2hlY2tpbmcgQkFDS1JFRi4KLS0tCiBzcmMvZGZhLmMgfCAxNiArKysrLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXggMjczZDNkMS4uMTJmYmRkYSAx MDA2NDQKLS0tIGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpAQCAtMzM3LDYgKzMzNyw3IEBA IHN0cnVjdCBkZmEKICAgc2l6ZV90IG5sZWF2ZXM7ICAgICAgICAgICAgICAgLyogTnVtYmVyIG9m IGxlYXZlcyBvbiB0aGUgcGFyc2UgdHJlZS4gICovCiAgIHNpemVfdCBucmVnZXhwczsgICAgICAg ICAgICAgIC8qIENvdW50IG9mIHBhcmFsbGVsIHJlZ2V4cHMgYmVpbmcgYnVpbHQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBkZmFwYXJzZS4gICovCisgIGJvb2wgaGFz X2JhY2tyZWY7ICAgICAgICAgICAgIC8qIFRydWUgaWYgaGFzIEJBQ0tSRUYgaW4gdG9rZW5zLiAg Ki8KICAgYm9vbCBtdWx0aWJ5dGU7CQkvKiBUcnVlIGlmZiBNQl9DVVJfTUFYID4gMS4gICovCiAg IHRva2VuIHV0ZjhfYW55Y2hhcl9jbGFzc2VzWzVdOyAvKiBUbyBsb3dlciBBTllDSEFSIGluIFVU Ri04IGxvY2FsZXMuICAqLwogICBtYnN0YXRlX3QgbWJzOwkJLyogTXVsdGlieXRlIGNvbnZlcnNp b24gc3RhdGUuICAqLwpAQCAtMTU5Myw2ICsxNTk0LDggQEAgYWRkdG9rX21iICh0b2tlbiB0LCBp bnQgbWJwcm9wKQogICAgICAgLS1kZXB0aDsKICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBCQUNL UkVGOgorICAgICAgZGZhLT5oYXNfYmFja3JlZiA9IHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAg ICsrZGZhLT5ubGVhdmVzOwogICAgIGNhc2UgRU1QVFk6CkBAIC0zNDE5LDE4ICszNDIyLDcgQEAg ZGZhc3VwZXJzZXQgKHN0cnVjdCBkZmEgY29uc3QgKmQpCiBib29sCiBkZmFpc2Zhc3QgKHN0cnVj dCBkZmEgY29uc3QgKmQpCiB7Ci0gIGlmIChkLT5zdXBlcnNldCkKLSAgICByZXR1cm4gdHJ1ZTsK LSAgZWxzZSBpZiAoZC0+bXVsdGlieXRlKQotICAgIHJldHVybiBmYWxzZTsKLSAgZWxzZQotICAg IHsKLSAgICAgIHNpemVfdCBpOwotICAgICAgZm9yIChpID0gMDsgaSA8IGQtPnRpbmRleDsgaSsr KQotICAgICAgICBpZiAoZC0+dG9rZW5zW2ldID09IEJBQ0tSRUYpCi0gICAgICAgICAgcmV0dXJu IGZhbHNlOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQorICByZXR1cm4gZC0+c3VwZXJzZXQg fHwgKCFkLT5tdWx0aWJ5dGUgJiYgIWQtPmhhc19iYWNrcmVmKTsKIH0KIAogc3RhdGljIHZvaWQK LS0gCjEuOS4yCgo= --------_5368D77900000000783E_MULTIPART_MIXED_ Content-Type: text/plain; charset="UTF-8"; name="0002-dfa-fix-comment.patch" Content-Disposition: attachment; filename="0002-dfa-fix-comment.patch" Content-Transfer-Encoding: base64 RnJvbSBmNzUzZTdlYjg3MmYwYzA5YThlYjI4MGFmYjA1NzE4NGRjMzllNmQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDUgTWF5IDIwMTQgMTY6MTQ6MDEgKzA5MDAKU3ViamVjdDogW1BBVENIIDIvMl0g ZGZhOiBmaXggY29tbWVudAoKKiBzcmMvZGZhLmMgKHN0cnVjdCBkZmEpOiBGaXggY29tbWVudCB0 eXBvLgotLS0KIHNyYy9kZmEuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRl eCAxMmZiZGRhLi5kYjg4NDZmIDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2RmYS5j CkBAIC0zMzgsNyArMzM4LDcgQEAgc3RydWN0IGRmYQogICBzaXplX3QgbnJlZ2V4cHM7ICAgICAg ICAgICAgICAvKiBDb3VudCBvZiBwYXJhbGxlbCByZWdleHBzIGJlaW5nIGJ1aWx0CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggZGZhcGFyc2UuICAqLwogICBib29sIGhh c19iYWNrcmVmOyAgICAgICAgICAgICAvKiBUcnVlIGlmIGhhcyBCQUNLUkVGIGluIHRva2Vucy4g ICovCi0gIGJvb2wgbXVsdGlieXRlOwkJLyogVHJ1ZSBpZmYgTUJfQ1VSX01BWCA+IDEuICAqLwor ICBib29sIG11bHRpYnl0ZTsJCS8qIFRydWUgaWYgTUJfQ1VSX01BWCA+IDEuICAqLwogICB0b2tl biB1dGY4X2FueWNoYXJfY2xhc3Nlc1s1XTsgLyogVG8gbG93ZXIgQU5ZQ0hBUiBpbiBVVEYtOCBs b2NhbGVzLiAgKi8KICAgbWJzdGF0ZV90IG1iczsJCS8qIE11bHRpYnl0ZSBjb252ZXJzaW9uIHN0 YXRlLiAgKi8KIAotLSAKMS45LjIKCg== --------_5368D77900000000783E_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Tue May 06 10:46:57 2014 Received: (at 17350) by debbugs.gnu.org; 6 May 2014 14:46:57 +0000 Received: from localhost ([127.0.0.1]:52958 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Whgdz-0000Nj-FR for submit@debbugs.gnu.org; Tue, 06 May 2014 10:46:57 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:35148) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Whgdq-0000NE-8o for 17350@debbugs.gnu.org; Tue, 06 May 2014 10:46:48 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 0773DA6002F; Tue, 6 May 2014 07:46:40 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id logCygGiLblA; Tue, 6 May 2014 07:46:35 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id B50D1A6002D; Tue, 6 May 2014 07:46:35 -0700 (PDT) Message-ID: <5368F5C8.3080009@cs.ucla.edu> Date: Tue, 06 May 2014 07:46:32 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset References: <20140501205140.B0EE.27F6AC2D@kcn.ne.jp> <53657045.3070709@cs.ucla.edu> <20140506214526.784A.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140506214526.784A.27F6AC2D@kcn.ne.jp> Content-Type: multipart/mixed; boundary="------------070008070407040908020205" X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -3.0 (---) This is a multi-part message in MIME format. --------------070008070407040908020205 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thanks, I pushed that with minor changes to the ChangeLog message (first attached patch). It's a tad faster to combine the relevant flags at compile-time so I did that (second attached patch). "Iff" means "if and only if"; see . I got the habit of trying to be logically-precise from RMS, who I guess got it back in the days when he was doing AI. Anyway, I reworded the text in a different way to avoid the misuse of "if" (third attached patch). --------------070008070407040908020205 Content-Type: text/plain; charset=UTF-8; name="0001-dfa-speed-up-dfaisfast.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-dfa-speed-up-dfaisfast.patch" RnJvbSAxMzUyM2VmOGM3MjhhYmUzNTkyMmQ2MTc4ZDk0ZGMxMDA4YWE3Njc1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5l LmpwPgpEYXRlOiBNb24sIDUgTWF5IDIwMTQgMTU6MTQ6MzQgKzA5MDAKU3ViamVjdDogW1BB VENIIDEvM10gZGZhOiBzcGVlZCB1cCAnZGZhaXNmYXN0JwoKKiBzcmMvZGZhLmMgKHN0cnVj dCBkZmEpOiBOZXcgbWVtYmVyICdoYXNfYmFja3JlZicuCihhZGR0b2tfbWIpOiBTZXQgaXQu CihkZmFpc2Zhc3QpOiBVc2UgaXQuCi0tLQogc3JjL2RmYS5jIHwgMTYgKysrKy0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDI3M2QzZDEuLjEy ZmJkZGEgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTMzNyw2 ICszMzcsNyBAQCBzdHJ1Y3QgZGZhCiAgIHNpemVfdCBubGVhdmVzOyAgICAgICAgICAgICAg IC8qIE51bWJlciBvZiBsZWF2ZXMgb24gdGhlIHBhcnNlIHRyZWUuICAqLwogICBzaXplX3Qg bnJlZ2V4cHM7ICAgICAgICAgICAgICAvKiBDb3VudCBvZiBwYXJhbGxlbCByZWdleHBzIGJl aW5nIGJ1aWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggZGZh cGFyc2UuICAqLworICBib29sIGhhc19iYWNrcmVmOyAgICAgICAgICAgICAvKiBUcnVlIGlm IGhhcyBCQUNLUkVGIGluIHRva2Vucy4gICovCiAgIGJvb2wgbXVsdGlieXRlOwkJLyogVHJ1 ZSBpZmYgTUJfQ1VSX01BWCA+IDEuICAqLwogICB0b2tlbiB1dGY4X2FueWNoYXJfY2xhc3Nl c1s1XTsgLyogVG8gbG93ZXIgQU5ZQ0hBUiBpbiBVVEYtOCBsb2NhbGVzLiAgKi8KICAgbWJz dGF0ZV90IG1iczsJCS8qIE11bHRpYnl0ZSBjb252ZXJzaW9uIHN0YXRlLiAgKi8KQEAgLTE1 OTMsNiArMTU5NCw4IEBAIGFkZHRva19tYiAodG9rZW4gdCwgaW50IG1icHJvcCkKICAgICAg IC0tZGVwdGg7CiAgICAgICBicmVhazsKIAorICAgIGNhc2UgQkFDS1JFRjoKKyAgICAgIGRm YS0+aGFzX2JhY2tyZWYgPSB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICArK2RmYS0+bmxl YXZlczsKICAgICBjYXNlIEVNUFRZOgpAQCAtMzQxOSwxOCArMzQyMiw3IEBAIGRmYXN1cGVy c2V0IChzdHJ1Y3QgZGZhIGNvbnN0ICpkKQogYm9vbAogZGZhaXNmYXN0IChzdHJ1Y3QgZGZh IGNvbnN0ICpkKQogewotICBpZiAoZC0+c3VwZXJzZXQpCi0gICAgcmV0dXJuIHRydWU7Ci0g IGVsc2UgaWYgKGQtPm11bHRpYnl0ZSkKLSAgICByZXR1cm4gZmFsc2U7Ci0gIGVsc2UKLSAg ICB7Ci0gICAgICBzaXplX3QgaTsKLSAgICAgIGZvciAoaSA9IDA7IGkgPCBkLT50aW5kZXg7 IGkrKykKLSAgICAgICAgaWYgKGQtPnRva2Vuc1tpXSA9PSBCQUNLUkVGKQotICAgICAgICAg IHJldHVybiBmYWxzZTsKLSAgICAgIHJldHVybiB0cnVlOwotICAgIH0KKyAgcmV0dXJuIGQt PnN1cGVyc2V0IHx8ICghZC0+bXVsdGlieXRlICYmICFkLT5oYXNfYmFja3JlZik7CiB9CiAK IHN0YXRpYyB2b2lkCi0tIAoxLjkuMAoK --------------070008070407040908020205 Content-Type: text/plain; charset=UTF-8; name="0002-dfa-minor-performance-improvement-for-previous-chang.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-dfa-minor-performance-improvement-for-previous-chang.pa"; filename*1="tch" RnJvbSBmMDgyMTk4MjU3NzMzYjExMTk1YTMyZDM0MmFlNTJlOTVmOTEwZjIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDYgTWF5IDIwMTQgMDc6MjM6MDMgLTA3MDAKU3ViamVjdDogW1BBVENI IDIvM10gZGZhOiBtaW5vciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBmb3IgcHJldmlvdXMg Y2hhbmdlCgoqIHNyYy9kZmEuYyAoc3RydWN0IGRmYSk6IE5ldyBtZW1iZXIgJ2Zhc3QnLiAg UmVtb3ZlICdoYXNfYmFja3JlZicuCkFsbCB1c2VzIGNoYW5nZWQuCi0tLQogc3JjL2RmYS5j IHwgMTIgKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBiL3NyYy9kZmEuYwppbmRl eCAxMmZiZGRhLi41YjM3MDRlIDEwMDY0NAotLS0gYS9zcmMvZGZhLmMKKysrIGIvc3JjL2Rm YS5jCkBAIC0zMzcsNyArMzM3LDcgQEAgc3RydWN0IGRmYQogICBzaXplX3QgbmxlYXZlczsg ICAgICAgICAgICAgICAvKiBOdW1iZXIgb2YgbGVhdmVzIG9uIHRoZSBwYXJzZSB0cmVlLiAg Ki8KICAgc2l6ZV90IG5yZWdleHBzOyAgICAgICAgICAgICAgLyogQ291bnQgb2YgcGFyYWxs ZWwgcmVnZXhwcyBiZWluZyBidWlsdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB3aXRoIGRmYXBhcnNlLiAgKi8KLSAgYm9vbCBoYXNfYmFja3JlZjsgICAgICAgICAg ICAgLyogVHJ1ZSBpZiBoYXMgQkFDS1JFRiBpbiB0b2tlbnMuICAqLworICBib29sIGZhc3Q7 CQkJLyogVGhlIERGQSBpcyBmYXN0LiAgKi8KICAgYm9vbCBtdWx0aWJ5dGU7CQkvKiBUcnVl IGlmZiBNQl9DVVJfTUFYID4gMS4gICovCiAgIHRva2VuIHV0ZjhfYW55Y2hhcl9jbGFzc2Vz WzVdOyAvKiBUbyBsb3dlciBBTllDSEFSIGluIFVURi04IGxvY2FsZXMuICAqLwogICBtYnN0 YXRlX3QgbWJzOwkJLyogTXVsdGlieXRlIGNvbnZlcnNpb24gc3RhdGUuICAqLwpAQCAtMTU5 NSw3ICsxNTk1LDcgQEAgYWRkdG9rX21iICh0b2tlbiB0LCBpbnQgbWJwcm9wKQogICAgICAg YnJlYWs7CiAKICAgICBjYXNlIEJBQ0tSRUY6Ci0gICAgICBkZmEtPmhhc19iYWNrcmVmID0g dHJ1ZTsKKyAgICAgIGRmYS0+ZmFzdCA9IGZhbHNlOwogICAgIGRlZmF1bHQ6CiAgICAgICAr K2RmYS0+bmxlYXZlczsKICAgICBjYXNlIEVNUFRZOgpAQCAtMzQyMiw3ICszNDIyLDcgQEAg ZGZhc3VwZXJzZXQgKHN0cnVjdCBkZmEgY29uc3QgKmQpCiBib29sCiBkZmFpc2Zhc3QgKHN0 cnVjdCBkZmEgY29uc3QgKmQpCiB7Ci0gIHJldHVybiBkLT5zdXBlcnNldCB8fCAoIWQtPm11 bHRpYnl0ZSAmJiAhZC0+aGFzX2JhY2tyZWYpOworICByZXR1cm4gZC0+ZmFzdDsKIH0KIAog c3RhdGljIHZvaWQKQEAgLTM0NjIsNiArMzQ2Miw3IEBAIGRmYWluaXQgKHN0cnVjdCBkZmEg KmQpCiB7CiAgIG1lbXNldCAoZCwgMCwgc2l6ZW9mICpkKTsKICAgZC0+bXVsdGlieXRlID0g TUJfQ1VSX01BWCA+IDE7CisgIGQtPmZhc3QgPSAhZC0+bXVsdGlieXRlOwogfQogCiBzdGF0 aWMgdm9pZApAQCAtMzU3OSw3ICszNTgwLDEwIEBAIGRmYWNvbXAgKGNoYXIgY29uc3QgKnMs IHNpemVfdCBsZW4sIHN0cnVjdCBkZmEgKmQsIGludCBzZWFyY2hmbGFnKQogICBkZmFzc2J1 aWxkIChkKTsKICAgZGZhYW5hbHl6ZSAoZCwgc2VhcmNoZmxhZyk7CiAgIGlmIChkLT5zdXBl cnNldCkKLSAgICBkZmFhbmFseXplIChkLT5zdXBlcnNldCwgc2VhcmNoZmxhZyk7CisgICAg eworICAgICAgZC0+ZmFzdCA9IHRydWU7CisgICAgICBkZmFhbmFseXplIChkLT5zdXBlcnNl dCwgc2VhcmNoZmxhZyk7CisgICAgfQogfQogCiAvKiBGcmVlIHRoZSBzdG9yYWdlIGhlbGQg YnkgdGhlIGNvbXBvbmVudHMgb2YgYSBkZmEuICAqLwotLSAKMS45LjAKCg== --------------070008070407040908020205 Content-Type: text/plain; charset=UTF-8; name="0003-dfa-clarify-use-of-if.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-dfa-clarify-use-of-if.patch" RnJvbSAzYzM0NjhiMTViYjdkMTU4NjlmNmYxNjg4ZjI4YmY5NDMxNzI1NzJlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDYgTWF5IDIwMTQgMDc6NDA6NTIgLTA3MDAKU3ViamVjdDogW1BBVENI IDMvM10gZGZhOiBjbGFyaWZ5IHVzZSBvZiAiaWYiCgpUaGUgcGhyYXNlICJZIGlzIHRydWUg aWYgWCIgaXMgbG9naWNhbGx5IGVxdWl2YWxlbnQgdG8gIlggaW1wbGllcyBZIiwKYnV0IG9m dGVuICJYIGlmIGFuZCBvbmx5IGlmIFkiIHdhcyBpbnRlbmRlZC4KKiBzcmMvZGZhLmMsIHNy Yy9kZmEuaDogUmV3b3JkIHRvIGF2b2lkIHRoZSBpbmNvcnJlY3QgdXNlIG9mICJpZiIuCi0t LQogc3JjL2RmYS5jIHwgNTIgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogc3JjL2RmYS5oIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwg MjUgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Rm YS5jIGIvc3JjL2RmYS5jCmluZGV4IDViMzcwNGUuLmZjMmFjZGMgMTAwNjQ0Ci0tLSBhL3Ny Yy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTQ2LDcgKzQ2LDYgQEAKICAgIGhvc3QgZG9l cyBub3QgY29uZm9ybSB0byBQb3NpeC4gICovCiAjZGVmaW5lIElTQVNDSUlESUdJVChjKSAo KHVuc2lnbmVkKSAoYykgLSAnMCcgPD0gOSkKIAotLyogZ2V0dGV4dC5oIGVuc3VyZXMgdGhh dCB3ZSBkb24ndCB1c2UgZ2V0dGV4dCBpZiBFTkFCTEVfTkxTIGlzIG5vdCBkZWZpbmVkICov CiAjaW5jbHVkZSAiZ2V0dGV4dC5oIgogI2RlZmluZSBfKHN0cikgZ2V0dGV4dCAoc3RyKQog CkBAIC0xODMsMjcgKzE4MiwyNSBAQCBlbnVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGEgYmFja3RyYWNraW5nIG1hdGNoZXIuICAqLwogCiAgIEJFR0xJTkUsICAg ICAgICAgICAgICAgICAgICAgIC8qIEJFR0xJTkUgaXMgYSB0ZXJtaW5hbCBzeW1ib2wgdGhh dCBtYXRjaGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBlbXB0 eSBzdHJpbmcgaWYgaXQgaXMgYXQgdGhlIGJlZ2lubmluZwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZiBhIGxpbmUuICAqLworCQkJCSAgIHRoZSBlbXB0eSBzdHJp bmcgYXQgdGhlIGJlZ2lubmluZyBvZiBhCisJCQkJICAgbGluZS4gICovCiAKICAgRU5ETElO RSwgICAgICAgICAgICAgICAgICAgICAgLyogRU5ETElORSBpcyBhIHRlcm1pbmFsIHN5bWJv bCB0aGF0IG1hdGNoZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhl IGVtcHR5IHN0cmluZyBpZiBpdCBpcyBhdCB0aGUgZW5kIG9mCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGEgbGluZS4gICovCisJCQkJICAgdGhlIGVtcHR5IHN0cmlu ZyBhdCB0aGUgZW5kIG9mIGEgbGluZS4gICovCiAKICAgQkVHV09SRCwgICAgICAgICAgICAg ICAgICAgICAgLyogQkVHV09SRCBpcyBhIHRlcm1pbmFsIHN5bWJvbCB0aGF0IG1hdGNoZXMK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGVtcHR5IHN0cmluZyBp ZiBpdCBpcyBhdCB0aGUgYmVnaW5uaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mIGEgd29yZC4gICovCisJCQkJICAgdGhlIGVtcHR5IHN0cmluZyBhdCB0aGUg YmVnaW5uaW5nIG9mIGEKKwkJCQkgICB3b3JkLiAgKi8KIAogICBFTkRXT1JELCAgICAgICAg ICAgICAgICAgICAgICAvKiBFTkRXT1JEIGlzIGEgdGVybWluYWwgc3ltYm9sIHRoYXQgbWF0 Y2hlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZW1wdHkgc3Ry aW5nIGlmIGl0IGlzIGF0IHRoZSBlbmQgb2YKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYSB3b3JkLiAgKi8KKwkJCQkgICB0aGUgZW1wdHkgc3RyaW5nIGF0IHRoZSBl bmQgb2YgYSB3b3JkLiAgKi8KIAogICBMSU1XT1JELCAgICAgICAgICAgICAgICAgICAgICAv KiBMSU1XT1JEIGlzIGEgdGVybWluYWwgc3ltYm9sIHRoYXQgbWF0Y2hlcwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZW1wdHkgc3RyaW5nIGlmIGl0IGlzIGF0 IHRoZSBiZWdpbm5pbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Ig dGhlIGVuZCBvZiBhIHdvcmQuICAqLworCQkJCSAgIHRoZSBlbXB0eSBzdHJpbmcgYXQgdGhl IGJlZ2lubmluZyBvciB0aGUKKwkJCQkgICBlbmQgb2YgYSB3b3JkLiAgKi8KIAogICBOT1RM SU1XT1JELCAgICAgICAgICAgICAgICAgICAvKiBOT1RMSU1XT1JEIGlzIGEgdGVybWluYWwg c3ltYm9sIHRoYXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hl cyB0aGUgZW1wdHkgc3RyaW5nIGlmIGl0IGlzIG5vdCBhdAorCQkJCSAgIG1hdGNoZXMgdGhl IGVtcHR5IHN0cmluZyBub3QgYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhlIGJlZ2lubmluZyBvciBlbmQgb2YgYSB3b3JkLiAgKi8KIAogICBRTUFSSywgICAg ICAgICAgICAgICAgICAgICAgICAvKiBRTUFSSyBpcyBhbiBvcGVyYXRvciBvZiBvbmUgYXJn dW1lbnQgdGhhdApAQCAtMjg0LDggKzI4MSw4IEBAIHR5cGVkZWYgc3RydWN0CiAgIHNpemVf dCBoYXNoOyAgICAgICAgICAgICAgICAgIC8qIEhhc2ggb2YgdGhlIHBvc2l0aW9ucyBvZiB0 aGlzIHN0YXRlLiAgKi8KICAgcG9zaXRpb25fc2V0IGVsZW1zOyAgICAgICAgICAgLyogUG9z aXRpb25zIHRoaXMgc3RhdGUgY291bGQgbWF0Y2guICAqLwogICB1bnNpZ25lZCBjaGFyIGNv bnRleHQ7ICAgICAgICAvKiBDb250ZXh0IGZyb20gcHJldmlvdXMgc3RhdGUuICAqLwotICBi b29sIGhhc19iYWNrcmVmOyAgICAgICAgICAgICAvKiBUcnVlIGlmIHRoaXMgc3RhdGUgbWF0 Y2hlcyBhIFw8ZGlnaXQ+LiAgKi8KLSAgYm9vbCBoYXNfbWJjc2V0OyAgICAgICAgICAgICAg LyogVHJ1ZSBpZiB0aGlzIHN0YXRlIG1hdGNoZXMgYSBNQkNTRVQuICAqLworICBib29sIGhh c19iYWNrcmVmOwkJLyogVGhpcyBzdGF0ZSBtYXRjaGVzIGEgXDxkaWdpdD4uICAqLworICBi b29sIGhhc19tYmNzZXQ7CQkvKiBUaGlzIHN0YXRlIG1hdGNoZXMgYSBNQkNTRVQuICAqLwog ICB1bnNpZ25lZCBzaG9ydCBjb25zdHJhaW50OyAgICAvKiBDb25zdHJhaW50IGZvciB0aGlz IHN0YXRlIHRvIGFjY2VwdC4gICovCiAgIHRva2VuIGZpcnN0X2VuZDsgICAgICAgICAgICAg IC8qIFRva2VuIHZhbHVlIG9mIHRoZSBmaXJzdCBFTkQgaW4gZWxlbXMuICAqLwogICBwb3Np dGlvbl9zZXQgbWJwczsgICAgICAgICAgICAvKiBQb3NpdGlvbnMgd2hpY2ggY2FuIG1hdGNo IG11bHRpYnl0ZQpAQCAtMzM4LDcgKzMzNSw3IEBAIHN0cnVjdCBkZmEKICAgc2l6ZV90IG5y ZWdleHBzOyAgICAgICAgICAgICAgLyogQ291bnQgb2YgcGFyYWxsZWwgcmVnZXhwcyBiZWlu ZyBidWlsdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIGRmYXBh cnNlLiAgKi8KICAgYm9vbCBmYXN0OwkJCS8qIFRoZSBERkEgaXMgZmFzdC4gICovCi0gIGJv b2wgbXVsdGlieXRlOwkJLyogVHJ1ZSBpZmYgTUJfQ1VSX01BWCA+IDEuICAqLworICBib29s IG11bHRpYnl0ZTsJCS8qIE1CX0NVUl9NQVggPiAxLiAgKi8KICAgdG9rZW4gdXRmOF9hbnlj aGFyX2NsYXNzZXNbNV07IC8qIFRvIGxvd2VyIEFOWUNIQVIgaW4gVVRGLTggbG9jYWxlcy4g ICovCiAgIG1ic3RhdGVfdCBtYnM7CQkvKiBNdWx0aWJ5dGUgY29udmVyc2lvbiBzdGF0ZS4g ICovCiAKQEAgLTM4OSw3ICszODYsNyBAQCBzdHJ1Y3QgZGZhCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1hdGNoaW5nIHRoZSBnaXZlbiBwb3NpdGlvbiBpbiBhIHN0 cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGluZyB0aGUg cmVnZXhwLiAgQWxsb2NhdGVkIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtYXhpbXVtIHBvc3NpYmxlIHBvc2l0aW9uIGluZGV4LiAgKi8KLSAgYm9vbCBz ZWFyY2hmbGFnOyAgICAgICAgICAgICAgLyogVHJ1ZSBpZiB3ZSBhcmUgc3VwcG9zZWQgdG8g YnVpbGQgYSBzZWFyY2hpbmcKKyAgYm9vbCBzZWFyY2hmbGFnOwkJLyogV2UgYXJlIHN1cHBv c2VkIHRvIGJ1aWxkIGEgc2VhcmNoaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzIG9wcG9zZWQgdG8gYW4gZXhhY3QgbWF0Y2hlci4gIEEgc2VhcmNoaW5nCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZXIgZmluZHMgdGhlIGZp cnN0IGFuZCBzaG9ydGVzdCBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWF0Y2hpbmcgYSByZWdleHAgYW55d2hlcmUgaW4gdGhlIGJ1ZmZlciwKQEAgLTQz MiwxMSArNDI5LDEwIEBAIHN0cnVjdCBkZmEKIAogLyogU29tZSBtYWNyb3MgZm9yIHVzZXIg YWNjZXNzIHRvIGRmYSBpbnRlcm5hbHMuICAqLwogCi0vKiBBQ0NFUFRJTkcgcmV0dXJucyB0 cnVlIGlmIHMgY291bGQgcG9zc2libHkgYmUgYW4gYWNjZXB0aW5nIHN0YXRlIG9mIHIuICAq LworLyogUyBjb3VsZCBwb3NzaWJseSBiZSBhbiBhY2NlcHRpbmcgc3RhdGUgb2YgUi4gICov CiAjZGVmaW5lIEFDQ0VQVElORyhzLCByKSAoKHIpLnN0YXRlc1tzXS5jb25zdHJhaW50KQog Ci0vKiBBQ0NFUFRTX0lOX0NPTlRFWFQgcmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBzdGF0 ZSBhY2NlcHRzIGluIHRoZQotICAgc3BlY2lmaWVkIGNvbnRleHQuICAqLworLyogU1RBVEUg YWNjZXB0cyBpbiB0aGUgc3BlY2lmaWVkIGNvbnRleHQuICAqLwogI2RlZmluZSBBQ0NFUFRT X0lOX0NPTlRFWFQocHJldiwgY3Vyciwgc3RhdGUsIGRmYSkgXAogICBTVUNDRUVEU19JTl9D T05URVhUICgoZGZhKS5zdGF0ZXNbc3RhdGVdLmNvbnN0cmFpbnQsIHByZXYsIGN1cnIpCiAK QEAgLTYyNiw5ICs2MjIsOSBAQCBlcXVhbCAoY2hhcmNsYXNzIGNvbnN0IHMxLCBjaGFyY2xh c3MgY29uc3QgczIpCiAgICBhbmQgcmV0dXJuIGl0cyBuZXcgYWRkcmVzcy4gIEFsdGhvdWdo IFBUUiBtYXkgYmUgbnVsbCwgdGhlIHJldHVybmVkCiAgICB2YWx1ZSBpcyBuZXZlciBudWxs LgogCi0gICBUaGUgYXJyYXkgaG9sZHMgKk5BTExPQyBpdGVtczsgKk5BTExPQyBtdXN0IGJl IHplcm8gaWYgUFRSIGlzIG51bGwsCi0gICBhbmQgaXMgdXBkYXRlZCBvbiByZWFsbG9jYXRp b24uICBJVEVNU0laRSBpcyB0aGUgc2l6ZSBvZiBvbmUgaXRlbS4KLSAgIEF2b2lkIE8oTioq MikgYmVoYXZpb3Igb24gYXJyYXlzIGdyb3dpbmcgbGluZWFybHkuICAqLworICAgVGhlIGFy cmF5IGhvbGRzICpOQUxMT0MgaXRlbXM7ICpOQUxMT0MgaXMgdXBkYXRlZCBvbiByZWFsbG9j YXRpb24uCisgICBJVEVNU0laRSBpcyB0aGUgc2l6ZSBvZiBvbmUgaXRlbS4gIEF2b2lkIE8o TioqMikgYmVoYXZpb3Igb24gYXJyYXlzCisgICBncm93aW5nIGxpbmVhcmx5LiAgKi8KIHN0 YXRpYyB2b2lkICoKIG1heWJlX3JlYWxsb2MgKHZvaWQgKnB0ciwgc2l6ZV90IG5pdGVtcywg c2l6ZV90ICpuYWxsb2MsIHNpemVfdCBpdGVtc2l6ZSkKIHsKQEAgLTY5MSw3ICs2ODcsNyBA QCBzdGF0aWMgY2hhcmNsYXNzIG5ld2xpbmU7CiAjIGRlZmluZSBpc192YWxpZF91bmlieXRl X2NoYXJhY3RlcihjKSAoYnRvd2MgKGMpICE9IFdFT0YpCiAjZW5kaWYKIAotLyogUmV0dXJu IG5vbi16ZXJvIGlmIEMgaXMgYSAid29yZC1jb25zdGl0dWVudCIgYnl0ZTsgemVybyBvdGhl cndpc2UuICAqLworLyogQyBpcyBhICJ3b3JkLWNvbnN0aXR1ZW50IiBieXRlLiAgKi8KICNk ZWZpbmUgSVNfV09SRF9DT05TVElUVUVOVChDKSBcCiAgIChpc192YWxpZF91bmlieXRlX2No YXJhY3RlciAoQykgJiYgKGlzYWxudW0gKEMpIHx8IChDKSA9PSAnXycpKQogCkBAIC03ODYs NyArNzgyLDcgQEAgdXNpbmdfdXRmOCAodm9pZCkKICAgcmV0dXJuIHV0Zjg7CiB9CiAKLS8q IFJldHVybiB0cnVlIGlmIHRoZSBjdXJyZW50IGxvY2FsZSBpcyBrbm93biB0byBiZSBhIHVu aWJ5dGUgbG9jYWxlCisvKiBUaGUgY3VycmVudCBsb2NhbGUgaXMga25vd24gdG8gYmUgYSB1 bmlieXRlIGxvY2FsZQogICAgd2l0aG91dCBtdWx0aWNoYXJhY3RlciBjb2xsYXRpbmcgc2Vx dWVuY2VzIGFuZCB3aGVyZSByYW5nZQogICAgY29tcGFyaXNvbnMgc2ltcGx5IHVzZSB0aGUg bmF0aXZlIGVuY29kaW5nLiAgVGhlc2UgbG9jYWxlcyBjYW4gYmUKICAgIHByb2Nlc3NlZCBt b3JlIGVmZmljaWVudGx5LiAgKi8KQEAgLTc5NCw3ICs3OTAsNyBAQCB1c2luZ191dGY4ICh2 b2lkKQogc3RhdGljIGJvb2wKIHVzaW5nX3NpbXBsZV9sb2NhbGUgKHZvaWQpCiB7Ci0gIC8q IFRydWUgaWYgdGhlIG5hdGl2ZSBjaGFyYWN0ZXIgc2V0IGlzIGtub3duIHRvIGJlIGNvbXBh dGlibGUgd2l0aAorICAvKiBUaGUgbmF0aXZlIGNoYXJhY3RlciBzZXQgaXMga25vd24gdG8g YmUgY29tcGF0aWJsZSB3aXRoCiAgICAgIHRoZSBDIGxvY2FsZS4gIFRoZSBmb2xsb3dpbmcg dGVzdCBpc24ndCBwZXJmZWN0LCBidXQgaXQncyBnb29kCiAgICAgIGVub3VnaCBpbiBwcmFj dGljZSwgYXMgb25seSBBU0NJSSBhbmQgRUJDRElDIGFyZSBpbiBjb21tb24gdXNlCiAgICAg IGFuZCB0aGlzIHRlc3QgY29ycmVjdGx5IGFjY2VwdHMgQVNDSUkgYW5kIHJlamVjdHMgRUJD RElDLiAgKi8KQEAgLTgzNCw3ICs4MzAsNyBAQCB1c2luZ19zaW1wbGVfbG9jYWxlICh2b2lk KQogc3RhdGljIGNoYXIgY29uc3QgKmxleHB0cjsgICAgICAvKiBQb2ludGVyIHRvIG5leHQg aW5wdXQgY2hhcmFjdGVyLiAgKi8KIHN0YXRpYyBzaXplX3QgbGV4bGVmdDsgICAgICAgICAg LyogTnVtYmVyIG9mIGNoYXJhY3RlcnMgcmVtYWluaW5nLiAgKi8KIHN0YXRpYyB0b2tlbiBs YXN0dG9rOyAgICAgICAgICAgLyogUHJldmlvdXMgdG9rZW4gcmV0dXJuZWQ7IGluaXRpYWxs eSBFTkQuICAqLwotc3RhdGljIGJvb2wgbGFzdHN0YXJ0OyAgICAgICAgICAvKiBUcnVlIGlm IHdlJ3JlIHNlcGFyYXRlZCBmcm9tIGJlZ2lubmluZyBvciAoLAorc3RhdGljIGJvb2wgbGFz dHN0YXJ0OwkJLyogV2UncmUgc2VwYXJhdGVkIGZyb20gYmVnaW5uaW5nIG9yICgsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb25seSBieSB6ZXJvLXdpZHRoIGNo YXJhY3RlcnMuICAqLwogc3RhdGljIHNpemVfdCBwYXJlbnM7ICAgICAgICAgICAvKiBDb3Vu dCBvZiBvdXRzdGFuZGluZyBsZWZ0IHBhcmVucy4gICovCiBzdGF0aWMgaW50IG1pbnJlcCwg bWF4cmVwOyAgICAgIC8qIFJlcGVhdCBjb3VudHMgZm9yIHttLG59LiAgKi8KQEAgLTk3Niw3 ICs5NzIsNyBAQCBwYXJzZV9icmFja2V0X2V4cCAodm9pZCkKICAgaW50IGMsIGMxLCBjMjsK ICAgY2hhcmNsYXNzIGNjbDsKIAotICAvKiBUcnVlIGlmIHRoaXMgaXMgYSBicmFja2V0IGV4 cHJlc3Npb24gdGhhdCBkZmFleGVjIGlzIGtub3duIHRvCisgIC8qIFRoaXMgaXMgYSBicmFj a2V0IGV4cHJlc3Npb24gdGhhdCBkZmFleGVjIGlzIGtub3duIHRvCiAgICAgIHByb2Nlc3Mg Y29ycmVjdGx5LiAgKi8KICAgYm9vbCBrbm93bl9icmFja2V0X2V4cCA9IHRydWU7CiAKQEAg LTI1NjAsNyArMjU1Niw3IEBAIGRmYXN0YXRlIChzdGF0ZV9udW0gcywgc3RydWN0IGRmYSAq ZCwgc3RhdGVfbnVtIHRyYW5zW10pCiAgIHN0YXRlX251bSBzdGF0ZTsgICAgICAgICAgICAg IC8qIE5ldyBzdGF0ZS4gICovCiAgIHN0YXRlX251bSBzdGF0ZV9uZXdsaW5lOyAgICAgIC8q IE5ldyBzdGF0ZSBvbiBhIG5ld2xpbmUgdHJhbnNpdGlvbi4gICovCiAgIHN0YXRlX251bSBz dGF0ZV9sZXR0ZXI7ICAgICAgIC8qIE5ldyBzdGF0ZSBvbiBhIGxldHRlciB0cmFuc2l0aW9u LiAgKi8KLSAgYm9vbCBuZXh0X2lzbnRfMXN0X2J5dGUgPSBmYWxzZTsgLyogRmxhZyBpZiB3 ZSBjYW4ndCBhZGQgc3RhdGUwLiAgKi8KKyAgYm9vbCBuZXh0X2lzbnRfMXN0X2J5dGUgPSBm YWxzZTsgLyogV2UgY2FuJ3QgYWRkIHN0YXRlMC4gICovCiAgIHNpemVfdCBpLCBqLCBrOwog CiAgIHplcm9zZXQgKG1hdGNoZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5oIGIvc3JjL2Rm YS5oCmluZGV4IGUzYWI3MDAuLmYzMGMzY2IgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuaAorKysg Yi9zcmMvZGZhLmgKQEAgLTc3LDcgKzc3LDcgQEAgZXh0ZXJuIGNoYXIgKmRmYWV4ZWMgKHN0 cnVjdCBkZmEgKmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICplbmQsCiAgICBzdXBlcnNl dCBpcyBhdmFpbGFibGUuICAqLwogZXh0ZXJuIHN0cnVjdCBkZmEgKmRmYXN1cGVyc2V0IChz dHJ1Y3QgZGZhIGNvbnN0ICpkKSBfR0xfQVRUUklCVVRFX1BVUkU7CiAKLS8qIFJldHVybiB0 cnVlIGlmIHRoZSBERkEgaXMgbGlrZWx5IHRvIGJlIGZhc3QuICAqLworLyogVGhlIERGQSBp cyBsaWtlbHkgdG8gYmUgZmFzdC4gICovCiBleHRlcm4gYm9vbCBkZmFpc2Zhc3QgKHN0cnVj dCBkZmEgY29uc3QgKikgX0dMX0FUVFJJQlVURV9QVVJFOwogCiAvKiBGcmVlIHRoZSBzdG9y YWdlIGhlbGQgYnkgdGhlIGNvbXBvbmVudHMgb2YgYSBzdHJ1Y3QgZGZhLiAqLwotLSAKMS45 LjAKCg== --------------070008070407040908020205-- From debbugs-submit-bounces@debbugs.gnu.org Tue May 06 18:08:41 2014 Received: (at 17350) by debbugs.gnu.org; 6 May 2014 22:08:41 +0000 Received: from localhost ([127.0.0.1]:53200 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WhnXU-0005Ml-KE for submit@debbugs.gnu.org; Tue, 06 May 2014 18:08:40 -0400 Received: from mailgw01.kcn.ne.jp ([61.86.7.208]:45823) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WhnXS-0005Ma-9J for 17350@debbugs.gnu.org; Tue, 06 May 2014 18:08:39 -0400 Received: from imp02 (mailgw6.kcn.ne.jp [61.86.15.232]) by mailgw01.kcn.ne.jp (Postfix) with ESMTP id D782C80249 for <17350@debbugs.gnu.org>; Wed, 7 May 2014 07:08:34 +0900 (JST) Received: from mail07.kcn.ne.jp ([61.86.6.186]) by imp02 with bizsmtp id ym8a1n00M40oyB901m8aMi; Wed, 07 May 2014 07:08:34 +0900 X-OrgRCPT: 17350@debbugs.gnu.org Received: from [10.120.1.54] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail07.kcn.ne.jp (Postfix) with ESMTPA id A5FFDD5009D; Wed, 7 May 2014 07:08:34 +0900 (JST) Date: Wed, 07 May 2014 07:08:34 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <5368F5C8.3080009@cs.ucla.edu> References: <20140506214526.784A.27F6AC2D@kcn.ne.jp> <5368F5C8.3080009@cs.ucla.edu> Message-Id: <20140507070833.D37D.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) Paul Eggert wrote: > "Iff" means "if and only if"; see . I > got the habit of trying to be logically-precise from RMS, who I guess > got it back in the days when he was doing AI. Wow, I understand it. Thanks, Norihiro From debbugs-submit-bounces@debbugs.gnu.org Tue May 06 18:17:51 2014 Received: (at 17350) by debbugs.gnu.org; 6 May 2014 22:17:51 +0000 Received: from localhost ([127.0.0.1]:53219 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WhngM-0005dO-LW for submit@debbugs.gnu.org; Tue, 06 May 2014 18:17:50 -0400 Received: from mailgw05.kcn.ne.jp ([61.86.7.212]:61699) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WhngJ-0005d3-A5 for 17350@debbugs.gnu.org; Tue, 06 May 2014 18:17:48 -0400 Received: from imp02 (mailgw6.kcn.ne.jp [61.86.15.232]) by mailgw05.kcn.ne.jp (Postfix) with ESMTP id 9164168038 for <17350@debbugs.gnu.org>; Wed, 7 May 2014 07:17:40 +0900 (JST) Received: from mail07.kcn.ne.jp ([61.86.6.186]) by imp02 with bizsmtp id ymHg1n00N40oyB901mHgkV; Wed, 07 May 2014 07:17:40 +0900 X-OrgRCPT: 17350@debbugs.gnu.org Received: from [10.120.1.54] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail07.kcn.ne.jp (Postfix) with ESMTPA id 5E2C4D5009D; Wed, 7 May 2014 07:17:40 +0900 (JST) Date: Wed, 07 May 2014 07:17:39 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <5368F5C8.3080009@cs.ucla.edu> References: <20140506214526.784A.27F6AC2D@kcn.ne.jp> <5368F5C8.3080009@cs.ucla.edu> Message-Id: <20140507071739.D385.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) Paul Eggert wrote: > Anyway, I reworded the text in a different way to avoid the misuse of > "if" (third attached patch). By the way, do you purposely replace spaces with tabs in third patch? From debbugs-submit-bounces@debbugs.gnu.org Tue May 06 21:45:44 2014 Received: (at 17350) by debbugs.gnu.org; 7 May 2014 01:45:45 +0000 Received: from localhost ([127.0.0.1]:53313 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WhqvX-0002mt-L3 for submit@debbugs.gnu.org; Tue, 06 May 2014 21:45:44 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:44795) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WhqvU-0002mc-6c for 17350@debbugs.gnu.org; Tue, 06 May 2014 21:45:41 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id BE3A6A6001C; Tue, 6 May 2014 18:45:34 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AoKWGsFILz40; Tue, 6 May 2014 18:45:26 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 32A0FA60034; Tue, 6 May 2014 18:45:26 -0700 (PDT) Message-ID: <53699035.3060907@cs.ucla.edu> Date: Tue, 06 May 2014 18:45:25 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset References: <20140506214526.784A.27F6AC2D@kcn.ne.jp> <5368F5C8.3080009@cs.ucla.edu> <20140507071739.D385.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140507071739.D385.27F6AC2D@kcn.ne.jp> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -3.0 (---) Norihiro Tanaka wrote: > Paul Eggert wrote: >> Anyway, I reworded the text in a different way to avoid the misuse of >> "if" (third attached patch). > > By the way, do you purposely replace spaces with tabs in third patch? Yes, we're using tabs to line up code that is multicolumn (typically the first column is code, the second comments). Admittedly the code is not consistent in this area. I'd prefer a different style, where there's a comment on one line and code on the next, and where there are no tabs, but now's not a good time to change styles. From debbugs-submit-bounces@debbugs.gnu.org Wed May 07 07:55:47 2014 Received: (at 17350) by debbugs.gnu.org; 7 May 2014 11:55:47 +0000 Received: from localhost ([127.0.0.1]:53646 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wi0Ru-0007J9-N0 for submit@debbugs.gnu.org; Wed, 07 May 2014 07:55:47 -0400 Received: from mailgw04.kcn.ne.jp ([61.86.7.211]:47872) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wi0Rq-0007Ix-Ti for 17350@debbugs.gnu.org; Wed, 07 May 2014 07:55:44 -0400 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw04.kcn.ne.jp (Postfix) with ESMTP id DACD46C1F13 for <17350@debbugs.gnu.org>; Wed, 7 May 2014 20:55:39 +0900 (JST) Received: from mail06.kcn.ne.jp ([61.86.6.185]) by imp01 with bizsmtp id yzvf1n00Y3zXHqt01zvfgc; Wed, 07 May 2014 20:55:39 +0900 X-OrgRCPT: 17350@debbugs.gnu.org Received: from [10.120.1.62] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail06.kcn.ne.jp (Postfix) with ESMTPA id 5F8BA1BF001E; Wed, 7 May 2014 20:55:39 +0900 (JST) Date: Wed, 07 May 2014 20:55:38 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset In-Reply-To: <53699035.3060907@cs.ucla.edu> References: <20140507071739.D385.27F6AC2D@kcn.ne.jp> <53699035.3060907@cs.ucla.edu> Message-Id: <20140507205537.2DFB.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350 Cc: 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) Paul Eggert wrote: > Yes, we're using tabs to line up code that is multicolumn (typically > the first column is code, the second comments). Admittedly the code > is not consistent in this area. > > I'd prefer a different style, where there's a comment on one line and > code on the next, and where there are no tabs, but now's not a good > time to change styles. Thanks, I understand it. Norihiro From debbugs-submit-bounces@debbugs.gnu.org Fri May 09 15:39:21 2014 Received: (at 17350) by debbugs.gnu.org; 9 May 2014 19:39:21 +0000 Received: from localhost ([127.0.0.1]:57276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wiqdc-00022W-GE for submit@debbugs.gnu.org; Fri, 09 May 2014 15:39:20 -0400 Received: from mail-yh0-f46.google.com ([209.85.213.46]:38551) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Wiqda-00022K-MT for 17350@debbugs.gnu.org; Fri, 09 May 2014 15:39:19 -0400 Received: by mail-yh0-f46.google.com with SMTP id 29so4199452yhl.5 for <17350@debbugs.gnu.org>; Fri, 09 May 2014 12:39:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=j4pLYNF9IsyKJBhd+pn1CLC06aTqOSrIe1VoNOfGDDw=; b=qt/0D60yPi6sbQ8TjELXkwENVWHxSmDudkjgdbhAwJmMhJrbyttH5M1KMp0Uqd7VaH UA0RjAa0JtZW74A5I+qBErp/Z/9/8D8i4ibQQUZHyKqpWqbjn4X2mhxRDos+s0Os+uwc Qj2/OFBPqyJRVLhzFJn60ssTXqdBd/MxJxt9QQ9F+VbrcCMqo1eksd1sScwRyt9/UZ+f T006ImJrNQh15rBqV9rql0Y/wFiVfjLqD5xa899Lgn4Joy6/XTxrFM4rQk48kjf3FUdF rTxyvldAwSmuOpdoD9WQO3Wl8zswzolJX0itUNSbQO19VqBBuYlmIPf7AWd5RsCT009+ /tOw== X-Received: by 10.236.197.68 with SMTP id s44mr17524682yhn.109.1399664352920; Fri, 09 May 2014 12:39:12 -0700 (PDT) MIME-Version: 1.0 Received: by 10.170.127.18 with HTTP; Fri, 9 May 2014 12:38:51 -0700 (PDT) In-Reply-To: <5368F5C8.3080009@cs.ucla.edu> References: <20140501205140.B0EE.27F6AC2D@kcn.ne.jp> <53657045.3070709@cs.ucla.edu> <20140506214526.784A.27F6AC2D@kcn.ne.jp> <5368F5C8.3080009@cs.ucla.edu> From: Jim Meyering Date: Fri, 9 May 2014 12:38:51 -0700 X-Google-Sender-Auth: bh1C3vndFvAGrVsAEk0cfx4gO9Y Message-ID: Subject: Re: bug#17350: [PATCH] grep: speed up for a case to repeat failure in DFA after success in kwset To: Paul Eggert Content-Type: multipart/mixed; boundary=20cf303f6a448f9c5b04f8fcc03b X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17350 Cc: Norihiro Tanaka , 17350@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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 (/) --20cf303f6a448f9c5b04f8fcc03b Content-Type: text/plain; charset=ISO-8859-1 On Tue, May 6, 2014 at 7:46 AM, Paul Eggert wrote: > Thanks, I pushed that with minor changes to the ChangeLog message (first > attached patch). It's a tad faster to combine the relevant flags at > compile-time so I did that (second attached patch). Reading your 0002 "dfa: minor performance improvement for previous change", I noticed that the fall-through "case BACKREF:" was not marked as such, so have added a few /* fallthrough */ comments, to mark the places where one (or a static analyzer) might have a doubt: --20cf303f6a448f9c5b04f8fcc03b Content-Type: application/octet-stream; name="0001-maint-mark-some-breakless-cases-with-fallthrough-com.patch" Content-Disposition: attachment; filename="0001-maint-mark-some-breakless-cases-with-fallthrough-com.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_huzvzswk3 RnJvbSA1MDQ2NDZkODFiNTAxMGQ1ZWYzMDNkODY0ZDg2MjcxNGNjY2RmMDNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog VHVlLCA2IE1heSAyMDE0IDA5OjA4OjE5IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gbWFpbnQ6IG1h cmsgc29tZSBicmVha2xlc3MgY2FzZXMgd2l0aCAvKiBmYWxsdGhyb3VnaCAqLwogY29tbWVudAoK KiBzcmMvZGZhLmMgKGFkZHRva19tYiwgZGZhYW5hbHl6ZSk6IEFkZCBjb21tZW50IHNvIHRoYXQg aXQgaXMKY2xlYXIgdGhhdCB0aGUgImJyZWFrIiBzdGF0ZW1lbnQgaXMgZGVsaWJlcmF0ZWx5IG9t aXR0ZWQuCi0tLQogc3JjL2RmYS5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXggZmM2Y2U3Mi4u NTkxNzg4YyAxMDA2NDQKLS0tIGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpAQCAtMTU5OCw4 ICsxNTk4LDEwIEBAIGFkZHRva19tYiAodG9rZW4gdCwgaW50IG1icHJvcCkKCiAgICAgY2FzZSBC QUNLUkVGOgogICAgICAgZGZhLT5mYXN0ID0gZmFsc2U7CisgICAgICAvKiBmYWxsdGhyb3VnaCAq LwogICAgIGRlZmF1bHQ6CiAgICAgICArK2RmYS0+bmxlYXZlczsKKyAgICAgIC8qIGZhbGx0aHJv dWdoICovCiAgICAgY2FzZSBFTVBUWToKICAgICAgICsrZGVwdGg7CiAgICAgICBicmVhazsKQEAg LTIzODAsNiArMjM4Miw3IEBAIGRmYWFuYWx5emUgKHN0cnVjdCBkZmEgKmQsIGludCBzZWFyY2hm bGFnKQogICAgICAgICAgICAgICBtZXJnZSAoJnRtcCwgJmQtPmZvbGxvd3NbcG9zW2pdLmluZGV4 XSwgJm1lcmdlZCk7CiAgICAgICAgICAgICAgIGNvcHkgKCZtZXJnZWQsICZkLT5mb2xsb3dzW3Bv c1tqXS5pbmRleF0pOwogICAgICAgICAgICAgfQorICAgICAgICAgIC8qIGZhbGx0aHJvdWdoICov CgogICAgICAgICBjYXNlIFFNQVJLOgogICAgICAgICAgIC8qIEEgUU1BUksgb3IgU1RBUiBub2Rl IGlzIGF1dG9tYXRpY2FsbHkgbnVsbGFibGUuICAqLwotLSAKMi4wLjAucmMwLjM4LmcxNjk3YmYz Cgo= --20cf303f6a448f9c5b04f8fcc03b-- From unknown Mon Jun 23 13:07:51 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 07 Jun 2014 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator