Previous Chapter Next Chapter Table of Contents Glossary Index

Chapter 16. Implementation Details of Clozure CL

16.1. Threads and exceptions
16.1.1. The Thread Context Record
16.1.2. Exception contexts, and exception-handling in general
16.1.3. Threads, exceptions, and the GC
16.1.4. PC-lusering
16.2. Register usage and tagging
16.2.1. Overview
16.2.2. pc-locatives on the PPC
16.2.3. Register and stack usage conventions
16.2.4. Tagging scheme
16.3. Heap Allocation
16.3.1. Per-thread object allocation
16.3.2. Allocation of reserved heap segments
16.3.3. Heap growth
16.4. GC details
16.4.1. Mark phase
16.4.2. Relocation phase
16.4.3. Forwarding phase
16.4.4. Compact phase
16.5. The ephemeral GC
16.6. Fasl files
16.7. The Objective-C Bridge
16.7.1. How Clozure CL Recognizes Objective-C Objects
16.7.2. Recommended Reading

This chapter describes many aspects of OpenMCL's implementation as of (roughly) version 1.1. Details vary a bit between the three architectures (PPC32, PPC64, and x86-64) currently supported and those details change over time, so the definitive reference is the source code (especially some files in the ccl/compiler/ directory whose names contain the string "arch" and some files in the ccl/lisp-kernel/ directory whose names contain the string "constants".) Hopefully, this chapter will make it easier for someone who's interested to read and understand the contents of those files.


Previous Chapter Next Chapter Table of Contents Glossary Index