Hi guys,
I’m currently a PhD student who has a focus on formal verification and is interested in Zig. I’m digging into the Zig codegen aarch64 codebase since some days (I’m heavily in interested in arm64 especially Android low level stuff).
I want to contribute and try to fix some low hanging fruits to get a better overview of Zig as a whole.
I started by investigating where the codegen for aarch64 without llvm currently stops working (by running the test suite).
For testing, I used: build/stage4/bin/zig test test/behavior.zig -target aarch64-linux -fno-llvm -fno-lld --test-cmd qemu-aarch64-static --test-cmd-bin -j1 (please tell me if this is stupid, I use -j1 to run the threads in a single thread env, so I get my print calls).
I get a crash at an assert in Select.zig in aarch64 (so far so good).
I want to ask now multiple things.
- Upon a change that will fix something I will rebuild the strage4 with stage3 by running:
stage3/bin/zig build -p stage4 -Dno-lib -Doptimize=Debug -j10The problem is, this takes a while (~3 minutes, I have a quite good setup but still). Is this correct, or am I missing something? - I experimented with
-Doptimize=Debug --watch -fincrementalbut when I get a crash there are no debug symbols to backtrack on. (Even there are symbols in there checked withfile), is this intended or am I missing here something? - Is my way of running the test correct or complete nonsense?
Thank you very much.
Malte