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.bugs Subject: bug#50599: [PATCH] Don't recommend against "\[...]" substitutions for performance Date: Wed, 15 Sep 2021 08:27:55 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000002308b305cc02cd9e" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12555"; mail-complaints-to="usenet@ciao.gmane.io" To: 50599@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Sep 15 08:29:12 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1mQOPv-000316-NS for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 15 Sep 2021 08:29:11 +0200 Original-Received: from localhost ([::1]:57794 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mQOPt-0003Nm-In for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 15 Sep 2021 02:29:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44790) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mQOPn-0003NV-1p for bug-gnu-emacs@gnu.org; Wed, 15 Sep 2021 02:29:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:39057) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mQOPm-0007Nq-PF for bug-gnu-emacs@gnu.org; Wed, 15 Sep 2021 02:29:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mQOPm-0001fY-MC for bug-gnu-emacs@gnu.org; Wed, 15 Sep 2021 02:29:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 15 Sep 2021 06:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 50599 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.16316872936347 (code B ref -1); Wed, 15 Sep 2021 06:29:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 15 Sep 2021 06:28:13 +0000 Original-Received: from localhost ([127.0.0.1]:50600 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQOOy-0001eI-Kd for submit@debbugs.gnu.org; Wed, 15 Sep 2021 02:28:13 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:32936) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQOOw-0001eA-Ua for submit@debbugs.gnu.org; Wed, 15 Sep 2021 02:28:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44710) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mQOOw-0003Ka-IE for bug-gnu-emacs@gnu.org; Wed, 15 Sep 2021 02:28:10 -0400 Original-Received: from mail-pl1-f181.google.com ([209.85.214.181]:43855) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mQOOu-0006dk-M7 for bug-gnu-emacs@gnu.org; Wed, 15 Sep 2021 02:28:10 -0400 Original-Received: by mail-pl1-f181.google.com with SMTP id v1so970708plo.10 for ; Tue, 14 Sep 2021 23:28:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=uPAZ/QVPnG8c9kl9Wl3b7pL+uRQbxBT2q4xYtXlOkBY=; b=JOnFdkluJypVkXUTYEMhVRdJ0FAJIkBTZyCgmy3RBBzWcxEQCMPrQLE89MDDn8Lmb5 YO4c86Ok/ukqKUvLaHZWSO9igPjqeIFlyBGvU8CeGwy3aTSwq6vVlHMc6ALcc6x38Uq9 9Ue0DDZp1IgfY7gcjDXcq9BpynD7HPwqshn7a2CkMlkK9tsEbu2VLS7/V9juYbZX6ZZe fWI5hs0jCDGjaHk4LGzQ+x1Z1GlGLx1JWzzN8bTinA9Tn13odccIT+Qt6zZOeb4HmWD6 PjCK6U8AaTrmQaz2jS4AhsBxHKu+CXi4NU1UQrghqcgkoBs+uX5SDXZdPbEnFkFJZ4mY YzvA== X-Gm-Message-State: AOAM530XuPys8x98TYMMXGlPbFNQN+gi23+NoznDb+zdMMkXcBfAv/1q CXUVi66u+yAR2/H5Wt9j3q3wLcVrgWyEVWl6woYiqpEatmc= X-Google-Smtp-Source: ABdhPJzTDtM4ziVbUgmSH+YIc6beHrHgybD6PlU3hbGvqyiLb1d4KOwE+4gAw3Ip86HSKra0ICbJPnjGk87GtFJm4a0= X-Received: by 2002:a17:903:185:b0:13a:7ef0:8f43 with SMTP id z5-20020a170903018500b0013a7ef08f43mr18423290plg.32.1631687287171; Tue, 14 Sep 2021 23:28:07 -0700 (PDT) Received-SPF: pass client-ip=209.85.214.181; envelope-from=stefankangas@gmail.com; helo=mail-pl1-f181.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.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, 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: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:214356 Archived-At: --0000000000002308b305cc02cd9e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Severity: minor In `(elisp) Documentation Tips', we read: It is not practical to use =E2=80=98\\[...]=E2=80=99 very many times, = because display of the documentation string will become slow. So use this to describe the most important commands in your major mode, and then use =E2=80=98\\{...}=E2=80=99 to display the rest of the mode=E2= =80=99s keymap. When testing this on my machine on a docstring with a large number of substitutions (107), I get the following (in "emacs -Q"): (progn (require 'ibuffer) (let ((times 100)) (/ (car (benchmark-run times (documentation 'ibuffer-mode))) times))) =3D> 0.00499586008 When I increase the number of substitutions in that docstring to around 100= 0 (by duplicating the docstring 10 times), I get: =3D> 0.05029239337 This is 10 times slower, but still fast enough that it does not matter much= . It also suggests that this is O(N) in time. My conclusion is that the above recommendation in `(elisp) Documentation Ti= ps' is irrelevant these days, and I suggest to remove it. Please see the attached patch. --0000000000002308b305cc02cd9e Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Don-t-recommend-against-using-.-substitutions-many-t.patch" Content-Disposition: attachment; filename="0001-Don-t-recommend-against-using-.-substitutions-many-t.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ktl4gm180 RnJvbSBkM2JjYTJkNjBmMDc4NzZhNTYyMzc4ZjFiNTY4NDQ3NzBhYjg3NDA0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5AbWFyeGlzdC5zZT4KRGF0 ZTogV2VkLCAxNSBTZXAgMjAyMSAwODoxODoyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIERvbid0 IHJlY29tbWVuZCBhZ2FpbnN0IHVzaW5nICJcWy4uLl0iIHN1YnN0aXR1dGlvbnMgbWFueQogdGlt ZXMKCiogZG9jL2xpc3ByZWYvdGlwcy50ZXhpIChEb2N1bWVudGF0aW9uIFRpcHMpOiBEb24ndCBy ZWNvbW1lbmQgYWdhaW5zdAp1c2luZyBtYW55ICJcWy4uLl0iIHN1YnN0aXR1dGlvbnMgZm9yIHJl YXNvbnMgb2YgcGVyZm9ybWFuY2UuICBUaGlzCnJlY29tbWVuZGF0aW9uIGlzIG5vIGxvbmdlciBy ZWxldmFudCwgYXMgdGhpcyBpcyBtb3JlIHRoYW4gZmFzdCBlbm91Z2gKb24gbW9kZXJuIG1hY2hp bmVzLgoKKiBsaXNwL2VtYWNzLWxpc3AvY2hlY2tkb2MuZWwgKGNoZWNrZG9jLW1heC1rZXlyZWYt YmVmb3JlLXdhcm4pOgpBZGQgbmV3IHZhbGlkIHZhbHVlIG5pbCBtZWFuaW5nIHRvIG5ldmVyIHdh cm4gYWJvdXQgdG9vIG1hbnkgY29tbWFuZApzdWJzdGl0dXRpb25zLiAgTWFrZSBuaWwgdGhlIG5l dyBkZWZhdWx0LgooY2hlY2tkb2MtdGhpcy1zdHJpbmctdmFsaWQtZW5naW5lKTogUmVzcGVjdCBh Ym92ZSBuZXcgdmFsdWUuCi0tLQogZG9jL2xpc3ByZWYvdGlwcy50ZXhpICAgICAgIHwgIDUgLS0t LS0KIGxpc3AvZW1hY3MtbGlzcC9jaGVja2RvYy5lbCB8IDM2ICsrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAyMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcHJlZi90aXBzLnRleGkgYi9kb2MvbGlz cHJlZi90aXBzLnRleGkKaW5kZXggZjBlYjEwNzljYS4uN2MzYzliMWMyYSAxMDA2NDQKLS0tIGEv ZG9jL2xpc3ByZWYvdGlwcy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL3RpcHMudGV4aQpAQCAtNzg5 LDExICs3ODksNiBAQCBEb2N1bWVudGF0aW9uIFRpcHMKIEBzYW1we1xcPEBkb3Rze30+fSBzaG91 bGQgYmUgdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlIGNvbnRhaW5pbmcgdGhlCiBsb2NhbCBrZXlt YXAgZm9yIHRoZSBtYWpvciBtb2RlLgogCi1JdCBpcyBub3QgcHJhY3RpY2FsIHRvIHVzZSBAc2Ft cHtcXFtAZG90c3t9XX0gdmVyeSBtYW55IHRpbWVzLCBiZWNhdXNlCi1kaXNwbGF5IG9mIHRoZSBk b2N1bWVudGF0aW9uIHN0cmluZyB3aWxsIGJlY29tZSBzbG93LiAgU28gdXNlIHRoaXMgdG8KLWRl c2NyaWJlIHRoZSBtb3N0IGltcG9ydGFudCBjb21tYW5kcyBpbiB5b3VyIG1ham9yIG1vZGUsIGFu ZCB0aGVuIHVzZQotQHNhbXB7XFxAe0Bkb3Rze31AfX0gdG8gZGlzcGxheSB0aGUgcmVzdCBvZiB0 aGUgbW9kZSdzIGtleW1hcC4KLQogQGl0ZW0KIEZvciBjb25zaXN0ZW5jeSwgcGhyYXNlIHRoZSB2 ZXJiIGluIHRoZSBmaXJzdCBzZW50ZW5jZSBvZiBhIGZ1bmN0aW9uJ3MKIGRvY3VtZW50YXRpb24g c3RyaW5nIGFzIGFuIGltcGVyYXRpdmUtLS1mb3IgaW5zdGFuY2UsIHVzZSBgYFJldHVybiB0aGUK ZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC9jaGVja2RvYy5lbCBiL2xpc3AvZW1hY3MtbGlz cC9jaGVja2RvYy5lbAppbmRleCBlMTBlYTczNmNkLi5lMDc5N2YyYjkyIDEwMDY0NAotLS0gYS9s aXNwL2VtYWNzLWxpc3AvY2hlY2tkb2MuZWwKKysrIGIvbGlzcC9lbWFjcy1saXNwL2NoZWNrZG9j LmVsCkBAIC0yNDksMTEgKzI0OSwxNyBAQCBjaGVja2RvYy1pc3BlbGwtbGlzcC13b3JkcwogICAi TGlzdCBvZiB3b3JkcyB0aGF0IGFyZSBjb3JyZWN0IHdoZW4gc3BlbGwtY2hlY2tpbmcgTGlzcCBk b2N1bWVudGF0aW9uLiIpCiA7OzsjIyNhdXRvbG9hZChwdXQgJ2NoZWNrZG9jLWlzcGVsbC1saXN0 LXdvcmRzICdzYWZlLWxvY2FsLXZhcmlhYmxlICMnY2hlY2tkb2MtbGlzdC1vZi1zdHJpbmdzLXAp CiAKLShkZWZjdXN0b20gY2hlY2tkb2MtbWF4LWtleXJlZi1iZWZvcmUtd2FybiAxMAotICAiVGhl IG51bWJlciBvZiBcXCBbY29tbWFuZC10by1rZXlzdHJva2VdIHRva2VucyBhbGxvd2VkIGluIGEg ZG9jIHN0cmluZy4KKyhkZWZjdXN0b20gY2hlY2tkb2MtbWF4LWtleXJlZi1iZWZvcmUtd2FybiBu aWwKKyAgIklmIG5vbi1uaWwsIG51bWJlciBvZiBcXFxcPVtjb21tYW5kLXRvLWtleXN0cm9rZV0g dG9rZW5zIGFsbG93ZWQgaW4gYSBkb2Mgc3RyaW5nLgogQW55IG1vcmUgdGhhbiB0aGlzIGFuZCBh IHdhcm5pbmcgaXMgZ2VuZXJhdGVkIHN1Z2dlc3RpbmcgdGhhdCB0aGUgY29uc3RydWN0Ci1cXCB7 a2V5bWFwfSBiZSB1c2VkIGluc3RlYWQuIgotICA6dHlwZSAnaW50ZWdlcikKK1xcXFw9e2tleW1h cH0gYmUgdXNlZCBpbnN0ZWFkLiAgSWYgdGhlIHZhbHVlIGlzIG5pbCwgbmV2ZXIgd2Fybi4KKwor SXQgdXNlZCB0byBub3QgYmUgcHJhY3RpY2FsIHRvIHVzZSBgXFxcXD1bLi4uXScgdmVyeSBtYW55 IHRpbWVzLAorYmVjYXVzZSBkaXNwbGF5IG9mIHRoZSBkb2N1bWVudGF0aW9uIHN0cmluZyB3b3Vs ZCBiZWNvbWUgc2xvdy4KK1RoaXMgaXMgdHlwaWNhbGx5IG5vdCBhbiBpc3N1ZSBvbiBtb2Rlcm4g bWFjaGluZXMuIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3QgbmlsKQorICAgICAgICAgICAgICAg ICBpbnRlZ2VyKQorICA6dmVyc2lvbiAiMjguMSIpCiAKIChkZWZjdXN0b20gY2hlY2tkb2MtYXJn dW1lbnRzLWluLW9yZGVyLWZsYWcgbmlsCiAgICJOb24tbmlsIG1lYW5zIHdhcm4gaWYgYXJndW1l bnRzIGFwcGVhciBvdXQgb2Ygb3JkZXIuCkBAIC0xNTQzLDE3ICsxNTQ5LDE3IEBAIGNoZWNrZG9j LXRoaXMtc3RyaW5nLXZhbGlkLWVuZ2luZQogCSAgICAgICAiIGVtYmVkZGVkIGluIGRvYyBzdHJp bmcuICBVc2UgXFxcXDxrZXltYXA+ICYgXFxcXFtmdW5jdGlvbl0gIgogCSAgICAgICAiaW5zdGVh ZCIpCiAJICAgICAgKG1hdGNoLWJlZ2lubmluZyAxKSAobWF0Y2gtZW5kIDEpIHQpKSkpCi0gICAg IDs7IEl0IGlzIG5vdCBwcmFjdGljYWwgdG8gdXNlIGBcXFsuLi5dJyB2ZXJ5IG1hbnkgdGltZXMs IGJlY2F1c2UKLSAgICAgOzsgZGlzcGxheSBvZiB0aGUgZG9jdW1lbnRhdGlvbiBzdHJpbmcgd2ls bCBiZWNvbWUgc2xvdy4gIFNvIHVzZSB0aGlzCi0gICAgIDs7IHRvIGRlc2NyaWJlIHRoZSBtb3N0 IGltcG9ydGFudCBjb21tYW5kcyBpbiB5b3VyIG1ham9yIG1vZGUsIGFuZAotICAgICA7OyB0aGVu IHVzZSBgXFx7Li4ufScgdG8gZGlzcGxheSB0aGUgcmVzdCBvZiB0aGUgbW9kZSdzIGtleW1hcC4K LSAgICAgKHNhdmUtZXhjdXJzaW9uCi0gICAgICAgKGlmIChhbmQgKHJlLXNlYXJjaC1mb3J3YXJk ICJcXFxcXFxcXFxcW1xcdysiIGUgdAotCQkJCSAgICgxKyBjaGVja2RvYy1tYXgta2V5cmVmLWJl Zm9yZS13YXJuKSkKLQkJKG5vdCAocmUtc2VhcmNoLWZvcndhcmQgIlxcXFxcXFxce1xcdyt9IiBl IHQpKSkKLQkgICAoY2hlY2tkb2MtY3JlYXRlLWVycm9yCi0JICAgICJUb28gbWFueSBvY2N1cnJl bmNlcyBvZiBcXFtmdW5jdGlvbl0uICBVc2UgXFx7a2V5bWFwfSBpbnN0ZWFkIgotCSAgICBzICht YXJrZXItcG9zaXRpb24gZSkpKSkKKyAgICAgOzsgSXQgdXNlZCB0byBub3QgYmUgcHJhY3RpY2Fs IHRvIHVzZSBgXFxbLi4uXScgdmVyeSBtYW55IHRpbWVzLAorICAgICA7OyBiZWNhdXNlIGRpc3Bs YXkgb2YgdGhlIGRvY3VtZW50YXRpb24gc3RyaW5nIHdvdWxkIGJlY29tZSBzbG93LgorICAgICA7 OyBUaGlzIGlzIHR5cGljYWxseSBub3QgYW4gaXNzdWUgb24gbW9kZXJuIG1hY2hpbmVzLgorICAg ICAod2hlbiBjaGVja2RvYy1tYXgta2V5cmVmLWJlZm9yZS13YXJuCisgICAgICAgKHNhdmUtZXhj dXJzaW9uCisgICAgICAgICAoaWYgKGFuZCAocmUtc2VhcmNoLWZvcndhcmQgIlxcXFxcXFxcXFxb XFx3KyIgZSB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDErIGNoZWNr ZG9jLW1heC1rZXlyZWYtYmVmb3JlLXdhcm4pKQorICAgICAgICAgICAgICAgICAgKG5vdCAocmUt c2VhcmNoLWZvcndhcmQgIlxcXFxcXFxce1xcdyt9IiBlIHQpKSkKKyAgICAgICAgICAgICAoY2hl Y2tkb2MtY3JlYXRlLWVycm9yCisgICAgICAgICAgICAgICJUb28gbWFueSBvY2N1cnJlbmNlcyBv ZiBcXFtmdW5jdGlvbl0uICBVc2UgXFx7a2V5bWFwfSBpbnN0ZWFkIgorICAgICAgICAgICAgICBz IChtYXJrZXItcG9zaXRpb24gZSkpKSkpCiAgICAgIDs7IEFtYmlndW91cyBxdW90ZWQgc3ltYm9s LiAgV2hlbiBhIHN5bWJvbCBpcyBib3RoIGJvdW5kIGFuZCBmYm91bmQsCiAgICAgIDs7IGFuZCBp cyByZWZlcnJlZCB0byBpbiBkb2N1bWVudGF0aW9uLCBpdCBzaG91bGQgYmUgcHJlZml4ZWQgd2l0 aAogICAgICA7OyBzb21ldGhpbmcgdG8gZGlzYW1iaWd1YXRlIGl0LiAgVGhpcyBjaGVjayBtdXN0 IGJlIGJlZm9yZSB0aGUKLS0gCjIuMzAuMgoK --0000000000002308b305cc02cd9e--