Chapter 36. The
CLISP
bytecode specification
Prev
Part III. Internals of the
CLISP
Implementation
Next
Chapter 36. The
CLISP
bytecode specification
Table of Contents
36.1. Introduction
36.2. The virtual machine
36.3. The structure of compiled functions
36.4. The general structure of the instructions
36.5. The instruction set
36.5.1. Instructions for constants
36.5.2. Instructions for lexical variables
36.5.3. Instructions for dynamic variables
36.5.4. Instructions for stack operations
36.5.5. Instructions for control flow, jumps
36.5.6. Instructions for lexical environment, creation of closures
36.5.7. Instructions for function calls
36.5.8. Instructions for optional and keyword parameters
36.5.9. Instructions for multiple values
36.5.10. Instructions for
BLOCK
and
RETURN-FROM
36.5.11. Instructions for
TAGBODY
and
GO
36.5.12. Instructions for
CATCH
and
THROW
36.5.13. Instructions for
UNWIND-PROTECT
36.5.14. Instructions for
HANDLER-BIND
36.5.15. Instructions for some inlined functions
36.5.16. Combined instructions
36.5.17. Shortcut instructions
36.6. Bytecode Design
36.6.1. When to add a new bytecode?
36.6.2. Why JMPTAIL?
These notes document
CLISP
version 2.41
Last modified: 2006-10-13