bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#63100: 30.0.50; nconc compiler optimization breaks user packages


From: Maks
Subject: bug#63100: 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. 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]