Skip to content

Commit 0fd7b13

Browse files
committed
bootstrap function for testing compilers
1 parent ba3fd95 commit 0fd7b13

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

bootstrap-check.sh

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,20 @@
22

33
# Po = m(Co, Ps)
44
# Co = m(Co, Cs)
5+
#
6+
# Po = Program object
7+
# Co = Compiler object
8+
# Cs = Compiler source
9+
# Ps = Program source
510

611
LISPKIT=./lispkit
12+
COMPILER=compiler.secd
13+
SOURCE=compiler.lisp
714

815
function m {
9-
Co=$1
10-
Ps=$2
11-
Po=$3
16+
local Co=$1
17+
local Ps=$2
18+
local Po=$3
1219
$LISPKIT $Co $Ps | fmt -w 80 > $Po
1320
}
1421

@@ -20,18 +27,20 @@ function d {
2027
fi
2128
}
2229

23-
cat compiler.lisp | tr '\n' ' ' | fmt -w 80 > compiler1.lisp
24-
cat compiler.secd | tr '\n' ' ' | fmt -w 80 > compiler1.secd
30+
function bootstrap {
31+
local Co=$1
32+
local Ps=$2
33+
local Po=${Ps/.lisp/.secd}
34+
local CPo=${Po}.bootstrap
35+
m $Co $Ps $Po
36+
m $Po $Ps $CPo
37+
d $Po $CPo
38+
echo "Bootstrap OK"
39+
}
2540

26-
m "compiler1.secd" "compiler1.lisp" "compiler1.secd.out"
27-
d "compiler1.secd" "compiler1.secd.out"
28-
echo "1 OK"
29-
m "compiler1.secd" "compiler2.lisp" "compiler2.secd"
30-
m "compiler2.secd" "compiler2.lisp" "compiler2.secd.out"
31-
d "compiler2.secd" "compiler2.secd.out"
32-
echo "2 OK"
33-
m "compiler2.secd" "compiler3.lisp" "compiler3.secd"
34-
m "compiler3.secd" "compiler3.lisp" "compiler3.secd.out"
35-
d "compiler3.secd" "compiler3.secd.out"
36-
echo "3 OK"
41+
cat $COMPILER | tr '\n' ' ' | fmt -w 80 > compiler0.secd
42+
cat $SOURCE | tr '\n' ' ' | fmt -w 80 > compiler1.lisp
3743

44+
bootstrap compiler0.secd compiler1.lisp
45+
bootstrap compiler1.secd compiler2.lisp
46+
bootstrap compiler2.secd compiler3.lisp

0 commit comments

Comments
 (0)