Raymond Toy pushed to branch issue-337-cross-compile-linux-x86-fails at cmucl / cmucl
Commits:
-
4bb23b29
by Raymond Toy at 2024-07-18T06:29:53-07:00
-
8ada0f1e
by Raymond Toy at 2024-07-18T06:35:36-07:00
6 changed files:
- .gitlab-ci.yml
- src/code/char.lisp
- src/code/exports.lisp
- src/code/unicode.lisp
- src/compiler/srctran.lisp
- src/i18n/locale/cmucl.pot
Changes:
... | ... | @@ -63,7 +63,13 @@ linux:cross-build: |
63 | 63 | - linux-3/*.log
|
64 | 64 | - linux-4/*.log
|
65 | 65 | needs:
|
66 | - - job: linux:install
|
|
66 | + |
|
67 | + # Normally need the linux:install stage to get the compiler to
|
|
68 | + # use. But for #337, we need the normal build from linux:build to
|
|
69 | + # do the cross-compile. Once the snapshot is made, we can use
|
|
70 | + # linux:install instead.
|
|
71 | + - job: linux:build
|
|
72 | + #- job: linux:install
|
|
67 | 73 | artifacts: true
|
68 | 74 | script:
|
69 | 75 | - bin/create-target.sh xtarget
|
... | ... | @@ -59,6 +59,11 @@ |
59 | 59 | (deftype codepoint ()
|
60 | 60 | `(integer 0 (,codepoint-limit)))
|
61 | 61 | |
62 | +(defconstant +ascii-limit+
|
|
63 | + 127
|
|
64 | + "A character code strictly larger than this is handled using Unicode
|
|
65 | + rules.")
|
|
66 | + |
|
62 | 67 | ;; Table of mappings for upper case and lower case letters. See
|
63 | 68 | ;; src/lisp/case-mapping.c.
|
64 | 69 | (alien:def-alien-variable "case_mapping"
|
... | ... | @@ -255,7 +260,7 @@ |
255 | 260 | (let ((m (char-code (the base-char char))))
|
256 | 261 | (or (<= (char-code #\space ) m (char-code #\~))
|
257 | 262 | #+(and unicode (not unicode-bootstrap))
|
258 | - (and (> m c::+ascii-limit+)
|
|
263 | + (and (> m +ascii-limit+)
|
|
259 | 264 | (>= (unicode-category m) +unicode-category-graphic+))))))
|
260 | 265 | |
261 | 266 | |
... | ... | @@ -267,7 +272,7 @@ |
267 | 272 | (or (<= (char-code #\A) m (char-code #\Z))
|
268 | 273 | (<= (char-code #\a) m (char-code #\z))
|
269 | 274 | #+(and unicode (not unicode-bootstrap))
|
270 | - (and (> m c::+ascii-limit+)
|
|
275 | + (and (> m +ascii-limit+)
|
|
271 | 276 | (<= +unicode-category-letter+ (unicode-category m)
|
272 | 277 | (+ +unicode-category-letter+ #x0F))))))
|
273 | 278 | |
... | ... | @@ -279,7 +284,7 @@ |
279 | 284 | (let ((m (char-code char)))
|
280 | 285 | (or (<= (char-code #\A) m (char-code #\Z))
|
281 | 286 | #+(and unicode (not unicode-bootstrap))
|
282 | - (and (> m c::+ascii-limit+)
|
|
287 | + (and (> m +ascii-limit+)
|
|
283 | 288 | (not (zerop (ldb +lower-case-entry+ (case-mapping-entry m))))))))
|
284 | 289 | |
285 | 290 | |
... | ... | @@ -290,7 +295,7 @@ |
290 | 295 | (let ((m (char-code char)))
|
291 | 296 | (or (<= (char-code #\a) m (char-code #\z))
|
292 | 297 | #+(and unicode (not unicode-bootstrap))
|
293 | - (and (> m c::+ascii-limit+)
|
|
298 | + (and (> m +ascii-limit+)
|
|
294 | 299 | (not (zerop (ldb +upper-case-entry+ (case-mapping-entry m))))))))
|
295 | 300 | |
296 | 301 | (defun both-case-p (char)
|
... | ... | @@ -302,7 +307,7 @@ |
302 | 307 | (or (<= (char-code #\A) m (char-code #\Z))
|
303 | 308 | (<= (char-code #\a) m (char-code #\z))
|
304 | 309 | #+(and unicode (not unicode-bootstrap))
|
305 | - (and (> m c::+ascii-limit+)
|
|
310 | + (and (> m +ascii-limit+)
|
|
306 | 311 | (not (zerop (case-mapping-entry m)))))))
|
307 | 312 | |
308 | 313 | |
... | ... | @@ -336,7 +341,7 @@ |
336 | 341 | (<= (char-code #\A) m (char-code #\Z))
|
337 | 342 | (<= (char-code #\a) m (char-code #\z))
|
338 | 343 | #+(and unicode (not unicode-bootstrap))
|
339 | - (and (> m c::+ascii-limit+)
|
|
344 | + (and (> m +ascii-limit+)
|
|
340 | 345 | (<= +unicode-category-letter+ (unicode-category m)
|
341 | 346 | (+ +unicode-category-letter+ #x0F))))))
|
342 | 347 | |
... | ... | @@ -409,7 +414,7 @@ |
409 | 414 | (cond ((<= (char-code #\A) ch (char-code #\Z))
|
410 | 415 | (logxor ch #x20))
|
411 | 416 | #+(and unicode (not unicode-bootstrap))
|
412 | - ((> ch c::+ascii-limit+)
|
|
417 | + ((> ch +ascii-limit+)
|
|
413 | 418 | (case-mapping-lower-case ch))
|
414 | 419 | (t
|
415 | 420 | ch))))
|
... | ... | @@ -1067,7 +1067,8 @@ |
1067 | 1067 | "CHAR-TITLECASE" "TITLE-CASE-P"
|
1068 | 1068 | "GLYPH" "SGLYPH"
|
1069 | 1069 | "STRING-TO-NFC"
|
1070 | - "CODEPOINT-LIMIT" "CODEPOINT")
|
|
1070 | + "CODEPOINT-LIMIT" "CODEPOINT"
|
|
1071 | + "+ASCII-LIMIT+")
|
|
1071 | 1072 | ;; Unicode
|
1072 | 1073 | (:export "STRING-TO-NFC" "STRING-TO-NFD"
|
1073 | 1074 | "STRING-TO-NFKC" "STRING-TO-NFKD"
|
... | ... | @@ -1858,7 +1859,8 @@ |
1858 | 1859 | "%SP-STRING-COMPARE"
|
1859 | 1860 | "%SVSET" "%TYPEP" "SHORT-FLOAT-P"
|
1860 | 1861 | "STRING/=*" "STRING<*" "STRING<=*" "STRING=*"
|
1861 | - "STRING>*" "STRING>=*")
|
|
1862 | + "STRING>*" "STRING>=*"
|
|
1863 | + "+ASCII-LIMIT+")
|
|
1862 | 1864 | (:import-from "SYSTEM" "FOREIGN-SYMBOL-ADDRESS" "FOREIGN-SYMBOL-CODE-ADDRESS"
|
1863 | 1865 | "FOREIGN-SYMBOL-DATA-ADDRESS")
|
1864 | 1866 | (:import-from "EXTENSIONS"
|
... | ... | @@ -495,7 +495,7 @@ |
495 | 495 | (cond ((<= (char-code #\a) m (char-code #\z))
|
496 | 496 | (code-char (logxor m #x20)))
|
497 | 497 | #+(and unicode (not unicode-bootstrap))
|
498 | - ((> m c::+ascii-limit+)
|
|
498 | + ((> m lisp::+ascii-limit+)
|
|
499 | 499 | (code-char (lisp::unicode-title m)))
|
500 | 500 | (t char))))
|
501 | 501 | |
... | ... | @@ -506,7 +506,7 @@ |
506 | 506 | (let ((m (char-code char)))
|
507 | 507 | (or (<= (char-code #\A) m (char-code #\Z))
|
508 | 508 | #+(and unicode (not unicode-bootstrap))
|
509 | - (and (> m c::+ascii-limit+)
|
|
509 | + (and (> m lisp::+ascii-limit+)
|
|
510 | 510 | (= (unicode-category m) +unicode-category-title+)))))
|
511 | 511 | |
512 | 512 | (defun string-capitalize-unicode (string &key (start 0) end (casing :simple))
|
... | ... | @@ -21,11 +21,6 @@ |
21 | 21 | (in-package "C")
|
22 | 22 | (intl:textdomain "cmucl")
|
23 | 23 | |
24 | -(defconstant +ascii-limit+
|
|
25 | - 127
|
|
26 | - "A character code strictly larger than this is handled using Unicode
|
|
27 | - rules.")
|
|
28 | - |
|
29 | 24 | ;;; Source transform for Not, Null -- Internal
|
30 | 25 | ;;;
|
31 | 26 | ;;; Convert into an IF so that IF optimizations will eliminate redundant
|
... | ... | @@ -1814,8 +1809,7 @@ |
1814 | 1809 | (round-it pos)))))))
|
1815 | 1810 | |
1816 | 1811 | (defun round-derive-type-quot (number-type divisor-type)
|
1817 | - (let* ((rem-type (rem-result-type number-type divisor-type))
|
|
1818 | - (number-interval (numeric-type->interval number-type))
|
|
1812 | + (let* ((number-interval (numeric-type->interval number-type))
|
|
1819 | 1813 | (divisor-interval (numeric-type->interval divisor-type)))
|
1820 | 1814 | (let ((quot (round-quotient-bound
|
1821 | 1815 | (interval-div number-interval
|
... | ... | @@ -1824,9 +1818,7 @@ |
1824 | 1818 | ,(or (interval-high quot) '*))))))
|
1825 | 1819 | |
1826 | 1820 | (defun round-derive-type-rem (number-type divisor-type)
|
1827 | - (let* ((rem-type (rem-result-type number-type divisor-type))
|
|
1828 | - (number-interval (numeric-type->interval number-type))
|
|
1829 | - (divisor-interval (numeric-type->interval divisor-type)))
|
|
1821 | + (let* ((rem-type (rem-result-type number-type divisor-type)))
|
|
1830 | 1822 | (multiple-value-bind (class format)
|
1831 | 1823 | (ecase rem-type
|
1832 | 1824 | (integer
|
... | ... | @@ -1840,13 +1832,6 @@ |
1840 | 1832 | (values 'float nil))
|
1841 | 1833 | (real
|
1842 | 1834 | (values nil nil)))
|
1843 | - #+nil
|
|
1844 | - (when (member rem-type '(float single-float double-float
|
|
1845 | - #+long-float long-float
|
|
1846 | - #+double-double double-double-float))
|
|
1847 | - (setf rem (interval-func #'(lambda (x)
|
|
1848 | - (coerce x rem-type))
|
|
1849 | - rem)))
|
|
1850 | 1835 | (make-numeric-type :class class
|
1851 | 1836 | :format format
|
1852 | 1837 | :low nil
|
... | ... | @@ -5443,6 +5443,12 @@ msgstr "" |
5443 | 5443 | msgid "The upper exclusive bound on the value of a Unicode codepoint"
|
5444 | 5444 | msgstr ""
|
5445 | 5445 | |
5446 | +#: src/code/char.lisp
|
|
5447 | +msgid ""
|
|
5448 | +"A character code strictly larger than this is handled using Unicode\n"
|
|
5449 | +" rules."
|
|
5450 | +msgstr ""
|
|
5451 | + |
|
5446 | 5452 | #: src/code/char.lisp
|
5447 | 5453 | msgid ""
|
5448 | 5454 | "Number of bits used for the index of the second stage table of the\n"
|
... | ... | @@ -19149,12 +19155,6 @@ msgstr "" |
19149 | 19155 | msgid "FOREIGN-SYMBOL-ADDRESS flavor ~S is not :CODE or :DATA"
|
19150 | 19156 | msgstr ""
|
19151 | 19157 | |
19152 | -#: src/compiler/srctran.lisp
|
|
19153 | -msgid ""
|
|
19154 | -"A character code strictly larger than this is handled using Unicode\n"
|
|
19155 | -" rules."
|
|
19156 | -msgstr ""
|
|
19157 | - |
|
19158 | 19158 | #: src/compiler/srctran.lisp
|
19159 | 19159 | msgid "Function doesn't have fixed argument count."
|
19160 | 19160 | msgstr ""
|