;;; This version incorporates changes up to version 2.10 of the
;;; Zawinski-Furuseth compiler.
-(defconst byte-compile-version "$Revision: 2.91 $")
+(defconst byte-compile-version "$Revision: 2.92 $")
;; This file is part of GNU Emacs.
:type '(choice (const :tag "Yes" t) (const :tag "No" nil)
(other :tag "Ask" lambda)))
-(defconst byte-compile-call-tree nil "Alist of functions and their call tree.
+(defvar byte-compile-call-tree nil "Alist of functions and their call tree.
Each element looks like
\(FUNCTION CALLERS CALLS\)
\f
;;; The byte codes; this information is duplicated in bytecomp.c
-(defconst byte-code-vector nil
+(defvar byte-code-vector nil
"An array containing byte-code names indexed by byte-code values.")
-(defconst byte-stack+-info nil
+(defvar byte-stack+-info nil
"An array with the stack adjustment for each byte-code.")
(defmacro byte-defop (opcode stack-adjust opname &optional docstring)
(if (symbolp x) (list 'prin1-to-string x) x))
args)))))))
-(defconst byte-compile-last-warned-form nil)
-(defconst byte-compile-last-logged-file nil)
+(defvar byte-compile-last-warned-form nil)
+(defvar byte-compile-last-logged-file nil)
(defvar byte-compile-last-line nil
"Last known line number in the input.")
(if (> skip-count 0) (format ", %d skipped" skip-count) "")
(if (> dir-count 1) (format " in %d directories" dir-count) ""))))
+(defvar no-byte-compile nil
+ "Non-nil to prevent byte-compiling of emacs-lisp code.
+This is normally set in local file variables at the end of the elisp file:
+
+;; Local Variables:\n;; no-byte-compile: t\n;; End: ")
+
;;;###autoload
(defun byte-compile-file (filename &optional load)
"Compile a file of Lisp code named FILENAME into a file of byte code.
(setq default-directory (file-name-directory filename)))
;; Check if the file's local variables explicitly specify not to
;; compile this file.
- (if (with-current-buffer input-buffer
- (and (boundp 'no-byte-compile) no-byte-compile))
+ (if (with-current-buffer input-buffer no-byte-compile)
(progn
(message "%s not compiled because of `no-byte-compile: %s'"
(file-relative-name filename)
(byte-compile-warn "third arg to %s %s is not a string: %s"
fun var string))
`(put ',var 'variable-documentation ,string))
- (if (cdr (cdr form)) ; `value' provided
+ (if (cddr form) ; `value' provided
(if (eq fun 'defconst)
;; `defconst' sets `var' unconditionally.
- `(setq ,var ,value)
+ (let ((tmp (make-symbol "defconst-tmp-var")))
+ `(let ((,tmp ,value))
+ (eval '(defconst ,var ,tmp))))
;; `defvar' sets `var' only when unbound.
`(if (not (boundp ',var)) (setq ,var ,value))))
`',var))))