From 30a5873310b4f87f537fe45e45435558044ddce1 Mon Sep 17 00:00:00 2001 From: dkf Date: Tue, 18 Oct 2005 13:47:57 +0000 Subject: Split off changelog entries for 2004 Fixed erroneous dates on some 2005 entries --- ChangeLog | 4788 +------------------------------------------------------- ChangeLog.2004 | 4622 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 4662 insertions(+), 4748 deletions(-) create mode 100644 ChangeLog.2004 diff --git a/ChangeLog b/ChangeLog index 3618f4f..9701ae6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,21 +11,20 @@ 2005-10-14 Zoran Vasiljevic - * generic/tclIO.c (Tcl_ClearChannelHandlers): removed - change dated 2005-10-04 (see below). - Look into Bug# 1323992 for detailed discussion. + * generic/tclIO.c (Tcl_ClearChannelHandlers): removed change dated + 2005-10-04 (see below). Look into Bug# 1323992 for detailed + discussion. - * generic/tcl.h: Fixed bad definition of CRTEXPORT - which should have been CRTIMPORT rather. This broke - compilation of generic/tclMain.c and was probably - introduced by mistage while applying the fix for the - Tcl Bug# 1256937 below. + * generic/tcl.h: Fixed bad definition of CRTEXPORT which should + have been CRTIMPORT rather. This broke compilation of + generic/tclMain.c and was probably introduced by mistage while + applying the fix for the Tcl Bug# 1256937 below. 2005-10-14 Kevin Kenny * generic/tclExecute.c (TclIncrObj, TclExecuteByteCode): Tidied up a couple of infelicitous do {...} while(0) constructs. - + 2005-10-14 Pat Thoyts * generic/tcl.h: Fix for bug #1256937 - correctly decorate @@ -38,9 +37,9 @@ 2005-10-13 Zoran Vasiljevic - * generic/tclIO.c (Tcl_ClearChannelHandlers): temporary - ifdef TCL_THREADS changes done to de-activate pending - event processing when channel is being closed/cutted. + * generic/tclIO.c (Tcl_ClearChannelHandlers): temporary ifdef + TCL_THREADS changes done to de-activate pending event processing + when channel is being closed/cutted. 2005-10-13 Don Porter @@ -237,11 +236,11 @@ * tools/loadICU.tcl: Changed the file names of message catalogs to lowercase. * tools/makeTestCases.tcl: - * library/tzdata/*: Olson's tzdata2005n.tar.gz. + * library/tzdata/*: Olson's tzdata2005n.tar.gz. Includes new DST rules for USA and a number of changes to other locales. * tests/clock.test: Regenerated for new US DST rules. - + 2005-09-30 Don Porter * generic/tclMain.c: Separate encoding conversion of command line @@ -259,7 +258,7 @@ * doc/mathfunc.n: implementation for TIP #255, expr min/max * library/init.tcl: - * tests/info.test, tests/expr-old.test: + * tests/info.test, tests/expr-old.test: 2005-09-27 Don Porter @@ -278,7 +277,7 @@ 2005-09-26 Kevin Kenny [kennykb-numerics-branch] Merge updates from HEAD. - + 2005-09-26 Kevin Kenny * libtommath/: Updated to release 0.36. @@ -286,7 +285,7 @@ * generic/tclTomMathInterface.h: Added ten missing aliases for mp_* functions to avoid namespace pollution in Tcl's exported symbols. [Bug 1263012] - + 2005-09-23 Don Porter [kennykb-numerics-branch] @@ -296,12 +295,12 @@ * win/makefile.vc: will not be quite so large. [Bug 1299153]. * generic/tclStrToD.c: Fixed memory leak. [Bug 1299803]. - * generic/tclObj.c: + * generic/tclObj.c: 2005-09-20 Don Porter [kennykb-numerics-branch] - + * generic/tclExecute.c: Revise TclIncrObj() to call Tcl_GetBignumAndClearObj. @@ -418,7 +417,7 @@ [kennykb-numerics-branch] Merge updates from HEAD. - * generic/tclCmdAH.c: Added support for the "ll" width + * generic/tclCmdAH.c: Added support for the "ll" width * generic/tclStringObj.c: specifier to [format]. * generic/tclStringObj.c (TclAppendFormattedObjs): Bug fix: @@ -672,7 +671,7 @@ * tests/binary.test (binary-65.*): Added missing 'ieeeFloatingPoint' to large/small significand tests. * tests/expr.test (expr-45.*) Added missing braces around expressions. - + 2005-08-24 Don Porter [kennykb-numerics-branch] @@ -680,7 +679,7 @@ * generic/tclBasic.c: Revised implementation of the ceil(.) and * generic/tclInt.h: floor(.) math functions in light of the * generic/tclStrToD.c: revised comparison operators, so that it - is always true that ($x <= ceil($x)) and ($x >= floor($x)). The + is always true that ($x <= ceil($x)) and ($x >= floor($x)). The simple approach of "convert to double and call ceil() or floor()" could not guarantee that. @@ -701,7 +700,7 @@ 2005-08-23 Kevin Kenny [kennykb-numerics-branch] - + * generic/tclCmdMZ.c (Tcl_StringObjCmd): * generic/tclInt.h: * generic/tclObj.c (Tcl_GetBooleanFromObj, SetDoubleFromAny, @@ -721,9 +720,9 @@ largest significands. Added test cases to improve test coverage in generic/tclStrToD.c. Added test cases for 0b notation (TIP #114). Removed TclStrToD, and the static functions that it calls, - which are now dead code (TclParseNumber now does all input + which are now dead code (TclParseNumber now does all input floating-point conversions.) - + 2005-08-23 Don Porter [kennykb-numerics-branch] @@ -766,7 +765,7 @@ [kennykb-numerics-branch] * generic/tclInt.h: New ACCEPT_NAN macro to mark code that supports - * generic/tclCmdAH.c: or disables accepting of the NaN value at + * generic/tclCmdAH.c: or disables accepting of the NaN value at * generic/tclExecute.c: various points. * generic/tclLink.c: @@ -828,7 +827,7 @@ ExprIntFunc, ExprWideFunc, and ExprRoundFunc bignum-aware. Revised ExprSrandFunc error message. - * generic/tclProc.c: Wrapped a few tclWideIntType uses in + * generic/tclProc.c: Wrapped a few tclWideIntType uses in * generic/tclCmdMZ.c: #ifndef NO_WIDE_TYPE. * generic/tclInt.h: #define'd NO_WIDE_TYPE. @@ -879,17 +878,17 @@ * generic/tclBasic.c (Tcl_Expr{Long,Double}{,Obj}): Updated to * generic/tclTest.c: deal with - * tests/expr-old.test: bignums (well, + * tests/expr-old.test: bignums (well, * tests/expr.test: mostly). Added a missing "errno=0;" in ExprUnaryFunc so that spurious - error returns aren't detected. + error returns aren't detected. Added test cases for Tcl_Expr* and Tcl_Expr*Obj because there was very poor test coverage in those areas. * generic/tclParseExpr.c: Reworked parsing of numbers to call TclParseNumber rather than trying to do things locally. * generic/tclStrToD.c: Corrected a comment. Changed so that *endPtrPtr does not include any trailing whitespace. - + 2005-08-17 Don Porter [kennykb-numerics-branch] @@ -973,7 +972,7 @@ as result of INST_DICT_NEXT, INST_LAND, and INST_LOR. Separate INST_LNOT from INST_UMINUS and simplify. -2004-08-12 Kevin Kenny +2005-08-12 Kevin Kenny * generic/tclClock.c (MktimeObjCmd): * library/clock.tcl (GetSystemTimeZone, LoadZoneinfoFile, @@ -983,7 +982,7 @@ Tcl's time can track system time on Linux even if TZ is not set. Changed ::tcl::clock::Mktime to check for failure, and added a test case that mimics failure but is really success. - + 2005-08-11 Don Porter [kennykb-numerics-branch] @@ -1001,7 +1000,7 @@ * generic/tclBasic.c (ExprAbsFunc): First pass making [expr abs(.)] bignum-aware. -2004-08-11 Kevin Kenny +2005-08-11 Kevin Kenny * generic/tclEvent.c: Eliminated the USE_THREAD_STORAGE * generic/tclInt.h: option (which is on in every build @@ -1016,7 +1015,7 @@ * win/rules.vc: just a little bit cleaner.) * win/tcl.m4: * win/tclWinThrd.c: - + 2005-08-10 Don Porter [kennykb-numerics-branch] @@ -1303,12 +1302,12 @@ * generic/tclStrToD.c (TclParseNumber, etc.): * tclTomMathInterface.c (TclBNInitBignumFromWideUInt): * tests/obj.test (obj-1.1, obj-2.2, obj-3.1, obj-3.2): - + Initial attempt at an implementation of TIP #249, comprising a unified parser and modifications to the Tcl_Get*FromObj routines to use it. Further integration of the parser is necessary and planned. - + 2005-07-12 Donal K. Fellows * doc/lsearch.n: Clarify documentation of -exact option; wording was @@ -1373,7 +1372,7 @@ wide int type. Add tests that parse the smallest/largest long int and wide int values. -2004-06-24 Kevin Kenny +2005-06-24 Kevin Kenny * generic/tclEvent.c (Tcl_Finalize): * generic/tclInt.h: @@ -1862,13 +1861,13 @@ 2005-05-12 Kevin Kenny * doc/mathfunc.n: Changed NAME line to match the name of the page. - + 2005-05-11 Kevin Kenny [kennykb-numerics-branch] Resynchronized with the HEAD; at this checkpoint [-rkennykb-numerics-branch-20050511], the HEAD and kennykb-numerics-branch contain identical code. - + 2005-05-11 Kevin Kenny * generic/tclStrToD.c (TclStrToD, RefineResult, ParseNaN): @@ -2308,7 +2307,7 @@ binary search could be used within it. Improves startup time a bit more on some systems. -2004-04-13 Kevin B. Kenny +2005-04-13 Kevin B. Kenny * library/clock.n: Added a missing '--' on several [switch] commands to improve performance of [clock format] and related @@ -3131,4715 +3130,8 @@ * tests/fCmd.test (fCmd-18.10): Added notNetworkFilesystem constraint. [Bug 456665] -2004-12-29 Jeff Hobbs - - * win/tcl.m4, win/configure: update MSVC CFLAGS_OPT to -O2, remove - -Gs (included in -O2) and -GD (outdated). Use "link -lib" instead - of "lib" binary and remove -YX for MSVC7 portability. Add - -fomit-frame-pointer for gcc OPT compiles. [Bug 1092952, 1091967] - Align LIBS_GUI with Tk head needs. - -2004-12-29 Kevin B. Kenny - - * generic/tclDate.c: Regen - * generic/tclGetDate.y (TclDatelex): - Fixed a problem where a four-digit group with >=2 - leading zeroes appeared to be a two-digit group, leading to - misinterpreting the time 0012 as 1200. [Bug # 1090413] - * library/clock.tcl: Added code to interpret correctly months - outside the range 01-12 as reduced modulo 12 - with a corresponding adjustment to the year. - [Bug 1092789] - * tests/clock.test: Added regression test cases for the above two - bugs. - * unix/Makefile.in: Added --no-lines to the 'bison' command line - * win/Makefile.in: to help constrain the number of diffs in a cvs - checkin. - -2004-12-24 Miguel Sofer - - * generic/tclCompile.c: - * generic/tclCompile.h: - * generic/tclExecute.c: - * generic/tclInt.h: - * generic/tclLiteral.c: - * generic/tclProc.c: - Avoid sharing cmdName literals accross namespaces, and generalise - usage of the TclRegisterNewLiteral macro [Patch 1090905] - -2004-12-20 Miguel Sofer - - * generic/tclCompile.c: moved TclInitCompiledLocals to tclProc.c - * generic/tclProc.c: new static InitCompiledLocals to allow for a - single pass over the proc's arguments at proc load time (instead of - two as previously). TclObjInterpProc() now allocates the - compiledLocals on the tcl execution stack, using the new - TclStackAlloc/Free functions. - -2004-12-16 Donal K. Fellows - - * generic/tclInterp.c (Tcl_LimitSetTime, TimeLimitCallback): - (TclLimitRemoveAllHandlers, TclInitLimitSupport): Set a timer - event to trigger when the time limit runs out. All the time limit - actually does is check to see if the time limit has been exceeded, - but this is enough to fix [Bug 1085023]. - * generic/tclInt.h (struct Interp): Added a field to hold the token - for the timer event handler associated with the current time limit. - * generic/tclEvent.c (Tcl_UpdateObjCmd, Tcl_VwaitObjCmd): Add - error message when limit exceeded. - * tests/interp.test (interp-34.[89]): Check that time limits - handle the two cases reported in [Bug 1085023] - - * generic/tclTimer.c (TclCreateAbsoluteTimerHandler): New internal - function that allows setting a timer handler that will be - triggered at (or after) a specific time instead of at some number - of milliseconds in the future. This is a candidate for future - exposure via a TIP. - -2004-12-15 Miguel Sofer - - * generic/tclBasic.c: - * generic/tclExecute.c: - * generic/tclInt.decls: - * generic/tclIntDecls.h: - * generic/tclNamesp.c: - * generic/tclProc.c: - * generic/tclStubInit.c: - * generic/tclTest.c: Added two new functions to allocate memory - from the execution stack (TclStackAlloc, TclStackFree). Added - functions TclPushStackFrame and TclPopStackFrame that do the work - of Tcl_PushCallFrame and Tcl_PopCallFrame, but using frames - allocated in the execution stack - i.e., heap instead of - C-stack. The core uses these two new functions exclusively; the - old ones remain for backwards compat, as at least two popular - extensions (itcl, xotcl) are known to use them. - -2004-12-14 Miguel Sofer - - * generic/tclCmdIL.c: - * generic/tclInt.h: - * generic/tclProc.c: - * generic/tclVar.c: changing the isProcCallFrame field of the - CallFrame struct from a 0/1 field to flags. Should be perfectly - backwards compatible. - -2004-12-14 Don Porter - - * unix/configure.in: Added special processing to remove "$U" - from libraries in the LIBOBJS value. This is an auto-make-ism - we need to avoid. [Bug 1081541] - - * unix/configure: autoconf-2.57 - -2004-12-13 Don Porter - - * generic/tcl.h: Restored extern "C" guards so that C++ code - sees function pointer typedef linkage consistent with earlier Tcl - releases. [Bug 1082349]. - - * generic/tclEncoding.c: Plugged some memory leaks. Thanks to - * generic/tclUtil.c: Rolf Ade for reports and testing [Bug 1083082] - -2004-12-13 Kevin B. Kenny - - * doc/clock.n: Clarify that the [clock scan] command does not - accept the full range of ISO8601 point-in-time formats - [Bug 1075433]. - -2004-12-12 Miguel Sofer - - * generic/tclVar.c (TclArrayObjCmd - ARRAY_NAMES): leaking an - object [Bug 1084111] - thanks to Rolf Ade. - -2004-12-12 Miguel Sofer - - * generic/tclObj.c (TclSetCmdNameObj): special handling for fully - qualified command names (as in fix [Patch 456668]). - -2004-12-11 Miguel Sofer - - * generic/tclInt.h: - * generic/tclNamesp.c: converting the static function - GetNamespaceFromObj() to MODULE_SCOPE TclGetNamespaceFromObj(). - -2004-12-10 Donal K. Fellows - - * tools/tcl.wse.in, unix/tcl.spec, win/README.binary, README: - * win/configure.in, unix/configure.in, generic/tcl.h: - Bumped version number to 8.5a3 to distinguish HEAD of CVS - development from the recent 8.5a2 release. - -2004-12-10 Miguel Sofer - - * generic/tclCompile.c (TclInitCompiledLocals): - * generic/tclCompile.h: - * generic/tclInt.h: - * generic/tclProc.c (TclObjInterpProc, TclCreateProc): optimised - loops that initialise a proc's arguments and compiled local - variables, removing tests from inner loops. - -2004-12-10 Donal K. Fellows - - * generic/tclInt.h: Move ensemble API decls here from tclNamesp.c - -2004-12-09 Donal K. Fellows - - * generic/tclNamesp.c (TclMakeEnsembleCmd, TclSetEnsemble*) - (TclSetEnsemble*, TclFindEnsemble): Build an internal API for - creating and manipulating ensembles; they can be deleted using the - normal command-deletion API. - - * doc/Async.3: Reword for better grammar, better nroff and get the - flag name right. (Reported by David Welton.) - -2004-12-07 Don Porter - - * tests/unixInit.test (2.1-4): Added constraints so that when a - value of TCL_LIBRARY is required for process initialization, we skip - the tests that mess with that value. - -2004-12-07 Donal K. Fellows - - *** 8.5a2 TAGGED FOR RELEASE *** - - * unix/Makefile.in: add library/{tzdata,msgs} to dist target (kbk) - - * doc/foreach.n: Adjust tabs to be friendlier to some HTML - converters. [Bug 1078760] - -2004-12-06 Jeff Hobbs - - * unix/tclUnixNotfy.c (NotifierThreadProc): init numFdBits - [Bug 1079286] - - * doc/error.n, doc/SaveResult.3, doc/Thread.3: minor nroff typos - -2004-12-06 Don Porter - - * tests/safe.test: Trim auto_path to improve performance [1080039] - - * tests/msgcat.test: makeFile/removeFile cleanup [1079117] - -2004-12-04 Don Porter - - * generic/tclEncoding.c: Different fix for [Bug 1077005]. - * generic/tclEvent.c: Broke apart TclpSetInitialEncodings() on - * generic/tclInt.h: Windows into TclpSetInterfaces(), that is - * unix/tclUnixInit.c: fundamentally essential, and the initialization - * win/tclWinInit.c: of the system encoding, which is not. Made - the TclpSetInterfaces call part of TclInitSubsystems so it cannot be - overlooked. - -2004-12-03 Jeff Hobbs - - * changes: updated for 8.5a2 release - -2004-12-02 Don Porter - - * generic/tclUtil.c (TclSetProcessGlobalValue): Handle the case - where a ProcessGlobalValue might be assigned to itself. - - * generic/tclEncoding.c (MakeFileMap): Correct refcounting errors - managing values returned by TclPathPart (with refCount of 1!) that - led to a memory leak. [Bug 1077474]. - -2004-12-02 Vince Darley - - * generic/tclPathObj.c: fix and new tests for [Bug 1074671] to - * tests/fileSystem.test: ensure tilde paths are not returned - specially by 'glob'. - -2004-12-02 Kevin B. Kenny - - * win/Makefile.in: Added a 'sed' in the setting of ROOT_DIR_NATIVE - to compensate for a bug in cygpath (at least version 1.36) that - leaves a trailing backslash on the end of the converted path. - -2004-12-02 Donal K. Fellows - - * generic/tclInterp.c (Alias,Target,Master): Rewrote these so that - the aliases that refer to an interpreter are stored in a list and - not a hashtable (which was only ever a convenience, and forced the - use of a global mutex to generate keys!) [FRQ 1077210] - * generic/tclNamesp.c (numNsCreated): Moved into thread-local - storage to remove a global mutex. [FRQ 1077210] - -2004-12-01 Don Porter - - * generic/tclUtil.c (TclGetProcessGlobalValue): Narrowed the scope - of mutex locks. - - * generic/tclUtil.c: Updated Tcl_GetNameOfExecutable() to - * generic/tclEncoding.c: make use of a ProcessGlobalValue for - * generic/tclEvent.c: storing the executable name. - Added internal routines Tcl(Get|Set)ObjNameOfExecutable() to access - that storage in Tcl_Obj, rather than string format. - - * unix/tclUnixFile.c: Rewrote TclpFindExecutable() to use - * win/tclWinFile.c: TclSetObjNameOfExecutable to store the - executable name it computes. - - * generic/tclInt.h: Added internal stub entries for - * generic/tclInt.decls: TclpFindExecutable and - Tcl(Get|Set)ObjNameOfExecutable. - - * generic/tclIntDecls.h: make genstubs - * generic/tclStubInit.c: - - * generic/tclCmdIL.c: Retrieve executable name in Tcl_Obj form - * win/tclWinPipe.c: instead of string form. - - * unix/tclUnixTest.c: Update [testfindexecutable] command to use - new internal interfaces. - - * generic/tclEncoding.c: Moved TclpSetInitialEncodings() - call from Tcl_FindExecutable() into TclInitEncodingSubsystem(). - This is important on Windows where it establishes whether the - "ascii" or "unicode" set of system routines will be used, and - that needs to be done earlier to support filesystem operations. - [Bug 1077005] - -2004-12-01 Donal K. Fellows - - * tests/winDde.test: Rewritten to use tcltest2 features more - thoroughly (reducing the [catch] count!) and fix the problem with - winDde-6.1 being out of synch with the implementation. - -2004-11-30 Don Porter - - * library/init.tcl ([unknown]): Restored the save/restore of - the variables ::errorCode and ::errorInfo. This is needed when - the [::bgerror] command is auto-loaded (as it is by Tk). - - Patch 976520 reworks several of the details involved with - startup/initialization of the Tcl library, focused on the - activities of Tcl_FindExecutable(). - - * generic/tclIO.c: Removed bogus claim in comment that - encoding "iso8859-1" is "built-in" to Tcl. - - * generic/tclInt.h: Created a new struct ProcessGlobalValue, - * generic/tclUtil.c: routines Tcl(Get|Set)ProcessGlobalValue, - and function type TclInitProcessGlobalValueProc. Together, these - take care of the housekeeping for "values" (things that can be - held in a Tcl_Obj) that are global across a whole process. That is, - they are shared among multiple threads, and epoch and mutex - protection must govern the validity of cached copies maintained - in each thread. - - * generic/tclNotify.c: Modified TclInitNotifier() to tolerate - being called multiple times in the same thread. - - * generic/tclEvent.c: Dropped the unused argv0 argument to - TclInitSubsystems(). Removed machinery to unsure only one - TclInitNotifier() call per thread, now that that is safe. - Converted Tcl(Get|Set)LibraryPath to use a ProcessGlobalValue, - and moved them to tclEncoding.c. - * generic/tclBasic.c: Updated caller. - - * generic/tclInt.h: TclpFindExecutable now returns void. - * unix/tclUnixFile.c: - * win/tclWinFile.c: - * win/tclWinPipe.c: - - * generic/tclEncoding.c: Built new encoding search initialization - on a foundation of ProcessGlobalValues, exposing new routines - Tcl(Get|Set)EncodingSearchPath. A cache of a map from encoding name - to directory pathname keeps track of where encodings are available - for loading. Tcl_FindExecutable greatly simplified into just - three function calls. The "library path" is now misnamed, as its - only remaining purpose is as a foundation for the default encoding - search path. - - * generic/tclInterp.c: Inlined the initScript that is evaluated - by Tcl_Init(). Added verification after initScript evaluation - that Tcl can find its installed *.enc files, and that it has - initialized [encoding system] in agreement with what the environment - expects. [tclInit] no longer driven by the value of $::tcl_libPath; - it largely constructs its own search path now, rather than attempt - to share one with the encoding system. - - * unix/tclUnixInit.c: TclpSetInitialEncodings factored so that a new - * win/tclWinInit.c: routine TclpGetEncodingNameFromEnvironment - can reveal that Tcl thinks the [encoding system] should be, even - when an incomplete encoding search path, or a missing *.enc file - won't allow that initialization to succeed. TclpInitLibraryPath - reworked as an initializer of a ProcessGlobalValue. - - * unix/tclUnixTest.c: Update implementations of [testfindexecutable], - [testgetdefenc], and [testsetdefenc]. - - * tests/unixInit.test: Corrected tests to operate properly even - when a value of TCL_LIBRARY is required to find encodings. - - * generic/tclInt.decls: New internal stubs: TclGetEncodingSearchPath, - TclSetEncodingSearchPath, TclpGetEncodingNameFromEnvironment. These - are candidates for public exposure by future TIPs. - - * generic/tclIntDecls.h: make genstubs - * generic/tclStubInit.c: - - * generic/tclTest.c: Updated [testencoding] to use - * tests/encoding.test: Tcl(Get|Set)EncodingSearchPath. Updated tests. - -2004-11-30 Kevin B. Kenny - - * library/clock.tcl: Corrected the regular expressions that match - a time zone to allow for time zones specified as +HH or -HH. - * tests/clock.test: Added regression test case for the above issue. - Thanks to Rolf Ade for reporting this issue - [http://wiki.tcl.tk/13094] - * win/tclWinDde.c (Tcl_DdeObjCmd): Corrected a typo that caused a - compilation failure on VC++. - -2004-11-29 Andreas Kupries - - * win/Makefile.in (install-libraries): Brought entry '2004-10-26 - Don Porter (Tcl Modules)' into the windows world, actually the - win/configure buildsystem. The other windows buildsystems (.vc, - .bc) still have to be updated as well. - -2004-11-26 Andreas Kupries - - * win/tclWinDde.c (ExecuteRemoteObject): Removed bogus semicolon - found at the end of the header for the function definition, - terminating it early and preventing a compile. This is likely a - fix for '2004-11-25 Donal'. I have to conclude that it is also - unknown if the other changes to this file actually pass the - testsuite. Running testsuite ... They don't. winDde-6.1 - fails. This is only a message discrepance, i.e. not too - bad. Leaving resolution of that to Pat and Donal. - -2004-11-26 Don Porter - - * library/auto.tcl (tcl_findLibrary): Made sure the uniquifying - operations on the search path does not also normalize. [Bug 1072136] - -2004-11-26 Donal K. Fellows - - * unix/configure.in: Simplify the code to check for correctness of - strstr, strtoul and strtod. - * unix/tcl.m4 (SC_TCL_CHECK_BROKEN_FUNC): Split a complex stanza - out of configure.in into its own function. Also force it to do the - right thing with cacheing of results of AC_TRY_RUN to deal with - issue raised in [Patch 1073524] - - * doc/foreach.n: Added simple example. [FRQ 1073334] - -2004-11-25 Donal K. Fellows - - * generic/tclProc.c (TclObjInterpProc): Make it so that only - * generic/tclIndexObj.c (Tcl_WrongNumArgs): [proc] instances do - * tests/indexObj.test (indexObj-5.7): quoting of their first - arguments, so keeping [Bug 942757] fixed and making [Bug 1066837] - be fixed as well. Done with a load of #ifdef-ery because this hack - is so ugly nobody should keep it around once Itcl's fixed. - -2004-11-25 Reinhard Max - - * tests/tcltest.test: The order in which [glob] returns the file - names is undefined, so tests should not depend on it. - -2004-11-25 Zoran Vasiljevic - - * doc/Thread.3: - * doc/Notifier.3: Added changes from the core-8-4-branch - -2004-11-25 Donal K. Fellows - - * doc/dde.n: Synchronized the documentation of the commands with - the header of the docs and what the package actually does. Thanks - to Andreas Kupries for spotting this. - * win/tclWinDde.c (Tcl_DdeObjCmd): Much cleanup of argument - parsing code. - -2004-11-24 David Gravereaux - - * generic/tclPort.h: Relative include of tclWinPort.h returned - as it was requiring me set -I$(tcl_root)/win for my extensions - that need to include tclInt.h and doesn't appear to serve any - purpose for windows builds. - -2004-11-24 Kevin B. Kenny - - * unix/tcl.m4 (SC_ENABLE_THREADS): Corrected bad check for - 3-argument readdir_r [Bug 1001325]. - * unix/configure: Regenerated. - * unix/tclUnixNotfy.c: Corrected all uses of 'select' to - manage their masks using the FD_CLR, FD_ISSET, FD_SET, and - FD_ZERO macros rather than bit-whacking that failed under - Solaris-Sparc-64. [Bug 1071807] - * win/tclWinInit.c (TclpInitLibraryPath): Removed unused - vars 'pathc' and 'pathv' that caused compilation problems - on VC++ with --enable-symbols. - -2004-11-24 Don Porter - - * unix/tcl.m4 (SC_ENABLE_THREADS): Corrected failure to determine - the number of arguments for readdir_r on SunOS systems. [Bug 1071701] - - * unix/configure: autoconf-2.57 - - * generic/tclCmdIL.c (InfoVarsCmd): Corrected segfault in new - * tests/info.test (info-19.6): trivial matching branch [Bug 1072654] - -2004-11-24 Donal K. Fellows - - * tools/man2html.tcl, tools/man2html1.tcl: Update to use Tcl 8.4. - * tools/man2html2.tcl: Fix broken .SS handling. - -2004-11-23 Donal K. Fellows - - * unix/Makefile.in: Add (commented-out) code to integrate tclConfig.h - into the dependency tree and 'make distclean'. [Bug 1068171] - - * generic/tclResult.c (Tcl_AppendResultVA): Remove call to - Tcl_GetStringResult to speed up repeated calls to Tcl_AppendResult - with the side effect that code that wants to access interp->result - should always call Tcl_GetStringResult first. See [Patch 1041072] - discussion for more details. - -2004-11-22 Mo DeJong - - * unix/configure: Regen. - * unix/tcl.m4 (SC_TCL_64BIT_FLAGS): Define HAVE_TYPE_OFF64_T - only when off64_t, open64(), and lseek64() are defined. - IRIX 5.3 is known to not include an open64 function. - [Bug 1030465] - -2004-11-22 Mo DeJong - - * unix/configure: Regen. - * unix/tcl.m4 (SC_ENABLE_THREADS): Check for a 2 - argument version of readdir_r that is known to - exists under IRIX 5.3. - * unix/tclUnixThrd.c (TclpReaddir): Use either - 2 arg or 3 arg version of readdir_r. - [Bug 1001325] - -2004-11-22 Don Porter - - * unix/tclUnixInit.c (TclpInitLibraryPath): Purged dead code that - * win/tclWinInit.c (TclpInitLibraryPath): used to extend the - "library path". Search path construction for init.tcl is now done - within the [tclInit] proc. - - * generic/tclInterp.c: Restored several directories to the search - * tests/unixInit.test: path used to locate init.tcl within [tclInit]. - This change does not restore any directories to the encoding search - path, so should still avoid the price of an unreasonably large number - of filesystem accesses during encoding initialization at startup - [Bug 976438] - -2004-11-22 Vince Darley - - * generic/tclPathObj.c: fix and new test for [Bug 1043129] in - * tests/fileSystem.test: the treatment of backslashes in file - join on Windows. - -2004-11-21 Don Porter - - * doc/AddErrInfo.3: Typo corrections (Thanks Daniel South). - * doc/interp.n: - -2004-11-19 Don Porter - - * doc/AddErrInfo.3: Docs for Tcl_(Get|Set)ReturnOptions. [TIP 227] - - * doc/AddErrInfo.3: - * doc/Async.3: Documentation updates to replace references - * doc/BackgdErr.3: to global variable ::errorInfo and ::errorCode - * doc/SaveResult.3: and to the ::bgerror command with references - * doc/after.n: to their preferred replacements, the - * doc/bgerror.n: -errorinfo and -errorcode return options, - * doc/error.n: the Tcl_*InterpState routines, and the - * doc/exec.n: [interp bgerror] command. - * doc/exit.n: - * doc/fileevent.n: - * doc/interp.n: - * doc/return.n: - * doc/tclvars.n: - * doc/update.n: - - * tests/unixInit.test: Removed "knownBug" constraints to prompt - bug fixing before 8.5a2 release. - -2004-11-19 Daniel Steffen - - * macosx/Makefile: - * unix/configure.in: - * unix/tclUnixInit.c (MacOSXGetLibraryPath): changed detection - of tcl framework build when determining tclLibPath from overloaded - TCL_LIBRARY to configuration define TCL_FRAMEWORK. [Bug 1068088] - - * unix/configure: autoconf-2.57 - * unix/tclConfig.h.in: autoheader-2.57 - -2004-11-18 Don Porter - - * doc/SaveResult.3: Documentation for Tcl_*InterpState (TIP 226). - - * generic/tclEvent.c (HandleBgErrors): Simplified program flow. - - * tests/basic.test: Updated functional (not testing) uses of - * tests/io.test: [bgerror] to make use of [interp bgerror]. - * tests/socket.test: - * tests/timer.test: - - * tests/interp.test (interp-36.*): [interp bgerror] tests. - - * generic/tclInterp.c: Corrected [interp bgerror] error messages. - -2004-11-18 Reinhard Max - - * unix/tcl.m4 (SC_CONFIG_MANPAGES): Applied an improved version of - * unix/configure.in: patch #996085, that introduces - * unix/Makefile.in: --enable-man-suffix. - - * unix/installManPage: added - * unix/mkLinks.tcl: removed - * unix/mkLinks: removed - * unix/configure: generated - - * unix/Makefile.in: Don't install tclConfig.h . - -2004-11-17 Don Porter - - * unix/configure.in: The change below reveals that the public - data type Tcl_StatBuf relies on config information. For now, - disabled the use of the tclConfig.h file until its full impact - on Tcl's interface can be assessed. - - * unix/configure: autoconf-2.57 - - * generic/tcl.h: Moved the #include "tclConfig.h" out of - * generic/tclInt.h: tcl.h. The config settings are not part of - * generic/tclPort.: the public interface, and having it there - breaks compiled against uninstalled Tcl and extensions using - autoconf-2.5*. - -2004-11-16 Jeff Hobbs - - * unix/tclUnixChan.c (TtySetOptionProc): fixed crash configuring - -ttycontrol on a channel. [Bug 1067708] - -2004-11-16 Don Porter - - * generic/tclIOUtil.c (TclFSEpochOk): There were two code paths - via which the thread copy of filesystemEpoch could be synched with - the master copy, but only one kept the filesystem list cache up - to date. Fix routes everything through a single code path. - [Bug 1035775]. - -2004-11-16 Donal K. Fellows - - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Stop architecture flags to 'ld' - from getting lost when [load] is disabled. [Bug 1016796] - -2004-11-16 Daniel Steffen - - * generic/tcl.h: - * unix/configure.in: changed HAVE_CONFIG_H to HAVE_TCL_CONFIG_H. - - * unix/configure: autoconf-2.57 - -2004-11-15 Don Porter - - * generic/tclInt.h: Added comment warning that the old - ERR_IN_PROGRESS and ERROR_CODE_SET flag values should not be re-used - for the sake of those extensions that have accessed them. - - * generic/tclCmdMZ.c (Tcl_TraceObjCmd): Fixed Bug 1065378 which failed - * tests/trace.test (trace-33.1): to permit a variable trace - created with [trace variable] to be destroyed with [trace remove]. - Thanks to Keith Vetter for the report. - -2004-11-15 Donal K. Fellows - - * doc/tclvars.n: Added section to documentation on global - variables that are specific to tclsh and wish. [Patch 1065732] - -2004-11-12 Jeff Hobbs - - * generic/tclEncoding.c (TableFromUtfProc): correct crash - condition when TCL_UTF_MAX == 6. [Bug 1004065] - -2004-11-12 Donal K. Fellows - - * doc/interp.n: Basic documentation of the TIP#221 API. - -2004-11-12 Don Porter - - TIP #221 IMPLEMENTATION - * generic/tclBasic.c: Define [::tcl::Bgerror] in new interps. - * generic/tclEvent.c: Update Tcl_BackgroundError to make use - of the registered [interp bgerror] command. - * generic/tclInterp.c: New [interp bgerror] subcommand. - * tests/interp.test: syntax tests updated. - - TIP #226 IMPLEMENTATION - * generic/tcl.decls: Stubs for Tcl_(Save|Restore|Discard)InterpState - * generic/tcl.h: New public opaque type, Tcl_InterpState. - * generic/tclInt.h: Drop old private declarations. Add - Tcl(Get|Set)BgErrorHandler - * generic/tclResult.c: Tcl_*InterpState implementations. - * generic/tclDictObj.c: Update callers. - * generic/tclIOGT.c: - * generic/tclTrace.c: - - TIP #227 IMPLEMENTATION - * generic/tcl.decls: Stubs for Tcl_(Get|Set)ReturnOptions. - * generic/tclInt.h: Drop old private declarations. - * generic/tclResult.c: Tcl_*ReturnOptions implementations. - * generic/tclCmdAH.c: Update callers. - * generic/tclMain.c: - - * generic/tclDecls.h: make genstubs - * generic/tclStubInit.c: - - * unix/tclAppInit.c: Removed tclConfig.h #include, now that tcl.h - takes care of it for us. - - * generic/tclInt.h: Moved verification of ptrdiff_t typedef from - * generic/tclExecute.c: multiple .c files into one common header where - * generic/tclVar.c: it is verifiably after tclConfig.h inclusion. - -2004-11-12 Daniel Steffen - - * generic/tcl.h: - * generic/tclInt.h: - * unix/Makefile.in: include tclConfig.h from tcl.h and install it - as a public header. Normalized compiler include path order to - -I${BUILD_DIR} -I${UNIX_DIR} -I${GENERIC_DIR}. - - * unix/dltest/Makefile.in: add ${BUILD_DIR}/.. to include path - to pick up tclConfig.h. - - * unix/tclUnixInit.c: moved check for HAVE_CFBUNDLE define after - #include "tclInt.h" to ensure tclConfig.h has been included. - -2004-11-12 Reinhard Max - - * unix/config.h.in: - * unix/tclConfig.h.in: renamed - - * unix/Makefile.in: Completed support for config header, - * unix/configure.in: fixed building outside of the unix dir, - * unix/tclAppinit.c: and reflected the name change of config.h. - * generic/tclInt.h: - - * unix/configure: generated - -2004-11-12 Donal K. Fellows - - * unix/config.h.in: Allow configure to put all the C #defs into - * unix/configure.in: a file (called config.h) so that Unix builds - * unix/tcl.m4: now take far fewer lines of scrollback to - * unix/Makefile.in: proceed (making it less likely that any errors - * generic/tclInt.h: or warnings will get missed). - * unix/tclAppInit.c: Part of the TIP#34 upgrades. - - * unix/tcl.m4, unix/tclUnixPort.h: Check for pthread_attr_get_np - in before forcing the use of to make - things work on NetBSD 2.0. [Bug 1064882] - - * doc/binary.n, doc/upvar.n: More minor fixes. - -2004-11-12 Daniel Steffen - - * doc/CrtChannel.3: - * doc/Interp.3: - * doc/Limit.3: - * doc/binary.n: - * doc/dict.n: - * doc/tm.n: - * doc/upvar.n: fixed *roff errors uncovered by running 'make html'. - - * tools/tcltk-man2html.tcl: added faked support for bullet point - lists, i.e. *nroff ".IP \(bu" syntax. - -2004-11-11 Daniel Steffen - - * tests/fCmd.test: - * unix/tclUnixFCmd.c (TraverseUnixTree): added option to rewind() - the readdir() loop whenever the source hierarchy has been modified - by traverseProc (e.g. by deleting files); this is required to ensure - complete traversal of the source hierarchy on certain filesystems - like HFS+. Added test for failing recursive delete on Mac OS X that - was due to this. [Bug 1034337] - - * generic/tclListObj.c (Tcl_ListObjReplace): use memmove() instead - of manual copy loop to shift list elements. Decreases time spent in - Tcl_ListObjReplace() from 5.2% to 1.7% of overall runtime of - tclbench on a ppc 7455 (i.e. 200% speed increase). [Patch 1064243] - - * generic/tclHash.c: hoisted some constant pointer dereferences out - of loops to eliminate redundant loads that the gcc optimizer didn't - deal with. Decreases time spend in Tcl_FindHashEntry() by 10% over a - full run of the tcl testuite on a ppc 7455. [Patch 1064243] - - * tests/fileName.test: - * tests/fileSystem.test: - * tests/io.test: - * tests/msgcat.test: - * tests/tcltest.test: - * tests/unixInit.test: fixed bugs causing failures when running - tests with -tmpdir arg not set to working dir. - - * macosx/Makefile: corrected path to html help inside framework. - Prevent parallel make from building several targets at the same - time. - - * macosx/tclMacOSXFCmd.c (struct fileinfobuf): force struct to be - packed to prevent failures when builing with -malign=natural. - -2004-11-10 Andreas Kupries - - * unix/tclUnixChan.c: [Bug 727786]. Exterminated the code marked - DEPRECATED. This code has not been used in over a year now, and - we have no complaints. - -2004-11-08 David Gravereaux - - * win/tclWinPipe.c: The pipe channel driver now respects - the -blocking option when closing is the same way the UNIX - side works. This is to avoid a hung shell when exiting due - to open pipes that refuse to close in a graceful manner. - * doc/open.n: Added a note about -blocking 0 and lack of - exit status as it had never been documented. [Bug 947693] - - ***POTENTIAL INCOMPATIBILITY*** - - Scripts that use async pipes on windows, must (like the - UNIX side) set -blocking to 1 before calling [close] to - receive the exit status. - -2004-11-07 David Gravereaux - - * tests/winFile.test: added contraint to winFile-4.0 to prevent - it being run on NT4 [Bug 981829] - -2004-11-05 Donal K. Fellows - - * tests/reg.test: Major reorganization so that this file is much - easier for a normal Tcl maintainer to comprehend. The test flags - are still very cryptic, but they appear to have to be that way. - The number of skipped tests has increased, but now the skipped - tests have much more meaningful content. - - * tests/tm.test (genpaths): Add a [file normalize] so we pick up - Windows drive letters, etc. [Bug 1053568] - -2004-11-04 Don Porter - - * changes: Updates toward an 8.5a2 release. - -2004-11-03 Kevin B. Kenny - - * library/clock.tcl (FreeScan): Fixed a bug where scanning - "Monday" with a base time other than midnight incorrectly carried - the base time forward. - - * test/clock.test (clock-33.{5,5a}): Made the test failure more - informative. - - * tests/clock.test (clock-34.{28,44,45,46}): Removed 'knownBug' - constraints from tests that no longer fail. - - Thanks to Don Porter for reporting these. - -2004-11-03 David Gravereaux - - * generic/tcl.h: Moved the preprocessor logic - * generic/tclDecls.h: from tclInt.h of setting the - * generic/tclInt.h: TCL_STORAGE_CLASS macro to the - * generic/tclIntDecls.h: tcl*Decls.h files now that no - * generic/tclIntPlatDecls.h: use of EXTERN is left in tclInt.h. - * generic/tclPlatDecls.h: Proto for Tcl_Main moved in tcl.h - * win/tclWinPort.h: to prior the inclusion of the Stubs - headers as they are now resetting TCL_STORAGE_CLASS. Removed - extrainious reset from tclWinPort.h. [Patch 1055668] - - * generic/tclCompile.h: Removed extrainious reset of - TCL_STORAGE_CLASS missed in my last edit. - -2004-11-03 Don Porter - - * library/init.tcl ([unknown]): Corrections to the 2004-10-25 mods - to Aunt ??? in [unknown]. Flaws revealed by Itcl test suite, which - still apparently relies on this brokenness. Also added comment - suggesting the error message that any code using this hack *ought* - to receive in reply. - - * generic/tclTrace.c (TclCallVarTraces): Improved ability to debug - * tests/incr-old.test (incr-old-2.6): errors during variable - * tests/incr.test (incr-{1,2}.28): traces by preserving the - * tests/set.test (set-{2,4}.4): -errorinfo data. - * tests/trace.test (trace-33.1): [Bug 527164] - -2004-11-02 David Gravereaux - - * generic/tclInt.h: added a check for #ifdef __cplusplus around - the #define of MODULE_SCOPE. About the only time it would be - problem is when someone is statically linking to Tcl and accessing - internals from a C++ file and has name mangling issues from the - lack of "C" after 'extern' [Patch 1055668]. - * generic/tclCompile.h: Exchanged use of the EXTERN macro to the - new MODULE_SCOPE macro. Lowered exported internals count by 35. - [Patch 1055668] - * win/tclWinInt.h: - * win/tclWinPort.h: exported internals dropped by a count of 14. - * generic/tclFileSystem.h: Added use of MODULE_SCOPE on protos. - * generic/tclRegexp.h: manipulating TCL_STORAGE_CLASS unnecessary. - -2004-11-02 Don Porter - - * library/tcltest/tcltest.tcl: Corrected some misleading - * tests/tcltest.test (tcltest-26.1,2): displays of ::errorInfo and - ::errorCode information when the -setup, -body, and/or -cleanup scripts - return an unexpected return code. Thanks to Robert Seeger for the - fix. [RFE 1017151]. - -2004-11-02 Donal K. Fellows - - * generic/tclExecute.c (TclExecuteByteCode): Improved version of - the NaN fix from Miguel Sofer. [Bug 761471] - -2004-11-02 Kevin Kenny - - * library/tzdata/America/Cuiaba: Change to DST rules for - * library/tzdata/America/Havana: autumn of 2004. - [ftp://elsie.nci.nih.gov/pub/tzdata2004g.tar.gz] - - * tools/tclZIC.tcl: Updated to be compatible with recent - changes in library/clock.tcl. - -2004-11-02 Vince Darley - - * win/tclWinFile.c: Simplify TclpUtime to use Tcl_FSGetNativePath, - and add comments. - -2004-11-02 Donal K. Fellows - - * generic/tclInt.h: Change uses of EXTERN to MODULE_SCOPE (defined - in this file too to be 'extern' if not overridden) as nothing - declared in tclInt.h is supposed to be visible outside the Tcl - core. If there *is* anything that extensions are actually using, - we can open this up later on. [Patch 1055668] - - * doc/CrtChannel.3 (Tcl_GetChannelMode): Add synopsis. [Bug 1058446] - -2004-11-01 Kevin B. Kenny - - * win/tclWinFile.c (FromCTime, TclpUtime): Replaced a call to the - Posix 'utime' function with calls to Windows-API equivalents, to - avoid a bug where the VC++ versions misconvert times across a - Daylight Saving Time boundary. [Bug 926106] - * win/tclWinInt.h (TclWinProcs): - * win/tclWin32Dll.c (asciiProcs, unicodeProcs): Removed now-unused - reference to 'utime'. - * tests/cmdAH.test (cmdAH-24.12): Added test case for the - above bug. - -2004-11-01 Donal K. Fellows - - * generic/tclExecute.c (TclExecuteByteCode): Make INST_EQ and - friends handle NaN correctly in all cases. [Bug 761471] - - * generic/tclNamesp.c (NamespaceInscopeCmd): Make the error - message generation the same as in NamespaceEvalCmd(). - (Tcl_Import): Rationalized to use Tcl_EvalObjv(). - -2004-10-31 Donal K. Fellows - - * tests/io.test (io-40.3): Convert umask2 test constraint into a - form that most people will be able to satisfy. - - * tests/cmdAH.test (cmdAH-8.45): Removed broken test constraint. - It didn't do what it was intended to do, and it implied the other - correct constraint. [Bug 1053908] - - * generic/tclCmdIL.c (InfoGlobalsCmd): - * tests/info.test (info-8.4): Strip leading global-namespace - specifiers from the pattern argument. [Bug 1057461] - -2004-10-30 Kevin Kenny - - * generic/clock.c: Replaced WIN32 macro with __WIN32__. - [Bug 1054357]. Thanks to David Gravereaux for the patch. - * win/tclWinFile.c: Removed a long-standing bug that causes - incorrect conversion between file time and UTC time if - the file time is recorded in a different Daylight Saving Time - status than the current one. [Bug 926106] - -2004-10-29 Don Porter - - * library/tcltest/tcltest.tcl: Correct reaction to errors in the - obsolete processCmdLineArgsHook. [Bug 1055673] - * library/tcltest/pkgIndex.tcl: Bump to tcltest 2.2.7 - * unix/Makefile.in: - * tests/all.tcl: Update to use [tcltest::configure]. - -2004-10-29 Donal K. Fellows - - * library/tm.tcl (::tcl::tm::*): Use the core proc engine to - generate the wrong-num-args error messages for the path ensemble. - - Ensembles can now (sometimes) rewrite the error messages of their - subcommands so they appear more like the arguments that the user - passed to the ensemble. Below is a description of changes involved - in doing this. - - * tests/namespace.test (namespace-50.*): Tests of ensemble - subcommand error message rewriting. - * generic/tclProc.c (TclObjInterpProc): Make procedures implement - their wrong-num-args message using Tcl_WrongNumArgs instead of - something baked-at-home. - * generic/tclNamesp.c (TclIsEnsemble, NsEnsembleImplementationCmd): - Added test of ensemble-hood (available to rest of core) and made - ensembles set up the rewriting for Tcl_WrongNumArgs to take - advantage of. - * generic/tclInt.h (Interp.ensembleRewrite): Extra fields. - * generic/tclIndexObj.c (Tcl_WrongNumArgs): Add knowledge of what - is going on in ensembles' command rewriting so this command can - generate the right error message itself. - * generic/tclBasic.c (Tcl_CreateInterp, TclEvalObjvInternal): - Added code to initialize (as empty) the rewriting fields and reset - them when we leak outside an ensemble implementation. - -2004-10-28 Miguel Sofer - - * generic/tclExecute.c (INST_START_CMD): - * tests/execute.test (execute-8.3): fix for execution stack - corruption [Bug 1055676]. Credit dgp for detective work and fix. - -2004-10-27 Don Porter - - * tests/socket.test (socket-13.1): Balanced [makeFile] and - [removeFile] commands. - - * tests/clock.test: Correct duplicate test names. - * tests/namespace.test: - * tests/string.test: - * tests/io.test (io-50.4): Use namespace variables. - -2004-10-27 David Gravereaux - - * generic/tclInt.decls: The following 9 functions were moved from - * generic/tclInt.h: tclInt.h to the private/int Stubs table for - * generic/tclIntDecls.h: use by the test suite. As tclTest.obj is - * generic/tclStubInit.c: linked to the shell, these functions need - "blessed" status so as to always be exported from the library. Being - placed in the Stubs table guarantees this [Bug 1054748]: - TclpObjRemoveDirectory, TclpObjCopyDirectory, - TclpObjCreateDirectory, TclpObjDeleteFile, - TclpObjCopyFile, TclpObjRenameFile, - TclpObjStat, TclpObjAccess, - TclpOpenFileChannel - - * tests/registry.test: Fixed test files to load the correct - * tests/winDde.test: registry and dde packages by using the info - * win/Makefile.in: from makefiles to tell tcltest where to load - * win/makefile.vc: them from. This avoids grabbing the wrong - package from $auto_path which might be the install point rather than - the dev location. Kudos to Jennifer Hom for adding -load and - -loadfile to the tcltest package. [Bug 926088] - - * win/tclWinThrd.c (TclFinalizeLock): release the critical section - before deleting it. [Bug 731778] - - * generic/tcl.h: Removed the file level 'extern "C" {' and the - coresponding closing block as it serves no purpose given that all - the function prototypes have the proper extern usage already. - - * unix/tclAppInit.c: When built as tcltest, TclThread_Init was - * win/tclAppInit.c: getting called twice. First by - Tcltest_Init, then again in Tcl_AppInit. The call from Tcl_AppInit - is now removed. - -2004-10-27 Andreas Kupries - - * tests/tm.test: Expanded on the testsuite entered by Donal. - * library/tm.tcl: Even found bugs, these have been corrected. - -2004-10-26 Kevin Kenny - - * tests/format.test (format-19.1): Additional regression test for - Bug 868489. - -2004-10-27 Donal K. Fellows - - * doc/*.n: Many small general documentation fixes. - -2004-10-26 David Gravereaux - - * generic/tclPipe.c (TclCleanupChildren): bad cast of resolvedPid - caused PIDs on win95 to go negative. winpipe-4.2 brought this to - the surface. Fixed with sprintf in place of TclFormatInt. Thanks - to hgiese [Patch 767676] - -2004-10-26 Andreas Kupries - - * library/tm.tcl (::tcl::tm::Defaults): Added a second [file - dirname] around the location of the executable. This fixes [Tcl - SF Bug 1038705]. Instable of a bogus "foo/bin/lib" we now have - the correct "foo/lib" as a base path for modules. - -2004-10-26 Don Porter - - * generic/tclParse.c (Tcl_SubstObj): Fix for failed subst-12.3 test. - * tests/subst.test (subst-12.3-5): More tests for Bug 1036649. - - * unix/Makefile.in (install-libraries): Updated the installation - of the http, msgcat, and tcltest packages to install as Tcl Modules - on Unix systems. Other platform Makefiles still need updating. - [Patch 1054370] - - * tests/basic.test: Added missing constraints. - * tests/compile.test: - * tests/fileSystem.test: - - * tests/init.test (init-2.8): Updated to not rely on http package. - -2004-10-26 Miguel Sofer - - * generic/tclInt.h: - * generic/tclVar.c: removed more direct references to the VAR - flags, replaced with access macros. - -2004-10-26 Donal K. Fellows - - * doc/expr.n: Clarified that non-num/non-bool literals require - quoting. [Bug 1027849]. Also listed booleans as acceptable values. - -2004-10-26 Kevin B. Kenny - - * library/clock.tcl (FreeScan): Fixed a bug that caused relative - days of the week in free-form [clock scan] to be evaluated in the - wrong time zone. - * tests/clock.test (clock-31.[456]): Made sure that there - isn't an env(TZ) or env(TCL_TZ) lying around that will - override the time zone that we're trying to establish with - the simulated registry. - Both problems reported as [Bug 1054101]. - -2004-10-25 Donal K. Fellows - - * doc/string.n (map): Rewrote to clarify that we don't just map - single characters. [Bug 1048005] - * doc/info.n (procs): Clarified that the pattern argument may have - namespace separators in it. [Bug 1047928] - - * tests/cmdAH.test (cmdAH-8.45): Simplify in the hope that the - reasons for [Bug 1053908] will become clearer. - -2004-10-25 Don Porter - - * generic/tclExecute.c (IllegalExprOperandType,TclExecuteByteCode): - Removed several DECACHE_INFO/CACHE_INFO pairs that are no longer - needed for protection because routines like Tcl_SetErrorCode() and - Tcl_AddErrorInfo() can no longer re-enter bytecode execution. - - * generic/tclResult.c (TclProcessReturn): Bug fix. Be sure that - a missing -errorinfo option when code == TCL_ERROR causes the - errorInfo field to get reset. - - * tests/thread.test (thread-4.4): Test depended on a ::errorInfo - value initialized to "". Added code to test to setup that requirement. - - * library/auto.tcl Purged Tcl's script library of all - * library/clock.tcl remaining references to global vars - * library/init.tcl ::errorInfo and ::errorCode. - - * generic/tclMain.c (Tcl_Main): Updated to make use of - TclGetReturnOptions instead of ::errorInfo variable. - - * generic/tclInterp.c (tclInit): Bug fix. Access dict variables - with [dict get], not array syntax. - -2004-10-25 Donal K. Fellows - - * tests/tm.test: Rewrote the tests to actually perform syntax - checks on the public API. Added a new test (currently failing) to - indicate that the test suite is not complete yet. - * library/tm.tcl (path): Rewrote to turn this command into an - ensemble to make it faster and simpler. - -2004-10-24 Miguel Sofer - - * generic/tclCmdIL.c: - * generic/tclExecute.c: - * generic/tclInt.h: - * generic/tclTrace.c: defined new macros to get/set the flags of - variables. The only files that still access the flag values - directly are tclCompCmds.c, tclCompile.c, tclProc.c and tclVar.c - -2004-10-24 Don Porter - - * generic/tclBasic.c (Tcl_LogCommandInfo,Tcl_AddObjErrorInfo): - Shift the initialization of errorCode to NONE to more central - location. - - * generic/tclEvent.c (BgError,Tcl_BackgroundError,HandleBgErrors): - Rewrite to build on the new TclGet/SetReturnOptions routines. - - * generic/tclResult.c (TclGetReturnOptions): Add call to - Tcl_AddObjErrorInfo to be sure error fields are initialized. - - * generic/tclResult.c (TclTransferResult): - Rewrite to build on the new TclGet/SetReturnOptions routines. - -2004-10-22 Donal K. Fellows - - * doc/tm.n: Tightened up the documentation. - * tests/tm.test: Created (with partially dummy content) so TIP#189 - can be marked Final. - - * generic/tclNamesp.c (NsEnsembleImplementationCmd): Make - ensembles cut their implementations out of error traces. This is - the right thing to do more often than not. - -2004-10-22 Kevin B. Kenny - - * library/clock.tcl: Fixed a typo where the fallback time zone - became ::localtime instead of :localtime. Fixed a bug where - time zone names containing hyphens could not be loaded. - * tests/clock.test: Added regression test cases that covers - both bugs. - Thanks to Todd M. Helfter for - finding these bugs. - -2004-10-22 Donal K. Fellows - - * generic/tclExecute.c (TclCompEvalObj, Tcl_ExprObj): - * generic/tclProc.c (TclProcCompileProc): Always call object - freeIntRepProc's in the same way. - -2004-10-22 Miguel Sofer - - * generic/tclVar.c: fixed bug in commit of 2004-07-23, which was - causing a leak of Proc structures and failure of compile-12.1. Two - lines were 'zombies' from the previous way localVarNames - worked. Credit dgp for finding this. - -2004-10-21 Don Porter - - * generic/tclInt.h (Interp): - * generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp): - * generic/tclResult.c (GetKeys,ReleaseKeys,etc.): - Moved the key values of the return options dictionary out of - private fields of the Interp struct and into thread-static - values managed in tclResult.c. - - * generic/tclCmdAH.c (Tcl_CatchObjCmd, Tcl_ErrorObjCmd): - Updated to call the new TclGet/SetReturnOptions routines to do - much of their work. - - * generic/tclInt.h (TclGetReturnOptions,TclSetReturnOptions): - * generic/tclResult.c (TclGetReturnOptions,TclSetReturnOptions): - New utility routines to get/set the return options of an interp. - Intent is that these routines will be converted to public routines - after TIP approval. - - * generic/tclCmdMZ.c (TclProcessReturn,TclMergeReturnOptions): - * generic/tclResult.c (TclProcessReturn,TclMergeReturnOptions): - Move internal utility routines from tclCmdMZ.c to tclResult.c. - - * generic/tclBasic.c (Tcl_CreateInterp, Tcl_DeleteInterp): - * generic/tclResult.c (TclTransferResult): Rework so that - iPtr->returnOpts can be NULL when there are no special options. - - * generic/tclResult.c (TclRestoreInterpState): Plug potential - memory leak. - -2004-10-21 Kevin B. Kenny - - * generic/tclBasic.c: Various changes to [clock format] that, - * generic/tclClock.c: together, make it roughly twice as fast - * generic/tclInt.h: while all tests in the test suite - * library/clock.tcl: continue to pass. - -2004-10-20 Andreas Kupries - - * win/Makefile.in (install-msgs): Fixed a problem with the - * win/Makefile.in (install-tzdata): installation of timezone data - and message catalogs. They used the installed tcl library - directory, not the source library. Before it was installed. - Switched to source lib dir. Thanks to Kevin for the help in - figuring this out. - -2004-10-20 Don Porter - - * generic/tclThreadTest.c (ThreadEventProc): Corrected subtle - bug where the returned (char *) from Tcl_GetStringResult(interp) - continued to be used without copying or refcounting, while - activity on the interp continued. That's not safe, and recent - changes demonstrated the lack of safety with failing tests - thread-4.3 and thread-4.5. - -2004-10-19 Donal K. Fellows - - * generic/tclDictObj.c (DictWithCmd): Make sure all paths (that - are not themselves error paths) do not lose the result code. - -2004-10-19 Don Porter - - * generic/tclInt.h (Tcl*InterpState): New internal routines - * generic/tclResult.c (Tcl*InterpState): TclSaveInterpState, - TclRestoreInterpState, and TclDiscardInterpState are superior - replacements for Tcl_(Save|Restore|Discard)Result. Intent is that - these routines will be converted to public routines after TIP approval. - Interfaces for these routines were shamelessly stolen from Itcl. - - * generic/tclBasic.c (TclEvalObjvInternal): - * generic/tclDictObj.c (DictUpdateCmd, DictWithCmd): - * generic/tclIOGT.c (ExecuteCallback): - * generic/tclTrace.c (Trace*Proc,TclCheck*Traces,TclCallVarTraces): - Callers of Tcl_*Result updated to call the new routines. The - calls were relocated in several cases to perform save/restore - operations only when needed. - - * generic/tclEvent.c (HandleBgErrors): - * generic/tclFCmd.c (CopyRenameOneFile): - Calls to Tcl_*Result that were eliminated because they appeared - to serve no useful purpose, typically saving/restoring an error - message, only to throw it away. - -2004-10-18 Don Porter - - * generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp): - * generic/tclCmdAH.c (Tcl_CatchObjCmd): - * generic/tclCmdMZ.c (TclMergeReturnOptions,TclProcessReturn): - * generic/tclCompCmds.c (TclCompileReturnCmd): - * generic/tclExecute.c (TclCompEvalObj): - * generic/tclInt.h (Interp): - * generic/tclProc.c (TclUpdateReturnInfo): - Place primary storage of the -level and -code information in private - fields of the Interp struct, rather than in a DictObj. This should - significantly improve performance of TclUpdateReturnInfo. - -2004-10-17 Miguel Sofer - - * generic/tclResult.c: removed unused variable [Bug 1048588]. - Thanks to Daniel South. - -2004-10-15 Don Porter - - * generic/tclCmdMZ.c (TclProcessReturn): Now that primary - * generic/tclProc.c (TclUpdateReturnInfo): storage for the - errorInfo and errorCode values are internal fields, we can set - them at the time of the [return] command, and not have to wait - until the specified number of "-level"s have popped. - - * generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp, - TclEvalObjvInternal,Tcl_LogCommandInfo,TclAddObjErrorInfo): - * generic/tclCmdAH.c (Tcl_CatchObjCmd): - * generic/tclEvent.c (BgError,ErrAssocData,Tcl_BackgroundError, - HandleBgErrors,BgErrorDeleteProc): - * generic/tclExecute.c (TclCreateExecEnv,TclDeleteExecEnv): - * generic/tclIOUtil.c (comments only): - * generic/tclInt.h (ExecEnv,Interp, ERR_IN_PROGRESS): - * generic/tclInterp.c ([tclInit]): - * generic/tclMain.c (comments only): - * generic/tclNamesp.c - (Tcl_CreateNamespace,Tcl_DeleteNamespace,TclTeardownNamespace): - * generic/tclProc.c (TclUpdateReturnInfo): - * generic/tclResult.c - (Tcl_ResetResult,TclTransferResult): - * generic/tclTrace.c (CallVarTraces): - Reworked management of the "errorInfo" data of an interp. - That information is now primarily stored in a new private - (Tcl_Obj *) field of the Interp struct, rather than using a - global variable ::errorInfo as the primary storage. The - ERR_IN_PROGRESS flag bit value is no longer required to manage - the value in its new location, and is removed. Variable traces - are established to support compatibility for any code expecting - the ::errorInfo variable to hold the information. - - ***POTENTIAL INCOMPATIBILITY*** - Code that sets traces on the ::errorInfo variable may notice a - difference in timing of the firing of those traces. Code that - uses the value ERR_IN_PROGRESS. - -2004-10-14 Donal K. Fellows - - TIP#217 IMPLEMENTATION - - * generic/tclCmdIL.c (Tcl_LsortObjCmd): Add -indices option from - James Salsman. [Patch 1017532] - - * generic/tclUtil.c (TclMatchIsTrivial): Detect degenerate cases - of glob matching that let us avoid scanning through hash tables. - * generic/tclCmdIL.c (InfoCommandsCmd, InfoGlobalsCmd, InfoProcsCmd): - (InfoVarsCmd): Use this to speed up some [info] subcommands. - -2004-10-12 Kevin B. Kenny - - * library/tzdata/America/Campo_Grande: - * library/tzdata/America/Cuiaba: - * library/tzdata/America/Sao_Paulo - * library/tzdata/America/Argentina/Mendoza: - * library/tzdata/America/Argentina/San_Juan: - Synchronized to Olson's 'tzdata2004e'. - -2004-10-08 Donal K. Fellows - - TIP#201 AND TIP#212 IMPLEMENTATIONS - - * doc/dict.n, doc/expr.n: Documentation for new functionality. - * tests/expr.test: Basic tests of 'in' and 'ni' behaviour. - * tests/dict.test (dict-21.*,dict-22.*): Tests for [dict update] - and [dict with]. - * generic/tclExecute.c (TclExecuteByteCode): Implementation of the - INST_LIST_IN and INST_LIST_NOT_IN bytecodes. - * generic/tclParseExpr.c (GetLexeme): Parse the 'in' and 'ni' - operators for TIP#201. - * generic/tclDictObj.c (DictUpdateCmd,DictWithCmd): Core of - implementation of TIP#212; docs and tests still to do... - -2004-10-07 Don Porter - - * generic/tclTest.c (TestsetobjerrorcodeCmd): Simplified. - -2004-10-07 Vince Darley - - * generic/tclFileName.c: - * generic/tclFileSystem.h: - * generic/tclIOUtil.c: - * generic/tclPathObj.c: - * unix/tclUnixFile.c: - * win/tclWinFile.c: - * tests/fileName.test: - * tests/winFCmd.test: code reorganization for better generic/ - platform code splitting [Bug 925620] removing the need for - several #ifdef's, and tests and fix for an unreported Windows - glob problem ('glob -dir C: -tails *'). - -2004-10-07 Donal K. Fellows - - * *.3: Convert CONST to const and VOID to void so we document how - people should actually use the Tcl API and not the compatability - hacks that it has to have. - - * doc/man.macros, *.3: Update .AS macro so it can know how wide to - make the third column of the argument list. Update documentation - for C API (only users) to take advantage of this. - - * doc/FileSystem.3: Formatting fixes for greater documentation - clarity. - -2004-10-06 Donal K. Fellows - - * generic/tclFileName.c (DoGlob, TclGlob): Stop messy sharing of - interpreter result and instead use a private object for collecting - the result of the glob. This simplifies TclGlob quite a lot. - * generic/tclIOUtil.c (Tcl_FSMatchInDirectory): Simplify by - removing some nesting. Also standardize variable names. - (FsAddMountsToGlobResult): Force updates to the list to be done - in-place, putting a side-condition of non-shared-ness on the - resultPtr argument to Tcl_FSMatchInDirectory, but everything would - have broken before if that was shared *anyway*. - - * generic/tclEncoding.c (LoadTableEncoding): Removed reference to - Tcl interpreter; it wasn't needed as direct object use is more - efficient. - - * generic/tclPathObj.c: Made this file follow the style rules in - the Engineering Manual more closely, and also take advantage of - the internal object manipulation macros more. - - * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): Reorganized to have fewer - magic flag variables and to separate the code that scans for a - match from the code that processes a match body. - -2004-10-06 Don Porter - - * generic/tclBasic.c: - * generic/tclBinary.c: - * generic/tclCmdAH.c: - * generic/tclCmdIL.c: - * generic/tclCmdMZ.c: - * generic/tclCompExpr.c: - * generic/tclDictObj.c: - * generic/tclEncoding.c: - * generic/tclExecute.c: - * generic/tclFCmd.c: - * generic/tclHistory.c: - * generic/tclIndexObj.c: - * generic/tclInterp.c: - * generic/tclIO.c: - * generic/tclIOCmd.c: - * generic/tclNamesp.c: - * generic/tclObj.c: - * generic/tclPkg.c: - * generic/tclResult.c: - * generic/tclScan.c: - * generic/tclTimer.c: - * generic/tclTrace.c: - * generic/tclUtil.c: - * generic/tclVar.c: - * unix/tclUnixFCmd.c: - * unix/tclUnixPipe.c: - * win/tclWinDde.c: - * win/tclWinFCmd.c: - * win/tclWinPipe.c: - * win/tclWinReg.c: - It is a poor practice to directly set or append to the value - of the objResult of an interp, because that value might be - shared, and in that circumstance a Tcl_Panic() will be the - result. Searched for example of this practice and replaced - with safer alternatives, often using the Tcl_AppendResult() - routine that dkf just rehabilitated. - * library/dde/pkgIndex.tcl: Bump to dde 1.3.1 - * library/reg/pkgIndex.tcl: Bump to registry 1.1.5 - -2004-10-06 Donal K. Fellows - - * doc/SetResult.3: Made Tcl_AppendResult non-deprecated; better - that people use it than most of the common alternatives! - * generic/tclResult.c (Tcl_AppendResultVA): Make this work better - with Tcl_Objs. [Patch 1041072] - (Tcl_SetResult, Tcl_AppendElement): Change string to stringPtr to - avoid C++ keywords. - -2004-10-05 Don Porter - - * generic/tclBasic.c (TclObjInvoke): More simplification of the - TclObjInvoke routine toward unification with the rest of the - evaluation stack. - - * generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp, - TclEvalObjvInternal,Tcl_LogCommandInfo): - * generic/tclCmdAH.c (Tcl_CatchObjCmd): - * generic/tclEvent.c (BgError,Tcl_BackgroundError,HandleBgErrors): - * generic/tclInt.h (Interp, ERROR_CODE_SET): - * generic/tclNamesp.c - (Tcl_CreateNamespace,Tcl_DeleteNamespace,TclTeardownNamespace): - * generic/tclResult.c - (Tcl_ResetResult,Tcl_SetObjErrorCode,TclTransferResult): - * generic/tclTrace.c (CallVarTraces): - Reworked management of the "errorCode" data of an interp. - That information is now primarily stored in a new private - (Tcl_Obj *) field of the Interp struct, rather than using a - global variable ::errorCode as the primary storage. The - ERROR_CODE_SET flag bit value is no longer required to manage - the value in its new location, and is removed. Variable traces - are established to support compatibility for any code expecting - the ::errorCode variable to hold the information. - - ***POTENTIAL INCOMPATIBILITY*** - Code that sets traces on the ::errorCode variable may notice a - difference in timing of the firing of those traces. - - * generic/tclNamesp.c (Tcl_PopCallFrame): Removed Bug 1038021 - workaround. That bug is now fixed. - -2004-10-04 Kevin B. Kenny - - * tests/clock.test (clock-34.*): Removed an antibug that forced - comparison of [clock scan] results with the :localtime time zone. - Now that [clock scan] uses the current time zone instead, the - antibug caused several tests to fail. [Bug 1038554] - -2004-10-04 Donal K. Fellows - - * generic/tclParseExpr.c (GetLexeme): Ensure that the 'eq' and - 'ne' operators are followed by non-alphabetic characters so - lexemes can't run together. [Bug 884830] - - * doc/DictObj.3, doc/dict.n: Clarified that a dictionary is not - order-preserving. [Bug 1032243] Also added another example to - show off more ways of using a dictionary and a few other - formatting improvements. - -2004-10-02 Donal K. Fellows - - * generic/tclDictObj.c (TraceDictPath, Tcl_DictObjPutKeyList): Add - support for automatic creation of dictionary paths since that is - what everyone seems to actually expect of the API! [Bug 1037235] - (Tcl_DictObjNext): Make calling this after Tcl_DictObjDone non-fatal - as that simplifies a number of internal APIs. This doesn't break any - existing working code as it is a case which previously caused a panic. - -2004-10-02 Don Porter - - * tests/namespace.test (namespace-8.7): Another test for save/restore - of ::errorInfo and ::errorCode during global namespace teardown. - -2004-10-01 Donal K. Fellows - - * generic/tclProc.c (TclObjGetFrame, Tcl_UplevelObjCmd): - * generic/tclVar.c (Tcl_UpvarObjCmd): Cache stackframe level - references in the level object for speed. - -2004-09-30 Don Porter - - * generic/tclBasic.c (Tcl_CreateInterp): Removed the flag bit value - * generic/tclInt.h (Interp): EXPR_INITIALIZED. It was set during - interp creation and never tested. Whatever purpose it had is in - the past. - - * generic/tclBasic.c (Tcl_EvalObjEx): Removed the flag bit value - * generic/tclInt.h (Interp): USE_EVAL_DIRECT. It was used only - * generic/tcLTest.c (TestevalexObjCmd): in the testing command - * tests/parser.test (parse-9.2): [testevalex] and nothing in the - test suite made use of the capability it enabled. - - * generic/tclBasic.c (Tcl_AddObjErrorInfo): More re-organization - * generic/tclCmdAH.c (Tcl_ErrorObjCmd): of the management of - * generic/tclCmdMZ.c (TclProcessReturn): the errorCode value. - * tests/error.test (error-6.4-9): - - * generic/tclNamespace.c (TclTeardownNamespace): Tcl_Obj-ified - * tests/namespace.test (namespace-8.5,6): the save/restore - of ::errorInfo and ::errorCode during global namespace teardown. - Revised the comment to clarify why this is done, and added tests - that will fail if this is not done. - - * generic/tclResult.c (TclTransferResult): Added safety - checks so that unexpected undefined ::errorInfo or ::errorCode - will not lead to a segfault. - - * generic/tclTrace.c (TclCallVarTraces): Save/restore the flag - * tests/var.test (var-16.1): values that define part of the - interpreter state during variable traces. [Bug 1038021]. - -2004-09-30 Miguel Sofer - - * tests/subst.test (12.1-2): added tests for [Bug 1036649] - -2004-09-29 Don Porter - - * tests/basic.test (49.*): New tests for TCL_EVAL_GLOBAL. - -2004-09-29 Donal K. Fellows - - * generic/tclVar.c (TclObjLookupVar, TclObjLookupVar): - (TclObjUnsetVar2, SetArraySearchObj): - * generic/tclUtil.c (SetEndOffsetFromAny): - * generic/tclStringObj.c (Tcl_SetStringObj): - (Tcl_SetUnicodeObj, SetStringFromAny): - * generic/tclResult.c (ResetObjResult): - * generic/tclRegexp.c (Tcl_GetRegExpFromObj): - * generic/tclPathObj.c (TclFSMakePathRelative, SetFsPathFromAny): - (TclFSMakePathFromNormalized, Tcl_FSNewNativePath): - * generic/tclObj.c (TclFreeObj, Tcl_SetBooleanObj, SetBooleanFromAny): - (Tcl_SetDoubleObj, SetDoubleFromAny, Tcl_SetIntObj): - (SetIntOrWideFromAny, Tcl_SetLongObj, SetWideIntFromAny): - (Tcl_SetWideIntObj, TclSetCmdNameObj, SetCmdNameFromAny): - * generic/tclNamesp.c (SetNsNameFromAny, MakeCachedEnsembleCommand): - * generic/tclListObj.c (Tcl_SetListObj, SetListFromAny): - * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): - * generic/tclDictObj.c (SetDictFromAny): - * generic/tclCompile.c (TclInitByteCodeObj): - * generic/tclBinary.c (Tcl_SetByteArrayObj, SetByteArrayFromAny): - * generic/tclInt.h (TclFreeIntRep): Factorize out deletion of object - internal representation to a shared macro, so simplifying much code. - -2004-09-27 Miguel Sofer - - * generic/tclBasic.c (TclObjInvoke): fix for bogus gcc warning - about uninitialised variable. - -2004-09-27 Don Porter - - * generic/tclBasic.c: Removed internal routines TclInvoke, - * generic/tclInt.decls: TclGlobalInvoke, TclObjInvokeGlobal and - * tests/basic.test: the portion of TclObjInvoke that handles - calls without TCL_INVOKE_HIDDEN enabled. None of this code is - called any longer within the core, and the superior public - interface, Tcl_EvalObjv, is available for any external callers. - - * generic/tclIntDecls.h: make genstubs - * generic/tclStubInit.c: - - * generic/tclEvent.c (HandleBgErrors): Updated [bgerror] - invocations to make use of Tcl_Obj based routines, dropping - the calls to TclGlobalInvoke() - -2004-09-27 Vince Darley - - * generic/tclFileName.c: - * generic/tclFileSystem.h: - * generic/tclIOUtil.c: - * generic/tclPathObj.c: - * tests/cmdAH.test: - * tests/fileSystem.test: - * tests/winFCmd.test: fix to bad error message with 'cd' on - windows, when permissions are inadequate [Bug 1035462] and - to treatment of a volume-relative pwd on Windows [Bug 1018980]. - - * doc/FileSystem.3: added missing Tcl_GlobTypeData documentation - [Bug 935853] - -2004-09-27 Kevin Kenny - - * compat/strftime.c (Removed): - * generic/tclClock.c (removed TclClockOldscanObjCmd): - * generic/tclDate.c (Regenerated): - * generic/tclGetDate.y: - * generic/tclInt.decls (removed TclGetDate and TclpStrftime): - * generic/tclInt.h (removed TclGetDateInfo): - * generic/tclIntDecls.h (Regenerated): - * generic/tclStubInit.c (Regenerated): - * library/clock.tcl: - * unix/tclUnixTime.c (removed TclpStrftime): - * win/Makefile.in: - * win/makefile.bc: - * win/makefile.bc: - * win/tcl.dsp: - Continued refactoring of [clock] for TIP 173 changes. - Broke the free-form parser apart so that the Bison parser - is responsible for only parsing, while clock.tcl handles - relative times like "next Thursday", "next January". This - change is needed to make timezones other than :localtime - and :Etc/UTC work with free-form scanning. This change closes - out the issue identified as being "for another day" in - my log message of 2004-09-08. The refactored code also - eliminates the last known references to TclpStrftime and - TclGetDate, so those routines (including compat/strftime.c) - have been removed. The refactoring also has the benefit - that all storage in the Bison parser is now on the C stack, - eliminating any need for mutex protection around [clock scan]. - Also, changed the Makefiles so that 'make gendate' is - available on Windows as well as Unix. - - * generic/tclCmdAH.c (Tcl_FormatObjCmd): Removed some grubby - * generic/tclObj.c (SetBooleanFromAny): work-around code - that was needed only - because of Bug 868489. - - * generic/tclBasic.c (TclObjInvoke): Removed three unused - variables to silence a compiler warning in VC++. - -2004-09-27 Vince Darley - - * doc/FileSystem.3: fix to small typo. - -2004-09-26 Miguel Sofer - - * generic/tclCompCmds.c: - * generic/tclCompExpr.c: - * generic/tclCompile.c: - * generic/tclCompile.h: - * generic/tclInt.h: - * generic/tclProc.c: - * tests/compExpr-old.test: - * tests/compExpr.test: - * tests/expr.test: - * tests/for.test: - * tests/if.test: - * tests/incr.test: - * tests/while.test: - Report compilation errors at runtime, [Patch 1033689] by dgp. - -2004-09-23 Mo DeJong - - * unix/dltest/Makefile.in (clean): Fixup make clean - rule so that it does not delete all files when - SHLIB_SUFFIX is set to the empty string in a static build. - [Bug 1016726] - -2004-09-23 Don Porter - - * generic/tclBasic.c: Corrections to the 2004-09-21 commit - * generic/tclExecute.c: regarding ERR_ALREADY_LOGGED. That commit - * generic/tclNamesp.c: caused Tk test send-10.7 to fail. Added - * tests/namespace.test (25.7,8): tests in the Tcl test suite - * tests/pkg.test (2.25,26): to catch this error without the - aid of Tk in the future. - - * generic/tclCmdAH.c (Tcl_ExprObjCmd): Simplified the TclObjCmdProc - of [expr] with a call to Tcl_ConcatObj. - -2004-09-22 Don Porter - - * generic/tclCmdMZ.c (TclProcessReturn): Support the -errorline - * generic/tclCompile.c (TclCompileScript): option to [return]. - * tests/compile.test (16.23.*): Use that capability to defer reporting - * tests/misc.test (1.2): of parse errors until runtime. - Updated tests to reflect change. [Bug 1032805] - -2004-09-22 Miguel Sofer - - * generic/tclExecute.c (INST_START_CMD): - * tests/proc.test (7.2-3): fix for [Bug 729692] was incorrect - whenever a loop exception was returned. - -2004-09-22 Kevin B. Kenny - - * library/tzdata/America/Montevideo: Updated to reflect - ftp://elsie.nci.nih.gov/pub/tzdata2004d.tar.gz. (Changes - to Asia/Jerusalem were in the comments only.) [Routine - maintenance - no bug] Spanish-language description of the - change at http://www.presidencia.gub.uy/decretos/2004091502.htm - -2004-09-21 Don Porter - - * generic/tclCompCmds.c: Tolerate [append] syntax errors - * tests/appendComp.test (8.1): at compile time, and allow runtime - to raise the error (or succeed if a redefined [append] allows). - - * generic/tclBasic.c: Reworked management of the interp - * generic/tclCompile.c: flag ERR_ALREADY_LOGGED, to reduce - * generic/tclExecute.c: its exposure. Still left several - * generic/tclNamesp.c: references that are just too nice - on performace to do away with. These changes also resolve - an inconsistency in the ::errorInfo values produced by - [namespace eval x error foo bar] and - [namespace eval x {error foo bar}]. - - * generic/tclExecute.c (TclCompEvalObj): Simplified - the TclCompEvalObj routine. Much housekeeping now reliably - happens elsewhere. [Patch 1031949] - -2004-09-21 Donal K. Fellows - - * doc/interp.n: Tighten up wording on how [interp eval] and - [interp invokehidden] operate w.r.t. stack frames. [Bug 926590] - -2004-09-20 Don Porter - - * tests/error.test (error-6.2,3): Added more tests to verify - ::errorCode setting by/after a [catch]. - -2004-09-19 Miguel Sofer - - * generic/tclCmdAH.c: removed outdated comment [Bug 1029518]. - -2004-09-18 David Gravereaux - - * win/tclAppInit.c: Dde package can load into a safe interp. - Claim this fact for the Tcl_StaticPackage() call when the shell - is built with the TCL_USE_STATIC_PACKAGES option. - -2004-09-18 Donal K. Fellows - - * generic/tclExecute.c (TEBC-INST_LSHIFT,INST_RSHIFT): Ensure that - large shifts end up shifting correctly. [Bug 868467] - - * doc/FileSystem.3, doc/OpenFileChnl.3: More documentation fixes - from Mikhail Kolesnitchenko. [Patch 1022527] - * doc/*: Standardize highlighting of symbols defined in tcl.h - -2004-09-17 Don Porter - - * generic/tclBasic.c (Tcl_AddObjErrorInfo, Tcl_LogCommandInfo): - * generic/tclCmdAH.c ([catch], [error]): - * generic/tclCmdMZ.c ([return]): - * generic/tclProc.c (TclUpdateReturnInfo): - * generic/tclResult.c (Tcl_SetErrorCodeVA, Tcl_SetObjErrorCode) - (TclTransferResult): Refactored so that all errorCode setting - flows through Tcl_SetObjErrorCode(). This greatly reduces the - number of different places in the code that need to know details - about an internal bitflag field of the Interp struct. Also - places errorCode setting in one place for easier future mods. - -2004-09-17 Kevin B.Kenny - - * generic/tclDate.c: Revised tclGetDate.y to use bison instead - * generic/tclGetDate.y: of yacc to build the parser, eliminating - * generic/tclInt.h: all the complicated hackery involving - * unix/Makefile.in: 'sed' postprocessing. Rebuilt the parser. - -2004-09-14 Kevin B. Kenny - - * generic/tclClock.c (ClockOldscanObjCmd): Silenced a compiler - warning (long passed as a param where unsigend long was - expected). 'Unsigned long' is wrong, but the fix is really - to change the signature of TclGetDate to return a structure of - its 'yy' variables and then do the remaining work inside - clock.tcl. But, as I said on 2004-09-08, that's a job for - another day. [Bug 1027993] - -2004-09-10 Miguel Sofer - - * doc/interp.n: - * generic/tclInterp.c (TclPreventAliasLoop, AliasCreate): - * tests/interp.test (17.4-6, 19.3-4): fixing problems with - renaming of aliases [Bugs 707104 1026493]. Fix designed by dgp. - -2004-09-13 Donal K. Fellows - - * generic/tclNamesp.c (NsEnsembleImplementationCmd): Add token - field to internal rep of EnsembleCmdRep structure so that we can - check it to see if the subcommand object is really being used with - the same ensemble. [Bug 1026903] - -2004-09-11 Kevin B. Kenny - - * generic/tclClock.c (TclMktimeObjCmd): Corrected a bad check - for error return from 'mktime'. - * generic/tclObj.c (Tcl_GetIntFromObj): Corrected a problem where - demoting a wide to an int failed on a big-endian machine. - [Bug 1026125]. - * tests/clock.test (clock-43.1): Added regression test for - error return from 'mktime'. - -2004-09-11 Miguel Sofer - - * generic/tclExecute.c (INST_CONCAT1): fix for [Bug 1025834]; - avoid unnecessary string copies. - -2004-09-10 David Gravereaux - - * tests/tcltest.test: tcltest-12.3-4 needed to have - ::tcltest::loadScript set to empty in their -setup - -2004-09-10 Donal K. Fellows - - * generic/tclObj.c (SetIntOrWideFromAny): Rewritten integral value - parsing code so that values do not flip so easily between numeric - representations. Thanks to KBK for this! [Bug 868489] - - * generic/tclIO.c (Tcl_Seek): Make sure wide seeks do not fail to - set ::errorCode on error. [Bug 1025359] - -2004-09-10 Andreas Kupries - - * generic/tcl.h: Micro formatting fixes. - * generic/tclIOGT.c: Channel version fixed, must be 3, to have - wideseekProc. Thanks to David Graveraux . - -2004-09-11 Don Porter - - * generic/tclNamespace.c (TclGetNamespaceForQualName): Resolved - longstanding inconsistency in the treatment of the TCL_NAMESPACE_ONLY - flag revealed by testing the 2004-09-09 commits against Itcl. - TCL_NAMESPACE_ONLY now acts as specified in the pre-function - comment, forcing resolution in the passed in context namespace. - It has been incorrectly forcing resolution in the interp's current - namespace. - -2004-09-10 Kevin Kenny - - * library/clock.tcl: Fixed a bug where %z always put a plus - sign on the time zone in :localtime. - * tests/clock.test: Added test case for the above bug. - -2004-09-10 Miguel Sofer - - * generic/tclExecute.c (INST_CONCAT1): added a peephole - optimisation for concatting an empty string. This enables - replacing the idiom 'K $x [set x {}]' by '$x[set x {}]' for - fastest execution. - -2004-09-09 David Gravereaux - - * win/tclWinConsole.c: Calls to WriteFile and WriteConsoleA - changed to WriteConsole for simplicity. - -2004-09-09 Don Porter - - * generic/tclNamesp.c (Tcl_ForgetImport): Corrected faulty - * tests/namespace.test: logic that relied exclusively on string - matching and failed in the presence of [rename]s. [Bug 560297] - Also corrected faulty prevention of [namespace import] cycles. - [Bug 1017299] - -2004-09-08 Don Porter - - * generic/tclBasic.c (Tcl_CreateInterp): Removed obsolete - field for storing the string-based command procedure of built-in - commands. We no longer have any string-based built-in commands! - -2004-09-08 Kevin B. Kenny - - * compat/strftime.c (_conv): Corrected a problem where hour 0 - would format as a blank format group with %k. - * doc/clock.n: Corrected a buglet in the header information. - [Bug 1024058] - * generic/tclClock.c (TclClockMktimeObjCmd): Fixed a bug where - the month was scanned incorrectly in -timezone :localtime. - * tests/clock.test (clock-34.*,clock-40.1, clock-41.1): Adjusted the - clock-34.* test cases so that the consistency check is performed - in :localtime rather than the current time zone. This change - allows dealing with issues where the C library has a different - idea of DST conversion than Tcl. (Real fix would be to break - TclGetDate into separate parser and time converter, and do - the time conversion in clock.tcl. That's for another day.) - Added regression test case for the bug where month was scanned - incorrectly in -timezone :localtime. [Bug 1023779] Added - regression test case for %k at the zero hour. - -2004-09-07 David Gravereaux - - * win/makefile.vc: some quoting needed to be removed as it was - breaking with VC7. [Bug 1023150] - -2004-09-07 Kevin B. Kenny - - * doc/clock.n: Documented the default -format, and changed - references to a (nonexistent) msgcat command to refer to - the msgcat package. [Bug 1023870] - * generic/tclTimer.c: Removed a premature optimisation that - attempted to store the assoc data in the client data; the - optimisation caused a bug that [after] would overwrite - its imports. [Bug 1016167] - * library/clock.tcl (InitTZData, ClearCaches): Changed so that the - in-memory time zone :UTC (and its aliases) always gets - reinitialised, in case tzdata is absent. [Bug 1019537, 1023779] - * library/tzdata/*: Regenerated. - * tests/clock.test (clock-31.*, clock-39.1): Corrected a problem - where the 'system' locale tests fail on a non-English Windows - machine. [Bug 1023761]. Added a test to make sure that alias - time zones load correctly. [Bug 1023779]. - * tests/timer.test (timer-1.1, timer-2.1): Changed to (one hopes!) - be more resilient on an overloaded system, if [after 200] sleeps - for 300 ms or longer. - * tools/tclZIC.tcl (writeLinks): Corrected a problem where - alias time zone names were written incorrectly, causing them - to fail to load at run time. [Bug 1023779]. - * win/tclWinTime.c (Tcl_GetTime): Eliminated CPUID tests on - Win64 - assuming that HAL vendors now do a better job of - keeping the performance counters synchronized among CPU's. - [Bug 1020445] - -2004-09-06 Donal K. Fellows - - * doc/tclvars.n, doc/tcltest.n, doc/tclsh.1, doc/safe.n, doc/expr.n: - * doc/WrongNumArgs.3, doc/Utf.3, doc/TraceVar.3, doc/Thread.3: - * doc/TCL_MEM_DEBUG.3, doc/SubstObj.3, doc/StdChannels.3: - * doc/SetResult.3, doc/RegExp.3, doc/RegConfig.3, doc/RecEvalObj.3: - * doc/PrintDbl.3, doc/ParseCmd.3, doc/Panic.3, doc/ObjectType.3: - * doc/Object.3, doc/Namespace.3, doc/Interp.3, doc/IntObj.3: - * doc/Hash.3, doc/GetOpnFl.3, doc/GetIndex.3, doc/Eval.3: - * doc/Encoding.3, doc/DoubleObj.3, doc/DictObj.3, doc/CrtTimerHdlr.3: - * doc/CrtObjCmd.3, doc/CrtMathFnc.3, doc/CrtCommand.3, doc/CrtChannel.3: - * doc/ChnlStack.3, doc/ByteArrObj.3, doc/AssocData.3, doc/Alloc.3: - More documentation fixes from Mikhail Kolesnitchenko. [Patch 1022527] - -2004-09-03 Donal K. Fellows - - * unix/tclUnixFCmd.c: Stop NULL interp arguments from triggering a - crash when an error happens. [Bug 1020538] - -2004-09-02 Donal K. Fellows - - * doc/lsearch.n: Clarified meaning of -dictionary. [Bug 759545] - -2004-09-02 Vince Darley - - * win/makefile.vc: clock.tcl needs to be installed. - -2004-09-01 Jeff Hobbs - - * win/tclWinReg.c (BroadcastValue): WIN64 cast corrections - - * win/tclWinDde.c (DdeClientWindowProc): - (DdeServicesOnAck, DdeEnumWindowsCallback): WIN64 corrections - - * win/tclWin32Dll.c (TclWinCPUID): need _asm for WIN64 (Itanium), - until we have it, just return unknown. [Bug 1020445] - -2004-09-01 Donal K. Fellows - - * doc/regsub.n, doc/RegConfig.3, doc/Environment.3: - * doc/CrtChannel.3, doc/safe.n: Use correct abbreviations. - -2004-08-31 Donal K. Fellows - - * doc/trace.n, doc/socket.n, doc/registry.n, doc/pid.n: - * doc/namespace.n, doc/msgcat.n, doc/lsort.n, doc/lsearch.n: - * doc/linsert.n, doc/info.n, doc/http.n, doc/history.n: - * doc/format.n, doc/file.n, doc/exec.n, doc/dde.n, doc/clock.n: - * doc/catch.n, doc/binary.n: More spelling and grammar fixes from - Mikhail Kolesnitchenko. [Patch 1018486] - -2004-08-31 Vince Darley - - * doc/FileSystem.3: - * generic/tclIOUtil.c: Clarified documentation regarding ability - of a filesystem to say that it doesn't support a given operation - using the EXDEV posix error code (copyFileProc, renameFileProc, - etc), and updated one piece of code to ensure correct behaviour - when an operation is not supported [Bug 1017072] - - * tests/fCmd.test: fix to test suite problem [Bug 1002884] - -2004-08-31 Daniel Steffen - - * unix/Makefile.in (install-libraries): portable sh fix. - -2004-08-30 Donal K. Fellows - - * generic/tclCmdMZ.c (Tcl_StringObjCmd): Stop [string map] from - crashing when its map and input string are the same object. - -2004-08-27 Donal K. Fellows - - * generic/tclNamesp.c (FindEnsemble): Factor out the code to - convert a command name into an ensemble configuration and add - support for ignoring [namespace import] link chains. [Bug 1017022] - (NamespaceWhichCmd): Rework to use newer option parsing API. - -2004-08-27 Daniel Steffen - - * unix/Makefile.in: added customization of default module path roots - via TCL_MODULE_PATH makefile variable. - * macosx/Makefile: add platform standard locations to default - module path roots. [Patch 942881] - - * tests/env.test: macosx fixes. - -2004-08-25 Don Porter - - * tests/timer.test (timer-10.1): Test for Bug 1016167. - * generic/tclTimer.c: Workaround for situation when a - [namespace import] causes the objv[0] value to be something - other than what Tcl_AfterObjCmd expects. [Bug 1016167]. - -2004-08-25 Donal K. Fellows - - * generic/tclNamesp.c (NsEnsembleImplementationCmd): Use the - ensemble command token to get the name of the ensemble for passing - to the -unknown handler instead of relying on objv[0], which may - contain useless info in the presence of [namespace import]. - Problem found by Don Porter when investigating [Bug 1016167]. - -2004-08-24 Don Porter - - * generic/tclProc.c: The routine TclProcInterpProc was a - * generic/tclTestProcBodyObj.c: specific instance of the general - service already provided by TclObjInvokeProc. Removed - TclProcInterpProc and TclGetInterpProc from the code... - - * generic/tclInt.decls ...and from the internal stubs table. - * generic/tclIntDecls.h - * generic/tclStubInit.c - -2004-08-24 Donal K. Fellows - - * doc/string.n: Added clarifying note. - -2004-08-23 Don Porter - - * library/auto.tcl: Updated [tcl_findLibrary] search path - to include any [::pkgconfig get scriptdir,runtime] directory, - as well as the $::auto_path. [RFE 695441] - -2004-08-21 Kevin B. Kenny - - * tests/clock.test (clock-38.1): Changed TZ setting to specify - CET in excruciating detail to deal with systems that lack the - Posix defaults for DST changes (and to be formally correct with - the change dates for CET). - -2004-08-19 Donal K. Fellows - - * generic/tclScan.c (Tcl_ScanObjCmd, ValidateFormat): Ensure that - the %ld conversion works correctly on 64-bit platforms. [Bug 1011860] - -2004-08-19 Kevin Kenny - - * library/clock.tcl (format): Changed default timezone format - from alphabetic to numeric to produce scannable times in more - locales. - * tests/clock.test (clock-37.1): Removed now-unused 'needPST' - constraint and the comments that refer to it. - -2004-08-18 Andreas Kupries - - * library/init.tcl: Integrated TIP #189. We source a separate file - (see below), instead of inlining the contents of that file. This - should beeasier to maintain, and easier to backport/install in - 8.4 installations. - - Note: Usage of Tcl Modules is restricted to non-safe interps. It - cannot be loaded into a safe interp. - - * library/tm.tcl: New file, the v2 reference implementation for - TIP #189, Tcl Modules. - - * doc/tm.n: New file, documentation for Tcl Modules, based on the - TIP. - - * unix/mkLinks: Regenerated. - * win/makefile.vc: Added tm.tcl to list of files to install. - -2004-08-18 Kevin Kenny - - * tests/httpd (httpdRespond): Corrected an abuse of the [clock] - command that caused test failures for some values of [clock clicks]. - - * doc/clock.n - * generic/tclBasic.c (Tcl_CreateInterp, Tcl_HideUnsafeCommands): - * generic/tclClock.c (all): - * generic/tclInt.h: - * generic/tclInterp.c (CreateSlave): - * library/clock.tcl: (new file) - * library/init.tcl (clock): - * library/msgs/*.msg:(new files) - * library/tzdata/*: - * library/tzdata/*/*: - * library/tzdata/*/*/*: (new files) - * tools/installData.tcl: (new file) - * tools/loadICU.tcl: (new file) - * tools/makeTestCases.tcl: (new file) - * tools/tclZIC.tcl: (new file) - * unix/Makefile.in: - * unix/configure: (regenerated) - * unix/tcl.m4: - * tests/clock.test (all): - * win/Makefile.in: - * win/Makefile.vc: - Implementation of TIPs #173 and #209. - - The [clock] command is now a Tcl ensemble, with most of its - functionality written in Tcl and callouts to C code only to - access low-level functions such as localtime, mktime and - tzset. - - In addition to the functionality changes called out in the two - TIPs, it is worth noting that the [clock] command in a safe - slave interpreter is now an alias to the [clock] command in the - master, and that [clock] is otherwise not expected to function - entirely correctly in safe interps. C code that simply does - Tcl_MakeSafe needs to be aware that [clock] may need special - handling. (It appears unlikely that such code actually exists.) - - One incompatibility of note is that if the time zone cannot - be determined from the TZ, TCL_TZ environment variables, or - from the Windows control panel, so that the C library must be - used for date and time conversions, then times outside the - range of time_t will fail; they used to return bad data silently. - - Many thanks to all the many people who assisted with testing, - debugging, criticism of the specification, and localisation. - Deserving of particular mention are Joe English, Clif Flynt, Donal - K. Fellows, Jeff Hobbs, Cameron Laird, Arjen Markus, Reinhard Max, - Christopher Nelson, Steve Offutt, Donald G. Porter, Pascal - Scheffers, Peter da Silva and Richard Suchenwirth-Bauersachs. - - *** POTENTIAL INCOMPATIBILITY *** - -2004-08-16 Miguel Sofer - - * doc/SetVar.3: - * generic/tclTest.c (TestseterrorcodeCmd): - * generic/tclVar.c (TclPtrSetVar): - * tests/result.test (result-4.*, result-5.*): [Bug 1008314] - detected and fixed by dgp. - -2004-08-13 Don Porter - - * library/msgcat/msgcat.tcl: Added checks to prevent [mclocale] - * tests/msgcat.test: from registering filesystem paths to possibly - malicious code to be evaluated by a later [mcload]. - -2004-08-10 Zoran Vasiljevic - - * unix/tclUnixThrd.c (TclpThreadCreate): changed handling of - the returned thread ID since broken on 64-bit systems (Cray). - Thanks to Rob Ratcliff for reporting the bug. - -2004-08-03 Donal K. Fellows - - * generic/tclNamesp.c (MakeCachedEnsembleCommand): Initialize the - epoch field cached in the subcommand. [Bug 989298] - (NsEnsembleImplementationCmd): Plug a leak (thanks to Miguel Sofer - for spotting it with valgrind) and reduce the number of goto - labels to make the code clearer. - -2004-08-02 Don Porter - - * library/package.tcl (pkg_mkIndex): Updated [pkg_mkIndex] to - make use of [glob -directory $dir -tails] and return options. - - TIP#207 IMPLEMENTATION - - * doc/interp.n: Added support for a -namespace option to the - * generic/tclBasic.c: [interp invokehidden] command. Also added an - * generic/tclInt.h: internal routine TclObjInvokeNamespace() and - * generic/tclInterp.c: corrected the flag names TCL_FIND_ONLY_NS and - * generic/tclNamesp.c: TCL_CREATE_NS_IF_UNKNOWN that are passed to the - * generic/tclTrace.c: internal routine TclGetNamespaceForQualName(). - * tests/interp.test: [Patch 981841] - - * generic/tclLiteral.c (TclCleanupLiteralTable): Corrected - * tests/compile.test (compile-12.4): flawed deletion of literal - internal reps that could lead to accessing of freed memory. - Thanks to Kevin Kenny for test case and fix [Bug 1001997]. - -2004-07-30 Don Porter - - * tests/safe.test (safe-2.1): Disabled senseless test. [Bug 999612] - - * library/auto.tcl (auto_reset): Removed "protected" list of commands - from [auto_reset]. All entries in the auto_index can be re-loaded. - * library/package.tcl: Updated comment to reflect 2004-07-28 commit. - - * generic/tclEvent.c (Tcl_Finalize): Re-organized Tcl_Finalize - so that Tcl_ExitProc's that call Tcl_Finalize recursively do not - cause deadlock. [Patch 999084 fixes Tk Bug 714956] - -2004-07-30 Daniel Steffen - - * unix/configure: - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Darwin: instead of setting PLAT_OBJS - to explict object files in tcl.m4, refer to MAC_OSX_OBJS makefile var. - * unix/Makefile.in: added MAC_OSX_OBJS variable. - -2004-07-29 Don Porter - - * library/package.tcl: [::pkg::create] is now an alias. Test - safe-2.1 will now fail until Bug 999612 is corrected. - -2004-07-28 Don Porter - - * library/package.tcl: Moved private command - * library/tclIndex: [pkg_compareExtension] into ::tcl::Pkg. - * tests/pkg_mkIndex.test: Also moved implementation of - [::pkg::create] to [::tcl::Pkg::Create]. - -2004-07-25 Pat Thoyts - - * tests/io.test: Make io-61.1 create file as binary to pass on Win32 - -2004-07-23 Miguel Sofer - - * generic/tclVar.c: simplify tclLocalVarNameType, removing the - reference to the corresponding proc. The reference is now seen as - unnecessary, and it may cause leaking circular references under - some circumstances (see for example [Bug 994838]). - -2004-07-22 Don Porter - - * tests/eofchar.data (removed): Test io-61.1 now generates its own - * tests/io.test: file of test data as needed. - -2004-07-20 Jeff Hobbs - - * generic/tclEvent.c: Correct threaded obj allocator to - * generic/tclInt.h: fully cleanup on exit and allow for - * generic/tclThreadAlloc.c: reinitialization. [Bug #736426] - * unix/tclUnixThrd.c: (mistachkin, kenny) - * win/tclWinThrd.c: - -2004-07-21 Kevin Kenny - - * generic/tclBasic.c (DeleteInterpProc): - * generic/tclLiteral.c (TclCleanupLiteralTable): - * generic/tclInt.h: added a TclCleanupLiteralTable function, - called from DeleteInterpProc, that frees internal representations - of shared literals early when an interpreter is being deleted. - This change corrects a number of memory mismanagement issues in - the cases where the internal representation of one literal - contains a reference to another, and avoids conditions such as - resolved variable names referring to procedure and namespace - contexts that no longer exist. [Bug 994838] - -2004-07-20 Daniel Steffen - - * unix/Makefile.in: - * win/Makefile.in: added 'install-private-headers' makefile target - to allow optionally installing private tcl headers. [FR 922727] - - * macosx/Makefile: use new 'install-private-headers' target - to install private headers into framework. [FR 922727] - - * unix/tclUnixFile.c (NativeMatchType): added support for - readonly matching of user immutable files (where available). - - * macosx/tclMacOSXBundle.c: dynamically acquire address for - CFBundleOpenBundleResourceMap symbol, since it is only present in - full CoreFoundation on Mac OS X and not in CFLite on pure Darwin. - -2004-07-19 Zoran Vasiljevic - - * win/tclwinThrd.c: redefined MASTER_LOCK to call - TclpMasterLock. Fixes Bug #987967 - -2004-07-17 Vince Darley - - * generic/tclIOUtil.c: fix to rare 'cd' infinite loop in - normalization with vfs [Bug 991420]. - * tests/fileSystem.test: added test for above bug. - - * doc/FileSystem.3: clarified documentation of posix error - codes in 'remove directory' FS proc - 'EEXIST' is used to - signify a non-empty directory error (bug reported against - tclvfs). - -2004-07-16 Jeff Hobbs - - * unix/Makefile.in, unix/tcl.m4: move (C|LD)FLAGS after their - * unix/configure.in, unix/configure: _DEFAULT to allow for env - setting to override m4 switches. Move SC_MISSING_POSIX_HEADERS up - and consolidate calls to limit redundancy in configure. - (CFLAGS_WARNING): Remove -Wconversion - (SC_ENABLE_THREADS): Set m4 to force threaded build when built - against a threaded Tcl core. - -2004-07-16 Andreas Kupries - - * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Corrected a typo in the - generation of error messages and simplified by reusing data in a - variable instead of retrieving the string again. - Fixes [Tcl SF Bug 835289]. - - * doc/OpenFileChnl.3: Added description of the behaviour of - Tcl_ReadChars when its 'charsToRead' argument is set to - -1. Fixes [Tcl SF Bug 934511]. - - * doc/CrtCommand.3: Added note that the arguments given to the - command proc of a Tcl_CreateCommand are in utf8 since Tcl - 8.1. Closing [Tcl SF Patch 414778]. - - * doc/ChnlStack.3: Removed the declaration that the interp - argument to Tcl_(un)StackChannel can be NULL. This fixes [Tcl SF - Bug 881220], reported by Marco Maggi - . - - * tests/socket.test: Accepted two new testcases by Stuart Casoff - checking that -server and -async - don't go together [Tcl SF Bug 796534]. - - * unix/tclUnixNotfy.c (NotifierThreadProc): Accepted Joe - Mistachkin's patch for [Tcl SF Bug 990500], properly closing the - notifier thread when its exits. - -2004-07-15 Andreas Kupries - - * unix/tclUnixThrd.c (TclpFinalizeMutex): Accepted Joe - Mistachkin's patch for [Tcl SF Bug 990453], closing leakage of - mutexes. They were not destroyed properly upon finalization. - -2004-07-15 Andreas Kupries - - * generic/tclIO.h (CHANNEL_INCLOSE): New flag. Set in - * generic/tclIO.c (Tcl_UnregisterChannel): 'Tcl_Close' while the - * generic/tclIO.c (Tcl_Close): close callbacks are - run. Checked in 'Tcl_Close' and 'Tcl_Unregister' to prevent - recursive call of 'close' in the close-callbacks. This is a - possible error made by implementors of virtual filesystems based - on 'tclvfs', thinking that they have to close the channel in the - close handler for the filesystem. - -2004-07-14 Andreas Kupries - - * generic/tclIO.c: - * generic/tclIO.h: - * Not reverting, but #ifdef'ing the changes from May 19, 2004 out - of the core. This removes the ***POTENTIAL INCOMPATIBILITY*** - for channel drivers it introduced. This has become possible due - to Expect gaining a BlockModeProc and now handling blockingg and - non-blocking modes correctly. Thus [SF Tcl Bug 943274] is still - fixed if a recent enough version of Expect is used. - - * doc/CrtChannel.3: Added warning about usage of a channel without - a BlockModeProc. - -2004-07-15 Andreas Kupries - - * generic/tclIOCmd.c (Tcl_PutsObjCmd): Added length check to the - old depreceated newline syntax, to ensure that only "nonewline" - is accepted. [Tcl SF Bug 985869], reported by Joe Mistachkin - . - -2004-07-15 Zoran Vasiljevic - - * generic/tclEvent.c (Tcl_Finalize): stuffed memory leak - incurred by re-initializing of TSD slots after the last call to - TclFinalizeThreadData (done from within Tcl_FinalizeThread()). - We basically just repeat the TclFinalizeThreadData() once more - before tearing down TSD keys in TclFinalizeSynchronization(). - There should be more elaborate mechanism in place for handling - such issues, based on thread cleanup handlers registered on the - OS level. Such change requires much more work and would also - require TIP because some visible parts of Tcl API would have to - be modified. In the meantime, this will do. - - * generic/tclNotify.c (TclFinalizeNotifier): Added conditional - notifier finalization based on the fact that an TclInitNotifier - has been called for the current thread. This fixes the Tcl - Bug #770053 again. Hopefully this time w/o unwanted side-effects. - -2004-07-15 Kevin Kenny - - * generic/tclLiteral.c (TclReleaseLiteral): Removed unused - variable 'codePtr' to silence a message from VC++. - -2004-07-15 Miguel Sofer - - * generic/tclCompile.c (TclCompileScript): - * generic/tclLiteral.c (TclReleaseLiteral): fix for [Bug 467523], - which resurfaced with the latest changes. The previous strategy - was to have special code in TclReleaseLiteral to handle the - self-references generated by empty scripts. The new approach - avoids the self-reference altogether, by having empty scripts - return an unshared literal. - -2004-07-15 Zoran Vasiljevic - - * generic/tclEvent.c (NewThreadProc): Backout of changes - to fix the Tcl Bug #770053. See SF bugreport for more info. - -2004-07-11 Miguel Sofer - - * generic/tclBasic.c (Tcl_EvalEx): leak fix by dgp, release - objv[objectsUsed] on error. - -2004-07-11 Miguel Sofer - - * generic/tclParse.c (Tcl_SubstObj): leak fix by dgp, release - result on error. - -2004-07-11 Donal K. Fellows - - * generic/tclNamesp.c (BuildEnsembleConfig): Don't forget to clean - out references when deleting the hash table. - * generic/tclDictObj.c (Tcl_DictObjRemoveKeyList): Oops, forgot to - delete value object when removing the hash entry. [Bug 989093 in part] - -2004-07-11 Miguel Sofer - - * generic/tclExecute.c (TEBC): fixed leak of expandNestList objs - when there is an error while an expansion is in progress (code - added at checkForCatch). - -2004-07-11 Vince Darley - - * generic/tclIOUtil.c: fix to 'cd' bug when vfs is active - [Bug 986944 in tclvfs project] - this bug recently introduced - by some threading fixes. Need to work out how to add - tests for this. - -2004-07-10 Kevin Kenny - - * tests/clock.test (clock-2.11): Changed the test so that - it isn't an infinite loop when run under valgrind on a slow - virtual machine. Thanks to Miguel Sofer for the bug report. - Also put in code to restore env(LC_TIME) after tests complete, - silencing a warning from 'make TESTFLAGS="-debug 1" test'. - -2004-07-08 Miguel Sofer - - * generic/tclBasic.c (DeleteInterpProc): reverted the modification - of 3 days ago, as the leak of [Bug 983660] is now handled by the - change in TclCleanupByteCode. - * generic/tclCompile.c (TclCleanupByteCode): let each bytecode - remove its references to literals at interp deletion, without - updating the dying literal table. - * generic/tclLiteral.c (TclDeleteLiteralTable): with the above - change to TclCleanupByteCode, this function now removes a single - reference to the literal object and cleans up its own structures. - -2004-07-08 Kevin Kenny - - * win/tclWinInit.c (AppendEnvironment): Silenced a compilation - warning about a type mismatch. - -2004-07-07 Miguel Sofer - - * generic/tclCompile.c (TclCompileScript): fix for [Bug 458361]. - Single-word scripts are compiled with an unshared cmdName to avoid - shimmering between bytecode and cmdName reps. - -2004-07-07 Don Porter - - * generic/tclCmdMZ.c (TclMergeReturnOptions): Simplified logic and - removed potential memory leak. [Bug 986257]. - -2004-07-07 Donal K. Fellows - - * tools/man2help2.tcl (setTabs, IPmacro): Added support for the - more advanced *roff macros used in Tk's doc/bind.n - - * generic/tclObj.c (TclInitObjSubsystem): Declare all current - object types. - -2004-07-06 Don Porter - - * tests/cmdMZ.test (cmdMZ-return-2.17): Added a test that a word - containing backslash-quoted value is treated correctly. - - * generic/tclCompile.c (TclWordKnownAtCompileTime): [Bug 986196] - Corrected flaw above and the flaw that caused TCL_TOKEN_SIMPLE_WORDs - to have their original word value copied ( "{a b}" ) rather than the - actual value ( "a b" ). Thanks to Kevin Kenny for report and tests. - -2004-07-06 Kevin B. Kenny - - * tests/cmdMZ.test (cmdMZ-return-2.15,cmdMZ-return-2.16): - Added a test that a return code containing spaces is correctly - returned. - -2004-07-06 Donal K. Fellows - - * tools/man2html2.tcl (IPmacro, setTabs): Added support for the - more advanced *roff macros used in Tk's doc/bind.n - -2004-07-05 Miguel Sofer - - * generic/tclBasic.c (DeleteInterpProc): fix for [Bug 983660], - found by pspjuth. Tear down the global namespace before freeing - the interp handle, to allow the bytecodes to free their non-shared - literals. - * generic/tclLiteral.c (TclReleaseLiteral): moved special code for - self-ref so that it is also used for non-shared literals. Possible - bug found by inspection. - -2004-07-03 Miguel Sofer - - * generic/tclExecute.c (ExprRoundFunc): - * tests/expr-old.test (39.1): added support for wide integers to - round(); [Bug 908375], reported by Hemang Lavana. - -2004-07-03 Miguel Sofer - - * generic/tclCompile.h: - * generic/tclInt.decls: - * generic/tclIntDecls.h: - * generic/tclStubInit.c: Moved declaration of TclCompEvalObj() - from tclCompile.h to the internal stubs table, for compiler - experimentation. - -2004-07-02 Jeff Hobbs - - * generic/regcomp.c (stid): correct minor pointer size error - - * generic/tclPipe.c (TclCreatePipeline): applied TIP #202 patch - * doc/exec.n, tests/exec.test: that adds 2>@1 as a - special case redirection of stderr to the result output. - -2004-07-02 Kevin B. Kenny - - * tests/io.test: Changed several tests to run the event - loop rather than just calling [update] periodically, avoiding - intermittent failures (usually in io-29.32) that stemmed from - unreaped processes on Windows. - * tests/winPipe.test (winpipe-1.11): Fixed a bug that caused - test to fail if the path name of the working directory contained - whitespace [Bug 678430] - -2004-07-01 Vince Darley - - * tests/fileSystem.test: Added test for [Bug 970529] - -2004-07-01 Donal K. Fellows - - * win/README.binary, win/README: Updated references to Tcl and Tk - 8.4 to point to 8.5 instead. Thanks to Theo Verelst for spotting - this. - * generic/tcl.h: Added note to help prevent those changes from - getting missed in the future. - - * doc/Namespace.3, doc/load.n, doc/Limit.3: Typo fixes and remove - duplicate documentation. [Bug 983146] - -2004-06-30 Don Porter - - * tests/fileSystem.test: Minor correction to new fileSystem-9.X - tests so that they clean up temporary directories correctly. - -2004-06-30 Vince Darley - - * doc/filename.n: clarified behaviour concerning trailing - slashes in filenames [Bug 971976] - - * win/tclWinFile.c: - * tests/fileSystem.test: fix and tests for [Bug 979879] - -2004-06-30 Donal K. Fellows - - TIP#188 IMPLEMENTATION - - * doc/string.n, tests/string.test: Add 'wideinteger' to things - * generic/tclCmdMZ.c (Tcl_StringObjCmd): that can be tested for with - the [string is] subcommand. [Patch 940915, by Kevin Kenny] - -2004-06-29 Don Porter - - * win/tclWinInit.c: Corrected reference counting flaw in - recent changes. Thanks to Pat Thoyts. [Bug 981893]. - -2004-06-29 Vince Darley - - * win/tclWin32Dll.c: fix to compilation with VC++ 5.2 - -2004-06-29 Donal K. Fellows - - * library/safe.tcl: Make sure that the temporary variable is - local to the namespace and not inadvertently global. [Bug 981733] - -2004-06-24 Donal K. Fellows - - * tests/unixNotfy.test: Modified constraints so that testing with - a threaded tclsh (not tcltest) will not hang. - -2004-06-23 Don Porter - - * generic/tclThreadStorage.c: Corrected type casting errors that led - to calculation of a negative index value, thus accesses outside the - threadStorageCache array, thus memory corruption. Crash observed on - Mac OS X platform. - -2004-06-23 Joe Mistachkin - - * generic/tclThread.c: Implements platform independent thread storage - * generic/tclThreadStorage.c: mechanism and fixes associated bugs on - platforms where there is limited thread local storage space - (Win98/WinNT4). [Patch 976496] - - * generic/tclInt.decls: - * generic/tclIntDecls.h: Added thread storage functions to the - * generic/tclStubInit.c: internal stubs table. - - * unix/Makefile.in: - * unix/configure: - * unix/tcl.m4: - * win/makefile.vc: - * win/rules.vc: - * win/Makefile.in: Modified the unix, VC++, and Cygwin build systems - * win/configure: to include the new "tclThreadStorage.c" and the new - * win/tcl.m4: USE_THREAD_STORAGE define. - -2004-06-23 Pat Thoyts - - * tests/io.test: Added -force to 18.1 and 18.2. This was failing - on WinXP. - - * tests/winFCmd.test: Added a cleanup to winFCmd-16.11 to avoid a - failure in 16.12. - - * tests/eofchar.data: Added -kb option to ensure a binary checkout - to win32 systems. This fixes a failure in io-61.1 - - * win/makefile.vc: fix for bug #977369 about launching tclsh to - generate a tclConfig.sh with the nmake build system - -2004-06-23 Kevin B. Kenny - - * tests/winDde.test (createChildProcess): Added a 200-ms delay - (with the event loop live) when shutting down the test DDE server - process, With the delay in place, nuisance failures of tests - winDde-4.2, -6.5, and -6.6 appear to be much less frequent. - [Bug #957449] - -2004-06-23 Donal K. Fellows - - * tests/*.test: Standardize use of platform constraints. - - * unix/tclUnixInit.c (GetStackSize, TclpCheckStackSpace): - * unix/tclUnixThrd.c (TclpThreadGetStackSize): Added code to check - whether the C stack is about to be exceeded, from [Patch 746378] - by Joe Mistachkin but with substantial revisions. - -2004-06-22 Kevin Kenny - - * generic/tclEvent.c (NewThreadProc): Fixed broken build on - Windows caused by missing TCL_THREAD_CREATE_RETURN. - - * tests/stack.test (stack-3.1): Corrected nuisance error in - threaded builds. - -2004-06-22 Zoran Vasiljevic - - * generic/tclEvent.c: - * generic/tclInt.h: - * unix/tclUnixNotfy.c: - * unix/tclUnixThrd.c: - * win/tclWinThrd.c: [Bug #770053]. See bug report for - more information about what it does. - - * tests/unixNotfy.test: rewritten to use tcltest::threadReap - to gracefully wait for the test thread to exit. Otherwise - we got a race condition with main thread exiting before the - test thread. This exposed the long-standing Tcl lib issue - with resource garbage-collection on application exit. - -2004-06-21 Mo DeJong - - * win/tclWin32Dll.c (DllMain, _except_dllmain_detach_handler, - TclpCheckStackSpace, _except_checkstackspace_handler, - TclWinCPUID, _except_TclWinCPUID_detach_handler): - * win/tclWinChan.c (Tcl_MakeFileChannel, - _except_makefilechannel_handler): - * win/tclWinFCmd.c (DoRenameFile, - _except_dorenamefile_handler, DoCopyFile, - _except_docopyfile_handler): - Rework pushing of exception handler function pointer - so that compiling with gcc -O3 works. Remove empty - function call to avoid compiler warning. Mark the - DllMain function as noinline to avoid compiler - error from duplicated asm labels in generated code. - -2004-06-21 Donal K. Fellows - - * generic/tclThreadAlloc.c (Ptr2Block): Rewrote so as to maximize - the chance of detecting and reporting a memory inconsistency without - relying on things being consistent. [Bug 975895] - -2004-06-18 Don Porter - - * tests/load.test: Relaxed strictness of error message matching - for test load-2.3 so that it will pass on Mac OSX. - - * generic/tclEncoding.c: Static TclFindEncodings -> FindEncodings. - * generic/tclInt.h: Updated TclpFindExecutable() so that failed - * generic/tclUtil.c: attempts to find the executable are saved - * unix/tclUnixFile.c: just as successful finds are. [Patch 966053] - * unix/tclUnixTest.c: - -2004-06-18 Kevin B. Kenny - - * tests/winFCmd.test (winFCmd-16.12): Changed test to - compute the target directory, so as not to fail if the - user's HOME isn't the root. - -2004-06-19 Daniel Steffen - - * unix/tcl.m4: autoconf 2.5 fixes in Darwin section. - * unix/configure: autoconf-2.57 - -2004-06-18 Donal K. Fellows - - * unix/tclUnixInit.c (localeTable): Added some more locale to - encoding mapping info from Jim Huang - - * generic/tclInt.h (PendingObjData,TclFreeObjMacro,etc): - * generic/tclObj.c (TclFreeObj): Added scheme for making TclFreeObj() - avoid blowing up the C stack when freeing up very large object - trees. [Bug 886231] - - * win/tclWinInit.c (SetDefaultLibraryDir): Fix logic, simplify and - add comments. - -2004-06-17 Don Porter - - * generic/tclObj.c: Added missing space in panic message. - - * win/tclWinInit.c: Inform [tclInit] about the default library - directory via the ::tclDefaultLibrary variable. This should correct - a problem with my 2004-06-11 commit. Better solutions still in the - works. Thanks to Joe Mistachkin for pointing out the breakage. - -2004-06-16 Don Porter - - * doc/library.n: Moved variables ::auto_oldpath and - * library/auto.tcl: ::unknown_pending into ::tcl namespace. - * library/init.tcl: [Bugs 808319, 948794] - -2004-06-15 Donal K. Fellows - - * doc/binary.n: Added some notes to the documentation of the 'a' - format to address the point raised in [RFE 768852]. - -2004-06-15 Jeff Hobbs - - * unix/tclConfig.sh.in (TCL_EXTRA_CFLAGS): set to @CFLAGS@, which - is the configure-time CFLAGS. Addendum to m4 change on 2004-05-26. - -2004-06-14 Kevin Kenny - - * win/Makefile.in: Corrected compilation flags for tclPkgConfig.c - so that it doesn't require Stubs. - * generic/tclBasic.c (Tcl_CreateInterp): Removed comment stating - that TclInitEmbeddedConfigurationInformation needs Stubs; with the - change above, the comment is now erroneous. - -2004-06-11 Don Porter - - * doc/Encoding.3: Removed bogus claims about tcl_libPath. - - * generic/tclInterp.c (Tcl_Init): Stopped setting the - tcl_libPath variable. [tclInit] can get all its directories - without it. - - * tests/unixInit.test: Modified test code that made use of - tcl_libPath variable. - - * unix/tclUnixInit.c: Stopped setting the tclDefaultLibrary variable, - execept on the Mac OS X platform with HAVE_CFBUNDLE. In that - configuration we should seek some way to make use of the TIP 59 - facilities and get rid of that usage of tclDefaultLibrary as well. - - * generic/tclInterp.c: Updated [tclInit] to make $env(TCL_LIBRARY) an - absolute path, and to include the scriptdir,runtime configuration value - on the search path for init.tcl. - - * unix/tclUnixInit.c: The routines Tcl_Init() and TclSourceRCFile() - * win/tclWinInit.c: had identical implementations for both win and - * generic/tclInterp.c: unix. Moved to a single generic implementation. - * generic/tclMain.c: - * library/init.tcl: - * generic/tclInitScript.h (removed): - * unix/Makefile.in: - * win/tcl.dsp: - - * unix/configure.in: Updated TCL_PACKAGE_PATH value to - * win/configure.in: handle --libdir configuration. - - * unix/configure.in: autoconf-2.57 - * win/configure.in: - - * generic/tclBasic.c (Tcl_CreateInterp): Moved call to - TclInitEmbeddedConfigurationInformation() earlier in - Tcl_CreateInterp() so that other parts of interp creation - and initialization may access and use the config values. - -2004-06-11 Kevin Kenny - - * win/tclAppInit.c: Restored the 'setargv' procedure when - compiling with mingw. Apparently, the command line parsing in - mingw doesn't work as well as that in vc++, and the result was - (1) that winPipe-8.19 failed, and (2) that 'make test' would - work at all only with TESTFLAGS='-singleproc 1'. [Bug 967195] - -2004-06-10 Zoran Vasiljevic - - * generic/tclIOUtil.c: removed forceful setting of the - private cached current working directory rep from - within the Tcl_FSChdir(). We delegate this task to - the Tcl_FSGetCwd() which does this task anyway. - The relevant code is still present but disabled - temporarily until the change proves correct. The Tcl - test suite passes all test with the given change so - I suppose it is good enough. - -2004-06-10 Don Porter - - * unix/tclUnixInit.c (TclpInitLibraryPath): Disabled addition of - * win/tclWinInit.c (TclpInitLibraryPath): relative-to-executable - directories to the library search path. A first step in reform of - Tcl's startup process. - - ***POTENTIAL INCOMPATIBILITY*** - Attempts to directly run ./tclsh or ./tcltest out of a build - directory will either fail, or will make use of an installed - script library in preference to the one in the source tree. - Use `make shell` or `make runtest` instead. - - * tests/unixInit.test: Modified tests to suit above changes. - - * generic/tclPathObj.c: Corrected [file tail] results when operating - on a path produced by TclNewFSPathObj(). [Bug 970529] - -2004-06-09 Zoran Vasiljevic - - * generic/tclIOUtil.c: partially corrected [Bug 932314]. - Also, corrected return values of Tcl_FSChdir() to - reflect those of the underlying platform-specific call. - Originally, return codes were mixed with those of Tcl. - -2004-06-08 Miguel Sofer - - * generic/tclCompile.c: - * generic/tclExecute.c: handle warning [Bug 969066] - -2004-06-08 Donal K. Fellows - - * generic/tclHash.c (RebuildTable): Move declaration of variable - so it is only declared when it is used. [Bug 969068] - -2004-06-07 Donal K. Fellows - - * doc/lsearch.n: Added correct option to example. [Bug 968219] - -2004-06-05 Kevin B. Kenny - - * generic/tcl.h: Corrected Tcl_WideInt declarations so that the mingw - build works again. - * generic/tclDecls.h: Changes to the tests for - * generic/tclInt.decls: clock frequency in - * generic/tclIntDecls.h: Tcl_WinTime - * generic/tclIntPlatDecls.h: so that any clock frequency - * generic/tclPlatDecls.h: is accepted provided that - * generic/tclStubInit.c: all CPU's in the system share - * tests/platform.test (platform-1.3): a common chip, and hence, - * win/tclWin32Dll.c (TclWinCPUID): presumably, a common clock. - * win/tclWinTest.c (TestwincpuidCmd) This change necessitated a - * win/tclWinTime.c (Tcl_GetTime): small burst of assembly code - to read CPU ID information, which was added as TclWinCPUID in the - internal Stubs. To test this code in the common case of a - single-processor machine, a 'testwincpuid' command was added to - tclWinTest.c, and a test case in platform.test. Thanks to Jeff - Godfrey and Richard Suchenwirth for reporting this bug. [Bug - #976722] - -2004-06-04 Don Porter - - * generic/tcl.h: Restored #include to tcl.h, - rejecting the "fix" for "Bug" 945570. Tcl_FSSeek() needs the - values of SEEK_SET, etc. and too many extensions rely on tcl.h - providing stdio.h for them. - -2004-06-02 Jeff Hobbs - - * win/tclWinFile.c (TclpFindExecutable): when using - GetModuleFileNameA (Win9x), convert from CP_ACP to WCHAR then - convert back to utf8. Adjunct to 2004-04-07 fix. - -2004-06-02 David Gravereaux - - * tests/winPipe.test (winpipe-6.1): blocking set to 1 before - closing to ensure we get an exitcode. The windows pipe channel - driver doesn't differentiate between a blocking and non-blocking - close just yet, but will soon. Part of [Bug 947693] - -2004-06-02 Vince Darley - - * doc/file.n: fix to documentation of 'file volumes' (Bug 962435) - -2004-06-01 David Gravereaux - - * win/makefile.vc: check for either MSDEVDIR or MSVCDIR being in - the environment, for VC7. [Bug 942214] - - * generic/tclIO.c (Tcl_SetChannelOption): -buffersize wasn't - understanding hexidecimal notation nor was reporting number - conversion errors. The behavior to silently ignore settings - outside the acceptable range of Tcl_SetChannelBufferSize - (<10 or >1M) is unchanged. This silent ignoring behavior - might be up for review soon.. - -2004-05-30 David Gravereaux - - * win/tclWinPipe.c: - * win/tclWinPort.h: Reworked the win implementation of - Tcl_WaitPid to support exitcodes in the 'signed short' range. - Even though this range is non-portable, it is valid on windows. - Detection of exception codes are now more accurate. Previously, - an application that exited with ExitProcess((DWORD)-1); was - improperly reported as exiting with SIGABRT. - -2004-05-30 Donal K. Fellows - - * generic/tclInterp.c: Added comments describing the purposes of - each function in the limit implementation and rewrote the names of - some non-public functions for greater clarity of purpose. - * doc/interp.n: Added note about what happens when a limited - interpreter creates a slave interpreter. - * doc/Limit.3: Added manual page for the resource limit - subsystem's C API. [Bug 953903] - -2004-05-29 Joe English - - * doc/global.n, doc/interp.n, doc/lrange.n: - Fix minor markup errors. - -2004-05-28 Donal K. Fellows - - * doc/*.n: Added examples to many (too many to list) more man pages. - -2004-05-25 Miguel Sofer - - * generic/tclExecute.c: - * generic/tclVar.c: using (ptrdiff_t) instead of (int) casting to - correct compiler warnings [Bug 961657], reported by Bob Techentin. - -2004-05-27 Kevin B. Kenny - - * tests/clock.test: Added a single test for the presence of %G - in [clock format], and conditioned out the clock-10.x series if - they're all going to fail because of a broken strftime() call. - [Bug 961714] - -2004-05-27 Donal K. Fellows - - * generic/tclHash.c (CompareStringKeys): Added #ifdef to allow - people to instruct this function to use strcmp(). [FRQ 951168] - - * generic/tclVar.c: Moved declarations into #if guards so they - only happen when required. - * unix/tclUnixPort.h: Guard declaration of strtod() so it is only - enabled when we don't have a declaration in stdlib.h - * unix/tclUnixThrd.c (Tcl_CreateThread): Added declarations - * unix/tclUnixTest.c (AlarmHandler): and casts so that - * unix/tclUnixChan.c (TtyModemStatusStr): all functions are - * generic/tclScan.c (Tcl_ScanObjCmd): defined before use - * generic/tclDictObj.c (InvalidateDictChain): and no cross-type - * generic/tclCmdMZ.c (Tcl_StringObjCmd): uses are performed. - - The overall effect is to make building with gcc with the - additional flags -Wstrict-prototypes -Wmissing-prototypes produce - no increase in the total number of warnings (except for main(), - which is undeclared for traditional reasons.) - -2004-05-26 Jeff Hobbs - - * unix/Makefile.in: Rework configure ordering to TCL_LINK_LIBS, - * unix/tcl.m4: ENABLE_SHARED, CONFIG_CFLAGS, & ENABLE_SYMBOLS - * unix/configure: before TCL_EARLY_FLAGS and TCL_64BIT_FLAGS - * unix/configure.in: (about 400 lines earlier) in configure.in. - This forces CFLAGS configuration to be done before many tests, - which is needed for 64-bit builds and may affect other builds. - Also make CONFIG_CFLAGS append to CFLAGS directly instead of using - EXTRA_CFLAGS, and have LDFLAGS append to any existing value. - [Bug #874058] - * unix/dltest/Makefile.in: change EXTRA_CFLAGS to DEFS - -2004-05-26 Don Porter - - * library/tcltest/tcltest.tcl: Correction to debug prints and testing - * library/tcltest/pkgIndex.tcl: if TCLTEST_OPTIONS value. Corrected - * tests/tcltest.test: double increment of numTestFiles in - -singleproc 1 configurations. Updated tcltest-19.1 to tcltest 2.1 - behavior. Corrected tcltest-25.3 to not falsely report a failure - in tcltest.test. Bumped to tcltest 2.2.6. [Bugs 960560, 960926] - -2004-05-25 Jeff Hobbs - - * doc/http.n (http::config): add -urlencoding option (default utf-8) - * library/http/http.tcl: that specifies encoding conversion of - * library/http/pkgIndex.tcl: args for http::formatQuery. Previously - * tests/http.test: undefined, RFC 2718 says it should be - utf-8. 'http::config -urlencoding {}' returns previous behavior, - which will throw errors processing non-latin-1 chars. - Bumped http package to 2.5.0. - -2004-05-25 Donal K. Fellows - - * generic/tclInterp.c (DeleteScriptLimitCallback): Move all - deletion of script callback hash table entries to happen here so - the entries are correctly removed at the right time. [Bug 960410] - -2004-05-25 Miguel Sofer - - * docs/global.n: added details for qualified variable names - [Bug 959831] - -2004-05-25 Miguel Sofer - - * generic/tclNamesp.c (Tcl_FindNamespaceVar): - * tests/namespace.test (namespace-17.10-12): reverted commit of - 2004-05-23 and removed the tests, as it interferes with the - varname resolver and there are apps that break (AlphaTk). A fix - will have to wait for Tcl9. - - * generic/tclVar.c: Caching of namespace variables disabled: no - simple way was found to avoid interfering with the resolver's idea - of variable existence. A cached varName may keep a variable's name - in the namespace's hash table, which is the resolver's criterion - for existence. - - * tests/namespace.c (namespace-17.10): testing for interference - between varname caching and name resolver. - -2004-05-25 Kevin Kenny - - * tests/winFCmd.test: Correct test for the presence of a CD-ROM so - that it doesn't misdetect some other sort - of filesystem with a write-protected root as - being a CD-ROM drive. [Bug 918267] - -2004-05-25 Don Porter - - * tests/winPipe.test: Protect against path being set - * tests/unixInit.test: Unset path when done. - * tests/unload.test (unload-3.1): Verify [pkgb_sub] does not exist. - Delete interps when done. - * tests/stringComp.test: stop re-use of string.test test names - * tests/regexpComp.test: stop re-use of regexp.test test names - * tests/namespace.test (namespace-46.3): Verify [p] does not exist. - * tests/http.test: Clear away the custom [bgerror] when done. - * tests/io.test: Take care to use namespace variables. - * tests/autoMkindex.test (autoMkindex-5.2): Use variable "result" - that gets cleaned up. - * tests/exec.test: Clean up the "path" array. - * tests/interp.test (interp-9.3): Initialize res, so prior values - cannot make the test fail. - * tests/execute.test (execute-8.1): Updated to remove the trace - set on ::errorInfo . When left in place, that trace can cause - later tests to fail. - -2004-05-25 Donal K. Fellows - - * generic/tclBasic.c: Removed references to Tcl_RenameCommand from - * generic/tcl.h: comments. [Bug 848440, second part] - - * tests/fCmd.test: Rewrote tests that failed consistently on NFS - so they either succeed (through slightly more liberal matching of - the results) or are constrained to not run. [Bug 931312] - - * doc/bgerror.n: Use idiomatic open flags for working with log - files. [Bug 959602] - -2004-05-24 Jeff Hobbs - - * generic/tclExecute.c (VerifyExprObjType): use GET_WIDE_OR_INT to - properly have tclIntType used for smaller values. This corrects - TclX bug 896727 and any other 3rd party extension that created - math functions but was not yet WIDE_INT aware in them. - -2004-05-24 Donal K. Fellows - - * generic/tclInterp.c (TclInitLimitSupport): Made limits work on - platforms where sizeof(void*)!=sizeof(int). [Bug 959193] - -2004-05-24 Miguel Sofer - - * doc/set.n: accurate description of name resolution process, - referring to namespace.n for details [Bug 959180] - -2004-05-23 Miguel Sofer - - * generic/tclNamesp.c (Tcl_FindNamespaceVar): [Bug 959052] fixed, - insuring that no "zombie" variables are found. - * generic/tclVar.c (TclLookupSimpleVar): comments re [Bug 736729] - (predecessor of [Bug 959052]) removed. - * tests/namespace.test: added tests 17.10-12 - - The patch modifies non-documented behaviour, and passes every test - in the testsuite. However, scripts relying on the old behaviour - may break. - Note that the only behaviour change concerns the creative writing - of unset variables. More precisely, which variable will be created - when neither a namespace variable nor a global variable by that - name exists, as defined by [info vars]. The new behaviour is that - the namespace resolution process deems a variable to exist exactly - when [info vars] finds it - ie, either it has value, or else it - was "fixed" by a call to [variable]. - Note: this patch was removed on 2002-05-25. - -2004-05-22 Miguel Sofer - - * generic/tclVar.c (TclObjLookupVar, TclObjUnsetVar2): fix for new - (in tcl8.4) exteriorisations of [Bug 736729] due to the use of - tclNsVarNameType obj types. Reenabling the use of this objType - ("VAR ref absolute" benchmark down to 66 ms, from 230). - Added comments in TclLookupSimpleVar explaining my current - understanding of [Bug 736729]. - -2004-05-22 Miguel Sofer - - * generic/tclVar.c: fix for [Bug 735335]. The use of - tclNsVarNameType objs is still disabled, pending resolution of - [Bug 736729]. - -2004-05-21 Miguel Sofer - - * tests/namespace.test (namespace-41.3): removed the {knownBug} - constraint: [Bug 231259] is closed since nov 2001, and the fix of - [Bug 729692] (INST_START_CMD) makes the test succeed. - -2004-05-21 Donal K. Fellows - - * generic/tclExecute.c (TclExecuteByteCode): Move a few - declarations a short distance so pre-C99 compilers can cope. Also - fix so TCL_COMPILE_DEBUG path compiles... - -2004-05-21 Miguel Sofer - - * generic/tclExecute.c (TclExecuteByteCode): reorganised TEBC - automatic variables, defining them in tight blocks instead of at - the function level. This has three purposes: - - it simplifies the analysis of individual instructions - - it is preliminary work to the non-recursive engine - - it allows a better register allocation by the optimiser; under - gcc3.3, this results in up to 10% runtime in some tests - -2004-05-20 Donal K. Fellows - - * generic/tclInterp.c (TclLimitRemoveAllHandlers): - * generic/tclBasic.c (DeleteInterpProc): - * tests/interp.test (interp-34.7): - Ensure that all limit callbacks are deleted when their interpreters - are deleted. [Bug 956083] - -2004-05-19 Kevin B. Kenny - - * win/tclWinFile.c (TclpMatchInDirectory): fix for an issue - where there was a sneak path from Tcl_DStringFree to - SetErrorCode(0). The result was that the error code could - be reset between a call to FindFirstFileEx and the check - of its status return, leading to a bizarre error return of - {POSIX unknown {No error}}. (Found in unplanned test - - no incident logged at SourceForge.) - -2004-05-19 Donal K. Fellows - - * tests/interp.test (interp-34.3): Rewrite this test to see if a - time limit can catch a tight bytecode loop, a maximally aggressive - denial-of-service attack. - * generic/tclInterp.c (Tcl_LimitCheck): Fix the sense of checks to - see whether a time limit has been extended. - - * tests/*.test: Many minor fixes, including ensuring that every - test is run (so constraints control whether the test is doing - anything) and making sure that constraints are always set using - the API instead of poking around inside tcltest's internal - datastructures. Also got rid of all trailing whitespace lines - from the test suite! - -2004-05-19 Andreas Kupries - - * generic/tclIO.c: Fixed [SF Tcl Bug 943274]. This is the same problem - * generic/tclIO.h: as [SF Tcl Bug 462317], see ChangeLog entry - 2001-09-26. The fix done at that time is incomplete. It - is possible to get around it if the actual read - operation is defered and not executed in the event - handler itself. Instead of tracking if we are in an - read caused by a synthesized fileevent we now track if - the OS has delivered a true event = actual data and - bypass the driver if a read finds that there is no - actual data waiting. The flag is cleared by a short or - full read. - - ***POTENTIAL INCOMPATIBILITY*** for channel drivers. - -2004-05-17 Vince Darley - - * generic/tclPathObj.c: fix to (Bug 956063) in 'file dirname'. - * tests/cmdAH.test: added test for this bug. - - * doc/FileSystem.3: better documentation of refCount requirements - of some FS functions (Bug 956126) - -2004-05-19 Donal K. Fellows - - * generic/tclTest.c (TestgetintCmd): Made the tests in get.test check - * tests/get.test: Tcl_GetInt() since the core now - avoids that function. - -2004-05-18 Kevin B. Kenny - - * compat/strftime.c (_fmt, ISO8601Week): - * doc/clock.n: - * tests/clock.test: Major rework to the handling of ISO8601 - week numbers. Now passes all the %G and %V test cases on - Windows, Linux and Solaris [Bugs #500285, #500389, and #852944] - -2004-05-18 Donal K. Fellows - - * doc/append.n, doc/upvar.n: Added example. - -2004-05-18 David Gravereaux - - * win/makefile.vc: now generates a tclConfig.sh from Pat Thoyts - [Patch 909911] - -2004-05-18 Donal K. Fellows - - * doc/lsearch.n: Improve clarity (based on [Patch 955361] by Peter - Spjuth) - - * tools/man2help2.tcl (macro,SHmacro): Added support for - subsection (.SS) header macros. - - * doc/interp.n: Added user documentation for the TIP#143 resource - limits and some examples. - - * generic/tclInterp.c (Tcl_LimitCheck, Tcl_LimitTypeReset): Reset - the limit-exceeded flag when removing a limit. - -2004-05-18 Miguel Sofer - - * generic/tclExecute.c (TclExecuteByteCode): added comments to - classify the variables according to their use in TEBC. - -2004-05-17 Donal K. Fellows - - * doc/global.n, doc/uplevel.n: Added an example. - - * tests/info.test (info-3.1): Corrected test result back to what - it used to be in Tcl 7.* now that command counts are being - correctly kept. - - * generic/tclExecute.c (TEBC:INST_START_CMD): Make sure that the - command-count is always advanced. Allows TIP#143 limits to tell - that work is being done. - - * doc/list.n: Updated example to fit with the unified format. - * doc/seek.n: Added some examples. - -2004-05-17 Vince Darley - - * win/tclWinFile.c: - * tests/cmdAH.test: fix to (Bug 954263) where 'file executable' - was case-sensitive. - -2004-05-17 Donal K. Fellows - - * doc/OpenFileChnl.3: Documented type of 'offset' argument to - Tcl_Seek was wrong. [Bug 953374] - -2004-05-16 Miguel Sofer - - * generic/tclExecute.c (TclExecuteByteCode): remove one level of - indirection for compiledLocals addressing. - -2004-05-16 Miguel Sofer - - * generic/tclExecute.c (INST_CALL_FUNC1): bugfix; restored - (DE)CACHE_STACK_INFO pair around the call - the user defined math - function could cause a recursive call to TEBC. - -2004-05-16 Miguel Sofer - - * generic/tclBasic.c (Tcl_DeleteInterp): - * generic/tclExecute.c (INST_START_CMD): interp deletion now - modifies the compileEpoch, eliminating the need for the check for - interp deletion in INST_START_CMD. - -2004-05-16 Miguel Sofer - - * generic/tclCompile.h: - * generic/tclCompile.c: - * generic/tclExecute.c: changed implementation of {expand}, last - chance while in alpha as ... - - ***POTENTIAL INCOMPATIBILITY*** - Scripts precompiled with ProComp under previous tcl8.5a versions - may malfunction due to changed instruction numbers for - INST_LIST_INDEX_IMM, INST_LIST_RANGE_IMM and INST_START_CMD. - -2004-05-14 Kevin B. Kenny - - * generic/tclInt.decls: Promoted TclpLocaltime and TclpGmtime - * generic/tclIntDecls.h: from Unix-specific stubs to the generic - * generic/tclIntPlatDecls.h: internal Stubs table. Reran 'genstubs' - * generic/tclStubInit.c: - * unix/tclUnixPort.h: - - * generic/tclClock.c: Changed a buggy 'GMT' timezone specification - to the correct 'GMT0'. [Bug #922848] - - * unix/tclUnixThrd.c: Moved TclpGmtime and TclpLocaltime to - unix/tclUnixTime.c where they belong. - - * unix/tclUnixTime.c (TclpGmtime, TclpLocaltime, TclpGetTimeZone, - ThreadSafeGMTime [removed], - ThreadSafeLocalTime [removed], - SetTZIfNecessary, CleanupMemory): - Restructured to make sure that the same mutex protects - all calls to localtime, gmtime, and tzset. Added a check - in front of those calls to make sure that the TZ env var - hasn't changed since the last call to tzset, and repeat - tzset if necessary. [Bug #942078] Removed a buggy test - of the Daylight Saving Time information in 'gettimeofday' - in favor of applying 'localtime' to a known value. - [Bug #922848] - - * tests/clock.test (clock-3.14): Added test to make sure that - changes to $env(TZ) take effect immediately. - - * win/tclWinTime.c (TclpLocaltime, TclpGmtime): - Added porting layer for 'localtime' and 'gmtime' calls. - -2004-05-14 Miguel Sofer - - * generic/tclExecute.c: - * generic/tclCompile.h: the math functions receive a pointer to - top of the stack (tosPtr) instead of the execution environment - (eePtr). First step towards a change in the execution stack - management - it is now only used within TEBC. - -2004-05-13 Donal K. Fellows - - TIP#143 IMPLEMENTATION - - * generic/tclExecute.c (TclCompEvalObj, TclExecuteByteCode): - * generic/tclBasic.c (TclEvalObjvInternal): Enable limit checking. - * generic/tclInterp.c (Tcl_Limit*): Public limit API. - * generic/tcl.decls: - * tests/interp.test: Basic tests of command limits. - - * doc/binary.n: TIP#129 IMPLEMENTATION [Patch 858211] - * generic/tclBinary.c: Note that the test suite probably has many more - * tests/binary.test: failures now due to alterations in constraints. - -2004-05-12 Miguel Sofer - - Optimisations for INST_START_CMD [Bug 926164]. - * generic/tclCompile.c (TclCompileScript): avoid emitting - INST_START_CMD as the first instruction in a bytecoded Tcl_Obj. It - is not needed, as the checks are done before calling TEBC. - * generic/tclExecute.c (TclExecuteByteCode): runtime peephole - optimisation: check at INST_POP if the next instruction is - INST_START_CMD, in which case we fall through. - -2004-05-11 Donal K. Fellows - - * doc/split.n, doc/join.n: Updated examples and added more. - -2004-05-11 Vince Darley - - * doc/glob.n: documented behaviour of symbolic links with - 'glob -types d' (Bug 951489) - -2004-05-11 Donal K. Fellows - - * doc/scan.n: Updated the examples to be clearer about their - relevance to the scan command. - -2004-05-10 Donal K. Fellows - - * doc/scan.n: Added examples. - -2004-05-10 David Gravereaux - - * win/tclWinPipe.c (BuildCommandLine): Moved non-obvious appending - logic to outside the loop and added commentary for its purpose. Also - use the existence of contents in the linePtr rather than the scratch - DString post the append, as this more clear. - - (TclpCreateProcess): When under NT, with no console, and executing a - DOS application, the path priming does not need an ending space as - BuildCommandLine() will do this for us. - -2004-05-08 Vince Darley - - * generic/tclFileName.c: - * generic/tclIOUtil.c: remove some compiler warnings on MacOS X. - -2004-05-07 Chengye Mao - - * win/tclWinPipe.c: refixed bug 789040 re-entered in rev 1.41. - Let's be careful and don't re-enter previously fixed bugs. - -2004-05-08 Donal K. Fellows - - * doc/format.n: Added examples. - -2004-05-07 Miguel Sofer - - * doc/unset.n: added upvar.n to the "see also" list - -2004-05-07 Reinhard Max - - * generic/tclEncoding.c: - * tests/encoding.test: added support and tests for translating - embedded null characters between real nullbytes and the internal - representation on input/output (Bug #949905). - -2004-05-07 Vince Darley - - * generic/tclFileName.c: - * generic/tclIOUtil.c: - * generic/tclFileSystem.h: - * tests/fileSystem.test: fix for [Bug 943995], in which vfs- - registered root volumes were not handled correctly as glob - patterns in all circumstances. - -2004-05-06 Miguel Sofer - - * generic/tclInt.h: - * generic/tclObj.c (TclFreeObj): made TclFreeObj use the new macro - TclFreeObjMacro(), so that the allocation and freeing of Tcl_Obj - is defined in a single spot (the macros in tclInt.h), with the - exception of the TCL_MEM_DEBUG case. - The #ifdef logic for the corresponding macros has been reformulated - to make it clearer. - -2004-05-05 Donal K. Fellows - - * doc/break.n, doc/continue.n, doc/for.n, doc/while.n: More examples. - -2004-05-05 Don Porter - - * tests/unixInit.test (unixInit-2.10): Test correction for Mac OSX. - Be sure to consistently compare normalized path names. Thanks to - Steven Abner (tauvan). [Bug 948177] - -2004-05-05 Donal K. Fellows - - * doc/CrtObjCmd.3: Remove reference to Tcl_RenameCommand; there is - no such API. [Bug 848440] - -2004-05-05 David Gravereaux - - * win/tclWinSock.c (SocketEventProc) : connect errors should - fire both the readable and writable handlers because this is - how it works on UNIX [Bug 794839] - - * generic/tclEncoding.c (TclFinalizeEncodingSubsystem): - FreeEncoding(systemEncoding); moved to before the hash table - itereation as it was causing a double free attempt under some - conditions. - - * win/coffbase.txt: Added the tls extension to the list of - preferred load addresses. - -2004-05-04 Jeff Hobbs - - * tests/fileSystem.test (filesystem-1.39): replace 'file volumes' - * tests/fileName.test (filename-12.9,10): lindex with direct C:/ - hard-coded because A:/ was being used and that is empty for most. - - * tests/winFCmd.test (winFCmd-16.12): test volumerelative $HOME - -2004-05-04 Don Porter - - * generic/tclAlloc.c: Make sure Tclp*Alloc* routines get - * generic/tclInt.h: declared in the TCL_MEM_DEBUG and - * generic/tclThreadAlloc.c: TCL_THREADS configuration. [Bug 947564] - - * tests/tcltest.test: Test corrections for Mac OSX. Thanks - to Steven Abner (tauvan). [Bug 947440] - -2004-05-04 Donal K. Fellows - - * generic/tclEvent.c (TclSetLibraryPath): Suppress a warning. - -2004-05-03 Andreas Kupries - - * Applied [SF Tcl Patch 868853], fixing a mem leak in - TtySetOptionProc. Report and Patch provided by Stuart - Cassoff . - -2004-05-03 Miguel Sofer - - * generic/tclProc.c (TclCreateProc): comments corrected. - -2004-05-03 Miguel Sofer - - * generic/tclCompile.c (TclCompileScript): setting the compilation - namespace outside of the loop. - -2004-05-03 Miguel Sofer - - * generic/tclCompile.c: - * generic/tclInt.h: reverted fix for [Bug 926445] of 2004-04-02, - restoring TCL_ALIGN to the header file. Todd Helfter reported that - the macro is required by tbcload. - -2004-05-03 Kevin Kenny - - * win/tclWin32Dll.c (TclpCheckStackSpace): - * tests/stack.test (stack-3.1): Fix for undetected stack - overflow in TclReExec on Windows. [Bug 947070] - -2004-05-03 Don Porter - - * library/init.tcl: Corrected unique prefix matching of - interactive command completion in [unknown]. [Bug 946952] - -2004-05-02 Miguel Sofer - - * generic/tclProc.c (TclObjInvokeProc): - * tests/proc.test (proc-3.6): fix for bad quoting of multi-word - proc names in error messages [Bug 942757] - -2004-04-30 Donal K. Fellows - - * doc/glob.n, doc/incr.n, doc/set.n: More examples. - * doc/if.n, doc/rename.n, doc/time.n: - -2004-04-30 Don Porter - - * generic/tclInt.h: Replaced Kevin Kenny's temporary - * generic/tclThreadAlloc.c: fix for Bug 945447 with a cleaner, - more permanent replacement. - -2004-04-30 Kevin B. Kenny - - * generic/tclThreadAlloc.c: Added a temporary (or so I hope!) - inclusion of "tclWinInt.h" to avoid problems when compiling - on Win32-VC++ with --enable-threads. [Bug 945447] - -2004-04-30 Donal K. Fellows - - * doc/puts.n: Added a few examples. - -2004-04-29 Don Porter - - * tests/execute.test (execute-8.2): Avoid crashes when there - is limited system stack space (threads-enabled). - -2004-04-28 Miguel Sofer - - * doc/global.n: - * doc/upvar.n: - * generic/tclVar.c (ObjMakeUpvar): - * tests/upvar.test (upvar-8.11): - * tests/var.test (var-3.11): Avoid creation of unusable variables: - [Bug 600812] [TIP 184]. - -2004-04-28 Donal K. Fellows - - * doc/lsearch.n: Fixed fault in documentation of -index option [943448] - -2004-04-26 Don Porter - - * unix/tclUnixFCmd.c (TclpObjNormalizePath): Corrected improper - positioning of returned checkpoint. [Bug 941108] - -2004-04-26 Donal K. Fellows - - * doc/open.n, doc/close.n: Updated (thanks to David Welton) to be - clearer about pipeline errors and added example to open(n) that shows - simple pipeline use. [Patches 941377,941380] - - * doc/DictObj.3: Added warning about the use of Tcl_DictObjDone and an - example of use of iteration. [Bug 940843] - - * doc/Thread.3: Reworked to remove references to testing interfaces - and instead promote the use of the Thread package. [Patch 932527] - Also reworked and reordered the page for better readability. - -2004-04-25 Don Porter - - * generic/tcl.h: Removed obsolete declarations and #include's. - * generic/tclInt.h: [Bugs 926459, 926486] - -2004-04-24 David Gravereaux - - * win/tclWin32Dll.c (DllMain): Added DisableThreadLibraryCalls() - for the DLL_PROCESS_ATTACH case. We're not interested in knowing - about DLL_THREAD_ATTACH, so disable the notices. - -2004-04-24 Daniel Steffen - - * generic/tclPort.h: - * macosx/Makefile: - * unix/Makefile.in: followup on tcl header reform [FR 922727]: - removed use of relative #include paths in tclPort.h to allow - installation of private headers outside of tcl source tree; added - 'unix' dir to compiler header search path; add newly required - tcl private headers to Tcl.framework on Mac OSX. - -2004-04-23 Andreas Kupries - - * generic/tclIO.c (Tcl_SetChannelOption): Fixed [SF Tcl Bug - 930851]. When changing the eofchar we have to zap the related - flags to prevent them from prematurely aborting the next read. - -2004-04-25 Vince Darley - - * generic/tclPathObj.c: fix to [Bug 940281]. Tcl_FSJoinPath - will now always return a valid Tcl_Obj when the input is valid. - * generic/tclIOUtil.c: fix to [Bug 931823] for a more consistent - Tcl_FSPathSeparator() implementation which allows filesystems - not to implement their Tcl_FSFilesystemSeparatorProc if they - wish to use the default '/'. Also fixed associated memory leak - seen with, e.g., tclvfs package. - * doc/FileSystem.3: documented Tcl_FSJoinPath return values - more clearly, and Tcl_FSFilesystemSeparatorProc requirements. - -2004-04-23 David Gravereaux - - * win/tclWin32Dll.c: Removed my mistake from 4/19 of adding an - exit handler to TclWinInit. TclWinEncodingsCleanup called from - TclFinalizeFilesystem does the Tcl_FreeEncoding for us. - - * win/tclWinChan.c (Tcl_MakeFileChannel) : Case for CloseHandle - returning zero and not throwing a - RaiseException(EXCEPTION_INVALID_HANDLE) now being done. - -2004-04-22 David Gravereaux - - * generic/tclEvent.c: TclSetLibraryPath's use of caching the - stringrep of the pathPtr object to TclGetLibraryPath called from - another thread was ineffective if the original's stringrep had - been invalidated as what happens when it gets muted to a list. - - * win/tclWinTime.c: If the Tcl_ExitProc (StopCalibration) is - called from the stack frame of DllMain's PROCESS_DETACH, the - wait operation should timeout and continue. - - * generic/tclInt.h: - * generic/tclThread.c: - * generic/tclEvent.c: - * unix/tclUnixThrd.c: - * win/tclWinThrd.c: Provisions made so masterLock, initLock, - allocLock and joinLock mutexes can be recovered during - Tcl_Finalize. - -2004-04-22 Donal K. Fellows - - * doc/switch.n: Reworked the examples to be more systematically - named and to cover some TIP#75 capabilities. - - * doc/cd.n: Documentation clarification from David Welton. - - * doc/exec.n: Added some examples, Windows ones from Arjen Markus - and Unix ones by myself. - -2004-04-21 Donal K. Fellows - - * doc/Hash.3: Added note to Tcl_{First,Next}HashEntry docs that - deleting the element they return is supported (and is in fact the - only safe update you can do to the structure of a hashtable while - an iteration is going over it.) - - * doc/bgerror.n: Added example from David Welton. [Patch 939473] - - * doc/after.n: Added examples from David Welton. [Patch 938820] - -2004-04-19 David Gravereaux - - * win/tclWin32Dll.c: Added an exit handler in TclWinInit() so - tclWinTCharEncoding could be freed during Tcl_Finalize(). - - * generic/tclEncoding.c: Added FreeEncoding(systemEncoding) in - TclFinalizeEncodingSubsystem because its ref count was incremented - in TclInitEncodingSubsystem. - -2004-04-19 Donal K. Fellows - - * doc/read.n: Added example from David Welton. [Patch 938056] - -2004-04-19 Kevin B. Kenny - - * generic/tclObj.c (Tcl_GetDoubleFromObj) Corrected - "short circuit" conversion of int to double. Reported by - Jeff Hobbs on the Tcl'ers Chat. - -2004-04-16 Donal K. Fellows - - * doc/lreplace.n, doc/lrange.n, doc/llength.n: More examples for - * doc/linsert.n, doc/lappend.n: the documentation. - -2004-04-16 Vince Darley - - * doc/FileSystem.3: Corrected documentation of Tcl_FSUtime, and - the corresponding filesystem driver Tcl_FSUtimeProc. [Bug 935838] - -2004-04-16 Donal K. Fellows - - * doc/socket.n: Added example from [Patch 936245]. - * doc/gets.n: Added example based on [Patch 935911]. - -2004-04-15 Donal K. Fellows - - * generic/tclClock.c (Tcl_ClockObjCmd): Minor fault in a [clock - clicks] error message. - -2004-04-07 Jeff Hobbs - - * win/tclWinInit.c (TclpSetInitialEncodings): note that WIN32_CE - is also a unicode platform. - * generic/tclEncoding.c (TclFindEncodings, Tcl_FindExecutable): - * generic/tclInt.h: Correct handling of UTF - * unix/tclUnixInit.c (TclpInitLibraryPath): data that is actually - * win/tclWinFile.c (TclpFindExecutable): "clean", allowing the - * win/tclWinInit.c (TclpInitLibraryPath): loading of Tcl from - paths that contain multi-byte chars on Windows [Bug 920667] - - * win/configure: define TCL_LIB_FLAG, TCL_BUILD_LIB_SPEC, - * win/configure.in: TCL_LIB_SPEC, TCL_PACKAGE_PATH in tclConfig.sh. - -2004-04-06 Don Porter - - Patch 922727 committed. Implements three changes: - - * generic/tclInt.h: Reworked the Tcl header files into a clean - * unix/tclUnixPort.h: hierarchy where tcl.h < tclPort.h < tclInt.h - * win/tclWinInt.h: and every C source file should #include - * win/tclWinPort.h: at most one of those files to satisfy its - declaration needs. tclWinInt.h and tclWinPort.h also better organized - so that tclWinPort.h includes the Windows implementation of - cross-platform declarations, while tclWinInt.h makes declarations that - are available on Windows only. - - * generic/tclBinary.c (TCL_NO_MATH): Deleted the generic/tclMath.h - * generic/tclMath.h (removed): header file. The internal Tcl - * macosx/Makefile (PRIVATE_HEADERS): header, tclInt.h, has a - * win/tcl.dsp: #include directly, - and file external to Tcl needing libm should do the same. - - * win/Makefile.in (WIN_OBJS): Deleted the win/tclWinMtherr.c file. - * win/makefile.bc (TCLOBJS): It's a vestige from matherr() days - * win/makefile.vc (TCLOBJS): gone by. - * win/tcl.dsp: - * win/tclWinMtherr.c (removed): - - End Patch 922727. - - * tests/unixInit.test (unixInit-3.1): Default encoding on Darwin - systems is utf-8. Thanks to Steven Abner (tauvan). [Bug 928808] - -2004-04-06 Donal K. Fellows - - * tests/cmdAH.test (cmdAH-18.2): Added constraint because - access(...,X_OK) is defined to be permitted to be meaningless when - running as root, and OSX exhibits this. [Bug 929892] - -2004-04-02 Miguel Sofer - - * generic/tclCompile.c: - * generic/tclInt.h: removed the macro TCL_ALIGN() from tclInt.h, - replaced by the static macro ALIGN() in tclCompile.c [Bug 926445] - -2004-04-02 Miguel Sofer - - * generic/tclCompile.h: removed redundant #ifdef _TCLINT - [Bug 928415], reported by tauvan. - -2004-04-02 Don Porter - - * tests/tcltest.test: Corrected constraint typos: "nonRoot" -> - "notRoot". Thanks to Steven Abner (tauvan). [Bug 928353] - -2004-04-01 Don Porter - - * generic/tclInt.h: Removed obsolete tclBlockTime* declarations. - [Bug 926454] - -2004-04-01 Vince Darley - - * generic/tclIOUtil.c: Fix to privately reported vfs bug with - 'glob -type d -dir . *' across a vfs boundary. No tests for - this are currently possible without effectively moving tclvfs - into Tcl's test suite. - -2004-03-31 Don Porter - - * doc/msgcat.n: Clarified message catalog file encodings. [Bug 811457] - * library/msgcat/msgcat.tcl: - Updated internals to make use of [dict]s to store message catalog - data and to use [source -encoding utf-8] to access catalog files. - Thanks to Michael Sclenker. [Patch 875055, RFE 811459] - Corrected [mcset] to be able to successfully set a translation to - the empty string. [mcset $loc $src {}] was incorrectly set the - $loc translation of $src back to $src. Also changed [ConvertLocale] - to minimally require a non-empty "language" part in the locale value. - If not, an error raised prompts [Init] to keep looking for a valid - locale value, or ultimately fall back on the "C" locale. [Bug 811461]. - * library/msgcat/pkgIndex.tcl: Bump to msgcat 1.4.1. - -2004-03-30 Donal K. Fellows - - * generic/tclHash.c (HashStringKey): Cleaned up. This function is - not faster, but it is a little bit clearer. - * generic/tclLiteral.c (HashString): Applied logic from HashObjKey. - * generic/tclObj.c (HashObjKey): Rewrote to fix fault which hashed - every single-character object to the same hash bucket. The new - code is shorter, simpler, clearer, and (happily) faster. - -2004-03-30 Miguel Sofer - - * generic/tclExecute.c (TEBC): reverting to the previous method - for async tests in TEBC, as the new method turned out to be too - costly. Async tests now run every 64 instructions. - -2004-03-30 Miguel Sofer - - * generic/tclCompile.c: New instruction code INST_START_CMD - * generic/tclCompile.h: that allows checking the bytecode's - * generic/tclExecute.c: validity [Bug 729692] and the interp's - * tests/interp.test (18.9): readyness [Bug 495830] before running - * tests/proc.test (7.1): the command. It also changes the - * tests/rename.test (6.1): mechanics of the async tests in TEBC, - doing it now at command start instead of every 16 instructions. - -2004-03-30 Vince Darley - - * generic/tclFileName.c: Fix to Windows glob where the pattern is - * generic/tclIOUtil.c: a volume relative path or a network - * tests/fileName.test: share [Bug 898238]. On windows 'glob' - * tests/fileSystem.test: will now return the results of - 'glob /foo/bar' and 'glob \\foo\\bar' as 'C:/foo/bar', i.e. a - correct absolute path (rather than a volume relative path). - - Note that the test suite does not test commands like - 'glob //Machine/Shared/*' (on a network share). - -2004-03-30 Vince Darley - - * generic/tclPathObj.c: Fix to filename bugs recently - * tests/fileName.test: introduced [Bug 918320]. - -2004-03-29 Don Porter - - * generic/tclMain.c (Tcl_Main, StdinProc): Append newline only - * tests/basic.test (basic-46.1): to incomplete scripts - as part of multi-line script construction. Do not add an extra - trailing newline to the complete script. [Bug 833150] - -2004-03-28 Miguel Sofer - - * generic/tclCompile.c (TclCompileScript): corrected possible - segfault when a compilation returns TCL_OUTLINE_COMPILE after - having grown the compile environment [Bug 925121]. - -2004-03-27 Miguel Sofer - - * doc/array.n: added documentation for trace-realted behaviour of - 'array get' [Bug 449893] - -2004-03-26 Don Porter - - * README: Bumped version number to 8.5a2 to - * tools/tcl.wse.in: distinguish HEAD of CVS development - * unix/configure.in: from the recent 8.5a1 release. - * unix/tcl.spec: - * win/README.binary: - * win/configure.in: - - * unix/configure: autoconf-2.57 - * win/configure: - -2004-03-26 Vince Darley - - * generic/tclPathObj.c: Fix to Windows-only volume relative - * tests/fileSystem.test: path normalization. [Bug 923568]. - Also fixed another volume relative bug found while testing. - -2004-03-24 Donal K. Fellows - - * generic/tclNamesp.c (NsEnsembleImplementationCmd): Fix messed up - handling of strncmp result which just happened to work in some - libc implementations. [Bug 922752] - -2004-03-23 Donal K. Fellows - - * doc/StringObj.3: Inverted the sense of the documentation of how - the bytes parameter is documented to match behaviour. [Bug 921464] - -2004-03-19 Kevin B. Kenny - - * compat/strtoll.c: - * compat/strtoull.c: - * generic/tclIntDecls.h: - * generic/tclMain.c: - * generic/tclObj.c: - * win/tclWinDde.c: - * win/tclWinReg.c: - * win/tclWinTime.c: Made HEAD build on Windows VC++ again. - -2004-03-19 Donal K. Fellows - - * generic/tclIntDecls.h: Made HEAD build on Solaris again by - applying fix recommended by Don Porter. - -2004-03-18 Reinhard Max - - * generic/tclIntDecls.h: Removed TclpTime_t. It wasn't really needed, - * generic/tclInt.h: but caused warnings related to - * generic/tclInt.decls: strict aliasing with GCC 3.3. - * generic/tclClock.c: - * generic/tclDate.c: - * generic/tclGetDate.y: - * win/tclWinTime.c: - * unix/tclUnixTime.c: - - * generic/tclNamesp.c: Added temporary pointer variables to work - * generic/tclStubLib.c: around warnings related to - * unix/tclUnixChan.c: strict aliasing with GCC 3.3. - - * unix/tcl.m4: Removed -Wno-strict-aliasing. - -2004-03-18 Daniel Steffen - - Removed support for Mac OS Classic platform [Patch 918142] - - * README: - * compat/string.h: - * doc/Encoding.3: - * doc/FileSystem.3: - * doc/Init.3: - * doc/Macintosh.3 (removed): - * doc/OpenFileChnl.3: - * doc/OpenTcp.3: - * doc/SourceRCFile.3: - * doc/Thread.3: - * doc/clock.n: - * doc/exec.n: - * doc/fconfigure.n: - * doc/file.n: - * doc/filename.n: - * doc/glob.n: - * doc/open.n: - * doc/puts.n: - * doc/resource.n (removed): - * doc/safe.n: - * doc/source.n: - * doc/tclvars.n: - * doc/unload.n: - * generic/README: - * generic/tcl.decls: - * generic/tcl.h: - * generic/tclAlloc.c: - * generic/tclBasic.c: - * generic/tclCmdAH.c: - * generic/tclDate.c: - * generic/tclDecls.h: - * generic/tclFCmd.c: - * generic/tclFileName.c: - * generic/tclGetDate.y: - * generic/tclIOCmd.c: - * generic/tclIOUtil.c: - * generic/tclInitScript.h: - * generic/tclInt.decls: - * generic/tclInt.h: - * generic/tclIntDecls.h: - * generic/tclIntPlatDecls.h: - * generic/tclMain.c: - * generic/tclMath.h: - * generic/tclNotify.c: - * generic/tclPathObj.c: - * generic/tclPlatDecls.h: - * generic/tclPort.h: - * generic/tclStubInit.c: - * generic/tclTest.c: - * generic/tclThreadJoin.c: - * library/auto.tcl: - * library/init.tcl: - * library/package.tcl: - * library/safe.tcl: - * library/tclIndex: - * mac/AppleScript.html (removed): - * mac/Background.doc (removed): - * mac/MW_TclAppleScriptHeader.h (removed): - * mac/MW_TclAppleScriptHeader.pch (removed): - * mac/MW_TclBuildLibHeader.h (removed): - * mac/MW_TclBuildLibHeader.pch (removed): - * mac/MW_TclHeader.h (removed): - * mac/MW_TclHeader.pch (removed): - * mac/MW_TclHeaderCommon.h (removed): - * mac/MW_TclStaticHeader.h (removed): - * mac/MW_TclStaticHeader.pch (removed): - * mac/MW_TclTestHeader.h (removed): - * mac/MW_TclTestHeader.pch (removed): - * mac/README (removed): - * mac/bugs.doc (removed): - * mac/libmoto.doc (removed): - * mac/morefiles.doc (removed): - * mac/porting.notes (removed): - * mac/tclMac.h (removed): - * mac/tclMacAETE.r (removed): - * mac/tclMacAlloc.c (removed): - * mac/tclMacAppInit.c (removed): - * mac/tclMacApplication.r (removed): - * mac/tclMacBOAAppInit.c (removed): - * mac/tclMacBOAMain.c (removed): - * mac/tclMacChan.c (removed): - * mac/tclMacCommonPch.h (removed): - * mac/tclMacDNR.c (removed): - * mac/tclMacEnv.c (removed): - * mac/tclMacExit.c (removed): - * mac/tclMacFCmd.c (removed): - * mac/tclMacFile.c (removed): - * mac/tclMacInit.c (removed): - * mac/tclMacInt.h (removed): - * mac/tclMacInterupt.c (removed): - * mac/tclMacLibrary.c (removed): - * mac/tclMacLibrary.r (removed): - * mac/tclMacLoad.c (removed): - * mac/tclMacMath.h (removed): - * mac/tclMacNotify.c (removed): - * mac/tclMacOSA.c (removed): - * mac/tclMacOSA.r (removed): - * mac/tclMacPanic.c (removed): - * mac/tclMacPkgConfig.c (removed): - * mac/tclMacPort.h (removed): - * mac/tclMacProjects.sea.hqx (removed): - * mac/tclMacResource.c (removed): - * mac/tclMacResource.r (removed): - * mac/tclMacSock.c (removed): - * mac/tclMacTclCode.r (removed): - * mac/tclMacTest.c (removed): - * mac/tclMacThrd.c (removed): - * mac/tclMacThrd.h (removed): - * mac/tclMacTime.c (removed): - * mac/tclMacUnix.c (removed): - * mac/tclMacUtil.c (removed): - * mac/tcltkMacBuildSupport.sea.hqx (removed): - * tests/all.tcl: - * tests/binary.test: - * tests/cmdAH.test: - * tests/cmdMZ.test: - * tests/fCmd.test: - * tests/fileName.test: - * tests/fileSystem.test: - * tests/interp.test: - * tests/io.test: - * tests/ioCmd.test: - * tests/load.test: - * tests/macFCmd.test (removed): - * tests/osa.test (removed): - * tests/resource.test (removed): - * tests/socket.test: - * tests/source.test: - * tests/unload.test: - * tools/cvtEOL.tcl (removed): - * tools/genStubs.tcl: - * unix/Makefile.in: - * unix/README: - * unix/mkLinks: - * unix/tcl.spec: - * win/README.binary: - * win/tcl.dsp: - -2004-03-17 Donal K. Fellows - - * doc/lsearch.n: Improved examples on the advanced capabilities of - lsearch (with the right options, set element removal can be done) - following discussion on tkchat. - -2004-03-16 Don Porter - - * doc/catch.n: Compiled [catch] no longer fails to catch syntax - errors. Removed the claims in the documentation that it does. - * doc/return.n: Updated example to use [dict merge]. - -2004-03-16 Jeff Hobbs - - * unix/configure, unix/tcl.m4: add -Wno-strict-aliasing for GCC to - suppress useless type puning warnings. - -2004-03-16 Donal K. Fellows - - * doc/file.n: *roff formatting fix. [Bug 917171] - -2004-03-15 David Gravereaux - - * win/tclWinNotify.c: Fixed a mistake where the return value of - MsgWaitForMultipleObjectsEx for "a message is in the queue" wasn't - accurate. I removed the check on the case result==(WAIT_OBJECT_0 + 1) - This was having the error of falling into GetMessage and waiting - there by accident, which wasn't alertable through Tcl_AlertNotifier. - I'll do some more study on this and try to find-out why. - -2004-03-12 Donal K. Fellows - - IMPLEMENTATION OF TIP#163 - * generic/tclDictObj.c (DictMergeCmd): This is based on work by Joe - * tests/dict.test (dict-20.*): English in Tcl [FRQ 745851] - * doc/dict.n: but not exactly. - -2004-03-10 Kevin B. Kenny - - * generic/tclGetDate.y (TclGetDate): Fix so that - [clock scan -gmt true] uses the GMT base date - instead of the local one. [Bug 913513] - * tests/clock.test: Added test cases for wrong ISO8601 week number - [Bug 500285] and wrong GMT base date [Bug 913513]. Several tests - still fail on Windows, and these are actual faults in [clock scan]. - Fix is still pending. - * generic/tclDate.c: Regenerated. - -2004-03-08 Vince Darley - - * generic/tclFileName.c: Fix to 'glob -path' near the root - * tests/fileName.test: of the filesystem. [Bug 910525] - -2004-03-08 Don Porter - - * generic/tclParse.c (TclParseInit): Modified TclParseInit so - * generic/tclTest.c ([testexprparser]): that Tcl_Parse initialization - conforms to documented promised about what fields will not be - modified by what Tcl_Parse* routines. [Bug 910595] - -2004-03-05 Mo DeJong - - * win/configure: Regen. - * win/configure.in: Check for define of - MWMO_ALERTABLE in winuser.h. - * win/tclWinPort.h: If MWMO_ALERTABLE - is not defined in winuser.h then define it. - This is needed for Mingw. - -2004-03-05 Kevin B. Kenny - - * generic/tclTest.c: Modified TesteventObjCmd to use - a Tcl_QueuePosition in place of an 'int' for the enumerated - queue position, to avoid a compiler warning on SGI. - (Bug #771960). - -2004-03-05 Kevin B. Kenny - - * tests/registry.test: Applied fix from Patch #910174 to - make the test for an English-language system include any - country code, rather than just English-United States.1252. - Thanks to Pat Thoyts for the changes. - -2004-03-04 Pat Thoyts - - * tests/registry.test: Applied fixed from #766159 to skip two - tests on Win98 that depend on a Unicode registry (NT specific). - -2004-03-04 Don Porter - - * generic/tclInt.h (TclParseInit): Factored the common code - * generic/tclParse.c (TclParseInit): for initializing a Tcl_Parse - * generic/tclParseExpr.c: struct into one routine. - -2004-03-04 Pat Thoyts - - * library/reg/pkgIndex.tcl: Added TIP #100 support to the - * win/tclWinReg.c: registry package (patch #903831) - This provides a Windows test of the TIP #100 mechanism and - a sample to show how unloading an extension can be done. - -2004-03-04 Donal K. Fellows - - * unix/dltest/pkgua.c: Fix minor syntax problems. [Bug 909288] - -2004-03-03 Jeff Hobbs - - *** 8.5a1 TAGGED FOR RELEASE *** - - * changes: updated for 8.5a1 - -2004-03-03 David Gravereaux - - * win/makefile.vc: default environment variable for VC++ is - %MSDevDir% not %MSVCDir%, although vcvars32.bat sets both. - - * win/tclWinNotify.c (Tcl_WaitForEvent) : Allows an idling - notifier to service "Asynchronous Procedure Calls" from its wait - state. Only useful for extension authors who decide they might - want to try "completion routines" with WriteFileEx(), as an - example. From experience, I recommend that "completion ports" - should be used instead as the execution of the callbacks are more - managable. - -2004-03-01 Jeff Hobbs - - * README: update patchlevel to 8.5a1 - * generic/tcl.h: - * tools/tcl.wse.in, tools/tclSplash.bmp: - * unix/configure, unix/configure.in, unix/tcl.spec: - * win/README.binary, win/configure, win/configure.in: - - * unix/tcl.m4: update HP-11 build libs setup - -2004-03-01 Don Porter - - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Allow 64-bit enabling on - IRIX64-6.5* systems. [Bug 218561] - * unix/configure: autoconf-2.57 - - * generic/tclTrace.c (TclCheckInterpTraces): The TIP 62 - * generic/tclTest.c (TestcmdtraceCmd): implementation introduced a - * tests/trace.test (trace-29.10): bug by testing the CallFrame - level instead of the iPtr->numLevels level when deciding what traces - created by Tcl_Create(Obj)Trace to call. Added test to expose the - error, and made fix. [Request 462580] - -2004-02-28 Vince Darley - - * tests/fileSystem.test: fix to Tcl Bug 905163. - * tests/fileName.test: fix to Tcl Bug 904705. - - * doc/{various}.n: removed 'the the' typos. - -2004-02-26 Daniel Steffen - - * macosx/Makefile: fixed copyright year in Tcl.framework Info.plist - -2004-02-25 Don Porter - - * tests/basic.test: Made several tests more robust to the - * tests/cmdMZ.test: list-quoting of path names that might - * tests/exec.test: contain Tcl-special chars like { or [. - * tests/io.test: Should help us sort out Tcl Bug 554068. - * tests/pid.test: - * tests/socket.test: - * tests/source.test: - * tests/unixInit.test: - -2004-02-25 Donal K. Fellows - - * generic/tclLoad.c (Tcl_LoadObjCmd): Missing dereference caused - segfault with non-loadable extension. [Bug 904307] - - * unix/tclUnixChan.c (TcpGetOptionProc): Stop memory leak with - very long hostnames. [Bug 888777] - -2004-02-25 Pat Thoyts - - * win/tclWinDde.c: Removed some gcc warnings - except for the - -Wconversion warning for GetGlobalAtomName. gcc is just wrong - about this. - -2004-02-24 Donal K. Fellows - - IMPLEMENTATION OF TIP#100 FROM GEORGIOS PETASIS - * generic/tclLoad.c (Tcl_UnloadObjCmd): Implementation. - * tests/unload.test: Test suite. - * unix/dltest/pkgua.c: Helper for test suite. - * doc/unload.n: Documentation. - Also assorted changes (mostly small) to several other files. - -2004-02-23 Donal K. Fellows - - * generic/regc_locale.c (cclass): Buffer was having its size reset - instead of being released => memleak. [Bug 902562] - -2004-02-21 Donal K. Fellows - - * generic/tclLoad.c (Tcl_LoadObjCmd): Fixed memory leak due to - an improper error exit route. - -2004-02-20 David Gravereaux - - * win/tclWinSock.c (SocketThreadExitHandler): Don't call - TerminateThread when WaitForSingleObject returns a timeout. - Tcl_Finalize called from DllMain will pause all threads. Trust - that the thread will get the close notice at a later time if it - does ever wake up before being cleaned up by the system anyway. - -2004-02-17 Don Porter - - * doc/tcltest.n: - * library/tcltest/tcltest.tcl: Changed -verbose default value to - {body error} so that detailed information on unexpected errors in - tests is provided by default, even after the fix for [Bug 725253] - -2004-02-17 Jeff Hobbs - - * tests/unixInit.test (unixInit-7.1): - * unix/tclUnixInit.c (TclpInitPlatform): ensure the std fds exist - to prevent crash condition [Bug #772288] - -2004-02-17 Donal K. Fellows - - * generic/tclCompCmds.c (TclCompileSwitchCmd): Bozo mistake in - memory releasing order when in an error case. [Bug 898910] - -2004-02-16 Jeff Hobbs - - * generic/tclTrace.c (TclTraceExecutionObjCmd) - (TclTraceCommandObjCmd): fix possible mem leak in trace info. - -2004-02-12 Mo DeJong - - * win/tclWinInit.c (AppendEnvironment): - Use the tail component of the passed in - lib path instead of just blindly using - lib+4. That worked when lib was "lib/..." - but fails for other values. Thanks go to - Patrick Samson for pointing this out. - -2004-02-10 David Gravereaux - - * win/nmakehlp.c: better macro grepping logic. - -2004-02-07 David Gravereaux - - * win/makefile.vc: - * win/rules.vc: - * win/tcl.rc: - * win/tclsh.rc: Added an 'unchecked' option to the OPTS macro so a - core built with symbols can be linked to the non-debug enabled C - run-time. As per discussion with Kevin Kenny. Called like this: - - nmake -af makefile.vc OPTS=unchecked,symbols - - This clarifies the meaning of the 'g' naming suffix to mean only that - the binary requires the debug enabled C run-time. Whether the binary - contains symbols or not is a different condition. - -2004-02-06 Don Porter - - * doc/clock.n: Removed reference to non-existent [file ctime]. - -2004-02-05 David Gravereaux - - * docs/tclvars.n: Added clarification of the tcl_platform(debug) - var that it only refers to the flavor of the C run-time, and not - whether the core contains symbols. - -2004-02-05 Don Porter - - * generic/tclFileName.c (SkipToChar): Corrected CONST and - type-casting issues that caused compiler warnings. - -2004-02-04 Don Porter - - * generic/tclCmdAH.c (StoreStatData): Removed improper refcount - decrement of the varName parameter. This error was causing - segfaults following test cmdAH-28.7. - - * library/tcltest/tcltest.tcl: Corrected references to - non-existent $name variable in [cleanupTests]. [Bug 833637] - -2004-02-03 Don Porter - - * library/tcltest/tcltest.tcl: Corrected parsing of single - command line argument (option with missing value) [Bug 833910] - * library/tcltest/pkgIndex.tcl: Bump to version 2.2.5. - -2004-02-02 David Gravereaux - - * generic/tclIO.c (Tcl_Ungets): Fixes improper filling of the - channel buffer. This is the buffer before the splice. [Bug 405995] - -2004-02-01 David Gravereaux - - * tests/winPipe.test: more pass-thru commandline verifications. - * win/tclWinPipe.c (BuildCommandLine): Special case quoting for - '{' not required by the c-runtimes's parse_cmdline(). - * win/tclAppInit.c: Removed our custom setargv() in favor of - the work provided by the c-runtime. [Bug 672938] - - * win/nmakehlp.c: defensive techniques to avoid static buffer - overflows and a couple envars upsetting invokations of cl.exe - and link.exe. [Bug 885537] - - -------- - * tests/winPipe.test: Added proof that BuildCommandLine() is not - doing the "N backslashes followed a quote -> insert N * 2 + 1 - backslashes then a quote" rule needed for the crt's - parse_cmdline(). - * win/tclWinPipe.c: Fixed BuildCommandLine() to pass the new - cases. - -2004-01-30 David Gravereaux - - * win/makefile.vc: Use the -GZ compiler switch when building for - symbols. This is supposed to emulate the release build better to - avoid hiding problems that only show themselves in a release - build. - -2004-01-29 Vince Darley - - * generic/tclPathObj.c: fix to [Bug 883143] in file normalization - -2004-01-29 Vince Darley - - * doc/file.n: - * generic/tclFCmd.c - * generic/tclTest.c - * library/init.tcl - * mac/tclMacFile.c - * tests/fileSystem.test: fix to [Bug 886352] where 'file copy - -force' had inconsistent behaviour wrt target files with - insufficient permissions, particular from vfs->native fs. - Behaviour of '-force' is now always consistent (and now - consistent with behaviour of 'file delete -force'). Added new - tests and documentation and cleaned up the 'simplefs' test - filesystem. - - * generic/tclIOUtil.c - * unix/tclUnixFCmd.c - * unix/tclUnixFile.c - * win/tclWinFile.c: made native filesystems more robust to C code - which asks for mount lists. - - * generic/tclPathObj.c: fix to [Bug 886607] removing warning/error - with some compilers. - -2004-01-28 Donal K. Fellows - - * generic/tclObj.c (SetBooleanFromAny): Rewrite to do more - efficient string->bool conversion. - Many other minor whitespace/style fixes to this file too. - -2004-01-27 David Gravereaux - - * win/nmakehlp.c: Use '.\nul' as the sourcefile name instead of - 'nul' so VC 5.2 doesn't try searching the path for it and failing - with a possible dialogbox popping up about having to add a CD to - an empty drive. Also added a SetErrorMode() call to disable any - dialogs that cl.exe or link.exe might create. [Bug 885537] - -2004-01-22 Vince Darley - - * doc/file.n: clarified documentation of 'file system' [Bug 883825] - * tests/fCmd.test: improved test result in failure case. - -2004-01-22 Vince Darley - - * tests/fileSystem.test: 3 new tests - * generic/tclPathObj.c: fix to [Bug 879555] in file normalization. - * doc/filename.n: small clarification to Windows behaviour with - filenames like '.....', 'a.....', '.....a'. - - * generic/tclIOUtil.c: slight improvement to native cwd caching - on Windows. - -2004-01-21 David Gravereaux - - * doc/Panic.3: Mentions of 'panic' and 'panicVA' removed from - the documentation. - -2004-01-21 Vince Darley - - * doc/FileSystem.3: - * generic/tcl.decls: - * generic/tclCmdAH.c - * generic/tclDecls.h - * generic/tclFCmd.c - * generic/tclFileName.c - * generic/tclFileSystem.h - * generic/tclIOUtil.c - * generic/tclInt.decls - * generic/tclInt.h - * generic/tclIntDecls.h - * generic/tclPathObj.c - * generic/tclStubInit.c - * generic/tclTest.c - * mac/tclMacFile.c - * tests/fileName.test - * tests/fileSystem.test - * tests/winFCmd.test - * unix/tclUnixFile.c - * win/tclWin32Dll.c - * win/tclWinFCmd.c - * win/tclWinFile.c - * win/tclWinInt.h - - Three main issues accomplished: (1) cleaned up variable names in - the filesystem code so that 'pathPtr' is used throughout. (2) - applied a round of filesystem optimisation with better handling - and caching of relative and absolute paths, requiring fewer - conversions. (3) clarifications to the documentation, - particularly regarding the acceptable refCounts of objects. - Some new tests added. Tcl benchmarks show a significant - improvement over 8.4.5, and on Windows typically a small - improvement over 8.3.5 (Unix still appears to require - optimisation). TCL_FILESYSTEM_VERSION_2 introduced, but for - internal use only. There should be no public incompatibilities - from these changes. Thanks to dgp for extensive testing. - -2004-01-19 David Gravereaux - - * win/tclWinPipe.c (Tcl_WaitPid): Fixed a thread-safety problem - with the process list. The delayed cut operation after the wait - was going stale by being outside the list lock. It now cuts - within the lock and does a locked splice for when it needs to - instead. [Bug 859820] - -2004-01-18 Donal K. Fellows - - * generic/tclCompile.c, generic/tclCompile.h: Two new opcodes, - INST_LIST_INDEX_IMM and INST_LIST_RANGE_IMM, that have operand(s) - of new type OPERAND_IDX4 which represents indexes into things like - lists (and perhaps other things eventually.) - * generic/tclExecute.c (TclExecuteByteCode): Implementation of the - new opcodes. INST_LIST_INDEX_IMM does a simple [lindex] with - either front- or end-based simple indexing. INST_LIST_RANGE_IMM - does an [lrange] with front- or end-based simple indexing for both - the reference to the first and last items in the range. - * generic/tclCompCmds.c (TclCompileLassignCmd): Generate bytecode - for the [lassign] command. - -2004-01-17 David Gravereaux - - * win/tclWinInit.c: added #pragma comment(lib, "advapi32.lib") - when compiling under VC++ so we don't need to specify it - when linking. - -2004-01-17 Donal K. Fellows - - * generic/tclCmdIL.c (Tcl_LassignObjCmd): Add more shimmering - protection for when the list is also one of the variables. - - BASIC IMPLEMENTATION OF TIP#57 - * generic/tclCmdIL.c (Tcl_LassignObjCmd): Implementation of the - [lassign] command that takes full advantage of Tcl's object API. - * doc/lassign.n: New file documenting the command. - * tests/cmdIL.test (cmdIL-6.*): Test suite for the command. - -2004-01-15 David Gravereaux - - * win/tclWinReg.c: Placed the requirement for advapi.lib into - the object file itself with #paragma comment (lib, ...) when - built with VC++. This will simplify linking for users of the - static library. - - * win/rules.vc: Added new 'fullwarn' to the CHECKS commandline - macro; sets $(FULLWARNINGS). - - * win/makefile.vc: Removed 'advapi.lib' from $(baselibs). - Added new logic to crank-up the warning levels for both compile - and link when $(FULLWARNINGS) is set. Some clean-up with how - the resource files are built and how -DTCL_USE_STATIC_PACKAGES - is sent when compiling the shells. - - * win/tclAppInit.c: Small change in how TCL_USE_STATIC_PACKAGES - is used. - - * win/tcl.rc: - * win/tclsh.rc: Some clean-up with how the resource files are - built. Fixed 'OriginalFilename' problem that still thought - a debug suffix was still 'd', now is 'g'. - -2004-01-14 Donal K. Fellows - - * generic/tclDictObj.c (TraceDictPath, DictExistsCmd): Adjusted - behaviour of [dict exists] so a failure to look up a dictionary - along the path of dicts doesn't trigger an error. This is how it - was documented to behave previously... [Bug 871387] - - * generic/tclDictObj.c: Assorted dict fixes from Peter Spjuth - relating to [Bug 876170]. - (SetDictFromAny): Make sure that lists retain their ordering even - when converted to dictionaries and back. - (TraceDictPath): Correct object reference count handling! - (DictReplaceCmd, DictRemoveCmd): Stop object leak. - (DictIncrCmd,DictLappendCmd,DictAppendCmd,DictSetCmd,DictUnsetCmd): - Simpler handling of reference counts when assigning to variables. - * tests/dict.test (dict-19.2): Memory leak stress test - -2004-01-13 Don Porter - - * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): Silence compiler warnings. - - Patch 876451: restores performance of [return]. Also allows forms - such as [return -code error $msg] to be bytecompiled. - - * generic/tclInt.h: Factored Tcl_ReturnObjCmd() into two pieces: - * generic/tclCmdMZ.c: TclMergeReturnOptions(), which can parse the - options to [return], check their validity, and create the - corresponding return options dictionary, and TclProcessReturn(), - which takes that return options dictionary and performs the - [return] operation. - - * generic/tclCompCmds.c: Rewrote TclCompileReturnCmd() to - call TclMergeReturnOptions() at compile time so the return options - dictionary is computed at compile time (when it is fully known). - The dictionary is pushed on the stack along with the result, and - the code and level values are included in the bytecode as operands. - Also supports optimized compilation of un-[catch]ed [return]s from - procs with default options into the INST_DONE instruction. - - * generic/tclExecute.c: Rewrote INST_RETURN instruction to retrieve - the code and level operands, pop the return options from the stack, - and call TclProcessReturn() to perform the [return] operation. - - * generic/tclCompile.h: New utilities include TclEmitInt4 macro - * generic/tclCompile.c: and TclWordKnownAtCompileTime(). - - End Patch 876451. - - * generic/tclFileName.c (Tcl_GlobObjCmd): Latest changes to - management of the interp result by Tcl_GetIndexFromObj() exposed - improper interp result management in the [glob] command procedure. - Corrected by adopting the Tcl_SetObjResult(Tcl_NewStringObj) pattern. - This stopped a segfault in test filename-11.36. [Bug 877677] - -2004-01-13 Donal K. Fellows - - * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct, Tcl_WrongNumArgs): - Create fresh objects instead of using the one currently in the - interpreter, which isn't guaranteed to be fresh and unshared. The - cost for the core will be minimal because of the object cache, and - this fixes [Bug 875395]. - -2004-01-12 Miguel Sofer - - * generic/tclCompExpr.c (CompileLandOrLorExpr): cosmetic changes. - -2004-01-12 Miguel Sofer - - * generic/tclCompExpr.c (CompileLandOrLorExpr): new logic, fewer - instructions. As a side effect, the instructions INST_LOR and - INST_LAND are now never used. - * generic/tclExecute.c (INST_JUMP*): small optimisation; fix a - bug in debug code. - -2004-01-11 David Gravereaux - - * win/tclWinThrd.c (Tcl_ConditionNotify): condPtr must be - dereferenced to see if there are waiters else uninitialized - datum is manipulated. [Bug 849007 789338 745068] - -2004-01-09 David Gravereaux - - * generic/tcl.h: Renamed and deprecated #defines moved to within - the #ifndef TCL_NO_DEPRECATED block. This allows us to build Tcl - to check for deprecated functions in use, such as panic() and - Tcl_Ckalloc(). By request from DKF. Extensions that build - with -DTCL_NO_DEPRECATED now have these macros as restricted. - ***POTENTIAL INCOMPATIBILITY*** - - * win/makefile.vc: - * win/rules.vc: Added -DTCL_NO_DEPRECATED usage to makefile.vc. - Called like this: nmake -af makefile.vc CHECKS=nodep - -2004-01-09 Vince Darley - - * generic/tclIOUtil.c: fix to infinite loop in - TclFinalizeFilesystem [Bug 873311] - ****************************************************************** + *** CHANGELOG ENTRIES FOR 2004 IN "ChangeLog.2004" *** *** CHANGELOG ENTRIES FOR 2003 IN "ChangeLog.2003" *** *** CHANGELOG ENTRIES FOR 2002 IN "ChangeLog.2002" *** *** CHANGELOG ENTRIES FOR 2001 IN "ChangeLog.2001" *** diff --git a/ChangeLog.2004 b/ChangeLog.2004 new file mode 100644 index 0000000..c179e13 --- /dev/null +++ b/ChangeLog.2004 @@ -0,0 +1,4622 @@ +2004-12-29 Jeff Hobbs + + * win/tcl.m4, win/configure: update MSVC CFLAGS_OPT to -O2, remove -Gs + (included in -O2) and -GD (outdated). Use "link -lib" instead of "lib" + binary and remove -YX for MSVC7 portability. Add -fomit-frame-pointer + for gcc OPT compiles. [Bug 1092952, 1091967] Align LIBS_GUI with Tk + head needs. + +2004-12-29 Kevin B. Kenny + + * generic/tclDate.c: Regen + * generic/tclGetDate.y (TclDatelex): Fixed a problem where a + four-digit group with >=2 leading zeroes appeared to be a two-digit + group, leading to misinterpreting the time 0012 as 1200. [Bug 1090413] + * library/clock.tcl: Added code to interpret correctly months outside + the range 01-12 as reduced modulo 12 with a corresponding adjustment + to the year. [Bug 1092789] + * tests/clock.test: Added regression test cases for the above two bugs. + * unix/Makefile.in: Added --no-lines to the 'bison' command line to + * win/Makefile.in: help constrain the number of diffs in a cvs checkin + +2004-12-24 Miguel Sofer + + * generic/tclCompile.c: + * generic/tclCompile.h: + * generic/tclExecute.c: + * generic/tclInt.h: + * generic/tclLiteral.c: + * generic/tclProc.c: + Avoid sharing cmdName literals accross namespaces, and generalise + usage of the TclRegisterNewLiteral macro [Patch 1090905] + +2004-12-20 Miguel Sofer + + * generic/tclCompile.c: moved TclInitCompiledLocals to tclProc.c + * generic/tclProc.c: new static InitCompiledLocals to allow for a + single pass over the proc's arguments at proc load time (instead of + two as previously). TclObjInterpProc() now allocates the + compiledLocals on the tcl execution stack, using the new + TclStackAlloc/Free functions. + +2004-12-16 Donal K. Fellows + + * generic/tclInterp.c (Tcl_LimitSetTime, TimeLimitCallback): + (TclLimitRemoveAllHandlers, TclInitLimitSupport): Set a timer event to + trigger when the time limit runs out. All the time limit actually does + is check to see if the time limit has been exceeded, but this is + enough to fix [Bug 1085023]. + * generic/tclInt.h (struct Interp): Added a field to hold the token + for the timer event handler associated with the current time limit. + * generic/tclEvent.c (Tcl_UpdateObjCmd, Tcl_VwaitObjCmd): Add error + message when limit exceeded. + * tests/interp.test (interp-34.[89]): Check that time limits handle + the two cases reported in [Bug 1085023] + + * generic/tclTimer.c (TclCreateAbsoluteTimerHandler): New internal + function that allows setting a timer handler that will be triggered at + (or after) a specific time instead of at some number of milliseconds + in the future. This is a candidate for future exposure via a TIP. + +2004-12-15 Miguel Sofer + + * generic/tclBasic.c: + * generic/tclExecute.c: + * generic/tclInt.decls: + * generic/tclIntDecls.h: + * generic/tclNamesp.c: + * generic/tclProc.c: + * generic/tclStubInit.c: + * generic/tclTest.c: Added two new functions to allocate memory from + the execution stack (TclStackAlloc, TclStackFree). Added functions + TclPushStackFrame and TclPopStackFrame that do the work of + Tcl_PushCallFrame and Tcl_PopCallFrame, but using frames allocated in + the execution stack - i.e., heap instead of C-stack. The core uses + these two new functions exclusively; the old ones remain for backwards + compat, as at least two popular extensions (itcl, xotcl) are known to + use them. + +2004-12-14 Miguel Sofer + + * generic/tclCmdIL.c: + * generic/tclInt.h: + * generic/tclProc.c: + * generic/tclVar.c: changing the isProcCallFrame field of the + CallFrame struct from a 0/1 field to flags. Should be perfectly + backwards compatible. + +2004-12-14 Don Porter + + * unix/configure.in: Added special processing to remove "$U" from + libraries in the LIBOBJS value. This is an auto-make-ism we need to + avoid. [Bug 1081541] + + * unix/configure: autoconf-2.57 + +2004-12-13 Don Porter + + * generic/tcl.h: Restored extern "C" guards so that C++ code sees + function pointer typedef linkage consistent with earlier Tcl releases. + [Bug 1082349] + + * generic/tclEncoding.c: Plugged some memory leaks. Thanks to Rolf Ade + * generic/tclUtil.c: for reports and testing [Bug 1083082] + +2004-12-13 Kevin B. Kenny + + * doc/clock.n: Clarify that the [clock scan] command does not accept + the full range of ISO8601 point-in-time formats. [Bug 1075433] + +2004-12-12 Miguel Sofer + + * generic/tclVar.c (TclArrayObjCmd - ARRAY_NAMES): leaking an object + [Bug 1084111] - thanks to Rolf Ade. + +2004-12-12 Miguel Sofer + + * generic/tclObj.c (TclSetCmdNameObj): special handling for fully + qualified command names (as in fix [Patch 456668]). + +2004-12-11 Miguel Sofer + + * generic/tclInt.h: + * generic/tclNamesp.c: converting the static function + GetNamespaceFromObj() to MODULE_SCOPE TclGetNamespaceFromObj(). + +2004-12-10 Donal K. Fellows + + * tools/tcl.wse.in, unix/tcl.spec, win/README.binary, README: + * win/configure.in, unix/configure.in, generic/tcl.h: + Bumped version number to 8.5a3 to distinguish HEAD of CVS development + from the recent 8.5a2 release. + +2004-12-10 Miguel Sofer + + * generic/tclCompile.c (TclInitCompiledLocals): + * generic/tclCompile.h: + * generic/tclInt.h: + * generic/tclProc.c (TclObjInterpProc, TclCreateProc): optimised + loops that initialise a proc's arguments and compiled local + variables, removing tests from inner loops. + +2004-12-10 Donal K. Fellows + + * generic/tclInt.h: Move ensemble API decls here from tclNamesp.c + +2004-12-09 Donal K. Fellows + + * generic/tclNamesp.c (TclMakeEnsembleCmd, TclSetEnsemble*) + (TclSetEnsemble*, TclFindEnsemble): Build an internal API for creating + and manipulating ensembles; they can be deleted using the normal + command-deletion API. + + * doc/Async.3: Reword for better grammar, better nroff and get the + flag name right. (Reported by David Welton.) + +2004-12-07 Don Porter + + * tests/unixInit.test (2.1-4): Added constraints so that when a value + of TCL_LIBRARY is required for process initialization, we skip the + tests that mess with that value. + +2004-12-07 Donal K. Fellows + + *** 8.5a2 TAGGED FOR RELEASE *** + + * unix/Makefile.in: add library/{tzdata,msgs} to dist target (kbk) + + * doc/foreach.n: Adjust tabs to be friendlier to some HTML + converters. [Bug 1078760] + +2004-12-06 Jeff Hobbs + + * unix/tclUnixNotfy.c (NotifierThreadProc): init numFdBits + [Bug 1079286] + + * doc/error.n, doc/SaveResult.3, doc/Thread.3: minor nroff typos + +2004-12-06 Don Porter + + * tests/safe.test: Trim auto_path to improve performance [1080039] + + * tests/msgcat.test: makeFile/removeFile cleanup [1079117] + +2004-12-04 Don Porter + + * generic/tclEncoding.c: Different fix for [Bug 1077005]. + * generic/tclEvent.c: Broke apart TclpSetInitialEncodings() on + * generic/tclInt.h: Windows into TclpSetInterfaces(), that is + * unix/tclUnixInit.c: fundamentally essential, and the initialization + * win/tclWinInit.c: of the system encoding, which is not. Made + the TclpSetInterfaces call part of TclInitSubsystems so it cannot be + overlooked. + +2004-12-03 Jeff Hobbs + + * changes: updated for 8.5a2 release + +2004-12-02 Don Porter + + * generic/tclUtil.c (TclSetProcessGlobalValue): Handle the case where + a ProcessGlobalValue might be assigned to itself. + + * generic/tclEncoding.c (MakeFileMap): Correct refcounting errors + managing values returned by TclPathPart (with refCount of 1!) that led + to a memory leak. [Bug 1077474]. + +2004-12-02 Vince Darley + + * generic/tclPathObj.c: fix and new tests for [Bug 1074671] to ensure + * tests/fileSystem.test: tilde paths are not returned specially by + 'glob'. + +2004-12-02 Kevin B. Kenny + + * win/Makefile.in: Added a 'sed' in the setting of ROOT_DIR_NATIVE to + compensate for a bug in cygpath (at least version 1.36) that leaves a + trailing backslash on the end of the converted path. + +2004-12-02 Donal K. Fellows + + * generic/tclInterp.c (Alias,Target,Master): Rewrote these so that the + aliases that refer to an interpreter are stored in a list and not a + hashtable (which was only ever a convenience, and forced the use of a + global mutex to generate keys!) [FRQ 1077210] + * generic/tclNamesp.c (numNsCreated): Moved into thread-local storage + to remove a global mutex. [FRQ 1077210] + +2004-12-01 Don Porter + + * generic/tclUtil.c (TclGetProcessGlobalValue): Narrowed the scope of + mutex locks. + + * generic/tclUtil.c: Updated Tcl_GetNameOfExecutable() to + * generic/tclEncoding.c: make use of a ProcessGlobalValue for + * generic/tclEvent.c: storing the executable name. Added + internal routines Tcl(Get|Set)ObjNameOfExecutable() to access that + storage in Tcl_Obj, rather than string format. + + * unix/tclUnixFile.c: Rewrote TclpFindExecutable() to use + * win/tclWinFile.c: TclSetObjNameOfExecutable to store the + executable name it computes. + + * generic/tclInt.h: Added internal stub entries for + * generic/tclInt.decls: TclpFindExecutable and + Tcl(Get|Set)ObjNameOfExecutable. + + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclCmdIL.c: Retrieve executable name in Tcl_Obj form + * win/tclWinPipe.c: instead of string form. + + * unix/tclUnixTest.c: Update [testfindexecutable] command to use new + internal interfaces. + + * generic/tclEncoding.c: Moved TclpSetInitialEncodings() call + from Tcl_FindExecutable() into TclInitEncodingSubsystem(). This is + important on Windows where it establishes whether the "ascii" or + "unicode" set of system routines will be used, and that needs to be + done earlier to support filesystem operations. [Bug 1077005] + +2004-12-01 Donal K. Fellows + + * tests/winDde.test: Rewritten to use tcltest2 features more + thoroughly (reducing the [catch] count!) and fix the problem with + winDde-6.1 being out of synch with the implementation. + +2004-11-30 Don Porter + + * library/init.tcl ([unknown]): Restored the save/restore of the + variables ::errorCode and ::errorInfo. This is needed when the + [::bgerror] command is auto-loaded (as it is by Tk). + + Patch 976520 reworks several of the details involved with + startup/initialization of the Tcl library, focused on the activities + of Tcl_FindExecutable(). + + * generic/tclIO.c: Removed bogus claim in comment that encoding + "iso8859-1" is "built-in" to Tcl. + + * generic/tclInt.h: Created a new struct ProcessGlobalValue, + * generic/tclUtil.c: routines Tcl(Get|Set)ProcessGlobalValue, and + function type TclInitProcessGlobalValueProc. Together, these take care + of the housekeeping for "values" (things that can be held in a + Tcl_Obj) that are global across a whole process. That is, they are + shared among multiple threads, and epoch and mutex protection must + govern the validity of cached copies maintained in each thread. + + * generic/tclNotify.c: Modified TclInitNotifier() to tolerate being + called multiple times in the same thread. + * generic/tclEvent.c: Dropped the unused argv0 argument to + TclInitSubsystems(). Removed machinery to unsure only one + TclInitNotifier() call per thread, now that that is safe. Converted + Tcl(Get|Set)LibraryPath to use a ProcessGlobalValue, and moved them to + tclEncoding.c. + * generic/tclBasic.c: Updated caller. + + * generic/tclInt.h: TclpFindExecutable now returns void. + * unix/tclUnixFile.c: + * win/tclWinFile.c: + * win/tclWinPipe.c: + + * generic/tclEncoding.c: Built new encoding search initialization on a + foundation of ProcessGlobalValues, exposing new routines + Tcl(Get|Set)EncodingSearchPath. A cache of a map from encoding name to + directory pathname keeps track of where encodings are available for + loading. Tcl_FindExecutable greatly simplified into just three + function calls. The "library path" is now misnamed, as its only + remaining purpose is as a foundation for the default encoding search + path. + + * generic/tclInterp.c: Inlined the initScript that is evaluated by + Tcl_Init(). Added verification after initScript evaluation that Tcl + can find its installed *.enc files, and that it has initialized + [encoding system] in agreement with what the environment expects. + [tclInit] no longer driven by the value of $::tcl_libPath; it largely + constructs its own search path now, rather than attempt to share one + with the encoding system. + + * unix/tclUnixInit.c: TclpSetInitialEncodings factored so that a new + * win/tclWinInit.c: routine TclpGetEncodingNameFromEnvironment can + reveal that Tcl thinks the [encoding system] should be, even when an + incomplete encoding search path, or a missing *.enc file won't allow + that initialization to succeed. TclpInitLibraryPath reworked as an + initializer of a ProcessGlobalValue. + + * unix/tclUnixTest.c: Update implementations of [testfindexecutable], + [testgetdefenc], and [testsetdefenc]. + + * tests/unixInit.test: Corrected tests to operate properly even when + a value of TCL_LIBRARY is required to find encodings. + + * generic/tclInt.decls: New internal stubs: TclGetEncodingSearchPath, + TclSetEncodingSearchPath, TclpGetEncodingNameFromEnvironment. These + are candidates for public exposure by future TIPs. + + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclTest.c: Updated [testencoding] to use + * tests/encoding.test: Tcl(Get|Set)EncodingSearchPath. Updated tests. + +2004-11-30 Kevin B. Kenny + + * library/clock.tcl: Corrected the regular expressions that match a + time zone to allow for time zones specified as +HH or -HH. + * tests/clock.test: Added regression test case for the above issue. + Thanks to Rolf Ade for reporting this issue [http://wiki.tcl.tk/13094] + * win/tclWinDde.c (Tcl_DdeObjCmd): Corrected a typo that caused a + compilation failure on VC++. + +2004-11-29 Andreas Kupries + + * win/Makefile.in (install-libraries): Brought entry '2004-10-26 Don + Porter (Tcl Modules)' into the windows world, actually the + win/configure buildsystem. The other windows buildsystems (.vc, .bc) + still have to be updated as well. + +2004-11-26 Andreas Kupries + + * win/tclWinDde.c (ExecuteRemoteObject): Removed bogus semicolon found + at the end of the header for the function definition, terminating it + early and preventing a compile. This is likely a fix for '2004-11-25 + Donal'. I have to conclude that it is also unknown if the other + changes to this file actually pass the testsuite. Running testsuite + ... They don't. winDde-6.1 fails. This is only a message discrepance, + i.e. not too bad. Leaving resolution of that to Pat and Donal. + +2004-11-26 Don Porter + + * library/auto.tcl (tcl_findLibrary): Made sure the uniquifying + operations on the search path does not also normalize. [Bug 1072136] + +2004-11-26 Donal K. Fellows + + * unix/configure.in: Simplify the code to check for correctness of + strstr, strtoul and strtod. + * unix/tcl.m4 (SC_TCL_CHECK_BROKEN_FUNC): Split a complex stanza out + of configure.in into its own function. Also force it to do the right + thing with cacheing of results of AC_TRY_RUN to deal with issue raised + in [Patch 1073524] + + * doc/foreach.n: Added simple example. [FRQ 1073334] + +2004-11-25 Donal K. Fellows + + * generic/tclProc.c (TclObjInterpProc): Make it so that only + * generic/tclIndexObj.c (Tcl_WrongNumArgs): [proc] instances do + * tests/indexObj.test (indexObj-5.7): quoting of their first + arguments, so keeping [Bug 942757] fixed and making [Bug 1066837] be + fixed as well. Done with a load of #ifdef-ery because this hack is so + ugly nobody should keep it around once Itcl's fixed. + +2004-11-25 Reinhard Max + + * tests/tcltest.test: The order in which [glob] returns the file names + is undefined, so tests should not depend on it. + +2004-11-25 Zoran Vasiljevic + + * doc/Thread.3: + * doc/Notifier.3: Added changes from the core-8-4-branch + +2004-11-25 Donal K. Fellows + + * doc/dde.n: Synchronized the documentation of the commands with the + header of the docs and what the package actually does. Thanks to + Andreas Kupries for spotting this. + * win/tclWinDde.c (Tcl_DdeObjCmd): Much cleanup of argument parsing + code. + +2004-11-24 David Gravereaux + + * generic/tclPort.h: Relative include of tclWinPort.h returned as it + was requiring me set -I$(tcl_root)/win for my extensions that need to + include tclInt.h and doesn't appear to serve any purpose for windows + builds. + +2004-11-24 Kevin B. Kenny + + * unix/tcl.m4 (SC_ENABLE_THREADS): Corrected bad check for 3-argument + readdir_r [Bug 1001325]. + * unix/configure: Regenerated. + * unix/tclUnixNotfy.c: Corrected all uses of 'select' to manage their + masks using the FD_CLR, FD_ISSET, FD_SET, and FD_ZERO macros rather + than bit-whacking that failed under Solaris-Sparc-64. [Bug 1071807] + * win/tclWinInit.c (TclpInitLibraryPath): Removed unused vars 'pathc' + and 'pathv' that caused compilation problems on VC++ with + --enable-symbols. + +2004-11-24 Don Porter + + * unix/tcl.m4 (SC_ENABLE_THREADS): Corrected failure to determine the + number of arguments for readdir_r on SunOS systems. [Bug 1071701] + + * unix/configure: autoconf-2.57 + + * generic/tclCmdIL.c (InfoVarsCmd): Corrected segfault in new + * tests/info.test (info-19.6): trivial matching branch [Bug 1072654] + +2004-11-24 Donal K. Fellows + + * tools/man2html.tcl, tools/man2html1.tcl: Update to use Tcl 8.4. + * tools/man2html2.tcl: Fix broken .SS handling. + +2004-11-23 Donal K. Fellows + + * unix/Makefile.in: Add (commented-out) code to integrate tclConfig.h + into the dependency tree and 'make distclean'. [Bug 1068171] + + * generic/tclResult.c (Tcl_AppendResultVA): Remove call to + Tcl_GetStringResult to speed up repeated calls to Tcl_AppendResult + with the side effect that code that wants to access interp->result + should always call Tcl_GetStringResult first. See [Patch 1041072] + discussion for more details. + +2004-11-22 Mo DeJong + + * unix/configure: Regen. + * unix/tcl.m4 (SC_TCL_64BIT_FLAGS): Define HAVE_TYPE_OFF64_T + only when off64_t, open64(), and lseek64() are defined. + IRIX 5.3 is known to not include an open64 function. + [Bug 1030465] + +2004-11-22 Mo DeJong + + * unix/configure: Regen. + * unix/tcl.m4 (SC_ENABLE_THREADS): Check for a 2 argument version of + readdir_r that is known to exists under IRIX 5.3. + * unix/tclUnixThrd.c (TclpReaddir): Use either 2 arg or 3 arg version + of readdir_r. [Bug 1001325] + +2004-11-22 Don Porter + + * unix/tclUnixInit.c (TclpInitLibraryPath): Purged dead code that used + * win/tclWinInit.c (TclpInitLibraryPath): to extend the "library + path". Search path construction for init.tcl is now done within the + [tclInit] proc. + * generic/tclInterp.c: Restored several directories to the search + * tests/unixInit.test: path used to locate init.tcl within [tclInit]. + This change does not restore any directories to the encoding search + path, so should still avoid the price of an unreasonably large number + of filesystem accesses during encoding initialization at startup + [Bug 976438] + +2004-11-22 Vince Darley + + * generic/tclPathObj.c: fix and new test for [Bug 1043129] in the + * tests/fileSystem.test: treatment of backslashes in file join on + Windows. + +2004-11-21 Don Porter + + * doc/AddErrInfo.3: Typo corrections (Thanks Daniel South). + * doc/interp.n: + +2004-11-19 Don Porter + + * doc/AddErrInfo.3: Docs for Tcl_(Get|Set)ReturnOptions. [TIP 227] + + * doc/AddErrInfo.3: + * doc/Async.3: Documentation updates to replace references + * doc/BackgdErr.3: to global variable ::errorInfo and ::errorCode + * doc/SaveResult.3: and to the ::bgerror command with references + * doc/after.n: to their preferred replacements, the + * doc/bgerror.n: -errorinfo and -errorcode return options, + * doc/error.n: the Tcl_*InterpState routines, and the + * doc/exec.n: [interp bgerror] command. + * doc/exit.n: + * doc/fileevent.n: + * doc/interp.n: + * doc/return.n: + * doc/tclvars.n: + * doc/update.n: + + * tests/unixInit.test: Removed "knownBug" constraints to prompt bug + fixing before 8.5a2 release. + +2004-11-19 Daniel Steffen + + * macosx/Makefile: + * unix/configure.in: + * unix/tclUnixInit.c (MacOSXGetLibraryPath): changed detection of tcl + framework build when determining tclLibPath from overloaded + TCL_LIBRARY to configuration define TCL_FRAMEWORK. [Bug 1068088] + + * unix/configure: autoconf-2.57 + * unix/tclConfig.h.in: autoheader-2.57 + +2004-11-18 Don Porter + + * doc/SaveResult.3: Documentation for Tcl_*InterpState (TIP 226). + + * generic/tclEvent.c (HandleBgErrors): Simplified program flow. + + * tests/basic.test: Updated functional (not testing) uses of + * tests/io.test: [bgerror] to make use of [interp bgerror]. + * tests/socket.test: + * tests/timer.test: + + * tests/interp.test (interp-36.*): [interp bgerror] tests. + + * generic/tclInterp.c: Corrected [interp bgerror] error messages. + +2004-11-18 Reinhard Max + + * unix/tcl.m4 (SC_CONFIG_MANPAGES): Applied an improved version of + * unix/configure.in: [Patch 996085], that introduces + * unix/Makefile.in: --enable-man-suffix. + + * unix/installManPage: added + * unix/mkLinks.tcl: removed + * unix/mkLinks: removed + * unix/configure: generated + + * unix/Makefile.in: Don't install tclConfig.h . + +2004-11-17 Don Porter + + * unix/configure.in: The change below reveals that the public data + type Tcl_StatBuf relies on config information. For now, disabled the + use of the tclConfig.h file until its full impact on Tcl's interface + can be assessed. + + * unix/configure: autoconf-2.57 + + * generic/tcl.h: Moved the #include "tclConfig.h" out of + * generic/tclInt.h: tcl.h. The config settings are not part of + * generic/tclPort.: the public interface, and having it there + breaks compiled against uninstalled Tcl and extensions using + autoconf-2.5*. + +2004-11-16 Jeff Hobbs + + * unix/tclUnixChan.c (TtySetOptionProc): fixed crash configuring + -ttycontrol on a channel. [Bug 1067708] + +2004-11-16 Don Porter + + * generic/tclIOUtil.c (TclFSEpochOk): There were two code paths via + which the thread copy of filesystemEpoch could be synched with the + master copy, but only one kept the filesystem list cache up to date. + Fix routes everything through a single code path. [Bug 1035775]. + +2004-11-16 Donal K. Fellows + + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Stop architecture flags to 'ld' from + getting lost when [load] is disabled. [Bug 1016796] + +2004-11-16 Daniel Steffen + + * generic/tcl.h: + * unix/configure.in: changed HAVE_CONFIG_H to HAVE_TCL_CONFIG_H. + + * unix/configure: autoconf-2.57 + +2004-11-15 Don Porter + + * generic/tclInt.h: Added comment warning that the old ERR_IN_PROGRESS + and ERROR_CODE_SET flag values should not be re-used for the sake of + those extensions that have accessed them. + + * generic/tclCmdMZ.c (Tcl_TraceObjCmd): Fixed Bug 1065378 which failed + * tests/trace.test (trace-33.1): to permit a variable trace + created with [trace variable] to be destroyed with [trace remove]. + Thanks to Keith Vetter for the report. + +2004-11-15 Donal K. Fellows + + * doc/tclvars.n: Added section to documentation on global variables + that are specific to tclsh and wish. [Patch 1065732] + +2004-11-12 Jeff Hobbs + + * generic/tclEncoding.c (TableFromUtfProc): correct crash condition + when TCL_UTF_MAX == 6. [Bug 1004065] + +2004-11-12 Donal K. Fellows + + * doc/interp.n: Basic documentation of the TIP#221 API. + +2004-11-12 Don Porter + + TIP #221 IMPLEMENTATION + * generic/tclBasic.c: Define [::tcl::Bgerror] in new interps. + * generic/tclEvent.c: Update Tcl_BackgroundError to make use of the + registered [interp bgerror] command. + * generic/tclInterp.c: New [interp bgerror] subcommand. + * tests/interp.test: syntax tests updated. + + TIP #226 IMPLEMENTATION + * generic/tcl.decls: Stubs for Tcl_(Save|Restore|Discard)InterpState + * generic/tcl.h: New public opaque type, Tcl_InterpState. + * generic/tclInt.h: Drop old private declarations. Add + Tcl(Get|Set)BgErrorHandler + * generic/tclResult.c: Tcl_*InterpState implementations. + * generic/tclDictObj.c: Update callers. + * generic/tclIOGT.c: + * generic/tclTrace.c: + + TIP #227 IMPLEMENTATION + * generic/tcl.decls: Stubs for Tcl_(Get|Set)ReturnOptions. + * generic/tclInt.h: Drop old private declarations. + * generic/tclResult.c: Tcl_*ReturnOptions implementations. + * generic/tclCmdAH.c: Update callers. + * generic/tclMain.c: + + * generic/tclDecls.h: make genstubs + * generic/tclStubInit.c: + + * unix/tclAppInit.c: Removed tclConfig.h #include, now that tcl.h + takes care of it for us. + + * generic/tclInt.h: Moved verification of ptrdiff_t typedef from + * generic/tclExecute.c: multiple .c files into one common header where + * generic/tclVar.c: it is verifiably after tclConfig.h inclusion. + +2004-11-12 Daniel Steffen + + * generic/tcl.h: + * generic/tclInt.h: + * unix/Makefile.in: include tclConfig.h from tcl.h and install it as a + public header. Normalized compiler include path order to + -I${BUILD_DIR} -I${UNIX_DIR} -I${GENERIC_DIR}. + + * unix/dltest/Makefile.in: add ${BUILD_DIR}/.. to include path to pick + up tclConfig.h. + + * unix/tclUnixInit.c: moved check for HAVE_CFBUNDLE define after + #include "tclInt.h" to ensure tclConfig.h has been included. + +2004-11-12 Reinhard Max + + * unix/config.h.in: + * unix/tclConfig.h.in: renamed + + * unix/Makefile.in: Completed support for config header, + * unix/configure.in: fixed building outside of the unix dir, + * unix/tclAppinit.c: and reflected the name change of config.h. + * generic/tclInt.h: + + * unix/configure: generated + +2004-11-12 Donal K. Fellows + + * unix/config.h.in: Allow configure to put all the C #defs into + * unix/configure.in: a file (called config.h) so that Unix builds + * unix/tcl.m4: now take far fewer lines of scrollback to + * unix/Makefile.in: proceed (making it less likely that any errors + * generic/tclInt.h: or warnings will get missed). + * unix/tclAppInit.c: Part of the TIP#34 upgrades. + + * unix/tcl.m4, unix/tclUnixPort.h: Check for pthread_attr_get_np in + before forcing the use of to make things + work on NetBSD 2.0. [Bug 1064882] + + * doc/binary.n, doc/upvar.n: More minor fixes. + +2004-11-12 Daniel Steffen + + * doc/CrtChannel.3: + * doc/Interp.3: + * doc/Limit.3: + * doc/binary.n: + * doc/dict.n: + * doc/tm.n: + * doc/upvar.n: fixed *roff errors uncovered by running 'make html'. + + * tools/tcltk-man2html.tcl: added faked support for bullet point + lists, i.e. *nroff ".IP \(bu" syntax. + +2004-11-11 Daniel Steffen + + * tests/fCmd.test: + * unix/tclUnixFCmd.c (TraverseUnixTree): added option to rewind() the + readdir() loop whenever the source hierarchy has been modified by + traverseProc (e.g. by deleting files); this is required to ensure + complete traversal of the source hierarchy on certain filesystems like + HFS+. Added test for failing recursive delete on Mac OS X that was due + to this. [Bug 1034337] + + * generic/tclListObj.c (Tcl_ListObjReplace): use memmove() instead of + manual copy loop to shift list elements. Decreases time spent in + Tcl_ListObjReplace() from 5.2% to 1.7% of overall runtime of tclbench + on a ppc 7455 (i.e. 200% speed increase). [Patch 1064243] + + * generic/tclHash.c: hoisted some constant pointer dereferences out of + loops to eliminate redundant loads that the gcc optimizer didn't deal + with. Decreases time spend in Tcl_FindHashEntry() by 10% over a full + run of the tcl testuite on a ppc 7455. [Patch 1064243] + + * tests/fileName.test: + * tests/fileSystem.test: + * tests/io.test: + * tests/msgcat.test: + * tests/tcltest.test: + * tests/unixInit.test: fixed bugs causing failures when running tests + with -tmpdir arg not set to working dir. + + * macosx/Makefile: corrected path to html help inside framework. + Prevent parallel make from building several targets at the same time. + + * macosx/tclMacOSXFCmd.c (struct fileinfobuf): force struct to be + packed to prevent failures when builing with -malign=natural. + +2004-11-10 Andreas Kupries + + * unix/tclUnixChan.c: [Bug 727786]. Exterminated the code marked + DEPRECATED. This code has not been used in over a year now, and we + have no complaints. + +2004-11-08 David Gravereaux + + * win/tclWinPipe.c: The pipe channel driver now respects the -blocking + option when closing is the same way the UNIX side works. This is to + avoid a hung shell when exiting due to open pipes that refuse to close + in a graceful manner. + * doc/open.n: Added a note about -blocking 0 and lack of exit status + as it had never been documented. [Bug 947693] + + ***POTENTIAL INCOMPATIBILITY*** + + Scripts that use async pipes on windows, must (like the UNIX side) set + -blocking to 1 before calling [close] to receive the exit status. + +2004-11-07 David Gravereaux + + * tests/winFile.test: added contraint to winFile-4.0 to prevent it + being run on NT4 [Bug 981829] + +2004-11-05 Donal K. Fellows + + * tests/reg.test: Major reorganization so that this file is much + easier for a normal Tcl maintainer to comprehend. The test flags are + still very cryptic, but they appear to have to be that way. The number + of skipped tests has increased, but now the skipped tests have much + more meaningful content. + + * tests/tm.test (genpaths): Add a [file normalize] so we pick up + Windows drive letters, etc. [Bug 1053568] + +2004-11-04 Don Porter + + * changes: Updates toward an 8.5a2 release. + +2004-11-03 Kevin B. Kenny + + * library/clock.tcl (FreeScan): Fixed a bug where scanning "Monday" + with a base time other than midnight incorrectly carried the base time + forward. + + * test/clock.test (clock-33.{5,5a}): Made the test failure more + informative. + + * tests/clock.test (clock-34.{28,44,45,46}): Removed 'knownBug' + constraints from tests that no longer fail. + + Thanks to Don Porter for reporting these. + +2004-11-03 David Gravereaux + + * generic/tcl.h: Moved the preprocessor logic + * generic/tclDecls.h: from tclInt.h of setting the + * generic/tclInt.h: TCL_STORAGE_CLASS macro to the + * generic/tclIntDecls.h: tcl*Decls.h files now that no + * generic/tclIntPlatDecls.h: use of EXTERN is left in tclInt.h. + * generic/tclPlatDecls.h: Proto for Tcl_Main moved in tcl.h + * win/tclWinPort.h: to prior the inclusion of the Stubs + headers as they are now resetting TCL_STORAGE_CLASS. Removed + extraineous reset from tclWinPort.h. [Patch 1055668] + + * generic/tclCompile.h: Removed extrainious reset of TCL_STORAGE_CLASS + missed in my last edit. + +2004-11-03 Don Porter + + * library/init.tcl ([unknown]): Corrections to the 2004-10-25 mods to + Aunt ??? in [unknown]. Flaws revealed by Itcl test suite, which still + apparently relies on this brokenness. Also added comment suggesting + the error message that any code using this hack *ought* to receive in + reply. + + * generic/tclTrace.c (TclCallVarTraces): Improved ability to debug + * tests/incr-old.test (incr-old-2.6): errors during variable + * tests/incr.test (incr-{1,2}.28): traces by preserving the + * tests/set.test (set-{2,4}.4): -errorinfo data. + * tests/trace.test (trace-33.1): [Bug 527164] + +2004-11-02 David Gravereaux + + * generic/tclInt.h: added a check for #ifdef __cplusplus around the + #define of MODULE_SCOPE. About the only time it would be problem is + when someone is statically linking to Tcl and accessing internals from + a C++ file and has name mangling issues from the lack of "C" after + 'extern' [Patch 1055668]. + * generic/tclCompile.h: Exchanged use of the EXTERN macro to the new + MODULE_SCOPE macro. Lowered exported internals count by 35. [Patch + 1055668] + * win/tclWinInt.h: + * win/tclWinPort.h: exported internals dropped by a count of 14. + * generic/tclFileSystem.h: Added use of MODULE_SCOPE on protos. + * generic/tclRegexp.h: manipulating TCL_STORAGE_CLASS unnecessary. + +2004-11-02 Don Porter + + * library/tcltest/tcltest.tcl: Corrected some misleading + * tests/tcltest.test (tcltest-26.1,2): displays of ::errorInfo and + ::errorCode information when the -setup, -body, and/or -cleanup scripts + return an unexpected return code. Thanks to Robert Seeger for the + fix. [RFE 1017151]. + +2004-11-02 Donal K. Fellows + + * generic/tclExecute.c (TclExecuteByteCode): Improved version of the + NaN fix from Miguel Sofer. [Bug 761471] + +2004-11-02 Kevin Kenny + + * library/tzdata/America/Cuiaba: Change to DST rules for + * library/tzdata/America/Havana: autumn of 2004. + [ftp://elsie.nci.nih.gov/pub/tzdata2004g.tar.gz] + + * tools/tclZIC.tcl: Updated to be compatible with recent changes in + library/clock.tcl. + +2004-11-02 Vince Darley + + * win/tclWinFile.c: Simplify TclpUtime to use Tcl_FSGetNativePath, and + add comments. + +2004-11-02 Donal K. Fellows + + * generic/tclInt.h: Change uses of EXTERN to MODULE_SCOPE (defined in + this file too to be 'extern' if not overridden) as nothing declared in + tclInt.h is supposed to be visible outside the Tcl core. If there *is* + anything that extensions are actually using, we can open this up later + on. [Patch 1055668] + + * doc/CrtChannel.3 (Tcl_GetChannelMode): Add synopsis. [Bug 1058446] + +2004-11-01 Kevin B. Kenny + + * win/tclWinFile.c (FromCTime, TclpUtime): Replaced a call to the + Posix 'utime' function with calls to Windows-API equivalents, to avoid + a bug where the VC++ versions misconvert times across a Daylight + Saving Time boundary. [Bug 926106] + * win/tclWinInt.h (TclWinProcs): + * win/tclWin32Dll.c (asciiProcs, unicodeProcs): Removed now-unused + reference to 'utime'. + * tests/cmdAH.test (cmdAH-24.12): Added test case for the above bug. + +2004-11-01 Donal K. Fellows + + * generic/tclExecute.c (TclExecuteByteCode): Make INST_EQ and friends + handle NaN correctly in all cases. [Bug 761471] + + * generic/tclNamesp.c (NamespaceInscopeCmd): Make the error message + generation the same as in NamespaceEvalCmd(). + (Tcl_Import): Rationalized to use Tcl_EvalObjv(). + +2004-10-31 Donal K. Fellows + + * tests/io.test (io-40.3): Convert umask2 test constraint into a form + that most people will be able to satisfy. + + * tests/cmdAH.test (cmdAH-8.45): Removed broken test constraint. It + didn't do what it was intended to do, and it implied the other correct + constraint. [Bug 1053908] + + * generic/tclCmdIL.c (InfoGlobalsCmd): + * tests/info.test (info-8.4): Strip leading global-namespace + specifiers from the pattern argument. [Bug 1057461] + +2004-10-30 Kevin Kenny + + * generic/clock.c: Replaced WIN32 macro with __WIN32__. [Bug 1054357]. + Thanks to David Gravereaux for the patch. + * win/tclWinFile.c: Removed a long-standing bug that causes incorrect + conversion between file time and UTC time if the file time is recorded + in a different Daylight Saving Time status than the current one. [Bug + 926106] + +2004-10-29 Don Porter + + * library/tcltest/tcltest.tcl: Correct reaction to errors in the + obsolete processCmdLineArgsHook. [Bug 1055673] + * library/tcltest/pkgIndex.tcl: Bump to tcltest 2.2.7 + * unix/Makefile.in: + * tests/all.tcl: Update to use [tcltest::configure]. + +2004-10-29 Donal K. Fellows + + * library/tm.tcl (::tcl::tm::*): Use the core proc engine to generate + the wrong-num-args error messages for the path ensemble. + + Ensembles can now (sometimes) rewrite the error messages of their + subcommands so they appear more like the arguments that the user + passed to the ensemble. Below is a description of changes involved in + doing this. + + * tests/namespace.test (namespace-50.*): Tests of ensemble subcommand + error message rewriting. + * generic/tclProc.c (TclObjInterpProc): Make procedures implement + their wrong-num-args message using Tcl_WrongNumArgs instead of + something baked-at-home. + * generic/tclNamesp.c (TclIsEnsemble, NsEnsembleImplementationCmd): + Added test of ensemble-hood (available to rest of core) and made + ensembles set up the rewriting for Tcl_WrongNumArgs to take advantage + of. + * generic/tclInt.h (Interp.ensembleRewrite): Extra fields. + * generic/tclIndexObj.c (Tcl_WrongNumArgs): Add knowledge of what is + going on in ensembles' command rewriting so this command can generate + the right error message itself. + * generic/tclBasic.c (Tcl_CreateInterp, TclEvalObjvInternal): Added + code to initialize (as empty) the rewriting fields and reset them when + we leak outside an ensemble implementation. + +2004-10-28 Miguel Sofer + + * generic/tclExecute.c (INST_START_CMD): + * tests/execute.test (execute-8.3): fix for execution stack corruption + [Bug 1055676]. Credit dgp for detective work and fix. + +2004-10-27 Don Porter + + * tests/socket.test (socket-13.1): Balanced [makeFile] and + [removeFile] commands. + + * tests/clock.test: Correct duplicate test names. + * tests/namespace.test: + * tests/string.test: + * tests/io.test (io-50.4): Use namespace variables. + +2004-10-27 David Gravereaux + + * generic/tclInt.decls: The following 9 functions were moved from + * generic/tclInt.h: tclInt.h to the private/int Stubs table for + * generic/tclIntDecls.h: use by the test suite. As tclTest.obj is + * generic/tclStubInit.c: linked to the shell, these functions need + "blessed" status so as to always be exported from the library. Being + placed in the Stubs table guarantees this [Bug 1054748]: + TclpObjRemoveDirectory, TclpObjCopyDirectory, + TclpObjCreateDirectory, TclpObjDeleteFile, + TclpObjCopyFile, TclpObjRenameFile, + TclpObjStat, TclpObjAccess, + TclpOpenFileChannel + + * tests/registry.test: Fixed test files to load the correct + * tests/winDde.test: registry and dde packages by using the info + * win/Makefile.in: from makefiles to tell tcltest where to load + * win/makefile.vc: them from. This avoids grabbing the wrong + package from $auto_path which might be the install point rather than + the dev location. Kudos to Jennifer Hom for adding -load and + -loadfile to the tcltest package. [Bug 926088] + + * win/tclWinThrd.c (TclFinalizeLock): release the critical section + before deleting it. [Bug 731778] + + * generic/tcl.h: Removed the file level 'extern "C" {' and the + coresponding closing block as it serves no purpose given that all the + function prototypes have the proper extern usage already. + + * unix/tclAppInit.c: When built as tcltest, TclThread_Init was + * win/tclAppInit.c: getting called twice. First by Tcltest_Init, + then again in Tcl_AppInit. The call from Tcl_AppInit is now removed. + +2004-10-27 Andreas Kupries + + * tests/tm.test: Expanded on the testsuite entered by Donal. + * library/tm.tcl: Even found bugs, these have been corrected. + +2004-10-26 Kevin Kenny + + * tests/format.test (format-19.1): Additional regression test for [Bug + 868489]. + +2004-10-27 Donal K. Fellows + + * doc/*.n: Many small general documentation fixes. + +2004-10-26 David Gravereaux + + * generic/tclPipe.c (TclCleanupChildren): bad cast of resolvedPid + caused PIDs on win95 to go negative. winpipe-4.2 brought this to the + surface. Fixed with sprintf in place of TclFormatInt. Thanks to hgiese + [Patch 767676] + +2004-10-26 Andreas Kupries + + * library/tm.tcl (::tcl::tm::Defaults): Added a second [file dirname] + around the location of the executable. This fixes [Bug 1038705]. + Instable of a bogus "foo/bin/lib" we now have the correct "foo/lib" as + a base path for modules. + +2004-10-26 Don Porter + + * generic/tclParse.c (Tcl_SubstObj): Fix for failed subst-12.3 test. + * tests/subst.test (subst-12.3-5): More tests for Bug 1036649. + + * unix/Makefile.in (install-libraries): Updated the installation of + the http, msgcat, and tcltest packages to install as Tcl Modules on + Unix systems. Other platform Makefiles still need updating. [Patch + 1054370] + + * tests/basic.test: Added missing constraints. + * tests/compile.test: + * tests/fileSystem.test: + + * tests/init.test (init-2.8): Updated to not rely on http package. + +2004-10-26 Miguel Sofer + + * generic/tclInt.h: + * generic/tclVar.c: removed more direct references to the VAR flags, + replaced with access macros. + +2004-10-26 Donal K. Fellows + + * doc/expr.n: Clarified that non-num/non-bool literals require + quoting. [Bug 1027849]. Also listed booleans as acceptable values. + +2004-10-26 Kevin B. Kenny + + * library/clock.tcl (FreeScan): Fixed a bug that caused relative days + of the week in free-form [clock scan] to be evaluated in the wrong + time zone. + * tests/clock.test (clock-31.[456]): Made sure that there isn't an + env(TZ) or env(TCL_TZ) lying around that will override the time zone + that we're trying to establish with the simulated registry. + Both problems reported as [Bug 1054101]. + +2004-10-25 Donal K. Fellows + + * doc/string.n (map): Rewrote to clarify that we don't just map single + characters. [Bug 1048005] + * doc/info.n (procs): Clarified that the pattern argument may have + namespace separators in it. [Bug 1047928] + + * tests/cmdAH.test (cmdAH-8.45): Simplify in the hope that the reasons + for [Bug 1053908] will become clearer. + +2004-10-25 Don Porter + + * generic/tclExecute.c (IllegalExprOperandType,TclExecuteByteCode): + Removed several DECACHE_INFO/CACHE_INFO pairs that are no longer + needed for protection because routines like Tcl_SetErrorCode() and + Tcl_AddErrorInfo() can no longer re-enter bytecode execution. + + * generic/tclResult.c (TclProcessReturn): Bug fix. Be sure that a + missing -errorinfo option when code == TCL_ERROR causes the errorInfo + field to get reset. + + * tests/thread.test (thread-4.4): Test depended on a ::errorInfo value + initialized to "". Added code to test to setup that requirement. + + * library/auto.tcl: Purged Tcl's script library of all + * library/clock.tcl: remaining references to global vars + * library/init.tcl: ::errorInfo and ::errorCode. + + * generic/tclMain.c (Tcl_Main): Updated to make use of + TclGetReturnOptions instead of ::errorInfo variable. + + * generic/tclInterp.c (tclInit): Bug fix. Access dict variables with + [dict get], not array syntax. + +2004-10-25 Donal K. Fellows + + * tests/tm.test: Rewrote the tests to actually perform syntax checks + on the public API. Added a new test (currently failing) to indicate + that the test suite is not complete yet. + * library/tm.tcl (path): Rewrote to turn this command into an ensemble + to make it faster and simpler. + +2004-10-24 Miguel Sofer + + * generic/tclCmdIL.c: + * generic/tclExecute.c: + * generic/tclInt.h: + * generic/tclTrace.c: defined new macros to get/set the flags of + variables. The only files that still access the flag values directly + are tclCompCmds.c, tclCompile.c, tclProc.c and tclVar.c + +2004-10-24 Don Porter + + * generic/tclBasic.c (Tcl_LogCommandInfo,Tcl_AddObjErrorInfo): Shift + the initialization of errorCode to NONE to more central location. + + * generic/tclEvent.c (BgError,Tcl_BackgroundError,HandleBgErrors): + Rewrite to build on the new TclGet/SetReturnOptions routines. + + * generic/tclResult.c (TclGetReturnOptions): Add call to + Tcl_AddObjErrorInfo to be sure error fields are initialized. + + * generic/tclResult.c (TclTransferResult): Rewrite to build on the new + TclGet/SetReturnOptions routines. + +2004-10-22 Donal K. Fellows + + * doc/tm.n: Tightened up the documentation. + * tests/tm.test: Created (with partially dummy content) so TIP#189 can + be marked Final. + + * generic/tclNamesp.c (NsEnsembleImplementationCmd): Make ensembles + cut their implementations out of error traces. This is the right thing + to do more often than not. + +2004-10-22 Kevin B. Kenny + + * library/clock.tcl: Fixed a typo where the fallback time zone became + ::localtime instead of :localtime. Fixed a bug where time zone names + containing hyphens could not be loaded. + * tests/clock.test: Added regression test cases that covers both bugs. + Thanks to Todd M. Helfter for finding + these bugs. + +2004-10-22 Donal K. Fellows + + * generic/tclExecute.c (TclCompEvalObj, Tcl_ExprObj): + * generic/tclProc.c (TclProcCompileProc): Always call object + freeIntRepProc's in the same way. + +2004-10-22 Miguel Sofer + + * generic/tclVar.c: fixed bug in commit of 2004-07-23, which was + causing a leak of Proc structures and failure of compile-12.1. Two + lines were 'zombies' from the previous way localVarNames worked. + Credit dgp for finding this. + +2004-10-21 Don Porter + + * generic/tclInt.h (Interp): + * generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp): + * generic/tclResult.c (GetKeys,ReleaseKeys,etc.): Moved the key values + of the return options dictionary out of private fields of the Interp + struct and into thread-static values managed in tclResult.c. + + * generic/tclCmdAH.c (Tcl_CatchObjCmd, Tcl_ErrorObjCmd): Updated to + call the new TclGet/SetReturnOptions routines to do much of their + work. + + * generic/tclInt.h (TclGetReturnOptions,TclSetReturnOptions): + * generic/tclResult.c (TclGetReturnOptions,TclSetReturnOptions): New + utility routines to get/set the return options of an interp. Intent is + that these routines will be converted to public routines after TIP + approval. + + * generic/tclCmdMZ.c (TclProcessReturn,TclMergeReturnOptions): + * generic/tclResult.c (TclProcessReturn,TclMergeReturnOptions): Move + internal utility routines from tclCmdMZ.c to tclResult.c. + + * generic/tclBasic.c (Tcl_CreateInterp, Tcl_DeleteInterp): + * generic/tclResult.c (TclTransferResult): Rework so that + iPtr->returnOpts can be NULL when there are no special options. + + * generic/tclResult.c (TclRestoreInterpState): Plug potential memory + leak. + +2004-10-21 Kevin B. Kenny + + * generic/tclBasic.c: Various changes to [clock format] that, + * generic/tclClock.c: together, make it roughly twice as fast + * generic/tclInt.h: while all tests in the test suite + * library/clock.tcl: continue to pass. + +2004-10-20 Andreas Kupries + + * win/Makefile.in (install-msgs): Fixed a problem with the + * win/Makefile.in (install-tzdata): installation of timezone data and + message catalogs. They used the installed tcl library directory, not + the source library. Before it was installed. Switched to source lib + dir. Thanks to Kevin for the help in figuring this out. + +2004-10-20 Don Porter + + * generic/tclThreadTest.c (ThreadEventProc): Corrected subtle bug + where the returned (char *) from Tcl_GetStringResult(interp) continued + to be used without copying or refcounting, while activity on the + interp continued. That's not safe, and recent changes demonstrated + the lack of safety with failing tests thread-4.3 and thread-4.5. + +2004-10-19 Donal K. Fellows + + * generic/tclDictObj.c (DictWithCmd): Make sure all paths (that are + not themselves error paths) do not lose the result code. + +2004-10-19 Don Porter + + * generic/tclInt.h (Tcl*InterpState): New internal routines + * generic/tclResult.c (Tcl*InterpState): TclSaveInterpState, + TclRestoreInterpState, and TclDiscardInterpState are superior + replacements for Tcl_(Save|Restore|Discard)Result. Intent is that + these routines will be converted to public routines after TIP + approval. Interfaces for these routines were shamelessly stolen from + Itcl. + + * generic/tclBasic.c (TclEvalObjvInternal): + * generic/tclDictObj.c (DictUpdateCmd, DictWithCmd): + * generic/tclIOGT.c (ExecuteCallback): + * generic/tclTrace.c (Trace*Proc,TclCheck*Traces,TclCallVarTraces): + Callers of Tcl_*Result updated to call the new routines. The calls + were relocated in several cases to perform save/restore operations + only when needed. + + * generic/tclEvent.c (HandleBgErrors): + * generic/tclFCmd.c (CopyRenameOneFile): Calls to Tcl_*Result that + were eliminated because they appeared to serve no useful purpose, + typically saving/restoring an error message, only to throw it away. + +2004-10-18 Don Porter + + * generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp): + * generic/tclCmdAH.c (Tcl_CatchObjCmd): + * generic/tclCmdMZ.c (TclMergeReturnOptions,TclProcessReturn): + * generic/tclCompCmds.c (TclCompileReturnCmd): + * generic/tclExecute.c (TclCompEvalObj): + * generic/tclInt.h (Interp): + * generic/tclProc.c (TclUpdateReturnInfo): Place primary storage of + the -level and -code information in private fields of the Interp + struct, rather than in a DictObj. This should significantly improve + performance of TclUpdateReturnInfo. + +2004-10-17 Miguel Sofer + + * generic/tclResult.c: removed unused variable [Bug 1048588]. Thanks + to Daniel South. + +2004-10-15 Don Porter + + * generic/tclCmdMZ.c (TclProcessReturn): Now that primary + * generic/tclProc.c (TclUpdateReturnInfo): storage for the + errorInfo and errorCode values are internal fields, we can set them at + the time of the [return] command, and not have to wait until the + specified number of "-level"s have popped. + + * generic/tclBasic.c (Tcl_CreateInterp, Tcl_DeleteInterp) + (TclEvalObjvInternal, Tcl_LogCommandInfo, TclAddObjErrorInfo): + * generic/tclCmdAH.c (Tcl_CatchObjCmd): + * generic/tclEvent.c (BgError, ErrAssocData, Tcl_BackgroundError) + (HandleBgErrors, BgErrorDeleteProc): + * generic/tclExecute.c (TclCreateExecEnv, TclDeleteExecEnv): + * generic/tclIOUtil.c (comments only): + * generic/tclInt.h (ExecEnv,Interp, ERR_IN_PROGRESS): + * generic/tclInterp.c ([tclInit]): + * generic/tclMain.c (comments only): + * generic/tclNamesp.c (Tcl_CreateNamespace, Tcl_DeleteNamespace) + (TclTeardownNamespace): + * generic/tclProc.c (TclUpdateReturnInfo): + * generic/tclResult.c (Tcl_ResetResult, TclTransferResult): + * generic/tclTrace.c (CallVarTraces): + Reworked management of the "errorInfo" data of an interp. That + information is now primarily stored in a new private (Tcl_Obj *) field + of the Interp struct, rather than using a global variable ::errorInfo + as the primary storage. The ERR_IN_PROGRESS flag bit value is no + longer required to manage the value in its new location, and is + removed. Variable traces are established to support compatibility for + any code expecting the ::errorInfo variable to hold the information. + + ***POTENTIAL INCOMPATIBILITY*** + Code that sets traces on the ::errorInfo variable may notice a + difference in timing of the firing of those traces. Code that uses the + value ERR_IN_PROGRESS. + +2004-10-14 Donal K. Fellows + + TIP#217 IMPLEMENTATION + + * generic/tclCmdIL.c (Tcl_LsortObjCmd): Add -indices option from James + Salsman. [Patch 1017532] + + * generic/tclUtil.c (TclMatchIsTrivial): Detect degenerate cases of + glob matching that let us avoid scanning through hash tables. + * generic/tclCmdIL.c (InfoCommandsCmd, InfoGlobalsCmd, InfoProcsCmd): + (InfoVarsCmd): Use this to speed up some [info] subcommands. + +2004-10-12 Kevin B. Kenny + + * library/tzdata/America/Campo_Grande: + * library/tzdata/America/Cuiaba: + * library/tzdata/America/Sao_Paulo + * library/tzdata/America/Argentina/Mendoza: + * library/tzdata/America/Argentina/San_Juan: + Synchronized to Olson's 'tzdata2004e'. + +2004-10-08 Donal K. Fellows + + TIP#201 AND TIP#212 IMPLEMENTATIONS + + * doc/dict.n, doc/expr.n: Documentation for new functionality. + * tests/expr.test: Basic tests of 'in' and 'ni' behaviour. + * tests/dict.test (dict-21.*,dict-22.*): Tests for [dict update] and + [dict with]. + * generic/tclExecute.c (TclExecuteByteCode): Implementation of the + INST_LIST_IN and INST_LIST_NOT_IN bytecodes. + * generic/tclParseExpr.c (GetLexeme): Parse the 'in' and 'ni' + operators for TIP#201. + * generic/tclDictObj.c (DictUpdateCmd,DictWithCmd): Core of + implementation of TIP#212; docs and tests still to do... + +2004-10-07 Don Porter + + * generic/tclTest.c (TestsetobjerrorcodeCmd): Simplified. + +2004-10-07 Vince Darley + + * generic/tclFileName.c: + * generic/tclFileSystem.h: + * generic/tclIOUtil.c: + * generic/tclPathObj.c: + * unix/tclUnixFile.c: + * win/tclWinFile.c: + * tests/fileName.test: + * tests/winFCmd.test: code reorganization for better generic/platform + code splitting [Bug 925620] removing the need for several #ifdef's, + and tests and fix for an unreported Windows glob problem ('glob -dir + C: -tails *'). + +2004-10-07 Donal K. Fellows + + * *.3: Convert CONST to const and VOID to void so we document how + people should actually use the Tcl API and not the compatability hacks + that it has to have. + + * doc/man.macros, *.3: Update .AS macro so it can know how wide to + make the third column of the argument list. Update documentation for C + API (only users) to take advantage of this. + + * doc/FileSystem.3: Formatting fixes for greater documentation + clarity. + +2004-10-06 Donal K. Fellows + + * generic/tclFileName.c (DoGlob, TclGlob): Stop messy sharing of + interpreter result and instead use a private object for collecting the + result of the glob. This simplifies TclGlob quite a lot. + * generic/tclIOUtil.c (Tcl_FSMatchInDirectory): Simplify by removing + some nesting. Also standardize variable names. + (FsAddMountsToGlobResult): Force updates to the list to be done + in-place, putting a side-condition of non-shared-ness on the resultPtr + argument to Tcl_FSMatchInDirectory, but everything would have broken + before if that was shared *anyway*. + + * generic/tclEncoding.c (LoadTableEncoding): Removed reference to Tcl + interpreter; it wasn't needed as direct object use is more efficient. + + * generic/tclPathObj.c: Made this file follow the style rules in the + Engineering Manual more closely, and also take advantage of the + internal object manipulation macros more. + + * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): Reorganized to have fewer + magic flag variables and to separate the code that scans for a match + from the code that processes a match body. + +2004-10-06 Don Porter + + * generic/tclBasic.c: + * generic/tclBinary.c: + * generic/tclCmdAH.c: + * generic/tclCmdIL.c: + * generic/tclCmdMZ.c: + * generic/tclCompExpr.c: + * generic/tclDictObj.c: + * generic/tclEncoding.c: + * generic/tclExecute.c: + * generic/tclFCmd.c: + * generic/tclHistory.c: + * generic/tclIndexObj.c: + * generic/tclInterp.c: + * generic/tclIO.c: + * generic/tclIOCmd.c: + * generic/tclNamesp.c: + * generic/tclObj.c: + * generic/tclPkg.c: + * generic/tclResult.c: + * generic/tclScan.c: + * generic/tclTimer.c: + * generic/tclTrace.c: + * generic/tclUtil.c: + * generic/tclVar.c: + * unix/tclUnixFCmd.c: + * unix/tclUnixPipe.c: + * win/tclWinDde.c: + * win/tclWinFCmd.c: + * win/tclWinPipe.c: + * win/tclWinReg.c: + It is a poor practice to directly set or append to the value of the + objResult of an interp, because that value might be shared, and in + that circumstance a Tcl_Panic() will be the result. Searched for + example of this practice and replaced with safer alternatives, often + using the Tcl_AppendResult() routine that dkf just rehabilitated. + * library/dde/pkgIndex.tcl: Bump to dde 1.3.1 + * library/reg/pkgIndex.tcl: Bump to registry 1.1.5 + +2004-10-06 Donal K. Fellows + + * doc/SetResult.3: Made Tcl_AppendResult non-deprecated; better that + people use it than most of the common alternatives! + * generic/tclResult.c (Tcl_AppendResultVA): Make this work better with + Tcl_Objs. [Patch 1041072] + (Tcl_SetResult, Tcl_AppendElement): Change string to stringPtr to + avoid C++ keywords. + +2004-10-05 Don Porter + + * generic/tclBasic.c (TclObjInvoke): More simplification of the + TclObjInvoke routine toward unification with the rest of the + evaluation stack. + + * generic/tclBasic.c (Tcl_CreateInterp, Tcl_DeleteInterp) + (TclEvalObjvInternal, Tcl_LogCommandInfo): + * generic/tclCmdAH.c (Tcl_CatchObjCmd): + * generic/tclEvent.c (BgError, Tcl_BackgroundError, HandleBgErrors): + * generic/tclInt.h (Interp, ERROR_CODE_SET): + * generic/tclNamesp.c (Tcl_CreateNamespace, Tcl_DeleteNamespace) + (TclTeardownNamespace): + * generic/tclResult.c (Tcl_ResetResult, Tcl_SetObjErrorCode) + (TclTransferResult): + * generic/tclTrace.c (CallVarTraces): + Reworked management of the "errorCode" data of an interp. That + information is now primarily stored in a new private (Tcl_Obj *) field + of the Interp struct, rather than using a global variable ::errorCode + as the primary storage. The ERROR_CODE_SET flag bit value is no longer + required to manage the value in its new location, and is removed. + Variable traces are established to support compatibility for any code + expecting the ::errorCode variable to hold the information. + + ***POTENTIAL INCOMPATIBILITY*** + Code that sets traces on the ::errorCode variable may notice a + difference in timing of the firing of those traces. + + * generic/tclNamesp.c (Tcl_PopCallFrame): Removed Bug 1038021 + workaround. That bug is now fixed. + +2004-10-04 Kevin B. Kenny + + * tests/clock.test (clock-34.*): Removed an antibug that forced + comparison of [clock scan] results with the :localtime time zone. Now + that [clock scan] uses the current time zone instead, the antibug + caused several tests to fail. [Bug 1038554] + +2004-10-04 Donal K. Fellows + + * generic/tclParseExpr.c (GetLexeme): Ensure that the 'eq' and 'ne' + operators are followed by non-alphabetic characters so lexemes can't + run together. [Bug 884830] + + * doc/DictObj.3, doc/dict.n: Clarified that a dictionary is not + order-preserving. [Bug 1032243] Also added another example to show off + more ways of using a dictionary and a few other formatting + improvements. + +2004-10-02 Donal K. Fellows + + * generic/tclDictObj.c (TraceDictPath, Tcl_DictObjPutKeyList): Add + support for automatic creation of dictionary paths since that is what + everyone seems to actually expect of the API! [Bug 1037235] + (Tcl_DictObjNext): Make calling this after Tcl_DictObjDone non-fatal + as that simplifies a number of internal APIs. This doesn't break any + existing working code as it is a case which previously caused a panic. + +2004-10-02 Don Porter + + * tests/namespace.test (namespace-8.7): Another test for save/restore + of ::errorInfo and ::errorCode during global namespace teardown. + +2004-10-01 Donal K. Fellows + + * generic/tclProc.c (TclObjGetFrame, Tcl_UplevelObjCmd): + * generic/tclVar.c (Tcl_UpvarObjCmd): Cache stackframe level + references in the level object for speed. + +2004-09-30 Don Porter + + * generic/tclBasic.c (Tcl_CreateInterp): + * generic/tclInt.h (Interp): Removed the flag bit value + EXPR_INITIALIZED. It was set during interp creation and never tested. + Whatever purpose it had is in the past. + + * generic/tclBasic.c (Tcl_EvalObjEx): Removed the flag bit value + * generic/tclInt.h (Interp): USE_EVAL_DIRECT. It was used + * generic/tcLTest.c (TestevalexObjCmd): only in the testing command + * tests/parser.test (parse-9.2): [testevalex] and nothing in + the test suite made use of the capability it enabled. + + * generic/tclBasic.c (Tcl_AddObjErrorInfo): More re-organization + * generic/tclCmdAH.c (Tcl_ErrorObjCmd): of the management of + * generic/tclCmdMZ.c (TclProcessReturn): the errorCode value. + * tests/error.test (error-6.4-9): + + * generic/tclNamespace.c (TclTeardownNamespace): Tcl_Obj-ified + * tests/namespace.test (namespace-8.5,6): the save/restore of + ::errorInfo and ::errorCode during global namespace teardown. Revised + the comment to clarify why this is done, and added tests that will + fail if this is not done. + + * generic/tclResult.c (TclTransferResult): Added safety checks so that + unexpected undefined ::errorInfo or ::errorCode will not lead to a + segfault. + + * generic/tclTrace.c (TclCallVarTraces): Save/restore the flag values + * tests/var.test (var-16.1): that define part of the + interpreter state during variable traces. [Bug 1038021]. + +2004-09-30 Miguel Sofer + + * tests/subst.test (12.1-2): added tests for [Bug 1036649] + +2004-09-29 Don Porter + + * tests/basic.test (49.*): New tests for TCL_EVAL_GLOBAL. + +2004-09-29 Donal K. Fellows + + * generic/tclVar.c (TclObjLookupVar, TclObjLookupVar): + (TclObjUnsetVar2, SetArraySearchObj): + * generic/tclUtil.c (SetEndOffsetFromAny): + * generic/tclStringObj.c (Tcl_SetStringObj): + (Tcl_SetUnicodeObj, SetStringFromAny): + * generic/tclResult.c (ResetObjResult): + * generic/tclRegexp.c (Tcl_GetRegExpFromObj): + * generic/tclPathObj.c (TclFSMakePathRelative, SetFsPathFromAny): + (TclFSMakePathFromNormalized, Tcl_FSNewNativePath): + * generic/tclObj.c (TclFreeObj, Tcl_SetBooleanObj, SetBooleanFromAny): + (Tcl_SetDoubleObj, SetDoubleFromAny, Tcl_SetIntObj): + (SetIntOrWideFromAny, Tcl_SetLongObj, SetWideIntFromAny): + (Tcl_SetWideIntObj, TclSetCmdNameObj, SetCmdNameFromAny): + * generic/tclNamesp.c (SetNsNameFromAny, MakeCachedEnsembleCommand): + * generic/tclListObj.c (Tcl_SetListObj, SetListFromAny): + * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): + * generic/tclDictObj.c (SetDictFromAny): + * generic/tclCompile.c (TclInitByteCodeObj): + * generic/tclBinary.c (Tcl_SetByteArrayObj, SetByteArrayFromAny): + * generic/tclInt.h (TclFreeIntRep): Factorize out deletion of object + internal representation to a shared macro, so simplifying much code. + +2004-09-27 Miguel Sofer + + * generic/tclBasic.c (TclObjInvoke): fix for bogus gcc warning about + uninitialised variable. + +2004-09-27 Don Porter + + * generic/tclBasic.c: Removed internal routines TclInvoke, + * generic/tclInt.decls: TclGlobalInvoke, TclObjInvokeGlobal and the + * tests/basic.test: portion of TclObjInvoke that handles calls + without TCL_INVOKE_HIDDEN enabled. None of this code is called any + longer within the core, and the superior public interface, + Tcl_EvalObjv, is available for any external callers. + + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclEvent.c (HandleBgErrors): Updated [bgerror] invocations + to make use of Tcl_Obj based routines, dropping the calls to + TclGlobalInvoke() + +2004-09-27 Vince Darley + + * generic/tclFileName.c: + * generic/tclFileSystem.h: + * generic/tclIOUtil.c: + * generic/tclPathObj.c: + * tests/cmdAH.test: + * tests/fileSystem.test: + * tests/winFCmd.test: fix to bad error message with 'cd' on windows, + when permissions are inadequate [Bug 1035462] and to treatment of a + volume-relative pwd on Windows [Bug 1018980]. + + * doc/FileSystem.3: added missing Tcl_GlobTypeData documentation [Bug + 935853] + +2004-09-27 Kevin Kenny + + * compat/strftime.c (Removed): + * generic/tclClock.c (removed TclClockOldscanObjCmd): + * generic/tclDate.c (Regenerated): + * generic/tclGetDate.y: + * generic/tclInt.decls (removed TclGetDate and TclpStrftime): + * generic/tclInt.h (removed TclGetDateInfo): + * generic/tclIntDecls.h (Regenerated): + * generic/tclStubInit.c (Regenerated): + * library/clock.tcl: + * unix/tclUnixTime.c (removed TclpStrftime): + * win/Makefile.in: + * win/makefile.bc: + * win/makefile.bc: + * win/tcl.dsp: + Continued refactoring of [clock] for TIP 173 changes. Broke the + free-form parser apart so that the Bison parser is responsible for + only parsing, while clock.tcl handles relative times like "next + Thursday", "next January". This change is needed to make timezones + other than :localtime and :Etc/UTC work with free-form scanning. This + change closes out the issue identified as being "for another day" in + my log message of 2004-09-08. The refactored code also eliminates the + last known references to TclpStrftime and TclGetDate, so those + routines (including compat/strftime.c) have been removed. The + refactoring also has the benefit that all storage in the Bison parser + is now on the C stack, eliminating any need for mutex protection + around [clock scan]. Also, changed the Makefiles so that 'make + gendate' is available on Windows as well as Unix. + + * generic/tclCmdAH.c (Tcl_FormatObjCmd): Removed some grubby + * generic/tclObj.c (SetBooleanFromAny): work-around code that was + needed only because of Bug 868489. + + * generic/tclBasic.c (TclObjInvoke): Removed three unused variables to + silence a compiler warning in VC++. + +2004-09-27 Vince Darley + + * doc/FileSystem.3: fix to small typo. + +2004-09-26 Miguel Sofer + + * generic/tclCompCmds.c: + * generic/tclCompExpr.c: + * generic/tclCompile.c: + * generic/tclCompile.h: + * generic/tclInt.h: + * generic/tclProc.c: + * tests/compExpr-old.test: + * tests/compExpr.test: + * tests/expr.test: + * tests/for.test: + * tests/if.test: + * tests/incr.test: + * tests/while.test: + Report compilation errors at runtime, [Patch 1033689] by dgp. + +2004-09-23 Mo DeJong + + * unix/dltest/Makefile.in (clean): Fixup make clean rule so that it + does not delete all files when SHLIB_SUFFIX is set to the empty string + in a static build. [Bug 1016726] + +2004-09-23 Don Porter + + * generic/tclBasic.c: Corrections to the 2004-09-21 commit + * generic/tclExecute.c: regarding ERR_ALREADY_LOGGED. That commit + * generic/tclNamesp.c: caused Tk test send-10.7 to fail. Added + * tests/namespace.test (25.7,8): tests in the Tcl test suite + * tests/pkg.test (2.25,26): to catch this error without the aid + of Tk in the future. + + * generic/tclCmdAH.c (Tcl_ExprObjCmd): Simplified the TclObjCmdProc + of [expr] with a call to Tcl_ConcatObj. + +2004-09-22 Don Porter + + * generic/tclCmdMZ.c (TclProcessReturn): Support the -errorline + * generic/tclCompile.c (TclCompileScript): option to [return]. + * tests/compile.test (16.23.*): Use that capability to defer reporting + * tests/misc.test (1.2): of parse errors until runtime. Updated + tests to reflect change. [Bug 1032805] + +2004-09-22 Miguel Sofer + + * generic/tclExecute.c (INST_START_CMD): + * tests/proc.test (7.2-3): fix for [Bug 729692] was incorrect whenever + a loop exception was returned. + +2004-09-22 Kevin B. Kenny + + * library/tzdata/America/Montevideo: Updated to reflect + ftp://elsie.nci.nih.gov/pub/tzdata2004d.tar.gz. (Changes to + Asia/Jerusalem were in the comments only.) [Routine maintenance - no + bug] Spanish-language description of the change at + http://www.presidencia.gub.uy/decretos/2004091502.htm + +2004-09-21 Don Porter + + * generic/tclCompCmds.c: Tolerate [append] syntax errors + * tests/appendComp.test (8.1): at compile time, and allow runtime to + raise the error (or succeed if a redefined [append] allows). + + * generic/tclBasic.c: Reworked management of the interp flag + * generic/tclCompile.c: ERR_ALREADY_LOGGED, to reduce its exposure. + * generic/tclExecute.c: Still left several referebces that are just + * generic/tclNamesp.c: too nice on performace to do away with. These + changes also resolve an inconsistency in the ::errorInfo values + produced by [namespace eval x error foo bar] and [namespace eval x + {error foo bar}]. + + * generic/tclExecute.c (TclCompEvalObj): Simplified the + TclCompEvalObj routine. Much housekeeping now reliably happens + elsewhere. [Patch 1031949] + +2004-09-21 Donal K. Fellows + + * doc/interp.n: Tighten up wording on how [interp eval] and [interp + invokehidden] operate w.r.t. stack frames. [Bug 926590] + +2004-09-20 Don Porter + + * tests/error.test (error-6.2,3): Added more tests to verify + ::errorCode setting by/after a [catch]. + +2004-09-19 Miguel Sofer + + * generic/tclCmdAH.c: removed outdated comment [Bug 1029518]. + +2004-09-18 David Gravereaux + + * win/tclAppInit.c: Dde package can load into a safe interp. Claim + this fact for the Tcl_StaticPackage() call when the shell is built + with the TCL_USE_STATIC_PACKAGES option. + +2004-09-18 Donal K. Fellows + + * generic/tclExecute.c (TEBC-INST_LSHIFT,INST_RSHIFT): Ensure that + large shifts end up shifting correctly. [Bug 868467] + + * doc/FileSystem.3, doc/OpenFileChnl.3: More documentation fixes from + Mikhail Kolesnitchenko. [Patch 1022527] + * doc/*: Standardize highlighting of symbols defined in tcl.h + +2004-09-17 Don Porter + + * generic/tclBasic.c (Tcl_AddObjErrorInfo, Tcl_LogCommandInfo): + * generic/tclCmdAH.c ([catch], [error]): + * generic/tclCmdMZ.c ([return]): + * generic/tclProc.c (TclUpdateReturnInfo): + * generic/tclResult.c (Tcl_SetErrorCodeVA, Tcl_SetObjErrorCode) + (TclTransferResult): Refactored so that all errorCode setting flows + through Tcl_SetObjErrorCode(). This greatly reduces the number of + different places in the code that need to know details about an + internal bitflag field of the Interp struct. Also places errorCode + setting in one place for easier future mods. + +2004-09-17 Kevin B.Kenny + + * generic/tclDate.c: Revised tclGetDate.y to use bison instead of + * generic/tclGetDate.y: yacc to build the parser, eliminating all the + * generic/tclInt.h: complicated hackery involving 'sed' + * unix/Makefile.in: postprocessing. Rebuilt the parser. + +2004-09-14 Kevin B. Kenny + + * generic/tclClock.c (ClockOldscanObjCmd): Silenced a compiler warning + (long passed as a param where unsigend long was expected). 'Unsigned + long' is wrong, but the fix is really to change the signature of + TclGetDate to return a structure of its 'yy' variables and then do the + remaining work inside clock.tcl. But, as I said on 2004-09-08, that's + a job for another day. [Bug 1027993] + +2004-09-10 Miguel Sofer + + * doc/interp.n: + * generic/tclInterp.c (TclPreventAliasLoop, AliasCreate): + * tests/interp.test (17.4-6, 19.3-4): fixing problems with renaming of + aliases [Bugs 707104 1026493]. Fix designed by dgp. + +2004-09-13 Donal K. Fellows + + * generic/tclNamesp.c (NsEnsembleImplementationCmd): Add token field + to internal rep of EnsembleCmdRep structure so that we can check it to + see if the subcommand object is really being used with the same + ensemble. [Bug 1026903] + +2004-09-11 Kevin B. Kenny + + * generic/tclClock.c (TclMktimeObjCmd): Corrected a bad check for + error return from 'mktime'. + * generic/tclObj.c (Tcl_GetIntFromObj): Corrected a problem where + demoting a wide to an int failed on a big-endian machine. [Bug + 1026125]. + * tests/clock.test (clock-43.1): Added regression test for error + return from 'mktime'. + +2004-09-11 Miguel Sofer + + * generic/tclExecute.c (INST_CONCAT1): fix for [Bug 1025834]; avoid + unnecessary string copies. + +2004-09-10 David Gravereaux + + * tests/tcltest.test: tcltest-12.3-4 needed to have + ::tcltest::loadScript set to empty in their -setup + +2004-09-10 Donal K. Fellows + + * generic/tclObj.c (SetIntOrWideFromAny): Rewritten integral value + parsing code so that values do not flip so easily between numeric + representations. Thanks to KBK for this! [Bug 868489] + + * generic/tclIO.c (Tcl_Seek): Make sure wide seeks do not fail to set + ::errorCode on error. [Bug 1025359] + +2004-09-10 Andreas Kupries + + * generic/tcl.h: Micro formatting fixes. + * generic/tclIOGT.c: Channel version fixed, must be 3, to have + wideseekProc. Thanks to David Graveraux . + +2004-09-11 Don Porter + + * generic/tclNamespace.c (TclGetNamespaceForQualName): Resolved + longstanding inconsistency in the treatment of the TCL_NAMESPACE_ONLY + flag revealed by testing the 2004-09-09 commits against Itcl. + TCL_NAMESPACE_ONLY now acts as specified in the pre-function comment, + forcing resolution in the passed in context namespace. It has been + incorrectly forcing resolution in the interp's current namespace. + +2004-09-10 Kevin Kenny + + * library/clock.tcl: Fixed a bug where %z always put a plus sign on + the time zone in :localtime. + * tests/clock.test: Added test case for the above bug. + +2004-09-10 Miguel Sofer + + * generic/tclExecute.c (INST_CONCAT1): added a peephole optimisation + for concatting an empty string. This enables replacing the idiom 'K $x + [set x {}]' by '$x[set x {}]' for fastest execution. + +2004-09-09 David Gravereaux + + * win/tclWinConsole.c: Calls to WriteFile and WriteConsoleA changed to + WriteConsole for simplicity. + +2004-09-09 Don Porter + + * generic/tclNamesp.c (Tcl_ForgetImport): Corrected faulty + + * tests/namespace.test: logic that relied exclusively on string + matching and failed in the presence of [rename]s. [Bug 560297] Also + corrected faulty prevention of [namespace import] cycles. [Bug 1017299] + +2004-09-08 Don Porter + + * generic/tclBasic.c (Tcl_CreateInterp): Removed obsolete field + for storing the string-based command procedure of built-in commands. + We no longer have any string-based built-in commands! + +2004-09-08 Kevin B. Kenny + + * compat/strftime.c (_conv): Corrected a problem where hour 0 would + format as a blank format group with %k. + * doc/clock.n: Corrected a buglet in the header information. [Bug + 1024058] + * generic/tclClock.c (TclClockMktimeObjCmd): Fixed a bug where the + month was scanned incorrectly in -timezone :localtime. + * tests/clock.test (clock-34.*,clock-40.1, clock-41.1): Adjusted the + clock-34.* test cases so that the consistency check is performed in + :localtime rather than the current time zone. This change allows + dealing with issues where the C library has a different idea of DST + conversion than Tcl. (Real fix would be to break TclGetDate into + separate parser and time converter, and do the time conversion in + clock.tcl. That's for another day.) Added regression test case for + the bug where month was scanned incorrectly in -timezone :localtime. + [Bug 1023779] Added regression test case for %k at the zero hour. + +2004-09-07 David Gravereaux + + * win/makefile.vc: some quoting needed to be removed as it was + breaking with VC7. [Bug 1023150] + +2004-09-07 Kevin B. Kenny + + * doc/clock.n: Documented the default -format, and changed references + to a (nonexistent) msgcat command to refer to the msgcat package. [Bug + 1023870] + * generic/tclTimer.c: Removed a premature optimisation that attempted + to store the assoc data in the client data; the optimisation caused a + bug that [after] would overwrite its imports. [Bug 1016167] + * library/clock.tcl (InitTZData, ClearCaches): Changed so that the + in-memory time zone :UTC (and its aliases) always gets reinitialised, + in case tzdata is absent. [Bug 1019537, 1023779] + * library/tzdata/*: Regenerated. + * tests/clock.test (clock-31.*, clock-39.1): Corrected a problem where + the 'system' locale tests fail on a non-English Windows machine. [Bug + 1023761]. Added a test to make sure that alias time zones load + correctly. [Bug 1023779]. + * tests/timer.test (timer-1.1, timer-2.1): Changed to (one hopes!) be + more resilient on an overloaded system, if [after 200] sleeps for 300 + ms or longer. + * tools/tclZIC.tcl (writeLinks): Corrected a problem where alias time + zone names were written incorrectly, causing them to fail to load at + run time. [Bug 1023779]. + * win/tclWinTime.c (Tcl_GetTime): Eliminated CPUID tests on Win64 - + assuming that HAL vendors now do a better job of keeping the + performance counters synchronized among CPU's. [Bug 1020445] + +2004-09-06 Donal K. Fellows + + * doc/tclvars.n, doc/tcltest.n, doc/tclsh.1, doc/safe.n, doc/expr.n + * doc/WrongNumArgs.3, doc/Utf.3, doc/TraceVar.3, doc/Thread.3 + * doc/TCL_MEM_DEBUG.3, doc/SubstObj.3, doc/StdChannels.3 + * doc/SetResult.3, doc/RegExp.3, doc/RegConfig.3, doc/RecEvalObj.3 + * doc/PrintDbl.3, doc/ParseCmd.3, doc/Panic.3, doc/ObjectType.3 + * doc/Object.3, doc/Namespace.3, doc/Interp.3, doc/IntObj.3 + * doc/Hash.3, doc/GetOpnFl.3, doc/GetIndex.3, doc/Eval.3 + * doc/Encoding.3, doc/DoubleObj.3, doc/DictObj.3, doc/CrtTimerHdlr.3 + * doc/CrtObjCmd.3, doc/CrtMathFnc.3, doc/CrtCommand.3, doc/CrtChannel.3 + * doc/ChnlStack.3, doc/ByteArrObj.3, doc/AssocData.3, doc/Alloc.3: + More documentation fixes from Mikhail Kolesnitchenko. [Patch 1022527] + +2004-09-03 Donal K. Fellows + + * unix/tclUnixFCmd.c: Stop NULL interp arguments from triggering a + crash when an error happens. [Bug 1020538] + +2004-09-02 Donal K. Fellows + + * doc/lsearch.n: Clarified meaning of -dictionary. [Bug 759545] + +2004-09-02 Vince Darley + + * win/makefile.vc: clock.tcl needs to be installed. + +2004-09-01 Jeff Hobbs + + * win/tclWinReg.c (BroadcastValue): WIN64 cast corrections + + * win/tclWinDde.c (DdeClientWindowProc): + (DdeServicesOnAck, DdeEnumWindowsCallback): WIN64 corrections + + * win/tclWin32Dll.c (TclWinCPUID): need _asm for WIN64 (Itanium), + until we have it, just return unknown. [Bug 1020445] + +2004-09-01 Donal K. Fellows + + * doc/regsub.n, doc/RegConfig.3, doc/Environment.3: + * doc/CrtChannel.3, doc/safe.n: Use correct abbreviations. + +2004-08-31 Donal K. Fellows + + * doc/trace.n, doc/socket.n, doc/registry.n, doc/pid.n: + * doc/namespace.n, doc/msgcat.n, doc/lsort.n, doc/lsearch.n: + * doc/linsert.n, doc/info.n, doc/http.n, doc/history.n: + * doc/format.n, doc/file.n, doc/exec.n, doc/dde.n, doc/clock.n: + * doc/catch.n, doc/binary.n: More spelling and grammar fixes from + Mikhail Kolesnitchenko. [Patch 1018486] + +2004-08-31 Vince Darley + + * doc/FileSystem.3: + * generic/tclIOUtil.c: Clarified documentation regarding ability of a + filesystem to say that it doesn't support a given operation using the + EXDEV posix error code (copyFileProc, renameFileProc, etc), and + updated one piece of code to ensure correct behaviour when an + operation is not supported [Bug 1017072] + + * tests/fCmd.test: fix to test suite problem [Bug 1002884] + +2004-08-31 Daniel Steffen + + * unix/Makefile.in (install-libraries): portable sh fix. + +2004-08-30 Donal K. Fellows + + * generic/tclCmdMZ.c (Tcl_StringObjCmd): Stop [string map] from + crashing when its map and input string are the same object. + +2004-08-27 Donal K. Fellows + + * generic/tclNamesp.c (FindEnsemble): Factor out the code to convert a + command name into an ensemble configuration and add support for + ignoring [namespace import] link chains. [Bug 1017022] + (NamespaceWhichCmd): Rework to use newer option parsing API. + +2004-08-27 Daniel Steffen + + * unix/Makefile.in: added customization of default module path roots + via TCL_MODULE_PATH makefile variable. + * macosx/Makefile: add platform standard locations to default module + path roots. [Patch 942881] + + * tests/env.test: macosx fixes. + +2004-08-25 Don Porter + + * tests/timer.test (timer-10.1): Test for Bug 1016167. + * generic/tclTimer.c: Workaround for situation when a [namespace + import] causes the objv[0] value to be something other than what + Tcl_AfterObjCmd expects. [Bug 1016167]. + +2004-08-25 Donal K. Fellows + + * generic/tclNamesp.c (NsEnsembleImplementationCmd): Use the ensemble + command token to get the name of the ensemble for passing to the + -unknown handler instead of relying on objv[0], which may contain + useless info in the presence of [namespace import]. Problem found by + Don Porter when investigating [Bug 1016167]. + +2004-08-24 Don Porter + + * generic/tclProc.c: The routine TclProcInterpProc was a + * generic/tclTestProcBodyObj.c: specific instance of the general + service already provided by TclObjInvokeProc. Removed + TclProcInterpProc and TclGetInterpProc from the code... + + * generic/tclInt.decls: ...and from the internal stubs table. + * generic/tclIntDecls.h + * generic/tclStubInit.c + +2004-08-24 Donal K. Fellows + + * doc/string.n: Added clarifying note. + +2004-08-23 Don Porter + + * library/auto.tcl: Updated [tcl_findLibrary] search path to + include any [::pkgconfig get scriptdir,runtime] directory, as + well as the $::auto_path. [RFE 695441] + +2004-08-21 Kevin B. Kenny + + * tests/clock.test (clock-38.1): Changed TZ setting to specify CET in + excruciating detail to deal with systems that lack the Posix defaults + for DST changes (and to be formally correct with the change dates for + CET). + +2004-08-19 Donal K. Fellows + + * generic/tclScan.c (Tcl_ScanObjCmd, ValidateFormat): Ensure that the + %ld conversion works correctly on 64-bit platforms. [Bug 1011860] + +2004-08-19 Kevin Kenny + + * library/clock.tcl (format): Changed default timezone format from + alphabetic to numeric to produce scannable times in more locales. + * tests/clock.test (clock-37.1): Removed now-unused 'needPST' + constraint and the comments that refer to it. + +2004-08-18 Andreas Kupries + + * library/init.tcl: Integrated TIP #189. We source a separate file + (see below), instead of inlining the contents of that file. This + should beeasier to maintain, and easier to backport/install in 8.4 + installations. + + Note: Usage of Tcl Modules is restricted to non-safe interps. It + cannot be loaded into a safe interp. + + * library/tm.tcl: New file, the v2 reference implementation for TIP + #189, Tcl Modules. + + * doc/tm.n: New file, documentation for Tcl Modules, based on the TIP. + + * unix/mkLinks: Regenerated. + * win/makefile.vc: Added tm.tcl to list of files to install. + +2004-08-18 Kevin Kenny + + * tests/httpd (httpdRespond): Corrected an abuse of the [clock] + command that caused test failures for some values of [clock clicks]. + + * doc/clock.n + * generic/tclBasic.c (Tcl_CreateInterp, Tcl_HideUnsafeCommands): + * generic/tclClock.c (all): + * generic/tclInt.h: + * generic/tclInterp.c (CreateSlave): + * library/clock.tcl: (new file) + * library/init.tcl (clock): + * library/msgs/*.msg:(new files) + * library/tzdata/*: + * library/tzdata/*/*: + * library/tzdata/*/*/*: (new files) + * tools/installData.tcl: (new file) + * tools/loadICU.tcl: (new file) + * tools/makeTestCases.tcl: (new file) + * tools/tclZIC.tcl: (new file) + * unix/Makefile.in: + * unix/configure: (regenerated) + * unix/tcl.m4: + * tests/clock.test (all): + * win/Makefile.in: + * win/Makefile.vc: + Implementation of TIPs #173 and #209. + + The [clock] command is now a Tcl ensemble, with most of its + functionality written in Tcl and callouts to C code only to access + low-level functions such as localtime, mktime and tzset. + + In addition to the functionality changes called out in the two TIPs, + it is worth noting that the [clock] command in a safe slave + interpreter is now an alias to the [clock] command in the master, and + that [clock] is otherwise not expected to function entirely correctly + in safe interps. C code that simply does Tcl_MakeSafe needs to be + aware that [clock] may need special handling. (It appears unlikely + that such code actually exists.) + + One incompatibility of note is that if the time zone cannot be + determined from the TZ, TCL_TZ environment variables, or from the + Windows control panel, so that the C library must be used for date and + time conversions, then times outside the range of time_t will fail; + they used to return bad data silently. + + Many thanks to all the many people who assisted with testing, + debugging, criticism of the specification, and localisation. Deserving + of particular mention are Joe English, Clif Flynt, Donal K. Fellows, + Jeff Hobbs, Cameron Laird, Arjen Markus, Reinhard Max, Christopher + Nelson, Steve Offutt, Donald G. Porter, Pascal Scheffers, Peter da + Silva and Richard Suchenwirth-Bauersachs. + + *** POTENTIAL INCOMPATIBILITY *** + +2004-08-16 Miguel Sofer + + * doc/SetVar.3: + * generic/tclTest.c (TestseterrorcodeCmd): + * generic/tclVar.c (TclPtrSetVar): + * tests/result.test (result-4.*, result-5.*): [Bug 1008314] detected + and fixed by dgp. + +2004-08-13 Don Porter + + * library/msgcat/msgcat.tcl: Added checks to prevent [mclocale] + * tests/msgcat.test: from registering filesystem paths to possibly + malicious code to be evaluated by a later [mcload]. + +2004-08-10 Zoran Vasiljevic + + * unix/tclUnixThrd.c (TclpThreadCreate): changed handling of the + returned thread ID since broken on 64-bit systems (Cray). Thanks to + Rob Ratcliff for reporting the bug. + +2004-08-03 Donal K. Fellows + + * generic/tclNamesp.c (MakeCachedEnsembleCommand): Initialize the + epoch field cached in the subcommand. [Bug 989298] + (NsEnsembleImplementationCmd): Plug a leak (thanks to Miguel Sofer for + spotting it with valgrind) and reduce the number of goto labels to + make the code clearer. + +2004-08-02 Don Porter + + * library/package.tcl (pkg_mkIndex): Updated [pkg_mkIndex] to make + use of [glob -directory $dir -tails] and return options. + + TIP#207 IMPLEMENTATION + + * doc/interp.n: Added support for a -namespace option to the + * generic/tclBasic.c: [interp invokehidden] command. Also added an + * generic/tclInt.h: internal routine TclObjInvokeNamespace() and + * generic/tclInterp.c: corrected the flag names TCL_FIND_ONLY_NS and + * generic/tclNamesp.c: TCL_CREATE_NS_IF_UNKNOWN that are passed to the + * generic/tclTrace.c: internal routine TclGetNamespaceForQualName(). + * tests/interp.test: [Patch 981841] + + * generic/tclLiteral.c (TclCleanupLiteralTable): Corrected + * tests/compile.test (compile-12.4): flawed deletion of literal + internal reps that could lead to accessing of freed memory. Thanks to + Kevin Kenny for test case and fix [Bug 1001997]. + +2004-07-30 Don Porter + + * tests/safe.test (safe-2.1): Disabled senseless test. [Bug 999612] + + * library/auto.tcl (auto_reset): Removed "protected" list of commands + from [auto_reset]. All entries in the auto_index can be re-loaded. + * library/package.tcl: Updated comment to reflect 2004-07-28 commit. + + * generic/tclEvent.c (Tcl_Finalize): Re-organized Tcl_Finalize so + that Tcl_ExitProc's that call Tcl_Finalize recursively do not cause + deadlock. [Patch 999084 fixes Tk Bug 714956] + +2004-07-30 Daniel Steffen + + * unix/configure: + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Darwin: instead of setting PLAT_OBJS + to explict object files in tcl.m4, refer to MAC_OSX_OBJS makefile var. + * unix/Makefile.in: added MAC_OSX_OBJS variable. + +2004-07-29 Don Porter + + * library/package.tcl: [::pkg::create] is now an alias. Test safe-2.1 + will now fail until Bug 999612 is corrected. + +2004-07-28 Don Porter + + * library/package.tcl: Moved private command + * library/tclIndex: [pkg_compareExtension] into ::tcl::Pkg. + * tests/pkg_mkIndex.test: Also moved implementation of + [::pkg::create] to [::tcl::Pkg::Create]. + +2004-07-25 Pat Thoyts + + * tests/io.test: Make io-61.1 create file as binary to pass on Win32 + +2004-07-23 Miguel Sofer + + * generic/tclVar.c: simplify tclLocalVarNameType, removing the + reference to the corresponding proc. The reference is now seen as + unnecessary, and it may cause leaking circular references under some + circumstances (see for example [Bug 994838]). + +2004-07-22 Don Porter + + * tests/eofchar.data (removed): Test io-61.1 now generates its own + * tests/io.test: file of test data as needed. + +2004-07-20 Jeff Hobbs + + * generic/tclEvent.c: Correct threaded obj allocator to + * generic/tclInt.h: fully cleanup on exit and allow for + * generic/tclThreadAlloc.c: reinitialization. [Bug 736426] + * unix/tclUnixThrd.c: (mistachkin, kenny) + * win/tclWinThrd.c: + +2004-07-21 Kevin Kenny + + * generic/tclBasic.c (DeleteInterpProc): + * generic/tclLiteral.c (TclCleanupLiteralTable): + * generic/tclInt.h: added a TclCleanupLiteralTable function, called + from DeleteInterpProc, that frees internal representations of shared + literals early when an interpreter is being deleted. This change + corrects a number of memory mismanagement issues in the cases where + the internal representation of one literal contains a reference to + another, and avoids conditions such as resolved variable names + referring to procedure and namespace contexts that no longer exist. + [Bug 994838] + +2004-07-20 Daniel Steffen + + * unix/Makefile.in: + * win/Makefile.in: added 'install-private-headers' makefile target to + allow optionally installing private tcl headers. [FR 922727] + + * macosx/Makefile: use new 'install-private-headers' target to install + private headers into framework. [FR 922727] + + * unix/tclUnixFile.c (NativeMatchType): added support for readonly + matching of user immutable files (where available). + + * macosx/tclMacOSXBundle.c: dynamically acquire address for + CFBundleOpenBundleResourceMap symbol, since it is only present in full + CoreFoundation on Mac OS X and not in CFLite on pure Darwin. + +2004-07-19 Zoran Vasiljevic + + * win/tclwinThrd.c: redefined MASTER_LOCK to call TclpMasterLock. + Fixes [Bug 987967] + +2004-07-17 Vince Darley + + * generic/tclIOUtil.c: fix to rare 'cd' infinite loop in normalization + with vfs [Bug 991420]. + * tests/fileSystem.test: added test for above bug. + + * doc/FileSystem.3: clarified documentation of posix error codes in + 'remove directory' FS proc - 'EEXIST' is used to signify a non-empty + directory error (bug reported against tclvfs). + +2004-07-16 Jeff Hobbs + + * unix/Makefile.in, unix/tcl.m4: move (C|LD)FLAGS after their + * unix/configure.in, unix/configure: _DEFAULT to allow for env setting + to override m4 switches. Move SC_MISSING_POSIX_HEADERS up and + consolidate calls to limit redundancy in configure. + (CFLAGS_WARNING): Remove -Wconversion + (SC_ENABLE_THREADS): Set m4 to force threaded build when built against + a threaded Tcl core. + +2004-07-16 Andreas Kupries + + * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Corrected a typo in the + generation of error messages and simplified by reusing data in a + variable instead of retrieving the string again. Fixes [Bug 835289]. + + * doc/OpenFileChnl.3: Added description of the behaviour of + Tcl_ReadChars when its 'charsToRead' argument is set to -1. Fixes [Bug + 934511]. + + * doc/CrtCommand.3: Added note that the arguments given to the command + proc of a Tcl_CreateCommand are in utf8 since Tcl 8.1. Closing [Patch + 414778]. + + * doc/ChnlStack.3: Removed the declaration that the interp argument to + Tcl_(un)StackChannel can be NULL. This fixes [Bug 881220], reported by + Marco Maggi . + + * tests/socket.test: Accepted two new testcases by Stuart Casoff + checking that -server and -async don't go + together [Bug 796534]. + + * unix/tclUnixNotfy.c (NotifierThreadProc): Accepted Joe Mistachkin's + patch for [Bug 990500], properly closing the notifier thread when its + exits. + +2004-07-15 Andreas Kupries + + * unix/tclUnixThrd.c (TclpFinalizeMutex): Accepted Joe Mistachkin's + patch for [Bug 990453], closing leakage of mutexes. They were not + destroyed properly upon finalization. + +2004-07-15 Andreas Kupries + + * generic/tclIO.h (CHANNEL_INCLOSE): New flag. Set in + * generic/tclIO.c (Tcl_UnregisterChannel): 'Tcl_Close' while the + * generic/tclIO.c (Tcl_Close): close callbacks are + run. Checked in 'Tcl_Close' and 'Tcl_Unregister' to prevent recursive + call of 'close' in the close-callbacks. This is a possible error made + by implementors of virtual filesystems based on 'tclvfs', thinking + that they have to close the channel in the close handler for the + filesystem. + +2004-07-14 Andreas Kupries + + * generic/tclIO.c: + * generic/tclIO.h: + * Not reverting, but #ifdef'ing the changes from May 19, 2004 out of + the core. This removes the ***POTENTIAL INCOMPATIBILITY*** for channel + drivers it introduced. This has become possible due to Expect gaining + a BlockModeProc and now handling blockingg and non-blocking modes + correctly. Thus [SF Tcl Bug 943274] is still fixed if a recent enough + version of Expect is used. + + * doc/CrtChannel.3: Added warning about usage of a channel without a + BlockModeProc. + +2004-07-15 Andreas Kupries + + * generic/tclIOCmd.c (Tcl_PutsObjCmd): Added length check to the old + depreceated newline syntax, to ensure that only "nonewline" is + accepted. [Tcl SF Bug 985869], reported by Joe Mistachkin + . + +2004-07-15 Zoran Vasiljevic + + * generic/tclEvent.c (Tcl_Finalize): stuffed memory leak incurred by + re-initializing of TSD slots after the last call to + TclFinalizeThreadData (done from within Tcl_FinalizeThread()). We + basically just repeat the TclFinalizeThreadData() once more before + tearing down TSD keys in TclFinalizeSynchronization(). There should be + more elaborate mechanism in place for handling such issues, based on + thread cleanup handlers registered on the OS level. Such change + requires much more work and would also require TIP because some + visible parts of Tcl API would have to be modified. In the meantime, + this will do. + + * generic/tclNotify.c (TclFinalizeNotifier): Added conditional + notifier finalization based on the fact that an TclInitNotifier has + been called for the current thread. This fixes the [Bug 770053] again. + Hopefully this time w/o unwanted side-effects. + +2004-07-15 Kevin Kenny + + * generic/tclLiteral.c (TclReleaseLiteral): Removed unused variable + 'codePtr' to silence a message from VC++. + +2004-07-15 Miguel Sofer + + * generic/tclCompile.c (TclCompileScript): + * generic/tclLiteral.c (TclReleaseLiteral): fix for [Bug 467523], + which resurfaced with the latest changes. The previous strategy was to + have special code in TclReleaseLiteral to handle the self-references + generated by empty scripts. The new approach avoids the self-reference + altogether, by having empty scripts return an unshared literal. + +2004-07-15 Zoran Vasiljevic + + * generic/tclEvent.c (NewThreadProc): Backout of changes to fix the + [Bug 770053]. See SF bugreport for more info. + +2004-07-11 Miguel Sofer + + * generic/tclBasic.c (Tcl_EvalEx): leak fix by dgp, release + objv[objectsUsed] on error. + +2004-07-11 Miguel Sofer + + * generic/tclParse.c (Tcl_SubstObj): leak fix by dgp, release result + on error. + +2004-07-11 Donal K. Fellows + + * generic/tclNamesp.c (BuildEnsembleConfig): Don't forget to clean out + references when deleting the hash table. + * generic/tclDictObj.c (Tcl_DictObjRemoveKeyList): Oops, forgot to + delete value object when removing the hash entry. [Bug 989093 in part] + +2004-07-11 Miguel Sofer + + * generic/tclExecute.c (TEBC): fixed leak of expandNestList objs when + there is an error while an expansion is in progress (code added at + checkForCatch). + +2004-07-11 Vince Darley + + * generic/tclIOUtil.c: fix to 'cd' bug when vfs is active [tclvfs Bug + 986944] - this bug recently introduced by some threading fixes. Need + to work out how to add tests for this. + +2004-07-10 Kevin Kenny + + * tests/clock.test (clock-2.11): Changed the test so that it isn't an + infinite loop when run under valgrind on a slow virtual machine. + Thanks to Miguel Sofer for the bug report. Also put in code to restore + env(LC_TIME) after tests complete, silencing a warning from 'make + TESTFLAGS="-debug 1" test'. + +2004-07-08 Miguel Sofer + + * generic/tclBasic.c (DeleteInterpProc): reverted the modification of + 3 days ago, as the leak of [Bug 983660] is now handled by the change + in TclCleanupByteCode. + * generic/tclCompile.c (TclCleanupByteCode): let each bytecode remove + its references to literals at interp deletion, without updating the + dying literal table. + * generic/tclLiteral.c (TclDeleteLiteralTable): with the above change + to TclCleanupByteCode, this function now removes a single reference to + the literal object and cleans up its own structures. + +2004-07-08 Kevin Kenny + + * win/tclWinInit.c (AppendEnvironment): Silenced a compilation warning + about a type mismatch. + +2004-07-07 Miguel Sofer + + * generic/tclCompile.c (TclCompileScript): fix for [Bug 458361]. + Single-word scripts are compiled with an unshared cmdName to avoid + shimmering between bytecode and cmdName reps. + +2004-07-07 Don Porter + + * generic/tclCmdMZ.c (TclMergeReturnOptions): Simplified logic and + removed potential memory leak. [Bug 986257]. + +2004-07-07 Donal K. Fellows + + * tools/man2help2.tcl (setTabs, IPmacro): Added support for the more + advanced *roff macros used in Tk's doc/bind.n + + * generic/tclObj.c (TclInitObjSubsystem): Declare all current object + types. + +2004-07-06 Don Porter + + * tests/cmdMZ.test (cmdMZ-return-2.17): Added a test that a word + containing backslash-quoted value is treated correctly. + + * generic/tclCompile.c (TclWordKnownAtCompileTime): [Bug 986196] + Corrected flaw above and the flaw that caused TCL_TOKEN_SIMPLE_WORDs + to have their original word value copied ( "{a b}" ) rather than the + actual value ( "a b" ). Thanks to Kevin Kenny for report and tests. + +2004-07-06 Kevin B. Kenny + + * tests/cmdMZ.test (cmdMZ-return-2.15,cmdMZ-return-2.16): Added a test + that a return code containing spaces is correctly returned. + +2004-07-06 Donal K. Fellows + + * tools/man2html2.tcl (IPmacro, setTabs): Added support for the more + advanced *roff macros used in Tk's doc/bind.n + +2004-07-05 Miguel Sofer + + * generic/tclBasic.c (DeleteInterpProc): fix for [Bug 983660], found + by pspjuth. Tear down the global namespace before freeing the interp + handle, to allow the bytecodes to free their non-shared literals. + * generic/tclLiteral.c (TclReleaseLiteral): moved special code for + self-ref so that it is also used for non-shared literals. Possible bug + found by inspection. + +2004-07-03 Miguel Sofer + + * generic/tclExecute.c (ExprRoundFunc): + * tests/expr-old.test (39.1): added support for wide integers to + round(); [Bug 908375], reported by Hemang Lavana. + +2004-07-03 Miguel Sofer + + * generic/tclCompile.h: + * generic/tclInt.decls: + * generic/tclIntDecls.h: + * generic/tclStubInit.c: Moved declaration of TclCompEvalObj() from + tclCompile.h to the internal stubs table, for compiler + experimentation. + +2004-07-02 Jeff Hobbs + + * generic/regcomp.c (stid): correct minor pointer size error + + * generic/tclPipe.c (TclCreatePipeline): applied TIP #202 patch that + * doc/exec.n, tests/exec.test: adds 2>@1 as a special case + redirection of stderr to the result output. + +2004-07-02 Kevin B. Kenny + + * tests/io.test: Changed several tests to run the event loop rather + than just calling [update] periodically, avoiding intermittent + failures (usually in io-29.32) that stemmed from unreaped processes on + Windows. + * tests/winPipe.test (winpipe-1.11): Fixed a bug that caused test to + fail if the path name of the working directory contained whitespace + [Bug 678430] + +2004-07-01 Vince Darley + + * tests/fileSystem.test: Added test for [Bug 970529] + +2004-07-01 Donal K. Fellows + + * win/README.binary, win/README: Updated references to Tcl and Tk 8.4 + to point to 8.5 instead. Thanks to Theo Verelst for spotting this. + * generic/tcl.h: Added note to help prevent those changes from getting + missed in the future. + + * doc/Namespace.3, doc/load.n, doc/Limit.3: Typo fixes and remove + duplicate documentation. [Bug 983146] + +2004-06-30 Don Porter + + * tests/fileSystem.test: Minor correction to new fileSystem-9.X tests + so that they clean up temporary directories correctly. + +2004-06-30 Vince Darley + + * doc/filename.n: clarified behaviour concerning trailing slashes in + filenames [Bug 971976] + + * win/tclWinFile.c: + * tests/fileSystem.test: fix and tests for [Bug 979879] + +2004-06-30 Donal K. Fellows + + TIP#188 IMPLEMENTATION + + * doc/string.n, tests/string.test: Add 'wideinteger' to things + * generic/tclCmdMZ.c (Tcl_StringObjCmd): that can be tested for with + the [string is] subcommand. [Patch 940915, by Kevin Kenny] + +2004-06-29 Don Porter + + * win/tclWinInit.c: Corrected reference counting flaw in recent + changes. Thanks to Pat Thoyts. [Bug 981893]. + +2004-06-29 Vince Darley + + * win/tclWin32Dll.c: fix to compilation with VC++ 5.2 + +2004-06-29 Donal K. Fellows + + * library/safe.tcl: Make sure that the temporary variable is local to + the namespace and not inadvertently global. [Bug 981733] + +2004-06-24 Donal K. Fellows + + * tests/unixNotfy.test: Modified constraints so that testing with a + threaded tclsh (not tcltest) will not hang. + +2004-06-23 Don Porter + + * generic/tclThreadStorage.c: Corrected type casting errors that led + to calculation of a negative index value, thus accesses outside the + threadStorageCache array, thus memory corruption. Crash observed on + Mac OS X platform. + +2004-06-23 Joe Mistachkin + + * generic/tclThread.c: Implements platform independent thread storage + * generic/tclThreadStorage.c: mechanism and fixes associated bugs on + platforms where there is limited thread local storage space + (Win98/WinNT4). [Patch 976496] + + * generic/tclInt.decls: + * generic/tclIntDecls.h: Added thread storage functions to the + * generic/tclStubInit.c: internal stubs table. + + * unix/Makefile.in: + * unix/configure: + * unix/tcl.m4: + * win/makefile.vc: + * win/rules.vc: + * win/Makefile.in: Modified the unix, VC++, and Cygwin build systems + * win/configure: to include the new "tclThreadStorage.c" and the new + * win/tcl.m4: USE_THREAD_STORAGE define. + +2004-06-23 Pat Thoyts + + * tests/io.test: Added -force to 18.1 and 18.2. This was failing on + WinXP. + + * tests/winFCmd.test: Added a cleanup to winFCmd-16.11 to avoid a + failure in 16.12. + + * tests/eofchar.data: Added -kb option to ensure a binary checkout to + win32 systems. This fixes a failure in io-61.1 + + * win/makefile.vc: fix for [Bug 977369] about launching tclsh to + generate a tclConfig.sh with the nmake build system + +2004-06-23 Kevin B. Kenny + + * tests/winDde.test (createChildProcess): Added a 200-ms delay (with + the event loop live) when shutting down the test DDE server process. + With the delay in place, nuisance failures of tests winDde-4.2, -6.5, + and -6.6 appear to be much less frequent. [Bug 957449] + +2004-06-23 Donal K. Fellows + + * tests/*.test: Standardize use of platform constraints. + + * unix/tclUnixInit.c (GetStackSize, TclpCheckStackSpace): + * unix/tclUnixThrd.c (TclpThreadGetStackSize): Added code to check + whether the C stack is about to be exceeded, from [Patch 746378] by + Joe Mistachkin but with substantial revisions. + +2004-06-22 Kevin Kenny + + * generic/tclEvent.c (NewThreadProc): Fixed broken build on Windows + caused by missing TCL_THREAD_CREATE_RETURN. + + * tests/stack.test (stack-3.1): Corrected nuisance error in threaded + builds. + +2004-06-22 Zoran Vasiljevic + + * generic/tclEvent.c: + * generic/tclInt.h: + * unix/tclUnixNotfy.c: + * unix/tclUnixThrd.c: + * win/tclWinThrd.c: [Bug 770053]. See bug report for more information + about what it does. + + * tests/unixNotfy.test: rewritten to use tcltest::threadReap to + gracefully wait for the test thread to exit. Otherwise we got a race + condition with main thread exiting before the test thread. This + exposed the long-standing Tcl lib issue with resource + garbage-collection on application exit. + +2004-06-21 Mo DeJong + + * win/tclWin32Dll.c (DllMain, _except_dllmain_detach_handler) + (TclpCheckStackSpace, _except_checkstackspace_handler) + (TclWinCPUID, _except_TclWinCPUID_detach_handler): + * win/tclWinChan.c (Tcl_MakeFileChannel) + (_except_makefilechannel_handler): + * win/tclWinFCmd.c (DoRenameFile, _except_dorenamefile_handler) + (DoCopyFile, _except_docopyfile_handler): + Rework pushing of exception handler function pointer so that compiling + with gcc -O3 works. Remove empty function call to avoid compiler + warning. Mark the DllMain function as noinline to avoid compiler error + from duplicated asm labels in generated code. + +2004-06-21 Donal K. Fellows + + * generic/tclThreadAlloc.c (Ptr2Block): Rewrote so as to maximize the + chance of detecting and reporting a memory inconsistency without + relying on things being consistent. [Bug 975895] + +2004-06-18 Don Porter + + * tests/load.test: Relaxed strictness of error message matching + for test load-2.3 so that it will pass on Mac OSX. + + * generic/tclEncoding.c: Static TclFindEncodings -> FindEncodings. + * generic/tclInt.h: Updated TclpFindExecutable() so that failed + * generic/tclUtil.c: attempts to find the executable are saved + * unix/tclUnixFile.c: just as successful finds are. [Patch 966053] + * unix/tclUnixTest.c: + +2004-06-18 Kevin B. Kenny + + * tests/winFCmd.test (winFCmd-16.12): Changed test to compute the + target directory, so as not to fail if the user's HOME isn't the root. + +2004-06-19 Daniel Steffen + + * unix/tcl.m4: autoconf 2.5 fixes in Darwin section. + * unix/configure: autoconf-2.57 + +2004-06-18 Donal K. Fellows + + * unix/tclUnixInit.c (localeTable): Added some more locale to encoding + mapping info from Jim Huang + + * generic/tclInt.h (PendingObjData,TclFreeObjMacro,etc): + * generic/tclObj.c (TclFreeObj): Added scheme for making TclFreeObj() + avoid blowing up the C stack when freeing up very large object trees. + [Bug 886231] + + * win/tclWinInit.c (SetDefaultLibraryDir): Fix logic, simplify and add + comments. + +2004-06-17 Don Porter + + * generic/tclObj.c: Added missing space in panic message. + + * win/tclWinInit.c: Inform [tclInit] about the default library + directory via the ::tclDefaultLibrary variable. This should correct a + problem with my 2004-06-11 commit. Better solutions still in the + works. Thanks to Joe Mistachkin for pointing out the breakage. + +2004-06-16 Don Porter + + * doc/library.n: Moved variables ::auto_oldpath and + * library/auto.tcl: ::unknown_pending into ::tcl namespace. + * library/init.tcl: [Bugs 808319, 948794] + +2004-06-15 Donal K. Fellows + + * doc/binary.n: Added some notes to the documentation of the 'a' + format to address the point raised in [RFE 768852]. + +2004-06-15 Jeff Hobbs + + * unix/tclConfig.sh.in (TCL_EXTRA_CFLAGS): set to @CFLAGS@, which is + the configure-time CFLAGS. Addendum to m4 change on 2004-05-26. + +2004-06-14 Kevin Kenny + + * win/Makefile.in: Corrected compilation flags for tclPkgConfig.c so + that it doesn't require Stubs. + * generic/tclBasic.c (Tcl_CreateInterp): Removed comment stating that + TclInitEmbeddedConfigurationInformation needs Stubs; with the change + above, the comment is now erroneous. + +2004-06-11 Don Porter + + * doc/Encoding.3: Removed bogus claims about tcl_libPath. + + * generic/tclInterp.c (Tcl_Init): Stopped setting the + tcl_libPath variable. [tclInit] can get all its directories without it. + + * tests/unixInit.test: Modified test code that made use of + tcl_libPath variable. + + * unix/tclUnixInit.c: Stopped setting the tclDefaultLibrary variable, + execept on the Mac OS X platform with HAVE_CFBUNDLE. In that + configuration we should seek some way to make use of the TIP 59 + facilities and get rid of that usage of tclDefaultLibrary as well. + + * generic/tclInterp.c: Updated [tclInit] to make $env(TCL_LIBRARY) an + absolute path, and to include the scriptdir,runtime configuration value + on the search path for init.tcl. + + * unix/tclUnixInit.c: The routines Tcl_Init() and TclSourceRCFile() + * win/tclWinInit.c: had identical implementations for both win and + * generic/tclInterp.c: unix. Moved to a single generic implementation. + * generic/tclMain.c: + * library/init.tcl: + * generic/tclInitScript.h (removed): + * unix/Makefile.in: + * win/tcl.dsp: + + * unix/configure.in: Updated TCL_PACKAGE_PATH value to handle + * win/configure.in: --libdir configuration. + + * unix/configure.in: autoconf-2.57 + * win/configure.in: + + * generic/tclBasic.c (Tcl_CreateInterp): Moved call to + TclInitEmbeddedConfigurationInformation() earlier in + Tcl_CreateInterp() so that other parts of interp creation and + initialization may access and use the config values. + +2004-06-11 Kevin Kenny + + * win/tclAppInit.c: Restored the 'setargv' procedure when compiling + with mingw. Apparently, the command line parsing in mingw doesn't work + as well as that in vc++, and the result was (1) that winPipe-8.19 + failed, and (2) that 'make test' would work at all only with + TESTFLAGS='-singleproc 1'. [Bug 967195] + +2004-06-10 Zoran Vasiljevic + + * generic/tclIOUtil.c: removed forceful setting of the private cached + current working directory rep from within the Tcl_FSChdir(). We + delegate this task to the Tcl_FSGetCwd() which does this task anyway. + The relevant code is still present but disabled temporarily until the + change proves correct. The Tcl test suite passes all test with the + given change so I suppose it is good enough. + +2004-06-10 Don Porter + + * unix/tclUnixInit.c (TclpInitLibraryPath): Disabled addition of + * win/tclWinInit.c (TclpInitLibraryPath): relative-to-executable + directories to the library search path. A first step in reform of + Tcl's startup process. + + ***POTENTIAL INCOMPATIBILITY*** + Attempts to directly run ./tclsh or ./tcltest out of a build directory + will either fail, or will make use of an installed script library in + preference to the one in the source tree. Use `make shell` or `make + runtest` instead. + + * tests/unixInit.test: Modified tests to suit above changes. + + * generic/tclPathObj.c: Corrected [file tail] results when operating + on a path produced by TclNewFSPathObj(). [Bug 970529] + +2004-06-09 Zoran Vasiljevic + + * generic/tclIOUtil.c: partially corrected [Bug 932314]. Also + corrected return values of Tcl_FSChdir() to reflect those of the + underlying platform-specific call. Originally, return codes were mixed + with those of Tcl. + +2004-06-08 Miguel Sofer + + * generic/tclCompile.c: + * generic/tclExecute.c: handle warning [Bug 969066] + +2004-06-08 Donal K. Fellows + + * generic/tclHash.c (RebuildTable): Move declaration of variable so it + is only declared when it is used. [Bug 969068] + +2004-06-07 Donal K. Fellows + + * doc/lsearch.n: Added correct option to example. [Bug 968219] + +2004-06-05 Kevin B. Kenny + + * generic/tcl.h: Corrected Tcl_WideInt declarations so that the mingw + build works again. + * generic/tclDecls.h: Changes to the tests for clock + * generic/tclInt.decls: frequency in Tcl_WinTime so + * generic/tclIntDecls.h: that any clock frequency is + * generic/tclIntPlatDecls.h: accepted provided that all + * generic/tclPlatDecls.h: CPU's in the system share a + * generic/tclStubInit.c: common chip, and hence, + * tests/platform.test (platform-1.3): presumably, a common clock. + * win/tclWin32Dll.c (TclWinCPUID): This change necessitated a + * win/tclWinTest.c (TestwincpuidCmd) small burst of assembly code + * win/tclWinTime.c (Tcl_GetTime): to read CPU ID information, + which was added as TclWinCPUID in the internal Stubs. To test this + code in the common case of a single-processor machine, a + 'testwincpuid' command was added to tclWinTest.c, and a test case in + platform.test. Thanks to Jeff Godfrey and Richard Suchenwirth for + reporting this bug. [Bug 976722] + +2004-06-04 Don Porter + + * generic/tcl.h: Restored #include to tcl.h, + rejecting the "fix" for "Bug" 945570. Tcl_FSSeek() needs the values of + SEEK_SET, etc. and too many extensions rely on tcl.h providing stdio.h + for them. + +2004-06-02 Jeff Hobbs + + * win/tclWinFile.c (TclpFindExecutable): when using GetModuleFileNameA + (Win9x), convert from CP_ACP to WCHAR then convert back to utf8. + Adjunct to 2004-04-07 fix. + +2004-06-02 David Gravereaux + + * tests/winPipe.test (winpipe-6.1): blocking set to 1 before closing + to ensure we get an exitcode. The windows pipe channel driver doesn't + differentiate between a blocking and non-blocking close just yet, but + will soon. Part of [Bug 947693] + +2004-06-02 Vince Darley + + * doc/file.n: fix to documentation of 'file volumes' (Bug 962435) + +2004-06-01 David Gravereaux + + * win/makefile.vc: check for either MSDEVDIR or MSVCDIR being in the + environment, for VC7. [Bug 942214] + + * generic/tclIO.c (Tcl_SetChannelOption): -buffersize wasn't + understanding hexidecimal notation nor was reporting number conversion + errors. The behavior to silently ignore settings outside the + acceptable range of Tcl_SetChannelBufferSize (<10 or >1M) is + unchanged. This silent ignoring behavior might be up for review soon. + +2004-05-30 David Gravereaux + + * win/tclWinPipe.c: + * win/tclWinPort.h: Reworked the win implementation of Tcl_WaitPid to + support exitcodes in the 'signed short' range. Even though this range + is non-portable, it is valid on windows. Detection of exception codes + are now more accurate. Previously, an application that exited with + ExitProcess((DWORD)-1); was improperly reported as exiting with + SIGABRT. + +2004-05-30 Donal K. Fellows + + * generic/tclInterp.c: Added comments describing the purposes of each + function in the limit implementation and rewrote the names of some + non-public functions for greater clarity of purpose. + * doc/interp.n: Added note about what happens when a limited + interpreter creates a slave interpreter. + * doc/Limit.3: Added manual page for the resource limit subsystem's C + API. [Bug 953903] + +2004-05-29 Joe English + + * doc/global.n, doc/interp.n, doc/lrange.n: Fix minor markup errors. + +2004-05-28 Donal K. Fellows + + * doc/*.n: Added examples to many (too many to list) more man pages. + +2004-05-25 Miguel Sofer + + * generic/tclExecute.c: + * generic/tclVar.c: using (ptrdiff_t) instead of (int) casting to + correct compiler warnings [Bug 961657], reported by Bob Techentin. + +2004-05-27 Kevin B. Kenny + + * tests/clock.test: Added a single test for the presence of %G in + [clock format], and conditioned out the clock-10.x series if they're + all going to fail because of a broken strftime() call. [Bug 961714] + +2004-05-27 Donal K. Fellows + + * generic/tclHash.c (CompareStringKeys): Added #ifdef to allow people + to instruct this function to use strcmp(). [FRQ 951168] + + * generic/tclVar.c: Moved declarations into #if guards so they only + happen when required. + * unix/tclUnixPort.h: Guard declaration of strtod() so it is only + enabled when we don't have a declaration in stdlib.h + * unix/tclUnixThrd.c (Tcl_CreateThread): Added declarations + * unix/tclUnixTest.c (AlarmHandler): and casts so that + * unix/tclUnixChan.c (TtyModemStatusStr): all functions are + * generic/tclScan.c (Tcl_ScanObjCmd): defined before use + * generic/tclDictObj.c (InvalidateDictChain): and no cross-type + * generic/tclCmdMZ.c (Tcl_StringObjCmd): uses are performed. + + The overall effect is to make building with gcc with the additional + flags -Wstrict-prototypes -Wmissing-prototypes produce no increase in + the total number of warnings (except for main(), which is undeclared + for traditional reasons.) + +2004-05-26 Jeff Hobbs + + * unix/Makefile.in: Rework configure ordering to TCL_LINK_LIBS, + * unix/tcl.m4: ENABLE_SHARED, CONFIG_CFLAGS, & ENABLE_SYMBOLS + * unix/configure: before TCL_EARLY_FLAGS and TCL_64BIT_FLAGS + * unix/configure.in: (about 400 lines earlier) in configure.in. This + forces CFLAGS configuration to be done before many tests, which is + needed for 64-bit builds and may affect other builds. Also make + CONFIG_CFLAGS append to CFLAGS directly instead of using EXTRA_CFLAGS, + and have LDFLAGS append to any existing value. [Bug 874058] + * unix/dltest/Makefile.in: change EXTRA_CFLAGS to DEFS + +2004-05-26 Don Porter + + * library/tcltest/tcltest.tcl: Correction to debug prints and testing + * library/tcltest/pkgIndex.tcl: if TCLTEST_OPTIONS value. Corrected + * tests/tcltest.test: double increment of numTestFiles in + -singleproc 1 configurations. Updated tcltest-19.1 to tcltest 2.1 + behavior. Corrected tcltest-25.3 to not falsely report a failure + in tcltest.test. Bumped to tcltest 2.2.6. [Bugs 960560, 960926] + +2004-05-25 Jeff Hobbs + + * doc/http.n (http::config): add -urlencoding option (default utf-8) + * library/http/http.tcl: that specifies encoding conversion of + * library/http/pkgIndex.tcl: args for http::formatQuery. Previously + * tests/http.test: undefined, RFC 2718 says it should be + utf-8. 'http::config -urlencoding {}' returns previous behavior, which + will throw errors processing non-latin-1 chars. Bumped http package to + 2.5.0. + +2004-05-25 Donal K. Fellows + + * generic/tclInterp.c (DeleteScriptLimitCallback): Move all deletion + of script callback hash table entries to happen here so the entries + are correctly removed at the right time. [Bug 960410] + +2004-05-25 Miguel Sofer + + * docs/global.n: added details for qualified variable names [Bug + 959831] + +2004-05-25 Miguel Sofer + + * generic/tclNamesp.c (Tcl_FindNamespaceVar): + * tests/namespace.test (namespace-17.10-12): reverted commit of + 2004-05-23 and removed the tests, as it interferes with the varname + resolver and there are apps that break (AlphaTk). A fix will have to + wait for Tcl9. + + * generic/tclVar.c: Caching of namespace variables disabled: no simple + way was found to avoid interfering with the resolver's idea of + variable existence. A cached varName may keep a variable's name in the + namespace's hash table, which is the resolver's criterion for + existence. + + * tests/namespace.c (namespace-17.10): testing for interference + between varname caching and name resolver. + +2004-05-25 Kevin Kenny + + * tests/winFCmd.test: Correct test for the presence of a CD-ROM so + that it doesn't misdetect some other sort of filesystem with a + write-protected root as being a CD-ROM drive. [Bug 918267] + +2004-05-25 Don Porter + + * tests/winPipe.test: Protect against path being set + * tests/unixInit.test: Unset path when done. + * tests/unload.test (unload-3.1): Verify [pkgb_sub] does not exist. + Delete interps when done. + * tests/stringComp.test: stop re-use of string.test test names + * tests/regexpComp.test: stop re-use of regexp.test test names + * tests/namespace.test (namespace-46.3): Verify [p] does not exist. + * tests/http.test: Clear away the custom [bgerror] when done. + * tests/io.test: Take care to use namespace variables. + * tests/autoMkindex.test (autoMkindex-5.2): Use variable "result" + that gets cleaned up. + * tests/exec.test: Clean up the "path" array. + * tests/interp.test (interp-9.3): Initialize res, so prior values + cannot make the test fail. + * tests/execute.test (execute-8.1): Updated to remove the trace set + on ::errorInfo. When left in place, that trace can cause later tests + to fail. + +2004-05-25 Donal K. Fellows + + * generic/tclBasic.c: Removed references to Tcl_RenameCommand from + * generic/tcl.h: comments. [Bug 848440, second part] + + * tests/fCmd.test: Rewrote tests that failed consistently on NFS so + they either succeed (through slightly more liberal matching of the + results) or are constrained to not run. [Bug 931312] + + * doc/bgerror.n: Use idiomatic open flags for working with log + files. [Bug 959602] + +2004-05-24 Jeff Hobbs + + * generic/tclExecute.c (VerifyExprObjType): use GET_WIDE_OR_INT to + properly have tclIntType used for smaller values. This corrects [TclX + Bug 896727] and any other 3rd party extension that created math + functions but was not yet WIDE_INT aware in them. + +2004-05-24 Donal K. Fellows + + * generic/tclInterp.c (TclInitLimitSupport): Made limits work on + platforms where sizeof(void*)!=sizeof(int). [Bug 959193] + +2004-05-24 Miguel Sofer + + * doc/set.n: accurate description of name resolution process, + referring to namespace.n for details [Bug 959180] + +2004-05-23 Miguel Sofer + + * generic/tclNamesp.c (Tcl_FindNamespaceVar): [Bug 959052] fixed, + insuring that no "zombie" variables are found. + * generic/tclVar.c (TclLookupSimpleVar): comments re [Bug 736729] + (predecessor of [Bug 959052]) removed. + * tests/namespace.test: added tests 17.10-12 + + The patch modifies non-documented behaviour, and passes every test in + the testsuite. However, scripts relying on the old behaviour may + break. + Note that the only behaviour change concerns the creative writing of + unset variables. More precisely, which variable will be created when + neither a namespace variable nor a global variable by that name + exists, as defined by [info vars]. The new behaviour is that the + namespace resolution process deems a variable to exist exactly when + [info vars] finds it - ie, either it has value, or else it was "fixed" + by a call to [variable]. + Note: this patch was removed on 2002-05-25. + +2004-05-22 Miguel Sofer + + * generic/tclVar.c (TclObjLookupVar, TclObjUnsetVar2): fix for new (in + tcl8.4) exteriorisations of [Bug 736729] due to the use of + tclNsVarNameType obj types. Reenabling the use of this objType ("VAR + ref absolute" benchmark down to 66 ms, from 230). Added comments in + TclLookupSimpleVar explaining my current understanding of [Bug + 736729]. + +2004-05-22 Miguel Sofer + + * generic/tclVar.c: fix for [Bug 735335]. The use of tclNsVarNameType + objs is still disabled, pending resolution of [Bug 736729]. + +2004-05-21 Miguel Sofer + + * tests/namespace.test (namespace-41.3): removed the {knownBug} + constraint: [Bug 231259] is closed since nov 2001, and the fix of [Bug + 729692] (INST_START_CMD) makes the test succeed. + +2004-05-21 Donal K. Fellows + + * generic/tclExecute.c (TclExecuteByteCode): Move a few declarations a + short distance so pre-C99 compilers can cope. Also fix so + TCL_COMPILE_DEBUG path compiles... + +2004-05-21 Miguel Sofer + + * generic/tclExecute.c (TclExecuteByteCode): reorganised TEBC + automatic variables, defining them in tight blocks instead of at the + function level. This has three purposes: + - it simplifies the analysis of individual instructions + - it is preliminary work to the non-recursive engine + - it allows a better register allocation by the optimiser; under + gcc3.3, this results in up to 10% runtime in some tests + +2004-05-20 Donal K. Fellows + + * generic/tclInterp.c (TclLimitRemoveAllHandlers): + * generic/tclBasic.c (DeleteInterpProc): + * tests/interp.test (interp-34.7): Ensure that all limit callbacks are + deleted when their interpreters are deleted. [Bug 956083] + +2004-05-19 Kevin B. Kenny + + * win/tclWinFile.c (TclpMatchInDirectory): fix for an issue where + there was a sneak path from Tcl_DStringFree to SetErrorCode(0). The + result was that the error code could be reset between a call to + FindFirstFileEx and the check of its status return, leading to a + bizarre error return of {POSIX unknown {No error}}. (Found in + unplanned test - no incident logged at SourceForge.) + +2004-05-19 Donal K. Fellows + + * tests/interp.test (interp-34.3): Rewrite this test to see if a time + limit can catch a tight bytecode loop, a maximally aggressive + denial-of-service attack. + * generic/tclInterp.c (Tcl_LimitCheck): Fix the sense of checks to see + whether a time limit has been extended. + + * tests/*.test: Many minor fixes, including ensuring that every test + is run (so constraints control whether the test is doing anything) and + making sure that constraints are always set using the API instead of + poking around inside tcltest's internal datastructures. Also got rid + of all trailing whitespace lines from the test suite! + +2004-05-19 Andreas Kupries + + * generic/tclIO.c: Fixed [SF Tcl Bug 943274]. This is the same problem + * generic/tclIO.h: as [SF Tcl Bug 462317], see ChangeLog entry + 2001-09-26. The fix done at that time is incomplete. It is possible to + get around it if the actual read operation is defered and not executed + in the event handler itself. Instead of tracking if we are in an read + caused by a synthesized fileevent we now track if the OS has delivered + a true event = actual data and bypass the driver if a read finds that + there is no actual data waiting. The flag is cleared by a short or + full read. + + ***POTENTIAL INCOMPATIBILITY*** for channel drivers. + +2004-05-17 Vince Darley + + * generic/tclPathObj.c: fix to (Bug 956063) in 'file dirname'. + * tests/cmdAH.test: added test for this bug. + + * doc/FileSystem.3: better documentation of refCount requirements of + some FS functions (Bug 956126) + +2004-05-19 Donal K. Fellows + + * generic/tclTest.c (TestgetintCmd): Made the tests in get.test check + * tests/get.test: Tcl_GetInt() since the core now + avoids that function. + +2004-05-18 Kevin B. Kenny + + * compat/strftime.c (_fmt, ISO8601Week): + * doc/clock.n: + * tests/clock.test: Major rework to the handling of ISO8601 week + numbers. Now passes all the %G and %V test cases on Windows, Linux and + Solaris [Bugs 500285, 500389, and 852944] + +2004-05-18 Donal K. Fellows + + * doc/append.n, doc/upvar.n: Added example. + +2004-05-18 David Gravereaux + + * win/makefile.vc: now generates a tclConfig.sh from Pat Thoyts [Patch + 909911] + +2004-05-18 Donal K. Fellows + + * doc/lsearch.n: Improve clarity (based on [Patch 955361] by Peter + Spjuth) + + * tools/man2help2.tcl (macro,SHmacro): Added support for subsection + (.SS) header macros. + + * doc/interp.n: Added user documentation for the TIP#143 resource + limits and some examples. + + * generic/tclInterp.c (Tcl_LimitCheck, Tcl_LimitTypeReset): Reset the + limit-exceeded flag when removing a limit. + +2004-05-18 Miguel Sofer + + * generic/tclExecute.c (TclExecuteByteCode): added comments to + classify the variables according to their use in TEBC. + +2004-05-17 Donal K. Fellows + + * doc/global.n, doc/uplevel.n: Added an example. + + * tests/info.test (info-3.1): Corrected test result back to what it + used to be in Tcl 7.* now that command counts are being correctly + kept. + + * generic/tclExecute.c (TEBC:INST_START_CMD): Make sure that the + command-count is always advanced. Allows TIP#143 limits to tell that + work is being done. + + * doc/list.n: Updated example to fit with the unified format. + * doc/seek.n: Added some examples. + +2004-05-17 Vince Darley + + * win/tclWinFile.c: + * tests/cmdAH.test: fix to (Bug 954263) where 'file executable' was + case-sensitive. + +2004-05-17 Donal K. Fellows + + * doc/OpenFileChnl.3: Documented type of 'offset' argument to Tcl_Seek + was wrong. [Bug 953374] + +2004-05-16 Miguel Sofer + + * generic/tclExecute.c (TclExecuteByteCode): remove one level of + indirection for compiledLocals addressing. + +2004-05-16 Miguel Sofer + + * generic/tclExecute.c (INST_CALL_FUNC1): bugfix; restored + (DE)CACHE_STACK_INFO pair around the call - the user defined math + function could cause a recursive call to TEBC. + +2004-05-16 Miguel Sofer + + * generic/tclBasic.c (Tcl_DeleteInterp): + * generic/tclExecute.c (INST_START_CMD): interp deletion now modifies + the compileEpoch, eliminating the need for the check for interp + deletion in INST_START_CMD. + +2004-05-16 Miguel Sofer + + * generic/tclCompile.h: + * generic/tclCompile.c: + * generic/tclExecute.c: changed implementation of {expand}, last + chance while in alpha as ... + + ***POTENTIAL INCOMPATIBILITY*** + Scripts precompiled with ProComp under previous tcl8.5a versions may + malfunction due to changed instruction numbers for + INST_LIST_INDEX_IMM, INST_LIST_RANGE_IMM and INST_START_CMD. + +2004-05-14 Kevin B. Kenny + + * generic/tclInt.decls: Promoted TclpLocaltime and TclpGmtime + * generic/tclIntDecls.h: from Unix-specific stubs to the generic + * generic/tclIntPlatDecls.h: internal Stubs table. Reran 'genstubs' + * generic/tclStubInit.c: + * unix/tclUnixPort.h: + + * generic/tclClock.c: Changed a buggy 'GMT' timezone specification + to the correct 'GMT0'. [Bug 922848] + + * unix/tclUnixThrd.c: Moved TclpGmtime and TclpLocaltime to + unix/tclUnixTime.c where they belong. + + * unix/tclUnixTime.c (TclpGmtime, TclpLocaltime, TclpGetTimeZone, + ThreadSafeGMTime [removed], + ThreadSafeLocalTime [removed], + SetTZIfNecessary, CleanupMemory): + Restructured to make sure that the same mutex protects all calls to + localtime, gmtime, and tzset. Added a check in front of those calls to + make sure that the TZ env var hasn't changed since the last call to + tzset, and repeat tzset if necessary. [Bug 942078] Removed a buggy + test of the Daylight Saving Time information in 'gettimeofday' in + favor of applying 'localtime' to a known value. [Bug 922848] + + * tests/clock.test (clock-3.14): Added test to make sure that changes + to $env(TZ) take effect immediately. + + * win/tclWinTime.c (TclpLocaltime, TclpGmtime): Added porting layer + for 'localtime' and 'gmtime' calls. + +2004-05-14 Miguel Sofer + + * generic/tclExecute.c: + * generic/tclCompile.h: the math functions receive a pointer to top of + the stack (tosPtr) instead of the execution environment (eePtr). First + step towards a change in the execution stack management - it is now + only used within TEBC. + +2004-05-13 Donal K. Fellows + + TIP#143 IMPLEMENTATION + + * generic/tclExecute.c (TclCompEvalObj, TclExecuteByteCode): + * generic/tclBasic.c (TclEvalObjvInternal): Enable limit checking. + * generic/tclInterp.c (Tcl_Limit*): Public limit API. + * generic/tcl.decls: + * tests/interp.test: Basic tests of command limits. + + * doc/binary.n: TIP#129 IMPLEMENTATION [Patch 858211] + * generic/tclBinary.c: Note that the test suite probably has many more + * tests/binary.test: failures now due to alterations in constraints. + +2004-05-12 Miguel Sofer + + Optimisations for INST_START_CMD [Bug 926164]. + * generic/tclCompile.c (TclCompileScript): avoid emitting + INST_START_CMD as the first instruction in a bytecoded Tcl_Obj. It is + not needed, as the checks are done before calling TEBC. + * generic/tclExecute.c (TclExecuteByteCode): runtime peephole + optimisation: check at INST_POP if the next instruction is + INST_START_CMD, in which case we fall through. + +2004-05-11 Donal K. Fellows + + * doc/split.n, doc/join.n: Updated examples and added more. + +2004-05-11 Vince Darley + + * doc/glob.n: documented behaviour of symbolic links with 'glob -types + d' (Bug 951489) + +2004-05-11 Donal K. Fellows + + * doc/scan.n: Updated the examples to be clearer about their relevance + to the scan command. + +2004-05-10 Donal K. Fellows + + * doc/scan.n: Added examples. + +2004-05-10 David Gravereaux + + * win/tclWinPipe.c (BuildCommandLine): Moved non-obvious appending + logic to outside the loop and added commentary for its purpose. Also + use the existence of contents in the linePtr rather than the scratch + DString post the append, as this more clear. + + (TclpCreateProcess): When under NT, with no console, and executing a + DOS application, the path priming does not need an ending space as + BuildCommandLine() will do this for us. + +2004-05-08 Vince Darley + + * generic/tclFileName.c: + * generic/tclIOUtil.c: remove some compiler warnings on MacOS X. + +2004-05-07 Chengye Mao + + * win/tclWinPipe.c: refixed bug 789040 re-entered in rev 1.41. Let's + be careful and don't re-enter previously fixed bugs. + +2004-05-08 Donal K. Fellows + + * doc/format.n: Added examples. + +2004-05-07 Miguel Sofer + + * doc/unset.n: added upvar.n to the "see also" list + +2004-05-07 Reinhard Max + + * generic/tclEncoding.c: + * tests/encoding.test: added support and tests for translating + embedded null characters between real nullbytes and the internal + representation on input/output [Bug 949905]. + +2004-05-07 Vince Darley + + * generic/tclFileName.c: + * generic/tclIOUtil.c: + * generic/tclFileSystem.h: + * tests/fileSystem.test: fix for [Bug 943995], in which vfs-registered + root volumes were not handled correctly as glob patterns in all + circumstances. + +2004-05-06 Miguel Sofer + + * generic/tclInt.h: + * generic/tclObj.c (TclFreeObj): made TclFreeObj use the new macro + TclFreeObjMacro(), so that the allocation and freeing of Tcl_Obj is + defined in a single spot (the macros in tclInt.h), with the exception + of the TCL_MEM_DEBUG case. + The #ifdef logic for the corresponding macros has been reformulated to + make it clearer. + +2004-05-05 Donal K. Fellows + + * doc/break.n, doc/continue.n, doc/for.n, doc/while.n: More examples. + +2004-05-05 Don Porter + + * tests/unixInit.test (unixInit-2.10): Test correction for Mac OSX. + Be sure to consistently compare normalized path names. Thanks to + Steven Abner (tauvan). [Bug 948177] + +2004-05-05 Donal K. Fellows + + * doc/CrtObjCmd.3: Remove reference to Tcl_RenameCommand; there is no + such API. [Bug 848440] + +2004-05-05 David Gravereaux + + * win/tclWinSock.c (SocketEventProc) : connect errors should fire both + the readable and writable handlers because this is how it works on + UNIX [Bug 794839] + + * generic/tclEncoding.c (TclFinalizeEncodingSubsystem): + FreeEncoding(systemEncoding); moved to before the hash table + itereation as it was causing a double free attempt under some + conditions. + + * win/coffbase.txt: Added the tls extension to the list of preferred + load addresses. + +2004-05-04 Jeff Hobbs + + * tests/fileSystem.test (filesystem-1.39): replace 'file volumes' + * tests/fileName.test (filename-12.9,10): lindex with direct C:/ + hard-coded because A:/ was being used and that is empty for most. + + * tests/winFCmd.test (winFCmd-16.12): test volumerelative $HOME + +2004-05-04 Don Porter + + * generic/tclAlloc.c: Make sure Tclp*Alloc* routines get + * generic/tclInt.h: declared in the TCL_MEM_DEBUG and + * generic/tclThreadAlloc.c: TCL_THREADS configuration. [Bug 947564] + + * tests/tcltest.test: Test corrections for Mac OSX. Thanks to Steven + Abner (tauvan). [Bug 947440] + +2004-05-04 Donal K. Fellows + + * generic/tclEvent.c (TclSetLibraryPath): Suppress a warning. + +2004-05-03 Andreas Kupries + + * Applied [Patch 868853], fixing a mem leak in TtySetOptionProc. + Report and Patch provided by Stuart Cassoff . + +2004-05-03 Miguel Sofer + + * generic/tclProc.c (TclCreateProc): comments corrected. + +2004-05-03 Miguel Sofer + + * generic/tclCompile.c (TclCompileScript): setting the compilation + namespace outside of the loop. + +2004-05-03 Miguel Sofer + + * generic/tclCompile.c: + * generic/tclInt.h: reverted fix for [Bug 926445] of 2004-04-02, + restoring TCL_ALIGN to the header file. Todd Helfter reported that the + macro is required by tbcload. + +2004-05-03 Kevin Kenny + + * win/tclWin32Dll.c (TclpCheckStackSpace): + * tests/stack.test (stack-3.1): Fix for undetected stack overflow in + TclReExec on Windows. [Bug 947070] + +2004-05-03 Don Porter + + * library/init.tcl: Corrected unique prefix matching of + interactive command completion in [unknown]. [Bug 946952] + +2004-05-02 Miguel Sofer + + * generic/tclProc.c (TclObjInvokeProc): + * tests/proc.test (proc-3.6): fix for bad quoting of multi-word proc + names in error messages [Bug 942757] + +2004-04-30 Donal K. Fellows + + * doc/glob.n, doc/incr.n, doc/set.n: More examples. + * doc/if.n, doc/rename.n, doc/time.n: + +2004-04-30 Don Porter + + * generic/tclInt.h: Replaced Kevin Kenny's temporary + * generic/tclThreadAlloc.c: fix for Bug 945447 with a cleaner, + more permanent replacement. + +2004-04-30 Kevin B. Kenny + + * generic/tclThreadAlloc.c: Added a temporary (or so I hope!) + inclusion of "tclWinInt.h" to avoid problems when compiling on + Win32-VC++ with --enable-threads. [Bug 945447] + +2004-04-30 Donal K. Fellows + + * doc/puts.n: Added a few examples. + +2004-04-29 Don Porter + + * tests/execute.test (execute-8.2): Avoid crashes when there is + limited system stack space (threads-enabled). + +2004-04-28 Miguel Sofer + + * doc/global.n: + * doc/upvar.n: + * generic/tclVar.c (ObjMakeUpvar): + * tests/upvar.test (upvar-8.11): + * tests/var.test (var-3.11): Avoid creation of unusable variables: + [Bug 600812] [TIP 184]. + +2004-04-28 Donal K. Fellows + + * doc/lsearch.n: Fixed fault in documentation of -index option [943448] + +2004-04-26 Don Porter + + * unix/tclUnixFCmd.c (TclpObjNormalizePath): Corrected improper + positioning of returned checkpoint. [Bug 941108] + +2004-04-26 Donal K. Fellows + + * doc/open.n, doc/close.n: Updated (thanks to David Welton) to be + clearer about pipeline errors and added example to open(n) that shows + simple pipeline use. [Patches 941377,941380] + + * doc/DictObj.3: Added warning about the use of Tcl_DictObjDone and an + example of use of iteration. [Bug 940843] + + * doc/Thread.3: Reworked to remove references to testing interfaces + and instead promote the use of the Thread package. [Patch 932527] + Also reworked and reordered the page for better readability. + +2004-04-25 Don Porter + + * generic/tcl.h: Removed obsolete declarations and #include's. + * generic/tclInt.h: [Bugs 926459, 926486] + +2004-04-24 David Gravereaux + + * win/tclWin32Dll.c (DllMain): Added DisableThreadLibraryCalls() for + the DLL_PROCESS_ATTACH case. We're not interested in knowing about + DLL_THREAD_ATTACH, so disable the notices. + +2004-04-24 Daniel Steffen + + * generic/tclPort.h: + * macosx/Makefile: + * unix/Makefile.in: followup on tcl header reform [FR 922727]: removed + use of relative #include paths in tclPort.h to allow installation of + private headers outside of tcl source tree; added 'unix' dir to + compiler header search path; add newly required tcl private headers to + Tcl.framework on Mac OSX. + +2004-04-23 Andreas Kupries + + * generic/tclIO.c (Tcl_SetChannelOption): Fixed [SF Tcl Bug 930851]. + When changing the eofchar we have to zap the related flags to prevent + them from prematurely aborting the next read. + +2004-04-25 Vince Darley + + * generic/tclPathObj.c: fix to [Bug 940281]. Tcl_FSJoinPath will now + always return a valid Tcl_Obj when the input is valid. + * generic/tclIOUtil.c: fix to [Bug 931823] for a more consistent + Tcl_FSPathSeparator() implementation which allows filesystems not to + implement their Tcl_FSFilesystemSeparatorProc if they wish to use the + default '/'. Also fixed associated memory leak seen with, e.g., + tclvfs package. + * doc/FileSystem.3: documented Tcl_FSJoinPath return values more + clearly, and Tcl_FSFilesystemSeparatorProc requirements. + +2004-04-23 David Gravereaux + + * win/tclWin32Dll.c: Removed my mistake from 4/19 of adding an exit + handler to TclWinInit. TclWinEncodingsCleanup called from + TclFinalizeFilesystem does the Tcl_FreeEncoding for us. + + * win/tclWinChan.c (Tcl_MakeFileChannel): Case for CloseHandle + returning zero and not throwing a + RaiseException(EXCEPTION_INVALID_HANDLE) now being done. + +2004-04-22 David Gravereaux + + * generic/tclEvent.c: TclSetLibraryPath's use of caching the stringrep + of the pathPtr object to TclGetLibraryPath called from another thread + was ineffective if the original's stringrep had been invalidated as + what happens when it gets muted to a list. + + * win/tclWinTime.c: If the Tcl_ExitProc (StopCalibration) is called + from the stack frame of DllMain's PROCESS_DETACH, the wait operation + should timeout and continue. + + * generic/tclInt.h: + * generic/tclThread.c: + * generic/tclEvent.c: + * unix/tclUnixThrd.c: + * win/tclWinThrd.c: Provisions made so masterLock, initLock, allocLock + and joinLock mutexes can be recovered during Tcl_Finalize. + +2004-04-22 Donal K. Fellows + + * doc/switch.n: Reworked the examples to be more systematically named + and to cover some TIP#75 capabilities. + + * doc/cd.n: Documentation clarification from David Welton. + + * doc/exec.n: Added some examples, Windows ones from Arjen Markus and + Unix ones by myself. + +2004-04-21 Donal K. Fellows + + * doc/Hash.3: Added note to Tcl_{First,Next}HashEntry docs that + deleting the element they return is supported (and is in fact the only + safe update you can do to the structure of a hashtable while an + iteration is going over it.) + + * doc/bgerror.n: Added example from David Welton. [Patch 939473] + + * doc/after.n: Added examples from David Welton. [Patch 938820] + +2004-04-19 David Gravereaux + + * win/tclWin32Dll.c: Added an exit handler in TclWinInit() so + tclWinTCharEncoding could be freed during Tcl_Finalize(). + + * generic/tclEncoding.c: Added FreeEncoding(systemEncoding) in + TclFinalizeEncodingSubsystem because its ref count was incremented in + TclInitEncodingSubsystem. + +2004-04-19 Donal K. Fellows + + * doc/read.n: Added example from David Welton. [Patch 938056] + +2004-04-19 Kevin B. Kenny + + * generic/tclObj.c (Tcl_GetDoubleFromObj) Corrected "short circuit" + conversion of int to double. Reported by Jeff Hobbs on the Tcl'ers + Chat. + +2004-04-16 Donal K. Fellows + + * doc/lreplace.n, doc/lrange.n, doc/llength.n: More examples for + * doc/linsert.n, doc/lappend.n: the documentation. + +2004-04-16 Vince Darley + + * doc/FileSystem.3: Corrected documentation of Tcl_FSUtime, and the + corresponding filesystem driver Tcl_FSUtimeProc. [Bug 935838] + +2004-04-16 Donal K. Fellows + + * doc/socket.n: Added example from [Patch 936245]. + * doc/gets.n: Added example based on [Patch 935911]. + +2004-04-15 Donal K. Fellows + + * generic/tclClock.c (Tcl_ClockObjCmd): Minor fault in a [clock + clicks] error message. + +2004-04-07 Jeff Hobbs + + * win/tclWinInit.c (TclpSetInitialEncodings): note that WIN32_CE is + also a unicode platform. + * generic/tclEncoding.c (TclFindEncodings, Tcl_FindExecutable): + * generic/tclInt.h: Correct handling of UTF + * unix/tclUnixInit.c (TclpInitLibraryPath): data that is actually + * win/tclWinFile.c (TclpFindExecutable): "clean", allowing the + * win/tclWinInit.c (TclpInitLibraryPath): loading of Tcl from paths + that contain multi-byte chars on Windows [Bug 920667] + + * win/configure: define TCL_LIB_FLAG, TCL_BUILD_LIB_SPEC, + * win/configure.in: TCL_LIB_SPEC, TCL_PACKAGE_PATH in tclConfig.sh. + +2004-04-06 Don Porter + + Patch 922727 committed. Implements three changes: + + * generic/tclInt.h: Reworked the Tcl header files into a clean + * unix/tclUnixPort.h: hierarchy where tcl.h < tclPort.h < tclInt.h + * win/tclWinInt.h: and every C source file should #include + * win/tclWinPort.h: at most one of those files to satisfy its + declaration needs. tclWinInt.h and tclWinPort.h also better organized + so that tclWinPort.h includes the Windows implementation of + cross-platform declarations, while tclWinInt.h makes declarations that + are available on Windows only. + + * generic/tclBinary.c (TCL_NO_MATH): Deleted the generic/tclMath.h + * generic/tclMath.h (removed): header file. The internal Tcl + * macosx/Makefile (PRIVATE_HEADERS): header, tclInt.h, has a + * win/tcl.dsp: #include directly, + and file external to Tcl needing libm should do the same. + + * win/Makefile.in (WIN_OBJS): Deleted the win/tclWinMtherr.c file. + * win/makefile.bc (TCLOBJS): It's a vestige from matherr() days + * win/makefile.vc (TCLOBJS): gone by. + * win/tcl.dsp: + * win/tclWinMtherr.c (removed): + + End Patch 922727. + + * tests/unixInit.test (unixInit-3.1): Default encoding on Darwin + systems is utf-8. Thanks to Steven Abner (tauvan). [Bug 928808] + +2004-04-06 Donal K. Fellows + + * tests/cmdAH.test (cmdAH-18.2): Added constraint because + access(...,X_OK) is defined to be permitted to be meaningless when + running as root, and OSX exhibits this. [Bug 929892] + +2004-04-02 Miguel Sofer + + * generic/tclCompile.c: + * generic/tclInt.h: removed the macro TCL_ALIGN() from tclInt.h, + replaced by the static macro ALIGN() in tclCompile.c [Bug 926445] + +2004-04-02 Miguel Sofer + + * generic/tclCompile.h: removed redundant #ifdef _TCLINT [Bug 928415], + reported by tauvan. + +2004-04-02 Don Porter + + * tests/tcltest.test: Corrected constraint typos: "nonRoot" -> + "notRoot". Thanks to Steven Abner (tauvan). [Bug 928353] + +2004-04-01 Don Porter + + * generic/tclInt.h: Removed obsolete tclBlockTime* declarations. + [Bug 926454] + +2004-04-01 Vince Darley + + * generic/tclIOUtil.c: Fix to privately reported vfs bug with 'glob + -type d -dir . *' across a vfs boundary. No tests for this are + currently possible without effectively moving tclvfs into Tcl's test + suite. + +2004-03-31 Don Porter + + * doc/msgcat.n: Clarified message catalog file encodings. [Bug 811457] + * library/msgcat/msgcat.tcl: Updated internals to make use of [dict]s + to store message catalog data and to use [source -encoding utf-8] to + access catalog files. Thanks to Michael Sclenker. [Patch 875055, RFE + 811459] Corrected [mcset] to be able to successfully set a translation + to the empty string. [mcset $loc $src {}] was incorrectly set the $loc + translation of $src back to $src. Also changed [ConvertLocale] to + minimally require a non-empty "language" part in the locale value. If + not, an error raised prompts [Init] to keep looking for a valid locale + value, or ultimately fall back on the "C" locale. [Bug 811461]. + * library/msgcat/pkgIndex.tcl: Bump to msgcat 1.4.1. + +2004-03-30 Donal K. Fellows + + * generic/tclHash.c (HashStringKey): Cleaned up. This function is not + faster, but it is a little bit clearer. + * generic/tclLiteral.c (HashString): Applied logic from HashObjKey. + * generic/tclObj.c (HashObjKey): Rewrote to fix fault which hashed + every single-character object to the same hash bucket. The new code is + shorter, simpler, clearer, and (happily) faster. + +2004-03-30 Miguel Sofer + + * generic/tclExecute.c (TEBC): reverting to the previous method for + async tests in TEBC, as the new method turned out to be too costly. + Async tests now run every 64 instructions. + +2004-03-30 Miguel Sofer + + * generic/tclCompile.c: New instruction code INST_START_CMD + * generic/tclCompile.h: that allows checking the bytecode's + * generic/tclExecute.c: validity [Bug 729692] and the interp's + * tests/interp.test (18.9): readyness [Bug 495830] before running + * tests/proc.test (7.1): the command. It also changes the + * tests/rename.test (6.1): mechanics of the async tests in TEBC, + doing it now at command start instead of every 16 instructions. + +2004-03-30 Vince Darley + + * generic/tclFileName.c: Fix to Windows glob where the pattern is + * generic/tclIOUtil.c: a volume relative path or a network + * tests/fileName.test: share [Bug 898238]. On windows 'glob' + * tests/fileSystem.test: will now return the results of 'glob + /foo/bar' and 'glob \\foo\\bar' as 'C:/foo/bar', i.e. a correct + absolute path (rather than a volume relative path). + + Note that the test suite does not test commands like + 'glob //Machine/Shared/*' (on a network share). + +2004-03-30 Vince Darley + + * generic/tclPathObj.c: Fix to filename bugs recently + * tests/fileName.test: introduced [Bug 918320]. + +2004-03-29 Don Porter + + * generic/tclMain.c (Tcl_Main, StdinProc): Append newline only + * tests/basic.test (basic-46.1): to incomplete scripts + as part of multi-line script construction. Do not add an extra + trailing newline to the complete script. [Bug 833150] + +2004-03-28 Miguel Sofer + + * generic/tclCompile.c (TclCompileScript): corrected possible segfault + when a compilation returns TCL_OUTLINE_COMPILE after having grown the + compile environment [Bug 925121]. + +2004-03-27 Miguel Sofer + + * doc/array.n: added documentation for trace-realted behaviour of + 'array get' [Bug 449893] + +2004-03-26 Don Porter + + * README: Bumped version number to 8.5a2 to + * tools/tcl.wse.in: distinguish HEAD of CVS development + * unix/configure.in: from the recent 8.5a1 release. + * unix/tcl.spec: + * win/README.binary: + * win/configure.in: + + * unix/configure: autoconf-2.57 + * win/configure: + +2004-03-26 Vince Darley + + * generic/tclPathObj.c: Fix to Windows-only volume relative + * tests/fileSystem.test: path normalization. [Bug 923568]. + Also fixed another volume relative bug found while testing. + +2004-03-24 Donal K. Fellows + + * generic/tclNamesp.c (NsEnsembleImplementationCmd): Fix messed up + handling of strncmp result which just happened to work in some libc + implementations. [Bug 922752] + +2004-03-23 Donal K. Fellows + + * doc/StringObj.3: Inverted the sense of the documentation of how the + bytes parameter is documented to match behaviour. [Bug 921464] + +2004-03-19 Kevin B. Kenny + + * compat/strtoll.c: + * compat/strtoull.c: + * generic/tclIntDecls.h: + * generic/tclMain.c: + * generic/tclObj.c: + * win/tclWinDde.c: + * win/tclWinReg.c: + * win/tclWinTime.c: Made HEAD build on Windows VC++ again. + +2004-03-19 Donal K. Fellows + + * generic/tclIntDecls.h: Made HEAD build on Solaris again by applying + fix recommended by Don Porter. + +2004-03-18 Reinhard Max + + * generic/tclIntDecls.h: Removed TclpTime_t. It wasn't really needed, + * generic/tclInt.h: but caused warnings related to + * generic/tclInt.decls: strict aliasing with GCC 3.3. + * generic/tclClock.c: + * generic/tclDate.c: + * generic/tclGetDate.y: + * win/tclWinTime.c: + * unix/tclUnixTime.c: + + * generic/tclNamesp.c: Added temporary pointer variables to work + * generic/tclStubLib.c: around warnings related to + * unix/tclUnixChan.c: strict aliasing with GCC 3.3. + + * unix/tcl.m4: Removed -Wno-strict-aliasing. + +2004-03-18 Daniel Steffen + + Removed support for Mac OS Classic platform [Patch 918142] + + * README: + * compat/string.h: + * doc/Encoding.3: + * doc/FileSystem.3: + * doc/Init.3: + * doc/Macintosh.3 (removed): + * doc/OpenFileChnl.3: + * doc/OpenTcp.3: + * doc/SourceRCFile.3: + * doc/Thread.3: + * doc/clock.n: + * doc/exec.n: + * doc/fconfigure.n: + * doc/file.n: + * doc/filename.n: + * doc/glob.n: + * doc/open.n: + * doc/puts.n: + * doc/resource.n (removed): + * doc/safe.n: + * doc/source.n: + * doc/tclvars.n: + * doc/unload.n: + * generic/README: + * generic/tcl.decls: + * generic/tcl.h: + * generic/tclAlloc.c: + * generic/tclBasic.c: + * generic/tclCmdAH.c: + * generic/tclDate.c: + * generic/tclDecls.h: + * generic/tclFCmd.c: + * generic/tclFileName.c: + * generic/tclGetDate.y: + * generic/tclIOCmd.c: + * generic/tclIOUtil.c: + * generic/tclInitScript.h: + * generic/tclInt.decls: + * generic/tclInt.h: + * generic/tclIntDecls.h: + * generic/tclIntPlatDecls.h: + * generic/tclMain.c: + * generic/tclMath.h: + * generic/tclNotify.c: + * generic/tclPathObj.c: + * generic/tclPlatDecls.h: + * generic/tclPort.h: + * generic/tclStubInit.c: + * generic/tclTest.c: + * generic/tclThreadJoin.c: + * library/auto.tcl: + * library/init.tcl: + * library/package.tcl: + * library/safe.tcl: + * library/tclIndex: + * mac/AppleScript.html (removed): + * mac/Background.doc (removed): + * mac/MW_TclAppleScriptHeader.h (removed): + * mac/MW_TclAppleScriptHeader.pch (removed): + * mac/MW_TclBuildLibHeader.h (removed): + * mac/MW_TclBuildLibHeader.pch (removed): + * mac/MW_TclHeader.h (removed): + * mac/MW_TclHeader.pch (removed): + * mac/MW_TclHeaderCommon.h (removed): + * mac/MW_TclStaticHeader.h (removed): + * mac/MW_TclStaticHeader.pch (removed): + * mac/MW_TclTestHeader.h (removed): + * mac/MW_TclTestHeader.pch (removed): + * mac/README (removed): + * mac/bugs.doc (removed): + * mac/libmoto.doc (removed): + * mac/morefiles.doc (removed): + * mac/porting.notes (removed): + * mac/tclMac.h (removed): + * mac/tclMacAETE.r (removed): + * mac/tclMacAlloc.c (removed): + * mac/tclMacAppInit.c (removed): + * mac/tclMacApplication.r (removed): + * mac/tclMacBOAAppInit.c (removed): + * mac/tclMacBOAMain.c (removed): + * mac/tclMacChan.c (removed): + * mac/tclMacCommonPch.h (removed): + * mac/tclMacDNR.c (removed): + * mac/tclMacEnv.c (removed): + * mac/tclMacExit.c (removed): + * mac/tclMacFCmd.c (removed): + * mac/tclMacFile.c (removed): + * mac/tclMacInit.c (removed): + * mac/tclMacInt.h (removed): + * mac/tclMacInterupt.c (removed): + * mac/tclMacLibrary.c (removed): + * mac/tclMacLibrary.r (removed): + * mac/tclMacLoad.c (removed): + * mac/tclMacMath.h (removed): + * mac/tclMacNotify.c (removed): + * mac/tclMacOSA.c (removed): + * mac/tclMacOSA.r (removed): + * mac/tclMacPanic.c (removed): + * mac/tclMacPkgConfig.c (removed): + * mac/tclMacPort.h (removed): + * mac/tclMacProjects.sea.hqx (removed): + * mac/tclMacResource.c (removed): + * mac/tclMacResource.r (removed): + * mac/tclMacSock.c (removed): + * mac/tclMacTclCode.r (removed): + * mac/tclMacTest.c (removed): + * mac/tclMacThrd.c (removed): + * mac/tclMacThrd.h (removed): + * mac/tclMacTime.c (removed): + * mac/tclMacUnix.c (removed): + * mac/tclMacUtil.c (removed): + * mac/tcltkMacBuildSupport.sea.hqx (removed): + * tests/all.tcl: + * tests/binary.test: + * tests/cmdAH.test: + * tests/cmdMZ.test: + * tests/fCmd.test: + * tests/fileName.test: + * tests/fileSystem.test: + * tests/interp.test: + * tests/io.test: + * tests/ioCmd.test: + * tests/load.test: + * tests/macFCmd.test (removed): + * tests/osa.test (removed): + * tests/resource.test (removed): + * tests/socket.test: + * tests/source.test: + * tests/unload.test: + * tools/cvtEOL.tcl (removed): + * tools/genStubs.tcl: + * unix/Makefile.in: + * unix/README: + * unix/mkLinks: + * unix/tcl.spec: + * win/README.binary: + * win/tcl.dsp: + +2004-03-17 Donal K. Fellows + + * doc/lsearch.n: Improved examples on the advanced capabilities of + lsearch (with the right options, set element removal can be done) + following discussion on tkchat. + +2004-03-16 Don Porter + + * doc/catch.n: Compiled [catch] no longer fails to catch syntax + errors. Removed the claims in the documentation that it does. + * doc/return.n: Updated example to use [dict merge]. + +2004-03-16 Jeff Hobbs + + * unix/configure, unix/tcl.m4: add -Wno-strict-aliasing for GCC to + suppress useless type puning warnings. + +2004-03-16 Donal K. Fellows + + * doc/file.n: *roff formatting fix. [Bug 917171] + +2004-03-15 David Gravereaux + + * win/tclWinNotify.c: Fixed a mistake where the return value of + MsgWaitForMultipleObjectsEx for "a message is in the queue" wasn't + accurate. I removed the check on the case result==(WAIT_OBJECT_0 + 1) + This was having the error of falling into GetMessage and waiting there + by accident, which wasn't alertable through Tcl_AlertNotifier. I'll do + some more study on this and try to find-out why. + +2004-03-12 Donal K. Fellows + + IMPLEMENTATION OF TIP#163 + * generic/tclDictObj.c (DictMergeCmd): This is based on work by Joe + * tests/dict.test (dict-20.*): English in Tcl [FRQ 745851] + * doc/dict.n: but not exactly. + +2004-03-10 Kevin B. Kenny + + * generic/tclGetDate.y (TclGetDate): Fix so that [clock scan + -gmt true] uses the GMT base date instead of the local + one. [Bug 913513] + * tests/clock.test: Added test cases for wrong ISO8601 week number + [Bug 500285] and wrong GMT base date [Bug 913513]. Several tests still + fail on Windows, and these are actual faults in [clock scan]. Fix is + still pending. + * generic/tclDate.c: Regenerated. + +2004-03-08 Vince Darley + + * generic/tclFileName.c: Fix to 'glob -path' near the root + * tests/fileName.test: of the filesystem. [Bug 910525] + +2004-03-08 Don Porter + + * generic/tclParse.c (TclParseInit): Modified TclParseInit so + * generic/tclTest.c ([testexprparser]): that Tcl_Parse initialization + conforms to documented promised about what fields will not be + modified by what Tcl_Parse* routines. [Bug 910595] + +2004-03-05 Mo DeJong + + * win/configure: Regen. + * win/configure.in: Check for define of MWMO_ALERTABLE in winuser.h. + * win/tclWinPort.h: If MWMO_ALERTABLE is not defined in winuser.h then + define it. This is needed for Mingw. + +2004-03-05 Kevin B. Kenny + + * generic/tclTest.c: Modified TesteventObjCmd to use a + Tcl_QueuePosition in place of an 'int' for the enumerated queue + position, to avoid a compiler warning on SGI. [Bug 771960] + +2004-03-05 Kevin B. Kenny + + * tests/registry.test: Applied fix from [Patch 910174] to make the test + for an English-language system include any country code, rather than + just English-United States.1252. Thanks to Pat Thoyts for the changes. + +2004-03-04 Pat Thoyts + + * tests/registry.test: Applied fixed from [Bug 766159] to skip two + tests on Win98 that depend on a Unicode registry (NT specific). + +2004-03-04 Don Porter + + * generic/tclInt.h (TclParseInit): Factored the common code + * generic/tclParse.c (TclParseInit): for initializing a Tcl_Parse + * generic/tclParseExpr.c: struct into one routine. + +2004-03-04 Pat Thoyts + + * library/reg/pkgIndex.tcl: Added TIP #100 support to the + * win/tclWinReg.c: registry package [patch 903831] + This provides a Windows test of the TIP #100 mechanism and a sample to + show how unloading an extension can be done. + +2004-03-04 Donal K. Fellows + + * unix/dltest/pkgua.c: Fix minor syntax problems. [Bug 909288] + +2004-03-03 Jeff Hobbs + + *** 8.5a1 TAGGED FOR RELEASE *** + + * changes: updated for 8.5a1 + +2004-03-03 David Gravereaux + + * win/makefile.vc: default environment variable for VC++ is %MSDevDir% + not %MSVCDir%, although vcvars32.bat sets both. + + * win/tclWinNotify.c (Tcl_WaitForEvent) : Allows an idling notifier to + service "Asynchronous Procedure Calls" from its wait state. Only + useful for extension authors who decide they might want to try + "completion routines" with WriteFileEx(), as an example. From + experience, I recommend that "completion ports" should be used instead + as the execution of the callbacks are more managable. + +2004-03-01 Jeff Hobbs + + * README: update patchlevel to 8.5a1 + * generic/tcl.h: + * tools/tcl.wse.in, tools/tclSplash.bmp: + * unix/configure, unix/configure.in, unix/tcl.spec: + * win/README.binary, win/configure, win/configure.in: + + * unix/tcl.m4: update HP-11 build libs setup + +2004-03-01 Don Porter + + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Allow 64-bit enabling on + IRIX64-6.5* systems. [Bug 218561] + * unix/configure: autoconf-2.57 + + * generic/tclTrace.c (TclCheckInterpTraces): The TIP 62 + * generic/tclTest.c (TestcmdtraceCmd): implementation introduced a + * tests/trace.test (trace-29.10): bug by testing the CallFrame + level instead of the iPtr->numLevels level when deciding what traces + created by Tcl_Create(Obj)Trace to call. Added test to expose the + error, and made fix. [FRQ 462580] + +2004-02-28 Vince Darley + + * tests/fileSystem.test: fix to Tcl Bug 905163. + * tests/fileName.test: fix to Tcl Bug 904705. + + * doc/{various}.n: removed 'the the' typos. + +2004-02-26 Daniel Steffen + + * macosx/Makefile: fixed copyright year in Tcl.framework Info.plist + +2004-02-25 Don Porter + + * tests/basic.test: Made several tests more robust to the + * tests/cmdMZ.test: list-quoting of path names that might + * tests/exec.test: contain Tcl-special chars like { or [. + * tests/io.test: Should help us sort out Tcl Bug 554068. + * tests/pid.test: + * tests/socket.test: + * tests/source.test: + * tests/unixInit.test: + +2004-02-25 Donal K. Fellows + + * generic/tclLoad.c (Tcl_LoadObjCmd): Missing dereference caused + segfault with non-loadable extension. [Bug 904307] + + * unix/tclUnixChan.c (TcpGetOptionProc): Stop memory leak with + very long hostnames. [Bug 888777] + +2004-02-25 Pat Thoyts + + * win/tclWinDde.c: Removed some gcc warnings - except for the + -Wconversion warning for GetGlobalAtomName. gcc is just wrong about + this. + +2004-02-24 Donal K. Fellows + + IMPLEMENTATION OF TIP#100 FROM GEORGIOS PETASIS + * generic/tclLoad.c (Tcl_UnloadObjCmd): Implementation. + * tests/unload.test: Test suite. + * unix/dltest/pkgua.c: Helper for test suite. + * doc/unload.n: Documentation. + Also assorted changes (mostly small) to several other files. + +2004-02-23 Donal K. Fellows + + * generic/regc_locale.c (cclass): Buffer was having its size reset + instead of being released => memleak. [Bug 902562] + +2004-02-21 Donal K. Fellows + + * generic/tclLoad.c (Tcl_LoadObjCmd): Fixed memory leak due to an + improper error exit route. + +2004-02-20 David Gravereaux + + * win/tclWinSock.c (SocketThreadExitHandler): Don't call + TerminateThread when WaitForSingleObject returns a timeout. + Tcl_Finalize called from DllMain will pause all threads. Trust that + the thread will get the close notice at a later time if it does ever + wake up before being cleaned up by the system anyway. + +2004-02-17 Don Porter + + * doc/tcltest.n: + * library/tcltest/tcltest.tcl: Changed -verbose default value to + {body error} so that detailed information on unexpected errors in + tests is provided by default, even after the fix for [Bug 725253] + +2004-02-17 Jeff Hobbs + + * tests/unixInit.test (unixInit-7.1): + * unix/tclUnixInit.c (TclpInitPlatform): ensure the std fds exist to + prevent crash condition [Bug 772288] + +2004-02-17 Donal K. Fellows + + * generic/tclCompCmds.c (TclCompileSwitchCmd): Bozo mistake in memory + releasing order when in an error case. [Bug 898910] + +2004-02-16 Jeff Hobbs + + * generic/tclTrace.c (TclTraceExecutionObjCmd) + (TclTraceCommandObjCmd): fix possible mem leak in trace info. + +2004-02-12 Mo DeJong + + * win/tclWinInit.c (AppendEnvironment): Use the tail component of the + passed in lib path instead of just blindly using lib+4. That worked + when lib was "lib/..." but fails for other values. Thanks go to + Patrick Samson for pointing this out. + +2004-02-10 David Gravereaux + + * win/nmakehlp.c: better macro grepping logic. + +2004-02-07 David Gravereaux + + * win/makefile.vc: + * win/rules.vc: + * win/tcl.rc: + * win/tclsh.rc: Added an 'unchecked' option to the OPTS macro so a + core built with symbols can be linked to the non-debug enabled C + run-time. As per discussion with Kevin Kenny. Called like this: + + nmake -af makefile.vc OPTS=unchecked,symbols + + This clarifies the meaning of the 'g' naming suffix to mean only that + the binary requires the debug enabled C run-time. Whether the binary + contains symbols or not is a different condition. + +2004-02-06 Don Porter + + * doc/clock.n: Removed reference to non-existent [file ctime]. + +2004-02-05 David Gravereaux + + * docs/tclvars.n: Added clarification of the tcl_platform(debug) var + that it only refers to the flavor of the C run-time, and not whether + the core contains symbols. + +2004-02-05 Don Porter + + * generic/tclFileName.c (SkipToChar): Corrected CONST and type-casting + issues that caused compiler warnings. + +2004-02-04 Don Porter + + * generic/tclCmdAH.c (StoreStatData): Removed improper refcount + decrement of the varName parameter. This error was causing segfaults + following test cmdAH-28.7. + + * library/tcltest/tcltest.tcl: Corrected references to non-existent + $name variable in [cleanupTests]. [Bug 833637] + +2004-02-03 Don Porter + + * library/tcltest/tcltest.tcl: Corrected parsing of single command + line argument (option with missing value) [Bug 833910] + * library/tcltest/pkgIndex.tcl: Bump to version 2.2.5. + +2004-02-02 David Gravereaux + + * generic/tclIO.c (Tcl_Ungets): Fixes improper filling of the channel + buffer. This is the buffer before the splice. [Bug 405995] + +2004-02-01 David Gravereaux + + * tests/winPipe.test: more pass-thru commandline verifications. + * win/tclWinPipe.c (BuildCommandLine): Special case quoting for '{' + not required by the c-runtimes's parse_cmdline(). + * win/tclAppInit.c: Removed our custom setargv() in favor of the work + provided by the c-runtime. [Bug 672938] + + * win/nmakehlp.c: defensive techniques to avoid static buffer + overflows and a couple envars upsetting invokations of cl.exe and + link.exe. [Bug 885537] + + * tests/winPipe.test: Added proof that BuildCommandLine() is not doing + the "N backslashes followed a quote -> insert N * 2 + 1 backslashes + then a quote" rule needed for the crt's parse_cmdline(). + * win/tclWinPipe.c: Fixed BuildCommandLine() to pass the new cases. + +2004-01-30 David Gravereaux + + * win/makefile.vc: Use the -GZ compiler switch when building for + symbols. This is supposed to emulate the release build better to avoid + hiding problems that only show themselves in a release build. + +2004-01-29 Vince Darley + + * generic/tclPathObj.c: fix to [Bug 883143] in file normalization + +2004-01-29 Vince Darley + + * doc/file.n: + * generic/tclFCmd.c + * generic/tclTest.c + * library/init.tcl + * mac/tclMacFile.c + * tests/fileSystem.test: fix to [Bug 886352] where 'file copy -force' + had inconsistent behaviour wrt target files with insufficient + permissions, particular from vfs->native fs. Behaviour of '-force' is + now always consistent (and now consistent with behaviour of 'file + delete -force'). Added new tests and documentation and cleaned up the + 'simplefs' test filesystem. + + * generic/tclIOUtil.c + * unix/tclUnixFCmd.c + * unix/tclUnixFile.c + * win/tclWinFile.c: made native filesystems more robust to C code + which asks for mount lists. + + * generic/tclPathObj.c: fix to [Bug 886607] removing warning/error + with some compilers. + +2004-01-28 Donal K. Fellows + + * generic/tclObj.c (SetBooleanFromAny): Rewrite to do more efficient + string->bool conversion. + Many other minor whitespace/style fixes to this file too. + +2004-01-27 David Gravereaux + + * win/nmakehlp.c: Use '.\nul' as the sourcefile name instead of 'nul' + so VC 5.2 doesn't try searching the path for it and failing with a + possible dialogbox popping up about having to add a CD to an empty + drive. Also added a SetErrorMode() call to disable any dialogs that + cl.exe or link.exe might create. [Bug 885537] + +2004-01-22 Vince Darley + + * doc/file.n: clarified documentation of 'file system' [Bug 883825] + * tests/fCmd.test: improved test result in failure case. + +2004-01-22 Vince Darley + + * tests/fileSystem.test: 3 new tests + * generic/tclPathObj.c: fix to [Bug 879555] in file normalization. + * doc/filename.n: small clarification to Windows behaviour with + filenames like '.....', 'a.....', '.....a'. + + * generic/tclIOUtil.c: slight improvement to native cwd caching on + Windows. + +2004-01-21 David Gravereaux + + * doc/Panic.3: Mentions of 'panic' and 'panicVA' removed from the + documentation. + +2004-01-21 Vince Darley + + * doc/FileSystem.3: + * generic/tcl.decls: + * generic/tclCmdAH.c + * generic/tclDecls.h + * generic/tclFCmd.c + * generic/tclFileName.c + * generic/tclFileSystem.h + * generic/tclIOUtil.c + * generic/tclInt.decls + * generic/tclInt.h + * generic/tclIntDecls.h + * generic/tclPathObj.c + * generic/tclStubInit.c + * generic/tclTest.c + * mac/tclMacFile.c + * tests/fileName.test + * tests/fileSystem.test + * tests/winFCmd.test + * unix/tclUnixFile.c + * win/tclWin32Dll.c + * win/tclWinFCmd.c + * win/tclWinFile.c + * win/tclWinInt.h + + Three main issues accomplished: (1) cleaned up variable names in the + filesystem code so that 'pathPtr' is used throughout. (2) applied a + round of filesystem optimisation with better handling and caching of + relative and absolute paths, requiring fewer conversions. (3) + clarifications to the documentation, particularly regarding the + acceptable refCounts of objects. Some new tests added. Tcl benchmarks + show a significant improvement over 8.4.5, and on Windows typically a + small improvement over 8.3.5 (Unix still appears to require + optimisation). TCL_FILESYSTEM_VERSION_2 introduced, but for internal + use only. There should be no public incompatibilities from these + changes. Thanks to dgp for extensive testing. + +2004-01-19 David Gravereaux + + * win/tclWinPipe.c (Tcl_WaitPid): Fixed a thread-safety problem with + the process list. The delayed cut operation after the wait was going + stale by being outside the list lock. It now cuts within the lock and + does a locked splice for when it needs to instead. [Bug 859820] + +2004-01-18 Donal K. Fellows + + * generic/tclCompile.c, generic/tclCompile.h: Two new opcodes, + INST_LIST_INDEX_IMM and INST_LIST_RANGE_IMM, that have operand(s) + of new type OPERAND_IDX4 which represents indexes into things like + lists (and perhaps other things eventually.) + * generic/tclExecute.c (TclExecuteByteCode): Implementation of the + new opcodes. INST_LIST_INDEX_IMM does a simple [lindex] with + either front- or end-based simple indexing. INST_LIST_RANGE_IMM + does an [lrange] with front- or end-based simple indexing for both + the reference to the first and last items in the range. + * generic/tclCompCmds.c (TclCompileLassignCmd): Generate bytecode + for the [lassign] command. + +2004-01-17 David Gravereaux + + * win/tclWinInit.c: added #pragma comment(lib, "advapi32.lib") when + compiling under VC++ so we don't need to specify it when linking. + +2004-01-17 Donal K. Fellows + + * generic/tclCmdIL.c (Tcl_LassignObjCmd): Add more shimmering + protection for when the list is also one of the variables. + + BASIC IMPLEMENTATION OF TIP#57 + * generic/tclCmdIL.c (Tcl_LassignObjCmd): Implementation of the + [lassign] command that takes full advantage of Tcl's object API. + * doc/lassign.n: New file documenting the command. + * tests/cmdIL.test (cmdIL-6.*): Test suite for the command. + +2004-01-15 David Gravereaux + + * win/tclWinReg.c: Placed the requirement for advapi.lib into the + object file itself with #pragma comment (lib, ...) when built with + VC++. This will simplify linking for users of the static library. + + * win/rules.vc: Added new 'fullwarn' to the CHECKS commandline macro; + sets $(FULLWARNINGS). + + * win/makefile.vc: Removed 'advapi.lib' from $(baselibs). Added new + logic to crank-up the warning levels for both compile and link when + $(FULLWARNINGS) is set. Some clean-up with how the resource files are + built and how -DTCL_USE_STATIC_PACKAGES is sent when compiling the + shells. + + * win/tclAppInit.c: Small change in how TCL_USE_STATIC_PACKAGES is + used. + + * win/tcl.rc: + * win/tclsh.rc: Some clean-up with how the resource files are built. + Fixed 'OriginalFilename' problem that still thought a debug suffix was + still 'd', now is 'g'. + +2004-01-14 Donal K. Fellows + + * generic/tclDictObj.c (TraceDictPath, DictExistsCmd): Adjusted + behaviour of [dict exists] so a failure to look up a dictionary along + the path of dicts doesn't trigger an error. This is how it was + documented to behave previously... [Bug 871387] + + * generic/tclDictObj.c: Assorted dict fixes from Peter Spjuth relating + to [Bug 876170]. + (SetDictFromAny): Make sure that lists retain their ordering even when + converted to dictionaries and back. + (TraceDictPath): Correct object reference count handling! + (DictReplaceCmd, DictRemoveCmd): Stop object leak. + (DictIncrCmd,DictLappendCmd,DictAppendCmd,DictSetCmd,DictUnsetCmd): + Simpler handling of reference counts when assigning to variables. + * tests/dict.test (dict-19.2): Memory leak stress test + +2004-01-13 Don Porter + + * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): Silence compiler warnings. + + Patch 876451: restores performance of [return]. Also allows forms such + as [return -code error $msg] to be bytecompiled. + + * generic/tclInt.h: Factored Tcl_ReturnObjCmd() into two pieces: + * generic/tclCmdMZ.c: TclMergeReturnOptions(), which can parse the + options to [return], check their validity, and create the + corresponding return options dictionary, and TclProcessReturn(), which + takes that return options dictionary and performs the [return] + operation. + + * generic/tclCompCmds.c: Rewrote TclCompileReturnCmd() to call + TclMergeReturnOptions() at compile time so the return options + dictionary is computed at compile time (when it is fully known). The + dictionary is pushed on the stack along with the result, and the code + and level values are included in the bytecode as operands. Also + supports optimized compilation of un-[catch]ed [return]s from procs + with default options into the INST_DONE instruction. + + * generic/tclExecute.c: Rewrote INST_RETURN instruction to retrieve + the code and level operands, pop the return options from the stack, + and call TclProcessReturn() to perform the [return] operation. + + * generic/tclCompile.h: New utilities include TclEmitInt4 macro + * generic/tclCompile.c: and TclWordKnownAtCompileTime(). + + End Patch 876451. + + * generic/tclFileName.c (Tcl_GlobObjCmd): Latest changes to management + of the interp result by Tcl_GetIndexFromObj() exposed improper interp + result management in the [glob] command procedure. Corrected by + adopting the Tcl_SetObjResult(Tcl_NewStringObj) pattern. This stopped + a segfault in test filename-11.36. [Bug 877677] + +2004-01-13 Donal K. Fellows + + * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct, Tcl_WrongNumArgs): + Create fresh objects instead of using the one currently in the + interpreter, which isn't guaranteed to be fresh and unshared. The cost + for the core will be minimal because of the object cache, and this + fixes [Bug 875395]. + +2004-01-12 Miguel Sofer + + * generic/tclCompExpr.c (CompileLandOrLorExpr): cosmetic changes. + +2004-01-12 Miguel Sofer + + * generic/tclCompExpr.c (CompileLandOrLorExpr): new logic, fewer + instructions. As a side effect, the instructions INST_LOR and + INST_LAND are now never used. + * generic/tclExecute.c (INST_JUMP*): small optimisation; fix a bug in + debug code. + +2004-01-11 David Gravereaux + + * win/tclWinThrd.c (Tcl_ConditionNotify): condPtr must be dereferenced + to see if there are waiters else uninitialized datum is manipulated. + [Bug 849007 789338 745068] + +2004-01-09 David Gravereaux + + * generic/tcl.h: Renamed and deprecated #defines moved to within the + #ifndef TCL_NO_DEPRECATED block. This allows us to build Tcl to check + for deprecated functions in use, such as panic() and Tcl_Ckalloc(). By + request from DKF. Extensions that build with -DTCL_NO_DEPRECATED now + have these macros as restricted. + ***POTENTIAL INCOMPATIBILITY*** + + * win/makefile.vc: + * win/rules.vc: Added -DTCL_NO_DEPRECATED usage to makefile.vc. + Called like this: nmake -af makefile.vc CHECKS=nodep + +2004-01-09 Vince Darley + + * generic/tclIOUtil.c: fix to infinite loop in TclFinalizeFilesystem + [Bug 873311] + + ****************************************************************** + *** CHANGELOG ENTRIES FOR 2003 IN "ChangeLog.2003" *** + *** CHANGELOG ENTRIES FOR 2002 IN "ChangeLog.2002" *** + *** CHANGELOG ENTRIES FOR 2001 IN "ChangeLog.2001" *** + *** CHANGELOG ENTRIES FOR 2000 IN "ChangeLog.2000" *** + *** CHANGELOG ENTRIES FOR 1999 AND EARLIER IN "ChangeLog.1999" *** + ****************************************************************** -- cgit v0.12