[Xotcl] XOTcl1.5.6 and Tcl8.5b1

Gustaf Neumann neumann at wu-wien.ac.at
Mon Oct 29 22:00:07 CET 2007


> Murr, Florian schrieb:
>   
>> Dear XOTcl-guys!
>> I tried to upgrade from Tcl8.4+XOTcl1.5.3 (all my projects worked fine
>> here!) to Tcl8.5b1, but my projects won't run due to some XOTcl
>> problems.
>> The following snippet is extracted from my project and I tested it with
>> XOTcl1.5.5 (from WinTclTk) and XOTcl1.5.6 from ActiveState-Teacup.
>> But both failed with the same error message.
>> My guess: Non-positional Arguments don't work!
>>
>>     

Dear all,

not sure if this helps immediately, since your are refering to binary
distros, but however, below is the fix to the problem. Tcl 8.5 seems
much more agressive in sharing variables. The variable was set,
but lost later, maybe due to shimmering. Switching back to the
more conservative approach helps. The change will be included
in the next xotcl release.

best regards
-gustaf neumann


--- generic/xotcl.c~    2007-10-09 20:44:45.000000000 +0200
+++ generic/xotcl.c     2007-10-29 21:48:13.000000000 +0100
@@ -11438,9 +11438,9 @@
     r1 = Tcl_ListObjGetElements(in, nonposArgsDefv[i], &npac, &npav);
     if (r1 == TCL_OK) {
       if (npac == 3) {
-       Tcl_ObjSetVar2(in, npav[0], NULL, npav[2], 0);
+        Tcl_SetVar2Ex(in, ObjStr(npav[0]), NULL, npav[2], 0);
       } else if (npac == 2 && !strcmp(ObjStr(npav[1]), "switch")) {
-       Tcl_ObjSetVar2(in, npav[0], NULL, Tcl_NewBooleanObj(0), 0);
+        Tcl_SetVar2Ex(in, ObjStr(npav[0]), NULL, Tcl_NewBooleanObj(0), 0);
       }
     }
   }



More information about the Xotcl mailing list