Files
cs420/README.md
Jeehoon Kang b929dc334d Initial commit
2020-03-17 17:31:16 +09:00

1.2 KiB

KECC: KAIST Educational C Compiler

Install

Install rustup.

Build

cargo build            # debug build
cargo build --release  # release build

Run

cargo run -- -h                       # print options
cargo run -- -p examples/fibonacci.c  # parse
cargo run -- -i examples/fibonacci.c  # irgen
cargo run --    examples/fibonacci.c  # compile

cargo run --release -- examples/fibonacci.c  # compile with release build

Test

cargo test             # debug build test
cargo test --release   # release build test

cargo test <test-name> # run a particular test

<test-name> can be test_ast_print, ir_smoke, ...

Fuzzing

Install

# Ubuntu 18.04 or higher
apt install -y make cmake python3

# MacOS
xcode-select install
brew install cmake python3

Run

The following script generates 10 random test cases and tests your C AST printer:

python3 tests/fuzz.py --help        # print options
python3 tests/fuzz.py --print -n10  # test C AST printer for 10 times

We use Csmith to randomly generate C source codes. Csmith will be automatically downloaded and built by the test script.