(byte-compile, byte-compile-keep-pending)
(byte-compile-file-form-defmumble): Generate define-function rather than fset, to install definitions for defun, defmacro, etc.
This commit is contained in:
parent
2b86d62c8f
commit
6101b31fb0
1 changed files with 6 additions and 6 deletions
|
@ -1334,8 +1334,8 @@ With argument, insert value in current buffer after the form."
|
|||
;; writes the given form to the output buffer, being careful of docstrings
|
||||
;; in defun, defmacro, defvar, defconst and autoload because make-docfile is
|
||||
;; so amazingly stupid.
|
||||
;; fset's are output directly by byte-compile-file-form-defmumble; it does
|
||||
;; not pay to first build the fset in defmumble and then parse it here.
|
||||
;; define-functions are output directly by byte-compile-file-form-defmumble; it does
|
||||
;; not pay to first build the define-function in defmumble and then parse it here.
|
||||
(if (and (memq (car-safe form) '(defun defmacro defvar defconst autoload))
|
||||
(stringp (nth 3 form)))
|
||||
(byte-compile-output-docform '("\n(" 3 ")") form)
|
||||
|
@ -1376,7 +1376,7 @@ With argument, insert value in current buffer after the form."
|
|||
(let ((for-effect t))
|
||||
;; To avoid consing up monstrously large forms at load time, we split
|
||||
;; the output regularly.
|
||||
(and (eq (car-safe form) 'fset) (nthcdr 300 byte-compile-output)
|
||||
(and (eq (car-safe form) 'define-function) (nthcdr 300 byte-compile-output)
|
||||
(byte-compile-flush-pending))
|
||||
(funcall handler form)
|
||||
(if for-effect
|
||||
|
@ -1569,9 +1569,9 @@ With argument, insert value in current buffer after the form."
|
|||
new-one)))))
|
||||
'byte-compile-two-args)
|
||||
;; Output the form by hand, that's much simpler than having
|
||||
;; b-c-output-file-form analyze the fset.
|
||||
;; b-c-output-file-form analyze the define-function.
|
||||
(byte-compile-flush-pending)
|
||||
(princ "\n(fset '" outbuffer)
|
||||
(princ "\n(define-function '" outbuffer)
|
||||
(prin1 name outbuffer)
|
||||
(byte-compile-output-docform
|
||||
(cond ((atom code)
|
||||
|
@ -1602,7 +1602,7 @@ If FORM is a lambda or a macro, byte-compile it as a function."
|
|||
(cons 'macro (byte-compile-lambda fun))
|
||||
(byte-compile-lambda fun)))
|
||||
(if (symbolp form)
|
||||
(fset form fun)
|
||||
(define-function form fun)
|
||||
fun)))))))
|
||||
|
||||
(defun byte-compile-sexp (sexp)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue