From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 08 10:25:14 2014 Received: (at submit) by debbugs.gnu.org; 8 Dec 2014 15:25:15 +0000 Received: from localhost ([127.0.0.1]:57791 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xy0BV-0008P8-Mk for submit@debbugs.gnu.org; Mon, 08 Dec 2014 10:25:14 -0500 Received: from eggs.gnu.org ([208.118.235.92]:56122) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xy0BR-0008Oy-Io for submit@debbugs.gnu.org; Mon, 08 Dec 2014 10:25:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xy0BI-0002yU-Hg for submit@debbugs.gnu.org; Mon, 08 Dec 2014 10:25:09 -0500 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]:39826) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xy0BI-0002yQ-Eg for submit@debbugs.gnu.org; Mon, 08 Dec 2014 10:25:00 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57721) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xy0BA-00046p-0P for bug-grep@gnu.org; Mon, 08 Dec 2014 10:25:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xy0B2-0002te-BD for bug-grep@gnu.org; Mon, 08 Dec 2014 10:24:51 -0500 Received: from mailgw01.kcn.ne.jp ([61.86.7.208]:39941) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xy0B1-0002s9-QS for bug-grep@gnu.org; Mon, 08 Dec 2014 10:24:44 -0500 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw01.kcn.ne.jp (Postfix) with ESMTP id 7741480325 for ; Tue, 9 Dec 2014 00:24:39 +0900 (JST) Received: from mail08.kcn.ne.jp ([61.86.6.187]) by imp01 with bizsmtp id R3Qf1p003426eXR013Qf1r; Tue, 09 Dec 2014 00:24:39 +0900 X-OrgRCPT: bug-grep@gnu.org Received: from [10.120.1.81] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail08.kcn.ne.jp (Postfix) with ESMTPA id 19EAA12B802E for ; Tue, 9 Dec 2014 00:24:39 +0900 (JST) Date: Tue, 09 Dec 2014 00:24:38 +0900 From: Norihiro Tanaka To: Subject: [PATCH 1/2] dfa: avoid execution for a pattern including an unsupported expression Message-Id: <20141209002437.50DC.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_5485BC390000000050D7_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.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 (----) --------_5485BC390000000050D7_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit If a pattern includes an unsupported expression which is labeled as BACKREF, a text will almost fail to match the pattern. First patch makes changes to return immediately and avoid pidding search if a pattern includes an unsupported expression. Second patch removes word constraint support which is as labeled BEGWORD, ENDWORD, LIMWORD and NOTLIMWORD for multibyte-locales including UTF-8 from DFA, as we use regex instead of DFA for a pattern including word constraint so that it does not correctly treat word constraint. --------_5485BC390000000050D7_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="0001-dfa-avoid-execution-for-a-pattern-including-an-unsup.patch" Content-Disposition: attachment; filename="0001-dfa-avoid-execution-for-a-pattern-including-an-unsup.patch" Content-Transfer-Encoding: base64 RnJvbSBlMmE0MzQ0NjdhNjE2ZDFkYTcyZjE5MDE3NmI5MGJhNmQzZWE1NzhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDMgTm92IDIwMTQgMDg6MTI6NDAgKzA5MDAKU3ViamVjdDogW1BBVENIIDEvMl0g ZGZhOiBhdm9pZCBleGVjdXRpb24gZm9yIGEgcGF0dGVybiBpbmNsdWRpbmcgYW4KIHVuc3VwcG9y dGVkIGV4cHJlc3Npb24KCklmIGEgcGF0dGVybiBpbmNsdWRlcyB1bnN1cHBvcnRlZCBleHByZXNz aW9uIGJ5IERGQSBtYXRjaGVyLCB0aGUKc2VhcmNoIHdpdGggdGhlIG1hdGNoZXIgd2lsbCBmYWls IGluIG1vc3QgY2FzZXMuICBTbyBkZmFleGVjIGltbWVkaWF0ZWx5CnJldHVybnMgZm9yIHRoZSBw YXR0ZXJuLgoKc3JjL2RmYS5jIChzdHJ1Y3QgZGZhX3N0YXRlKTogUmVtb3ZlICdoYXNfYmFja3Jl ZicgYW5kICdoYXNfbWJjc2V0Jy4KQWxsIHVzZXMgcmVtb3ZlZC4KKGRmYWV4ZWNfbWFpbik6IFJl bW92ZSAnYmFja3JlZicuCkFsbCB1c2VzIGFuZCBjYWxsZXJzIHJlbW92ZWQuCihkZmFleGVjX2Jy KTogTmV3IGZ1bmN0aW9uLCBhbHdheXMgc2V0cyBhIGJhY2tyZWZlcmVuY2UgYml0IGFuZCByZXR1 cm5zCmEgYmVnaW5uaW5nIHBvaW50ZXIgaW4gYW4gaW5wdXQuICBXaGVuIGEgcGF0dGVybiBpbmNs dWRlcyBhbnkKdW5zdXBwb3J0ZWQgZXhwcmVzc2lvbiBieSBERkEgbWF0Y2hlciwgdGhlIGZ1bmN0 aW9uIGlzIHVzZWQuCihkZmFiYWNrcmVmKTogVGVzdCB3ZXRoZXIgcGF0dGVybnMgaGFzIGFueSB1 bnN1cHBvcnRlZCBleHByZXNzaW9uIGJ5IERGQQptYXRjaGVyIG9yIG5vdC4KKGRmYXNzYnVpbGQp OiBSZW1vdmUgbm8gbG9uZ2VyIHVuc2VkIGNvZGUuCihkZmFjb21wKTogSWYgQSBwYXR0ZXJuIGhh cyBhbnkgdW5zdXBwb3J0ZWQgZXhwcmVzc2lvbiBieSBERkEgbWF0Y2hlciwKYXZvaWQgYW5hbHlz aXMgZm9yIHRoZSBwYXR0ZXJuLgotLS0KIHNyYy9kZmEuYyB8IDY4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCA4MDZjYjA0Li40OWM5NTA1IDEwMDY0NAotLS0gYS9z cmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBAIC0yODQsOCArMjg0LDYgQEAgdHlwZWRlZiBzdHJ1 Y3QKICAgc2l6ZV90IGhhc2g7ICAgICAgICAgICAgICAgICAgLyogSGFzaCBvZiB0aGUgcG9zaXRp b25zIG9mIHRoaXMgc3RhdGUuICAqLwogICBwb3NpdGlvbl9zZXQgZWxlbXM7ICAgICAgICAgICAv KiBQb3NpdGlvbnMgdGhpcyBzdGF0ZSBjb3VsZCBtYXRjaC4gICovCiAgIHVuc2lnbmVkIGNoYXIg Y29udGV4dDsgICAgICAgIC8qIENvbnRleHQgZnJvbSBwcmV2aW91cyBzdGF0ZS4gICovCi0gIGJv b2wgaGFzX2JhY2tyZWY7CQkvKiBUaGlzIHN0YXRlIG1hdGNoZXMgYSBcPGRpZ2l0Pi4gICovCi0g IGJvb2wgaGFzX21iY3NldDsJCS8qIFRoaXMgc3RhdGUgbWF0Y2hlcyBhIE1CQ1NFVC4gICovCiAg IHVuc2lnbmVkIHNob3J0IGNvbnN0cmFpbnQ7ICAgIC8qIENvbnN0cmFpbnQgZm9yIHRoaXMgc3Rh dGUgdG8gYWNjZXB0LiAgKi8KICAgdG9rZW4gZmlyc3RfZW5kOyAgICAgICAgICAgICAgLyogVG9r ZW4gdmFsdWUgb2YgdGhlIGZpcnN0IEVORCBpbiBlbGVtcy4gICovCiAgIHBvc2l0aW9uX3NldCBt YnBzOyAgICAgICAgICAgIC8qIFBvc2l0aW9ucyB3aGljaCBjYW4gbWF0Y2ggbXVsdGlieXRlCkBA IC0yMTUyLDggKzIxNTAsNiBAQCBzdGF0ZV9pbmRleCAoc3RydWN0IGRmYSAqZCwgcG9zaXRpb25f c2V0IGNvbnN0ICpzLCBpbnQgY29udGV4dCkKICAgYWxsb2NfcG9zaXRpb25fc2V0ICgmZC0+c3Rh dGVzW2ldLmVsZW1zLCBzLT5uZWxlbSk7CiAgIGNvcHkgKHMsICZkLT5zdGF0ZXNbaV0uZWxlbXMp OwogICBkLT5zdGF0ZXNbaV0uY29udGV4dCA9IGNvbnRleHQ7Ci0gIGQtPnN0YXRlc1tpXS5oYXNf YmFja3JlZiA9IGZhbHNlOwotICBkLT5zdGF0ZXNbaV0uaGFzX21iY3NldCA9IGZhbHNlOwogICBk LT5zdGF0ZXNbaV0uY29uc3RyYWludCA9IDA7CiAgIGQtPnN0YXRlc1tpXS5maXJzdF9lbmQgPSAw OwogICBkLT5zdGF0ZXNbaV0ubWJwcy5uZWxlbSA9IDA7CkBAIC0yMTY5LDEwICsyMTY1LDcgQEAg c3RhdGVfaW5kZXggKHN0cnVjdCBkZmEgKmQsIHBvc2l0aW9uX3NldCBjb25zdCAqcywgaW50IGNv bnRleHQpCiAgICAgICAgICAgZC0+c3RhdGVzW2ldLmZpcnN0X2VuZCA9IGQtPnRva2Vuc1tzLT5l bGVtc1tqXS5pbmRleF07CiAgICAgICB9CiAgICAgZWxzZSBpZiAoZC0+dG9rZW5zW3MtPmVsZW1z W2pdLmluZGV4XSA9PSBCQUNLUkVGKQotICAgICAgewotICAgICAgICBkLT5zdGF0ZXNbaV0uY29u c3RyYWludCA9IE5PX0NPTlNUUkFJTlQ7Ci0gICAgICAgIGQtPnN0YXRlc1tpXS5oYXNfYmFja3Jl ZiA9IHRydWU7Ci0gICAgICB9CisgICAgICBkLT5zdGF0ZXNbaV0uY29uc3RyYWludCA9IE5PX0NP TlNUUkFJTlQ7CiAKICAgKytkLT5zaW5kZXg7CiAKQEAgLTI2MjcsOSArMjYyMCw2IEBAIGRmYXN0 YXRlIChzdGF0ZV9udW0gcywgc3RydWN0IGRmYSAqZCwgc3RhdGVfbnVtIHRyYW5zW10pCiAgICAg ICAgICAgaWYgKGQtPnRva2Vuc1twb3MuaW5kZXhdID09IE1CQ1NFVAogICAgICAgICAgICAgICB8 fCBkLT50b2tlbnNbcG9zLmluZGV4XSA9PSBBTllDSEFSKQogICAgICAgICAgICAgewotICAgICAg ICAgICAgICAvKiBNQl9DVVJfTUFYID4gMSAqLwotICAgICAgICAgICAgICBpZiAoZC0+dG9rZW5z W3Bvcy5pbmRleF0gPT0gTUJDU0VUKQotICAgICAgICAgICAgICAgIGQtPnN0YXRlc1tzXS5oYXNf bWJjc2V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgLyogQU5ZQ0hBUiBhbmQgTUJDU0VUIG11c3Qg bWF0Y2ggd2l0aCBhIHNpbmdsZSBjaGFyYWN0ZXIsIHNvIHdlCiAgICAgICAgICAgICAgICAgIG11 c3QgcHV0IGl0IHRvIGQtPnN0YXRlc1tzXS5tYnBzLCB3aGljaCBjb250YWlucyB0aGUgcG9zaXRp b25zCiAgICAgICAgICAgICAgICAgIHdoaWNoIGNhbiBtYXRjaCB3aXRoIGEgc2luZ2xlIGNoYXJh Y3RlciBub3QgYSBieXRlLiAgKi8KQEAgLTMzMDQsOCArMzI5NCw4IEBAIHNraXBfcmVtYWluc19t YiAoc3RydWN0IGRmYSAqZCwgdW5zaWduZWQgY2hhciBjb25zdCAqcCwKICAgIGVuY29kaW5nLWVy cm9yIGJ5dGVzLiAgT3RoZXJ3aXNlLCB0aGUgaW5wdXQgY29uc2lzdHMgb2Ygc2luZ2xlLWJ5dGUK ICAgIGNoYXJhY3RlcnMuICAqLwogc3RhdGljIGlubGluZSBjaGFyICoKLWRmYWV4ZWNfbWFpbiAo c3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVuZCwKLSAgICAgICAgICAg ICBpbnQgYWxsb3dfbmwsIHNpemVfdCAqY291bnQsIGludCAqYmFja3JlZiwgYm9vbCBtdWx0aWJ5 dGUpCitkZmFleGVjX21haW4gKHN0cnVjdCBkZmEgKmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFy ICplbmQsIGludCBhbGxvd19ubCwKKyAgICAgICAgICAgICBzaXplX3QgKmNvdW50LCBib29sIG11 bHRpYnl0ZSkKIHsKICAgc3RhdGVfbnVtIHMsIHMxOyAgICAgICAgICAgICAgLyogQ3VycmVudCBz dGF0ZS4gICovCiAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKnAsICptYnA7IC8qIEN1cnJlbnQgaW5w dXQgY2hhcmFjdGVyLiAgKi8KQEAgLTMzOTUsMTYgKzMzODUsNiBAQCBkZmFleGVjX21haW4gKHN0 cnVjdCBkZmEgKmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICplbmQsCiAgICAgICAgICAgICAg ICAgIFVzZSBhIG1hY3JvIHRvIGF2b2lkIHRoZSByaXNrIHRoYXQgdGhleSBkaXZlcmdlLiAgKi8K ICNkZWZpbmUgU3RhdGVfdHJhbnNpdGlvbigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgLyogRmFs bGluZyBiYWNrIHRvIHRoZSBnbGliYyBtYXRjaGVyIGluIHRoaXMgY2FzZSBnaXZlcyAgIFwKLSAg ICAgICAgICAgICAgICAgYmV0dGVyIHBlcmZvcm1hbmNlICh1cCB0byAyNSUgYmV0dGVyIG9uIFth LXpdLCBmb3IgICAgIFwKLSAgICAgICAgICAgICAgICAgZXhhbXBsZSkgYW5kIGVuYWJsZXMgc3Vw cG9ydCBmb3IgY29sbGF0aW5nIHN5bWJvbHMgYW5kIFwKLSAgICAgICAgICAgICAgICAgZXF1aXZh bGVuY2UgY2xhc3Nlcy4gICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAg ICAgICAgICAgaWYgKGQtPnN0YXRlc1tzXS5oYXNfbWJjc2V0ICYmIGJhY2tyZWYpICAgICAgICAg ICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICpiYWNrcmVm ID0gMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg ICAgICAgICAgIGdvdG8gZG9uZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKLSAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg ICAgLyogQ2FuIG1hdGNoIHdpdGggYSBtdWx0aWJ5dGUgY2hhcmFjdGVyIChhbmQgbXVsdGktY2hh cmFjdGVyIFwKICAgICAgICAgICAgICAgICAgY29sbGF0aW5nIGVsZW1lbnQpLiAgVHJhbnNpdGlv biB0YWJsZSBtaWdodCBiZSB1cGRhdGVkLiAgKi8gXAogICAgICAgICAgICAgICBzID0gdHJhbnNp dF9zdGF0ZSAoZCwgcywgJnAsICh1bnNpZ25lZCBjaGFyICopIGVuZCk7ICAgICAgXApAQCAtMzQ3 OCwxMSArMzQ1OCw3IEBAIGRmYWV4ZWNfbWFpbiAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAq YmVnaW4sIGNoYXIgKmVuZCwKICAgICAgIGlmIChkLT5mYWlsc1tzXSkKICAgICAgICAgewogICAg ICAgICAgIGlmIChkLT5zdWNjZXNzW3NdICYgc2JpdFsqcF0pCi0gICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgIGlmIChiYWNrcmVmKQotICAgICAgICAgICAgICAgICpiYWNrcmVmID0gZC0+c3Rh dGVzW3NdLmhhc19iYWNrcmVmOwotICAgICAgICAgICAgICBnb3RvIGRvbmU7Ci0gICAgICAgICAg ICB9CisgICAgICAgICAgICBnb3RvIGRvbmU7CiAKICAgICAgICAgICBzMSA9IHM7CiAgICAgICAg ICAgaWYgKG11bHRpYnl0ZSkKQEAgLTM1MTIsMTQgKzM0ODgsMjIgQEAgc3RhdGljIGNoYXIgKgog ZGZhZXhlY19tYiAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVuZCwK ICAgICAgICAgICAgIGludCBhbGxvd19ubCwgc2l6ZV90ICpjb3VudCwgaW50ICpiYWNrcmVmKQog ewotICByZXR1cm4gZGZhZXhlY19tYWluIChkLCBiZWdpbiwgZW5kLCBhbGxvd19ubCwgY291bnQs IGJhY2tyZWYsIHRydWUpOworICByZXR1cm4gZGZhZXhlY19tYWluIChkLCBiZWdpbiwgZW5kLCBh bGxvd19ubCwgY291bnQsIHRydWUpOwogfQogCiBzdGF0aWMgY2hhciAqCiBkZmFleGVjX3NiIChz dHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdpbiwgY2hhciAqZW5kLAogICAgICAgICAgICAg aW50IGFsbG93X25sLCBzaXplX3QgKmNvdW50LCBpbnQgKmJhY2tyZWYpCiB7Ci0gIHJldHVybiBk ZmFleGVjX21haW4gKGQsIGJlZ2luLCBlbmQsIGFsbG93X25sLCBjb3VudCwgYmFja3JlZiwgZmFs c2UpOworICByZXR1cm4gZGZhZXhlY19tYWluIChkLCBiZWdpbiwgZW5kLCBhbGxvd19ubCwgY291 bnQsIGZhbHNlKTsKK30KKworc3RhdGljIGNoYXIgKgorZGZhZXhlY19iciAoc3RydWN0IGRmYSAq ZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVuZCwKKyAgICAgICAgICAgIGludCBhbGxvd19u bCwgc2l6ZV90ICpjb3VudCwgaW50ICpiYWNrcmVmKQoreworICAqYmFja3JlZiA9IDE7CisgIHJl dHVybiAoY2hhciAqKSBiZWdpbjsKIH0KIAogLyogTGlrZSBkZmFleGVjX21haW4gKEQsIEJFR0lO LCBFTkQsIEFMTE9XX05MLCBDT1VOVCwgQkFDS1JFRiwgRC0+bXVsdGlieXRlKSwKQEAgLTM1ODUs NiArMzU2OSwxOSBAQCBkZmFpbml0IChzdHJ1Y3QgZGZhICpkKQogICBkLT5mYXN0ID0gIWQtPm11 bHRpYnl0ZTsKIH0KIAorYm9vbAorZGZhYmFja3JlZiAoc3RydWN0IGRmYSAqZCkKK3sKKyAgc2l6 ZV90IGk7CisgIGZvciAoaSA9IDA7IGkgPCBkLT50aW5kZXg7IGkrKykKKyAgICBpZiAoZC0+dG9r ZW5zW2ldID09IEJBQ0tSRUYgfHwgZC0+dG9rZW5zW2ldID09IE1CQ1NFVCkKKyAgICAgIHsKKyAg ICAgICAgZC0+ZGZhZXhlYyA9IGRmYWV4ZWNfYnI7CisgICAgICAgIHJldHVybiB0cnVlOworICAg ICAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyB2b2lkCiBkZmFvcHRpbWl6ZSAoc3Ry dWN0IGRmYSAqZCkKIHsKQEAgLTM2ODMsMTAgKzM2ODAsOCBAQCBkZmFzc2J1aWxkIChzdHJ1Y3Qg ZGZhICpkKQogICAgICAgICAgIGlmIChkLT5tdWx0aWJ5dGUpCiAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgIC8qIFRoZXNlIGNvbnN0cmFpbnRzIGFyZW4ndCBzdXBwb3J0ZWQgaW4gYSBtdWx0 aWJ5dGUgbG9jYWxlLgotICAgICAgICAgICAgICAgICBJZ25vcmUgdGhlbSBpbiB0aGUgc3VwZXJz ZXQgREZBLCBhbmQgdHJlYXQgdGhlbSBhcwotICAgICAgICAgICAgICAgICBiYWNrcmVmZXJlbmNl cyBpbiB0aGUgbWFpbiBERkEuICAqLworICAgICAgICAgICAgICAgICBJZ25vcmUgdGhlbSBpbiB0 aGUgc3VwZXJzZXQgREZBLiAgKi8KICAgICAgICAgICAgICAgc3VwLT50b2tlbnNbaisrXSA9IEVN UFRZOwotICAgICAgICAgICAgICBkLT50b2tlbnNbaV0gPSBCQUNLUkVGOwogICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKQEAgLTM3MTcsOCArMzcx MiwxMSBAQCBkZmFjb21wIChjaGFyIGNvbnN0ICpzLCBzaXplX3QgbGVuLCBzdHJ1Y3QgZGZhICpk LCBpbnQgc2VhcmNoZmxhZykKICAgZGZhcGFyc2UgKHMsIGxlbiwgZCk7CiAgIGRmYW11c3QgKGQp OwogICBkZmFzc2J1aWxkIChkKTsKLSAgZGZhb3B0aW1pemUgKGQpOwotICBkZmFhbmFseXplIChk LCBzZWFyY2hmbGFnKTsKKyAgaWYgKCFkZmFiYWNrcmVmIChkKSkKKyAgICB7CisgICAgICBkZmFv cHRpbWl6ZSAoZCk7CisgICAgICBkZmFhbmFseXplIChkLCBzZWFyY2hmbGFnKTsKKyAgICB9CiAg IGlmIChkLT5zdXBlcnNldCkKICAgICB7CiAgICAgICBkLT5mYXN0ID0gdHJ1ZTsKLS0gCjIuMi4w Cgo= --------_5485BC390000000050D7_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="0002-dfa-remove-a-support-of-a-word-delimiter-expression-.patch" Content-Disposition: attachment; filename="0002-dfa-remove-a-support-of-a-word-delimiter-expression-.patch" Content-Transfer-Encoding: base64 RnJvbSA1YjJiNDVhNTA0NjNhY2FkMDhiNDAzNTk0NjEyZDQzMzc3MjcxNjQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTdW4sIDcgRGVjIDIwMTQgMjA6MTY6NDEgKzA5MDAKU3ViamVjdDogW1BBVENIIDIvMl0g ZGZhOiByZW1vdmUgYSBzdXBwb3J0IG9mIGEgd29yZCBkZWxpbWl0ZXIgZXhwcmVzc2lvbiBmb3IK IG5vbi1tdWx0aWJ5dGUgbG9jYWxlcwoKREZBIHN1cHBvcnRzIGEgd29yZCBkZWxpbWl0ZXIgZXhw cmVzc2lvbiwgYnV0IGl0IGRvZXMgbm90IGJlaGF2ZQpjb3JyZWN0bHkgZm9yIG5vbi1tdWx0aWJ5 dGUgbG9jYWxlcy4gIEV2ZW4gaWYgaXQgaXMgZml4ZWQsIHdpbGwgbm90IGJlCmZhc3RlciB0aGFu IHJlZ2V4LiAgU28gcmVtb3ZlIGEgc3VwcG9ydCBvZiBhIHdvcmQgZGVsaW1pdGVyIGV4cHJlc3Np b24KZm9yIG5vbi1tdWx0aWJ5dGUgbG9jYWxlcyBmcm9tIERGQS4KCiogc3JjL2RmYS5jIChkZmFi YWNrcmVmKTogSWYgYSBwYXR0ZXJuIGhhcyBhbnkgd29yZCBkZWxpbWl0ZXIgZXhwcmVzc2lvbgpm b3Igbm9uLW11bHRpYnl0ZSBsb2NhbGVzLCBzZXRzIGEgYmFja3JlZmVyZW5jZSBiaXQgYW5kIHJl dHVybnMuCi0tLQogc3JjL2RmYS5jIHwgMTIgKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwg MTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9kZmEuYyBi L3NyYy9kZmEuYwppbmRleCA0OWM5NTA1Li5hZGMzOTdlIDEwMDY0NAotLS0gYS9zcmMvZGZhLmMK KysrIGIvc3JjL2RmYS5jCkBAIC0zNTc0LDggKzM1NzQsMTggQEAgZGZhYmFja3JlZiAoc3RydWN0 IGRmYSAqZCkKIHsKICAgc2l6ZV90IGk7CiAgIGZvciAoaSA9IDA7IGkgPCBkLT50aW5kZXg7IGkr KykKLSAgICBpZiAoZC0+dG9rZW5zW2ldID09IEJBQ0tSRUYgfHwgZC0+dG9rZW5zW2ldID09IE1C Q1NFVCkKKyAgICBzd2l0Y2ggKGQtPnRva2Vuc1tpXSkKICAgICAgIHsKKyAgICAgIGNhc2UgQkVH V09SRDoKKyAgICAgIGNhc2UgRU5EV09SRDoKKyAgICAgIGNhc2UgTElNV09SRDoKKyAgICAgIGNh c2UgTk9UTElNV09SRDoKKyAgICAgICAgaWYgKCFkLT5tdWx0aWJ5dGUpCisgICAgICAgICAgY29u dGludWU7CisgICAgICAgIC8qIGZhbGx0aHJvdWdoICovCisKKyAgICAgIGNhc2UgQkFDS1JFRjoK KyAgICAgIGNhc2UgTUJDU0VUOgogICAgICAgICBkLT5kZmFleGVjID0gZGZhZXhlY19icjsKICAg ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICB9Ci0tIAoyLjIuMAoK --------_5485BC390000000050D7_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 19 01:16:02 2015 Received: (at 19306) by debbugs.gnu.org; 19 Jul 2015 05:16:02 +0000 Received: from localhost ([127.0.0.1]:53518 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZGgxF-0003rh-S7 for submit@debbugs.gnu.org; Sun, 19 Jul 2015 01:16:02 -0400 Received: from mail-ie0-f170.google.com ([209.85.223.170]:33117) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZGgxC-0003r4-FH for 19306@debbugs.gnu.org; Sun, 19 Jul 2015 01:15:59 -0400 Received: by ietj16 with SMTP id j16so99795800iet.0 for <19306@debbugs.gnu.org>; Sat, 18 Jul 2015 22:15:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=F8OwrXMvSMIfvMShjAu6VzQ/YbL7MpWuBGxkbRrJFDg=; b=DUjO99Uh7+ZrcOY/wscJsXsKJ9aFGA1SOjaJqMso+ZhwTIpo4knz0TUMM5zboXcqBG fxgR7xbyf1to57qxfDk6hWERGwetRvdyuA9e3/AOZHdO+2B6kBJ3vW2swo+JcmztBMJU ZY+ILzQEVF6pybCSorYQCRqNiszFT0eBEHyBRlzFINjGFWFQ0fhOFbIwp1b8ga7rd2Rs WlIpLVhnIQ/7NIluaeXCpKztxkMZHYRDCAGIN9Vf6ZddTb+yXRKvEfqjjN4ONksXLY+b F7c6Fz13B2tgOQMZSFmD3Kx4O2WTe7I9/+YfHqgzMVodjq9Ai2SiEF8gYsIcPc9f6YDW P+Ww== X-Received: by 10.50.97.33 with SMTP id dx1mr5675886igb.1.1437282952817; Sat, 18 Jul 2015 22:15:52 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.10.72 with HTTP; Sat, 18 Jul 2015 22:15:33 -0700 (PDT) From: Jim Meyering Date: Sat, 18 Jul 2015 22:15:33 -0700 X-Google-Sender-Auth: HZoeCSxjqkiCbBlLdb5O6b42XCQ Message-ID: Subject: Re: [PATCH 1/2] dfa: avoid execution for a pattern including an unsupported expression To: Norihiro Tanaka , 19306@debbugs.gnu.org Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 19306 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 (/) Hello, Thank you for the patches in this report: http://bugs.gnu.org/19306 Please excuse my delay in getting back to you on this. Would you revise each of those to include a test case that demonstrates the problem/fix? From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 19 03:43:03 2015 Received: (at 19306) by debbugs.gnu.org; 19 Jul 2015 07:43:03 +0000 Received: from localhost ([127.0.0.1]:53551 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZGjFW-0007VG-Tc for submit@debbugs.gnu.org; Sun, 19 Jul 2015 03:43:03 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:33611) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZGjFR-0007Uh-G1 for 19306@debbugs.gnu.org; Sun, 19 Jul 2015 03:42:59 -0400 Received: from mxs02-s (mailgw2.kcn.ne.jp [61.86.15.234]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id 0D1BFE803A1 for <19306@debbugs.gnu.org>; Sun, 19 Jul 2015 16:42:50 +0900 (JST) X-matriXscan-loop-detect: a29f823ab543bb218eb987d590c56a65fb9b44b4 Received: from mail06.kcn.ne.jp ([61.86.6.185]) by mxs02-s with ESMTP; Sun, 19 Jul 2015 16:42:49 +0900 (JST) Received: from [10.120.1.71] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail06.kcn.ne.jp (Postfix) with ESMTPA id 69BBA1BF0092; Sun, 19 Jul 2015 16:42:49 +0900 (JST) Date: Sun, 19 Jul 2015 16:42:46 +0900 From: Norihiro Tanaka To: Jim Meyering Subject: Re: [PATCH 1/2] dfa: avoid execution for a pattern including an unsupported expression In-Reply-To: References: Message-Id: <20150719164201.E8D3.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_55AB4D6600000000E8D0_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-matriXscan-Sophos-AV: Clean X-matriXscan-Action: Approve X-matriXscan: Uncategorized X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 19306 Cc: 19306@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: -1.2 (-) --------_55AB4D6600000000E8D0_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit On Sat, 18 Jul 2015 22:15:33 -0700 Jim Meyering wrote: > Hello, > Thank you for the patches in this report: > > http://bugs.gnu.org/19306 > > Please excuse my delay in getting back to you on this. > Would you revise each of those to include a test case > that demonstrates the problem/fix? Thanks for your reviewing of this report. This is not bug fix. It avoids that BACKREF is found in the process of DFAEXEC and passed to regex in multibyte locale. In other words, if a pattern includes BACKREF, grep does not try to use DFA from the beginning. I confirmed about 10% speed-up for a test case in attachment. Before patching: real 7.29 user 7.26 sys 0.02 After patching : real 6.57 user 6.55 sys 0.01 KWset and DFA superset succeeds for all rows in the test case, and DFA for multibyte succeeds, too. However, all rows are rejected in regex. After patching, grep does not try DFA for multibyte, as pattern includes BACKREF. In addtion, I believe that DFA is simplified by removal of handling for BACKREF from dfaanalyze(), dfassbuild() and dfaexec(). --------_55AB4D6600000000E8D0_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" name="testcase.sh" Content-Disposition: attachment; filename="testcase.sh" Content-Transfer-Encoding: base64 IyEvYmluL3NoDQoNCm1ha2VfaW5wdXQgKCkgew0KICBlY2hvICIkMSIgfCB0ciBBQiAnXDI0NFwy NjMnDQp9DQoNCnllcyBgbWFrZV9pbnB1dCBCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFC QUJBQkFCQUJBQUJBQkFCQUJBQkFCQUJBQkFCQkFgIHwNCiAgaGVhZCAtMTAwMDAwMCA+aW4NCm1h a2VfaW5wdXQgJ1woQUJcKUFCQUJBQkFCQUJBQkFCQUJcMScgPnBhdA0KDQplbnYgTENfQUxMPWph X0pQLmV1Y0pQIHRpbWUgLXAgc3JjL2dyZXAgLWYgcGF0IGluDQo= --------_55AB4D6600000000E8D0_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 19 07:24:19 2015 Received: (at 19306) by debbugs.gnu.org; 19 Jul 2015 11:24:19 +0000 Received: from localhost ([127.0.0.1]:53575 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZGmhf-0004HE-1U for submit@debbugs.gnu.org; Sun, 19 Jul 2015 07:24:19 -0400 Received: from freefriends.org ([96.88.95.60]:36183) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZGmhb-0004H5-JG for 19306@debbugs.gnu.org; Sun, 19 Jul 2015 07:24:16 -0400 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id t6JBO27B017003; Sun, 19 Jul 2015 05:24:02 -0600 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id t6JBO1cV016998; Sun, 19 Jul 2015 11:24:01 GMT From: arnold@skeeve.com Message-Id: <201507191124.t6JBO1cV016998@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Sun, 19 Jul 2015 05:24:01 -0600 To: noritnk@kcn.ne.jp, jim@meyering.net Subject: Re: bug#19306: [PATCH 1/2] dfa: avoid execution for a pattern including an unsupported expression References: <20150719164201.E8D3.27F6AC2D@kcn.ne.jp> In-Reply-To: <20150719164201.E8D3.27F6AC2D@kcn.ne.jp> User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 19306 Cc: 19306@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: -2.3 (--) Hi. This looks like a nice patch that gawk would beneifit from. I have a minor suggestion, which is to make dfabackref into a static function. Thanks, Arnold ---------------------- Norihiro Tanaka wrote: > On Sat, 18 Jul 2015 22:15:33 -0700 > Jim Meyering wrote: > > > Hello, > > Thank you for the patches in this report: > > > > http://bugs.gnu.org/19306 > > > > Please excuse my delay in getting back to you on this. > > Would you revise each of those to include a test case > > that demonstrates the problem/fix? > > Thanks for your reviewing of this report. > > This is not bug fix. It avoids that BACKREF is found in the process of > DFAEXEC and passed to regex in multibyte locale. In other words, if a > pattern includes BACKREF, grep does not try to use DFA from the > beginning. > > I confirmed about 10% speed-up for a test case in attachment. > > Before patching: real 7.29 user 7.26 sys 0.02 > After patching : real 6.57 user 6.55 sys 0.01 > > KWset and DFA superset succeeds for all rows in the test case, and DFA > for multibyte succeeds, too. However, all rows are rejected in regex. > > After patching, grep does not try DFA for multibyte, as pattern includes > BACKREF. > > In addtion, I believe that DFA is simplified by removal of handling for > BACKREF from dfaanalyze(), dfassbuild() and dfaexec(). From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 19 10:55:40 2015 Received: (at 19306) by debbugs.gnu.org; 19 Jul 2015 14:55:40 +0000 Received: from localhost ([127.0.0.1]:53911 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZGq0B-0002Jg-Pk for submit@debbugs.gnu.org; Sun, 19 Jul 2015 10:55:40 -0400 Received: from mailgw05.kcn.ne.jp ([61.86.7.212]:50881) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZGq07-0002JN-7D for 19306@debbugs.gnu.org; Sun, 19 Jul 2015 10:55:37 -0400 Received: from mxs01-s (mailgw1.kcn.ne.jp [61.86.15.233]) by mailgw05.kcn.ne.jp (Postfix) with ESMTP id E971088018F for <19306@debbugs.gnu.org>; Sun, 19 Jul 2015 23:55:27 +0900 (JST) X-matriXscan-loop-detect: 0cec0c01ccd84df869745ee11b408344a5a19ae3 Received: from mail01.kcn.ne.jp ([61.86.6.180]) by mxs01-s with ESMTP; Sun, 19 Jul 2015 23:55:20 +0900 (JST) Received: from [10.120.1.71] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail01.kcn.ne.jp (Postfix) with ESMTPA id 6D2CB5A82FB; Sun, 19 Jul 2015 23:55:20 +0900 (JST) Date: Sun, 19 Jul 2015 23:55:15 +0900 From: Norihiro Tanaka To: 19306@debbugs.gnu.org Subject: Re: bug#19306: [PATCH 1/2] dfa: avoid execution for a pattern including an unsupported expression In-Reply-To: <201507191124.t6JBO1cV016998@freefriends.org> References: <20150719164201.E8D3.27F6AC2D@kcn.ne.jp> <201507191124.t6JBO1cV016998@freefriends.org> Message-Id: <20150719235515.E8EB.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_55ABBA0D00000000E924_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-matriXscan-Sophos-AV: Clean X-matriXscan-Action: Approve X-matriXscan: Uncategorized X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 19306 Cc: arnold@skeeve.com, jim@meyering.net 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: -1.2 (-) --------_55ABBA0D00000000E924_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit On Sun, 19 Jul 2015 05:24:01 -0600 arnold@skeeve.com wrote: > I have a minor suggestion, which is to make dfabackref into a > static function. dfabackref() is not called from external, so it should be static, as you say. I fixed it. Thanks. --------_55ABBA0D00000000E924_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="0001-dfa-avoid-execution-for-a-pattern-including-an-unsup.patch" Content-Disposition: attachment; filename="0001-dfa-avoid-execution-for-a-pattern-including-an-unsup.patch" Content-Transfer-Encoding: base64 RnJvbSBkOTI4ZGQ3Zjc5MWNhYjM4YjlmODUyZDAzZWUxZDYzZTNmNDQ2NGFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDMgTm92IDIwMTQgMDg6MTI6NDAgKzA5MDAKU3ViamVjdDogW1BBVENIIDEvMl0g ZGZhOiBhdm9pZCBleGVjdXRpb24gZm9yIGEgcGF0dGVybiBpbmNsdWRpbmcgYW4KIHVuc3VwcG9y dGVkIGV4cHJlc3Npb24KCklmIGEgcGF0dGVybiBpbmNsdWRlcyB1bnN1cHBvcnRlZCBleHByZXNz aW9uIGJ5IERGQSBtYXRjaGVyLCB0aGUKc2VhcmNoIHdpdGggdGhlIG1hdGNoZXIgd2lsbCBmYWls IGluIG1vc3QgY2FzZXMuICBTbyBkZmFleGVjIGltbWVkaWF0ZWx5CnJldHVybnMgZm9yIHRoZSBw YXR0ZXJuLgoKc3JjL2RmYS5jIChzdHJ1Y3QgZGZhX3N0YXRlKTogUmVtb3ZlICdoYXNfYmFja3Jl ZicgYW5kICdoYXNfbWJjc2V0Jy4KQWxsIHVzZXMgcmVtb3ZlZC4KKGRmYWV4ZWNfbWFpbik6IFJl bW92ZSAnYmFja3JlZicuCkFsbCB1c2VzIGFuZCBjYWxsZXJzIHJlbW92ZWQuCihkZmFleGVjX2Jy KTogTmV3IGZ1bmN0aW9uLCBhbHdheXMgc2V0cyBhIGJhY2tyZWZlcmVuY2UgYml0IGFuZCByZXR1 cm5zCmEgYmVnaW5uaW5nIHBvaW50ZXIgaW4gYW4gaW5wdXQuICBXaGVuIGEgcGF0dGVybiBpbmNs dWRlcyBhbnkKdW5zdXBwb3J0ZWQgZXhwcmVzc2lvbiBieSBERkEgbWF0Y2hlciwgdGhlIGZ1bmN0 aW9uIGlzIHVzZWQuCihkZmFiYWNrcmVmKTogVGVzdCB3ZXRoZXIgcGF0dGVybnMgaGFzIGFueSB1 bnN1cHBvcnRlZCBleHByZXNzaW9uIGJ5IERGQQptYXRjaGVyIG9yIG5vdC4KKGRmYXNzYnVpbGQp OiBSZW1vdmUgbm8gbG9uZ2VyIHVuc2VkIGNvZGUuCihkZmFjb21wKTogSWYgQSBwYXR0ZXJuIGhh cyBhbnkgdW5zdXBwb3J0ZWQgZXhwcmVzc2lvbiBieSBERkEgbWF0Y2hlciwKYXZvaWQgYW5hbHlz aXMgZm9yIHRoZSBwYXR0ZXJuLgotLS0KIHNyYy9kZmEuYyB8IDY4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9kZmEuYyBiL3NyYy9kZmEuYwppbmRleCBmOWIzZGE5Li43YTBkNGY2IDEwMDY0NAotLS0gYS9z cmMvZGZhLmMKKysrIGIvc3JjL2RmYS5jCkBAIC0yODIsOCArMjgyLDYgQEAgdHlwZWRlZiBzdHJ1 Y3QKICAgc2l6ZV90IGhhc2g7ICAgICAgICAgICAgICAgICAgLyogSGFzaCBvZiB0aGUgcG9zaXRp b25zIG9mIHRoaXMgc3RhdGUuICAqLwogICBwb3NpdGlvbl9zZXQgZWxlbXM7ICAgICAgICAgICAv KiBQb3NpdGlvbnMgdGhpcyBzdGF0ZSBjb3VsZCBtYXRjaC4gICovCiAgIHVuc2lnbmVkIGNoYXIg Y29udGV4dDsgICAgICAgIC8qIENvbnRleHQgZnJvbSBwcmV2aW91cyBzdGF0ZS4gICovCi0gIGJv b2wgaGFzX2JhY2tyZWY7CQkvKiBUaGlzIHN0YXRlIG1hdGNoZXMgYSBcPGRpZ2l0Pi4gICovCi0g IGJvb2wgaGFzX21iY3NldDsJCS8qIFRoaXMgc3RhdGUgbWF0Y2hlcyBhIE1CQ1NFVC4gICovCiAg IHVuc2lnbmVkIHNob3J0IGNvbnN0cmFpbnQ7ICAgIC8qIENvbnN0cmFpbnQgZm9yIHRoaXMgc3Rh dGUgdG8gYWNjZXB0LiAgKi8KICAgdG9rZW4gZmlyc3RfZW5kOyAgICAgICAgICAgICAgLyogVG9r ZW4gdmFsdWUgb2YgdGhlIGZpcnN0IEVORCBpbiBlbGVtcy4gICovCiAgIHBvc2l0aW9uX3NldCBt YnBzOyAgICAgICAgICAgIC8qIFBvc2l0aW9ucyB3aGljaCBjYW4gbWF0Y2ggbXVsdGlieXRlCkBA IC0yMTQ2LDggKzIxNDQsNiBAQCBzdGF0ZV9pbmRleCAoc3RydWN0IGRmYSAqZCwgcG9zaXRpb25f c2V0IGNvbnN0ICpzLCBpbnQgY29udGV4dCkKICAgYWxsb2NfcG9zaXRpb25fc2V0ICgmZC0+c3Rh dGVzW2ldLmVsZW1zLCBzLT5uZWxlbSk7CiAgIGNvcHkgKHMsICZkLT5zdGF0ZXNbaV0uZWxlbXMp OwogICBkLT5zdGF0ZXNbaV0uY29udGV4dCA9IGNvbnRleHQ7Ci0gIGQtPnN0YXRlc1tpXS5oYXNf YmFja3JlZiA9IGZhbHNlOwotICBkLT5zdGF0ZXNbaV0uaGFzX21iY3NldCA9IGZhbHNlOwogICBk LT5zdGF0ZXNbaV0uY29uc3RyYWludCA9IDA7CiAgIGQtPnN0YXRlc1tpXS5maXJzdF9lbmQgPSAw OwogICBkLT5zdGF0ZXNbaV0ubWJwcy5uZWxlbSA9IDA7CkBAIC0yMTYzLDEwICsyMTU5LDcgQEAg c3RhdGVfaW5kZXggKHN0cnVjdCBkZmEgKmQsIHBvc2l0aW9uX3NldCBjb25zdCAqcywgaW50IGNv bnRleHQpCiAgICAgICAgICAgZC0+c3RhdGVzW2ldLmZpcnN0X2VuZCA9IGQtPnRva2Vuc1tzLT5l bGVtc1tqXS5pbmRleF07CiAgICAgICB9CiAgICAgZWxzZSBpZiAoZC0+dG9rZW5zW3MtPmVsZW1z W2pdLmluZGV4XSA9PSBCQUNLUkVGKQotICAgICAgewotICAgICAgICBkLT5zdGF0ZXNbaV0uY29u c3RyYWludCA9IE5PX0NPTlNUUkFJTlQ7Ci0gICAgICAgIGQtPnN0YXRlc1tpXS5oYXNfYmFja3Jl ZiA9IHRydWU7Ci0gICAgICB9CisgICAgICBkLT5zdGF0ZXNbaV0uY29uc3RyYWludCA9IE5PX0NP TlNUUkFJTlQ7CiAKICAgKytkLT5zaW5kZXg7CiAKQEAgLTI2MjEsOSArMjYxNCw2IEBAIGRmYXN0 YXRlIChzdGF0ZV9udW0gcywgc3RydWN0IGRmYSAqZCwgc3RhdGVfbnVtIHRyYW5zW10pCiAgICAg ICAgICAgaWYgKGQtPnRva2Vuc1twb3MuaW5kZXhdID09IE1CQ1NFVAogICAgICAgICAgICAgICB8 fCBkLT50b2tlbnNbcG9zLmluZGV4XSA9PSBBTllDSEFSKQogICAgICAgICAgICAgewotICAgICAg ICAgICAgICAvKiBNQl9DVVJfTUFYID4gMSAqLwotICAgICAgICAgICAgICBpZiAoZC0+dG9rZW5z W3Bvcy5pbmRleF0gPT0gTUJDU0VUKQotICAgICAgICAgICAgICAgIGQtPnN0YXRlc1tzXS5oYXNf bWJjc2V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgLyogQU5ZQ0hBUiBhbmQgTUJDU0VUIG11c3Qg bWF0Y2ggd2l0aCBhIHNpbmdsZSBjaGFyYWN0ZXIsIHNvIHdlCiAgICAgICAgICAgICAgICAgIG11 c3QgcHV0IGl0IHRvIGQtPnN0YXRlc1tzXS5tYnBzLCB3aGljaCBjb250YWlucyB0aGUgcG9zaXRp b25zCiAgICAgICAgICAgICAgICAgIHdoaWNoIGNhbiBtYXRjaCB3aXRoIGEgc2luZ2xlIGNoYXJh Y3RlciBub3QgYSBieXRlLiAgKi8KQEAgLTMyOTgsOCArMzI4OCw4IEBAIHNraXBfcmVtYWluc19t YiAoc3RydWN0IGRmYSAqZCwgdW5zaWduZWQgY2hhciBjb25zdCAqcCwKICAgIGVuY29kaW5nLWVy cm9yIGJ5dGVzLiAgT3RoZXJ3aXNlLCB0aGUgaW5wdXQgY29uc2lzdHMgb2Ygc2luZ2xlLWJ5dGUK ICAgIGNoYXJhY3RlcnMuICAqLwogc3RhdGljIGlubGluZSBjaGFyICoKLWRmYWV4ZWNfbWFpbiAo c3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVuZCwKLSAgICAgICAgICAg ICBpbnQgYWxsb3dfbmwsIHNpemVfdCAqY291bnQsIGludCAqYmFja3JlZiwgYm9vbCBtdWx0aWJ5 dGUpCitkZmFleGVjX21haW4gKHN0cnVjdCBkZmEgKmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFy ICplbmQsIGludCBhbGxvd19ubCwKKyAgICAgICAgICAgICBzaXplX3QgKmNvdW50LCBib29sIG11 bHRpYnl0ZSkKIHsKICAgc3RhdGVfbnVtIHMsIHMxOyAgICAgICAgICAgICAgLyogQ3VycmVudCBz dGF0ZS4gICovCiAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKnAsICptYnA7IC8qIEN1cnJlbnQgaW5w dXQgY2hhcmFjdGVyLiAgKi8KQEAgLTMzODksMTYgKzMzNzksNiBAQCBkZmFleGVjX21haW4gKHN0 cnVjdCBkZmEgKmQsIGNoYXIgY29uc3QgKmJlZ2luLCBjaGFyICplbmQsCiAgICAgICAgICAgICAg ICAgIFVzZSBhIG1hY3JvIHRvIGF2b2lkIHRoZSByaXNrIHRoYXQgdGhleSBkaXZlcmdlLiAgKi8K ICNkZWZpbmUgU3RhdGVfdHJhbnNpdGlvbigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgLyogRmFs bGluZyBiYWNrIHRvIHRoZSBnbGliYyBtYXRjaGVyIGluIHRoaXMgY2FzZSBnaXZlcyAgIFwKLSAg ICAgICAgICAgICAgICAgYmV0dGVyIHBlcmZvcm1hbmNlICh1cCB0byAyNSUgYmV0dGVyIG9uIFth LXpdLCBmb3IgICAgIFwKLSAgICAgICAgICAgICAgICAgZXhhbXBsZSkgYW5kIGVuYWJsZXMgc3Vw cG9ydCBmb3IgY29sbGF0aW5nIHN5bWJvbHMgYW5kIFwKLSAgICAgICAgICAgICAgICAgZXF1aXZh bGVuY2UgY2xhc3Nlcy4gICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAg ICAgICAgICAgaWYgKGQtPnN0YXRlc1tzXS5oYXNfbWJjc2V0ICYmIGJhY2tyZWYpICAgICAgICAg ICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICpiYWNrcmVm ID0gMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg ICAgICAgICAgIGdvdG8gZG9uZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKLSAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg ICAgLyogQ2FuIG1hdGNoIHdpdGggYSBtdWx0aWJ5dGUgY2hhcmFjdGVyIChhbmQgbXVsdGktY2hh cmFjdGVyIFwKICAgICAgICAgICAgICAgICAgY29sbGF0aW5nIGVsZW1lbnQpLiAgVHJhbnNpdGlv biB0YWJsZSBtaWdodCBiZSB1cGRhdGVkLiAgKi8gXAogICAgICAgICAgICAgICBzID0gdHJhbnNp dF9zdGF0ZSAoZCwgcywgJnAsICh1bnNpZ25lZCBjaGFyICopIGVuZCk7ICAgICAgXApAQCAtMzQ3 MiwxMSArMzQ1Miw3IEBAIGRmYWV4ZWNfbWFpbiAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAq YmVnaW4sIGNoYXIgKmVuZCwKICAgICAgIGlmIChkLT5mYWlsc1tzXSkKICAgICAgICAgewogICAg ICAgICAgIGlmIChkLT5zdWNjZXNzW3NdICYgc2JpdFsqcF0pCi0gICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgIGlmIChiYWNrcmVmKQotICAgICAgICAgICAgICAgICpiYWNrcmVmID0gZC0+c3Rh dGVzW3NdLmhhc19iYWNrcmVmOwotICAgICAgICAgICAgICBnb3RvIGRvbmU7Ci0gICAgICAgICAg ICB9CisgICAgICAgICAgICBnb3RvIGRvbmU7CiAKICAgICAgICAgICBzMSA9IHM7CiAgICAgICAg ICAgaWYgKG11bHRpYnl0ZSkKQEAgLTM1MDYsMTQgKzM0ODIsMjIgQEAgc3RhdGljIGNoYXIgKgog ZGZhZXhlY19tYiAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVuZCwK ICAgICAgICAgICAgIGludCBhbGxvd19ubCwgc2l6ZV90ICpjb3VudCwgaW50ICpiYWNrcmVmKQog ewotICByZXR1cm4gZGZhZXhlY19tYWluIChkLCBiZWdpbiwgZW5kLCBhbGxvd19ubCwgY291bnQs IGJhY2tyZWYsIHRydWUpOworICByZXR1cm4gZGZhZXhlY19tYWluIChkLCBiZWdpbiwgZW5kLCBh bGxvd19ubCwgY291bnQsIHRydWUpOwogfQogCiBzdGF0aWMgY2hhciAqCiBkZmFleGVjX3NiIChz dHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdpbiwgY2hhciAqZW5kLAogICAgICAgICAgICAg aW50IGFsbG93X25sLCBzaXplX3QgKmNvdW50LCBpbnQgKmJhY2tyZWYpCiB7Ci0gIHJldHVybiBk ZmFleGVjX21haW4gKGQsIGJlZ2luLCBlbmQsIGFsbG93X25sLCBjb3VudCwgYmFja3JlZiwgZmFs c2UpOworICByZXR1cm4gZGZhZXhlY19tYWluIChkLCBiZWdpbiwgZW5kLCBhbGxvd19ubCwgY291 bnQsIGZhbHNlKTsKK30KKworc3RhdGljIGNoYXIgKgorZGZhZXhlY19iciAoc3RydWN0IGRmYSAq ZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVuZCwKKyAgICAgICAgICAgIGludCBhbGxvd19u bCwgc2l6ZV90ICpjb3VudCwgaW50ICpiYWNrcmVmKQoreworICAqYmFja3JlZiA9IDE7CisgIHJl dHVybiAoY2hhciAqKSBiZWdpbjsKIH0KIAogLyogTGlrZSBkZmFleGVjX21haW4gKEQsIEJFR0lO LCBFTkQsIEFMTE9XX05MLCBDT1VOVCwgQkFDS1JFRiwgRC0+bXVsdGlieXRlKSwKQEAgLTM1Nzks NiArMzU2MywxOSBAQCBkZmFpbml0IChzdHJ1Y3QgZGZhICpkKQogICBkLT5mYXN0ID0gIWQtPm11 bHRpYnl0ZTsKIH0KIAorc3RhdGljIGJvb2wKK2RmYWJhY2tyZWYgKHN0cnVjdCBkZmEgKmQpCit7 CisgIHNpemVfdCBpOworICBmb3IgKGkgPSAwOyBpIDwgZC0+dGluZGV4OyBpKyspCisgICAgaWYg KGQtPnRva2Vuc1tpXSA9PSBCQUNLUkVGIHx8IGQtPnRva2Vuc1tpXSA9PSBNQkNTRVQpCisgICAg ICB7CisgICAgICAgIGQtPmRmYWV4ZWMgPSBkZmFleGVjX2JyOworICAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICAgIH0KKyAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgdm9pZAogZGZhb3B0aW1p emUgKHN0cnVjdCBkZmEgKmQpCiB7CkBAIC0zNjc2LDEwICszNjczLDggQEAgZGZhc3NidWlsZCAo c3RydWN0IGRmYSAqZCkKICAgICAgICAgICBpZiAoZC0+bXVsdGlieXRlKQogICAgICAgICAgICAg ewogICAgICAgICAgICAgICAvKiBUaGVzZSBjb25zdHJhaW50cyBhcmVuJ3Qgc3VwcG9ydGVkIGlu IGEgbXVsdGlieXRlIGxvY2FsZS4KLSAgICAgICAgICAgICAgICAgSWdub3JlIHRoZW0gaW4gdGhl IHN1cGVyc2V0IERGQSwgYW5kIHRyZWF0IHRoZW0gYXMKLSAgICAgICAgICAgICAgICAgYmFja3Jl ZmVyZW5jZXMgaW4gdGhlIG1haW4gREZBLiAgKi8KKyAgICAgICAgICAgICAgICAgSWdub3JlIHRo ZW0gaW4gdGhlIHN1cGVyc2V0IERGQS4gICovCiAgICAgICAgICAgICAgIHN1cC0+dG9rZW5zW2or K10gPSBFTVBUWTsKLSAgICAgICAgICAgICAgZC0+dG9rZW5zW2ldID0gQkFDS1JFRjsKICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0zNzA5 LDggKzM3MDQsMTEgQEAgZGZhY29tcCAoY2hhciBjb25zdCAqcywgc2l6ZV90IGxlbiwgc3RydWN0 IGRmYSAqZCwgaW50IHNlYXJjaGZsYWcpCiAgIGRmYW1iY2FjaGUgKGQpOwogICBkZmFwYXJzZSAo cywgbGVuLCBkKTsKICAgZGZhc3NidWlsZCAoZCk7Ci0gIGRmYW9wdGltaXplIChkKTsKLSAgZGZh YW5hbHl6ZSAoZCwgc2VhcmNoZmxhZyk7CisgIGlmICghZGZhYmFja3JlZiAoZCkpCisgICAgewor ICAgICAgZGZhb3B0aW1pemUgKGQpOworICAgICAgZGZhYW5hbHl6ZSAoZCwgc2VhcmNoZmxhZyk7 CisgICAgfQogICBpZiAoZC0+c3VwZXJzZXQpCiAgICAgewogICAgICAgZC0+ZmFzdCA9IHRydWU7 Ci0tIAoyLjIuMAoK --------_55ABBA0D00000000E924_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 19 23:15:22 2015 Received: (at 19306) by debbugs.gnu.org; 20 Jul 2015 03:15:22 +0000 Received: from localhost ([127.0.0.1]:54189 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZH1Y1-0000DJ-Je for submit@debbugs.gnu.org; Sun, 19 Jul 2015 23:15:22 -0400 Received: from mail-ig0-f173.google.com ([209.85.213.173]:35092) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZH1Xy-0000D4-0l for 19306@debbugs.gnu.org; Sun, 19 Jul 2015 23:15:19 -0400 Received: by igr7 with SMTP id 7so4626856igr.0 for <19306@debbugs.gnu.org>; Sun, 19 Jul 2015 20:15:12 -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=xtmzms8+isAs0fBtTGNzsgZxu6J3PV2mdsbU1lpYnCY=; b=Sr3nflds4PbfnBKarQrQEB6QGGS5LY8s7pPJcjjBvZySKWFg6YETW4nAyMFELSzacr WQsZL2Hy0vhSWPnD65W6QsxTYQLVWAfixy6lMEd4qY49K+LrVkTVwc1hzDfCHdWs5msN QTrxbUXRcO/Lk0MHkMSU520KmbtxyDfXxp+Tu72BDKD0u8S5uWDuKnFAqmrS/RvuemoA 0O/9r3+oOOm0UPSCZ20khDS+hXyuBWee4pNJ7M5IZJtHIYBave3/y1VIKE8mLsUwc8mQ rjDEhwLgvCHiJ3L9Vi0AnYvtPiPqKSGngtlCLLRICTNugXj5mzipwtsBw5XP5h1otVLD khRw== X-Received: by 10.107.150.1 with SMTP id y1mr30809784iod.108.1437362112399; Sun, 19 Jul 2015 20:15:12 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.10.72 with HTTP; Sun, 19 Jul 2015 20:14:52 -0700 (PDT) In-Reply-To: <20150719164201.E8D3.27F6AC2D@kcn.ne.jp> References: <20150719164201.E8D3.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Sun, 19 Jul 2015 20:14:52 -0700 X-Google-Sender-Auth: GxbMl20yrM-gzF5F9sEbHYH6LCM Message-ID: Subject: Re: [PATCH 1/2] dfa: avoid execution for a pattern including an unsupported expression To: Norihiro Tanaka Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 19306 Cc: 19306@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 (/) On Sun, Jul 19, 2015 at 12:42 AM, Norihiro Tanaka wrote: > On Sat, 18 Jul 2015 22:15:33 -0700 > Jim Meyering wrote: > >> Hello, >> Thank you for the patches in this report: >> >> http://bugs.gnu.org/19306 >> >> Please excuse my delay in getting back to you on this. >> Would you revise each of those to include a test case >> that demonstrates the problem/fix? > > Thanks for your reviewing of this report. > > This is not bug fix. It avoids that BACKREF is found in the process of > DFAEXEC and passed to regex in multibyte locale. In other words, if a > pattern includes BACKREF, grep does not try to use DFA from the > beginning. > > I confirmed about 10% speed-up for a test case in attachment. > > Before patching: real 7.29 user 7.26 sys 0.02 > After patching : real 6.57 user 6.55 sys 0.01 > > KWset and DFA superset succeeds for all rows in the test case, and DFA > for multibyte succeeds, too. However, all rows are rejected in regex. > > After patching, grep does not try DFA for multibyte, as pattern includes > BACKREF. > > In addtion, I believe that DFA is simplified by removal of handling for > BACKREF from dfaanalyze(), dfassbuild() and dfaexec(). Thank you for the additional information and the test script. I like most of this patch, but not the fact that it causes the word-delim-multibyte test to fail. I do see that also applying your following patch makes that test pass once again. However, it does so at the cost of forcing a new class of regexps (any that contain a use of \b, \< or \>) from DFA into the slower regex matcher. That feels like too large a performance penalty, in general. Can you quantify it? From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 20 11:14:41 2015 Received: (at 19306) by debbugs.gnu.org; 20 Jul 2015 15:14:42 +0000 Received: from localhost ([127.0.0.1]:54730 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZHCm9-0001ik-5E for submit@debbugs.gnu.org; Mon, 20 Jul 2015 11:14:41 -0400 Received: from mailgw04.kcn.ne.jp ([61.86.7.211]:45925) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZHCm6-0001iT-31 for 19306@debbugs.gnu.org; Mon, 20 Jul 2015 11:14:39 -0400 Received: from mxs01-s (mailgw1.kcn.ne.jp [61.86.15.233]) by mailgw04.kcn.ne.jp (Postfix) with ESMTP id EDEAC8050F for <19306@debbugs.gnu.org>; Tue, 21 Jul 2015 00:14:30 +0900 (JST) X-matriXscan-loop-detect: 14baa88e6d145b0e2bb6fb4b9f5b84206eb6cf8e Received: from mail01.kcn.ne.jp ([61.86.6.180]) by mxs01-s with ESMTP; Tue, 21 Jul 2015 00:14:28 +0900 (JST) Received: from [10.120.1.62] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail01.kcn.ne.jp (Postfix) with ESMTPA id B11775A8266; Tue, 21 Jul 2015 00:14:28 +0900 (JST) Date: Tue, 21 Jul 2015 00:14:25 +0900 From: Norihiro Tanaka To: Jim Meyering Subject: Re: [PATCH 1/2] dfa: avoid execution for a pattern including an unsupported expression In-Reply-To: References: <20150719164201.E8D3.27F6AC2D@kcn.ne.jp> Message-Id: <20150721001424.BC00.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-matriXscan-Sophos-AV: Clean X-matriXscan-Action: Approve X-matriXscan: Uncategorized X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 19306 Cc: 19306@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: -1.2 (-) On Sun, 19 Jul 2015 20:14:52 -0700 Jim Meyering wrote: > Thank you for the additional information and the test script. > I like most of this patch, but not the fact that it causes the > word-delim-multibyte test to fail. I do see that also applying your > following patch makes that test pass once again. However, it does so > at the cost of forcing a new class of regexps (any that contain a use > of \b, \< or \>) from DFA into the slower regex matcher. I think DFA forces regex for BEGWORD, LIMWORD, ENDWORD, instead of whether patching or not. Could you remark code in dfassbuild() without patching? It seem that DFA rejects their words from before. case BEGWORD: case ENDWORD: case LIMWORD: case NOTLIMWORD: if (d->multibyte) { /* These constraints aren't supported in a multibyte locale. Ignore them in the superset DFA, and treat them as backreferences in the main DFA. */ sup->tokens[j++] = EMPTY; d->tokens[i] = BACKREF; <<<< break; } DFA does not handle word context in multibyte correctly. Perhaps, if we fix it, DFA will take a performance penalty. From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 26 12:10:29 2015 Received: (at 19306) by debbugs.gnu.org; 26 Jul 2015 16:10:29 +0000 Received: from localhost ([127.0.0.1]:59320 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZJOVQ-0001qy-Da for submit@debbugs.gnu.org; Sun, 26 Jul 2015 12:10:29 -0400 Received: from mail-ig0-f179.google.com ([209.85.213.179]:36301) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZJOVN-0001qr-M9 for 19306@debbugs.gnu.org; Sun, 26 Jul 2015 12:10:27 -0400 Received: by igbij6 with SMTP id ij6so46038977igb.1 for <19306@debbugs.gnu.org>; Sun, 26 Jul 2015 09:10:25 -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=sBvmZJ5ENDOAgokMWWpNOBok+1uY6MM0a+FjjTR/UXo=; b=fKh57CsZ5SZcCK+e6UsOj9iE5/VQ2n7g3VrSmiTg4SfclPnkkUb1ib+yH276TN7InY n1BX7n5Rw2n4vQ5yVKVoimsQxtYRKs4ED7bncz0UWtLiSEy+9jLZyqFa8cVfyOE6cpIB vmu3rNbqDy87HCWPd1ZhK+IAc9c/UY/L5vX01KYdliHbDFKRakpbU3mGwoyIVhyX4m49 z6qvUl7+tfTgyJDLr0wW5dSCczPuTkIgytIj16kJsov+EKSz76mF4uyT3A+wuoPYdxeb zFRQ0sLZ55U653bFNMGDLWs+TU1XoeyoUgbXy4oQe6I+1bA4DMuGe8/fFB6nKk3NnDqs m57Q== X-Received: by 10.50.137.100 with SMTP id qh4mr10718538igb.1.1437927024916; Sun, 26 Jul 2015 09:10:24 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.10.72 with HTTP; Sun, 26 Jul 2015 09:10:05 -0700 (PDT) In-Reply-To: <20150721001424.BC00.27F6AC2D@kcn.ne.jp> References: <20150719164201.E8D3.27F6AC2D@kcn.ne.jp> <20150721001424.BC00.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Sun, 26 Jul 2015 09:10:05 -0700 X-Google-Sender-Auth: 1Sj-YTxWd0HOeAgKvBmt9yZ8mQk Message-ID: Subject: Re: [PATCH 1/2] dfa: avoid execution for a pattern including an unsupported expression To: Norihiro Tanaka Content-Type: multipart/mixed; boundary=001a11c31f7488bb95051bc97981 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 19306 Cc: 19306@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 (/) --001a11c31f7488bb95051bc97981 Content-Type: text/plain; charset=UTF-8 On Mon, Jul 20, 2015 at 8:14 AM, Norihiro Tanaka wrote: > > On Sun, 19 Jul 2015 20:14:52 -0700 > Jim Meyering wrote: > >> Thank you for the additional information and the test script. >> I like most of this patch, but not the fact that it causes the >> word-delim-multibyte test to fail. I do see that also applying your >> following patch makes that test pass once again. However, it does so >> at the cost of forcing a new class of regexps (any that contain a use >> of \b, \< or \>) from DFA into the slower regex matcher. > > I think DFA forces regex for BEGWORD, LIMWORD, ENDWORD, instead of > whether patching or not. Could you remark code in dfassbuild() without > patching? It seem that DFA rejects their words from before. > > case BEGWORD: > case ENDWORD: > case LIMWORD: > case NOTLIMWORD: > if (d->multibyte) > { > /* These constraints aren't supported in a multibyte locale. > Ignore them in the superset DFA, and treat them as > backreferences in the main DFA. */ > sup->tokens[j++] = EMPTY; > d->tokens[i] = BACKREF; <<<< > break; > } > > DFA does not handle word context in multibyte correctly. Perhaps, if we > fix it, DFA will take a performance penalty. You're right. That covers it. This patch is good also for eliminating some technical debt. Since your change eliminates the code below (effectively making the same change from conjunct to disjunct), there is no reason to make the following correction: /* Falling back to the glibc matcher in this case gives \ better performance (up to 25% better on [a-z], for \ example) and enables support for collating symbols and \ equivalence classes. */ \ - if (d->states[s].has_mbcset && backref) \ + if (d->states[s].has_mbcset || backref) \ { \ *backref = 1; \ goto done; \ } \ At first I was surprised to see that using "&&" there provoked no test failure, but then saw that we test "backref" shortly thereafter. While technically, using "&&" there is a bug, it seems the effect was negligible. I have made some changes, renaming functions, e.g., dfabackref -> dfa_supported, since even before this change "backref" meant more than the presence of a backreference. Note that while your commit log entry described new functions, I have modified the commit log to say merely "new function" for each. Instead, I document the new functions in the code, where that documentation will be more useful, and maintained. Please let me know if there is anything you'd like to change: --001a11c31f7488bb95051bc97981 Content-Type: text/x-patch; charset=US-ASCII; name="0001-dfa-avoid-execution-for-a-pattern-including-an-unsup.patch" Content-Disposition: attachment; filename="0001-dfa-avoid-execution-for-a-pattern-including-an-unsup.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ickoklm50 RnJvbSBlYTBlYmFhYTYxMDZhZDM4YWZhM2NmODU4YTFiNTRlYzY3NWFmYjA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBNb24sIDMgTm92IDIwMTQgMDg6MTI6NDAgKzA5MDAKU3ViamVjdDogW1BBVENIIDEvMl0g ZGZhOiBhdm9pZCBleGVjdXRpb24gZm9yIGEgcGF0dGVybiBpbmNsdWRpbmcgYW4KIHVuc3VwcG9y dGVkIGV4cHJlc3Npb24KCklmIGEgcGF0dGVybiBpbmNsdWRlcyBhIGNvbnN0cnVjdCB1bnN1cHBv cnRlZCBieSB0aGUgREZBIG1hdGNoZXIsCnRoZSBERkEgc2VhcmNoIHdvdWxkIGZhaWwgaW4gbW9z dCBjYXNlcy4gIE1ha2UgZGZhZXhlYyBpbW1lZGlhdGVseQpyZXR1cm4gZm9yIGFueSBzdWNoIHBh dHRlcm4uCgoqIHNyYy9kZmEuYyAoc3RydWN0IGRmYV9zdGF0ZSkgW2hhc19iYWNrcmVmLCBoYXNf bWJjc2V0XTogUmVtb3ZlIG1lbWJlcnMKYW5kIGFsbCB1c2VzLgooZGZhZXhlY19tYWluKTogUmVt b3ZlICdiYWNrcmVmJyBwYXJhbWV0ZXIuICBVcGRhdGUgY2FsbGVycy4KKGRmYWV4ZWNfbm9vcCk6 IE5ldyBmdW5jdGlvbi4KKGRmYV9zdXBwb3J0ZWQpOiBOZXcgZnVuY3Rpb24uCihkZmFzc2J1aWxk KTogUmVtb3ZlIG5vdy11bnVzZWQgY29kZS4KKGRmYWNvbXApOiBXaGVuIGEgcGF0dGVybiB1c2Vz IGEgREZBLXVuc3VwcG9ydGVkIGNvbnN0cnVjdCwgZG8gbm90Cndhc3RlIHRpbWUgcGVyZm9ybWlu ZyBhbnkgZnVydGhlciBhbmFseXNpcy4KLS0tCiBzcmMvZGZhLmMgfCA5MyArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXggYjVjYTgyNS4uYTI4NDA0YiAxMDA2NDQKLS0t IGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpAQCAtMjgyLDggKzI4Miw2IEBAIHR5cGVkZWYg c3RydWN0CiAgIHNpemVfdCBoYXNoOyAgICAgICAgICAgICAgICAgIC8qIEhhc2ggb2YgdGhlIHBv c2l0aW9ucyBvZiB0aGlzIHN0YXRlLiAgKi8KICAgcG9zaXRpb25fc2V0IGVsZW1zOyAgICAgICAg ICAgLyogUG9zaXRpb25zIHRoaXMgc3RhdGUgY291bGQgbWF0Y2guICAqLwogICB1bnNpZ25lZCBj aGFyIGNvbnRleHQ7ICAgICAgICAvKiBDb250ZXh0IGZyb20gcHJldmlvdXMgc3RhdGUuICAqLwot ICBib29sIGhhc19iYWNrcmVmOwkJLyogVGhpcyBzdGF0ZSBtYXRjaGVzIGEgXDxkaWdpdD4uICAq LwotICBib29sIGhhc19tYmNzZXQ7CQkvKiBUaGlzIHN0YXRlIG1hdGNoZXMgYSBNQkNTRVQuICAq LwogICB1bnNpZ25lZCBzaG9ydCBjb25zdHJhaW50OyAgICAvKiBDb25zdHJhaW50IGZvciB0aGlz IHN0YXRlIHRvIGFjY2VwdC4gICovCiAgIHRva2VuIGZpcnN0X2VuZDsgICAgICAgICAgICAgIC8q IFRva2VuIHZhbHVlIG9mIHRoZSBmaXJzdCBFTkQgaW4gZWxlbXMuICAqLwogICBwb3NpdGlvbl9z ZXQgbWJwczsgICAgICAgICAgICAvKiBQb3NpdGlvbnMgd2hpY2ggY2FuIG1hdGNoIG11bHRpYnl0 ZQpAQCAtMjE2OCw4ICsyMTY2LDYgQEAgc3RhdGVfaW5kZXggKHN0cnVjdCBkZmEgKmQsIHBvc2l0 aW9uX3NldCBjb25zdCAqcywgaW50IGNvbnRleHQpCiAgIGFsbG9jX3Bvc2l0aW9uX3NldCAoJmQt PnN0YXRlc1tpXS5lbGVtcywgcy0+bmVsZW0pOwogICBjb3B5IChzLCAmZC0+c3RhdGVzW2ldLmVs ZW1zKTsKICAgZC0+c3RhdGVzW2ldLmNvbnRleHQgPSBjb250ZXh0OwotICBkLT5zdGF0ZXNbaV0u aGFzX2JhY2tyZWYgPSBmYWxzZTsKLSAgZC0+c3RhdGVzW2ldLmhhc19tYmNzZXQgPSBmYWxzZTsK ICAgZC0+c3RhdGVzW2ldLmNvbnN0cmFpbnQgPSAwOwogICBkLT5zdGF0ZXNbaV0uZmlyc3RfZW5k ID0gMDsKICAgZC0+c3RhdGVzW2ldLm1icHMubmVsZW0gPSAwOwpAQCAtMjE4NSwxMCArMjE4MSw3 IEBAIHN0YXRlX2luZGV4IChzdHJ1Y3QgZGZhICpkLCBwb3NpdGlvbl9zZXQgY29uc3QgKnMsIGlu dCBjb250ZXh0KQogICAgICAgICAgIGQtPnN0YXRlc1tpXS5maXJzdF9lbmQgPSBkLT50b2tlbnNb cy0+ZWxlbXNbal0uaW5kZXhdOwogICAgICAgfQogICAgIGVsc2UgaWYgKGQtPnRva2Vuc1tzLT5l bGVtc1tqXS5pbmRleF0gPT0gQkFDS1JFRikKLSAgICAgIHsKLSAgICAgICAgZC0+c3RhdGVzW2ld LmNvbnN0cmFpbnQgPSBOT19DT05TVFJBSU5UOwotICAgICAgICBkLT5zdGF0ZXNbaV0uaGFzX2Jh Y2tyZWYgPSB0cnVlOwotICAgICAgfQorICAgICAgZC0+c3RhdGVzW2ldLmNvbnN0cmFpbnQgPSBO T19DT05TVFJBSU5UOwoKICAgKytkLT5zaW5kZXg7CgpAQCAtMjY0Nyw5ICsyNjQwLDYgQEAgZGZh c3RhdGUgKHN0YXRlX251bSBzLCBzdHJ1Y3QgZGZhICpkLCBzdGF0ZV9udW0gdHJhbnNbXSkKICAg ICAgICAgICBpZiAoZC0+dG9rZW5zW3Bvcy5pbmRleF0gPT0gTUJDU0VUCiAgICAgICAgICAgICAg IHx8IGQtPnRva2Vuc1twb3MuaW5kZXhdID09IEFOWUNIQVIpCiAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgIC8qIE1CX0NVUl9NQVggPiAxICovCi0gICAgICAgICAgICAgIGlmIChkLT50b2tl bnNbcG9zLmluZGV4XSA9PSBNQkNTRVQpCi0gICAgICAgICAgICAgICAgZC0+c3RhdGVzW3NdLmhh c19tYmNzZXQgPSB0cnVlOwogICAgICAgICAgICAgICAvKiBBTllDSEFSIGFuZCBNQkNTRVQgbXVz dCBtYXRjaCB3aXRoIGEgc2luZ2xlIGNoYXJhY3Rlciwgc28gd2UKICAgICAgICAgICAgICAgICAg bXVzdCBwdXQgaXQgdG8gZC0+c3RhdGVzW3NdLm1icHMsIHdoaWNoIGNvbnRhaW5zIHRoZSBwb3Np dGlvbnMKICAgICAgICAgICAgICAgICAgd2hpY2ggY2FuIG1hdGNoIHdpdGggYSBzaW5nbGUgY2hh cmFjdGVyIG5vdCBhIGJ5dGUuICAqLwpAQCAtMzM2MSwxNSArMzM1MSwxNyBAQCBza2lwX3JlbWFp bnNfbWIgKHN0cnVjdCBkZmEgKmQsIHVuc2lnbmVkIGNoYXIgY29uc3QgKnAsCiAgICBXaGVuIEFM TE9XX05MIGlzIG5vbnplcm8sIG5ld2xpbmVzIG1heSBhcHBlYXIgaW4gdGhlIG1hdGNoaW5nIHN0 cmluZy4KICAgIElmIENPVU5UIGlzIG5vbi1OVUxMLCBpbmNyZW1lbnQgKkNPVU5UIG9uY2UgZm9y IGVhY2ggbmV3bGluZSBwcm9jZXNzZWQuCiAgICBGaW5hbGx5LCBpZiBCQUNLUkVGIGlzIG5vbi1O VUxMIHNldCAqQkFDS1JFRiB0byBpbmRpY2F0ZSB3aGV0aGVyIHdlCi0gICBlbmNvdW50ZXJlZCBh IGJhY2stcmVmZXJlbmNlICgxKSBvciBub3QgKDApLiAgVGhlIGNhbGxlciBtYXkgdXNlIHRoaXMK LSAgIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGZhbGwgYmFjayBvbiBhIGJhY2t0cmFja2luZyBtYXRj aGVyLgotCi0gICBJZiBNVUxUSUJZVEUsIHRoZSBpbnB1dCBjb25zaXN0cyBvZiBtdWx0aWJ5dGUg Y2hhcmFjdGVycyBhbmQvb3IKLSAgIGVuY29kaW5nLWVycm9yIGJ5dGVzLiAgT3RoZXJ3aXNlLCB0 aGUgaW5wdXQgY29uc2lzdHMgb2Ygc2luZ2xlLWJ5dGUKLSAgIGNoYXJhY3RlcnMuICAqLworICAg ZW5jb3VudGVyZWQgYSBERkEtdW5mcmllbmRseSBjb25zdHJ1Y3QuICBUaGUgY2FsbGVyIG1heSB1 c2UgdGhpcyB0bworICAgZGVjaWRlIHdoZXRoZXIgdG8gZmFsbCBiYWNrIG9uIGEgbWF0Y2hlciBs aWtlIHJlZ2V4LiAgSWYgTVVMVElCWVRFLAorICAgdGhlIGlucHV0IGNvbnNpc3RzIG9mIG11bHRp Ynl0ZSBjaGFyYWN0ZXJzIGFuZC9vciBlbmNvZGluZy1lcnJvciBieXRlcy4KKyAgIE90aGVyd2lz ZSwgdGhlIGlucHV0IGNvbnNpc3RzIG9mIHNpbmdsZS1ieXRlIGNoYXJhY3RlcnMuCisgICBIZXJl IGlzIHRoZSBsaXN0IG9mIGZlYXR1cmVzIHRoYXQgbWFrZSB0aGlzIERGQSBtYXRjaGVyIHB1bnQ6 CisgICAgLSBbTS1OXS1yYW5nZS1pbi1NQi1sb2NhbGU6IHJlZ2V4IGlzIHVwIHRvIDI1JSBmYXN0 ZXIgb24gW2Etel0KKyAgICAtIGJhY2stcmVmZXJlbmNlOiAoLilcMQorICAgICovCiBzdGF0aWMg aW5saW5lIGNoYXIgKgotZGZhZXhlY19tYWluIChzdHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpi ZWdpbiwgY2hhciAqZW5kLAotICAgICAgICAgICAgIGludCBhbGxvd19ubCwgc2l6ZV90ICpjb3Vu dCwgaW50ICpiYWNrcmVmLCBib29sIG11bHRpYnl0ZSkKK2RmYWV4ZWNfbWFpbiAoc3RydWN0IGRm YSAqZCwgY2hhciBjb25zdCAqYmVnaW4sIGNoYXIgKmVuZCwgaW50IGFsbG93X25sLAorICAgICAg ICAgICAgIHNpemVfdCAqY291bnQsIGJvb2wgbXVsdGlieXRlKQogewogICBzdGF0ZV9udW0gcywg czE7ICAgICAgICAgICAgICAvKiBDdXJyZW50IHN0YXRlLiAgKi8KICAgdW5zaWduZWQgY2hhciBj b25zdCAqcCwgKm1icDsgLyogQ3VycmVudCBpbnB1dCBjaGFyYWN0ZXIuICAqLwpAQCAtMzQ1OSwx NiArMzQ1MSw2IEBAIGRmYWV4ZWNfbWFpbiAoc3RydWN0IGRmYSAqZCwgY2hhciBjb25zdCAqYmVn aW4sIGNoYXIgKmVuZCwKICAgICAgICAgICAgICAgICAgVXNlIGEgbWFjcm8gdG8gYXZvaWQgdGhl IHJpc2sgdGhhdCB0aGV5IGRpdmVyZ2UuICAqLwogI2RlZmluZSBTdGF0ZV90cmFuc2l0aW9uKCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICBkbyB7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAotICAgICAgICAgICAgICAvKiBGYWxsaW5nIGJhY2sgdG8gdGhlIGdsaWJjIG1hdGNo ZXIgaW4gdGhpcyBjYXNlIGdpdmVzICAgXAotICAgICAgICAgICAgICAgICBiZXR0ZXIgcGVyZm9y bWFuY2UgKHVwIHRvIDI1JSBiZXR0ZXIgb24gW2Etel0sIGZvciAgICAgXAotICAgICAgICAgICAg ICAgICBleGFtcGxlKSBhbmQgZW5hYmxlcyBzdXBwb3J0IGZvciBjb2xsYXRpbmcgc3ltYm9scyBh bmQgXAotICAgICAgICAgICAgICAgICBlcXVpdmFsZW5jZSBjbGFzc2VzLiAgKi8gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICBpZiAoZC0+c3RhdGVzW3NdLmhh c19tYmNzZXQgJiYgYmFja3JlZikgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAg IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAotICAgICAgICAgICAgICAgICAgKmJhY2tyZWYgPSAxOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgZ290byBkb25lOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgIH0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAvKiBDYW4gbWF0Y2ggd2l0aCBhIG11bHRp Ynl0ZSBjaGFyYWN0ZXIgKGFuZCBtdWx0aS1jaGFyYWN0ZXIgXAogICAgICAgICAgICAgICAgICBj b2xsYXRpbmcgZWxlbWVudCkuICBUcmFuc2l0aW9uIHRhYmxlIG1pZ2h0IGJlIHVwZGF0ZWQuICAq LyBcCiAgICAgICAgICAgICAgIHMgPSB0cmFuc2l0X3N0YXRlIChkLCBzLCAmcCwgKHVuc2lnbmVk IGNoYXIgKikgZW5kKTsgICAgICBcCkBAIC0zNTQyLDExICszNTI0LDcgQEAgZGZhZXhlY19tYWlu IChzdHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdpbiwgY2hhciAqZW5kLAogICAgICAgaWYg KGQtPmZhaWxzW3NdKQogICAgICAgICB7CiAgICAgICAgICAgaWYgKGQtPnN1Y2Nlc3Nbc10gJiBz Yml0WypwXSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgaWYgKGJhY2tyZWYpCi0gICAg ICAgICAgICAgICAgKmJhY2tyZWYgPSBkLT5zdGF0ZXNbc10uaGFzX2JhY2tyZWY7Ci0gICAgICAg ICAgICAgIGdvdG8gZG9uZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdG8gZG9uZTsK CiAgICAgICAgICAgczEgPSBzOwogICAgICAgICAgIGlmIChtdWx0aWJ5dGUpCkBAIC0zNTc2LDE0 ICszNTU0LDI0IEBAIHN0YXRpYyBjaGFyICoKIGRmYWV4ZWNfbWIgKHN0cnVjdCBkZmEgKmQsIGNo YXIgY29uc3QgKmJlZ2luLCBjaGFyICplbmQsCiAgICAgICAgICAgICBpbnQgYWxsb3dfbmwsIHNp emVfdCAqY291bnQsIGludCAqYmFja3JlZikKIHsKLSAgcmV0dXJuIGRmYWV4ZWNfbWFpbiAoZCwg YmVnaW4sIGVuZCwgYWxsb3dfbmwsIGNvdW50LCBiYWNrcmVmLCB0cnVlKTsKKyAgcmV0dXJuIGRm YWV4ZWNfbWFpbiAoZCwgYmVnaW4sIGVuZCwgYWxsb3dfbmwsIGNvdW50LCB0cnVlKTsKIH0KCiBz dGF0aWMgY2hhciAqCiBkZmFleGVjX3NiIChzdHJ1Y3QgZGZhICpkLCBjaGFyIGNvbnN0ICpiZWdp biwgY2hhciAqZW5kLAogICAgICAgICAgICAgaW50IGFsbG93X25sLCBzaXplX3QgKmNvdW50LCBp bnQgKmJhY2tyZWYpCiB7Ci0gIHJldHVybiBkZmFleGVjX21haW4gKGQsIGJlZ2luLCBlbmQsIGFs bG93X25sLCBjb3VudCwgYmFja3JlZiwgZmFsc2UpOworICByZXR1cm4gZGZhZXhlY19tYWluIChk LCBiZWdpbiwgZW5kLCBhbGxvd19ubCwgY291bnQsIGZhbHNlKTsKK30KKworLyogQWx3YXlzIHNl dCAqQkFDS1JFRiBhbmQgcmV0dXJuIEJFR0lOLiAgVXNlIHRoaXMgd3JhcHBlciBmb3IKKyAgIGFu eSByZWdleHAgdGhhdCB1c2VzIGEgY29uc3RydWN0IG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBjb2Rl LiAgKi8KK3N0YXRpYyBjaGFyICoKK2RmYWV4ZWNfbm9vcCAoc3RydWN0IGRmYSAqZCwgY2hhciBj b25zdCAqYmVnaW4sIGNoYXIgKmVuZCwKKyAgICAgICAgICAgICAgaW50IGFsbG93X25sLCBzaXpl X3QgKmNvdW50LCBpbnQgKmJhY2tyZWYpCit7CisgICpiYWNrcmVmID0gMTsKKyAgcmV0dXJuIChj aGFyICopIGJlZ2luOwogfQoKIC8qIExpa2UgZGZhZXhlY19tYWluIChELCBCRUdJTiwgRU5ELCBB TExPV19OTCwgQ09VTlQsIEJBQ0tSRUYsIEQtPm11bHRpYnl0ZSksCkBAIC0zNjQ5LDYgKzM2Mzcs MjIgQEAgZGZhaW5pdCAoc3RydWN0IGRmYSAqZCkKICAgZC0+ZmFzdCA9ICFkLT5tdWx0aWJ5dGU7 CiB9CgorLyogUmV0dXJuIHRydWUgaWYgZXZlcnkgY29uc3RydWN0IGluIEQgaXMgc3VwcG9ydGVk IGJ5IHRoaXMgREZBIG1hdGNoZXIuICAqLworc3RhdGljIGJvb2wgX0dMX0FUVFJJQlVURV9QVVJF CitkZmFfc3VwcG9ydGVkIChzdHJ1Y3QgZGZhIGNvbnN0ICpkKQoreworICBmb3IgKHNpemVfdCBp ID0gMDsgaSA8IGQtPnRpbmRleDsgaSsrKQorICAgIHsKKyAgICAgIHN3aXRjaCAoZC0+dG9rZW5z W2ldKQorICAgICAgICB7CisgICAgICAgIGNhc2UgQkFDS1JFRjoKKyAgICAgICAgY2FzZSBNQkNT RVQ6CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICByZXR1cm4g dHJ1ZTsKK30KKwogc3RhdGljIHZvaWQKIGRmYW9wdGltaXplIChzdHJ1Y3QgZGZhICpkKQogewpA QCAtMzc0NiwxMCArMzc1MCw4IEBAIGRmYXNzYnVpbGQgKHN0cnVjdCBkZmEgKmQpCiAgICAgICAg ICAgaWYgKGQtPm11bHRpYnl0ZSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLyogVGhl c2UgY29uc3RyYWludHMgYXJlbid0IHN1cHBvcnRlZCBpbiBhIG11bHRpYnl0ZSBsb2NhbGUuCi0g ICAgICAgICAgICAgICAgIElnbm9yZSB0aGVtIGluIHRoZSBzdXBlcnNldCBERkEsIGFuZCB0cmVh dCB0aGVtIGFzCi0gICAgICAgICAgICAgICAgIGJhY2tyZWZlcmVuY2VzIGluIHRoZSBtYWluIERG QS4gICovCisgICAgICAgICAgICAgICAgIElnbm9yZSB0aGVtIGluIHRoZSBzdXBlcnNldCBERkEu ICAqLwogICAgICAgICAgICAgICBzdXAtPnRva2Vuc1tqKytdID0gRU1QVFk7Ci0gICAgICAgICAg ICAgIGQtPnRva2Vuc1tpXSA9IEJBQ0tSRUY7CiAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICAgICAgfQogICAgICAgICBkZWZhdWx0OgpAQCAtMzc3OSw4ICszNzgxLDE3IEBAIGRmYWNvbXAg KGNoYXIgY29uc3QgKnMsIHNpemVfdCBsZW4sIHN0cnVjdCBkZmEgKmQsIGludCBzZWFyY2hmbGFn KQogICBkZmFtYmNhY2hlIChkKTsKICAgZGZhcGFyc2UgKHMsIGxlbiwgZCk7CiAgIGRmYXNzYnVp bGQgKGQpOwotICBkZmFvcHRpbWl6ZSAoZCk7Ci0gIGRmYWFuYWx5emUgKGQsIHNlYXJjaGZsYWcp OworCisgIGlmIChkZmFfc3VwcG9ydGVkIChkKSkKKyAgICB7CisgICAgICBkZmFvcHRpbWl6ZSAo ZCk7CisgICAgICBkZmFhbmFseXplIChkLCBzZWFyY2hmbGFnKTsKKyAgICB9CisgIGVsc2UKKyAg ICB7CisgICAgICBkLT5kZmFleGVjID0gZGZhZXhlY19ub29wOworICAgIH0KKwogICBpZiAoZC0+ c3VwZXJzZXQpCiAgICAgewogICAgICAgZC0+ZmFzdCA9IHRydWU7Ci0tIAoyLjMuNwoK --001a11c31f7488bb95051bc97981 Content-Type: text/x-patch; charset=US-ASCII; name="0002-dfa-remove-word-delimiter-support-for-multibyte-loca.patch" Content-Disposition: attachment; filename="0002-dfa-remove-word-delimiter-support-for-multibyte-loca.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ickoklmi1 RnJvbSBiZmE5ZGYwMzAzNGNjZmI2NWRhOTk1MGNmMWUxMjA3ZmFlZjEyMTNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTdW4sIDcgRGVjIDIwMTQgMjA6MTY6NDEgKzA5MDAKU3ViamVjdDogW1BBVENIIDIvMl0g ZGZhOiByZW1vdmUgd29yZCBkZWxpbWl0ZXIgc3VwcG9ydCBmb3IgbXVsdGlieXRlIGxvY2FsZXMK CkRGQSBzdXBwb3J0cyB3b3JkIGRlbGltaXRlciBleHByZXNzaW9ucywgYnV0IGl0IGRvZXMgbm90 IGJlaGF2ZQpjb3JyZWN0bHkgZm9yIG11bHRpYnl0ZSBsb2NhbGVzLiAgRXZlbiBpZiBpdCB3ZXJl IHRvIGJlIGZpeGVkLAp0aGUgREZBIG1hdGNoZXIncyBwZXJmb3JtYW5jZSB3b3VsZCBiZSBubyBi ZXR0ZXIgdGhhbiB0aGF0IG9mIHJlZ2V4LgpUaHVzLCB0aGlzIGNoYW5nZSByZW1vdmVzIERGQSBz dXBwb3J0IGZvciB3b3JkIGRlbGltaXRlciBleHByZXNzaW9ucwppbiBtdWx0aWJ5dGUgbG9jYWxl cy4KCiogc3JjL2RmYS5jIChkZmFfc3VwcG9ydGVkKTogUmV0dXJuIGZhbHNlIGFsc28gd2hlbiBh IHBhdHRlcm4gdXNlcyBhbnkKd29yZCBkZWxpbWl0ZXIgZXhwcmVzc2lvbiBpbiBhIG11bHRpYnl0 ZSBsb2NhbGUuCi0tLQogc3JjL2RmYS5jIHwgOSArKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5 IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvZGZhLmMgYi9zcmMvZGZhLmMKaW5kZXgg YTI4NDA0Yi4uZDFlNzZlMSAxMDA2NDQKLS0tIGEvc3JjL2RmYS5jCisrKyBiL3NyYy9kZmEuYwpA QCAtMzM1OCw2ICszMzU4LDcgQEAgc2tpcF9yZW1haW5zX21iIChzdHJ1Y3QgZGZhICpkLCB1bnNp Z25lZCBjaGFyIGNvbnN0ICpwLAogICAgSGVyZSBpcyB0aGUgbGlzdCBvZiBmZWF0dXJlcyB0aGF0 IG1ha2UgdGhpcyBERkEgbWF0Y2hlciBwdW50OgogICAgIC0gW00tTl0tcmFuZ2UtaW4tTUItbG9j YWxlOiByZWdleCBpcyB1cCB0byAyNSUgZmFzdGVyIG9uIFthLXpdCiAgICAgLSBiYWNrLXJlZmVy ZW5jZTogKC4pXDEKKyAgICAtIHdvcmQtZGVsaW1pdGVyLWluLU1CLWxvY2FsZTogXDwsIFw+LCBc YgogICAgICovCiBzdGF0aWMgaW5saW5lIGNoYXIgKgogZGZhZXhlY19tYWluIChzdHJ1Y3QgZGZh ICpkLCBjaGFyIGNvbnN0ICpiZWdpbiwgY2hhciAqZW5kLCBpbnQgYWxsb3dfbmwsCkBAIC0zNjQ1 LDYgKzM2NDYsMTQgQEAgZGZhX3N1cHBvcnRlZCAoc3RydWN0IGRmYSBjb25zdCAqZCkKICAgICB7 CiAgICAgICBzd2l0Y2ggKGQtPnRva2Vuc1tpXSkKICAgICAgICAgeworICAgICAgICBjYXNlIEJF R1dPUkQ6CisgICAgICAgIGNhc2UgRU5EV09SRDoKKyAgICAgICAgY2FzZSBMSU1XT1JEOgorICAg ICAgICBjYXNlIE5PVExJTVdPUkQ6CisgICAgICAgICAgaWYgKCFkLT5tdWx0aWJ5dGUpCisgICAg ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLworCiAgICAgICAg IGNhc2UgQkFDS1JFRjoKICAgICAgICAgY2FzZSBNQkNTRVQ6CiAgICAgICAgICAgcmV0dXJuIGZh bHNlOwotLSAKMi4zLjcKCg== --001a11c31f7488bb95051bc97981-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 26 18:29:50 2015 Received: (at 19306) by debbugs.gnu.org; 26 Jul 2015 22:29:50 +0000 Received: from localhost ([127.0.0.1]:59438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZJUQY-0003ul-2P for submit@debbugs.gnu.org; Sun, 26 Jul 2015 18:29:50 -0400 Received: from mailgw05.kcn.ne.jp ([61.86.7.212]:56101) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZJUQV-0003ub-4y for 19306@debbugs.gnu.org; Sun, 26 Jul 2015 18:29:48 -0400 Received: from mxs01-s (mailgw1.kcn.ne.jp [61.86.15.233]) by mailgw05.kcn.ne.jp (Postfix) with ESMTP id 50834880149 for <19306@debbugs.gnu.org>; Mon, 27 Jul 2015 07:29:45 +0900 (JST) X-matriXscan-loop-detect: bc81d1e4684008e0dbc9d307456568c21283fee5 Received: from mail04.kcn.ne.jp ([61.86.6.183]) by mxs01-s with ESMTP; Mon, 27 Jul 2015 07:29:45 +0900 (JST) Received: from [10.120.1.10] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail04.kcn.ne.jp (Postfix) with ESMTPA id D43C6129009A; Mon, 27 Jul 2015 07:29:44 +0900 (JST) Date: Mon, 27 Jul 2015 07:29:42 +0900 From: Norihiro Tanaka To: Jim Meyering Subject: Re: [PATCH 1/2] dfa: avoid execution for a pattern including an unsupported expression In-Reply-To: References: <20150721001424.BC00.27F6AC2D@kcn.ne.jp> Message-Id: <20150727072941.7FF5.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-matriXscan-Sophos-AV: Clean X-matriXscan-Action: Approve X-matriXscan: Uncategorized X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 19306 Cc: 19306@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 (/) On Sun, 26 Jul 2015 09:10:05 -0700 Jim Meyering wrote: > You're right. That covers it. > > This patch is good also for eliminating some technical debt. > Since your change eliminates the code below (effectively making > the same change from conjunct to disjunct), there is no reason > to make the following correction: > > /* Falling back to the glibc matcher in this case gives \ > better performance (up to 25% better on [a-z], for \ > example) and enables support for collating symbols and \ > equivalence classes. */ \ > - if (d->states[s].has_mbcset && backref) \ > + if (d->states[s].has_mbcset || backref) \ > { \ > *backref = 1; \ > goto done; \ > } \ > > At first I was surprised to see that using "&&" there provoked > no test failure, but then saw that we test "backref" shortly thereafter. > While technically, using "&&" there is a bug, it seems the effect was > negligible. > > I have made some changes, renaming functions, e.g., dfabackref -> dfa_supported, > since even before this change "backref" meant more than the presence > of a backreference. > > Note that while your commit log entry described new functions, I have > modified the commit > log to say merely "new function" for each. Instead, I document the new > functions in the code, > where that documentation will be more useful, and maintained. > > Please let me know if there is anything you'd like to change: Thanks for reviewing. On Sun, 26 Jul 2015 09:10:05 -0700 Jim Meyering wrote: > This patch is good also for eliminating some technical debt. > Since your change eliminates the code below (effectively making > the same change from conjunct to disjunct), there is no reason > to make the following correction: > > /* Falling back to the glibc matcher in this case gives \ > better performance (up to 25% better on [a-z], for \ > example) and enables support for collating symbols and \ > equivalence classes. */ \ > - if (d->states[s].has_mbcset && backref) \ > + if (d->states[s].has_mbcset || backref) \ > { \ > *backref = 1; \ > goto done; \ > } \ > > At first I was surprised to see that using "&&" there provoked > no test failure, but then saw that we test "backref" shortly thereafter. > While technically, using "&&" there is a bug, it seems the effect was > negligible. The change is wrong, and previous code is right. If BACKREF is null, may be core dumped at *BACKREF = 1. > I have made some changes, renaming functions, e.g., dfabackref -> dfa_supported, > since even before this change "backref" meant more than the presence > of a backreference. I agree. By the way, now BACKREF is used in meaning of non-support already. So In the near future, Maybe it should be changed into UNSUPPORTED etc. > Note that while your commit log entry described new functions, I have > modified the commit > log to say merely "new function" for each. Instead, I document the new > functions in the code, > where that documentation will be more useful, and maintained. > > Please let me know if there is anything you'd like to change: Thanks for ajustment of commit log. I have no request to change. I agree to the changes. From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 26 19:41:57 2015 Received: (at 19306-done) by debbugs.gnu.org; 26 Jul 2015 23:41:57 +0000 Received: from localhost ([127.0.0.1]:59448 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZJVYL-0005ce-2G for submit@debbugs.gnu.org; Sun, 26 Jul 2015 19:41:57 -0400 Received: from mail-ig0-f177.google.com ([209.85.213.177]:37722) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZJVYI-0005cU-D5 for 19306-done@debbugs.gnu.org; Sun, 26 Jul 2015 19:41:54 -0400 Received: by igbpg9 with SMTP id pg9so56318975igb.0 for <19306-done@debbugs.gnu.org>; Sun, 26 Jul 2015 16:41:53 -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=p4rdKoZkalTkZIjJOdUmzj/l4ZFLtRWt5eQMBMUwDH8=; b=Gvd0/47Zkfu2zC0TUFGMSqQUy39tPZKTcsWHgzqKG+hLAWw8f9flPeiL1VPXkOeccF TXkITsJJ4bwFTLXysZZI5Rpw6p/XD6tt4I1ROFJWMzv+ZWDrsH6IvJHZFepXnsdLqfox Kz2LxD/DfAOyOm3f5CV8B1cbvorYabl31cxwy5rJt6COn+oMowYRYpZdzOEejc7Y5dld KE2c4xX0q12G6MHAzTXwJV01YACKKkz/kdOrdt33bbZ7oJ4VhiPQY5diMKcQHOb4Yd2T hD5cQqEqriai0ivHbEgzfqow5FrRoc44ohHN3U96fIU8W4WQm1c8C0vK7YlOH2J2GUVM NxnA== X-Received: by 10.50.64.179 with SMTP id p19mr11915791igs.55.1437954113615; Sun, 26 Jul 2015 16:41:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.10.72 with HTTP; Sun, 26 Jul 2015 16:41:34 -0700 (PDT) In-Reply-To: <20150727072941.7FF5.27F6AC2D@kcn.ne.jp> References: <20150721001424.BC00.27F6AC2D@kcn.ne.jp> <20150727072941.7FF5.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Sun, 26 Jul 2015 16:41:34 -0700 X-Google-Sender-Auth: Fy7l6DnOJeYpTv-oWBe34915f4s Message-ID: Subject: Re: [PATCH 1/2] dfa: avoid execution for a pattern including an unsupported expression To: Norihiro Tanaka Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 19306-done Cc: 19306-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 (/) pushed. From unknown Tue Aug 19 21:03:55 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 24 Aug 2015 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