[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Problems in compilation
- Subject: Problems in compilation
- From: bill@cambridge.apple.com (Bill St. Clair)
- Date: Wed, 2 Jun 93 17:32:03 -0400
>I tried to compile the following five lines of code,
>
>(defconstant *test-rect*
> (make-record :rect :topleft #@(1 1) :bottomright #@(100 100)))
>
>(defun copy-something (from to)
> (copy-bits from to *test-rect* *test-rect*))
>
>but the MCL system showed me:
>
>> Error: Can't dump #<A Mac Zone Pointer Size 8 #x3C1DA0> - unknown type
>> While executing: CCL::FASL-UNKNOWN
>> Type Command-. to abort.
>
>Does anyone know the problem? Thanks.
You can't save objects allocated in the Mac heap (e.g. records)
in fasl files. Therefore, it's a bad idea to declare one of them
as a constant. Also, you need to use DEF-LOAD-POINTERS to
initialize such constants so that they will get newly allocated
in a saved application. Your code should read:
(defvar *test-rect*)
(def-load-pointers *test-rect* ()
(setq *test-rect*
(make-record :rect :topleft #@(1 1) :bottomright #@(100 100))))
(defun copy-something (from to)
(copy-bits from to *test-rect* *test-rect*))