[Openmcl-devel] startup 'terminal' window

Gary Byers gb at clozure.com
Wed Dec 24 03:20:49 PST 2008

On Wed, 24 Dec 2008, Phil Armitage wrote:

> 2008/12/24 mikel evins <mevins at mac.com>:
>> I've built app bundles from ccl executables a number of times; feel free to
>> send me mail if you want a little help negotiating the waters.
> Thanks very much for the offer. The basics seemed to be quite simple
> and I had one up and running in no time and, rather predictably, the
> Terminal windows is gone. I'm sure there are many more subtle things
> to find out about app bundles so I may take you up on your offer if I
> get stuck, thanks.
> The only (unrelated) problem I have now is that upon exit of my
> application when compiled using CCL I get:
> value #<A Dead Mac Pointer> is not of the expected type MACPTR.
> ? for help
> [153] OpenMCL kernel debugger:
> I read about this before so I believe it's a known issue and not
> something I need to report (unless further examples are useful to help
> diagnose/fix the problem in which case I'm happy to provide more
> details).

Pointers to foreign memory are generally only valid within a lisp session.

[~] gb at abq> ccl64
Welcome to Clozure Common Lisp Version 1.3-dev-r11534M-trunk  (FreebsdX8664)!
;;; Allocate some memory by calling #_malloc
? (defvar *some-pointer* (#_malloc 20))
;;; Store an unsigned byte (17) 0 bytes from the address that pointer's
;;; pointing to.
? (setf (%get-unsigned-byte *some-pointer* 0) 17)
;;; Save an image
? (save-application "for-later.image")
[~] gb at abq> ccl64 -I for-later.image
Welcome to Clozure Common Lisp Version 1.3-dev-r11534M-trunk  (FreebsdX8664)!

;;; It'd be meaningless to try to reference the pointer that was created
;;; in a previous session.  SAVE-APPLICATION changes the type of any MACPTRs
;;; in memory when the image was saved, so trying to use one in the new
;;; image will usually signal a type error.

? (%get-unsigned-byte *some-pointer* 0)
> Error: value #<A Dead Mac Pointer> is not of the expected type MACPTR.
> While executing: %GET-BYTE, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.

You seem to be getting the same sort of error and are apparently getting
it in some execution context where a lisp error can't be signaled (and
it's just reported in the kernel debugger.)  Or something.

Is this a minor annoyance, an indication of a serious probkem, or something
in between ?  It's imppssible to know without knowing what's trying to
reference a stale/dead pointer and why.

> Many thanks again to everyone for their help.
> -- 
> Phil Armitage
> http://phil.nullable.eu/
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list