summaryrefslogtreecommitdiff
path: root/lang/tcl-otcl
diff options
context:
space:
mode:
authorsbd <sbd@pkgsrc.org>2012-09-28 10:02:21 +0000
committersbd <sbd@pkgsrc.org>2012-09-28 10:02:21 +0000
commit06aaeb967896845666e3f711d86a0a24e4b4c889 (patch)
treea2084084094bfec8c01511b29e2b35b3ae995d2f /lang/tcl-otcl
parentaa73952e91aa44d145a5037b1e5ba1dadfc74505 (diff)
downloadpkgsrc-06aaeb967896845666e3f711d86a0a24e4b4c889.tar.gz
Update to otcl-1.14
--- otcl-1.14 Released Sat Oct 29 2011 (Major change is to update for tcl-8.5 changes, contributed from Amir Habibi (habibi@uci.edu)) TCL 8.5.3 has several fundamental internal and API changes that render OTCL's use of its low level data structures and API syntactically and semnatically incompatible. The major changes are: * Variables are kept in a new internal hashtable type named VarInHash. Majority of hashtable API functions do not take this into consideration and lead to segmentation faults. Unfortunately majority of the potential API functions are defined as static in original TCL code under generic/tclVar.c and we have to redefine them in OTCL code. CallFrame.varTablePtr doesn't any longer refer to a string based hashtable. The new type is TclVarHashtable that encapsulates a VarInHash type hashtable (table) along with a namespace (nsPtr). It doesn't need to be initialized as TCL engin will allocate it if a local variable is to be defined. + Commands are parsed into object-based and string-based functions in Tcl_CmdInfo and clientData is not any longer guaranteed to be iof (Proc *) type. Changes made in otcl1-13 to make it compatible with TCL 8.5.3 and hopefully later versions are as follows: (Referenced line numbers are with regards to the new version) + 0059-0064: Modified to reflect the change in the CallFrame. it also defines TCL_VERSION_8_5_OR_HIGHER to simplify changes. + 0069-0083: Define few Tcl_xxx macros to make the changes as clean as possible. These macros are defined for pre and post TCL 8.5.3 + 0587-0597: AddMethod is supposed to keep a copy of a Tcl_CmdInfo data structure after TCL engine has parsed the tcl code. ocd input argument is addded to the prototype to deal with object-based ClientData or the (Proc *) of the tcl procedure. For internal Object and Class objects only string-based information is needed by OTCL. Based on this change, calls to AddMethod in the following lines are modified: 1418-1423, 1845-1849, 1945, 1954 + 0609-0612: Apparently TCL calls the delete function on the Tcl_CmdInfo and we don't need to call it again otherwise glibc panics b/c of double free call on the same pointer. (I didn't dig into this one and my fix may cause a memory leak) + 0732-0737: ListKeys is used for dumping keys in all hashtables and since the variables has is no longer a string hash, this functions is slightly modified to reflect this change. Since TCL doesn't make VarHash related functions available to public, we can't automatically recognize a VarInHash type and I resorted to adding a new input argument, isVarHash, to explicitly pass the flag to this function. Based on this change, calls to Listkeys in the following lines are modified: 1372, 1388, 1804 + 0784: Modified to reflect object-based versus string-based functions use of clientData and objClientData in Tcl_CmdInfo respectively. + 0920: VarTablePtr doesn't need to be initialized in TCL 8.5.3 and the call to Tcl_InitHashTable for older versions is added to Tcl_VarHashInitilize macro. + 0949-0952: Modified to initialize additional fields in CallFrame. + 1004: Modified to cover the cases where varTablePtr remains null during the lifetime of the object. + 1008-1015: Modified to reflect changes in varTablePtr + 1021-1035: This block of code is no longer needed as in TCL 8.5.3 hPtr is removed Var structure and instead VarInHash encapsualtes Var and Tcl_HashEntry. (This may need further investigation !!!) + 1036-137: Modified to cover the cases where varTablePtr remains null during the lifetime of the object. + 1069-1071: Modified to use macros that deal with different ways of initialization of varTablePtr in TCL 8.5.3 and older versions. + 1208-1210: Modified to use macros that deal with different ways of initialization of varTablePtr in TCL 8.5.3 and older versions. + 1211: Modified to clarify the assignment. This is not related to changes for TCL 8.5.3
Diffstat (limited to 'lang/tcl-otcl')
-rw-r--r--lang/tcl-otcl/Makefile5
-rw-r--r--lang/tcl-otcl/distinfo8
2 files changed, 6 insertions, 7 deletions
diff --git a/lang/tcl-otcl/Makefile b/lang/tcl-otcl/Makefile
index 02f436c7d69..6096956e1e2 100644
--- a/lang/tcl-otcl/Makefile
+++ b/lang/tcl-otcl/Makefile
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.22 2012/08/21 21:45:29 marino Exp $
+# $NetBSD: Makefile,v 1.23 2012/09/28 10:02:21 sbd Exp $
-DISTNAME= otcl-src-1.13
+DISTNAME= otcl-src-1.14
PKGNAME= tcl-${DISTNAME:S/-src//}
-PKGREVISION= 1
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=otcl-tclcl/}
diff --git a/lang/tcl-otcl/distinfo b/lang/tcl-otcl/distinfo
index a17020c80d5..77b6594220e 100644
--- a/lang/tcl-otcl/distinfo
+++ b/lang/tcl-otcl/distinfo
@@ -1,8 +1,8 @@
-$NetBSD: distinfo,v 1.9 2009/02/17 19:49:57 joerg Exp $
+$NetBSD: distinfo,v 1.10 2012/09/28 10:02:21 sbd Exp $
-SHA1 (otcl-src-1.13.tar.gz) = e3310044628f0a59217abaa5ff8ac8234700dd83
-RMD160 (otcl-src-1.13.tar.gz) = 7c0def77993ec6e48e4085d6a953b55c2fe2bc59
-Size (otcl-src-1.13.tar.gz) = 317440 bytes
+SHA1 (otcl-src-1.14.tar.gz) = e3b2b090b8f204f60ff78066d85fd800de53db7c
+RMD160 (otcl-src-1.14.tar.gz) = 2895c4d814246faa468d1854f9cb7c8a3f7ac696
+Size (otcl-src-1.14.tar.gz) = 325964 bytes
SHA1 (patch-aa) = b3308c72cc4f9260608578ff78926f77df343527
SHA1 (patch-ab) = 0f735f21dd2204fe37990f201ec121af4eb7b470
SHA1 (patch-ac) = c7b11d85eecc954424993f2410cb69da1d3dff1f