Share

Tcl

File Release Notes and Changelog

Release Name: 8.4.16

Notes:
Tcl/Tk 8.4.16 Release Announcement
September 21, 2007

The Tcl Core Team is pleased to announce the 8.4.16 releases of the Tcl
dynamic language and the Tk toolkit.  This is the sixteenth patch release
of Tcl/Tk 8.4.  More details can be found below.  We would like to
express our gratitude to all those who submit bug reports and patches.
This information is invaluable in enabling us to identify and eliminate
problems in the core.

Where to get the new releases:
------------------------------

Tcl/Tk 8.4.16 sources are freely available as open source from the
Tcl Developer Xchange web site at:

        http://www.tcl.tk/software/tcltk/8.4.html

This web page also contains additional information about the releases,
including new features and notes about installing and compiling the
releases.  Sources are always available from the Tcl SourceForge
project's file distribution area:

        http://sourceforge.net/project/showfiles.php?group_id=10894

Binaries for most major platforms are available from:

        http://www.activestate.com/Tcl

For additional information:
---------------------------

Please visit the Tcl Developer Xchange web site:

        http://www.tcl.tk/

This site contains a variety of information about Tcl/Tk in general, the
core Tcl and Tk distributions, Tcl development tools, and much more.

Summary of Changes since Tcl/Tk 8.4.15:
--------------------------------------

