-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrecheck.sh
More file actions
executable file
·90 lines (77 loc) · 2.35 KB
/
recheck.sh
File metadata and controls
executable file
·90 lines (77 loc) · 2.35 KB
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
#!/bin/bash
set -o pipefail
die() {
echo "$@"
exit 1
}
# Racket
scheme_racket() {
racket -r "$1" $2 2>&1
}
# Chicken Scheme, interpreter
scheme_csi() {
chicken-csi -qs "$1" $2 2>&1
}
# Chicken Scheme, compiler
scheme_csc() {
exe="${1%.scm}"
chicken-csc "$1" \
-O5 \
-unsafe \
-strict-types \
-optimize-leaf-routines \
-specialize \
-inline \
-block \
-fixnum-arithmetic \
-no-argc-checks \
-no-bound-checks \
-no-procedure-checks \
-clustering \
-lfa2
"$exe" $2 2>&1
rm "$exe"
}
# Here, select which compiler you want to use.
scheme() {
scheme_csi "$@"
}
install() {
chicken-install matchable
# pattern matching is in racket base already
}
#cabal install -j1 \
# || die "could not install"
stack install \
|| die "could not install"
mkdir -p examples/outputs
for i in examples/*.tt; do
n_src="${i%.tt}"
n="${n_src/examples/examples\/outputs}"
mkdir -p "${n}"
find "${n}" -type f | xargs rm
echo $i
ttstar -v "$i" &> "${n}/ttstar.out" \
|| continue # skip if it doesn't typecheck
ttstar "$i" \
--opt-identity \
--dump-pretty "${n}/erased.tt" \
--dump-ir "${n}/erased.ir" \
--dump-scheme "${n}/erased.scm" \
--dump-scheme-ir "${n}/erased-IR.scm" \
--dump-nf "${n}/erased-NF.tt" \
--dump-nf-scheme "${n}/erased-NF.scm" \
&& scheme "${n}/erased.scm" $(cat "${n_src}.args" 2>/dev/null) &> "${n}/erased.scm.out" \
&& scheme "${n}/erased-NF.scm" $(cat "${n_src}.args" 2>/dev/null) &> "${n}/erased-NF.scm.out" \
&& scheme "${n}/erased-IR.scm" $(cat "${n_src}.args" 2>/dev/null) &> "${n}/erased-IR.scm.out"
ttstar "$i" --skip-inference \
--dump-pretty "${n}/unerased.tt" \
--dump-ir "${n}/unerased.ir" \
--dump-scheme "${n}/unerased.scm" \
--dump-scheme-ir "${n}/unerased-IR.scm" \
--dump-nf "${n}/unerased-NF.tt" \
--dump-nf-scheme "${n}/unerased-NF.scm" \
&& scheme "${n}/unerased.scm" $(cat "${n_src}.args" 2>/dev/null) &> "${n}/unerased.scm.out" \
&& scheme "${n}/unerased-NF.scm" $(cat "${n_src}.args" 2>/dev/null) &> "${n}/unerased-NF.scm.out" \
&& scheme "${n}/unerased-IR.scm" $(cat "${n_src}.args" 2>/dev/null) &> "${n}/unerased-IR.scm.out"
done