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)