The following were the main changes in Tcl/Tk 8.4.16.  A complete list
can be found in the changes file at the root of the source tree.  The
more complete ChangeLog is also included with each source release.  This
is a patch release, so it primarily included bug fixes and corrections
to erratic behavior.  Below are only the most notable changes.

  * Many Aqua/Tk bug fixes and improvements, see Tk changes file.

  * New Tcl feature: DTrace provider (http://wiki.tcl.tk/DTrace)

  * Fixed buffer overrun in animated GIF support.

  * Fixed buffer overrun in [clock format ... %c].

  * Fixed crash with multibyte characters in menu labels.

  * Fixed [thread::join] crash on 64-bit Unix.

  * Fixed crash in thread sync objects.

  * Fixed crash in Tcl_UpdateLinkedVar().

  * Fixed hang in Tcl_CreateTrace() traces.

  * Fixed blue/red reversal in [wm iconphoto] icons on Windows XP.

  * tcltest 2.2.9 permits "_" and ":" in test constraint names.

  * Fixed build problems on SunOS and Windows AMD64.

--
Tcl Core Team and Maintainers
Don Porter, Tcl Core Release Manager


Changes: **** TCL **** 2007-09-20 Don Porter <dgp@users.sourceforge.net> *** 8.4.16 TAGGED FOR RELEASE *** * doc/load.n: Backport corrected example. 2007-09-19 Don Porter <dgp@users.sourceforge.net> * unix/Makefile.in: Update `make dist` so that tclDTrace.d is included in the source code distribution. * generic/tclPkg.c: Backport fix for [1573844] to the * tests/pkg.test: TCL_TIP268 sections. 2007-09-18 Don Porter <dgp@users.sourceforge.net> * changes: updates for 8.4.16 release. 2007-09-15 Daniel Steffen <das@users.sourceforge.net> * unix/tcl.m4 (SunOS-5.1x): replace direct use of '/usr/ccs/bin/ld' in SHLIB_LD by 'cc' compiler driver. * unix/configure: autoconf-2.13 2007-09-14 Daniel Steffen <das@users.sourceforge.net> * generic/tclDTrace.d (new file): add DTrace provider for Tcl; allows * generic/tclCompile.h: tracing of proc and command entry & * generic/tclBasic.c: return, bytecode execution, object * generic/tclExecute.c: allocation and more; with essentially * generic/tclInt.h: zero cost when tracing is inactive; * generic/tclObj.c: enable with --enable-dtrace configure * generic/tclProc.c: arg (disabled by default, will only * unix/Makefile.in: enable if DTrace is present). * unix/configure.in: [Patch 1793984] * macosx/Makefile: enable DTrace support. * unix/configure: autoconf-2.13 2007-09-11 Don Porter <dgp@users.sourceforge.net> * library/tcltest/tcltest.tcl: Accept underscores and colons in * library/tcltest/pkgIndex.tcl: constraint names. Properly handle constraint expressions that return non-numeric boolean results like "false". Bump to tcltest 2.2.9. [Bug 1772989; RFE 1071322] 2007-09-11 Pat Thoyts <patthoyts@users.sourceforge.net> * win/makefile.vc: AMD64 target fixes for symbols builds. * win/rules.vc: 2007-09-10 Jeff Hobbs <jeffh@ActiveState.com> * generic/tclLink.c (Tcl_UpdateLinkedVar): guard against var being unlinked. [Bug 1740631] (maros) 2007-08-25 Kevin Kenny <kennykb@acm.org> * generic/tclClock.c (FormatClock): Claimed additional space for the %c format code to avoid a buffer overrun when formatting (for example) a Friday in February in the Portuguese locale. [Bug 1751117] 2007-08-24 Miguel Sofer <msofer@users.sf.net> * generic/tclCompile.c: replaced copy loop that tripped some compilers with memmove [Bug 1780870] 2007-08-14 Don Porter <dgp@users.sourceforge.net> * tests/trace.test: Backport some tests. 2007-08-14 Daniel Steffen <das@users.sourceforge.net> * unix/tclLoadDyld.c: use dlfcn API on Mac OS X 10.4 and later; fix issues with loading from memory on intel and 64bit; add debug messages. * tests/load.test: add test load-10.1 for loading from vfs. 2007-08-07 Daniel Steffen <das@users.sourceforge.net> * generic/tclEnv.c: improve environ handling on Mac OS X (adapted * unix/tclUnixPort.h: from Apple changes in Darwin tcl-64). * unix/Makefile.in: add support for compile flags specific to object files linked directly into executables. * unix/configure.in (Darwin): only use -seg1addr flag when prebinding; use -mdynamic-no-pic flag for object files linked directly into exes; support overriding TCL_PACKAGE_PATH in environment. * unix/configure: autoconf-2.13 2007-07-19 Don Porter <dgp@users.sourceforge.net> * generic/tclParse.c: In contexts where interp and parsePtr->interp might be different, be sure to use the latter for error reporting. 2007-07-05 Don Porter <dgp@users.sourceforge.net> * library/init.tcl (unknown): Corrected inconsistent error message in interactive [unknown] when empty command is invoked. [Bug 1743676] 2007-06-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> * generic/tclBinary.c (Tcl_BinaryObjCmd): De-fang an instance of the shared-result anti-pattern. [Bug 1716704] 2007-06-30 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> * generic/tclThread.c: Prevent RemeberSyncObj() from growing the sync object lists by reusing already free'd slots, if possible. See discussion on Bug 1726873 for more information. 2007-06-29 Daniel Steffen <das@users.sourceforge.net> * generic/tclAlloc.c: on Darwin, ensure memory allocated by * generic/tclThreadAlloc.c: the custom TclpAlloc()s is aligned to 16 byte boundaries (as is the case with the Darwin system malloc). 2007-06-27 Don Porter <dgp@users.sourceforge.net> * generic/tclCmdMZ.c: Corrected broken trace reversal logic in * generic/tclTest.c: TclCheckInterpTraces that led to infinite loop * tests/basic.test: when multiple Tcl_CreateTrace traces were set and one of them did not fire due to level restrictions. [Bug 1743941]. 2007-06-23 Daniel Steffen <das@users.sourceforge.net> * macosx/tclMacOSXNotify.c (AtForkChild): don't call CoreFoundation APIs after fork() on systems where that would lead to an abort(). 2007-06-10 Jeff Hobbs <jeffh@ActiveState.com> * README: updated links. [Bug 1715081] 2007-06-06 Daniel Steffen <das@users.sourceforge.net> * unix/configure.in (Darwin): add plist for tclsh; link the * unix/Makefile.in (Darwin): Tcl and tclsh plists into their * macosx/Tclsh-Info.plist.in (new): binaries in all cases. * unix/tcl.m4 (Darwin): fix CF checks in fat 32&64bit builds. * unix/configure: autoconf-2.13 2007-06-05 Don Porter <dgp@users.sourceforge.net> * tests/result.test (result-6.2): Add test for [Bug 1649062] so that 8.4 and 8.5 both test the same outcome and we verify compatibility. 2007-05-30 Don Porter <dgp@users.sourceforge.net> * README: Bump version number to 8.4.16 * generic/tcl.h: * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: * win/README.binary: * win/configure.in: * unix/configure: autoconf-2.13 * win/configure: 2007-05-29 Jeff Hobbs <jeffh@ActiveState.com> * unix/tclUnixThrd.c (Tcl_JoinThread): fix for 64-bit handling of pthread_join exit return code storage. [Bug 1712723] **** TK **** 2007-09-18 Daniel Steffen <das@users.sourceforge.net> *** 8.4.16 TAGGED FOR RELEASE *** * changes: updates for 8.4.16 release. 2007-09-15 Daniel Steffen <das@users.sourceforge.net> * unix/tcl.m4 (SunOS-5.1x): replace direct use of '/usr/ccs/bin/ld' in SHLIB_LD by 'cc' compiler driver. * unix/configure: autoconf-2.13 2007-09-11 Reinhard Max <max@suse.de> * generic/tkImgGIF.c: Fixed a buffer overrun that got triggered by multi-frame interlaced GIFs that contain subsequent frames that are smaller than the first one. * tests/imgPhoto.test: Added a test for the above. 2007-09-11 Daniel Steffen <das@users.sourceforge.net> * unix/configure.in: backport of TK_INCLUDE_SPEC addition. * unix/tkConfig.sh.in: [Bug 777203] * unix/configure: autoconf-2.13 2007-09-11 Pat Thoyts <patthoyts@users.sourceforge.net> * win/makefile.vc: Fix for AMD64 symbols target builds. * win/rules.vc: 2007-09-05 Pat Thoyts <patthoyts@users.sourceforge.net> * win/rc/tk_base.rc: Backported the BASE_NO_TK_ICON patch to assist in creating tclkits and/or basekits with corrent resources. 2007-09-04 Pat Thoyts <patthoyts@users.sourceforge.net> * tests/wm.test: -transparentcolor added to windows wm attributes tests 2007-08-27 Daniel Steffen <das@users.sourceforge.net> * macosx/tkMacOSXDialog.c (Tk_ChooseColorObjCmd): correct setting of interp result [Bug 1782105]; fix -initialcolor overwriting last color selection; style cleanup. 2007-08-07 Daniel Steffen <das@users.sourceforge.net> * unix/Makefile.in: add support for compile flags specific to object files linked directly into executables. * unix/configure.in (Darwin): only use -seg1addr flag when prebinding; use -mdynamic-no-pic flag for object files linked directly into exes. * unix/configure: autoconf-2.13 2007-07-25 Daniel Steffen <das@users.sourceforge.net> * macosx/tkMacOSXDialog.c (NavServicesGetFile): reset interp result on nav dialog cancel. [Bug 1743786] 2007-07-09 Daniel Steffen <das@users.sourceforge.net> * macosx/tkMacOSXWindowEvent.c (Tk_MacOSXIsAppInFront): use process mgr * macosx/tkMacOSXMouseEvent.c: to determine if app is in front instead of relying on activate/deactivate events (which may arrive after this info is needed, e.g. during window drag/click activation); replace other process mgr use to get this info with calls to Tk_MacOSXIsAppInFront(). * macosx/tkMacOSXMouseEvent.c (TkMacOSXProcessMouseEvent): correct window click activation, titlebar click handling and background window dragging/growing in the presence of grabs or window-/app-modal windows; fix window click activation bringing all other app windows to front. * macosx/tkMacOSXDraw.c (TkPutImage): handle non-native XImage byte and bit orders; reverse bits via xBitReverseTable instead of InvertByte(). 2007-07-04 Jeff Hobbs <jeffh@ActiveState.com> * macosx/tkMacOSXXStubs.c (DestroyImage): Fixed crash in release of image data for images coming from XGetImage, introduced 2007-06-23. (das) 2007-07-02 Daniel Steffen <das@users.sourceforge.net> * xlib/xgc.c (XCreateGC): correct black and white pixel values used to initialize GC foregrund and background fields. * macosx/tkMacOSXColor.c: add debug messages for unknown pixel values. * macosx/tkMacOSXDraw.c (TkMacOSXRestoreDrawingContext): don't restore port state if it wasn't altered by TkMacOSXSetupDrawingContext(). 2007-06-29 Daniel Steffen <das@users.sourceforge.net> * xlib/ximage.c: bitmaps created from the static .bmp arrays always have LSBFirst bit order. * macosx/tkMacOSXScrlbr.c: correct int <-> dobule conversion issues that could lead to Carbon getting confused about scrollbar thumb size. * macosx/tkMacOSXDraw.c (XCopyArea, XCopyPlane, TkPutImage) use TkMacOSX{Setup,Restore}DrawingContext() to setup/restore clip & colors. (TkMacOSXSetupDrawingContext, TkMacOSXRestoreDrawingContext): add save and restore of QD port clip region; factor out clip region code common to CG and QD branches; check for port and context validity; handle tkPictureIsOpen flag during QD port setup. (TkScrollWindow): remove unnecessary scroll region manipulation * macosx/tkMacOSXDraw.c: remove second global QD temp region * macosx/tkMacOSXInt.h: (no longer necessary) and rename * macosx/tkMacOSXRegion.c: remaining global QD temp region. * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXDraw.c: make useCGDrawing variable MODULE_SCOPE * macosx/tkMacOSXFont.c: and sync formatting with HEAD. * macosx/tkMacOSXButton.c: reduce reliance on current QD port * macosx/tkMacOSXColor.c: setting and remove unnecessary * macosx/tkMacOSXDebug.c: references to a drawable's QD port, * macosx/tkMacOSXDebug.h: notably replace GetWindowFromPort( * macosx/tkMacOSXDialog.c: TkMacOSXGetDrawablePort()) idiom by new * macosx/tkMacOSXDraw.c: TkMacOSXDrawableWindow() and change * macosx/tkMacOSXKeyEvent.c: TkMacOSXSetColorInPort() to take a port * macosx/tkMacOSXMenu.c: argument. * macosx/tkMacOSXMenubutton.c: * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXScale.c: * macosx/tkMacOSXScrlbr.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXInt.h: factor out macros, declarations * macosx/tkMacOSXPrivate.h (new): and prototypes that are purely internal and private to the 'macosx' sources into a new internal header file that does _not_ get installed into Tk.framework/PrivateHeaders. * macosx/tkMacOSXButton.c: #include new tkMacOSXPrivate.h * macosx/tkMacOSXCarbonEvents.c: instead of tkMacOSXInt.h. * macosx/tkMacOSXClipboard.c: * macosx/tkMacOSXColor.c: * macosx/tkMacOSXCursor.c: * macosx/tkMacOSXDebug.c: * macosx/tkMacOSXDialog.c: * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXEntry.c: * macosx/tkMacOSXEvent.c: * macosx/tkMacOSXFont.c: * macosx/tkMacOSXHLEvents.c: * macosx/tkMacOSXInit.c: * macosx/tkMacOSXKeyEvent.c: * macosx/tkMacOSXMenu.c: * macosx/tkMacOSXMenubutton.c: * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXNotify.c: * macosx/tkMacOSXRegion.c: * macosx/tkMacOSXScale.c: * macosx/tkMacOSXScrlbr.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXXStubs.c: 2007-06-23 Daniel Steffen <das@users.sourceforge.net> * generic/tkImgPhoto.c (ImgPhotoConfigureInstance, DisposeInstance): use XDestroyImage instead of XFree to destroy XImage; replace runtime endianness determination by compile-time check for WORDS_BIGENDIAN. * xlib/ximage.c (XCreateBitmapFromData): use XCreateImage and XDestroyImage instead of creating XImage structure manually. * macosx/tkMacOSXXStubs.c (XCreateImage, DestroyImage): correct XImage bytes_per_line/bitmap_pad calculations and endianness setting; free image data and XImage structure at destruction; formatting cleanup. * macosx/tkMacOSXDialog.c (NavServicesGetFile): disable app-modal sheet variant of nav dialog on OS versions where it causes problems. 2007-06-09 Jeff Hobbs <jeffh@ActiveState.com> * win/tkWinWm.c (WmIconphotoCmd): fix wm iconphoto RGBA issues. [Bug 1467997] (janssen) * win/tkWinMenu.c (TkWinHandleMenuEvent): improve handling to allow for unicode char menu indices and not use CharUpper on Tcl utf strings. [Bug 1734223] 2007-06-09 Daniel Steffen <das@users.sourceforge.net> * macosx/tkMacOSXColor.c: fix issues with TK_{IF,ELSE,ENDIF} macros; * macosx/tkMacOSXDraw.c: implement Jaguar equivalent of unavailable * macosx/tkMacOSXEntry.c: kHIToolboxVersion global; panic at startup * macosx/tkMacOSXEvent.c: if MAC_OS_X_VERSION_MIN_REQUIRED constraint * macosx/tkMacOSXInit.c: is not satisfied. * macosx/tkMacOSXInt.h: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXDraw.c (XCopyArea, XCopyPlane, TkPutImage) (TkMacOSXSetupDrawingContext): factor out common code and standardize setup/restore of port, context and clipping; formatting cleanup. * macosx/tkMacOSXWindowEvent.c: add error checking. * macosx/tkMacOSXMenu.c: fix gcc3 warning. * macosx/tkMacOSXScrlbr.c: fix testsuite crash. * macosx/tkMacOSXSubwindows.c: formatting cleanup. * macosx/tkMacOSXRegion.c: fix typos. * macosx/tkMacOSXScale.c: 2007-06-06 Daniel Steffen <das@users.sourceforge.net> * macosx/tkMacOSXInt.h: use native debug message API when available. * macosx/tkMacOSXMouseEvent.c (GenerateMouseWheelEvent): enable processing of mousewheel events in background windows. * macosx/tkMacOSXScrlbr.c: modernize checks for active/front window. * macosx/tkMacOSXScale.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXColor.c: factor out verbose #ifdef checks of * macosx/tkMacOSXDraw.c: MAC_OS_X_VERSION_{MAX_ALLOWED,MIN_REQUIRED} * macosx/tkMacOSXEntry.c: and runtime checks of kHIToolboxVersion into * macosx/tkMacOSXEvent.c: new TK_{IF,ELSE,ENDIF}_MAC_OS_X macros. * macosx/tkMacOSXInit.c: * macosx/tkMacOSXInt.h: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXDraw.c: factor out clip clearing in QD ports; * macosx/tkMacOSXEntry.c: formatting cleanup. * unix/configure.in (Darwin): link the Tk and Wish plists into their binaries in all cases; fix 64bit arch removal in fat 32&64bit builds. * unix/tcl.m4 (Darwin): fix CF checks in fat 32&64bit builds. * unix/configure: autoconf-2.13 2007-06-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> * doc/photo.n: Clarified the fact that base64 support for the -data option is not universal. [Bug 1731348] (matzek) 2007-06-04 Daniel Steffen <das@users.sourceforge.net> * macosx/tkMacOSXMenu.c: add error checking; whitespace cleanup. * macosx/tkMacOSXDraw.c: sync comment formatting with HEAD. * macosx/tkMacOSXEmbed.c: * macosx/tkMacOSXEntry.c: * macosx/tkMacOSXKeyEvent.c: * macosx/tkMacOSXKeyboard.c: * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXSend.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXXStubs.c: 2007-06-02 Daniel Steffen <das@users.sourceforge.net> * macosx/tkMacOSXMenu.c (TkpPostMenu): ensure cascade menus display in posted menus that are not part of the menubar or attached to a menubutton (fixes bug reported on tcl-mac by Linus Nyberg). 2007-05-31 Daniel Steffen <das@users.sourceforge.net> * macosx/tkMacOSXWindowEvent.c (GenerateUpdateEvent): complete all pending idle-time redraws before newly posted Expose events are processed; add bounds of redrawn windows to update region to ensure all child windows overdrawn by parents are redrawn. * macosx/tkMacOSXWindowEvent.c: centralize clip and window invalidation * macosx/tkMacOSXSubwindows.c: after location/size changes in the * macosx/tkMacOSXWm.c: BoundsChanged carbon event handler; correct/add window invalidation after window attribute changes. * macosx/tkMacOSXSubwindows.c (XResizeWindow, XMoveResizeWindow, XMoveWindow): factor out common code dealing with embedded and non-toplevel windows; remove unnecessary clip and window invalidation. * macosx/tkMacOSXButton.c (TkpDisplayButton): move clip setup closer to native button drawing calls. * macosx/tkMacOSXWm.c (TkMacOSXIsWindowZoomed, TkMacOSXZoomToplevel): correct handling of gridded windows in max size calculations. * macosx/tkMacOSXEvent.c (TkMacOSXFlushWindows): use HIWindowFlush API when available. * macosx/tkMacOSXColor.c: cleanup whitespace and formatting. * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWm.c: * generic/tkFont.c: #ifdef out debug msg printing to stderr. 2007-05-30 Don Porter <dgp@users.sourceforge.net> * generic/tk.h: Correct placement of #include <tcl.h> [Bug 1723812]. * README: Bump version number to 8.4.16 * generic/tk.h: * unix/configure.in: * unix/tk.spec: * win/configure.in: * unix/configure: autoconf-2.13 * win/configure: 2007-05-30 Daniel Steffen <das@users.sourceforge.net> * library/bgerror.tcl: standardize dialog option & button size * library/dialog.tcl: modifications done when running on on Aqua. * library/msgbox.tcl: * library/demos/button.tcl: set button highlightbackground on Aqua. * generic/tkFileFilter.c (AddClause): fix warning. * macosx/tkMacOSXMenu.c (DrawMenuSeparator): use DrawingContext API. * macosx/tkMacOSXWindowEvent.c (ClearPort): clip to updateRgn. * macosx/tkMacOSXDebug.c: factor out debug region flashing. * macosx/tkMacOSXDebug.h: * macosx/tkMacOSXDraw.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXEvent.c: cleanup whitespace and formatting. * macosx/tkMacOSXFont.c: * macosx/tkMacOSXRegion.c: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWindowEvent.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXXStubs.c: * xlib/xgc.c: