Next: Weak Pointers, Previous: Memory Layout, Up: Object Format [Contents]
The system pointers reference raw allocated memory, data returned by foreign function calls, etc. The system uses these when you need a pointer to a non-Lisp block of memory, using an other-pointer. This provides the greatest flexibility by relieving contraints placed by having more direct references that require descriptor type tags.
A system area pointer data-block has the following format:
------------------------------------------------------- | 1 (data-block words) | SAP Type (8 bits) | ------------------------------------------------------- | system area pointer | -------------------------------------------------------
“SAP” means “system area pointer”, and much of our code contains this naming scheme. We don’t currently restrict system pointers to one area of memory, but if they do point onto the heap, it is up to the user to prevent being screwed by GC or whatever.