More aggressive bytecode split between top-level forms (bug#55972)
* lisp/emacs-lisp/bytecomp.el (byte-compile-keep-pending): Allow bytecode split between all kinds of top-level forms, not just those with chunk handlers, to prevent individual chunks from growing too large. In particular this helps compilation of package-quickstart.el.
This commit is contained in:
parent
608f349cd2
commit
2ebe0524e8
1 changed files with 4 additions and 5 deletions
|
@ -2521,13 +2521,12 @@ list that represents a doc string reference.
|
|||
(defun byte-compile-keep-pending (form &optional handler)
|
||||
(if (memq byte-optimize '(t source))
|
||||
(setq form (byte-optimize-one-form form t)))
|
||||
;; To avoid consing up monstrously large forms at load time, we split
|
||||
;; the output regularly.
|
||||
(when (nthcdr 300 byte-compile-output)
|
||||
(byte-compile-flush-pending))
|
||||
(if handler
|
||||
(let ((byte-compile--for-effect t))
|
||||
;; To avoid consing up monstrously large forms at load time, we split
|
||||
;; the output regularly.
|
||||
(and (memq (car-safe form) '(fset defalias))
|
||||
(nthcdr 300 byte-compile-output)
|
||||
(byte-compile-flush-pending))
|
||||
(funcall handler form)
|
||||
(if byte-compile--for-effect
|
||||
(byte-compile-discard)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue