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
|