From d5e84bfbc4972642f6e511a1a6a056563156f3b8 Mon Sep 17 00:00:00 2001 From: rtoy <rtoy> Date: Tue, 17 May 2005 17:24:11 +0000 Subject: [PATCH] Update fasl file version to #x19b. Use boot-19b.lisp to bootstrap this change. --- bootfiles/19a/boot-19b.lisp | 61 +++++++++++++++++++++++++++++++++++++ compiler/byte-comp.lisp | 4 +-- 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 bootfiles/19a/boot-19b.lisp diff --git a/bootfiles/19a/boot-19b.lisp b/bootfiles/19a/boot-19b.lisp new file mode 100644 index 000000000..a3bf0456b --- /dev/null +++ b/bootfiles/19a/boot-19b.lisp @@ -0,0 +1,61 @@ +;;;; +;;;; Boot file for changing the fasl file version numbers to 19b. +;;;; + +(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) #x19b) +(setf (backend-fasl-file-version *target-backend*) #x19b) + +;;; +;;; 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 26df5bc7f..cc8209146 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.42 2003/10/09 14:00:37 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/byte-comp.lisp,v 1.43 2005/05/17 17:24:11 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -32,7 +32,7 @@ ;;;; Fasl file format: -(defconstant byte-fasl-file-version #x19a) +(defconstant byte-fasl-file-version #x19b) (let* ((version-string (format nil "~X" byte-fasl-file-version))) (sys:register-lisp-feature (intern (concatenate 'string "CMU" version-string) :keyword)) -- GitLab