Raymond Toy pushed to branch issue-166-integer-decode-float-min-float at cmucl / cmucl
Commits: dd122d48 by Raymond Toy at 2023-02-25T07:17:01-08:00 Set version to current 21d in build.sh
Bootstrap files should come from the 21d directory, not the 21c directory.
- - - - - 62dfe149 by Raymond Toy at 2023-02-25T07:17:59-08:00 Move {DOUBLE,SINGLE}-FLOAT-INT-EXPONENT to KERNEL
Since {DOUBLE,SINGLE}-FLOAT-EXPONENT is in the KERNEL package, let's do the same for {DOUBLE,SINGLE}-FLOAT-INT-EXPONENT. This requires removing them from the C package so they can be exported from the KERNEL package.
To do this, use the bootstrap file boot-2021-07-1 to unintern these from the C package.
Then update the KERNEL package to export these symbols.
Finally, update the definition of FLOAT-INT-EXPONENT to use KERNEL:DOUBLE-FLOAT-INT-EXPONENT instead of C::DOUBLE-FLOAT-INT-EXPONENT.
- - - - - 0dac88e6 by Raymond Toy at 2023-02-25T07:24:24-08:00 Add comment on what the bootfile is doing.
- - - - - 7338f627 by Raymond Toy at 2023-02-25T07:25:19-08:00 Update CI to use the bootstrap file.
We'll have to continue using the bootstrap file until a new snapshot/release is done.
- - - - -
5 changed files:
- .gitlab-ci.yml - bin/build.sh - + src/bootfiles/21d/boot-2021-07-1.lisp - src/code/exports.lisp - src/compiler/generic/vm-type.lisp
Changes:
===================================== .gitlab-ci.yml ===================================== @@ -1,7 +1,7 @@ variables: download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/2021/07" version: "2021-07-x86" - bootstrap: "" + bootstrap: "-B boot-2021-07-1"
stages: - install
===================================== bin/build.sh ===================================== @@ -39,7 +39,7 @@ ENABLE2="yes" ENABLE3="yes" ENABLE4="yes"
-version=21c +version=21d SRCDIR=src BINDIR=bin TOOLDIR=$BINDIR
===================================== src/bootfiles/21d/boot-2021-07-1.lisp ===================================== @@ -0,0 +1,18 @@ +;; Bootstrap file +;; +;; Use "bin/build.sh -B boot-2021-07-1" to build this. +;; +;; We want to export the symbols from the KERNEL package which also +;; exists in the C package, so we unintern the conflicting symbols from +;; the C package. + +(in-package "KERNEL") +(ext:without-package-locks + (handler-bind + ((error (lambda (c) + ;;(declare (ignore c)) + (describe c) + (invoke-restart 'lisp::unintern-conflicting-symbols)))) + (export '(DOUBLE-FLOAT-INT-EXPONENT + SINGLE-FLOAT-INT-EXPONENT)))) +
===================================== src/code/exports.lisp ===================================== @@ -2329,6 +2329,7 @@ "DOUBLE-FLOAT-EXPONENT" "DOUBLE-FLOAT-BITS" "DOUBLE-FLOAT-HIGH-BITS" + "DOUBLE-FLOAT-INT-EXPONENT" "DOUBLE-FLOAT-LOW-BITS" "DOUBLE-FLOAT-P" "FLOAT-WAIT" "DYNAMIC-SPACE-FREE-POINTER" "ERROR-NUMBER-OR-LOSE" "FILENAME" "FLOAT-DIGITS" "FLOAT-EXPONENT" "FLOAT-FORMAT-DIGITS" @@ -2426,6 +2427,7 @@ "SIMPLE-ARRAY-SIGNED-BYTE-16-P" "SIMPLE-ARRAY-SIGNED-BYTE-30-P" "SIMPLE-ARRAY-SIGNED-BYTE-32-P" "SIMPLE-ARRAY-SIGNED-BYTE-8-P" "SIMPLE-UNBOXED-ARRAY" "SINGLE-FLOAT-BITS" "SINGLE-FLOAT-EXPONENT" + "SINGLE-FLOAT-INT-EXPONENT" "SINGLE-FLOAT-P" "SINGLE-VALUE-TYPE" "SPECIFIER-TYPE" "STACK-REF" "STD-COMPUTE-CLASS-PRECEDENCE-LIST" "STREAMLIKE" "SIMPLE-STREAM-BUFFER" "STRINGABLE" "STRINGLIKE"
===================================== src/compiler/generic/vm-type.lisp ===================================== @@ -51,7 +51,7 @@ #-long-float 'double-float-exponent #+long-float 'long-float-exponent) (deftype float-int-exponent () - 'c::double-float-int-exponent) + 'double-float-int-exponent) (deftype float-digits () #-long-float `(integer 0 ,vm:double-float-digits) #+long-float `(integer 0 ,vm:long-float-digits))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/1683679d5ac48e16e0bf9ba...