Files
clox/README.md
Daniel Henry afa24f5b7a Add README.md
Signed-off-by: Daniel Henry <iamdanhenry@gmail.com>
2025-08-21 16:31:18 -05:00

1.2 KiB
Raw Blame History

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.

# 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.

./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.