Raymond Toy pushed to branch issue-306-lisp.c at cmucl / cmucl
Commits:
-
0319c582
by Carl Shapiro at 2024-04-28T12:05:17-07:00
-
f4e19102
by Carl Shapiro at 2024-07-22T17:59:28-07:00
-
1b169581
by Carl Shapiro at 2024-07-23T06:42:31+00:00
-
1b3171cd
by Carl Shapiro at 2024-07-25T07:12:17+00:00
-
8e31e57e
by Raymond Toy at 2024-07-25T13:15:44+00:00
-
4e53aac5
by Raymond Toy at 2024-07-25T13:15:50+00:00
-
b6a449dd
by Raymond Toy at 2024-07-25T13:16:27+00:00
-
5ad8c86e
by Raymond Toy at 2024-07-25T13:16:29+00:00
-
aabe67a0
by Raymond Toy at 2024-07-25T13:16:53+00:00
-
8a2dbcb3
by Raymond Toy at 2024-07-25T13:16:57+00:00
-
a5e42f73
by Raymond Toy at 2024-07-25T14:58:09+00:00
-
76b67529
by Raymond Toy at 2024-07-25T14:58:12+00:00
-
c4488c0c
by Raymond Toy at 2024-07-25T15:30:06-07:00
11 changed files:
- + .dir-locals.el
- .gitlab-ci.yml
- src/compiler/srctran.lisp
- src/compiler/x86/call.lisp
- src/lisp/vars.c
- src/tools/cross-scripts/cross-x86-netbsd.lisp
- src/tools/cross-scripts/cross-x86-osx-freebsd.lisp
- src/tools/cross-scripts/cross-x86-osx-solaris.lisp
- src/tools/cross-scripts/cross-x86-ppc-darwin.lisp
- src/tools/cross-scripts/cross-x86-sparc.lisp
- src/tools/cross-scripts/cross-x86-x86.lisp
Changes:
| 1 | +((nil
|
|
| 2 | + (indent-tabs-mode . t)
|
|
| 3 | + (require-final-newline . t)
|
|
| 4 | + (tab-width . 8))
|
|
| 5 | + (c-mode
|
|
| 6 | + (c-basic-offset . 4))) |
| ... | ... | @@ -10,6 +10,7 @@ stages: |
| 10 | 10 | - test
|
| 11 | 11 | - ansi-test
|
| 12 | 12 | - benchmark
|
| 13 | + - analyze
|
|
| 13 | 14 | |
| 14 | 15 | cache:
|
| 15 | 16 | |
| ... | ... | @@ -36,7 +37,7 @@ linux:build: |
| 36 | 37 | - dist/
|
| 37 | 38 | - linux-2/*.log
|
| 38 | 39 | - linux-3/*.log
|
| 39 | - - linux-4/*.log
|
|
| 40 | + - linux-4/
|
|
| 40 | 41 | needs:
|
| 41 | 42 | - job: linux:install
|
| 42 | 43 | artifacts: true
|
| ... | ... | @@ -45,8 +46,10 @@ linux:build: |
| 45 | 46 | #- bin/create-target.sh xtarget x86_linux_clang
|
| 46 | 47 | #- bin/create-target.sh xcross x86_linux_clang
|
| 47 | 48 | #- bin/cross-build-world.sh -crl -B boot-2020-04-1 xtarget xcross src/tools/cross-scripts/cross-x86-x86.lisp snapshot/bin/lisp
|
| 48 | - # Regular build using the cross-compiled result or snapshot
|
|
| 49 | - - bin/build.sh $bootstrap -R -C "x86_linux_clang" -o snapshot/bin/lisp
|
|
| 49 | + # Regular build using the cross-compiled result or snapshot. The
|
|
| 50 | + # analyzer job requires gcc, so make sure we build with gcc here
|
|
| 51 | + # instead of clang.
|
|
| 52 | + - bin/build.sh $bootstrap -R -C "x86_linux" -o snapshot/bin/lisp
|
|
| 50 | 53 | # - bin/build.sh $bootstrap -R -C "x86_linux" -o snapshot/bin/lisp
|
| 51 | 54 | # Use -V to specify the version in case some tag makes git
|
| 52 | 55 | # describe return something that make-dist.sh doesn't like.
|
| ... | ... | @@ -62,6 +65,8 @@ linux:cross-build: |
| 62 | 65 | - linux-2/*.log
|
| 63 | 66 | - linux-3/*.log
|
| 64 | 67 | - linux-4/*.log
|
| 68 | + # The lisp directory is needed for the static analyzer job.
|
|
| 69 | + - linux-4/lisp
|
|
| 65 | 70 | needs:
|
| 66 | 71 | |
| 67 | 72 | # Normally need the linux:install stage to get the compiler to
|
| ... | ... | @@ -232,3 +237,24 @@ osx:benchmark: |
| 232 | 237 | - CMUCL=../../snapshot/bin/lisp ./run-cmucl.sh
|
| 233 | 238 | - CMUCL=../../dist/bin/lisp ./run-cmucl.sh
|
| 234 | 239 | - ../../snapshot/bin/lisp -load report
|
| 240 | + |
|
| 241 | +# Optional job that runs the static analyzer. It needs the files from
|
|
| 242 | +# the linux-4 directory built in the linux:build job.
|
|
| 243 | +linux:static-analyzer:
|
|
| 244 | + stage: analyze
|
|
| 245 | + when: manual
|
|
| 246 | + tags:
|
|
| 247 | + - linux
|
|
| 248 | + artifacts:
|
|
| 249 | + paths:
|
|
| 250 | + - analyzer.log
|
|
| 251 | + needs:
|
|
| 252 | + - job: linux:build
|
|
| 253 | + artifacts: true
|
|
| 254 | + script:
|
|
| 255 | + # Analysis can generate huge amounts of output. For now just save
|
|
| 256 | + # the results to the log file instead of also having it go to the
|
|
| 257 | + # console. If someday there's less or no output, we can consider
|
|
| 258 | + # having the logs go to the console too.
|
|
| 259 | + - make -C linux-4/lisp clean
|
|
| 260 | + - make -C linux-4/lisp CFLAGS=-fanalyzer > analyzer.log 2>&1 |
| ... | ... | @@ -3313,8 +3313,8 @@ |
| 3313 | 3313 | #+(and unicode (not unicode-bootstrap))
|
| 3314 | 3314 | '(let* ((ac (char-code a))
|
| 3315 | 3315 | (bc (char-code b)))
|
| 3316 | - (if (and (<= ac #x7f)
|
|
| 3317 | - (<= bc #x7f))
|
|
| 3316 | + (if (and (<= ac +ascii-limit+)
|
|
| 3317 | + (<= bc +ascii-limit+))
|
|
| 3318 | 3318 | ;; ASCII
|
| 3319 | 3319 | (let ((sum (logxor ac bc)))
|
| 3320 | 3320 | (or (zerop sum)
|
| ... | ... | @@ -49,7 +49,9 @@ |
| 49 | 49 | ;;; No problems.
|
| 50 | 50 | ;#+nil
|
| 51 | 51 | (def-vm-support-routine make-return-pc-passing-location (standard)
|
| 52 | - (declare (ignore standard))
|
|
| 52 | + ;; Should be IGNORE, not IGNORABLE; We're just silencing a compiler
|
|
| 53 | + ;; note.
|
|
| 54 | + (declare (ignorable standard))
|
|
| 53 | 55 | (make-wired-tn (primitive-type-or-lose 'system-area-pointer *backend*)
|
| 54 | 56 | sap-stack-sc-number return-pc-save-offset))
|
| 55 | 57 | ;;;
|
| ... | ... | @@ -77,7 +79,9 @@ |
| 77 | 79 | ;;; No problems
|
| 78 | 80 | ;#+nil
|
| 79 | 81 | (def-vm-support-routine make-old-fp-passing-location (standard)
|
| 80 | - (declare (ignore standard))
|
|
| 82 | + ;; Should be IGNORE, not IGNORABLE; We're just silencing a compiler
|
|
| 83 | + ;; note.
|
|
| 84 | + (declare (ignorable standard))
|
|
| 81 | 85 | (make-wired-tn *fixnum-primitive-type* control-stack-sc-number
|
| 82 | 86 | ocfp-save-offset))
|
| 83 | 87 | ;;;
|
| ... | ... | @@ -128,6 +128,10 @@ make_var(char *name, boolean perm) |
| 128 | 128 | name = buffer;
|
| 129 | 129 | }
|
| 130 | 130 | var->name = (char *) malloc(strlen(name) + 1);
|
| 131 | + if (var->name == NULL) {
|
|
| 132 | + perror("malloc");
|
|
| 133 | + exit(1);
|
|
| 134 | + }
|
|
| 131 | 135 | strcpy(var->name, name);
|
| 132 | 136 | var->clock = 0;
|
| 133 | 137 | var->permanent = perm;
|
| ... | ... | @@ -22,7 +22,7 @@ |
| 22 | 22 | :conservative-float-type
|
| 23 | 23 | :hash-new
|
| 24 | 24 | :random-mt19937
|
| 25 | - :cmu :cmu20 :cmu20a ; Version features
|
|
| 25 | + :cmu :cmu21 :cmu21e ; Version features
|
|
| 26 | 26 | :double-double ; double-double float support
|
| 27 | 27 | )
|
| 28 | 28 | ;; Features to remove from current *features* here. Normally don't
|
| ... | ... | @@ -26,7 +26,7 @@ |
| 26 | 26 | :complex-fp-vops
|
| 27 | 27 | :hash-new
|
| 28 | 28 | :random-mt19937
|
| 29 | - :cmu :cmu20 :cmu20b ; Version features
|
|
| 29 | + :cmu :cmu21 :cmu21e ; Version features
|
|
| 30 | 30 | :double-double ; double-double float support
|
| 31 | 31 | :linkage-table
|
| 32 | 32 |
| ... | ... | @@ -26,7 +26,7 @@ |
| 26 | 26 | :complex-fp-vops
|
| 27 | 27 | :hash-new
|
| 28 | 28 | :random-mt19937
|
| 29 | - :cmu :cmu20 :cmu20b ; Version features
|
|
| 29 | + :cmu :cmu21 :cmu21e ; Version features
|
|
| 30 | 30 | :double-double ; double-double float support
|
| 31 | 31 | :linkage-table
|
| 32 | 32 |
| ... | ... | @@ -17,7 +17,7 @@ |
| 17 | 17 | :darwin ; Darwin OS (Mac OS X)
|
| 18 | 18 | :bsd ; We're a BSD-type OS
|
| 19 | 19 | :cmu ; Announce this is CMUCL
|
| 20 | - :cmu20 :cmu20a ; (Mostly) current version identifier
|
|
| 20 | + :cmu21 :cmu21e ; (Mostly) current version identifier
|
|
| 21 | 21 | :gencgc ; Generational GC is supported on ppc.
|
| 22 | 22 | :relative-package-names
|
| 23 | 23 | :modular-arith ; Modular arithmetic
|
| ... | ... | @@ -23,7 +23,7 @@ |
| 23 | 23 | :hash-new
|
| 24 | 24 | :random-mt19937 ; MT-19937 generator
|
| 25 | 25 | :cmu ; Announce this is CMUCL
|
| 26 | - :cmu20 :cmu20b ; Current version identifier
|
|
| 26 | + :cmu21 :cmu21e ; Current version identifier
|
|
| 27 | 27 | :modular-arith ; Modular arithmetic
|
| 28 | 28 | :double-double ; Double-double float support
|
| 29 | 29 | :executable
|
| ... | ... | @@ -21,7 +21,7 @@ |
| 21 | 21 | :conservative-float-type
|
| 22 | 22 | :hash-new
|
| 23 | 23 | :random-xoroshiro ; RNG
|
| 24 | - :cmu :cmu20 :cmu20a ; Version features
|
|
| 24 | + :cmu :cmu21 :cmu21e ; Version features
|
|
| 25 | 25 | :double-double ; double-double float support
|
| 26 | 26 | )
|
| 27 | 27 | ;; Features to remove from current *features* here. Normally don't
|