Add README.md

Signed-off-by: Daniel Henry <iamdanhenry@gmail.com>
This commit is contained in:
2025-08-21 16:31:18 -05:00
parent 44c7626cd7
commit afa24f5b7a

57
README.md Normal file
View File

@@ -0,0 +1,57 @@
# clox — Crafting Interpreters (clox, C)
A tiny bytecode VM + compiler for the Lox language, built while following *Crafting Interpreters*. This is a personal learning project.
**Status:** up through Chapter 14 (“Chunks of Bytecode”).
## Build
Requires a C99 compiler (tested with `clang` on macOS). Uses the provided Makefile.
```sh
# Build the executable to bin/clox
make
# Clean build artifacts
make clean
# Show discovered sources/objects (diagnostic)
make debug
# (Optional) regenerate compile_commands.json for clangd/etc.
make bear
```
## Run (current behavior)
The current `main` builds a tiny test chunk and disassembles it—theres no REPL or script runner yet.
```sh
./bin/clox
```
Example output:
```
== test chunk ==
0000 123 OP_CONSTANT 0 '1.2'
0002 | OP_RETURN
```
## Layout
```
include/ # headers
src/ # .c files (chunk, value, memory, debug, main)
obj/ # build objects (generated)
bin/ # executable output (generated)
```
## Notes
- Tracks the books **clox** implementation; commits may follow chapters.
- `compile_commands.json` can be generated via `make bear` for editor tooling.
## License
Private / for learning.