From 16fb53f3357f5d15af4e5d05eac9c5cf35221bb0 Mon Sep 17 00:00:00 2001 From: toy <toy> Date: Fri, 26 Sep 2003 15:38:12 +0000 Subject: [PATCH] Update fasl file version to #x19a, for our next release. Use boot18 to bootstrap this change. --- bootfiles/18e/boot18.lisp | 61 +++++++++++++++++++++++++++++++++++++++ compiler/byte-comp.lisp | 4 +-- 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 bootfiles/18e/boot18.lisp diff --git a/bootfiles/18e/boot18.lisp b/bootfiles/18e/boot18.lisp new file mode 100644 index 000000000..c887a60f7 --- /dev/null +++ b/bootfiles/18e/boot18.lisp @@ -0,0 +1,61 @@ +;;;; +;;;; Boot file for changing the fasl file version numbers to 19a. +;;;; + +(in-package :c) + +(setf lisp::*enable-package-locked-errors* nil) + +;;; +;;; Note that BYTE-FASL-FILE-VERSION is a constant. +;;; +(setf (symbol-value 'byte-fasl-file-version) #x19a) +(setf (backend-fasl-file-version *target-backend*) #x19a) + +;;; +;;; Don't check fasl versions in the compiling Lisp because we'll +;;; load files compiled with the new version numbers. +;;; +(setq lisp::*skip-fasl-file-version-check* t) + +;;; +;;; This is here because BYTE-FASL-FILE-VERSION is constant-folded in +;;; OPEN-FASL-FILE. To make the new version number take effect, we +;;; have to redefine the function. +;;; +(defun open-fasl-file (name where &optional byte-p) + (declare (type pathname name)) + (let* ((stream (open name :direction :output + :if-exists :new-version + :element-type '(unsigned-byte 8))) + (res (make-fasl-file :stream stream))) + (multiple-value-bind + (version f-vers f-imp) + (if byte-p + (values "Byte code" + byte-fasl-file-version + (backend-byte-fasl-file-implementation *backend*)) + (values (backend-version *backend*) + (backend-fasl-file-version *backend*) + (backend-fasl-file-implementation *backend*))) + (format stream + "FASL FILE output from ~A.~@ + Compiled ~A on ~A~@ + Compiler ~A, Lisp ~A~@ + Targeted for ~A, FASL version ~X~%" + where + (ext:format-universal-time nil (get-universal-time)) + (machine-instance) compiler-version + (lisp-implementation-version) + version f-vers) + ;; + ;; Terminate header. + (dump-byte 255 res) + ;; + ;; Specify code format. + (dump-fop 'lisp::fop-long-code-format res) + (dump-byte f-imp res) + (dump-unsigned-32 f-vers res)) + res)) + +;;;; end of boot18.lisp diff --git a/compiler/byte-comp.lisp b/compiler/byte-comp.lisp index 207402124..ec1bc25a5 100644 --- a/compiler/byte-comp.lisp +++ b/compiler/byte-comp.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/byte-comp.lisp,v 1.39 2003/09/25 14:08:33 toy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/byte-comp.lisp,v 1.40 2003/09/26 15:38:12 toy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -32,7 +32,7 @@ ;;;; Fasl file format: -(defconstant byte-fasl-file-version #x18e) +(defconstant byte-fasl-file-version #x19a) (let* ((version-string (format nil "~X" byte-fasl-file-version))) (sys:register-lisp-feature (intern (concatenate 'string "CMU" version-string) :keyword)) -- GitLab