Aaron has responded in detail. Here is my short answer
Any non-simple pop object IS a pointer which can be passed direct
to C, with the following caveats:
(1) Each POP-11 compound object is preceded by two words of memory.
(2) The default for any POP-11 -record- (including the pairs out
of which lists are built) is for the first of the above two words
to hold user-specified information. This default can be overridden
for user-defined record classes.
(3) It is dangerous to pass a pointer any POP-11 object to a C
program which will preserve a reference to it between function
calls. The POP-11 garbage collector relocates objects and a
C function will not know about this.
POP-11 strings are now null-terminated to make them usable directly
as C strings.
Robin Popplestone.
|