Alright, this is pretty noobish, but here goes...
I'm using LispWorks Personal Edition (4.4) on Windows, and ActiveTcl 8.4 installed at the normal path ("C:/Tcl"). Compiling and loading ltk works fine (following these steps):
---------------------------------------------------------------- CL-USER 1 > (change-directory "C:/ltk") #P"C:/ltk/"
CL-USER 2 > (compile-file "ltk") ; (lots of compiler output)
CL-USER 3 > (load "ltk") ; Loading fasl file C:\ltk\ltk.fsl #P"C:/ltk/ltk.fsl"
CL-USER 4 > (in-package :ltk) #<PACKAGE LTK> ----------------------------------------------------------------
But when I then try to run (ltktest), LispWorks hangs seemingly forever, and I have to do an end-process on it. I also get errors running more simple tests - as an example, here is what happens when I define the (hello-1) function from "First Steps" in the documentation and call it:
---------------------------------------------------------------- LTK 5 > (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 #'(LAMBDA NIL (FORMAT T Hello World!~&))) set text_w2 "Press Me" button .w2 -command {callback w2} -textvariable text_w2 pack .w2 -side top -fill none l:(QUOTE WISH)<= l:(QUOTE IS)<= l:NOT<= NOTl:RECOGNIZED<= RECOGNIZEDl:AS<= ASl:AN<= ANl:INTERNAL<= INTERNALl:OR<= ORl:EXTERNAL<= EXTERNALl:COMMAND<= COMMANDsenddatastring [tk_messageBox -message {A comma appears outside the scope of a backquote (or there are too many commas).
Do you wish to invoke the debugger?} -title {Error} -type yesno -icon question] read-data:OPERABLEprogram or batch file.
Error: NIL fell through ECASE expression. Wanted one of (:YES :NO). 1 (continue) Ignore the comma. 2 (abort) Abort handling Tk event 3 Exit Ltk main loop 4 Return to level 0. 5 Return to top loop level 0.
Type :b for backtrace, :c <option number> to proceed, or :? for other options ----------------------------------------------------------------
Has anyone else had this experience, or know what might be wrong? I haven't tried CLISP yet, that will be my next avenue, but I'd like to see if I can get it going with LW.
--Daniel
Hi Daniel,
I have only limited experience with Windows, but I did use Ltk under Windows with clisp and it worked without a problem - and I heard of others using it with Lispworks, so it should work in principle. However there have also been some reports of problems. It seems that certain Windows tools, like tray-programs, have a tendency to confuse Ltk. So check what is running on your machine and perhaps disable all other programs until you find the culprit. If you find it, please tell me so I can build a list.
Peter