Raymond Toy pushed to branch issue-337-cross-compile-linux-x86-fails at cmucl / cmucl

Commits:

6 changed files:

Changes:

  • .gitlab-ci.yml
    ... ... @@ -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
    

  • src/code/char.lisp
    ... ... @@ -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))))
    

  • src/code/exports.lisp
    ... ... @@ -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"
    

  • src/code/unicode.lisp
    ... ... @@ -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))
    

  • src/compiler/srctran.lisp
    ... ... @@ -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
    

  • src/i18n/locale/cmucl.pot
    ... ... @@ -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 ""