(fast-alist-free alist) throws away the hash table associated
with a fast alist.
Logically, this function is the identity; we leave it enabled and
would think it odd to ever prove a theorem about it.
Under the hood, fast-alist-free removes the hash table associated with
this alist, if one exists. This effectively converts the alist into an
Also see fast-alist-free-on-exit.
When the host Lisp is CCL or SBCL, the associated hash table may be freed
up automatically by the garbage collector when the corresponding alist is no
longer referenced. (To trigger garbage collection manually, see gc$.)
But for Lisp implementations other than CCL and SBCL this is not the case so,
to avoid memory leaks, you should use fast-alist-free to free up
associated hash tables that will no longer be used. You may find fast-alist-summary useful in tracking down alists that were not properly
It is safe to call fast-alist-free on any argument, including fast
alists that have already been freed and objects which are not alists at
(defun fast-alist-free (alist)
(declare (xargs :guard t))
- Deprecated feature