diff --git a/src/bootfiles/21c/boot-2018-02-1.lisp b/src/bootfiles/21c/boot-2018-02-1.lisp new file mode 100644 index 0000000000000000000000000000000000000000..fd82278308509f2b65890362533c79aec49291ac --- /dev/null +++ b/src/bootfiles/21c/boot-2018-02-1.lisp @@ -0,0 +1,5 @@ +;; Get rid of incorrect symbol c::%unary-fround and just inherit +;; %unary-fround from the kernel package. +(ext:without-package-locks + (unintern 'c::%unary-fround "C")) +(export 'kernel::%unary-fround "KERNEL") diff --git a/src/code/float.lisp b/src/code/float.lisp index 4616fedf9041625d6390aee441daf0a9392484b8..57e377cf2fd9528ef17536eeb26dc8cbd7bbd146 100644 --- a/src/code/float.lisp +++ b/src/code/float.lisp @@ -23,7 +23,7 @@ %unary-ftruncate/single-float %unary-ftruncate/double-float)) #-x87 -(export '(%unary-fround/single-float %unary-fround/double-float)) +(export '(%unary-fround %unary-fround/single-float %unary-fround/double-float)) (in-package "LISP") (export '(least-positive-normalized-short-float diff --git a/src/general-info/release-21d.md b/src/general-info/release-21d.md index 87c36a69829105554b1c2a9c89bd5d7ce7875ebf..b15456bb36c220f534d18ff360018348475fe521 100644 --- a/src/general-info/release-21d.md +++ b/src/general-info/release-21d.md @@ -29,10 +29,11 @@ public domain. * ANSI compliance fixes: * Bug fixes: * Gitlab tickets: - * ~~~#50~~~ CLX (Hemlock) fails to run. - * ~~~#49~~~ CLM crashes - * ~~~#47~~~ Backquate and multiple splices - * ~~~#59~~~ Incorrect type-derivation for `decode-float` + * ~~#50~~ CLX (Hemlock) fails to run. + * ~~#49~~ CLM crashes + * ~~#47~~ Backquate and multiple splices + * ~~#59~~ Incorrect type-derivation for `decode-float` + * ~~#60~~ The function `C::%UNARY-FROUND` is undefined * Other changes: * Improvements to the PCL implementation of CLOS: * Changes to building procedure: diff --git a/tests/issues.lisp b/tests/issues.lisp index 75284cb3be91ca356bd02627bd421a15b0869579..5458531c092935c27868b296aab00ef21ab2badd 100644 --- a/tests/issues.lisp +++ b/tests/issues.lisp @@ -503,4 +503,15 @@ (c::decode-float-exp-derive-type-aux (c::specifier-type `(single-float ,arg-lo ,arg-hi))) arg-lo - arg-hi)))) \ No newline at end of file + arg-hi)))) + +(define-test issue.60 + (:tag :issues) + (let ((c14 (compile nil #'(lambda (x) + (fround (the (member 1.0 2d0) x)))))) + (assert-equalp + (values 1.0 0.0) + (funcall c14 1.0)) + (assert-equalp + (values 2d0 0d0) + (funcall c14 2d0))))