Share

Tcl

File Release Notes and Changelog

Release Name: 8.5b1

Notes:
Tcl/Tk 8.5b1 Release Announcement
September 26, 2007

The Tcl Core Team is pleased to announce the 8.5b1 releases of the Tcl
dynamic language and the Tk toolkit.  This is the first beta release of
Tcl/Tk 8.5.  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.5b1 sources are freely available as open source from the Tcl
Developer Xchange web site at:

        http://www.tcl.tk/software/tcltk/8.5.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

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.

Thank you for your contributions:
---------------------------------

As usual, this release includes contributions from the Tcl community.
We have a page honoring these contributors at:

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

Summary of Changes since Tcl/Tk 8.5a6:
--------------------------------------

The following were the main changes in Tcl/Tk 8.5b1.  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 beta release of 8.5.  The beta designation means that the
feature set for 8.5 is believed to be complete, and the focus is now
on testing and bug fixing moving quickly toward an 8.5.0 release.
All relevant bug fixes (and some more) up to and including 8.4.16 changes
are included in 8.5b1.  The following list focuses on new features added
so far in 8.5.  This release is a development release, and should only be
considered for deployment use after considerable testing.

  * Removed support for {expand} syntax
    *** POTENTIAL INCOMPATIBILITY with 8.5 alphas only ***

  * [TIP 145] Enhanced font handling.

  * Tcl variable memory efficiency improved.
    *** POTENTIAL INCOMPATIBILITY for users of internal structs ***

  * Leave traces created during traced command execution do not fire.
    *** POTENTIAL INCOMPATIBILITY ***

  * Restored 8.4 compatibility of [package require -exact]
    *** POTENTIAL INCOMPATIBILITY with 8.5 alphas only ***

  * Revised parser expands {*} literals instead of returning a
    TCL_TOKEN_EXPAND_WORD token
    *** POTENTIAL INCOMPATIBILITY with 8.5 alphas only ***

  * Tcl_GetObjType("nsName") no longer supported.
    *** POTENTIAL INCOMPATIBILITY ***

  * Fixed crash in nested [dict update].
    *** POTENTIAL INCOMPATIBILITY with bytecode from 8.5 alphas ***

  * Fixed panic in [text] DLine layout.

  * Fixed crash in ::errorInfo traces.

  * Fixed crash in [grid *configure].

  * Improved Aqua ttk::combobox appearance.

  * Fixed interactive tclsh failure to prompt for continuation line when
    entered line ends with backslash-newline.

  * Make [interp limit -command] able to stop [while 1 {}].

  * Fixed open mode "a+".

  * [info] is a [namespace ensemble].

  * Set tcl_platform(user) from system, not environment.

  * [clock] tzdata updated to Olson's tzdata2007g.

--

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


