Guide
One page per mechanism: what it does, how it works, and why it is shaped that way. The pages do not depend on being read in order; start with the one whose topic has come up in your code.
Reading and evaluation
Page |
Covers |
|---|---|
Forms; the read, expand, compile, and evaluate stages; which stage an error names; code as data |
|
Each layout rule beside the s-expression it reads to, and where parentheses stay |
|
|
|
The runtime, compile-time, and layout slots; how |
Names and values
Page |
Covers |
|---|---|
|
|
Refs as location handles, |
|
Python containers, pairs, quote and quasiquote, symbols and keywords |
|
|
Functions and control
Page |
Covers |
|---|---|
Formals, defaults, rest collectors, |
|
The |
|
|
|
The |
|
The direct form over the assembled one: |
Programs
Page |
Covers |
|---|---|
The shape of a file, imports, the entry point, packages on disk, the |
|
|
|
Ambient await, the demand path, |
|
The import hook, running a file into a namespace, awaiting Koskari functions from Python |
|
|
|
The per-site attribute cache and read-only code storage, and their pragmas |
Syntax extension
Page |
Covers |
|---|---|
What a macro is for, |
|
What capture is, the gensym a template symbol becomes, how the expander scopes an expansion, how the compiler resolves it |
|
Foreign literals as compile-time transliteration; when a format earns one |
|
Setting and reading a pragma; every |