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 |