[ltk-user] LTK + Slime?

Charlie Burrows charlie.burrows at gmail.com
Fri May 19 19:48:25 UTC 2006


Dave.

Finally, now I know I'm not crazy! I have the exact same problem. As
you say, it seems to be some kind of communicaton problem between wish
and clisp. I solved the problem by putting a delay in the lisp code
(~3 sec) or if you're quick with the mouse, giving focus or at least
causing windows to give some kind of event to the wish window will
often prevent it hanging.
I'm afraid I don't have a fix, just those work arounds.
I remember testing it with the free (as in beer) lispworks and having
better luck. I can't remember if it completely solved the problem,
sorry.

Charlie.

On 5/19/06, David N Murray <dmurray at jsbsystems.com> wrote:
> Hi all,
>
> Has anyone had any luck with LTK + Slime in a Windows environment?
>
> On WinXP, I have Emacs 21.2.1, Slime 2.0 (2006-04-20), clisp 2.38 (binary
> dist) and ActiveState ActiveTCL 8.4.13.
>
> Initially, I had ActiveTCL 8.4.12 installed, and everything worked in
> Command Prompt window, but not in slime.  I upgraded to 8.4.13 and now,
> nothing works.
>
> What happens is that wish paints most of the desired components and then
> hangs:
> (hello-1) paints the frame with no button
> (ltktest) paints everything except the text box
> (ltk-eyes) paints everything, but never tracks the mouse
>
> Placing the mouse pointer inside the frame gets me an hourglass.  If wish
> painted any controls, they are non-functional.
>
> Can someone point me in a direction to get more info out of wish?  It
> looks like the comms between clisp and wish are the problem, but I don't
> know where to begin to debug it.  I found *debug-tk*:
>
> LTK[8]> (hello-1)
> proc escape {s} {regsub -all {\\} $s {\\\\} s1;regsub -all {"} $s1 {\"} s2;return $s2}
> proc senddata {s} {puts "(:data [escape $s])";flush stdout}
> proc senddatastring {s} {puts "(:data \"[escape $s]\")";flush stdout}
> proc senddatastrings {strings} {
>                  puts "(:data ("
>                  foreach s $strings {
>                      puts "\"[escape $s]\""
>                      }
>                  puts "))";flush stdout}
> proc sendevent {s x y keycode char width height root_x root_y mouse_button} {puts "(:event \"$s\" $x $y $keycode $char $width $height $root_x $root_y $mouse_button)"}
> proc callback {s} {puts "(:callback \"$s\")";flush stdout}
> proc callbackval {s val} {puts "(:callback \"$s\" $val)"}
> proc callbackstring {s val} {puts "(:callback \"$s\" \"[escape $val]\")"}
> add-callback (w2 #<FUNCTION LAMBDA NIL (FORMAT T Hello World!~&)>)
> set text_w2 "Push Me"
>
> Alternatively, does anyone have a recommendation for a different TCL/Tk
> implemenation under windows, that works?
>
> TIA,
> Dave
>
> _______________________________________________
> ltk-user site list
> ltk-user at common-lisp.net
> http://common-lisp.net/mailman/listinfo/ltk-user
>



More information about the ltk-user mailing list