From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.devel Subject: Re: woman.el broken? Date: Fri, 5 Mar 2021 19:43:24 -0800 Message-ID: References: <20210301193951.7EB04C217D7@raman-glaptop.localdomain> <878s763bah.fsf@gnus.org> <83r1ky7icm.fsf@gnu.org> <87zgzm1vvf.fsf@gnus.org> <83mtvm7hkt.fsf@gnu.org> <83lfb469e7.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000c74eab05bcd600b1" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11621"; mail-complaints-to="usenet@ciao.gmane.io" Cc: larsi@gnus.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Mar 06 04:44:19 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lINrX-0002uo-Et for ged-emacs-devel@m.gmane-mx.org; Sat, 06 Mar 2021 04:44:19 +0100 Original-Received: from localhost ([::1]:53518 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lINrW-0003rS-HG for ged-emacs-devel@m.gmane-mx.org; Fri, 05 Mar 2021 22:44:18 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43786) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lINqj-0003BY-Ly for emacs-devel@gnu.org; Fri, 05 Mar 2021 22:43:29 -0500 Original-Received: from mail-pj1-f49.google.com ([209.85.216.49]:40466) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lINqh-0008OI-Gf; Fri, 05 Mar 2021 22:43:29 -0500 Original-Received: by mail-pj1-f49.google.com with SMTP id a22-20020a17090aa516b02900c1215e9b33so172360pjq.5; Fri, 05 Mar 2021 19:43:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=vkmGdAYCRXcpQLsrcLNHT8/B+Ye+lI7hiFhNKmhfEzU=; b=bBLm1QHKhDd83QqQx5JkpOD3nctWvAWZhXE930ATT8rfyzQ+lGVxN8VugbReLie6cZ iRWpFRB+N5JIgMNGVfSlKQsZy3Yr9h7ke9hpNFonUGUbftjYHQ1P2k8+/HhRgv0weMyA /v2Jc20stSnJ4DofUyYDsLEULyxUwnXYHosWb2TXgQj8bhuXgtYJITMvat6WYM7Ik26F +XNm86T2zwY4tB4YoiDOUBxq0fdmqk3BN/inJGjC0cW7MRrhx/iCULHQw42GR6hloRYL lS1RD1nIv10EFKPJEXOj3PF2r3cUgnqFkOODo6si5upl7iSJ4JQCTHbdIfzqHxuePkHS z4WA== X-Gm-Message-State: AOAM532NQiSUEoO9HepKI36k7ZyDCvKg37uRk1m1ChERqMpXfwNrNklT 2XNoKROAPiZVZ8lPnKHaBqashy0NVNo5ASGt9k+NPKO/Kho= X-Google-Smtp-Source: ABdhPJxq0/hlMao7fbaOMSGJ4XrprXJf9/+w0K/xrHbUoyOsbBE8LBjQoaay3p+CmY61FD6LyTbFoQfb/c+7rM9TsGI= X-Received: by 2002:a17:90a:f986:: with SMTP id cq6mr13538696pjb.175.1615002205631; Fri, 05 Mar 2021 19:43:25 -0800 (PST) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 5 Mar 2021 19:43:24 -0800 In-Reply-To: Received-SPF: pass client-ip=209.85.216.49; envelope-from=stefankangas@gmail.com; helo=mail-pj1-f49.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:266051 Archived-At: --000000000000c74eab05bcd600b1 Content-Type: text/plain; charset="UTF-8" Stefan Kangas writes: > Eli Zaretskii writes: > >> If this is performant enough, I don't at the moment see any reason to >> have it in C. Of course, the few places that call Flookup_key from C >> will need to be analyzed whether they need to call the internal >> function or the Lisp wrapper, and modified accordingly. > > OK. I will write up the patch and do some benchmarks. Turns out this was actually easier and faster to just do in C, as there were less places that needed changing. See the attached diff. The thing that is missing now is converting Foo\ Bar to foo-bar, but what is the best method for doing that from C? Should I just call out to `string-replace' or is there a better way? --000000000000c74eab05bcd600b1 Content-Type: text/x-diff; charset="US-ASCII"; name="lookup-key.diff" Content-Disposition: attachment; filename="lookup-key.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: 4b1e8c852f155e0a_0.1 ZGlmZiAtLWdpdCBhL3NyYy9rZXltYXAuYyBiL3NyYy9rZXltYXAuYwppbmRleCA3ODI5MzFmYWRm Li45NGQ0OWFjNzMzIDEwMDY0NAotLS0gYS9zcmMva2V5bWFwLmMKKysrIGIvc3JjL2tleW1hcC5j CkBAIC0xMTgwLDI3ICsxMTgwLDggQEAgREVGVU4gKCJjb21tYW5kLXJlbWFwcGluZyIsIEZjb21t YW5kX3JlbWFwcGluZywgU2NvbW1hbmRfcmVtYXBwaW5nLCAxLCAzLCAwLAogICByZXR1cm4gRklY TlVNUCAoY29tbWFuZCkgPyBRbmlsIDogY29tbWFuZDsKIH0KIAotLyogVmFsdWUgaXMgbnVtYmVy IGlmIEtFWSBpcyB0b28gbG9uZzsgbmlsIGlmIHZhbGlkIGJ1dCBoYXMgbm8gZGVmaW5pdGlvbi4g ICovCi0vKiBHQyBpcyBwb3NzaWJsZSBpbiB0aGlzIGZ1bmN0aW9uLiAgKi8KLQotREVGVU4gKCJs b29rdXAta2V5IiwgRmxvb2t1cF9rZXksIFNsb29rdXBfa2V5LCAyLCAzLCAwLAotICAgICAgIGRv YzogLyogTG9vayB1cCBrZXkgc2VxdWVuY2UgS0VZIGluIEtFWU1BUC4gIFJldHVybiB0aGUgZGVm aW5pdGlvbi4KLUEgdmFsdWUgb2YgbmlsIG1lYW5zIHVuZGVmaW5lZC4gIFNlZSBkb2Mgb2YgYGRl ZmluZS1rZXknCi1mb3Iga2luZHMgb2YgZGVmaW5pdGlvbnMuCi0KLUEgbnVtYmVyIGFzIHZhbHVl IG1lYW5zIEtFWSBpcyAidG9vIGxvbmciOwotdGhhdCBpcywgY2hhcmFjdGVycyBvciBzeW1ib2xz IGluIGl0IGV4Y2VwdCBmb3IgdGhlIGxhc3Qgb25lCi1mYWlsIHRvIGJlIGEgdmFsaWQgc2VxdWVu Y2Ugb2YgcHJlZml4IGNoYXJhY3RlcnMgaW4gS0VZTUFQLgotVGhlIG51bWJlciBpcyBob3cgbWFu eSBjaGFyYWN0ZXJzIGF0IHRoZSBmcm9udCBvZiBLRVkKLWl0IHRha2VzIHRvIHJlYWNoIGEgbm9u LXByZWZpeCBrZXkuCi1LRVlNQVAgY2FuIGFsc28gYmUgYSBsaXN0IG9mIGtleW1hcHMuCi0KLU5v cm1hbGx5LCBgbG9va3VwLWtleScgaWdub3JlcyBiaW5kaW5ncyBmb3IgdCwgd2hpY2ggYWN0IGFz IGRlZmF1bHQKLWJpbmRpbmdzLCB1c2VkIHdoZW4gbm90aGluZyBlbHNlIGluIHRoZSBrZXltYXAg YXBwbGllczsgdGhpcyBtYWtlcyBpdAotdXNhYmxlIGFzIGEgZ2VuZXJhbCBmdW5jdGlvbiBmb3Ig cHJvYmluZyBrZXltYXBzLiAgSG93ZXZlciwgaWYgdGhlCi10aGlyZCBvcHRpb25hbCBhcmd1bWVu dCBBQ0NFUFQtREVGQVVMVCBpcyBub24tbmlsLCBgbG9va3VwLWtleScgd2lsbAotcmVjb2duaXpl IHRoZSBkZWZhdWx0IGJpbmRpbmdzLCBqdXN0IGFzIGByZWFkLWtleS1zZXF1ZW5jZScgZG9lcy4g ICovKQotICAoTGlzcF9PYmplY3Qga2V5bWFwLCBMaXNwX09iamVjdCBrZXksIExpc3BfT2JqZWN0 IGFjY2VwdF9kZWZhdWx0KQorc3RhdGljIExpc3BfT2JqZWN0Citsb29rdXBfa2V5XzEgKExpc3Bf T2JqZWN0IGtleW1hcCwgTGlzcF9PYmplY3Qga2V5LCBMaXNwX09iamVjdCBhY2NlcHRfZGVmYXVs dCkKIHsKICAgYm9vbCB0X29rID0gIU5JTFAgKGFjY2VwdF9kZWZhdWx0KTsKIApAQCAtMTI0MCw2 ICsxMjIxLDQ2IEBAIERFRlVOICgibG9va3VwLWtleSIsIEZsb29rdXBfa2V5LCBTbG9va3VwX2tl eSwgMiwgMywgMCwKICAgICB9CiB9CiAKKy8qIFZhbHVlIGlzIG51bWJlciBpZiBLRVkgaXMgdG9v IGxvbmc7IG5pbCBpZiB2YWxpZCBidXQgaGFzIG5vIGRlZmluaXRpb24uICAqLworLyogR0MgaXMg cG9zc2libGUgaW4gdGhpcyBmdW5jdGlvbi4gICovCisKK0RFRlVOICgibG9va3VwLWtleSIsIEZs b29rdXBfa2V5LCBTbG9va3VwX2tleSwgMiwgMywgMCwKKyAgICAgICBkb2M6IC8qIExvb2sgdXAg a2V5IHNlcXVlbmNlIEtFWSBpbiBLRVlNQVAuICBSZXR1cm4gdGhlIGRlZmluaXRpb24uCitBIHZh bHVlIG9mIG5pbCBtZWFucyB1bmRlZmluZWQuICBTZWUgZG9jIG9mIGBkZWZpbmUta2V5JworZm9y IGtpbmRzIG9mIGRlZmluaXRpb25zLgorCitBIG51bWJlciBhcyB2YWx1ZSBtZWFucyBLRVkgaXMg InRvbyBsb25nIjsKK3RoYXQgaXMsIGNoYXJhY3RlcnMgb3Igc3ltYm9scyBpbiBpdCBleGNlcHQg Zm9yIHRoZSBsYXN0IG9uZQorZmFpbCB0byBiZSBhIHZhbGlkIHNlcXVlbmNlIG9mIHByZWZpeCBj aGFyYWN0ZXJzIGluIEtFWU1BUC4KK1RoZSBudW1iZXIgaXMgaG93IG1hbnkgY2hhcmFjdGVycyBh dCB0aGUgZnJvbnQgb2YgS0VZCitpdCB0YWtlcyB0byByZWFjaCBhIG5vbi1wcmVmaXgga2V5Lgor S0VZTUFQIGNhbiBhbHNvIGJlIGEgbGlzdCBvZiBrZXltYXBzLgorCitOb3JtYWxseSwgYGxvb2t1 cC1rZXknIGlnbm9yZXMgYmluZGluZ3MgZm9yIHQsIHdoaWNoIGFjdCBhcyBkZWZhdWx0CitiaW5k aW5ncywgdXNlZCB3aGVuIG5vdGhpbmcgZWxzZSBpbiB0aGUga2V5bWFwIGFwcGxpZXM7IHRoaXMg bWFrZXMgaXQKK3VzYWJsZSBhcyBhIGdlbmVyYWwgZnVuY3Rpb24gZm9yIHByb2Jpbmcga2V5bWFw cy4gIEhvd2V2ZXIsIGlmIHRoZQordGhpcmQgb3B0aW9uYWwgYXJndW1lbnQgQUNDRVBULURFRkFV TFQgaXMgbm9uLW5pbCwgYGxvb2t1cC1rZXknIHdpbGwKK3JlY29nbml6ZSB0aGUgZGVmYXVsdCBi aW5kaW5ncywganVzdCBhcyBgcmVhZC1rZXktc2VxdWVuY2UnIGRvZXMuICAqLykKKyAgKExpc3Bf T2JqZWN0IGtleW1hcCwgTGlzcF9PYmplY3Qga2V5LCBMaXNwX09iamVjdCBhY2NlcHRfZGVmYXVs dCkKK3sKKyAgTGlzcF9PYmplY3QgZm91bmQgPSBsb29rdXBfa2V5XzEgKGtleW1hcCwga2V5LCBh Y2NlcHRfZGVmYXVsdCk7CisKKyAgLyogU2luY2UgbWVudSBkZWZpbml0aW9ucyBzb21ldGltZXMg dXNlIG1peGVkIGNhc2UgaWRlbnRpZmllcnMKKyAgICAgKG5vdGFibHkgaW4gb2xkIHZlcnNpb25z IG9mIGBlYXN5LW1lbnUtZGVmaW5lJyksIGFsc28gbG9vayBmb3IKKyAgICAgdGhlIGxvd2VyY2Fz ZSB2ZXJzaW9uLiAgKi8KKyAgaWYgKChOSUxQIChmb3VuZCkgfHwgTlVNQkVSUCAoZm91bmQpKQor ICAgICAgJiYgVkVDVE9SUCAoa2V5KSAmJiBFUSAoQVJFRiAoa2V5LCAwKSwgUW1lbnVfYmFyKSkK KyAgICB7CisgICAgICBMaXNwX09iamVjdCBuZXdfa2V5ID0gRm1ha2VfdmVjdG9yIChtYWtlX2Zp eG51bSAoQVNJWkUgKGtleSkpLCBRbmlsKTsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQVNJ WkUgKGtleSk7IGkrKykKKwkgIEFTRVQgKG5ld19rZXksIGksIEZpbnRlcm4gKEZkb3duY2FzZSAo RnN5bWJvbF9uYW1lIChBUkVGIChrZXksIGkpKSksCisJCQkJICAgICBRbmlsKSk7CisgICAgICBm b3VuZCA9IGxvb2t1cF9rZXlfMSAoa2V5bWFwLCBuZXdfa2V5LCBhY2NlcHRfZGVmYXVsdCk7Cisg ICAgfQorCisgIHJldHVybiBmb3VuZDsKK30KKwogLyogTWFrZSBLRVlNQVAgZGVmaW5lIGV2ZW50 IEMgYXMgYSBrZXltYXAgKGkuZS4sIGFzIGEgcHJlZml4KS4KICAgIEFzc3VtZSB0aGF0IGN1cnJl bnRseSBpdCBkb2VzIG5vdCBkZWZpbmUgQyBhdCBhbGwuCiAgICBSZXR1cm4gdGhlIGtleW1hcC4g ICovCmRpZmYgLS1naXQgYS90ZXN0L3NyYy9rZXltYXAtdGVzdHMuZWwgYi90ZXN0L3NyYy9rZXlt YXAtdGVzdHMuZWwKaW5kZXggYTliMGNiNTAyZC4uMTliNDAxM2IyMSAxMDA2NDQKLS0tIGEvdGVz dC9zcmMva2V5bWFwLXRlc3RzLmVsCisrKyBiL3Rlc3Qvc3JjL2tleW1hcC10ZXN0cy5lbApAQCAt MTI0LDYgKzEyNCwxNyBAQCBrZXltYXAtbG9va3VwLWtleS90b28tbG9uZwogOzsgKGVydC1kZWZ0 ZXN0IGtleW1hcC1sb29rdXAta2V5L2FjY2VwdC1kZWZhdWx0ICgpCiA7OyAgIC4uLikKIAorKGVy dC1kZWZ0ZXN0IGtleW1hcC1sb29rdXAta2V5L21peGVkLWNhc2UgKCkKKyAgKGxldCAoKG1hcCAo bWFrZS1rZXltYXApKSkKKyAgICAoZGVmaW5lLWtleSBtYXAgW21lbnUtYmFyIGZvbyBiYXJdICdm b28pCisgICAgKHNob3VsZCAoZXEgKGxvb2t1cC1rZXkgbWFwIFttZW51LWJhciBmb28gYmFyXSkg J2ZvbykpCisgICAgKHNob3VsZCAoZXEgKGxvb2t1cC1rZXkgbWFwIFttZW51LWJhciBGb28gQmFy XSkgJ2ZvbykpKSkKKworKGVydC1kZWZ0ZXN0IHN1YnItdGVzdC1sb29rdXAta2V5bWFwL3dpdGgt c3BhY2VzICgpCisgIChsZXQgKChtYXAgKG1ha2Uta2V5bWFwKSkpCisgICAgKGRlZmluZS1rZXkg bWFwIFttZW51LWJhciBmb28tYmFyXSAnZm9vKQorICAgIChzaG91bGQgKGVxIChsb29rdXAta2V5 IG1hcCBbbWVudS1iYXIgRm9vXCBCYXJdKSAnZm9vKSkpKQorCiAoZXJ0LWRlZnRlc3QgZGVzY3Jp YmUtYnVmZmVyLWJpbmRpbmdzL2hlYWRlci1pbi1jdXJyZW50LWJ1ZmZlciAoKQogICAiSGVhZGVy IHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIHRoZSBjdXJyZW50IGJ1ZmZlci4KIGh0dHBzOi8vZGVi YnVncy5nbnUub3JnLzM5MTQ5IzMxIgo= --000000000000c74eab05bcd600b1--