[Openmcl-devel] Create a CCL image that can quickly load Cocoa using a command-line workflow
Gary Byers
gb at clozure.com
Wed Jun 12 15:09:56 PDT 2013
You can run any bundled application from the command line via:
$ /path/to/application.app/Contents/MacOS/executable-name
(e.g.,
$ /path/to/ClozureCL\ 64.app/Contents/MacOS/dx86cl64
)
What happens in that case is very similar to what happens when you double-click
on the application's icon; the primary difference is that the process-wide
standard I/O fds remain attached to the terminal/shell buffer/whatever. I don't
know if that actually helps you, because I don't really understand what you're
trying to do; do you plan on having the application run an event loop, or do
you plan on having it run your tests ?
That may or may not be a fair question. Another such question: is what you're
trying to do the sort of thing that could/should be done via AppleScript/Automator ?
Whatever the answers to these questions, you may find it worthwhile to try
to understand what happens when (REQUIRE "COCOA") is called and when a bundled
CCL application starts up. (Just guessing clearly doesn't work ...)
On Wed, 12 Jun 2013, Clayton Stanley wrote:
> I am running a suite of testing code that uses Cocoa in CCL. To make sure each test is
> isolated from the others, I would like to launch a CCL instance for each test, which
> means I'll need to launch CCL about 15 times to run all tests.
> A (require :cocoa) call on my machine takes about 15 seconds to compile and load all
> Cocoa code. This is fine when running a development instance of CCL through Slime for
> an entire day, but is too slow when having to do this 15 times to run through the test
> suite (especially since the time required for most of the tests to run is less than a
> second; and I'd like to run the test suite more often than once a day).
>
> I would like a CCL .image file that has :cocoa loaded in it that I can launch from the
> command line when running the tests.?
>
> I tried commenting out (gui::start-cocoa-ide) in cocoa-ide/cocoa.lisp. Then (require
> :cocoa), then (save-application ...). The idea was to get all Cocoa lisp code compiled
> and loaded into the saved core. Then when launching the modified image, I'd type
> (gui::start-cocoa-ide), and the Cocoa window would quickly boot up. But this didn't
> work. The Cocoa window doesn't appear on my machine, and CCL becomes unresponsive
> after calling (gui::start-cocoa-ide).
>
> Any other ideas?
>
> I can't use the CCL App from the App Store or a double-clickable CCL GUI Application
> because I need to be able to launch the ccl image from the command line. This is so
> that I can run the test suite from the command line (so that it can be automated and
> incorporated into the build scripts), and also so that the workflow to run the test
> suite matches a Slime development workflow, where Slime is simply pointed to a lisp
> image (and not a GUI app) when booting up.
>
> Thanks for the help,
> -Clayton
>
>
>
More information about the Openmcl-devel
mailing list