Raymond Toy pushed to branch master at cmucl / cmucl

Commits:

3 changed files:

Changes:

  • src/bootfiles/20f/boot-21a.lisp
    --- /dev/null
    +++ b/src/bootfiles/20f/boot-21a.lisp
    @@ -0,0 +1,68 @@
    +;;;;
    +;;;; Boot file for changing the fasl file version numbers to 21a.
    +;;;;
    +
    +(in-package :c)
    +
    +(setf lisp::*enable-package-locked-errors* nil)
    +
    +;;;
    +;;; Note that BYTE-FASL-FILE-VERSION is a constant.
    +;;;
    +;;; (Be sure to change BYTE-FASL-FILE-VERSION in
    +;;; compiler/byte-comp.lisp to the correct value too!)
    +;;;
    +#-cmu21a
    +(setf (symbol-value 'byte-fasl-file-version)       #x21a)
    +#-cmu21a
    +(setf (backend-fasl-file-version *target-backend*) #x21a)
    +
    +;;;
    +;;; Don't check fasl versions in the compiling Lisp because we'll
    +;;; load files compiled with the new version numbers.
    +;;;
    +#-cmu21a
    +(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.
    +;;;
    +#-cmu21a
    +(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)
    +			    :class 'binary-text-stream))
    +	 (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))
    +
    

  • src/compiler/byte-comp.lisp
    --- a/src/compiler/byte-comp.lisp
    +++ b/src/compiler/byte-comp.lisp
    @@ -38,7 +38,7 @@
     ;; 0-9 followed by a single hex digit in the range a-f.  Then the
     ;; version looks like a decimal number followed by a minor release
     ;; letter of a to f.
    -(defconstant byte-fasl-file-version #x20f)
    +(defconstant byte-fasl-file-version #x21a)
     
     (let* ((version-string (format nil "~X" byte-fasl-file-version)))
       ;; Add :cmu<n> to *features*
    

  • src/general-info/release-21a.txt
    --- a/src/general-info/release-21a.txt
    +++ b/src/general-info/release-21a.txt
    @@ -1,7 +1,5 @@
     ========================== C M U C L  21 a =============================
     
    -[In Progress]
    -
     The CMUCL project is pleased to announce the release of CMUCL 21a.
     This is a major release which contains numerous enhancements and
     bug fixes from the 20f release.