From mboxrd@z Thu Jan 1 00:00:00 1970
Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail
From: Philipp Stephani
Newsgroups: gmane.emacs.bugs
Subject: bug#48477: 28.0.50;
Seemingly incorrect codegen with multiple string-matching pcase
patterns
Date: Mon, 17 May 2021 13:34:42 +0200
Message-ID:
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214";
logging-data="14323"; mail-complaints-to="usenet@ciao.gmane.io"
To: 48477@debbugs.gnu.org
Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon May 17 13:41:06 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 1libcP-0003Ye-VY
for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 17 May 2021 13:41:06 +0200
Original-Received: from localhost ([::1]:44370 helo=lists1p.gnu.org)
by lists.gnu.org with esmtp (Exim 4.90_1)
(envelope-from )
id 1libcP-0007mD-07
for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 17 May 2021 07:41:05 -0400
Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39038)
by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from )
id 1libWZ-0005iJ-1g
for bug-gnu-emacs@gnu.org; Mon, 17 May 2021 07:35:03 -0400
Original-Received: from debbugs.gnu.org ([209.51.188.43]:40444)
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.90_1) (envelope-from )
id 1libWY-0006CP-6y
for bug-gnu-emacs@gnu.org; Mon, 17 May 2021 07:35:02 -0400
Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2)
(envelope-from ) id 1libWY-0007DV-3c
for bug-gnu-emacs@gnu.org; Mon, 17 May 2021 07:35:02 -0400
X-Loop: help-debbugs@gnu.org
Resent-From: Philipp Stephani
Original-Sender: "Debbugs-submit"
Resent-CC: bug-gnu-emacs@gnu.org
Resent-Date: Mon, 17 May 2021 11:35:01 +0000
Resent-Message-ID:
Resent-Sender: help-debbugs@gnu.org
X-GNU-PR-Message: report 48477
X-GNU-PR-Package: emacs
X-Debbugs-Original-To: bug-gnu-emacs@gnu.org
Original-Received: via spool by submit@debbugs.gnu.org id=B.162125129627724
(code B ref -1); Mon, 17 May 2021 11:35:01 +0000
Original-Received: (at submit) by debbugs.gnu.org; 17 May 2021 11:34:56 +0000
Original-Received: from localhost ([127.0.0.1]:51990 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from )
id 1libWR-0007D6-PZ
for submit@debbugs.gnu.org; Mon, 17 May 2021 07:34:56 -0400
Original-Received: from lists.gnu.org ([209.51.188.17]:60870)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from ) id 1libWO-0007Cw-4r
for submit@debbugs.gnu.org; Mon, 17 May 2021 07:34:54 -0400
Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39024)
by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from )
id 1libWN-0005bM-4t
for bug-gnu-emacs@gnu.org; Mon, 17 May 2021 07:34:51 -0400
Original-Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:46862)
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.90_1) (envelope-from )
id 1libWH-00063Y-EM
for bug-gnu-emacs@gnu.org; Mon, 17 May 2021 07:34:50 -0400
Original-Received: by mail-wr1-x42f.google.com with SMTP id y14so3924165wrm.13
for ; Mon, 17 May 2021 04:34:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
h=from:to:subject:date:message-id:mime-version
:content-transfer-encoding;
bh=mP11UimAg+TgEUtXFZUQITq6uWmypgZFUHXnELW7648=;
b=qxVThbeP1tdVt/81ly61SAqdOMD8aEjFZPp63ZxlFtkEkHIHHagDOaF8H6rViOYNYT
SoMr609+Fsrj7Qyb437mz+vYj4o/uEVX8Npd43IfJNaZ4sKRxLH2cuInE4kZGzupa2dc
BPwGc1Mj1BJFh/lUpVvWmzrYbJq9Z4FJ69T1G2NKBC9Bpr6jatz/wG/b7j5jA+3PzNAT
7snPdkwzkM530/TurHvSqA94RsIBq9Z4Sq25uGTROH0bxvlYlGejLGBHLqiUDp6XaC0V
PNvFBH0+gehUPtiqkh91HKRGeSk4m0fp7fswzb92uDCLrKwqG2iBExMRZVE9t3j6bvR7
Rgfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:from:to:subject:date:message-id:mime-version
:content-transfer-encoding;
bh=mP11UimAg+TgEUtXFZUQITq6uWmypgZFUHXnELW7648=;
b=Vz/rq/vOMGMYdC43sNXikmFrXXsFrpWtD7LG5onRELhfID6l1fFiJg45eF6rR2eXS4
fymAHfYNSX4+hd7mZNpgdyIXxjazlZVaWcTOXEc6JkhkV4F3B4TAUpk7cAHsyIKoZqSF
gmR7X3FsUIqAW+iDeKfCAWp/vi5h475H9hHqA/kUmwXewRT8+i2frA9os6NHqe4F7+pT
W1wVfi1BsrIIPLDUaSyIzQNJ3Kcv18T33Sh0ELThx4C0I67Wsn6NTQZrVMrsfPLjHUma
jelTV5aVIAMlc+SmZdm01qMKqjTALC00EKf9dJpMMlMjojl62DTwD6nDhH3w6zV69hy0
9GHQ==
X-Gm-Message-State: AOAM531mXiJmR7nPA1uYnFkbB/ppZ3IhnH7wyrYeLgBNAQzpd8oa5t9a
QMgk/iq/ElczoPebKbsc6LU1pS8NIyKnsQ==
X-Google-Smtp-Source: ABdhPJwFAn2xZUO+keF64fP4f4bNxeoZA1+tSD/tuEY6OWvoKKePRqlFq/26FkCFpE+Iua3pUoOZsA==
X-Received: by 2002:adf:d843:: with SMTP id k3mr12979140wrl.138.1621251283756;
Mon, 17 May 2021 04:34:43 -0700 (PDT)
Original-Received: from phst ([46.128.198.100])
by smtp.gmail.com with ESMTPSA id q62sm5988035wma.42.2021.05.17.04.34.42
for
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Mon, 17 May 2021 04:34:43 -0700 (PDT)
Received-SPF: pass client-ip=2a00:1450:4864:20::42f;
envelope-from=p.stephani2@gmail.com; helo=mail-wr1-x42f.google.com
X-Spam_score_int: -17
X-Spam_score: -1.8
X-Spam_bar: -
X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001,
RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
SPF_PASS=-0.001 autolearn=ham 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:206699
Archived-At:
Consider the following pcase form:
(require 'rx)
(pcase string
((rx bos (let prefix ?@) (* (not (any ?: ?/))) eos)
(list 1 prefix))
((rx bos (let prefix (* (not (any ?:))) "/...:" eos))
(list 2 prefix)))
The two branches should be disjoint; e.g. "@foo//...:" should match only
the second, not the first. Emacs 27.2 agrees and generates the
following code:
(cond
((string-match "\\`\\(?1:@\\)[^/:]*\\'" string)
(let*
((#1=3D#:x457
(match-string 1 string)))
(let
((prefix #1#))
(list 1 prefix))))
((string-match "\\`\\(?1:[^:]*/\\.\\.\\.:\\'\\)" string)
(let*
((#2=3D#:x458
(match-string 1 string)))
(let
((prefix #2#))
(list 2 prefix))))
(t nil))
However, Emacs master prints the following warning:
Warning: pcase pattern (rx bos (let prefix (* (not (any 58))) "/...:" e=
os)) shadowed by previous pcase pattern
and generates this code:
(if
(stringp string)
(let*
((#1=3D#:x42
(funcall
#'(lambda
(s)
(and
(string-match "\\`\\(?1:@\\)[^/:]*\\'" s)
(match-string 1 s)))
string)))
(let
((prefix #1#))
(list 1 prefix))))
which looks clearly wrong (and also needlessly complex).
In GNU Emacs 28.0.50 (build 104, x86_64-pc-linux-gnu, GTK+ Version 3.24.24,=
cairo version 1.16.0)
of 2021-05-17
Repository revision: 42950e9e4647c28f56c72cc27ef96edbafcbe5cd
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12010000
System Description: Debian GNU/Linux rodete
Configured using:
'configure --enable-gcc-warnings=3Dwarn-only
--enable-gtk-deprecation-warnings --without-pop --with-mailutils
--enable-checking=3Dall --enable-check-lisp-object-type --with-modules
'CFLAGS=3D-O0 -ggdb3''
Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBSELINUX LIBSYSTEMD MODULES NOTIFY INOTIFY PDUMPER PNG SECCOMP SOUND
THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB
Important settings:
value of $LC_TIME: en_DK.utf8
value of $LANG: en_US.utf8
value of $XMODIFIERS: @im=3Dibus
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message rmc dired dired-loaddefs rfc822
mml mml-sec epa epg epg-config gnus-util rmail rmail-loaddefs time-date
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils phst skeleton derived edmacro kmacro pcase ffap thingatpt url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache json map url-vars mailcap rx
gnutls puny dbus xml subr-x seq byte-opt gv bytecomp byte-compile cconv
compile text-property-search comint ansi-color ring cl-loaddefs cl-lib
iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)
Memory information:
((conses 16 69432 7725)
(symbols 48 8422 1)
(strings 32 24391 1618)
(string-bytes 1 789459)
(vectors 16 15075)
(vector-slots 8 195624 5994)
(floats 8 26 32)
(intervals 56 223 0)
(buffers 992 11))
--=20
Google Germany GmbH
Erika-Mann-Stra=C3=9Fe 33
80636 M=C3=BCnchen
Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Halimah DeLaine Prado
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Diese E-Mail ist vertraulich. Falls Sie diese f=C3=A4lschlicherweise erhal=
ten haben
sollten, leiten Sie diese bitte nicht an jemand anderes weiter, l=C3=B6sche=
n Sie
alle Kopien und Anh=C3=A4nge davon und lassen Sie mich bitte wissen, dass d=
ie E-Mail
an die falsche Person gesendet wurde.
This e-mail is confidential. If you received this communication by mistake,
please don=E2=80=99t forward it to anyone else, please erase all copies and
attachments, and please let me know that it has gone to the wrong person.