Subject: bug#55972: 28.1; Package quickstart generated for large number of packages generates byte-code string larger than 64K, triggering bytecode overflow error

From: Stefan Monnier <[email-masked]>
Date: Sat, 18 Jun 2022 10:53:02 -0400

> To solve the problem entirely, it's possible that we also need to split the
> top-level `let` forms in package-quickstart.el.

I think the other bug (about `autoload` calls that define macros
leading to warnings because they're not at top-level) suggests that we
should move the calls to `autoload` outside of the `let`, which would
probably make this problem even less likely.

> For instance, `magit` generates a 5 KiB bytecode chunk and 750-element
> constant vector which is perfectly manageable, but a package with more
> autoloads may be troublesome. Do you know a package that would fit
> the description?

I suspect none.  I suspect in the case of Magit the magit-autoloads.el
file is actually too large for its own good: it should probably be split
into autoloads that "face outside" (i.e. those that need to be defined
before Magit is used) from those facing inside (those that are needed
for internal lazy loading).

The old autoload.el didn't support this conveniently, but the new one
does, so a few years from now we'll have a clean solution :-)

        Stefan