From a9b6e216ca8de750f9ce9ecc1cf450fee1c07c5f Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Fri, 11 Feb 1994 13:36:59 +0000
Subject: [PATCH] Add MAYBE-BYTE-LOAD and BYTE-LOAD-OVER functions for
 controlling loading of byte code in worldload.

---
 code/save.lisp | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/code/save.lisp b/code/save.lisp
index 3cb865e75..8340eee33 100644
--- a/code/save.lisp
+++ b/code/save.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/save.lisp,v 1.19 1994/01/28 17:22:59 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/save.lisp,v 1.20 1994/02/11 13:36:59 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -255,3 +255,30 @@
 (defun assert-user-package ()
   (unless (eq *package* (find-package "USER"))
     (error "Change *PACKAGE* to the USER package and try again.")))
+
+;;; MAYBE-BYTE-LOAD  --  Interface
+;;;
+;;;    If Name has been byte-compiled, and :runtime is a feature, then load the
+;;; byte-compiled version, otherwise just do normal load.
+;;;
+(defun maybe-byte-load (name &optional (load-native t))
+  (let ((bname (make-pathname
+		:defaults name
+		:type #.(c:backend-byte-fasl-file-type c:*target-backend*))))
+    (cond ((and (featurep :runtime)
+		(probe-file bname))
+	   (load bname))
+	  (load-native
+	   (load name)))))
+
+
+;;; BYTE-LOAD-OVER  --  Interface
+;;;
+;;;    Replace a cold-loaded native object file with a byte-compiled one, if it
+;;; exists.
+;;;
+(defun byte-load-over (name)
+  (load (make-pathname
+	 :defaults name
+	 :type #.(c:backend-byte-fasl-file-type c:*target-backend*))
+	:if-does-not-exist nil))
-- 
GitLab