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 Fix #337: Import lisp::+ascii-limit+ to the C package
- - - - - b7b29443 by Raymond Toy at 2024-07-20T02:01:16+00:00 Merge branch 'issue-337-cross-compile-linux-x86-fails' into 'master'
Fix #337: Import lisp::+ascii-limit+ to the C package
Closes #337
See merge request cmucl/cmucl!234 - - - - - e31f4716 by Raymond Toy at 2024-07-20T02:07:48+00:00 Address #336: get-nil-indexed-object returns object and validp value
- - - - - 75ddf400 by Raymond Toy at 2024-07-20T02:07:54+00:00 Merge branch 'issue-336-2-fix-compiler-notes' into 'master'
Address #336: get-nil-indexed-object returns object and validp value
See merge request cmucl/cmucl!235 - - - - - d688ff70 by Raymond Toy at 2024-07-19T21:32:08-07:00 Merge branch 'master' into issue-341-update-version-feature-for-xcompile
- - - - -
4 changed files:
- .gitlab-ci.yml - src/code/exports.lisp - src/compiler/disassem.lisp - src/compiler/srctran.lisp
Changes:
===================================== .gitlab-ci.yml ===================================== @@ -52,6 +52,32 @@ linux:build: # describe return something that make-dist.sh doesn't like. - bin/make-dist.sh -V `git describe --dirty` -I dist linux-4
+linux:cross-build: + stage: build + tags: + - linux + artifacts: + paths: + - xdist/ + - linux-2/*.log + - linux-3/*.log + - linux-4/*.log + needs: + + # Normally need the linux:install stage to get the compiler to + # use. But for #337, we need the normal build from linux:build to + # do the cross-compile. Once the snapshot is made, we can use + # linux:install instead. + - job: linux:build + #- job: linux:install + artifacts: true + script: + - bin/create-target.sh xtarget + - bin/create-target.sh xcross + - bin/cross-build-world.sh -crl xtarget xcross src/tools/cross-scripts/cross-x86-x86.lisp dist/bin/lisp + - bin/build.sh -b xlinux $bootstrap -R -C "" -o xtarget/lisp/lisp + - bin/make-dist.sh -V `git describe --dirty` -I xdist xlinux-4 + linux:test: stage: test tags: @@ -67,6 +93,21 @@ linux:test: script: - bin/run-unit-tests.sh -l dist/bin/lisp 2>&1 | tee test.log
+linux:cross-test: + stage: test + tags: + - linux + artifacts: + paths: + - ansi-test/test.out + - cross-test.log + needs: + # Needs artifacts from build (dist/) + - job: linux:cross-build + artifacts: true + script: + - bin/run-unit-tests.sh -l xdist/bin/lisp 2>&1 | tee cross-test.log + linux:ansi-test: stage: ansi-test tags:
===================================== src/code/exports.lisp ===================================== @@ -1067,7 +1067,8 @@ "CHAR-TITLECASE" "TITLE-CASE-P" "GLYPH" "SGLYPH" "STRING-TO-NFC" - "CODEPOINT-LIMIT" "CODEPOINT") + "CODEPOINT-LIMIT" "CODEPOINT" + "+ASCII-LIMIT+") ;; Unicode (:export "STRING-TO-NFC" "STRING-TO-NFD" "STRING-TO-NFKC" "STRING-TO-NFKD" @@ -1858,7 +1859,8 @@ "%SP-STRING-COMPARE" "%SVSET" "%TYPEP" "SHORT-FLOAT-P" "STRING/=*" "STRING<*" "STRING<=*" "STRING=*" - "STRING>*" "STRING>=*") + "STRING>*" "STRING>=*" + "+ASCII-LIMIT+") (:import-from "SYSTEM" "FOREIGN-SYMBOL-ADDRESS" "FOREIGN-SYMBOL-CODE-ADDRESS" "FOREIGN-SYMBOL-DATA-ADDRESS") (:import-from "EXTENSIONS"
===================================== src/compiler/disassem.lisp ===================================== @@ -3609,7 +3609,12 @@ symbol object that we know about.") (defun get-nil-indexed-object (byte-offset) "Returns the lisp object located BYTE-OFFSET from NIL." (declare (type offset byte-offset)) - (kernel:make-lisp-obj (+ nil-addr byte-offset))) + (values (kernel:make-lisp-obj (+ nil-addr byte-offset)) + ;; Assume NIL indexed objects only come from the static + ;; space, so the byte offset must be in the static space + (<= 0 byte-offset + (- (* lisp::*static-space-free-pointer* vm:word-bytes) + (lisp::static-space-start)))))
(defun get-code-constant (byte-offset dstate) "Returns two values; the lisp-object located at BYTE-OFFSET in the constant @@ -3787,11 +3792,13 @@ symbol object that we know about.") disassembled. Returns non-NIL iff a note was recorded." (declare (type offset nil-byte-offset) (type disassem-state dstate)) - (let ((obj (get-nil-indexed-object nil-byte-offset))) - (note #'(lambda (stream) - (prin1-quoted-short obj stream)) - dstate) - t)) + (multiple-value-bind (obj validp) + (get-nil-indexed-object nil-byte-offset) + (when validp + (note #'(lambda (stream) + (prin1-quoted-short obj stream)) + dstate)) + validp))
(defun maybe-note-assembler-routine (address note-address-p dstate) "If ADDRESS is the address of a primitive assembler routine or
===================================== src/compiler/srctran.lisp ===================================== @@ -3335,7 +3335,7 @@ '(let ((m (char-code x))) (cond ((<= (char-code #\a) m (char-code #\z)) (code-char (logxor m #x20))) - ((> m lisp::+ascii-limit+) + ((> m +ascii-limit+) (code-char (lisp::case-mapping-upper-case m))) (t x))))
@@ -3349,7 +3349,7 @@ '(let ((m (char-code x))) (cond ((<= (char-code #\A) m (char-code #\Z)) (code-char (logxor m #x20))) - ((> m lisp::+ascii-limit+) + ((> m +ascii-limit+) (code-char (lisp::case-mapping-lower-case m))) (t x))))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/4c030ea0d2273a4c7cecd26...