Function: cl-load-time-value
cl-load-time-value is an autoloaded macro defined in cl-macs.el.gz.
Signature
(cl-load-time-value FORM &optional READ-ONLY)
Documentation
Like progn, but evaluates the body at load time.
The result of the body appears to the compiler as a quoted constant.
Aliases
load-time-value (obsolete since 27.1)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/cl-macs.el.gz
;;;###autoload
(defmacro cl-load-time-value (form &optional _read-only)
"Like `progn', but evaluates the body at load time.
The result of the body appears to the compiler as a quoted constant."
(declare (debug (form &optional sexp)))
(if (macroexp-compiling-p)
(let* ((temp (cl-gentemp "--cl-load-time--"))
(set `(setq ,temp ,form)))
(if (and (fboundp 'byte-compile-file-form-defmumble)
(boundp 'this-kind) (boundp 'that-one))
;; Else, we can't output right away, so we have to delay it to the
;; next time we're at the top-level.
;; FIXME: Use advice-add/remove.
(fset 'byte-compile-file-form
(let ((old (symbol-function 'byte-compile-file-form)))
(lambda (form)
(fset 'byte-compile-file-form old)
(byte-compile-file-form set)
(byte-compile-file-form form))))
;; If we're not in the middle of compiling something, we can
;; output directly to byte-compile-outbuffer, to make sure
;; temp is set before we use it.
(print set byte-compile--outbuffer))
temp)
`',(eval form lexical-binding)))