Subject: Re: bug#68200: 30.0.50; Emacs reloads init file when calling `documentation'

From: Alan Mackenzie <[email-masked]>
Date: Thu, 11 Jan 2024 18:10:58 +0000

Hello, Eli.

On Tue, Jan 09, 2024 at 14:36:02 +0200, Eli Zaretskii wrote:
> > Date: Mon, 8 Jan 2024 21:22:16 +0000
> > Cc: Eli Zaretskii <[email-masked]>,
> >   Gerd Möllmann <[email-masked]>,
> >   [email-masked], [email-masked]
> > From: Alan Mackenzie <[email-masked]>
> > 
> > In an age when a computer with 1 GB RAM is regarded as small indeed, why
> > are we so concerned about the, at most, few hundred bytes occupied by
> > each doc string?

> Because RAM is always at premium, and because these things add up.

> > Even if certain libraries were given adequate doc
> > strings, that still wouldn't swell the occupied storage to more than...
> > Well, I think there are around 40,000 defuns (etc.) in Emacs (I did scan
> > the source files for this at one time).  If each doc string were on
> > average 1024 bytes, that would come to around 40 MB.  That's negligible
> > these days, surely.

> No, 40MB is far from being negligible.

It's not negligible compared with the rest of Emacs, but is less than ¼%
of the RAM in a machine with 16GB.

> > Eli, what would you say to changing the default of the custom variable
> > byte-compile-dynamic-docstrings to nil?

> Why would that be useful? to hide bugs in code that doesn't work when
> the variable is non-nil?

No, the bug has been fixed.  But, as Michael pointed out, lots of things
are being done with doc strings now which weren't being done when the
dynamic doc strings were introduced.  Indeed, they were surely a
workaround for limited RAM in machines a very long time ago.

Now that we're doing more with doc strings, the inconvenience of not
getting a doc string after editing a source file might well outweigh the
relatively small amount of RAM that these doc strings need.

Hence the suggestion to change the default.

[ .... ]

> Thanks.

-- 
Alan Mackenzie (Nuremberg, Germany).