From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.bugs Subject: bug#67536: 29.1; Calc mode's math-read-preprocess-string conses unnecessarily Date: Sun, 3 Dec 2023 12:58:31 +0100 Message-ID: References: <83h6l367zx.fsf@gnu.org> <83jzpzaw9s.fsf@gnu.org> <834jh1aj1d.fsf@gnu.org> <83lead81zq.fsf@gnu.org> <1B1320A5-9FE9-4747-8A07-6F7FF71E8840@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Content-Type: multipart/mixed; boundary="Apple-Mail=_2CF78ABD-DA77-4CC3-8273-827AA4E16BBB" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3129"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , Stefan Monnier , 67536@debbugs.gnu.org To: Raffael Stocker Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Dec 03 12:59:08 2023 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 1r9l7r-0000cG-UV for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 03 Dec 2023 12:59:08 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r9l7f-00017A-HL; Sun, 03 Dec 2023 06:58:56 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r9l7c-00016U-GC for bug-gnu-emacs@gnu.org; Sun, 03 Dec 2023 06:58:52 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r9l7c-00009e-8P for bug-gnu-emacs@gnu.org; Sun, 03 Dec 2023 06:58:52 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1r9l7m-0003ak-3X for bug-gnu-emacs@gnu.org; Sun, 03 Dec 2023 06:59:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 03 Dec 2023 11:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67536 X-GNU-PR-Package: emacs Original-Received: via spool by 67536-submit@debbugs.gnu.org id=B67536.170160473713795 (code B ref 67536); Sun, 03 Dec 2023 11:59:02 +0000 Original-Received: (at 67536) by debbugs.gnu.org; 3 Dec 2023 11:58:57 +0000 Original-Received: from localhost ([127.0.0.1]:59208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9l7f-0003aP-0n for submit@debbugs.gnu.org; Sun, 03 Dec 2023 06:58:56 -0500 Original-Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]:58461) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9l7Z-0003a7-1r for 67536@debbugs.gnu.org; Sun, 03 Dec 2023 06:58:53 -0500 Original-Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-50bce78f145so4224263e87.0 for <67536@debbugs.gnu.org>; Sun, 03 Dec 2023 03:58:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701604713; x=1702209513; darn=debbugs.gnu.org; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:from:to:cc:subject:date:message-id:reply-to; bh=D+LAvI+sUFH4I3e3cB2V5ivhixcEp89lF4tW84ZWmME=; b=KzweuNW6ElFZhm4McF/4RkDAosQ9gOnVjUPDcfQCiSb5zRUIsrNErXjPN7j/vEzNng v08TFHtGNQ70QBWRsa8gKgzRb9EHGv1Vqr806b1ZN48seEQFesEDLBnzOU6ADGF0ECqF BYxQCQIFXU301lJZQ9BLBjrNNJO+jtQUeKYJSdL1PsiG8GXEL1ovUj6Cb29mYpMWuhTS 3BJzD1Y4IUP7BNvglF8jmcParmIzLy+GGugZRQuo/vq5nPnV+8JK1ldlfTFnIsiDyiFb CoR4kQyNiFR4sOPnOIkcBmh/0zpfaUiB1/epdOVugkajyQfEbd+WSbSXsrLaQoSBLSea XxdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701604713; x=1702209513; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=D+LAvI+sUFH4I3e3cB2V5ivhixcEp89lF4tW84ZWmME=; b=RqvYKmA3yL0OOEEFoDITWrHiCQJ8nW3LeDcSKKD+lyQgE013zIAwTDit90Bfz5zVwj iQWQjMYvmX9HiK0NHTa1ZbTSLiOpxhpqJ1pBkpbwaEjKhF1pBt+rRY/uK7/YXOlm/vOW 9Pr+KBLLxFBeeALZdSSAm2AL8bAUE8h8hO/i8Sx1g3C+Zdh286XDY8iKz2PoFhboSsOF iA/7ni5+kLeE7T9PYU44dcb/kDwsru6UrfQVgk6lS5/pJ8eqSBKy7A7H4tZtdX9IchfA 9kNhGll7vhQ1WpFEcwi9BZ0+PJ0PQlNF511jpRvSOgWj0cZK24bWDZ500tPYMShOiTmQ QVEw== X-Gm-Message-State: AOJu0YyvQuFDehovLRjlWviqVa1J8vB+bWguk57wAHO45dxO5y7wPuC4 0PfhyiJLH3ofOMRZBF9CHKk= X-Google-Smtp-Source: AGHT+IE/ap6K67OVm7Y1WilKGXuJWCKAK3cgkTGG8h0oOr+FzHS+HnuN9GT1JHDK68EE4LqnW3i0MQ== X-Received: by 2002:ac2:5dfc:0:b0:50b:d764:8e5c with SMTP id z28-20020ac25dfc000000b0050bd7648e5cmr976712lfq.110.1701604712689; Sun, 03 Dec 2023 03:58:32 -0800 (PST) Original-Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id w14-20020a0565120b0e00b004ff725d1a27sm142989lfu.234.2023.12.03.03.58.31 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Dec 2023 03:58:32 -0800 (PST) In-Reply-To: X-Mailer: Apple Mail (2.3654.120.0.1.15) 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:275414 Archived-At: --Apple-Mail=_2CF78ABD-DA77-4CC3-8273-827AA4E16BBB Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii > Is it possible you forgot the attachment? How dare you suggest such a thing! --Apple-Mail=_2CF78ABD-DA77-4CC3-8273-827AA4E16BBB Content-Disposition: attachment; filename=math-read-preprocess-string.diff Content-Type: application/octet-stream; x-unix-mode=0644; name="math-read-preprocess-string.diff" Content-Transfer-Encoding: quoted-printable diff=20--git=20a/lisp/calc/calc-aent.el=20b/lisp/calc/calc-aent.el=0A= index=2066ede3295ae..131f31afff7=20100644=0A---=20= a/lisp/calc/calc-aent.el=0A+++=20b/lisp/calc/calc-aent.el=0A@@=20-547,22=20= +547,39=20@@=20math-read-subscripts=0A=20=20=20= "=E2=82=80=E2=82=81=E2=82=82=E2=82=83=E2=82=84=E2=82=85=E2=82=86=E2=82=87=E2= =82=88=E2=82=89=E2=82=8A=E2=82=8B=E2=82=8D=E2=82=8E"=20;=20= 0123456789+-()=0A=20=20=20"A=20string=20consisting=20of=20the=20= subscripts=20allowed=20by=20Calc.")=0A=20=0A+(defvar=20= math--read-preprocess-re-cache=20nil=0A+=20=20"Cached=20regexp=20and=20= tag:=20(REGEXP=20REPLACEMENTS=20SUPERSCRIPTS=20SUBSCRIPTS)")=0A+=0A=20= ;;;###autoload=0A=20(defun=20math-read-preprocess-string=20(str)=0A=20=20= =20"Replace=20some=20substrings=20of=20STR=20by=20Calc=20equivalents."=0A= -=20=20(setq=20str=0A-=20=20=20=20=20=20=20=20(replace-regexp-in-string=20= (concat=20"["=20math-read-superscripts=20"]+")=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"^(\\&)"=20str))=0A-=20=20(setq=20str=0A-=20=20=20=20=20=20=20=20= (replace-regexp-in-string=20(concat=20"["=20math-read-subscripts=20"]+")=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"_(\\&)"=20str))=0A-=20=20(let=20= ((rep-list=20math-read-replacement-list))=0A-=20=20=20=20(while=20= rep-list=0A-=20=20=20=20=20=20(setq=20str=0A-=20=20=20=20=20=20=20=20=20=20= =20=20(replace-regexp-in-string=20(nth=200=20(car=20rep-list))=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(nth=201=20(car=20rep-list))=20str))=0A-=20= =20=20=20=20=20(setq=20rep-list=20(cdr=20rep-list))))=0A-=20=20str)=0A+=20= =20(unless=20(and=20(eq=20(nth=201=20math--read-preprocess-re-cache)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= math-read-replacement-list)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(eq=20(nth=202=20math--read-preprocess-re-cache)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20math-read-superscripts)=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20(eq=20(nth=203=20= math--read-preprocess-re-cache)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20math-read-subscripts))=0A+=20=20=20=20;;=20Cache=20= invalid,=20recompute.=0A+=20=20=20=20(setq=20= math--read-preprocess-re-cache=0A+=20=20=20=20=20=20=20=20=20=20(list=20= (rx-to-string=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20`(or=20= (group=20(+=20(in=20,math-read-superscripts)))=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(group=20(+=20(in=20= ,math-read-subscripts)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(group=20(or=20,@(mapcar=20#'car=20= math-read-replacement-list))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20t)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= math-read-replacement-list=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20math-read-superscripts=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20math-read-subscripts)))=0A+=20=20(replace-regexp-in-string=0A+=20=20=20= (nth=200=20math--read-preprocess-re-cache)=0A+=20=20=20(lambda=20(s)=0A+=20= =20=20=20=20(let=20((r=20(mapconcat=20(lambda=20(c)=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(cadr=20= (assoc=20(char-to-string=20c)=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= =20math-read-replacement-list)))=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=20s)))=0A+=20=20=20=20=20=20=20(cond=20= ((match-beginning=201)=20(concat=20"^("=20r=20")"))=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20((match-beginning=202)=20(concat=20"_("=20r=20")"))=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20(t=20r))))=0A+=20=20=20str=20t))=0A= =20=0A=20;;=20The=20next=20few=20variables=20are=20local=20to=20= math-read-exprs=20(and=20math-read-expr=0A=20;;=20in=20calc-ext.el),=20= but=20are=20set=20in=20functions=20they=20call.=0A= --Apple-Mail=_2CF78ABD-DA77-4CC3-8273-827AA4E16BBB--