Opened 19 years ago
Closed 13 years ago
#413 closed defect (fixed)
"unimplemented" message — at Version 4
Reported by: | imendez | Owned by: | Jorge |
---|---|---|---|
Priority: | highest | Milestone: | |
Component: | Interface | Version: | head |
Severity: | critical | Keywords: | |
Cc: | Alfredo Torre |
Description (last modified by )
Hello, we have a big problem and I can't reproduce it. Some Tol or Tcl function
returns an error ("Unimplemented") and I can't isolate the problem. The code is:
Real pidNumber = Eval(pid);
WriteLn("2. pidNumber\t"<< pidNumber);
Real ok = LauSocketKill(computer, pidNumber);
WriteLn("3. ok"<< ok);
Text If(EQ(ok, 0),
{
WriteLn(Tclmc("Process finalized"));
WriteLn("4.");
pid
},
{
WriteLn("5.");
WriteLn("<E>"+
Tclmc("It has not been possible to finalize the process")+"</E>");
WriteLn("6.");
pid
You can see the "WriteLn" with numbers that I've put in order to find the
critical error point. "Tclmc" is inside this code, between points 5 and 6. So I
trace this function:
Text Tclmc(Text string)
{
WriteLn("a");
Text mcstring = "mc \""+string+"\"";
WriteLn("b");
TclEvalT(mcstring)
};
The error message is always after "b" WriteLn, so I, once more, introduce
similar traces in "TclEvalT" function
Text TclEvalT(Text Cmd)
{
WriteLn("c: Cmd: "+ Cmd);
Set evalTcl = Tcl_Eval(Cmd); Cambiar por "TolTclEval"
WriteLn("d");
Text If(Not(evalTcl[2]),
TclError(evalTcl[1])
);
WriteLn("e");
evalTclresult?
};
TOL returns next output:
1.
a
b
c: Cmd: mc "Sub process marked like finalized"
d
<E>Unimplemented</E>
e
Unimplemented
- pidNumber 2620.0000000000
- ok0.0000000000
a
b
c: Cmd: mc "Process finalized"
d
<E>Unimplemented</E>
e
Unimplemented
4.
Does someone know why these "Unimplemented" messages appear?
Thank you.
Regards.
Change History (4)
comment:1 Changed 19 years ago by
comment:2 Changed 19 years ago by
After debugging Tolbase, I change my diagnostic.
Tcl_Eval should return the message you pass it even if it is not a Tcl script.
Only when the Tcl Handler is not available for Tol, the message is "Unimplemented".
A computer running Tol but without Toltcl is enough reason to fail. Is Tolbase
up and running in the host where you launch the code?
comment:3 Changed 18 years ago by
Status: | new → assigned |
---|
Hi, Tcl_Eval is implemented in Toltcl and is available from Tolbase. Any tol function accessing Tcl_Eval from tol.exe will get "Unimplemented" message. Now it is available tcltol.exe at http://www.tol-project.org/downloads/TolBase/bin/tcltol.exe, which is a tol with Tcl_Eval implemented. It is supported in release 1.1.4. No compilation has being done for main development baseline. Soon it will also be available.
comment:4 Changed 13 years ago by
Description: | modified (diff) |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
If we #Require TclCore then Tcl_Eval will be available.
Hi Iván, Alfredo,
Well, I don't know exactly what your code should do, but you are doing a bad use
of Tcl_Eval function. This function receives a Tcl Script wrapped into the Text
parameter.
I see two normal strings ("Process finalized" and "It has not been possible to
finalize the process") as parameters for the two calls you are doing. They
aren't Tcl scripts, they're only normal strings. You should check your code or,
am I missing anything?
Only to satisfy the natural interest about the misterious "Unimplemented"
message, it comes directly from Tcl_Eval implementation. To see where it is
generated, click in the link below and go down some lines in the code, you can
see the message on line 3237. On line 3244 it is loaded on the returned Set,
only if the Tcl Evaluation (line 3240) hasn't gone.
http://www.tol-project.org/tolapi/setgra_8cpp-source.html#l03202
Probably you have already talked with Jorge about all this stuff and I'm missing
some details.
Cheers