Hi all,
Has anybody been able to use some of the recent versions of ECLS with LTK? After I load ltk, when I try either (ltk:ltktest) or (ltk::ltk-eyes), only empty Tcl window is displayed. After closing it I got the following error in REPL:
(ltk::ltk-eyes)
Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "-name" "LTK""> signaled an error. Explanation: Invalid argument. Broken at SI:BYTECODES.No restarts available. Broken at SI:BYTECODES.
It works ok in SBCL though.
Regards, Marko
2008/8/13 Marko Kocić marko.kocic@gmail.com:
Hi all,
Has anybody been able to use some of the recent versions of ECLS with LTK?
Nope, but it shouldn't be much work to get it working. In general, SBCL and Allegro will always work correctly, because that's what the developers use, and other implementations should be fine, but could suffer occasional bit-rot in the details.
After I load ltk, when I try either (ltk:ltktest) or (ltk::ltk-eyes), only empty Tcl window is displayed. After closing it I got the following error in REPL:
(ltk::ltk-eyes)
Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "-name" "LTK""> signaled an error. Explanation: Invalid argument. Broken at SI:BYTECODES.No restarts available. Broken at SI:BYTECODES.
Well that error isn't too surprising. Could you set *debug-tk* to t and try again? Also, please interrupt ECL when it's hung and post a backtrace from there.
It works ok in SBCL though.
If an SBCL change ever breaks Ltk it should get addressed very, very quickly.
Thanks for your help. Here's the output:
(ltk:ltktest)
package require Tk senddatastring [tk_messageBox -message {Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "- name" "LTK""> signaled an error. Explanation: Invalid argument.
Do you wish to invoke the debugger? } -title {Error} -type yesno -icon question] Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "-name" "LTK""> signaled an error. Explanation: Invalid argument. Broken at SI:BYTECODES.No restarts available. Broken at LTK:MESSAGE-BOX. File: #P"C:/lisp/lib/ltk-0.91/ltk.lisp" (Form #398)
:b
Backtrace: LTK:MESSAGE-BOX > ltk::debug-popup > ltk::debug-error > ltk:send-wish > ltk::init-wish > lambda > lambda > lt k::use-default-debugger > lambda > ltk:start-wish > ltk:start-wish > ltk:call-with-ltk > ltk:ltktest > si:bytecodes > si :bytecodes > si:bytecodes
2008/8/13 Marko Kocić marko.kocic@gmail.com:
Thanks for your help. Here's the output:
It looks like something between ECL and your mail app is butchering newlines. Could you try again?
That said, it looks like we've got a real error here, but one that doesn't print very usefully. We might need to bring in the ECL maintainer. That said, could you try changing the with-ltk line in ltktest to:
(with-ltk (:debug 0)
and send us the backtrace there? The normally nice graphical error handling of Ltk is getting in the way here :-P
(ltk:ltktest)
package require Tk senddatastring [tk_messageBox -message {Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "- name" "LTK""> signaled an error. Explanation: Invalid argument.
Do you wish to invoke the debugger? } -title {Error} -type yesno -icon question] Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "-name" "LTK""> signaled an error. Explanation: Invalid argument. Broken at SI:BYTECODES.No restarts available. Broken at LTK:MESSAGE-BOX. File: #P"C:/lisp/lib/ltk-0.91/ltk.lisp" (Form #398)
:b
Backtrace: LTK:MESSAGE-BOX > ltk::debug-popup > ltk::debug-error > ltk:send-wish > ltk::init-wish > lambda > lambda > lt k::use-default-debugger > lambda > ltk:start-wish > ltk:start-wish > ltk:call-with-ltk > ltk:ltktest > si:bytecodes > si :bytecodes > si:bytecodes
ltk-user site list ltk-user@common-lisp.net http://common-lisp.net/mailman/listinfo/ltk-user
Ok, I tried it again with :debug 0 as you suggested and the result is the same:
(asdf:oos 'asdf:load-source-op :ltk)
; loading system definition from /lisp/lib/ltk-0.91/ltk.asd into ; #<ASDF0 package> ;;; Loading "/lisp/lib/ltk-0.91/ltk.asd" ; registering #<SYSTEM LTK 15100376> as LTK ;;; Loading "c:/lisp/lib/ltk-0.91/ltk.lisp" NIL
(setf ltk:*wish-pathname* "c:/Tcl/bin/wish85.exe")
"c:/Tcl/bin/wish85.exe"
;(setf ltk:*debug-tk* t)
(ltk:ltktest)
#<two-way stream 00f0db68> An error of type SIMPLE-ERROR has occured: Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "-name" "LTK""> signaled an error. Explanation: Invalid argument. Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "-name" "LTK""> signaled an error. Explanation: Invalid argument. Broken at SI:BYTECODES.No restarts available. Broken at LTK:SEND-WISH. File: #P"c:/lisp/lib/ltk-0.91/ltk.lisp" (Form #22)
:B
Backtrace: LTK:SEND-WISH > ltk::init-wish > lambda > lambda > ltk::use-debugger > ltk::use-trivial-debugger > lambda > l tk:start-wish > ltk:start-wish > ltk:call-with-ltk > ltk:ltktest > si:bytecodes > si:bytecodes > si:bytecodes
I'm sending a copy of this to the ECL list, since I can't see what's going wrong from here, nor can I get ecl to build on my system. The background is that Marko is trying to use Ltk with ECL under windows, but it looks like something fails very early on. The wish subprocess starts up, but when sending its initialization commands to Tcl, he gets this less-than-explicit error.
2008/8/14 Marko Kocić marko.kocic@gmail.com:
Ok, I tried it again with :debug 0 as you suggested and the result is the same:
(asdf:oos 'asdf:load-source-op :ltk)
ECL guys: are the backtraces more usable when loaded from source or from compiled files?
; loading system definition from /lisp/lib/ltk-0.91/ltk.asd into ; #<ASDF0 package> ;;; Loading "/lisp/lib/ltk-0.91/ltk.asd" ; registering #<SYSTEM LTK 15100376> as LTK ;;; Loading "c:/lisp/lib/ltk-0.91/ltk.lisp" NIL
(setf ltk:*wish-pathname* "c:/Tcl/bin/wish85.exe")
"c:/Tcl/bin/wish85.exe"
;(setf ltk:*debug-tk* t)
(ltk:ltktest)
#<two-way stream 00f0db68> An error of type SIMPLE-ERROR has occured: Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "-name" "LTK""> signaled an error. Explanation: Invalid argument. Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "-name" "LTK""> signaled an error. Explanation: Invalid argument. Broken at SI:BYTECODES.No restarts available. Broken at LTK:SEND-WISH. File: #P"c:/lisp/lib/ltk-0.91/ltk.lisp" (Form #22)
:B
Backtrace: LTK:SEND-WISH > ltk::init-wish > lambda > lambda > ltk::use-debugger > ltk::use-trivial-debugger > lambda > l tk:start-wish > ltk:start-wish > ltk:call-with-ltk > ltk:ltktest > si:bytecodes > si:bytecodes > si:bytecodes
That's not the most helpful backtrace I've ever seen, but it looks like something in send-wish is causing this "Invalid argument" error?
2008/8/15 Thomas F. Burdick tburdick@gmail.com
I'm sending a copy of this to the ECL list, since I can't see what's going wrong from here, nor can I get ecl to build on my system. The background is that Marko is trying to use Ltk with ECL under windows, but it looks like something fails very early on. The wish subprocess starts up, but when sending its initialization commands to Tcl, he gets this less-than-explicit error.
2008/8/14 Marko Kocić marko.kocic@gmail.com:
Ok, I tried it again with :debug 0 as you suggested and the result is the
same:
(asdf:oos 'asdf:load-source-op :ltk)
ECL guys: are the backtraces more usable when loaded from source or from compiled files?
; loading system definition from /lisp/lib/ltk-0.91/ltk.asd into ; #<ASDF0 package> ;;; Loading "/lisp/lib/ltk-0.91/ltk.asd" ; registering #<SYSTEM LTK 15100376> as LTK ;;; Loading "c:/lisp/lib/ltk-0.91/ltk.lisp" NIL
(setf ltk:*wish-pathname* "c:/Tcl/bin/wish85.exe")
"c:/Tcl/bin/wish85.exe"
;(setf ltk:*debug-tk* t)
(ltk:ltktest)
#<two-way stream 00f0db68> An error of type SIMPLE-ERROR has occured: Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "-name" "LTK""> signaled an error. Explanation: Invalid argument. Read or write operation to stream #<output stream ""c:/Tcl/bin/wish85.exe" "-name" "LTK""> signaled an error. Explanation: Invalid argument. Broken at SI:BYTECODES.No restarts available. Broken at LTK:SEND-WISH. File: #P"c:/lisp/lib/ltk-0.91/ltk.lisp" (Form
#22)
:B
Backtrace: LTK:SEND-WISH > ltk::init-wish > lambda > lambda > ltk::use-debugger > ltk::use-trivial-debugger > lambda > l tk:start-wish > ltk:start-wish > ltk:call-with-ltk > ltk:ltktest > si:bytecodes > si:bytecodes > si:bytecodes
That's not the most helpful backtrace I've ever seen, but it looks like something in send-wish is causing this "Invalid argument" error?
ltk-user site list ltk-user@common-lisp.net http://common-lisp.net/mailman/listinfo/ltk-user
Can you try manually sending that command to wish to see what happens? It should put up a small blank window with the title LTK. c:/Tcl/bin/wish85.exe -name LTK
Neil