GNU bug report logs - #53809
29.0.50; fatal error: assertion failed: string_immovable_p (bytestr)

Previous Next

Package: emacs;

Reported by: Gregor Zattler <telegraph <at> gmx.net>

Date: Sat, 5 Feb 2022 22:51:02 UTC

Severity: normal

Tags: moreinfo

Found in version 29.0.50

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

Bug is archived. No further changes may be made.

Full log


Message #40 received at 53809 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Mattias Engdegård <mattiase <at> acm.org>
Cc: telegraph <at> gmx.net, 53809 <at> debbugs.gnu.org
Subject: Re: bug#53809: 29.0.50; fatal error: assertion failed:
 string_immovable_p (bytestr)
Date: Mon, 07 Feb 2022 21:45:45 +0200
> From: Mattias Engdegård <mattiase <at> acm.org>
> Date: Mon, 7 Feb 2022 20:09:01 +0100
> Cc: telegraph <at> gmx.net, 53809 <at> debbugs.gnu.org
> 
> 7 feb. 2022 kl. 19.52 skrev Eli Zaretskii <eliz <at> gnu.org>:
> 
> > Does this mean that Emacs will now be even less willing to return
> > memory to the OS, because the bytecode strings cannot be moved by GC?
> 
> Not to any significant degree

How do you know?  Was this measured?

> but it is of course a legitimate concern. Bytecode strings are rarely freed at all; they are typically loaded once and remain until Emacs terminates. Dynamic bytecode generation and replacement is comparatively rare.

I'm not talking about GC that frees unused string, I'm talking about
GC that moves string data to compact strings that aren't freed.

> Strings are allocated in either of two heaps: one for short strings (≤1024 bytes) and another for large ones. Only the short string heap is compacted, so all the pinning mechanism does is to use the large-string heap for all bytecode strings.

Which is exactly my bother.




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

Previous Next


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