Raymond Toy pushed to branch issue-341-update-version-feature-for-xcompile at cmucl / cmucl
Commits:
-
61fd177a
by Raymond Toy at 2024-07-20T02:01:13+00:00
-
b7b29443
by Raymond Toy at 2024-07-20T02:01:16+00:00
-
e31f4716
by Raymond Toy at 2024-07-20T02:07:48+00:00
-
75ddf400
by Raymond Toy at 2024-07-20T02:07:54+00:00
-
d688ff70
by Raymond Toy at 2024-07-19T21:32:08-07:00
4 changed files:
Changes:
| ... | ... | @@ -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:
|
| ... | ... | @@ -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"
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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 |