Rustで「低レイヤを知りたい人のためのCコンパイラ作成入門」を少しやる
作成日: 2022-10-25
昔amdのocamlコンパイラは書いたけど、思い出しのために。
Dockerでx64-linuxを実行する
Dockerfile
FROM alpine:3.8
RUN apk add --no-cache gcc libc-dev
./run
docker run -i --rm $(docker build -q .) sh -c "cat > ./a.s; cc ./a.s -o ./a.out; ./a.out; echo \$?"
./test.sh
#!/bin/bash
assert() {
expected="$1"
input="$2"
actual=$(cargo run --quiet <(echo $input) | ./run)
if [ "$actual" = "$expected" ]; then
echo "$input => $actual"
else
echo "$input => $expected expected, but got $actual"
exit 1
fi
}
assert 0 0
assert 42 42
echo OK
ちびちび進めれられて面白い。