Tcl 7.6p2/Tk 4.2p2 Release Announcement January 31, 1997 John Ousterhout Sun Microsystems, Inc. john.ousterhout@eng.sun.com We have just released Tcl 7.6p2 and Tk 4.2p2. These are the first (and probably last) set of patches for Tcl 7.6 and Tk 4.2. In case you're wondering what happened to the "p1" patches, they were never fully released; they fixed some serious bugs in the Mac port and were released only for the Mac. There are no feature changes in these patches, just lots of bug fixes, so there should be no incompatibilities for scripts or C code that worked with Tcl 7.6 or Tk 4.2. The patches are available as files tcl7.6p2.patch.gz and tk4.2p2.patch.gz in the usual FTP directories, such as /pub/tcl on ftp.smli.com. In addition, there are complete source releases that correspond to this patch level: they are in files with the usual names, such as tcl7.6p2.tar.Z, tk4.2p2.tar.Z, and win76p2.exe. You may find it easier to grab the full releases than the patches, though it may take longer to retrieve them over the network. If you don't already have Tcl 7.6 and Tk 4.2 installed then you should definitely skip directly to the full p2 source releases. Note: if you retrieve one of the full source releases, such as tcl7.6p2.tar.Z, it will unpack to a directory named tcl7.6, not tcl7.6p2. As with patch releases for previous versions of Tcl and Tk, these patches don't change any of the version numbers, directory names, or file names. Only the patch level (e.g. the Tcl variable tcl_patchLevel) has changed. There is a catalog of all patches for the Tcl 7.6 and Tk 4.2 releases in the following URL: http://www.sunlabs.com/research/tcl/4.2.html. You can always check out this Web page to get information on the patches that are currently available and how to apply them. Be sure to apply patches in order (for example, "p2" patches must be applied before "p3" patches). Here is a complete list of all of the problems fixed in the patches, excerpted from the Tcl and Tk "changes" files. Tcl 7.6p2: ---------- 10/29/96 (bug fix) Under Windows, sockets would consume 100% CPU time after the first accept(), due to a typo. (JL) 10/29/96 (bug fix) Incorrect refcount management caused standard channels not to get deleted at process exit or DLL unload time, causing a memory leak of upwards of 20K each time. (JL) 11/7/96 (bug fix) Auto-exec didn't work on file names that contained spaces. (JO) 11/8/96 (bug fix) Fixed core dump that would occur if more than one call to Tcl_DeleteChannelHandler was made to delete a given channel handler. (JL) 11/8/96 (bug fix) Fixed test for return value in Tcl_Seek and Tcl_SeekCmd to only treat -1 as error, instead of all negative numbers. (JL) 11/12/96 (bug fix) Do not blocking waiting for processes at the end of a pipe during exit cleanup. (JL) 11/12/96 (bug fix) If we are in exit cleanup, do not close the system level file descriptors 0, 1 and 2. Previously they were being closed which is incorrect, in the embedded case. This led to weird behavior for programs that want to interpose on I/O through the standard file descriptors (e.g. Netscape Navigator). (JL) 11/15/96 (bug fix) Fixed core dump on Windows sockets due to dependency on deletion order at exit. Now all socket functions check to see if sockets are (still) initialized, before calling through function pointers. Before, they would call and might end up calling unloaded object code. (JL) 11/15/96 (bug fix) Fixed core dump in Windows socket initialization routine if sockets were not installed on the system. Before, it was not properly checking the result of attempting to load the socket DLL, so it would call through uninitialized function pointers. (JL) 11/15/96 (bug fix) Fixed memory leak in Windows sockets which left socket DLL handle open and could hold the socket DLL in memory uneccessarily, until a reboot. (JL) 12/4/96 (bug fix) Fixed bug in Macintosh socket code that could result in lost data if a client was closed too soon after sending data. (RJ) 12/17/96 (bug fix) Fixed deadlock bug in Windows sockets due to losing an event. This was happening because of an interaction between buffering and nonblocking mode on sockets. Now switched to sockets being blocking by default, so we are also no longer emulating blocking through a private event loop. (JL) 1/21/97 (performance bug fix) Client TCP connections were slow to create because getservbyname was always called on the port. Now this is only done if Tcl_GetInt fails. (BW) 1/21/97 (configuration fix) Made it possible to override TCL_PACKAGE_PATH during make. Previously it was only set during autoconf process. 1/29/97 (bug fix) Fixed some problems with the clock command that impacted how dates were scaned after the year 2000. (RJ) Tk 4.2p2: ---------- 10/17/96 (bug fix) XCopyPlane was broken under Windows and would cause a crash when used with a clipping bitmap. (SS) 10/21/96 (bug fix) Added missing resources needed by tk_getOpenDialog on the Macintosh to the shared library for Tk. (RJ) 10/22/96 (bug fix) Invoking a menu with an Alt key sequence caused an error due to a misplaced common in library/menu.tcl. (JO) 10/23/96 (bug fix) Errors in files sourced by the Macintosh "Source..." menu are now correctly reported via the background error mechanism. (RJ) 10/23/96 (bug fix) Fixed a bug in the Mac subwindow implementation that caused refreshes to not occur for canvases with embedded windows. (RJ) 10/24/96 (bug fix) Provided workaround for Apple bug that doesn't handle zooming correctly for floating windows. (RJ) 10/24/96 (bug fix) Macintosh tearoff menus are now correctly displayed as Mac floating windows. (RJ) 11/1/96 (bug fix) Restored manual page for procedures like Tk_CreateWindowFromPath and Tk_DestroyWindow; was accidentally deleted when Tk_CreateMainWindow procedure was decommissioned. (JO) 11/19/96 (bug fix) Fixed bugs in postscript code that would cause the prefix to not be included and the output file to have the wrong permissions. (RJ) 12/2/96 (bug fix) Fixed problem with canvas lines where it didn't compute bounding boxes correctly for zero-width lines: this could potentially leave garbage on the screen when items were deleted or moved. (JO) 12/5/96 (bug fix) Fixed the Macintosh implementation of pointer x/y which was returning garbage. (RJ) 12/6/96 (bug fix) Fixed grid bug where the positioning of slaves was incorrect for non-zero values of ipadx and ipady (SU) 12/6/96 (bug fix) Fixed grid bug where slaves got "lost" when an already managed slave is re-managed in a different master. (SAU) 1/17/97 (bug fix) Fixed bug where the Tk clipboard was not in sync with the Macintosh clipboard on start-up. (RJ)