Things become much clearer now :). with-ltk is thought for applications which should run as one application, but not for tinkering in the REPL, so just do the start-wish and none of the with-ltk's. Then you can do exactly as you want. If you want events processed, just call mainloop from the repl and break and exit it (without quitting wish) to return to the REPL. Alternatively, keep calling (process-events) which directly returns after processing all pending events.
Bingo! You nailed it there. It wasn't at first clear to me how I should send objects to Tk, and then I realized that all I had to do was to call pack. :)
The "Running it manually" part of the documentation sort of tells you this, but not explicitly how such behvaiour is to be invoked. Perhaps you should add a comment that you just call pack for sending objects?
Well, if your lisp has threads, spawn mainloop in a thread. Or use serve-event. But with threads a word of caution: LTk hasn't been stress-tested with respect to multi-threading yet (proper threading support is still in the planning phase), so use it at you own risk :)
Oh, how.. simple. :)
That is easy to do with LTk as it is: just get the code from the Tk entry widget, read and eval it, and output the result to the Tk GUI. However, it might be a good idea to run the GUI in a different process than the lisp code to execute, as when the lisp process locks up, or enters the debugger, the GUI still runs happily...
Ah.. I will work on this later on, and perhaps post an example. :)
I'm starting to see the light here. I guess I'm looking at GUI programming from a network programmers perspective. I would imagine keeping the repl intact and interactive would be /essential/ for dynamic GUI programming, let alone rapid prototyping, debugging and whatnot. I suppose most people have simple, very easy designed GUI's with pretty much static behaviour, in which case you can just wrap it all up around a with-ltk call and be done with the GUI part.
Another question, LTK is said to be just fine as long as you do not need high-performance. How do you define high-performance in this context? Is a CAD application a high-performance application? Is realtime stock trading curves high-performance? Or are we talking about the obvious; FPS game with intense graphics?
Thanks a bunch Peter, I think we've sorted out my problems by now. :)
-- Johnny Zackrisson, Gothenburg, Sweden.