Changes: **** TCL **** 2007-09-20 Don Porter <dgp@users.sourceforge.net> *** 8.5b1 TAGGED FOR RELEASE *** * changes: updates for 8.5b1 release. 2007-09-19 Don Porter <dgp@users.sourceforge.net> * README: Bump version number to 8.5b1 * generic/tcl.h: Merge from core-stabilizer-branch. * library/init.tcl: Stabilizing toward 8.5b1 release now done * tools/tcl.wse.in: on the HEAD. core-stabilizer-branch is * unix/configure.in: now suspended. * unix/tcl.spec: * win/configure.in: 2007-09-19 Pat Thoyts <patthoyts@users.sourceforge.net> * generic/tclStubLib.: Replaced isdigit with internal implementation. 2007-09-18 Don Porter <dgp@users.sourceforge.net> * generic/tclStubLib.c: Remove C library calls from Tcl_InitStubs() * win/makefile.vc: so that we don't need the C library linked in to libtclStub. 2007-09-17 Pat Thoyts <patthoyts@users.sourceforge.net> * win/makefile.vc: Add crt flags for tclStubLib now it uses C-library functions 2007-09-17 Joe English <jenglish@users.sourceforge.net> * tcl.m4: use '${CC} -shared' instead of 'ld -Bshareable' to build shared libraries on current NetBSDs [#1749251]. * unix/configure: regenerated (autoconf-2.59). 2007-09-17 Don Porter <dgp@users.sourceforge.net> * unix/Makefile.in: Update `make dist` so that tclDTrace.d is included in the source code distribution. * generic/tcl.h: Revised Tcl_InitStubs() to restore Tcl 8.4 * generic/tclPkg.c: source compatibility with callers of * generic/tclStubLib.c: Tcl_InitStubs(interp, TCL_VERSION, 1). [Bug 1578344]. 2007-09-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> * generic/tclTrace.c (Tcl_TraceObjCmd, TraceExecutionObjCmd) (TraceCommandObjCmd, TraceVariableObjCmd): Generate literal values * generic/tclNamesp.c (NamespaceCodeCmd): more efficiently using * generic/tclFCmd.c (CopyRenameOneFile): TclNewLiteralStringObj * generic/tclEvent.c (TclSetBgErrorHandler): macro. 2007-09-15 Daniel Steffen <das@users.sourceforge.net> * unix/tcl.m4: replace all direct references to compiler by ${CC} to enable CC overriding at configure & make time; run check for visibility "hidden" with all compilers; quoting fixes from TEA tcl.m4. (SunOS-5.1x): replace direct use of '/usr/ccs/bin/ld' in SHLIB_LD by 'cc' compiler driver. * unix/configure: autoconf-2.59 2007-09-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> * generic/tclBasic.c (Tcl_CreateObjCommand): Only invalidate along the namespace path once; that is enough. [Bug 1519940] 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 * generic/tclInt.h: essentially zero cost when tracing * generic/tclObj.c: is inactive; enable with * generic/tclProc.c: --enable-dtrace configure arg * unix/Makefile.in: (disabled by default, will only * unix/configure.in: enable if DTrace is present). [Patch 1793984] * macosx/GNUmakefile: enable DTrace support. * macosx/Tcl-Common.xcconfig: * macosx/Tcl.xcodeproj/project.pbxproj: * generic/tclCmdIL.c: factor out core of InfoFrameCmd() into internal TclInfoFrame() for use by DTrace probes. * unix/configure: autoconf-2.59 * unix/tclConfig.h.in: autoheader-2.59 2007-09-12 Don Porter <dgp@users.sourceforge.net> * unix/Makefile.in: Perform missing updates of the tcltest Tcl * win/Makefile.in: Module installed filename that should have been part of the bump to tcltest 2.3b1. Thanks Larry Virden. 2007-09-12 Pat Thoyts <patthoyts@users.sourceforge.net> * win/makefile.vc, win/rules.vc, win/nmakehlp.c: Use nmakehlp to substitute values for tclConfig.sh (helps cross-compiling). 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.3b1. [Bug 1772989; RFE 1071322] * tests/info.test: Disable fragile tests. * doc/package.n: Restored the functioning of [package require * generic/tclPkg.c: -exact] to be compatible with Tcl 8.4. [Bug * tests/pkg.test: 1578344] 2007-09-11 Miguel Sofer <msofer@users.sf.net> * generic/tclCompCmds.c (TclCompileDictCmd-update): * generic/tclCompile.c (tclInstructionTable): * generic/tclExecute.c (INST_DICT_UPDATE_END): fix stack management in [dict update]. [Bug 1786481] ***POTENTIAL INCOMPATIBILITY*** Scripts that were precompiled on earlier versions of 8.5 and use [dict update] will crash. Workaround: recompile. 2007-09-11 Kevin B. Kenny <kennykb@acm.org> * generic/tclExecute.c: Corrected an off-by-one error in the setting of MaxBaseWide for certain powers. [Bug 1767293 - problem reported in comments when bug was reopened] 2007-09-10 Jeff Hobbs <jeffh@ActiveState.com> * generic/tclLink.c (Tcl_UpdateLinkedVar): guard against var being unlinked. [Bug 1740631] (maros) 2007-09-10 Miguel Sofer <msofer@users.sf.net> * generic/tclCompile.c: fix tclInstructionTable entry for dictUpdateEnd * generic/tclExecute.c: remove unneeded setting of 'cleanup' variable before jumping to checkForCatch. 2007-09-10 Don Porter <dgp@users.sourceforge.net> * doc/package.n: Restored the document parallel syntax of the * generic/tclPkg.c: [package present] and [package require] * tests/pkg.test: commands. [Bug 1723675] 2007-09-09 Don Porter <dgp@users.sourceforge.net> * generic/tclInt.h: Removed the "nsName" Tcl_ObjType from the * generic/tclNamesp.c: registered set. Revised the management of the * generic/tclObj.c: intrep of that Tcl_ObjType. Revised the * tests/obj.test: TclGetNamespaceFromObj() routine to return TCL_ERROR and write a consistent error message when a namespace is not found. [Bug 1588842. Patch 1686862] ***POTENTIAL INCOMPATIBILITY*** For callers of Tcl_GetObjType() on the name "nsName". * generic/tclExecute.c: Update TclGetNamespaceFromObj() callers. * generic/tclProc.c: * tests/apply.test: Updated tests to expect new consistent * tests/namespace-old.test: error message when a namespace is not * tests/namespace.test: found. * tests/upvar.test: * generic/tclCompCmds.c: Use the new INST_REVERSE instruction * tests/mathop.test: to correct the compiled versions of math operator commands. [Bug 1724437] * generic/tclCompile.c: New bytecode instruction INST_REVERSE to * generic/tclCompile.h: reverse the order of N items at the top of * generic/tclExecute.c: stack. * generic/tclCompCmds.c (TclCompilePowOpCmd): Make a separate routine to compile ** to account for its different associativity. 2007-09-08 Miguel Sofer <msofer@users.sf.net> * generic/tclVar.c (Tcl_SetVar2, TclPtrSetVar): [Bug 1710710] fixed correctly, reverted fix of 2007-05-01. 2007-09-08 Donal K. Fellows <dkf@users.sf.net> * generic/tclDictObj.c (DictUpdateCmd, DictWithCmd): Plug a hole that * generic/tclExecute.c (TEBC,INST_DICT_UPDATE_END): allowed a careful * tests/dict.test (dict-21.16,21.17,22.11): attacker to craft a dict containing a recursive link to itself, violating one of Tcl's fundamental datatype assumptions and causing a stack crash when the dict was converted to a string. [Bug 1786481] 2007-09-07 Don Porter <dgp@users.sourceforge.net> * generic/tclEvent.c ([::tcl::Bgerror]): Corrections to Tcl's * tests/event.test: default [interp bgerror] handler so that when it falls back to a hidden [bgerror] in a safe interp, it gets the right error context data. [Bug 1790274] 2007-09-07 Miguel Sofer <msofer@users.sf.net> * generic/tclProc.c (TclInitCompiledLocals): the refCount of resolved variables was being managed without checking if they were Var or VarInHash: itcl [Bug 1790184] 2007-09-06 Don Porter <dgp@users.sourceforge.net> * generic/tclResult.c (Tcl_GetReturnOptions): Take care that a * tests/init.test: non-TCL_ERROR code doesn't cause existing -errorinfo, -errorcode, and -errorline entries to be omitted. * generic/tclEvent.c: With -errorInfo no longer lost, generate more complete ::errorInfo when calling [bgerror] after a non-TCL_ERROR background exception. 2007-09-06 Don Porter <dgp@users.sourceforge.net> * generic/tclInterp.c (Tcl_Init): Removed constraint on ability to define a custom [tclInit] before calling Tcl_Init(). Until now the custom command had to be a proc. Now it can be any command. * generic/tclInt.decls: New internal routine TclBackgroundException() * generic/tclEvent.c: that for the first time permits non-TCL_ERROR exceptions to trigger [interp bgerror] handling. Closes a gap in TIP 221. When falling back to [bgerror] (which is designed only to handle TCL_ERROR), convert exceptions into errors complaining about the exception. * generic/tclInterp.c: Convert Tcl_BackgroundError() callers to call * generic/tclIO.c: TclBackgroundException(). * generic/tclIOCmd.c: * generic/tclTimer.c: * generic/tclIntDecls.h: make genstubs * generic/tclStubInit.c: 2007-09-06 Daniel Steffen <das@users.sourceforge.net> * macosx/Tcl.xcode/project.pbxproj: discontinue unmaintained support * macosx/Tcl.xcode/default.pbxuser: for Xcode 1.5; replace by Xcode2 project for use on Tiger (with Tcl.xcodeproj to be used on Leopard). * macosx/Tcl.xcodeproj/project.pbxproj: updates for Xcode 2.5 and 3.0. * macosx/Tcl.xcodeproj/default.pbxuser: * macosx/Tcl.xcode/project.pbxproj: * macosx/Tcl.xcode/default.pbxuser: * macosx/Tcl-Common.xcconfig: * macosx/README: document project changes. 2007-09-05 Don Porter <dgp@users.sourceforge.net> * generic/tclBasic.c: Removed support for the unmaintained * generic/tclExecute.c: -DTCL_GENERIC_ONLY configuration. [Bug * unix/Makefile.in: 1264623] 2007-09-04 Don Porter <dgp@users.sourceforge.net> * unix/Makefile.in: It's unreliable to count on the release manager to remember to `make genstubs` before `make dist`. Let the Makefile remember the dependency for us. * unix/Makefile.in: Corrections to `make dist` dependencies to be sure that macosx/configure gets generated whenever it does not exist. 2007-09-03 Kevin B, Kenny <kennykb@acm.org> * library/tzdata/Africa/Cairo: * library/tzdata/America/Grand_Turk: * library/tzdata/America/Port-au-Prince: * library/tzdata/America/Indiana/Petersburg: * library/tzdata/America/Indiana/Tell_City: * library/tzdata/America/Indiana/Vincennes: * library/tzdata/Antarctica/McMurdo: * library/tzdata/Australia/Adelaide: * library/tzdata/Australia/Broken_Hill: * library/tzdata/Australia/Currie: * library/tzdata/Australia/Hobart: * library/tzdata/Australia/Lord_Howe: * library/tzdata/Australia/Melbourne: * library/tzdata/Australia/Sydney: * library/tzdata/Pacific/Auckland: * library/tzdata/Pacific/Chatham: Olson's tzdata2007g. * generic/tclListObj.c (TclLindexFlat): * tests/lindex.test (lindex-17.[01]): Added code to detect the error when a script does [lindex {} end foo]; an overaggressive optimisation caused this call to return an empty object rather than an error. 2007-09-03 Daniel Steffen <das@users.sourceforge.net> * generic/tclObj.c (TclInitObjSubsystem): restore registration of the "wideInt" Tcl_ObjType for compatibility with 8.4 extensions that access the tclWideIntType Tcl_ObjType; add setFromAnyProc for tclWideIntType. 2007-09-02 Donal K. Fellows <dkf@users.sf.net> * doc/lsearch.n: Added note that order of results with the -all option is that of the input list. It always was, but this makes it crystal. 2007-08-30 Don Porter <dgp@users.sourceforge.net> * generic/tclCompile.c: Added fflush() calls following all callers of * generic/tclExecute.c: TclPrintByteCodeObj() so that tcl_traceCompile output is less likely to get mangled when writes to stdout interleave with other code. 2007-08-28 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Use a table lookup in ParseLexeme() to determine lexemes with single-byte representations. * generic/tclBasic.c: Used unions to better clarify overloading of * generic/tclCompExpr.c: the fields of the OpCmdInfo and * generic/tclCompile.h: TclOpCmdClientData structs. 2007-08-27 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Call TclCompileSyntaxError() when expression syntax errors are found when compiling expressions. With this in place, convert TclCompileExpr to return void, since there's no longer any need to report TCL_ERROR. * generic/tclCompile.c: Update callers. * generic/tclExecute.c: * generic/tclCompCmds.c: New routine TclCompileSyntaxError() * generic/tclCompile.h: to directly compile bytecodes that report a * generic/tclCompile.c: syntax error, rather than (ab)use a call to TclCompileReturnCmd. Also, undo the most recent commit that papered over some issues with that (ab)use. New routine produces a new opcode INST_SYNTAX, which is a minor variation of INST_RETURN_IMM. Also a bit of constification. * generic/tclCompile.c: Move the deallocation of local LiteralTable * generic/tclCompExpr.c: entries into TclFreeCompileEnv(). * generic/tclExecute.c: Update callers. * generic/tclCompExpr.c: Force numeric and boolean literals in expressions to register with their intreps intact, even if that means overwriting existing intreps in already registered literals. 2007-08-25 Kevin B. Kenny <kennykb@acm.org> * generic/tclExecute.c (TclExecuteByteCode): Added code to handle * tests/expr.test (expr-23.48-53) integer exponentiation that results in 32- and 64-bit integer results, avoiding calls to wide integer exponentiation routines in this common case. [Bug 1767293] * library/clock.tcl (ParseClockScanFormat): Modified code to allow * tests/clock.test (clock-60.*): case-insensitive matching of time zone and month names. [Bug 1781282] 2007-08-24 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Register literals found in expressions * tests/compExpr.test: to restore literal sharing. Preserve numeric intreps when literals are created for the first time. Correct memleak in ExecConstantExprTree() and add test for the leak. 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-23 Don Porter <dgp@users.sourceforge.net> * library/init.tcl ([auto_load_index]): Delete stray "]" that created an expr syntax error (masked by a [catch]). * generic/tclCompCmds.c (TclCompileReturnCmd): Added crash protection to handle callers other than TclCompileScript() failing to meet the initialization assumptions of the TIP 280 code in CompileWord(). * generic/tclCompExpr.c: Suppress the attempt to convert to numeric when pre-compiling a constant expresion indicates an error. 2007-08-22 Miguel Sofer <msofer@users.sf.net> * generic/tclExecute.c (TEBC): disable the new shortcut to frequent INSTs for debug builds. REVERTED (collision with alternative fix) 2007-08-21 Don Porter <dgp@users.sourceforge.net> * generic/tclMain.c: Corrected the logic of dropping the last * tests/main.test: newline from an interactively typed command. [Bug 1775878] 2007-08-21 Pat Thoyts <patthoyts@users.sourceforge.net> * tests/thread.test: thread-4.4: clear ::errorInfo in the thread as a message is left here from init.tcl on windows due to no tcl_pkgPath. 2007-08-20 Miguel Sofer <msofer@users.sf.net> * generic/tclExecute.c (INST_SUB): fix usage of the new macro for overflow detection in sums, adapt to subtraction. Lengthy comment added. 2007-08-19 Donal K. Fellows <dkf@users.sf.net> * generic/tclExecute.c (Overflowing, TclIncrObj, TclExecuteByteCode): Encapsulate Miguel's last change in a more mnemonic macro. 2007-08-19 Miguel Sofer <msofer@users.sf.net> * generic/tclExecute.c: changed the check for overflow in sums, reducing objsize, number of branches and cache misses (according to cachegrind). Non-overflow for s=a+b: previous ((a >= 0 || b >= 0 || s < 0) && (s >= 0 || b < 0 || a < 0)) now (((a^s) >= 0) || ((a^b) < 0)) This expresses: "a and s have the same sign or else a and b have different sign". 2007-08-19 Donal K. Fellows <dkf@users.sf.net> * doc/interp.n (RESOURCE LIMITS): Added text to better explain why time limits are described using absolute times. [Bug 1752148] 2007-08-16 Miguel Sofer <msofer@users.sf.net> * generic/tclVar.c: improved localVarNameType caching to leverage the new availability of Tcl_Obj in variable names, avoiding string comparisons to verify that the cached value is usable. * generic/tclExecute.c: check the two most frequent instructions before the switch. Reduces both runtime and obj size a tiny bit. 2007-08-16 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Added a "constant" field to the OpNode struct (again "free" due to alignment requirements) to mark those subexpressions that are completely known at compile time. Enhanced CompileExprTree() and its callers to precompute these constant subexpressions at compile time. This resolves the issue raised in [Bug 1564517]. 2007-08-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> * generic/tclIOUtil.c (TclGetOpenModeEx): Only set the O_APPEND flag * tests/ioUtil.test (ioUtil-4.1): on a channel for the 'a' mode and not for 'a+'. [Bug 1773127] 2007-08-14 Miguel Sofer <msofer@users.sf.net> * generic/tclExecute.c (INST_INVOKE*): peephole opt, do not get the interp's result if it will be pushed/popped. 2007-08-14 Don Porter <dgp@users.sourceforge.net> * generic/tclBasic.c: Use fully qualified variable names for * tests/thread.test: ::errorInfo and ::errorCode so that string * tests/trace.test: reported to variable traces are fully qualified in agreement with Tcl 8.4 operations. 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. * unix/dltest/pkga.c: whitespace & comment cleanup, remove * unix/dltest/pkgb.c: unused pkgf.c. * unix/dltest/pkgc.c: * unix/dltest/pkge.c: * unix/dltest/pkgf.c (removed): * unix/dltest/pkgua.c: * macosx/Tcl.xcodeproj/project.pbxproj: 2007-08-13 Don Porter <dgp@users.sourceforge.net> * generic/tclExecute.c: Provide DECACHE/CACHE protection to the * tests/trace.test: Tcl_LogCommandInfo() call. [Bug 1773040] 2007-08-12 Miguel Sofer <msofer@users.sf.net> * generic/tclCmdMZ.c (Tcl_SplitObjCmd): use TclNewStringObj macro instead of calling the function. * generic/tcl_Obj.c (TclAllocateFreeObjects): remove unneeded memset to 0 of all allocated objects. 2007-08-10 Miguel Sofer <msofer@users.sf.net> * generic/tclInt.h: remove redundant ops in TclNewStringObj macro 2007-08-10 Miguel Sofer <msofer@users.sf.net> * generic/tclInt.h: fix the TclSetVarNamespaceVar macro, was causing a leak. 2007-08-10 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Revise CompileExprTree() to use the OpNode mark field scheme of tree traversal. This eliminates the need to use magic values in the left and right fields for that purpose. Also stop abusing the left field within ParseExpr() to store the number of arguments in a parsed function call. CompileExprTree() now determines that for itself at compile time. Then reorder code to eliminate duplication. 2007-08-09 Miguel Sofer <msofer@users.sf.net> * generic/tclProc.c (TclCreateProc): better comments on the required varflag values when loading precompiled procs. * generic/tclExecute.c (INST_STORE_ARRAY): * tests/trace.test (trace-2.6): whole array write traces on compiled local variables were not firing. [Bug 1770591] 2007-08-08 Jeff Hobbs <jeffh@ActiveState.com> * generic/tclProc.c (InitLocalCache): reference firstLocalPtr via procPtr. codePtr->procPtr == NULL exposed by tbcload. 2007-08-08 Don Porter <dgp@users.sourceforge.net> * generic/tclExecute.c: Corrected failure to compile/link in the -DNO_WIDE_TYPE configuration. * generic/tclExecute.c: Corrected improper use of bignum arguments to * tests/expr.test: *SHIFT operations. [Bug 1770224] 2007-08-07 Miguel Sofer <msofer@users.sf.net> * generic/tclInt.h: remove comments refering to VAR_SCALAR, as that flag bit does not exist any longer. * generic/tclProc.c (InitCompiledLocals): removed optimisation for non-resolved case, as the function is never called in that case. Renamed the function to InitResolvedLocals to calrify the point. 2007-08-07 Miguel Sofer <msofer@users.sf.net> * generic/tclInt.decls: Exporting via stubs to help * generic/tclInt.h: xotcl adapt to VarReform. * generic/tclIntDecls.h: * generic/tclStubInit.c: 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/TCL_MODULE_PATH in environment. * unix/configure: autoconf-2.59 2007-08-06 Don Porter <dgp@users.sourceforge.net> * tests/parseExpr.test: Update source file name of expr parser code. * generic/tclCompExpr.c: Added a "mark" field to the OpNode struct, which is used to guide tree traversal. This field costs nothing since alignement requirements used the memory already. Rewrote ConvertTreeToTokens() to use the new field, which permitted consolidation of utility routines CopyTokens() and GenerateTokensForLiteral(). 2007-08-06 Kevin B. Kenny <kennykb@users.sf.net> * generic/tclGetDate.y: Added a cast to the definition of YYFREE to silence compiler warnings. * generic/tclDate.c: Regenerated * win/tclWinTest.c: Added a cast to the call to GetSecurityDescriptorDacl to silence compiler warnings. 2007-08-04 Miguel Sofer <msofer@users.sf.net> * generic/tclInt.decls: Exporting via stubs to help itcl adapt to * generic/tclInt.h: VarReform. Added localCache initialization * generic/tclIntDecls.h: to TclInitCompiledLocals (which only exists * generic/tclProc.c: for itcl). * generic/tclStubInit.c: * generic/tclVar.c: 2007-08-01 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> * library/word.tcl: Rewrote for greater efficiency. [Bug 1764318] 2007-08-01 Pat Thoyts <patthoyts@users.sourceforge.net> * generic/tclInt.h: Added a TclOffset macro ala Tk_Offset to * generic/tclVar.c: abstract out 'offsetof' which may not be * generic/tclExceute.c: defined (eg: msvc6). 2007-08-01 Miguel Sofer <msofer@users.sf.net> * generic/tclVar.c (TclCleanupVar): fix [Bug 1765225], thx Larry Virden. 2007-07-31 Miguel Sofer <msofer@users.sf.net> * doc/Hash.3: * generic/tclHash.c: * generic/tclObj.c: * generic/tclThreadStorage.c: (changes part of the patch below) Stop Tcl_CreateHashVar from resetting hPtr->clientData to NULL after calling the allocEntryProc for a custom table. * generic/tcl.h: * generic/tclBasic.c: * generic/tclCmdIL.c: * generic/tclCompCmds.c: * generic/tclCompile.c: * generic/tclCompile.h: * generic/tclExecute.c: * generic/tclHash.c: * generic/tclInt.decls: * generic/tclInt.h: * generic/tclIntDecls.h: * generic/tclLiteral.c: * generic/tclNamesp.c: * generic/tclObj.c: * generic/tclProc.c: * generic/tclThreadStorage.c: * generic/tclTrace.c: * generic/tclVar.c: VarReform [Patch 1750051] *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h) Extensions that access internals defined in tclInt.h and/or tclCompile.h may lose both binary and source compatibility. The relevant changes are: 1. 'struct Var' is completely changed, all acceses to its internals (either direct or via the TclSetVar* and TclIsVar* macros) will malfunction. Var flag values and semantics changed too. 2. 'struct Bytecode' has an additional field that has to be initialised to NULL 3. 'struct Namespace' is larger, as the varTable is now one pointer larger than a Tcl_HashTable. Direct access to its fields will malfunction. 4. 'struct CallFrame' grew one more field (the second such growth with respect to Tcl8.4). 5. API change for the functions TclFindCompiledLocal, TclDeleteVars and many internal functions in tclVar.c Additionally, direct access to variable hash tables via the standard Tcl_Hash* interface is to be considered as deprecated. It still works in the present version, but will be broken by further specialisation of these hash tables. This concerns especially the table of array elements in an array, as well as the varTable field in the Namespace struct. 2007-07-31 Miguel Sofer <msofer@users.sf.net> * unix/configure.in: allow use of 'inline' in Tcl sources. [Patch * win/configure.in: 1754128] * win/makefile.vc: Regen with autoconf 2.61 2007-07-31 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> * unix/tclUnixInit.c (TclpSetVariables): Use the thread-safe getpwuid replacement to fill the tcl_platform(user) field as it is not subject to spoofing. [Bug 681877] * unix/tclUnixCompat.c: Simplify the #ifdef logic. * unix/tclUnixChan.c (FileWatchProc): Fix test failures. 2007-07-30 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> * unix/tclUnixChan.c (SET_BITS, CLEAR_BITS): Added macros to make this file clearer. 2007-07-24 Miguel Sofer <msofer@users.sf.net> * generic/tclBasic.c (TEOvI, GetCommandSource): * generic/tclExecute.c (TEBC, TclGetSrcInfoForCmd): * generic/tclInt.h: * generic/tclTrace.c (TclCheck(Interp|Execution)Traces): Removed the need for TEBC to inspect the command before calling TEOvI, leveraging the TIP 280 infrastructure. Moved the generation of a correct nul-terminated command string away from the trace code, back into TEOvI/GetCommandSource. 2007-07-20 Andreas Kupries <andreask@activestate.com> * library/platform/platform.tcl: Fixed bug in 'platform::patterns' * library/platform/pkgIndex.tcl: where identifiers not matching * unix/Makefile.in: the special linux and solaris forms would not * win/Makefile.in: get 'tcl' as an acceptable platform added to * doc/platform.n: the result. Bumped package to version 1.0.3 and * doc/platform_shell.n: updated documentation and Makefiles. Also fixed bad version info in the documentation of platform::shell. 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. Also pulled the interp argument back out of ParseTokens() since we already had a parsePtr->interp to work with. 2007-07-18 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Removed unused arguments and variables 2007-07-17 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c (ParseExpr): While adding comments to explain the operations of ParseExpr(), made significant revisions to the code so it would be easier to explain, and in the process made the code simpler and clearer as well. 2007-07-15 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: More commentary. * tests/parseExpr.test: Several tests of syntax error messages to check that when expression substrings are truncated they leave visible the context relevant to the reported error. 2007-07-12 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Factored out, corrected, and commented common code for reporting syntax errors in LEAF elements. 2007-07-11 Miguel Sofer <msofer@users.sf.net> * generic/tclCompCmds.c (TclCompileWhileCmd): * generic/tclCompile.c (TclCompileScript): Corrected faulty avoidance of INST_START_CMD when the first opcode in a script is within a loop (as produced by 'while 1'), so that the corresponding command is properly counted. [Bug 1752146] 2007-07-11 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Added a "parseOnly" flag argument to ParseExpr() to indicate whether the caller is Tcl_ParseExpr(), with an end goal of filling a Tcl_Parse with Tcl_Tokens representing the parsed expression, or TclCompileExpr() with the goal of compiling and executing the expression. In the latter case, more aggressive conversion of QUOTED and BRACED lexeme to literals is done. In the former case, all such conversion is avoided, since Tcl_Token production would revert it anyway. This enables simplifications to the GenerateTokensForLiteral() routine as well. 2007-07-10 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Added a field for operator precedence to be stored directly in the parse tree. There's no memory cost to this addition, since that memory would have been lost to alignment issues anyway. Also, converted precedence definitions and lookup tables to use symbolic constants instead of raw number for improved readability, and continued extending/improving/correcting comments. Removed some unused counter variables. Renamed some variables for clarity and replaced some cryptic logic with more readable macros. 2007-07-09 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Revision so that the END lexeme never gets inserted into the parse tree. Later tree traversal never reaches it since its location in the tree is not variable. Starting and stopping with the START lexeme (node 0) is sufficient. Also finished lexeme code commentary. * generic/tclCompExpr.c: Added missing creation and return of the Tcl_Parse fields that indicate error conditions. [Bug 1749987] 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-07-05 Miguel Sofer <msofer@users.sf.net> * generic/tclNamesp.c (SetNsNameFromAny): * generic/tclObj.c (SetCmdNameFromAny): Avoid unnecessary ckfree/ckalloc when the old structs can be reused. 2007-07-04 Miguel Sofer <msofer@users.sf.net> * generic/tclNamesp.c: Fix case where a FQ cmd or ns was being cached * generic/tclObj.c: in a different interp, tkcon. [Bug 1747512] 2007-07-03 Don Porter <dgp@users.sourceforge.net> * generic/tclCompExpr.c: Revised #define values so that there is now more expansion room to define more BINARY operators. 2007-07-02 Donal K. Fellows <dkf@users.sf.net> * generic/tclHash.c (CompareStringKeys): Always use the strcmp() version; the operation is functionally equivalent, the speed is identical (up to measurement limitations), and yet the code is simpler. [FRQ 951168] 2007-07-02 Don Porter <dgp@users.sourceforge.net> * generic/tcl.h: Removed TCL_PRESERVE_BINARY_COMPATIBILITY and * generic/tclHash.c: any code enabled when it is set to 0. We will * generic/tclStubInit.c: always want to preserve binary compat of the structs that appear in the interface through the 8.* series of releases, so it's pointless to drag around this never-enabled alternative. * generic/tclIO.c: Removed dead code. * unix/tclUnixChan.c: * generic/tclCompExpr.c: Removed dead code, old implementations * generic/tclEvent.c: of expr parsing and compiling, including the * generic/tclInt.h: routine TclFinalizeCompilation(). 2007-06-30 Donal K. Fellows <dkf@users.sf.net> * generic/tclCmdIL.c (Tcl_LsortObjCmd): Plug a memory leak caused by a missing Tcl_DecrRefCount on an error path. [Bug 1717186] 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 Donal K. Fellows <dkf@users.sf.net> * doc/DictObj.3 (Tcl_DictObjDone): Improved documentation of this function to make it clearer how to use it. [Bug 1710795] 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). * generic/tclGetDate.y: use ckalloc/ckfree instead of malloc/free. * generic/tclDate.c: bison 1.875e * generic/tclBasic.c (TclEvalEx): fix warnings. * macosx/Tcl.xcodeproj/project.pbxproj: better support for renamed tcl * macosx/Tcl.xcodeproj/default.pbxuser: source dir; add 10.5 SDK build * macosx/Tcl-Common.xcconfig: config; remove tclMathOp.c. * macosx/README: document Tcl.xcodeproj changes. 2007-06-28 Don Porter <dgp@users.sourceforge.net> * generic/tclBasic.c: Removed dead code, including the * generic/tclExecute.c: entire file tclMathOp.c. * generic/tclInt.h: * generic/tclMathOp.c (removed): * generic/tclTestObj.c: * win/tclWinFile.c: * unix/Makefile.in: Updated to reflect deletion of tclMathOp.c. * win/Makefile.in: * win/makefile.bc: * win/makefile.vc: 2007-06-28 Pat Thoyts <patthoyts@users.sourceforge.net> * generic/tclBasic.c: Silence constness warnings for TclStackFree * generic/tclCompCmds.c: when building with msvc. * generic/tclFCmd.c: * generic/tclIOCmd.c: * generic/tclTrace.c: 2007-06-28 Miguel Sofer <msofer@users.sf.net> * generic/tclVar.c (UnsetVarStruct): fix possible segfault. 2007-06-27 Don Porter <dgp@users.sourceforge.net> * generic/tclTrace.c: Corrected broken trace reversal logic in * generic/tclTest.c: TclCheckInterpTraces that led to infinite loop * tests/trace.test: when multiple Tcl_CreateTrace traces were set and one of them did not fire due to level restrictions. [Bug 1743931] 2007-06-26 Don Porter <dgp@users.sourceforge.net> * generic/tclBasic.c (TclEvalEx): Moved some arrays from the C stack to the Tcl stack. 2007-06-26 Miguel Sofer <msofer@users.sf.net> * generic/tclVar.c (UnsetVarStruct): more streamlining. 2007-06-25 Don Porter <dgp@users.sourceforge.net> * generic/tclExecute.c: Safety checks to avoid crashes in the TclStack* routines when called with an incompletely initialized interp. [Bug 1743302] 2007-06-25 Miguel Sofer <msofer@users.sf.net> * generic/tclVar.c (UnsetVarStruct): fixing incomplete change, more streamlining. 2007-06-24 Miguel Sofer <msofer@users.sf.net> * generic/tclVar.c (TclDeleteCompiledLocalVars): removed inlining that ended up not really optimising (limited benchmarks). Now calling UnsetVarStruct (streamlined old code is #ifdef'ed out, in case better benchmarks do show a difference). * generic/tclVar.c (UnsetVarStruct): fixed a leak introduced in last commit. 2007-06-23 Miguel Sofer <msofer@users.sf.net> * generic/tclVar.c (UnsetVarStruct, TclDeleteVars): made the logic slightly clearer, eliminated some duplicated code. *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and Var struct users) The core never builds VAR_LINK variable to have traces. Such a "monster", should one exist, will now have its unset traces called *before* it is unlinked. 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-22 Don Porter <dgp@users.sourceforge.net> * generic/tclExecute.c: Revised TclStackRealloc() signature to better * generic/tclInt.h: parallel (and fall back on) Tcl_Realloc. * generic/tclNamesp.c (TclResetShadowesCmdRefs): Replaced ckrealloc based allocations with TclStackRealloc allocations. * generic/tclCmdIL.c: More conversions to use TclStackAlloc. * generic/tclScan.c: 2007-06-21 Don Porter <dgp@users.sourceforge.net> * generic/tclBasic.c: Move most instances of the Tcl_Parse struct * generic/tclCompExpr.c: off the C stack and onto the Tcl stack. This * generic/tclCompile.c: is a rather large struct (> 3kB). * generic/tclParse.c: 2007-06-21 Miguel Sofer <msofer@users.sf.net> * generic/tclBasic.c (TEOvI): Made sure that leave traces * generic/tclExecute.c (INST_INVOKE): that were created during * tests/trace.test (trace-36.2): execution of an originally untraced command do not fire [Bug 1740962], partial fix. 2007-06-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> * generic/tcl.h, generic/tclCompile.h, generic/tclCompile.c: Remove references in comments to obsolete {expand} notation. [Bug 1740859] 2007-06-20 Miguel Sofer <msofer@users.sf.net> * generic/tclVar.c: streamline namespace vars deletion: only compute the variable's full name if the variable is traced. 2007-06-20 Don Porter <dgp@users.sourceforge.net> * generic/tclInt.decls: Revised the interfaces of the routines * generic/tclExecute.c: TclStackAlloc and TclStackFree to make them easier for callers to use (or more precisely, harder to misuse). TclStackFree now takes a (void *) argument which is the pointer intended to be freed. TclStackFree will panic if that's not actually the memory the call will free. TSA/TSF also now tolerate receiving (interp == NULL), in which case they simply fall back to be calls to Tcl_Alloc/Tcl_Free. * generic/tclIntDecls.h: make genstubs * generic/tclBasic.c: Updated callers * generic/tclCmdAH.c: * generic/tclCmdIL.c: * generic/tclCompCmds.c: * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclFCmd.c: * generic/tclFileName.c: * generic/tclIOCmd.c: * generic/tclIndexObj.c: * generic/tclInterp.c: * generic/tclNamesp.c: * generic/tclProc.c: * generic/tclTrace.c: * unix/tclUnixPipe.c: 2007-06-20 Jeff Hobbs <jeffh@ActiveState.com> * tools/tcltk-man2html.tcl: revamp of html doc output to use CSS, standardized headers, subheaders, dictionary sorting of names. 2007-06-18 Jeff Hobbs <jeffh@ActiveState.com> * tools/tcltk-man2html.tcl: clean up copyright merging and output. clean up coding constructs. 2007-06-18 Miguel Sofer <msofer@users.sf.net> * generic/tclCmdIL.c (InfoFrameCmd): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): * generic/tclCompile.c (TclInitCompileEnv): * generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Moved the CmdFrame off the C stack and onto the Tcl stack. * generic/tclExecute.c (TEBC): Moved the CmdFrame off the C stack and onto the Tcl stack, between the catch and the execution stacks 2007-06-18 Don Porter <dgp@users.sourceforge.net> * generic/tclBasic.c (TclEvalEx,TclEvalObjEx): Moved the CmdFrame off the C stack and onto the Tcl stack. 2007-06-17 Donal K. Fellows <dkf@users.sf.net> * generic/tclProc.c (TclObjInterpProcCore): Minor fixes to make * generic/tclExecute.c (TclExecuteByteCode): compilation debugging builds work again. [Bug 1738542] 2007-06-16 Donal K. Fellows <dkf@users.sf.net> * generic/tclProc.c (TclObjInterpProcCore): Use switch instead of a chain of if's for a modest performance gain and a little more clarity. 2007-06-15 Miguel Sofer <msofer@users.sf.net> * generic/tclCompCmds.c: Simplified [variable] compiler and executor. * generic/tclExecute.c: Missed updates to "there is always a valid frame". * generic/tclCompile.c: reverted TclEvalObjvInternal and INST_INVOKE * generic/tclExecute.c: to essentially what they were previous to the * generic/tclBasic.c: commit of 2007-04-03 [Patch 1693802] and the subsequent optimisations, as they break the new trace tests described below. * generic/trace.test: added tests 36 to 38 for dynamic trace creation and addition. These tests expose a change in dynamics due to a recent round of optimisations. The "correct" behaviour is not described in docs nor TIP 62. 2007-06-14 Miguel Sofer <msofer@users.sf.net> * generic/tclInt.decls: Modif to the internals of TclObjInterpProc * generic/tclInt.h: to reduce stack consumption and improve task * generic/tclIntDecls.h: separation. Changes the interface of * generic/tclProc.c: TclObjInterpProcCore (patching TclOO simultaneously). * generic/tclProc.c (TclObjInterpProcCore): simplified obj management in wrongNumArgs calls. 2007-06-14 Don Porter <dgp@users.sourceforge.net> * generic/tclCompile.c: SetByteCodeFromAny() can no longer return any * generic/tclExecute.c: code other than TCL_OK, so remove code that * generic/tclProc.c: formerly handled exceptional codes. 2007-06-13 Miguel Sofer <msofer@users.sf.net> * generic/tclExecute.c (TclCompEvalObj): missed update to "there is always a valid frame". * generic/tclProc.c (TclObjInterpProcCore): call TEBC directly instead of going through TclCompEvalObj - no need to check the compilation's freshness, this has already been done. This improves speed and should also provide some relief to [Bug 1066755]. 2007-06-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> * generic/tclBasic.c (Tcl_CreateInterp): Turn the [info] command into * generic/tclCmdIL.c (TclInitInfoCmd): an ensemble, making it easier for third-party code to plug into. * generic/tclIndexObj.c (Tcl_WrongNumArgs): * generic/tclNamesp.c, generic/tclInt.h (tclEnsembleCmdType): Make Tcl_WrongNumArgs do replacement correctly with ensembles and other sorts of complex replacement strategies. 2007-06-11 Miguel Sofer <msofer@users.sf.net> * generic/tclExecute.c: comments added to explain iPtr->numLevels management. * generic/tclNamesp.c: tweaks to Tcl_GetCommandFromObj and * generic/tclObj.c: TclGetNamespaceFromObj; modified the usage of structs ResolvedCmdName and ResolvedNsname so that the field refNsPtr is NULL for fully qualified names. 2007-06-10 Miguel Sofer <msofer@users.sf.net> * generic/tclBasic.c: Further TEOvI split, creating a new * generic/tclCompile.h: TclEvalObjvKnownCommand() function to handle * generic/tclExecute.c: commands that are already known and are not traced. INST_INVOKE now calls into this function instead of inlining parts of TEOvI. Same perf, better isolation. ***POTENTIAL INCOMPAT*** There is a subtle issue with the timing of execution traces that is changed here - first change appeared in my commit of 2007-04-03 [Patch 1693802], which caused some divergence between compiled and non-compiled code. ***THIS CHANGE IS UNDER REVIEW*** 2007-06-10 Jeff Hobbs <jeffh@ActiveState.com> * README: updated links. [Bug 1715081] * generic/tclExecute.c (TclExecuteByteCode): restore support for INST_CALL_BUILTIN_FUNC1 and INST_CALL_FUNC1 bytecodes to support 8.4- precompiled sources (math functions). [Bug 1720895] 2007-06-10 Miguel Sofer <msofer@users.sf.net> * generic/tclInt.h: * generic/tclNamesp.c: * generic/tclObj.c: * generic/tclvar.c: new macros TclGetCurrentNamespace() and TclGetGlobalNamespace(); Tcl_GetCommandFromObj and TclGetNamespaceFromObj rewritten to make the logic clearer; slightly faster too. 2007-06-09 Miguel Sofer <msofer@users.sf.net> * generic/tclExecute.c (INST_INVOKE): isolated two vars to the small block where they are actually used. * generic/tclObj.c (Tcl_GetCommandFromObj): rewritten to make the logic clearer; slightly faster too. * generic/tclBasic.c: Split TEOv in two, by separating a processor for non-TCL_OK returns. Also split TEOvI in a full version that handles non-existing and traced commands, and a separate shorter version for the regular case. * generic/tclBasic.c: Moved the generation of command strings for * generic/tclTrace.c: traces: previously in Tcl_EvalObjv(), now in TclCheck[Interp|Execution]Traces(). Also insured that the strings are properly NUL terminated at the correct length. [Bug 1693986] ***POTENTIAL INCOMPATIBILITY in internal API*** The functions TclCheckInterpTraces() and TclCheckExecutionTraces() (in internal stubs) used to be noops if the command string was NULL, this is not true anymore: if the command string is NULL, they generate an appropriate string from (objc,objv) and use it to call the traces. The caller might as well not call them with a NULL string if he was expecting a noop. * generic/tclBasic.c: Extend usage of TclLimitReady() and * generic/tclExecute.c: (new) TclLimitExceeded() macros. * generic/tclInt.h: * generic/tclInterp.c: * generic/tclInt.h: New TclCleanupCommandMacro for core usage. * generic/tclBasic.c: * generic/tclExecute.c: * generic/tclObj.c: 2007-06-09 Daniel Steffen <das@users.sourceforge.net> * macosx/Tcl.xcodeproj/project.pbxproj: add new Tclsh-Info.plist.in. 2007-06-08 Donal K. Fellows <dkf@users.sf.net> * generic/tclCmdMZ.c (Tcl_StringObjCmd): Changed [string first] and * doc/string.n: [string last] so that they have clearer descriptions for those people who know the adage about needles and haystacks. This follows suggestions on comp.lang.tcl... 2007-06-06 Miguel Sofer <msofer@users.sf.net> * generic/tclParse.c: fix for uninit read. [Bug 1732414] 2007-06-06 Daniel Steffen <das@users.sourceforge.net> * macosx/Tcl.xcodeproj/project.pbxproj: add settings for Fix&Continue. * unix/configure.in (Darwin): add plist for tclsh; link the * unix/Makefile.in (Darwin): Tcl and tclsh plists into * macosx/Tclsh-Info.plist.in (new): their binaries in all cases. * macosx/Tcl-Common.xcconfig: * unix/tcl.m4 (Darwin): fix CF checks in fat 32&64bit builds. * unix/configure: autoconf-2.59 2007-06-05 Don Porter <dgp@users.sourceforge.net> * generic/tclBasic.c: Added interp flag value ERR_LEGACY_COPY to * generic/tclInt.h: control the timing with which the global * generic/tclNamesp.c: variables ::errorCode and ::errorInfo get * generic/tclProc.c: updated after an error. This keeps more * generic/tclResult.c: precise compatibility with Tcl 8.4. * tests/result.test (result-6.2): [Bug 1649062] 2007-06-05 Miguel Sofer <msofer@users.sf.net> * generic/tclInt.h: * generic/tclExecute.c: Tcl-stack reform, [Patch 1701202] 2007-06-03 Daniel Steffen <das@users.sourceforge.net> * unix/Makefile.in: add datarootdir to silence autoconf-2.6x warning. 2007-05-30 Don Porter <dgp@users.sourceforge.net> * generic/tclBasic.c: Removed code that dealt with * generic/tclCompile.c: TCL_TOKEN_EXPAND_WORD tokens representing * generic/tclCompile.h: expanded literal words. These sections were mostly in place to enable [info frame] to discover line information in expanded literals. Since the parser now generates a token for each post-expansion word referring to the right location in the original script string, [info frame] gets all the data it needs. * generic/tclInt.h: Revised the parser so that it never produces * generic/tclParse.c: TCL_TOKEN_EXPAND_WORD tokens when parsing an * tests/parse.test: expanded literal word; that is, something like {*}{x y z}. Instead, generate the series of TCL_TOKEN_SIMPLE_WORD tokens to represent the words that expansion of the literal string produces. [RFE 1725186] 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] 2007-05-18 Don Porter <dgp@users.sourceforge.net> * unix/configure: autoconf-2.59 (FC6 fork) * win/configure: * README: Bump version number to 8.5a7 * generic/tcl.h: * library/init.tcl: * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: * win/configure.in: * generic/tclParse.c: Disable and remove the ALLOW_EXPAND sections * tests/info.test: that continued to support the deprecated * tests/mathop.test: {expand} syntax. Updated the few remaining users of that syntax in the test suite. 2007-05-17 Donal K. Fellows <dkf@users.sf.net> * generic/tclExecute.c (TclLimitReady): Created a macro version of Tcl_LimitReady just for TEBC, to reduce the amount of times that the bytecode engine calls out to external functions on the critical path. * generic/tclInterp.c (Tcl_LimitReady): Added note to remind anyone doing maintenance that there is a macro version to update. 2007-05-17 Daniel Steffen <das@users.sourceforge.net> * generic/tcl.decls: workaround 'make checkstubs' failures from tclStubLib.c MODULE_SCOPE revert. [Bug 1716117] 2007-05-16 Joe English <jenglish@users.sourceforge.net> * generic/tclStubLib.c: Change Tcl_InitStubs(), tclStubsPtr, and the auxilliary stubs table pointers back to public visibility. These symbols need to be exported so that stub-enabled extensions may be statically linked into an extended tclsh or Big Wish with a dynamically-linked libtcl. [Bug 1716117] 2007-05-15 Don Porter <dgp@users.sourceforge.net> * win/configure: autoconf-2.59 (FC6 fork) * library/reg/pkgIndex.tcl: Bump to registry 1.2.1 to account for * win/configure.in: [Bug 1682211] fix. * win/makefile.bc: * win/tclWinReg.c: 2007-05-11 Pat Thoyts <patthoyts@users.sourceforge.net> * generic/tclInt.h: Removed TclEvalObjEx and TclGetSrcInfoForPc from tclInt.h now they are in the internal stubs table. 2007-05-09 Don Porter <dgp@users.sourceforge.net> * generic/tclInt.h: TclFinalizeThreadAlloc() is always defined, so make sure it is also always declared (with MODULE_SCOPE). 2007-05-09 Daniel Steffen <das@users.sourceforge.net> * generic/tclInt.h: fix warning when building threaded with -DPURIFY. * macosx/Tcl.xcodeproj/project.pbxproj: add 'DebugUnthreaded' & * macosx/Tcl.xcodeproj/default.pbxuser: 'DebugLeaks' targets and env var settings needed to run the 'leaks' tool. 2007-05-07 Don Porter <dgp@users.sourceforge.net> [Tcl Bug 1706140] * generic/tclLink.c (LinkTraceProc): Update Tcl_VarTraceProcs so * generic/tclNamesp.c (Error*Read): they call Tcl_InterpDeleted() * generic/tclTrace.c (Trace*Proc): for themselves, and do not * generic/tclUtil.c (TclPrecTraceProc): rely on (frequently buggy) setting of the TCL_INTERP_DESTROYED flag by the trace core. * generic/tclVar.c: Update callers of TclCallVarTraces to not pass in the TCL_INTERP_DESTROYED flag. Also apply filters so that public routines only pass documented flag values down to lower level routines * generic/tclTrace.c (TclCallVarTraces): The setting of the TCL_INTERP_DESTROYED flag is now done entirely within the TclCallVarTraces routine, the only place it can be done right. 2007-05-06 Donal K. Fellows <dkf@users.sf.net> * generic/tclInt.h (ExtraFrameInfo): Create a new mechanism for * generic/tclCmdIL.c (InfoFrameCmd): conveying what information needs to be added to the results of [info frame] to replace the hack that was there before. * generic/tclProc.c (Tcl_ApplyObjCmd): Use the new mechanism for the [apply] command, the only part of Tcl itself that needs it (so far). * generic/tclInt.decls (TclEvalObjEx, TclGetSrcInfoForPc): Expose these two functions through the internal stubs table, necessary for extensions that need to integrate deeply with TIP#280. 2007-05-05 Donal K. Fellows <dkf@users.sf.net> * win/tclWinFile.c (TclpGetUserHome): Squelch type-pun warnings in * win/tclWinInit.c (TclpSetVariables): Win-specific code not found * win/tclWinReg.c (AppendSystemError): during earlier work on Unix. 2007-05-04 Kevin B. Kenny <kennykb@acm.org> * generic/tclIO.c (TclFinalizeIOSubsystem): Added an initializer to silence a spurious gcc warning about use of an uninitialized variable. * tests/encoding.test: Modified so that encoding tests happen in a private namespace, to avoid polluting the global one. This problem was discovered when running the test suite '-singleproc 1 -skip exec.test' because the 'path' variable in encoding.test conflicted with the one in io.test. * tests/io.test: Made more of the working variables private to the namespace. 2007-05-02 Kevin B. Kenny <kennykb@acm.org> * generic/tclTest.c (SimpleMatchInDirectory): Corrected a refcount imbalance that affected the filesystem-[147]* tests in the test suite. Thanks to Don Porter for the patch. [Bug 1710707] * generic/tclPathObj.c (Tcl_FSJoinPath, Tcl_FSGetNormalizedPath): Corrected several memory leaks that caused refcount imbalances resulting in memory leaks on Windows. Thanks to Joe Mistachkin for the patch. 2007-05-01 Miguel Sofer <msofer@users.sf.net> * generic/tclVar.c (TclPtrSetVar): fixed leak whenever newvaluePtr had refCount 0 and was used for appending (but not lappending). Thanks to mistachkin and kbk. [Bug 1710710] 2007-05-01 Kevin B. Kenny <kennykb@acm.org> * generic/tclIO.c (DeleteChannelTable): Made changes so that DeleteChannelTable tries to close all open channels, not just the first. [Bug 1710285] * generic/tclThread.c (TclFinalizeSynchronization): Make sure that TSD blocks get freed on non-threaded builds. [Bug 1710825] * tests/utf.test (utf-25.1--utf-25.4): Modified tests to clean up after the 'testobj' extension to avoid spurious reports of memory leaks. 2007-05-01 Don Porter <dgp@users.sourceforge.net> * generic/tclCmdMZ.c (STR_MAP): When [string map] has a pure dict map, a missing Tcl_DictObjDone() call led to a memleak. [Bug 1710709] 2007-04-30 Daniel Steffen <das@users.sourceforge.net> * unix/Makefile.in: add 'tclsh' dependency to install targets that rely on tclsh, fixes parallel 'make install' from empty build dir. 2007-04-30 Andreas Kupries <andreask@gactivestate.com> * generic/tclIO.c (FixLevelCode): Corrected reference count mismanagement of newlevel, newcode. Changed to allocate the Tcl_Obj's as late as possible, and only when actually needed. [Bug 1705778, leak K29] 2007-04-30 Kevin B. Kenny <kennykb@acm.org> * generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Corrected reference count mismanagement on the name of the source file in the TIP 280 code. [Bug 1705778, leak K02 among other manifestations] **** TK **** 2007-09-20 Donal K. Fellows <dkf@users.sf.net> *** 8.5b1 TAGGED FOR RELEASE *** * generic/tkTextDisp.c (LayoutDLine): Only call callbacks that are * tests/textDisp.test (textDisp-32.3): not NULL. [Bug 1791052] 2007-09-20 Don Porter <dgp@users.sourceforge.net> * changes: updates for 8.5b1 release. 2007-09-19 Don Porter <dgp@users.sourceforge.net> * README: Bump version number to 8.5b1. * generic/tk.h: Merge from core-stabilizer-branch. * library/tk.tcl: Stabilizing toward 8.5b1 release now done * unix/configure.in: on the HEAD. core-stabilizer-branch is * unix/tk.spec: now suspended. * win/configure.in: 2007-09-19 Pat Thoyts <patthoyts@users.sourceforge.net> * generic/tkStubLib.: Replaced isdigit with internal implementation. 2007-09-18 Don Porter <dgp@users.sourceforge.net> * generic/tkStubLib.c: Remove C library calls from Tk_InitStubs() * win/makefile.vc: so that we don't need the C library linked in to libtkStub. 2007-09-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> * generic/tkImgGIF.c (FileReadGIF, StringReadGIF): Rewrite for greater clarity (more comments, saner code arrangement, etc.) 2007-09-18 Pat Thoyts <patthoyts@users.sourceforge.net> * tests/all.tcl: Made ttk/all.tcl be the same as tk's all.tcl and * tests/ttk/all.tcl: make use of file normalize (bugs noted by mjanssen and GPS with msys) 2007-09-17 Pat Thoyts <patthoyts@users.sourceforge.net> * win/makefile.vc: Add crt flags for tkStubLib now it uses C-library functions. 2007-09-17 Joe English <jenglish@users.sourceforge.net> * unix/tcl.m4: use '${CC} -shared' instead of 'ld -Bshareable' to build shared libraries on current NetBSDs. [#1749251] * unix/configure: regenerated (autoconf-2.59). 2007-09-17 Don Porter <dgp@users.sourceforge.net> * generic/tkConsole.c: Revised callers of Tcl_InitStubs() to account * generic/tkMain.c: for restored compatible support for the call * generic/tkWindow.c: Tcl_InitStubs(interp, TCL_VERSION, 1). Also revised Tcl_PkgRequire() call for Tcl so that, for example, a Tk library built against Tcl 8.5.1 headers will not refuse to [load] into a Tcl 8.5.0 interpreter. [Tcl Bug 1578344] * generic/tk.h: Revised Tk_InitStubs() to restore Tk 8.4 * generic/tkStubLib.c: source compatibility with callers of * generic/tkWindow.c: Tk_InitStubs(interp, TK_VERSION, 1). 2007-09-17 Joe English <jenglish@users.sourceforge.net> * library/ttk/combobox.tcl: Try to improve combobox appearance on OSX + Tk 8.5 [#1780286]. 2007-09-15 Daniel Steffen <das@users.sourceforge.net> * unix/tcl.m4: replace all direct references to compiler by ${CC} to enable CC overriding at configure & make time; run check for visibility "hidden" with all compilers; quoting fixes from TEA tcl.m4. (SunOS-5.1x): replace direct use of '/usr/ccs/bin/ld' in SHLIB_LD by 'cc' compiler driver. * unix/configure: autoconf-2.59 2007-09-14 Daniel Steffen <das@users.sourceforge.net> * macosx/Wish-Common.xcconfig: enable Tcl DTrace support. * macosx/Wish.xcodeproj/project.pbxproj: 2007-09-12 Andreas Kupries <andreask@activestate.com> * win/Makefile.in (install-binaries): Fixed missing brace in the * win/makefile.vc (install-binaries): generated package index file. Note: unix/Makefile.in is good. 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 Don Porter <dgp@users.sourceforge.net> * generic/tkConsole.c: Revised calls to Tcl_InitStubs() and * generic/tkMain.c: [package require Tcl] so that Tk Says What It * generic/tkWindow.c: Means using the new facilties of [package] in * library/tk.tcl: Tcl 8.5 about what version(s) of Tcl it is * unix/Makefile.in: willing to work with. [Bug 1578344] * win/Makefile.in: * win/makefile.vc: 2007-09-10 Jeff Hobbs <jeffh@ActiveState.com> * unix/README: typo corrections [Bug 1788682] 2007-09-10 Don Porter <dgp@users.sourceforge.net> * generic/tkConsole.c: Revise all Tcl_InitStubs() calls to restore * generic/tkMain.c: the traditional practice that a Tk shared * generic/tkWindow.c: library may [load] into a Tcl 8.5 interp at any patchlevel. This practice also matches the compile time checks of TCL_MAJOR_VERSION and TCL_MINOR_VERSION in tk.h. [Bug 1723622] 2007-09-06 Don Porter <dgp@users.sourceforge.net> * generic/tkWindow.c (Initialize): Moved common Tk initialization * generic/tkInitScript.h (removed): script out of tkInitScript.h * macosx/tkMacOSXInit.c: and multiple TkpInit() routines and * unix/Makefile.in: into the common Initialize() routine in * unix/tkUnixInit.c: generic code. Also removed constraint on * win/tkWinInit.c: ability to define a custom [tkInit] before calling Tk_Init(). Until now the custom [tkInit] had to be a proc. Now it can be any command. Removal of tkInitScript.h also fixes [Bug 1656283]. 2007-09-06 Daniel Steffen <das@users.sourceforge.net> * macosx/Wish.xcode/project.pbxproj: discontinue unmaintained support * macosx/Wish.xcode/default.pbxuser: for Xcode 1.5; replace by Xcode2 project for use on Tiger (with Wish.xcodeproj to be used on Leopard). * macosx/Wish.xcodeproj/project.pbxproj: updates for Xcode 2.5 and 3.0. * macosx/Wish.xcodeproj/default.pbxuser: * macosx/Wish.xcode/project.pbxproj: * macosx/Wish.xcode/default.pbxuser: * macosx/Wish-Common.xcconfig: * macosx/README: document project changes. 2007-09-04 Joe English <jenglish@users.sourceforge.net> * generic/tkTest.c: Fix for [Bug 1788019] "tkTest.c compiler warning". 2007-09-04 Don Porter <dgp@users.sourceforge.net> * unix/Makefile.in: It's unreliable to count on the release manager to remember to `make genstubs` before `make dist`. Let the Makefile remember the dependency for us. * unix/Makefile.in: Corrections to `make dist` dependencies to be sure that macosx/configure gets generated whenever it does not exist. 2007-09-03 Daniel Steffen <das@users.sourceforge.net> * generic/ttk/ttkInit.c (Ttk_Init): register ttk in package database to enable extension access to the ttkStubs table. * generic/ttk/ttkDecls.h: correct capitalization of ttk package name. 2007-08-28 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> Assorted documentation improvements. * doc/button.n: Added examples. * doc/checkbutton.n: Added example. * doc/console.n: Standardized section ordering. * doc/tk.n: Added "See also". * doc/ttk_combobox.n: Added keywords. 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-21 Pat Thoyts <patthoyts@users.sourceforge.net> * win/rules.vc: Synchronize with tcl rules.vc * tests/all.tcl: Fix the line-endings. 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.59 2007-08-01 Pat Thoyts <patthoyts@users.sourceforge.net> * win/tkWinDialog.c: Fix [Bug 1692927] (buffer length problems) * win/tkWinTest.c: Added 'testfindwindow' and 'testgetwindowinfo' and extended 'testwinevent' for WM_COMMAND support to enable testing native messagebox dialogs. * tests/winMsgbox.test: New Windows native messagebox tests. 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 Jeff Hobbs <jeffh@ActiveState.com> * unix/Makefile.in: clarify what the headers installed are, and add ttkTheme.h and ttkDecls.h to private headers (later public). 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-06 Joe English <jenglish@users.sourceforge.net> * library/ttk/aquaTheme.tcl: Set -anchor w for TMenubuttons. [Bug 1614540] 2007-07-04 Andreas Kupries <andreask@activestate.com> * macosx/tkMacOSXXStubs.c (DestroyImage): Fixed seg.fault in release of image data for images coming from XGetImage. Change committed by me for Daniel Steffen. See 2007-06-23 for the change which introduced the problem. 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 .xbm arrays always have LSBFirst bit order. * unix/configure.in: Fix flag used to weak-link libXss. * unix/configure: autoconf-2.59 * 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 respect it for ATSUI font drawing. * 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: * macosx/ttkMacOSXTheme.c: * macosx/Wish.xcodeproj/project.pbxproj: Improve support for renamed * macosx/Wish.xcodeproj/default.pbxuser: tcl and tk source dirs; add * macosx/Wish-Common.xcconfig: 10.5 SDK build config; remove tclMathOp.c. * macosx/README: Document Wish.xcodeproj changes. 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-20 Jeff Hobbs <jeffh@ActiveState.com> * library/ttk/ttk.tcl: Should require Tk before pseudo-providing tile 0.8.0. 2007-06-09 Joe English <jenglish@users.sourceforge.net> * generic/ttk/ttkPanedwindow.c, doc/ttk_panedwindow.n, * tests/ttk/panedwindow.test: Added -width and -height options. Added 'panes' method, return list of managed windows. 'sashpos' method is now documented as part of the public interface, and details clarified. Should be easier to set initial sash positions now. Alleviates [Bug 1659067]. 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 Joe English <jenglish@users.sourceforge.net> * generic/ttk/ttkManager.h, generic/ttk/ttkManager.c, * generic/ttk/ttkNotebook.c, generic/ttk/ttkPanedwindow.c, * generic/ttk/ttkFrame.c: Ttk_Manager API overhaul: + Ttk_Manager no longer responsible for managing slave records + Ttk_Manager structure now opaque + Ttk_Slave structure now private + Pass Ttk_Manager* to Tk_GeomMgr hooks instead of Ttk_Slave* * generic/ttk/ttkFrame.c: Simplified -labelwidget management. * doc/ttk_panedwindow.n, library/ttk/panedwindow.tcl: Changed documentation of ttk::panedwindow 'identify' command to match implementation. * generic/ttk/ttkNotebook.c, tests/ttk/notebook.test: BUGFIX: ttk::noteboook 'insert' command didn't correctly maintain current tab. 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: * macosx/tkMacOSXXStubs.c (Tk_GetUserInactiveTime): Remove superfluous CFRetain/CFRelease. * macosx/Wish-Release.xcconfig: Disable tktest release build stripping. * macosx/Wish.xcodeproj/project.pbxproj: Add new Tclsh-Info.plist.in. 2007-06-06 Daniel Steffen <das@users.sourceforge.net> * macosx/tkMacOSXInt.h: Use native debug message API when available. * macosx/Wish-Debug.xcconfig: * 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. * macosx/Wish.xcodeproj/project.pbxproj: Add settings for Fix&Continue. * 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.59 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-03 Daniel Steffen <das@users.sourceforge.net> * unix/Makefile.in: Add datarootdir to silence autoconf-2.6x warning. * macosx/Wish.xcodeproj/default.pbxuser: Add ttk tests. * macosx/tkMacOSXMenu.c: Add error checking; whitespace cleanup. * macosx/tkMacOSXDraw.c: Comment formatting fixes for Xcode 3.0 * macosx/tkMacOSXEmbed.c: * macosx/tkMacOSXEntry.c: * macosx/tkMacOSXFont.c: * macosx/tkMacOSXInit.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. * generic/tkTextDisp.c: 2007-05-30 Don Porter <dgp@users.sourceforge.net> * generic/tk.h: Correct placement of #include <tcl.h>. [Bug 1723812] 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. * 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: * macosx/Wish.xcodeproj/project.pbxproj: Delete references to removed * macosx/Wish.xcodeproj/default.pbxuser: ttk files. 2007-05-28 Benjamin Riefenstahl <b.riefenstahl@turtle-trading.net> * macosx/tkMacOSXFont.c (TkpMeasureCharsInContext): Fix short measures with flags=TK_WHOLE_WORDS|TK_AT_LEAST_ONE [Bug 1716141]. Make some casts unnecessary by changing variable types. 2007-05-25 Joe English <jenglish@users.sourceforge.net> * library/ttk/ttk.tcl: Omit ttk::dialog and dependencies. * library/ttk/dialog.tcl, library/ttk/icons.tcl, * library/ttk/keynav.tcl: Removed. * tests/ttk/misc.test: Removed. * doc/ttk_dialog.tcl: Removed. 2007-05-25 Donal K. Fellows <dkf@users.sf.net> * doc/canvas.n: Fixed documentation of default -joinstyle option values for line and polygon items. [Bug 1725782] 2007-05-18 Joe English <jenglish@users.sourceforge.net> * generic/ttk/ttkEntry.c(EntrySetValue): Ensure that widget is in a consistent state before setting the linked -textvariable. Previously, it was possible for [$e index insert] to point past the end of the string, leading to heap corruption. [Bug 1721532] * tests/ttk/entry.test(entry-9.1): Add test case for the above. 2007-05-18 Don Porter <dgp@users.sourceforge.net> * unix/configure: autoconf-2.59 (FC6 fork) * win/configure: * README: Bump version number to 8.5a7 * generic/tk.h: * library/tk.tcl: * unix/configure.in: * unix/tk.spec: * win/configure.in: * tests/ttk/treetags.test: Another bit of test suite SCIM-tolerance. [Bug 1609316] 2007-05-17 Daniel Steffen <das@users.sourceforge.net> * generic/tk.decls: Workaround 'make checkstubs' failures from tkStubLib.c MODULE_SCOPE revert. [Bug 1716117] * macosx/Wish.xcodeproj/project.pbxproj: Add tkOldTest.c and remove tkStubImg.c. 2007-05-16 Joe English <jenglish@users.sourceforge.net> * generic/tkStubLib.c: Change Tk_InitStubs(), tkStubsPtr, and the auxilliary stubs table pointers back to public visibility. See [Bug 1716117] for details. Removed TCL_STORAGE_CLASS monkey business, as it had no effect. 2007-05-16 Don Porter <dgp@users.sourceforge.net> * library/choosedir.tcl: Removed uses of obsolete {expand} * library/comdlg.tcl: syntax; replaced with the now * library/tk.tcl: approved {*}. [Bug 1710633] * tests/canvImg.test: * tests/imgPhoto.test: * tests/bind.test: Make test suite more SCIM-tolerant. [Bug 1609316] 2007-05-16 Pat Thoyts <patthoyts@users.sourceforge.net> * win/makefile.vc: Test ttk widgets. 2007-05-15 Joe English <jenglish@users.sourceforge.net> * unix/tkUnixRFont.c: Fix crash introduced by previous fix exposed under newer fontconfig libraries [Bug 1717830] again. 2007-05-15 Don Porter <dgp@users.sourceforge.net> * generic/tkGrid.c: Stop crash due to list intrep shimmer [Bug 1677608] 2007-05-15 Joe English <jenglish@users.sourceforge.net> * unix/tkUnixRFont.c: Fix various memory leaks. [Bug 1717830], [Bug 800149] 2007-05-14 Don Porter <dgp@users.sourceforge.net> [Tk Bug 1712081] * unix/Makefile.in: Updates to account for new and deleted files * win/Makefile.in: tkStubImg.c and tkOldTest.c. * win/makefile.bc: * win/makefile.vc: * generic/tkOldTest.c (new): New file used to create testing * generic/tkTest.c: commands for testing various Tk * tests/constraints.tcl: legacy interfaces where a separate * tests/image.test: compilation unit is needed in order to #define suitable macros during compilation. Only the effect of USE_OLD_IMAGE on Tk_CreateImageType() is currently tested, but more similar testing commands can be added to this same file. New constraint defined to detect presence of the image type provided by the new testing code, and a few tests added to exercise it. Having USE_OLD_IMAGE support tested by the default test suite should reduce chance of a recurrence of this bug. * doc/CrtImgType.3: Revised docs to better indicate the legacy * doc/CrtPhImgFmt.3: nature of the interfaces supported by USE_OLD_IMAGE. * generic/tkDecls.h: make genstubs * generic/tkStubInit.c: * generic/tk.decls: Reworked USE_OLD_IMAGE support to use * generic/tk.h: the same support mechanisms both with * generic/tkStubImg.c (deleted):and without a stub-enabled build. In each case, route the legacy calls to Tk_CreateImageType and Tk_CreatePhotoImageFormat through the Tk_CreateOldImageType and Tk_CreateOldPhotoImageFormat routines. Add those routines to the public stub table so they're available to a stub-enabled extension. Remove the definition of Tk_InitImageArgs() and use a macro to convert any calls to it in source code into a comment. * generic/tkImage.c: Removed the MODULE_SCOPE declarations that * generic/tkImgPhoto.c: broke USE_OLD_IMAGE support. 2007-05-11 Pat Thoyts <patthoyts@users.sourceforge.net> * tests/winButton.test: Avoid font dependencies in results. * generic/tkFont.c: propagate error from TkDeleteNamedFont. [Bug 1716613] 2007-05-09 Daniel Steffen <das@users.sourceforge.net> * generic/tkFileFilter.c (AddClause): OSType endianness fixes. * library/palette.tcl (tk::RecolorTree): Handle color options with empty value, fixes error due to emtpy -selectforeground (reported on tcl-mac by Russel E. Owen). * macosx/tkMacOSXWindowEvent.c: Ensure window is brought to the front * macosx/tkMacOSXMouseEvent.c: at the start of a window drag (except * macosx/tkMacOSXInt.h: when cmd key is down); formatting and whitespace fixes. * macosx/tkMacOSXDialog.c (Tk_GetSaveFileObjCmd): Add -filetypes option processing (fixes fileDialog-0.1, fileDialog-0.2 failures). * macosx/tkMacOSXEmbed.c (TkpMakeWindow, TkpUseWindow): Fix sending of Visibility event for embedded windows (fixes frame-3.9 hang). * macosx/tkMacOSXScrlbr.c (ScrollbarBindProc): Fix testsuite * macosx/tkMacOSXSubwindows.c (TkMacOSXUpdateClipRgn): crashes by adding sanity checks. * macosx/Wish.xcodeproj/project.pbxproj: Add 'DebugUnthreaded' & * macosx/Wish.xcodeproj/default.pbxuser: 'DebugLeaks' targets and env var settings needed to run the 'leaks' tool. * macosx/tkMacOSXButton.c: Fix debug msg typo. * tests/constraints.tcl: Ensure 'nonUnixUserInteraction' constraint is set for aqua. * tests/choosedir.test: Add 'notAqua' constraints to X11-only tests; * tests/clrpick.test: add 'nonUnixUserInteraction' to 'unix' tests * tests/menuDraw.test: requiring interaction on aqua. * tests/unixMenu.test: * tests/unixWm.test: * tests/winMenu.test: 2007-05-07 Joe English <jenglish@users.sourceforge.net> * unix/tkUnixRFont.c: Properly cast sentinel arguments to variadic function (fixes "warning: missing sentinel in function call", [Bug 1712001]) 2007-05-04 Pat Thoyts <patthoyts@users.sourceforge.net> * generic/tkFont.c: TIP #145 implementation - * generic/tkFont.h: Enhanced font handling. * win/tkWinDefault.h: * win/tkWinFont.c: * win/tkWinInt.h: * win/tkWinWm.c: * library/demos/widget: * library/ttk/fonts.tcl: 2007-05-04 Donal K. Fellows <donal.k.fellows@man.ac.uk> * doc/ttk_treeview.n, doc/ttk_panedwindow.n, doc/ttk_dialog.n: * doc/ttk_checkbutton.n, doc/tk.n, doc/menu.n, doc/font.n: * doc/canvas.n: Spelling fixes. [Bug 1686210] 2007-05-03 Donal K. Fellows <donal.k.fellows@man.ac.uk> * generic/tkStubLib.c (Tk_InitStubs): * generic/ttk/ttkLabel.c (LabelSetup): * unix/tkUnixSelect.c (ConvertSelection): * unix/tkUnixEvent.c (TkUnixDoOneXEvent): * generic/tkConfig.c (Tk_RestoreSavedOptions): * generic/tkCanvPs.c (TkCanvPostscriptCmd): * generic/tkOption.c (GetDefaultOptions): * unix/tkUnixRFont.c (TkpGetFontAttrsForChar, InitFont) (TkpGetFontFamilies, TkpGetSubFonts): * unix/tkUnixSend.c (TkpTestsendCmd, RegOpen): Squelch warnings from GCC type aliasing. [Bug 1711985 and others] 2007-04-29 Daniel Steffen <das@users.sourceforge.net> * unix/configure.in: Fix for default case in tk debug build detection. * unix/configure: autoconf-2.59 2007-04-27 Joe English <jenglish@users.sourceforge.net> * generic/ttk/ttkTreeview.c(TagOptionSpecs): Use TK_OPTION_STRING instead of TK_OPTION_FONT to avoid resource leak in tag management. 2007-04-26 Joe English <jenglish@users.sourceforge.net> * macosx/ttkMacOSXTheme.c: Merged OFFSET_RECT processing into BoxToRect(); factored out PatternOrigin; resynchronized with Tile codebase.