Previous Chapter Next Chapter Table of Contents Glossary Index

Chapter 17. Implementation Details of Clozure CL

17.1. Threads and exceptions
17.1.1. The Thread Context Record
17.1.2. Exception contexts, and exception-handling in general
17.1.3. Threads, exceptions, and the GC
17.1.4. PC-lusering
17.2. Register usage and tagging
17.2.1. Overview
17.2.2. pc-locatives on the PPC
17.2.3. Register and stack usage conventions
17.2.4. Tagging scheme
17.3. Heap Allocation
17.3.1. Per-thread object allocation
17.3.2. Allocation of reserved heap segments
17.3.3. Heap growth
17.4. GC details
17.4.1. Mark phase
17.4.2. Relocation phase
17.4.3. Forwarding phase
17.4.4. Compact phase
17.5. The ephemeral GC
17.6. Fasl files
17.7. The Objective-C Bridge
17.7.1. How Clozure CL Recognizes Objective-C Objects
17.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