From: Benjamin R. <Ben...@ep...> - 2004-11-14 16:56:08
|
Hi Bryan, Bryan Klingner writes: > I consistently hit one error: > > UpdateStringProc should not be invoked for type cmdName That error message is in the Tcl source in generic/tclObj.c. Some code is calling Tcl_GetString on an object that doesn't support that operation. I'm not sure why those "cmdName" objects don't support it, maybe somebody else knows this? Maybe those objects are supposed to be internal so that call should never occur. > The code that causes the error is below. I noted the exact line that > causes the error. It's usually chewing on something like "expr > $barbell_zmin" as the string when it dies: > > [...] > iCode = Tcl_GlobalEval(CSLIDEWorld::GetInterp(), > ppcDynExpr[i]); // <-- THIS LINE CAUSES THE ERROR Tcl is highly recursive, so we need to get a deeper stack trace. Can you run the program under a debugger, set breakpoints in tclObj.c on the error branches that actually generate that message and show us a stack backtrace at that point? > On Windows (NT/2k/XP), the versions of relevant libraries are: > Tcl: 8.0 (tcl80vc.lib) > Tk: 8.0 (tk80vc.lib) > iTcl: 3.0 (itcl30vc.lib and itclcxx.lib) > iTk: 3.0 (itk30vc.lib) > > On Mac OS X (10.3), the versions are (all from Daniel Steffen's > installer): > Tcl: 8.4 > Tk: 8.4 > iTcl:3.3 > iTk: 3.3 Tcl 8.0 and Tcl 8.4 are very different animals. You will probably get the same errors if you try this in Windows with Tcl 8.4. Also note that while all existing APIs from 8.0 are still supported, a number of things have changed semantically. Most notably, since 8.1 all strings (char*) going in and out of APIs are encoded in UTF-8, while in 8.0 the system encoding was used. > When I link these libraries on Mac OS X, I get the following warnings: > > ld: warning multiple definitions of symbol _tclPlatStubsPtr > /usr/lib/libtcl8.4.dylib(tclStubLib.o) definition of _tclPlatStubsPtr > ../../macsupport/lib/libitcl3.3.dylib(tclStubLib.o) definition of > _tclPlatStubsPtr I don't like those warnings, but they may be harmless. Somebody else would have to comment on that. benny |