[Openmcl-devel] opening cdb files in saved apps

Paul Krueger plkrueger at comcast.net
Mon Dec 20 16:50:03 PST 2010


I am unsure whether this should be considered a bug or is something I should just work around in some way. 

If I open up the IDE and do a generic build-application:

(require :build-application)

(ccl::build-application
                        :copy-ide-resources t
                        :directory "ip:Cocoa Dev;")

but save it to some other directory, then when I open up the saved application and do something that would trigger the loading of objc-methods.cdb (e.g. invoking an Objective-C method as shown below), the ccl: logical host is defined to point to the directory where I installed the app. I suspect that for many things that the ccl: host is used for this is the right thing to do, but at least for loading the .cdb it clearly is not. Is this something that should be fixed somewhere in the CCL code or worked around in mine somehow? 

Obviously I could just change how the :ccl host is translated, but I'm not sure where that might bite me. Just speculating, but perhaps there should be two different logical host names; one for where CCL is installed that can be used as a referent for other things like .cdb files that are installed with it and one for where the running application is where the former defaults to the latter if not specified in some way.

Welcome to Clozure Common Lisp Version 1.7-dev-r14466M-trunk  (DarwinX8664)!
? (setf o (make-instance ns:ns-object))
#<NS-OBJECT [uninitialized] (#x170270)>
? (#/class o)
#<OBJC:OBJC-CLASS NS:NS-OBJECT (#x7FFF70951468)>
? (#/className o)
; Warning: Interface file #P"/Applications/ccl/contrib/cocoa-ide/krueger/InterfaceProjects/Cocoa Dev/darwin-x86-headers64/cocoa/objc-methods.cdb" does not exist, and the containing directory does not exist.
;          This may mean that that the "ccl:" logical-pathname host has not been properly initialized. 
; While executing: CCL::CDB-OPEN, in process Listener(9).
; Warning: Interface file #P"/Applications/ccl/contrib/cocoa-ide/krueger/InterfaceProjects/Cocoa Dev/darwin-x86-headers64/libc/objc-methods.cdb" does not exist, and the containing directory does not exist.
;          This may mean that that the "ccl:" logical-pathname host has not been properly initialized. 
; While executing: CCL::CDB-OPEN, in process Listener(9).
> Error: Undefined function NEXTSTEP-FUNCTIONS:|className| called with arguments (#<NS-OBJECT [uninitialized] (#x170270)>) .
> While executing: CCL::TOPLEVEL-EVAL, in process Listener(9).
> Type cmd-/ to continue, cmd-. to abort, cmd-\ for a list of available restarts.
> If continued: Retry applying NEXTSTEP-FUNCTIONS:|className| to (#<NS-OBJECT [uninitialized] (#x170270)>).
> Type :? for other options.
1 > 
? (truename "ccl:")
#P"/Applications/ccl/contrib/cocoa-ide/krueger/InterfaceProjects/Cocoa Dev/"
? 


More information about the Openmcl-devel mailing list