Subject: bug#70784: Abolish string resizing

From: Stefan Monnier <[email-masked]>
Date: Sun, 05 May 2024 22:41:54 -0400

>> The Elisp ability to resize strings is high-cost, low-benefit, so we
>> should abolish it.
> What is the improvement to be had by "abolishing" this immemorial
> feature?

Actually, it's not "immemorial", it's just old:

    commit 3c9de1afcde82a99137721436c822059cce79b5b
    Author: Kenichi Handa <[email-masked]>
    Date:   Fri Jul 21 06:45:30 2000 +0000

        (Faset): Allow storing any multibyte character in a string.  Convert
        unibyte string to multibyte if necessary.

IOW, since Emacs-21.1.

As for improvements, like a lot of refactoring and maintenance work,
there isn't any immediate benefit.  But it's a "feature" which is *very*
rarely used (thank god: it makes a notionally constant time operation
take time proportional to the size of the string, so if it were used
often we would have heard complaints about the poor performance) and
which imposes pretty significant implementation constraints, so it's
definitely detrimental to long term evolution.

        Stefan