Subject: Re: bug#70784: Abolish string resizing

From: Eli Zaretskii <[email-masked]>
Date: Mon, 06 May 2024 13:57:28 +0300

> Cc: Mattias Engdegård <[email-masked]>,
>  [email-masked]
> Date: Sun, 05 May 2024 22:41:54 -0400
> From:  Stefan Monnier via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> >> 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.

That's only half of the story, AFAIR.  The other half is that Emacs
before version 20 allowed aset with any string anywhere, because
characters back then were always unibyte.  We lost that with
introduction of MULE, and the above change by Kenichi restored the
lost functionality (which was evidently deemed important enough back
then).