[Openmcl-devel] Setting a toplevel function for build-application

Ron Garret ron at flownet.com
Sat Sep 14 12:54:13 PDT 2013


I can't figure out how to set a toplevel function for build-application.  The docs say:

"The best source of information about writing your own toplevel is the Clozure CL source code, especially the implementations of TOPLEVEL-FUNCTION in "ccl/level-1/l1-application.lisp"

In that file there is no example of calling build-application, but there is a (generic) function called toplevel-function.

If I do this:

(build-application :name "testapp" :directory #P"~/Desktop/" :copy-ide-resources t)

the resulting application (mostly) works fine [1], but if I do this:

(build-application :name "testapp" :directory #P"~/Desktop/" :copy-ide-resources t
                   :toplevel-function 'toplevel-function)

The resulting application crashes with hundreds of console message like this:

9/14/13 12:45:08 PM	[0x0-0x3ae9ae6].com.clozure.store.ccl-x8664[90745]	> While executing: #<CCL::STANDARD-KERNEL-METHOD NO-APPLICABLE-METHOD (T)>, in process toplevel(8).
9/14/13 12:45:08 PM	[0x0-0x3ae9ae6].com.clozure.store.ccl-x8664[90745]	> Error: There is no applicable method for the generic function:
9/14/13 12:45:08 PM	[0x0-0x3ae9ae6].com.clozure.store.ccl-x8664[90745]	>          #<STANDARD-GENERIC-FUNCTION CCL::UI-OBJECT-DO-OPERATION #x3020000BC73F>
9/14/13 12:45:08 PM	[0x0-0x3ae9ae6].com.clozure.store.ccl-x8664[90745]	>        when called with arguments:
9/14/13 12:45:08 PM	[0x0-0x3ae9ae6].com.clozure.store.ccl-x8664[90745]	>          (#<A Dead Mac Pointer> :BREAK-OPTIONS-STRING T)

Clues appreciated.

What I'm actually trying to do is build a standalone application that just opens a webkit window and does nothing else (i.e. no listener).  But I want to do it programmatically, without a nib file.

rg

[1] Actually, the resulting application complains about not being able to find the header directory, but that's easy to fix.




More information about the Openmcl-devel mailing list