[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#63100: closed (30.0.50; nconc compiler optimization breaks user pack
From: |
GNU bug Tracking System |
Subject: |
bug#63100: closed (30.0.50; nconc compiler optimization breaks user packages) |
Date: |
Thu, 27 Apr 2023 12:30:03 +0000 |
Your message dated Thu, 27 Apr 2023 14:28:58 +0200
with message-id <E90776F9-3E5E-474A-B642-2F1043EFE1E0@acm.org>
and subject line Re: bug#63103: 30.0.50; nconc compiler optimization breaks
user packages
has caused the debbugs.gnu.org bug report #63103,
regarding 30.0.50; nconc compiler optimization breaks user packages
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)
--
63103: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63103
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message ---
Subject: |
30.0.50; nconc compiler optimization breaks user packages |
Date: |
Wed, 26 Apr 2023 18:37:42 +0300 |
Hello,
after long debugging time I figured out that commit
e6ca5834a6eab91023e9f968b65683d0a74db1e7 ('Improved nconc and append
compiler optimisations') breaks package vertico.el. I'm not completely
understanding how it works but try to describe the problem.
If I set breakpoint before breaking commit I get the following stacktrace:
```
Debugger entered--entering a function:
* vertico--affixate((#("report-emacs-bug" 0 1 (face
(completions-first-difference))) #("cd" 0 1 (face
(completions-first-difference))) #("5x5" 0 1 (face
(completions-first-difference))) #("arp" 0 1 (face
(completions-first-difference))) #("dbx" 0 1 (face
(completions-first-difference))) #("dig" 0 1 (face
(completions-first-difference))) #("erc" 0 1 (face
(completions-first-difference))) #("ert" 0 1 (face
(completions-first-difference))) #("eww" 0 1 (face
(completions-first-difference))) #("ftp" 0 1 (face
(completions-first-difference)))))
vertico--arrange-candidates()
vertico--exhibit()
```
, but after breaking commit I get slightly different stacktrace:
```
Debugger entered--entering a function:
* vertico--affixate((#("report-emacs-bug" 0 1 (face
(completions-first-difference))) #("cd" 0 1 (face
(completions-first-difference))) #("5x5" 0 1 (face
(completions-first-difference))) #("arp" 0 1 (face
(completions-first-difference))) #("dbx" 0 1 (face
(completions-first-difference))) #("dig" 0 1 (face
(completions-first-difference))) #("erc" 0 1 (face
(completions-first-difference))) #("ert" 0 1 (face
(completions-first-difference))) #("eww" 0 1 (face
(completions-first-difference))) #("ftp" 0 1 (face
(completions-first-difference))) . 0))
vertico--arrange-candidates()
vertico--exhibit()
```
As you can see, the difference is in the tail of the input list. This
list comes from completion-hilit-commonality function from
minibuffer.el and it has nconc call. But testing
completion-hilit-commonality in REPL separetely from vertico.el package
give the same result (with 0 at the end of list).
Before sending this report I have tried a lot of versions of the
vertico.el package and have the same result. So I tend to think that problem is
not directly
related to package.
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#63103: 30.0.50; nconc compiler optimization breaks user packages |
Date: |
Thu, 27 Apr 2023 14:28:58 +0200 |
27 apr. 2023 kl. 12.42 skrev Daniel Mendler <mail@daniel-mendler.de>:
> I think it is
> kind of nice that `nconc' can be used as a tool to turn a proper list
> into an improper list and vice versa.
It's a bit obscure, though --
(setcdr (last X) nil)
is a lot clearer than
(nconc X nil)
and when the latter is preferred for performance, a comment might be polite to
the reader.
Anyway, a fix has been pushed to master, and the manual entry for `nconc` got
an extra example.
--- End Message ---
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#63100: closed (30.0.50; nconc compiler optimization breaks user packages),
GNU bug Tracking System <=