46 lines
970 B
Markdown
46 lines
970 B
Markdown
# About
|
|
|
|
zig0 aspires to be an interpreter of zig 0.15.1 written in C.
|
|
|
|
This is written with help from LLM:
|
|
|
|
- Lexer:
|
|
- Datastructures 100% human.
|
|
- Helper functions 100% human.
|
|
- Lexing functions 50/50 human/bot.
|
|
- Parser:
|
|
- Datastructures 100% human.
|
|
- Helper functions 50/50.
|
|
- Parser functions 5/95 human/bot.
|
|
- AstGen: TBD.
|
|
|
|
# Testing
|
|
|
|
Quick test:
|
|
|
|
zig build fmt test
|
|
|
|
Full test and static analysis with all supported compilers and valgrind (run
|
|
before commit, takes a while):
|
|
|
|
zig build -Dvalgrind
|
|
|
|
# Debugging tips
|
|
|
|
Test runs infinitely? Build the test program executable:
|
|
|
|
$ zig build test -Dno-exec
|
|
|
|
And then run it, capturing the stack trace:
|
|
|
|
```
|
|
gdb -batch \
|
|
-ex "python import threading; threading.Timer(1.0, lambda: gdb.post_event(lambda: gdb.execute('interrupt'))).start()" \
|
|
-ex run \
|
|
-ex "bt full" \
|
|
-ex quit \
|
|
zig-out/bin/test
|
|
```
|
|
|
|
You are welcome to replace `-ex "bt full"` with anything other of interest.
|