How It All Fits Together
The compilation pipeline:
- Developer writes Zylisp code in
.zy
files - REPL (from
repl
) provides interactive development and testing - Parser reads s-expressions and builds initial AST
- Macro expander (in
lang
) processes macros and special forms - Forms pipeline (in
lang
) transforms Zylisp-specific constructs - ZAST generator converts expanded code to Go AST s-expressions
- Code generator produces readable Go source files
- Generated code imports
runtime
for data structures and support - Error messages use source maps from
core
for accurate reporting - Production systems use
rely
for supervision and fault tolerance - Coverage tests (in
go-ast-coverage
) verify completeness
Design feedback loop:
- Feature idea or problem identified
- Design document created in
design
repo - Discussion and iteration (Draft → Under Review → Final)
- Implementation planned with phase assignments
- Code written in appropriate repo (
lang
,zast
,runtime
, etc.) - Tests added to verify correctness
- Documentation updated
- Experience feeds back into design process