diff options
author | sbd <sbd> | 2012-09-28 10:02:21 +0000 |
---|---|---|
committer | sbd <sbd> | 2012-09-28 10:02:21 +0000 |
commit | 2f35d63389bca6a96dc43d688b89e30f76ba6fdc (patch) | |
tree | a2084084094bfec8c01511b29e2b35b3ae995d2f | |
parent | 066f71a66bc1688cf3ed020bc4d29e31a5a9eb76 (diff) | |
download | pkgsrc-2f35d63389bca6a96dc43d688b89e30f76ba6fdc.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
-rw-r--r-- | lang/tcl-otcl/Makefile | 5 | ||||
-rw-r--r-- | lang/tcl-otcl/distinfo | 8 |
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 |