free

Arguments:
address

Gives the object allocated by malloc back to the system. free should not be called with an address
which was not directly generated by excl:malloc or else generated from translating
an address generated by the C malloc() function, and it should
not be called with an address which represents an already-freed
object.

Note on backward compatibility

In releases prior to 7.0, the symbols excl::malloc and
excl::free named functions that were different from the
functions named by the now exported symbols excl:malloc and excl:free. The old versions of
excl::malloc and excl::free are equivalent to aclmalloc and aclfree. If any code from Allegro CL 6.2 calls
excl::malloc or excl::free, those calls should be
changed to calls to aclmalloc and aclfree.

Note on various Allegro CL malloc and free functions

The space allocated by excl:malloc and its C counterpart malloc()
(described here collectively as "malloc") is different than the space
allocated by excl:aclmalloc
and the C aclmalloc() (described collectively as "aclmalloc").
Malloc allocates in space defined and maintained by the system, in
whatever manner the system defines. Some operating systems allow the
linking in of alternate versions of malloc() and its cohorts
(usually including free(), calloc(), realloc(),
and others), giving some flexibility in debugging malloc bugs (but of
course this need arises much less often in Lisp programming). The
aclmalloc functionalities are part of the Allegro CL library and
allocate from space usually known as C heap space (though this is really a
misnomer, since the space has little to do with
C). aclmalloc is useful for allocating
objects which should survive the rebirth of a dumped lisp.