Mercurial > emacs
changeset 28336:49b7af1b8e1b
(byte-compile-eval): Fix and reenable the code.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sun, 26 Mar 2000 19:49:29 +0000 |
parents | 012be509f4f4 |
children | 080ef35e195d |
files | lisp/emacs-lisp/bytecomp.el |
diffstat | 1 files changed, 19 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/bytecomp.el Sun Mar 26 19:33:04 2000 +0000 +++ b/lisp/emacs-lisp/bytecomp.el Sun Mar 26 19:49:29 2000 +0000 @@ -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 @@ ;;; 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