-
Notifications
You must be signed in to change notification settings - Fork 0
193 lines (166 loc) · 5.48 KB
/
cl-host.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
name: CL-host
on: [push]
jobs:
ecl:
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- uses: actions/checkout@v1
- uses: actions/cache@v1
id: ecl-cache3
with:
path: /tmp/ecl
key: ecl-cache3
- name: build host ecl
if: steps.ecl-cache3.outputs.cache-hit != 'true'
run: |
wget -q https://github.com/sbcl/sbcl/releases/download/sbcl-1.4.14/ecl.tgz
tar xf ecl.tgz
cd ecl
./configure --prefix=/usr/ --enable-threads
make
working-directory: /tmp
- name: install ecl
run: |
sudo make install
echo '(setf *debugger-hook* (lambda (c fun) (princ c) (si::tpl-backtrace) (quit 1)))' > ~/.eclrc
working-directory: /tmp/ecl
- name: build
env:
SBCL_MAKE_TARGET_2_OPTIONS: --disable-ldb --disable-debugger
run: ./make.sh --xc-host='ecl'
clisp:
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- uses: actions/checkout@v1
- name: install host clisp
run: |
sudo apt-get -qq update | true
sudo apt-get -qq install clisp git-restore-mtime
- name: build
env:
SBCL_MAKE_TARGET_2_OPTIONS: --disable-ldb --disable-debugger
run: |
git restore-mtime
./make.sh --xc-host='clisp -on-error exit'
- name: archive clisp-xc fasls
run: tar --transform 's,^,clisp-host/,' -cf clisp-host-fasls.tgz obj/from-xc/
- name: upload clisp-xc archive
uses: actions/upload-artifact@v4
with:
name: xc-host-fasls-clisp
path: clisp-host-fasls.tgz
ccl:
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- uses: actions/checkout@v1
- name: install host ccl
run: |
wget -q https://github.com/sbcl/sbcl/releases/download/sbcl-1.4.14/ccl-host.tgz
tar xf ccl-host.tgz
sudo apt-get -qq update | true
sudo apt-get -qq install git-restore-mtime
- name: build
env:
SBCL_MAKE_TARGET_2_OPTIONS: --disable-ldb --disable-debugger
run: |
git restore-mtime
./make.sh --xc-host='ccl-host/lx86cl64 --batch'
- name: archive ccl-xc fasls
run: tar --transform 's,^,ccl-host/,' -cf ccl-host-fasls.tgz obj/from-xc/
- name: upload ccl-xc archive
uses: actions/upload-artifact@v4
with:
name: xc-host-fasls-ccl
path: ccl-host-fasls.tgz
cmucl:
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- uses: actions/checkout@v1
- name: install host cmucl
run: |
mkdir cmucl
cd cmucl
wget -q https://github.com/sbcl/sbcl/releases/download/sbcl-1.4.14/cmucl.tar.bz2
tar xf cmucl.tar.bz2
echo '(setf ext:*gc-verbose* nil)' > ~/.cmucl-init.lisp
echo '(setf *batch-mode* t)' >> ~/.cmucl-init.lisp
echo '(setf *debugger-hook* (lambda (c fun) (princ c) (debug:backtrace) (quit nil 1)))' >> ~/.cmucl-init.lisp
sudo apt-get -qq update | true
sudo apt-get -qq install git-restore-mtime
working-directory: /tmp/
- name: build
env:
SBCL_MAKE_TARGET_2_OPTIONS: --disable-ldb --disable-debugger
run: |
git restore-mtime
./make.sh --xc-host='/tmp/cmucl/bin/lisp -dynamic-space-size 1024'
- name: archive cmucl-xc fasls
run: tar --transform 's,^,cmucl-host/,' -cf cmucl-host-fasls.tgz obj/from-xc/
- name: upload cmucl-xc archive
uses: actions/upload-artifact@v4
with:
name: xc-host-fasls-cmucl
path: cmucl-host-fasls.tgz
sbcl:
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- uses: actions/checkout@v1
- name: install host sbcl
run: |
sudo apt-get -qq update | true
sudo apt-get -qq install sbcl libcapstone-dev git-restore-mtime
- name: build
env:
SBCL_MAKE_TARGET_2_OPTIONS: --disable-ldb --disable-debugger
run: |
git restore-mtime
./make.sh --xc-host='sbcl --dynamic-space-size 600MB --lose-on-corruption --disable-ldb --disable-debugger'
- name: archive sbcl-xc fasls
run: tar --transform 's,^,sbcl-host/,' -cf sbcl-host-fasls.tgz obj/from-xc/
- name: upload sbcl-xc archive
uses: actions/upload-artifact@v4
with:
name: xc-host-fasls-sbcl
path: sbcl-host-fasls.tgz
- name: self build
env:
SBCL_MAKE_TARGET_2_OPTIONS: --disable-ldb --disable-debugger
run: |
cp src/runtime/sbcl output/sbcl.core /tmp
git reset --hard
git restore-mtime
./make.sh --xc-host='/tmp/sbcl --core /tmp/sbcl.core --dynamic-space-size 600MB --lose-on-corruption --disable-ldb --disable-debugger'
- name: archive self-xc fasls
run: tar --transform 's,^,self-host/,' -cf self-host-fasls.tgz obj/from-xc/
- name: upload self-xc archive
uses: actions/upload-artifact@v4
with:
name: xc-host-fasls-self
path: self-host-fasls.tgz
compare-xc-host-fasls:
runs-on: ubuntu-24.04
timeout-minutes: 5
needs: [ccl, sbcl, cmucl, clisp]
strategy:
matrix:
host: [ccl, clisp, cmucl, self]
or: [false]
fail-fast: false
steps:
- name: download xc-host fasls
uses: actions/download-artifact@v4
with:
pattern: xc-host-fasls-*
merge-multiple: true
- name: extract xc-host fasls
run: |
tar xf sbcl-host-fasls.tgz
tar xf ${{ matrix.host }}-host-fasls.tgz
- name: compare xc-host fasls
run: |
diff -ur sbcl-host/ ${{ matrix.host }}-host/ || ${{ matrix.or }}