Commit ea4b0ca3 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(byte-compile-eval): Fix and reenable the code.

parent 3d4ff2dd
2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
* emacs-lisp/bytecomp.el (byte-compile-eval): Fix and reenable
the code.
2000-03-26 Dave Love <fx@gnu.org>
* net/browse-url.el (browse-url): Re-fix case of
......@@ -14,6 +19,10 @@
compatible with inf-lisp version.
(eval-defun-1): Fix custom-declare-variable case.
2000-03-25 Stefan Monnier <monnier@cs.yale.edu>
* cus-edit.el (hook): Use `dolist' instead of CL's `mapc'.
2000-03-24 Gerd Moellmann <gerd@gnu.org>
* Makefile (COMPILE_FIRST): New macro.
......
......@@ -10,7 +10,7 @@
;;; This version incorporates changes up to version 2.10 of the
;;; Zawinski-Furuseth compiler.
(defconst byte-compile-version "$Revision: 1.1 $")
(defconst byte-compile-version "$Revision: 2.65 $")
;; This file is part of GNU Emacs.
......@@ -762,25 +762,32 @@ otherwise pop it")
;;; compile-time evaluation
(defun byte-compile-eval (x)
(defun byte-compile-eval (form)
"Eval FORM and mark the functions defined therein.
Each function's symbol gets marked with the `byte-compile-noruntime' property."
(let ((hist-orig load-history)
(hist-nil-orig current-load-list))
(prog1 (eval x)
(when (and nil (memq 'noruntime byte-compile-warnings))
(prog1 (eval form)
(when (memq 'noruntime byte-compile-warnings)
(let ((hist-new load-history)
(hist-nil-new current-load-list))
(while (not (eq hist-new hist-orig))
(dolist (s (pop hist-new))
(cond
((symbolp s) (put s 'byte-compile-noruntime t))
((and (consp s) (eq 'autoload (car s)))
(put (cdr s) 'byte-compile-noruntime t)))))
(while (not (eq hist-nil-new hist-nil-orig))
;; Go through load-history, look for newly loaded files
;; and mark all the functions defined therein.
(while (and hist-new (not (eq hist-new hist-orig)))
(let ((xs (pop hist-new)))
;; Make sure the file was not already loaded before.
(unless (assoc (car xs) hist-orig)
(dolist (s xs)
(cond
((symbolp s) (put s 'byte-compile-noruntime t))
((and (consp s) (eq 'autoload (car s)))
(put (cdr s) 'byte-compile-noruntime t)))))))
;; Go through current-load-list for the locally defined funs.
(while (and hist-nil-new (not (eq hist-nil-new hist-nil-orig)))
(let ((s (pop hist-nil-new)))
(when (symbolp s)
(put s 'byte-compile-noruntime t)))))))))
;;; byte compiler messages
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment