[Scilab-Dev] Tcl/Tk 8.5 has been released

François Vogel fvogelnew1 at free.fr
Fri Dec 28 23:21:48 CET 2007


>>> Scipad doesn't even start any more while it did before.
>> I am guilty... Sorry for this.
> 
> I'll have a look at this issue.

Here are my findings, all with the Scipad you have currently in trunk, 
i.e. 6.132.

0. Executing Scipad completely outside of Scilab, i.e. directly in 
wish8.5 works OK.

a. Scilab trunk up-to-date linked with Tcl/Tk 8.5 : Doesn't work. By 
this I mean that the Scipad window correctly opens but the text 
widget, menues, status bar, scrollbars, etc are not visibly packed in 
that window. It looks like Scipad is stuck somewhere during its launch 
process.

b. Scilab trunk up-to-date linked with Tcl/Tk 8.4 : works OK. The 
Scipad window opens completely OK.

c. Scilab trunk r21301 linked with Tcl/Tk 8.5 : same as a.

d. Scilab trunk r21189 linked with Tcl/Tk 8.5 : same as a.

e. Situation described in a. happens on Kubuntu Gutsy and OpenSuse 
10.3 as well.

In case a, c and d, TCL_EvalStr("isscilabbusy","scipad") returns true.
Without entering into the details of the Scilab/Tcl interface, this 
means that Scipad is waiting for Scilab to finish some job. The Tcl 
global variable sciprompt from the Tcl interpreter named scipad has -1 
as a value. When done, Scilab should set the Tcl global variable 
sciprompt back to 0 (actually back to the pause level, 0, 1 or more).

One can interact with Scipad through different commands, say:
TCL_EvalStr("opensourceof","scipad")
TCL_EvalStr("closecur","scipad")   (this one will close Scipad)

Moreover, if you try to force the Tcl event loop to run through, say, 
the following command:

TCL_EvalStr("tk_messageBox -message $sciprompt","scipad")

then after clicking on OK in the dialog showing the value of sciprompt 
you get the packing of the widgets in Scipad. This means that the 
event loop ran once. However, Scipad is still not fully available, as 
clicking on any menu proves it.

I think that all this in fact bug 2514:
http://www.scilab.org/cgi-bin/bugzilla_bug_II/show_bug.cgi?id=2514

The Tcl event loop doesn't seem to run unless it is forced to do so. 
It really looks like the problem is in the Scilab/Tcl interface, as 
described in bug 2514.

Francois



More information about the dev mailing list