Raymond Toy pushed to branch issue-341-update-version-feature-for-xcompile at cmucl / cmucl

Commits:

4 changed files:

Changes:

  • .gitlab-ci.yml
    ... ... @@ -52,6 +52,32 @@ linux:build:
    52 52
         # describe return something that make-dist.sh doesn't like.
    
    53 53
         - bin/make-dist.sh -V `git describe --dirty` -I dist linux-4
    
    54 54
     
    
    55
    +linux:cross-build:
    
    56
    +  stage: build
    
    57
    +  tags:
    
    58
    +    - linux
    
    59
    +  artifacts:
    
    60
    +    paths:
    
    61
    +      - xdist/
    
    62
    +      - linux-2/*.log
    
    63
    +      - linux-3/*.log
    
    64
    +      - linux-4/*.log
    
    65
    +  needs:
    
    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
    
    73
    +      artifacts: true
    
    74
    +  script:
    
    75
    +    - bin/create-target.sh xtarget
    
    76
    +    - bin/create-target.sh xcross
    
    77
    +    - bin/cross-build-world.sh -crl xtarget xcross src/tools/cross-scripts/cross-x86-x86.lisp dist/bin/lisp
    
    78
    +    - bin/build.sh -b xlinux $bootstrap -R -C "" -o xtarget/lisp/lisp
    
    79
    +    - bin/make-dist.sh -V `git describe --dirty` -I xdist xlinux-4
    
    80
    +
    
    55 81
     linux:test:
    
    56 82
       stage: test
    
    57 83
       tags:
    
    ... ... @@ -67,6 +93,21 @@ linux:test:
    67 93
       script:
    
    68 94
         - bin/run-unit-tests.sh -l dist/bin/lisp 2>&1 | tee test.log
    
    69 95
     
    
    96
    +linux:cross-test:
    
    97
    +  stage: test
    
    98
    +  tags:
    
    99
    +    - linux
    
    100
    +  artifacts:
    
    101
    +    paths:
    
    102
    +      - ansi-test/test.out
    
    103
    +      - cross-test.log
    
    104
    +  needs:
    
    105
    +    # Needs artifacts from build (dist/)
    
    106
    +    - job: linux:cross-build
    
    107
    +      artifacts: true
    
    108
    +  script:
    
    109
    +    - bin/run-unit-tests.sh -l xdist/bin/lisp 2>&1 | tee cross-test.log
    
    110
    +
    
    70 111
     linux:ansi-test:
    
    71 112
       stage: ansi-test
    
    72 113
       tags:
    

  • 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/compiler/disassem.lisp
    ... ... @@ -3609,7 +3609,12 @@ symbol object that we know about.")
    3609 3609
     (defun get-nil-indexed-object (byte-offset)
    
    3610 3610
       "Returns the lisp object located BYTE-OFFSET from NIL."
    
    3611 3611
       (declare (type offset byte-offset))
    
    3612
    -  (kernel:make-lisp-obj (+ nil-addr byte-offset)))
    
    3612
    +  (values (kernel:make-lisp-obj (+ nil-addr byte-offset))
    
    3613
    +          ;; Assume NIL indexed objects only come from the static
    
    3614
    +          ;; space, so the byte offset must be in the static space
    
    3615
    +          (<= 0 byte-offset
    
    3616
    +              (- (* lisp::*static-space-free-pointer* vm:word-bytes)
    
    3617
    +                 (lisp::static-space-start)))))
    
    3613 3618
     
    
    3614 3619
     (defun get-code-constant (byte-offset dstate)
    
    3615 3620
       "Returns two values; the lisp-object located at BYTE-OFFSET in the constant
    
    ... ... @@ -3787,11 +3792,13 @@ symbol object that we know about.")
    3787 3792
       disassembled.  Returns non-NIL iff a note was recorded."
    
    3788 3793
       (declare (type offset nil-byte-offset)
    
    3789 3794
     	   (type disassem-state dstate))
    
    3790
    -  (let ((obj (get-nil-indexed-object nil-byte-offset)))
    
    3791
    -    (note #'(lambda (stream)
    
    3792
    -	      (prin1-quoted-short obj stream))
    
    3793
    -	  dstate)
    
    3794
    -    t))
    
    3795
    +  (multiple-value-bind (obj validp)
    
    3796
    +      (get-nil-indexed-object nil-byte-offset)
    
    3797
    +    (when validp
    
    3798
    +      (note #'(lambda (stream)
    
    3799
    +	        (prin1-quoted-short obj stream))
    
    3800
    +	    dstate))
    
    3801
    +    validp))
    
    3795 3802
     
    
    3796 3803
     (defun maybe-note-assembler-routine (address note-address-p dstate)
    
    3797 3804
       "If ADDRESS is the address of a primitive assembler routine or
    

  • src/compiler/srctran.lisp
    ... ... @@ -3335,7 +3335,7 @@
    3335 3335
       '(let ((m (char-code x)))
    
    3336 3336
         (cond ((<= (char-code #\a) m (char-code #\z))
    
    3337 3337
                (code-char (logxor m #x20)))
    
    3338
    -          ((> m lisp::+ascii-limit+)
    
    3338
    +          ((> m +ascii-limit+)
    
    3339 3339
                (code-char (lisp::case-mapping-upper-case m)))
    
    3340 3340
     	   (t x))))
    
    3341 3341
     
    
    ... ... @@ -3349,7 +3349,7 @@
    3349 3349
       '(let ((m (char-code x)))
    
    3350 3350
         (cond ((<= (char-code #\A) m (char-code #\Z))
    
    3351 3351
                (code-char (logxor m #x20)))
    
    3352
    -          ((> m lisp::+ascii-limit+)
    
    3352
    +          ((> m +ascii-limit+)
    
    3353 3353
                (code-char (lisp::case-mapping-lower-case m)))
    
    3354 3354
     	  (t x))))
    
    3355 3355