How It All Fits Together
The compilation pipeline:
- Developer writes Zylisp code in
.zyfiles - 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
runtimefor data structures and support - Error messages use source maps from
corefor accurate reporting - Production systems use
relyfor supervision and fault tolerance - Coverage tests (in
go-ast-coverage) verify completeness
Design feedback loop:
- Feature idea or problem identified
- Design document created in
designrepo - 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