Contents
- Guide
- 1. Overview of the Memory Pool System
- 2. Building the Memory Pool System
- 3. Garbage collecting a language with the Memory Pool System
- 4. The stretchy vector problem
- 5. Debugging with the Memory Pool System
- 6. Tuning the Memory Pool System for performance
- 7. Advanced topics
- 8. Implementing malloc and free
- Reference
- 1. Interface conventions
- 2. Keyword arguments
- 3. Error handing
- 4. Arenas
- 5. Pools
- 6. Allocation
- 7. Object formats
- 8. Scanning
- 9. Threads
- 10. Roots
- 11. Garbage collection
- 12. Messages
- 13. Finalization
- 14. Location dependency
- 15. Segregated allocation caches
- 16. Allocation patterns
- 17. Allocation frames
- 18. Debugging pools
- 19. Telemetry
- 20. Weak references
- 21. Transforms
- 22. Plinth
- 23. Platforms
- 24. Porting the MPS
- 25. Deprecated interfaces
- 26. Security issues
- Pool reference
- 1. Choosing a pool class
- 2. Pool class properties
- 3. Writing a new pool class
- 4. AMC (Automatic Mostly-Copying)
- 5. AMCZ (Automatic Mostly-Copying Zero-rank)
- 6. AMS (Automatic Mark and Sweep)
- 7. AWL (Automatic Weak Linked)
- 8. LO (Leaf Object)
- 9. MFS (Manual Fixed Small)
- 10. MVFF (Manual Variable First Fit)
- 11. MVT (Manual Variable Temporal)
- 12. SNC (Stack No Checking)
- Design
- 1. Fixed-length queues
- 2. Generic modules
- 3. Bootstrapping
- 4. Coalescing block structures
- 5. Fast high-resolution clock
- 6. MPS Configuration
- 7. The critical path through the MPS
- 8. Documentation
- 9. Execution environment
- 10. Fail-over allocator
- 11. Finalization
- 12. Free list allocator
- 13. New developer guide
- 14. Transliterating the alphabet into hexadecimal
- 15. C Style – formatting
- 16. C Style – naming
- 17. Review checklist
- 18. C interface design
- 19. Keyword arguments in the MPS
- 20. Lands
- 21. Lock module
- 22. Client message protocol
- 23. Monitor
- 24. Nailboards for ambiguously referenced segments
- 25. Pool classes
- 26. Mutator context
- 27. Memory protection
- 28. POSIX implementation of protection module
- 29. Ranges of addresses
- 30. Ring data structure
- 31. Shield
- 32. Signatures in the MPS
- 33. Stack probe
- 34. Splay trees
- 35. Stack and register scanning
- 36. Tests
- 37. Multi-threaded testing
- 38. Thread manager
- 39. Thread safety in the MPS
- 40. Transforms
- 41. General MPS types
- 42. Library version mechanism
- 43. Virtual mapping
- 44. Walking formatted objects
- 45. Write barrier
- 46. The WriteF function
- Old design
- 1. Allocation frame protocol
- 2. Arena
- 3. Virtual Memory Arena
- 4. Bit tables
- 5. Allocation buffers and allocation points
- 6. Checking
- 7. Collection framework
- 8. Diagnostic feedback
- 9. The generic fix function
- 10. I/O subsystem
- 11. Library interface
- 12. Locus manager
- 13. GC messages
- 14. Debugging features for client objects
- 15. AMC pool class
- 16. AMS pool class
- 17. AWL pool class
- 18. LO pool class
- 19. MFS pool class
- 20. MRG pool class
- 21. Manual Variable Temporal (MVT) pool design
- 22. MVFF pool class
- 23. Protocol inheritance
- 24. POSIX thread extensions
- 25. Root manager
- 26. The generic scanner
- 27. Segment data structure
- 28. MPS Strategy
- 29. Telemetry
- 30. Tracer