[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#62009: 29.0.60; Emacs crashes on setf symbol-name
From: |
Daniel Mendler |
Subject: |
bug#62009: 29.0.60; Emacs crashes on setf symbol-name |
Date: |
Fri, 10 Mar 2023 12:09:59 +0100 |
On 3/10/23 11:59, Gregory Heytings wrote:
> Is "symbol-name" a function that is used in performance-critical code?
> And did you actually measure that performance overhead before concluding
> that it it "unacceptably large"? According to my measurements, creating a
> string from a symbol name costs about 100 CPU cycles.
Yes, of course, for example completion. It would add cost all over the
place in many packages. Also note the added GC pressure. It is not a
good idea to change symbol-name now to allocate strings.
>> Raising an exception upon modification would be the best approach.
>>
>
> That would also come with a performance overhead, as there is currently no
> way to distinguist strings that are used for symbol names from other
> strings. Not to mention the added complexity in the code.
One could check if the string is located in read-only memory. Or one
could add a flag bit to the string data structure (and possibly to other
data structures too). Freezing data structures such that they become
read-only is a generally useful feature. There won't be any performance
overhead of the check since a branch not taken is fast thanks to the
branch predictor.
Daniel
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, (continued)
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Daniel Mendler, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Eli Zaretskii, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Daniel Mendler, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Eli Zaretskii, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Daniel Mendler, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Eli Zaretskii, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Eli Zaretskii, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Gregory Heytings, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Daniel Mendler, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Gregory Heytings, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name,
Daniel Mendler <=
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Augusto Stoffel, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Eli Zaretskii, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Robert Pluim, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Daniel Mendler, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Eli Zaretskii, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Daniel Mendler, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Dmitry Gutov, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Gregory Heytings, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Eli Zaretskii, 2023/03/10
- bug#62009: 29.0.60; Emacs crashes on setf symbol-name, Robert Pluim, 2023/03/10