[Openmcl-devel] Cockpit Error using SAVE-APPLICATION?

j-anthony at comcast.net j-anthony at comcast.net
Fri Nov 7 17:01:49 UTC 2008



>At one point in the not-too-recent past, it was
>...
>I think that that's fixed (in that the initialization happens in
>the :before method on CCL::APPLICATION and it's no longer necessary

Yes, this certainly seems to be true.  The :before method seems to work
well here.


>As far as your code goes:
>
>I think that it's still true that your function will run on the initial
>thread.  If that code writes to *TERMINAL-IO*, output to that stream
>may need to be explicitly flushed (via FORCE-OUTPUT).

Yes, as it sits this is true.


>The single thread will own the right to read from the input side of
>*TERMINAL-IO*.

What are the practical ramifications of this?


>You can get that (and the automatic flushing of output to *TERMINAL-IO*)
>to happen by starting a thread to run CCL::HOUSEKEEPING-LOOP.  That
>wont add too much overhead (the thread will spend 99+% of its time
>sleeping.)
>
>(defmethod ccl::toplevel-function ((a aprigo-application) x)
...
>  (PROCESS-RUN-FUNCTION "background" #'CCL::HOUSEKEEPING-LOOP)

Is this basically equivalent to what
(defmethod toplevel-function ((a lisp-development-system) init-file)
does with the last two things it does:

(%set-toplevel #'housekeeping-loop)
(toplevel)

Or maybe it is just the %set-toplevel call that equates to your
"background" process example above?  (Actually, (toplevel) is a bit of a
mystery to me - I tried tracking it down a bit but seems to involve some
sort of "throw :toplevel ... catch :toplevel" idiom/technique.)


>Ideally, it'd be possible to easily define -some- methods on
>a subclass of CCL::LISP-DEVELOPMENT-SYSTEM so that everything
>but the invocation of the REPL happened via the superclass's
>methods and you just ran some other code instead of the

Wouldn't this basically be what the standard toplevel does in creating the
listener process with the call:

(startup-ccl (and *load-lisp-init-file* init-file))

And then you would not follow this with the call it also does:
(listener-function).

Sounds a bit hacky, but would this pretty much do the whole thing except
the REPL?


/Jon


--------------------------------------------------------------------
mail2web.com - Microsoft® Exchange solutions from a leading provider -
http://link.mail2web.com/Business/Exchange





More information about the Openmcl-devel mailing list