Andy Chambers wrote:
Hi,
When something goes wrong in a celtk program, how do you go about cleaning all the tcl stuff up and starting again?
I do not have a problem with Celtk as it stands (meaning "now that I have figured out the delicate choreography of messages arising when a TK window closes and setup Celtk internals to bow out gracefully"). So a specific error/situation/scenario needs to be delineated.
I tried doing
(tk-format-now "exit")
The end of the world as we know it. That, in my case, would bring down the IDE as well, since my app and IDE run in one Lisp process. In the case of Emacs you "just" lose the entire Lisp session.
but that causes my slime to lose its connection with sbcl. I'm not sure whether this means that this action is causing sbcl itself to crash but that is a possibility. Is there some lisp function I can call to reset the tcl interface.
Nothing special is needed. The window closes and the callback event handler eventually runs out of messages (or the tight loop polling for events exits -- forget the architecture because it has been years literally since I had to look at it.
The question then becomes, "What goes wrong if you do /not/ call the TCL 'exit'?". Then we fix that. It might be a Slime thing requiring some new work, I never use that and even if I work in LW I am still in the same process.
hth, kt