Next: boot image, Previous: machinery, Up: Top [Index]
Vicare is a compiler for the Scheme language; internally it
implements a multitude of passes, each of which performing a
transformation step from Scheme code to executable binary code. The
library (vicare compiler)
exports one binding for each compiler
pass, allowing inspection of the performed transformations.
This section contains some documentation for each pass; however, it is almost impossible to truly understand what a pass does without reading the source code, where additional documentation is present in the form of comments.
• compiler intro: | Introduction to the compilation process. | |
• compiler conv: | Compiler coding conventions. | |
• compiler topics: | Inspection by topics. | |
• compiler options: | Initialisation and general configuration options. | |
• compiler sysval: | System values bound to core primitive names. | |
• compiler unparse: | Unparsing intermediate representations. | |
Compiler passes | ||
---|---|---|
• compiler full: | The full transformation. | |
• compiler recordize: | Scheme code to nested structs. | |
• compiler dircalls: | Optimisation for direct calls. | |
• compiler letrec: | Optimisation of letrec and letrec*
forms.
| |
• compiler optimisation: | Source optimisation. | |
• compiler refassig: | Rewriting references and assignments. | |
• compiler type inference: | Core type inference. | |
• compiler unsafe primrefs: | Safe to unsafe core primitive applications. | |
• compiler sanitise bindings: | Sanitising bindings. | |
• compiler direct jumps: | Optimisation for direct jumps. | |
• compiler global assign: | Inserting global assignments. | |
• compiler vars: | Introducing storage locations. | |
• compiler closure makers: | Introducing closure makers. | |
• compiler lifting: | Closures optimization and clambda
lifting.
| |
• compiler primopcalls: | Introducing primitive operation calls. | |
• compiler freevar refs: | Rewriting references to free variables. | |
• compiler engine: | Inserting engine checks. | |
• compiler stack: | Inserting stack overflow checks. | |
• compiler cogen: | Full assembly code generation. | |
• compiler assember: | Binary code generation. |
Next: boot image, Previous: machinery, Up: Top [Index]