GNU bug report logs - #49739
28.0.50; byte-compiled pcase pattern match failure

Previous Next

Package: emacs;

Reported by: No Wayman <iarchivedmywholelife <at> gmail.com>

Date: Mon, 26 Jul 2021 03:35:02 UTC

Severity: normal

Found in version 28.0.50

Done: Mattias EngdegÄrd <mattiase <at> acm.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: No Wayman <iarchivedmywholelife <at> gmail.com>
Subject: bug#49739: closed (Re: bug#49739: 28.0.50; byte-compiled pcase
 pattern match failure)
Date: Tue, 27 Jul 2021 17:11:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#49739: 28.0.50; byte-compiled pcase pattern match failure

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 49739 <at> debbugs.gnu.org.

-- 
49739: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=49739
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Mattias EngdegÄrd <mattiase <at> acm.org>
To: 49739-done <at> debbugs.gnu.org
Subject: Re: bug#49739: 28.0.50; byte-compiled pcase pattern match failure
Date: Tue, 27 Jul 2021 19:10:46 +0200
Fixed on master.


[Message part 3 (message/rfc822, inline)]
From: No Wayman <iarchivedmywholelife <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.0.50; byte-compiled pcase pattern match failure
Date: Sun, 25 Jul 2021 23:33:39 -0400
Recently a user reported a bug on Org-mode's mailing list in which 
an org-capture template was failing to fill properly:

https://orgmode.org/list/87fsw3zyjl.fsf <at> ucl.ac.uk/T/#t

I was able to reproduce the issue with emacs -Q and the following 
recipe:

Evaluate the following in *scratch*:

(progn
 (require 'org-capture)
 (org-capture-fill-template "%^t"))

This should prompt the user for a time, instead we hit the `_` 
case in one of the pcase calls in `org-capture-fill-template' 
despite the valid template string. This results in the error:

"unrecognized template placeholder: %^t"

I've observed that this only occurs when 
`org-capture-fill-template' has been byte-compiled.
Re-evaluating the defun results in the expected behavior. And 
byte-compiling the function puts us back in the erroneous state:

(progn
 (byte-compile #'org-capture-fill-template)
 (org-capture-fill-template "%^t")) ; unrecognized template 
 placeholder...

I didn't do a proper git-bisect, but the everything works as 
expected when building from the parent 
(3af2cee64b86e4ce59adb8e8720d92db35039cbc) of the following 
commit:

commit 937b6c18bd6c4806eb1e4c8764db56b314c09056
Author: Stefan Monnier <monnier <at> iro.umontreal.ca>
Date:   Fri Mar 19 17:42:22 2021 -0400

   * lisp/emacs-lisp/pcase.el (pcase-compile-patterns): New 
   function (bug#47261)
   
   Extracted from `pcase--expand`.
   (pcase--expand): Use it.

I tried to do some more debugging, but I'm not familiar with how 
to debug a problem which only crops up in byte-compiled elisp. 
Happy to provide any other information if necessary.

~ Nick



This bug report was last modified 3 years and 358 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.