[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Memory Management



>I've tried to  follow the example of creating a  new-gcable-ptr
>but have found that MCL2.0f3 is having difficulty loading
>the constants definition for #$flags_disposptr.
>
>I've reindexed the interfaces for constants, records and traps
>(ccl::reindex-interfaces) and created new indices to no avail.
>
>The system cannot find #$flags_disposptr and #$err-printer
>which are defined in lispequ.
>
>After requiring lispequ which defines these constants, #$err-printer
>generates an error:
>   ? #$err-printer results in
>   > Error: Can't find TRAPS::$ERR-PRINTER in "ccl:interfaces;index;constants.idx".
>   >        Consider (REINDEX-INTERFACES)
>While ccl::$err-printer is defined
>   ? ccl::$err-printer
>   94
>
>Similarly, #$flags_disposptr yields and error but ccl::$flags_disposptr
>is defined correctly (as 2).

I thought I had fixed that before sending my mail. Apparently not.
#$flags_DisposPtr & #$err-printer are not defined by "lispequ.lisp".
ccl::$flags_DisposPtr & ccl::$err-printer are. The example should read:

(defun new-gcable-ptr (size)
  (with-macptrs ((ptr (#_NewPtr size)))
    ; Be careful to cons the gcable macptr after allocating the pointer.
    (%setf-macptr (ccl::make-gcable-macptr ccl::$flags_DisposPtr) ptr)))