Commit e87e8196 authored by Raymond Toy's avatar Raymond Toy
Browse files

Merge branch '21c-branch' into 'master'

21c branch

See merge request cmucl/cmucl!27
parents 4c0780dc 9697034f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -7,6 +7,6 @@ before_script:

test:
  script:
    - bin/build.sh -C "" -o ./snapshot/bin/lisp
    - bin/build.sh -B boot-21c -C "" -o ./snapshot/bin/lisp
    - bin/make-dist.sh -I dist-linux linux-4
    - bin/run-tests.sh -l dist-linux/bin/lisp 2>&1 | tee test.log
+68 −0
Original line number Diff line number Diff line
;;;;
;;;; 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!)
;;;
#-cmu21c
(setf (symbol-value 'byte-fasl-file-version)       #x21c)
#-cmu21c
(setf (backend-fasl-file-version *target-backend*) #x21c)

;;;
;;; Don't check fasl versions in the compiling Lisp because we'll
;;; load files compiled with the new version numbers.
;;;
#-cmu21c
(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.
;;;
#-cmu21c
(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))
+1 −1
Original line number Diff line number Diff line
@@ -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 #x21b)
(defconstant byte-fasl-file-version #x21c)

(let* ((version-string (format nil "~X" byte-fasl-file-version)))
  ;; Add :cmu<n> to *features*
+1 −3
Original line number Diff line number Diff line
**Work in progress**

# CMUCL 21c

The CMUCL project is pleased to announce the release of CMUCL 21c.
@@ -52,7 +50,7 @@ See http://www.cmucl.org or
https://gitlab.common-lisp.net/cmucl/cmucl for more information,
See
https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl
for obtaining CMUCL, including sources and binaries..
for obtaining CMUCL, including sources and binaries.


We hope you enjoy using this release of CMUCL!
+40 −0
Original line number Diff line number Diff line
** Work in Progress **
# CMUCL 21d

The CMUCL project is pleased to announce the release of CMUCL 21c.
This is a major release which contains numerous enhancements and bug
fixes from the 21a release.

CMUCL is a free, high performance implementation of the Common Lisp
programming language which runs on most major Unix platforms. It
mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
sophisticated native code compiler; a powerful foreign function
interface; an implementation of CLOS, the Common Lisp Object System,
which includes multi-methods and a meta-object protocol; a
source-level debugger and code profiler; and an Emacs-like editor
implemented in Common Lisp. CMUCL is maintained by a team of
volunteers collaborating over the Internet, and is mostly in the
public domain.

## New in this release:
  * Known issues:
  * Feature enhancements
  * Changes
  * ANSI compliance fixes:
  * Bug fixes:
  * Gitlab tickets:
  * Other changes:
  * Improvements to the PCL implementation of CLOS:
  * Changes to building procedure:

This release is not binary compatible with code compiled using CMUCL
21c; you will need to recompile FASL files.

See http://www.cmucl.org or
https://gitlab.common-lisp.net/cmucl/cmucl for more information,
See
https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl
for obtaining CMUCL, including sources and binaries..


We hope you enjoy using this release of CMUCL!