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.