cmucl-cvs
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- 1 participants
- 3320 discussions
01 Oct '25
Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
23de5fc0 by Raymond Toy at 2025-10-01T08:36:54-07:00
Fix #442: Make release 21f
- - - - -
4cd3f395 by Raymond Toy at 2025-10-01T08:36:54-07:00
Merge branch 'branch-21f' into 'master'
Fix #442: Make release 21f
Closes #442
See merge request cmucl/cmucl!322
- - - - -
7 changed files:
- .gitlab-ci.yml
- + src/bootfiles/21e/boot-21f.lisp
- src/compiler/byte-comp.lisp
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl-x86-vm.po
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl.po
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -4,7 +4,7 @@ variables:
download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/$year/$month"
version: "$year-$month-x86"
tar_ext: "xz"
- bootstrap: ""
+ bootstrap: "-B boot-21f"
# Default install configuration to download the cmucl tarballs to use
# for building.
@@ -129,6 +129,7 @@ linux:install:
- if: $CI_PIPELINE_SOURCE == "schedule"
- if: $CI_PIPELINE_SOURCE == "push"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
+ - if: $CI_PIPELINE_SOURCE == "branch"
linux:build:
<<: *build_configuration
=====================================
src/bootfiles/21e/boot-21f.lisp
=====================================
@@ -0,0 +1,68 @@
+;;;;
+;;;; Boot file for changing the fasl file version numbers to 21f.
+;;;;
+
+(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!)
+;;;
+#-cmu21f
+(setf (symbol-value 'byte-fasl-file-version) #x21f)
+#-cmu21f
+(setf (backend-fasl-file-version *target-backend*) #x21f)
+
+;;;
+;;; Don't check fasl versions in the compiling Lisp because we'll
+;;; load files compiled with the new version numbers.
+;;;
+#-cmu21f
+(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.
+;;;
+#-cmu21f
+(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
=====================================
@@ -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 #x21e)
+(defconstant byte-fasl-file-version #x21f)
(let* ((version-string (format nil "~X" byte-fasl-file-version)))
;; Add :cmu<n> to *features*
=====================================
src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl-x86-vm.po
=====================================
@@ -109,6 +109,38 @@ msgstr ""
"Readthay afesay ushpay ofway alvay ontoway ethay istlay inway ethay ectorvay "
"elementway."
+#: src/code/x86-vm.lisp
+msgid "The bit in the x87 FPU control word that controls the infinity mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU control word for the rounding mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU contol word for the FP operation precision."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"The bits in the x87 FPU control word indicating the exceptions that\n"
+" are enabled."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"Alist for the x87 precison control. The car is the symbolic\n"
+" precision and the cdr is the value for the precision control field."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print SSE2 floating modes word in a human-readable fashion."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print X87 floating modes word in a human-readable fashion."
+msgstr ""
+
#: src/code/load.lisp
msgid "Top-Level Form"
msgstr "Optay-Evellay Ormfay"
@@ -179,6 +211,23 @@ msgstr "Askmay otay etgay ethay ixnumfay agtay"
msgid "Maximum number of bits in a positive fixnum"
msgstr "Aximummay umbernay ofway itsbay inway away ositivepay ixnumfay"
+#: src/compiler/x86/parms.lisp
+msgid ""
+"The bits in the FP mode that hold the accrued exceptions that have\n"
+" occurred since the bits were reset."
+msgstr ""
+
+#: src/compiler/x86/parms.lisp
+msgid "The bits in the FP mode that hold FP exceptions that are enabled."
+msgstr ""
+
+#: src/compiler/x86/parms.lisp
+msgid ""
+"The bits in the FP mode that hold the current exception. However\n"
+" for x86, there aren't separate bits for this, so we use the stick\n"
+" bits from the accrued exceptions"
+msgstr ""
+
#: src/compiler/x86/vm.lisp
msgid "Redefining SC number ~D from ~S to ~S."
msgstr "Edefiningray SC umbernay ~D omfray ~S otay ~S."
=====================================
src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
=====================================
@@ -5197,7 +5197,7 @@ msgstr ""
msgid ""
"WITH-STRING-CODEPOINT-ITERATOR ((next string) &body body)\n"
" provides a method of looping through a string from the beginning to\n"
-" the end of the string prodcucing successive codepoints from the\n"
+" the end of the string producing successive codepoints from the\n"
" string. NEXT is bound to a generator macro that, within the scope\n"
" of the invocation, returns one or two values. The first value tells\n"
" whether any objects remain in the string. When the first value is\n"
@@ -5663,7 +5663,7 @@ msgstr ""
msgid ""
"WITH-STRING-GLYPH-ITERATOR ((next string) &body body)\n"
" provides a method of looping through a string from the beginning to\n"
-" the end of the string prodcucing successive glyphs from the string.\n"
+" the end of the string producing successive glyphs from the string.\n"
" NEXT is bound to a generator macro that, within the scope of the\n"
" invocation, returns one or three values. The first value tells\n"
" whether any objects remain in the string. When the first value is\n"
@@ -11833,6 +11833,7 @@ msgid ""
" (:EXPORT {symbol-name}*)\n"
" (:INTERN {symbol-name}*)\n"
" (:SIZE <integer>)\n"
+" (:LOCAL-NICKNAMES {({nickname package}*)})\n"
" All options except :SIZE and :DOCUMENTATION can be used multiple times."
msgstr ""
"Efinesday away ewnay ackagepay alledcay PACKAGE. Eachway ofway OPTIONS "
@@ -12285,6 +12286,58 @@ msgstr ""
"ofway ethay ymbolssay\n"
" oundfay insteadway ofway escribingday emthay."
+#: src/code/package.lisp
+msgid ""
+"Returns an alist of (local-nickname . actual-package) describing the\n"
+" nicknames local to Package."
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"For the designated package Package (defaulting to *PACKAGE*), add\n"
+" Local-Nickname as a package local nickname to the package\n"
+" Actual-Package. Actual-Package and Package must be an package\n"
+" designator. Local-Nickname should be a string designator.\n"
+"\n"
+" Returns the designated package.\n"
+"\n"
+" Signals a continuable error if any of the following are true:\n"
+" - Local-Nickname is already a local nickname for a different package\n"
+" - Local-Nickname is one of \"CL\", \"COMMON-LISP\", or \"KEYWORD\""
+msgstr ""
+
+#: src/code/package.lisp
+msgid "Local nickname cannot be \"CL\", \"COMMON-LISP\" or \"KEYWORD\""
+msgstr ""
+
+#: src/code/package.lisp
+#, fuzzy
+msgid "~A is already a local nickname for the package ~A in ~A"
+msgstr "~Away isway away icknay-amenay orfay ethay ackagepay ~Away"
+
+#: src/code/package.lisp
+msgid ""
+"~A cannot be a package local nickname for the global package~_ ~A with the "
+"same name"
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"~A cannot be a package local nickname for the global package~_ ~A with "
+"nickname ~A"
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"If Package has Old-Nickname as a local nickname, it is removed.\n"
+" Returns true if the nickname existed and was removed. Otherwise\n"
+" returns NIL."
+msgstr ""
+
+#: src/code/package.lisp
+msgid "Returns a list of packages which have a local nickname for Package."
+msgstr ""
+
#: src/code/reader.lisp
msgid "Float format for 1.0E1"
msgstr "Oatflay ormatfay orfay 1.0E1"
=====================================
src/i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po
=====================================
@@ -77,6 +77,38 @@ msgstr ""
msgid "Thread safe push of val onto the list in the vector element."
msgstr ""
+#: src/code/x86-vm.lisp
+msgid "The bit in the x87 FPU control word that controls the infinity mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU control word for the rounding mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU contol word for the FP operation precision."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"The bits in the x87 FPU control word indicating the exceptions that\n"
+" are enabled."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"Alist for the x87 precison control. The car is the symbolic\n"
+" precision and the cdr is the value for the precision control field."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print SSE2 floating modes word in a human-readable fashion."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print X87 floating modes word in a human-readable fashion."
+msgstr ""
+
#: src/code/load.lisp
msgid "Top-Level Form"
msgstr ""
@@ -136,6 +168,23 @@ msgstr ""
msgid "Maximum number of bits in a positive fixnum"
msgstr ""
+#: src/compiler/x86/parms.lisp
+msgid ""
+"The bits in the FP mode that hold the accrued exceptions that have\n"
+" occurred since the bits were reset."
+msgstr ""
+
+#: src/compiler/x86/parms.lisp
+msgid "The bits in the FP mode that hold FP exceptions that are enabled."
+msgstr ""
+
+#: src/compiler/x86/parms.lisp
+msgid ""
+"The bits in the FP mode that hold the current exception. However\n"
+" for x86, there aren't separate bits for this, so we use the stick\n"
+" bits from the accrued exceptions"
+msgstr ""
+
#: src/compiler/x86/vm.lisp
msgid "Redefining SC number ~D from ~S to ~S."
msgstr ""
=====================================
src/i18n/locale/ko/LC_MESSAGES/cmucl.po
=====================================
@@ -3718,7 +3718,7 @@ msgstr ""
msgid ""
"WITH-STRING-CODEPOINT-ITERATOR ((next string) &body body)\n"
" provides a method of looping through a string from the beginning to\n"
-" the end of the string prodcucing successive codepoints from the\n"
+" the end of the string producing successive codepoints from the\n"
" string. NEXT is bound to a generator macro that, within the scope\n"
" of the invocation, returns one or two values. The first value tells\n"
" whether any objects remain in the string. When the first value is\n"
@@ -3987,7 +3987,7 @@ msgstr ""
msgid ""
"WITH-STRING-GLYPH-ITERATOR ((next string) &body body)\n"
" provides a method of looping through a string from the beginning to\n"
-" the end of the string prodcucing successive glyphs from the string.\n"
+" the end of the string producing successive glyphs from the string.\n"
" NEXT is bound to a generator macro that, within the scope of the\n"
" invocation, returns one or three values. The first value tells\n"
" whether any objects remain in the string. When the first value is\n"
@@ -8225,6 +8225,7 @@ msgid ""
" (:EXPORT {symbol-name}*)\n"
" (:INTERN {symbol-name}*)\n"
" (:SIZE <integer>)\n"
+" (:LOCAL-NICKNAMES {({nickname package}*)})\n"
" All options except :SIZE and :DOCUMENTATION can be used multiple times."
msgstr ""
@@ -8568,6 +8569,57 @@ msgid ""
" found instead of describing them."
msgstr ""
+#: src/code/package.lisp
+msgid ""
+"Returns an alist of (local-nickname . actual-package) describing the\n"
+" nicknames local to Package."
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"For the designated package Package (defaulting to *PACKAGE*), add\n"
+" Local-Nickname as a package local nickname to the package\n"
+" Actual-Package. Actual-Package and Package must be an package\n"
+" designator. Local-Nickname should be a string designator.\n"
+"\n"
+" Returns the designated package.\n"
+"\n"
+" Signals a continuable error if any of the following are true:\n"
+" - Local-Nickname is already a local nickname for a different package\n"
+" - Local-Nickname is one of \"CL\", \"COMMON-LISP\", or \"KEYWORD\""
+msgstr ""
+
+#: src/code/package.lisp
+msgid "Local nickname cannot be \"CL\", \"COMMON-LISP\" or \"KEYWORD\""
+msgstr ""
+
+#: src/code/package.lisp
+msgid "~A is already a local nickname for the package ~A in ~A"
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"~A cannot be a package local nickname for the global package~_ ~A with the "
+"same name"
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"~A cannot be a package local nickname for the global package~_ ~A with "
+"nickname ~A"
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"If Package has Old-Nickname as a local nickname, it is removed.\n"
+" Returns true if the nickname existed and was removed. Otherwise\n"
+" returns NIL."
+msgstr ""
+
+#: src/code/package.lisp
+msgid "Returns a list of packages which have a local nickname for Package."
+msgstr ""
+
#: src/code/reader.lisp
msgid "Float format for 1.0E1"
msgstr ""
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/d537a8a31c8bba689f02e7…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/d537a8a31c8bba689f02e7…
You're receiving this email because of your account on gitlab.common-lisp.net.
1
0
20 Sep '25
Raymond Toy pushed to branch branch-21f at cmucl / cmucl
Commits:
05ce8677 by Raymond Toy at 2025-09-20T08:54:38-07:00
Update po files
- - - - -
0a2c9390 by Raymond Toy at 2025-09-20T09:06:16-07:00
Update CI to use boot-21f bootstrap file.
- - - - -
5 changed files:
- .gitlab-ci.yml
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl-x86-vm.po
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl.po
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -4,7 +4,7 @@ variables:
download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/$year/$month"
version: "$year-$month-x86"
tar_ext: "xz"
- bootstrap: ""
+ bootstrap: "-B boot-21f"
# Default install configuration to download the cmucl tarballs to use
# for building.
@@ -129,6 +129,7 @@ linux:install:
- if: $CI_PIPELINE_SOURCE == "schedule"
- if: $CI_PIPELINE_SOURCE == "push"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
+ - if: $CI_PIPELINE_SOURCE == "branch"
linux:build:
<<: *build_configuration
=====================================
src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl-x86-vm.po
=====================================
@@ -109,6 +109,38 @@ msgstr ""
"Readthay afesay ushpay ofway alvay ontoway ethay istlay inway ethay ectorvay "
"elementway."
+#: src/code/x86-vm.lisp
+msgid "The bit in the x87 FPU control word that controls the infinity mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU control word for the rounding mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU contol word for the FP operation precision."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"The bits in the x87 FPU control word indicating the exceptions that\n"
+" are enabled."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"Alist for the x87 precison control. The car is the symbolic\n"
+" precision and the cdr is the value for the precision control field."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print SSE2 floating modes word in a human-readable fashion."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print X87 floating modes word in a human-readable fashion."
+msgstr ""
+
#: src/code/load.lisp
msgid "Top-Level Form"
msgstr "Optay-Evellay Ormfay"
@@ -179,6 +211,23 @@ msgstr "Askmay otay etgay ethay ixnumfay agtay"
msgid "Maximum number of bits in a positive fixnum"
msgstr "Aximummay umbernay ofway itsbay inway away ositivepay ixnumfay"
+#: src/compiler/x86/parms.lisp
+msgid ""
+"The bits in the FP mode that hold the accrued exceptions that have\n"
+" occurred since the bits were reset."
+msgstr ""
+
+#: src/compiler/x86/parms.lisp
+msgid "The bits in the FP mode that hold FP exceptions that are enabled."
+msgstr ""
+
+#: src/compiler/x86/parms.lisp
+msgid ""
+"The bits in the FP mode that hold the current exception. However\n"
+" for x86, there aren't separate bits for this, so we use the stick\n"
+" bits from the accrued exceptions"
+msgstr ""
+
#: src/compiler/x86/vm.lisp
msgid "Redefining SC number ~D from ~S to ~S."
msgstr "Edefiningray SC umbernay ~D omfray ~S otay ~S."
=====================================
src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
=====================================
@@ -5197,7 +5197,7 @@ msgstr ""
msgid ""
"WITH-STRING-CODEPOINT-ITERATOR ((next string) &body body)\n"
" provides a method of looping through a string from the beginning to\n"
-" the end of the string prodcucing successive codepoints from the\n"
+" the end of the string producing successive codepoints from the\n"
" string. NEXT is bound to a generator macro that, within the scope\n"
" of the invocation, returns one or two values. The first value tells\n"
" whether any objects remain in the string. When the first value is\n"
@@ -5663,7 +5663,7 @@ msgstr ""
msgid ""
"WITH-STRING-GLYPH-ITERATOR ((next string) &body body)\n"
" provides a method of looping through a string from the beginning to\n"
-" the end of the string prodcucing successive glyphs from the string.\n"
+" the end of the string producing successive glyphs from the string.\n"
" NEXT is bound to a generator macro that, within the scope of the\n"
" invocation, returns one or three values. The first value tells\n"
" whether any objects remain in the string. When the first value is\n"
@@ -11833,6 +11833,7 @@ msgid ""
" (:EXPORT {symbol-name}*)\n"
" (:INTERN {symbol-name}*)\n"
" (:SIZE <integer>)\n"
+" (:LOCAL-NICKNAMES {({nickname package}*)})\n"
" All options except :SIZE and :DOCUMENTATION can be used multiple times."
msgstr ""
"Efinesday away ewnay ackagepay alledcay PACKAGE. Eachway ofway OPTIONS "
@@ -12285,6 +12286,58 @@ msgstr ""
"ofway ethay ymbolssay\n"
" oundfay insteadway ofway escribingday emthay."
+#: src/code/package.lisp
+msgid ""
+"Returns an alist of (local-nickname . actual-package) describing the\n"
+" nicknames local to Package."
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"For the designated package Package (defaulting to *PACKAGE*), add\n"
+" Local-Nickname as a package local nickname to the package\n"
+" Actual-Package. Actual-Package and Package must be an package\n"
+" designator. Local-Nickname should be a string designator.\n"
+"\n"
+" Returns the designated package.\n"
+"\n"
+" Signals a continuable error if any of the following are true:\n"
+" - Local-Nickname is already a local nickname for a different package\n"
+" - Local-Nickname is one of \"CL\", \"COMMON-LISP\", or \"KEYWORD\""
+msgstr ""
+
+#: src/code/package.lisp
+msgid "Local nickname cannot be \"CL\", \"COMMON-LISP\" or \"KEYWORD\""
+msgstr ""
+
+#: src/code/package.lisp
+#, fuzzy
+msgid "~A is already a local nickname for the package ~A in ~A"
+msgstr "~Away isway away icknay-amenay orfay ethay ackagepay ~Away"
+
+#: src/code/package.lisp
+msgid ""
+"~A cannot be a package local nickname for the global package~_ ~A with the "
+"same name"
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"~A cannot be a package local nickname for the global package~_ ~A with "
+"nickname ~A"
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"If Package has Old-Nickname as a local nickname, it is removed.\n"
+" Returns true if the nickname existed and was removed. Otherwise\n"
+" returns NIL."
+msgstr ""
+
+#: src/code/package.lisp
+msgid "Returns a list of packages which have a local nickname for Package."
+msgstr ""
+
#: src/code/reader.lisp
msgid "Float format for 1.0E1"
msgstr "Oatflay ormatfay orfay 1.0E1"
=====================================
src/i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po
=====================================
@@ -77,6 +77,38 @@ msgstr ""
msgid "Thread safe push of val onto the list in the vector element."
msgstr ""
+#: src/code/x86-vm.lisp
+msgid "The bit in the x87 FPU control word that controls the infinity mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU control word for the rounding mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU contol word for the FP operation precision."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"The bits in the x87 FPU control word indicating the exceptions that\n"
+" are enabled."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"Alist for the x87 precison control. The car is the symbolic\n"
+" precision and the cdr is the value for the precision control field."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print SSE2 floating modes word in a human-readable fashion."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print X87 floating modes word in a human-readable fashion."
+msgstr ""
+
#: src/code/load.lisp
msgid "Top-Level Form"
msgstr ""
@@ -136,6 +168,23 @@ msgstr ""
msgid "Maximum number of bits in a positive fixnum"
msgstr ""
+#: src/compiler/x86/parms.lisp
+msgid ""
+"The bits in the FP mode that hold the accrued exceptions that have\n"
+" occurred since the bits were reset."
+msgstr ""
+
+#: src/compiler/x86/parms.lisp
+msgid "The bits in the FP mode that hold FP exceptions that are enabled."
+msgstr ""
+
+#: src/compiler/x86/parms.lisp
+msgid ""
+"The bits in the FP mode that hold the current exception. However\n"
+" for x86, there aren't separate bits for this, so we use the stick\n"
+" bits from the accrued exceptions"
+msgstr ""
+
#: src/compiler/x86/vm.lisp
msgid "Redefining SC number ~D from ~S to ~S."
msgstr ""
=====================================
src/i18n/locale/ko/LC_MESSAGES/cmucl.po
=====================================
@@ -3718,7 +3718,7 @@ msgstr ""
msgid ""
"WITH-STRING-CODEPOINT-ITERATOR ((next string) &body body)\n"
" provides a method of looping through a string from the beginning to\n"
-" the end of the string prodcucing successive codepoints from the\n"
+" the end of the string producing successive codepoints from the\n"
" string. NEXT is bound to a generator macro that, within the scope\n"
" of the invocation, returns one or two values. The first value tells\n"
" whether any objects remain in the string. When the first value is\n"
@@ -3987,7 +3987,7 @@ msgstr ""
msgid ""
"WITH-STRING-GLYPH-ITERATOR ((next string) &body body)\n"
" provides a method of looping through a string from the beginning to\n"
-" the end of the string prodcucing successive glyphs from the string.\n"
+" the end of the string producing successive glyphs from the string.\n"
" NEXT is bound to a generator macro that, within the scope of the\n"
" invocation, returns one or three values. The first value tells\n"
" whether any objects remain in the string. When the first value is\n"
@@ -8225,6 +8225,7 @@ msgid ""
" (:EXPORT {symbol-name}*)\n"
" (:INTERN {symbol-name}*)\n"
" (:SIZE <integer>)\n"
+" (:LOCAL-NICKNAMES {({nickname package}*)})\n"
" All options except :SIZE and :DOCUMENTATION can be used multiple times."
msgstr ""
@@ -8568,6 +8569,57 @@ msgid ""
" found instead of describing them."
msgstr ""
+#: src/code/package.lisp
+msgid ""
+"Returns an alist of (local-nickname . actual-package) describing the\n"
+" nicknames local to Package."
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"For the designated package Package (defaulting to *PACKAGE*), add\n"
+" Local-Nickname as a package local nickname to the package\n"
+" Actual-Package. Actual-Package and Package must be an package\n"
+" designator. Local-Nickname should be a string designator.\n"
+"\n"
+" Returns the designated package.\n"
+"\n"
+" Signals a continuable error if any of the following are true:\n"
+" - Local-Nickname is already a local nickname for a different package\n"
+" - Local-Nickname is one of \"CL\", \"COMMON-LISP\", or \"KEYWORD\""
+msgstr ""
+
+#: src/code/package.lisp
+msgid "Local nickname cannot be \"CL\", \"COMMON-LISP\" or \"KEYWORD\""
+msgstr ""
+
+#: src/code/package.lisp
+msgid "~A is already a local nickname for the package ~A in ~A"
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"~A cannot be a package local nickname for the global package~_ ~A with the "
+"same name"
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"~A cannot be a package local nickname for the global package~_ ~A with "
+"nickname ~A"
+msgstr ""
+
+#: src/code/package.lisp
+msgid ""
+"If Package has Old-Nickname as a local nickname, it is removed.\n"
+" Returns true if the nickname existed and was removed. Otherwise\n"
+" returns NIL."
+msgstr ""
+
+#: src/code/package.lisp
+msgid "Returns a list of packages which have a local nickname for Package."
+msgstr ""
+
#: src/code/reader.lisp
msgid "Float format for 1.0E1"
msgstr ""
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/3f4e9f70c694d50a6e36cb…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/3f4e9f70c694d50a6e36cb…
You're receiving this email because of your account on gitlab.common-lisp.net.
1
0
Raymond Toy pushed new branch branch-21f at cmucl / cmucl
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/tree/branch-21f
You're receiving this email because of your account on gitlab.common-lisp.net.
1
0
[Git][cmucl/cmucl][issue-390-2-autogen-errno-package] Update exported symbols for darwin
by Raymond Toy (@rtoy) 20 Sep '25
by Raymond Toy (@rtoy) 20 Sep '25
20 Sep '25
Raymond Toy pushed to branch issue-390-2-autogen-errno-package at cmucl / cmucl
Commits:
63752097 by Raymond Toy at 2025-09-20T08:20:16-07:00
Update exported symbols for darwin
Darwin doesn't have ELOCAL, EVICEOP, or EVICEERR. Remove them.
- - - - -
1 changed file:
- src/code/exports.lisp
Changes:
=====================================
src/code/exports.lisp
=====================================
@@ -355,7 +355,6 @@
"EIO"
"EISCONN"
"EISDIR"
- "ELOCAL"
"ELOOP"
"EMFILE"
"EMLINK"
@@ -398,8 +397,6 @@
"ETOOMANYREFS"
"ETXTBSY"
"EUSERS"
- "EVICEERR"
- "EVICEOP"
"EWOULDBLOCK"
"EXDEV"
)
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/63752097fdb33610c9ab3d4…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/63752097fdb33610c9ab3d4…
You're receiving this email because of your account on gitlab.common-lisp.net.
1
0
[Git][cmucl/cmucl] Pushed new branch issue-390-2-autogen-errno-package
by Raymond Toy (@rtoy) 19 Sep '25
by Raymond Toy (@rtoy) 19 Sep '25
19 Sep '25
Raymond Toy pushed new branch issue-390-2-autogen-errno-package at cmucl / cmucl
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/tree/issue-390-2-autogen-errno…
You're receiving this email because of your account on gitlab.common-lisp.net.
1
0
[Git][cmucl/cmucl][issue-390-autogen-errno-package] Revert changes to boot-2024-08
by Raymond Toy (@rtoy) 19 Sep '25
by Raymond Toy (@rtoy) 19 Sep '25
19 Sep '25
Raymond Toy pushed to branch issue-390-autogen-errno-package at cmucl / cmucl
Commits:
41460273 by Raymond Toy at 2025-09-19T12:38:11-07:00
Revert changes to boot-2024-08
- - - - -
1 changed file:
- src/bootfiles/21e/boot-2024-08.lisp
Changes:
=====================================
src/bootfiles/21e/boot-2024-08.lisp
=====================================
@@ -9,321 +9,124 @@
(invoke-restart 'continue))))
(defconstant +ef-max+ 14))
-
-;; For issue #390. Initialize the new UNIX package with ERRNO stuff.
-;; Without this we need to disable package locks in code:exports.lisp
-;; when defining the UNIX package and that removes the ability to
-;; detect changes in the UNIX package.
-(in-package "LISP")
-(load "src/code/exports-errno")
-(ext:without-package-locks
- ;; Define macro to create the UNIX package that also shadow imports
- ;; the symbols from ERRNO and also exports them again. This is
- ;; needed so that we don't get a warning about UNIX shadowing all
- ;; the symbols from ERRNO and a warning that UNIX exports all the
- ;; symbols from ERRNO too.
- (defmacro define-unix-package (&body body)
- (let (errno-symbols)
- (do-external-symbols (sym "ERRNO")
- (push (symbol-name sym) errno-symbols))
- `(ext:without-package-locks
- (defpackage "UNIX"
- (:shadowing-import-from "ERRNO" ,@errno-symbols)
- (:export ,@errno-symbols)
- ,@body)))))
-
-(define-unix-package
- (:export "UNIX-CURRENT-DIRECTORY"
- "UNIX-OPEN"
- "UNIX-READ"
- "UNIX-WRITE"
- "UNIX-GETPAGESIZE"
- "UNIX-ERRNO"
- "UNIX-MAYBE-PREPEND-CURRENT-DIRECTORY"
- "UNIX-RESOLVE-LINKS"
- "UNIX-REALPATH"
- "UNIX-CLOSE"
- "UNIX-STAT"
- "UNIX-LSTAT"
- "UNIX-FSTAT"
- "UNIX-GETHOSTNAME"
- "UNIX-LSEEK"
- "UNIX-EXIT"
- "UNIX-CHDIR"
- "UNIX-ACCESS"
- "UNIX-DUP"
- "UNIX-CHMOD"
- "UNIX-READLINK"
- "UNIX-RENAME"
- "UNIX-SELECT"
- "UNIX-FAST-GETRUSAGE"
- "UNIX-GETRUSAGE"
- "UNIX-GETTIMEOFDAY"
- "UNIX-ISATTY"
- "UNIX-MKDIR"
- "UNIX-RMDIR"
- "UNIX-UNLINK"
- "TIMEZONE"
- "TIMEVAL"
- "SIZE-T"
- "OFF-T"
- "INO-T"
- "DEV-T"
- "TIME-T"
- "USER-INFO-NAME"
- "INT64-T"
- "MODE-T"
- "UNIX-FAST-SELECT"
- "UNIX-PIPE"
- "UNIX-GETPID"
- "UNIX-GETHOSTID"
- "UNIX-UID"
- "UNIX-GID"
- "GET-UNIX-ERROR-MSG"
- "WINSIZE"
- "TIMEVAL"
- "CLOSE-DIR"
- "OPEN-DIR"
- "READ-DIR"
-
- ;; filesys.lisp
- "UNIX-GETPWUID"
-
- ;; multi-proc.lisp
- "UNIX-SETITIMER"
-
- ;; run-program.lisp
- "UNIX-TTYNAME"
- "UNIX-IOCTL"
- "UNIX-OPENPTY"
-
- ;; alien-callback.lisp
- "UNIX-MPROTECT"
-
- ;; internet.lisp
- "UNIX-SOCKET"
- "UNIX-CONNECT"
- "UNIX-BIND"
- "UNIX-LISTEN"
- "UNIX-ACCEPT"
- "UNIX-GETSOCKOPT"
- "UNIX-SETSOCKOPT"
- "UNIX-GETPEERNAME"
- "UNIX-GETSOCKNAME"
- "UNIX-RECV"
- "UNIX-SEND"
- "UNIX-RECVFROM"
- "UNIX-SENDTO"
- "UNIX-SHUTDOWN"
- "UNIX-FCNTL"
-
- ;; serve-event.lisp
- "FD-SETSIZE"
- "FD-ISSET"
- "FD-CLR"
-
- ;; Simple streams
- "PROT_READ"
- "UNIX-MMAP"
- "UNIX-MUNMAP"
- "UNIX-MSYNC"
-
- ;; Motif
- "UNIX-GETUID"
-
- ;; Hemlock
- "UNIX-CFGETOSPEED"
- "TERMIOS"
- "UNIX-TCGETATTR"
- "UNIX-TCSETATTR"
- "UNIX-FCHMOD"
- "UNIX-CREAT"
- "UNIX-UTIMES"
-
- ;; Tests
- "UNIX-SYMLINK"
-
- ;; Other symbols from structures, etc.
- "C-CC" "C-CFLAG" "C-IFLAG" "C-ISPEED" "C-LFLAG" "C-OFLAG" "C-OSPEED"
- "CHECK" "D-NAME" "D-RECLEN"
- "F-GETFL" "F-GETOWN" "F-SETFL" "F-SETOWN" "FAPPEND"
- "FASYNC" "FD-SET" "FD-ZERO" "FNDELAY" "F_OK" "GID-T" "IT-INTERVAL"
- "IT-VALUE" "ITIMERVAL" "L_INCR" "L_SET" "L_XTND" "MAP_ANONYMOUS"
- "MAP_FIXED" "MAP_PRIVATE" "MAP_SHARED" "MS_ASYNC" "MS_INVALIDATE"
- "MS_SYNC" "O_APPEND" "O_CREAT" "O_EXCL" "O_NDELAY" "O_NONBLOCK"
- "O_RDONLY" "O_RDWR" "O_TRUNC" "O_WRONLY" "PROT_EXEC" "PROT_NONE"
- "PROT_WRITE" "RU-IDRSS" "RU-INBLOCK" "RU-ISRSS" "RU-IXRSS" "RU-MAJFLT"
- "RU-MAXRSS" "RU-MINFLT" "RU-MSGRCV" "RU-MSGSND" "RU-NIVCSW" "RU-NSIGNALS"
- "RU-NSWAP" "RU-NVCSW" "RU-OUBLOCK" "RU-STIME" "RU-UTIME"
- "RUSAGE_CHILDREN" "RUSAGE_SELF" "R_OK" "S-IFBLK" "S-IFCHR" "S-IFDIR"
- "S-IFLNK" "S-IFMT" "S-IFREG" "S-IFSOCK" "SIGABRT" "SIGALRM" "SIGBUS"
- "SIGCHLD" "SIGCONT" "SIGCONTEXT" "SIGFPE" "SIGHUP" "SIGILL" "SIGINT"
- "SIGIO" "SIGIOT" "SIGKILL" "SIGMASK" "SIGPIPE" "SIGPROF" "SIGQUIT"
- "SIGSEGV" "SIGSTOP" "SIGTERM" "SIGTRAP" "SIGTSTP" "SIGTTIN" "SIGTTOU"
- "SIGURG" "SIGUSR1" "SIGUSR2" "SIGVTALRM" "SIGWINCH" "SIGXCPU" "SIGXFSZ"
- "ST-ATIME" "ST-BLKSIZE" "ST-BLOCKS" "ST-CTIME" "ST-DEV" "ST-GID"
- "ST-MODE" "ST-MTIME" "ST-NLINK" "ST-RDEV" "ST-SIZE" "ST-UID" "STAT"
- "TCSADRAIN" "TCSAFLUSH" "TCSANOW" "TIOCGPGRP" "TIOCGWINSZ" "TIOCNOTTY"
- "TIOCSPGRP" "TIOCSWINSZ" "TTY-BRKINT" "TTY-ECHO" "TTY-ECHOCTL"
- "TTY-ECHOE" "TTY-ECHOK" "TTY-ECHOKE" "TTY-ECHONL" "TTY-ECHOPRT"
- "TTY-FLUSHO" "TTY-ICANON" "TTY-ICRNL" "TTY-IEXTEN" "TTY-IGNBRK"
- "TTY-IGNCR" "TTY-IGNPAR" "TTY-IMAXBEL" "TTY-INLCR" "TTY-INPCK" "TTY-ISIG"
- "TTY-ISTRIP" "TTY-IXANY" "TTY-IXOFF" "TTY-IXON" "TTY-NOFLSH" "TTY-ONLCR"
- "TTY-OPOST" "TTY-PARMRK" "TTY-PENDIN" "TTY-TOSTOP" "TV-SEC" "TV-USEC"
- "TZ-DSTTIME" "TZ-MINUTESWEST" "UID-T" "UNIX-FD" "UNIX-FILE-KIND"
- "UNIX-FILE-MODE" "UNIX-GETUID" "UNIX-KILL" "UNIX-KILLPG" "UNIX-PATHNAME"
- "UNIX-SIGBLOCK" "UNIX-SIGNAL-DESCRIPTION" "UNIX-SIGNAL-NAME"
- "UNIX-SIGNAL-NUMBER" "UNIX-SIGPAUSE" "UNIX-SIGSETMASK" "USER-INFO"
- "USER-INFO-DIR" "USER-INFO-GECOS" "USER-INFO-GID" "USER-INFO-PASSWORD"
- "USER-INFO-SHELL" "USER-INFO-UID" "VDSUSP" "VEOF" "VEOL" "VEOL2" "VERASE"
- "VINTR" "VKILL" "VMIN" "VQUIT" "VSTART" "VSTOP" "VSUSP" "VTIME"
- "WRITEOWN" "WS-COL" "WS-ROW" "WS-XPIXEL" "WS-YPIXEL" "W_OK" "X_OK"
- "FIONREAD"
- "TERMINAL-SPEEDS"
- )
- (:export
- ;; For asdf
- "UNIX-GETENV"
- "UNIX-SETENV"
- "UNIX-PUTENV"
- "UNIX-UNSETENV"
- ;; For slime
- "UNIX-EXECVE"
- "UNIX-FORK")
- #-(or linux solaris)
- (:export "TCHARS"
- "LTCHARS"
- "D-NAMLEN"
-
- ;; run-program.lisp
- "SGTTYB"
-
- ;; Other symbols from structures, etc.
- "DIRECT" "ELOCAL" "EPROCLIM" "EVICEERR" "EVICEOP" "EXECGRP" "EXECOTH"
- "EXECOWN" "F-DUPFD" "F-GETFD" "F-SETFD" "FCREAT" "FEXCL"
- "FTRUNC" "READGRP" "READOTH" "READOWN" "S-IEXEC" "S-IREAD" "S-ISGID"
- "S-ISUID" "S-ISVTX" "S-IWRITE" "SAVETEXT" "SETGIDEXEC" "SETUIDEXEC"
- "SG-ERASE" "SG-FLAGS" "SG-ISPEED" "SG-KILL" "SG-OSPEED" "SIGEMT" "SIGSYS"
- "T-BRKC" "T-DSUSPC" "T-EOFC" "T-FLUSHC" "T-INTRC" "T-LNEXTC" "T-QUITC"
- "T-RPRNTC" "T-STARTC" "T-STOPC" "T-SUSPC" "T-WERASC" "TCIFLUSH"
- "TCIOFLUSH" "TCOFLUSH" "TIOCFLUSH" "TIOCGETC"
- "TIOCGETP" "TIOCGLTC" "TIOCSETC" "TIOCSETP" "TIOCSLTC" "TTY-CBREAK"
- "TTY-CLOCAL" "TTY-CREAD" "TTY-CRMOD" "TTY-CS5" "TTY-CS6" "TTY-CS7"
- "TTY-CS8" "TTY-CSIZE" "TTY-CSTOPB" "TTY-HUPCL" "TTY-LCASE" "TTY-PARENB"
- "TTY-PARODD" "TTY-RAW" "TTY-TANDEM" "WRITEGRP" "WRITEOTH"
- )
- #+linux
- (:export "TCHARS"
- "LTCHARS"
- "D-NAMLEN"
-
- ;; run-program.lisp
- "SGTTYB"
-
- ;; Other symbols
- "BLKCNT-T" "D-INO" "D-OFF"
- "O_NOCTTY" "SIGSTKFLT"
- "SG-FLAGS"
- "TIOCGETP"
- "TIOCSETP"
- "TTY-IUCLC"
- "TTY-OCRNL" "TTY-OFDEL" "TTY-OFILL" "TTY-OLCUC" "TTY-ONLRET" "TTY-ONOCR"
- "TTY-XCASE" "UNIX-DUP2" "UNIX-GETITIMER" "UNIX-PID"
- "UTSNAME"
- )
- #+solaris
- (:export "D-INO"
- "D-OFF"
- "DIRECT"
- "EXECGRP"
- "EXECOTH"
- "EXECOWN"
-
- "F-DUPFD"
- "F-GETFD"
- "F-SETFD"
- "FCREAT"
- "FEXCL"
- "FTRUNC"
- "LTCHARS"
- "O_NOCTTY"
- "RCV1EN"
- "READGRP"
- "READOTH"
- "READOWN"
- "S-IEXEC"
- "S-IREAD"
- "S-ISGID"
- "S-ISUID"
- "S-ISVTX"
- "S-IWRITE"
- "SAVETEXT"
- "SETGIDEXEC"
- "SETUIDEXEC"
- "SG-ERASE"
- "SG-FLAGS"
- "SG-ISPEED"
- "SG-KILL"
- "SG-OSPEED"
- "SGTTYB"
- "SIGEMT"
- "SIGSYS"
- "SIGWAITING"
- "T-BRKC"
- "T-DSUSPC"
- "T-EOFC"
- "T-FLUSHC"
- "T-INTRC"
- "T-LNEXTC"
- "T-QUITC"
- "T-RPRNTC"
- "T-STARTC"
- "T-STOPC"
- "T-SUSPC"
- "T-WERASC"
- "TCHARS"
- "TCIFLUSH"
- "TCIOFLUSH"
- "TCOFLUSH"
- "TIOCFLUSH"
- "TIOCGETC"
- "TIOCGETP"
- "TIOCGLTC"
- "TIOCSETC"
- "TIOCSETP"
- "TIOCSLTC"
- "TTY-CBAUD"
- "TTY-CBREAK"
- "TTY-CLOCAL"
- "TTY-CREAD"
- "TTY-CRMOD"
- "TTY-CS5"
- "TTY-CS6"
- "TTY-CS7"
- "TTY-CS8"
- "TTY-CSIZE"
- "TTY-CSTOPB"
- "TTY-DEFECHO"
- "TTY-HUPCL"
- "TTY-IUCLC"
- "TTY-LCASE"
- "TTY-LOBLK"
- "TTY-OCRNL"
- "TTY-OFDEL"
- "TTY-OFILL"
- "TTY-OLCUC"
- "TTY-ONLRET"
- "TTY-ONOCR"
- "TTY-PARENB"
- "TTY-PARODD"
- "TTY-RAW"
- "TTY-TANDEM"
- "TTY-XCASE"
- "UNIX-TIMES"
- "UNIX-DUP2"
- "UTSNAME"
- "WRITEGRP"
- "WRITEOTH"
- "XMT1EN"
- )
- )
+;;; Bootstrap for adding %local-nicknames to package structure.
+(in-package :lisp)
+
+(intern "PACKAGE-LOCAL-NICKNAMES" "LISP")
+(intern "ADD-PACKAGE-LOCAL-NICKNAME" "LISP")
+(intern "REMOVE-PACKAGE-LOCAL-NICKNAME" "LISP")
+(intern "PACKAGE-LOCALLY-NICKNAMED-BY-LIST" "LISP")
+
+;; Make sure we don't accidentally load fasls from somewhere.
+(setf (ext:search-list "target:")
+ '("src/"))
+
+;; Ensure all packages have been set up, since package definition is broken
+;; once this file has been loaded:
+(load "target:code/exports-errno" :if-does-not-exist nil)
+(load "target:code/exports")
+
+(setf *enable-package-locked-errors* nil)
+
+;;;
+;;; Like DEFSTRUCT, but silently clobber old definitions.
+;;;
+(defmacro defstruct! (name &rest stuff)
+ `(handler-bind ((error (lambda (c)
+ (declare (ignore c))
+ (invoke-restart 'kernel::clobber-it))))
+ (defstruct ,name ,@stuff)))
+
+
+(defstruct! (package
+ (:constructor internal-make-package)
+ (:predicate packagep)
+ (:print-function %print-package)
+ (:make-load-form-fun
+ (lambda (package)
+ (values `(package-or-lose ',(package-name package))
+ nil))))
+ (tables (list nil)) ; A list of all the hashtables for inherited symbols.
+ (%name nil :type (or simple-string null))
+ (%nicknames () :type list)
+ (%use-list () :type list)
+ (%used-by-list () :type list)
+ (internal-symbols (required-argument) :type package-hashtable)
+ (external-symbols (required-argument) :type package-hashtable)
+ (%shadowing-symbols () :type list)
+ (lock nil :type boolean)
+ (definition-lock nil :type boolean)
+ (%local-nicknames () :type list)
+ (doc-string nil :type (or simple-string null)))
+
+;; Need to define this with the extra arg because compiling pcl uses
+;; defpackage and we need this defined. This isn't the actual
+;; implementation; we just added the extra arg.
+(defun %defpackage (name nicknames size shadows shadowing-imports
+ use imports interns exports doc-string &optional local-nicknames)
+ (declare (type simple-base-string name)
+ (type list nicknames local-nicknames shadows shadowing-imports
+ imports interns exports)
+ (type (or list (member :default)) use)
+ (type (or simple-base-string null) doc-string))
+ (let ((package (or (find-package name)
+ (progn
+ (when (eq use :default)
+ (setf use *default-package-use-list*))
+ (make-package name
+ :use nil
+ :internal-symbols (or size 10)
+ :external-symbols (length exports))))))
+ (unless (string= (the string (package-name package)) name)
+ (error 'simple-package-error
+ :package name
+ :format-control (intl:gettext "~A is a nick-name for the package ~A")
+ :format-arguments (list name (package-name name))))
+ (enter-new-nicknames package nicknames)
+ ;; Shadows and Shadowing-imports.
+ (let ((old-shadows (package-%shadowing-symbols package)))
+ (shadow shadows package)
+ (dolist (sym-name shadows)
+ (setf old-shadows (remove (find-symbol sym-name package) old-shadows)))
+ (dolist (simports-from shadowing-imports)
+ (let ((other-package (package-or-lose (car simports-from))))
+ (dolist (sym-name (cdr simports-from))
+ (let ((sym (find-or-make-symbol sym-name other-package)))
+ (shadowing-import sym package)
+ (setf old-shadows (remove sym old-shadows))))))
+ (when old-shadows
+ (warn (intl:gettext "~A also shadows the following symbols:~% ~S")
+ name old-shadows)))
+ ;; Use
+ (unless (eq use :default)
+ (let ((old-use-list (package-use-list package))
+ (new-use-list (mapcar #'package-or-lose use)))
+ (use-package (set-difference new-use-list old-use-list) package)
+ (let ((laterize (set-difference old-use-list new-use-list)))
+ (when laterize
+ (unuse-package laterize package)
+ (warn (intl:gettext "~A previously used the following packages:~% ~S")
+ name
+ laterize)))))
+ ;; Import and Intern.
+ (dolist (sym-name interns)
+ (intern sym-name package))
+ (dolist (imports-from imports)
+ (let ((other-package (package-or-lose (car imports-from))))
+ (dolist (sym-name (cdr imports-from))
+ (import (list (find-or-make-symbol sym-name other-package))
+ package))))
+ ;; Exports.
+ (let ((old-exports nil)
+ (exports (mapcar #'(lambda (sym-name) (intern sym-name package))
+ exports)))
+ (do-external-symbols (sym package)
+ (push sym old-exports))
+ (export exports package)
+ (let ((diff (set-difference old-exports exports)))
+ (when diff
+ (warn (intl:gettext "~A also exports the following symbols:~% ~S")
+ name diff))))
+ ;; Documentation
+ (setf (package-doc-string package) doc-string)
+ package))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/41460273bc23d9650e05d3b…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/41460273bc23d9650e05d3b…
You're receiving this email because of your account on gitlab.common-lisp.net.
1
0
[Git][cmucl/cmucl][issue-390-autogen-errno-package] 52 commits: Fix broken link found by link-checker
by Raymond Toy (@rtoy) 19 Sep '25
by Raymond Toy (@rtoy) 19 Sep '25
19 Sep '25
Raymond Toy pushed to branch issue-390-autogen-errno-package at cmucl / cmucl
Commits:
666085ca by Raymond Toy at 2025-05-23T10:21:38-07:00
Fix broken link found by link-checker
Fix typo where we left of the "h" in "https".
- - - - -
81b3bf0b by Raymond Toy at 2025-05-23T10:29:04-07:00
Add links for Common Lisp and ANSI CL
We had these links on the wiki home so lets add them here, for
consistency.
[skip ci]
- - - - -
98559d43 by Raymond Toy at 2025-05-23T10:30:33-07:00
Remove the strikethru markup for issues.
We were copying the old style from Trac where closed tickets used
strikethru to mark them as closed. However, gitlab automatically adds
a "(closed)" suffix to the issue, so we don't need to do a strikethru
to mark it closed.
[skip ci]
- - - - -
7fd5e2ff by Raymond Toy at 2025-06-01T17:07:58-07:00
Fix #405: Remove unix::unix-resolve-links and update probe-file
- - - - -
a4c4016f by Raymond Toy at 2025-06-01T17:07:58-07:00
Merge branch 'issue-405-remove-unix-resolve-links' into 'master'
Fix #405: Remove unix::unix-resolve-links and update probe-file
Closes #405
See merge request cmucl/cmucl!294
- - - - -
8fa86990 by Raymond Toy at 2025-06-01T19:23:12-07:00
Fix #409: Run manual jobs on a schedule
- - - - -
14f7103c by Raymond Toy at 2025-06-01T19:23:13-07:00
Merge branch 'issue-409-run-manual-jobs-on-schedule' into 'master'
Fix #409: Run manual jobs on a schedule
Closes #409
See merge request cmucl/cmucl!301
- - - - -
14bfb3e0 by Raymond Toy at 2025-06-01T19:25:25-07:00
Address #399: Use -std=gnu89 to build motif server
- - - - -
12f21ca8 by Raymond Toy at 2025-06-01T19:25:25-07:00
Merge branch 'issue-399-b-motif-server-fedora-42' into 'master'
Address #399: Use -std=gnu89 to build motif server
Closes #399
See merge request cmucl/cmucl!285
- - - - -
300a849d by Raymond Toy at 2025-06-01T20:57:58-07:00
Fix #334: Add wiki link checker to CI
- - - - -
c2dee44a by Raymond Toy at 2025-06-01T20:57:58-07:00
Merge branch 'issue-334-add-wiki-link-checker' into 'master'
Fix #334: Add wiki link checker to CI
Closes #334
See merge request cmucl/cmucl!232
- - - - -
cd35783b by Raymond Toy at 2025-06-05T07:48:07-07:00
Fix #413: Run markdown-link-check on scheduled pipeline
- - - - -
b6f90681 by Raymond Toy at 2025-06-05T07:48:08-07:00
Merge branch 'issue-413-markdown-link-check-on-schedule' into 'master'
Fix #413: Run markdown-link-check on scheduled pipeline
Closes #413
See merge request cmucl/cmucl!304
- - - - -
97dff761 by Raymond Toy at 2025-06-06T07:10:20-07:00
Update all the pot and po files
Just ran bin/build.sh -U to get these all updated.
- - - - -
d6faeaef by Raymond Toy at 2025-06-09T08:51:48-07:00
Remove extra closing parenthesis
There was an extra closing parenthesis at the end of
`precompile-ef-slot`. Remove it.
[skip-ci]
- - - - -
4e6e1afe by Raymond Toy at 2025-06-09T10:39:52-07:00
Update with new resolved issues
Add #404 and #405 to the list of fixed issues.
- - - - -
852aaef6 by Raymond Toy at 2025-06-10T08:06:34-07:00
Fix typo in docstring for with-string-{glyph,codepoint}-iterator
"prodcucing" -> "producing"
Update pot file too of course.
- - - - -
d6a6c40d by Raymond Toy at 2025-06-10T18:21:12-07:00
Update and correct some comments
The paths mentioned in the script are wrong so update them. Some the
the examples are out-of-date so correct those too. Finally, mention
that "bin/build.sh -?" gives help.
- - - - -
46bd7cff by Raymond Toy at 2025-06-23T08:45:54-07:00
Fix 418: Update asdf to 3.3.7.4
- - - - -
9e6d1350 by Raymond Toy at 2025-06-23T08:45:54-07:00
Merge branch 'issue-418-update-asdf-to-3.3.7.4' into 'master'
Fix 418: Update asdf to 3.3.7.4
See merge request cmucl/cmucl!307
- - - - -
aeab122e by Raymond Toy at 2025-06-30T07:18:34-07:00
Fix #415: Add support for package-local-nicknames
- - - - -
32b15538 by Raymond Toy at 2025-06-30T07:18:34-07:00
Merge branch 'issue-415-add-package-local-nicknames' into 'master'
Fix #415: Add support for package-local-nicknames
Closes #415
See merge request cmucl/cmucl!305
- - - - -
6dba253c by Raymond Toy at 2025-06-30T08:36:53-07:00
Fix #417: Allow repeated lambda var in defmethod aux variables
- - - - -
4e2e7fec by Raymond Toy at 2025-06-30T08:36:53-07:00
Merge branch 'issue-417-defmethod-check-aux-vars' into 'master'
Fix #417: Allow repeated lambda var in defmethod aux variables
Closes #417
See merge request cmucl/cmucl!306
- - - - -
f1d6ff67 by Raymond Toy at 2025-06-30T19:17:31-07:00
Update release notes from closed issues
[skip-ci]
- - - - -
aadcf841 by Raymond Toy at 2025-07-02T07:22:08-07:00
Update trivial-package-local-nicknames repo name
We renamed/moved our mirror phoe/trivial-package-local-nicknames from
trivial-package-local-nicknames-mirror to just
trivial-package-local-nicknames. Thus, we need to update
run-unit-tests.sh to use the new name.
- - - - -
fbe08b91 by Raymond Toy at 2025-07-02T08:13:00-07:00
Use https instead of git to clone trivial-pln
- - - - -
cc3996f1 by Raymond Toy at 2025-07-09T13:23:49-07:00
Update docstring for add-package-local-nickname
We allow the local nickname to be a global name of a package. This
matches what we currently do and what sbcl does.
- - - - -
7dbefc84 by Raymond Toy at 2025-07-09T13:31:38-07:00
Update cmucl.pot due to changed docstring
No changes in code or behavior.
- - - - -
9ab06424 by Raymond Toy at 2025-07-11T08:13:17-07:00
Make dist tarballs after building
- - - - -
72877169 by Raymond Toy at 2025-07-11T08:13:17-07:00
Merge branch 'rtoy-ci-make-dist-tarballs' into 'master'
Make dist tarballs after building
See merge request cmucl/cmucl!308
- - - - -
a99bf94d by Raymond Toy at 2025-07-12T15:38:28-07:00
Make dist tarballs after building
- - - - -
38b2787c by Raymond Toy at 2025-07-12T15:38:28-07:00
Merge branch 'rtoy-debug-ci-2025-07' into 'master'
Make dist tarballs after building
See merge request cmucl/cmucl!309
- - - - -
2c94b54e by Raymond Toy at 2025-07-12T18:18:16-07:00
Fix #423: Use new binaries for CI
- - - - -
9a8fd3c4 by Raymond Toy at 2025-07-12T18:18:16-07:00
Merge branch 'issue-423-update-ci-for-snapshot' into 'master'
Fix #423: Use new binaries for CI
Closes #423
See merge request cmucl/cmucl!310
- - - - -
4660c011 by Raymond Toy at 2025-08-14T07:40:17-07:00
Fix #424: Use fdlibm hypot
- - - - -
6a2028c5 by Raymond Toy at 2025-08-14T07:40:17-07:00
Merge branch 'issue-424-fix-hypot' into 'master'
Fix #424: Use fdlibm hypot
Closes #424
See merge request cmucl/cmucl!311
- - - - -
cb874f7f by Raymond Toy at 2025-08-14T07:42:48-07:00
Update release notes for #424
- - - - -
d2c96f1b by Raymond Toy at 2025-08-14T07:45:18-07:00
Fix #426: Define float-modes type correctly
- - - - -
2db294b1 by Raymond Toy at 2025-08-14T07:45:18-07:00
Merge branch 'issue-426-fix-float-modes-type-def' into 'master'
Fix #426: Define float-modes type correctly
Closes #426
See merge request cmucl/cmucl!313
- - - - -
eb98570f by Raymond Toy at 2025-08-14T07:55:12-07:00
Update release notes for #426
[skip-ci]
- - - - -
cd2edae5 by Raymond Toy at 2025-08-19T14:16:31-07:00
Fix #432: Don't pass -M option to make-extra-dist.sh
- - - - -
c65554a5 by Raymond Toy at 2025-08-19T14:16:31-07:00
Merge branch 'issue-432-fix-man-option-for-make-extra-dist' into 'master'
Fix #432: Don't pass -M option to make-extra-dist.sh
Closes #432
See merge request cmucl/cmucl!315
- - - - -
633e64a4 by Raymond Toy at 2025-09-05T07:55:14-07:00
Fix #431: Fix setting of x87 modes in set-floating-point-modes
- - - - -
7ab74e13 by Raymond Toy at 2025-09-05T07:55:15-07:00
Merge branch 'issue-431-fix-set-floating-point-modes' into 'master'
Fix #431: Fix setting of x87 modes in set-floating-point-modes
Closes #431
See merge request cmucl/cmucl!314
- - - - -
62235089 by Raymond Toy at 2025-09-12T08:51:26-07:00
Update release notes
Forgot to include #432
[skip-ci]
- - - - -
61592012 by Raymond Toy at 2025-09-16T17:50:14-07:00
Fix #381: cmucl-unix.pot depends on OS
- - - - -
4dd79bc9 by Raymond Toy at 2025-09-16T17:50:15-07:00
Merge branch 'issue-381-cmucl-unix-depends-on-os' into 'master'
Fix #381: cmucl-unix.pot depends on OS
Closes #381
See merge request cmucl/cmucl!319
- - - - -
69a8a4b6 by Raymond Toy at 2025-09-16T19:43:12-07:00
Update release notes
Forgot to add #381
[skip-ci]
- - - - -
fb29eb6e by Raymond Toy at 2025-09-17T08:32:41-07:00
Fix #440: Update CI to use snapshot 2025-09
- - - - -
d537a8a3 by Raymond Toy at 2025-09-17T08:32:41-07:00
Merge branch 'issue-440-ci-use-snapshot-2025-09' into 'master'
Fix #440: Update CI to use snapshot 2025-09
Closes #440
See merge request cmucl/cmucl!320
- - - - -
458ea683 by Raymond Toy at 2025-09-19T12:29:52-07:00
Merge branch 'master' into issue-390-autogen-errno-package
- - - - -
47 changed files:
- .gitlab-ci.yml
- README.md
- bin/build.sh
- bin/git-version.sh
- bin/make-dist.sh
- bin/run-unit-tests.sh
- + src/bootfiles/21e/boot-2025-07.lisp
- src/code/exports.lisp
- src/code/extfmts.lisp
- src/code/filesys.lisp
- src/code/float-trap.lisp
- src/code/irrat.lisp
- src/code/package.lisp
- src/code/print.lisp
- src/code/string.lisp
- src/code/unix.lisp
- src/code/x86-vm.lisp
- src/compiler/x86/float-sse2.lisp
- src/compiler/x86/parms.lisp
- src/contrib/asdf/asdf.lisp
- src/contrib/asdf/doc/asdf.html
- src/contrib/asdf/doc/asdf.info
- src/contrib/asdf/doc/asdf.pdf
- src/general-info/release-21f.md
- src/i18n/locale/cmucl-unix.pot
- src/i18n/locale/cmucl-x86-vm.pot
- src/i18n/locale/cmucl.pot
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl-bsd-os.po
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl-linux-os.po
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl-unix.po
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl-x86-vm.po
- src/i18n/locale/en(a)piglatin/LC_MESSAGES/cmucl.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl-bsd-os.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl-linux-os.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl-unix.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl-x86-vm.po
- src/i18n/locale/ko/LC_MESSAGES/cmucl.po
- src/lisp/GNUmakefile
- + src/lisp/e_hypot.c
- src/motif/server/Config.linux
- src/motif/server/server.c
- src/pcl/low.lisp
- + tests/float-x86.lisp
- tests/float.lisp
- tests/irrat.lisp
- tests/issues.lisp
- tests/pcl/defmethod.lisp
The diff was not included because it is too large.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/ecbbee4b464bdb12b9fc4a…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/ecbbee4b464bdb12b9fc4a…
You're receiving this email because of your account on gitlab.common-lisp.net.
1
0
[Git][cmucl/cmucl][issue-425-correctly-rounded-math-functions-single-float] 12 commits: Fix #432: Don't pass -M option to make-extra-dist.sh
by Raymond Toy (@rtoy) 17 Sep '25
by Raymond Toy (@rtoy) 17 Sep '25
17 Sep '25
Raymond Toy pushed to branch issue-425-correctly-rounded-math-functions-single-float at cmucl / cmucl
Commits:
cd2edae5 by Raymond Toy at 2025-08-19T14:16:31-07:00
Fix #432: Don't pass -M option to make-extra-dist.sh
- - - - -
c65554a5 by Raymond Toy at 2025-08-19T14:16:31-07:00
Merge branch 'issue-432-fix-man-option-for-make-extra-dist' into 'master'
Fix #432: Don't pass -M option to make-extra-dist.sh
Closes #432
See merge request cmucl/cmucl!315
- - - - -
633e64a4 by Raymond Toy at 2025-09-05T07:55:14-07:00
Fix #431: Fix setting of x87 modes in set-floating-point-modes
- - - - -
7ab74e13 by Raymond Toy at 2025-09-05T07:55:15-07:00
Merge branch 'issue-431-fix-set-floating-point-modes' into 'master'
Fix #431: Fix setting of x87 modes in set-floating-point-modes
Closes #431
See merge request cmucl/cmucl!314
- - - - -
62235089 by Raymond Toy at 2025-09-12T08:51:26-07:00
Update release notes
Forgot to include #432
[skip-ci]
- - - - -
61592012 by Raymond Toy at 2025-09-16T17:50:14-07:00
Fix #381: cmucl-unix.pot depends on OS
- - - - -
4dd79bc9 by Raymond Toy at 2025-09-16T17:50:15-07:00
Merge branch 'issue-381-cmucl-unix-depends-on-os' into 'master'
Fix #381: cmucl-unix.pot depends on OS
Closes #381
See merge request cmucl/cmucl!319
- - - - -
69a8a4b6 by Raymond Toy at 2025-09-16T19:43:12-07:00
Update release notes
Forgot to add #381
[skip-ci]
- - - - -
fb29eb6e by Raymond Toy at 2025-09-17T08:32:41-07:00
Fix #440: Update CI to use snapshot 2025-09
- - - - -
d537a8a3 by Raymond Toy at 2025-09-17T08:32:41-07:00
Merge branch 'issue-440-ci-use-snapshot-2025-09' into 'master'
Fix #440: Update CI to use snapshot 2025-09
Closes #440
See merge request cmucl/cmucl!320
- - - - -
131d10d8 by Raymond Toy at 2025-09-17T12:13:35-07:00
Merge branch 'master' into issue-425-correctly-rounded-math-functions
- - - - -
f3a339b9 by Raymond Toy at 2025-09-17T12:22:36-07:00
Merge branch 'issue-425-correctly-rounded-math-functions' into issue-425-correctly-rounded-math-functions-single-float
- - - - -
7 changed files:
- .gitlab-ci.yml
- bin/make-dist.sh
- src/code/unix.lisp
- src/code/x86-vm.lisp
- src/general-info/release-21f.md
- src/i18n/locale/cmucl-x86-vm.pot
- + tests/float-x86.lisp
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -1,6 +1,6 @@
variables:
year: "2025"
- month: "07"
+ month: "09"
download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/$year/$month"
version: "$year-$month-x86"
tar_ext: "xz"
=====================================
bin/make-dist.sh
=====================================
@@ -189,7 +189,7 @@ GTAR_OPTS="-t ${GTAR:-tar}"
EXTRA_OPTS="${GROUP:+ -G ${GROUP}} ${OWNER:+ -O ${OWNER}}"
INSTALL_OPTS="${INSTALL_DIR:+ -I ${INSTALL_DIR}}"
MANDIR="${MANDIR:+ -M ${MANDIR}}"
-OPTIONS="${GTAR_OPTS} ${EXTRA_OPTS} ${INSTALL_OPTS} ${MANDIR}"
+OPTIONS="${GTAR_OPTS} ${EXTRA_OPTS} ${INSTALL_OPTS}"
set -x
echo Creating distribution for $ARCH $OS
=====================================
src/code/unix.lisp
=====================================
@@ -2166,7 +2166,7 @@
#+linux
(defun unix-getpwuid (uid)
- "Return a USER-INFO structure for the user identified by UID. If
+ _N"Return a USER-INFO structure for the user identified by UID. If
not found, NIL is returned with a second value indicating the cause
of the failure. In particular, if the second value is 0 (or
ENONENT, ESRCH, EBADF, etc.), then the uid was not found."
=====================================
src/code/x86-vm.lisp
=====================================
@@ -733,3 +733,88 @@
(multiple-value-bind (fop dst src)
(get-fp-operation scp)
(values fop (list dst src))))
+
+;; See src/compiler/x86/float-sse2.lisp for a description of the x87
+;; control and status words.
+
+(defconstant x87-float-infinity-control-byte
+ (byte 1 (+ 12 16))
+ "The bit in the x87 FPU control word that controls the infinity mode.")
+
+(defconstant x87-float-rounding-mode
+ (byte 2 (+ 10 16))
+ "The bits in the x87 FPU control word for the rounding mode.")
+
+(defconstant x87-float-precision-control-byte
+ (byte 2 (+ 8 16))
+ "The bits in the x87 FPU contol word for the FP operation precision.")
+
+(defconstant x87-float-traps-byte
+ (byte 6 16)
+ "The bits in the x87 FPU control word indicating the exceptions that
+ are enabled.")
+
+(defconstant x87-float-precision-control-alist
+ `((:24-bits . 0)
+ (:reserved . 1)
+ (:53-bits . 2)
+ (:64-bits . 3))
+ "Alist for the x87 precison control. The car is the symbolic
+ precision and the cdr is the value for the precision control field.")
+
+(defun print-fp-exceptions-enabled (enabled)
+ (format t "Precision enable: ~30T~A~%" (ldb (byte 1 5) enabled))
+ (format t "Underflow enable: ~30T~A~%" (ldb (byte 1 4) enabled))
+ (format t "Overflow enable: ~30T~A~%" (ldb (byte 1 3) enabled))
+ (format t "Divide-by-zero enable: ~30T~A~%" (ldb (byte 1 2) enabled))
+ (format t "Denormal op enable: ~30T~A~%" (ldb (byte 1 1) enabled))
+ (format t "Invalid op enable: ~30T~A~%" (ldb (byte 1 0) enabled)))
+
+(defun print-fp-current-exceptions (current)
+ (format t "Precision flag: ~30T~A~%" (ldb (byte 1 5) current))
+ (format t "Underflow flag: ~30T~A~%" (ldb (byte 1 4) current))
+ (format t "Overflow flag: ~30T~A~%" (ldb (byte 1 3) current))
+ (format t "Divide-by-zero flag: ~30T~A~%" (ldb (byte 1 2) current))
+ (format t "Denormal op flag: ~30T~A~%" (ldb (byte 1 1) current))
+ (format t "Invalid op flag: ~30T~A~%" (ldb (byte 1 0) current)))
+
+(defun print-sse2-fp-modes (&optional (sse-mode (sse2-floating-point-modes)))
+ "Print SSE2 floating modes word in a human-readable fashion."
+ ;; Note that Intel uses masks to disable the exception, but to match
+ ;; the rest of cmucl, these bits are represented as enable bits.
+ (format t "Flush-to-zero: ~30T~A~%" (ldb (byte 1 15) sse-mode))
+ (let ((rc (ldb float-rounding-mode sse-mode)))
+ (format t "Rounding control: ~30T#b~2,'0b ~S~%"
+ rc
+ (car (rassoc rc rounding-mode-alist))))
+ (print-fp-exceptions-enabled (ldb float-traps-byte sse-mode))
+ (print-fp-current-exceptions (ldb float-exceptions-byte sse-mode)))
+
+(defun print-x87-fp-modes (&optional (x87-mode (x87-floating-point-modes)))
+ "Print X87 floating modes word in a human-readable fashion."
+ ;; Note that Intel uses masks to disable the exception, but to match
+ ;; the rest of cmucl, these bits are represented as enable bits.
+ (format t "Status word:~%")
+ (format t "FPU busy: ~30T~A~%" (ldb (byte 1 15) x87-mode))
+ (format t "Condition code C3: ~30T~A~%" (ldb (byte 1 14) x87-mode))
+ (format t "Top of stack: ~30T~D~%" (ldb (byte 3 11) x87-mode))
+ (format t "Condition code C2: ~30T~A~%" (ldb (byte 1 10) x87-mode))
+ (format t "Condition code C1: ~30T~A~%" (ldb (byte 1 9) x87-mode))
+ (format t "Condition code C0: ~30T~A~%" (ldb (byte 1 8) x87-mode))
+ (format t "Error summary: ~30T~A~%" (ldb (byte 1 7) x87-mode))
+ (format t "Stack fault: ~30T~A~%" (ldb (byte 1 6) x87-mode))
+ (print-fp-current-exceptions (ldb float-exceptions-byte x87-mode))
+ (format t "~%Control word:~%")
+ (format t "Reserved: ~30T#b~2,'0b~%" (ldb (byte 2 (+ 13 16)) x87-mode))
+ (format t "Infinity control: ~30T~A~%" (ldb x87-float-infinity-control-byte x87-mode))
+ (let ((rc (ldb x87-float-rounding-mode x87-mode)))
+ (format t "Rounding control: ~30T#b~2,'0b ~S~%"
+ rc
+ (car (rassoc rc rounding-mode-alist))))
+ (let ((pc (ldb x87-float-precision-control-byte x87-mode)))
+ (format t "Precision control: ~30T#b~2,'0b ~S~%"
+ pc
+ (car (rassoc pc x87-float-precision-control-alist))))
+ (format t "Reserved: ~30T#b~2,'0b~%" (ldb (byte 2 (+ 6 16)) x87-mode))
+ (print-fp-exceptions-enabled (ldb x87-float-traps-byte x87-mode)))
+
=====================================
src/general-info/release-21f.md
=====================================
@@ -123,6 +123,7 @@ public domain.
* #375 `unix-mkstemp` and `unix-mkdtemp` actually returns the
file names now.
* #379 Support GNU-style command-line option names
+ * #381 cmucl-unix.pot depends on OS
* #382 Command-line options are case-sensitive
* #385 Fixed compiler warning about `%p` in Linux-os.c
* #386 Generate `def-unix-error` forms from OS-specific files.
@@ -139,7 +140,8 @@ public domain.
package-local-nicknames)
* #424 Use fdlibm `hypot` to fix bug in snapshot 2025-07
* #426 Define float-modes type correctly for `(setf (x87-set-floating-point-modes))`
- * $431 Fix setting of x87 FP modes in `set-floating-point-modes`
+ * #431 Fix setting of x87 FP modes in `set-floating-point-modes`
+ * #432 `make-dist.sh` passes `-M` to `make-extra-dist.sh` which doesn't accept `-M` option.
* Other changes:
* Improvements to the PCL implementation of CLOS:
* Changes to building procedure:
=====================================
src/i18n/locale/cmucl-x86-vm.pot
=====================================
@@ -77,6 +77,38 @@ msgstr ""
msgid "Thread safe push of val onto the list in the vector element."
msgstr ""
+#: src/code/x86-vm.lisp
+msgid "The bit in the x87 FPU control word that controls the infinity mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU control word for the rounding mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU contol word for the FP operation precision."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"The bits in the x87 FPU control word indicating the exceptions that\n"
+" are enabled."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"Alist for the x87 precison control. The car is the symbolic\n"
+" precision and the cdr is the value for the precision control field."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print SSE2 floating modes word in a human-readable fashion."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print X87 floating modes word in a human-readable fashion."
+msgstr ""
+
#: src/code/load.lisp
msgid "Top-Level Form"
msgstr ""
=====================================
tests/float-x86.lisp
=====================================
@@ -0,0 +1,59 @@
+;; Tests of float functions
+
+(defpackage :float-x86-tests
+ (:use :cl :lisp-unit))
+
+(in-package "FLOAT-X86-TESTS")
+
+(define-test set-floating-point-modes
+ (let ((old-x87-modes (x86::x87-floating-point-modes))
+ (old-sse2-modes (x86::sse2-floating-point-modes))
+ x87-modes sse2-modes)
+ (unwind-protect
+ (progn
+ ;; Set some new traps and rounding mode.
+ (ext:set-floating-point-modes :traps '(:underflow
+ :overflow
+ :invalid
+ :divide-by-zero)
+ :rounding-mode :zero)
+ ;; Save these new FP modes
+ (setf x87-modes (x86::x87-floating-point-modes))
+ (setf sse2-modes (x86::sse2-floating-point-modes)))
+
+ (setf (x86::x87-floating-point-modes) old-x87-modes)
+ (setf (x86::sse2-floating-point-modes) old-sse2-modes))
+
+ (let* ((x87-exceptions-enabled (ldb x86::x87-float-traps-byte x87-modes))
+ (x87-rc (ldb x86::x87-float-rounding-mode x87-modes))
+ (sse2-exceptions-enabled (ldb x86::float-traps-byte sse2-modes))
+ (sse2-rc (ldb x86::float-rounding-mode sse2-modes)))
+ (format t "*X87 FP mode words:~%")
+ (x86::print-x87-fp-modes x87-modes)
+ (format t "~%*SSE2 FP mode words:~%")
+ (x86::print-sse2-fp-modes sse2-modes)
+
+ ;; Verify that we set the enabled exceptions
+ ;; correctly. First for sse2, then for x87.
+ (assert-false (logbitp 5 sse2-exceptions-enabled)) ; precision
+ (assert-true (logbitp 4 sse2-exceptions-enabled)) ; underflow
+ (assert-true (logbitp 3 sse2-exceptions-enabled)) ; overflow
+ (assert-true (logbitp 2 sse2-exceptions-enabled)) ; divide-by-zero
+ (assert-false (logbitp 1 sse2-exceptions-enabled)) ; denormal
+ (assert-true (logbitp 0 sse2-exceptions-enabled)) ; invalid
+
+ (assert-false (logbitp 5 x87-exceptions-enabled)) ; precision
+ (assert-true (logbitp 4 x87-exceptions-enabled)) ; underflow
+ (assert-true (logbitp 3 x87-exceptions-enabled)) ; overflow
+ (assert-true (logbitp 2 x87-exceptions-enabled)) ; divide-by-zero
+ (assert-false (logbitp 1 x87-exceptions-enabled)) ; denormal
+ (assert-true (logbitp 0 x87-exceptions-enabled)) ; invalid
+
+ ;; Verify the rounding mode is set to zero
+ (assert-eql :zero (car (rassoc sse2-rc x86::rounding-mode-alist)))
+ (assert-eql :zero (car (rassoc x87-rc x86::rounding-mode-alist)))
+
+ ;; Verify precision for x87
+ (assert-eql :64-bits
+ (car (rassoc (ldb x86::x87-float-precision-control-byte x87-modes)
+ x86::x87-float-precision-control-alist))))))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/8c957e766463e0bac0d2d1…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/8c957e766463e0bac0d2d1…
You're receiving this email because of your account on gitlab.common-lisp.net.
1
0
[Git][cmucl/cmucl][issue-425-correctly-rounded-math-functions] 18 commits: Fix #424: Use fdlibm hypot
by Raymond Toy (@rtoy) 17 Sep '25
by Raymond Toy (@rtoy) 17 Sep '25
17 Sep '25
Raymond Toy pushed to branch issue-425-correctly-rounded-math-functions at cmucl / cmucl
Commits:
4660c011 by Raymond Toy at 2025-08-14T07:40:17-07:00
Fix #424: Use fdlibm hypot
- - - - -
6a2028c5 by Raymond Toy at 2025-08-14T07:40:17-07:00
Merge branch 'issue-424-fix-hypot' into 'master'
Fix #424: Use fdlibm hypot
Closes #424
See merge request cmucl/cmucl!311
- - - - -
cb874f7f by Raymond Toy at 2025-08-14T07:42:48-07:00
Update release notes for #424
- - - - -
d2c96f1b by Raymond Toy at 2025-08-14T07:45:18-07:00
Fix #426: Define float-modes type correctly
- - - - -
2db294b1 by Raymond Toy at 2025-08-14T07:45:18-07:00
Merge branch 'issue-426-fix-float-modes-type-def' into 'master'
Fix #426: Define float-modes type correctly
Closes #426
See merge request cmucl/cmucl!313
- - - - -
eb98570f by Raymond Toy at 2025-08-14T07:55:12-07:00
Update release notes for #426
[skip-ci]
- - - - -
65050c00 by Raymond Toy at 2025-08-18T18:37:51-07:00
Merge branch 'master' into issue-425-correctly-rounded-math-functions
- - - - -
cd2edae5 by Raymond Toy at 2025-08-19T14:16:31-07:00
Fix #432: Don't pass -M option to make-extra-dist.sh
- - - - -
c65554a5 by Raymond Toy at 2025-08-19T14:16:31-07:00
Merge branch 'issue-432-fix-man-option-for-make-extra-dist' into 'master'
Fix #432: Don't pass -M option to make-extra-dist.sh
Closes #432
See merge request cmucl/cmucl!315
- - - - -
633e64a4 by Raymond Toy at 2025-09-05T07:55:14-07:00
Fix #431: Fix setting of x87 modes in set-floating-point-modes
- - - - -
7ab74e13 by Raymond Toy at 2025-09-05T07:55:15-07:00
Merge branch 'issue-431-fix-set-floating-point-modes' into 'master'
Fix #431: Fix setting of x87 modes in set-floating-point-modes
Closes #431
See merge request cmucl/cmucl!314
- - - - -
62235089 by Raymond Toy at 2025-09-12T08:51:26-07:00
Update release notes
Forgot to include #432
[skip-ci]
- - - - -
61592012 by Raymond Toy at 2025-09-16T17:50:14-07:00
Fix #381: cmucl-unix.pot depends on OS
- - - - -
4dd79bc9 by Raymond Toy at 2025-09-16T17:50:15-07:00
Merge branch 'issue-381-cmucl-unix-depends-on-os' into 'master'
Fix #381: cmucl-unix.pot depends on OS
Closes #381
See merge request cmucl/cmucl!319
- - - - -
69a8a4b6 by Raymond Toy at 2025-09-16T19:43:12-07:00
Update release notes
Forgot to add #381
[skip-ci]
- - - - -
fb29eb6e by Raymond Toy at 2025-09-17T08:32:41-07:00
Fix #440: Update CI to use snapshot 2025-09
- - - - -
d537a8a3 by Raymond Toy at 2025-09-17T08:32:41-07:00
Merge branch 'issue-440-ci-use-snapshot-2025-09' into 'master'
Fix #440: Update CI to use snapshot 2025-09
Closes #440
See merge request cmucl/cmucl!320
- - - - -
131d10d8 by Raymond Toy at 2025-09-17T12:13:35-07:00
Merge branch 'master' into issue-425-correctly-rounded-math-functions
- - - - -
16 changed files:
- .gitlab-ci.yml
- bin/make-dist.sh
- + src/bootfiles/21e/boot-2025-07.lisp
- src/code/float-trap.lisp
- src/code/irrat.lisp
- src/code/unix.lisp
- src/code/x86-vm.lisp
- src/compiler/x86/float-sse2.lisp
- src/compiler/x86/parms.lisp
- src/general-info/release-21f.md
- src/i18n/locale/cmucl-x86-vm.pot
- src/lisp/GNUmakefile
- + src/lisp/e_hypot.c
- + tests/float-x86.lisp
- tests/float.lisp
- tests/irrat.lisp
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -1,6 +1,6 @@
variables:
year: "2025"
- month: "07"
+ month: "09"
download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/$year/$month"
version: "$year-$month-x86"
tar_ext: "xz"
=====================================
bin/make-dist.sh
=====================================
@@ -189,7 +189,7 @@ GTAR_OPTS="-t ${GTAR:-tar}"
EXTRA_OPTS="${GROUP:+ -G ${GROUP}} ${OWNER:+ -O ${OWNER}}"
INSTALL_OPTS="${INSTALL_DIR:+ -I ${INSTALL_DIR}}"
MANDIR="${MANDIR:+ -M ${MANDIR}}"
-OPTIONS="${GTAR_OPTS} ${EXTRA_OPTS} ${INSTALL_OPTS} ${MANDIR}"
+OPTIONS="${GTAR_OPTS} ${EXTRA_OPTS} ${INSTALL_OPTS}"
set -x
echo Creating distribution for $ARCH $OS
=====================================
src/bootfiles/21e/boot-2025-07.lisp
=====================================
@@ -0,0 +1,25 @@
+;; Bootstrap file to define some constants we use early in the build.
+
+(in-package :x86)
+
+(defconstant x87-float-infinity-control-byte
+ (byte 1 (+ 12 16))
+ "The bit in the x87 FPU control word that controls the infinity mode.")
+(defconstant x87-float-rounding-mode
+ (byte 2 (+ 10 16))
+ "The bits in the x87 FPU control word for the rounding mode.")
+(defconstant x87-float-precision-control-byte
+ (byte 2 (+ 8 16))
+ "The bits in the x87 FPU contol word for the FP operation precision.")
+(defconstant x87-float-traps-byte
+ (byte 6 16)
+ "The bits in the x87 FPU control word indicating the exceptions that
+ are enabled.")
+(defconstant x87-float-precision-control-alist
+ `((:24-bits . 0)
+ (:reserved . 1)
+ (:53-bits . 2)
+ (:64-bits . 3))
+ "Alist for the x87 precison control. The car is the symbolic
+ precision and the cdr is the value for the precision control field.")
+
=====================================
src/code/float-trap.lisp
=====================================
@@ -114,21 +114,24 @@
;; Set the floating point modes for both X87 and SSE2. This
;; include the rounding control bits.
(let* ((rc (ldb float-rounding-mode new-mode))
- (new-exceptions (logand #x3f new-mode))
- (new-enables (logand #x3f (ash new-mode -7)))
- (x87-modes
- (logior new-exceptions
- (ash rc 10)
- (ash new-enables 16)
- ;; Set precision control to be 64-bit, always. We
- ;; don't use the x87 registers with sse2, so this
- ;; is ok and would be the correct setting if we
- ;; ever support long-floats.
- (ash 3 (+ 8 16)))))
- (setf (vm::sse2-floating-point-modes) (ldb (byte 24 0) new-mode))
- (setf (vm::x87-floating-point-modes) (ldb (byte 24 0) x87-modes)))
- new-mode)
- )
+ (new-exceptions (ldb float-exceptions-byte new-mode))
+ (new-enables (ldb float-traps-byte new-mode))
+ (x87-modes 0))
+ ;; From the new mode, update the x87 FPU mode with the same set
+ ;; of accrued exceptions, enabled exceptions, and rounding mode.
+ (setf x87-modes (dpb new-exceptions float-exceptions-byte x87-modes))
+ (setf x87-modes (dpb new-enables x87-float-traps-byte x87-modes))
+ (setf x87-modes (dpb rc x87-float-rounding-mode x87-modes))
+
+ ;; Set precision to 64-bits (double-extended).
+ (setf x87-modes
+ (dpb (cdr (assoc :64-bits x87-float-precision-control-alist))
+ x87-float-precision-control-byte
+ x87-modes))
+
+ (setf (vm::sse2-floating-point-modes) (ldb (byte 16 0) new-mode))
+ (setf (vm::x87-floating-point-modes) (ldb (byte 30 0) x87-modes)))
+ new-mode))
#+(and sse2 darwin)
(progn
=====================================
src/code/irrat.lisp
=====================================
@@ -121,7 +121,7 @@
(def-math-rtn ("__ieee754_pow" %pow) 2)
#-(or x86 sparc-v7 sparc-v8 sparc-v9)
(def-math-rtn "sqrt" 1)
-(def-math-rtn "hypot" 2)
+(def-math-rtn ("__ieee754_hypot" %hypot) 2)
(def-math-rtn ("fdlibm_log1p" %log1p) 1)
(def-math-rtn ("fdlibm_expm1" %expm1) 1)
=====================================
src/code/unix.lisp
=====================================
@@ -2166,7 +2166,7 @@
#+linux
(defun unix-getpwuid (uid)
- "Return a USER-INFO structure for the user identified by UID. If
+ _N"Return a USER-INFO structure for the user identified by UID. If
not found, NIL is returned with a second value indicating the cause
of the failure. In particular, if the second value is 0 (or
ENONENT, ESRCH, EBADF, etc.), then the uid was not found."
=====================================
src/code/x86-vm.lisp
=====================================
@@ -733,3 +733,88 @@
(multiple-value-bind (fop dst src)
(get-fp-operation scp)
(values fop (list dst src))))
+
+;; See src/compiler/x86/float-sse2.lisp for a description of the x87
+;; control and status words.
+
+(defconstant x87-float-infinity-control-byte
+ (byte 1 (+ 12 16))
+ "The bit in the x87 FPU control word that controls the infinity mode.")
+
+(defconstant x87-float-rounding-mode
+ (byte 2 (+ 10 16))
+ "The bits in the x87 FPU control word for the rounding mode.")
+
+(defconstant x87-float-precision-control-byte
+ (byte 2 (+ 8 16))
+ "The bits in the x87 FPU contol word for the FP operation precision.")
+
+(defconstant x87-float-traps-byte
+ (byte 6 16)
+ "The bits in the x87 FPU control word indicating the exceptions that
+ are enabled.")
+
+(defconstant x87-float-precision-control-alist
+ `((:24-bits . 0)
+ (:reserved . 1)
+ (:53-bits . 2)
+ (:64-bits . 3))
+ "Alist for the x87 precison control. The car is the symbolic
+ precision and the cdr is the value for the precision control field.")
+
+(defun print-fp-exceptions-enabled (enabled)
+ (format t "Precision enable: ~30T~A~%" (ldb (byte 1 5) enabled))
+ (format t "Underflow enable: ~30T~A~%" (ldb (byte 1 4) enabled))
+ (format t "Overflow enable: ~30T~A~%" (ldb (byte 1 3) enabled))
+ (format t "Divide-by-zero enable: ~30T~A~%" (ldb (byte 1 2) enabled))
+ (format t "Denormal op enable: ~30T~A~%" (ldb (byte 1 1) enabled))
+ (format t "Invalid op enable: ~30T~A~%" (ldb (byte 1 0) enabled)))
+
+(defun print-fp-current-exceptions (current)
+ (format t "Precision flag: ~30T~A~%" (ldb (byte 1 5) current))
+ (format t "Underflow flag: ~30T~A~%" (ldb (byte 1 4) current))
+ (format t "Overflow flag: ~30T~A~%" (ldb (byte 1 3) current))
+ (format t "Divide-by-zero flag: ~30T~A~%" (ldb (byte 1 2) current))
+ (format t "Denormal op flag: ~30T~A~%" (ldb (byte 1 1) current))
+ (format t "Invalid op flag: ~30T~A~%" (ldb (byte 1 0) current)))
+
+(defun print-sse2-fp-modes (&optional (sse-mode (sse2-floating-point-modes)))
+ "Print SSE2 floating modes word in a human-readable fashion."
+ ;; Note that Intel uses masks to disable the exception, but to match
+ ;; the rest of cmucl, these bits are represented as enable bits.
+ (format t "Flush-to-zero: ~30T~A~%" (ldb (byte 1 15) sse-mode))
+ (let ((rc (ldb float-rounding-mode sse-mode)))
+ (format t "Rounding control: ~30T#b~2,'0b ~S~%"
+ rc
+ (car (rassoc rc rounding-mode-alist))))
+ (print-fp-exceptions-enabled (ldb float-traps-byte sse-mode))
+ (print-fp-current-exceptions (ldb float-exceptions-byte sse-mode)))
+
+(defun print-x87-fp-modes (&optional (x87-mode (x87-floating-point-modes)))
+ "Print X87 floating modes word in a human-readable fashion."
+ ;; Note that Intel uses masks to disable the exception, but to match
+ ;; the rest of cmucl, these bits are represented as enable bits.
+ (format t "Status word:~%")
+ (format t "FPU busy: ~30T~A~%" (ldb (byte 1 15) x87-mode))
+ (format t "Condition code C3: ~30T~A~%" (ldb (byte 1 14) x87-mode))
+ (format t "Top of stack: ~30T~D~%" (ldb (byte 3 11) x87-mode))
+ (format t "Condition code C2: ~30T~A~%" (ldb (byte 1 10) x87-mode))
+ (format t "Condition code C1: ~30T~A~%" (ldb (byte 1 9) x87-mode))
+ (format t "Condition code C0: ~30T~A~%" (ldb (byte 1 8) x87-mode))
+ (format t "Error summary: ~30T~A~%" (ldb (byte 1 7) x87-mode))
+ (format t "Stack fault: ~30T~A~%" (ldb (byte 1 6) x87-mode))
+ (print-fp-current-exceptions (ldb float-exceptions-byte x87-mode))
+ (format t "~%Control word:~%")
+ (format t "Reserved: ~30T#b~2,'0b~%" (ldb (byte 2 (+ 13 16)) x87-mode))
+ (format t "Infinity control: ~30T~A~%" (ldb x87-float-infinity-control-byte x87-mode))
+ (let ((rc (ldb x87-float-rounding-mode x87-mode)))
+ (format t "Rounding control: ~30T#b~2,'0b ~S~%"
+ rc
+ (car (rassoc rc rounding-mode-alist))))
+ (let ((pc (ldb x87-float-precision-control-byte x87-mode)))
+ (format t "Precision control: ~30T#b~2,'0b ~S~%"
+ pc
+ (car (rassoc pc x87-float-precision-control-alist))))
+ (format t "Reserved: ~30T#b~2,'0b~%" (ldb (byte 2 (+ 6 16)) x87-mode))
+ (print-fp-exceptions-enabled (ldb x87-float-traps-byte x87-mode)))
+
=====================================
src/compiler/x86/float-sse2.lisp
=====================================
@@ -1288,6 +1288,10 @@
;; 0 invalid operation flag
;;
;; See below for rounding control
+;;
+;; Also see float-rounding-mode, float-sticky-bits, float-traps-byte,
+;; and float-exceptions-byte in compiler/x86/parms.lisp.
+
(defknown sse2-floating-point-modes () float-modes (flushable))
(defknown ((setf sse2-floating-point-modes)) (float-modes) float-modes)
=====================================
src/compiler/x86/parms.lisp
=====================================
@@ -205,9 +205,15 @@
;; need to do it this way because the interface assumes the modes are
;; in the same order as the MXCSR register.
(defconstant float-rounding-mode (byte 2 13))
-(defconstant float-sticky-bits (byte 6 0))
-(defconstant float-traps-byte (byte 6 7))
-(defconstant float-exceptions-byte (byte 6 0))
+(defconstant float-sticky-bits (byte 6 0)
+ "The bits in the FP mode that hold the accrued exceptions that have
+ occurred since the bits were reset.")
+(defconstant float-traps-byte (byte 6 7)
+ "The bits in the FP mode that hold FP exceptions that are enabled.")
+(defconstant float-exceptions-byte (byte 6 0)
+ "The bits in the FP mode that hold the current exception. However
+ for x86, there aren't separate bits for this, so we use the stick
+ bits from the accrued exceptions")
(progn
;; SSE2 has a flush-to-zero flag, which we use as the fast bit. Some
=====================================
src/general-info/release-21f.md
=====================================
@@ -123,6 +123,7 @@ public domain.
* #375 `unix-mkstemp` and `unix-mkdtemp` actually returns the
file names now.
* #379 Support GNU-style command-line option names
+ * #381 cmucl-unix.pot depends on OS
* #382 Command-line options are case-sensitive
* #385 Fixed compiler warning about `%p` in Linux-os.c
* #386 Generate `def-unix-error` forms from OS-specific files.
@@ -137,6 +138,10 @@ public domain.
* #417 PCL complains about repeated aux variables in defmethod
* #418 Update asdf to version 3.3.7.4 (for
package-local-nicknames)
+ * #424 Use fdlibm `hypot` to fix bug in snapshot 2025-07
+ * #426 Define float-modes type correctly for `(setf (x87-set-floating-point-modes))`
+ * #431 Fix setting of x87 FP modes in `set-floating-point-modes`
+ * #432 `make-dist.sh` passes `-M` to `make-extra-dist.sh` which doesn't accept `-M` option.
* Other changes:
* Improvements to the PCL implementation of CLOS:
* Changes to building procedure:
=====================================
src/i18n/locale/cmucl-x86-vm.pot
=====================================
@@ -77,6 +77,38 @@ msgstr ""
msgid "Thread safe push of val onto the list in the vector element."
msgstr ""
+#: src/code/x86-vm.lisp
+msgid "The bit in the x87 FPU control word that controls the infinity mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU control word for the rounding mode."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "The bits in the x87 FPU contol word for the FP operation precision."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"The bits in the x87 FPU control word indicating the exceptions that\n"
+" are enabled."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid ""
+"Alist for the x87 precison control. The car is the symbolic\n"
+" precision and the cdr is the value for the precision control field."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print SSE2 floating modes word in a human-readable fashion."
+msgstr ""
+
+#: src/code/x86-vm.lisp
+msgid "Print X87 floating modes word in a human-readable fashion."
+msgstr ""
+
#: src/code/load.lisp
msgid "Top-Level Form"
msgstr ""
@@ -136,6 +168,23 @@ msgstr ""
msgid "Maximum number of bits in a positive fixnum"
msgstr ""
+#: src/compiler/x86/parms.lisp
+msgid ""
+"The bits in the FP mode that hold the accrued exceptions that have\n"
+" occurred since the bits were reset."
+msgstr ""
+
+#: src/compiler/x86/parms.lisp
+msgid "The bits in the FP mode that hold FP exceptions that are enabled."
+msgstr ""
+
+#: src/compiler/x86/parms.lisp
+msgid ""
+"The bits in the FP mode that hold the current exception. However\n"
+" for x86, there aren't separate bits for this, so we use the stick\n"
+" bits from the accrued exceptions"
+msgstr ""
+
#: src/compiler/x86/vm.lisp
msgid "Redefining SC number ~D from ~S to ~S."
msgstr ""
=====================================
src/lisp/GNUmakefile
=====================================
@@ -28,6 +28,7 @@ FDLIBM = k_sin.c k_cos.c k_tan.c s_sin.c s_cos.c s_tan.c sincos.c \
e_rem_pio2.c k_rem_pio2.c \
e_log10.c s_scalbn.c \
setexception.c \
+ e_hypot.c \
log2.c
SRCS = lisp.c coreparse.c alloc.c monitor.c print.c interr.c \
=====================================
src/lisp/e_hypot.c
=====================================
@@ -0,0 +1,144 @@
+
+/* @(#)e_hypot.c 1.3 95/01/18 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_hypot(x,y)
+ *
+ * Method :
+ * If (assume round-to-nearest) z=x*x+y*y
+ * has error less than sqrt(2)/2 ulp, than
+ * sqrt(z) has error less than 1 ulp (exercise).
+ *
+ * So, compute sqrt(x*x+y*y) with some care as
+ * follows to get the error below 1 ulp:
+ *
+ * Assume x>y>0;
+ * (if possible, set rounding to round-to-nearest)
+ * 1. if x > 2y use
+ * x1*x1+(y*y+(x2*(x+x1))) for x*x+y*y
+ * where x1 = x with lower 32 bits cleared, x2 = x-x1; else
+ * 2. if x <= 2y use
+ * t1*y1+((x-y)*(x-y)+(t1*y2+t2*y))
+ * where t1 = 2x with lower 32 bits cleared, t2 = 2x-t1,
+ * y1= y with lower 32 bits chopped, y2 = y-y1.
+ *
+ * NOTE: scaling may be necessary if some argument is too
+ * large or too tiny
+ *
+ * Special cases:
+ * hypot(x,y) is INF if x or y is +INF or -INF; else
+ * hypot(x,y) is NAN if x or y is NAN.
+ *
+ * Accuracy:
+ * hypot(x,y) returns sqrt(x^2+y^2) with error less
+ * than 1 ulps (units in the last place)
+ */
+
+#include "fdlibm.h"
+
+static inline void
+set_hiword(double* d, int hi)
+{
+ union { int i[2]; double d; } ux;
+
+ ux.d = *d;
+ ux.i[HIWORD] = hi;
+ *d = ux.d;
+}
+
+static inline int
+get_loword(double d)
+{
+ union { int i[2]; double d; } ux;
+ ux.d = d;
+ return ux.i[LOWORD];
+}
+
+static inline int
+get_hiword(double d)
+{
+ union { int i[2]; double d; } ux;
+ ux.d = d;
+
+ return ux.i[HIWORD];
+}
+
+
+#ifdef __STDC__
+ double __ieee754_hypot(double x, double y)
+#else
+ double __ieee754_hypot(x,y)
+ double x, y;
+#endif
+{
+ double a=x,b=y,t1,t2,y1,y2,w;
+ int j,k,ha,hb;
+
+ ha = get_hiword(x)&0x7fffffff; /* high word of x */
+ hb = get_hiword(y)&0x7fffffff; /* high word of y */
+ if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;}
+ set_hiword(&a,ha); /* a <- |a| */
+ set_hiword(&b, hb); /* b <- |b| */
+
+ if((ha-hb)>0x3c00000) {return a+b;} /* x/y > 2**60 */
+ k=0;
+ if(ha > 0x5f300000) { /* a>2**500 */
+ if(ha >= 0x7ff00000) { /* Inf or NaN */
+ w = a+b; /* for sNaN */
+ if(((ha&0xfffff)|get_loword(a))==0) w = a;
+ if(((hb^0x7ff00000)|get_loword(b))==0) w = b;
+ return w;
+ }
+ /* scale a and b by 2**-600 */
+ ha -= 0x25800000; hb -= 0x25800000; k += 600;
+ set_hiword(&a, ha);
+ set_hiword(&b, hb);
+ }
+ if(hb < 0x20b00000) { /* b < 2**-500 */
+ if(hb <= 0x000fffff) { /* subnormal b or 0 */
+ if((hb|(get_loword(b)))==0) return a;
+ t1=0;
+ set_hiword(&t1, 0x7fd00000); /* t1=2^1022 */
+ b *= t1;
+ a *= t1;
+ k -= 1022;
+ } else { /* scale a and b by 2^600 */
+ ha += 0x25800000; /* a *= 2^600 */
+ hb += 0x25800000; /* b *= 2^600 */
+ k -= 600;
+ set_hiword(&a, ha);
+ set_hiword(&b, hb);
+ }
+ }
+ /* medium size a and b */
+ w = a-b;
+ if (w>b) {
+ t1 = 0;
+ set_hiword(&t1, ha);
+ t2 = a-t1;
+ w = sqrt(t1*t1-(b*(-b)-t2*(a+t1)));
+ } else {
+ a = a+a;
+ y1 = 0;
+ set_hiword(&y1, hb);
+ y2 = b - y1;
+ t1 = 0;
+ set_hiword(&t1, ha+0x00100000);
+ t2 = a - t1;
+ w = sqrt(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+ }
+ if(k!=0) {
+ t1 = 1.0;
+ set_hiword(&t1, get_hiword(t1) + (k<<20));
+ return t1*w;
+ } else return w;
+}
=====================================
tests/float-x86.lisp
=====================================
@@ -0,0 +1,59 @@
+;; Tests of float functions
+
+(defpackage :float-x86-tests
+ (:use :cl :lisp-unit))
+
+(in-package "FLOAT-X86-TESTS")
+
+(define-test set-floating-point-modes
+ (let ((old-x87-modes (x86::x87-floating-point-modes))
+ (old-sse2-modes (x86::sse2-floating-point-modes))
+ x87-modes sse2-modes)
+ (unwind-protect
+ (progn
+ ;; Set some new traps and rounding mode.
+ (ext:set-floating-point-modes :traps '(:underflow
+ :overflow
+ :invalid
+ :divide-by-zero)
+ :rounding-mode :zero)
+ ;; Save these new FP modes
+ (setf x87-modes (x86::x87-floating-point-modes))
+ (setf sse2-modes (x86::sse2-floating-point-modes)))
+
+ (setf (x86::x87-floating-point-modes) old-x87-modes)
+ (setf (x86::sse2-floating-point-modes) old-sse2-modes))
+
+ (let* ((x87-exceptions-enabled (ldb x86::x87-float-traps-byte x87-modes))
+ (x87-rc (ldb x86::x87-float-rounding-mode x87-modes))
+ (sse2-exceptions-enabled (ldb x86::float-traps-byte sse2-modes))
+ (sse2-rc (ldb x86::float-rounding-mode sse2-modes)))
+ (format t "*X87 FP mode words:~%")
+ (x86::print-x87-fp-modes x87-modes)
+ (format t "~%*SSE2 FP mode words:~%")
+ (x86::print-sse2-fp-modes sse2-modes)
+
+ ;; Verify that we set the enabled exceptions
+ ;; correctly. First for sse2, then for x87.
+ (assert-false (logbitp 5 sse2-exceptions-enabled)) ; precision
+ (assert-true (logbitp 4 sse2-exceptions-enabled)) ; underflow
+ (assert-true (logbitp 3 sse2-exceptions-enabled)) ; overflow
+ (assert-true (logbitp 2 sse2-exceptions-enabled)) ; divide-by-zero
+ (assert-false (logbitp 1 sse2-exceptions-enabled)) ; denormal
+ (assert-true (logbitp 0 sse2-exceptions-enabled)) ; invalid
+
+ (assert-false (logbitp 5 x87-exceptions-enabled)) ; precision
+ (assert-true (logbitp 4 x87-exceptions-enabled)) ; underflow
+ (assert-true (logbitp 3 x87-exceptions-enabled)) ; overflow
+ (assert-true (logbitp 2 x87-exceptions-enabled)) ; divide-by-zero
+ (assert-false (logbitp 1 x87-exceptions-enabled)) ; denormal
+ (assert-true (logbitp 0 x87-exceptions-enabled)) ; invalid
+
+ ;; Verify the rounding mode is set to zero
+ (assert-eql :zero (car (rassoc sse2-rc x86::rounding-mode-alist)))
+ (assert-eql :zero (car (rassoc x87-rc x86::rounding-mode-alist)))
+
+ ;; Verify precision for x87
+ (assert-eql :64-bits
+ (car (rassoc (ldb x86::x87-float-precision-control-byte x87-modes)
+ x86::x87-float-precision-control-alist))))))
=====================================
tests/float.lisp
=====================================
@@ -342,4 +342,3 @@
(x86::x87-floating-point-modes)))))
(assert-true (typep new-mode 'x86::float-modes))
(assert-equal new-mode (setf (x86::x87-floating-point-modes) new-mode))))
-
=====================================
tests/irrat.lisp
=====================================
@@ -245,6 +245,17 @@
(tanh #c(200w0 200w0))))
+;; See bug #424
+(define-test hypot
+ (:tag :issues)
+ (assert-eql 3.8950612975366328d0
+ (kernel:%hypot 2.302585092994046d0 3.141592653589793d0))
+ (let ((result (expt #C(2.302585092994046d0 3.141592653589793d0) 4)))
+ (assert-eql -188.4466069439329d0
+ (realpart result))
+ (assert-eql -132.16721026205448d0
+ (imagpart result))))
+
(define-test cos-tiny
(:tag issues)
;; This test comes from the Maxima testsuite where core-math was not
@@ -260,3 +271,4 @@
;; The computed result looked it had like a single-precision accuracy.
(assert-eql -0.37106498060016496d0
(kernel:%log (kernel:make-double-float (+ 1071644672 398457) 0))))
+
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/5ff177cb9f69fcd1042dbd…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/5ff177cb9f69fcd1042dbd…
You're receiving this email because of your account on gitlab.common-lisp.net.
1
0
[Git][cmucl/cmucl][master] 2 commits: Fix #440: Update CI to use snapshot 2025-09
by Raymond Toy (@rtoy) 17 Sep '25
by Raymond Toy (@rtoy) 17 Sep '25
17 Sep '25
Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
fb29eb6e by Raymond Toy at 2025-09-17T08:32:41-07:00
Fix #440: Update CI to use snapshot 2025-09
- - - - -
d537a8a3 by Raymond Toy at 2025-09-17T08:32:41-07:00
Merge branch 'issue-440-ci-use-snapshot-2025-09' into 'master'
Fix #440: Update CI to use snapshot 2025-09
Closes #440
See merge request cmucl/cmucl!320
- - - - -
1 changed file:
- .gitlab-ci.yml
Changes:
=====================================
.gitlab-ci.yml
=====================================
@@ -1,10 +1,10 @@
variables:
year: "2025"
- month: "07"
+ month: "09"
download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/$year/$month"
version: "$year-$month-x86"
tar_ext: "xz"
- bootstrap: "-B boot-2025-07"
+ bootstrap: ""
# Default install configuration to download the cmucl tarballs to use
# for building.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/69a8a4b6542e2ba224fe33…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/69a8a4b6542e2ba224fe33…
You're receiving this email because of your account on gitlab.common-lisp.net.
1
0