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.
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use