From unknown Sun Jun 22 11:35:49 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#14769 <14769@debbugs.gnu.org> To: bug#14769 <14769@debbugs.gnu.org> Subject: Status: 24.3.50; [PATCH] optimize `concat's literals Reply-To: bug#14769 <14769@debbugs.gnu.org> Date: Sun, 22 Jun 2025 18:35:49 +0000 retitle 14769 24.3.50; [PATCH] optimize `concat's literals reassign 14769 emacs submitter 14769 Shigeru Fukaya severity 14769 wishlist tag 14769 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 02 13:04:51 2013 Received: (at submit) by debbugs.gnu.org; 2 Jul 2013 17:04:52 +0000 Received: from localhost ([127.0.0.1]:52724 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Uu40Z-0007sl-GB for submit@debbugs.gnu.org; Tue, 02 Jul 2013 13:04:51 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56510) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Uu40W-0007sW-Dm for submit@debbugs.gnu.org; Tue, 02 Jul 2013 13:04:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uu40N-00025q-QQ for submit@debbugs.gnu.org; Tue, 02 Jul 2013 13:04:42 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:56788) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uu40N-00025m-Mc for submit@debbugs.gnu.org; Tue, 02 Jul 2013 13:04:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58214) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uu40K-0001r0-O5 for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2013 13:04:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uu40H-000240-44 for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2013 13:04:36 -0400 Received: from mail-pd0-x22e.google.com ([2607:f8b0:400e:c02::22e]:50791) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uu40G-00023j-U9 for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2013 13:04:33 -0400 Received: by mail-pd0-f174.google.com with SMTP id 10so3760551pdc.5 for ; Tue, 02 Jul 2013 10:04:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:mime-version:content-type:x-mailer:message-id; bh=QNM1uZXkV7tdt02AfF7UV5x1eZSaGyWXQhRKXVlBO9U=; b=c76MLPQw9t0hTlTSpMg4etpLohySCV3eBYagccOOlDYVUDHfx7HTVhDC42humW+FuX ZVuS1c/3NgjUPCfy6I4PqzWV9ry9taIu9AQamYJ9H/ZZOqygz9HpQ6WR3kdawMsfDsel fSUTufNNlzdVUTTnmwlOHRzC+1+qjgvaelcHX8c+FyTYk+UUdAKqfAFwRlT/rrTATdTu 9pqXuldwdmNfPvtmIpJsOYowtu74YoOMhYEu5NJ+Gy25ly1Q+051vE1ngOtlpHs7qbbV iFQhWoXYIN5mlhYJS9xOSdcZ9K8cG1igsMGYuAZKb6Wh5RZfRMvhzT23tU9SjENVAub4 lFOw== X-Received: by 10.66.254.167 with SMTP id aj7mr30396536pad.100.1372784671893; Tue, 02 Jul 2013 10:04:31 -0700 (PDT) Received: from gmail.com (115x125x38x6.ap115.ftth.ucom.ne.jp. [115.125.38.6]) by mx.google.com with ESMTPSA id dj5sm28164223pbc.25.2013.07.02.10.04.30 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Tue, 02 Jul 2013 10:04:30 -0700 (PDT) From: Shigeru Fukaya To: bug-gnu-emacs@gnu.org Subject: 24.3.50; [PATCH] optimize `concat's literals Date: Wed, 03 Jul 2013 02:04:28 +0900 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary-6ApNIFWZ48eVAn4LQhWy9" X-Mailer: HidemaruMail 6.00 (WinNT,601) Message-Id: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). 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.3 (----) 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.3 (----) --Boundary-6ApNIFWZ48eVAn4LQhWy9 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Current bytecode optimizer works only when all arguments are constants. With the attached small patch, adjacent successive literal arguments of `concat' will become optimized to a string respectively. Make successive literals of `concat' optimized to a string. * byte-opt.el (byte-optimize-form-code-walker): call byte-optimize-concat-args for `concat'. (byte-optimize-concat-args): New function. Regards, Shigeru --Boundary-6ApNIFWZ48eVAn4LQhWy9 Content-Type: application/octet-stream; name="byte-opt.patch" Content-Disposition: attachment; filename="byte-opt.patch" Content-Transfer-Encoding: base64 KioqIGJ5dGUtb3B0LmVsCUZyaSBKdW4gMTQgMTk6MzI6MzkgMjAxMwotLS0gYnl0ZS1vcHQu bmV3LmVsCVdlZCBKdWwgIDMgMDE6NDg6MjkgMjAxMwoqKioqKioqKioqKioqKioKKioqIDU2 Miw1NjggKioqKgogIAkgICAgIChpZiAoYW5kIChnZXQgZm4gJ3B1cmUpCiAgCQkgICAgICAo Ynl0ZS1vcHRpbWl6ZS1hbGwtY29uc3RwIGFyZ3MpKQogIAkJICAgKGxpc3QgJ3F1b3RlIChh cHBseSBmbiAobWFwY2FyICMnZXZhbCBhcmdzKSkpCiEgCSAgICAgICAoY29ucyBmbiBhcmdz KSkpKSkpKQogIAogIChkZWZ1biBieXRlLW9wdGltaXplLWFsbC1jb25zdHAgKGxpc3QpCiAg ICAiTm9uLW5pbCBpZiBhbGwgZWxlbWVudHMgb2YgTElTVCBzYXRpc2Z5IGBtYWNyb2V4cC1j b25zdC1wIgotLS0gNTYyLDU3MiAtLS0tCiAgCSAgICAgKGlmIChhbmQgKGdldCBmbiAncHVy ZSkKICAJCSAgICAgIChieXRlLW9wdGltaXplLWFsbC1jb25zdHAgYXJncykpCiAgCQkgICAo bGlzdCAncXVvdGUgKGFwcGx5IGZuIChtYXBjYXIgIydldmFsIGFyZ3MpKSkKISAJICAgICAg IChpZiAoZXEgZm4gJ2NvbmNhdCkKISAJCSAgIDs7IE5vdCBhbGwgYXJndW1lbnRzIGFyZSBs aXRlcmFscy4KISAJCSAgIChjb25zIGZuIChieXRlLW9wdGltaXplLWNvbmNhdC1hcmdzIGFy Z3MpKQohIAkJIDs7IE90aGVyIHRoYW4gYGNvbmNhdCcuCiEgCQkgKGNvbnMgZm4gYXJncykp KSkpKSkpCiAgCiAgKGRlZnVuIGJ5dGUtb3B0aW1pemUtYWxsLWNvbnN0cCAobGlzdCkKICAg ICJOb24tbmlsIGlmIGFsbCBlbGVtZW50cyBvZiBMSVNUIHNhdGlzZnkgYG1hY3JvZXhwLWNv bnN0LXAiCioqKioqKioqKioqKioqKgoqKiogNTczLDU3OCAqKioqCi0tLSA1NzcsNjA1IC0t LS0KICAgICAgICAoc2V0cSBsaXN0IChjZHIgbGlzdCkpKQogICAgICBjb25zdGFudCkpCiAg CisgKGRlZnVuIGJ5dGUtb3B0aW1pemUtY29uY2F0LWFyZ3MgKGFyZ3MpCisgICA7OworICAg OzsgQ29udmVydCBhcmd1bWVudHMgb2YgYGNvbmNhdCcgc3VjaCB0aGF0IGFkamFjZW50IHN1 Y2Nlc3NpdmUKKyAgIDs7IGxpdGVyYWwgYXJndW1lbnRzIHRvIG9uZSBzdHJpbmcsIGFuZCBy ZW1vdmUgbnVsbCBzdHJpbmdzLgorICAgOzsKKyAgIChsZXQgKG5ld2FyZ3MpCisgICAgICh3 aGlsZSBhcmdzCisgICAgICAgOzsgbG9vcCBmb3IgbGl0ZXJhbHMKKyAgICAgICAobGV0IChs KQorIAkod2hpbGUgKGFuZCBhcmdzIChtYWNyb2V4cC1jb25zdC1wIChjYXIgYXJncykpKQor IAkgIChwdXNoIChjYXIgYXJncykgbCkKKyAJICAoc2V0cSBhcmdzIChjZHIgYXJncykpKQor IAkod2hlbiBsCisgCSAgKGxldCAoKHMgKGFwcGx5ICMnY29uY2F0IChtYXBjYXIgIydldmFs IChucmV2ZXJzZSBsKSkpKSkKKyAJICAgIDs7IGtlZXAgbm9uLW51bGwgc3RyaW5nCisgCSAg ICAodW5sZXNzIChlcXVhbCBzICIiKQorIAkgICAgICAocHVzaCBzIG5ld2FyZ3MpKSkpKQor ICAgICAgIDs7IG5vbi1saXRlcmFsIGFyZ3VtZW50CisgICAgICAgKHdoZW4gYXJncworIAko cHVzaCAoY2FyIGFyZ3MpIG5ld2FyZ3MpCisgCShzZXRxIGFyZ3MgKGNkciBhcmdzKSkpKQor ICAgICAobnJldmVyc2UgbmV3YXJncykpKQorIAogIChkZWZ1biBieXRlLW9wdGltaXplLWZv cm0gKGZvcm0gJm9wdGlvbmFsIGZvci1lZmZlY3QpCiAgICAiVGhlIHNvdXJjZS1sZXZlbCBw YXNzIG9mIHRoZSBvcHRpbWl6ZXIuIgogICAgOzsK --Boundary-6ApNIFWZ48eVAn4LQhWy9-- From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 23 23:51:29 2016 Received: (at 14769) by debbugs.gnu.org; 24 Feb 2016 04:51:29 +0000 Received: from localhost ([127.0.0.1]:42181 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYRQ9-00085R-D0 for submit@debbugs.gnu.org; Tue, 23 Feb 2016 23:51:29 -0500 Received: from hermes.netfonds.no ([80.91.224.195]:54082) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYRQ7-00085K-R7 for 14769@debbugs.gnu.org; Tue, 23 Feb 2016 23:51:28 -0500 Received: from cpe-60-225-211-161.nsw.bigpond.net.au ([60.225.211.161] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1aYRPk-0000oE-Tx; Wed, 24 Feb 2016 05:51:05 +0100 From: Lars Ingebrigtsen To: Shigeru Fukaya Subject: Re: bug#14769: 24.3.50; [PATCH] optimize `concat's literals References: Date: Wed, 24 Feb 2016 15:51:00 +1100 In-Reply-To: (Shigeru Fukaya's message of "Wed, 03 Jul 2013 02:04:28 +0900") Message-ID: <87h9gyhft7.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-MailScanner-ID: 1aYRPk-0000oE-Tx X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1456894265.73591@qmkgj2WM4QpvPWFxVOKCDQ X-Spam-Status: No X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 14769 Cc: 14769@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) Shigeru Fukaya writes: > Current bytecode optimizer works only when all arguments are > constants. > > With the attached small patch, adjacent successive literal arguments > of `concat' will become optimized to a string respectively. > > Make successive literals of `concat' optimized to a string. > * byte-opt.el (byte-optimize-form-code-walker): call > byte-optimize-concat-args for `concat'. > (byte-optimize-concat-args): New function. I think the patch below looks sensible, but the bytecode optimiser is not something I'm familiar with. Does this look OK to all y'all? > > Regards, > Shigeru > > *** byte-opt.el Fri Jun 14 19:32:39 2013 > --- byte-opt.new.el Wed Jul 3 01:48:29 2013 > *************** > *** 562,568 **** > (if (and (get fn 'pure) > (byte-optimize-all-constp args)) > (list 'quote (apply fn (mapcar #'eval args))) > ! (cons fn args))))))) > > (defun byte-optimize-all-constp (list) > "Non-nil if all elements of LIST satisfy `macroexp-const-p" > --- 562,572 ---- > (if (and (get fn 'pure) > (byte-optimize-all-constp args)) > (list 'quote (apply fn (mapcar #'eval args))) > ! (if (eq fn 'concat) > ! ;; Not all arguments are literals. > ! (cons fn (byte-optimize-concat-args args)) > ! ;; Other than `concat'. > ! (cons fn args)))))))) > > (defun byte-optimize-all-constp (list) > "Non-nil if all elements of LIST satisfy `macroexp-const-p" > *************** > *** 573,578 **** > --- 577,605 ---- > (setq list (cdr list))) > constant)) > > + (defun byte-optimize-concat-args (args) > + ;; > + ;; Convert arguments of `concat' such that adjacent successive > + ;; literal arguments to one string, and remove null strings. > + ;; > + (let (newargs) > + (while args > + ;; loop for literals > + (let (l) > + (while (and args (macroexp-const-p (car args))) > + (push (car args) l) > + (setq args (cdr args))) > + (when l > + (let ((s (apply #'concat (mapcar #'eval (nreverse l))))) > + ;; keep non-null string > + (unless (equal s "") > + (push s newargs))))) > + ;; non-literal argument > + (when args > + (push (car args) newargs) > + (setq args (cdr args)))) > + (nreverse newargs))) > + > (defun byte-optimize-form (form &optional for-effect) > "The source-level pass of the optimizer." > ;; > -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sun Jun 16 07:57:58 2019 Received: (at 14769) by debbugs.gnu.org; 16 Jun 2019 11:57:58 +0000 Received: from localhost ([127.0.0.1]:39913 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hcTnJ-0002gj-Tt for submit@debbugs.gnu.org; Sun, 16 Jun 2019 07:57:58 -0400 Received: from mail1430c50.megamailservers.eu ([91.136.14.30]:46732 helo=mail118c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hcTnG-0002gR-Rk for 14769@debbugs.gnu.org; Sun, 16 Jun 2019 07:57:55 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1560686267; bh=wgKdtlMQQ+68tPFkK+K7fqS5aiBP4n4+JSMhde8zKCA=; h=From:Subject:Date:To:From; b=Go/tcEETMqLsRhkgV7dFOeSpTgSKGeDJShYxu6aIftO1+vCN93sIUENobNNRXpR5D y9gYk+rTuLK/ziMfFe6tpX5XUYoNBIh+j48V0nDc+OwCozRMOP1A/lkDLjotIecDDZ 6AlRjWCN1NSf+cQBs7iLYP5At/t/27j+Fr3pQucA= Feedback-ID: mattiase@acm.or Received: from [192.168.1.65] (c-e636e253.032-75-73746f71.bbcust.telenor.se [83.226.54.230]) (authenticated bits=0) by mail118c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x5GBviZe013635; Sun, 16 Jun 2019 11:57:46 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: multipart/mixed; boundary="Apple-Mail=_E22EEE2B-EEE8-428E-8EAB-4DC90CDB0B3D" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: [PATCH] optimize `concat's literals Message-Id: <6BF130E1-F25B-4E1B-B55D-224F0CCEC133@acm.org> Date: Sun, 16 Jun 2019 13:57:44 +0200 To: 14769@debbugs.gnu.org, shigeru.fukaya@gmail.com, Lars Ingebrigtsen , Noam Postavsky , Stefan Monnier X-Mailer: Apple Mail (2.3445.104.11) X-CTCH-RefID: str=0001.0A0B0215.5D062EBB.0031, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=PfPReBpd c=1 sm=1 tr=0 a=M+GU/qJco4WXjv8D6jB2IA==:117 a=M+GU/qJco4WXjv8D6jB2IA==:17 a=mDV3o1hIAAAA:8 a=TL-WiwYCL751U9M1PZYA:9 a=CjuIK1q_8ugA:10 a=_1JRw0zngiAeD89rd6sA:9 a=B2y7HmGcmWMA:10 a=_FVE-zBwftR9WsbkzFJk:22 X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 14769 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --Apple-Mail=_E22EEE2B-EEE8-428E-8EAB-4DC90CDB0B3D Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Since this bug was mentioned in https://debbugs.gnu.org/36237, here is = a slightly reworked version that does not special-case `concat' in the = general code. --Apple-Mail=_E22EEE2B-EEE8-428E-8EAB-4DC90CDB0B3D Content-Disposition: attachment; filename=0001-Merge-consecutive-constant-concat-args-bug-14769.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Merge-consecutive-constant-concat-args-bug-14769.patch" Content-Transfer-Encoding: quoted-printable =46rom=204a65b351c5f72a7d53904c57137c69bd6dc4d568=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= =0ADate:=20Sun,=2016=20Jun=202019=2013:13:47=20+0200=0A= Subject:=20[PATCH]=20Merge=20consecutive=20constant=20`concat'=20args=20= (bug#14769)=0A=0ASuggested=20by=20Shigeru=20Fukaya=20= =0A=0A*=20lisp/emacs-lisp/byte-opt.el=20= (byte-optimize-concat):=20New.=0A(concat):=20Add=20byte-optimizer.=0A---=0A= =20lisp/emacs-lisp/byte-opt.el=20|=2025=20+++++++++++++++++++++++++=0A=20= 1=20file=20changed,=2025=20insertions(+)=0A=0Adiff=20--git=20= a/lisp/emacs-lisp/byte-opt.el=20b/lisp/emacs-lisp/byte-opt.el=0Aindex=20= 44cca6136c..1ebafec3f2=20100644=0A---=20a/lisp/emacs-lisp/byte-opt.el=0A= +++=20b/lisp/emacs-lisp/byte-opt.el=0A@@=20-850,6=20+850,29=20@@=20= byte-optimize-memq=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20',list)))))=0A=20=20=20=20=20= (byte-optimize-predicate=20form)))=0A=20=0A+(defun=20= byte-optimize-concat=20(form)=0A+=20=20"Merge=20adjacent=20constant=20= arguments=20to=20`concat'."=0A+=20=20(let=20((args=20nil)=0A+=20=20=20=20= =20=20=20=20(accum=20nil))=0A+=20=20=20=20(dolist=20(arg=20(cdr=20form))=0A= +=20=20=20=20=20=20(unless=20(and=20(macroexp-const-p=20arg)=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let=20((val=20(eval=20= arg)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (and=20(or=20(stringp=20val)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(and=20(or=20(listp=20= val)=20(vectorp=20val))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(not=20(memq=20= nil=20(mapcar=20#'characterp=20val)))))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20;;=20Constant=20arg:=20= concat=20with=20previous.=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(setq=20accum=20(concat=20accum=20= val)))))=0A+=20=20=20=20=20=20=20=20;;=20Non-constant=20arg.=0A+=20=20=20= =20=20=20=20=20(when=20(and=20accum=20(not=20(zerop=20(length=20= accum))))=0A+=20=20=20=20=20=20=20=20=20=20(push=20accum=20args))=0A+=20=20= =20=20=20=20=20=20(push=20arg=20args)=0A+=20=20=20=20=20=20=20=20(setq=20= accum=20nil)))=0A+=20=20=20=20(when=20(and=20accum=20(not=20(zerop=20= (length=20accum))))=0A+=20=20=20=20=20=20(push=20accum=20args))=0A+=20=20= =20=20(if=20(=3D=20(length=20args)=20(length=20(cdr=20form)))=0A+=20=20=20= =20=20=20=20=20form=20=20=20=20=20=20=20=20=20=20;=20No=20improvement.=0A= +=20=20=20=20=20=20(cons=20'concat=20(nreverse=20args)))))=0A+=0A=20(put=20= 'identity=20'byte-optimizer=20'byte-optimize-identity)=0A=20(put=20'memq=20= 'byte-optimizer=20'byte-optimize-memq)=0A=20=0A@@=20-892,6=20+915,8=20@@=20= byte-optimize-memq=0A=20(put=20'car-safe=20'byte-optimizer=20= 'byte-optimize-predicate)=0A=20(put=20'cdr-safe=20'byte-optimizer=20= 'byte-optimize-predicate)=0A=20=0A+(put=20'concat=20'byte-optimizer=20= 'byte-optimize-concat)=0A+=0A=20;;=20I'm=20not=20convinced=20that=20this=20= is=20necessary.=20=20Doesn't=20the=20optimizer=20loop=0A=20;;=20take=20= care=20of=20this?=20-=20Jamie=0A=20;;=20I=20think=20this=20may=20some=20= times=20be=20necessary=20to=20reduce=20ie=20(quote=205)=20to=205,=0A--=20= =0A2.20.1=20(Apple=20Git-117)=0A=0A= --Apple-Mail=_E22EEE2B-EEE8-428E-8EAB-4DC90CDB0B3D-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 18 21:43:41 2019 Received: (at 14769) by debbugs.gnu.org; 19 Jun 2019 01:43:41 +0000 Received: from localhost ([127.0.0.1]:45795 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hdPdV-0007nu-Gf for submit@debbugs.gnu.org; Tue, 18 Jun 2019 21:43:41 -0400 Received: from mail-io1-f42.google.com ([209.85.166.42]:34821) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hdPdT-0007nh-DM for 14769@debbugs.gnu.org; Tue, 18 Jun 2019 21:43:39 -0400 Received: by mail-io1-f42.google.com with SMTP id m24so34518209ioo.2 for <14769@debbugs.gnu.org>; Tue, 18 Jun 2019 18:43:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=j4gOImgXIdvi5XWcE1QNxrxYChLZwyYPpvfK+TKDxbg=; b=hM6akhI+QnqpAKGUnlRl+RmwceKRcJhjUjCxII85GOvF5601EcAVwgBhFVYwLObXrQ +bDDdK8TzJxlNOCKWMjw5S1GB68udaeOu7m1EbabRew6c78BYboZWnMqwDU8fTDZ+Jek co+zUYMhknN/pOxIvqxnJWTN17fNRpbiy3cPBm/tS0Os+dU/k04MtY/vqB0US/AI2im4 GgnqeiD5sDX/jXTcDh6DPVr7ROYqX376gE8STvWw/+fbtWU9WC2ga9aMsQ0lIFhSMRzx FqLAmZh9x6GncZm2/uyR0QGTUPvmyJ1H3f91iIyPTq2JpTQ9J1aAk8DZOAqOJVXR1iVr YAbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=j4gOImgXIdvi5XWcE1QNxrxYChLZwyYPpvfK+TKDxbg=; b=KUE/oJvrNXFEq1MbQ3pljz7Vz+gpJrJ/94Kbc6S8CqLBgoty0oZLnxhg3AauqslaUY bcZVwDZJwfCILCIx+P9bPdb8lI3+yoL28M3v1pVMbDMAw6tlS1qJUQdNjbNJkTi3W+V1 yXpvePA19X3XI2ENpB/aUbsspcyoen6hZbzTZ9D+hHHiQc0A4PqaZdoYKc2SMY+k98/8 8BbwStU1rx9UQKYIq6Wep4uSqUkhzMvV2npnBityJB7Cytrk3u95AvHHeTJBe5mU4eI4 HCO9hp0HMrnRg9V/Tufxnc3LBIdp8mEH1+08um0OIoTqv2W37Tv0i1npuX/Fns22W6Ef eGLA== X-Gm-Message-State: APjAAAXABymXppgGTfWtw3+rzNjiBtREuqzRc1Ol6UbAqr8SboyLqpAB 3m52pwbeTlYzY08eH9O5Gbg= X-Google-Smtp-Source: APXvYqx3H/bunXwZN7BKdLd5PRUuVxXtQahsDkwrPfYf0oxGP5qTc/RLzG7WKLyXTFE5/D+lIlXhKA== X-Received: by 2002:a5e:9241:: with SMTP id z1mr22659874iop.39.1560908613938; Tue, 18 Jun 2019 18:43:33 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.gmail.com with ESMTPSA id y18sm20167788iob.64.2019.06.18.18.43.33 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 18 Jun 2019 18:43:33 -0700 (PDT) From: Noam Postavsky To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= Subject: Re: bug#14769: [PATCH] optimize `concat's literals References: <6BF130E1-F25B-4E1B-B55D-224F0CCEC133@acm.org> Date: Tue, 18 Jun 2019 21:43:32 -0400 In-Reply-To: <6BF130E1-F25B-4E1B-B55D-224F0CCEC133@acm.org> ("Mattias \=\?utf-8\?Q\?Engdeg\=C3\=A5rd\=22's\?\= message of "Sun, 16 Jun 2019 13:57:44 +0200") Message-ID: <87r27qwdrv.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 14769 Cc: Lars Ingebrigtsen , Stefan Monnier , 14769@debbugs.gnu.org, shigeru.fukaya@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Mattias Engdeg=C3=A5rd writes: > + (dolist (arg (cdr form)) > + (let ((val (eval arg))) > + ;; Constant arg: concat with previous. > + (setq accum (concat accum val))))) Hmm, I think the OP's patch is careful not to concat in a loop like this: it's O(n^2). I guess for most human written code n is small enough that it doesn't matter, but I could imagine this slowing compilation of a very big rx macro. From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 19 08:54:24 2019 Received: (at 14769) by debbugs.gnu.org; 19 Jun 2019 12:54:24 +0000 Received: from localhost ([127.0.0.1]:46181 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hda6Z-0002G1-U9 for submit@debbugs.gnu.org; Wed, 19 Jun 2019 08:54:24 -0400 Received: from mail74c50.megamailservers.eu ([91.136.10.84]:56429 helo=mail92c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hda6X-0002Fr-47 for 14769@debbugs.gnu.org; Wed, 19 Jun 2019 08:54:22 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1560948859; bh=1fEVEH5h3bKMBCUDV6knjSagI/5XcfWP/mqkM6Gvznk=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=TdSo2ucphe9r8ZTmpcALCnrO+cEkXyLh+GvKs400DvrzlRVvjqWyVK8RAndIa69Vy jk1VUNQTNSK4gOE+L39ZfPacaZ7BnO7aRTJhdFgqA7J7gyNQDoBOJZrMus77zpaWUX GZWuNZR3MiW+LA8lW6EJ1kcGIeNiKntV/IXtMios= Feedback-ID: mattiase@acm.or Received: from [192.168.1.65] (c-e636e253.032-75-73746f71.bbcust.telenor.se [83.226.54.230]) (authenticated bits=0) by mail92c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x5JCsGeB011435; Wed, 19 Jun 2019 12:54:18 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= Message-Id: <43EF1EEA-BE3B-493A-9BDE-C8AE37B9696A@acm.org> Content-Type: multipart/mixed; boundary="Apple-Mail=_5BA07FE7-F615-46FE-9335-22E09B57C32E" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: bug#14769: [PATCH] optimize `concat's literals Date: Wed, 19 Jun 2019 14:54:16 +0200 In-Reply-To: <87r27qwdrv.fsf@gmail.com> To: Noam Postavsky References: <6BF130E1-F25B-4E1B-B55D-224F0CCEC133@acm.org> <87r27qwdrv.fsf@gmail.com> X-Mailer: Apple Mail (2.3445.104.11) X-CTCH-RefID: str=0001.0A0B020D.5D0A307B.0010, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=LZQSFAXi c=1 sm=1 tr=0 a=M+GU/qJco4WXjv8D6jB2IA==:117 a=M+GU/qJco4WXjv8D6jB2IA==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=pGLkceISAAAA:8 a=N54-gffFAAAA:8 a=XHONTn1MfpYIiTRvBwMA:9 a=QEXdDO2ut3YA:10 a=IUaKqlKYTyGjG5-Y8p0A:9 a=B2y7HmGcmWMA:10 a=6l0D2HzqY3Epnrm8mE3f:22 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 14769 Cc: Lars Ingebrigtsen , Stefan Monnier , 14769@debbugs.gnu.org, shigeru.fukaya@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Apple-Mail=_5BA07FE7-F615-46FE-9335-22E09B57C32E Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 19 juni 2019 kl. 03.43 skrev Noam Postavsky : >=20 > Mattias Engdeg=C3=A5rd writes: >=20 >> + (dolist (arg (cdr form)) >=20 >> + (let ((val (eval arg))) >=20 >> + ;; Constant arg: concat with previous. >> + (setq accum (concat accum val))))) >=20 > Hmm, I think the OP's patch is careful not to concat in a loop like > this: it's O(n^2). I guess for most human written code n is small > enough that it doesn't matter, but I could imagine this slowing > compilation of a very big rx macro. Yes, I thought it wouldn't matter but you are right. Updated patch = attached. For that matter, ry performs this optimisation itself, but it's also = nice to have it in the compiler, since concat is frequently used to = split long string constants in elisp source. --Apple-Mail=_5BA07FE7-F615-46FE-9335-22E09B57C32E Content-Disposition: attachment; filename=0001-Merge-consecutive-constant-concat-args-bug-14769.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Merge-consecutive-constant-concat-args-bug-14769.patch" Content-Transfer-Encoding: quoted-printable =46rom=20d4c3bbce9472618b5e762a18af5ba1a2b1b79698=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= =0ADate:=20Sun,=2016=20Jun=202019=2013:13:47=20+0200=0A= Subject:=20[PATCH]=20Merge=20consecutive=20constant=20`concat'=20args=20= (bug#14769)=0A=0ASuggested=20by=20Shigeru=20Fukaya=20= =0A=0A*=20lisp/emacs-lisp/byte-opt.el=20= (byte-optimize-concat):=20New.=0A(concat):=20Add=20byte-optimizer.=0A---=0A= =20lisp/emacs-lisp/byte-opt.el=20|=2029=20+++++++++++++++++++++++++++++=0A= =201=20file=20changed,=2029=20insertions(+)=0A=0Adiff=20--git=20= a/lisp/emacs-lisp/byte-opt.el=20b/lisp/emacs-lisp/byte-opt.el=0Aindex=20= b0aa407c8b..2e09601639=20100644=0A---=20a/lisp/emacs-lisp/byte-opt.el=0A= +++=20b/lisp/emacs-lisp/byte-opt.el=0A@@=20-850,6=20+850,33=20@@=20= byte-optimize-memq=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20',list)))))=0A=20=20=20=20=20= (byte-optimize-predicate=20form)))=0A=20=0A+(defun=20= byte-optimize-concat=20(form)=0A+=20=20"Merge=20adjacent=20constant=20= arguments=20to=20`concat'."=0A+=20=20(let=20((args=20(cdr=20form))=0A+=20= =20=20=20=20=20=20=20(newargs=20nil))=0A+=20=20=20=20(while=20args=0A+=20= =20=20=20=20=20(let=20((strings=20nil)=0A+=20=20=20=20=20=20=20=20=20=20=20= =20val)=0A+=20=20=20=20=20=20=20=20(while=20(and=20args=20= (macroexp-const-p=20(car=20args))=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(progn=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(setq=20val=20(eval=20(car=20args)))=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(and=20(or=20= (stringp=20val)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(and=20(or=20(listp=20val)=20= (vectorp=20val))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(not=20(memq=20nil=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (mapcar=20#'characterp=20val))))))))=0A+=20=20=20=20=20=20=20=20=20=20= (push=20val=20strings)=0A+=20=20=20=20=20=20=20=20=20=20(setq=20args=20= (cdr=20args)))=0A+=20=20=20=20=20=20=20=20(when=20strings=0A+=20=20=20=20= =20=20=20=20=20=20(let=20((s=20(apply=20#'concat=20(nreverse=20= strings))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20(when=20(not=20(zerop=20= (length=20s)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20(push=20s=20= newargs)))))=0A+=20=20=20=20=20=20(when=20args=0A+=20=20=20=20=20=20=20=20= (push=20(car=20args)=20newargs)=0A+=20=20=20=20=20=20=20=20(setq=20args=20= (cdr=20args))))=0A+=20=20=20=20(if=20(=3D=20(length=20newargs)=20(length=20= (cdr=20form)))=0A+=20=20=20=20=20=20=20=20form=20=20=20=20=20=20=20=20=20= =20;=20No=20improvement.=0A+=20=20=20=20=20=20(cons=20'concat=20= (nreverse=20newargs)))))=0A+=0A=20(put=20'identity=20'byte-optimizer=20= 'byte-optimize-identity)=0A=20(put=20'memq=20'byte-optimizer=20= 'byte-optimize-memq)=0A=20=0A@@=20-892,6=20+919,8=20@@=20= byte-optimize-memq=0A=20(put=20'car-safe=20'byte-optimizer=20= 'byte-optimize-predicate)=0A=20(put=20'cdr-safe=20'byte-optimizer=20= 'byte-optimize-predicate)=0A=20=0A+(put=20'concat=20'byte-optimizer=20= 'byte-optimize-concat)=0A+=0A=20;;=20I'm=20not=20convinced=20that=20this=20= is=20necessary.=20=20Doesn't=20the=20optimizer=20loop=0A=20;;=20take=20= care=20of=20this?=20-=20Jamie=0A=20;;=20I=20think=20this=20may=20some=20= times=20be=20necessary=20to=20reduce=20ie=20(quote=205)=20to=205,=0A--=20= =0A2.20.1=20(Apple=20Git-117)=0A=0A= --Apple-Mail=_5BA07FE7-F615-46FE-9335-22E09B57C32E-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 19 20:38:21 2019 Received: (at 14769) by debbugs.gnu.org; 20 Jun 2019 00:38:21 +0000 Received: from localhost ([127.0.0.1]:47612 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hdl5o-0003XQ-Ne for submit@debbugs.gnu.org; Wed, 19 Jun 2019 20:38:20 -0400 Received: from mail-io1-f41.google.com ([209.85.166.41]:40099) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hdl5n-0003XB-2d for 14769@debbugs.gnu.org; Wed, 19 Jun 2019 20:38:19 -0400 Received: by mail-io1-f41.google.com with SMTP id n5so1095688ioc.7 for <14769@debbugs.gnu.org>; Wed, 19 Jun 2019 17:38:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=ZnWKQwKQLC8JxinDSNC+GyX8H/2c/M8qa5A+7k2UTfs=; b=MeD21bdVNrM9cW6upZdWKrmlGD858G/dxEmY4f9P2APcGmhwyBDb0xuwmI0/nKd+1Y sqJB7eJ0QdEVyy+HTmw+I/knNb881mjbLoktFtbbb0h+yv8RfMfH0Kl4EzTBJX4j8qON vNR1laDsbWuy8qfQTJdSaFgC2BXb2bsO5YjfR0SvCpQGcxWb8P9UlRF74Frgve9pTdZB J3voqc8tqoda+8OUp3U8BE6/qBXQRLGR+6CK32f3KZX9kzkr8QhuOhjVr0KEnZtvOC3r EHX8wj4JSD3Yb350iUXEivGn2NG7FpWJKQWmVZ3xtaA4SxR1rS4bJVJu+kKB9o4VGoHi C2BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=ZnWKQwKQLC8JxinDSNC+GyX8H/2c/M8qa5A+7k2UTfs=; b=jsA6wxfI8c/yLIXTpoq3tmTpelaSj6AaMsCBKIv6OziwJu+bueI07bZCqi5tpwqqqr t8r8sVYUX/FW82AbyscoNgTocalvJGZHnSwV0QGydTlOpkpU1SqtpMRgVoyPsUg/0KAH nj4ZXbxpR9hpAp1ym1JkWpe7d02NwP7U7J4avfvFcvQCbMyrnl8nsYHokaeMzKiM95NQ cH4LaGIhV6bbNMG6sR01VslKDO7oFCxeabaD84gM5U89eKAZPQFirtYcMpqzkNf8ahrF Aq1wAIsRIbePGyX1maxKnqdgip+kRlbt9egHG0leFjRf84TDtatK27NrGZDvTUig2kiX jMQQ== X-Gm-Message-State: APjAAAWDpHKgF6nN84eKLHBOzHke8zmp+OsMkl0uAUjcEndlfQLgXyRP ryRm8SrLvlIIEtly7O9H3c4= X-Google-Smtp-Source: APXvYqzR0GnWS8HLoIkV4yI5bYfB87UhEf2MBhSsM7/Ey61PMWgV9+OANKZBtJF5U2MuzT+jbwZYrA== X-Received: by 2002:a02:b798:: with SMTP id f24mr97110423jam.97.1560991093453; Wed, 19 Jun 2019 17:38:13 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.gmail.com with ESMTPSA id t22sm17024725ioc.75.2019.06.19.17.38.12 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jun 2019 17:38:12 -0700 (PDT) From: Noam Postavsky To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= Subject: Re: bug#14769: [PATCH] optimize `concat's literals References: <6BF130E1-F25B-4E1B-B55D-224F0CCEC133@acm.org> <87r27qwdrv.fsf@gmail.com> <43EF1EEA-BE3B-493A-9BDE-C8AE37B9696A@acm.org> Date: Wed, 19 Jun 2019 20:38:12 -0400 In-Reply-To: <43EF1EEA-BE3B-493A-9BDE-C8AE37B9696A@acm.org> ("Mattias \=\?utf-8\?Q\?Engdeg\=C3\=A5rd\=22's\?\= message of "Wed, 19 Jun 2019 14:54:16 +0200") Message-ID: <87lfxxw0p7.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 14769 Cc: Lars Ingebrigtsen , Stefan Monnier , 14769@debbugs.gnu.org, shigeru.fukaya@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Mattias Engdeg=C3=A5rd writes: > Yes, I thought it wouldn't matter but you are right. Updated patch attach= ed. Looks good to me. As a minor aesthetic nitpick, I would suggest using `pop', since you're already using `push'. From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 21 05:07:28 2019 Received: (at 14769) by debbugs.gnu.org; 21 Jun 2019 09:07:28 +0000 Received: from localhost ([127.0.0.1]:49627 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1heFW3-0003yX-NT for submit@debbugs.gnu.org; Fri, 21 Jun 2019 05:07:27 -0400 Received: from mail1424c50.megamailservers.eu ([91.136.14.24]:39732 helo=mail102c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1heFW1-0003yF-4j for 14769@debbugs.gnu.org; Fri, 21 Jun 2019 05:07:26 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1561108038; bh=ZAfaN6JGkeuvT4oV/IzWeFU7uHmqzn4vfc0h6QqTPmU=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=DK0qbIYMX7Vjuex9RIL+fG/xY2tfU0SycHK8SE0dmA9rgCtWTDxakg7J9yDJAxgCc LIahX5mmtfFN4CodDplji1CwypGs7ffo3FbLjvQlRHet087pkZNLrv9A0vCqTVX7Jk jomw1H/LE2F2iGAH3FJEsKHAdWhooRSM9tcVspII= Feedback-ID: mattiase@acm.or Received: from [192.168.0.4] ([188.150.171.71]) (authenticated bits=0) by mail102c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x5L97E29030309; Fri, 21 Jun 2019 09:07:15 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: bug#14769: [PATCH] optimize `concat's literals From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: <87lfxxw0p7.fsf@gmail.com> Date: Fri, 21 Jun 2019 11:07:13 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <7B7A7273-8BC9-452E-A10C-C310FED098C4@acm.org> References: <6BF130E1-F25B-4E1B-B55D-224F0CCEC133@acm.org> <87r27qwdrv.fsf@gmail.com> <43EF1EEA-BE3B-493A-9BDE-C8AE37B9696A@acm.org> <87lfxxw0p7.fsf@gmail.com> To: Noam Postavsky X-Mailer: Apple Mail (2.3445.104.11) X-CTCH-RefID: str=0001.0A0B0207.5D0C9E46.002B, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=RfS+9Wlv c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=pGLkceISAAAA:8 a=qe5ihlv9HKOI-hDvsncA:9 a=CjuIK1q_8ugA:10 X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 14769 Cc: Lars Ingebrigtsen , Stefan Monnier , 14769@debbugs.gnu.org, shigeru.fukaya@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) 20 juni 2019 kl. 02.38 skrev Noam Postavsky : >=20 > Looks good to me. Thanks for looking through the code! > As a minor aesthetic nitpick, I would suggest using > `pop', since you're already using `push'. Not to the same variable though; it isn't a stack. If it's all the same = to you, I'd rather keep that part of the code as it is. From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 22 18:17:34 2019 Received: (at 14769) by debbugs.gnu.org; 22 Jun 2019 22:17:34 +0000 Received: from localhost ([127.0.0.1]:52629 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1heoKD-0006mB-R2 for submit@debbugs.gnu.org; Sat, 22 Jun 2019 18:17:34 -0400 Received: from mail-io1-f52.google.com ([209.85.166.52]:37169) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1heoKC-0006ly-Hc for 14769@debbugs.gnu.org; Sat, 22 Jun 2019 18:17:33 -0400 Received: by mail-io1-f52.google.com with SMTP id e5so256575iok.4 for <14769@debbugs.gnu.org>; Sat, 22 Jun 2019 15:17:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=SvgMqBJsLBj3tyJQ54JoTwQzbIYkKyjJ9KtdcTF+Ncs=; b=ucYQWn3WtdYCuWkF//LfjrbhVzmj5wpxTMcmW89eCfOBTzJq3EhMVGbUXkFjwkKhKO DrHVLotInN+KR68iIqE3KGz1reVVkZzBGRlsEL5Mev8kbW+UGZVzRUXAjmkgt33Pyde9 72Ajs0sN6nj4WMKstpMpfycRc+fCmdbKbGMtZVWLmB6oKwpGzUJs8lfxY//D771ThYN8 jmYJzLD8kCqUM/6CBT61S9XAdiiHyCcQx5jvsiZeBorrwZIYCy+clnz845/ZRVJP4c9w ebGc9sVlhdpaPhNBnf7Cy2uJ/Uf45RriFm3sYxRW5jcRRAimXNo/kkmA6qbmsPmdSlnt M0xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=SvgMqBJsLBj3tyJQ54JoTwQzbIYkKyjJ9KtdcTF+Ncs=; b=FUW/pRV7s+IIgRlOaJp8LSJsbwx3Ej86/HtIOLH76D/6e7U6cyyBy6iIgbJ/1MNX4F PXeHjr40x5rkJksuW6yUyS7qIDTwLBria4lJWJVpgcjVILCvnxqR1lpXw2uNWNQbc+A2 eMq9Kkb1TAnF3F0V25wcvAyuUh2pL1FFHNF5VNVZJZACOShI08pRXfP8Wo5V4SYb8un/ Alwq3bXGBWboWDieTMBxppom8jmVYvH1haEjpJmy4yYG3LCBcLORCw/hzDRSn+B6oiFf 9CE+dCilguBLdVN0UK9Pmn/X3mCgj4ZuItTUvurZFacuTgykOT+KnprqQH/dtF/1U8YZ IJcQ== X-Gm-Message-State: APjAAAUl9tI/sd1LUrbqu+0DkhbhiE6W8MTtWnM+Y3ZSCDEjPfsl0Qqx s7YGjDMRCcUS9LTVuAkvcJo= X-Google-Smtp-Source: APXvYqw248yipYP+krcL6FL8/P1Ls9eJdyxoJ6KWZYOK5VSAdSR2fINdfHPigT46aoFm7nghZiO0eA== X-Received: by 2002:a02:40c8:: with SMTP id n191mr13915893jaa.14.1561241846832; Sat, 22 Jun 2019 15:17:26 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.gmail.com with ESMTPSA id z1sm14358763ioh.52.2019.06.22.15.17.25 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 22 Jun 2019 15:17:26 -0700 (PDT) From: Noam Postavsky To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= Subject: Re: bug#14769: [PATCH] optimize `concat's literals References: <6BF130E1-F25B-4E1B-B55D-224F0CCEC133@acm.org> <87r27qwdrv.fsf@gmail.com> <43EF1EEA-BE3B-493A-9BDE-C8AE37B9696A@acm.org> <87lfxxw0p7.fsf@gmail.com> <7B7A7273-8BC9-452E-A10C-C310FED098C4@acm.org> Date: Sat, 22 Jun 2019 18:17:25 -0400 In-Reply-To: <7B7A7273-8BC9-452E-A10C-C310FED098C4@acm.org> ("Mattias \=\?utf-8\?Q\?Engdeg\=C3\=A5rd\=22's\?\= message of "Fri, 21 Jun 2019 11:07:13 +0200") Message-ID: <874l4huux6.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 14769 Cc: Lars Ingebrigtsen , Stefan Monnier , 14769@debbugs.gnu.org, shigeru.fukaya@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Mattias Engdeg=C3=A5rd writes: > 20 juni 2019 kl. 02.38 skrev Noam Postavsky : > >> As a minor aesthetic nitpick, I would suggest using >> `pop', since you're already using `push'. > > Not to the same variable though; it isn't a stack. Okay, interesting. I never considered making that stylistic distinction, I tend to use it on lists freely. > If it's all the same to you, I'd rather keep that part of the code as it = is. Yeah, no problem. From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 26 05:44:30 2019 Received: (at 14769-done) by debbugs.gnu.org; 26 Jun 2019 09:44:30 +0000 Received: from localhost ([127.0.0.1]:34289 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hg4Te-0001Aw-0Q for submit@debbugs.gnu.org; Wed, 26 Jun 2019 05:44:30 -0400 Received: from mail75c50.megamailservers.eu ([91.136.10.85]:51234 helo=mail92c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hg4Tb-0001Am-KU for 14769-done@debbugs.gnu.org; Wed, 26 Jun 2019 05:44:28 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1561542265; bh=jKZEw33WNLGoYBvx+hIqegAXBJRw2M5gXQ/vQQU61ZQ=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=MRcmgDcwh97kFESsDyiZJLVchPkQA/ihpggMDqREuj1FPrLxiSMYCyZcPWpqYqJJg UWlIhK8Bywar8UIjSagRNKgxEEqmvdpWnX9fHTOUE/ICzCIH0T8ftvR/4WND2+Sl4c e2D2Fan/ySDUgJuhnG6mKtiPV4uj7mYOx/MLj+og= Feedback-ID: mattiase@acm.or Received: from [192.168.1.65] (c-e636e253.032-75-73746f71.bbcust.telenor.se [83.226.54.230]) (authenticated bits=0) by mail92c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x5Q9iLAu012376; Wed, 26 Jun 2019 09:44:23 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: bug#14769: [PATCH] optimize `concat's literals From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: <874l4huux6.fsf@gmail.com> Date: Wed, 26 Jun 2019 11:44:21 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <4B168570-368C-48CA-B376-3605BFB54D12@acm.org> References: <6BF130E1-F25B-4E1B-B55D-224F0CCEC133@acm.org> <87r27qwdrv.fsf@gmail.com> <43EF1EEA-BE3B-493A-9BDE-C8AE37B9696A@acm.org> <87lfxxw0p7.fsf@gmail.com> <7B7A7273-8BC9-452E-A10C-C310FED098C4@acm.org> <874l4huux6.fsf@gmail.com> To: Noam Postavsky X-Mailer: Apple Mail (2.3445.104.11) X-CTCH-RefID: str=0001.0A0B020B.5D133E79.0049, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=RPid4bq+ c=1 sm=1 tr=0 a=M+GU/qJco4WXjv8D6jB2IA==:117 a=M+GU/qJco4WXjv8D6jB2IA==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=pGLkceISAAAA:8 a=4XaiWPBmqcNTg15wTx0A:9 a=CjuIK1q_8ugA:10 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 14769-done Cc: Lars Ingebrigtsen , Stefan Monnier , 14769-done@debbugs.gnu.org, shigeru.fukaya@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) 23 juni 2019 kl. 00.17 skrev Noam Postavsky : >=20 > Yeah, no problem. I take that as approval for the patch then, which has become somewhat = more urgent now that the rx `literal' patch has been pushed. The alternative would be to add this concat-simplification logic to rx = instead (why ry does), but it is of general use. Pushed to master. From unknown Sun Jun 22 11:35:49 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 24 Jul 2019 11:24:09 +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