[Michael A. Cleverly] reports on comp.lang.tcl: #if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION >= 4) #define Tcl_InitHashTableEx(x, y, z) Tcl_InitCustomHashTable(x, y, z) #endif was needed to compile Ck. MC (17 July): Actually in retrospect it was only needed because I was building with genkit (to build a tclkitck). Ck itself has been updated by its maintainer for Tcl 8.4 at all yet, though it does compile and run fine. ./configure must have found my 8.4a2 sources but the 8.4b1 header files (?). Sorry for any confusion. :-) ---- So, apparently Ck was written to the interface of Tcl 8.4a2? It should be updated to use the interface of Tcl 8.4b1. As noted below, the name changed during alpha development. ---- From the tcl ChangeLog: 2001-01-18 Andreas Kupries * Everything below belongs together, it fixes bug #123153. * generic/tcl.h (line 342): A bit more explanation about the default value for TCL_PRESERVE_BINARY_COMPATABILITY. * generic/tcl.h (line 1208): Define the macro 'Tcl_InitHashTable' only when TCL_PRESERVE_BINARY_COMPATIBILITY is not set as it kills binary compatibility to 8.3 and earlier versions. This is the main part of the patch/change. * generic/tcl.decls (line 1469): * generic/tclHash.c (Tcl_InitHashTable): * generic/tclHash.c (Tcl_InitHashTableEx): * generic/tclObj.c (Tcl_InitObjHashTable): Changed 'Tcl_InitHashTableEx' to 'Tcl_InitCustomHashTable'. This change is more of an estethical nature, replacing the ubiquitous 'Ex' suffix with a more meaningful name. The introduced binary incompatibility is deemed acceptable as it is between alpha versions. Updated callers. * doc/Hash.3: * unix/mkLinks: Changed 'Tcl_InitHashTableEx' to 'Tcl_InitCustomHashTable'. ---- [Changes in Tcl/Tk 8.4] [Category Porting]