diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 15641 |
1 files changed, 6835 insertions, 8806 deletions
@@ -4,11505 +4,9534 @@ stat'; that was always the time of the last metadata change, not the time of creation. -2011-06-22 Andreas Kupries <andreask@activestate.com> - - * library/platform/pkgIndex.tcl: Updated to platform 1.0.10. Added - * library/platform/platform.tcl: handling of the DEB_HOST_MULTIARCH - location change for libc. - -2011-05-07 Miguel Sofer <msofer@users.sf.net> - - * generic/tclInt.h: fix USE_TCLALLOC so that it can be enabled - * unix/Makefile.in: without editing the Makefile - -2011-04-21 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompile.c: Make sure SetFooFromAny routines react - * generic/tclIndexObj.c: reasonably when passed a NULL interp. - * generic/tclNamesp.c: - * generic/tclObj.c: - -2011-04-21 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tcl.h: fix for [Bug 3288345]: Wrong Tcl_StatBuf - * generic/tclInt.h: used on MinGW. Make sure that all _WIN32 - * generic/tclIOUtil.c: compilers use exactly the same layout - * win/tclWinFile.c: for Tcl_StatBuf - the one used by MSVC6 - - * win/configure.in: in all situations. - * win/configure: - -2011-04-20 Andreas Kupries <andreask@activestate.com> - - * tests/info.test: Fixed the shift in line numbers used for - testing 'info frame' introduced by checkin [79367df0f0] - (Mar 2, 2011). - -2011-04-13 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c: fix for [Bug 2662380], crash caused by - appending to a variable with a write trace that unsets it. - -2011-04-04 Don Porter <dgp@users.sourceforge.net> - - * README: Updated README files, repairing broken URLs and - * macosx/README: removing other bits that were clearly wrong. - * unix/README: Still could use more eyeballs on the detailed build - * win/README: advice on various plaforms. [Bug 3202030] - -2011-03-25 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclHash.c: [Bug 3007895]: Tcl_(Find|Create)HashEntry - stub entries can never be called. They still cannot be called - (no change in functionality), but at least they now do - exactly the same as the Tcl_(Find|Create)HashEntry macro's, - so the confusion addressed in this Bug report is gone. - Merged --cherrypick from Tcl8.5 (2010-12-31,e75735ef76) - -2011-03-24 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclFCmd.c (TclFileAttrsCmd): Ensure that any reference to - temporary index tables is squelched immediately rather than hanging - around to trip us up in the future. - -2011-03-16 Jan Nijtmans <nijtmans@users.sf.net> - - * unix/configure, unix/tcl.m4: SHLIB_LD_LIBS='${LIBS}' for OSF1-V*. - Add /usr/lib64 to set of auto-search dirs. [Bug 1230554] - (SC_PATH_X): Correct syntax error when xincludes not found. - Backported from Tcl 8.5 - * generic/tclCkalloc.c: [Bug #3197864] pointer truncation on Win64 - TCL_MEM_DEBUG builds - -2010-03-11 Jan Nijtmans <nijtmans@users.sf.net> - - * win/tclWin32Dll.c: #ifdef protections to permit builds with - * win/tclWinChan.c: mingw on amd64 systems. Thanks to "mescalinum" - * win/tclWinFCmd.c: for reporting and testing. - Merged --cherrypick from Tcl8.5 (2010-09-08,48191d3979) - -2011-03-11 Jan Nijtmans <nijtmans@users.sf.net> - - * win/tcl.m4: handle --enable-64bit=ia64 for gcc. - * win/configure: (autoconf-2.13) - * win/tclWin32Dll.c: [Patch 3059922]: fixes for mingw64 - gcc4.5.1 - Merged --cherrypick from Tcl8.5 (2011-01-17, 6e410a115b) - -2011-03-08 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclBasic.c: Fix gcc warnings: variable set but not used - -2011-03-06 Don Porter <dgp@users.sourceforge.net> - - * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() calls - * generic/tclCmdMZ.c: with TclParseBackslash() where possible. - * generic/tclCompExpr.c: - * generic/tclCompile.c: - * generic/tclUtil.c (TclFindElement): Guard escape sequence scans - to not overrun the string end. [Bug 3192636] - -2011-03-05 Don Porter <dgp@users.sourceforge.net> - - * generic/tclParse.c (TclParseBackslash): Correct trunction checks in - * tests/parse.test: \x and \u substitutions. [Bug 3200987] - -2011-01-25 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclCkalloc.c: [Bug 3129448]: Possible over-allocation on 64-bit - * generic/tclHash.c: platforms, part 2, backported strcpy->memcpy - * generic/tclProc.c change but not change in any struct. +2011-07-02 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclStrToD.c: + * generic/tclTomMath.decls: + * generic/tclTomMathDecls.h: + * macosx/Tcl.xcode/project.pbxproj: + * macosx/Tcl.xcodeproj/project.pbxproj: + * tests/util.test: + * unix/Makefile.in: + * win/Makefile.in: + * win/Makefile.vc: + Fix a bug where bignum->double conversion is "round up" and + not "round to nearest" (causing expr double(1[string repeat 0 23]) + not to be 1e+23). [Bug 3349507] -2011-01-14 Jan Nijtmans <nijtmans@users.sf.net> +2011-06-30 Reinhard Max <max@suse.de> - * win/tclWinDde.c: Fix gcc-4.5.2 error: lvalue required as ... - * win/tclWinReg.c: (backported from 8.5/8.6) + * unix/configure.in: Add a volatile declaration to the test for + TCL_STACK_GROWS_UP to prevent gcc 4.6 from producing invalid + results due to aggressive optimisation. -2010-12-05 Jan Nijtmans <nijtmans@users.sf.net> +2011-06-23 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdMZ.c: [Bug 3127687] Triggers FORTIFY_SOURCE - buffer overflow detection + *** 8.5.10 TAGGED FOR RELEASE *** -2010-11-03 Jeff Hobbs <jeffh@ActiveState.com> + * changes: Update for 8.5.10 release. - Backported from 8.6 (see 2010-08-04). - * win/tclWin32Dll.c (asciiProcs, unicodeProcs): - * win/tclWinLoad.c (TclpDlopen): 'load' use LoadLibraryEx with - * win/tclWinInt.h (TclWinProcs): LOAD_WITH_ALTERED_SEARCH_PATH to - prefer dependent DLLs in same dir as loaded DLL. +2011-06-22 Andreas Kupries <andreask@activestate.com> -2010-10-31 Jan Nijtmans <nijtmans@users.sf.net> + * library/platform/pkgIndex.tcl: Updated to platform 1.0.10. Added + * library/platform/platform.tcl: handling of the DEB_HOST_MULTIARCH + * unix/Makefile.in: location change for libc. + * win/Makefile.in: - * win/tcl.m4 Add -D_CRT_SECURE_NO_DEPRECATE and - -D_CRT_NONSTDC_NO_DEPRECATE, reducing the number of - deprecation warnings on later VC++ versions. - * win/rules.vc Better VCVERSION determination - * win/configure (regenerated with autoconf 2.13) - All changes backported from Tcl8.5/8.6 + * generic/tclInt.h: Fixed the inadvertently committed disabling of + stack checks, see my 2010-11-15 commit. -2010-10-23 Jan Nijtmans <nijtmans@users.sf.net> +2011-06-21 Don Porter <dgp@users.sourceforge.net> - * tools/uniParse.tcl: [Bug 3085863]: tclUniData 9 years old - * tools/uniClass.tcl: Upgrade everything to Unicode 6.0, except - * tests/utf.test: non-BMP characters > 0xFFFF - * generic/tclUniData.c: (re-generated) - * generic/regc_locale.c:(re-generated) - * generic/regcomp.c: fix comment/signatures referencing regc_locale - * win/rules.vc Update for VS10 + * changes: Update for 8.5.10 release. -2010-09-24 Andreas Kupries <andreask@activestate.com> + * library/tcltest/tcltest.tcl (loadIntoSlaveInterpreter): + * library/tcltest/pkgIndex.tcl: Backport tcltest 2.3.3 for release + * unix/Makefile.in: with Tcl 8.5.*. + * win/Makefile.in: - * tclWinsock.c: [Bug 3056775]: Fixed race condition between thread - and internal co-thread access of a socket's structure because of - the thread not using the socketListLock in TcpAccept(). Added - documentation on how the module works to the top. + * tests/init.test: Update test files to use new command. + * tests/pkg.test: -2010-09-01 Andreas Kupries <andreask@activestate.com> + * generic/tclLink.c: Prevent multiple links to a single Tcl + variable when calling Tcl_LinkVar(). [Bug 3317466] - * generic/tclExecute.c: [Bug 3057639]. Applied patch by Jeff to - * generic/tclVar.c: make the behaviour of lappend in bytecompiled - * tests/append.test: mode consistent with direct-eval and 'append' - * tests/appendComp.test: generally. Added tests (append*-9.*) - showing the difference. +2011-06-13 Don Porter <dgp@users.sourceforge.net> -2010-07-25 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclStrToD.c: [Bug 3315098] Mem leak fix from Gustaf Neumann. - * generic/tclInt.h: [Bug 3030870] make itcl 3.x built with pre-8.6 - * generic/tclBasic.c: work in 8.6 revert tclInt.h to what it was - before, and relax the relation between Tcl_CallFrame and - CallFrame. +2011-06-02 Don Porter <dgp@users.sourceforge.net> -2010-07-18 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclBasic.c: Removed TclCleanupLiteralTable(), and old + * generic/tclInt.h: band-aid routine put in place while a fix + * generic/tclLiteral.c: for [Bug 994838] took shape. No longer needed. - * generic/tcl.h: [Bug 3031278] fixed merge problem in previous - commit. - -2010-07-17 Jan Nijtmans <nijtmans@users.sf.net> +2011-06-02 Donal K. Fellows <dkf@users.sf.net> - * generic/tcl.h: [Bug 3030870] make itcl 3.x built with pre-8.6 - * generic/tclInt.h: work in 8.6 + * generic/tclInt.h (TclInvalidateNsCmdLookup): [Bug 3185407]: Extend + the set of epochs that are potentially bumped when a command is + created, for a slight performance drop (in some circumstances) and + improved semantics. -2010-07-16 Jan Nijtmans <nijtmans@users.sf.net> +2011-06-01 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tcl.h: (Backport) take over definitions of _WIN32, - DLLIMPORT, DLLEXPORT and TCL_LL_MODIFIER macros from Tcl8.5/8.6 + * generic/tclUtil.c: Fix for [Bug 3309871]: Valgrind finds: + invalid read in TclMaxListLength() -2010-06-28 Jan Nijtmans <nijtmans@users.sf.net> +2011-05-25 Don Porter <dgp@users.sourceforge.net> - * generic/tclPosixStr.c: [Bug 3019634] errno.h and tclWinPort.h - have conflicting definitions. + * library/msgcat/msgcat.tcl: Backport improvements to msgcat + * library/msgcat/pkgIndex.tcl: package. Bump to 1.4.4 + * unix/Makefile.in + * win/Makefile.in -2010-06-09 Andreas Kupries <andreask@activestate.com> +2011-05-24 Venkat Iyer <venkat@comit.com> - * library/platform/platform.tcl: Added OSX Intel 64bit - * library/platform/pkgIndex.tcl: Package updated to version 1.0.9. + * library/tzdata/Africa/Cairo: Update to Olson tzdata2011g -2010-05-07 Andreas Kupries <andreask@activestate.com> +2011-05-17 Andreas Kupries <andreask@activestate.com> - * library/platform/platform.tcl: Fix cpu name for Solaris/Intel 64bit. - * library/platform/pkgIndex.tcl: Package updated to version 1.0.8. + * generic/tclCompile.c (TclFixupForwardJump): Tracked down and fixed + * generic/tclBasic.c (TclArgumentBCEnter): the cause of a violation + of my assertion that 'ePtr->nline == objc' in TclArgumentBCEnter. + When a bytecode was grown during jump fixup the pc -> command line + mapping was not updated. When things aligned just wrong the mapping + would direct command A to the data for command B, with a different + number of arguments. -2010-04-29 Andreas Kupries <andreask@activestate.com> +2011-05-10 Don Porter <dgp@users.sourceforge.net> - * library/platform/platform.tcl: Another stab at getting the /lib, - * library/platform/pkgIndex.tcl: /lib64 difference right for - linux. Package updated to version 1.0.7. + * generic/tclInt.h: New internal routines TclScanElement() and + * generic/tclUtil.c: TclConvertElement() are rewritten guts of + machinery to produce string rep of lists. The new routines avoid + and correct [Bug 3173086]. See comments for much more detail. -2010-04-18 Donal K. Fellows <dkf@users.sf.net> + * generic/tclDictObj.c: Update all callers. + * generic/tclIndexObj.c: + * generic/tclListObj.c: + * generic/tclUtil.c: + * tests/list.test: - * doc/unset.n: [Bug 2988940]: Fix typo. +2011-05-09 Don Porter <dgp@users.sourceforge.net> -2010-04-14 Andreas Kupries <andreask@activestate.com> + * generic/tclListObj.c: Revise empty string tests so that we avoid + potentially expensive string rep generations, especially for dicts. - * library/platform/platform.tcl: Linux platform identification: - * library/platform/pkgIndex.tcl: Check /lib64 for existence of - files matching libc* before accepting it as base directory. This - can happen on weirdly installed 32bit systems which have an empty - or partially filled /lib64 without an actual libc. Bumped to - version 1.0.6. +2011-05-07 Miguel Sofer <msofer@users.sf.net> -2010-04-06 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclInt.h: fix USE_TCLALLOC so that it can be enabled + * unix/Makefile.in: without editing the Makefile - * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): fixed object leak. +2011-05-05 Don Porter <dgp@users.sourceforge.net> -2010-04-02 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclListObj.c: Stop generating string rep of dict when + converting to list. Tolerate NULL interps more completely. - * generic/tclStringObj.c: (SetStringFromAny): avoid trampling - over the tclEmptyStringRep->bytes as it is thread-shared - (thx to Gustaf Neumann for the (hard) work of locating this one). +2011-05-03 Don Porter <dgp@users.sourceforge.net> -2010-03-01 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * generic/tclUtil.c: Tighten Tcl_SplitList(). + * generic/tclListObj.c: Tighten SetListFromAny(). + * generic/tclDictObj.c: Tighten SetDictFromAny(). - * unix/tclUnixChan.c: [backported] Refrain from a possibly lengthy - reverse-DNS lookup on 0.0.0.0 when calling [fconfigure -sockname] - on an universally-bound (default) server socket. +2011-05-02 Don Porter <dgp@users.sourceforge.net> -2010-02-22 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclCmdMZ.c: Revised TclFindElement() interface. The + * generic/tclDictObj.c: final argument had been bracePtr, the address + * generic/tclListObj.c: of a boolean var, where the caller can be told + * generic/tclParse.c: whether or not the parsed list element was + * generic/tclUtil.c: enclosed in braces. In practice, no callers + really care about that. What the callers really want to know is + whether the list element value exists as a literal substring of the + string being parsed, or whether a call to TclCopyAndCollpase() is + needed to produce the list element value. Now the final argument + is changed to do what callers actually need. This is a better fit + for the calls in tclParse.c, where now a good deal of post-processing + checking for "naked backslashes" is no longer necessary. + ***POTENTIAL INCOMPATIBILITY*** + For any callers calling in via the internal stubs table who really + do use the final argument explicitly to check for the enclosing brace + scenario. Simply looking for the braces where they must be is the + revision available to those callers, and it will backport cleanly. - * generic/tclExecute.c: Fix [Bug 2954959] expr abs(-0.0) is -0.0 - * tests/expr.test Added some test cases, backported from 8.5 + * tests/parse.test: Tests for expanded literals quoting detection. -2010-02-11 Andreas Kupries <andreask@activestate.com> + * generic/tclCompCmds.c: New TclFindElement() is also a better + fit for the [switch] compiler. - * generic/tclCompile.c: [Bug 2949302]: Fixed leak of support - structures for [info frame] which occured when bytecode - compilation fails. + * generic/tclInt.h: Replace TclCountSpaceRuns() with + * generic/tclListObj.c: TclMaxListLength() which is the function we + * generic/tclUtil.c: actually want. + * generic/tclCompCmds.c: -2010-02-01 Donal K. Fellows <dkf@users.sf.net> + * generic/tclCompCmds.c: Rewrite of parts of the switch compiler to + better use the powers of TclFindElement() and do less parsing on + its own. - * generic/regexec.c (ccondissect, crevdissect): [Bug 2942697]: Rework - these functions so that certain pathological patterns are matched much - more rapidly. Many thanks to Tom Lane for dianosing this issue and - providing an initial patch. +2011-04-28 Don Porter <dgp@users.sourceforge.net> -2009-11-16 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * generic/tclInt.h: New utility routines: + * generic/tclParse.c: TclIsSpaceProc() and + * generic/tclUtil.c: TclCountSpaceRuns() - * generic/tclEncoding.c: (Backport) Fix [Bug 2891556] and improve - * tests/econding.test: test to detect similar manifestations in the - future. + * generic/tclCmdMZ.c: Use new routines to replace calls to + * generic/tclListObj.c: isspace() and their /* INTL */ risk. + * generic/tclStrToD.c: + * generic/tclUtf.c: + * unix/tclUnixFile.c: -2009-11-12 Andreas Kupries <andreask@activestate.com> - - * generic/tclIO.c (CopyData): [Bug 2895565]. Dropped bogosity - * tests/io.test: which used the number of _written_ bytes or - character to update the counters for the read bytes/characters. - New test io-53.11. This is a backward port from the 8.5 branch. - -2009-11-10 Pat Thoyts <patthoyts@users.sourceforge.net> - - * tests/fCmd.test: Fixed a number of issues for Vista - * tests/registry.test: and Win7 that are due to restricted - * tests/tcltest.test: permissions under UAC. - * tests/winFCmd.test: - -2009-11-10 Stuart Cassoff <stwo@users.sf.net> +2011-04-27 Don Porter <dgp@users.sourceforge.net> - * win/README: [bug 2459744]: Removed outdated Msys + Mingw info. - -2009-11-10 Andreas Kupries <andreask@activestate.com> - - * generic/tclObj.c: Plug memory leak in TclContinuationsEnter(). - [Bug 2895323]. Backport from Tcl 8.5 branch, change by Don Porter. - -2009-11-09 Andreas Kupries <andreask@activestate.com> - - * generic/tclBasic.c (TclEvalObjEx): Moved the #280 decrement of - refCount for the file path out of the branch after the whole - conditional, closing a memory leak. Added clause on structure type - to prevent seg.faulting. Backport from valgrinding the Tcl 8.5 - branch. - - * tests/info.test: Resolve ambiguous resolution of variable - "res". Backport from 8.5 - -2009-10-23 Andreas Kupries <andreask@activestate.com> - - * generic/tclCompCmds.c: [Bug 2881263] (TclCompileForeachCmd, - TclCompileLindexCmd): Fixed. Moved the use of - DefineLineInformation after all regular variable declarations, so - that an empty statement (-UTIP_280) doesn't confuse c89 compilers. - - * library/platform/pkgIndex.tcl: Backported the platform packages - * library/platform/platform.tcl: from head and8.5 into the 8.4 - * library/platform/shell.tcl: branch. Updated makefiles to install - * unix/Makfile.in: the packages. - * win/Makefile.in: - - * generic/tclIO.c (FlushChannel): Skip OutputProc for low-level - 0-length writes. When closing pipes which have already been closed - not skipping leads to spurious SIG_PIPE signals. Reported by - Mikhail Teterin <mi+thun@aldan.algebra.com>. + * generic/tclListObj.c: FreeListInternalRep() cleanup. -2009-10-21 Donal K. Fellows <dkf@users.sf.net> + * generic/tclBinary.c: Backport fix for [Bug 2857044]. + * generic/tclDictObj.c: All freeIntRepProcs set typePtr to NULL. + * generic/tclEncoding.c: + * generic/tclIndexObj.c: + * generic/tclListObj.c: + * generic/tclNamesp.c: + * generic/tclObj.c: + * generic/tclPathObj.c: + * generic/tclProc.c: + * generic/tclRegexp.c: + * generic/tclStringObj.c: + * generic/tclVar.c: - * generic/tclPosixStr.c: [Bug 2882561]: Work around oddity on Haiku OS - where SIGSEGV and SIGBUS are the same value. +2011-04-21 Don Porter <dgp@users.sourceforge.net> -2009-10-18 Joe Mistachkin <joe@mistachkin.com> + * generic/tclInt.h: Use macro to set List intreps. + * generic/tclListObj.c: - * tests/thread.test (thread-4.[345]): [Bug 1565466]: Correct tests to - save their error state before the final call to threadReap just in case - it triggers an "invalid thread id" error. This error can occur if one - or more of the target threads has exited prior to the attempt to send - it an asynchronous exit command. + * generic/tclCmdIL.c: Limits on list length were too strict. + * generic/tclInt.h: Revised panics to errors where possible. + * generic/tclListObj.c: -2009-10-04 Daniel Steffen <das@users.sourceforge.net> + * generic/tclCompile.c: Make sure SetFooFromAny routines react + * generic/tclIO.c: reasonably when passed a NULL interp. + * generic/tclIndexObj.c: + * generic/tclListObj.c: + * generic/tclNamesp.c: + * generic/tclObj.c: + * generic/tclProc.c: + * macosx/tclMacOSXFCmd.c: - * macosx/tclMacOSXBundle.c: Workaround CF memory managment bug in - * unix/tclUnixInit.c: Mac OS X 10.4 & earlier. [Bug 2569449] +2011-04-21 Jan Nijtmans <nijtmans@users.sf.net> -2009-09-28 Don Porter <dgp@users.sourceforge.net> + * generic/tcl.h: fix for [Bug 3288345]: Wrong Tcl_StatBuf + * generic/tclInt.h: used on MinGW. Make sure that all _WIN32 + * win/tclWinFile.c: compilers use exactly the same layout + * win/configure.in: for Tcl_StatBuf - the one used by MSVC6 - + * win/configure: in all situations. - * generic/tclAlloc.c: Cleaned up various routines in the - * generic/tclCkalloc.c: call stacks for memory allocation to - * generic/tclParse.c: guarantee that any size values computed - * generic/tclThreadAlloc.c: are within the domains of the routines - they get passed to. [Bugs 2557696 and 2557796]. +2011-04-20 Andreas Kupries <andreask@activestate.com> -2009-09-18 Don Porter <dgp@users.sourceforge.net> + * generic/tclFCmd.c (TclFileAttrsCmd): Added commands to reset the + typePtr of the Tcl_Obj* whose int-rep was just purged. Required to + prevent a dangling IndexRep* to reused, smashing the heap. See + also the entries at 2011-04-16 and 2011-03-24 for the history of + the problem. - * generic/tclCmdMZ.c (Tcl_SubstObj): Pass 'length' values to - recursive parsing calls to convert O(N^2) operations of [subst] - to O(N). +2011-04-19 Don Porter <dgp@users.sourceforge.net> -2009-08-25 Andreas Kupries <andreask@activestate.com> + * generic/tclConfig.c: Reduce internals access in the implementation + of [<foo>::pkgconfig list]. - * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard, - (EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations, - (TclEvalObjEx): - * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, ListLines): - * generic/tclCompCmds.c (*): - * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv, - (TclFreeCompileEnv, TclCompileScript): - * generic/tclCompile.h (CompileEnv): - * generic/tclInt.h (ContLineLoc, Interp): - * generic/tclObj.c (ThreadSpecificData, ContLineLocFree, - (TclThreadFinalizeObjects, TclInitObjSubsystem, - (TclContinuationsEnter, TclContinuationsEnterDerived, - (TclContinuationsCopy, TclContinuationsGet, TclFreeObj): - * generic/tclProc.c (TclCreateProc): - * generic/tclVar.c (TclPtrSetVar): - * tests/info.test (info-30.0-22): +2011-04-18 Don Porter <dgp@users.sourceforge.net> - Extended parser, compiler, and execution with code and attendant - data structures tracking the positions of continuation lines which - are not visible in script's, to properly account for them while - counting lines for #280, during direct and compiled execution. + * generic/tclCmdIL.c: Use ListRepPtr(.) and other cleanup. + * generic/tclConfig.c: + * generic/tclListObj.c: -2009-08-17 Don Porter <dgp@users.sourceforge.net> + * generic/tclInt.h: Define and use macros that test whether + * generic/tclBasic.c: a Tcl list value is canonical. + * generic/tclUtil.c: - * generic/tclFileName.c: Correct result from [glob */test] when * - * tests/fileName.test: matches something like ~foo. [Bug 2837800] +2011-04-16 Donal K. Fellows <dkf@users.sf.net> -2009-07-23 Joe Mistachkin <joe@mistachkin.com> + * generic/tclFCmd.c (TclFileAttrsCmd): Tidied up the memory management + a bit to try to ensure that the dynamic and static cases don't get + confused while still promoting caching where possible. Added a panic + to trap problems in the case where an extension is misusing the API. - * generic/tclNotify.c: Fix for [Bug 2820349]. +2011-04-13 Don Porter <dgp@users.sourceforge.net> -2009-07-14 Andreas Kupries <andreask@activestate.com> + * generic/tclUtil.c: [Bug 3285375]: Rewrite of Tcl_Concat*() + routines to prevent segfaults on buffer overflow. Build them out of + existing primitives already coded to handle overflow properly. Uses + the new TclTrim*() routines. - * generic/tclBasic.c (DeleteInterpProc,TclArgumentBCEnter, - (TclArgumentBCRelease, TclArgumentGet): - * generic/tclCompile.c (EnterCmdWordIndex, TclCleanupByteCode, - (TclInitCompileEnv, TclCompileScript): - * generic/tclCompile.h (ExtCmdLoc): - * generic/tclExecute.c (TclExecuteByteCode): - * generic/tclInt.h (ExtIndex, CFWordBC): - * tests/info.test (info-39.0): + * generic/tclCmdMZ.c: New internal utility routines TclTrimLeft() + * generic/tclInt.h: and TclTrimRight(). Refactor the + * generic/tclUtil.c: [string trim*] implementations to use them. - Backport of some changes made to the Tcl head, to handle literal - sharing better. The code here is much simpler (trimmed down) - compared to the head as the 8.4 branch is not bytecode compiling - whole files, and doesn't compile eval'd code either. - - Reworked the handling of literal command arguments in bytecode to - be saved (compiler) and used (execution) per command (See the - TCL_INVOKE_STK* instructions), and not per the whole bytecode. - This removes the problems with location data caused by literal - sharing in proc bodies. Simplified the associated datastructures - (ExtIndex is gone, as is the function EnterCmdWordIndex). +2011-04-13 Miguel Sofer <msofer@users.sf.net> -2009-06-13 Don Porter <dgp@users.sourceforge.net> + * generic/tclVar.c: [Bug 2662380]: Fix crash caused by appending to a + variable with a write trace that unsets it. - * generic/tclCompile.c: The value stashed in iPtr->compiledProcPtr - * generic/tclProc.c: when compiling a proc survives too long. We - * tests/execute.test: only need it there long enough for the right - TclInitCompileEnv() call to re-stash it into envPtr->procPtr. Once - that is done, the CompileEnv controls. If we let the value of - iPtr->compiledProcPtr linger, though, then any other bytecode compile - operation that takes place will also have its CompileEnv initialized - with it, and that's not correct. The value is meant to control the - compile of the proc body only, not other compile tasks that happen - along. Thanks to Carlos Tasada for discovering and reporting the - problem. [Bug 2802881]. +2011-04-12 Don Porter <dgp@users.sourceforge.net> -2009-04-28 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclStringObj.c: [Bug 3285472]: Repair corruption in + * tests/string.test: [string reverse] when string rep invalidation + failed to also reset the bytes allocated for string rep to zero. - * unix/tcl.m4, unix/configure (SC_CONFIG_CFLAGS): harden the check - to add _r to CC on AIX with threads. +2011-04-12 Venkat Iyer <venkat@comit.com> -2009-04-27 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * library/tzdata/Atlantic/Stanley: Update to Olson tzdata2011f - * generic/tclInt.h: Backport fix for [Bug 1028264]: WSACleanup() too - * generic/tclEvent.c: early. The fix introduces "late exit handlers" - * win/tclWinSock.c: for similar late process-wide cleanups. +2011-04-06 Miguel Sofer <msofer@users.sf.net> -2009-04-27 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * generic/tclExecute.c (TclCompEvalObj): Earlier return if Tip280 + gymnastics not needed. - * win/tclWinSock.c: Backport fix for [Bug 2446662]: resync Win - behavior on RST with that of unix (EOF). +2011-04-05 Venkat Iyer <venkat@comit.com> -2009-04-22 Andreas Kupries <andreask@activestate.com> + * library/tzdata/Africa/Casablanca: Update to Olson's tzdata2011e + * library/tzdata/America/Santiago: + * library/tzdata/Pacific/Easter: + * library/tzdata/America/Metlakatla: (new) + * library/tzdata/America/North_Dakota/Beulah: (new) + * library/tzdata/America/Sitka: (new) - * generic/tclStringObj.c (UpdateStringOfString): Added cast to fix - signed/unsigned mismatch breaking win32 symbol/debug build. +2011-04-04 Don Porter <dgp@users.sourceforge.net> -2009-04-15 Don Porter <dgp@users.sourceforge.net> + * README: Updated README files, repairing broken URLs and + * macosx/README: removing other bits that were clearly wrong. + * unix/README: Still could use more eyeballs on the detailed build + * win/README: advice on various plaforms. [Bug 3202030] - * generic/tclStringObj.c: AppendUnicodeToUnicodeRep failed - to set stringPtr->allocated to 0, leading to crashes. +2011-04-02 Kevin B. Kenny <kennykb@acm.org> -2009-04-14 Stuart Cassoff <stwo@users.sourceforge.net> + * generic/tclStrToD.c (QuickConversion): Replaced another couple of + 'double' declarations with 'volatile double' to work around + misrounding issues in mingw-gcc 3.4.5. - * unix/tcl.m4: Removed -Wno-implicit-int from CFLAGS_WARNING. +2011-03-24 Donal K. Fellows <dkf@users.sf.net> -2009-04-08 Don Porter <dgp@users.sourceforge.net> + * generic/tclFCmd.c (TclFileAttrsCmd): Ensure that any reference to + temporary index tables is squelched immediately rather than hanging + around to trip us up in the future. - * library/tcltest/tcltest.tcl: Fixed unsafe [eval]s in the tcltest - * library/tcltest/pkgIndex.tcl: package. [Bug 2570363] +2011-03-21 Jan Nijtmans <nijtmans@users.sf.net> -2009-04-07 Don Porter <dgp@users.sourceforge.net> + * unix/tclLoadDl.c: [Bug #3216070]: Loading extension libraries + * unix/tclLoadDyld.c: from embedded Tcl applications. - * generic/tclStringObj.c: Completed backports of fixes for - [Bug 2494093] and [Bug 2553906]. +2011-03-16 Jan Nijtmans <nijtmans@users.sf.net> -2009-03-30 Don Porter <dgp@users.sourceforge.net> + * generic/tclCkalloc.c: [Bug #3197864]: pointer truncation on Win64 + TCL_MEM_DEBUG builds - * doc/Alloc.3: Size argument is "unsigned int". [Bug 2556263] +2011-03-16 Don Porter <dgp@users.sourceforge.net> - * generic/tclStringObj.c: Added protections from invalid memory - * generic/tclTestObj.c: accesses when we append (some part of) - * tests/stringObj.test: a Tcl_Obj to itself. Added the - appendself and appendself2 subcommands to the [teststringobj] testing - command and added tests to the test suite. [Bug 2603158] + * generic/tclBasic.c: Some rewrites to eliminate calls to + * generic/tclParse.c: isspace() and their /* INTL */ risk. + * generic/tclProc.c: -2009-03-27 Don Porter <dgp@users.sourceforge.net> +2011-03-16 Jan Nijtmans <nijtmans@users.sf.net> - * tests/fileName.test: Tests for [Bug 2710920] to guard against - its appearance. + * unix/tcl.m4: Make SHLIB_LD_LIBS='${LIBS}' the default and + * unix/configure: set to "" on per-platform necessary basis. + Backported from TEA, but kept all original platform code which was + removed from TEA. -2009-03-20 Don Porter <dgp@users.sourceforge.net> +2011-03-14 Kevin B. Kenny <kennykb@acm.org> - * generic/tclStringObj.c: Test stringObj-6.9 checks that - * tests/stringObj.test: Tcl_AppendStringsToObj() no longer - crashes when operating on a pure unicode value. [Bug 2597185] + * tools/tclZIC.tcl (onDayOfMonth): Allow for leading zeroes + in month and day so that tzdata2011d parses correctly. + * library/tzdata/America/Havana: + * library/tzdata/America/Juneau: + * library/tzdata/America/Santiago: + * library/tzdata/Europe/Istanbul: + * library/tzdata/Pacific/Apia: + * library/tzdata/Pacific/Easter: + * library/tzdata/Pacific/Honolulu: tzdata2011d - * generic/tclExecute.c (INST_CONCAT1): Panic when appends overflow - the max length of a Tcl value. [Bug 2669109] -2009-03-18 Don Porter <dgp@users.sourceforge.net> + * unix/configure.in: [Bug 3205320]: stack space detection defeated by inlining + * unix/configure: (autoconf-2.59) - * win/tclWinFile.c (TclpObjNormalizePath): Corrected Tcl_Obj leak. - Thanks to Joe Mistachkin for detection and patch. [Bug 2688184]. +2011-03-09 Don Porter <dgp@users.sourceforge.net> -2009-02-20 Don Porter <dgp@users.sourceforge.net> + * generic/tclNamesp.c: Tighten the detector of nested [namespace code] + * tests/namespace.test: quoting that the quoted scripts function + properly even in a namespace that contains a custom "namespace" + command. [Bug 3202171] - * generic/tclPathObj.c: Fixed mistaken logic in TclFSGetPathType() - * tests/fileName.test: that assumed (not "absolute" => "relative"). - This is a false assumption on Windows, where "volumerelative" is - another possibility. [Bug 2571597]. + * doc/tclvars.n: Formatting fix. Thanks to Pat Thotys. -2008-02-06 Daniel Steffen <das@users.sourceforge.net> +2011-03-08 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tcl.h (Darwin): workaround conflict between deprecated tcl - panic macro and panic() function declaration in <mach/mach.h> header. + * generic/tclBasic.c: Fix gcc warnings: variable set but not used -2009-02-05 Don Porter <dgp@users.sourceforge.net> +2011-03-08 Don Porter <dgp@users.sourceforge.net> - * generic/tclStringObj.c: Added overflow protections to the - AppendUtfToUtfRep routine to either avoid invalid arguments and - crashes, or to replace them with controlled panics. [Bug 2561794] + * generic/tclInt.h: Remove TclMarkList() routine, an experimental + * generic/tclUtil.c: dead-end from the 8.5 alpha days. -2009-02-04 Don Porter <dgp@users.sourceforge.net> + * generic/tclResult.c (ResetObjResult): Correct failure to clear + invalid intrep. Thanks to Colin McDonald. [Bug 3202905] - * generic/tclStringObj.c (SetUnicodeObj): Corrected failure of - Tcl_SetUnicodeObj() to panic on a shared object. [Bug 2561488]. Also - factored out common code to reduce duplication. +2011-03-06 Don Porter <dgp@users.sourceforge.net> -2009-01-09 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() calls + * generic/tclCompile.c: with TclParseBackslash() where possible. + * generic/tclParse.c: + * generic/tclUtil.c: - * generic/tclStringObj.c (STRING_SIZE): Corrected failure to limit - memory allocation requests to the sizes that can be supported by - Tcl's memory allocation routines. [Bug 2494093]. + * generic/tclUtil.c (TclFindElement): Guard escape sequence scans + to not overrun the string end. [Bug 3192636] -2009-01-08 Don Porter <dgp@users.sourceforge.net> +2011-03-05 Don Porter <dgp@users.sourceforge.net> - * generic/tclStringObj.c (STRING_UALLOC): Added missing parens - required to get correct results out of things like - STRING_UALLOC(num + append). [Bug 2494093]. + * generic/tclParse.c (TclParseBackslash): Correct trunction checks in + * tests/parse.test: \x and \u substitutions. [Bug 3200987] -2008-12-04 Don Porter <dgp@users.sourceforge.net> +2011-01-26 Donal K. Fellows <dkf@users.sf.net> - * generic/tclIOUtil.c (Tcl_FSGetNormalizedPath): Added another - flag value TCLPATH_NEEDNORM to mark those intreps which need more - complete normalization attention for correct results. [Bug 2385549] + * doc/RegExp.3: [Bug 3165108]: Corrected documentation of description + of subexpression info in Tcl_RegExpInfo structure. -2008-12-03 Don Porter <dgp@users.sourceforge.net> +2011-01-25 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclFileName.c (TclDoGlob): One of the - Tcl_FSMatchInDirectory() calls did not have its return code - checked. Some VFS drivers can return TCL_ERROR, and when that's - not checked, the error message gets converted into a list of - matching files returned by [glob], with ridiculous results. + * generic/tclCkalloc.c: [Bug 3129448]: Possible over-allocation on + * generic/tclHash.c: 64-bit platforms, part 2, backported + * generic/tclProc.c: strcpy->memcpy change but not change in any + struct. -2008-12-01 Don Porter <dgp@users.sourceforge.net> +2011-01-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * generic/tclIO.c (TclFinalizeIOSubsystem): Revised latest commit to - something that doesn't crash the test suite. + * generic/tclExecute.c: [Bug 3138178]: Backport of Miguel's 2010-09-22 + fix on 8.6 branch (decache stack info wherever ::errorInfo may be + updated, for trace sanity). -2008-11-25 Andreas Kupries <andreask@activestate.com> +2011-01-19 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclIO.c (TclFinalizeIOSubsystem): Applied backport of - Alexandre Ferrieux's patch for [Bug 2270477] to prevent infinite - looping during finalization of channels not bound to - interpreters. + * tools/genStubs.tcl: Make sure to use CONST/VOID in stead of + * generic/tclIntDecls.h: const/void when appropriate. This allows to + * generic/tclIntPlatDecls.h:use const/void in the *.decls file always, + * generic/tclTomMathDecls.h:genStubs will do the right thing. -2008-11-23 Andreas Kupries <andreask@activestate.com> +2011-01-18 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclIO.c: Backport of fix for [Bug 2333466]. + * generic/tclBasic.c: Various mismatches between Tcl_Panic + * generic/tclCompCmds.c: format string and its arguments, + * generic/tclCompExpr.c: discovered thanks to [Bug 3159920] + * generic/tclPreserve.c: (Backported) + * generic/tclTest.c: -2008-11-04 Jeff Hobbs <jeffh@ActiveState.com> +2011-01-17 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclPort.h: remove the ../{win,unix}/ header dirs as the - build system already has it, and it confuses builds when used with - private headers installed. + * win/tcl.m4: handle --enable-64bit=ia64 for gcc. BACKPORT. + * win/configure: (autoconf-2.59) + * win/tclWin32Dll.c: [Patch 3059922]: fixes for mingw64 - gcc4.5.1 + * generic/tclIOCmd.c: [Bug 3148192]: Commands "read/puts" incorrectly + * tests/chanio.test: interpret parameters. Improved error-message + * tests/io.test regarding legacy form. + * tests/ioCmd.test -2008-09-25 Don Porter <dgp@users.sourceforge.net> +2011-01-15 Kevin B. Kenny <kennykb@users.sf.net> - * doc/global.n: Correct false claim about [info locals]. + * doc/tclvars.n: + * generic/tclStrToD.c: + * generic/tclUtil.c (Tcl_PrintDouble): + * tests/util.test (util-16.*): Restored full Tcl 8.4 compatibility + for the formatting of floating point numbers when $::tcl_precision + is not zero. Added compatibility tests to make sure that excess + trailing zeroes are suppressed for all eight major code paths. + [Bug 3157475] -2008-08-14 Don Porter <dgp@users.sourceforge.net> +2011-01-13 Miguel Sofer <msofer@users.sf.net> - * tests/fileName.test: Revise new tests for portability to case - insensitive filesystems. + * generic/tclExecute.c (GrowEvaluationStack): Off-by-one error in + sizing the new allocation - was ok in comment but wrong in the code. + Triggered by [Bug 3142026] which happened to require exactly one more + than what was in existence. BACKPORT. -2008-08-14 Daniel Steffen <das@users.sourceforge.net> +2011-01-03 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCompile.h: add support for debug logging of DTrace - * generic/tclBasic.c: 'proc', 'cmd' and 'inst' probes (does - _not_ require a platform with DTrace). + * tools/genStubs.tcl: Fix "make genstubs", which was broken + since 2010-11-30, the TclDoubleDigits backport. - * unix/Makefile.in: ensure Makefile shell is /bin/bash for - * unix/configure.in (SunOS): DTrace-enabled build on Solaris. - (followup to 2008-06-12) [Bug 2016584] +2010-12-31 Jan Nijtmans <nijtmans@users.sf.net> - * unix/tcl.m4 (SC_PATH_X): check for libX11.dylib in addition to - libX11.so et al. + * generic/tclHash.c: [Bug 3007895]: Tcl_(Find|Create)HashEntry + stub entries can never be called. They still cannot be called + (no change in functionality), but at least they now do + exactly the same as the Tcl_(Find|Create)HashEntry macro's, + so the confusion addressed in this Bug report is gone. + (Backported from Tcl 8.6) - * unix/configure: autoconf-2.13 +2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> -2008-08-13 Don Porter <dgp@users.sourceforge.net> + * unix/Makefile.in: Remove unwanted/obsolete 'ddd' target. - * generic/tclFileName.c: Fix for errors handling -types {} - * tests/fileName.test: option to [glob]. [Bug 1750300] - Thanks to Matthias Kraft and George Peter Staplin. +2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> -2008-08-11 Andreas Kupries <andreask@activestate.com> + * unix/Makefile.in: [Bug 2446711]: Remove 'allpatch' target. - * generic/tclProc.c (Tcl_ProcObjCmd): Fixed memory leak triggered - * tests/proc.test: by procbody::test::proc. See [Bug 2043636]. - Added a test case demonstrating the leak before the fix. Fixed a - few spelling errors in test descriptions as well. +2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> -2008-07-28 Andreas Kupries <andreask@activestate.com> + * unix/Makefile.in: Use 'rpmbuild', not 'rpm' [Bug 2537626]. - * generic/tclBasic.c: Added missing release of extended command - word index when deleting an interpreter (DeleteInterpProc). Added - missing ref count when creating an empty string as path (EvalEx). +2010-12-13 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCompile.c (TclInitCompileEnv): Made same change to - control flow as in TclEvalObjEx. Not needed while uplevel and - siblings go through the eval-direct code path, however if that - changes (like it did in 8.5+) better to have this in place instead - of re-searching why certain places are without absolute locations. + * unix/tcl.m4: Cross-compile support for Win and UNIX (backported) + * unix/configure: (autoconf-2.59) + * win/tcl.m4: + * win/configure.in: + * win/configure: (autoconf-2.59) - * tests/info.test: Added tests 38.*, exactly testing the tracking - of location for uplevel scripts, and made the testsuite fully - usable with and without -singleproc 1. +2010-12-12 Stuart Cassoff <stwo@users.sourceforge.net> -2008-07-25 Daniel Steffen <das@users.sourceforge.net> + * unix/tcl.m4: Better building on OpenBSD. + * unix/configure: (autoconf-2.59) - * tests/info.test: Add !singleTestInterp constraint to various tests; - (info-22.8, info-23.0): switch to glob matching to avoid sensitivity - to tcltest.tcl line number changes. [Bug 1605269] +2010-12-10 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2008-07-24 Andreas Kupries <andreask@activestate.com> + * generic/tclIO.c: [backport] Make sure [fcopy -size ... -command ...] always + * tests/io.test: calls the callback asynchronously, even for size zero. - * tests/info.test: Tests 38.* added, exactly testing the tracking - of location for uplevel scripts. +2010-12-03 Jeff Hobbs <jeffh@ActiveState.com> -2008-07-23 Andreas Kupries <andreask@activestate.com> + * generic/tclUtil.c (TclReToGlob): add extra check for multiple + inner *s that leads to poor recursive glob matching, defer to + original RE instead. tclbench RE var backtrack. - * generic/tclBasic.c: Modified TclArgumentGet to reject pure lists - * generic/tclCmdIL.c: immediately, without search. Reworked setup - * generic/tclCompile.c: of eoFramePtr, doesn't need the line - * tests/info.test: information, more sensible to have everything - on line 1 when eval'ing a pure list. Updated the users of the line - information to special case this based on the frame type (i.e. - TCL_LOCATION_EVAL_LIST). Added a testcase demonstrating the new - behaviour. +2010-12-01 Kevin B. Kenny <kennykb@acm.org> -2008-07-22 Andreas Kupries <andreask@activestate.com> + * generic/tclStrToD.c (SetPrecisionLimits, TclDoubleDigits): + Added meaningless initialization of 'i', 'ilim' and 'ilim1' + to silence warnings from the C compiler about possible use of + uninitialized variables, Added a panic to the 'switch' that + assigns them, to assert that the 'default' case is impossible. + [Bug 3124675] - * generic/tclBasic.c: Added missing function comments. - - * generic/tclCompile.c: Made the new TclEnterCmdWordIndex - * generic/tclCompile.h: static. +2010-11-30 Andreas Kupries <andreask@activestate.com> - * generic/tclBasic.c: Reworked the handling of bytecode literals - * generic/tclCompile.c: for #280 to fix the abysmal performance - * generic/tclCompile.h: for deep recursion, replaced the linear - * generic/tclExecute.c: search through the whole stack with - * generic/tclInt.h: another hashtable and simplified the data - structure used by the compiler (array instead of hashtable). - Incidentially this also fixes the memory leak reported via [Bug - 2024937]. + * generic/tclInt.decls: Backport of Kevin B. Kenny's work on + * generic/tclInt.h: the Tcl Head, with help from Jeff Hobbs. + * generic/tclStrToD.c: + * generic/tclTest.c: + * generic/tclTomMath.decls: + * generic/tclUtil.c: + * tests/util.test: + * unix/Makefile.in: + * win/Makefile.in: + * win/makefile.vc: Rewrite of Tcl_PrintDouble and TclDoubleDigits + that (a) fixes a severe performance problem with floating point + shimmering reported by Karl Lehenbauer, (b) allows TclDoubleDigits + to generate the digit strings for 'e' and 'f' format, so that it + can be used for tcl_precision != 0 (and possibly later for [format]), + (c) fixes [Bug 3120139] by making TclPrintDouble inherently + locale-independent, (d) adds test cases to util.test for + correct rounding in difficult cases of TclDoubleDigits where fixed- + precision results are requested. (e) adds test cases to util.test for + the controversial aspects of [Bug 3105247]. As a side effect, two + more modules from libtommath (bn_mp_set_int.c and bn_mp_init_set_int.c) + are brought into the build, since the new code uses them. -2008-07-21 Andreas Kupries <andreask@activestate.com> + * generic/tclIntDecls.h: + * generic/tclStubInit.c: + * generic/tclTomMathDecls.h: Regenerated. - * generic/tclBasic.c: Extended the existing TIP #280 system (info - * generic/tclCmdAH.c: frame), added the ability to track the - * generic/tclCompCmds.c: absolute location of literal procedure - * generic/tclCompile.c: arguments, and making this information - * generic/tclCompile.h: available to uplevel, eval, and - * generic/tclInterp.c: siblings. This allows proper tracking of - * generic/tclInt.h: absolute location through custom (Tcl-coded) - * generic/tclNamesp.c: control structures based on uplevel, etc. - * generic/tclProc.c: +2010-11-30 Jeff Hobbs <jeffh@ActiveState.com> -2008-07-07 Andreas Kupries <andreask@activestate.com> + * generic/tclInt.decls, generic/tclInt.h, generic/tclIntDecls.h: + * generic/tclStubInit.c: TclFormatInt restored at slot 24 + * generic/tclUtil.c (TclFormatInt): restore TclFormatInt func from + 2005-07-05 macro-ization. Benchmarks indicate it is faster, as a + key int->string routine (e.g. int-indexed arrays). - * generic/tclCmdIL.c (InfoFrameCmd): Fixed unsafe idiom of setting - the interp result found by Don Porter. +2010-11-23 Andreas Kupries <andreask@activestate.com> -2008-07-04 Joe English <jenglish@users.sourceforge.net> + * generic/tclVar.c (VarHashInvalidateEntry): Removed obsolete + patch for AIX defining this macro as function. This is not + necessary anymore. See ChangeLog entry 2010-07-28 (Bug 3037525) + for the actual bug and fix the patch was a workaround for. - * generic/tclEncoding.c(UtfToUtfProc): Avoid unwanted sign extension - when converting incomplete UTF-8 sequences. See [Bug 1908443] for - details. +2010-11-19 Jan Nijtmans <nijtmans@users.sf.net> -2008-07-03 Don Porter <dgp@users.sourceforge.net> + * generic/tclInterp.c: fix gcc warning: passing argument 3 of + 'Tcl_GetIndexFromObj' discards qualifiers from pointer target type + * generic/tclWinInit.c: fix gcc warning: dereferencing pointer + 'oemId' does break strict-aliasing rules + * win/tclWin32Dll.c: fix gcc warnings: unused variable 'registration' + * win/tclWinChan.c: + * win/tclWinFCmd.c: + * win/configure.in: Allow cross-compilation by default. (backported) + * win/tcl.m4: Use -pipe for gcc on win32 (backported) + * win/configure: (regenerated) - * library/package.tcl: Removed [file readable] testing from - [tclPkgUnknown] and friends. We find out soon enough whether a - file is readable when we try to [source] it, and not testing - before allows us to workaround the bugs on some common filesystems - where [file readable] lies to us. [Patch 1969717] +2010-11-18 Donal K. Fellows <dkf@users.sf.net> -2008-06-28 Don Porter <dgp@users.sourceforge.net> + * doc/file.n: [Bug 3111298]: Typofix. - * generic/tclIOUtil.c: Plug memory leak in latest commit. Thanks - Rolf Ade for detecting and Dan Steffen for the fix [Bug 2004654]. +2010-11-16 Jan Nijtmans <nijtmans@users.sf.net> -2008-06-23 Don Porter <dgp@users.sourceforge.net> + * generic/tclPlatDecls.h: [Bug 3110161]: Extensions using TCHAR don't + compile on VS2005 SP1 - * generic/tclIOUtil.c: Fixed bug in Tcl_GetTranslatedPath() when - operating on the "Special path" variant of the "path" Tcl_ObjType - intrep. A full normalization was getting done, in particular, coercing - relative paths to absolute, contrary to what the function of - producing the "translated path" is supposed to do. [Bug 1972879]. +2010-11-15 Andreas Kupries <andreask@activestate.com> -2008-06-20 Don Porter <dgp@users.sourceforge.net> + * doc/interp.n: [Bug 3081184]: TIP #378 backport. + * doc/tclvars.n: Performance fix for TIP #280. + * generic/tclBasic.c: + * generic/tclExecute.c: + * generic/tclInt.h: + * generic/tclInterp.c: + * tests/info.test: + * tests/interp.test: - * tests/binary.test: Corrected flawed tests revealed by a -debug 1 - * tests/io.test: -singleproc 1 test suite run. +2010-11-03 Kevin B. Kenny <kennykb@acm.org> -2008-06-18 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompCmds.c (TclCompileCatchCmd): + * tests/compile.test (compile-3.6): [Bug 3098302]: Reworked the + compilation of the [catch] command so as to avoid placing any code + that might throw an exception (specifically, any initial substitutions + or any stores to result or options variables) between the BEGIN_CATCH + and END_CATCH but outside the exception range. Added a test case that + panics on a stack smash if the change is not made. - * generic/tclParseExpr.c: Disabled attempts to support [expr] - functions named eq(...) or ne(...). Any attempts to use such - functions were panicking. [Bug 1971879]. +2010-11-01 Stuart Cassoff <stwo@users.sourceforge.net> -2008-06-16 Andreas Kupries <andreask@activestate.com> + * library/safe.tcl: Improved handling of non-standard module + * tests/safe.test: path lists, empty path lists in particular. - * generic/tclCmdIL.c (InfoFrameCmd): Backport of fix made on the - * tests/info.test: head branch :: Moved the code looking up the - information for key 'proc' out of the TCL_LOCATION_BC branch to - after the switch, this is common to all frame types. Updated the - testsuite to match. This was exposed by the 2008-06-08 commit - (Miguel), switching uplevel from direct eval to compilation. Fixes - [Bug 1987851]. +2010-11-01 Kevin B. Kenny <kennykb@acm.org> -2008-06-12 Andreas Kupries <andreask@activestate.com> + * library/tzdata/Asia/Hong_Kong: + * library/tzdata/Pacific/Apia: + * library/tzdata/Pacific/Fiji: Olson's tzdata2010o. - * generic/tclCmdIL.c (InfoFrameCmd): TIP #280 conditional - feature. Added checks to validate HashEntry and HashTable - information gotten from Command structures. This seems to be - needed to handle structures managed by Itcl. +2010-10-23 Jan Nijtmans <nijtmans@users.sf.net> -2008-06-12 Daniel Steffen <das@users.sourceforge.net> + * tools/uniParse.tcl: [Bug 3085863]: tclUniData 9 years old + * tools/uniClass.tcl: Upgrade everything to Unicode 6.0, except + * tests/utf.test: non-BMP characters > 0xFFFF + * generic/tclUniData.c: (re-generated) + * generic/regc_locale.c:(re-generated) + * generic/regcomp.c: fix comment + * win/rules.vc Update for VS10 - * unix/Makefile.in: add complete deps on tclDTrace.h. +2010-10-09 Miguel Sofer <msofer@users.sf.net> - * unix/Makefile.in: clean generated tclDTrace.h file. - * unix/configure.in (SunOS): fix static DTrace-enabled build. + * generic/tclExecute.c: fix overallocation of exec stack in TEBC + (mixing numwords and numbytes) - * unix/tcl.m4 (SunOS-5.11): fix 64bit amd64 support with gcc & Sun cc. - * unix/configure: autoconf-2.13 +2010-10-01 Jeff Hobbs <jeffh@ActiveState.com> -2008-05-26 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c (EvalStatsCmd): change 'evalstats' to + return data to interp by default, or if given an arg, use that as + filename to output to (accepts 'stdout' and 'stderr'). + Fix output to print used inst count data. + * generic/tclCkalloc.c: change TclDumpMemoryInfo sig to allow + * generic/tclInt.decls: objPtr as well as FILE* as output. + * generic/tclIntDecls.h: - * tests/io.test (io-53.9): need to close chan before removing file. +2010-09-24 Andreas Kupries <andreask@activestate.com> -2008-05-23 Andreas Kupries <andreask@activestate.com> + * tclWinsock.c: [Bug 3056775]: Fixed race condition between thread + and internal co-thread access of a socket's structure because of + the thread not using the socketListLock in TcpAccept(). Added + documentation on how the module works to the top. - * win/tclWinChan.c (FileWideSeekProc): Accepted a patch by - Alexandre Ferrieux <ferrieux@users.sourceforge.net> to fix the - [Bug 1965787]. 'tell' now works for locations > 2 GB as well - instead of going negative. +2010-09-23 Don Porter <dgp@users.sourceforge.net> - * generic/tclIO.c (Tcl_SetChannelBufferSize): Accepted a patch by - * tests/io.test: Alexandre Ferrieux <ferrieux@users.sourceforge.net> - to fix the [Bug 1969953]. Buffersize outside of the supported - range are now clipped to nearest boundary instead of ignored. + * generic/tclCmdAH.c: Fix cases where value returned by + * generic/tclEvent.c: Tcl_GetReturnOptions() was leaked. + * generic/tclMain.c: Thanks to Jeff Hobbs for discovery of the + anti-pattern to seek and destroy. -2008-04-26 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> +2010-09-19 Donal K. Fellows <dkf@users.sf.net> - * generic/tclAsync.c: Tcl_AsyncDelete(): panic if attempt - to locate handler token fails. Happens when some other - thread attempts to delete somebody else's token. + * doc/file.n (file readlink): [Bug 3070580]: Typofix. - Also, panic early if we find out the wrong thread attempting - to delete the async handler (common trap). As, only the one - that created the handler is allowed to delete it. +2010-09-10 Donal K. Fellows <dkf@users.sf.net> -2008-04-17 Andreas Kupries <andreask@activestate.com> + * doc/regsub.n: [Bug 3063568]: Fix for gotcha in example due to Tcl's + special handling of backslash-newline. Makes example slightly less + pure, but more useful. - *** 8.4.19 TAGGED FOR RELEASE *** +2010-09-08 Andreas Kupries <andreask@activestate.com> - * generic/tclCompExpr.c (CompileMathFuncCall): Added - * tests/compExpr.test (compExpr-5.10): Tcl_ResetResult before - appending error message, to clear out possible sharing. Added test - case demonstrating the crash (abort on shared object) without the - fix. + *** 8.5.9 TAGGED FOR RELEASE *** -2008-04-15 Andreas Kupries <andreask@activestate.com> + * doc/tm.n: Added underscore to the set of characters accepted in + module names. This is true for quite some time in the code, this + change catches up the documentation. - * generic/tclIO.c (CopyData): Applied another patch by Alexandre - * io.test (io-53.8a): Ferrieux <ferrieux@users.sourceforge.net>, - to shift EOF handling to the async part of the command if a - callback is specified, should the channel be at EOF already when - fcopy is called. Testcase by myself. +2010-09-08 Don Porter <dgp@users.sourceforge.net> -2008-04-14 Kevin B. Kenny <kennykb@acm.org> + * changes: Update for 8.5.9 release. - * unix/tclUnixTime.c (TclpGetClicks, Tcl_GetTime): Removed - obsolete use of 'struct timezone' in the call to 'gettimeofday'. - [Bug 1942197]. - -2008-04-14 Don Porter <dgp@users.sourceforge.net> + * win/tclWin32Dll.c: #ifdef protections to permit builds with + * win/tclWinChan.c: mingw on amd64 systems. Thanks to "mescalinum" + * win/tclWinFCmd.c: for reporting and testing. - * generic/tclExecute.c: Plug memory leak introduced in the - 2008-03-07 commit. [Bug 1940433] +2010-09-06 Stuart Cassoff <stwo@users.sourceforge.net> -2008-04-11 Don Porter <dgp@users.sourceforge.net> + * unix/configure.in, generic/tclIOUtil.c (Tcl_Stat): Updated so that + we do not assume that all unix systems have the POSIX blkcnt_t type, + since OpenBSD apparently does not. Backported from HEAD (2010-02-16). + * unix/configure: autoconf-2.59 - * README: Bump version number to 8.4.19 - * generic/tcl.h: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/README.binary: - * win/configure.in: +2010-09-02 Andreas Kupries <andreask@activestate.com> - * unix/configure: autoconf-2.13 - * win/configure: + * doc/glob.n: Fixed documentation ambiguity regarding the handling + of -join. - * changes: updates for 8.4.19 release. + * library/safe.tcl (::safe::AliasGlob): Fixed another problem, the + option -join does not stop option processing in the core builtin, + so the emulation must not do that either. -2008-04-10 Andreas Kupries <andreask@activestate.com> +2010-09-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> - * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Keeping check for negative - values, changed to not be an error, but behave like the special - value -1 (copy all, default). + * library/safe.tcl (::safe::AliasGlob): Moved the command + extending the actual glob command with a -directory flag to when + we actually have a proper untranslated path, - * tests/iocmd.test (iocmd-15.{12,13}): Removed. +2010-09-01 Don Porter <dgp@users.sourceforge.net> - * tests/io.test (io-52.5{,a,b}): Reverted last change, added - comment regarding the meaning of -1, added two more testcases for - other negative values, and input wrapped to negative. + * changes: Update for 8.5.9 release. -2008-04-09 Andreas Kupries <andreask@activestate.com> +2010-09-01 Andreas Kupries <andreask@activestate.com> - * tests/io.test (io-52.5): Removed '-size -1' from test, does not - seem to have any bearing, and was an illegal value. Test case is - not affected by the value of -size, test flag restoration and that - everything was properly copied. + * generic/tclExecute.c: [Bug 3057639]. Applied patch by Jeff to + * generic/tclVar.c: make the behaviour of lappend in bytecompiled + * tests/append.test: mode consistent with direct-eval and 'append' + * tests/appendComp.test: generally. Added tests (append*-9.*) + showing the difference. + ***POTENTIAL INCOMPATIBILITY*** - * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Added checking of -size - * tests/ioCmd.test (iocmd-15.{13,14}): value to reject negative - values, and values overflowing 32-bit signed. [Bug 1557855]. Basic - patch by Alexandre Ferrieux <ferrieux@users.sourceforge.net>, with - modifications from me to separate overflow from true negative - value. Extended testsuite. +2010-09-01 Donal K. Fellows <dkf@users.sf.net> -2008-04-08 Andreas Kupries <andreask@activestate.com> + * tools/tcltk-man2html.tcl: Improve handling of cross-links for + options between Ttk manual pages. - * tests/io.test (io-53.8,53.9,53.10): Backported das' fix of typo - and quoting for spaces in builddir path. - -2008-04-07 Andreas Kupries <andreask@activestate.com> + * doc/Tcl.n: Avoid nroff hazards when generating documentation. - * tests/io.test (io-53.10): Testcase for bi-directionaly fcopy. - * generic/tclIO.c: Additional changes to data structures for fcopy - * generic/tclIO.h: and channels to perform proper cleanup in case - of a channel having two background copy operations running as is - now possible. +2010-08-31 Andreas Kupries <andreask@activestate.com> - * generic/tclIO.c (BUSY_STATE, CheckChannelErrors, - TclCopyChannel): New macro, and the places using it. This change - allows for bi-directional fcopy on channels. [Bug 1350564]. - Thanks to Alexandre Ferrieux <ferrieux@users.sourceforge.net> - for the patch. + * win/tcl.m4: Applied patch by Jeff fixing issues with the + manifest handling on Win64. + * win/configure: Regenerated. - * tests/io.test (io-53.9): Made test cleanup robust against the - possibility of slow process shutdown on Windows. Backported from - Kevin Kenny's change to the same test on the 8.5 and head - branches. +2010-08-29 Donal K. Fellows <dkf@users.sf.net> -2008-04-04 Andreas Kupries <andreask@activestate.com> + * doc/dict.n: [Bug 3046999]: Corrected cross reference to array + manpage to refer to (correct) existing subcommand. - * tests/io.test (io-53.9): Added testcase for [Bug 780533], based - on Alexandre's test script. Also fixed problem with timer in - preceding test, was not canceled properly in the ok case. +2010-08-26 Jeff Hobbs <jeffh@ActiveState.com> -2008-04-03 Andreas Kupries <andreask@activestate.com> + * unix/configure, unix/tcl.m4: SHLIB_LD_LIBS='${LIBS}' for OSF1-V*. + Add /usr/lib64 to set of auto-search dirs. [Bug 1230554] + (SC_PATH_X): Correct syntax error when xincludes not found. - * generic/tclIO.c (CopyData): Applied patch [Bug 1932639] to - * tests/io.test: prevent fcopy from calling -command synchronously - the first time. Thanks to Alexandre Ferrieux - <ferrieux@users.sourceforge.net> for report and patch. + * win/Makefile.in (VC_MANIFEST_EMBED_DLL VC_MANIFEST_EMBED_EXE): + * win/configure, win/configure.in, win/tcl.m4: SC_EMBED_MANIFEST + macro and --enable-embedded-manifest configure arg added to + support manifest embedding where we know the magic. Help prevents + DLL hell with MSVC8+. -2008-04-02 Andreas Kupries <andreask@activestate.com> +2010-08-24 Don Porter <dgp@users.sourceforge.net> - * generic/tclIO.c (CopyData): Applied patch for the fcopy problem - [Bug 780533], with many thanks to Alexandre Ferrieux - <ferrieux@users.sourceforge.net> for tracking it down and - providing a solution. Still have to convert his test script into - a proper test case. + * changes: Update for 8.5.9 release. -2008-03-27 Daniel Steffen <das@users.sourceforge.net> +2010-08-23 Kevin B. Kenny <kennykb@acm.org> - * unix/tcl.m4 (SunOS-5.1x): fix 64bit support for Sun cc. [Bug 1921166] + * library/tzdata/Africa/Cairo: + * library/tzdata/Asia/Gaza: Olson's tzdata2010l. - * unix/dltest/Makefile.in: support use of LDFLAGS in SHLIB_LD. +2010-08-19 Donal K. Fellows <dkf@users.sf.net> - * unix/configure: autoconf-2.13 + * generic/tclTrace.c (TraceExecutionObjCmd, TraceCommandObjCmd) + (TraceVariableObjCmd): [Patch 3048354]: Use memcpy() instead of + strcpy() to avoid buffer overflow; we have the correct length of data + to copy anyway since we've just allocated the target buffer. -2008-03-24 Pat Thoyts <patthoyts@users.sourceforge.net> +2010-08-15 Donal K. Fellows <dkf@users.sf.net> - * generic/tclBinary.c: bug #1923966 - crash in binary format - * tests/binary.test: Added tests for the above crash condition. + * generic/tclProc.c (ProcWrongNumArgs): [Bug 3045010]: Make the + handling of passing the wrong number of arguments to [apply] somewhat + less verbose when a lambda term is present. -2008-03-11 Daniel Steffen <das@users.sourceforge.net> +2010-08-12 Donal K. Fellows <dkf@users.sf.net> - * macosx/tclMacOSXNotify.c: avoid using CoreFoundation after fork() on - Darwin 9 even when TclpCreateProcess() uses vfork(). + * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): [Bug 2826551, Patch 2948425]: + Backport of updates to make handling of RE line anchors correct. -2008-03-07 Don Porter <dgp@users.sourceforge.net> +2010-08-11 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclExecute.c (Tcl_ExprObj): Revised expression bytecode - compiling so that bytecodes invalid due to changing context or due - to the difference between expressions and scripts are not reused. - [Bug 1899164]. + * unix/ldAix: Remove ancient (pre-4.2) AIX support + * unix/configure: regen with ac-2.59 + * unix/configure.in, unix/tclConfig.sh.in, unix/Makefile.in: + * unix/tcl.m4 (AIX): Remove the need for ldAIX, replace with + -bexpall/-brtl. Remove TCL_EXP_FILE (export file) and other baggage + that went with it. Remove pre-4 AIX build support. - * generic/tclTest.c: Backport the [testexprlongobj] testing command. +2010-08-10 Jeff Hobbs <jeffh@ActiveState.com> - * tests/execute.test (execute-6.8): Added tests checking that - bytecode is invalidates in the right situations. + * generic/tclUtil.c (TclByteArrayMatch): Patterns may not be + null-terminated, so account for that. -2008-03-03 Reinhard Max <max@suse.de> +2010-08-05 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixChan.c: Fix mark and space parity on Linux, which - uses CMSPAR instead of PAREXT. + * changes: Update for 8.5.9 release. -2008-02-27 Pat Thoyts <patthoyts@users.sourceforge.net> +2010-08-04 Jeff Hobbs <jeffh@ActiveState.com> - * library/http/pkgIndex.tcl: Backported 2.5.5 changes from - * library/http/http.tcl: 8.5 version. - * doc/http.n: Document the meta accessor. + * unix/tclUnixFCmd.c: Adjust license header as per + ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change -2008-02-26 Jeff Hobbs <jeffh@ActiveState.com> + * license.terms: Fix DFARs note for number-adjusted rights clause - * generic/tclIOCmd.c (Tcl_GetsObjCmd): do not reuse resultObj as - it may be shared (crash condition). - -2008-02-22 Pat Thoyts <patthoyts@users.sourceforge.net> - - * library/http/pkgIndex.tcl: Set version 2.5.4 - * library/http/http.tcl: Fix for bug #1818565. Always check that - the state array exists in the http::status command. + * win/tclWin32Dll.c (asciiProcs, unicodeProcs): + * win/tclWinLoad.c (TclpDlopen): 'load' use LoadLibraryEx with + * win/tclWinInt.h (TclWinProcs): LOAD_WITH_ALTERED_SEARCH_PATH to + prefer dependent DLLs in same dir as loaded DLL. + ***POTENTIAL INCOMPATIBILITY*** -2008-02-06 Don Porter <dgp@users.sourceforge.net> + * win/Makefile.in (%.${OBJEXT}): better implicit rules support - *** 8.4.18 TAGGED FOR RELEASE *** +2010-08-04 Don Porter <dgp@users.sourceforge.net> - * README: Bump version number to 8.4.18 - * generic/tcl.h: + * generic/tcl.h: Bump to 8.5.9 for release. + * library/init.tcl: * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: - * win/README.binary: * win/configure.in: + * README: - * unix/configure: autoconf-2.13 + * unix/configure: autoconf-2.59 * win/configure: - * changes: updates for 8.4.18 release. - -2008-02-02 Daniel Steffen <das@users.sourceforge.net> - - * unix/configure.in (Darwin): correct Info.plist year substitution in - non-framework builds. - - * unix/configure: autoconf-2.13 - -2008-01-30 Miguel Sofer <msofer@users.sf.net> - - * generic/tclInterp.c (Tcl_GetAlias): fix for [Bug 1882373] - -2008-01-13 Jeff Hobbs <jeffh@ActiveState.com> - - * win/tclWinSerial.c (SerialCloseProc, TclWinOpenSerialChannel): - use critical section for read & write side. [Bug 1353846] (newman) - -2007-12-31 Don Porter <dgp@users.sourceforge.net> - - *** 8.4.17 TAGGED FOR RELEASE *** - - * changes: updates for 8.4.17 release. - * doc/filename.n: Typo - -2007-12-18 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * generic/regguts.h, generic/regc_color.c, generic/regc_nfa.c: - Fixes for problems created when processing regular expressions that - generate very large automata. An enormous number of thanks to Will - Drewry <wad@google.com>, Tavis Ormandy <taviso@google.com>, and Tom - Lane <tgl@sss.pgh.pa.us> from the Postgresql crowd for their help in - tracking these problems down. [Bug 1810264] - -2007-12-14 Jeff Hobbs <jeffh@ActiveState.com> - - * win/README: updated notes - -2007-12-14 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - - * unix/tclUnixCompat.c (TclpGetHostByName): Really applied - the change noted on 2007-11-13 by dkf below. + * changes: Update for 8.5.9 release. -2007-12-13 Jeff Hobbs <jeffh@ActiveState.com> +2010-08-04 Andreas Kupries <andreask@activestate.com> - * generic/tclIOUtil.c (TclGetOpenMode): Only set the O_APPEND flag - * tests/ioUtil.test (ioUtil-4.1): on a channel for the 'a' - mode and not for 'a+'. [Bug 1773127] (backport from HEAD) + * generic/tclIORChan.c: [Bug 3034840]: Fixed reference counting + * tests/ioCmd.test: in InvokeTclMethod and callers. -2007-12-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-08-03 Andreas Kupries <andreask@activestate.com> - * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Prevent shimmering crash - when -exact and -integer/-real are mixed. [Bug 1844789] + * tests/var.test (var-19.1): [Bug 3037525]: Added test demonstrating + the local hashtable deletion crash and fix. -2007-11-28 Jeff Hobbs <jeffh@ActiveState.com> + * tests/info.test (info-39.1, test_info_frame): Changed absolute to + relative frame adressing to handle difference between testing with + -singleproc 1 vs. the default -singleproc 0. Plus comment fix. The + test and issue are not relevant to the trunk, forward porting is not + required. - * win/tclWinSock.c (Tcl_GetHostName): update to previous fix to - set hostname length appropriately, clean up check overall. +2010-08-03 Don Porter <dgp@users.sourceforge.net> -2007-11-27 Don Porter <dgp@users.sourceforge.net> + * changes: Update for 8.5.9 release. - * win/tclWinSock.c: Add missing encoding conversion of the - [info hostname] value from the system encoding to Tcl's internal - encoding. This is important now that ICANN no longer limits host - names to ASCII. [Bug 1823552] +2010-08-02 Kevin B. Kenny <kennykb@users.sf.net> -2007-11-26 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * library/tzdata/America/Bahia_Banderas: + * library/tzdata/Pacific/Chuuk: + * library/tzdata/Pacific/Pohnpei: + * library/tzdata/Africa/Cairo: + * library/tzdata/Europe/Helsinki: + * library/tzdata/Pacific/Ponape: + * library/tzdata/Pacific/Truk: + * library/tzdata/Pacific/Yap: Olson's tzdata2010k. - * generic/tclThread.c: Back-port locking changes from Tcl8.5 - in Tcl_Mutex/ConditionFinlize. Now we properly master-lock - the finalization of sync primitives. +2010-07-28 Miguel Sofer <msofer@users.sf.net> -2007-11-15 Don Porter <dgp@users.sourceforge.net> + * generic/tclVar.c: [Bug 3037525]: lose fickle optimisation in + TclDeleteVars (used for runtime-created locals) that caused crashes. - * generic/regc_nfa.c: Fixed infinite loop in the regexp compiler - * generic/regcomp.c: [Bug 1810038]. Corrected looping logic in - * tests/regexp.test: fixempties() to avoid wasting time walking a - list of dead states [Bug 1832612]. Convert optst() from expensive - no-op to a cheap no-op. Improve newline usage in debug output. +2010-07-25 Jan Nijtmans <nijtmans@users.sf.net> -2007-11-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclInt.h: [Bug 3030870]: Make itcl 3.x built with pre-8.6 + * generic/tclBasic.c: work in 8.6 revert tclInt.h to what it was + before, and relax the relation between Tcl_CallFrame and CallFrame. - * unix/tclUnixCompat.c (TclpGetHostByName): The six-argument form of - getaddressbyname_r() uses the fifth argument to indicate whether the - lookup succeeded or not on at least one platform. [Bug 1618235] +2010-07-17 Jan Nijtmans <nijtmans@users.sf.net> -2007-10-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tcl.h: [Bug 3030870]: Make itcl 3.x built with pre-8.6 + * generic/tclInt.h: work in 8.6 - * generic/regc_lex.c (lexescape): Ensure that backreference numbers - can't overflow a signed int in a way that breaks things. [Bug 1810264] +2010-07-02 Donal K. Fellows <dkf@users.sf.net> -2007-10-15 Miguel Sofer <msofer@users.sf.net> + * generic/tclExecute.c (IllegalExprOperandType): [Bug 3024379]: Made + sure that errors caused by an argument to an operator being outside + the domain of the operator all result in ::errorCode being ARITH + DOMAIN and not NONE. - * generic/tclParse.c (Tcl_ParseBraces): fix for possible read - after the end of buffer, [Bug 1813528] (Joe Mistachkin). +2010-07-02 Jan Nijtmans <nijtmans@users.sf.net> -2007-10-03 Miguel Sofer <msofer@users.sf.net> + * generic/tclIntDecls.h: [Bug 803489]: Tcl_FindNamespace problem in + the Stubs table. - * generic/tclObj.c (Tcl_FindCommandFromObj): fix finding a deleted - command; cannot trigger this from Tcl itself, but crash reported - on xotcl. This check is new to 8.4 but exists in 8.5, so this is a - backport or something. Thanks Gustaf Neumann. +2010-07-01 Donal K. Fellows <dkf@users.sf.net> -2007-10-02 Jeff Hobbs <jeffh@ActiveState.com> + * doc/mathop.n: [Bug 3023165]: Fix typo that was preventing proper + rendering of the exclusive-or operator. - * generic/tcl.h (Tcl_DecrRefCount): Update change from 2006-05-29 - to make macro more warning-robust in unbraced if code. +2010-06-28 Jan Nijtmans <nijtmans@users.sf.net> -2007-10-02 Don Porter <dgp@users.sourceforge.net> + * generic/tclPosixStr.c: [Bug 3019634]: errno.h and tclWinPort.h have + conflicting definitions. - * README: Bump version number to 8.4.17 - * generic/tcl.h: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/README.binary: - * win/configure.in: +2010-06-22 Donal K. Fellows <dkf@users.sf.net> - * unix/configure: autoconf-2.13 - * win/configure: + * generic/tclCmdIL.c (Tcl_LsetObjCmd): [Bug 3019351]: Corrected wrong + args message. -2007-09-20 Don Porter <dgp@users.sourceforge.net> +2010-06-18 Donal K. Fellows <dkf@users.sf.net> - *** 8.4.16 TAGGED FOR RELEASE *** + * library/init.tcl (auto_execok): [Bug 3017997]: Add .cmd to the + default list of extensions that we can execute interactively. - * doc/load.n: Backport corrected example. +2010-06-16 Jan Nijtmans <nijtmans@users.sf.net> -2007-09-19 Don Porter <dgp@users.sourceforge.net> + * tools/loadICU.tcl: [Bug 3016135]: Traceback using clock format + * library/msgs/he.msg: with locale of he_IL - * unix/Makefile.in: Update `make dist` so that tclDTrace.d is - included in the source code distribution. +2010-06-09 Andreas Kupries <andreask@activestate.com> - * generic/tclPkg.c: Backport fix for [1573844] to the - * tests/pkg.test: TCL_TIP268 sections. + * library/platform/platform.tcl: Added OSX Intel 64bit + * library/platform/pkgIndex.tcl: Package updated to version 1.0.9. + * unix/Makefile.in: + * win/Makefile.in: -2007-09-18 Don Porter <dgp@users.sourceforge.net> +2010-05-26 Donal K. Fellows <dkf@users.sf.net> - * changes: updates for 8.4.16 release. + * doc/socket.n: [Bug 3007442]: Server sockets never took a host + argument, so the list of options must precede the port argument. -2007-09-15 Daniel Steffen <das@users.sourceforge.net> +2010-05-25 Jan Nijtmans <nijtmans@users.sf.net> - * unix/tcl.m4 (SunOS-5.1x): replace direct use of '/usr/ccs/bin/ld' - in SHLIB_LD by 'cc' compiler driver. - * unix/configure: autoconf-2.13 + * unix/tclUnixPort.h: [Bug 2991415]: tclport.h #included before + * win/tclWinPort.h: limits.h + * generic/tclInt.h: -2007-09-14 Daniel Steffen <das@users.sourceforge.net> +2010-05-21 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclDTrace.d (new file): add DTrace provider for Tcl; allows - * generic/tclCompile.h: tracing of proc and command entry & - * generic/tclBasic.c: return, bytecode execution, object - * generic/tclExecute.c: allocation and more; with essentially - * generic/tclInt.h: zero cost when tracing is inactive; - * generic/tclObj.c: enable with --enable-dtrace configure - * generic/tclProc.c: arg (disabled by default, will only - * unix/Makefile.in: enable if DTrace is present). - * unix/configure.in: [Patch 1793984] + * tools/installData.tcl: Make sure that copyDir only receives + normalized paths. Backported from trunk. + * generic/tclPlatDecls.h: Fix <tchar.h> inclusion for CYGWIN. + Backported from trunk (although for trunk this was moved to + tclWinPort.h) + * generic/tclPathObj.c: Fix Tcl_SetStringObj usage for CYGWIN. This + function can only be used with unshared objects. This causes a crash + on CYGWIN. (backported from trunk) + * generic/tclFileName.c: Don't declare cygwin_conv_to_win32_path here + * win/tclWinChan.c: Fix various minor other gcc warnings, like + * win/tclWinConsole.c: signed<->unsigned mismatch. Backported from + * win/tclWinDde.c: trunk. + * win/tclWinNotify.c: + * generic/tclStrToD.c: [Bug 3005233]: fix for build on OpenBSD vax - * macosx/Makefile: enable DTrace support. +2010-05-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * unix/configure: autoconf-2.13 + * generic/tclDictObj.c: Backport of fix for [Bug 3004007], EIAS + * tests/dict.test: violation in list-dict conversions. -2007-09-11 Don Porter <dgp@users.sourceforge.net> - - * library/tcltest/tcltest.tcl: Accept underscores and colons in - * library/tcltest/pkgIndex.tcl: constraint names. Properly handle - constraint expressions that return non-numeric boolean results like - "false". Bump to tcltest 2.2.9. [Bug 1772989; RFE 1071322] +2010-05-07 Andreas Kupries <andreask@activestate.com> -2007-09-11 Pat Thoyts <patthoyts@users.sourceforge.net> + * library/platform/platform.tcl: Fix cpu name for Solaris/Intel 64bit. + * library/platform/pkgIndex.tcl: Package updated to version 1.0.8. + * unix/Makefile.in: + * win/Makefile.in: - * win/makefile.vc: AMD64 target fixes for symbols builds. - * win/rules.vc: +2010-04-30 Don Porter <dgp@users.sourceforge.net> -2007-09-10 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclBinary.c (UpdateStringOfByteArray): [Bug 2994924]: Add + panic when the generated string representation would grow beyond Tcl's + size limits. - * generic/tclLink.c (Tcl_UpdateLinkedVar): guard against var being - unlinked. [Bug 1740631] (maros) +2010-04-29 Andreas Kupries <andreask@activestate.com> -2007-08-25 Kevin Kenny <kennykb@acm.org> + * library/platform/platform.tcl: Another stab at getting the /lib, + * library/platform/pkgIndex.tcl: /lib64 difference right for linux. + * unix/Makefile.in: Package updated to version 1.0.7. + * win/Makefile.in: - * generic/tclClock.c (FormatClock): Claimed additional space for - the %c format code to avoid a buffer overrun when formatting - (for example) a Friday in February in the Portuguese locale. - [Bug 1751117] +2010-04-29 Kevin B. Kenny <kennykb@acm.org> + + * library/tzdata/Antarctica/Macquarie: + * library/tzdata/Africa/Casablanca: + * library/tzdata/Africa/Tunis: + * library/tzdata/America/Santiago: + * library/tzdata/America/Argentina/San_Luis: + * library/tzdata/Antarctica/Casey: + * library/tzdata/Antarctica/Davis: + * library/tzdata/Asia/Anadyr: + * library/tzdata/Asia/Damascus: + * library/tzdata/Asia/Dhaka: + * library/tzdata/Asia/Gaza: + * library/tzdata/Asia/Kamchatka: + * library/tzdata/Asia/Karachi: + * library/tzdata/Asia/Taipei: + * library/tzdata/Europe/Samara: + * library/tzdata/Pacific/Apia: + * library/tzdata/Pacific/Easter: + * library/tzdata/Pacific/Fiji: Olson's tzdata2010i. -2007-08-24 Miguel Sofer <msofer@users.sf.net> +2010-04-19 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCompile.c: replaced copy loop that tripped some - compilers with memmove [Bug 1780870] + * win/tclWinPort.h: [Patch 2986105]: Conditionally defining + * win/tclWinFile.c: strcasecmp/strncasecmp -2007-08-14 Don Porter <dgp@users.sourceforge.net> +2010-04-18 Donal K. Fellows <dkf@users.sf.net> - * tests/trace.test: Backport some tests. + * doc/unset.n: [Bug 2988940]: Fix typo. -2007-08-14 Daniel Steffen <das@users.sourceforge.net> +2010-04-14 Andreas Kupries <andreask@activestate.com> - * unix/tclLoadDyld.c: use dlfcn API on Mac OS X 10.4 and later; fix - issues with loading from memory on intel and 64bit; add debug messages. + * library/platform/platform.tcl: Linux platform identification: + * library/platform/pkgIndex.tcl: Check /lib64 for existence of + * unix/Makefile.in: files matching libc* before accepting it as + * win/Makefile.in: base directory. This can happen on weirdly + installed 32bit systems which have an empty or partially filled + /lib64 without an actual libc. Bumped to version 1.0.6. - * tests/load.test: add test load-10.1 for loading from vfs. +2010-04-03 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> -2007-08-07 Daniel Steffen <das@users.sourceforge.net> + * generic/tclStringObj.c: (SetStringFromAny): avoid trampling + over the tclEmptyStringRep as it is thread-shared. - * generic/tclEnv.c: improve environ handling on Mac OS X (adapted - * unix/tclUnixPort.h: from Apple changes in Darwin tcl-64). + * generic/tclThreadStorage.c (ThreadStorageGetHashTable): + avoid accessing shared table index w/o mutex protection + if VALGRIND defined on compilation time. This rules out + helgrind complains about potential race-conditions at + that place. - * unix/Makefile.in: add support for compile flags specific to - object files linked directly into executables. + Thanks to Gustaf Neumann for the (hard) work. - * unix/configure.in (Darwin): only use -seg1addr flag when prebinding; - use -mdynamic-no-pic flag for object files linked directly into exes; - support overriding TCL_PACKAGE_PATH in environment. +2010-03-31 Donal K. Fellows <dkf@users.sf.net> - * unix/configure: autoconf-2.13 + * doc/package.n: [Bug 2980210]: Document the arguments taken by + the [package present] command correctly. -2007-07-19 Don Porter <dgp@users.sourceforge.net> +2010-03-30 Andreas Kupries <andreask@activestate.com> - * generic/tclParse.c: In contexts where interp and parsePtr->interp - might be different, be sure to use the latter for error reporting. + * generic/tclIORChan.c (ReflectClose, ReflectInput, ReflectOutput, + ReflectSeekWide, ReflectWatch, ReflectBlock, ReflectSetOption, + ReflectGetOption, ForwardProc): [Bug 2978773]: Preserve + ReflectedChannel* structures across handler invokations, to avoid + crashes when the handler implementation induces nested callbacks + and destruction of the channel deep inside such a nesting. -2007-07-05 Don Porter <dgp@users.sourceforge.net> +2010-03-30 Don Porter <dgp@users.sourceforge.net> - * library/init.tcl (unknown): Corrected inconsistent error message - in interactive [unknown] when empty command is invoked. [Bug 1743676] + * generic/tclObj.c (Tcl_GetCommandFromObj): [Bug 2979402]: Reorder + the validity tests on internal rep of a "cmdName" value to avoid + invalid reads reported by valgrind. -2007-06-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-03-29 Don Porter <dgp@users.sourceforge.net> - * generic/tclBinary.c (Tcl_BinaryObjCmd): De-fang an instance of the - shared-result anti-pattern. [Bug 1716704] + * generic/tclStringObj.c: Fix array overrun in test format-1.12 + caught by valgrind testing. -2007-06-30 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> +2010-03-25 Donal K. Fellows <dkf@users.sf.net> - * generic/tclThread.c: Prevent RemeberSyncObj() from growing the sync - object lists by reusing already free'd slots, if possible. - See discussion on Bug 1726873 for more information. + * unix/tclUnixFCmd.c (TclUnixCopyFile): [Bug 2976504]: Corrected + number of arguments to fstatfs() call. -2007-06-29 Daniel Steffen <das@users.sourceforge.net> +2010-03-24 Don Porter <dgp@users.sourceforge.net> - * generic/tclAlloc.c: on Darwin, ensure memory allocated by - * generic/tclThreadAlloc.c: the custom TclpAlloc()s is aligned to - 16 byte boundaries (as is the case with the Darwin system malloc). + * generic/tclResult.c: [Bug 2383005]: Revise [return -errorcode] so + * tests/result.test: that it rejects illegal non-list values. -2007-06-27 Don Porter <dgp@users.sourceforge.net> +2010-03-20 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdMZ.c: Corrected broken trace reversal logic in - * generic/tclTest.c: TclCheckInterpTraces that led to infinite loop - * tests/basic.test: when multiple Tcl_CreateTrace traces were set - and one of them did not fire due to level restrictions. [Bug 1743941]. + * generic/tclIO.c (CopyData): Allow the total number of bytes copied + by [fcopy] to exceed 2GB. Can happen when no -size parameter given. -2007-06-23 Daniel Steffen <das@users.sourceforge.net> +2010-03-18 Don Porter <dgp@users.sourceforge.net> - * macosx/tclMacOSXNotify.c (AtForkChild): don't call CoreFoundation - APIs after fork() on systems where that would lead to an abort(). + * generic/tclListObj.c: [Bug 2971669]: Prevent in overflow trouble in + * generic/tclTestObj.c: ListObjReplace operations. Thanks to kbk for + * tests/listObj.test: fix and test. -2007-06-10 Jeff Hobbs <jeffh@ActiveState.com> +2010-03-12 Jan Nijtmans <nijtmans@users.sf.net> - * README: updated links. [Bug 1715081] - -2007-06-06 Daniel Steffen <das@users.sourceforge.net> + * win/makefile.vc: Fix [Bug 2967340]: Static build failure + * win/.cvsignore - * unix/configure.in (Darwin): add plist for tclsh; link the - * unix/Makefile.in (Darwin): Tcl and tclsh plists into their - * macosx/Tclsh-Info.plist.in (new): binaries in all cases. +2010-03-09 Andreas Kupries <andreask@activestate.com> - * unix/tcl.m4 (Darwin): fix CF checks in fat 32&64bit builds. - * unix/configure: autoconf-2.13 + * generic/tclIORChan.c: [Bug 2936225]: Thanks to Alexandre Ferrieux + * doc/refchan.n: <ferrieux@users.sourceforge.net> for debugging + * tests/ioCmd.test: and fixing the problem. It is the write-side + equivalent to the bug fixed 2009-08-06. -2007-06-05 Don Porter <dgp@users.sourceforge.net> +2010-03-09 Don Porter <dgp@users.sourceforge.net> - * tests/result.test (result-6.2): Add test for [Bug 1649062] so that - 8.4 and 8.5 both test the same outcome and we verify compatibility. + * library/tzdata/America/Matamoros: New locale + * library/tzdata/America/Ojinaga: New locale + * library/tzdata/America/Santa_Isabel: New locale + * library/tzdata/America/Asuncion: + * library/tzdata/America/Tijuana: + * library/tzdata/Antarctica/Casey: + * library/tzdata/Antarctica/Davis: + * library/tzdata/Antarctica/Mawson: + * library/tzdata/Asia/Dhaka: + * library/tzdata/Pacific/Fiji: + Olson tzdata2010c. -2007-05-30 Don Porter <dgp@users.sourceforge.net> +2010-03-01 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * README: Bump version number to 8.4.16 - * generic/tcl.h: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/README.binary: - * win/configure.in: + * unix/tclUnixChan.c: [backported] Refrain from a possibly lengthy + reverse-DNS lookup on 0.0.0.0 when calling [fconfigure -sockname] + on an universally-bound (default) server socket. - * unix/configure: autoconf-2.13 - * win/configure: +2010-02-27 Donal K. Fellows <dkf@users.sf.net> -2007-05-29 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCmdMZ.c (StringFirstCmd, StringLastCmd): [Bug 2960021]: + Only search for the needle in the haystack when the needle isn't + larger than the haystack. Prevents an odd crash from sometimes + happening when things get mixed up (a common programming error). - * unix/tclUnixThrd.c (Tcl_JoinThread): fix for 64-bit handling of - pthread_join exit return code storage. [Bug 1712723] +2010-02-21 Jan Nijtmans <nijtmans@users.sf.net> -2007-05-24 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: Fix [Bug 2954959] expr abs(0.0) is -0.0 + * tests/expr.test - *** 8.4.15 TAGGED FOR RELEASE *** +2010-02-19 Stuart Cassoff <stwo@users.sourceforge.net> - * generic/tclIO.c: Backport memleak fix in TclFinalizeIOSubsystem. + * tcl.m4: Correct compiler/linker flags for threaded builds on OpenBSD + * configure: (regenerated). -2007-05-17 Don Porter <dgp@users.sourceforge.net> +2010-02-19 Donal K. Fellows <dkf@users.sf.net> - * tests/fCmd.test: Backport the notNetworkFilesystem constraint. + * unix/installManPage: [Bug 2954638]: Correct behaviour of manual page + installer. Also added armouring to check that assumptions about the + initial state are actually valid (e.g., look for existing input file). -2007-05-15 Don Porter <dgp@users.sourceforge.net> +2010-02-11 Donal K. Fellows <dkf@users.sf.net> - * generic/tclNamesp.c: Plugged memory leak related to - [namespace delete ::]. [Bug 1716782] + * generic/tclIOCmd.c (Tcl_OpenObjCmd): [Bug 2949740]: Make sure that + we do not try to put a NULL pipeline channel into binary mode. - * changes: updates for 8.4.15 release. +2010-02-07 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinReg.c: Bump to registry 1.1.5 to account - * library/reg/pkgIndex.tcl: for [Bug 1682211] fix. + * tools/genStubs.tcl Backport various formatting (spacing) + * generic/tcl*.decls changes from HEAD, so diffing + * generic/tcl*Decls.h between 8.5.x and 8.6 shows the + * generic/tclStubInit.c real structural differences again. + (any signature change not backported!) -2007-05-10 Don Porter <dgp@users.sourceforge.net> +2010-02-03 Donal K. Fellows <dkf@users.sf.net> - * generic/tclInt.h: TclFinalizeThreadAlloc() is always defined, - so make sure it is also always declared. + * generic/tclVar.c (Tcl_ArrayObjCmd): More corrections for the 'unset' + subcommand. - [Tcl Bug 1706140] +2010-02-02 Andreas Kupries <andreask@activestate.com> - * generic/tclCmdMZ.c (Trace*Proc): Update Tcl_VarTraceProcs so - * generic/tclLink.c (LinkTraceProc): that they call - * generic/tclUtil.c (TclPrecTraceProc): Tcl_InterpDeleted() for - themselves, and do not rely on (frequently buggy) setting of the - TCL_INTERP_DESTROYED flag by the trace core. + * generic/tclCompile.c: [Bug 2933089]: A literal sharing problem with + * generic/tclCompile.h: 'info frame' affects not only 8.6 but 8.5 as + * generic/tclExecute.h: well. Backported the fix done in 8.6, without + * tests/info.test: changes. New testcase info-39.1. - * generic/tclVar.c: Update callers of CallVarTraces to not - pass in the TCL_INTERP_DESTROYED flag. Also apply filters so that - public routines only pass documented flag values down to lower level - routines. +2010-02-02 Donal K. Fellows <dkf@users.sf.net> - * generic/tclVar.c (CallVarTraces): The setting of the - TCL_INTERP_DESTROYED flag is now done entirely within the - CallVarTraces routine, the only place it can be done right. + * generic/tclVar.c (Tcl_ArrayObjCmd): [Bug 2939073]: Stop the [array + unset] command from having dangling pointer problems when an unset + trace deletes the element that is going to be processed next. Many + thanks to Alexandre Ferrieux for the bulk of this fix. -2007-04-30 Daniel Steffen <das@users.sourceforge.net> +2010-02-01 Donal K. Fellows <dkf@users.sf.net> - * unix/Makefile.in: add 'tclsh' dependency to install targets that rely - on tclsh, fixes parallel 'make install' from empty build dir. + * generic/regexec.c (ccondissect, crevdissect): [Bug 2942697]: Rework + these functions so that certain pathological patterns are matched much + more rapidly. Many thanks to Tom Lane for dianosing this issue and + providing an initial patch. -2007-04-29 Daniel Steffen <das@users.sourceforge.net> +2010-02-01 Jan Nijtmans <nijtmans@users.sf.net> - * unix/tclUnixFCmd.c: add workaround for crashing bug in fts_open() - * unix/tclUnixInit.c: without FTS_NOSTAT on 64bit Darwin 8 or earlier. + * generic/tclInt.decls: Various CYGWIN-related fixes + * generic/tclInt.h: backported from HEAD. Still + * generic/tclIntPlatDecls.h: configure script not modified, + * generic/tclPort.h: so CYGWIN build is still + * generic/tclTest.c: disabled. Reason: although the + * win/cat.c: build succeeds with those changes, + * win/tclWinDde.c: many tests still fail. + * win/tclWinError.c: + * win/tclWinFile.c: + * win/tclWinPipe.c: + * win/tclWinPort.h: + * win/tclWinReg.c: + * win/tclWinSerial.c: + * win/tclWinSock.c: + * win/tclWinTest.c: + * win/tclWinThrd.c: - * unix/tclLoadDyld.c (TclpLoadMemory): fix (void*) arithmetic. +2010-01-29 Jan Nijtmans <nijtmans@users.sf.net> - * macosx/tclMacOSXNotify.c: fix warnings. + * generic/tcl.h: Use correct TCL_LL_MODIFIER for CYGWIN. + Formatting (all backported from HEAD) + * generic/rege_dfa.c: Fix macro conflict on CYGWIN: don't use + "small". + * generic/tclTest.c: Fix gcc 4.4 warning: ignoring return value of + * unix/tclUnixPipe.c: 'write' + * unix/tclUnixNotify.c: - * macosx/README: sync whitespace/formatting with HEAD. - * macosx/tclMacOSXBundle.c: - * macosx/tclMacOSXNotify.c: - * unix/tclLoadDyld.c: +2010-01-19 Donal K. Fellows <dkf@users.sf.net> - * macosx/Makefile: fix/add copyright and license refs. - * macosx/tclMacOSXBundle.c: - * macosx/Tcl-Info.plist.in: + * doc/dict.n: [Bug 2929546]: Clarify just what [dict with] and [dict + update] are doing with variables. - * unix/Makefile.in (dist): copy license.terms to dist macosx dir. - * unix/configure.in: install license.terms into Tcl.framework. - * unix/configure: autoconf-2.13 - -2007-04-21 Kevin B. Kenny <kennyb@acm.org> - - * generic/tclClock.c: Restored Cygwin buildability [Bug 1387154] - * generic/tclInt.decls: Yet another round of attempting - * generic/tclInt.h: to get the correct type signature - * unix/tclUnixPort.h: for TclpLocaltime and TclpGmtime. - * unix/tclUnixTime.c: CONST TclpTime_t is a 'time_t *CONST' - * win/tclWinTime.c: and not a 'CONST time_t*' [Bug 1677275] - * generic/tclIntDecls.h: - * generic/tclIntPlatDecls.h: Regenerated. - -2007-03-24 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> +2010-01-18 Andreas Kupries <andreask@activestate.com> - * win/tclWinThrd.c: Thread exit handler marks the current - thread as un-initialized. This allows exit handlers that - are registered later to re-initialize this subsystem in - case they need to use some sync primitives (cond variables) - from this file again. + * generic/tclIO.c (CreateScriptRecord): [Bug 2918110]: Initialize + the EventScriptRecord (esPtr) fully before handing it to + Tcl_CreateChannelHandler for registration. Otherwise a reflected + channel calling 'chan postevent' (== Tcl_NotifyChannel) in its + 'watchProc' will cause the function 'TclChannelEventScriptInvoker' + to be run on an uninitialized structure. -2007-03-19 Don Porter <dgp@users.sourceforge.net> +2010-01-18 Donal K. Fellows <dkf@users.sf.net> - * generic/tclEvent.c (Tcl_CreateThread): Replaced some calls to - * generic/tclPkg.c (CheckVersion): Tcl_Alloc() with calls to - * unix/tclUnixTime.c (SetTZIfNecessary): ckalloc(), which better - * win/tclAppInit.c (setargv): supports memory debugging. + * generic/tclStringObj.c (Tcl_AppendFormatToObj): [Bug 2932421]: Stop + the [format] command from causing argument objects to change their + internal representation when not needed. Thanks to Alexandre Ferrieux + for this fix. -2007-03-17 Kevin Kenny <kennykb@acm.org> - - * win/tclWinReg.c (GetKeyNames): Size the buffer for enumerating - key names correctly, so that Unicode names exceeding 127 chars - can be retrieved without crashing. [Bug 1682211] - * tests/registry.test (registry-4.9): Added test case for the - above bug. +2010-01-06 Jan Nijtmans <nijtmans@users.sf.net> -2007-03-13 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompExpr.c: Warning: array subscript has type 'char' + * generic/tclPkg.c: + * libtommath/bn_mp_read_radix.c: + * unix/tclUnixCompat.c: Fix gcc warning: signed and unsigned type + in conditional expression. + * unix/tcl.m4: Add support for Haiku and CYGWIN dynamical loading + * unix/configure: (regenerated) + * unix/Makefile.in: + * unix/.cvsignore: + * tests/stack.test: Reduced minimum required C-stack size to 2034: + CYGWIN has this stack size and the test runs fine! + * generic/tclEnv.c: Fix environment tests under CYGWIN + * generic/tclPort.h: + * tests/env.test: - * generic/tclExecute.c (INST_FOREACH_STEP4): Re-fetch pointers for - * tests/foreach.test (foreach-10.1): the value list each iteration - of the loop as defense against shimmers. [Bug 1671087] +2010-01-05 Don Porter <dgp@users.sourceforge.net> - * generic/tclVar.c (TclArraySet): Re-fetch pointers for the list - * tests/var.test (var-17.1): argument of [array set] each time - through the loop as defense against possible shimmer issues. - [Bug 1669489]. + * generic/tclPathObj.c (TclPathPart): [Bug 2918610]: Correct + * tests/fileName.test (filename-14.31): inconsistency between the + string rep and the intrep of a path value created by [file rootname]. + Thanks to Vitaly Magerya for reporting. -2007-03-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-01-03 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdIL.c (Tcl_LsortObjCmd): Handle tricky case with loss - * tests/cmdIL.test (cmdIL-1.29):of list rep during sorting due - to shimmering. [Bug 1675116] + * unix/tcl.m4 (SC_CONFIG_CFLAGS): [Bug 1636685]: Use the configuration + for modern FreeBSD suggested by the FreeBSD porter. -2007-03-07 Daniel Steffen <das@users.sourceforge.net> +2009-12-30 Donal K. Fellows <dkf@users.sf.net> - * macosx/tclMacOSXNotify.c: add spinlock debugging and sanity checks. + * library/safe.tcl (AliasSource): [Bug 2923613]: Make the safer + * tests/safe.test (safe-8.9): [source] handle a [return] at the + end of the file correctly. - * unix/tcl.m4 (Darwin): s/CFLAGS/CPPFLAGS/ in macosx-version-min check. - * unix/configure: autoconf-2.13 +2009-12-29 Donal K. Fellows <dkf@users.sf.net> -2007-03-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclInterp.c (Tcl_MakeSafe): [Bug 2895741]: Make sure that + the min() and max() functions are supported in safe interpreters. - * generic/tclCompCmds.c (TclCompileForeachCmd): Prevent an unexpected - * tests/foreach.test (foreach-9.1): infinite loop when the - variable list is empty and the foreach is compiled. [Bug 1671138] +2009-12-28 Donal K. Fellows <dkf@users.sf.net> -2007-02-22 Andreas Kupries <andreask@activestate.com> + * unix/configure.in: [Bug 942170]: Detect the st_blocks field of + * generic/tclCmdAH.c (StoreStatData): 'struct stat' correctly. + * generic/tclIOUtil.c (Tcl_Stat, Tcl_FSStat): + * generic/tclTest.c (PretendTclpStat): - * tests/pkg.test: Added tests for the case of an alpha package - satisfying a require for the regular package, demonstrating a - corner case specified in TIP#280. More notes in the comments to - the test. + * generic/tclInterp.c (TimeLimitCallback): [Bug 2891362]: Ensure that + * tests/interp.test (interp-34.13): the granularity ticker is + reset when we check limits because of the time limit event firing. -2007-02-20 Don Porter <dgp@users.sourceforge.net> +2009-12-27 Donal K. Fellows <dkf@users.sf.net> - * doc/tcltest.n: Typo fix. [Bug 1663539] + * doc/namespace.n (SCOPED SCRIPTS): [Bug 2921538]: Updated example to + not be quite so ancient. -2007-02-19 Jeff Hobbs <jeffh@ActiveState.com> +2009-12-23 Donal K. Fellows <dkf@users.sf.net> - * generic/tclIOUtil.c (Tcl_FSEvalFile): safe incr of objPtr ref. + * library/safe.tcl (AliasSource, AliasExeName): [Bug 2913625]: Stop + information about paths from leaking through [info script] and [info + nameofexecutable]. - * unix/tcl.m4: use SHLIB_SUFFIX=".so" on HP-UX ia64 arch. - * unix/configure: autoconf-2.13 +2009-12-16 Donal K. Fellows <dkf@users.sf.net> -2007-02-12 Andreas Kupries <andreask@activestate.com> + * library/safe.tcl (::safe::AliasGlob): Upgrade to correctly support a + larger fraction of [glob] functionality, while being stricter about + directory management. - * generic/tclEncoding.c (EscapeFromUtfProc): Applied patch - supplied by Mo DeJong to fix [Bug 1516109]. Backport from Tcl - 8.5. Mo's description: Clear the TCL_ENCODING_END flag when end - bytes are written. This fix keep this method from writing escape - bytes for an encoding like iso2022-jp multiple times when the - escape byte overlap with the end of the IO buffer. - * tests/io.test: Add test case for escape byte overlap case. + * doc/tm.n: [Bug 1911342]: Formatting rewrite to avoid bogus crosslink + to the list manpage when generating HTML. -2007-02-04 Daniel Steffen <das@users.sourceforge.net> + * library/msgcat/msgcat.tcl (Init): [Bug 2913616]: Do not use platform + tests that are not needed and which don't work in safe interpreters. - * unix/configure.in: add caching to -pipe check. - * unix/configure: autoconf-2.13 +2009-12-12 Donal K. Fellows <dkf@users.sf.net> -2007-01-30 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclTest.c (TestconcatobjCmd): [Bug 2895367]: Stop memory + leak when testing. We don't need extra noise of this sort when + tracking down real problems! - * win/Makefile.in (install-private-headers): added target +2009-12-10 Andreas Kupries <andreask@activestate.com> -2007-01-29 Don Porter <dgp@users.sourceforge.net> + * generic/tclObj.c (TclContinuationsEnter): [Bug 2895323]: Updated + comments to describe when the function can be entered for the same + Tcl_Obj* multiple times. This is a continuation of the 2009-11-10 + entry where a memory leak was plugged, but where not sure if that was + just a band-aid to paper over some other error. It isn't, this is a + legal situation. - * doc/fcopy.n: Typo fix. [Bug 1630627] +2009-12-09 Andreas Kupries <andreask@activestate.com> -2007-01-25 Daniel Steffen <das@users.sourceforge.net> + * library/safe.tcl: Backport of the streamlined safe base from + * tests/safe.test: head to the 8.5 branch (See head changelog entries + 2009-11-05, 2009-11-06, 2009-12-03). - * unix/tcl.m4: integrate CPPFLAGS into CFLAGS as late as possible - * unix/configure.in: and move (rather than duplicate) -isysroot flags - from CFLAGS to CPPFLAGS to avoid errors about multiple -isysroot flags - from some older gcc builds. +2009-12-07 Don Porter <dgp@users.sourceforge.net> - * unix/configure: autoconf-2.13 + * generic/tclStrToD.c: [Bug 2902010]: Correct conditional compile + directives to better detect the toolchain that needs extra work for + proper underflow treatment instead of merely detecting the MIPS + platform. -2007-01-22 Andreas Kupries <andreask@activestate.com> +2009-12-02 Jan Nijtmans <nijtmans@users.sf.net> - * compat/memcmp.c (memcmp): Fixed the VOID / CONST typo introduced - by the last checkin. + * tools/genStubs.tcl: Add support for win32 CALLBACK functions (needed + for Tk bugfix). -2007-01-22 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2009-11-30 Donal K. Fellows <dkf@users.sf.net> - * compat/memcmp.c (memcmp): Reworked so that arithmetic is never - performed upon void pointers, since that is illegal. [Bug 1631017] + * doc/Tcl.n: [Bug 2901433]: Improved description of expansion to + mention that it is using list syntax. -2006-01-19 Daniel Steffen <das@users.sourceforge.net> +2009-11-27 Donal K. Fellows <dkf@users.sf.net> - * macosx/tclMacOSXNotify.c: accommodate changes to prototypes of - OSSpinLock(Un)Lock API. - - * tests/env.test: add extra system env vars that need to be preserved - on some Mac OS X versions for testsuite to work. - - * unix/tcl.m4: ensure CPPFLAGS env var is used when set. [Bug 1586861] - (Darwin): add -isysroot and -mmacosx-version-min flags to CPPFLAGS when - present in CFLAGS to avoid discrepancies between what headers configure - sees during preprocessing tests and compiling tests. + * doc/BoolObj.3, doc/CrtChannel.3, doc/DictObj.3, doc/DoubleObj.3: + * doc/Ensemble.3, doc/Environment.3, doc/FileSystem.3, doc/Hash.3: + * doc/IntObj.3, doc/Limit.3, doc/ObjectType.3, doc/PkgRequire.3: + * doc/SetChanErr.3, doc/SetResult.3: [Patch 2903921]: Many small + spelling fixes from Larry Virden. - * unix/configure: autoconf-2.13 +2009-11-25 Stuart Cassoff <stwo@users.sf.net> -2006-12-19 Daniel Steffen <das@users.sourceforge.net> + * unix/configure.in: [Patch 2892871]: Remove unneeded + * unix/tcl.m4: AC_STRUCT_TIMEZONE and use + * unix/tclConfig.h.in: AC_CHECK_MEMBERS([struct stat.st_blksize]) + * unix/tclUnixFCmd.c: instead of AC_STRUCT_ST_BLKSIZE. + * unix/configure: Regenerated with autoconf-2.59. - * unix/tclUnixThrd.c (TclpInetNtoa): fix for 64 bit. +2009-11-16 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * unix/tcl.m4 (Darwin): --enable-64bit: verify linking with 64bit -arch - flag succeeds before enabling 64bit build. - * unix/configure: autoconf-2.13 + * generic/tclEncoding.c: Fix [Bug 2891556] and improve test to detect + * tests/decoding.test: similar manifestations in the future. + +2009-11-12 Don Porter <dgp@users.sourceforge.net> -2006-12-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> + *** 8.5.8 TAGGED FOR RELEASE *** - * doc/string.n: Fix example. [Bug 1615277] + * changes: Update for 8.5.8 release. -2006-12-05 Andreas Kupries <andreask@activestate.com> + * generic/tclClock.c (TclClockInit): Do not create [clock] support + commands in safe interps. - * tests/pkg.test: Backport to 8.4 (Don Porter's work): - * generic/tclPkg.c: When no requirements are supplied to a [package - require $pkg] and [package unknown] is invoked to find a satisfying - package, pass the requirement argument "0-" (which means all versions - are acceptable). This permits a registered [package unknown] command - to call [package vsatisfies $testVersion {*}$args] without any special - handling of the empty $args case. This fixes/avoids a bug in - [::tcl::tm::UnknownHandler] that was causing old TM versions to be - provided in preference to newer TM versions. Thanks to Julian Noble - for discovering the issue. + * tests/io.test: New test io-53.11 to test for [Bug 2895565]. -2006-12-04 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2009-11-12 Andreas Kupries <andreask@activestate.com> - * doc/file.n: Fix confusing wording for [file pathtype]. [Bug 1606454] + * generic/tclIO.c (CopyData): [Bug 2895565]: Dropped bogosity which + used the number of _written_ bytes or character to update the counters + for the read bytes/characters. See last entry for the test case. -2006-11-28 Andreas Kupries <andreask@activestate.com> +2009-11-11 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclBasic.c: TIP #280 implementation, conditional on the - * generic/tclCmdAH.c: define TCL_TIP280. - * generic/tclCmdIL.c: - * generic/tclCmdMZ.c: - * generic/tclCompCmds.c: - * generic/tclCompExpr.c: - * generic/tclCompile.c: - * generic/tclCompile.h: - * generic/tclExecute.c: - * generic/tclIOUtil.c: - * generic/tclInt.h: - * generic/tclInterp.c: - * generic/tclNamesp.c: - * generic/tclObj.c: - * generic/tclProc.c: - * tests/compile.test: - * tests/info.test: - * tests/platform.test: - * tests/safe.test: + * tests/fCmd.test: Fixed a number of issues for Vista and Win7 + * tests/registry.test: that are due to restricted permissions. + * tests/winFCmd.test: -2006-11-27 Kevin Kenny <kennykb@acm.org> +2009-11-11 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixChan.c (TclUnixWaitForFile): - * tests/event.test (event-14.*): Corrected a bug where - TclUnixWaitForFile would present select() with the wrong mask on an - LP64 machine if a fd number exceeds 32. Thanks to Jean-Luc Fontaine - for reporting and diagnosing [Bug 1602208] + * library/http/http.tcl: [Bug 2891171]: Update the URL syntax + check to RFC 3986 compliance on the subject of non-encoded question + mark characters. -2006-11-26 Daniel Steffen <das@users.sourceforge.net> + * library/http/pkgIndex.tcl: Bump to http 2.7.5 to avoid any + * unix/Makefile.in: confusion with snapshot "releases" + * win/Makefile.in: that might be in ActiveTcl, etc. - * unix/tcl.m4 (Linux): --enable-64bit support. [Patch 1597389] - * unix/configure: autoconf-2.13 [Bug 1230558] +2009-11-11 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2006-11-07 Andreas Kupries <andreask@activestate.com> + * generic/tclIO.c: Backported fix for [Bug 2888099] (close discards + ENOSPC error) by saving the errno from the first of two + FlushChannel()s. Uneasy to test; might need specific channel drivers. + Four-hands with aku. - * unix/tclUnixFCmd.c (CopyFile): Added code to fall back to a - hardwired default block size should the filesystem report a bogus - value. [Bug 1586470] +2009-11-10 Don Porter <dgp@users.sourceforge.net> -2006-11-03 Miguel Sofer <msofer@users.sf.net> + * generic/tclBasic.c: Plug another leak in TCL_EVAL_DIRECT + evaluation. - * generic/tclBasic.c (TEOVI): fix for possible leak of a Command in - the presence of execution traces that delete it. + * generic/tclObj.c: Plug memory leak in TclContinuationsEnter(). + [Bug 2895323] - * generic/tclBasic.c (TEOVI): - * tests/trace.test (trace-21.11): fix for [Bug 1590232], execution - traces may cause a second command resolution in the wrong - namespace. +2009-11-09 Stuart Cassoff <stwo@users.sf.net> -2006-11-01 Daniel Steffen <das@users.sourceforge.net> + * win/README: [bug 2459744]: Removed outdated Msys + Mingw info. - * generic/tclEnv.c (Darwin): mark _environ symbol as unexported. +2009-11-09 Don Porter <dgp@users.sourceforge.net> -2006-10-31 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclBasic.c (TclEvalObjEx): Plug memory leak in + TCL_EVAL_DIRECT evaluation. - * rules.vc: Fix [Bug 1582769] build with VC2003 and correct i386 arch + * tests/info.test: Resolve ambiguous resolution of variable "res". -2006-10-23 Don Porter <dgp@users.sourceforge.net> +2009-11-03 Don Porter <dgp@users.sourceforge.net> - * README: Bump version number to 8.4.15 - * generic/tcl.h: + * generic/tcl.h: Bump to 8.5.8 for release. + * library/init.tcl: * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: - * win/README.binary: * win/configure.in: + * README: - * unix/configure: autoconf-2.13 + * unix/configure: autoconf-2.59 * win/configure: -2006-10-18 Pat Thoyts <patthoyts@users.sourceforge.net> - - *** 8.4.14 TAGGED FOR RELEASE *** + * changes: Update for 8.5.8 release. - * win/nmakehlp.c: Ensure builds with VC6 without Platform SDK. - * win/rules.vc: Pickup MACHINE from environment. +2009-11-03 Andreas Kupries <andreask@activestate.com> -2006-10-17 Don Porter <dgp@users.sourceforge.net> + * library/safe.tcl (::safe::InterpSetConfig): [Bug 2854929]: Added + code to recursively find deeper paths which may contain modules. + Required to handle modules with names like 'platform::shell', which + translate into 'platform/shell-X.tm', i.e arbitrarily deep + subdirectories. - * generic/tclIOUtil.c: Cleaned up some code flagged by a - * generic/tclInt.h: `make checkexports` test. - * win/tclWin32Dll.c: - * win/tclWinFile.c: +2009-11-03 Kevin B. Kenny <kennykb@acm.org> -2006-10-16 Daniel Steffen <das@users.sourceforge.net> - - * changes: updates for 8.4.14 release. - - * macosx/Makefile: don't redo prebinding of non-prebound binaires. - -2006-10-11 Andreas Kupries <andreask@activestate.com> - - * generic/tclPkg.c (Tcl_PkgRequireEx): Corrected crash when argument - version==NULL passed in. Backport of the fix for the same problem in - 8.5. - -2006-10-10 Don Porter <dgp@users.sourceforge.net> + * library/tzdata/Asia/Novokuznetsk: New tzdata locale for Kemerovo + oblast', which now keeps Novosibirsk time and not Kranoyarsk time. + * library/tzdata/Asia/Damascus: Syrian DST changes. + * library/tzdata/Asia/Hong_Kong: Hong Kong historic DST corrections. + Olson tzdata2009q. - * changes: changes updated for 8.4.14 release. +2009-11-03 Pat Thoyts <patthoyts@users.sourceforge.net> -2006-10-06 Jeff Hobbs <jeffh@ActiveState.com> + * tests/tcltest.test: Backport permissions fix for Win7. - * tests/http.test: update tests to handle strictness change. +2009-10-31 Donal K. Fellows <dkf@users.sf.net> -2006-10-06 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclBasic.c (ExprRoundFunc): [Bug 2889593]: Correctly report + the expected number of arguments when generating an error for round(). - * win/rules.vc: avoid /RTCc flag with MSVC8. [Bug 1571954] +2009-10-29 Don Porter <dgp@users.sourceforge.net> -2006-10-05 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tcl.h: [Bug 2800740]: Changed the typedef for the + mp_digit type from: + typedef unsigned long mp_digit; + to: + typedef unsigned int mp_digit; + For 32-bit builds where "long" and "int" are two names for the same + thing, this is no change at all. For 64-bit builds, though, this + causes the dp[] array of an mp_int to be made up of 32-bit elements + instead of 64-bit elements. This is a huge improvement because details + elsewhere in the mp_int implementation cause only 28 bits of each + element to be actually used storing number data. Without this change + bignums are over 50% wasted space on 64-bit systems. - * library/http/http.tcl (http::geturl): only do geturl url rfc 3986 - validity checking if $::http::strict is true (default false for 8.4). - [Bug 1560506] - - * generic/tcl.h: note limitation on changing Tcl_UniChar size - * generic/tclEncoding.c (UtfToUnicodeProc, UnicodeToUtfProc): - * tests/encoding.test (encoding-16.1): fix alignment issues in - unicode <> utf conversion procs. [Bug 1122671] - -2006-10-05 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c (Tcl_LappendObjCmd): - * tests/append.test(4.21-22): fix for longstanding [Bug 1570718], - lappending nothing to non-list. Reported by lvirden - -2006-10-02 Don Porter <dgp@users.sourceforge.net> - - * generic/tclFileName.c (TclGlob): Prevent doubling of directory - separators by [glob]. [Bug 1569042] + ***POTENTIAL INCOMPATIBILITY*** + For 64-bit builds, callers of routines with (mp_digit) or (mp_digit *) + arguments *will*, and callers of routines with (mp_int *) arguments + *may* suffer both binary and stubs incompatibilities with Tcl releases + 8.5.0 - 8.5.7. Such possibilities should be checked, and if such + incompatibilities are present, suitable [package require] requirements + on the Tcl release should be put in place to keep such built code + [load]-ing only in Tcl interps that are compatible. + +2009-10-29 Kevin B. Kenny <kennykb@acm.org> + + * library/clock.tcl (LocalizeFormat): + * tests/clock.test (clock-67.1): [Bug 2819334]: + Corrected a problem where '%%' followed by a letter in a format group + could expand recursively: %%R would turn into %%H:%M:%S. + +2009-10-28 Don Porter <dgp@users.sourceforge.net> + + * generic/tclLiteral.c: Backport fix for [Bug 2888044]. + +2009-10-28 Kevin B. Kenny <kennykb@acm.org> + + * tests/fileName.test (fileName-20.[78]): Corrected poor test + hygiene (failure to save and restore the working directory) that + caused these two tests to fail on Windows (and [Bug 2806250] to be + reopened). + +2009-10-27 Don Porter <dgp@users.sourceforge.net> + + * generic/tclPathObj.c: [Bug 2884203]: Missing refcount on cached + normalized path caused crashes. + +2009-10-27 Kevin B. Kenny <kennykb@acm.org> + + * library/clock.tcl (ParseClockScanFormat): [Bug 2886852]: + Corrected a problem where [clock scan] didn't load the timezone soon + enough when processing a time format that lacked a complete date. + * tests/clock.test (clock-66.1): + Added a test case for the above bug. + * library/tzdata/America/Argentina/Buenos_Aires: + * library/tzdata/America/Argentina/Cordoba: + * library/tzdata/America/Argentina/San_Luis: + * library/tzdata/America/Argentina/Tucuman: + New DST rules for Argentina. (Olson's tzdata2009p.) + +2009-10-24 Kevin B. Kenny <kennykb@acm.org> + + * library/clock.tcl (ProcessPosixTimeZone): + Corrected a regression in the fix to [Bug 2207436] that caused [clock] + to apply EU daylight saving time rules in the US. Thanks to Karl + Lehenbauer for reporting this regression. + * tests/clock.test (clock-52.4): + Added a regression test for the above regression. + * library/tzdata/Asia/Dhaka: + * library/tzdata/Asia/Karachi: + New DST rules for Bangladesh and Pakistan. (Olson's tzdata2009o.) -2006-10-01 Pat Thoyts <patthoyts@users.sourceforge.net> +2009-10-23 Andreas Kupries <andreask@activestate.com> - * win/tclWinFile.c: Handle possible missing define. - * win/tclWinFile.c: Backported fix for [Bug 1420432] (cannot set - * tests/cmdAH.test: mtime for directories on windows). + * generic/tclIO.c (FlushChannel): Skip OutputProc for low-level + 0-length writes. When closing pipes which have already been closed not + skipping leads to spurious SIG_PIPE signals. Reported by Mikhail + Teterin <mi+thun@aldan.algebra.com>. -2006-09-30 Miguel Sofer <msofer@users.sf.net> +2009-10-21 Donal K. Fellows <dkf@users.sf.net> - * generic/tclUtil.c (Tcl_SplitList): optimisation, [Patch 1344747] - by dgp. + * generic/tclPosixStr.c: [Bug 2882561]: Work around oddity on Haiku OS + where SIGSEGV and SIGBUS are the same value. -2006-09-26 Pat Thoyts <patthoyts@users.sourceforge.net> +2009-10-19 Don Porter <dgp@users.sourceforge.net> - * win/makefile.vc: Updated MSVC build to properly deal with - * win/nmakehlp.c: MSVC8 and AMD64 target. Backport from 8.5 - * win/rules.vc: - * generic/tcl.h: Fixed stat definition for MSVC8 AMD64. - * win/tclWinSock.c: Casting type police. - * win/tclWinTime.c: + * generic/tclIO.c: Revised ReadChars and FilterInputBytes + routines to permit reads to continue up to the string limits of Tcl + values. Before revisions, large read attempts could panic when as + little as half the limiting value length was reached. [Patch 2107634] + Thanks to Sean Morrison and Bob Parker for their roles in the fix. -2006-09-26 Don Porter <dgp@users.sourceforge.net> +2009-10-18 Joe Mistachkin <joe@mistachkin.com> - * generic/tcl.h: As 2006-09-22 commit from Donal K. Fellows - demonstrates, "#define NULL 0" is just wrong, and as a quotable chat - figure observed, "If NULL isn't defined, we're not using a C compiler." - Improper fallback definition of NULL removed. + * tests/thread.test (thread-4.[345]): [Bug 1565466]: Correct tests to + save their error state before the final call to threadReap just in + case it triggers an "invalid thread id" error. This error can occur + if one or more of the target threads has exited prior to the attempt + to send it an asynchronous exit command. -2006-09-25 Andreas Kupries <andreask@activestate.com> + * doc/memory.n: [Bug 988703]: Add mechanism for finding what Tcl_Objs + * generic/tclCkalloc.c (MemoryCmd): are allocated when built for + * generic/tclInt.decls: memory debugging. This was previously + * generic/tclInt.h: backported from Tcl 8.6 with the corrections to + * generic/tclObj.c (ObjData, TclFinalizeThreadObjects): fix [Bug + 2871908]. However, there were key elements missing. These changes make + things consistent between branches. - * generic/tclIO.c (Tcl_StackChannel): Fixed [SF Tcl Bug 1564642], aka - coverity #51. Extended loop condition, added checking for NULL to - prevent seg.fault. +2009-10-17 Donal K. Fellows <dkf@users.sf.net> -2006-09-25 Andreas Kupries <andreask@activestate.com> + * generic/tclVar.c (TclDeleteCompiledLocalVars, UnsetVarStruct) + (TclDeleteNamespaceVars): + * generic/tclTrace.c (Tcl_UntraceVar2): [Bug 2629338]: Stop traces + that are deleted part way through (a feature used by tdom) from + causing freed memory to be accessed. - * generic/tclBasic.c: Reverted exposure of patchlevel in registered - core version when TIP#268 features are activated. Better compatibility - with existing packages. Like Tk. +2009-10-08 Donal K. Fellows <dkf@users.sf.net> -2006-09-24 Miguel Sofer <msofer@users.sf.net> + * generic/tclDictObj.c (DictIncrCmd): [Bug 2874678]: Don't leak any + bignums when doing [dict incr] with a value. + * tests/dict.test (dict-19.3): Memory leak detection code. - * generic/tclParse.c (Tcl_ParseCommand): also return an error if - start==NULL and numBytes<0. This is coverity's bug #20 +2009-10-07 Andreas Kupries <andreask@activestate.com> - * generic/tclStringObj.c (STRING_SIZE): fix allocation for 0-length - strings. This is coverity's bugs #54-5 - -2006-09-22 Andreas Kupries <andreask@activestate.com> + * generic/tclObj.c: [Bug 2871908]: Plug memory leaks of the + objThreadMap and lineCLPtr hashtables. Also make the names of the + continuation line information initialization and finalization + functions more consistent. Patch supplied by Joe Mistachkin + <joe@mistachkin.com>. - * generic/tclInt.h: Moved TIP#268's field 'packagePrefer' to the end - of the structure, for better backward compatibility. + * generic/tclIORChan.c (ErrnoReturn): Replace the hardwired constant + 11 with the proper errno define, EAGAIN. What was I thinking? The + BSD's have a different errno assignment and break with the hardwired + number. Reported by emiliano on the chat. -2006-09-22 Andreas Kupries <andreask@activestate.com> +2009-10-06 Don Porter <dgp@users.sourceforge.net> - * generic/tclPkg.c (Tcl_PkgRequireEx): Changes handling of the return - information from 'Tcl_PkgRequireProc'. Keep the interpreter result - empty. Backport of fix for problem found while testing #268 under 8.5. - More details in the comments. + * generic/tclTomMathInt.h (new): Public header tclTomMath.h had + * generic/tclTomMath.h: dependence on private headers, breaking use + * generic/tommath.h: by extensions [Bug 1941434]. -2006-09-22 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2009-10-05 Don Porter <dgp@users.sourceforge.net> - * generic/tclThreadTest.c (TclCreateThread): Use NULL instead of 0 as - end-of-strings marker to Tcl_AppendResult; the difference matters on - 64-bit machines. [Bug 1562528] + * changes: Update for 8.5.8 release. -2006-09-21 Andreas Kupries <andreask@activestate.com> +2009-10-04 Daniel Steffen <das@users.sourceforge.net> - * generic/tcl.decls: Implemented TIP #268, conditionally. - * generic/tclBasic.c: Define TCL_TIP268 to activate the new - * generic/tclDecls.h: features. - * generic/tclInt.h: - * generic/tclPkg.c: - * generic/tclStubInit.c: - * generic/tclTest.c: - * library/init.tcl - * library/package.tcl: - * tests/pkg.test: - * tests/platform.test: - * tests/safe.test: - * doc/PkgRequire.3: + * macosx/tclMacOSXBundle.c: Workaround CF memory managment bug in + * unix/tclUnixInit.c: Mac OS X 10.4 & earlier. [Bug 2569449] -2006-09-15 Jeff Hobbs <jeffh@ActiveState.com> +2009-10-02 Kevin B. Kenny <kennykb@acm.org> - * library/http/http.tcl: Change " " -> "+" url encoding mapping - * library/http/pkgIndex.tcl: to " " -> "%20" as per RFC 3986. - * tests/http.test (http-5.1): bump http to 2.5.3 for 8.4.14 + * library/tzdata/Africa/Cairo: + * library/tzdata/Asia/Gaza: + * library/tzdata/Asia/Karachi: + * library/tzdata/Pacific/Apia: Olson's tzdata2009n. -2006-09-12 Andreas Kupries <andreask@activestate.com> +2009-09-29 Don Porter <dgp@users.sourceforge.net> - * unix/configure.in (HAVE_MTSAFE_GETHOST*): Modified to recognize - HP-UX 11.00 and beyond as having mt-safe implementations of the - gethost functions. - * unix/configure: Regenerated, using autoconf 2.13 + * generic/tclAlloc.c: Cleaned up various routines in the + * generic/tclCkalloc.c: call stacks for memory allocation to + * generic/tclInt.h: guarantee that any size values computed + * generic/tclThreadAlloc.c: are within the domains of the routines + they get passed to. [Bugs 2557696 and 2557796]. - * unix/tclUnixCompat.c (PadBuffer): Fixed bug in calculation of the - increment needed to align the pointer, and added documentation - explaining why the macro is implemented as it is. +2009-09-11 Don Porter <dgp@users.sourceforge.net> -2006-09-11 Andreas Kupries <andreask@activestate.com> + * library/http/http.tcl: Bump to http 2.7.4 to account for + * library/http/pkgIndex.tcl: [Bug 2849860] fix. + * unix/Makefile.in: + * win/Makefile.in: - * tests/msgcat.test: Bumped version in auxiliary files as well. - * doc/msgcat.n: +2009-09-10 Donal K. Fellows <dkf@users.sf.net> -2006-09-11 Daniel Steffen <das@users.sourceforge.net> + * library/http/http.tcl (http::Event): [Bug 2849860]: Handle charset + names in double quotes; some servers like generating them like that. - * unix/tclUnixCompat.c: make compatLock static and only declare it - when it will actually be used; #ifdef parts of TSD that are not always - needed; adjust #ifdefs to cover all possible cases; fix whitespace. +2009-09-01 Don Porter <dgp@users.sourceforge.net> -2006-09-10 Don Porter <dgp@users.sourceforge.net> + * library/tcltest/tcltest.tcl: Bump to tcltest 2.3.2 after revision + * library/tcltest/pkgIndex.tcl: to verbose error message. + * unix/Makefile.in: + * win/Makefile.in: - * library/msgcat/msgcat.tcl: Bump to version msgcat 1.3.4 to account - * library/msgcat/pkgIndex.tcl: for modifications. +2009-08-27 Don Porter <dgp@users.sourceforge.net> -2006-09-10 Daniel Steffen <das@users.sourceforge.net> + * generic/tclStringObj.c: [Bug 2845535]: A few more string + overflow cases in [format]. - * library/msgcat/msgcat.tcl (msgcat::Init): on Darwin, add fallback of - * tests/msgcat.test: default msgcat locale to - * unix/tclUnixInit.c (TclpSetVariables): current CFLocale - identifier if available (via private ::tcl::mac::locale global, set at - interp init when on Mac OS X 10.3 or later with CoreFoundation). +2009-08-25 Andreas Kupries <andreask@activestate.com> - * unix/tcl.m4: add caching to new SC_TCL_* macros for MT-safe wrappers - * unix/configure: autoconf-2.13 + * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard) + (EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations) + (TclEvalObjEx): + * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines): + * generic/tclCompCmds.c (*): + * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv) + (TclFreeCompileEnv, TclCompileScript): + * generic/tclCompile.h (CompileEnv): + * generic/tclInt.h (ContLineLoc, Interp): + * generic/tclObj.c (ThreadSpecificData, ContLineLocFree) + (TclThreadFinalizeObjects, TclInitObjSubsystem, TclContinuationsEnter) + (TclContinuationsEnterDerived, TclContinuationsCopy) + (TclContinuationsGet, TclFreeObj): + * generic/tclParse.c (TclSubstTokens, Tcl_SubstObj): + * generic/tclProc.c (TclCreateProc): + * generic/tclVar.c (TclPtrSetVar): + * tests/info.test (info-30.0-24): -2006-09-08 Andreas Kupries <andreask@activestate.com> + Extended parser, compiler, and execution with code and attendant data + structures tracking the positions of continuation lines which are not + visible in script Tcl_Obj*'s, to properly account for them while + counting lines for #280. - * unix/tclUnixCompat.c: Fixed conditions for CopyArray/CopyString, and - CopyHostent. Also fixed bad var names in TclpGetHostByName. +2009-08-24 Daniel Steffen <das@users.sourceforge.net> -2006-09-08 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * macosx/tclMacOSXNotify.c: Fix multiple issues with nested event + loops when CoreFoundation notifier is running in embedded mode. (Fixes + problems in TkAqua Cocoa reported by Youness Alaoui on tcl-mac) - * unix/tclUnixCompat.c: Added fallback to gethostbyname() and - gethostbyaddr() if the implementation is known to be MT-safe - (currently for Darwin 6 or later only). +2009-08-21 Don Porter <dgp@users.sourceforge.net> - * unix/configure.in: Assume gethostbyname() and gethostbyaddr() are - MT-safe starting with Darwin 6 (Mac OSX 10.2). + * generic/tclFileName.c: Correct regression in [Bug 2837800] fix. + * tests/fileName.test: - * unix/configure: Regenerated with autoconf V2.13 +2009-08-20 Don Porter <dgp@users.sourceforge.net> -2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclFileName.c: [Bug 2837800]: Get the correct result from + [glob */test] when * matches something like ~foo. - * unix/tclUnixFCmd.c: Removed some false tests added (and left by - mistake) by fixing [Bug 999544] + * generic/tclPathObj.c: [Bug 2806250]: Prevent the storage of strings + starting with ~ in the "tail" part (normPathPtr field) of the path + intrep when PATHFLAGS != 0. This establishes the assumptions relied + on elsewhere that the name stored there is a relative path. Also + refactored to make an AppendPath() routine instead of the cut/paste + stanzas that were littered throughout. - * unix/tclUnixCompat.c: Added fallback to MT-unsafe library calls if - TCL_THREADS is not defined. Fixed alignment of arrays copied by - CopyArrayi() to be on the sizeof(char *) boundary. +2009-08-20 Donal K. Fellows <dkf@users.sf.net> -2006-09-07 Andreas Kupries <andreask@activestate.com> + * generic/tclCmdIL.c (Tcl_LsortObjCmd): Plug memory leak. - * unix/configure: Regenerated using autoconf 2.13. +2009-08-18 Don Porter <dgp@users.sourceforge.net> -2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclPathObj.c: [Bug 2837800]: Added NULL check to prevent + * tests/fileName.test: crashes during [glob]. - * unix/tclUnixChan.c Rewritten MT-safe wrappers to - * unix/tclUnixCompat.c return ptrs to TSD storage - * unix/tclUnixFCmd.c making them all look like their - * unix/tclUnixPort.h MT-unsafe pendants API-wise. - * unix/tclUnixSock.c +2009-08-06 Andreas Kupries <andreask@activestate.com> -2006-09-06 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * doc/refchan.n [Bug 2827000]: Extended the implementation of + * generic/tclIORChan.c: reflective channels (TIP 219, method 'read'), + * tests/ioCmd.test: enabling handlers to signal EAGAIN to indicate 'no + data, but not at EOF either', and other system errors. Updated + documentation, extended testsuite (New test cases iocmd*-23.{9,10}). - * unix/tclUnixChan.c: Added TCL_THREADS ifdef'ed usage - * unix/tclUnixFCmd.c: of MT-safe calls like: - * unix/tclUnixSock.c: getpwuid, getpwnam, getgrgid, getgrnam, - * unix/tclUnixPort.h: gethostbyname and gethostbyaddr. - * unix/Makefile.in: See Tcl Bug: 999544 - * unix/configure.in: - * unix/tcl.m4: - * unix/configure: Regenerated. +2009-08-02 Donal K. Fellows <dkf@users.sf.net> - * unix/tclUnixCompat.c: New file containing MT-safe implementation of - some library calls. + * unix/tclUnixFCmd.c (GetOwnerAttribute, SetOwnerAttribute) + (GetGroupAttribute, SetGroupAttribute): [Bug 1942222]: Stop calling + * unix/tclUnixFile.c (TclpGetUserHome): endpwent() and endgrent(); + they've been unnecessary for ages. -2006-09-04 Don Porter <dgp@users.sourceforge.net> +2009-07-31 Don Porter <dgp@users.sourceforge.net> - * tests/main.text (Tcl_Main-4.4): Test corrected to not be - timing sensitive to the Bug 1481986 fix. [Bug 1550858] + * generic/tclStringObj.c: [Bug 2830354]: Corrected failure to + * tests/format.test: grow buffer when format spec request + large width floating point values. Thanks to Clemens Misch. -2006-09-04 Jeff Hobbs <jeffh@ActiveState.com> +2009-07-24 Andreas Kupries <andreask@activestate.com> - * doc/package.n: correct package example + * generic/tclIO.c (Tcl_GetChannelHandle): [Bug 2826248]: Do not crash + * generic/tclPipe.c (FileForRedirect): for getHandleProc == NULL, this + is allowed. Provide a nice error message in the bypass area. Updated + caller to check the bypass for a mesage. Bug reported by Andy + Sonnenburg <andy22286@users.sourceforge.net>. Backported from CVS + head. -2006-08-30 Jeff Hobbs <jeffh@ActiveState.com> - - * win/tclWinChan.c: [Bug 819667] Improve logic for identifying COM - ports. - - * win/tclWinFCmd.c: [Bug 1548263] Added test for NULL return - * generic/tclIOUtil.c: from Tcl_FSGetNormalizedPath which was - causing segv's +2009-07-23 Joe Mistachkin <joe@mistachkin.com> - * generic/tclFileName.c (TclDoGlob): match incr with existing decr. + * generic/tclNotify.c: [Bug 2820349]: Ensure that queued events are + freed once processed. - * unix/Makefile.in: add valgrindshell target and update default - VALGRINDARGS. User can override, or add to it with VALGRIND_OPTS env - var. +2009-07-21 Kevin B. Kenny <kennykb@acm.org> - * generic/tclBasic.c (Tcl_CreateInterp): init iPtr->threadId + * library/tzdata/Asia/Dhaka: + * library/tzdata/Indian/Mauritius: Olson's tzdata2009k. - * generic/tclIOGT.c (ExecuteCallback): - * generic/tclPkg.c (Tcl_PkgRequireEx): replace Tcl_GlobalEval(Obj) - with more efficient Tcl_Eval(Obj)Ex +2009-07-20 Donal K. Fellows <dkf@users.sf.net> -2006-08-22 Andreas Kupries <andreask@activestate.com> + * generic/tclCmdMZ.c (StringIsCmd): Reorganize so that [string is] is + more efficient when parsing things that are correct, at a cost of + making the empty string test slightly more costly. With this, the cost + of doing [string is integer -strict $x] matches [catch {expr {$x+0}}] + in the successful case, and greatly outstrips it in the failing case. - * unix/tclUnixNotfy.c (Tcl_WaitForEvent): Fixed broken if syntax - committed 2006-08-21 by Daniel. The broken syntax is visible to all - unix platforms, but not on OSX for machines which HAVE_COREFOUNDATION. +2009-07-16 Don Porter <dgp@users.sourceforge.net> -2006-08-21 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdIL.c: Removed unused variables. + * generic/tclCompile.c: + * generic/tclVar.c: + * unix/tclUnixChan.c: - * generic/tclIOUtil.c: Revisions to complete the thread finalization - of the cwdPathPtr. [Bug 1536142] + * generic/tclScan.c: Typo in ACCEPT_NAN configuration. -2006-08-21 Daniel Steffen <das@users.sourceforge.net> + * generic/tclStrToD.c: [Bug 2819200]: Set floating point control + register on MIPS systems so that the gradual underflow expected by Tcl + is in effect. - * macosx/tclMacOSXNotify.c (Tcl_WaitForEvent): if the run loop is - already running (e.g. if Tcl_WaitForEvent was called recursively), - re-run it in a custom run loop mode containing only the source for the - notifier thread, otherwise wakeups from other sources added to the - common run loop modes might get lost; sync panic msg changes from - HEAD. +2009-07-14 Andreas Kupries <andreask@activestate.com> - * unix/tclUnixNotfy.c (Tcl_WaitForEvent): on 64-bit Darwin, - pthread_cond_timedwait() appears to have a bug that causes it to wait - forever when passed an absolute time which has already been exceeded - by the system time; as a workaround, when given a very brief timeout, - just do a poll on that platform. [Bug 1457797] + * generic/tclBasic.c (DeleteInterpProc,TclArgumentBCEnter, + (TclArgumentBCRelease, TclArgumentGet): + * generic/tclCompile.c (EnterCmdWordIndex, TclCleanupByteCode, + (TclInitCompileEnv, TclCompileScript): + * generic/tclCompile.h (ExtCmdLoc): + * generic/tclExecute.c (TclExecuteByteCode): + * generic/tclInt.h (ExtIndex, CFWordBC): + * tests/info.test (info-39.0): - * unix/tclUnixPort.h (Darwin): override potentially faulty configure - detection of termios availability in all cases, since termios is known - to be present on all Mac OS X releases since 10.0. [Bug 497147] + Backport of some changes made to the Tcl head, to handle literal + sharing better. The code here is much simpler (trimmed down) compared + to the head as the 8.5 branch is not bytecode compiling whole files, + and doesn't compile eval'd code either. -2006-08-18 Daniel Steffen <das@users.sourceforge.net> + Reworked the handling of literal command arguments in bytecode to be + saved (compiler) and used (execution) per command (see the + TCL_INVOKE_STK* instructions), and not per the whole bytecode. This + removes the problems with location data caused by literal sharing in + proc bodies. Simplified the associated datastructures (ExtIndex is + gone, as is the function EnterCmdWordIndex). - * unix/tcl.m4 (Darwin): add support for --enable-64bit on x86_64, for - universal builds including x86_64, for 64-bit CoreFoundation on - Leopard and for use of -mmacosx-version-min instead of - MACOSX_DEPLOYMENT_TARGET. - * unix/configure: autoconf-2.13 +2009-07-01 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tcl.h: add fixes for building on Leopard and support - * unix/tclUnixPort.h: for 64-bit CoreFoundation on Leopard. + * win/tclWinInt.h: [Bug 2806622]: Handle the GetUserName API call + * win/tclWin32Dll.c: via the tclWinProcs indirection structure. This + * win/tclWinInit.c: fixes a problem obtaining the username when the + USERNAME environment variable is unset. - * unix/tclUnixPort.h: on Darwin x86_64, disable use of vfork as it - causes execve to fail intermittently. (rdar://4685553) - - * macosx/README: updates for x86_64 support and Xcode 2.4. +2009-06-15 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixChan.c (TclUnixWaitForFile): with timeout < 0, if - select() returns early (e.g. due to a signal), call it again instead - of returning a timeout result. Fixes intermittent event-13.8 failures. + * generic/tclStringObj.c: sprintf() -> Tcl_ObjPrintf() conversion. -2006-08-09 Don Porter <dgp@users.sourceforge.net> +2009-06-13 Don Porter <dgp@users.sourceforge.net> - * generic/tclEncoding.c: Replace buffer copy in for loop with - call to memcpy(). Thanks to afredd. [Patch 1530262] + * generic/tclCompile.c: The value stashed in iPtr->compiledProcPtr + * generic/tclProc.c: when compiling a proc survives too long. We + * tests/execute.test: only need it there long enough for the right + TclInitCompileEnv() call to re-stash it into envPtr->procPtr. Once + that is done, the CompileEnv controls. If we let the value of + iPtr->compiledProcPtr linger, though, then any other bytecode compile + operation that takes place will also have its CompileEnv initialized + with it, and that's not correct. The value is meant to control the + compile of the proc body only, not other compile tasks that happen + along. Thanks to Carlos Tasada for discovering and reporting the + problem. [Bug 2802881]. -2006-08-03 Daniel Steffen <das@users.sourceforge.net> +2009-06-10 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixPipe.c (TclpCreateProcess): for USE_VFORK: ensure - standard channels are initialized before vfork() so that the child - doesn't potentially corrupt global state in the parent's address - space. + * generic/tclStringObj.c: Revised [format] to not overflow the + integer calculations computing the length of the %ll formats of + really big integers. Also added protections so that [format]s that + would produce results overflowing the maximum string length of Tcl + values throw a normal Tcl error instead of a panic. [Bug 2801413] -2006-07-30 Kevin Kenny <kennykb@acm.org> +2006-06-09 Kevin B. Kenny <kennykb@acm.org> - * tests/clock.test: Allowed UTC as a synonym for GMT in two tests that - indirectly invoke 'strftime' with the result of 'gmtime' to fix a - bogus test failure on FreeBSD systems. [Bug 1513489] - -2006-07-30 Joe English <jenglish@users.sourceforge.net> + * generic/tclGetDate.y: Fixed a thread safety bug in the generated + * library/clock.tcl: Bison parser (needed a %pure-parser + * tests/clock.test: declaration to avoid static variables). + Discovered that the %pure-parser declaration + allowed for returning the Bison error message + to the Tcl caller in the event of a syntax + error, so did so. + * generic/tclDate.c: bison 2.3 - * doc/AppInit.3: Fix typo [Bug 1496886] +2006-06-08 Kevin B. Kenny <kennykb@acm.org> -2006-07-20 Daniel Steffen <das@users.sourceforge.net> + * library/tzdata/Asia/Dhaka: New DST rule for Bangladesh. + (Olson's tzdata2009i.) - * macosx/tclMacOSXNotify.c (Tcl_InitNotifier, Tcl_WaitForEvent): - create notifier thread lazily upon first call to Tcl_WaitForEvent() - rather than in Tcl_InitNotifier(). Allows calling exeve() in processes - where the event loop has not yet been run (Darwin's execve() fails in - processes with more than one thread), in particular allows embedders - to call fork() followed by execve(), previously the pthread_atfork() - child handler's call to Tcl_InitNotifier() would immediately recreate - the notifier thread in the child after a fork. +2009-06-02 Don Porter <dgp@users.sourceforge.net> - * macosx/tclMacOSXNotify.c (Tcl_InitNotifier): add support for - * unix/tclUnixFCmd.c (DoRenameFile, CopyFileAtts): weakly importing - * unix/tclUnixInit.c (TclpSetInitialEncodings): symbols not - available on OSX 10.2 or 10.3, enables binaires built on later OSX - versions to run on earlier ones. - * macosx/README: document how to enable weak-linking; cleanup. - * unix/tclUnixPort.h: add support for weak-linking; conditionalize - AvailabilityMacros.h inclusion; only disable realpath on 10.2 or - earlier when threads are enabled. - * unix/tclLoadDyld.c (TclpLoadMemoryGetBuffer): change runtime Darwin - * unix/tclUnixInit.c (TclpInitPlatform): release check to use - global initialized once - * unix/tclUnixFCmd.c (DoRenameFile, TclpObjNormalizePath): add runtime - Darwin release check to determine if realpath is threadsafe. - * unix/configure.in: add check on Darwin for compiler support of weak - * unix/tcl.m4: import and for AvailabilityMacros.h header; move - Darwin specific checks & defines that are only relevant to the tcl - build out of tcl.m4; restrict framework option to Darwin; cleanup - quoting. - * unix/configure: autoconf-2.13 + * generic/tclExecute.c: Replace dynamically-initialized table with + a table of static constants in the lookup table for exponent operator + computations that fit in a 64 bit integer result. - * unix/tclLoadDyld.c (TclpLoadMemory): - * unix/tclUnixPipe.c (TclpCreateProcess): fix signed-with-unsigned - comparison and other warnings from gcc4 -Wextra. + * generic/tclExecute.c: Corrected implementations and selection + logic of the INST_EXPON instruction to fix [Bug 2798543]. -2006-07-13 Andreas Kupries <andreask@activestate.com> +2009-06-01 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixPort.h: Added the inclusion of <AvailabilityMacros.h>. - The missing header caused the upcoming #if conditions to wrongly - exclude realpath, causing file normalize to ignore symbolic links in - the path. + * tests/expr.test: Added many tests demonstrating the broken + cases of [Bug 2798543]. -2006-07-11 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> +2009-05-30 Kevin B. Kenny <kennykb@acm.org> - * generic/tclAsync.c: Made Tcl_AsyncDelete() more tolerant when called - after all thread TSD has been garbage-collected. + * library/tzdata/Africa/Cairo: + * library/tzdata/Asia/Amman: Olson's tzdata2009h. -2006-07-10 Jeff Hobbs <jeffh@ActiveState.com> +2009-05-29 Andreas Kupries <andreask@activestate.com> - * generic/tclIO.c (Tcl_CreateChannel): allow Tcl std channel - inheritance to be #defined out (default remains in). + * library/platform/platform.tcl: Fixed handling of cpu ia64, + * library/platform/pkgIndex.tcl: taking ia64_32 into account + * unix/Makefile.in: now. Bumped version to 1.0.5. Updated the + * win/Makefile.in: installation commands. -2006-06-15 Don Porter <dgp@users.sourceforge.net> +2009-05-07 Miguel Sofer <msofer@users.sf.net> - * changes: changes to start prep for an 8.4.14 release. + * generic/tclObj.c (Tcl_GetCommandFromObj): fix for bug [2785893], + insure that a command in a deleted namespace cannot be found + through a cached name. -2006-06-14 Daniel Steffen <das@users.sourceforge.net> +2009-05-06 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixPort.h (Darwin): support for MAC_OS_X_VERSION_MAX_ALLOWED - define from AvailabilityMacros.h: override configure detection and only - use API available in the indicated OS version or earlier. + * generic/tclCmdMZ.c: Improve overflow error message from + [string repeat]. [Bug 2582327] -2006-06-14 Pat Thoyts <patthoyts@users.sourceforge.net> +2009-04-28 Jeff Hobbs <jeffh@ActiveState.com> - * generic/regerror.c: Enable building Tcl with Microsoft's latest - * generic/tcl.h: compiler offering (VS2005). We have to handle - * generic/tclDate.c: a number of oddities as they have deprecated - * tests/env.test: most of the standard C library and now - * win/makefile.vc: generate manifest files to be linked into the - * win/nmakehlp.c: binaries. [Bug 1424909] - * win/rules.vc: - * win/tclWinTime.c: + * unix/tcl.m4, unix/configure (SC_CONFIG_CFLAGS): harden the check + to add _r to CC on AIX with threads. -2006-06-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2009-04-27 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * unix/tclLoadDl.c (TclpDlopen): Workaround for a compiler bug in Sun - Forte 6. [Bug 1503729] + * generic/tclInt.h: Backport fix for [Bug 1028264]: WSACleanup() too early. + * generic/tclEvent.c: The fix introduces "late exit handlers" + * win/tclWinSock.c: for similar late process-wide cleanups. -2006-06-06 Don Porter <dgp@users.sourceforge.net> +2009-04-27 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * doc/GetStdChan.3: Added recommendation that each call to - Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel(). + * win/tclWinSock.c: Backport fix for [Bug 2446662]: resync Win + behavior on RST with that of unix (EOF). -2006-05-31 Jeff Hobbs <jeffh@ActiveState.com> +2009-04-27 Donal K. Fellows <dkf@users.sf.net> - * generic/tclNamesp.c (NamespaceInscopeCmd): revert [Bug 1400572] - fix of 2006-01-09 for [namespace inscope] as it seems to mess with - itcl scope decoding. Leaving namespace-29.6 test failure until final - cause it determined. + * doc/concat.n (EXAMPLES): [Bug 2780680]: Rewrote so that the spacing + of result messages is correct. (The exact way they were wrong was + different when rendered through groff or as HTML, but it was still + wrong both ways.) -2006-05-29 Jeff Hobbs <jeffh@ActiveState.com> +2009-04-24 Stuart Cassoff <stwo@users.sf.net> - * generic/tcl.h (Tcl_DecrRefCount): use if/else construct to allow - placement in unbraced outer if/else conditions. (jcw) + * unix/Makefile.in: [Patch 2769530]: Don't chmod/exec installManPage. -2006-05-27 Daniel Steffen <das@users.sourceforge.net> +2009-04-15 Don Porter <dgp@users.sourceforge.net> - * macosx/tclMacOSXNotify.c: implemented pthread_atfork() handler that - * unix/tcl.m4 (Darwin): recreates CoreFoundation state and notifier - thread in the child after a fork(). Note that pthread_atfork() is - available starting with Tiger only. Because vfork() is used by the core - on Darwin, [exec]/[open] are not affected by this fix, only extensions - or embedders that call fork() directly (such as TclX). However, this - only makes fork() safe from corefoundation tcl with --disable-threads; - as on all platforms, forked children may deadlock in threaded tcl due - to the potential for stale locked mutexes in the child. [Patch 923072] - * unix/configure: autoconf-2.59 + *** 8.5.7 TAGGED FOR RELEASE *** -2006-05-24 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclStringObj.c: AppendUnicodeToUnicodeRep failed + to set stringPtr->allocated to 0, leading to crashes. - * unix/tcl.m4 (SC_CONFIG_SYSTEM): Fixed quoting of command script to - awk; it was a rarely used branch, but it was wrong. [Bug 1494160] + * changes: Update for 8.5.7 release. -2006-05-13 Don Porter <dgp@users.sourceforge.net> +2009-04-14 Stuart Cassoff <stwo@users.sourceforge.net> - * generic/tclFileName.c (TclDoGlob): Disabled the partial - normalization done by the recursive glob routine, since changing the - precise string of the pathname broke [glob] on some Tcl_Filesystems. - [Bug 943995] + * unix/tcl.m4: Removed -Wno-implicit-int from CFLAGS_WARNING. - * generic/tclProc.c (ProcCompileProc): When a bump of the compile - epoch forces the re-compile of a proc body, take care not to - overwrite any Proc struct that may be referred to on the active - call stack. This fixes [Bug 1482718]. Note that the fix will not be - effective for code that calls the private routine TclProcCompileProc() - directly. +2008-04-14 Kevin B. Kenny <kennykb@acm.org> -2006-05-05 Don Porter <dgp@users.sourceforge.net> + * library/tzdata/Asia/Karachi: Updated rules for Pakistan Summer + Time (Olson's tzdata2009f) - * generic/tclMain.c (Tcl_Main): Corrected flaw that required - * tests/main.test: (Tcl_Main-4.5): processing of one interactive - command before passing control to the loop routine registered with - Tcl_SetMainLoop() [Bug 1481986] +2009-04-10 Don Porter <dgp@users.sourceforge.net> -2006-05-04 Don Porter <dgp@users.sourceforge.net> + * changes: Update for 8.5.7 release. - * README: Bump version number to 8.4.14 - * generic/tcl.h: + * generic/tcl.h: Bump to 8.5.7 for release. + * library/init.tcl: * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: - * win/README.binary: * win/configure.in: + * README: - * unix/configure: autoconf-2.13 + * unix/configure: autoconf-2.59 * win/configure: - * generic/tclExecute.c (ExprSrandFunc): Restore acceptance of wide - * tests/expr-old.test: integer values by srand() [Bug 1480509] + * generic/tclStringObj.c (UpdateStringOfString): Fix bug detected + by compiler warning about undefined "dst". -2006-04-12 Don Porter <dgp@users.sourceforge.net> + * tests/httpd: Backport new tests for http 2.7.3. + * tests/http.tcl: - *** 8.4.13 TAGGED FOR RELEASE *** +2009-04-10 Daniel Steffen <das@users.sourceforge.net> - * changes: updates for another RC. + * unix/tclUnixChan.c: TclUnixWaitForFile(): use FD_* macros + * macosx/tclMacOSXNotify.c: to manipulate select masks (Cassoff). + [Bug 1960647] -2006-04-11 Don Porter <dgp@users.sourceforge.net> + * unix/tclLoadDyld.c: use RTLD_GLOBAL instead of RTLD_LOCAL. + [Bug 1961211] - * generic/tclCmdMZ.c: Stop some interference between enter traces - * tests/trace.test: and enterstep traces. [Bug 1458266] + * macosx/tclMacOSXNotify.c: revise CoreFoundation notifier to allow + embedding into applications that + already have a CFRunLoop running and + want to run the tcl event loop via + Tcl_ServiceModeHook(TCL_SERVICE_ALL). -2006-04-10 Don Porter <dgp@users.sourceforge.net> + * macosx/tclMacOSXNotify.c: add CFRunLoop based Tcl_Sleep() and + * unix/tclUnixChan.c: TclUnixWaitForFile() implementations + * unix/tclUnixEvent.c: and disable select() based ones in + CoreFoundation builds. - * changes: updates for another RC. + * unix/tclUnixNotify.c: simplify, sync with tclMacOSXNotify.c. -2006-04-06 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclRegexp.c (FinalizeRegexp): full reset data to indicate - readiness for reinitialization. + * generic/tclInt.decls: add TclMacOSXNotifierAddRunLoopMode() + * generic/tclIntPlatDecls.h: internal API, regen. + * generic/tclStubInit.c: -2006-04-06 Don Porter <dgp@users.sourceforge.net> + * unix/configure.in (Darwin): use Darwin SUSv3 extensions if + available; remove /Network locations + from default tcl package search path + (NFS mounted locations and thus slow). + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 - * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): It seems there - * tests/indexObj.test: are extensions that rely on the prior behavior - * doc/GetIndex.3: that the empty string cannot succeed as a - unique prefix matcher, so I'm restoring Donal Fellows's solution. - Added mention of this detail to the documentation. [Bug 1464039] + * macosx/tclMacOSXBundle.c: on Mac OS X 10.4 and later, replace + deprecated NSModule API by dlfcn API. -2006-04-06 Daniel Steffen <das@users.sourceforge.net> +2009-04-09 Kevin B. Kenny <kennykb@acm.org> - * unix/tcl.m4: removed TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING - define on Darwin. [Bug 1457515] - * unix/configure: autoconf-2.13 + * tools/tclZIC.tcl: Always emit Unix-style line terminators. + * library/tzdata: Olson's tzdata2009e. -2006-04-05 Don Porter <dgp@users.sourceforge.net> +2009-04-09 Don Porter <dgp@users.sourceforge.net> - * library/reg/pkgIndex.tcl: Long overlooked bump to registry - * win/tclWinReg.c: package version 1.1.4 (should have - been done for the Tcl 8.4.8 release!) + * library/http/http.tcl: Backport http 2.7.3 from HEAD for + * library/http/pkgIndex.tcl: bundling with the Tcl 8.5.7 release. + * unix/Makefile.in: + * win/Makefile.in: - * library/dde/pkgIndex.tcl: Long overlooked bump to dde package - * win/tclWinDde.c: version 1.2.4 (should have been done - for the Tcl 8.4.8 release!) +2009-04-08 Andreas Kupries <andreask@activestate.com> -2006-04-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * library/platform/platform.tcl: Extended the darwin sections to + * library/platform/pkgIndex.tcl: add a kernel version number to + * unix/Makefile.in: the identifier for anything from Leopard (10.5) + * win/Makefile.in: on up. Extended patterns for same. Extended cpu + * doc/platform.n: recognition for 64bit Tcl running on a 32bit + kernel on a 64bit processor (By Daniel Steffen). Bumped version to + 1.0.4. Updated Makefiles. - * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Allow empty - strings to be matched by the Tcl_GetIndexFromObj machinery, in the - same manner as any other key. [Bug 1464039] - -2006-04-04 Don Porter <dgp@users.sourceforge.net> - - * generic/tclPkg.c: Revised Bug 1162286 fix from 2005-11-08 to be - * tests/pkg.test: even more forgiving of package version - mismatch errors in [package ifneeded] commands, not even logging any - warning messages. This further reduces the - ***POTENTIAL INCOMPATIBILITY*** noted for that change. +2009-04-08 Don Porter <dgp@users.sourceforge.net> -2006-04-03 Andreas Kupries <andreask@activestate.com> + * library/tcltest/tcltest.tcl: Converted [eval]s (some unsafe!) to + * library/tcltest/pkgIndex.tcl: {*} in tcltest package. [Bug 2570363] + * unix/Makefile.in: => tcltest 2.3.1 + * win/Makefile.in: - * generic/tclIO.c (ReadChars): Added check, panic and commentary to a - piece of code which relies on BUFFER_PADDING to create enough space at - the beginning of each buffer for the insertion of partial multibyte - data at the beginning of a buffer. Commentary explains why this code - is OK, and the panic is as a precaution if someone twiddled the - BUFFER_PADDING into uselessness. +2009-04-07 Don Porter <dgp@users.sourceforge.net> - * generic/tclIO.c (ReadChars): Temporarily suppress the use of - TCL_ENCODING_END set when EOF was reached while the buffer we are - converting is not truly the last buffer in the queue. Together with - the Utf bug below it was possible to completely wreck the buffer data - structures, eventually crashing Tcl. [Bug 1462248] + * generic/tclStringObj.c: Completed backports of fixes for + [Bug 2494093] and [Bug 2553906]. - * generic/tclEncoding.c (UtfToUtfProc): Stop accessing memory beyond - the end of the input buffer when TCL_ENCODING_END is set and the last - bytes of the buffer start a multi-byte sequence. This bug contributed - to [Bug 1462248]. +2009-03-30 Don Porter <dgp@users.sourceforge.net> -2006-03-28 Jeff Hobbs <jeffh@ActiveState.com> + * doc/Alloc.3: Size argument is "unsigned int". [Bug 2556263] - * win/configure, win/tcl.m4: define MACHINE for gcc builds as well. - Needed by Tk for manifest generation. + * generic/tclStringObj.c: Added protections from invalid memory + * generic/tclTestObj.c: accesses when we append (some part of) + * tests/stringObj.test: a Tcl_Obj to itself. Added the + appendself and appendself2 subcommands to the [teststringobj] testing + command and added tests to the test suite. [Bug 2603158] - * win/tclWinConsole.c: revert 2005-11-03 [Patch 1256872] change to add - win32 unicode console support as it broke the ability to modify the - encoding to the console. +2009-03-27 Don Porter <dgp@users.sourceforge.net> -2006-03-28 Daniel Steffen <das@users.sourceforge.net> + * generic/tclPathObj.c (TclPathPart): TclPathPart() was computing + * tests/fileName.test: the wrong results for both [file dirname] and + [file tail] on "path" arguments with the PATHFLAGS != 0 intrep and + with an empty string for the "joined-on" part. [Bug 2710920] - * unix/tclUnixFCmd.c (TclpObjNormalizePath): deal with *BSD/Darwin - realpath() converting relative paths into absolute paths. [Bug 1064247] +2009-03-20 Don Porter <dgp@users.sourceforge.net> -2006-03-28 Vince Darley <vincentdarley@sourceforge.net> + * generic/tclStringObj.c: Test stringObj-6.9 checks that + * tests/stringObj.test: Tcl_AppendStringsToObj() no longer + crashes when operating on a pure unicode value. [Bug 2597185] - * generic/tclIOUtil.c: fix to nativeFilesystemRecord comparisons - (lesser part of [Bug 1064247]) + * generic/tclExecute.c (INST_CONCAT1): Panic when appends overflow + the max length of a Tcl value. [Bug 2669109] -2006-03-27 Pat Thoyts <patthoyts@users.sourceforge.net> +2009-03-18 Don Porter <dgp@users.sourceforge.net> - * win/tclWinTest.c: Fixes for [Bug 1456373] (mingw-gcc issue) + * win/tclWinFile.c (TclpObjNormalizePath): Corrected Tcl_Obj leak. + Thanks to Joe Mistachkin for detection and patch. [Bug 2688184]. -2006-03-23 Don Porter <dgp@users.sourceforge.net> +2009-03-15 Donal K. Fellows <dkf@users.sf.net> - * tests/expr.test: Nan self-inquality test silenced. [Bug 761471] + * generic/tclPosixStr.c (Tcl_SignalId,Tcl_SignalMsg): [Patch 1513655]: + Added support for SIGINFO, which is present on BSD platforms. -2006-03-22 Don Porter <dgp@users.sourceforge.net> +2009-02-20 Don Porter <dgp@users.sourceforge.net> - * changes: updates for another RC. + * generic/tclPathObj.c: Fixed mistaken logic in TclFSGetPathType() + * tests/fileName.test: that assumed (not "absolute" => "relative"). + This is a false assumption on Windows, where "volumerelative" is + another possibility. [Bug 2571597]. -2006-03-18 Vince Darley <vincentdarley@sourceforge.net> +2009-02-17 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclTest.c: - * win/tclWinFile.c: - * win/tclWinTest.c: - * tests/fCmd.test: - * tests/winFCmd.test: - * tests/tcltest.test: Backport of [file writable] fixes for Windows - from HEAD. [Bug 1193497] + * win/tcl.m4, win/configure: Check if cl groks _WIN64 already to + avoid CC manipulation that can screw up later configure checks. + Use 'd'ebug runtime in 64-bit builds. -2006-03-16 Andreas Kupries <andreask@activestate.com> +2009-02-05 Don Porter <dgp@users.sourceforge.net> - * doc/open.n: Documented the changed behaviour of 'a'ppend mode. - - * tests/io.test (io-43.1 io-44.[1234]): Rewritten to be - self-contained with regard to setup and cleanup. [Bug 681793] + * generic/tclStringObj.c: Added overflow protections to the + AppendUtfToUtfRep routine to either avoid invalid arguments and + crashes, or to replace them with controlled panics. [Bug 2561794] - * generic/tclIOUtil.c (TclGetOpenMode): Added the flag O_APPEND to the - list of POSIX modes used when opening a file for 'a'ppend. This - enables the proper automatic seek-to-end-on-write by the OS. See [Bug - 680143] for longer discussion. +2009-02-04 Don Porter <dgp@users.sourceforge.net> - * tests/ioCmd.test (iocmd-13.7.*): Extended the testsuite to check the - new handling of 'a'. + * generic/tclStringObj.c (SetUnicodeObj): Corrected failure of + Tcl_SetUnicodeObj() to panic on a shared object. [Bug 2561488]. Also + factored out common code to reduce duplication. -2006-03-15 Andreas Kupries <andreask@activestate.com> + * generic/tclCmdMZ.c: Prevent crashes due to int overflow of the + length of the result of [string repeat]. [Bug 2561746] - * tests/socket.test: Extended the timeout in socket-11.11 from 10 to - 40 seconds to allow for really slow machines. Also extended - actual/expected results with value of variable 'done' to make it - clearer when a test fails due to a timeout. [Bug 792159] +2009-01-29 Donal K. Fellows <dkf@users.sf.net> -2006-03-14 Andreas Kupries <andreask@activestate.com> + * generic/tclNamesp.c (Tcl_FindCommand): [Bug 2519474]: Ensure that + the path is not searched when the TCL_NAMESPACE_ONLY flag is given. - * generic/tclPipe.c (TclCreatePipeline): Modified the processing of - pipebars to fail if the last bar is followed only by redirections. - [Bug 768659] +2009-01-22 Kevin B. Kenny <kennykb@acm.org> -2006-03-14 Andreas Kupries <andreask@activestate.com> + * unix/tcl.m4: Corrected a typo ($(SHLIB_VERSION) should be + ${SHLIB_VERSION}). + * unix/configure: Autoconf 2.59 - * doc/fconfigure.n: Clarified that -translation is binary is reported - as lf when queried, because it is identical to lf, except for the - special additional behaviour when setting it. [Bug 666770] +2009-01-21 Andreas Kupries <andreask@activestate.com> -2006-03-14 Andreas Kupries <andreask@activestate.com> + * generic/tclIORChan.c (ReflectClose): Fix for [Bug 2458202]. + Closing a channel may supply NULL for the 'interp'. Test for + finalization needs to be different, and one place has to pull the + interp out of the channel instead. - * win/tclWinPipe.c (Tcl_WaitPid): Backport of fix made to the head by - David Gravereaux in 2004. See ChangeLog entry 2004-01-19. [Bug 1381436] +2009-01-19 Kevin B. Kenny <kennykb@acm.org> - 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] + * unix/Makefile.in: Added a CONFIG_INSTALL_DIR parameter so that + * unix/tcl.m4: distributors can control where tclConfig.sh goes. + Made the installation of 'ldAix' conditional + upon actually being on an AIX system. Allowed for downstream + packagers to customize SHLIB_VERSION on BSD-derived systems. + Thanks to Stuart Cassoff for [Patch 907924]. + * unix/configure: Autoconf 2.59 -2006-03-13 Don Porter <dgp@users.sourceforge.net> +2009-01-09 Don Porter <dgp@users.sourceforge.net> - * generic/tclEncoding.c: Report error when an escape encoding - is missing one of its sub-encodings [Bug 506653] + * generic/tclStringObj.c (STRING_SIZE): Corrected failure to limit + memory allocation requests to the sizes that can be supported by + Tcl's memory allocation routines. [Bug 2494093]. - * unix/configure.in: Revert change from 2005-07-26 that sometimes - * unix/configure: added $prefix/share to the tcl_pkgPath. - See [Patch 1231015]. autoconf-2.13. +2009-01-08 Don Porter <dgp@users.sourceforge.net> -2006-03-10 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclStringObj.c (STRING_UALLOC): Added missing parens + required to get correct results out of things like + STRING_UALLOC(num + append). [Bug 2494093]. - -- Summary of changes fixing [Bug 1437595] -- +2009-01-06 Donal K. Fellows <dkf@users.sf.net> - * generic/tclEvent.c: Cosmetic touches and identation - * generic/tclInt.h: Added TclpFinalizeSockets() call. + * generic/tclDictObj.c (DictIncrCmd): Corrected twiddling in internals + of dictionaries so that literals can't get destroyed. - * generic/tclIO.c: Calls TclpFinalizeSockets() as part of the - TclFinalizeIOSubsystem(). + * tests/expr.test, tests/string.test: Eliminate non-ASCII characters. + [Bugs 2006884, 2006879] - * unix/tclUnixSock: Added no-op TclpFinalizeSockets(). - - * mac/tclMacSock.c: - * win/tclWinPipe.c - * win/tclWinSock.c: Finalization of the sockets/pipes is now solely - done in TclpFinalizeSockets() and TclpFinalizePipes() and not over the - thread-exit handler, because the order of actions the Tcl generic core - will impose may result in cores/hangs if the thread exit handler tears - down corresponding subsystem(s) too early. +2009-01-03 Kevin B. Kenny <kennykb@acm.org>: -2006-03-10 Vince Darley <vincentdarley@sourceforge.net> + * library/clock.tcl (tcl::clock::add): Fixed error message formatting + in the case where [clock add] is presented with a bad switch. + * tests/clock.test (clock-65.1) Added a test case for the above + problem [Bug 2481670]. - * win/tclWin32Dll.c: - * win/tclWinInt.h: - * win/tclWinFile.c: backported some fixes from HEAD relating to 'file - readable' and 'file writable', but main 'file writable' bug still - outstanding. +2008-12-21 Don Porter <dgp@users.sourceforge.net> -2006-03-07 Don Porter <dgp@users.sourceforge.net> + *** 8.5.6 TAGGED FOR RELEASE *** - * README: Bump version number to 8.4.13 and update - * changes: changes to start prep for an 8.4.13 release. - * generic/tcl.h: + * generic/tcl.h: Bump to 8.5.6 for release. + * library/init.tcl: * tools/tcl.wse.in: - * unix/configure{.in}: + * unix/configure.in: * unix/tcl.spec: - * win/README.binary: - * win/configure{.in}: - - * tests/parse.test: Missing constraint - -2006-03-06 Don Porter <dgp@users.sourceforge.net> - - * generic/tclBasic.c: Revised handling of TCL_EVAL_* flags to - * tests/parse.test: simplify TclEvalObjvInternal and to correct - the auto-loading of alias targets (parse-8.12). [Bug 1444291] - -2006-03-02 Jeff Hobbs <jeffh@ActiveState.com> - - * win/Makefile.in: convert _NATIVE paths to use / to avoid ".\" - path-as-escape issue. - - * unix/tcl.m4, win/tcl.m4: []-quote ac_defun functions. - -2006-03-02 Pat Thoyts <patthoyts@users.sourceforge.net> - - * unix/tcl.m4: Fix for [Tk Bug 1334613] to sort out shared library - * unix/configure: issues on NetBSD. Regenerated configure script. - -2006-02-28 Don Porter <dgp@users.sourceforge.net> - - * generic/tclBasic.c: Corrections to be sure that TCL_EVAL_GLOBAL - * tests/parse.test: evaluations act the same as [uplevel #0] - * tests/trace.test: evaluations, even when execution traces or - invocations of [::unknown] are present. [Bug 1439836] - -2006-02-16 Don Porter <dgp@users.sourceforge.net> + * win/configure.in: + * README: - * generic/tclIndexObj.c: Disallow the "ambiguous" error message - * tests/indexObj.test: when TCL_EXACT matching is requested. + * unix/configure: autoconf-2.59 + * win/configure: -2006-02-15 Don Porter <dgp@users.sourceforge.net> + * changes: Update for 8.5.6 release. - * generic/tclIO.c: Made several routines tolerant of - * generic/tclIOUtil.c: interp == NULL arguments. [Bug 1380662] + * library/tclIndex: Removed reference to no-longer-extant procedure + 'tclLdAout'. + * doc/library.n: Corrected mention of 'auto_exec' to 'auto_execok'. + [Patch 2114900] thanks to Stu Cassoff <stwo@users.sf.net> + Backport of 2008-11-26 commit from Kevin Kenny. -2006-02-09 Don Porter <dgp@users.sourceforge.net> + * win/tclWinThrd.c (TclpThreadCreate): We need to initialize the + thread id variable to 0 as on 64 bit windows this is a pointer sized + field while windows only fills it with a 32 bit value. The result is + an inability to join the threads as the ids cannot be matched. + Backport of 2008-10-13 commit from Pat Thoyts. - * tests/main.test (Tcl_Main-6.7): Improved robustness of command - auto-completion test. [Bug 1422736] +2008-12-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2006-01-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclExecute.c (TEBC:INST_DICT_GET): Make sure that the result + is empty when generating an error message. [Bug 2431847] - * unix/tclUnixInit.c (TclpInitPlatform): Improved conditions on when - to update the FP rounding mode on FreeBSD, taken from FreeBSD port. +2008-12-12 Jan Nijtmans <nijtmans@users.sf.net> -2006-01-23 Miguel Sofer <msofer@users.sf.net> + * library/clock.tcl (ProcessPosixTimeZone): Fix time change in Eastern + Europe (not 3:00 but 4:00 local time) [Bug 2207436] - * generic/tclStringObj.c (Tcl_GetRange): - * tests/stringTest (string-12.21):fixed incorrect handling of internal - rep in Tcl_GetRange. Thanks to twylite and Peter Spjuth. [Bug 1410553] +2008-12-11 Andreas Kupries <andreask@activestate.com> -2006-01-16 Reinhard Max <max@suse.de> + * generic/tclIO.c (SetChannelFromAny and related): Modified the + * tests/io.test: internal representation of the tclChannelType to + contain not only the ChannelState pointer, but also a reference to the + interpreter it was made in. Invalidate and recompute the internal + representation when it is used in a different interpreter (like + cmdName intrep's). Added testcase. [Bug 2407783] - * generic/tclPipe.c (FileForRedirect): Prevent nameString from being - freed without having been initialized. - * tests/exec.test: Added a test for the above. - -2006-01-12 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> +2008-12-11 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclIOUtil.c (Tcl_FSGetInternalRep): fixed potential - overwriting of already freed memory which caused all kinds of (rare - but reproducible) coredumps all over the place. + * library/clock.tcl (ProcessPosixTimeZone): Fallback to European time + zone DST rules, when the timezone is between 0 and -12. [Bug 2207436] + * tests/clock.test (clock-52.[23]): Test cases. -2006-01-11 Don Porter <dgp@users.sourceforge.net> +2008-12-10 Kevin B. Kenny <kennykb@acm.org> - * tests/error.test (error-7.0): Test the timing of write traces on - ::errorInfo. [Bug 1397843] + * library/tzdata/*: Update from Olson's tzdata2008i. -2006-01-10 Daniel Steffen <das@users.sourceforge.net> - - * unix/configure: add caching, use AC_CACHE_CHECK instead of - * unix/configure.in: AC_CACHE_VAL where possible, consistent message - * unix/tcl.m4: quoting, sync relevant tclconfig/tcl.m4 and HEAD - changes and gratuitous formatting differences, fix SC_CONFIG_MANPAGES - with default argument, Darwin improvements to SC_LOAD_*CONFIG. - -2006-01-09 Don Porter <dgp@users.sourceforge.net> - - * generic/tclNamesp.c (NamespaceInscopeCmd): [namespace inscope] - * tests/namespace.test: commands were not reported by [info level]. - [Bug 1400572] - -2005-12-20 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * generic/tclThreadAlloc.c (Tcl_GetMemoryInfo): Format values as longs - and not ints, so they are less likely to wrap on 64-bit machines. - -2005-12-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * doc/Tcl.n: Clarify what is going on in variable substitution - following thread on comp.lang.tcl. - -2005-12-14 Daniel Steffen <das@users.sourceforge.net> +2008-12-04 Don Porter <dgp@users.sourceforge.net> - * generic/tclIOUtil.c: workaround gcc warning "comparison is always - * generic/tclTest.c: false due to limited range of data type". + * generic/tclPathObj.c (Tcl_FSGetNormalizedPath): Added another + flag value TCLPATH_NEEDNORM to mark those intreps which need more + complete normalization attention for correct results. [Bug 2385549] - * unix/configure.in: run check for fts API on all platforms, since - Linux glibc2 and *BSDs also have this and using fts is more efficient - than recursive opendir/readdir (sync with HEAD). - * unix/configure: regen. +2008-12-03 Don Porter <dgp@users.sourceforge.net> -2005-12-12 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclFileName.c (DoGlob): One of the Tcl_FSMatchInDirectory + calls did not have its return code checked. This caused error messages + returned by some Tcl_Filesystem drivers to be swallowed. - * unix/tcl.m4, unix/configure: Fix sh quoting error reported in - bash-3.1+ [Bug 1377619] (schafer) +2008-12-02 Andreas Kupries <andreask@activestate.com> -2005-12-12 Reinhard Max <max@suse.de> + * generic/tclIO.c (TclFinalizeIOSubsystem): Replaced Alexandre + Ferrieux's first patch for [Bug 2270477] with a gentler version, also + supplied by him. - * generic/tclExecute.c (ExprAbsFunc): fixed the abs(MIN_INT) case so - that it doesn't break on compilers that don't assume integers to wrap - around (e.g. gcc-4.1.0). +2008-12-01 Don Porter <dgp@users.sourceforge.net> -2005-12-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclParse.c: Backport fix for [Bug 2251175]. - * tests/lsearch.test (lsearch-10.8..10): If the -start is off the end, - * generic/tclCmdIL.c (Tcl_LsearchObjCmd): searching should find - nothing at all. [Bug 1374778] +2008-11-30 Kevin B. Kenny <kennykb@acm.org> -2005-12-05 Daniel Steffen <das@users.sourceforge.net> + * library/clock.tcl (format, ParseClockScanFormat): Added a [string + map] to get rid of namespace delimiters before caching a scan or + format procedure. [Bug 2362156] + * tests/clock.test (clock-64.[12]): Added test cases for the bug that + was tickled by a namespace delimiter inside a format string. - *** 8.4.12 TAGGED FOR RELEASE *** +2008-11-25 Andreas Kupries <andreask@activestate.com> - * unix/tclUnixPort.h (Darwin): fix incorrect __DARWIN_UNIX03 configure - overrides that were originally copied from Darwin CVS (rdar://3693001). + * generic/tclIO.c (TclFinalizeIOSubsystem): Applied Alexandre + Ferrieux's patch for [Bug 2270477] to prevent infinite looping during + finalization of channels not bound to interpreters. -2005-12-05 Don Porter <dgp@users.sourceforge.net> +2008-08-23 Andreas Kupries <andreask@activestate.com> - * unix/configure.in: Revised fix for [Bug 1034337] from Daniel - * unix/tclUnixFCmd.c: Steffen. Uses fts_*() routines. - * unix/configure: autoconf-2.13 - * changes: Update changes for 8.4.12 release + * generic/tclIO.c: Backport of fix for [Bug 2333466]. -2005-12-04 Daniel Steffen <das@users.sourceforge.net> +2008-11-18 Jan Nijtmans <nijtmans@users.sf.net> - * README: refer to macosx/README instead of mac/README. - * mac/README: add note that mac classic port is no longer supported. + * generic/tcl.decls: Fix signature and implementation of + * generic/tclDecls.h: Tcl_HashStats, such that it conforms + * generic/tclHash.c: to the documentation. [Bug 2308236] + * doc/Hash.3: -2005-12-03 Jeff Hobbs <jeffh@ActiveState.com> +2008-11-13 Jan Nijtmans <nijtmans@users.sf.net> - * README: correct 2 urls + * generic/tclInt.h: Rename static function FSUnloadTempFile to + * generic/tclIOUtil.c: TclFSUnloadTempFile, needed in tclLoad.c -2005-12-01 Don Porter <dgp@users.sourceforge.net> + * generic/tclLoad.c: Fixed [Bug 2269431]: load of shared + objects leaves temporary files on windows - * changes: Update changes for 8.4.12 release +2008-11-10 Andreas Kupries <andreask@activestate.com> -2005-12-01 Daniel Steffen <das@users.sourceforge.net> + * doc/platform_shell.n: Fixed [Bug 2255235], reported by Ulrich + * library/platform/pkgIndex.tcl: Ring <uring@users.sourceforge.net>. + * library/platform/shell.tcl: Updated the LOCATE command in the + * library/tm.tcl: package 'platform::shell' to handle the new form + * unix/Makefile.in: of 'provide' commands generated by tm.tcl. Bumped + * win/Makefile.in: package to version 1.1.4. Added cross-references + to the relevant parts of the code to avoid future desynchronization. - * unix/tcl.m4 (Darwin): fixed error when MACOSX_DEPLOYMENT_TARGET unset - * unix/configure: regen. +2008-11-04 Jeff Hobbs <jeffh@ActiveState.com> -2005-11-29 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclPort.h: remove the ../win/ header dir as the build system + already has it, and it confuses builds when used with private headers + installed. - * win/tcl.m4: Add build support for Windows-x64 builds. - * win/configure: --enable-64bit now accepts =amd64|ia64 for - * win/Makefile.in: Windows 64-bit build variants (default: amd64) - * win/makefile.vc: [Bug 1369597] +2008-10-24 Pat Thoyts <patthoyts@users.sourceforge.net> -2005-11-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * library/http/http.tcl: Backported a fix for reading HTTP-like + protocols that used to work and were broken with http 2.7. Now http + 2.7.2 - * generic/tclObj.c (Tcl_GetWideIntFromObj): Add more efficient - conversion to wides from normal ints. [Bug 1310081] +2008-10-23 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Allow [lsearch -regexp] to - process REs that contain backreferences. This expensive mode of - operation is only used if the RE would otherwise cause a compilation - failure. [Bug 1366683] + * generic/tcl.h: Bump version number to 8.5.6b1 to distinguish + * library/init.tcl: CVS development snapshots from the 8.5.5 and + * unix/configure.in: 8.5.6 releases. + * unix/tcl.spec: + * win/configure.in: + * tools/tcl.wse.in: + * README -2005-11-28 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * unix/configure: autoconf (2.59) + * win/configure: - * win/tclWinSock.c (CreateSocket): Applied [Patch 1353853] to prevent - reads of uninitialized variables during cleanup. +2008-10-19 Don Porter <dgp@users.sourceforge.net> -2005-11-27 Daniel Steffen <das@users.sourceforge.net> + * generic/tclProc.c: Reset -level and -code values to defaults + after they are used. [Bug 2152286] - * unix/tcl.m4 (Darwin): add 64bit support, check for Tiger copyfile(), - add CFLAGS to SHLIB_LD to support passing -isysroot in env(CFLAGS) to - configure (flag can't be present twice, so can't be in both CFLAGS and - LDFLAGS during configure), don't use -prebind when deploying on 10.4, - define TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING (rdar://3171542). - (SC_ENABLE_LANGINFO, SC_TIME_HANDLER): add/fix caching, fix obsolete - autoconf macros. Sync with tk/unix/tcl.m4, sync whitespace with HEAD. +2008-10-16 Don Porter <dgp@users.sourceforge.net> - * unix/configure.in: fix obsolete autoconf macros, sync gratuitous - formatting/ordering differences with tk/unix/configure.in. + * library/init.tcl: Revised [unknown] so that it carefully + preserves the state of the ::errorInfo and ::errorCode variables at + the start of auto-loading and restores that state before the + autoloaded command is evaluated. [Bug 2140628] - * unix/Makefile.in: add CFLAGS to tclsh/tcltest link to make - executable linking the same as during configure (needed to avoid - loosing any linker relevant flags in CFLAGS, in particular flags that - can't be in LDFLAGS). Avoid concurrent linking of tclsh and compiling - of tclTestInit.o or xtTestInit.o during parallel make. - (checkstubs, checkdoc, checkexports): dependency and Darwin fixes +2008-10-10 Don Porter <dgp@users.sourceforge.net> - * unix/tclLoadDyld.c (TclpDlopen): [Bug 1204237] use - NSADDIMAGE_OPTION_WITH_SEARCHING on second NSAddImage only. - (TclGuessPackageName): should not be MODULE_SCOPE. - (TclpLoadMemory): ppc64 and endian (i386) fixes, add support for - loading universal (fat) bundles from memory. + *** 8.5.5 TAGGED FOR RELEASE *** - * unix/tclUnixPort.h: - * unix/tclUnixFCmd.c: add support for new Tiger copyfile() API to - enable copying of xattrs & ACLs by [file copy]. + * generic/tcl.h: Bump to 8.5.5 for release. + * library/init.tcl: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/configure.in: - * generic/tcl.h: add Darwin specifc configure overrides for TCL_WIDE - defines to support fat compiles of ppc and ppc64 at the same time, - (replaces Darwin CVS fix by emoy, rdar://3693001). - add/correct location of version numbers in macosx files. + * unix/configure: autoconf-2.59 + * win/configure: - * generic/tclInt.h: clarify fat compile comment. + * changes: Update for 8.5.5 release. - * unix/tclUnixPort.h: add Darwin specifc configure overrides to - support fat compiles, where configure runs only once for multiple - architectures (replaces Darwin CVS fix by emoy, rdar://3693001). +2008-10-08 Don Porter <dgp@users.sourceforge.net> - * macosx/tclMacOSXBundle.c: - * macosx/tclMacOSXNotify.c: - * unix/tclUnixNotfy.c: fix #include order to support compile time - * unix/tclUnixPort.h: override of HAVE_COREFOUNDATION in - tclUnixPort.h when building for ppc64 + * generic/tclTrace.c: Corrected handling of errors returned by + variable traces so that the errorInfo value contains the original + error message. [Bug 2151707] - * macosx/Tcl.pbproj/default.pbxuser (new file): - * macosx/Tcl.pbproj/jingham.pbxuser: - * macosx/Tcl.pbproj/project.pbxproj: sync with HEAD. + * generic/tclVar.c: Revised implementation of TclObjVarErrMsg so + that error message construction does not disturb an existing + iPtr->errorInfo that may be in progress. - * macosx/README: clarification/cleanup, sync with HEAD, document - universal (fat) builds via CFLAGS (i.e. all of ppc ppc64 i386 at once). +2008-10-06 Jan Nijtmans <nijtmans@users.sf.net> - * macosx/Makefile: add support for reusing configure cache, build - target fixes, remove GENERIC_FLAGS override now handled by tcl.m4. + * tclWinTest.c: Fix compiler warning when compiling this file with + mingw gcc: + tclWinTest.c:706: warning: dereferencing type-punned pointer will + break strict-aliasing rules + * generic/tclLoad.c: Make sure that any library which doesn't have an + unloadproc is only really unloaded when no library code is executed + yet. [Bug 2059262] - * generic/tclIOUtil.c: - * generic/tclRegexp.c: - * generic/tclVar.c: declare globals used only in own file as static - (sync with HEAD). +2008-10-06 Joe Mistachkin <joe@mistachkin.com> - * generic/rege_dfa.c (getvacant): - * generic/regexec.c (cfind): - * generic/tclCompExpr.c (CompileSubExpr): - * unix/tclUnixChan.c (TclUnixWaitForFile): initialise variables to - silence gcc 4 warnings. + * tools/man2tcl.c: Added missing line from patch by Harald Oehlmann. + [Bug 1934200] - * generic/regguts.h: only #define NDEBUG if not already #defined. +2008-10-05 Kevin B. Kenny <kennykb@acm.org> - * macosx/tclMacOSXNotify.c: sync whitespace & comments with HEAD + * libtommath/bn_mp_sqrt.c (bn_mp_sqrt): Handle the case where a + * tests/expr.test (expr-47.13): number's square root is + between n<<DIGIT_BIT and n<<DIGIT_BIT+1. [Bug 2143288] + Thanks to Malcolm Boffey (malcolm.boffey@virgin.net) for the patch. - * unix/configure: regen. +2008-10-02 Joe Mistachkin <joe@mistachkin.com> -2005-11-20 Joe English <jenglish@users.sourceforge.net> + * tools/man2help2.tcl: Integrated patches from Harald Oehlmann. + * tools/man2tcl.c: [Bug 1934200, 1934272] - * generic/tclStubLib.c: Don't set tclStubsPtr to 0 when - Tcl_PkgRequireEx() fails [Fix for [Bug 1091431] "Tcl_InitStubs failure - crashes wish"] +2008-09-27 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2005-11-18 Miguel Sofer <msofer@users.sf.net> + * generic/tclCmdIL.c (Tcl_LrepeatObjCmd): Improve the handling of the + case where the combination of number of elements and repeat count + causes the resulting list to be too large. [Bug 2130992] - * tests/trace.test (trace-34.5): [Bug 1047286], added a second test - illustrating the role of "ns in callStack" in the ns's visibility - during deletion traces. +2008-09-25 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c (Tcl_DeleteCommandFromToken): - * generic/tclCmdMZ.c (TraceCommandProc): - * generic/tclInt.h (NS_KILLED): - * generic/tclNamesp.c (Tcl_DeleteNamespace - * tests/namespace.test (namespace-7.3-6): - * tests/trace.test (trace-20.13-16): fix [Bugs 1355942/1355342]. + * doc/global.n: Correct false claim about [info locals]. -2005-11-18 Jeff Hobbs <jeffh@ActiveState.com> +2008-09-17 Don Porter <dgp@users.sourceforge.net> - * generic/tclIO.c (TclFinalizeIOSubsystem): preserve statePtr until we - netrieve next statePtr from it. + * generic/tclInt.h: Correct the TclGetLongFromObj, + TclGetIntFromObj, and TclGetIntForIndexM macros so that they + retrieve the internalRep.longValue field instead of casting the + internalRep.otherValuePtr field to type long. -2005-11-18 Don Porter <dgp@users.sourceforge.net> +2008-09-17 Miguel Sofer <msofer@users.sf.net> - * generic/tclPkg.c: Revised Bug 1162286 fix from 2005-11-08 to be - * tests/pkg.test: more forgiving of package version mismatch - errors in [package ifneeded] commands. This reduces the - ***POTENTIAL INCOMPATIBILITY*** noted for that change. + * library/init.tcl: export min and max commands from the mathfunc + namespace [Bug 2116053] -2005-11-18 Andreas Kupries <andreask@activestate.com> +2008-09-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclIO.c (TclFinalizeIOSubsystem): Applied Pat Thoyts' patch - for [Bug 1359094]. This moves the retrieval of the next channel state - to the end of the loop, as the called closeproc may close other - channels, i.e., modify the list we are iterating, invalidating any - pointer retrieved earlier. + * generic/tclListObj.c (Tcl_ListObjGetElements): Make this list->dict + transformation - encountered when using [foreach] with dicts - not as + expensive as it was before. Spotted by Kieran Elby and reported on + tcl-core. -2005-11-18 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2008-09-07 Miguel Sofer <msofer@users.sf.net> - * library/http/http.tcl (http::geturl): Improved syntactic validation - of URLs, and better error messages in some cases. [Bug 1358369] + * doc/namespace.n: fix [Bug 2098441] -2005-11-16 Don Porter <dgp@users.sourceforge.net> +2008-08-28 Don Porter <dgp@users.sourceforge.net> - * README: Bump version number to 8.4.12 - * generic/tcl.h: - * tools/tcl.wse.in: - * unix/configure.in: + * generic/tcl.h: Bump version number to 8.5.5b1 to distinguish + * library/init.tcl: CVS development snapshots from the 8.5.4 and + * unix/configure.in: 8.5.5 releases. * unix/tcl.spec: - * win/README.binary: * win/configure.in: + * tools/tcl.wse.in: + * README - * unix/configure: autoconf-2.13 + * unix/configure: autoconf (2.59) * win/configure: -2005-11-15 Don Porter <dgp@users.sourceforge.net> - - * changes: Update changes for 8.4.12 release - -2005-11-15 Kevin B. Kenny <kennykb@acm.org> - - * tests/cmdAH.test: Backported the fix for [Bug 926016] because of - * win/tclWinFile.c: a repeated bug report in 8.4 [Bug 1353840]. - Windows [file mtime] will now return seconds from the Posix epoch - correctly (except for FAT32 file systems after a DST change without a - reboot - for which there is no help). A side effect is that file times - will appear different in Tcl from the way they do in Windows Explorer - or a 'dir' listing, because the Microsoft tools get the DST state - wrong in the listings. - -2005-11-09 Kevin B. Kenny <kennykb@acm.org> +2008-08-22 Don Porter <dgp@users.sourceforge.net> - * generic/tclTimer.c: Changed [after] so that it behaves correctly - * tests/timer.test: with negative arguments. [Bug 1350293] + * generic/tclUtil.c (TclReToGlob): Added missing set of the + *exactPtr value to really fix [Bug 2065115]. Also avoid possible + DString overflow. + * tests/regexpComp.test: Correct duplicate test names. -2005-11-08 Jeff Hobbs <jeffh@ActiveState.com> +2008-08-21 Jeff Hobbs <jeffh@ActiveState.com> - * unix/tclUnixFCmd.c (MAX_READDIR_UNLINK_THRESHOLD): reduce to 130 - based on errors seen on OS X 10.3 with lots of links in a dir. [Bug - 1034337 followup] + * tests/regexp.test, tests/regexpComp.test: correct re2glob ***= + * generic/tclUtil.c (TclReToGlob): translation from exact + to anywhere-in-string match. [Bug 2065115] -2005-11-08 Don Porter <dgp@users.sourceforge.net> +2008-08-20 Daniel Steffen <das@users.sourceforge.net> - * tests/expr.test: Portable tests expr-46.13-18 [Bug 1341368] + * generic/tclTest.c (TestconcatobjCmd): fix use of internal-only + TclInvalidateStringRep macro. + [Bug 2057479] - * generic/tclPkg.c: Corrected inconsistencies in the value returned - * tests/pkg.test: by Tcl_PkgRequire(Ex) so that the returned - values will always agree with what is stored in the package database. - This way repeated calls to Tcl_PkgRequire(Ex) have the same results. - Thanks to Hemang Lavana. [Bug 1162286] - ***POTENTIAL INCOMPATIBILITY***: Incompatible with those existing - packages that are accustomed to the [package] command forgiving - their bugs. +2008-08-17 Miguel Sofer <msofer@users.sf.net> - * tests/namespace.test (25.7,8): Backport test of knownBug. + * generic/tclTest.c (TestconcatobjCmd): + * generic/tclUtil.c (Tcl_ConcatObj): + * tests/util.test (util-4.7): + fix [Bug 1447328]; the original "fix" turned Tcl_ConcatObj() into + a hairy monster. This was exposed by [Bug 2055782]. Additionally, + Tcl_ConcatObj could corrupt its input under certain conditions! -2005-11-08 Donal K. Fellows <donal.k.fellows@man.ac.uk> + *** NASTY BUG FIXED *** - * generic/tclCmdMZ.c (TclTraceVariableObjCmd, TraceVarProc): Applied - Miguel's fix for [Bug 1348775]. It is not quite as elegant as the one - applied to the HEAD, but it is easier to use it rather than fully - backporting. - -2005-11-07 Miguel Sofer <msofer@users.sf.net> - - * tests/trace.test (trace-13.2-4): added tests to detect leak, see - [Bug 1348775]. - -2005-11-04 Don Porter <dgp@users.sourceforge.net> - - * unix/tcl.m4: Added code to enable [load] on LynxOS. Thanks to - heidibr@users.sf.net for the patch. [Bug 1163896] +2008-08-14 Don Porter <dgp@users.sourceforge.net> - * unix/configure: autoconf-2.13. + *** 8.5.4 TAGGED FOR RELEASE *** -2005-11-04 Pat Thoyts <patthoyts@users.sourceforge.net> + * tests/fileName.test: Revise new tests for portability to case + insensitive filesystems. - * win/tclWinPipe.c: Applied [Patch 1267871] by Matt Newman which - * win/tclWinPort.h: provides extended error code support. - * tests/exec.test: Wrote some tests for this feature. +2008-08-14 Daniel Steffen <das@users.sourceforge.net> -2005-11-04 Kevin Kenny <kennykb@acm.org> + * generic/tclCompile.h: Add support for debug logging of DTrace + * generic/tclBasic.c: 'proc', 'cmd' and 'inst' probes (does + _not_ require a platform with DTrace). - * generic/tclGetDate.y: Added abbreviations for the Korean timezone. - * generic/tclDate.c: Regenerated. + * generic/tclCmdIL.c (TclInfoFrame): Check fPtr->line before + dereferencing as line info may + not exists when TclInfoFrame() + is called from a DTrace probe. - * compat/strftime.c: Fixed a problem where the name of the time zone - was double-converted from system encoding to UTF-8. Thanks to the - anonymous submitter of [Bug 1317477] for the report and the patch. + * tests/msgcat.test: Fix for ::tcl::mac::locale with + @modifier (HEAD backport 2008-06-01). -2005-11-04 Miguel Sofer <msofer@users.sf.net> + * tests/fCmd.test (fCmd-6.23): Made result matching robust when test + workdir and /tmp are not on same FS. - * generic/tclInt.h: - * generic/tclNamesp.c: - * generic/tclVar.c: fix for [Bugs 1338280/1337229]. Thanks Don. + * unix/Makefile.in: Ensure Makefile shell is /bin/bash for + * unix/configure.in (SunOS): DTrace-enabled build on Solaris. + (followup to 2008-06-12) [Bug 2016584] - * tests/trace.test: fix duplicate test numbers + * unix/tcl.m4 (SC_PATH_X): Check for libX11.dylib in addition to + libX11.so et al. -2005-11-03 Don Porter <dgp@users.sourceforge.net> + * unix/configure: autoconf-2.59 - * generic/tclUnixInit.c (TclpSetInitialEncodings): Modified so - that multiple calls can continue to atttempt to properly set the - system encoding. Needed for Tclkit to properly support non-default - encodings. Thanks to Yaroslav Schekin. [Bug 1201171] +2008-08-13 Don Porter <dgp@users.sourceforge.net> -2005-11-03 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclFileName.c: Fix for errors handling -types {} + * tests/fileName.test: option to [glob]. [Bug 1750300] + Thanks to Matthias Kraft and George Peter Staplin. - * win/tclWin32Dll.c: Backported Anton Kovalenko's [Patch 1256872] - * win/tclWinConsole.c: to give unicode console support on - * win/tclWinInt.h: suitable systems (eg: NT/XP) +2008-08-12 Don Porter <dgp@users.sourceforge.net> -2005-11-01 Don Porter <dgp@users.sourceforge.net> + * changes: Update for 8.5.4 release. - * generic/tclCmdMZ.c (TclCheckExecutionTraces): Corrected mistaken - assumption that all command traces are set at the script level. - Report/fix from Jacques H. de Villiers. [Bug 1337941] +2008-08-11 Pat Thoyts <patthoyts@users.sourceforge.net> - * tests/expr-old.test (expr-32.52): Use int(.) to restrict result - of left shift to the C long range. + * library/http/http.tcl: Remove 8.5 requirement. + * library/http/pkgIndex.tcl: + * unix/Makefile.in: + * win/Makefile.in: + * win/makefile.vc: -2005-10-29 Mo DeJong <mdejong@users.sourceforge.net> +2008-08-11 Andreas Kupries <andreask@activestate.com> - * tests/expr.test: Fix problems in new round() tests that lead to - correct result only on 32 bit long systems. [Bug 1341368] + * library/tm.tcl: Added a 'package provide' command to the generated + ifneeded scripts of Tcl Modules, for early detection of conflicts + between the version specified through the file name and a 'provide' + command in the module implementation, if any. Note that this change + also now allows Tcl Modules to not provide a 'provide' command at all, + and declaring their version only through their filename. -2005-10-29 Miguel Sofer <msofer@users.sf.net> + * generic/tclProc.c (Tcl_ProcObjCmd): Fixed memory leak triggered + * tests/proc.test: by procbody::test::proc. See [Bug 2043636]. Added a + test case demonstrating the leak before the fix. Fixed a few spelling + errors in test descriptions as well. - * generic/tclCmdMZ.c (TraceVarProc): [Bug 1337229], partial fix. - Ensure that a second call with TCL_TRACE_DESTROYED does not lead to a - second call to Tcl_EventuallyFree(). It is still true that that second - call should not happen, so the bug is not completely fixed. - * tests/trace.test (test-18.3-4): added tests for [Bugs 1337229 and - 1338280]. +2008-08-11 Don Porter <dgp@users.sourceforge.net> -2005-10-27 Mo DeJong <mdejong@users.sourceforge.net> + * library/http/http.tcl: Bump http version to 2.7.1 to account + * library/http/pkgIndex.tcl: for [Bug 2046486] bug fix. This + * unix/Makefile.in: release of http now requires a + * win/Makefile.in: dependency on Tcl 8.5 to be able to + * win/makefile.bc: use the unsigned formats in the + * win/makefile.vc: [binary scan] command. - * generic/tclExecute.c (ExprRoundFunc): Fix typo where number before - rounding is compared with smallest integer instead of number after - rounding. This fix does not change the results of any tests. - * tests/expr.test: Add round() tests for cases near the min and max - int values. - * tests/util.test: Remove pointless warning code about testobj command +2008-08-11 Pat Thoyts <patthoyts@users.sourceforge.net> -2005-10-23 Miguel Sofer <msofer@users.sf.net> + * library/http/http.tcl: crc field from zlib data should be treated as + unsigned for 64bit support [Bug 2046846] - * generic/tclBasic.c: - * generic/tclBinary.c: - * generic/tclCmdAH.c: - * generic/tclCmdIL.c: - * generic/tclCmdMZ.c: - * generic/tclExecute.c: - * generic/tclLink.c: - * generic/tclMain.c: - * generic/tclProc.c: - * generic/tclScan.c: - * generic/tclTest.c: - * generic/tclVar.c: - * mac/tclMacInit.c: - * unix/tclUnixInit.c: - * win/tclWinInit.c: Ensure that the core never calls TclPtrSetVar, - Tcl_SetVar2Ex, Tcl_ObjSetVar2 or Tcl_SetObjErrorCode with a 0-ref new - value. It is not possible to handle error returns correctly in that - case [Bug 1334947], one has the choice of leaking the object in some - cases, or else risk crashing in some others. +2008-08-08 Don Porter <dgp@users.sourceforge.net> -2005-10-22 Miguel Sofer <msofer@users.sf.net> + * generic/tcl.h: Bump to 8.5.4 for release. + * library/init.tcl: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/configure.in: - * generic/tclExecute.c (INST_CONCAT): disable the optimisation for - wide integers. [Bug 1251791] + * unix/configure: autoconf-2.59 + * win/configure: -2005-10-14 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * changes: Update for 8.5.4 release. - * generic/tclIO.c (Tcl_ClearChannelHandlers): removed change dated - 2005-10-04 below. Look into [Bug 1323992] for detailed discussion. +2008-08-08 Kevin Kenny <kennykb@acm.org> -2005-10-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * library/tzdata/CET: + * library/tzdata/MET: + * library/tzdata/Africa/Casablanca: + * library/tzdata/America/Eirunepe: + * library/tzdata/America/Santarem: + * library/tzdata/America/Rio_Branco: + * library/tzdata/America/Argentina/San_Luis: + * library/tzdata/Asia/Karachi: + * library/tzdata/Europe/Belgrade: + * library/tzdata/Europe/Berlin: + * library/tzdata/Europe/Budapest: + * library/tzdata/Europe/Sofia: + * library/tzdata/Indian/Mauritius: Olson's tzdata2008e. - * generic/tclCmdAH.c (Tcl_FormatObjCmd): Stop [format] from seeing - the difference between ints and wides. [Bug 1284178] +2008-08-06 Don Porter <dgp@users.sourceforge.net> -2005-10-13 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclVar.c (TclLookupSimpleVar): Retrieve the number of + locals in the localCache from the CallFrame and not from the Proc + which may have been mangled by a (broken?) recompile. Backport from + the HEAD. - * generic/tclIO.c (Tcl_ClearChannelHandlers): temporary - ifdef TCL_THREADS changes done to de-activate pending - event processing when channel is being closed/cutted. +2008-08-04 Don Porter <dgp@users.sourceforge.net> -2005-10-10 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c: Stopped faulty double-logging of errors to + * tests/execute.test: stack trace when a compile epoch bump triggers + fallback to direct evaluation of commands in a compiled script. + [Bug 2037338] - * generic/tclInt.h: ensure MODULE_SCOPE decl +2008-07-30 Don Porter <dgp@users.sourceforge.net> -2005-10-07 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclBasic.c: Corrected the timing of when the flag + TCL_ALLOW_EXCEPTIONS is tested. - * unix/tclUnixFCmd.c (TraverseUnixTree): Adjust 2004-11-11 change to - * tests/fCmd.test (fCmd-20.2): account for NFS special - files with a readdir rewind threshold. [Bug 1034337] +2008-07-29 Miguel Sofer <msofer@users.sf.net> -2005-10-05 Andreas Kupries <andreask@activestate.com> + * generic/tclExecute.c: fix [Bug 2030670] that cause + TclStackRealloc to panic on rare corner cases. Thx ajpasadyn for + diagnose and patch. - * generic/tclPipe.c (TclCreatePipeline): Fixed [Bug 1109294]. Applied - the patch provided by David Gravereaux. +2008-07-28 Andreas Kupries <andreask@activestate.com> - * doc/CrtChannel.3: Fixed [Bug 1104682], by application of David - Welton's patch for it, and added a note about wideSeekProc. + * generic/tclBasic.c: Added missing ref count when creating an empty + string as path (TclEvalEx). In 8.4 the missing code caused panics in + the testsuite. It doesn't in 8.5. I am guessing that the code path + with the missing the incr-refcount is not invoked any longer. Because + the bug in itself is certainly the same. -2005-10-05 Jeff Hobbs <jeffh@ActiveState.com> +2008-07-25 Daniel Steffen <das@users.sourceforge.net> - * tests/env.test (env-6.1): - * win/tclWinPort.h: define USE_PUTENV_FOR_UNSET 1 - * generic/tclEnv.c (TclSetEnv, TclUnsetEnv): add - USE_PUTENV_FOR_UNSET to existing USE_PUTENV define to account for - various systems that have putenv(), but can't unset env vars with it. - Note difference between Windows and Linux for actually unsetting the - env var (use of '='). - Correct the resizing of the environ array. We assume that we are in - full ownership, but that's not correct. [Bug 979640] + * tests/info.test (info-37.0): Add !singleTestInterp constraint; + (info-22.8, info-23.0): switch to glob matching to avoid sensitivity + to tcltest.tcl line number changes, remove knownBug constraint, fix + expected result. [Bug 1605269] -2005-10-04 Jeff Hobbs <jeffh@ActiveState.com> +2008-07-25 Andreas Kupries <andreask@activestate.com> - * win/tclWinSerial.c (SerialSetOptionProc): free argv [Bug 1067708] + * tests/info.test: Tests 38.* added, exactly testing the tracking of + location for uplevel scripts. - * tests/http.test: Do not URI encode -._~ according to - * library/http/http.tcl (init): RFC3986. [Bug 1182373] (aho) + * generic/tclCompile.c (TclInitCompileEnv): Reorganized the + initialization of the #280 location information to match the flow in + TclEvalObjEx to get more absolute contexts. - * generic/tclIOUtil.c (TclFSNormalizeAbsolutePath): make static - * generic/tclEncoding.c (TclFindEncodings): make static + * generic/tclBasic.c (TclEvalObjEx): Moved the pure-list optimization + out of the eval-direct code path to be done always, i.e. even when a + compile is requested. This way we do not loose the association between + #280 location information and the list elements, if any. - * unix/tclLoadShl.c (TclpDlopen): use DYNAMIC_PATH on second - shl_load only. [Bug 1204237] +2008-07-23 Andreas Kupries <andreask@activestate.com> -2005-10-04 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * tests/info.test: Reordered the tests to have monotonously + increasing numbers. - * generic/tclIO.c (Tcl_ClearChannelHandlers): now deletes any - outstanding timer for the channel. Also, prevents events still - in the event queue from triggering on the current channel. + * generic/tclBasic.c: Modified TclArgumentGet to reject pure lists + * generic/tclCmdIL.c: immediately, without search. Reworked setup + * generic/tclCompile.c: of eoFramePtr, doesn't need the line + * tests/info.test: information, more sensible to have everything on + line 1 when eval'ing a pure list. Updated the users of the line + information to special case this based on the frame type (i.e. + TCL_LOCATION_EVAL_LIST). Added a testcase demonstrating the new + behaviour. - * generic/tclTimer.c (Tcl_DeleteTimerHandler): bail out early - if passed NULL argument. +2008-07-22 Andreas Kupries <andreask@activestate.com> -2005-09-30 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: Added missing function comments. - * generic/tclMain.c: Separate encoding conversion of command line - arguments from list formatting. [Bug 1306162] + * generic/tclCompile.c: Made the new TclEnterCmdWordIndex + * generic/tclCompile.h: static, and ansified. -2005-09-27 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclBasic.c: Reworked the handling of bytecode literals + * generic/tclCompile.c: for #280 to fix the abysmal performance + * generic/tclCompile.h: for deep recursion, replaced the linear + * generic/tclExecute.c: search through the whole stack with another + * generic/tclInt.h: hashtable and simplified the data structure used + by the compiler (array instead of hashtable). Incidentially this also + fixes the memory leak reported via [Bug 2024937]. - * generic/tclBinary.c (FormatNumber): Factorize out copying of double - values to a helper to work around ugly broken compiler problems. [Bug - 1116542] +2008-07-21 Don Porter <dgp@users.sourceforge.net> -2005-09-15 Miguel Sofer <msofer@users.sf.net> + * tests/encoding.test: Make failing tests pass again. [Bug 1972867] - * doc/ParseCmd.3: copy/paste fix [Bug 1292427] +2008-07-21 Andreas Kupries <andreask@activestate.com> -2005-09-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclBasic.c: Extended the existing TIP #280 system (info + * generic/tclCmdAH.c: frame), added the ability to track the + * generic/tclCompCmds.c: absolute location of literal procedure + * generic/tclCompile.c: arguments, and making this information + * generic/tclCompile.h: available to uplevel, eval, and + * generic/tclInterp.c: siblings. This allows proper tracking of + * generic/tclInt.h: absolute location through custom (Tcl-coded) + * generic/tclNamesp.c: control structures based on uplevel, etc. + * generic/tclProc.c: - * unix/tcl.m4 (SC_TCL_EARLY_FLAGS): Added extra hack to allow Tcl to - transparently open large files on RHEL 3. [Bug 1287638] +2008-07-21 Pat Thoyts <patthoyts@users.sourceforge.net> - * unix/configure: autoconf-2.13 + * generic/tclFCmd.c: Inodes on windows are unreliable [Bug 2015723] -2005-09-07 Don Porter <dgp@users.sourceforge.net> +2008-07-20 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclUtf.c (Tcl_UniCharToUtf): Corrected handling of negative - * tests/utf.test (utf-1.5): Tcl_UniChar input value. Incorrect - handling was producing byte sequences outside of Tcl's legal internal - encoding. [Bug 1283976] + * generic/tclDictObj.c (SetDictFromAny): Make the list->dict + transformation a bit more efficient; modern dicts are ordered and so + we can round-trip through lists without needing the string rep at all. + * generic/tclListObj.c (SetListFromAny): Make the dict->list + transformation not lossy of internal representations and hence more + efficient. [Bug 2008248] (ajpasadyn) but using a more efficient patch. -2005-08-29 Kevin Kenny <kennykb@acm.org> +2008-07-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclBasic.c (ExprMathFunc): Restored "round away from zero" - * tests/expr.test (expr-46.*): behaviour to the "round" - function. Added test cases for the behavior, including the awkward - case of a number whose fractional part is 1/2-1/2ulp. [Bug 1275043] + * doc/DictObj.3: Fix error in example. [Bug 2016740] -2005-08-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2008-07-08 Don Porter <dgp@users.sourceforge.net> - * generic/tclListObj.c (UpdateStringOfList): Stop uncontrolled and - unsafe crashes from happening when working with very large string - representations. [Bug 1267380] + * generic/tclGet.c: Corrected out of date comments. -2005-08-17 Jeff Hobbs <jeffh@ActiveState.com> +2008-07-07 Andreas Kupries <andreask@activestate.com> - * generic/tclFCmd.c (TclFileMakeDirsCmd): fix to race condition in - file mkdir (backport from head 2005-06-13) [Bug 1217375] + * generic/tclCmdIL.c (InfoFrameCmd): Fixed unsafe idiom of setting the + interp result found by Don Porter. -2005-08-16 Kevin Kenny <kennykb@acm.org> +2008-07-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclEvent.c (Tcl_Finalize): Pushed Tcl_FinalizeLoad and - Tcl_ResetFilesystem down after Tcl_FinalizeThreadAlloc because - unloading DLLs can't happen while they still own TSD keys. - (This is a backport of changes made in the HEAD on 2005-08-10.) + * doc/regexp.n, doc/regsub.n: Correct examples. [Bug 1982642] -2005-08-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2008-07-04 Joe English <jenglish@users.sourceforge.net> - * unix/tclUnixInit.c (localeTable): Solaris uses a non-standard name - for the cp1251 charset. Thanks to Victor Wagner for reporting this. - [Bug 1252475] + * generic/tclEncoding.c(UtfToUtfProc): Avoid unwanted sign extension + when converting incomplete UTF-8 sequences. See [Bug 1908443] for + details. -2005-08-05 Kevin Kenny <kennykb@users.sourceforge.net> +2008-07-03 Andreas Kupries <andreask@activestate.com> - * generic/tclExecute.c (TclExecuteByteCode): Fixed a corner case - * tests/expr.test (expr-38.1): where applying abs to - MIN_INT failed to promote the result to a wide integer. [Bug 1241572] + * generic/tclIORChan.c (InvokeTclMethod): Fixed the memory leak + reported in [Bug 1987821]. Thanks to Miguel for the rpeort and Don + Porter for tracking the cause down. -2005-08-04 Don Porter <dgp@users.sourceforge.net> +2008-07-03 Don Porter <dgp@users.sourceforge.net> - * generic/tclObj.c: Simplified routines that manage the typeTable. + * library/package.tcl: Removed [file readable] testing from + [tclPkgUnknown] and friends. We find out soon enough whether a file is + readable when we try to [source] it, and not testing before allows us + to workaround the bugs on some common filesystems where [file + readable] lies to us. [Patch 1969717] -2005-08-03 Don Porter <dgp@users.sourceforge.net> +2008-06-29 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompExpr.c: Untangled some dependencies in the - * generic/tclEvent.c: order of finalization routines. - * generic/tclInt.h: [Bug 1251399] - * generic/tclObj.c: + *** 8.5.3 TAGGED FOR RELEASE *** -2005-07-30 Daniel Steffen <das@users.sourceforge.net> + * generic/tcl.h: Bump to 8.5.3 for release. + * library/init.tcl: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/configure.in: - * unix/configure, unix/tcl.m4: revert 2005-07-28 change. + * unix/configure: autoconf-2.59 + * win/configure: - * unix/tclLoadDyld.c (TclpDlopen, TclpLoadMemory): workarounds for - bugs/changes in behaviour in Mac OS X 10.4 Tiger, sync formatting - changes from HEAD. + * doc/ObjectType.3: Updated documentation of the Tcl_ObjType + struct to match expectations of Tcl 8.5 [Bug 1917650]. -2005-07-29 Donal K. Fellows <dkf@users.sf.net> + * generic/tclPathObj.c: Plug memory leak in [Bug 1999176] fix. Thanks + Rolf Ade for detecting. - * generic/tclCmdIL.c (InfoGlobalsCmd): Even in high-speed mode, still - have to take care with non-existant variables. [Bug 1247135] +2008-06-28 Don Porter <dgp@users.sourceforge.net> -2005-07-28 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclPathObj.c: Plug memory leak in [Bug 1972879] fix. Thanks + Rolf Ade for detecting and Dan Steffen for the fix [Bug 2004654]. - * win/README: Update link to msys_mingw8.zip. Remove old Cygwin + - Mingw info, people should just build with the msys + mingw - configuration. +2008-06-26 Andreas Kupries <andreask@activestate.com> -2005-07-28 Jeff Hobbs <jeffh@ActiveState.com> + * unix/Makefile.in: Followup to my change of 2008-06-25, make code + generated by the Makefile and put into the installd tm.tcl conditional + on interpreter safeness as well. Thanks to Daniel Steffen for + reminding me of that code. - * unix/configure, unix/tcl.m4: defined TCL_LOAD_FROM_MEMORY on Darwin - only for SHARED_BUILD +2008-06-25 Don Porter <dgp@users.sourceforge.net> -2005-07-28 Donal K. Fellows <dkf@users.sf.net> + * changes: Update for 8.5.3 release. - * generic/tclPipe.c (TclCreatePipeline): Arrange for POSIX systems to - * unix/tclUnixPipe.c (TclpOpenFile): use the O_APPEND flag for - * tests/exec.test (exec-19.1): files opened in a pipeline - like ">>this". Note that Windows cannot support such access; there is - no equivalent flag on the handle that can be set at the kernel-call - level. The test is unix-specific in every way. [Bug 1245953] +2008-06-25 Andreas Kupries <andreask@activestate.com> -2005-07-26 Mo DeJong <mdejong@users.sourceforge.net> + * library/tm.tcl: Modified the handling of Tcl Modules and of the + * library/safe.tcl: Safe Base to interact nicely with each other, + * library/init.tcl: enabling requiring Tcl Modules in safe + * tests/safe.test: interpreters. Fixes [Bug 1999119]. - * unix/configure: Regen. - * unix/configure.in: Check for a $prefix/share directory and add it - the the package if found. This will check for Tcl packages in - /usr/local/share when Tcl is configured with the default dist install. - [Patch 1231015] +2008-06-25 Pat Thoyts <patthoyts@users.sourceforge.net> -2005-07-26 Don Porter <dgp@users.sourceforge.net> + * win/rules.vc: Backported fix for dde/registry versions and + * win/makefile.vc: the staticpkg build option - * doc/tclvars.n: Improved $errorCode documentation. [RFE 776921] +2008-06-24 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c (Tcl_CallWhenDeleted): Converted to use - per-thread counter, rather than a process global one that required - mutex protection. [RFE 1077194] + * generic/tclPathObj.c: Fixed some internals management in the "path" + Tcl_ObjType for the empty string value. Problem led to a crash in the + command [glob -dir {} a]. [Bug 1999176]. - * generic/tclNamesp.c (TclTeardownNamespace): Re-ordering so that - * tests/trace.test (trace-34.4): command delete traces fire - while the command still exists. [Bug 1047286] +2008-06-23 Don Porter <dgp@users.sourceforge.net> -2005-07-24 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclPathObj.c: Fixed bug in Tcl_GetTranslatedPath() when + operating on the "Special path" variant of the "path" Tcl_ObjType + intrep. A full normalization was getting done, in particular, coercing + relative paths to absolute, contrary to what the function of + producing the "translated path" is supposed to do. [Bug 1972879] - * unix/tcl.m4 (SC_PROG_TCLSH, SC_BUILD_TCLSH): - * win/tcl.m4 (SC_PROG_TCLSH, SC_BUILD_TCLSH): - Split confused search for tclsh on PATH and build and install - locations into two macros. SC_PROG_TCLSH searches just the PATH. - SC_BUILD_TCLSH determines the name of the tclsh executable in the Tcl - build directory. [Bug 1160114], [Patch 1244153] +2008-06-19 Don Porter <dgp@users.sourceforge.net> -2005-07-22 Don Porter <dgp@users.sourceforge.net> + * changes: Update for 8.5.3 release. - * library/auto.tcl: Updates to the Tcl script library to make - * library/history.tcl: use of Tcl 8.4 feautures. Thanks to - * library/init.tcl: Patrick Fradin for prompting on this. - * library/package.tcl: [Patch 1237755] - * library/safe.tcl: - * library/word.tcl: + * generic/tclInterp.c: Fixed completely boneheaded mistake that + * tests/interp.test: [interp bgerror $slave] and [$slave bgerror] + would always act like [interp bgerror {}]. [Bug 1999035] -2005-07-07 Jeff Hobbs <jeffh@ActiveState.com> + * tests/chanio.test: Corrected flawed tests revealed by a -debug 1 + * tests/event.test: -singleproc 1 test suite run. + * tests/io.test: - * unix/tcl.m4, unix/configure: Backported [Bug 1095909], removing - * unix/tclUnixPort.h: any use of readdir_r as it is not - * unix/tclUnixThrd.c: necessary and just confuses things. +2008-06-19 Don Porter <dgp@users.sourceforge.net> -2005-07-05 Don Porter <dgp@users.sourceforge.net> + * changes: Updates for 8.5.3 release. - * generic/tclCmdAH.c: New "encoding" Tcl_ObjType (not registered) - * generic/tclEncoding.c: that permits longer lifetimes of the - * generic/tclInt.h: Tcl_Encoding values kept as intreps of - Tcl_Obj's. Reduces the need for repeated reading of encoding - definition files from the filesystem. [Bug 1077262] +2008-06-17 Andreas Kupries <andreask@activestate.com> - * generic/tclNamesp.c: Allow for [namespace import] of a command - * tests/namespace.test: over a previous [namespace import] of itself - without throwing an error. [RFE 1230597] + * generic/tclClock.c (ClockConvertlocaltoutcObjCmd): Removed left + over debug output. -2005-07-01 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> +2008-06-17 Andreas Kupries <andreask@activestate.com> - * unix/tclUnixNotfy.c: protect against spurious wake-ups while waiting - on the condition variable when tearing down the notifier thread. [Bug - 1222872] + * doc/tm.n: Followup to changelog entry 2008-03-18 regarding + ::tcl::tm::Defaults. Updated the documentation to not only mention + the new (underscored) form of environment variable names, but make + it the encouraged form as well. See [Bug 1914604]. -2005-06-27 Don Porter <dgp@users.sourceforge.net> +2008-06-17 Kevin Kenny <kennykb@acm.org> - *** 8.4.11 TAGGED FOR RELEASE *** + * generic/tclClock.c (ConvertLocalToUTC): + * tests/clock.test (clock-63.1): Fixed a bug where the + internal ConvertLocalToUTC command segfaulted if passed a + dictionary without the 'localSeconds' key. To the best of + my knowledge, the bug was not observable in the [clock] + command itself. - * library/auto.tcl: Reverted to Revision 1.12.2.3 (Tcl 8.4.9). - Restores the (buggy) behavior of [auto_reset] that fails to clear - away auto-loaded commands from non-global namespaces. Fixing this - bug exposed an unknown number of buggy files out there (including at - least portions of the Tk script library) that cannot tolerate double - [source]-ing. The burden of fixing these exposed bugs will not be - forced on package/extension/application authors until Tcl 8.5. +2008-06-16 Andreas Kupries <andreask@activestate.com> -2005-06-24 Kevin Kenny <kennykb@acm.org> + * generic/tclCmdIL.c (TclInfoFrame): Backport of fix made on the + * tests/info.test: head branch :: Moved the code looking up the + information for key 'proc' out of the TCL_LOCATION_BC branch to + after the switch, this is common to all frame types. Updated the + testsuite to match. This was exposed by the 2008-06-08 commit + (Miguel), switching uplevel from direct eval to compilation. Fixes + [Bug 1987851]. - * generic/tclEvent.c (Tcl_Finalize): - * generic/tclInt.h: - * generic/tclPreserve.c (TclFinalizePreserve): Changed the - finalization logic so that Tcl_Preserve finalizes after exit - handlers run; a lot of code called from Tk's exit handlers - presumes tha Tcl_Preserve will still work even from an exit - handler. Also, made the assertion check that no exit handlers - are created in Tcl_Finalize conditional on TCL_MEM_DEBUG to - avoid spurious panics in the "stable" release. +2008-06-12 Daniel Steffen <das@users.sourceforge.net> -2005-06-24 Don Porter <dgp@users.sourceforge.net> + * unix/Makefile.in: add complete deps on tclDTrace.h. - * library/auto.tcl: Make file safe to re-[source] without - destroying registered auto_mkindex_parser hooks. + * unix/Makefile.in: clean generated tclDTrace.h file. + * unix/configure.in (SunOS): fix static DTrace-enabled build. -2005-06-23 Daniel Steffen <das@users.sourceforge.net> + * unix/tcl.m4 (SunOS-5.11): fix 64bit amd64 support with gcc & Sun cc. + * unix/configure: autoconf-2.59 - * tools/tcltk-man2html.tcl: fixed useversion glob pattern to accept - multi-digit patchlevels. + * macosx/Tcl.xcodeproj/project.pbxproj: add debug configs with gcov, + and with corefoundation disabled; updates and cleanup for Xcode 3.1 and + for Leopard. + * macosx/Tcl.xcode/project.pbxproj: sync Tcl.xcodeproj changes. + * macosx/README: document new build configs. -2005-06-23 Kevin Kenny <kennykb@acm.org> +2008-05-26 Jeff Hobbs <jeffh@ActiveState.com> - * win/tclWinChan.c: More rewriting of __asm__ blocks that - * win/tclWinFCmd.c: implement SEH in GCC, because mingw's - gcc 3.4.2 is not as forgiving of violations committed by - the old code and caused panics. [Bug 1225957] + * tests/io.test (io-53.9): need to close chan before removing file. -2005-06-23 Daniel Steffen <das@users.sourceforge.net> +2008-05-23 Andreas Kupries <andreask@activestate.com> - * unix/Makefile.in (install-private-headers): rewrite tclPort.h when - installing private headers to remove ../unix relative #include path to - tclUnixPort.h (which is incorrect at the installed location). + * win/tclWinChan.c (FileWideSeekProc): Accepted a patch by + Alexandre Ferrieux <ferrieux@users.sourceforge.net> to fix the + [Bug 1965787]. 'tell' now works for locations > 2 GB as well + instead of going negative. -2005-06-22 Kevin Kenny <kennykb@acm.org> + * generic/tclIO.c (Tcl_SetChannelBufferSize): Accepted a patch by + * tests/io.test: Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * tests/chanio.test: to fix the [Bug 1969953]. Buffersize outside + of the supported range are now clipped to nearest boundary instead + of ignored. - * generic/tclInt.h: Changed the finalization - * generic/tclEvent.c (Tcl_Finalize): logic to defer the - * generic/tclIO.c (TclFinalizeIOSubsystem): shutdown of the pipe - * unix/tclUnixPipe.c (TclFinalizePipes): management until after - * win/tclWinPipe.c (TclFinalizePipes): all channels have been - closed, in order to avoid a situation where the Windows - PipeCloseProc2 would re-establish the exit handler after exit - handlers had already run, corrupting the heap. [Bug 1225727] - Corrected a read of uninitialized memory in PipeCloseProc2, which (at - least on certain configurations) caused a great number of tests to - either fail or hang. [Bug 1225044] +2008-05-22 Don Porter <dgp@users.sourceforge.net> -2005-06-22 Andreas Kupries <andreask@activestate.com> + * generic/tclNamesp.c (Tcl_LogCommandInfo): Restored ability to + handle the argument value length = -1. Thanks to Chris Darroch for + discovering the bug and providing the fix. [Bug 1968245]. - * generic/tclInt.h: Followup to change made on 2005-06-18 by Daniel - Steffen. There are compilers (*) who error out on the redefinition of - WORDS_BIGENDIAN. We have to undef the previous definition (on the - command line) first to make this acceptable. (*): AIX native. +2008-05-21 Don Porter <dgp@users.sourceforge.net> -2005-06-22 Don Porter <dgp@users.sourceforge.net> + * generic/tclParse.c (ParseComment): The new TclParseAllWhiteSpace + * tests/parse.test (parse-15.60): routine has no mechanism to + return the "incomplete" status of "\\\n" so calling this routine + anywhere that can be reached within a Tcl_ParseCommand call is a + mistake. In particular, ParseComment must not use it. [Bug 1968882] - * win/tclWinFile.c: Potential buffer overflow. [Bug 1225571] - Thanks to Pat Thoyts for discovery and fix. +2008-05-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * tests/safe.test: Backport performance improvement from - reduced $::auto_path. + * generic/tclNamesp.c (Tcl_SetNamespaceUnknownHandler): Corrected odd + logic for handling installation of namespace unknown handlers which + could lead too very strange things happening in the error case. -2005-06-21 Pat Thoyts <patthoyts@users.sourceforge.net> +2008-05-16 Miguel Sofer <msofer@users.sf.net> - * tests/winDde.test: Added some waits to the dde server script to - let event processing run after we create the dde server and before - we exit the server process. This avoids 'server did not respond' - errors. + * generic/tclCompile.c: Fix crash with tcl_traceExec. Found and + fixed by Alexander Pasadyn [Bug 1964803]. -2005-06-21 Kevin Kenny <kennykb@acm.org> +2008-05-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclFileName.c: Corrected a problem where a directory name - containing a colon can crash the process on Windows [Bug 1194458] - * tests/fileName.test: Added test for [file split] and [file join] - with a name containing a colon. - * win/tclWinPipe.c: Reverted davygrvy's changes of 2005-04-19; - they cause multiple failures in io.test. [Bug 1225044, still open] + * generic/tclCompCmds.c (TclCompileDictAppendCmd): Fix silly + off-by-one error that caused a crash every time a compiled 'dict + append' with more than one value argument was used. Found by Colin + McCormack. -2005-06-21 Don Porter <dgp@users.sourceforge.net> +2008-04-26 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * generic/tclBasic.c: Made the walk of the active trace list aware - * generic/tclCmdMZ.c: of the direction of trace scanning, so the - * generic/tclInt.h: proper correction can be made. [Bug 1224585] - * tests/trace.test (trace-34.2,3): + * generic/tclAsync.c: Tcl_AsyncDelete(): panic if attempt to locate + handler token fails. Happens when some other thread attempts to delete + somebody else's token. - * generic/tclBasic.c (Tcl_DeleteTrace): Added missing walk of the - * tests/trace.test (trace-34.1): list of active traces to - cleanup references to traces being deleted. [Bug 1201035] + Also, panic early if we find out the wrong thread attempting to delete + the async handler (common trap). As, only the one that created the + handler is allowed to delete it. -2005-06-20 Don Porter <dgp@users.sourceforge.net> +2008-04-24 Andreas Kupries <andreask@activestate.com> - * doc/FileSystem.3: added missing Tcl_GlobTypeData documentation [Bug - 935853] + * tests/ioCmd.test: Extended testsuite for reflected channel + implementation. Added test cases about how it handles if the rug is + pulled out from under a channel (= killing threads, interpreters + containing the tcl command for a channel, and channel sitting in a + different interpreter/thread.) -2005-06-18 Daniel Steffen <das@users.sourceforge.net> + * generic/tclIORChan.c: Fixed the bugs exposed by the new testcases, + redone most of the cleanup and exit handling. - * generic/tclInt.h: ensure WORDS_BIGENDIAN is defined correctly with - fat compiles on Darwin (i.e. ppc and i386 at the same time), the - configure AC_C_BIGENDIAN check is not sufficient in this case because - a single run of the compiler builds for two architectures with - different endianness. +2008-04-15 Andreas Kupries <andreask@activestate.com> - * unix/tcl.m4 (Darwin): add -headerpad_max_install_names to LDFLAGS to - ensure we can always relocate binaries with install_name_tool. + * generic/tclIO.c (CopyData): Applied another patch by Alexandre + * io.test (io-53.8a): Ferrieux <ferrieux@users.sourceforge.net>, + * chanio.test (chan-io-53.8a): to shift EOF handling to the async + part of the command if a callback is specified, should the channel + be at EOF already when fcopy is called. Testcase by myself. - * unix/configure: autoconf-2.13 +2008-04-14 Kevin B. Kenny <kennykb@acm.org> -2005-06-18 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixTime.c (NativeGetTime): Removed obsolete use of + 'struct timezone' in the call to 'gettimeofday'. [Bug 1942197]. + * tests/clock.test (clock-33.5, clock-33.5a, clock-33.8, clock-33.8a): + Added comments to the test that it can fail on a heavily loaded + system. - * changes: Update changes for 8.4.11 release +2008-04-11 Don Porter <dgp@users.sourceforge.net> - * README: Bump version number to 8.4.11 - * generic/tcl.h: - * tools/tcl.wse.in: - * unix/configure.in: + * generic/tcl.h: Bump version number to 8.5.3b1 to distinguish + * library/init.tcl: CVS development snapshots from the 8.5.2 and + * unix/configure.in: 8.5.3 releases. * unix/tcl.spec: - * win/README.binary: * win/configure.in: + * README - * unix/configure: autoconf + * unix/configure: autoconf (2.59) * win/configure: -2005-06-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * generic/tclCmdAH.c (Tcl_FormatObjCmd): Fix for [Bug 1154163]; only - * tests/format.test: insert 'l' modifier when it is needed. - -2005-06-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * unix/tclUnixNotfy.c (Tcl_FinalizeNotifier): Add dummy variable - so threaded build compiles. - -2005-06-06 Kevin B. Kenny <kennykb@acm.org> - - * win/tclWin32Dll.c: Corrected another buglet in the assembly code for - stack probing on Win32/gcc. [Bug 1213678] - -2005-06-03 Daniel Steffen <das@users.sourceforge.net> - - *** 8.4.10 TAGGED FOR RELEASE *** +2008-04-10 Andreas Kupries <andreask@activestate.com> - * unix/tclLoadDyld.c: fixed header conflict when building this file - with USE_TCL_STUBS. + * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Keeping check for negative + values, changed to not be an error, but behave like the special + value -1 (copy all, default). - * macosx/Makefile: fixed 'embedded' target. + * tests/iocmd.test (iocmd-15.{12,13}): Removed. -2005-06-02 Jeff Hobbs <jeffh@ActiveState.com> + * tests/io.test (io-52.5{,a,b}): Reverted last change, added + * tests/chanio.test (chan-io-52.5{,a,b}): comment regarding the + meaning of -1, added two more testcases for other negative values, + and input wrapped to negative. - * unix/Makefile.in (html): add BUILD_HTML_FLAGS optional var - * tools/tcltk-man2html.tcl: add a --useversion to prevent - confusion when multiple Tcl source dirs exist. +2008-04-09 Andreas Kupries <andreask@activestate.com> - * changes: updated for 8.4.10 release (porter) + * tests/chanio.test (chan-io-52.5): Removed '-size -1' from test, + * tests/io.test (io-52.5): does not seem to have any bearing, and + was an illegal value. -2005-05-31 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Added checking of -size + * tests/ioCmd.test (iocmd-15.{13,14}): value to reject negative + values, and values overflowing 32-bit signed. [Bug 1557855]. Basic + patch by Alexandre Ferrieux <ferrieux@users.sourceforge.net>, with + modifications from me to separate overflow from true negative + value. Extended testsuite. - * unix/tclUnixNotfy.c: the notifier thread is now created as - joinable thread and it is properly joined in Tcl_FinalizeNotifier. - This is an attempt to fix [Bug 1082283] +2008-04-08 Andreas Kupries <andreask@activestate.com> -2005-05-29 Jeff Hobbs <jeffh@ActiveState.com> + * tests/io.test (io-53.8): Fixed ordering of vwait and after + cancel. cancel has to be done after the vwait completes. - * win/tclWinThrd.c (TclpFinalizeThreadData): move tlsKey defn - to top of file and clarify name (was 'key'). [Bug 1204064] +2008-04-09 Daniel Steffen <das@users.sourceforge.net> -2005-05-27 Jeff Hobbs <jeffh@ActiveState.com> + * tests/chanio.test (chan-io-53.8,53.9,53.10): fix typo & quoting for + * tests/io.test (io-53.8,53.9,53.10): spaces in builddir path - * README: Bumped patchlevel to 8.4.10 - * generic/tcl.h: - * tools/tcl.wse.in: - * unix/tcl.spec, unix/configure, unix/configure.in: - * win/configure, win/configure.in: - -2005-05-26 Daniel Steffen <das@users.sourceforge.net> +2008-04-07 Andreas Kupries <andreask@activestate.com> - * macosx/Makefile: moved & corrected EMBEDDED_BUILD check. + * tests/io.test (io-53.10): Testcase for bi-directionaly fcopy. + * tests/chanio.test: + * generic/tclIO.c: Additional changes to data structures for fcopy + * generic/tclIO.h: and channels to perform proper cleanup in case + of a channel having two background copy operations running as is + now possible. - * unix/configure.in: corrected framework finalization to softlink - stub library to Versions/8.x subdir instead of Versions/Current. - * unix/configure: autoconf-2.13 + * tests/io.test (io-53.10): Testcase for bi-directionaly fcopy. + * generic/tclIO.c: Additional changes to data structures for fcopy + and channels to perform proper cleanup in case of a channel having + two background copy operations running as is now possible. -2005-05-25 Jeff Hobbs <jeffh@ActiveState.com> +2008-04-07 Andreas Kupries <andreask@activestate.com> - * generic/tclCmdMZ.c (Tcl_TimeObjCmd): add necessary cast + * generic/tclIO.c (BUSY_STATE, CheckChannelErrors, + TclCopyChannel): New macro, and the places using it. This change + allows for bi-directional fcopy on channels. [Bug 1350564]. Thanks + to Alexandre Ferrieux <ferrieux@users.sourceforge.net> for the + patch. - * unix/configure, unix/configure.in: ensure false Tcl.framework is - only created with --enable-framework +2008-04-07 Reinhard Max <max@suse.de> -2005-05-24 Daniel Steffen <das@users.sourceforge.net> + * generic/tclStringObj.c (Tcl_AppendFormatToObj): Fix [format {% d}] + so that it behaves the same way as in 8.4 and as C's printf(). + * tests/format.test: Add a test for '% d' and '%+d'. - * tests/env.test: added DYLD_FRAMEWORK_PATH to the list of env vars - that need to be handled specially. +2008-04-05 Kevin B. Kenny <kennykb@acm.org> - * macosx/Makefile: - * macosx/README: - * macosx/Tcl-Info.plist.in (new file): - * unix/Makefile.in: - * unix/configure.in: - * unix/tcl.m4: - * unix/tclUnixInit.c: moved all Darwin framework build support from - macosx/Makefile into the standard unix configure/make buildsystem, the - macosx/Makefile is no longer required to build Tcl.framework (but its - functionality is still available for backwards compatibility). - * unix/configure: autoconf-2.13 - - * generic/tclIOUtil.c (TclLoadFile): - * generic/tclInt.h: - * unix/tcl.m4: - * unix/tclLoadDyld.c: added support for [load]ing .bundle binaries in - addition to .dylib's: .bundle's can be [unload]ed (unlike .dylib's), - and can be [load]ed from memory, e.g. directly from VFS without - needing to be written out to a temporary location first. [Bug 1202209] - * unix/configure: autoconf-2.13 + * tests/chanio.test (chan-io-53.9): + * tests/io.test (io-53.9): Made test cleanup robust against the + possibility of slow process shutdown on Windows. + + * win/tcl.m4: Added -D_CRT_SECURE_NO_DEPRECATE and + -DCRT_NONSTDC_NO_DEPRECATE to the MSVC compilation flags so that + the compilation doesn't barf on perfectly reasonable Posix system + calls. + * win/configure: Manually patched (don't have the right autoconf + to hand). + + * win/tclWinFile.c: (WinSymLinkDirectory): Fixed a problem that + Tcl was creating an NTFS junction point (IO_REPARSE_TAG_MOUNT_POINT) + but filling in the union member for a Vista symbolic link. We had + gotten away with this error because the union member + (SymbolicLinkReparseBuffer) was misdefined in this file and in the + 'winnt.h' in early versions of MinGW. MinGW 3.4.2 has the correct + definition of SymbolicLinkReparseBuffer, exposing the mismatch, + and making tests cmdAH-19.4.1, fCmd-28.*, and filename-11.* fail. - * generic/tclCmdMZ.c (Tcl_TimeObjCmd): change [time] called with a - count > 1 to return a string with a float value instead of a rounded - off integer. [Bug 1202178] +2008-04-04 Andreas Kupries <andreask@activestate.com> -2005-05-20 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * tests/io.test (io-53.9): Added testcase for [Bug 780533], based + * tests/chanio.test: on Alexandre's test script. Also fixed + problem with timer in preceding test, was not canceled properly in + the ok case. - * generic/tclParseExpr.c: removed unreferenced stack variable "errMsg" - probably included by fixing [Bug 1201589] (see below). +2008-04-04 Andreas Kupries <andreask@activestate.com> -2005-05-20 Don Porter <dgp@users.sourceforge.net> + * generic/tclIORChan.c (ReflectOutput): Allow zero return from + write when input was zero-length anyway. Otherwise keept it an + error, and separate the message from 'written too much'. - * generic/tclParseExpr.c: Corrected parser to recognize all - boolean literals accepted by Tcl_GetBoolean, including prefixes like - "y" and "f", and to allow "eq" and "ne" as function names in the - proper context. [Bug 1201589] + * tests/ioCmd.test (iocmd-24.6): Testcase updated for changed + message. -2005-05-19 Daniel Steffen <das@users.sourceforge.net> + * generic/tclIORChan.c (ReflectClose): Added missing removal of + the now closed channel from the reflection map. Before we could + crash the system by invoking 'chan postevent' on a closed + reflected channel, dereferencing the dangling pointer in the map. - * macosx/tclMacOSXNotify.c (Tcl_InitNotifier): fixed crashing - CFRelease of runLoopSource in Tcl_InitNotifier (reported by Zoran): - CFRunLoopAddSource doesn't CFRetain, so can only CFRelease the - runLoopSource in Tcl_FinalizeNotifier. + * tests/ioCmd.test (iocmd-31.8): Testcase for the above. -2005-05-14 Daniel Steffen <das@users.sourceforge.net> +2008-04-03 Andreas Kupries <andreask@activestate.com> - * macosx/tclMacOSXBundle.c: - * unix/tclUnixInit.c: - * unix/tcl.m4 (Darwin): made use of CoreFoundation API configurable - and added test of CoreFoundation availablility to allow building on - ppc64, replaced HAVE_CFBUNDLE by HAVE_COREFOUNDATION; test for - availability of Tiger or later OSSpinLockLock API. + * generic/tclIO.c (CopyData): Applied patch [Bug 1932639] to + * tests/io.test: prevent fcopy from calling -command synchronously + * tests/chanio.test: the first time. Thanks to Alexandre Ferrieux + <ferrieux@users.sourceforge.net> for report and patch. - * unix/tclUnixNotfy.c: - * unix/Makefile.in: - * macosx/tclMacOSXNotify.c (new file): when CoreFoundation is - available, use new CFRunLoop based notifier: allows easy integration - with other event loops on Mac OS X, in particular the TkAqua Carbon - event loop is now integrated via a standard tcl event source (instead - of TkAqua upon loading having to finalize the exsting notifier and - replace it with its custom version). [Patch 1202052] +2008-04-02 Andreas Kupries <andreask@activestate.com> - * tests/unixNotfy.test: don't run unthreaded tests on Darwin since - notifier may be using threads even in unthreaded core. + * generic/tclIO.c (CopyData): Applied patch for the fcopy problem + [Bug 780533], with many thanks to Alexandre Ferrieux + <ferrieux@users.sourceforge.net> for tracking it down and + providing a solution. Still have to convert his test script into a + proper test case. - * unix/tclUnixPort.h: - * unix/tcl.m4 (Darwin): test for thread-unsafe realpath durning - configure, as Darwin 7 and later realpath is threadsafe. +2008-04-01 Andreas Kupries <andreask@activestate.com> - * macosx/tclMacOSXBundle.c: - * unix/tclLoadDyld.c: - * unix/tclUnixInit.c: fixed gcc 4.0 warnings. + * generic/tclStrToD.c: Applied patch for [Bug 1839067] (fp + * unix/tcl.m4: rounding setup on solaris x86, native cc), provided + * unix/configure: by Michael Schlenker. configure regen'd. - * unix/configure: autoconf-2.13 +2008-04-01 Don Porter <dgp@users.sourceforge.net> -2005-05-10 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclStubLib.c (Tcl_InitStubs): Added missing error message. + * generic/tclPkg.c (Tcl_PkgInitStubsCheck): - * tests/string.test: string-10.[21-30] - * generic/tclCmdMZ.c (Tcl_StringObjCmd): add extra checks to - prevent possible UMR in unichar cmp function for string map. +2008-03-30 Kevin Kenny <kennykb@acm.org> -2005-05-06 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclInt.h (TclIsNaN): + * unix/configure.in: Added code to the configurator to check for + a standard isnan() macro and use it if one + is found. This change avoids bugs where + the test of ((d) != (d)) is optimized away + by an overaggressive compiler. [Bug 1783544] + * generic/tclObj.c: Added missing #include <math.h> needed to + locate isnan() after the above change. - * unix/tcl.m4, unix/configure: correct Solaris 10 (5.10) check and - add support for x86_64 Solaris cc builds. + * unix/configure: autoconf-2.61 -2005-04-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * tests/mathop.test (mathop-25.9, mathop-25.14): Modified tests + to deal with (slightly buggy) math libraries in which pow() + returns an incorrectly rounded result. [Bug 1808174] - * doc/FileSystem.3: Backport of doc fix. [Bug 1172401] +2008-03-26 Don Porter <dgp@users.sourceforge.net> -2005-04-27 Don Porter <dgp@users.sourceforge.net> + *** 8.5.2 TAGGED FOR RELEASE *** - * library/init.tcl: Corrected flaw in interactive command - * tests/main.test: auto-completion. [Bug 1191409] + * generic/tcl.h: Bump to 8.5.2 for release. + * library/init.tcl: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/configure.in: - * tests/unixInit.test (7.1): Alternative fix for the - 2005-04-22 commit. + * unix/configure: autoconf-2.59 + * win/configure: -2005-04-25 Daniel Steffen <das@users.sourceforge.net> + * changes: Updated for 8.5.2 release. + +2008-03-28 Donal K. Fellows <dkf@users.sf.net> + + * tests/fCmd.test: Substantial rewrite to use many more tcltest + features. Great reduction in quantity of [catch] gymnastics. Several + buggy tests fixed, including one where the result of the previous test + was being checked! + +2008-03-27 Kevin B. Kenny <kennykb@acm.org> + + * library/tzdata/America/Marigot: + * library/tztata/America/St_Barthelemy: + * library/tzdata/America/Argentina/San_Luis: + * library/tzdata/Asia/Ho_Chi_Minh: + * library/tzdata/Asia/Kolkata: (new files) + * library/tzdata/America/Caracas: + * library/tzdata/America/Havana: + * library/tzdata/America/Santiago: + * library/tzdata/America/Argentina/Buenos_Aires: + * library/tzdata/America/Argentina/Catamarca: + * library/tzdata/America/Argentina/Cordoba: + * library/tzdata/America/Argentina/Jujuy: + * library/tzdata/America/Argentina/La_Rioja: + * library/tzdata/America/Argentina/Mendoza: + * library/tzdata/America/Argentina/Rio_Gallegos: + * library/tzdata/America/Argentina/San_Juan: + * library/tzdata/America/Argentina/Tucuman: + * library/tzdata/America/Argentina/Ushuaia: + * library/tzdata/Asia/Baghdad: + * library/tzdata/Asia/Calcutta: + * library/tzdata/Asia/Damascus: + * library/tzdata/Asia/Saigon: + * library/tzdata/Pacific/Easter: + Changes up to and including Olson's tzdata2008b. - * compat/string.h: fixed memchr() protoype for __APPLE__ so that we - build on Mac OS X 10.1 again. +2008-03-27 Daniel Steffen <das@users.sourceforge.net> - * generic/tclNotify.c (TclFinalizeNotifier): fixed notifier not being - finalized in unthreaded core (was testing for notifier initialization - in current thread by checking thread id != 0 but thread id is always 0 - in untreaded core). + * unix/tcl.m4 (SunOS-5.1x): fix 64bit support for Sun cc. [Bug 1921166] - * unix/tclUnixNotfy.c (Tcl_WaitForEvent): sync with HEAD: only declare - and use timeout var in unthreaded core. + * unix/configure: autoconf-2.59 - * unix/Makefile.in: added @PLAT_SRCS@ to SRCS and split out - NOTIFY_SRCS from UNIX_SRCS for parity with UNIX_OBJS & NOTIFY_OBJS. +2008-03-26 Don Porter <dgp@users.sourceforge.net> - * unix/configure.in: only run check for broken strstr implementation - if AC_REPLACE_FUNCS(strstr) hasn't already determined that strstr is - unavailable, otherwise compat/strstr.o will be used twice (resulting - in duplicate symbol link errors on Mac OS X 10.1) + * changes: Updated for 8.5.2 release. - * unix/tcl.m4 (Darwin): added configure checks for recently added - linker flags -single_module and -search_paths_first to allow building - with older tools (and on Mac OS X 10.1), use -single_module in - SHLIB_LD and not just T{CL,K}_SHLIB_LD_EXTRAS, added unexporting from - Tk of symbols from libtclstub to avoid duplicate symbol warnings, - added PLAT_SRCS definition for Mac OS X. - (SC_MISSING_POSIX_HEADERS): added caching of dirent.h check. - (SC_TCL_64BIT_FLAGS): fixed 'checking for off64_t' message output. +2008-03-24 Pat Thoyts <patthoyts@users.sourceforge.net> - * unix/configure: autoconf-2.13 + * generic/tclBinary.c: [Bug 1923966] - crash in binary format + * tests/binary.test: Added tests for the above crash condition. -2005-04-22 Don Porter <dgp@users.sourceforge.net> +2008-03-21 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdMZ.c: Corrected intrep-dependence of - * tests/string.test: [string is boolean] [Bug 1187123] + * doc/switch.n: Clarified documentation in respect of two-argument + invokation. [Bug 1899962] -2005-04-22 Daniel Steffen <das@users.sourceforge.net> + * tests/switch.test: Added more tests of regexp-mode compilation of + the [switch] command. [Bug 1854435] - * tests/unixInit.test (7.1): fixed failure when running tests with - -tmpdir arg not set to working dir. +2008-03-20 Donal K. Fellows <dkf@users.sf.net> -2005-04-20 Don Porter <dgp@users.sourceforge.net> + * generic/tcl.h, generic/tclThreadAlloc.c: Tidied up the declarations + of Tcl_GetMemoryInfo so that it is always defined. Will panic when + called against a Tcl that was previously built without it at all, + which is OK because that also indicates a serious mismatch between + memory configuration options. - * generic/tclGet.c (Tcl_GetInt): Corrected error that did not - * generic/tclObj.c (Tcl_GetIntFromObj): permit 0x80000000 to be - recognized as an integer on TCL_WIDE_INT_IS_LONG systems [Bug 1090869] +2008-03-19 Donal K. Fellows <dkf@users.sf.net> -2005-04-19 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tcl.h, generic/tclThreadAlloc.c (Tcl_GetMemoryInfo): Make + sure this function is available when direct linking. [Bug 1868171] - * tests/winPipe.test (winpipe-6.2): remove -blocking 1 as this one - can truly block. + * tests/reg.test (reg-33.14): Marked nonPortable because some + environments have small default stack sizes. [Bug 1905562] -2005-04-19 David Gravereaux <davygrvy@pobox.com> +2008-03-18 Andreas Kupries <andreask@activestate.com> - * win/tclWinPipe.c: The pipe channel driver now respects the -blocking - option when closing. The windows pipe driver now has the same behavior - as the UNIX side. This change 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] + * library/tm.tcl (::tcl::tm::UnknownHandler): Changed 'source' to + 'source -encoding utf-8'. This fixes a portability problem of Tcl + Modules pointed out by Don Porter. By using plain 'source' we were at + the mercy of 'encoding system', making modules less portable than they + could be. The exact scenario: A writes a TM in some weird encoding + which is A's system encoding, distributes it, and somewhere else it + cannot be read/used because the system encoding is different. Forcing + the use of utf-8 makes the module portable. - ***POTENTIAL INCOMPATIBILITY*** + ***INCOMPATIBILITY*** for all Tcl Modules already written in non-utf-8 + compatible encodings. - Scripts that use async pipes on windows, must (like the UNIX side) set - -blocking to 1 before calling [close] to receive the exit status. +2008-03-18 Don Porter <dgp@users.sourceforge.net> - * tests/winPipe.test (winpipe-6.1/2): added 'fconfigure $f -blocking - 1' so the exit status can be acquired. + * generic/tclExecute.c: Patch from Miguel Sofer to correct the + alignment of memory allocated by GrowEvaluationStack(). [Bug 1914503] -2005-04-13 David Gravereaux <davygrvy@pobox.com> +2008-03-18 Andreas Kupries <andreask@activestate.com> - * generic/tclIO.c (Tcl_SetChannelBufferSize): Lowest size limit - * tests/io.test: changed from ten bytes to one byte. Need for - * tests/iogt.test: this change was proven by Ross Cartlidge - <rossc@cisco.com> where [read stdin 1] was grabbing 10 bytes followed - by starting a child process that was intended to continue reading from - stdin. Even with -buffersize set to one, nine chars were getting lost - by the buffersize over reading for the native read() caused by [read]. + * library/tm.tcl (::tcl::tm::Defaults): Modified handling of + environment variables. See [Bug 1914604]. Solution slightly different + than proposed in the report. Using the underscored form TCLX_y_TM_PATH + even if TCLX.y_TM_PATH exists. Also using a loop to cut prevent code + replication. -2005-04-12 Kevin B. Kenny <kennykb@acm.org> +2008-03-16 Donal K. Fellows <dkf@users.sf.net> - * compat/strstr.c: Added default definition of NULL to accommodate - building on systems with badly broken headers. [Bug 1175161] + * generic/tclCompCmds.c (TclCompileDictForCmd): Correct the handling + of stack space calculation (the jump pattern used was confusing the + simple-minded code doing the calculations). [Bug 1903325] -2005-04-09 Daniel Steffen <das@users.sourceforge.net> + * doc/lreplace.n: Clarified documentation of what happens with + negative indices. [Bug 1905809] Added example, tidied up formatting. - * macosx/README: updated requirements for OS & developer tool versions - + other small fixes/cleanup. +2008-03-14 Don Porter <dgp@users.sourceforge.net> - * unix/tcl.m4 (Darwin): added -single_module linker flag to - TCL_SHLIB_LD_EXTRAS and TK_SHLIB_LD_EXTRAS. - * unix/configure: autoconf-2.13 + * generic/tclBasic.c (OldMathFuncProc): Same workaround protection + from bad TclStackAlloc() alignment. Thanks George Peter Staplin. -2005-04-05 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclCmdIL.c (Tcl_LsortObjCmd): Use ckalloc() to allocate + SortElement arrays instead of TclStackAlloc() which isn't getting + alignment right. Workaround for [Bug 1914503]. - Set of changes correcting huge memory waste (not a leak) when a thread - exits. This has been introduced in 8.4.7 within an attempt to - correctly cleanup after ourselves when Tcl library is being unloaded - with the Tcl_Finalize() call. +2008-03-14 Reinhard Max <max@suse.de> - This fixes the [Bug 1178445]. + * generic/tclTest.c: Ignore the return value of write() when we are + * unix/tclUnixPipe.c: about to exit anyways. - * generic/tclInt.h: added prototypes for TclpFreeAllocCache() and - TclFreeAllocCache() +2008-03-13 Daniel Steffen <das@users.sourceforge.net> - * generic/tclThreadAlloc.c: modified TclFinalizeThreadAlloc() to - explicitly call TclpFreeAllocCache with the NULL-ptr as argument - signalling cleanup of private tsd key used only by the threading - allocator. + * unix/configure.in: Use backslash-quoting instead of double-quoting + * unix/tcl.m4: for lib paths in tclConfig.sh. [Bug 1913622] + * unix/configure: autoconf-2.59 - * unix/tclUnixThrd.c: fixed TclpFreeAllocCache() to recognize when - being called with NULL argument. This is a signal for it to clean up - the tsd key associated with the threading allocator. +2008-03-13 Don Porter <dgp@users.sourceforge.net> - * win/tclWinThrd.c: renamed TclWinFreeAllocCache to TclpFreeAllocCache - and fixed to recognize when being called with NULL argument. This is a - signal for it to clean up the tsd key associated with the threading - allocator. + * changes: Updated for 8.5.2 release. -2005-04-05 Don Porter <dgp@users.sourceforge.net> + * generic/tclStrToD.c: Resolve identifier conflict over "pow10" with + libm in Cygwin and DJGPP. Thanks to Gordon Schumacher and Philip + Moore. [Patch 1800636] - * generic/tclExecute.c (ExprSrandFunc): Replaced incursions into the - * generic/tclUtil.c (TclGetIntForIndex): intreps of numeric types with - simpler calls of Tcl_GetIntFromObj and Tcl_GetLongFromObj, now that - those routines are better behaved wrt shimmering. [Patch 1177129] +2008-03-12 Daniel Steffen <das@users.sourceforge.net> -2005-03-29 Jeff Hobbs <jeffh@ActiveState.com> + * macosx/Tcl.xcodeproj/project.pbxproj: Add support for Xcode 3.1 + * macosx/Tcl.xcodeproj/default.pbxuser: CODE_SIGN_IDENTITY and + * macosx/Tcl-Common.xcconfig: 'xcodebuild install'. - * win/tcl.m4, win/configure: do not require cygpath in macros to - allow msys alone as an alternative. +2008-03-12 Andreas Kupries <andreask@activestate.com> - * win/tclWinTime.c (TclpGetDate): use time_t for 'time' [Bug 1163422] + * doc/info.n: Replaced {expand} with {*}. -2005-03-18 Don Porter <dgp@users.sourceforge.net> +2008-03-12 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclCompCmds.c (TclCompileIncrCmd): Corrected checks for - immediate operand usage to permit leading space and sign characters. - Restores more efficient bytecode for [incr x -1] that got lost in the - CONST string reforms of Tcl 8.4. [Bug 1165671] + * unix/Makefile.in (install-libraries): Bump http to 2.7 + * win/Makefile.in (install-libraries): Added -myaddr option to allow + * library/http/http.tcl (http::geturl): control of selected socket + * library/http/pkgIndex.tcl: interface. [Bug 559898] + * doc/http.n, tests/http.test: Added -keepalive and + -protocol 1.1 with chunked transfer encoding support. [Bug 1063703, + 1470377, 219225] (default keepalive is 0) + Added ability to override Host in -headers. [Bug 928154] + Added -strict option to control URL validation on per-call basis. + [Bug 1560506] - * generic/tclBasic.c (Tcl_EvalEx,TclEvalTokensStandard): - * generic/tclCmdMZ.c (Tcl_SubstObj): - * tests/basic.test (basic-46.4): Restored recursion limit - * tests/parse.test (parse-19.*): testing in nested command - substitutions within direct script evaluation (Tcl_EvalEx) that got - lost in the parser reforms of Tcl 8.1. Added tests for correct - behavior. [Bug 1115904] +2008-03-11 Jeff Hobbs <jeffh@ActiveState.com> -2005-03-15 Vince Darley <vincentdarley@users.sourceforge.net> + * library/http/http.tcl (http::geturl): Add -method option to support + * tests/http.test (http-3.1): http PUT and DELETE requests. + * doc/http.n: [Bug 1599901, 862554] - * generic/tclFileName.c: - * win/tclWinFile.c: - * tests/winFCMd.test: fix to 'file pathtype' and 'file norm' failures - on reserved filenames like 'COM1:', etc. + * library/http/http.tcl: Whitespace changes, code cleanup. Allow http + to be re-sourced without overwriting http state. -2005-03-15 Kevin B. Kenny <kennykb@acm.org> +2008-03-11 Daniel Steffen <das@users.sourceforge.net> - * generic/tclClock.c: - * generic/tclDate.c: - * generic/tclGetDate.y: - * generic/tclInt.decls: - * unix/tclUnixTime.c: - * win/tclWinTime.c: Replaced 'unsigned long' variable holding - times with 'Tcl_WideInt', to cope with systems on which a time_t is - wider than a long (Win64) [Bug 1163422] - * generic/tclIntDecls.h: Regen + * generic/tclEncoding.c (LoadEscapeEncoding): Avoid leaking escape + sub-encodings, fixes encoding-11.1 failing after iso2022-jp loaded. + [Bug 1893053] -2005-03-15 Pat Thoyts <patthoyts@users.sourceforge.net> + * macosx/tclMacOSXNotify.c: Avoid using CoreFoundation after fork() on + Darwin 9 even when TclpCreateProcess() uses vfork(). - * unix/tcl.m4: Make it work on OpenBSD again. Imported patch - from the OpenBSD ports tree. + * macosx/Tcl.xcodeproj/project.pbxproj: Add support for Xcode 3.1 and + * macosx/Tcl.xcodeproj/default.pbxuser: configs for building with + * macosx/Tcl-Common.xcconfig: gcc-4.2 and llvm-gcc-4.2. -2005-03-10 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixPort.h: Workaround vfork() problems + in llvm-gcc-4.2.1 -O4 build. - * generic/tclCmdMZ.c (TclCheckInterpTraces): Corrected mistaken - cast of ClientData to (TraceCommandInfo *) when not warranted. Thanks - to Yuri Victorovich for the report. [Bug 1153871] + * unix/tclUnixPort.h: Move MODULE_SCOPE compat define + to top [Bug 1911102]. -2005-03-08 Jeff Hobbs <jeffh@ActiveState.com> + * macosx/GNUmakefile: Fix quoting to allow paths to + * macosx/Tcl-Common.xcconfig: ${builddir} and ${INSTALL_ROOT} + * unix/Makefile.in: to contain spaces. + * unix/configure.in: + * unix/install-sh: + * unix/tcl.m4: + * tests/ioCmd.test: - * win/makefile.vc: clarify necessary defined vars that can come - from MSVC or the Platform SDK. + * unix/configure: autoconf-2.59 -2005-02-24 Don Porter <dgp@users.sourceforge.net> + * unix/Makefile.in (install-strip): Strip non-global symbols from + dynamic library. - * library/tcltest/tcltest.tcl: Better use of [glob -types] to avoid - * tests/tcltest.test: failed attempts to [source] a directory, and - similar matters. Thanks to "mpettigr". [Bug 1119798] + * unix/tclUnixNotfy.c: Fix warning. - * library/tcltest/pkgIndex.tcl: Bump to tcltest 2.2.8 + * tests/exec.test (exec-9.7): Reduce timing sensitivity + * tests/socket.test (socket-2.11): (esp. on multi-proc machines). -2005-02-23 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * tests/fCmd.test (fCmd-9.4): Skip on Darwin 9 (xfail). - * doc/CrtChannel.3 (THREADACTIONPROC): Formatting fix. [Bug 1149605] +2008-03-11 Miguel Sofer <msofer@users.sf.net> -2005-02-17 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclVar.c (TclDeleteNamespaceVars): + * tests/var.test (var-8.2): Unset traces on vars should be called with + a FQ named during namespace deletion. This was causing infinite loops + when unset traces recreated the var, as reported by Julian Noble. [Bug + 1911919] - * win/tclWinFCmd.c (TraverseWinTree): use wcslen on wchar, not - Tcl_UniCharLen. +2008-03-10 Don Porter <dgp@users.sourceforge.net> -2005-02-16 Miguel Sofer <msofer@users.sf.net> + * changes: Updated for 8.5.2 release. - * doc/variable.n: fix for [Bug 1124160], variables are detected by - [info vars] but not by [info locals]. + * doc/http.n: Revised to indicate that [package require http 2.5.5] + is needed to get all the documented commands ([http::meta]). -2005-02-10 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclEvent.c (TclDefaultBgErrorHandlerObjCmd): Added error + * tests/event.test (event-5.*): checking to protect against callers + passing invalid return options dictionaries. [Bug 1901113] - * unix/Makefile.in: remove SHLIB_LD_FLAGS (only for AIX, inlined - * unix/tcl.m4: into SHLIB_LD). Combine AIX-* and AIX-5 - * unix/configure: branches in SC_CONFIG_CFLAGS. - Correct gcc builds for AIX-4+ and HP-UX-11. + * generic/tclBasic.c (ExprAbsFunc): Revised so that the abs() + * tests/expr.test: function and the [::tcl::mathfunc::abs] + command do not return the value of -0, or equivalent values with more + alarming string reps like -1e-350. [Bug 1893815] -2005-02-10 Miguel Sofer <msofer@users.sf.net> +2008-03-07 Andreas Kupries <andreask@activestate.com> - * generic/tclBasic.c (Tcl_EvalObjEx): - * tests/basic.test (basic-26.2): preserve the arguments passed to TEOV - in the pure-list branch, in case the list shimmers away. Fix for [Bug - 1119369], reported by Peter MacDonald. + * generic/tclResult.c (ReleaseKeys): Workaround for [Bug 1904907]. + Reset the return option keys to NULL to allow full re-initialization + by GetKeys(). This introduces a memory leak for the key objects, but + gets us around a crash in the finalization of reflected channels when + handling returns, either at compile- or runtime. In both cases we + access the keys after they have been released by their thread exit + handler. A proper fix is entangled with the untangling of the + finalization ordering and attendant issues. For now we choose the + lesser evil. -2005-02-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2008-03-07 Don Porter <dgp@users.sourceforge.net> - * doc/binary.n: Made the documentation of sign bit masking and - [binary scan] consistent. [Bug 1117017] + * generic/tclExecute.c (Tcl_ExprObj): Revised expression bytecode + compiling so that bytecodes invalid due to changing context or due to + the difference between expressions and scripts are not reused. [Bug + 1899164] -2005-02-01 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdAH.c: Revised direct evaluation implementation of + [expr] so that [expr $e] caches compiled bytecodes for the expression + as the intrep of $e. - * generic/tclExecute.c (TclCompEvalObj): Removed stray statement - left behind in prior code reorganization. + * tests/execute.test (execute-6.*): More tests checking that + script bytecode is invalidated in the right situations. -2005-01-28 Jeff Hobbs <jeffh@ActiveState.com> +2008-03-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * unix/configure, unix/tcl.m4: add solaris 64-bit gcc build - support. [Bug 1021871] + * win/configure.in: Add AC_HEADER_STDC to support msys/win64. -2005-01-27 Jeff Hobbs <jeffh@ActiveState.com> +2008-03-06 Donal K. Fellows <dkf@users.sf.net> - * generic/tclBasic.c (Tcl_ExprBoolean, Tcl_ExprDouble) - (Tcl_ExprLong): Fix to recognize Tcl_WideInt type. [Bug 1109484] + * doc/namespace.n: Minor tidying up. [Bug 1909019] -2005-01-27 Andreas Kupries <andreask@activestate.com> +2008-03-04 Don Porter <dgp@users.sourceforge.net> - TIP#218 IMPLEMENTATION + * tests/execute.test (6.3,4): Added tests for [Bug 1899164]. - * generic/tclDecls.h: Regenerated from tcl.decls. - * generic/tclStubInit.c: +2008-03-03 Reinhard Max <max@suse.de> - * doc/CrtChannel.3: Documentation of extended API, - * generic/tcl.decls: extended testsuite, and - * generic/tcl.h: implementation. Removal of old - * generic/tclIO.c: driver-specific TclpCut/Splice - * generic/tclInt.h: functions. Replaced with generic - * tests/io.test: thread-action calls through the - * unix/tclUnixChan.c: new hooks. Update of all builtin - * unix/tclUnixPipe.c: channel drivers to version 4. - * unix/tclUnixSock.c: Windows drivers extended to - * win/tclWinChan.c: manage thread state in a thread - * win/tclWinConsole.c: action handler. - * win/tclWinPipe.c: - * win/tclWinSerial.c: - * win/tclWinSock.c: - * mac/tclMacChan.c: + * unix/tclUnixChan.c: Fix mark and space parity on Linux, which uses + CMSPAR instead of PAREXT. -2005-01-25 Don Porter <dgp@users.sourceforge.net> +2008-03-02 Miguel Sofer <msofer@users.sf.net> - * library/auto.tcl: Updated [auto_reset] to clear auto-loaded - procs in namespaces other than :: [Bug 1101670]. + * generic/tclNamesp.c (GetNamespaceFromObj): + * tests/interp.test (interp-28.2): Spoil the intrep of an nsNameType + obj when the reference crosses interpreter boundaries. -2005-01-25 Daniel Steffen <das@users.sourceforge.net> +2008-02-29 Don Porter <dgp@users.sourceforge.net> - * unix/tcl.m4 (Darwin): fixed bug with static build linking to dynamic - library in /usr/lib etc instead of linking to static library earlier - in search path. [Bug 956908] - Removed obsolete references to Rhapsody. - * unix/configure: autoconf-2.13 + * generic/tclResult.c (Tcl_SetReturnOptions): Revised the refcount + management of Tcl_SetReturnOptions to become that of a conventional + Consumer routine. Thanks to Peter Spjuth for pointing out the + difficulties calling Tcl_SetReturnOptions with non-0-count value for + options. + * generic/tclExecute.c (INST_RETURN_STK): Revised the one caller + within Tcl itself which passes a non-0-count value to + Tcl_SetReturnOptions(). -2005-01-19 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclBasic.c (Tcl_AppendObjToErrorInfo): Revised the + refcount management of Tcl_AppendObjToErrorInfo to become that of a + conventional Consumer routine. This preserves the ease of use for the + overwhelming common callers who pass in a 0-count value, but makes the + proper call with a non-0-count value less surprising. + * generic/tclEvent.c (TclDefaultBgErrorHandlerObjCmd): Revised the + one caller within Tcl itself which passes a non-0-count value to + Tcl_AppendObjToErrorInfo(). - * win/tclWinChan.c (FileCloseProc): Invoke TclpCutFileChannel() to - remove a FileInfo from the thread local list before deallocating it. - This should have been done via an earlier call to Tcl_CutChannel, but - I was running into a crash in the next call to Tcl_CutChannel during - the IO finalization stage. +2008-02-28 Joe English <jenglish@users.sourceforge.net> -2005-01-17 Vince Darley <vincentdarley@users.sourceforge.net> + * unix/tclPort.h, unix/tclCompat.h, unix/tclUnixChan.h: Reduce scope + of <sys/filio.h> and <sys/ioctl.h> #includes. [Patch 1903339] - * tests/winFCmd.test: made test independent of current drive. [Bug - 1066528] +2008-02-28 Joe English <jenglish@users.sourceforge.net> -2005-01-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * unix/tclUnixChan.c, unix/tclUnixNotfy.c, unix/tclUnixPipe.c: + Consolidate all code conditionalized on -DUSE_FIONBIO into one place. + * unix/tclUnixPort.h, unix/tclUnixCompat.c: New routine + TclUnixSetBlockingMode() [Patch 1903339]. - * unix/tclUnixFCmd.c (CopyFile): Convert u_int to unsigned to make - clashes with types in standard C headers less of a problem. [Bug - 1098829] +2008-02-28 Don Porter <dgp@users.sourceforge.net> -2005-01-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclBasic.c (TclEvalObjvInternal): Plug memory leak when + an enter trace deletes or changes the command, prompting a reparsing. + Don't let the second pass lose commandPtr value allocated during the + first pass. - * library/http/http.tcl (http::mapReply): Significant performance - enhancement by using [string map] instead of [regsub]/[subst], and - update version requirement to Tcl8.4. [Bug 1020491] + * generic/tclCompExpr.c (ParseExpr): Plug memory leak in error + message generation. -2005-01-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclStringObj.c (Tcl_AppendFormatToObj): [format %llx $big] + leaked an mp_int. - * unix/tclUnixInit.c (localeTable): Add encoding mappings for some - Chinese locales. [Bug 1084595] + * generic/tclCompCmds.c (TclCompileReturnCmd): The 2007-10-18 commit + to optimize compiled [return -level 0 $x] [RFE 1794073] introduced a + memory leak of the return options dictionary. Fixing that. - * doc/lsearch.n: Convert to other form of emacs mode control - comment to prevent problems with old versions of man. [Bug 1085127] +2008-02-27 Pat Thoyts <patthoyts@users.sourceforge.net> -2004-12-29 Jeff Hobbs <jeffh@ActiveState.com> + * library/http/http.tcl: [Bug 705956] - fix inverted logic when + cleaning up socket error in geturl. - * 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] +2008-02-27 Kevin B. Kenny <kennykb@acm.org> -2004-12-13 Kevin B. Kenny <kennykb@acm.org> + * doc/clock.n: Corrected minor indentation gaffe in the penultimate + paragraph. [Bug 1898025] + * generic/tclClock.c (ParseClockFormatArgs): Changed to check that the + clock value is in the range of a 64-bit integer. [Bug 1862555] + * library/clock.tcl (::tcl::clock::format, ::tcl::clock::scan, + (::tcl::clock::add, ::tcl::clock::LocalizeFormat): Fixed bugs in + caching of localized strings that caused weird results when localized + date/time formats were used. [Bug 1902423] + * tests/clock.test (clock-61.*, clock-62.1): Regression tests for [Bug + 1862555] and [Bug 1902423]. - * doc/clock.n: Clarify that the [clock scan] command does not accept - the full range of ISO8601 point-in-time formats. [Bug 1075433] +2008-02-26 Joe English <jenglish@users.sourceforge.net> -2004-12-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclIOUtil.c, unix/tclUnixPort.h, unix/tclUnixChan.c: + Remove dead/unused portability-related #defines and unused conditional + code. See [Patch 1901828] for discussion. - * doc/Async.3: Reword for better grammar, better nroff and get the - flag name right. (Reported by David Welton.) +2008-02-26 Joe English <jenglish@users.sourceforge.net> -2004-12-06 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclIORChan.c (enum MethodName), + * generic/tclCompExpr.c (enum Marks): More stray trailing ","s - *** 8.4.9 TAGGED FOR RELEASE *** +2008-02-26 Joe English <jenglish@users.sourceforge.net> - * unix/tclUnixNotfy.c (NotifierThreadProc): init numFdBits [Bug - 1079286] + * unix/configure.in(socklen_t test): Define socklen_t as "int" if + missing, not "unsigned". Use AC_TRY_COMPILE instead of + AC_EGREP_HEADER. + * unix/configure: regenerated. -2004-12-02 Jeff Hobbs <jeffh@ActiveState.com> +2008-02-26 Joe English <jenglish@users.sourceforge.net> - * changes: updated for 8.4.9 release + * generic/tclCompile.h: Remove stray trailing "," from enum + InstOperandType definition (C99ism). -2004-12-02 Vince Darley <vincentdarley@users.sourceforge.net> +2008-02-26 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclIOUtil.c: fix and new tests for [Bug 1074671] to - * tests/fileSystem.test: ensure tilde paths are not returned specially - by 'glob'. + * generic/tclUtil.c (TclReToGlob): Fix the handling of the last star + * tests/regexpComp.test: possibly being escaped in + determining right anchor. [Bug 1902436] -2004-12-01 Don Porter <dgp@users.sourceforge.net> +2008-02-26 Pat Thoyts <patthoyts@users.sourceforge.net> - * library/auto.tcl (tcl_findLibrary): Disabled use of [file normalize] - that caused trouble with freewrap. [Bug 1072136] + * library/http/pkgIndex.tcl: Set version 2.5.5 + * library/http/http.tcl: It is better to do the [eof] check after + trying to read from the socket. No clashes found in testing. Added + http::meta command to access the http headers. [Bug 1868845] -2004-11-26 Don Porter <dgp@users.sourceforge.net> +2008-02-22 Pat Thoyts <patthoyts@users.sourceforge.net> - * tests/reg.test (reg-32.*): Added missing testregexp constraints. + * library/http/pkgIndex.tcl: Set version 2.5.4 + * library/http/http.tcl: Always check that the state array exists + in the http::status command. [Bug 1818565] - * library/auto.tcl (tcl_findLibrary): Made sure the uniquifying - operations on the search path does not also normalize. [Bug 1072136] +2008-02-13 Don Porter <dgp@users.sourceforge.net> -2004-11-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tcl.h: Bump version number to 8.5.2b1 to distinguish + * library/init.tcl: CVS development snapshots from the 8.5.1 and + * unix/configure.in: 8.5.2 releases. + * unix/tcl.spec: + * win/configure.in: + * README - * doc/dde.n: Resynchonized the documentation with itself and fixed - some formatting errors. + * unix/configure: autoconf (2.59) + * win/configure: -2004-11-25 Zoran Vasiljevic <vasiljevic@users.sf.net> +2008-02-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * doc/Notify.3: - * doc/Thread.3: Added doc fixes and hints from [Bug 1068077]. + * generic/tclCompCmds.c (TclCompileSwitchCmd): Corrected logic for + * tests/switch.test (switch-10.15): handling -nocase compilation; the + -exact -nocase option cannot be compiled currently. [Bug 1891827] -2004-11-25 Reinhard Max <max@suse.de> + * unix/README: Documented missing configure flags. [Bug 1799011] - * tests/tcltest.test: The order in which [glob] returns the file names - * tests/fCmd.test: is undefined, so tests should not depend on it. +2008-02-06 Kevin B. Kenny <kennykb@acm.org> -2004-11-24 Don Porter <dgp@users.sourceforge.net> + * doc/clock.n (%N): Corrected an error in the explanation of the %N + format group. + * generic/tclClock.c (ClockParseformatargsObjCmd): + * library/clock.tcl (::tcl::clock::format): + * tests/clock.test (clock-1.0, clock-1.4): + Performance enhancements in [clock format] (moving the analysis of + $args into C code, holding on to Tcl_Objs with resolved command names, + [lassign] in place of [foreach], avoiding [namespace which] for + command resolution). - * unix/tcl.m4 (SC_ENABLE_THREADS): Corrected failure to determine - the number of arguments for readdir_r on SunOS systems. [Bug 1071701] +2008-02-04 Don Porter <dgp@users.sourceforge.net> - * unix/configure: autoconf-2.13 + *** 8.5.1 TAGGED FOR RELEASE *** -2004-11-24 Jeff Hobbs <jeffh@ActiveState.com> + * changes: Updated for 8.5.1 release. - * README: Bumped patchlevel to 8.4.9 - * generic/tcl.h: + * generic/tcl.h: Bump to 8.5.1 for release. + * library/init.tcl: * tools/tcl.wse.in: - * unix/tcl.spec, unix/configure, unix/configure.in: - * win/configure, win/configure.in: - -2004-11-24 Kevin B. Kenny <kennykb@acm.org> - - * 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] - -2004-11-23 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCmdIL.c (InfoVarsCmd): Corrected segfault in new - * tests/info.test (info-19.6): trivial matching branch [Bug 1072654] - -2004-11-23 Vince Darley <vincentdarley@users.sourceforge.net> - - * 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-22 Mo DeJong <mdejong@users.sourceforge.net> - - * 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 <mdejong@users.sourceforge.net> - - * 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-19 Reinhard Max <max@suse.de> - - *** 8.4.8 TAGGED FOR RELEASE *** - - * unix/installManPage: Classic sed doesn't support | in REs. - -2004-11-19 Daniel Steffen <das@users.sourceforge.net> - - * 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.13 + * unix/tcl.spec: + * win/configure.in: - * tests/unixInit.test (7.1): fixed failure when running tests - with -tmpdir arg not set to working dir. + * unix/configure: autoconf-2.59 + * win/configure: -2004-11-18 Don Porter <dgp@users.sourceforge.net> +2008-02-04 Miguel Sofer <msofer@users.sf.net> - * changes: Final updates for Tcl 8.4.8 release. + * generic/tclExecute.c (INST_CONCAT1): Fix optimisation for in-place + concatenation (was going over String type) -2004-11-18 Reinhard Max <max@suse.de> +2008-02-02 Daniel Steffen <das@users.sourceforge.net> - * 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/configure.in (Darwin): Correct Info.plist year substitution in + non-framework builds. - * unix/installManPage: added - * unix/mkLinks.tcl: removed - * unix/mkLinks: removed + * unix/configure: autoconf-2.59 -2004-11-16 Jeff Hobbs <jeffh@ActiveState.com> +2008-01-30 Miguel Sofer <msofer@users.sf.net> - * unix/tclUnixChan.c (TtySetOptionProc): fixed crash configuring - -ttycontrol on a channel. [Bug 1067708] + * generic/tclInterp.c (Tcl_GetAlias): Fix for [Bug 1882373], thanks go + to an00na. -2004-11-16 Andreas Kupries <andreask@activestate.com> +2008-01-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * win/makefile.vc: Fixed bug in installation of http 2.5. - * win/makefile.bc: Was installed into directory http2.4. - * win/Makefile.in: This has been corrected. - * unix/Makefile.in: - * tools/tcl.wse.in: - * tools/tclmin.wse: + * tools/tcltk-man2html.tcl: Reworked manual page scraper to do a + proper job of handling references to Ttk options. [Tk Bug 1876493] -2004-11-16 Don Porter <dgp@users.sourceforge.net> +2008-01-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * library/auto.tcl: Updated [tcl_findLibrary] search path to - include the $::auto_path. [RFE 695441] + * doc/man.macros (SO, SE): Adjusted macros so that it is possible for + Ttk to have its "standard options" on a manual page that is not called + "options". [Tk Bug 1876493] -2004-11-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2008-01-25 Don Porter <dgp@users.sourceforge.net> - * doc/tclvars.n: Mention global variables set by tclsh and wish so - they are easier to find. [Patch 1065732] + * changes: Updated for 8.5.1 release. -2004-11-15 Don Porter <dgp@users.sourceforge.net> +2008-01-23 Don Porter <dgp@users.sourceforge.net> - * 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. + * generic/tclInt.h: New macro TclGrowParseTokenArray() to + * generic/tclCompCmds.c: simplify code that might need to grow + * generic/tclCompExpr.c: an array of Tcl_Tokens in the parsePtr + * generic/tclParse.c: field of a Tcl_Parse. Replaces the + TclExpandTokenArray() routine via replacing: + int needed = parsePtr->numTokens + growth; + while (needed > parsePtr->tokensAvailable) { + TclExpandTokenArray(parsePtr); + } + with: + TclGrowParseTokenArray(parsePtr, growth); + This revision merged over from dgp-refactor branch. -2004-11-12 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompile.h: Demote TclCompEvalObj() from internal stubs to + * generic/tclInt.decls: a MODULE_SCOPE routine declared in + tclCompile.h. - * library/init.tcl: Made [unknown] robust in the case that either - of the variables ::errorInfo or ::errorCode gets unset. [Bug 1063707] + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: -2004-11-12 Jeff Hobbs <jeffh@ActiveState.com> +2008-01-22 Don Porter <dgp@users.sourceforge.net> - * generic/tclEncoding.c (TableFromUtfProc): correct crash - condition when TCL_UTF_MAX == 6. [Bug 1004065] + * generic/tclTimer.c (AfterProc): Replace Tcl_EvalEx() with + Tcl_EvalObjEx() to evaluate [after] callbacks. Part of trend to favor + compiled execution over direct evaluation. -2004-11-12 Daniel Steffen <das@users.sourceforge.net> +2008-01-22 Miguel Sofer <msofer@users.sf.net> - * doc/clock.n: - * doc/registry.n: - * doc/upvar.n: fixed *roff errors uncovered by running 'make html'. + * generic/tclCmdIl.c (Tcl_LreverseObjCmd): + * tests/cmdIL.test (cmdIL-7.7): Fix crash on reversing an empty list. + [Bug 1876793] - * tools/tcltk-man2html.tcl: added faked support for bullet point - lists, i.e. *nroff ".IP \(bu" syntax. - Synced other changes from HEAD. +2008-01-20 Jeff Hobbs <jeffh@ActiveState.com> -2004-11-11 Daniel Steffen <das@users.sourceforge.net> + * unix/README: Minor typo fixes [Bug 1853072] - * 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/tclIO.c (TclGetsObjBinary): Operate on topmost channel. + [Bug 1869405] (Ficicchia) - * 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] +2008-01-17 Don Porter <dgp@users.sourceforge.net> - * 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] + * generic/tclCompExpr.c: Revision to preserve parsed intreps of + numeric and boolean literals when compiling expressions with (optimize + == 1). - * tests/fileName.test: - * tests/fileSystem.test: - * tests/io.test: - * tests/tcltest.test: fixed bugs causing failures when running tests - with -tmpdir arg not set to working dir. +2008-01-15 Miguel Sofer <msofer@users.sf.net> - * macosx/Makefile: corrected path to html help inside framework. - Prevent parallel make from building several targets at the same time. + * generic/tclCompExpr.c: Add an 'optimize' argument to + * generic/tclCompile.c: TclCompileExpr() to profit from better + * generic/tclCompile.h: literal management according to usage. + * generic/tclExecute.c: -2004-11-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclCompExpr.c: Fix literal leak in exprs [Bug 1869989] (dgp) + * generic/tclExecute.c: + * tests/compExpr.test: - * doc/catch.n: Clarify documentation on return codes. [Bug 1062647] + * doc/proc.n: Changed wording for access to non-local variables; added + mention to [namespace upvar]. Lame attempt at dealing with + documentation. [Bug 1872708] -2004-11-02 Don Porter <dgp@users.sourceforge.net> +2008-01-15 Miguel Sofer <msofer@users.sf.net> - * changes: Updates for Tcl 8.4.8 release. + * generic/tclBasic.c: Replacing 'operator' by 'op' in the def of + * generic/tclCompExpr.c: struct TclOpCmdClientData to accommodate C++ + * generic/tclCompile.h: compilers. [Bug 1855644] -2004-11-02 Don Porter <dgp@users.sourceforge.net> +2008-01-13 Jeff Hobbs <jeffh@ActiveState.com> - * 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] + * win/tclWinSerial.c (SerialCloseProc, TclWinOpenSerialChannel): Use + critical section for read & write side. [Bug 1353846] (newman) -2004-11-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2008-01-11 Miguel Sofer <msofer@users.sf.net> - * generic/tclExecute.c (TclExecuteByteCode): NaN-equality fix from - Miguel Sofer. [Bug 761471] + * unix/tclUnixThrd.c (TclpThreadGetStackSize): Restore stack checking + functionality in freebsd. [Bug 1850424] - * doc/CrtChannel.3 (Tcl_GetChannelMode): Add synopsis. [Bug 1058446] + * unix/tclUnixThrd.c (TclpThreadGetStackSize): Fix for crash in + freebsd. [Bug 1860425] -2004-10-31 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2008-01-10 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdIL.c (InfoGlobalsCmd): - * tests/info.test (info-8.4): Strip leading global-namespace - specifiers from the pattern argument. [Bug 1057461] + * generic/tclStringObj.c (Tcl_AppendFormatToObj): Correct failure to + * tests/format.test: account for big.used == 0 corner case in the + %ll(idox) format directives. [Bug 1867855] -2004-10-30 Miguel Sofer <msofer@users.sf.net> +2008-01-09 George Peter Staplin <georgeps@xmission.com> - * generic/tclCmdAH.c (Tcl_CatchObjCmd): removed erroneous comment [Bug - 1029518] + * doc/vwait.n: Add a missing be to fix a typo. -2004-10-29 Don Porter <dgp@users.sourceforge.net> +2008-01-04 Jeff Hobbs <jeffh@ActiveState.com> - * library/tcltest/tcltest.tcl: Correct reaction to errors in the - obsolete processCmdLineArgsHook. [Bug 1055673] - * library/tcltest/pkgIndex.tcl: Bump to tcltest 2.2.7 + * tools/tcltk-man2html.tcl (make-man-pages): Make man page title use + more specific info on lhs to improve tabbed browser view titles. -2004-10-28 Andreas Kupries <andreask@activestate.com> +2008-01-02 Donal K. Fellows <dkf@users.sf.net> - * generic/tclAlloc.c: Fixed [Bug 1030548], a threaded debug - * generic/tclThreadAlloc.c: build on Windows now works again. Had to - * win/tclWinThrd.c: touch Unix as well. Basic patch by Kevin, - * unix/tclUnixThrd.c: with modifications by myself. + * doc/binary.n: Fixed documentation bug reported on tcl-core, and + reordered documentation to discourage people from using the hex + formatter that is hardly ever useful. -2004-10-28 Don Porter <dgp@users.sourceforge.net> +2008-01-02 Don Porter <dgp@users.sourceforge.net> - * README: Bumped patch level to 8.4.8 to prepare for - * generic/tcl.h: next patch release. - * tools/tcl.wse.in: - * unix/configure.in: + * generic/tcl.h: Bump version number to 8.5.1b1 to distinguish + * library/init.tcl: CVS development snapshots from the 8.5.0 and + * unix/configure.in: 8.5.1 releases. * unix/tcl.spec: - * win/README.binary: * win/configure.in: + * README - * unix/configure: autoconf (2.13) + * unix/configure: autoconf (2.59) * win/configure: -2004-10-28 Kevin B. Kenny <kennykb@acm.org> - - * generic/tclInt.decls: - * unix/tclUnixTime.c (TclpGmtime, TclpLocaltime): - * win/tclWinTime.c (TclpGmtime, TclpLocaltime): Changed type - signatures of TclpGmtime and TclpLocaltime to accept CONST TclpTime_t - throughout, to avoid any possible confusion in pedantic compilers. - [Bug 1001319] - * generic/tclIntDecls.h: - * generic/tclIntPlatDecls.h: Regenerated. - -2004-10-27 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCmdAH.c (Tcl_FormatObjCmd): Restored missing line - from yesterday's 868489 backport that caused failed alloc's on LP64 - systems. - - * tests/appendComp.test: Backport test suite fixes of errors - * tests/autoMkindex.test: revealed by -singleproc 1 -debug 1 - * tests/exec.test: options to make test. - * tests/execute.test: - * tests/interp.test: - * tests/io.test: - * tests/namespace.test: - * tests/regexpComp.test: - * tests/stringComp.test: - * tests/unixInit.test: - * tests/winPipe.test: - -2004-10-26 Kevin B. Kenny <kennykb@acm.org> - - * generic/tclCmdAH.c (Tcl_FormatObjCmd): Backport a missing bit of the - [Bug 868489] fix. - * generic/tclObj.c (SetBooleanFromAny): Backport fix for [Bug 1026125] - * tests/format.test (format-19.1): Additional regression test for - [Bug 868489]. - -2004-10-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * doc/*.n: Backporting of documentation updates. - -2004-10-26 Don Porter <dgp@users.sourceforge.net> - - * tests/subst.test (subst-12.3-5): More tests for [Bug 1036649] - - * tests/compile.test (compile-12.4): Backport test for [Bug 1001997] - * tests/timer.test (timer-10.1): Backport test for [Bug 1016167] - * tests/tcltest.test (tcltest-12.3,4): Backport setup corrections. - * tests/error.test (error-6.3,4,7,9): Backport of some tests. - * tests/basic.test (basic-49.*): - * tests/namespace.test (namespace-8.7): - * tests/init.test (init-2.8): Updated to not rely on http package. +2007-12-31 Donal K. Fellows <dkf@users.sf.net> - * 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. + * doc/dict.n: Clarified meaning of dictionary values following + discussion on comp.lang.tcl. -2004-10-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2007-12-26 Miguel Sofer <msofer@users.sf.net> - * 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. + * generic/tclCmdIL.c: More [lsort] data handling streamlines. The + function MergeSort is gone, essentially inlined into Tcl_LsortObjCmd. + It is not a straight inlining, two loops over all lists elements where + merged in the process: the linked list elements are now built and + merged into the temporary sublists in the same pass. -2004-10-08 Jeff Hobbs <jeffh@ActiveState.com> +2007-12-25 Miguel Sofer <msofer@users.sf.net> - * win/tclWinFile.c (NativeIsExec): correct result of 'file executable' - to not be case sensitive. [Bug 954263] + * generic/tclCmdIL.c: More [lsort] data handling streamlines. Extra + mem reqs of latest patches removed, restored to previous mem profile. + Improved -unique handling, now eliminating repeated elems immediately + instead of marking them to avoid reinsertion at the end. -2004-10-05 Don Porter <dgp@users.sourceforge.net> +2007-12-23 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclNamesp.c (Tcl_PopCallFrame): Removed Bug 1038021 - workaround. That bug is now fixed. + * generic/tclCompCmds.c (TclCompileRegexpCmd): TCL_REG_NOSUB cannot + * tests/regexp.test (regexp-22.2): be used because it + * tests/regexpComp.test: [Bug 1857126] disallows backrefs. -2004-09-30 Don Porter <dgp@users.sourceforge.net> +2007-12-21 Miguel Sofer <msofer@users.sf.net> - * generic/tclNamespace.c (TclTeardownNamespace): Tcl_Obj-ified the - * tests/namespace.test (namespace-8.5,6): 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/tclCmdIL.c: Speed patch for lsort [Patch 1856994]. - * generic/tclResult.c (TclTransferResult): Added safety checks so - that unexpected undefined ::errorInfo or ::errorCode will not lead to - a segfault. +2007-12-21 Miguel Sofer <msofer@users.sf.net> - * generic/tclVar.c (CallVarTraces): Save/restore the flag values - * tests/var.test (var-16.1): that define part of the interpreter - state during variable traces. [Bug 1038021] + * generic/tclCmdIL.c (Tcl_LsortObjCmd, Tcl_LsearchObjCmd): Avoid + calling SelectObjFromSublist when there are no sublists. -2004-09-30 Miguel Sofer <msofer@users.sf.net> +2007-12-21 Miguel Sofer <msofer@users.sf.net> - * tests/subst.test (12.2): test correction. + * generic/tclCmdIL.c (Tcl_LsortObjCmd): Preallocate a listObj of + sufficient length for the sorted list instead of growing it. Second + commit replaces calls to Tcl_ListObjAppenElement with direct access to + the internal rep. -2004-09-29 Miguel Sofer <msofer@users.sf.net> +2007-12-19 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c (Tcl_EvalEx): - * tests/subst.test (12.1-2): fix for buffer overflow in [subst], [Bug - 1036649] + *** 8.5.0 TAGGED FOR RELEASE *** -2004-09-23 Mo DeJong <mdejong@users.sourceforge.net> + * changes: Updated for 8.5.0 release. - * 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] +2007-12-19 Jeff Hobbs <jeffh@ActiveState.com> -2004-09-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclCompCmds.c (TclCompileSwitchCmd): update switch -regexp + * tests/switch.test-14.*: compilation to pass + the cflags to INST_REGEXP (changed on 12-07). Added tests for + switch -regexp compilation (need more). [Bug 1854399] - * generic/tclExecute.c (TEBC-INST_LSHIFT,INST_RSHIFT): Ensure that - large shifts end up shifting correctly. [Bug 868467] +2007-12-18 Don Porter <dgp@users.sourceforge.net> -2004-09-15 Daniel Steffen <das@users.sourceforge.net> + * changes: Updated for 8.5.0 release. - * tests/load.test (load-2.3): adopted fix for failure on darwin from - HEAD. - -2004-09-14 Don Porter <dgp@users.sourceforge.net> - - * generic/tclObj.c (Tcl_GetIntFromObj): Corrected flaw in returning - the int value of a wideInteger. [Bug 1027690] - -2004-09-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * 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 <andreask@activestate.com> - - * generic/tcl.h: Micro formatting fixes. - * generic/tclIOGT.c: Channel version fixed, must be 3, to have - wideseekProc. Thanks to David Graveraux <davygrvy@pobox.com>. - -2004-09-11 Don Porter <dgp@users.sourceforge.net> - - * 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 Miguel Sofer <msofer@users.sf.net> - - * 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 Don Porter <dgp@users.sourceforge.net> - - * generic/tclNamesp.c (Tcl_ForgetImport): Corrected faulty logic that - * tests/namespace.test: 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 Kevin B. Kenny <kennykb@acm.org> +2007-12-18 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * compat/strftime.c (_conv): Corrected a problem where hour 0 would - format as a blank format group with %k. - * tests/clock.test (clock-41.1): Added regression test case for %k at - the zero hour. + * generic/regguts.h, generic/regc_color.c, generic/regc_nfa.c: + Fixes for problems created when processing regular expressions that + generate very large automata. An enormous number of thanks to Will + Drewry <wad_at_google.com>, Tavis Ormandy <taviso_at_google.com>, + and Tom Lane <tgl_at_sss.pgh.pa.us> from the Postgresql crowd for + their help in tracking these problems down. [Bug 1810264] -2004-09-07 Kevin B. Kenny <kennykb@acm.org> +2007-12-17 Don Porter <dgp@users.sourceforge.net> - * 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] + * changes: Updated for 8.5.0 release. -2004-09-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2007-12-17 Miguel Sofer <msofer@users.sf.net> - * doc/lsearch.n: Clarified meaning of -dictionary. [Bug 759545] + * generic/tclAlloc.c: + * generic/tclExecute.c: + * generic/tclInt.h: + * generic/tclThreadAlloc.c: Fix alignment for memory returned by + TclStackAlloc; insure that all memory allocators align to 16-byte + boundaries on 64 bit platforms [Bug 1851832, 1851524] -2004-09-01 Jeff Hobbs <jeffh@ActiveState.com> +2007-12-14 Jeff Hobbs <jeffh@ActiveState.com> - * win/tclWinReg.c (BroadcastValue): WIN64 cast corrections + * generic/tclIOUtil.c (FsAddMountsToGlobResult): fix the tail + conversion of vfs mounts. [Bug 1602539] - * win/tclWinDde.c (DdeClientWindowProc): - (DdeServicesOnAck, DdeEnumWindowsCallback): WIN64 corrections + * win/README: updated notes - * win/tclWin32Dll.c (TclWinCPUID): need _asm for WIN64 (Itanium), - until we have it, just return unknown. [Bug 1020445] +2007-12-14 Pat Thoyts <patthoyts@users.sourceforge.net> -2004-08-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * tests/winFile.test: Fixed tests for win2k with long machine name - * generic/tclCmdMZ.c (Tcl_StringObjCmd): Stop [string map] from - crashing when its map and input string are the same object. +2007-12-14 Pat Thoyts <patthoyts@users.sourceforge.net> -2004-08-27 Daniel Steffen <das@users.sourceforge.net> + * win/nmakehlp.c: Support compilation with MSVC9 for AMD64. + * win/makefile.vc: - * tests/env.test: macosx fixes. +2007-12-13 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2004-08-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * doc/trace.n: Clarified documentation of enterstep and leavestep + traces, including adding example. [Bug 614282, 1701540, 1755984] - * generic/tclScan.c (Tcl_ScanObjCmd, ValidateFormat): Ensure that the - %ld conversion works correctly on 64-bit platforms. [Bug 1011860] +2007-12-12 Don Porter <dgp@users.sourceforge.net> -2004-08-16 Miguel Sofer <msofer@users.sf.net> + * doc/IntObj.3: Update docs for the Tcl_GetBignumAndClearObj() -> + Tcl_TakeBignumFromObj() revision [TIP 298]. Added docs for the + Tcl_InitBignumFromDouble() routine. [Bug 1446971]. - * 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. + * changes: Updated for 8.5.0 release. -2004-08-13 Don Porter <dgp@users.sourceforge.net> +2007-12-10 Jeff Hobbs <jeffh@ActiveState.com> - * 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]. - * library/msgcat/pkgIndex.tcl: Bump to msgcat 1.3.3 + * generic/tclUtil.c (TclReToGlob): reduce escapes in conversion + when not necessary -2004-08-10 Zoran Vasiljevic <vasiljevic@users.sf.net> + * generic/tclInt.decls: move TclByteArrayMatch and TclReToGlob + * generic/tclIntDecls.h: to tclInt.h from stubs. + * generic/tclStubInit.c: Add flags var to TclByteArrayMatch for + * generic/tclInt.h: future extensibility + * generic/tcl.h: define TCL_MATCH_EXACT doc for Tcl_StringCaseMatch. + * doc/StrMatch.3: It is compatible with existing usage. + * generic/tclExecute.c (INST_STR_MATCH): flag for TclByteArrayMatch + * generic/tclUtil.c (TclByteArrayMatch, TclStringMatchObj): + * generic/tclRegexp.c (Tcl_RegExpExecObj): + * generic/tclCmdMZ.c (StringMatchCmd): Use TclStringMatchObj + * tests/string.test (11.9.* 11.10.*): more tests - * 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. +2007-12-10 Joe English <jenglish@users.sourceforge.net> -2004-07-30 Don Porter <dgp@users.sourceforge.net> + * doc/string.n, doc/UniCharIsAlpha.3: Fix markup errors. + * doc/CrtCommand.3, doc/CrtMathFnc.3, doc/FileSystem.3, + * doc/GetStdChan.3, doc/OpenFileChnl.3, doc/SetChanErr.3, + * doc/eval.n, doc/filename.n: Consistency: Move "KEYWORDS" section + after "SEE ALSO". - * 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] +2007-12-10 Daniel Steffen <das@users.sourceforge.net> -2004-07-30 Daniel Steffen <das@users.sourceforge.net> + * tools/genStubs.tcl: fix numerous issues handling 'macosx', + 'aqua' or 'x11' entries interleaved + with 'unix' entries [Bug 1834288]; add + genStubs::export command + [Tk FR 1716117]; cleanup formatting. - * 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. + * generic/tcl.decls: use new genstubs 'export' command to + * generic/tclInt.decls: mark exported symbols not in stubs + * generic/tclTomMath.decls: table [Tk FR 1716117]; cleanup + formatting. -2004-07-28 Don Porter <dgp@users.sourceforge.net> + * generic/tclDecls.h: regen with new genStubs.tcl. + * generic/tclIntDecls.h: [Bug 1834288] + * generic/tclIntPlatDecls.h: + * generic/tclPlatDecls.h: + * generic/tclStubInit.c: - * generic/tclMain.c (Tcl_Main, StdinProc): Append newline only to - * tests/basic.test (basic-46.1): incomplete scripts as part - of multi-line script construction. Do not add an extra trailing - newline to the complete script. [Bug 833150] +2007-12-09 Jeff Hobbs <jeffh@ActiveState.com> -2004-07-26 Jeff Hobbs <jeffh@ActiveState.com> + * tests/io.test, tests/chanio.test (io-73.1): Make sure to invalidate + * generic/tclIO.c (SetChannelFromAny): internal rep only after + validating channel rep. [Bug 1847044] - *** 8.4.7 TAGGED FOR RELEASE *** +2007-12-08 Donal K. Fellows <dkf@users.sf.net> - * tests/io.test (io-61.1): create file in binary mode for x-plat. + * doc/expr.n, doc/mathop.n: Improved the documentation of the + operators. [Bug 1823622] -2004-07-25 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclBasic.c (builtInCmds): Corrected list of hidden and + * doc/interp.n (SAFE INTERPRETERS): exposed commands so that the + documentation and reality now match. [Bug 1662436] - * generic/tclThreadAlloc.c: Moved the tclInt.h include to provide - Tcl_Panic which is now required for non-threaded build. +2007-12-07 Jeff Hobbs <jeffh@ActiveState.com> -2004-07-22 Don Porter <dgp@users.sourceforge.net> + * generic/tclExecute.c (TclExecuteByteCode INST_REGEXP): + * generic/tclCompCmds.c (TclCompileRegexpCmd): Pass correct RE + compile flags at compile time, and use TCL_REG_NOSUB. - * tests/eofchar.data (removed): Test io-61.1 now generates its own - * tests/io.test: file of test data as needed. + * generic/tclIOCmd.c (FinalizeIOCmdTSD, Tcl_PutsObjCmd): cache + stdout channel object for [puts $str] calls. -2004-07-21 Don Porter <dgp@users.sourceforge.net> - * win/tclWinDde.c: Bump to dde 1.2.3 to cover changes - * library/dde/pkgIndex.tcl: committed on 2004-06-14. +2007-12-06 Don Porter <dgp@users.sourceforge.net> - * changes: Updated for Tcl 8.4.7 release. + * README: Remove mention of dead comp.lang.tcl.announce + newsgroup. [Bug 1846433]. -2004-07-20 Jeff Hobbs <jeffh@ActiveState.com> + * unix/README: Mention the stub library created by `make` and warn + about the effect of embedded paths in the installed binaries. + Thanks to Larry Virden. [Bug 1794084] - * 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: + * doc/AddErrInfo.3: Documentation for the new routines in TIP 270. + * doc/Interp.3: + * doc/StringObj.3: -2004-07-20 Daniel Steffen <das@users.sourceforge.net> +2007-12-06 Don Porter <dgp@users.sourceforge.net> - * unix/tcl.m4: fixed Darwin autoconf breakage caused by recent CFLAGS - reordering. - * unix/configure: regen + * doc/namespace.n: Documentation for zero-argument form of + [namespace import] (TIP 261) [Bug 1596416] - * unix/tclConfig.sh.in: replaced EXTRA_CFLAGS with CFLAGS. - * unix/dltest/Makefile.in: replaced EXTRA_CFLAGS with DEFS. +2007-12-06 Jeff Hobbs <jeffh@ActiveState.com> - * 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. + * generic/tclInt.h: add TclGetChannelFromObj decl + (TclMatchIsTrivial): simplify TclMatchIsTrivial to remove ] check. -2004-07-19 Jeff Hobbs <jeffh@ActiveState.com> +2007-12-06 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * 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. - Consolidate header checks to limit redundancy in configure. - (CFLAGS_WARNING): Remove -Wconversion, add -fno-strict-aliasing for - gcc builds (need to suppress 3.x type puning warnings). - (SC_ENABLE_THREADS): Set m4 to force threaded build when built against - a threaded Tcl core. - Reorder configure.in for better 64-bit build configuration, replacing - EXTRA_CFLAGS with CFLAGS. [Bug 874058] -2004-07-19 Zoran Vasiljevic <vasiljevic@users.sf.net> + * generic/tclBasic.c (Tcl_CreateInterp): Simplify the setting up of + * generic/tclIOCmd.c (TclInitChanCmd): the [chan] ensemble. This + * library/init.tcl: gets rid of quite a bit of + code and makes it possible to understand the whole with less effort. - * win/tclwinThrd.c: redefined MASTER_LOCK to call TclpMasterLock. - Fixes [Bug 987967] + * generic/tclCompCmds.c (TclCompileEnsemble): Ensure that the right + number of tokens are copied. [Bug 1845320] -2004-07-16 Andreas Kupries <andreask@activestate.com> + * generic/tclNamesp.c (TclMakeEnsemble): Added missing release of a + DString. [Bug 1845397] - * 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] +2007-12-05 Jeff Hobbs <jeffh@ActiveState.com> - * doc/OpenFileChnl.3: Added description of the behaviour of - Tcl_ReadChars when its 'charsToRead' argument is set to -1. Fixes [Bug - 934511] + * generic/tclIO.h: Create Tcl_Obj for Tcl channels to reduce + * generic/tclIO.c: overhead in lookup by Tcl_GetChannel. New + * generic/tclIOCmd.c: TclGetChannelFromObj for internal use. + * generic/tclIO.c (WriteBytes, WriteChars): add opt check to avoid + EOL translation when not linebuffered or using lf. [Bug 1845092] - * 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] +2007-12-05 Miguel Sofer <msofer@users.sf.net> - * 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 <marcomaggi@users.sourceforge.net>. + * tests/stack.test: made the tests for stack overflow not care + about which mechanism caused the error (interp's recursion limit + or C-stack depth detector). - * tests/socket.test: Accepted two new testcases by Stuart Casoff - <stwo@users.sourceforge.net> checking that -server and -async don't go - together [Bug 796534] +2007-12-05 Jeff Hobbs <jeffh@ActiveState.com> - * unix/tclUnixNotfy.c (NotifierThreadProc): Accepted Joe Mistachkin's - patch for [Bug 990500], properly closing the notifier thread when its - exits. + * win/configure, win/tcl.m4 (LIBS_GUI): mingw needs -lole32 + -loleaut32 but not msvc for Tk's [send]. [Bug 1844749] -2004-07-15 Andreas Kupries <andreask@activestate.com> +2007-12-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * unix/tclUnixThrd.c (TclpFinalizeMutex): Accepted Joe Mistachkin's - patch for [Bug 990453], closing leakage of mutexes. They were not - destroyed properly upon finalization. + * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Prevent shimmering crash + when -exact and -integer/-real are mixed. [Bug 1844789] -2004-07-15 Zoran Vasiljevic <vasiljevic@users.sf.net> +2007-12-03 Donal K. Fellows <dkf@users.sf.net> - * generic/tclEvent.c (NewThreadProc): Backout of changes to fix [Bug - 770053]. See SF bugreport for more info. + * unix/tclUnixChan.c (CreateSocketAddress): Add extra #ifdef-fery to + make code compile on BSD 5. [Bug 1618235, again] - * generic/tclNotify.c (TclFinalizeNotifier): Added conditional - notifier finalization based on the fact that an TclInitNotifier has - been called for the current thread. This fixes [Bug 770053] again. - Hopefully this time w/o unwanted side-effects. +2007-12-03 Don Porter <dgp@users.sourceforge.net> -2004-07-14 Andreas Kupries <andreask@activestate.com> + * library/tcltest/tcltest.tcl: Bump tcltest to version 2.3.0 so that + * library/tcltest/pkgIndex.tcl: we release a stable tcltest with a + * unix/Makefile.in: stable Tcl. + * win/Makefile.in: - * generic/tclIO.h (CHANNEL_INCLOSE): New flag. Set in Tcl_Close - * generic/tclIO.c (Tcl_UnregisterChannel): while the close callbacks - * generic/tclIO.c (Tcl_Close): 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. +2007-12-03 Jeff Hobbs <jeffh@ActiveState.com> -2004-07-14 Andreas Kupries <andreask@activestate.com> + * win/configure, win/tcl.m4 (LIBS_GUI): remove ole32.lib oleaut32.lib - * 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 [Bug 943274] is still fixed if a recent enough version - of Expect is used. +2007-12-03 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * doc/CrtChannel.3: Added warning about usage of a channel without a - BlockModeProc. + * generic/tclCompCmds.c (TclCompileSwitchCmd): Adjusted the [switch] + * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): command so that when + passed two arguments, no check for options are performed. This is OK + since in the two-arg case, detecting an option would definitely lead + to a syntax error. [Patch 1836519] -2004-07-15 Andreas Kupries <andreask@pliers.activestate.com> +2007-11-29 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclIOCmd.c (Tcl_PutsObjCmd): Added length check to the old - depreceated newline syntax, to ensure that only "nonewline" is - accepted. [Bug 985869] (mistachkin) + * win/makefile.vc: add ws2_32.lib to baselibs + * win/configure, win/tcl.m4: add ws2_32.lib / -lws2_32 to build. + * win/tclWinSock.c: remove dyn loading of winsock, assume that it is + always available now. -2004-07-13 Jeff Hobbs <jeffh@ActiveState.com> +2007-11-29 Don Porter <dgp@users.sourceforge.net> - * README, generic/tcl.h, tools/tcl.wse.in: bumped to - * unix/configure, unix/configure.in, unix/tcl.spec: patchlevel - * win/README.binary, win/configure, win/configure.in: 8.4.7 + * generic/tclWinSock.c (InitializeHostName): Correct error in + buffer length tracking. After gethostname() writes into a buffer, + convert only the written string to internal encoding, not the whole + buffer. -2004-07-13 Zoran Vasiljevic <vasiljevic@users.sf.net> +2007-11-28 Don Porter <dgp@users.sourceforge.net> - * generic/tclEvent.c (NewThreadProc): Fixed broken build on Windows - caused by missing TCL_THREAD_CREATE_RETURN. This is backported from - HEAD. Thnx to Kevin Kenny for spotting this. + * generic/tclConfig.c: Corrected failure of the [::foo::pkgconfig] + command to clean up registered configuration data when the query + command is deleted from the interp. [Bug 983501] -2004-07-03 Miguel Sofer <msofer@users.sf.net> + * generic/tclNamesp.c (Tcl_SetEnsembleMappingDict): Added checks + that the dict value passed in is in the format required to make the + internals of ensembles work. [Bug 1436096] - * generic/tclExecute.c (ExprRoundFunc): - * tests/expr-old.test (39.1): added support for wide integers to - round(); [Bug 908375], reported by Hemang Lavana. + * generic/tclIO.c: Simplify test and improve accuracy of error + message in latest changes. -2004-07-02 Jeff Hobbs <jeffh@ActiveState.com> +2007-11-28 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/regcomp.c (stid): correct minor pointer size error + * generic/tclIO.c: -eofchar must support no eofchar. - * generic/tclPipe.c (TclCreatePipeline): Add 2>@1 as a special - * tests/exec.test: case redir of stderr to the result output. +2007-11-27 Miguel Sofer <msofer@users.sf.net> -2004-07-02 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclBasic.c: remove unneeded call in Tcl_CreateInterp, add + comments. - * tests/fileSystem.test: new tests backported - * win/tclWin32Dll.c: compilation fix for VC++5.2 +2007-11-27 Don Porter <dgp@users.sourceforge.net> -2004-06-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * win/tclWinSock.c: Add mising encoding conversion of the [info + hostname] value from the system encoding to Tcl's internal encoding. - * library/safe.tcl: Make sure that the temporary variable is - local to the namespace and not inadvertently global. [Bug 981733] + * doc/chan.n: "Fix" the limitation on channel -eofchar + * doc/fconfigure.n: values to single byte characters by documenting + * generic/tclIO.c: it and making it fail loudly. Thanks to Stuart + * tests/chan.test: Cassoff for contributing the fix. [Bug 800753] -2004-06-22 Zoran Vasiljevic <vasiljevic@users.sf.net> +2007-11-26 Miguel Sofer <msofer@users.sf.net> - * generic/tclEvent.c: + * generic/tclBasic.c: * generic/tclInt.h: - * unix/tclUnixNotfy.c: - * unix/tclUnixThrd.c: - * win/tclWinThrd.c: See bug report for more information about what it - does. [Bug 770053] - - * 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 <mdejong@users.sourceforge.net> - - * 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-14 Pat Thoyts <patthoyts@users.sourceforge.net> - - * tests/winDde.test: Fixed -async test - * win/tclWinDde.c: Backported the fix from 8.5 to avoid hanging in the - presence of applications that do not process Window messages. - -2004-06-10 Andreas Kupries <andreask@activestate.com> - - * generic/tclDecls.h: Regenerated on a unix box. The Win/DOS - * generic/tclIntDecls.h: EOLs from the last regen screwed up - * generic/tclIntPlatDecls.h: compilation with an older gcc. - * generic/tclPlatDecls.h: - * generic/tclStubInit.c: - -2004-06-10 Zoran Vasiljevic <vasiljevic@users.sf.net> - - * 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 <msofer@users.sf.net> - - * generic/tclCompile.c: handle warning [Bug 969066] - -2004-06-05 Kevin B. Kenny <kennykb@acm.org> - - * 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 Tcl_WinTime - * generic/tclIntDecls.h: so 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-05-27 Kevin B. Kenny <kennykb@acm.org> - - * 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 Reinhard Max <max@suse.de> - - * 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-26 Don Porter <dgp@users.sourceforge.net> - - * 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 <jeffh@ActiveState.com> - - * 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 Kevin Kenny <kennykb@acm.org> - - * 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-24 Jeff Hobbs <jeffh@ActiveState.com> + * unix/tclUnixInit.c: + * unix/tclUnixThrd.c: Fix stack checking via workaround for bug in + glibc's pthread_attr_get_np, patch from [Bug 1815573]. Many thanks to + Sergei Golovan (aka Teo) for detecting the bug and helping diagnose + and develop the fix. - * 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. +2007-11-24 Donal K. Fellows <dkf@users.sf.net> -2004-05-24 Miguel Sofer <msofer@users.sf.net> + * generic/tclCompCmds.c (TclCompileDictAppendCmd): Fix bug in [dict + append] compiler which caused strange stack corruption. [Bug 1837392] - * doc/set.n: accurate description of name resolution process, - referring to namespace.n for details [Bug 959180] +2007-11-23 Andreas Kupries <andreask@activestate.com> -2004-05-22 Miguel Sofer <msofer@users.sf.net> + * generic/tclIORChan.c: Fixed a problem with reflected channels. 'chan + postevent' is defined to work only from within the interpreter + containing the handler command. Sensible, we want only handler + commands to use it. It identifies the channel by handle. The channel + moves to a different interpreter or thread. The interpreter containing + the handler command doesn't know the channel any longer. 'chan + postevent' fails, not finding the channel any longer. Uhm. - * generic/tclVar.c (TclObjUnsetVar2): backported fix [Bug 735335] and - new (in tcl8.4) exteriorisations of [Bug 736729] due to the use of - tclNsVarNameType obj types. The consequences of [Bug 736729] should be - the same as in tcl8.3 and previous versions. The use of - tclNsVarNameType objs is still disabled, pending a decision by the - release manager. + Fixed by creating a second per-interpreter channel table, just for + reflected channels, where each interpreter remembers for which + reflected channels it has the handler command. This info does not move + with the channel itself. The table is updated by 'chan create', and + used by 'chan postevent'. -2004-05-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * tests/ioCmd.test: Updated the testsuite. - * 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 - FindFirstFile 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.) +2007-11-23 Jeff Hobbs <jeffh@ActiveState.com> -2004-05-19 Andreas Kupries <andreask@activestate.com> + * generic/tclVar.c (Tcl_ArrayObjCmd): handle the right data for + * tests/var.test (var-14.2): [array names $var -glob $ptn] - * 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. [[this bug amended 2004-07-14]] +2007-11-23 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2004-05-18 Kevin B. Kenny <kennykb@acm.org> + * generic/tclCmdMZ.c (String*Cmd, TclInitStringCmd): Rebuilt [string] + * generic/tclCompCmds.c (TclCompileString*Cmd): as an ensemble. - * 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] +2007-11-22 Donal K. Fellows <dkf@users.sf.net> -2004-05-17 Kevin B. Kenny <kennykb.@acm.org> + * generic/tclDictObj.c (Dict*Cmd,TclInitDictCmd): Rebuilt the [dict] + * generic/tclCompCmds.c (TclCompileDict*Cmd): command as an ensemble. - * generic/tclInt.decls: Restored TclpTime_t kludge to all places - * generic/tclIntPlatDecls.h: where it appeared before the changes of - * unix/tclUnixPort.h 14 May, because use of native time_t in - * unix/tclUnixTime.h its place requires the 8.5 header - * win/tclWinTime.h: reforms. [Bug 955146] +2007-11-22 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2004-05-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclCmdMZ.c (Tcl_StringObjCmd): Rewrote the [string] and + * generic/tclDictObj.c (Tcl_DictObjCmd): [dict] implementations to be + ready for conversion to ensembles. - * doc/OpenFileChnl.3: Documented type of 'offset' argument to Tcl_Seek - was wrong. [Bug 953374] + * tests/string.test (string-12.22): Flag shimmering bug found in + [string range]. -2004-05-14 Kevin B. Kenny <kennykb@acm.org> +2007-11-21 Donal K. Fellows <dkf@users.sf.net> - * 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/tclCompCmds.c (TclCompileEnsemble): Rewrote the ensemble + compiler to remove many of the limitations. Can now compile scripts + that use unique prefixes of subcommands, and which have mappings of a + command to multiple words (provided the first is a compilable command + of course). - * generic/tclClock.c: Changed a buggy 'GMT' timezone specification to - the correct 'GMT0'. [Bug 922848] +2007-11-21 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * unix/tclUnixThrd.c: Moved TclpGmtime and TclpLocaltime to - unix/tclUnixTime.c where they belong. + * generic/tclNamesp.c (TclMakeEnsemble): Factor out the code to set up + a core ensemble from a table of information about subcommands, ready + for reuse within the core. - * 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 940278] Removed a buggy test of the Daylight Saving Time - information in 'gettimeofday' in favor of applying 'localtime' to a - known value. [Bug 922848] + * generic/various: Start to return more useful Error codes, currently + mainly on assorted lookup failures. - * tests/clock.test (clock-3.14): Added test to make sure that changes - to $env(TZ) take effect immediately. +2007-11-20 Donal K. Fellows <dkf@users.sf.net> - * win/tclWinTime.c (TclpLocaltime, TclpGmtime): Added porting layer - for 'localtime' and 'gmtime' calls. + * generic/tclDictObj.c: Changed the underlying implementation of the + hash table used in dictionaries to additionally keep all entries in + the hash table in a linked list, which is only ever added to at the + end. This makes iteration over all entries in the dictionary in + key insertion order a trivial operation, and so cleans up a great deal + of complexity relating to dictionary representation and stability of + iteration order. -2004-05-10 David Gravereaux <davygrvy@pobox.com> + ***POTENTIAL INCOMPATIBILITY*** + For any code that depended on the (strange) old iteration order. - * win/tclWinPipe.c (BuildCommandLine): Append a space when the path - got primed. - (TclpCreateProcess): When under NT, with no console, and executing a - DOS application, the path priming does not need an ending space as - BuildCommandLine() will append one for us. + * generic/tclConfig.c (QueryConfigObjCmd): Correct usage of + Tcl_WrongNumArgs. -2004-05-07 Miguel Sofer <msofer@users.sf.net> +2007-11-19 Don Porter <dgp@users.sourceforge.net> - * doc/unset.n: added upvar.n to the "see also" list + *** 8.5b3 TAGGED FOR RELEASE *** -2004-05-05 David Gravereaux <davygrvy@pobox.com> + * README: Bump version number to 8.5b3. + * generic/tcl.h: + * library/init.tcl: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/configure.in: - * 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. + * unix/configure: autoconf (2.59) + * win/configure: - * generic/tclEncoding.c: Added FreeEncoding(systemEncoding) in - TclFinalizeEncodingSubsystem because its ref count was incremented in - TclInitEncodingSubsystem. + * changes: Updated for 8.5b3 release. - * win/tclWin32Dll.c: Structured Exception Handling added around - Tcl_Finalize called from DllMain's DLL_PROCESS_DETACH. We can't be - 100% assured that Tcl is being unloaded by the OS in a stable - condition and we need to protect the exit handlers should the stack be - in a hosed state. AT&T style assembly for SEH under MinGW included, - too. [Patch 858493] +2007-11-19 Kevin Kenny <kennykb@users.sourceforge.net> - Also added DisableThreadLibraryCalls() for the DLL_PROCESS_ATTACH - case. We're not interested in knowing about DLL_THREAD_ATTACH, so - disable the notices. + * library/tzdata/Africa/Cairo: + * library/tzdata/America/Campo_Grande: + * library/tzdata/America/Caracas: + * library/tzdata/America/Cuiaba: + * library/tzdata/America/Havana: + * library/tzdata/America/Sao_Paulo: + * library/tzdata/Asia/Damascus: + * library/tzdata/Asia/Gaza: + * library/tzdata/Asia/Tehran: Olson's tzdata2007i imported. - * 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. +2007-11-18 Daniel Steffen <das@users.sourceforge.net> - * 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. - (SocketEventProc): connect errors should fire both the readable and - writable handlers because this is how it works on UNIX. [Bug 794839] + * generic/tclExecute.c (TclExecuteByteCode:INST_EXIST_*): Fix read + traces not firing on non-existent array elements. [Bug 1833522] - * win/coffbase.txt: Added the tls extension to the list of preferred - load addresses. +2007-11-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2004-05-05 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdIL.c (TclInitInfoCmd): Rename the implementation + commands for [info] to be something more "expected". - * 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] + * generic/tclCompCmds.c (TclCompileInfoExistsCmd): Compiler for the + [info exists] subcommand. + (TclCompileEnsemble): Cleaned up version of ensemble compiler that was + in TclCompileInfoCmd, but which is now much more generally applicable. -2004-05-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclInt.h (ENSEMBLE_COMPILE): Added flag to allow for cleaner + turning on and off of ensemble bytecode compilation. - * doc/CrtObjCmd.3: Remove reference to Tcl_RenameCommand; there is no - such API. [Bug 848440] + * generic/tclCompile.c (TclCompileScript): Add the cmdPtr to the list + of arguments passed to command compilers. -2004-05-04 Jeff Hobbs <jeffh@ActiveState.com> +2007-11-15 Don Porter <dgp@users.sourceforge.net> - * generic/tclIOUtil.c (Tcl_FSChdir): Work-around crash condition - * tests/winFCmd.test (winFCmd-16.12): triggered when $HOME is - volumerelative (ie 'C:'). + * generic/regc_nfa.c: Fixed infinite loop in the regexp compiler. + [Bug 1810038] - * tests/fileName.test (filename-12.9): use C:/ instead of the first - item in file volumes - that's usually A:/, which for most will have - nothing in it. + * generic/regc_nfa.c: Corrected looping logic in fixempties() to + avoid wasting time walking a list of dead states. [Bug 1832612] -2004-05-04 Don Porter <dgp@users.sourceforge.net> +2007-11-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * tests/tcltest.test: Test corrections for Mac OSX. Thanks to Steven - Abner (tauvan). [Bug 947440] + * generic/tclNamesp.c (NamespaceEnsembleCmd): Must pass a non-NULL + interp to Tcl_SetEnsemble* functions. -2004-05-03 Andreas Kupries <andreask@activestate.com> + * doc/re_syntax.n: Try to make this easier to read. It's still a very + difficult manual page! - Applied [SF Tcl Patch 868853], fixing a mem leak in TtySetOptionProc. - Report and Patch provided by Stuart Cassoff <stwo@users.sf.net>. + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Allow people to turn off the -rpath + option to their linker if they so desire. This is a configuration only + recommended for (some) vendors. Relates to [Patch 1231022]. -2004-05-03 Kevin Kenny <kennykb@acm.org> +2007-11-15 Pat Thoyts <patthoyts@users.sourceforge.net> - * win/tclWin32Dll.c (TclpCheckStackSpace): - * tests/stack.test (stack-3.1): Fix for undetected stack overflow in - TclReExec on Windows. [Bug 947070] + * win/tclWin32Dll.c: Prefer UINT_PTR to DWORD_PTR when casting pointers + to integer types for greater portability. [Bug 1831253] -2004-05-03 Don Porter <dgp@users.sourceforge.net> +2007-11-15 Daniel Steffen <das@users.sourceforge.net> - * library/init.tcl: Corrected unique prefix matching of - interactive command completion in [unknown]. [Bug 946952] + * macosx/Tcl.xcodeproj/project.pbxproj: add new chanio.test. + * macosx/Tcl.xcode/project.pbxproj: -2004-05-02 Miguel Sofer <msofer@users.sf.net> +2007-11-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclProc.c (TclObjInvokeProc): - * tests/proc.test (proc-3.6): fix for bad quoting of multi-word proc - names in error messages [Bug 942757] + * generic/tclCompile.c (TclCompileScript): Ensure that we get our count + in our INST_START_CMD calls right, even when there's a failure to + compile a command directly. -2004-04-23 Andreas Kupries <andreask@activestate.com> + * generic/tclNamesp.c (Tcl_SetEnsembleSubcommandList) + (Tcl_SetEnsembleMappingDict): Special code to make sure that + * generic/tclCmdIL.c (TclInitInfoCmd): [info exists] is compiled right + while not allowing changes to the ensemble to cause havok. - * generic/tclIO.c (Tcl_SetChannelOption): Fixed [Bug 930851]. When - changing the eofchar we have to zap the related flags to prevent them - from prematurely aborting the next read. + * generic/tclCompCmds.c (TclCompileInfoCmd): Simple compiler for the + [info] command that only handles [info exists]. -2004-04-07 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c (TclExecuteByteCode:INST_EXIST_*): New + instructions to allow the testing of whether a variable exists. - * win/configure: - * win/configure.in: define TCL_LIB_FLAG, TCL_BUILD_LIB_SPEC, - TCL_LIB_SPEC and TCL_PACKAGE_PATH in tclConfig.sh. +2007-11-14 Andreas Kupries <andreask@activestate.com> -2004-04-06 Don Porter <dgp@users.sourceforge.net> + * tests/chanio.test: New file. This is essentially a duplicate of + 'io.test', with all channel commands converted to their 'chan xxx' + notation. + * tests/io.test: Fixed typo in test description. - * tests/unixInit.test (unixInit-3.1): Default encoding on Darwin - systems is utf-8. Thanks to Steven Abner (tauvan). [Bug 928808] +2007-11-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2004-04-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/regc*.c: Eliminate multi-char collating element code + completely. Simplifies the code quite a bit. If people still want the + full code, it will remain on the 8.4 branch. [Bug 1831425] - * 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] +2007-11-13 Jeff Hobbs <jeffh@ActiveState.com> -2004-04-02 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompCmds.c (TclCompileRegexpCmd): clean up comments, only + free dstring on OK from TclReToGlob. + (TclCompileSwitchCmd): simplify TclReToGlob usage. - * tests/tcltest.test: Corrected constraint typos: "nonRoot" -> - "notRoot". Thanks to Steven Abner (tauvan). [Bug 928353] +2007-11-14 Donal K. Fellows <dkf@users.sf.net> -2004-03-31 Don Porter <dgp@users.sourceforge.net> + * generic/regc*.c: #ifdef/comment out the code that deals with + multi-character collating elements, which have never been supported. + Cuts the memory consumption of the RE compiler. [Bug 1831425] - * doc/msgcat.n: Clarified message catalog file encodings. [Bug 811457] - * library/msgcat/msgcat.tcl ([mcset], [ConvertLocale], [Init]): - 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.3.2. +2007-11-13 Donal K. Fellows <dkf@users.sf.net> -2004-03-31 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclCompCmds.c (TclCompileSwitchCmd, TclCompileRegexpCmd): + Extend [switch] compiler to handle regular expressions as long as + things are not too complex. Fix [regexp] compiler so that non-trivial + literal regexps get fed to INST_REGEXP. - * generic/tclObj.c (HashObjKey): Make sure this hashes the whole - string rep of the object, instead of missing the last character. + * doc/mathop.n: Clarify definitions of some operations. -2004-03-29 Jeff Hobbs <jeffh@ActiveState.com> +2007-11-13 Miguel Sofer <msofer@users.sf.net> - * generic/tclInt.h: - * generic/tclEncoding.c (TclFindEncodings, Tcl_FindExecutable): - * mac/tclMacInit.c (TclpInitLibraryPath): 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] + * unix/tclUnixInit.c: the TCL_NO_STACK_CHECK was being incorrectly + undefined here; this should be set (or not) in the compile options, it + is used elsewhere and needs to be consistent. -2004-03-28 Miguel Sofer <msofer@users.sf.net> +2007-11-13 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclCompile.c (TclCompileScript): corrected possible segfault - when a compilation returns TCL_OUTLINE_COMPILE after having grown the - compile environment. [Bug 925121] + * unix/tcl.m4: Added autoconf goo to detect and make use of + * unix/configure.in: getaddrinfo and friends. + * unix/configure: (regenerated) -2004-03-21 Jeff Hobbs <jeffh@ActiveState.com> +2007-11-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * win/tclWinInt.h: define VER_PLATFORM_WIN32_CE if not already set. - * win/tclWinInit.c (TclpSetInitialEncodings): recognize WIN32_CE - as a unicode (WCHAR) platform. + * unix/tclUnixCompat.c (TclpGetHostByName): The six-argument form of + getaddressbyname_r() uses the fifth argument to indicate whether the + lookup succeeded or not on at least one platform. [Bug 1618235] -2004-03-15 Miguel Sofer <msofer@users.sf.net> +2007-11-13 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompile.c (TclCompileScript): - * tests/compile.test (compile-3.5): corrected wrong test and behaviour - in the earlier fix for [Bug 705406]; Don Porter reported this as [Bug - 735055], and provided the solution. Fixed in HEAD on 2003-05-09, but - backport to 8-4-branch was wrongly omitted; re-reported as [Bug - 916795] by Roy Terry, diagnosed by dgp. + * generic/regcomp.c: Convert optst() from expensive no-op to a + cheap no-op. -2004-03-08 Vince Darley <vincentdarley@users.sourceforge.net> +2007-11-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclFileName.c: Fix to 'glob -path' near the root - * tests/fileName.test: of the filesystem. [Bug 910525] + * unix/tclUnixChan.c (CreateSocketAddress): Rewrote to use the + thread-safe version of gethostbyname() by forward-porting the code used + in 8.4, and added rudimentary support for getaddrinfo() (not enabled by + default, as no autoconf-ery written). Part of fix for [Bug 1618235]. -2004-03-01 Don Porter <dgp@users.sourceforge.net> +2007-11-12 Jeff Hobbs <jeffh@ActiveState.com> - *** 8.4.6 TAGGED FOR RELEASE *** + * generic/tclGet.c (Tcl_Get, Tcl_GetInt): revert use of TclGet* macros + due to compiler warning. These cases won't save time either. - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Allow 64-bit enabling on - IRIX64-6.5* systems. [Bug 218561] - * unix/configure: autoconf-2.13 + * generic/tclUtil.c (TclReToGlob): add more comments, set interp result + if specified on error. - * generic/tclCmdMZ.c (TclCheckInterpTraces): The TIP 62 - * generic/tclTest.c (TestcmdtraceCmd): implementation introduced a - * tests/basic.test (basic-39.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] +2007-11-12 Miguel Sofer <msofer@users.sf.net> -2004-02-26 Daniel Steffen <das@users.sourceforge.net> + * generic/tclBasic.c: New macro TclResetResult, new iPtr flag + * generic/tclExecute.c: bit INTERP_RESULT_UNCLEAN: shortcut for + * generic/tclInt.h: Tcl_ResetResult for the "normal" case: + * generic/tclProc.c: TCL_OK, no return options, no errorCode + * generic/tclResult.c: nor errorInfo, return at normal level. + * generic/tclStubLib.c: [Patch 1830184] + * generic/tclUtil.c: - * macosx/Makefile: fixed copyright year in Tcl.framework Info.plist + THIS PATCH WAS REVERTED: initial (mis)measurements overstated the + perfomance wins, which turn out to be tiny. Not worth the complication. -2004-02-25 Don Porter <dgp@users.sourceforge.net> +2007-11-11 Jeff Hobbs <jeffh@ActiveState.com> - * 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: + * generic/tclCompCmds.c, generic/tclCompile.c, generic/tclCompile.h: + * generic/tclExecute.c, generic/tclInt.decls, generic/tclIntDecls.h: + * generic/tclRegexp.c, generic/tclRegexp.h: Add INST_REGEXP and fully + * generic/tclStubInit.c, generic/tclUtil.c: compiled [regexp] for the + * tests/regexpComp.test: [Bug 1830166] simple cases. Also added + TclReToGlob function to convert RE to glob patterns and use these in + the possible cases. -2004-02-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2007-11-11 Miguel Sofer <msofer@users.sf.net> - * unix/tclUnixChan.c (TcpGetOptionProc): Stop memory leak with very - long hostnames. [Bug 888777] + * generic/tclResult.c (ResetObjResult): clarify the logic. -2004-02-25 David Gravereaux <davygrvy@pobox.com> + * generic/tclBasic.c: Increased usage of macros to detect + * generic/tclBinary.c: and take advantage of objTypes. Added + * generic/tclClock.c: macros TclGet(Int|Long)FromObj, + * generic/tclCmdAH.c: TclGetIntForIndexM & TclListObjLength, + * generic/tclCmdIL.c: modified TclListObjGetElements. + * generic/tclCmdMZ.c: + * generic/tclCompCmds.c: The TclGetInt* macros are only a + * generic/tclCompExpr.c: shortcut on platforms where 'long' is + * generic/tclCompile.c: 'int'; it may be worthwhile to extend + * generic/tclDictObj.c: their functionality to other cases. + * generic/tclExecute.c: + * generic/tclGet.c: As this patch touches many files it has + * generic/tclIO.c: been recorded as [Patch 1830038] in + * generic/tclIOCmd.c: order to facilitate reviewing. + * generic/tclIOGT.c: + * generic/tclIndexObj.c: + * generic/tclInt.h: + * generic/tclInterp.c: + * generic/tclListObj.c: + * generic/tclLiteral.c: + * generic/tclNamesp.c: + * generic/tclObj.c: + * generic/tclParse.c: + * generic/tclProc.c: + * generic/tclRegexp.c: + * generic/tclResult.c: + * generic/tclScan.c: + * generic/tclStringObj.c: + * generic/tclUtil.c: + * generic/tclVar.c: - * tests/winPipe.test: - * win/tclWinPipe.c: backport of BuildCommandLine changes to mirror - msvcrt's parse_cmdline() rules of quoting. +2007-11-11 Daniel Steffen <das@users.sourceforge.net> -2004-02-19 Mo DeJong <mdejong@users.sourceforge.net> + * unix/tclUnixTime.c (TclpWideClicksToNanoseconds): Fix issues with + * generic/tclInt.h: int64_t overflow. - * 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. + * generic/tclBasic.c: Fix stack check failure case if stack grows up + * unix/tclUnixInit.c: Simplify non-crosscompiled case. -2004-02-17 Don Porter <dgp@users.sourceforge.net> + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 - * 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] +2007-11-10 Miguel Sofer <msofer@users.sf.net> -2004-02-17 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c: Fast path for INST_LIST_INDEX when the index is + not a list. - (reverted due to test failures on Solaris, but not Win/Lin :/) - * generic/tclIOUtil.c: backport of rewrite of generic file - normalization code to cope with links followed by '..'. [Bug 849514], - and parts of [859251] + * generic/tclBasic.c: + * unix/configure.in: + * unix/tclUnixInit.c: Detect stack grwoth direction at compile time, + only fall to runtime detection when crosscompiling. - * tests/unixInit.test: unixInit-7.1 - * unix/tclUnixInit.c (TclpInitPlatform): ensure the std fds exist to - prevent crash condition [Bug 772288] + * unix/configure: autoconf 2.61 -2004-02-16 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclBasic.c: + * generic/tclInt.h: + * tests/interp.test: + * unix/tclUnixInit.c: + * win/tclWin32Dll.c: Restore simpler behaviour for stack checking, not + adaptive to stack size changes after a thread is launched. Consensus is + that "nobody does that", and so it is not worth the cost. Improved + failure comments (mistachkin). - * generic/tclCmdMZ.c (TclTraceExecutionObjCmd) - (TclTraceCommandObjCmd): fix possible mem leak in trace info. +2007-11-10 Kevin Kenny <kennykb@acm.org> -2004-02-12 Jeff Hobbs <jeffh@ActiveState.com> + * win/tclWin32Dll.c: Rewrote the Windows stack checking algorithm to + use information from VirtualQuery to determine the bound of the stack. + This change fixes a bug where the guard page of the stack was never + restored after an overflow. It also eliminates a nasty piece of + assembly code for structured exception handling on mingw. It introduces + an assumption that the stack is a single memory arena returned from + VirtualAlloc, but the code in MSVCRT makes the same assumption, so it + should be fairly safe. - * README: update patchlevel to 8.4.6 - * generic/tcl.h: - * tools/tcl.wse.in: - * unix/configure, unix/configure.in, unix/tcl.spec: - * win/README.binary, win/configure, win/configure.in: +2007-11-10 Miguel Sofer <msofer@users.sf.net> - * unix/tcl.m4: update HP-11 build libs setup + * generic/tclBasic.c: + * generic/tclInt.h: + * unix/tclUnixInit.c: + * unix/tclUnixPort.h: + * win/tclWin32Dll.c: Modify the stack checking algorithm to recheck in + case of failure. The working assumptions are now that (a) a thread's + stack is never moved, and (b) a thread's stack can grow but not shrink. + Port to windows - could be more efficient, but is already cheaper than + it was. -2004-02-06 Don Porter <dgp@users.sourceforge.net> +2007-11-09 Miguel Sofer <msofer@users.sf.net> - * doc/clock.n: Removed reference to non-existent [file ctime]. + * generic/tclResult.c (ResetObjResult): new shortcut. -2004-02-04 Don Porter <dgp@users.sourceforge.net> + * generic/tclAsync.c: + * generic/tclBasic.c: + * generic/tclExecute.c: + * generic/tclInt.h: + * generic/tclUnixInit.c: + * generic/tclUnixPort.h: New fields in interp (ekeko!) to cache TSD + data that is accessed at each command invocation, access macros to + replace Tcl_AsyncReady and TclpCheckStackSpace by much faster variants. + [Patch 1829248] - * library/tcltest/tcltest.tcl: Corrected references to - non-existent $name variable in [cleanupTests]. [Bug 833637] +2007-11-09 Jeff Hobbs <jeffh@ActiveState.com> -2004-02-03 Don Porter <dgp@users.sourceforge.net> + * generic/tclInt.decls, generic/tclIntDecls.h: Use unsigned char for + * generic/tclExecute.c, generic/tclUtil.c: TclByteArrayMatch and + don't allow a nocase option. [Bug 1828296] + For INST_STR_MATCH, ignore pattern type for TclByteArrayMatch case. - * 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. + * generic/tclBinary.c (Tcl_GetByteArrayFromObj): check type before + func jump (perf). -2004-02-02 David Gravereaux <davygrvy@pobox.com> +2007-11-07 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclIO.c (Tcl_Ungets): fixes improper filling of the channel - buffer. [Bug 405995] + * generic/tclStubInit.c: Added TclByteArrayMatch + * generic/tclInt.decls: for efficient glob + * generic/tclIntDecls.h: matching of ByteArray + * generic/tclUtil.c (TclByteArrayMatch): Tcl_Objs, used in + * generic/tclExecute.c (TclExecuteByteCode): INST_STR_MATCH. [Bug + 1827996] -2004-01-13 Don Porter <dgp@users.sourceforge.net> + * generic/tclIO.c (TclGetsObjBinary): Add an efficient binary path for + [gets]. + (DoWriteChars): Special case for 1-byte channel write. - * 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. +2007-11-06 Miguel Sofer <msofer@users.sf.net> -2004-01-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclEncoding.c: Version of the embedded iso8859-1 encoding + handler that is faster (functions to do the encoding know exactly what + they're doing instead of pulling it from a table, though the table + itself has to be retained for use by shift encodings that depend on + iso8859-1). [Patch 1826906], committing for dkf. - * 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] +2007-11-05 Andreas Kupries <andreask@activestate.com> -2004-01-09 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclConfig.c (Tcl_RegisterConfig): Modified to not extend the + config database if the encoding provided by the user is not found + (venc == NULL). Scripts expecting the data will error out, however we + neither crash nor provide bogus information. See [Bug 983509] for more + discussion. - * generic/tclIOUtil.c: fix to infinite loop in TclFinalizeFilesystem. - [Bug 873311] + * unix/tclUnixChan.c (TtyGetOptionProc): Accepted [Patch 1823576] + provided by Stuart Cassof <stwo@users.sourceforge.net>. The patch adds + the necessary utf/external conversions to the handling of the arguments + of option -xchar which will allow the use of \0 and similar characters. -2003-12-17 Daniel Steffen <das@users.sourceforge.net> +2007-11-03 Miguel Sofer <msofer@users.sf.net> - * generic/tclBinary.c (DeleteScanNumberCache): fixed crashing bug when - numeric scan-value cache contains NULL value. + * generic/tclTest.c (TestSetCmd2): + * generic/tclVar.c (TclObjLookupVarEx): + * tests/set.test (set-5.1): Fix error branch when array name looks + like array element (code not normally exercised). -2003-12-17 Zoran Vasiljevic <zv@archiware.com> +2007-11-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclIOUtil.c: fixed 2 memory (object) leaks. This fixes [Bug - 839519] + * tools/tcltk-man2html.tcl (output-directive): Convert .DS/.DE pairs + into tables since that is now all that they are used for. -2003-12-12 Vince Darley <vincentdarley@users.sourceforge.net> + * doc/RegExp.3: Clarified documentation of RE flags. [Bug 1167840] - * generic/tclCmdAH.c: fix to normalization of non-existent user name - ('file normalize ~nobody') [Bug 858937] + * doc/refchan.n: Adjust internal name to be consistent with the file + name for reduced user confusion. After comment by Dan Steffen. -2003-12-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclCmdMZ.c (Tcl_StringObjCmd, UniCharIsAscii): Remember, the + NUL character is in ASCII too. [Bug 1808258] - * unix/tclUnixPort.h: #ifdef'd out declarations of errno which - * tools/man2tcl.c: are known to cause problems with recent - glibc. [Bug 852369] + * doc/file.n: Clarified use of [file normalize]. [Bug 1185154] -2003-12-03 Don Porter <dgp@users.sourceforge.net> +2007-10-30 Don Porter <dgp@users.sourceforge.net> - * generic/tcl.h: Bumped patch level to 8.4.5.1 to distinguish - * unix/configure.in: CVS snapshots from 8.4.5 release. + * generic/tcl.h: Bump version number to 8.5b2.1 to distinguish + * library/init.tcl: CVS development snapshots from the 8.5b2 + * unix/configure.in: release. * unix/tcl.spec: * win/configure.in: - * unix/configure: autoconf (2.13) + * unix/configure: autoconf (2.59) * win/configure: -2003-12-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2007-10-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclBinary.c (DeleteScanNumberCache, ScanNumber): Made - the numeric scan-value cache have proper references to the objects - within it so strange patterns of writes won't cause references to - freed objects. Thanks to Paul Obermeier for the report. [Bug 851747] + * doc/expr.n, doc/mathfunc.n: Improve documentation to try to make + clearer what is going on. -2003-12-01 Miguel Sofer <msofer@users.sf.net> + * doc/interp.n: Shorten the basic descriptive text for some interp + subcommands so Solaris nroff doesn't truncate them. [Bug 1822268] - * doc/lset.n: fix typo [Bug 852224] +2007-10-30 Donal K. Fellows <dkf@users.sf.net> -2003-11-21 Don Porter <dgp@users.sourceforge.net> + * tools/tcltk-man2html.tcl (output-widget-options): Enhance the HTML + generator so that it can produce multi-line option descriptions. - *** 8.4.5 TAGGED FOR RELEASE *** +2007-10-28 Miguel Sofer <msofer@users.sf.net> - * tests/windFCmd.test (winFCmd-16.10): Corrected failure to - initialize variable $dd that caused test suite failure. + * generic/tclUtil.c (Tcl_ConcatObj): optimise for some of the + concatenees being empty objs. [Bug 1447328] -2003-11-20 Miguel Sofer <msofer@users.sf.net> +2007-10-28 Donal K. Fellows <dkf@users.sf.net> - * generic/tclVar.c: fix flag bit collision between LOOKUP_FOR_UPVAR - and TCL_PARSE_PART1 (deprecated) [Bug 835020] + * generic/tclEncoding.c (TclInitEncodingSubsystem): Hard code the + iso8859-1 encoding, as it's needed for more than just text (especially + binary encodings...) Note that other encodings rely on the encoding + being a table encoding (!) so we can't use more efficient encoding + mapping functions. -2003-11-20 Vince Darley <vincentdarley@users.sourceforge.net> +2007-10-27 Donal K. Fellows <dkf@users.sf.net> - * generic/tclIOUtil.c: - * tests/winFCmd.test: fix to [Bug 845778] - Infinite recursion on [cd] - (Windows only bug). + * generic/regc_lex.c (lexescape): Close off one of the problems + mentioned in [Bug 1810264]. -2003-11-18 Jeff Hobbs <jeffh@ActiveState.com> +2007-10-27 Miguel Sofer <msofer@users.sf.net> - * changes: updated for 8.4.5 release + * generic/tclNamesp.c (Tcl_FindCommand): insure that FQ command names + are searched from the global namespace, ie, bypassing resolvers of the + current namespace. [Bug 1114355] -2003-11-17 Don Porter <dgp@users.sourceforge.net> + * doc/apply.n: fixed example [Bug 1811791] + * doc/namespace.n: improved example [Bug 1788984] + * doc/AddErrInfo.3: typo [Bug 1715087] + * doc/CrtMathFnc.3: fixed Tcl_ListMathFuncs entry [Bug 1672219] - * generic/regcomp.c: Backported regexp bug fixes and tests. Thanks - * generic/tclTest.c: to Pavel Goran and Vince Darley. - * tests/reg.test: [Bugs 230589, 504785, 505048, 703709, 840258] + * generic/tclCompile.h: + * generic/tclInt.h: moved declaration of TclSetCmdNameObj from + tclCompile.h to tclInt.h, reverting linker [Bug 1821159] caused by + commit of 2007-10-11 (both I and gcc missed one dep). -2003-11-12 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclVar.c: try to preserve Tcl_Objs when doing variable + lookups by name, partially addressing [Bug 1793601]. - * tests/cmdMZ.test (cmdMZ-1.4): change to nonPortable as more - systems are using permissions caching, and this isn't really a Tcl - controlled issue. +2007-10-27 Donal K. Fellows <dkf@users.sf.net> -2003-11-11 Jeff Hobbs <jeffh@ActiveState.com> + * tools/tcltk-man2html.tcl (make-man-pages, htmlize-text) + (process-text): Make the man->HTML scraper work better. - * unix/configure: - * unix/tcl.m4: improve AIX --enable-64bit handling +2007-10-26 Don Porter <dgp@users.sourceforge.net> -2003-11-10 Don Porter <dgp@users.sourceforge.net> + *** 8.5b2 TAGGED FOR RELEASE *** - * tests/unixInit.test (unixInit-2.10): re-enabled. - * unix/tclUnixInit.c (TclpInitLibraryPath): Alternative fix - * win/tclWinInit.c (TclpInitLibraryPath): for [Bug 832657] - that should not run afoul of startup constraints. + * changes: Updated for 8.5b2 release. - * library/dde/pkgIndex.tcl: Added safeguards so that registry - * library/reg/pkgIndex.tcl: and dde packages are not offered - * win/tclWinDde.c: on non-Windows platforms. Bumped to - * win/tclWinReg.c: registry 1.1.3 and dde 1.2.2. + * doc/*.1: Revert doc changes that broke + * doc/*.3: `make html` so we can get the release + * doc/*.n: out the door. -2003-11-06 Jeff Hobbs <jeffh@ActiveState.com> + * README: Bump version number to 8.5b2. + * generic/tcl.h: + * library/init.tcl: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/configure.in: - * tests/unixInit.test (unixInit-2.10): mark as knownBug - * generic/tclEncoding.c (TclFindEncodings): revert patch from - 2003-11-05. It wasn't valid in the sensitive startup init phase - and broke Windows from working at all. + * unix/configure: autoconf (2.59) + * win/configure: -2003-11-07 Daniel Steffen <das@users.sourceforge.net> +2007-10-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * macosx/Makefile: optimized builds define NDEBUG to turn off - ThreadAlloc range checking. + * tools/man2help2.tcl, tools/man2tcl.c: Made some of the tooling code + to do man->other formats work better with current manpage set. Long + way still to go. -2003-11-05 Don Porter <dgp@users.sourceforge.net> +2007-10-25 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * generic/tclEncoding.c (TclFindEncodings): Normalize the path - of the executable before passing to TclpInitLibraryPath() to avoid - buggy handling of paths containing "..". [Bug 832657] - * tests/unixInit.test (unixInit-2.10): New test for fixed bug. + * generic/tclThread.c: Added TclpMasterLock/Unlock arround calls to + ForgetSyncObject in Tcl_MutexFinalize and Tcl_ConditionFinalize to + prevent from garbling the internal lists that track sync objects. [Bug + 1726873] -2003-11-04 Daniel Steffen <das@users.sourceforge.net> +2007-10-24 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * macosx/Makefile: added 'test' target. + * tools/man2html2.tcl (macro): Added support for converting the new + macros into HTML. -2003-10-31 Vince Darley <vincentdarley@users.sourceforge.net> + * doc/man.macros (QW,PQ,QR,MT): New macros that hide the ugly mess + needed to get proper GOOBE quoting in the manual pages. + * doc/*.n, doc/*.3, doc/*.1: Lots of changes to take advantage of the + new macros. - * generic/tclTest.c: fix test suite memory leak (backport error) - * unix/tclUnixFile.c: ensure translated path (required for correct - error messages) is freed in both code paths. +2007-10-20 Miguel Sofer <msofer@users.sf.net> -2003-10-23 Andreas Kupries <andreask@activestate.com> + * generic/tclCompile.c: Fix comments. + * generic/tclExecute.c: - * unix/tclUnixChan.c (Tcl_MakeFileChannel): Applied [Patch 813606] - fixing [Bug 813087]. Detection of sockets was off for Mac OS X which - implements pipes as local sockets. The new code ensures that only IP - sockets are detected as such. +2007-10-18 David Gravereaux <davygrvy@pobox.com> -2003-10-22 Andreas Kupries <andreask@activestate.com> + * tools/mkdepend.tcl: sort the dep list for a more humanly readable + output. - * win/tclWinSock.c (TcpWatchProc): Watch for FD_CLOSE too when asked - for writable events by the generic layer. - (SocketEventProc): Generate a writable event too when a close is - detected. +2007-10-18 Don Porter <dgp@users.sourceforge.net> - Together the changes fix [Bug 599468]. + * generic/tclResult.c (TclMergeReturnOptions): Make sure any -code + values get pulled out of the dictionary, even if they are integer + valued. -2003-10-22 Andreas Kupries <andreask@activestate.com> + * generic/tclCompCmds.c (TclCompileReturnCmd): Added code to more + optimally compile [return -level 0 $x] to "push $x". [RFE 1794073] - * generic/tclIOUtil.c (FsListMounts, FsAddMountsToGlobResult): New - functions. See below for context. - (Tcl_FSMatchInDirectory): Modified to call on the new functions - (above) to handle the mountpoints in the glob'bed directory correctly. - Part of the patch by Vincent Darley to solve the [Bug 800106] for the - 8.4.x series. + * compat/tmpnam.c (removed): The routine tmpnam() is no longer + * unix/Makefile.in: called by Tcl source code. Remove autogoo the + * unix/configure.in: supplied a replacement version on systems + * win/tcl.dsp: where the routine was not available. [RFE + 1811848] - * generic/tcl.h (TCL_GLOB_TYPE_MOUNT): New definition. Part of the - patch by Vincent Darley to solve [Bug 800106] for the 8.4.x series. + * unix/configure: autoconf-2.59 -2003-10-22 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tcl.h: Remove TCL_LL_MODIFIER_SIZE. [RFE 1811837] - * generic/tclCmdAH.c (Tcl_FileObjCmd): Changed FILE_ prefix for option - enumeration to FCMD_ to prevent collision with symbols defined by - Cygwin/Mingw32 on NT. [Bug 822528] +2007-10-17 David Gravereaux <davygrvy@pobox.com> -2003-10-21 Daniel Steffen <das@users.sourceforge.net> + * tools/mkdepend.tcl: Improved defense from malformed object list + infile. - * tools/tcltk-man2html.tcl: fixed incorrect html generated for .IP/.TP - lists, now use <DL><DT>...<DD>...<P><DT>...<DD>...</DL> instead of - illegal <DL><P><DT>...<DD>...<P><DT>...<DD>...</DL>. Added skipping of - directives directly after .TP to avoid them being used as item - descriptions, e.g. .TP\n.VS in clock.n. +2007-10-17 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2003-10-21 Andreas Kupries <andreask@activestate.com> + * tools/man2html2.tcl: Convert .DS/.DE into HTML tables, not + preformatted text. - * win/tclWinPipe.c (BuildCommandLine): Applied the patch coming with - [Bug 805605] to the code, fixing the incorrect use of ispace noted by - Ronald Dauster <ronaldd@users.sourceforge.net>. +2007-10-17 Kevin B. Kenny <kennykb@acm.org> -2003-10-14 David Gravereaux <davygrvy@pobox.com> + * generic/tclCompExpr.c: Moved a misplaced declaration that blocked + compilation on VC++. + * generic/tclExecute.c: Silenced several VC++ compiler warnings about + converting 'long' to 'unsigned short'. - * win/tclAppInit.c (sigHandler): Punt gracefully if exitToken has - already been destroyed. +2007-10-16 David Gravereaux <davygrvy@pobox.com> -2003-10-13 Vince Darley <vincentdarley@users.sourceforge.net> + * win/makefile.vc: removed old dependency cruft that is no longer + needed. - * generic/tclCmdMZ.c: - * tests/regexp.test: fix to [Bug 823524] in regsub; added three new - tests. +2007-10-15 Don Porter <dgp@users.sourceforge.net> -2003-10-12 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclIOCmd.c: Revise [open] so that it interprets leading + zero strings passed as the "permissions" argument as octal numbers, + even if Tcl itself no longer parses integers in that way. - * unix/tclUnixTest.c (TestalarmCmd): don't bother checking return - value of alarm. [Bug 664755] (english) + * unix/tclUnixFCmd.c: Revise the "-permissions" [file attribute] so + that it interprets leading zero strings as octal numbers, even if Tcl + itself no longer parses integers in that way. -2003-10-08 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompExpr.c: Corrections to code that produces + * generic/tclUtil.c: extended "bad octal" error messages. - * generic/tclBasic.c: Save and restore the iPtr->flag bits that - control the state of errorCode and errorInfo management when calling - "leave" execution traces, so that all error information of the traced - command is still available whether traced or not. Thanks to Yahalom - Emet. [Bug 760947] + * tests/cmdAH.test: Test revisions so that tests pass whether or + * tests/cmdIL.test: not Tcl parses leading zero strings as octal. + * tests/compExpr-old.test: + * tests/compExpr.test: + * tests/compile.test: + * tests/expr-old.test: + * tests/expr.test: + * tests/incr.test: + * tests/io.test: + * tests/lindex.test: + * tests/link.test: + * tests/mathop.test: + * tests/parseExpr.test: + * tests/set.test: + * tests/string.test: + * tests/stringComp.test: -2003-10-08 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-10-15 David Gravereaux <davygrvy@pobox.com> - * generic/tclTest.c (TestNumUtfCharsCmd): Command to allow finer - access to Tcl_NumUtfChars for testing. - * generic/tclUtf.c (Tcl_NumUtfChars): Corrected string length - determining when the length parameter is negative; the terminator is a - zero byte, not (necessarily) a \u0000 character. [Bug 769812] + * tools/mkdepend.tcl: Produces usable output. Include path problem + * win/makefile.vc: fixed. Never fight city hall when it comes to + levels of quoting issues. -2003-10-07 Don Porter <dgp@users.sourceforge.net> +2007-10-15 Miguel Sofer <msofer@users.sf.net> - * tests/exec.test: Corrected temporary file management - * tests/fileSystem.test: issues uncovered by -debug 1 test - * tests/io.test: operations. Also backported some - * tests/ioCmd.test: other fixes from the HEAD. - * tests/pid.test: [Bugs 675605, 675655, 675659] - * tests/socket.test: - * tests/source.test: + * generic/tclParse.c (Tcl_ParseBraces): fix for possible read after + the end of buffer. [Bug 1813528] (Joe Mistachkin) - * tests/fCmd.test: Run tests with the [temporaryDirectory] as - the current directory, so that tests can depend on ability to write - files. [Bug 575837] +2007-10-14 David Gravereaux <davygrvy@pobox.com> - * doc/OpenFileChnl.3: Updated Tcl_Tell and Tcl_Seek documentation - to reflect that they now return Tcl_WideInt (TIP 72) [Bug 787537] + * tools/mkdepend.tcl (new): Initial stab at generating automatic + * win/makefile.vc: dependencies. - * tests/io.test: Corrected several tests that failed when paths - * tests/ioCmd.test: included regexp-special chars. [Bug 775394] +2007-10-12 Pat Thoyts <patthoyts@users.sourceforge.net> -2003-10-06 Don Porter <dgp@users.sourceforge.net> + * win/makefile.vc: Mine all version information from headers. + * win/rules.vc: Sync tcl and tk and bring extension versions + * win/nmakehlp.c: closer together. Try and avoid using tclsh to do + substitutions as we may cross compile. + * win/coffbase.txt: Added offsets for snack dlls. - * tests/regexp.test: Matched [makeFile] with [removeFile]. - * tests/regexpComp.test: [Bug 675652] +2007-10-11 David Gravereaux <davygrvy@pobox.com> - * tests/fCmd.test (fCmd-8.2): Test only that tilde-substitution - happens, not for any particular result. [Bug 685991] + * win/makefile.vc: Fixed my bad spelling mistakes from years back. + Dedependency, duh! Rather funny. - * unix/tcl.m4 (SC_PATH_TCLCONFIG): Corrected search path so - that alpha and beta releases of Tcl are not favored. [Bug 608698] +2007-10-11 Don Porter <dgp@users.sourceforge.net> - * tests/reg.test: Corrected duplicate test names. - * tests/resource.test: [Bugs 710370, 710358] + * generic/tclCmdMZ.c: Correct [string is (wide)integer] failure + * tests/string.test: to report correct failindex values for + non-decimal integer strings. [Bug 1805887] - * tests/cmdMZ.test: Updated [package require tcltest] lines to - * tests/fileSystem.test: indiciate that these test files - * tests/notify.test: use features of tcltest 2. [Bug 706114] - * tests/parseExpr.test: - * tests/unixNotfy.test: + * compat/strtoll.c (removed): The routines strtoll() and strtoull() + * compat/strtoull.c (removed): are no longer called by the Tcl source + * generic/tcl.h: code. (Their functionality has been replaced + * unix/Makefile.in: by TclParseNumber().) Remove outdated comments + * unix/configure.in: and mountains of configury autogoo that + * unix/tclUnixPort.h: allegedly support the mythical systems where + * win/Makefile.in: these routines might not have been available. + * win/makefile.bc: + * win/makefile.vc: + * win/tclWinPort.h: -2003-10-06 Vince Darley <vincentdarley@users.sourceforge.net> + * unix/configure: autoconf-2.59 - * generic/tclFileName.c: - * generic/tclIOUtil.c: backport of volumerelative file normalization - and 'file join' inconsistency fixes [Bug 767834, 813273]. +2007-10-11 Miguel Sofer <msofer@users.sf.net> -2003-10-04 Chengye Mao <chengye.geo@yahoo.com> + * generic/tclObj.c: remove superfluous #include of tclCompile.h - * win/tclWinPipe.c: fixed a bug in BuildCommandLine. - This bug built a command line with a missing space between - tclpipe.dll and the following arguments. It caused error - in Windows 98 when exec command.com (e.g. dir) [Bug 789040] +2007-10-08 George Peter Staplin <georgeps@xmission.com> -2003-10-03 Don Porter <dgp@users.sourceforge.net> + * doc/Hash.3: Correct the valid usage of the flags member for the + Tcl_HashKeyType. It should be 0 or more of the flags mentioned. - * generic/tclBasic.c: Fixed error in ref count management of command - * generic/tclCmdMZ.c: and execution traces that caused access to - freed memory in trace-32.1. [Bug 811483] +2007-10-02 Jeff Hobbs <jeffh@ActiveState.com> -2003-10-03 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tcl.h (Tcl_DecrRefCount): Update change from 2006-05-29 to + make macro more warning-robust in unbraced if code. - * tests/fileName.test: - * tests/winFCmd.test: - * doc/FileSystem.3: backported various test and documentation changes - from HEAD. Backport of actual code fixes to follow. +2007-10-02 Don Porter <dgp@users.sourceforge.net> -2003-10-02 Don Porter <dgp@users.sourceforge.net> + [core-stabilizer-branch] - * README: Bumped patch level to 8.4.5 to prepare - * generic/tcl.h: for next patch release. + * README: Bump version number to 8.5.0 + * generic/tcl.h: + * library/init.tcl: * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: - * win/README.binary: * win/configure.in: - * unix/configure: autoconf (2.13) + * unix/configure: autoconf (2.59) * win/configure: - * library/http/http.tcl: Bumped to http 2.4.5 - * library/http/pkgIndex.tcl: +2007-10-02 Andreas Kupries <andreask@activestate.com> -2003-10-01 Daniel Steffen <das@users.sourceforge.net> + * library/tclIndex: Added 'tcl::tm::path' to the tclIndex. This fixes + [Bug 1806422] reported by Don Porter. - * macosx/Makefile: fixed redo prebinding bug when DESTDIR="". - * mac/tclMacResource.c: fixed possible NULL dereference (bdesgraupes). +2007-09-25 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2003-09-29 Don Porter <dgp@users.sourceforge.net> + * generic/tclProc.c (Tcl_DisassembleObjCmd): Define a command, + ::tcl::unsupported::disassemble, which can disassemble procedures, + lambdas and general scripts. + * generic/tclCompile.c (TclDisassembleByteCodeObj): Split apart the + code to print disassemblies of bytecode so that there is reusable code + that spits it out in a Tcl_Obj and then that code is used when doing + tracing. - * generic/tclBasic.c (CallCommandTraces): Added safety bit - * tests/trace.test: masking to prevent any of the bit values - TCL_TRACE_*_EXEC from leaking into the flags field of any Command - struct. This does not fix [Bug 811483] but helps to contain some of - its worst symptoms. Also backported the corrections to test trace-28.4 - from Vince Darley. +2007-09-20 Don Porter <dgp@users.sourceforge.net> -2003-09-29 Donal K. Fellows <fellowsd@cs.man.ac.uk> + *** 8.5b1 TAGGED FOR RELEASE *** - * library/http/http.tcl (geturl): Correctly check the type of - boolean-valued options. [Bug 811170] + * changes: updates for 8.5b1 release. - * unix/tcl.m4 (SC_ENABLE_FRAMEWORK): Added note to make it clearer - that this is an OSX feature, not a general Unix feature. [Bug 619440] +2007-09-19 Don Porter <dgp@users.sourceforge.net> -2003-09-28 David Gravereaux <davygrvy@pobox.com> + * README: Bump version number to 8.5b1 + * generic/tcl.h: Merge from core-stabilizer-branch. + * library/init.tcl: Stabilizing toward 8.5b1 release now done on + * tools/tcl.wse.in: the HEAD. core-stabilizer-branch is now + * unix/configure.in: suspended. + * unix/tcl.spec: + * win/configure.in: - * win/tclWinPipe.c: The windows port of expect can call - TclWinAddProcess before any of the other pipe functions. Added a - missing PipeInit() call to make sure the initialization happens. +2007-09-19 Pat Thoyts <patthoyts@users.sourceforge.net> -2003-09-25 Daniel Steffen <das@users.sourceforge.net> + * generic/tclStubLib.: Replaced isdigit with internal implementation. - * macosx/Makefile: ensure SYMROOT exists if OBJROOT is overridden on - command line. Replaced explict use of /usr/bin by ${BINDIR}. +2007-09-18 Don Porter <dgp@users.sourceforge.net> -2003-09-23 Don Porter <dgp@users.sourceforge.net> + * generic/tclStubLib.c: Remove C library calls from Tcl_InitStubs() so + * win/makefile.vc: that we don't need the C library linked in to + libtclStub. - * generic/tclCmdMZ.c: Fixed [Bug 807243] where - * tests/trace.test (trace-31,32.*): the introspection results - of both [trace info command] and [trace info execution] were getting - co-mingled. Thanks to Mark Saye for the report. +2007-09-17 Pat Thoyts <patthoyts@users.sourceforge.net> - * library/init.tcl (auto_load, auto_import): Expanded Eric Melski's - 2000-01-28 fix for [Bug 218871] to all potentially troubled uses of - [info commands] on input data, where glob-special characters could - cause problems. + * win/makefile.vc: Add crt flags for tclStubLib now it uses C-library + functions. -2003-09-19 Miguel Sofer <msofer@users.sf.net> +2007-09-17 Joe English <jenglish@users.sourceforge.net> - * generic/tclExecute.c: adding (DE)CACHE_STACK_INFO() pairs to protect - all calls that may cause traces on ::errorInfo or ::errorCode to - corrupt the stack [Bug 804681] + * tcl.m4: use '${CC} -shared' instead of 'ld -Bshareable' to build + shared libraries on current NetBSDs. [Bug 1749251] + * unix/configure: regenerated (autoconf-2.59). -2003-09-10 Don Porter <dgp@users.sourceforge.net> +2007-09-17 Don Porter <dgp@users.sourceforge.net> - * library/opt/optparse.tcl: Overlooked dependence of opt 0.4.4 - * library/opt/pkgIndex.tcl: on Tcl 8.2. Bumped to opt 0.4.4.1. + * unix/Makefile.in: Update `make dist` so that tclDTrace.d is + included in the source code distribution. -2003-09-01 Zoran Vasiljevic <zoran@archiware.com> + * generic/tcl.h: Revised Tcl_InitStubs() to restore Tcl 8.4 + * generic/tclPkg.c: source compatibility with callers of + * generic/tclStubLib.c: Tcl_InitStubs(interp, TCL_VERSION, 1). [Bug + 1578344] - * generic/tclIOUtil.c: backported fix from HEAD [Bug 788780] +2007-09-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2003-08-27 Don Porter <dgp@users.sourceforge.net> + * generic/tclTrace.c (Tcl_TraceObjCmd, TraceExecutionObjCmd) + (TraceCommandObjCmd, TraceVariableObjCmd): Generate literal values + * generic/tclNamesp.c (NamespaceCodeCmd): more efficiently using + * generic/tclFCmd.c (CopyRenameOneFile): TclNewLiteralStringObj + * generic/tclEvent.c (TclSetBgErrorHandler): macro. - * generic/tclUtil.c: Corrected [Bug 411825] and other bugs in - TclNeedSpace() where non-breaking space (\u00A0) and backslash-escaped - spaces were handled incorrectly. - * tests/util.test: Added new tests util-8.[2-6]. +2007-09-15 Daniel Steffen <das@users.sourceforge.net> -2003-08-06 Jeff Hobbs <jeffh@ActiveState.com> + * unix/tcl.m4: replace all direct references to compiler by ${CC} to + enable CC overriding at configure & make time; run + check for visibility "hidden" with all compilers; + quoting fixes from TEA tcl.m4. + (SunOS-5.1x): replace direct use of '/usr/ccs/bin/ld' in SHLIB_LD by + 'cc' compiler driver. + * unix/configure: autoconf-2.59 - * win/tclWinInit.c: recognize amd64 and ia32_on_win64 cpus and - Windows CE platform. +2007-09-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2003-08-06 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c (Tcl_CreateObjCommand): Only invalidate along the + namespace path once; that is enough. [Bug 1519940] - * library/msgcat/msgcat.tcl: Added escape so that non-Windows - * library/msgcat/pkgIndex.tcl: platforms do not try to use the - registry package. This can save a costly and pointless package - search. Bumped to 1.3.1. Thanks to Dave Bodenstab. [Bug 781609] +2007-09-14 Daniel Steffen <das@users.sourceforge.net> -2003-08-05 Miguel Sofer <msofer@users.sf.net> + * generic/tclDTrace.d (new file): Add DTrace provider for Tcl; allows + * generic/tclCompile.h: tracing of proc and command entry & + * generic/tclBasic.c: return, bytecode execution, object + * generic/tclExecute.c: allocation and more; with + * generic/tclInt.h: essentially zero cost when tracing + * generic/tclObj.c: is inactive; enable with + * generic/tclProc.c: --enable-dtrace configure arg + * unix/Makefile.in: (disabled by default, will only + * unix/configure.in: enable if DTrace is present). [Patch + 1793984] + + * macosx/GNUmakefile: Enable DTrace support. + * macosx/Tcl-Common.xcconfig: + * macosx/Tcl.xcodeproj/project.pbxproj: + + * generic/tclCmdIL.c: Factor out core of InfoFrameCmd() into + internal TclInfoFrame() for use by DTrace + probes. - * generic/tclExecute.c (INST_INVOKE, INST_EVAL, INST_PUSH_RESULT): - added a Tcl_ResetResult(interp) at each point where the interp's - result is pushed onto the stack, to avoid keeping an extra reference - that may cause costly Tcl_Obj duplication. Detected by Franco Violi, - analyzed by Peter Spjuth and Donal Fellows. [Bug 781585] + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 -2003-07-24 Reinhard Max <max@suse.de> +2007-09-12 Don Porter <dgp@users.sourceforge.net> - * library/package.tcl: Fixed a typo that broke pkg_mkIndex -verbose. + * unix/Makefile.in: Perform missing updates of the tcltest Tcl + * win/Makefile.in: Module installed filename that should have + been part of the bump to tcltest 2.3b1. Thanks Larry Virden. - * tests/pkgMkIndex.test: Added a test for [pkg_mkIndex -verbose]. +2007-09-12 Pat Thoyts <patthoyts@users.sourceforge.net> -2003-07-23 Daniel Steffen <das@users.sourceforge.net> + * win/makefile.vc, win/rules.vc, win/nmakehlp.c: Use nmakehlp to + substitute values for tclConfig.sh (helps cross-compiling). - * unix/Makefile.in: changes to html-tcl & html-tk targets for - compatibility with non-gnu makes. +2007-09-11 Don Porter <dgp@users.sourceforge.net> - * unix/Makefile.in: added macosx/README to dist target. + * library/tcltest/tcltest.tcl: Accept underscores and colons in + * library/tcltest/pkgIndex.tcl: constraint names. Properly handle + constraint expressions that return non-numeric boolean results like + "false". Bump to tcltest 2.3b1. [Bug 1772989; RFE 1071322] + * tests/info.test: Disable fragile tests. -2003-07-23 Pat Thoyts <patthoyts@users.sourceforge.net> + * doc/package.n: Restored the functioning of [package require + * generic/tclPkg.c: -exact] to be compatible with Tcl 8.4. [Bug + * tests/pkg.test: 1578344] - * win/tclWinReg.c (OpenSubKey): Backported fix for [Bug 775976] which - causes the registry set command to fail when built with VC7. - * library/reg/pkgIndex.tcl: Incremented the version to 1.1.2. +2007-09-11 Miguel Sofer <msofer@users.sf.net> -2003-07-21 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCompCmds.c (TclCompileDictCmd-update): + * generic/tclCompile.c (tclInstructionTable): + * generic/tclExecute.c (INST_DICT_UPDATE_END): fix stack management in + compiled [dict update]. [Bug 1786481] - *** 8.4.4 TAGGED FOR RELEASE *** + ***POTENTIAL INCOMPATIBILITY*** + Scripts that were precompiled on earlier versions of 8.5 and use [dict + update] will crash. Workaround: recompile. - * changes: updated for 8.4.4 release +2007-09-11 Kevin B. Kenny <kennykb@acm.org> -2003-07-18 Daniel Steffen <das@users.sourceforge.net> + * generic/tclExecute.c: Corrected an off-by-one error in the setting + of MaxBaseWide for certain powers. [Bug 1767293 - problem reported in + comments when bug was reopened] - * macosx/Makefile: added option to allow installing manpages in - addition to default html help. +2007-09-10 Jeff Hobbs <jeffh@ActiveState.com> -2003-07-18 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclLink.c (Tcl_UpdateLinkedVar): guard against var being + unlinked. [Bug 1740631] (maros) - * doc/Utf.3: Tightened up documentation of Tcl_UtfNext and Tcl_UtfPrev - to better match the behaviour. [Bug 769895] +2007-09-10 Miguel Sofer <msofer@users.sf.net> -2003-07-18 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCompile.c: fix tclInstructionTable entry for + dictUpdateEnd - * generic/tclIOUtil.c: correct MT-safety issues with filesystem - records. [Bug 753315] (vasiljevic) + * generic/tclExecute.c: remove unneeded setting of 'cleanup' variable + before jumping to checkForCatch. - * library/http/pkgIndex.tcl: merged to v2.4.4 from head - * library/http/http.tcl: add support for user:pass info in URL. - * tests/http.test: [Bug 759888] (shiobara) +2007-09-10 Don Porter <dgp@users.sourceforge.net> -2003-07-18 Don Porter <dgp@users.sourceforge.net> + * doc/package.n: Restored the document parallel syntax of the + * generic/tclPkg.c: [package present] and [package require] + * tests/pkg.test: commands. [Bug 1723675] - * generic/tclBasic.c: Corrected several instances of unsafe - * generic/tclCompile.c: truncation of UTF-8 strings that might break - * generic/tclProc.c: apart a multi-byte character. [Bug 760872] - * library/init.tcl: - * tests/init.test: - - * doc/tcltest.n: Restored the [Eval] proc to replace - * library/tcltest/tcltest.tcl: the [::puts] command when either the - -output or -error option for [test] is in use, in order to capture - data written to the output or error channels for comparison against - what is expected. This is easier to document and agrees better with - most user expectations than the previous attempt to replace [puts] - only in the caller's namespace. Documentation made more precise on the - subject. [Bug 706359] - - * doc/AddErrInfo.3: Improved consistency of documentation by using - * doc/CrtTrace.3: "null" everywhere to refer to the character - * doc/Encoding.3: '\0', and using "NULL" everywhere to refer to - * doc/Eval.3: the value of a pointer that points to nowhere. - * doc/GetIndex.3: Also dropped references to ASCII that are no - * doc/Hash.3: longer true, and standardized on the - * doc/LinkVar.3: hyphenated spelling of "null-terminated". - * doc/Macintosh.3: - * doc/OpenFileChnl.3: - * doc/SetVar.3: - * doc/StringObj.3: - * doc/Utf.3: +2007-09-09 Don Porter <dgp@users.sourceforge.net> - * doc/CrtSlave.3 (Tcl_MakeSafe): Removed warning about possible - deprecation (no TIP on that). + * generic/tclInt.h: Removed the "nsName" Tcl_ObjType from the + * generic/tclNamesp.c: registered set. Revised the management of the + * generic/tclObj.c: intrep of that Tcl_ObjType. Revised the + * tests/obj.test: TclGetNamespaceFromObj() routine to return + TCL_ERROR and write a consistent error message when a namespace is not + found. [Bug 1588842. Patch 1686862] -2003-07-17 Daniel Steffen <das@users.sourceforge.net> + ***POTENTIAL INCOMPATIBILITY*** + For callers of Tcl_GetObjType() on the name "nsName". - * macosx/Makefile: added var to allow overriding of tclsh used during - html help building (Landon Fuller). + * generic/tclExecute.c: Update TclGetNamespaceFromObj() callers. + * generic/tclProc.c: -2003-07-16 Mumit Khan <khan@nanotech.wisc.edu> + * tests/apply.test: Updated tests to expect new consistent + * tests/namespace-old.test: error message when a namespace is not + * tests/namespace.test: found. + * tests/upvar.test: - * generic/tclIOUtil.c (SetFsPathFromAny): Add Cygwin specific code to - convert POSIX filename to native format. - * generic/tclFileName.c (Tcl_TranslateFileName): And remove from here. - (TclDoGlob): Adjust for cygwin and append / for dirs instead of \ - * win/tclWinFile.c (TclpObjChdir): Use chdir on Cygwin. [Patch 679315] + * generic/tclCompCmds.c: Use the new INST_REVERSE instruction + * tests/mathop.test: to correct the compiled versions of math + operator commands. [Bug 1724437] -2003-07-16 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCompile.c: New bytecode instruction INST_REVERSE to + * generic/tclCompile.h: reverse the order of N items at the top of + * generic/tclExecute.c: stack. - * library/safe.tcl (FileInAccessPath): normalize paths before - comparison. [Bug 759607] (myers) + * generic/tclCompCmds.c (TclCompilePowOpCmd): Make a separate + routine to compile ** to account for its different associativity. - * unix/tclUnixNotfy.c (NotifierThreadProc): correct size of found and - word vars from int to long. [Bug 767578] (hgo) +2007-09-08 Miguel Sofer <msofer@users.sf.net> -2003-07-16 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclVar.c (Tcl_SetVar2, TclPtrSetVar): [Bug 1710710] fixed + correctly, reverted fix of 2007-05-01. - * doc/CrtSlave.3 (Tcl_MakeSafe): Updated documentation to strongly - discourage use. IMHO code outside the core that uses this function is - a bug... [Bug 655300] +2007-09-08 Donal K. Fellows <dkf@users.sf.net> -2003-07-16 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclDictObj.c (DictUpdateCmd, DictWithCmd): Plug a hole that + * generic/tclExecute.c (TEBC,INST_DICT_UPDATE_END): allowed a careful + * tests/dict.test (dict-21.16,21.17,22.11): attacker to craft a dict + containing a recursive link to itself, violating one of Tcl's + fundamental datatype assumptions and causing a stack crash when the + dict was converted to a string. [Bug 1786481] - * generic/tcl.h: Add recognition of -DTCL_UTF_MAX=6 on the - * generic/regcustom.h: make line to support UCS-4 mode. No config arg - at this time, as it is not the recommended build mode. +2007-09-07 Don Porter <dgp@users.sourceforge.net> - * generic/tclPreserve.c: In Result and Preserve'd routines, do not - * generic/tclUtil.c: assume that ckfree == free, as that is not - * generic/tclResult.c: always true. [Bug 756791] (fuller) + * generic/tclEvent.c ([::tcl::Bgerror]): Corrections to Tcl's + * tests/event.test: default [interp bgerror] handler so that when + it falls back to a hidden [bgerror] in a safe interp, it gets the + right error context data. [Bug 1790274] -2003-07-16 Mo DeJong <mdejong@users.sourceforge.net> +2007-09-07 Miguel Sofer <msofer@users.sf.net> - * win/Makefile.in: Don't define TCL_DBGX symbol for every compile. - Instead, define TCL_PIPE_DLL only when compiling tclWinPipe.c. This - will break other build systems, so they will need to remove the - TCL_DBGX define and replace it with a define for TCL_PIPE_DLL. - * win/makefile.vc: Ditto. - * win/tclWinPipe.c (TclpCreateProcess): Remove PREFIX_IDENT and - DEBUG_IDENT from top of file. Use TCL_PIPE_DLL passed in from build - env instead of trying to construct the dll name from already defined - symbols. This approach is more flexible and better in the long run. + * generic/tclProc.c (TclInitCompiledLocals): the refCount of resolved + variables was being managed without checking if they were Var or + VarInHash: itcl [Bug 1790184] -2003-07-16 Don Porter <dgp@users.sourceforge.net> +2007-09-06 Don Porter <dgp@users.sourceforge.net> - * generic/tclFileName.c (Tcl_GlobObjCmd): [Bug 771840] - * generic/tclIOUtil.c (Tcl_FSConvertToPathType):[Bug 771947] - * unix/tclUnixFCmd.c (GetModeFromPermString): [Bug 771949] - Silence compiler warnings about unreached lines. + * generic/tclResult.c (Tcl_GetReturnOptions): Take care that a + * tests/init.test: non-TCL_ERROR code doesn't cause existing + -errorinfo, -errorcode, and -errorline entries to be omitted. + * generic/tclEvent.c: With -errorInfo no longer lost, generate more + complete ::errorInfo when calling [bgerror] after a non-TCL_ERROR + background exception. - * library/tcltest/tcltest.tcl (ProcessFlags): Corrected broken call - * library/tcltest/pkgIndex.tcl: to [lrange]. Bumped to - version 2.2.4. [Bug 772333] +2007-09-06 Don Porter <dgp@users.sourceforge.net> -2003-07-15 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclInterp.c (Tcl_Init): Removed constraint on ability + to define a custom [tclInit] before calling Tcl_Init(). Until now the + custom command had to be a proc. Now it can be any command. - * unix/dltest/pkga.c (Pkga_EqObjCmd): Fix typo that was causing a - crash in load.test. + * generic/tclInt.decls: New internal routine TclBackgroundException() + * generic/tclEvent.c: that for the first time permits non-TCL_ERROR + exceptions to trigger [interp bgerror] handling. Closes a gap in TIP + 221. When falling back to [bgerror] (which is designed only to handle + TCL_ERROR), convert exceptions into errors complaining about the + exception. -2003-07-15 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclInterp.c: Convert Tcl_BackgroundError() callers to call + * generic/tclIO.c: TclBackgroundException(). + * generic/tclIOCmd.c: + * generic/tclTimer.c: - * doc/array.n: Added some examples from David Welton [Patch 763312] + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: -2003-07-15 Don Porter <dgp@users.sourceforge.net> +2007-09-06 Daniel Steffen <das@users.sourceforge.net> - * doc/http.n: Updated SYNOPSIS to match actual syntax of commands. - [Bug 756112] + * macosx/Tcl.xcode/project.pbxproj: discontinue unmaintained support + * macosx/Tcl.xcode/default.pbxuser: for Xcode 1.5; replace by Xcode2 + project for use on Tiger (with Tcl.xcodeproj to be used on Leopard). - * unix/dltest/pkga.c: Updated to not use Tcl_UtfNcmp and counted - strings instead of strcmp (not defined in any #include'd header) and - presumed NULL-terminated strings. + * macosx/Tcl.xcodeproj/project.pbxproj: updates for Xcode 2.5 and 3.0. + * macosx/Tcl.xcodeproj/default.pbxuser: + * macosx/Tcl.xcode/project.pbxproj: + * macosx/Tcl.xcode/default.pbxuser: + * macosx/Tcl-Common.xcconfig: - * README: Bumped patch level to 8.4.4 in anticipation - * generic/tcl.h: of another patch release. - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/README.binary: - * win/configure.in: + * macosx/README: document project changes. - * unix/configure: autoconf (2.13) - * win/configure: +2007-09-05 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompCmds.c (TclCompileIfCmd): Prior fix of Bug 711371 - on 2003-04-07 introduced a buffer overflow. Corrected. [Bug 771613] + * generic/tclBasic.c: Removed support for the unmaintained + * generic/tclExecute.c: -DTCL_GENERIC_ONLY configuration. [Bug + * unix/Makefile.in: 1264623] -2003-07-15 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-09-04 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdIL.c (SortCompare): Cleared up confusing error - message. [Bug 771539] + * unix/Makefile.in: It's unreliable to count on the release + manager to remember to `make genstubs` before `make dist`. Let the + Makefile remember the dependency for us. -2003-07-15 Daniel Steffen <das@users.sourceforge.net> + * unix/Makefile.in: Corrections to `make dist` dependencies to be + sure that macosx/configure gets generated whenever it does not exist. - * macosx/Makefile: Rewrote buildsystem for Mac OS X framework build to - be purely make driven; in order to become independent of Apple's - closed-source IDE and build tool. The changes are intended to be - transparent to the Makefile user, all existing make targets and cmd - line variable overrides should continue to work. Changed build to only - include tcl specific html help in Tcl.framework, the tk specific html - help is now included in Tk.framework. +2007-09-03 Kevin B, Kenny <kennykb@acm.org> - * macosx/Tcl.pbproj/project.pbxproj: - * macosx/Tcl.pbproj/jingham.pbxuser: Changed to purely call through to - the make driven buildsystem; Tcl.framework is no longer assembled by - ProjectBuilder. Set default SYMROOT in target options to simplify - setting up PB (manually setting common build folder for tcl & tk no - longer needed). + * library/tzdata/Africa/Cairo: + * library/tzdata/America/Grand_Turk: + * library/tzdata/America/Port-au-Prince: + * library/tzdata/America/Indiana/Petersburg: + * library/tzdata/America/Indiana/Tell_City: + * library/tzdata/America/Indiana/Vincennes: + * library/tzdata/Antarctica/McMurdo: + * library/tzdata/Australia/Adelaide: + * library/tzdata/Australia/Broken_Hill: + * library/tzdata/Australia/Currie: + * library/tzdata/Australia/Hobart: + * library/tzdata/Australia/Lord_Howe: + * library/tzdata/Australia/Melbourne: + * library/tzdata/Australia/Sydney: + * library/tzdata/Pacific/Auckland: + * library/tzdata/Pacific/Chatham: Olson's tzdata2007g. - * tools/tcltk-man2html.tcl: Added options to allow building only the - tcl or tk html help files; the default behaviour with none of the new - options is to build both, as before. + * generic/tclListObj.c (TclLindexFlat): + * tests/lindex.test (lindex-17.[01]): Added code to detect the error + when a script does [lindex {} end foo]; an overaggressive optimisation + caused this call to return an empty object rather than an error. - * unix/Makefile.in: Added targets for building only the tcl or tk help. +2007-09-03 Daniel Steffen <das@users.sourceforge.net> - * macosx/README (new): Tcl specific excerpts of tk/macosx/README. + * generic/tclObj.c (TclInitObjSubsystem): restore registration of the + "wideInt" Tcl_ObjType for compatibility with 8.4 extensions that + access the tclWideIntType Tcl_ObjType; add setFromAnyProc for + tclWideIntType. - * generic/tcl.h: Updated reminder comment about editing - macosx/Tcl.pbproj/project.pbxproj when version number changes. +2007-09-02 Donal K. Fellows <dkf@users.sf.net> -2003-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * doc/lsearch.n: Added note that order of results with the -all option + is that of the input list. It always was, but this makes it crystal. - * tests/binary.test (binary-46.*): Tests to help enforce the current - behaviour. - * doc/binary.n: Documented that [binary format a] and [binary scan a] - do encoding conversion by dropping high bytes, unlike the rest of - the core. [Bug 735364] +2007-08-30 Don Porter <dgp@users.sourceforge.net> -2003-07-11 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompile.c: Added fflush() calls following all callers of + * generic/tclExecute.c: TclPrintByteCodeObj() so that tcl_traceCompile + output is less likely to get mangled when writes to stdout interleave + with other code. - * library/package.tcl: Corrected [pkg_mkIndex] bug reported on - comp.lang.tcl. The indexer was searching for newly indexed packages - instead of newly provided packages. +2007-08-28 Don Porter <dgp@users.sourceforge.net> -2003-07-04 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclCompExpr.c: Use a table lookup in ParseLexeme() to + determine lexemes with single-byte representations. - * doc/expr.n: Tighten up the wording of some operations. [Bug 758488] + * generic/tclBasic.c: Used unions to better clarify overloading of + * generic/tclCompExpr.c: the fields of the OpCmdInfo and + * generic/tclCompile.h: TclOpCmdClientData structs. - * tests/cmdAH.test: Made tests of [file mtime] work better on FAT - filesystems. [Patch 760768] Also a little general cleanup. +2007-08-27 Don Porter <dgp@users.sourceforge.net> -2003-06-25 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclCompExpr.c: Call TclCompileSyntaxError() when + expression syntax errors are found when compiling expressions. With + this in place, convert TclCompileExpr to return void, since there's no + longer any need to report TCL_ERROR. + * generic/tclCompile.c: Update callers. + * generic/tclExecute.c: - * unix/configure: Regen. - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Add -ieee when compiling with cc and - add -mieee when compiling with gcc under OSF1-V5 "Tru64" systems. [Bug - 748957] + * generic/tclCompCmds.c: New routine TclCompileSyntaxError() + * generic/tclCompile.h: to directly compile bytecodes that report a + * generic/tclCompile.c: syntax error, rather than (ab)use a call to + TclCompileReturnCmd. Also, undo the most recent commit that papered + over some issues with that (ab)use. New routine produces a new opcode + INST_SYNTAX, which is a minor variation of INST_RETURN_IMM. Also a bit + of constification. -2003-06-24 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclCompile.c: Move the deallocation of local LiteralTable + * generic/tclCompExpr.c: entries into TclFreeCompileEnv(). + * generic/tclExecute.c: Update callers. - * doc/encoding.n: Corrected the docs to say that [source] uses the - system encoding, which it always did anyway (since 8.1) [Bug 742100] + * generic/tclCompExpr.c: Force numeric and boolean literals in + expressions to register with their intreps intact, even if that means + overwriting existing intreps in already registered literals. -2003-06-23 Vince Darley <vincentdarley@users.sourceforge.net> +2007-08-25 Kevin B. Kenny <kennykb@acm.org> - * generic/tclFCmd.c: fix to bad error message when trying to do 'file - copy foo ""'. [Bug 756951] - * tests/fCmd.test: added two new tests for the bug. + * generic/tclExecute.c (TclExecuteByteCode): Added code to handle + * tests/expr.test (expr-23.48-53) integer exponentiation + that results in 32- and 64-bit integer results, avoiding calls to wide + integer exponentiation routines in this common case. [Bug 1767293] - * doc/FileSystem.3: documentation fix [Bug 720634] + * library/clock.tcl (ParseClockScanFormat): Modified code to allow + * tests/clock.test (clock-60.*): case-insensitive matching + of time zone and month names. [Bug 1781282] -2003-06-18 Miguel Sofer <msofer@users.sf.net> +2007-08-24 Don Porter <dgp@users.sourceforge.net> - * generic/tclNamesp.c (Tcl_Export): removed erroneous comments [Bug - 756744] + * generic/tclCompExpr.c: Register literals found in expressions + * tests/compExpr.test: to restore literal sharing. Preserve numeric + intreps when literals are created for the first time. Correct memleak + in ExecConstantExprTree() and add test for the leak. -2003-06-17 Vince Darley <vincentdarley@users.sourceforge.net> +2007-08-24 Miguel Sofer <msofer@users.sf.net> - * generic/tclCmdMZ.c: - * tests/regexp.test: fixing of bugs related to regexp and regsub - matching of empty strings. Addition of a number of new tests. + * generic/tclCompile.c: replaced copy loop that tripped some compilers + with memmove. [Bug 1780870] -2003-06-10 Miguel Sofer <msofer@users.sf.net> +2007-08-23 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c: - * generic/tclExecute.c: let TclEvalObjvInternal call TclInterpReady - instead of relying on its callers to do so; fix for the part of [Bug - 495830] that is new in 8.4. - * tests/interp.test: Added tests 18.9 (knownbug) and 18.10 + * library/init.tcl ([auto_load_index]): Delete stray "]" that created + an expr syntax error (masked by a [catch]). -2003-06-09 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompCmds.c (TclCompileReturnCmd): Added crash protection + to handle callers other than TclCompileScript() failing to meet the + initialization assumptions of the TIP 280 code in CompileWord(). - * tests/string.test (string-4.15): Added test for [string first] bug - reported in Tcl 8.3, where test for all-single-byte-encoded strings - was not reliable. + * generic/tclCompExpr.c: Suppress the attempt to convert to + numeric when pre-compiling a constant expresion indicates an error. -2003-06-04 Joe Mistachkin <joe@mistachkin.com> +2007-08-22 Miguel Sofer <msofer@users.sf.net> - * tools/man2help.tcl: Added duplicate help section checking and - * tools/index.tcl: corrected a comment typo for the getTopics proc - in index.tcl. [Bug 748700] + * generic/tclExecute.c (TEBC): disable the new shortcut to frequent + INSTs for debug builds. REVERTED (collision with alternative fix) -2003-05-23 Don Porter <dgp@users.sourceforge.net> +2007-08-21 Don Porter <dgp@users.sourceforge.net> - * generic/tclObj.c (tclCmdNameType): Converted internal rep - management of the cmdName Tcl_ObjType the opposite way, to always use - the twoPtrValue instead of always using the otherValuePtr. Previous - fix on 2003-05-12 broke several extensions that wanted to poke around - with the twoPtrValue.ptr2 value of a cmdName Tcl_Obj, like TclBlend - and e4graph. [Bug 726018] Thanks to George Petasis for the bug report - and Jacob Levy for testing assistance. + * generic/tclMain.c: Corrected the logic of dropping the last + * tests/main.test: newline from an interactively typed command. + [Bug 1775878] -2003-05-22 Daniel Steffen <das@users.sourceforge.net> +2007-08-21 Pat Thoyts <patthoyts@users.sourceforge.net> - *** 8.4.3 TAGGED FOR RELEASE *** + * tests/thread.test: thread-4.4: clear ::errorInfo in the thread as a + message is left here from init.tcl on windows due to no tcl_pkgPath. - * macosx/tclMacOSXBundle.c: fixed a problem that caused only the first - call to Tcl_MacOSXOpenVersionedBundleResources() for a given bundle - identifier to succeed. This caused the tcl runtime library not to be - found in all interps created after the inital one. +2007-08-20 Miguel Sofer <msofer@users.sf.net> -2003-05-20 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c (INST_SUB): fix usage of the new macro for + overflow detection in sums, adapt to subtraction. Lengthy comment + added. - * changes: updated for 8.4.3 +2007-08-19 Donal K. Fellows <dkf@users.sf.net> - * unix/Makefile.in: do not run autoconf during 'make dist' as the - configure is now a CVS-maintained file and should be up-to-date. + * generic/tclExecute.c (Overflowing, TclIncrObj, TclExecuteByteCode): + Encapsulate Miguel's last change in a more mnemonic macro. -2003-05-19 Daniel Steffen <das@users.sourceforge.net> +2007-08-19 Miguel Sofer <msofer@users.sf.net> - * macosx/Tcl.pbproj/project.pbxproj: changed tclConfig.sh location in - versioned framework subdirectories to be identical to location in - framework toplevel; fixed stub library symbolic links to be Tcl - version specific. + * generic/tclExecute.c: changed the check for overflow in sums, + reducing objsize, number of branches and cache misses (according to + cachegrind). Non-overflow for s=a+b: + previous + ((a >= 0 || b >= 0 || s < 0) && (s >= 0 || b < 0 || a < 0)) + now + (((a^s) >= 0) || ((a^b) < 0)) + This expresses: "a and s have the same sign or else a and b have + different sign". -2003-05-16 Daniel Steffen <das@users.sourceforge.net> +2007-08-19 Donal K. Fellows <dkf@users.sf.net> - * macosx/Tcl.pbproj/project.pbxproj: updated copyright year. + * doc/interp.n (RESOURCE LIMITS): Added text to better explain why + time limits are described using absolute times. [Bug 1752148] -2003-05-15 Jeff Hobbs <jeffh@ActiveState.com> +2007-08-16 Miguel Sofer <msofer@users.sf.net> - * win/tclWinFile.c (TclpMatchInDirectory): revert glob code to r1.44 - as 2003-04-14 optimizations broke Windows98 glob'ing. + * generic/tclVar.c: improved localVarNameType caching to leverage + the new availability of Tcl_Obj in variable names, avoiding string + comparisons to verify that the cached value is usable. - * README: bumped version to 8.4.3 - * generic/tcl.h: - * macosx/Tcl.pbproj/project.pbxproj: - * tools/tcl.wse.in: - * unix/configure: - * unix/configure.in: - * unix/tcl.spec: - * win/README.binary: - * win/configure: - * win/configure.in: + * generic/tclExecute.c: check the two most frequent instructions + before the switch. Reduces both runtime and obj size a tiny bit. - * doc/socket.n: nroff font handling correction. +2007-08-16 Don Porter <dgp@users.sourceforge.net> - * library/encoding/gb2312-raw.enc (new): This is the original - gb2312.enc renamed to allow for it to still be used. This is needed by - Tk (unix) because X fonts with gb2312* charsets really do want the - original gb2312 encoding. [Bug 557030] + * generic/tclCompExpr.c: Added a "constant" field to the OpNode + struct (again "free" due to alignment requirements) to mark those + subexpressions that are completely known at compile time. Enhanced + CompileExprTree() and its callers to precompute these constant + subexpressions at compile time. This resolves the issue raised in [Bug + 1564517]. -2003-05-14 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-08-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclCmdAH.c (Tcl_FormatObjCmd): Values which can't be - anything but wide shouldn't be demoted to long. [consequence of HEAD - fixes for Bug 699060] + * generic/tclIOUtil.c (TclGetOpenModeEx): Only set the O_APPEND flag + * tests/ioUtil.test (ioUtil-4.1): on a channel for the 'a' + mode and not for 'a+'. [Bug 1773127] -2003-05-14 Jeff Hobbs <jeffh@ActiveState.com> +2007-08-14 Miguel Sofer <msofer@users.sf.net> - * library/encoding/gb2312.enc: copy euc-cn.enc over original - gb2312.enc. gb2312.enc appeared to not work as expected, and most uses - of gb2312 really mean euc-cn (which may be the cause of the problem). - [Bug 557030] + * generic/tclExecute.c (INST_INVOKE*): peephole opt, do not get the + interp's result if it will be pushed/popped. - * generic/tclEnv.c (TclUnsetEnv): Another putenv() copy behavior - problem repaired when compiling on windows and using microsoft's - runtime. [Bug 736421] (gravereaux) +2007-08-14 Don Porter <dgp@users.sourceforge.net> -2003-05-13 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclBasic.c: Use fully qualified variable names for + * tests/thread.test: ::errorInfo and ::errorCode so that string + * tests/trace.test: reported to variable traces are fully + qualified in agreement with Tcl 8.4 operations. - * generic/tclIOUtil.c: add decl for FsThrExitProc to suppress warnings - -2003-05-13 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * generic/tclEvent.c (Tcl_Finalize): Removed unused variable to reduce - compiler warnings. [Bug 664745] - -2003-05-13 Joe Mistachkin <joe@mistachkin.com> - - * generic/tcl.decls: Changed Tcl_JoinThread parameter name from "id" - * generic/tclDecls.h: to "threadId". [Bug 732477] - * unix/tclUnixThrd.c: - * win/tclWinThrd.c: - * mac/tclMacThrd.c: +2007-08-14 Daniel Steffen <das@users.sourceforge.net> -2003-05-13 Daniel Steffen <das@users.sourceforge.net> + * unix/tclLoadDyld.c: use dlfcn API on Mac OS X 10.4 and later; fix + issues with loading from memory on intel and 64bit; add debug messages - * generic/tcl.decls: - * macosx/tclMacOSXBundle.c: added extended version of the - Tcl_MacOSXOpenBundleResources() API taking an extra version number - argument: Tcl_MacOSXOpenVersionedBundleResources(). This is needed to - be able to access bundle resources in versioned frameworks such as Tcl - and Tk, otherwise if multiple versions were installed, only the latest - version's resources could be accessed. [Bug 736774] + * tests/load.test: add test load-10.1 for loading from vfs. - * unix/tclUnixInit.c (Tcl_MacOSXGetLibraryPath): use new versioned - bundle resource API to get tcl runtime library for TCL_VERSION. - [Bug 736774] + * unix/dltest/pkga.c: whitespace & comment cleanup, remove + * unix/dltest/pkgb.c: unused pkgf.c. + * unix/dltest/pkgc.c: + * unix/dltest/pkge.c: + * unix/dltest/pkgf.c (removed): + * unix/dltest/pkgua.c: + * macosx/Tcl.xcodeproj/project.pbxproj: - * generic/tclPlatDecls.h: - * generic/tclStubInit.c: regen. +2007-08-13 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixPort.h: worked around the issue of realpath() not being - thread-safe on Mac OS X by defining NO_REALPATH for threaded builds on - Mac OS X. [Bug 711232] + * generic/tclExecute.c: Provide DECACHE/CACHE protection to the + * tests/trace.test: Tcl_LogCommandInfo() call. [Bug 1773040] -2003-05-12 Don Porter <dgp@users.sourceforge.net> +2007-08-12 Miguel Sofer <msofer@users.sf.net> - * generic/tclInterp.c: (AliasObjCmd): Added refCounting of the words - * tests/interp.test (interp-33.1): of the target of an interp - alias during its execution. Also added test. [Bug 730244]. + * generic/tclCmdMZ.c (Tcl_SplitObjCmd): use TclNewStringObj macro + instead of calling the function. - * generic/tclBasic.c (TclInvokeObjectCommand): objv[argc] is no - longer set to NULL (Tcl_CreateObjCommand docs already say that it - should not be accessed). + * generic/tcl_Obj.c (TclAllocateFreeObjects): remove unneeded memset + to 0 of all allocated objects. - * generic/tclObj.c (tclCmdNameType): Corrected variable use of the - otherValuePtr or the twoPtrValue.ptr1 fields to store a - (ResolvedCmdName *) as the internal rep. [Bug 726018]. +2007-08-10 Miguel Sofer <msofer@users.sf.net> - * doc/Eval.3: Corrected prototype for Tcl_GlobalEvalObj [Bug 727622]. + * generic/tclInt.h: remove redundant ops in TclNewStringObj macro. -2003-05-12 Miguel Sofer <msofer@users.sf.net> +2007-08-10 Miguel Sofer <msofer@users.sf.net> - * generic/tclVar.c (TclObjLookupVar): [Bug 735335] temporary fix, - disabling usage of tclNsVarNameType. - * tests/var.test (var-15.1): test for [Bug 735335] + * generic/tclInt.h: fix the TclSetVarNamespaceVar macro, was causing a + leak. -2003-05-10 Zoran Vasiljevic <zoran@archiware.com> +2007-08-10 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixThrd.c: corrected [Bug 723502] + * generic/tclCompExpr.c: Revise CompileExprTree() to use the + OpNode mark field scheme of tree traversal. This eliminates the need + to use magic values in the left and right fields for that purpose. + Also stop abusing the left field within ParseExpr() to store the + number of arguments in a parsed function call. CompileExprTree() now + determines that for itself at compile time. Then reorder code to + eliminate duplication. -2003-05-10 Jeff Hobbs <jeffh@ActiveState.com> +2007-08-09 Miguel Sofer <msofer@users.sf.net> - * generic/tclIOUtil.c: ensure cd is thread-safe. - [Bug 710642] (vasiljevic) + * generic/tclProc.c (TclCreateProc): better comments on the required + varflag values when loading precompiled procs. - * win/tclWinSerial.c (SerialCloseProc): correct mem leak on closing a - Windows serial port [Bug 718002] (schroedter) + * generic/tclExecute.c (INST_STORE_ARRAY): + * tests/trace.test (trace-2.6): whole array write traces on compiled + local variables were not firing. [Bug 1770591] - * generic/tclCmdMZ.c (Tcl_StringObjCmd): prevent string repeat crash - when overflow sizes were given (throws error). [Bug 714106] +2007-08-08 Jeff Hobbs <jeffh@ActiveState.com> -2003-05-09 Joe Mistachkin <joe@mistachkin.com> + * generic/tclProc.c (InitLocalCache): reference firstLocalPtr via + procPtr. codePtr->procPtr == NULL exposed by tbcload. - * generic/tclThreadAlloc.c (TclFreeAllocCache): Fixed memory leak - caused by treating cachePtr as a TLS index [Bug 731754]. +2007-08-08 Don Porter <dgp@users.sourceforge.net> - * win/tclAppInit.c (Tcl_AppInit): Fixed memory leaks caused by not - freeing the memory allocated by setargv and the async handler created - by Tcl_AppInit. An exit handler has been created that takes care of - both leaks. In addition, Tcl_AppInit now uses ckalloc instead of - Tcl_Alloc to allow for easier leak tracking and to be more consistent - with the rest of the Tcl core [Bugs 733156, 733221]. + * generic/tclExecute.c: Corrected failure to compile/link in the + -DNO_WIDE_TYPE configuration. - * tools/encoding/txt2enc.c (main): Fixed memory leak caused by failing - to free the memory used by the toUnicode array of strings [Bug 733221] + * generic/tclExecute.c: Corrected improper use of bignum arguments to + * tests/expr.test: *SHIFT operations. [Bug 1770224] -2003-05-05 Don Porter <dgp@users.sourceforge.net> +2007-08-07 Miguel Sofer <msofer@users.sf.net> - * library/tcltest/tcltest.tcl: The -returnCodes option to [test] - failed to recognize the symbolic name "ok" for return code 0. + * generic/tclInt.h: remove comments refering to VAR_SCALAR, as that + flag bit does not exist any longer. + * generic/tclProc.c (InitCompiledLocals): removed optimisation for + non-resolved case, as the function is never called in that case. + Renamed the function to InitResolvedLocals to calrify the point. -2003-05-05 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclInt.decls: Exporting via stubs to help xotcl adapt to + * generic/tclInt.h: VarReform. + * generic/tclIntDecls.h: + * generic/tclStubInit.c: - * generic/tclBasic.c (Tcl_HideCommand): Fixed error message grammar - and spelling. +2007-08-07 Daniel Steffen <das@users.sourceforge.net> -2003-04-29 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclEnv.c: improve environ handling on Mac OS X (adapted + * unix/tclUnixPort.h: from Apple changes in Darwin tcl-64). - * generic/tclFileName.c: fix to bug reported privately by Jeff where, - for example, 'glob -path {[tcl]} *' gets confused by the leading - special character (which is escaped internally), and instead lists - files in '/'. Bug only occurs on Windows where '\' is also a - directory separator. (Bug has been around at least since Tcl 8.3.) - * tests/fileName.test: added test for the above bug. + * unix/Makefile.in: add support for compile flags specific to + object files linked directly into executables. -2003-04-25 Don Porter <dgp@users.sourceforge.net> + * unix/configure.in (Darwin): only use -seg1addr flag when prebinding; + use -mdynamic-no-pic flag for object files linked directly into exes; + support overriding TCL_PACKAGE_PATH/TCL_MODULE_PATH in environment. - * generic/tclBasic.c: Tcl_EvalObjv() failed to honor the - TCL_EVAL_GLOBAL flag when resolving command names. Tcl_EvalEx passed a - string rep including leading whitespace and comments to - TclEvalObjvInternal(). + * unix/configure: autoconf-2.59 -2003-04-25 Andreas Kupries <andreask@activestate.com> +2007-08-06 Don Porter <dgp@users.sourceforge.net> - * win/tclWinThrd.c: Applied [Patch 727271]. This patch changes the - code to catch any errors returned by the windows functions handling - TLS ASAP instead of waiting to get some mysterious crash later on due - to bogus pointers. Patch provided by Joe Mistachkin. + * tests/parseExpr.test: Update source file name of expr parser code. - This is a stop-gap measure to deal with the low number of ?TLS slots - provided by some of the variants of Windows (60-80). + * generic/tclCompExpr.c: Added a "mark" field to the OpNode + struct, which is used to guide tree traversal. This field costs + nothing since alignement requirements used the memory already. + Rewrote ConvertTreeToTokens() to use the new field, which permitted + consolidation of utility routines CopyTokens() and + GenerateTokensForLiteral(). -2003-04-21 Don Porter <dgp@users.sourceforge.net> +2007-08-06 Kevin B. Kenny <kennykb@users.sf.net> - * library/tcltest/tcltest.tcl: When the return code of a test does - not meet expectations, report that as the reason for test failure, - and do not attempt to check the test result for correctness. [Bug - 725253] + * generic/tclGetDate.y: Added a cast to the definition of YYFREE to + silence compiler warnings. + * generic/tclDate.c: Regenerated + * win/tclWinTest.c: Added a cast to GetSecurityDescriptorDacl call + to silence compiler warnings. -2003-04-18 Jeff Hobbs <jeffh@ActiveState.com> +2007-08-04 Miguel Sofer <msofer@users.sf.net> - * generic/tclExecute.c (ExprCallMathFunc): remove incorrect - extraneous cast from Tcl_WideAsDouble. + * generic/tclInt.decls: Exporting via stubs to help itcl adapt to + * generic/tclInt.h: VarReform. Added localCache initialization + * generic/tclIntDecls.h: to TclInitCompiledLocals (which only exists + * generic/tclProc.c: for itcl). + * generic/tclStubInit.c: + * generic/tclVar.c: -2003-04-18 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-08-01 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * doc/open.n: Moved serial port options from [fconfigure] - * doc/fconfigure.n: to [open] as it is up to the creator of a - channel to describe the channel's special - config options. [Bug 679010] + * library/word.tcl: Rewrote for greater efficiency. [Bug 1764318] -2003-04-16 Don Porter <dgp@users.sourceforge.net> +2007-08-01 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tcl.h Made changes so that the "wideInt" Tcl_ObjType - * generic/tclObj.c is defined on all platforms, even those where - * generic/tclPort.h TCL_WIDE_INT_IS_LONG is defined. Also made - the Tcl_Value struct have a wideValue field on all platforms. This is - a ***POTENTIAL INCOMPATIBILITY*** for TCL_WIDE_INT_IS_LONG platforms - because that struct changes size. This is the same TIP 72 - incompatibility that was seen on other platforms at the 8.4.0 release, - when this change should have happened as well. [Bug 713562] + * generic/tclInt.h: Added a TclOffset macro ala Tk_Offset to + * generic/tclVar.c: abstract out 'offsetof' which may not be + * generic/tclExceute.c: defined (eg: msvc6). - * generic/tclInt.h: New internal macros TclGetWide() and - TclGetLongFromWide() to deal with both forms of the "wideInt" - Tcl_ObjType, so that conditional TCL_WIDE_INT_IS_LONG code - is confined to the header file. +2007-08-01 Miguel Sofer <msofer@users.sf.net> - * generic/tclCmdAH.c: Replaced most coding that was conditional - * generic/tclCmdIL.c: on TCL_WIDE_INT_IS_LONG with code that - * generic/tclExecute.c: works across platforms, sometimes using - * generic/tclTest.c: the new macros above to do it. - * generic/tclUtil.c: - * generic/tclVar.c: + * generic/tclVar.c (TclCleanupVar): fix [Bug 1765225], thx Larry + Virden. -2003-04-17 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-07-31 Miguel Sofer <msofer@users.sf.net> - * doc/socket.n: Added a paragraph to remind people to specify - their encodings when using sockets. [Bug 630621] + * doc/Hash.3: + * generic/tclHash.c: + * generic/tclObj.c: + * generic/tclThreadStorage.c: (changes part of the patch below) + Stop Tcl_CreateHashVar from resetting hPtr->clientData to NULL after + calling the allocEntryProc for a custom table. -2003-04-16 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tcl.h: + * generic/tclBasic.c: + * generic/tclCmdIL.c: + * generic/tclCompCmds.c: + * generic/tclCompile.c: + * generic/tclCompile.h: + * generic/tclExecute.c: + * generic/tclHash.c: + * generic/tclInt.decls: + * generic/tclInt.h: + * generic/tclIntDecls.h: + * generic/tclLiteral.c: + * generic/tclNamesp.c: + * generic/tclObj.c: + * generic/tclProc.c: + * generic/tclThreadStorage.c: + * generic/tclTrace.c: + * generic/tclVar.c: VarReform [Patch 1750051] + + *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h) + Extensions that access internals defined in tclInt.h and/or + tclCompile.h may lose both binary and source compatibility. The + relevant changes are: + 1. 'struct Var' is completely changed, all acceses to its internals + (either direct or via the TclSetVar* and TclIsVar* macros) will + malfunction. Var flag values and semantics changed too. + 2. 'struct Bytecode' has an additional field that has to be + initialised to NULL + 3. 'struct Namespace' is larger, as the varTable is now one pointer + larger than a Tcl_HashTable. Direct access to its fields will + malfunction. + 4. 'struct CallFrame' grew one more field (the second such growth with + respect to Tcl8.4). + 5. API change for the functions TclFindCompiledLocal, TclDeleteVars + and many internal functions in tclVar.c + + Additionally, direct access to variable hash tables via the standard + Tcl_Hash* interface is to be considered as deprecated. It still works + in the present version, but will be broken by further specialisation + of these hash tables. This concerns especially the table of array + elements in an array, as well as the varTable field in the Namespace + struct. + +2007-07-31 Miguel Sofer <msofer@users.sf.net> + + * unix/configure.in: allow use of 'inline' in Tcl sources. [Patch + * win/configure.in: 1754128] + * win/makefile.vc: Regen with autoconf 2.61 + +2007-07-31 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * unix/tclUnixInit.c (TclpSetVariables): Use the thread-safe getpwuid + replacement to fill the tcl_platform(user) field as it is not subject + to spoofing. [Bug 681877] + + * unix/tclUnixCompat.c: Simplify the #ifdef logic. + + * unix/tclUnixChan.c (FileWatchProc): Fix test failures. + +2007-07-30 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * unix/tclUnixChan.c (SET_BITS, CLEAR_BITS): Added macros to make this + file clearer. + +2007-07-24 Miguel Sofer <msofer@users.sf.net> + + * generic/tclBasic.c (TEOvI, GetCommandSource): + * generic/tclExecute.c (TEBC, TclGetSrcInfoForCmd): + * generic/tclInt.h: + * generic/tclTrace.c (TclCheck(Interp|Execution)Traces): + Removed the need for TEBC to inspect the command before calling TEOvI, + leveraging the TIP 280 infrastructure. Moved the generation of a + correct nul-terminated command string away from the trace code, back + into TEOvI/GetCommandSource. - * doc/CrtMathFnc.3: Functions also have to deal with wide ints, - but this was not documented. [Bug 709720] +2007-07-20 Andreas Kupries <andreask@activestate.com> -2003-04-15 Kevin Kenny <kennykb@acm.org> + * library/platform/platform.tcl: Fixed bug in 'platform::patterns' + * library/platform/pkgIndex.tcl: where identifiers not matching + * unix/Makefile.in: the special linux and solaris forms would not + * win/Makefile.in: get 'tcl' as an acceptable platform added to + * doc/platform.n: the result. Bumped package to version 1.0.3 and + * doc/platform_shell.n: updated documentation and Makefiles. Also + fixed bad version info in the documentation of platform::shell. - * win/tclWinTime.c: Corrected use of types to make compilation - compatible with VC++5. +2007-07-19 Don Porter <dgp@users.sourceforge.net> -2003-04-14 Kevin Kenny <kennykb@acm.org> + * generic/tclParse.c: In contexts where interp and parsePtr->interp + might be different, be sure to use the latter for error reporting. + Also pulled the interp argument back out of ParseTokens() since we + already had a parsePtr->interp to work with. - * win/tclWinFile.c: added conditionals to restore compilation on - VC++6, which was broken by recent changes. +2007-07-18 Don Porter <dgp@users.sourceforge.net> -2003-04-14 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclCompExpr.c: Removed unused arguments and variables - Merged various bug fixes from current cvs head: +2007-07-17 Don Porter <dgp@users.sourceforge.net> - * tests/cmdAH.test: better fix to test suite problem if /home is a - symlink [Bug 703264] + * generic/tclCompExpr.c (ParseExpr): While adding comments to + explain the operations of ParseExpr(), made significant revisions to + the code so it would be easier to explain, and in the process made the + code simpler and clearer as well. - * generic/tclIOUtil.c: fix bad error message with 'cd ""' [Bug 704917] - * win/tclWinFile.c: - * win/tclWin32Dll.c: - * win/tclWinInt.h: allow Tcl to differentiate between reparse points - which are symlinks and mounted volumes, and correctly handle the - latter. This involves some elaborate code to find the actual drive - letter (if possible) corresponding to a mounted volume. [Bug 697862] - * tests/fileSystem.test: add constraints to stop tests running in - ordinary tcl interpreter. [Bug 705675] - * generic/tclIOUtil.c: Some re-arrangement of code to bring it closer - to CVS HEAD. No functional changes. +2007-07-15 Don Porter <dgp@users.sourceforge.net> - * tests/fCmd.test: - * win/tclWinFile.c: added some filesystem optimisation to the - 'glob' implementation, and some new tests. + * generic/tclCompExpr.c: More commentary. + * tests/parseExpr.test: Several tests of syntax error messages + to check that when expression substrings are truncated they leave + visible the context relevant to the reported error. - * tests/winFile.test: - * tests/ioUtil.test: - * tests/unixFCmd.test: renumbered tests with duplicate numbers. [Bug - 710361] +2007-07-12 Don Porter <dgp@users.sourceforge.net> -2003-04-12 Kevin Kenny <kennykb@acm.org> + * generic/tclCompExpr.c: Factored out, corrected, and commented + common code for reporting syntax errors in LEAF elements. - * tests/clock.test: Renumbered test cases to avoid duplicates [Bug - 710310]. - * tests/winTime.test: - * win/tclWinTest.c (TestwinclockCmd, TestwinsleepCmd): - * win/tclWinTime.c (Tcl_WinTime, UpdateTimeEachSecond, - (ResetCounterSamples, AccumulateSample, SAMPLES, TimeInfo): Made - substantial changes to the phase-locked loop (replaced an IIR filter - with an FIR one) in a quest for improved loop stability (Bug not - logged at SF, but cited in private communication from Jeff Hobbs). +2007-07-11 Miguel Sofer <msofer@users.sf.net> -2003-04-11 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompCmds.c (TclCompileWhileCmd): + * generic/tclCompile.c (TclCompileScript): + Corrected faulty avoidance of INST_START_CMD when the first opcode in + a script is within a loop (as produced by 'while 1'), so that the + corresponding command is properly counted. [Bug 1752146] + +2007-07-11 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCompExpr.c: Added a "parseOnly" flag argument to + ParseExpr() to indicate whether the caller is Tcl_ParseExpr(), with an + end goal of filling a Tcl_Parse with Tcl_Tokens representing the + parsed expression, or TclCompileExpr() with the goal of compiling and + executing the expression. In the latter case, more aggressive + conversion of QUOTED and BRACED lexeme to literals is done. In the + former case, all such conversion is avoided, since Tcl_Token + production would revert it anyway. This enables simplifications to the + GenerateTokensForLiteral() routine as well. + +2007-07-10 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCompExpr.c: Added a field for operator precedence + to be stored directly in the parse tree. There's no memory cost to + this addition, since that memory would have been lost to alignment + issues anyway. Also, converted precedence definitions and lookup + tables to use symbolic constants instead of raw number for improved + readability, and continued extending/improving/correcting comments. + Removed some unused counter variables. Renamed some variables for + clarity and replaced some cryptic logic with more readable macros. + +2007-07-09 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCompExpr.c: Revision so that the END lexeme never + gets inserted into the parse tree. Later tree traversal never reaches + it since its location in the tree is not variable. Starting and + stopping with the START lexeme (node 0) is sufficient. Also finished + lexeme code commentary. + + * generic/tclCompExpr.c: Added missing creation and return of + the Tcl_Parse fields that indicate error conditions. [Bug 1749987] + +2007-07-05 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdMZ.c (Tcl_StringObjCmd,STR_IS_INT): Corrected - inconsistent results of [string is integer] observed on systems - where sizeof(long) != sizeof(int). [Bug 718878] - * tests/string.test: Added tests for Bug 718878. - * doc/string.n: Clarified that [string is integer] accepts - 32-bit integers. + * library/init.tcl (unknown): Corrected inconsistent error message + in interactive [unknown] when empty command is invoked. [Bug 1743676] -2003-04-11 Andreas Kupries <andreask@activestate.com> +2007-07-05 Miguel Sofer <msofer@users.sf.net> - * generic/tclIO.c (UpdateInterest): When dropping interest in - TCL_READABLE now dropping interest in TCL_EXCEPTION too. This fixes a - bug where Expect detects eof on a file prematurely on Solaris 2.6 and - higher. A much more complete explanation is in the code itself (40 - lines of comments for a one-line change :) + * generic/tclNamesp.c (SetNsNameFromAny): + * generic/tclObj.c (SetCmdNameFromAny): Avoid unnecessary + ckfree/ckalloc when the old structs can be reused. -2003-04-10 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-07-04 Miguel Sofer <msofer@users.sf.net> - * doc/binary.n: Fixed typo in [binary format w] desc. [Bug 718543] + * generic/tclNamesp.c: Fix case where a FQ cmd or ns was being cached + * generic/tclObj.c: in a different interp, tkcon. [Bug 1747512] -2003-04-08 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-07-03 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdAH.c (Tcl_ErrorObjCmd): Strings are only empty if they - have zero length, not if their first byte is zero, so fix test - guarding Tcl_AddObjErrorInfo to take this into account. [Bug reported - by Don Porter; no bug-id.] + * generic/tclCompExpr.c: Revised #define values so that there + is now more expansion room to define more BINARY operators. -2003-04-07 Don Porter <dgp@users.sourceforge.net> +2007-07-02 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCompCmds.c (TclCompileIfCmd): Corrected string limits of - arguments interpolated in error messages. [Bug 711371] + * generic/tclHash.c (CompareStringKeys): Always use the strcmp() + version; the operation is functionally equivalent, the speed is + identical (up to measurement limitations), and yet the code is + simpler. [FRQ 951168] - * generic/tclCmdMZ.c (TraceExecutionProc): Added missing - Tcl_DiscardResult() call to avoid memory leak. +2007-07-02 Don Porter <dgp@users.sourceforge.net> -2003-04-07 Donal K. Fellows <zzcgudf@ernie.mvc.mcc.ac.uk> + * generic/tcl.h: Removed TCL_PRESERVE_BINARY_COMPATIBILITY and + * generic/tclHash.c: any code enabled when it is set to 0. We will + * generic/tclStubInit.c: always want to preserve binary compat + of the structs that appear in the interface through the 8.* series of + releases, so it's pointless to drag around this never-enabled + alternative. - * generic/tclObj.c (tclWideIntType, TclInitObjSubsystem): - (SetBooleanFromAny): Make sure that tclWideIntType is defined and - somewhat sensible everywhere. [Bug 713562] + * generic/tclIO.c: Removed dead code. + * unix/tclUnixChan.c: -2003-04-02 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclCompExpr.c: Removed dead code, old implementations + * generic/tclEvent.c: of expr parsing and compiling, including the + * generic/tclInt.h: routine TclFinalizeCompilation(). - * win/configure: Regen. - * win/configure.in: Set stub lib flag based on new LIBFLAGSUFFIX - variable. - * win/tcl.m4 (SC_CONFIG_CFLAGS): Set new LIBFLAGSUFFIX that works like - LIBSUFFIX, it is used when creating library names. The previous - implementation would generate -ltclstub85 instead of -ltclstub85s when - configured with --disable-shared. +2007-06-30 Donal K. Fellows <dkf@users.sf.net> -2003-04-01 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdIL.c (Tcl_LsortObjCmd): Plug a memory leak caused by a + missing Tcl_DecrRefCount on an error path. [Bug 1717186] - * tests/README: Direct [source] of *.test files is no longer - recommended. The tests/*.test files should only be evaluated under the - control of the [runAllTests] command in tests/all.tcl. +2007-06-30 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> -2003-03-27 Miguel Sofer <msofer@users.sf.net> + * generic/tclThread.c: Prevent RemeberSyncObj() from growing the sync + object lists by reusing already free'd slots, if possible. See + discussion on Bug 1726873 for more information. - * tests/encoding.test: - * tests/proc-old.test: - * tests/set-old.test: Altered test numers to eliminate duplicates, - [Bugs 710313, 710320, 710352] +2007-06-29 Donal K. Fellows <dkf@users.sf.net> -2003-03-27 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * doc/DictObj.3 (Tcl_DictObjDone): Improved documentation of this + function to make it clearer how to use it. [Bug 1710795] - * tests/parseOld.test: Altered test numers to eliminate duplicates. - * tests/parse.test: [Bugs 710365, 710369] - * tests/expr-old.test: - * tests/expr.test: +2007-06-29 Daniel Steffen <das@users.sourceforge.net> - * tests/utf.test: Altered test numers to eliminate duplicates. - * tests/trace.test: [Bugs 710322, 710327, 710349, 710363] - * tests/lsearch.test: - * tests/list.test: - * tests/info.test: - * tests/incr-old.test: - * tests/if-old.test: - * tests/format.test: - * tests/foreach.test: + * generic/tclAlloc.c: on Darwin, ensure memory allocated by + * generic/tclThreadAlloc.c: the custom TclpAlloc()s is aligned to + 16 byte boundaries (as is the case with the Darwin system malloc). -2003-03-26 Don Porter <dgp@users.sourceforge.net> + * generic/tclGetDate.y: use ckalloc/ckfree instead of malloc/free. + * generic/tclDate.c: bison 1.875e - * doc/tcltest.n: - * library/tcltest/tcltest.tcl: Added reporting during [configure - -debug 1] operations to warn about multiple uses of the same test - name. [FR 576693] Replaced [regexp] and [regsub] with [string map] - where possible. Thanks to David Welton. [Bugs 667456,667558] - * library/tcltest/pkgIndex.tcl: Bumped to tcltest 2.2.3 + * generic/tclBasic.c (TclEvalEx): fix warnings. - * tests/msgcat.test (msgcat-2.2.1): changed test name to avoid - duplication. [Bug 710356] + * macosx/Tcl.xcodeproj/project.pbxproj: better support for renamed tcl + * macosx/Tcl.xcodeproj/default.pbxuser: source dir; add 10.5 SDK build + * macosx/Tcl-Common.xcconfig: config; remove tclMathOp.c. - * unix/dltest/pkg?.c: Changed all Tcl_InitStubs calls to pass argument - exact = 0, so that rebuilds are not required when Tcl bumps to a new - version. [Bug 701926] + * macosx/README: document Tcl.xcodeproj changes. -2003-03-24 Miguel Sofer <msofer@users.sf.net> +2007-06-28 Don Porter <dgp@users.sourceforge.net> - * generic/tclVar.c: - * tests/var.test: fixing ObjMakeUpvar's lookup algorithm for the - created local variable, [Bugs 631741] (Chris Darroch) and [696893] - (David Hilker). + * generic/tclBasic.c: Removed dead code, including the + * generic/tclExecute.c: entire file tclMathOp.c. + * generic/tclInt.h: + * generic/tclMathOp.c (removed): + * generic/tclTestObj.c: + * win/tclWinFile.c: -2003-03-22 Kevin Kenny <kennykb@acm.org> + * unix/Makefile.in: Updated to reflect deletion of tclMathOp.c. + * win/Makefile.in: + * win/makefile.bc: + * win/makefile.vc: - * library/dde/pkgIndex.tcl: - * library/reg/pkgIndex.tcl: Fixed a bug where [package require dde] or - [package require registry] attempted to load the release version of - the DLL into a debug build. [Bug 708218] Thanks to Joe Mistachkin for - the patch. - * win/makefile.vc: Added quoting around the script name in the 'test' - target; Joe Mistachkin insists that he has a configuration that fails - to launch tcltest without it, and it appears harmless otherwise. - -2003-03-20 Don Porter <dgp@users.sourceforge.net> - - * generic/tclInt.h (tclOriginalNotifier): - * generic/tclStubInit.c (tclOriginalNotifier): - * mac/tclMacNotify.c (Tcl_SetTimer,Tcl_WaitForEvent): - * unix/tclUnixNotfy.c (Tcl_SetTimer,Tcl_WaitForEvent, - (Tcl_CreateFileHandler,Tcl_DeleteFileHandler): - * win/tclWinNotify.c (Tcl_SetTimer,Tcl_WaitForEvent): Some linkers - apparently use a different representation for a pointer to a function - within the same compilation unit and a pointer to a function in a - different compilation unit. This causes checks like those in the - original notifier procedures to fall into infinite loops. The fix is - to store pointers to the original notifier procedures in a struct - defined in the same compilation unit as the stubs tables, and compare - against those values. [Bug 707174] - - * generic/tclInt.h: Removed definition of ParseValue struct that is no - longer used. - -2003-03-19 Miguel Sofer <msofer@users.sf.net> +2007-06-28 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclCompile.c: - * tests/compile.test: bad command count on TCL_OUT_LINE_COMPILE - [Bug 705406] (Don Porter). + * generic/tclBasic.c: Silence constness warnings for TclStackFree + * generic/tclCompCmds.c: when building with msvc. + * generic/tclFCmd.c: + * generic/tclIOCmd.c: + * generic/tclTrace.c: -2003-03-19 Don Porter <dgp@users.sourceforge.net> +2007-06-28 Miguel Sofer <msofer@users.sf.net> - * doc/Eval.3 (Tcl_EvalObjEx): Corrected CONST and - * doc/ParseCmd.3 (Tcl_EvalTokensStandard): return type errors in - documentation. [Bug 683994] + * generic/tclVar.c (UnsetVarStruct): fix possible segfault. -2003-03-18 Kevin Kenny <kennykb@users.sourceforge.net> +2007-06-27 Don Porter <dgp@users.sourceforge.net> - * tests/registry.test: Changed the conditionals to avoid an abort if - [testlocale] is missing, as when running the test in tclsh rather than - tcltest. [Bug 705677] + * generic/tclTrace.c: Corrected broken trace reversal logic in + * generic/tclTest.c: TclCheckInterpTraces that led to infinite loop + * tests/trace.test: when multiple Tcl_CreateTrace traces were set + and one of them did not fire due to level restrictions. [Bug 1743931] -2003-03-18 Daniel Steffen <das@users.sourceforge.net> +2007-06-26 Don Porter <dgp@users.sourceforge.net> - * tools/tcltk-man2html.tcl: added support for building 'make html' - from inside distribution directories named with 8.x.x version numbers. - tcltk-man2html now uses the latest tcl8.x.x resp. tk8.x.x directories - found inside its --srcdir argument. + * generic/tclBasic.c (TclEvalEx): Moved some arrays from the C + stack to the Tcl stack. -2003-03-18 Vince Darley <vincentdarley@users.sourceforge.net> +2007-06-26 Miguel Sofer <msofer@users.sf.net> - * tests/cmdAH.test: fix test suite problem if /home is a symlink - * generic/tclIOUtil.c: fix bad error message with 'cd ""' - * win/tclWinFile.c: allow Tcl to differentiate between reparse points - which are symlinks and mounted drives. + * generic/tclVar.c (UnsetVarStruct): more streamlining. - These changes fix [Bugs 703264, 704917, 697862] respectively. +2007-06-25 Don Porter <dgp@users.sourceforge.net> -2003-03-17 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclExecute.c: Safety checks to avoid crashes in the + TclStack* routines when called with an incompletely initialized + interp. [Bug 1743302] - * doc/lsearch.n: Altered documentation of -ascii options so - * doc/lsort.n: they don't specify that they operate on - ASCII strings, which they never did - anyway. [Bug 703807] +2007-06-25 Miguel Sofer <msofer@users.sf.net> -2003-03-14 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclVar.c (UnsetVarStruct): fixing incomplete change, more + streamlining. - * generic/tclCmdAH.c (Tcl_FileObjCmd): Remove assumption that file - times and longs are the same size. [Bug 698146] - (Tcl_FormatObjCmd): Stop surprising type conversions from - happening when working with integer and wide values. [Bug 699060] +2007-06-24 Miguel Sofer <msofer@users.sf.net> - * generic/tclCmdAH.c (Tcl_FormatObjCmd): Only add the modifier that - indicates we've got a wide int when we're formatting in an integer - style. Stops some libc's from going mad. [Bug 702622] - Also tidied whitespace. + * generic/tclVar.c (TclDeleteCompiledLocalVars): removed inlining that + ended up not really optimising (limited benchmarks). Now calling + UnsetVarStruct (streamlined old code is #ifdef'ed out, in case better + benchmarks do show a difference). -2003-03-13 Kevin Kenny <kennykb@users.sourceforge.net> + * generic/tclVar.c (UnsetVarStruct): fixed a leak introduced in last + commit. - * win/makefile.vc: Backed the version to 8.4 on the 8.4 branch. (I - just loathe sticky tags). +2007-06-23 Miguel Sofer <msofer@users.sf.net> -2003-03-12 Don Porter <dgp@users.sourceforge.net> + * generic/tclVar.c (UnsetVarStruct, TclDeleteVars): made the logic + slightly clearer, eliminated some duplicated code. - * generic/tcl.h: Removed TCL_PREFIX_IDENT and TCL_DEBUG_IDENT - * win/tclWinPipe.c: from tcl.h -- they are not part of Tcl's - public interface. Put them in win/tclWinPipe.c where they are used. + *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and Var struct users) + The core never builds VAR_LINK variable to have traces. Such a + "monster", should one exist, will now have its unset traces called + *before* it is unlinked. - * generic/tclCmdMZ.c (Tcl_SubstObj): Corrected and added test for - * tests/subst.test (subst-2.4): Tcl_SubstObj's incorrect - halting of substitution at the first \x00 byte. [Bug 685106] +2007-06-23 Daniel Steffen <das@users.sourceforge.net> - * generic/tclInterp.c (Tcl_InterpObjCmd): Corrected and added - * tests/interp.test (interp-2.13): test for option - parsing beyond objc for [interp create --]. Thanks to Marco Maggi. - [Bug 702383] + * macosx/tclMacOSXNotify.c (AtForkChild): don't call CoreFoundation + APIs after fork() on systems where that would lead to an abort(). -2003-03-11 Kevin Kenny <kennykb@users.sourceforge.net> +2007-06-22 Don Porter <dgp@users.sourceforge.net> - * win/makefile.vc: Added two missing uses of $(DBGX) so that - tclpip8x.dll loads without panicking on Win9x. + * generic/tclExecute.c: Revised TclStackRealloc() signature to better + * generic/tclInt.h: parallel (and fall back on) Tcl_Realloc. -2003-03-08 Don Porter <dgp@users.sourceforge.net> + * generic/tclNamesp.c (TclResetShadowesCmdRefs): Replaced + ckrealloc based allocations with TclStackRealloc allocations. - * doc/tcltest.n: Added missing "-body" to example. Thanks to - Helmut Giese. [Bug 700011] + * generic/tclCmdIL.c: More conversions to use TclStackAlloc. + * generic/tclScan.c: -2003-03-06 Don Porter <dgp@users.sourceforge.net> +2007-06-21 Don Porter <dgp@users.sourceforge.net> - * generic/TclUtf.c (Tcl_UniCharNcasecmp): Corrected failure to - * tests/utf.test (utf-25.*): properly compare Unicode strings of - different case in a case insensitive manner. [Bug 699042] + * generic/tclBasic.c: Move most instances of the Tcl_Parse struct + * generic/tclCompExpr.c: off the C stack and onto the Tcl stack. This + * generic/tclCompile.c: is a rather large struct (> 3kB). + * generic/tclParse.c: -2003-03-03 Jeff Hobbs <jeffh@ActiveState.com> +2007-06-21 Miguel Sofer <msofer@users.sf.net> - *** 8.4.2 TAGGED FOR RELEASE *** + * generic/tclBasic.c (TEOvI): Made sure that leave traces + * generic/tclExecute.c (INST_INVOKE): that were created during + * tests/trace.test (trace-36.2): execution of an originally + untraced command do not fire [Bug 1740962], partial fix. -2003-03-03 Daniel Steffen <das@users.sourceforge.net> +2007-06-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> - Mac OS Classic specific fixes: - * generic/tclIOUtil.c (TclNewFSPathObj): on TCL_PLATFORM_MAC, - skip potential directory separator at the beginning of addStrRep. - * mac/tclMacChan.c (OpenFileChannel, CommonWatch): followup - fixes to cut and splice implementation for file channels. - * mac/tclMacFile.c (TclpUtime): pass native path to utime(). - * mac/tclMacFile.c (TclpObjLink): correctly implemented creation - of alias files via new static proc CreateAliasFile(). - * mac/tclMacPort.h: define S_ISLNK macro to fix stat'ing of links. - * mac/tclMacUtil.c (FSpLocationFromPathAlias): fix to enable - stat'ing of broken links. + * generic/tcl.h, generic/tclCompile.h, generic/tclCompile.c: Remove + references in comments to obsolete {expand} notation. [Bug 1740859] -2003-03-03 Kevin Kenny <kennykb@users.sourceforge.net> +2007-06-20 Miguel Sofer <msofer@users.sf.net> - * win/Makefile.vc: corrected bug introduced by 'g' for debug builds. + * generic/tclVar.c: streamline namespace vars deletion: only compute + the variable's full name if the variable is traced. -2003-03-03 Don Porter <dgp@users.sourceforge.net> +2007-06-20 Don Porter <dgp@users.sourceforge.net> - * library/dde/pkgIndex.tcl: dde bumped to version 1.2.1 for - * win/tclWinDde.c: bundled release with Tcl 8.4.2 + * generic/tclInt.decls: Revised the interfaces of the routines + * generic/tclExecute.c: TclStackAlloc and TclStackFree to make them + easier for callers to use (or more precisely, harder to misuse). + TclStackFree now takes a (void *) argument which is the pointer + intended to be freed. TclStackFree will panic if that's not actually + the memory the call will free. TSA/TSF also now tolerate receiving + (interp == NULL), in which case they simply fall back to be calls to + Tcl_Alloc/Tcl_Free. - * library/reg/pkgIndex.tcl: registry bumped to version 1.1.1 for - * win/tclWinReg.c: bundled release with Tcl 8.4.2 + * generic/tclIntDecls.h: make genstubs - * library/opt/pkgIndex.tcl: updated package index to version 0.4.4 + * generic/tclBasic.c: Updated callers + * generic/tclCmdAH.c: + * generic/tclCmdIL.c: + * generic/tclCompCmds.c: + * generic/tclCompExpr.c: + * generic/tclCompile.c: + * generic/tclFCmd.c: + * generic/tclFileName.c: + * generic/tclIOCmd.c: + * generic/tclIndexObj.c: + * generic/tclInterp.c: + * generic/tclNamesp.c: + * generic/tclProc.c: + * generic/tclTrace.c: + * unix/tclUnixPipe.c: -2003-02-28 Jeff Hobbs <jeffh@ActiveState.com> +2007-06-20 Jeff Hobbs <jeffh@ActiveState.com> - * win/configure: - * win/configure.in: check for 'g' for debug build type, not 'd'. - * win/rules.vc (DBGX): correct to use 'g' for nmake win makefile - to match the cygwin makefile for debug builds. [Bug 635107] + * tools/tcltk-man2html.tcl: revamp of html doc output to use CSS, + standardized headers, subheaders, dictionary sorting of names. -2003-02-28 Vince Darley <vincentdarley@users.sourceforge.net> +2007-06-18 Jeff Hobbs <jeffh@ActiveState.com> - * doc/file.n: subcommand is 'file volumes' not 'file volume' + * tools/tcltk-man2html.tcl: clean up copyright merging and output. + clean up coding constructs. -2003-02-27 Jeff Hobbs <jeffh@ActiveState.com> +2007-06-18 Miguel Sofer <msofer@users.sf.net> - * generic/tclIOUtil.c (MakeFsPathFromRelative): removed dead code - check of typePtr (darley). + * generic/tclCmdIL.c (InfoFrameCmd): + * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): + * generic/tclCompile.c (TclInitCompileEnv): + * generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Moved the + CmdFrame off the C stack and onto the Tcl stack. - * tests/winTime.test: added note about PCI hardware dependency - issues with high performance clock. + * generic/tclExecute.c (TEBC): Moved the CmdFrame off the C stack and + onto the Tcl stack, between the catch and the execution stacks -2003-02-27 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-06-18 Don Porter <dgp@users.sourceforge.net> - * tests/lsearch.test (lsearch-10.7): - * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Stopped -start option from - causing an option when used with an empty list. [Bug 694232] + * generic/tclBasic.c (TclEvalEx,TclEvalObjEx): Moved the CmdFrame off + the C stack and onto the Tcl stack. -2003-02-26 Chengye Mao <chengye.geo@yahoo.com> +2007-06-17 Donal K. Fellows <dkf@users.sf.net> - * win/tclWinInit.c: fixed a bug in TclpSetVariables by initializing - dwUserNameLen with the sizeof(szUserName) before calling GetUserName. - Don't know if this bug has been recorded: it caused crash in starting - Tcl or wish in Windows. + * generic/tclProc.c (TclObjInterpProcCore): Minor fixes to make + * generic/tclExecute.c (TclExecuteByteCode): compilation debugging + builds work again. [Bug 1738542] -2003-02-26 Jeff Hobbs <jeffh@ActiveState.com> +2007-06-16 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdMZ.c (TraceCommandProc): Fix mem leak when - deleting a command that had trace on it. [Bug 693564] (sofer) + * generic/tclProc.c (TclObjInterpProcCore): Use switch instead of a + chain of if's for a modest performance gain and a little more clarity. -2003-02-25 Don Porter <dgp@users.sourceforge.net> +2007-06-15 Miguel Sofer <msofer@users.sf.net> - * doc/pkgMkIndex.n: Modified [pkg_mkIndex] to use -nocase matching - * library/package.tcl: of -load patterns, to better accomodate - common user errors due to confusion between [package names] names - and [info loaded] names. + * generic/tclCompCmds.c: Simplified [variable] compiler and executor. + * generic/tclExecute.c: Missed updates to "there is always a valid + frame". -2003-02-25 Andreas Kupries <andreask@activestate.com> + * generic/tclCompile.c: reverted TclEvalObjvInternal and INST_INVOKE + * generic/tclExecute.c: to essentially what they were previous to the + * generic/tclBasic.c: commit of 2007-04-03 [Patch 1693802] and the + subsequent optimisations, as they break the new trace tests described + below. - * tests/pid.test: See below [Bug 678412]. - * tests/io.test: Made more robust against spaces in paths [Bug 678400] + * generic/trace.test: added tests 36 to 38 for dynamic trace creation + and addition. These tests expose a change in dynamics due to a recent + round of optimisations. The "correct" behaviour is not described in + docs nor TIP 62. -2003-02-25 Miguel Sofer <msofer@users.sf.net> +2007-06-14 Miguel Sofer <msofer@users.sf.net> - * tests/execute.test: cleaning up testobj's at the end, to avoid leak - warning by valgrind. + * generic/tclInt.decls: Modif to the internals of TclObjInterpProc + * generic/tclInt.h: to reduce stack consumption and improve task + * generic/tclIntDecls.h: separation. Changes the interface of + * generic/tclProc.c: TclObjInterpProcCore (patching TclOO + simultaneously). -2003-02-22 Zoran Vasiljevic <zoran@archiwrae.com> + * generic/tclProc.c (TclObjInterpProcCore): simplified obj management + in wrongNumArgs calls. - * generic/tclEvent.c (Tcl_FinalizeThread): Fix [Bug 571002] +2007-06-14 Don Porter <dgp@users.sourceforge.net> -2003-02-21 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclCompile.c: SetByteCodeFromAny() can no longer return any + * generic/tclExecute.c: code other than TCL_OK, so remove code that + * generic/tclProc.c: formerly handled exceptional codes. - * tests/binary.test (binary-44.[34]): - * generic/tclBinary.c (ScanNumber): Fixed problem with unwanted - sign-bit propagation when scanning wide ints. [Bug 690774] +2007-06-13 Miguel Sofer <msofer@users.sf.net> -2003-02-21 Daniel Steffen <das@users.sourceforge.net> + * generic/tclExecute.c (TclCompEvalObj): missed update to "there is + always a valid frame". - * mac/tclMacChan.c (TclpCutFileChannel, TclpSpliceFileChannel): - Implemented missing cut and splice procs for file channels. + * generic/tclProc.c (TclObjInterpProcCore): call TEBC directly instead + of going through TclCompEvalObj - no need to check the compilation's + freshness, this has already been done. This improves speed and should + also provide some relief to [Bug 1066755]. -2003-02-21 Don Porter <dgp@users.sourceforge.net> +2007-06-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * library/package.tcl (tclPkgUnknown): Minor performance tweaks to - reduce the number of [file] invocations. Meant to improve startup - times, at least a little bit. [Patch 687906] + * generic/tclBasic.c (Tcl_CreateInterp): Turn the [info] command into + * generic/tclCmdIL.c (TclInitInfoCmd): an ensemble, making it easier + for third-party code to plug into. -2003-02-20 Daniel Steffen <das@users.sourceforge.net> + * generic/tclIndexObj.c (Tcl_WrongNumArgs): + * generic/tclNamesp.c, generic/tclInt.h (tclEnsembleCmdType): Make + Tcl_WrongNumArgs do replacement correctly with ensembles and other + sorts of complex replacement strategies. - * unix/tcl.m4: - * unix/tclUnixPipe.c: (macosx) use vfork() instead of fork() to create - new processes, as recommended by Apple (vfork can be up to 100 times - faster thank fork on macosx). - * unix/configure: regen. +2007-06-11 Miguel Sofer <msofer@users.sf.net> -2003-02-20 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c: comments added to explain iPtr->numLevels + management. - * generic/tclEncoding.c (LoadTableEncoding): - * library/encoding/cp932.enc: Correct jis round-trip encoding - * library/encoding/euc-jp.enc: by adding 'R' type to .enc files. - * library/encoding/iso2022-jp.enc: [Patch 689341] (koboyasi, taguchi) - * library/encoding/jis0208.enc: - * library/encoding/shiftjis.enc: - * tests/encoding.test: + * generic/tclNamesp.c: tweaks to Tcl_GetCommandFromObj and + * generic/tclObj.c: TclGetNamespaceFromObj; modified the usage of + structs ResolvedCmdName and ResolvedNsname so that the field refNsPtr + is NULL for fully qualified names. - * unix/tclUnixChan.c (Tcl_MakeTcpClientChannel): add - MakeTcpClientChannelMode that takes actual mode flags to avoid - hang on OS X (may be OS X bug, but patch works x-plat). - [Bug 689835] (steffen) +2007-06-10 Miguel Sofer <msofer@users.sf.net> -2003-02-20 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclBasic.c: Further TEOvI split, creating a new + * generic/tclCompile.h: TclEvalObjvKnownCommand() function to handle + * generic/tclExecute.c: commands that are already known and are not + traced. INST_INVOKE now calls into this function instead of inlining + parts of TEOvI. Same perf, better isolation. - * doc/regsub.n: Typo fix [Bug 688943] + ***POTENTIAL INCOMPAT*** There is a subtle issue with the timing of + execution traces that is changed here - first change appeared in my + commit of 2007-04-03 [Patch 1693802], which caused some divergence + between compiled and non-compiled code. + ***THIS CHANGE IS UNDER REVIEW*** -2003-02-19 Jeff Hobbs <jeffh@ActiveState.com> +2007-06-10 Jeff Hobbs <jeffh@ActiveState.com> - * unix/tclUnixThrd.c (TclpReaddir): - * unix/tclUnixPort.h: update to Bug 689100 patch to ensure that - there is a defined value of MAXNAMLEN (aka NAME_MAX in POSIX) and - that we have some buffer allocated. + * README: updated links. [Bug 1715081] -2003-02-19 Daniel Steffen <das@users.sourceforge.net> + * generic/tclExecute.c (TclExecuteByteCode): restore support for + INST_CALL_BUILTIN_FUNC1 and INST_CALL_FUNC1 bytecodes to support 8.4- + precompiled sources (math functions). [Bug 1720895] - * generic/tclStringObj.c: restored Tcl_SetObjLength() side-effect of - always invalidating unicode rep (if the obj has a string rep). Added - hasUnicode flag to String struct, allows decoupling of validity of - unicode rep from buffer size allocated to it (improves memory - allocation efficiency). [Bugs 686782, 671138, 635200] +2007-06-10 Miguel Sofer <msofer@users.sf.net> - * macosx/Tcl.pbproj/project.pbxproj: - * macosx/Makefile: reworked embedded build to no longer require - relinking but to use install_name_tool instead to change the - install_names for embedded frameworks. [Bug 644510] + * generic/tclInt.h: + * generic/tclNamesp.c: + * generic/tclObj.c: + * generic/tclvar.c: new macros TclGetCurrentNamespace() and + TclGetGlobalNamespace(); Tcl_GetCommandFromObj and + TclGetNamespaceFromObj rewritten to make the logic clearer; slightly + faster too. + +2007-06-09 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c (INST_INVOKE): isolated two vars to the small + block where they are actually used. + + * generic/tclObj.c (Tcl_GetCommandFromObj): rewritten to make the + logic clearer; slightly faster too. + + * generic/tclBasic.c: Split TEOv in two, by separating a processor + for non-TCL_OK returns. Also split TEOvI in a full version that + handles non-existing and traced commands, and a separate shorter + version for the regular case. + + * generic/tclBasic.c: Moved the generation of command strings for + * generic/tclTrace.c: traces: previously in Tcl_EvalObjv(), now in + TclCheck[Interp|Execution]Traces(). Also insured that the strings are + properly NUL terminated at the correct length. [Bug 1693986] + + ***POTENTIAL INCOMPATIBILITY in internal API*** + The functions TclCheckInterpTraces() and TclCheckExecutionTraces() (in + internal stubs) used to be noops if the command string was NULL, this + is not true anymore: if the command string is NULL, they generate an + appropriate string from (objc,objv) and use it to call the traces. The + caller might as well not call them with a NULL string if he was + expecting a noop. + + * generic/tclBasic.c: Extend usage of TclLimitReady() and + * generic/tclExecute.c: (new) TclLimitExceeded() macros. + * generic/tclInt.h: + * generic/tclInterp.c: - * macosx/Tcl.pbproj/project.pbxproj: preserve mod dates when running - 'make install' to build framework (avoids bogus rebuilds of dependent - frameworks because tcl headers appear changed). + * generic/tclInt.h: New TclCleanupCommandMacro for core usage. + * generic/tclBasic.c: + * generic/tclExecute.c: + * generic/tclObj.c: - * tests/ioCmd.test (iocmd-1.8): fix failure when system encoding is - utf-8: use iso8859-1 encoding explicitly. +2007-06-09 Daniel Steffen <das@users.sourceforge.net> -2003-02-18 Miguel Sofer <msofer@users.sf.net> + * macosx/Tcl.xcodeproj/project.pbxproj: add new Tclsh-Info.plist.in. - * generic/tclCompile.c (TclCompileExprWords): remove unused variable - "range" [Bug 664743] - * generic/tclExecute.c (ExprSrandFunc): remove unused variable - "result" [Bug 664743] - * generic/tclStringObj.c (UpdateStringOfString): remove unused - variable "length" [Bug 664751] - * tests/execute.test (execute-7.30): fix for [Bug 664775] +2007-06-08 Donal K. Fellows <dkf@users.sf.net> -2003-02-18 Andreas Kupries <andreask@activestate.com> + * generic/tclCmdMZ.c (Tcl_StringObjCmd): Changed [string first] and + * doc/string.n: [string last] so that they have clearer descriptions + for those people who know the adage about needles and haystacks. This + follows suggestions on comp.lang.tcl... - * unix/tcl.m4: [Bug 651811] Added definition of _XOPEN_SOURCE and - linkage of 'xnet' library to HP 11 branch. This kills a lot of - socket-related failures in the testsuite when Tcl was compiled in 64 - bit mode (both PA-RISC 2.0W, and IA 64). +2007-06-06 Miguel Sofer <msofer@users.sf.net> - * unix/configure: Regenerated. + * generic/tclParse.c: fix for uninit read. [Bug 1732414] -2003-02-18 Jeff Hobbs <jeffh@ActiveState.com> +2007-06-06 Daniel Steffen <das@users.sourceforge.net> - * generic/tclIO.c (HaveVersion): correctly decl static + * macosx/Tcl.xcodeproj/project.pbxproj: add settings for Fix&Continue. - * unix/tclUnixThrd.c (TclpReaddir): reduce size of name string in - tsd to NAME_MAX instead of PATH_MAX. [Bug 689100] (waters) + * unix/configure.in (Darwin): add plist for tclsh; link the + * unix/Makefile.in (Darwin): Tcl and tclsh plists into + * macosx/Tclsh-Info.plist.in (new): their binaries in all cases. + * macosx/Tcl-Common.xcconfig: -2003-02-18 Mo DeJong <mdejong@users.sourceforge.net> + * unix/tcl.m4 (Darwin): fix CF checks in fat 32&64bit builds. + * unix/configure: autoconf-2.59 - * unix/configure: Regen. - * unix/tcl.m4 (SC_ENABLE_THREADS): Make sure -lpthread gets passed on - the link line when checking for the pthread_attr_setstacksize symbol. +2007-06-05 Don Porter <dgp@users.sourceforge.net> -2003-02-18 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclBasic.c: Added interp flag value ERR_LEGACY_COPY to + * generic/tclInt.h: control the timing with which the global + * generic/tclNamesp.c: variables ::errorCode and ::errorInfo get + * generic/tclProc.c: updated after an error. This keeps more + * generic/tclResult.c: precise compatibility with Tcl 8.4. + * tests/result.test (result-6.2): [Bug 1649062] - * generic/tclTest.c: cleanup of new 'simplefs' test code, and better - documentation. +2007-06-05 Miguel Sofer <msofer@users.sf.net> -2003-02-17 Miguel Sofer <msofer@users.sf.net> + * generic/tclInt.h: + * generic/tclExecute.c: Tcl-stack reform, [Patch 1701202] - * generic/tclBasic.c (TclRenameCommand): fixing error in previous - commit. +2007-06-03 Daniel Steffen <das@users.sourceforge.net> -2003-02-17 Jeff Hobbs <jeffh@ActiveState.com> + * unix/Makefile.in: add datarootdir to silence autoconf-2.6x warning. - * generic/tclExecute.c (TclExecuteByteCode INST_STR_MATCH): - * generic/tclCmdMZ.c (Tcl_StringObjCmd STR_MATCH): - * generic/tclUtf.c (TclUniCharMatch): - * generic/tclInt.decls: add private TclUniCharMatch function that - * generic/tclIntDecls.h: does string match on counted unicode - * generic/tclStubInit.c: strings. Tcl_UniCharCaseMatch has the - * tests/string.test: failing that it can't handle strings or - * tests/stringComp.test: patterns with embedded NULLs. Added - tests that actually try strings/pats with NULLs. TclUniCharMatch - should be TIPed and made public in the next minor version rev. +2007-05-30 Don Porter <dgp@users.sourceforge.net> -2003-02-17 Miguel Sofer <msofer@users.sf.net> + * generic/tclBasic.c: Removed code that dealt with + * generic/tclCompile.c: TCL_TOKEN_EXPAND_WORD tokens representing + * generic/tclCompile.h: expanded literal words. These sections were + mostly in place to enable [info frame] to discover line information in + expanded literals. Since the parser now generates a token for each + post-expansion word referring to the right location in the original + script string, [info frame] gets all the data it needs. - * generic/tclBasic.c (TclRenameCommand): 'oldFullName' object was not - being freed on all function exits, causing a memory leak. [Bug 684756] + * generic/tclInt.h: Revised the parser so that it never produces + * generic/tclParse.c: TCL_TOKEN_EXPAND_WORD tokens when parsing an + * tests/parse.test: expanded literal word; that is, something like + {*}{x y z}. Instead, generate the series of TCL_TOKEN_SIMPLE_WORD + tokens to represent the words that expansion of the literal string + produces. [RFE 1725186] -2003-02-17 Mo DeJong <mdejong@users.sourceforge.net> +2007-05-29 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclIO.c (Tcl_GetsObj): Minor change so that eol is only - assigned at the top of the TCL_TRANSLATE_AUTO case block. The other - cases assign eol so this does not change any functionality. + * unix/tclUnixThrd.c (Tcl_JoinThread): fix for 64-bit handling of + pthread_join exit return code storage. [Bug 1712723] -2003-02-17 Kevin Kenny <kennykb@users.sourceforge.net> +2007-05-22 Don Porter <dgp@users.sourceforge.net> - * tests/notify.test: Removed Windows line terminators. [Bug 687913]. + [core-stabilizer-branch] -2003-02-15 Miguel Sofer <msofer@users.sf.net> + * unix/configure: autoconf-2.59 (FC6 fork) + * win/configure: - * generic/tclBasic.c (Tcl_EvalEx): - * generic/tclCompExpr.c (CompileSubExpr): - * generic/tclCompile.c (TclCompileScript): - * generic/tclParse.c (Tcl_ParseCommand, ParseTokens): - * generic/tclParseExpr.c (ParsePrimaryExpr): - * tests/basic.test (47.1): - * tests/main.test (3.4): - * tests/misc.test (1.2): - * tests/parse.test (6.18): - * tests/parseExpr.test (15.35): - * tests/subst.test (8.6): Don Porter's fix for bad parsing of - nested scripts [Bug 681841]. - -2003-02-15 Kevin Kenny <kennykb@users.sourceforge.net> - - * tests/notify.test (new-file): - * generic/tclTest.c (TclTest_Init, EventtestObjCmd, EventtestProc, - (EventTestDeleteProc): - * generic/tclNotify.c (Tcl_DeleteEvents): Fixed Tcl_DeleteEvents - not to get a pointer smash when deleting the last event in the - queue. Added test code in 'tcltest' and a new file of test cases - 'notify.test' to exercise this functionality; several of the new - test cases fail for the original code and pass for the corrected - code. [Bug 673714] - - * unix/tclUnixTest.c (TestfilehandlerCmd): Corrected a couple - of typos in error messages. [Bug 596027] - -2003-02-14 Jeff Hobbs <jeffh@ActiveState.com> - - * README: Bumped to version 8.4.2. + * README: Bump version number to 8.5b1 * generic/tcl.h: + * library/init.tcl: * tools/tcl.wse.in: - * unix/configure: * unix/configure.in: - * unix/tcl.m4: * unix/tcl.spec: - * win/README.binary: - * win/configure: * win/configure.in: - * macosx/Tcl.pbproj/project.pbxproj: - - * generic/tclStringObj.c (Tcl_GetCharLength): perf tweak - - * unix/tcl.m4: correct HP-UX ia64 --enable-64bit build flags - -2003-02-14 Kevin Kenny <kennykb@users.sourceforge.net> - * win/tclWinTime.c: Added code to test and compensate for forward - leaps of the performance counter. See the MSDN Knowledge Base article - Q274323 for the hardware problem that makes this necessary on certain - machines. - * tests/winTime.test: Revised winTime-2.1 - it had a tolerance of - thousands of seconds, rather than milliseconds. (What's six orders of - magnitude among friends? - - Both the above changes are triggered by a problem reported at - http://aspn.activestate.com/ASPN/Mail/Message/ActiveTcl/1536811 - although the developers find it difficult to believe that it accounts - for the observed behavior and suspect a fault in the RTC chip. - -2003-02-13 Kevin Kenny <kennykb@users.sourceforge.net> - - * win/tclWinInit.c: Added conversion from the system encoding to - tcl_platform(user), so that it works with non-ASCII7 user names. [Bug - 685926] - - * doc/tclsh.1: Added language to describe the handling of the - end-of-file character \u001a embedded in a script file. [Bug 685485] - -2003-02-11 Vince Darley <vincentdarley@users.sourceforge.net> - - * tests/fileName.test: - * unix/tclUnixFile.c: fix for [Bug 685445] when using 'glob -l' on - broken symbolic links. Added two new tests for this bug. - -2003-02-11 Kevin Kenny <kennykb@users.sourceforge.net> - - * tests/http.test: Corrected a problem where http-4.14 would fail when - run in an environment with a proxy server. Replaced references to - scriptics.com by tcl.tk. - -2003-02-11 Jeff Hobbs <jeffh@ActiveState.com> - - * tests/lsearch.test: - * generic/tclCmdIL.c (Tcl_LsearchObjCmd): protect against the case - that lsearch -regepx list and pattern objects are equal. - - * tests/stringObj.test: - * generic/tclStringObj.c (Tcl_GetCharLength): correct ascii char - opt of 2002-11-11 to not stop early on \x00. [Bug 684699] - - * tests.parse.test: remove excess EOF whitespace - - * generic/tclParse.c (CommandComplete): more paranoid check to - break on (p >= end) instead of just (p == end). - -2003-02-11 Miguel Sofer <msofer@users.sf.net> - - * generic/tclParse.c (CommandComplete): - * tests/parse.test: fix for [Bug 684744], by Don Porter. - -2003-02-11 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclIOUtil.c (Tcl_FSJoinPath, Tcl_FSGetNormalizedPath): - (UpdateStringOfFsPath): revert the cwdLen == 0 check and instead - follow a different code path in Tcl_FSJoinPath. - (Tcl_FSConvertToPathType, Tcl_FSGetNormalizedPath): - (Tcl_FSGetFileSystemForPath): Update string rep of path objects - before freeing the internal object. (darley) - - * tests/fileSystem.test: added test 8.3 - * generic/tclIOUtil.c (Tcl_FSGetNormalizedPath): - (UpdateStringOfFsPath): handle the cwdLen == 0 case - - * unix/tclUnixFile.c (TclpMatchInDirectory): simplify the hidden - file match check. - -2003-02-10 Mo DeJong <mdejong@users.sourceforge.net> +2007-05-18 Don Porter <dgp@users.sourceforge.net> + * unix/configure: autoconf-2.59 (FC6 fork) * win/configure: - * win/configure.in: Generate error when attempting to build under - Cygwin. The Cygwin port of Tcl/Tk does not build and people are filing - bug reports under the mistaken impression that someone is actually - maintaining the Cygwin port. A post to comp.lang.tcl asking someone to - volunteer as an area maintainer has generated no results. Closing - [Bugs 680840, 630199, 634772] and marking as "Won't fix". - -2003-02-10 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * doc/append.n: Return value was not documented. [Bug 683188] - -2003-02-10 Vince Darley <vincentdarley@users.sourceforge.net> - - * doc/FileSystem.3: - * generic/tclIOUtil.c: - * generic/tclInt.h: - * tests/fileSystem.test: - * unix/tclUnixFCmd.c: - * unix/tclUnixFile.c: - * win/tclWinFile.c: further filesystem optimization, applying - [Patch 682500]. In particular, these code examples are faster now: - foreach f $flist { if {[file exists $f]} {file stat $f arr;...}} - foreach f [glob -dir $dir *] { # action and/or recursion on $f } - cd $dir - foreach f [glob *] { # action and/or recursion on $f } - cd .. - - * generic/tclTest.c: Fix for [Bug 683181] where test suite left files - in 'tmp'. - -2003-02-08 Jeff Hobbs <jeffh@ActiveState.com> - - * library/safe.tcl: code cleanup of eval and string comp use. - -2003-02-07 Vince Darley <vincentdarley@users.sourceforge.net> - - * win/tclWinFCmd.c: cleanup long lines - * win/tclWinFile.c: sped up pure 'glob' by a factor of 2.5 ('foreach f - [glob *] { file exists $f }' is still slow) - * tests/fileSystem.text: - * tests/fileName.test: added new tests to ensure correct behaviour in - optimized filesystem code. - -2003-02-07 Vince Darley <vincentdarley@users.sourceforge.net> - - * generic/tclTest.c: - * tests/fileSystem.text: fixed test 7.2 to avoid a possible crash, and - not change the pwd. - - * tests/http.text: added comment to test 4.15, that it may fail if you - use a proxy server. -2003-02-06 Mo DeJong <mdejong@users.sourceforge.net> - - * generic/tclCompCmds.c (TclCompileIncrCmd): - * tests/incr.test: Don't include the text "(increment expression)" in - the errorInfo generated by the compiled version of the incr command - since it does not match the message generated by the non-compiled - version of incr. It is also not possible to match this error output - under Jacl, which does not support a compiler. + * README: Bump version number to 8.5a7 + * generic/tcl.h: + * library/init.tcl: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/configure.in: -2003-02-06 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclParse.c: Disable and remove the ALLOW_EXPAND sections + * tests/info.test: that continued to support the deprecated + * tests/mathop.test: {expand} syntax. Updated the few remaining + users of that syntax in the test suite. - * generic/tclExecute.c (TclExecuteByteCode): When an error is - encountered reading the increment value during a compiled call to - incr, add a "(reading increment)" error string to the errorInfo - variable. This makes the errorInfo variable set by the compiled incr - command match the value set by the non-compiled version. - * tests/incr-old.test: Change errorInfo result for the compiled incr - command case to match the modified implementation. - * tests/incr.test: Add tests to make sure the compiled and - non-compiled errorInfo messages are the same. +2007-05-17 Donal K. Fellows <dkf@users.sf.net> -2003-02-06 Don Porter <dgp@users.sourceforge.net> + * generic/tclExecute.c (TclLimitReady): Created a macro version of + Tcl_LimitReady just for TEBC, to reduce the amount of times that the + bytecode engine calls out to external functions on the critical path. + * generic/tclInterp.c (Tcl_LimitReady): Added note to remind anyone + doing maintenance that there is a macro version to update. - * library/tcltest/tcltest.tcl: Filename arguments to [outputChannel] - and [errorChannel] (also -outfile and -errfile) were [open]ed but - never [closed]. Also, [cleanupTests] could remove output or error - files. [Bug 676978]. - * library/tcltest/pkgIndex.tcl: Bumped to version 2.2.2. +2007-05-17 Daniel Steffen <das@users.sourceforge.net> -2003-02-05 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tcl.decls: workaround 'make checkstubs' failures from + tclStubLib.c MODULE_SCOPE revert. [Bug 1716117] - * tests/interp.test: - * tests/set-old.test: Run test cases that depend on hash order through - lsort so that the tests also pass under Jacl. Does not change test - results under Tcl. +2007-05-16 Joe English <jenglish@users.sourceforge.net> -2003-02-04 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclStubLib.c: Change Tcl_InitStubs(), tclStubsPtr, and the + auxilliary stubs table pointers back to public visibility. - * generic/tclIOUtil.c: - * generic/tclEvent.c: - * generic/tclInt.h: - * mac/tclMacFCmd.c: - * unix/tclUnixFCmd.c: - * win/tclWin32Dll.c: - * win/tclWinFCmd.c: - * win/tclWinInit.c: - * win/tclWinInt.h: - * tests/fileSystem.test: fix to finalization/unloading/encoding issues - to make filesystem much less dependent on encodings for its cleanup, - and therefore allow it to be finalized later in the exit process. This - fixes fileSystem.test-7.1. Also fixed one more bug in setting of - modification dates of files which have undergone cross-platform - copies. [Patch 676271] - - * tests/basic.test: - * tests/exec.test: - * tests/fileName.test: - * tests/io.test: fixed some test failures when tests are run from a - directory containing spaces. + These symbols need to be exported so that stub-enabled extensions may + be statically linked into an extended tclsh or Big Wish with a + dynamically-linked libtcl. [Bug 1716117] - * tests/fileSystem.test: - * generic/tclTest.c: added regression test for the modification - date setting of cross-platform file copies. +2007-05-15 Don Porter <dgp@users.sourceforge.net> -2003-02-03 Kevin Kenny <kennykb@users.sourceforge.net> + * win/configure: autoconf-2.59 (FC6 fork) - * generic/tclBasic.c: Changed [trace add command] so that 'rename' - callbacks get fully qualified names of the command. [Bug 651271]. - ***POTENTIAL INCOMPATIBILITY*** - * tests/trace.test: Modified the test cases for [trace add command] to - expect fully qualified names on the 'rename' callbacks. Added a case - for renaming a proc within a namespace. - * doc/trace.n: Added language about use of fully qualified names in - trace callbacks. - -2003-02-01 Kevin Kenny <kennykb@users.sourceforge.net> - - * generic/tclCompCmds.c: Removed an unused variable that caused - compiler warnings on SGI. [Bug 664379] + * library/reg/pkgIndex.tcl: Bump to registry 1.2.1 to account for + * win/configure.in: [Bug 1682211] fix. + * win/makefile.bc: + * win/tclWinReg.c: - * generic/tclLoad.c: Changed the code so that if Tcl_StaticPackage is - called to report the same package as being loaded in two interps, it - shows up in [info loaded {}] in both of them (previously, it didn't - appear in the static package list in the second. - - * tests/load.test Added regression test for the above bug. [Bug - 670042] - - * generic/tclClock.c: Fixed a bug that incorrectly allowed [clock - clicks {}] and [clock clicks -] to be accepted as if they were [clock - clicks -milliseconds]. - - * tests/clock.test: Added regression tests for the above bug. [Bug - 675356] - - * tests/unixNotfy.test: Added cleanup of working files [Bug 675609] - - * doc/Tcl.n: Added headings to the eleven paragraphs, to improve - formatting in the tools that attempt to extract tables of contents - from the manual pages. [Bug 627455] - - * generic/tclClock.c: Expanded mutex protection around the setting of - env(TZ) and the thread-unsafe call to tzset(). [Bug 656660] - -2003-01-31 Don Porter <dgp@users.sourceforge.net> - - * tests/tcltest.test: Cleaned up management of file/directory - creation/deletion to improve "-debug 1" output. [Bug 675614] The - utility [slave] command failed to properly [list]-quote a constructed - [open] command, causing failure when the pathname contained - whitespace. [Bug 678415] - - * tests/main.test: Stopped main.test from deleting existing file. - Test suite should not delete files that already exist. [Bug 675660] - -2003-01-28 Don Porter <dgp@users.sourceforge.net> - - * tests/main.test: Constrain tests that do not work on Windows. [Bug - 674387] - -2003-01-28 Vince Darley <vincentdarley@users.sourceforge.net> - - * generic/tclIOUtil.c: fix to setting modification date in - TclCrossFilesystemCopy. Also added 'panic' in - Tcl_FSGetFileSystemForPath under illegal calling circumstances which - lead to hard-to-track-down bugs. - - * generic/tclTest.c: added test suite code to allow exercising a - vfs-crash-on-exit bug in Tcl's finalization caused by the encodings - being cleaned up before unloading occurs. - * tests/fileSystem.test: added new 'knownBug' test 7.1 to demonstrate - the crash on exit. - -2003-01-28 Mo DeJong <mdejong@users.sourceforge.net> - - * generic/tcl.h: Add TCL_PREFIX_IDENT and TCL_DEBUG_IDENT, used only - by TclpCreateProcess. - * unix/Makefile.in: Define TCL_DBGX. - * win/Makefile.in: Define TCL_DBGX. - * win/tclWinPipe.c (TclpCreateProcess): Check that the Tcl pipe dll - actually exists in the Tcl bin directory and panic if it is not - found. Incorporate TCL_DBGX into the Tcl pipe dll name. This fixes a - really mysterious error that would show up when exec'ing a 16 bit - application under Win95 or Win98 when Tcl was compiled with symbols. - The error seemed to indicate that the executable could not be found, - but it was actually the Tcl pipe dll that could not be found. - -2003-01-26 Mo DeJong <mdejong@users.sourceforge.net> - - * win/README: Update msys+mingw URL to release 6. This version bundles - gcc 3. - -2003-01-26 Mo DeJong <mdejong@users.sourceforge.net> - - * win/configure: Regen. - * win/configure.in: Add test that checks to see if the compiler can - cast to a union type. - * win/tclWinTime.c: Squelch compiler warning about union initializer - by casting to union type when compiling with gcc. - -2003-01-25 Mo DeJong <mdejong@users.sourceforge.net> - - * generic/tclIO.c (Tcl_CutChannel, Tcl_SpliceChannel): Invoke - TclpCutFileChannel and TclpSpliceFileChannel. - * generic/tclInt.h: Declare TclpCutFileChannel and - TclpSpliceFileChannel. - * unix/tclUnixChan.c (FileCloseProc, TclpOpenFileChannel, - (Tcl_MakeFileChannel, TclpCutFileChannel, - (TclpSpliceFileChannel): Implement thread load data cut and splice for - file channels. This avoids an invalid memory ref when compiled with - -DDEPRECATED. - * win/tclWinChan.c (FileCloseProc, TclpCutFileChannel, - (TclpSpliceFileChannel): Implement thread load data cut and splice for - file channels. This avoids an invalid memory ref that was showing up - in the thread extension. +2007-05-11 Pat Thoyts <patthoyts@users.sourceforge.net> -2003-01-25 Mo DeJong <mdejong@users.sourceforge.net> - - * win/tclWin32Dll.c (TclpCheckStackSpace, squelch_warnings): - * win/tclWinChan.c (Tcl_MakeFileChannel, squelch_warnings): - * win/tclWinFCmd.c (DoRenameFile, DoCopyFile, squelch_warnings): - Re-implement inline ASM SEH handlers for gcc. The esp and ebp - registers are now saved on the stack instead of in global variables so - that the code is thread safe. Add additional checks when TCL_MEM_DEBUG - is defined to be sure the values were recovered from the stack - properly. Remove squelch_warnings functions and add a dummy call in - the handler methods to squelch compiler warnings. + * generic/tclInt.h: Removed TclEvalObjEx and TclGetSrcInfoForPc from + tclInt.h now they are in the internal stubs table. -2003-01-25 Mo DeJong <mdejong@users.sourceforge.net> +2007-05-09 Don Porter <dgp@users.sourceforge.net> - * win/configure: - * win/configure.in: Define HAVE_ALLOCA_GCC_INLINE when we detect that - no alloca function is found in malloc.h and we are compiling with - GCC. Remove HAVE_NO_ALLOC_DECL define. - * win/tclWin32Dll.c (TclpCheckStackSpace): Don't define alloca as a - cdecl function. Doing this caused a tricky runtime bug because the - _alloca function expects the size argument to be passed in a register - and not on the stack. To fix this problem, we use inline ASM when - compiling with gcc to invoke _alloca with the size argument loaded - into a register. + * generic/tclInt.h: TclFinalizeThreadAlloc() is always defined, so + make sure it is also always declared (with MODULE_SCOPE). -2003-01-24 Jeff Hobbs <jeffh@ActiveState.com> +2007-05-09 Daniel Steffen <das@users.sourceforge.net> - * win/tclWinDde.c (Dde_Init): clarified use of tsdPtr. - (DdeServerProc): better refcount handling of returnPackagePtr. + * generic/tclInt.h: fix warning when building threaded with -DPURIFY. - * generic/tclEvent.c (Tcl_Finalize): revert finalize change on - 2002-12-04 to correct the issue with extensions that have TSD needing - to finalize that before they are unloaded. This issue needs further - clarification. + * macosx/Tcl.xcodeproj/project.pbxproj: add 'DebugUnthreaded' & + * macosx/Tcl.xcodeproj/default.pbxuser: 'DebugLeaks' configs and env + var settings needed to run the 'leaks' tool. - * tests/unixFCmd.test: only do groups check on unix +2007-05-07 Don Porter <dgp@users.sourceforge.net> -2003-01-24 Vince Darley <vincentdarley@users.sourceforge.net> + [Tcl Bug 1706140] - * generic/tclStringObj.c: proper fixes for Tcl_SetObjLength and - Tcl_AttemptSetObjectLength dealing with string objects with both - pure-unicode and normal internal representations. Previous fix didn't - handle all cases correctly. - * generic/tclIO.c: Add 'Tcl_GetString()' to ensure the object has a - valid 'objPtr->bytes' field before manipulating it directly. + * generic/tclLink.c (LinkTraceProc): Update Tcl_VarTraceProcs so + * generic/tclNamesp.c (Error*Read): they call Tcl_InterpDeleted() + * generic/tclTrace.c (Trace*Proc): for themselves, and do not + * generic/tclUtil.c (TclPrecTraceProc): rely on (frequently buggy) + setting of the TCL_INTERP_DESTROYED flag by the trace core. - This fixes [Bug 635200] and [Bug 671138], but may reduce performance - of Unicode string handling in some cases. A further patch will be - applied to address this, once the code is known to be correct. + * generic/tclVar.c: Update callers of TclCallVarTraces to not pass + in the TCL_INTERP_DESTROYED flag. Also apply filters so that public + routines only pass documented flag values down to lower level routines -2003-01-24 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclTrace.c (TclCallVarTraces): The setting of the + TCL_INTERP_DESTROYED flag is now done entirely within the + TclCallVarTraces routine, the only place it can be done right. - * win/configure: Regen. - * win/configure.in: Add test to see if alloca is undefined in - malloc.h. - * win/tclWin32Dll.c (TclpCheckStackSpace): Rework the SEH exception - handler logic to avoid using the stack since alloca will modify the - stack. This was causing a nasty bug that would set the exception - handler to 0 because it tried to pop the previous exception handler - off the top of the stack. +2007-05-06 Donal K. Fellows <dkf@users.sf.net> -2003-01-23 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclInt.h (ExtraFrameInfo): Create a new mechanism for + * generic/tclCmdIL.c (InfoFrameCmd): conveying what information needs + to be added to the results of [info frame] to replace the hack that + was there before. + * generic/tclProc.c (Tcl_ApplyObjCmd): Use the new mechanism for the + [apply] command, the only part of Tcl itself that needs it (so far). - * doc/lset.n: Fixed fault in return values from lset in documentation - examples [Bug 658463] and tidied up a bit at the same time. + * generic/tclInt.decls (TclEvalObjEx, TclGetSrcInfoForPc): Expose + these two functions through the internal stubs table, necessary for + extensions that need to integrate deeply with TIP#280. -2003-01-21 Joe English <jenglish@users.sourceforge.net> - * doc/namespace.n (namespace inscope): Clarified documentation - [Patch 670110] +2007-05-05 Donal K. Fellows <dkf@users.sf.net> -2003-01-21 Mo DeJong <mdejong@users.sourceforge.net> + * win/tclWinFile.c (TclpGetUserHome): Squelch type-pun warnings in + * win/tclWinInit.c (TclpSetVariables): Win-specific code not found + * win/tclWinReg.c (AppendSystemError): during earlier work on Unix. - * win/configure: Regen. - * win/tcl.m4 (SC_CONFIG_CFLAGS): Set SHLIB_SUFFIX so that - TCL_SHLIB_SUFFIX will be set to a useful value in the generated - tclConfig.sh. Set SHLIB_LD_LIBS to "" or '${LIBS}' based on the - --enable-shared flag. This matches the UNIX implementation. +2007-05-04 Kevin B. Kenny <kennykb@acm.org> -2003-01-18 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclIO.c (TclFinalizeIOSubsystem): Added an initializer to + silence a spurious gcc warning about use of an uninitialized + variable. + * tests/encoding.test: Modified so that encoding tests happen in a + private namespace, to avoid polluting the global one. This problem was + discovered when running the test suite '-singleproc 1 -skip exec.test' + because the 'path' variable in encoding.test conflicted with the one + in io.test. + * tests/io.test: Made more of the working variables private to the + namespace. + +2007-05-02 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclTest.c (SimpleMatchInDirectory): Corrected a refcount + imbalance that affected the filesystem-[147]* tests in the test suite. + Thanks to Don Porter for the patch. [Bug 1710707] + * generic/tclPathObj.c (Tcl_FSJoinPath, Tcl_FSGetNormalizedPath): + Corrected several memory leaks that caused refcount imbalances + resulting in memory leaks on Windows. Thanks to Joe Mistachkin for the + patch. + +2007-05-01 Miguel Sofer <msofer@users.sf.net> + + * generic/tclVar.c (TclPtrSetVar): fixed leak whenever newvaluePtr had + refCount 0 and was used for appending (but not lappending). Thanks to + mistachkin and kbk. [Bug 1710710] + +2007-05-01 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclIO.c (DeleteChannelTable): Made changes so that + DeleteChannelTable tries to close all open channels, not just the + first. [Bug 1710285] + * generic/tclThread.c (TclFinalizeSynchronization): Make sure that TSD + blocks get freed on non-threaded builds. [Bug 1710825] + * tests/utf.test (utf-25.1--utf-25.4): Modified tests to clean up + after the 'testobj' extension to avoid spurious reports of memory + leaks. + +2007-05-01 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCmdMZ.c (STR_MAP): When [string map] has a pure dict map, + a missing Tcl_DictObjDone() call led to a memleak. [Bug 1710709] - * generic/tclCkalloc.c: change %ud to %u as appropriate. +2007-04-30 Daniel Steffen <das@users.sourceforge.net> -2003-01-17 Mo DeJong <mdejong@users.sourceforge.net> + * unix/Makefile.in: add 'tclsh' dependency to install targets that + rely on tclsh, fixes parallel 'make install' from empty build dir. - * win/tclWinDde.c (DdeServerProc): Deallocate the Tcl_Obj returned by - ExecuteRemoteObject if it was not saved in a connection object. +2007-04-30 Andreas Kupries <andreask@gactivestate.com> -2003-01-17 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclIO.c (FixLevelCode): Corrected reference count + mismanagement of newlevel, newcode. Changed to allocate the Tcl_Obj's + as late as possible, and only when actually needed. [Bug 1705778, leak + K29] - * generic/tcl.h: Revert earlier change that defined TCL_WIDE_INT_TYPE - as long long and TCL_LL_MODIFIER as L when compiling with mingw. This - change ended up causing some test case failures when compiling with - mingw. - * generic/tclObj.c (UpdateStringOfWideInt): Describe the warning - generated by mingw and why it needs to be ignored so that someone is - not tempted to "fix" this problem again in the future. +2007-04-30 Kevin B. Kenny <kennykb@acm.org> -2003-01-16 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Corrected + reference count mismanagement on the name of the source file in the + TIP 280 code. [Bug 1705778, leak K02 among other manifestations] - * generic/tclStringObj.c: Tcl_SetObjLength fix for when the object has - a unicode string rep. Fixes [Bug 635200] - * tests/stringObj.test: removed 'knownBug' constraint from test 14.1 - now that this bug is fixed. +2007-04-25 Donal K. Fellows <dkf@users.sf.net> - * generic/tclInt.h: - * generic/tclBasic.c: - * generic/tclCmdMZ.z: - * tests/trace.test: execution and command tracing bug fixes and - cleanup. In particular fixed [Bugs 655645, 615043, 571385] - - fixed some subtle cleanup problems with tracing. This required - replacing Tcl_Preserve/Tcl_Release with a more robust refCount - approach. Solves at least one known crash caused by memory - corruption. - - fixed some confusion in the code between new style traces (Tcl - 8.4) and the very limited 'Tcl_CreateTrace' which existed before. - - made behaviour consistent with documentation (several tests even - contradicted the documentation before). - - fixed some minor error message details - - added a number of new tests - -2003-01-16 Jeff Hobbs <jeffh@ActiveState.com> - - * win/tclWinSerial.c (SerialOutputProc): add casts for bytesWritten to - allow strict compilation (no warnings). - - * tests/winDde.test: - * win/tclWinDde.c (Tcl_DdeObjCmd): Prevent crash when empty service - name is passed to 'dde eval' and goto errorNoResult in request and - poke error cases to free up any allocated data. - -2003-01-16 Mo DeJong <mdejong@users.sourceforge.net> - - * win/tclWin32Dll.c (squelch_warnings): Squelch compiler warnings from - SEH ASM code. - * win/tclWinChan.c (squelch_warnings): Squelch compiler warnings from - SEH ASM code. - * win/tclWinDde.c: Add casts to avoid compiler warnings. Pass pointer - to DWORD instead of int to avoid compiler warnings. - * win/tclWinFCmd.c (squelch_warnings): Add casts and fixup decls to - avoid compiler warnings. Squelch compiler warnings from SEH ASM code. - * win/tclWinFile.c: Add casts and fixup decls to avoid compiler - warnings. Remove unused variable. - * win/tclWinNotify.c: Declare as DWORD instead of int to avoid - compiler warning. - * win/tclWinReg.c: Add casts to avoid compiler warning. Fix assignment - in if expression bug. - * win/tclWinSerial.c: Add casts to avoid compiler warnings. Remove - unused variable. - * win/tclWinSock.c: Add casts and fixup decls to avoid compiler - warnings. - -2003-01-14 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclClock.c (FormatClock): corrected typo that incorrectly - conditionally defined savedTZEnv and savedTimeZone. - -2003-01-13 Mo DeJong <mdejong@users.sourceforge.net> - - Fix mingw build problems and compiler warnings. - - * generic/tcl.h: Add if defined(__MINGW32__) check to code that sets - the TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER. - * generic/tclClock.c (FormatClock): Don't define savedTimeZone and - savedTZEnv if we are not going to use them. - * generic/tclEnv.c: Add cast to avoid warning. - * win/tclWinChan.c: Use DWORD instead of int to avoid compiler warning - * win/tclWinThrd.c: Only define allocLock, allocLockPtr, and dataKey - when TCL_THREADS is defined. This avoid a compiler warning about - unused variables. - -2003-01-12 Mo DeJong <mdejong@users.sourceforge.net> - - * win/README: Update msys + mingw URL, the new release includes the - released 1.0.8 version of msys which includes a number of bug fixes. - -2003-01-12 Mo DeJong <mdejong@users.sourceforge.net> - - * win/configure: Regen. - * win/tcl.m4 (SC_CONFIG_CFLAGS): Pull in addition of shell32.lib to - LIBS_GUI that was added to the Tk tcl.m4 but never made it back into - the Tcl version. - -2003-01-12 Mo DeJong <mdejong@users.sourceforge.net> - - * generic/tcl.h: Skip Tcl's define of CHAR, SHORT, and LONG when - HAVE_WINNT_IGNORE_VOID is defined. This avoids a bunch of compiler - warnings when building with Cygwin or Mingw. - * win/configure: Regen. - * win/configure.in: Define HAVE_WINNT_IGNORE_VOID when we detect a - winnt.h that still defines CHAR, SHORT, and LONG when VOID has already - been defined. - * win/tcl.m4 (SC_LOAD_TCLCONFIG): Subst the TCL_DEFS loaded from - tclConfig.sh so that Tcl defines can make it into the Tk Makefile. - -2003-01-12 Mo DeJong <mdejong@users.sourceforge.net> - - * win/configure: Regen. - * win/configure.in: Check for typedefs like LPFN_ACCEPT in winsock2.h - and define HAVE_NO_LPFN_DECLS if not found. - * win/tclWinSock.c: Define LPFN_* typedefs if HAVE_NO_LPFN_DECLS is - defined. This fixes the build under Mingw and Cygwin, it was broken by - the changes made on 2002-11-26. - -2003-01-10 Vince Darley <vincentdarley@users.sourceforge.net> + *** 8.5a6 TAGGED FOR RELEASE *** - * generic/tclIOUtil.c: - * win/tclWinInt.h: - * win/tclWinInit.c: fix to new WinTcl crash on exit with vfs, - introduced on 2002-12-06. Encodings must be cleaned up after the - filesystem. + * generic/tclProc.c (TclObjInterpProcCore): Only allocate objects for + error message generation when associated with argument names that are + really used. [Bug 1705778, leak K15] - * win/makefile.vc: fix to minor VC++ 5.2 syntax problem +2007-04-25 Kevin B. Kenny <kennykb@acm.org> -2003-01-09 Don Porter <dgp@users.sourceforge.net> + * generic/tclIOUtil.c (Tcl_FSChdir): Changed the memory management so + that the path returned from Tcl_FSGetNativePath is not duplicated + before being stored as the current directory, to avoid a memory leak. + [Bug 1705778, leak K01 among other manifestations] - * generic/tclCompCmds.c (TclCompilerReturnCmd): Corrected off-by-one - problem with recent commit. [Bug 633204] +2007-04-25 Don Porter <dgp@users.sourceforge.net> -2003-01-09 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclCompExpr.c (ParseExpr): Revised to be sure that an + error return doesn't prevent all literals getting placed on the + litList to be returned to the caller for freeing. Corrects some + memleaks. [Bug 1705778, leak K23] - * generic/tclFileName.c: remove unused variable 'macSpecialCase' [Bug - 664749] +2007-04-25 Daniel Steffen <das@users.sourceforge.net> - * generic/tclIOUtil.c: - * generic/tclInt.h: - * unix/tclUnixFile.c: - * mac/tclMacFile.c: - * win/tclWinFile.c: - * win/tclWinInt.h: - * win/tclWin32Dll.c: - * tests/cmdAH.test: fix to non-ascii chars in paths when setting mtime - and atime through 'file (a|m)time $path $time'. [Bug 634151] + * unix/Makefile.in (dist): add macosx/*.xcconfig files to src dist; + copy license.terms to dist macosx dir; fix autoheader bits. -2003-01-08 Don Porter <dgp@users.sourceforge.net> +2007-04-24 Miguel Sofer <msofer@users.sf.net> - * generic/tclExecute.c (TclExprFloatError): Use the IS_NAN macro for - greater clarity of code. + * generic/tclListObj.c: reverting [Patch 738900] (committed on + 2007-04-20). Causes some Tk test breakage of unknown importance, but + the impact of the patch itself is likely to be so small that it does + not warrant investigation at this time. -2003-01-07 Don Porter <dgp@users.sourceforge.net> +2007-04-24 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCompCmds.c (TclCompileReturnCmd): - * tests/compile.test: Corrects failure of bytecompiled [catch - {return}] to have result TCL_RETURN (not TCL_OK) [Bug 633204]. This - patch is a workaround for 8.4.X. A new opcode INST_RETURN is a better - long term solution for 8.5 and later. + * generic/tclDictObj.c (DictKeysCmd): Rewrote so that the lock on the + internal representation of a dict is only set when necessary. [Bug + 1705778, leak K04] + (DictFilterCmd): Added code to drop the lock in the trivial match + case. [Bug 1705778, leak K05] -2003-01-04 David Gravereaux <davygrvy@pobox.com> +2007-04-24 Kevin B. Kenny <kennykb@acm.org> - * win/makefile.vc: - * win/rules.vc: Fixed INSTALLDIR macro problem that blanked itself by - accident causing the install target to put the tree at the root of the - drive built on. Whoops.. + * generic/tclBinary.c: Addressed several code paths where the error + return from the 'binary format' command leaked the result buffer. + * generic/tclListObj.c (TclLsetFlat): Fixed a bug where the new list + under construction was leaked in the error case. [Bug 1705778, leaks + K13 and K14] - Renamed the 'linkexten' option to be 'staticpkg'. Added 'thrdalloc' to - allow the switching _on_ of the thread allocator. Under testing, I - found it not to be benificial under windows for the purpose of the - application I was using it for. It was more important for this app - that resources for tcl threads be returned to the system rather than - saved/moved to the global recycler. Be extra clean or extra fast for - the default threaded build? Let's move to clean and allow it to be - switched on for users who find it benificial for their use of threads. +2007-04-24 Jeff Hobbs <jeffh@ActiveState.com> -2002-12-18 David Gravereaux <davygrvy@pobox.com> + * unix/Makefile.in (dist): add platform library package to src dist - * win/makefile.vc: some uses of xcopy swapped to the @$(CPY) macro. - Reported by Joe Mistachkin <joe@mistachkin.com>. +2007-04-24 Don Porter <dgp@users.sourceforge.net> -2002-12-17 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCompExpr.c (ParseExpr): Memory leak in error case; the + literal Tcl_Obj was not getting freed. [Bug 1705778, leak #1 (new)] - * generic/tclNotify.c (TclFinalizeNotifier, Tcl_SetServiceMode): - (Tcl_ThreadAlert): Check that the stub functions are non-NULL before - calling them. They could be set to NULL by Tcl_SetNotifier. + * generic/tclNamesp.c (Tcl_DeleteNamespace): Corrected flaw in the + flag marking scheme to be sure that global namespaces are freed when + their interp is deleted. [Bug 1705778] -2002-12-16 David Gravereaux <davygrvy@pobox.com> +2007-04-24 Kevin B. Kenny <kennykb@acm.org> - * generic/tclPipe.c (TclCleanupChildren): - * tests/winPipe.test: - * win/tclWinPipe.c (Tcl_WaitPid): - * win/tclWinTest.c: Gave Tcl_WaitPid the ability to return a Win32 - exception code translated into a posix style SIG*. This allows [close] - to report "CHILDKILLED" without the meaning getting lost in a - truncated exit code. In TclCleanupChildren(), TclpGetPid() had to get - moved to before Tcl_WaitPid() as the the handle is removed from the - list taking away the ability to get the process id after the wait is - done. This shouldn't effect the unix implimentaion unless waitpid is - called with a pid of zero, meaning "any". I don't think it is.. + * generic/tclExecute.c (TclExecuteByteCode): Plugged six memory leaks + in bignum arithmetic. + * generic/tclIOCmd.c (Tcl_ReadObjCmd): Plugged a leak of the buffer + object if the physical read returned an error and the bypass area had + no message. + * generic/tclIORChan.c (TclChanCreateObjCmd): Plugged a leak of the + return value from the "initialize" method of a channel handler. + (All of the above under [Bug 1705778]) -2002-12-13 Don Porter <dgp@users.sourceforge.net> +2007-04-23 Daniel Steffen <das@users.sourceforge.net> - * unix/configure.in: Updated configure of CVS snapshots to reflect - * win/configure.in: the 8.4.1.1 patchlevel. + * generic/tclCkalloc.c: fix warnings from gcc build configured with + * generic/tclCompile.c: --enable-64bit --enable-symbols=all. + * generic/tclExecute.c: - * unix/configure: autoconf - * win/configure autoconf + * unix/tclUnixFCmd.c: add workaround for crashing bug in fts_open() + * unix/tclUnixInit.c: without FTS_NOSTAT on 64bit Darwin 8 or earlier. -2002-12-11 Don Porter <dgp@users.sourceforge.net> + * unix/tclLoadDyld.c (TclpLoadMemory): fix (void*) arithmetic. - * generic/tclProc.c (ProcessProcResultCode): Fix failure to propagate - negative return codes up the call stack. [Bug 647307] - * tests/proc.test (proc-6.1): Test for Bug 647307 + * macosx/Tcl-Common.xcconfig: enable more warnings. - * generic/tclParseExpr.c (TclParseInteger): Return 1 for the - string "0x" (recognize leading "0" as an integer). [Bug 648441]. - * tests/parseExpr.test (parseExpr-19.1): Test for Bug 648441. + * macosx/Tcl.xcodeproj/project.pbxproj: add 'DebugMemCompile' build + configuration that calls configure with --enable-symbols=all; override + configure check for __attribute__((__visibility__("hidden"))) in Debug + configuration to restore availability of ZeroLink. -2002-12-09 Jeff Hobbs <jeffh@ActiveState.com> + * macosx/tclMacOSXNotify.c: fix warnings. - * win/tclWinThrd.c (TclpMasterUnlock): - * generic/tclThread.c (TclFinalizeThreadData): TclpMasterUnlock must - exist and be called unconditional of TCL_THREADS. [Bug 651139] + * macosx/tclMacOSXFCmd.c: const fixes. -2002-12-08 David Gravereaux <davygrvy@pobox.com> + * macosx/Tcl-Common.xcconfig: fix whitespace. + * macosx/Tcl-Debug.xcconfig: + * macosx/Tcl-Release.xcconfig: + * macosx/README: - * win/tclWinSock.c (SocketThreadExitHandler, InitSockets): Check that - the tsdPtr is valid before dereferencing as we call it from the exit - handler, too [Bug 650353]. Another WSAStartup() loaded version - comparison byte swap issue fixed. Although 0x0101 byte swapped is - still 0x0101, properly claiming which is major/minor is more correct. + * macosx/GNUmakefile: fix/add copyright and license refs. + * macosx/tclMacOSXBundle.c: + * macosx/Tcl-Info.plist.in: + * macosx/Tcl.xcode/project.pbxproj: + * macosx/Tcl.xcodeproj/project.pbxproj: -2002-12-06 Jeff Hobbs <jeffh@ActiveState.com> + * unix/configure.in: install license.terms into Tcl.framework. + * unix/configure: autoconf-2.59 - * generic/tclStubInit.c: regen - * generic/tclIntPlatDecls.h: regen - * generic/tclInt.decls: added TclWinResetInterface +2007-04-23 Don Porter <dgp@users.sourceforge.net> + + * generic/tclVar.c (UnsetVarStruct): Make sure the + TCL_INTERP_DESTROYED flags gets passed to unset trace routines so they + can respond appropriately. [Bug 1705778, leak #9] + +2007-04-23 Miguel Sofer <msofer@users.sf.net> + + * generic/tclCompile.c (TclFreeCompileEnv): Tip 280's new field + extCmdMapPtr was not being freed. [Bug 1705778, leak #1] + +2007-04-23 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclCompCmds.c (TclCompileUpvarCmd): Plugged a memory leak in + 'upvar' when compiling (a) upvar outside a proc, (b) upvar with a + syntax error, or (c) upvar where the frame index is not known at + compile time. + * generic/tclCompExpr.c (ParseExpr): Plugged a memory leak when + parsing expressions that contain syntax errors. + * generic/tclEnv.c (ReplaceString): Clear memory correctly when + growing the cache to avoid reads of uninitialised data. + * generic/tclIORChan.c (TclChanCreateObjCmd, FreeReflectedChannel): + Plugged two memory leaks. + * generic/tclStrToD.c (AccumulateDecimalDigit): Fixed a mistake where + we'd run beyond the end of the 'pow10_wide' array if a number begins + with a string of more than 'maxpow10_wide' zeroes. + * generic/tclTest.c (Testregexpobjcmd): Removed an invalid access + beyond the end of 'objv' in 'testregexp -about'. + All of these issues reported under [Bug 1705778] - detected with the + existing test suite, no new regression tests required. + +2007-04-22 Miguel Sofer <msofer@users.sf.net> + + * generic/tclVar.c (TclDeleteNamespaceVars): fixed access to freed + memory detected by valgrind: Tcl_GetCurrentNamespace was being + called after freeing root CallFrame (on interp deletion). + +2007-04-20 Miguel Sofer <msofer@users.sf.net> + + * generic/tclListObj.c (SetListFromAny): avoid discarding internal + reps of objects converted to singleton lists. [Patch 738900] + +2007-04-20 Kevin B. Kenny <kennykb@acm.org> + + * doc/clock.n: Corrected a silly error (transposed 'uppercase' and + 'lowercase' in clock.n. [Bug 1656002] + Clarified that [clock scan] does not recognize a locale's alternative + calendar. + Deleted an entirely superfluous (and also incorrect) remark about the + effect of Daylight Saving Time on relative times in [clock scan]. [Bug + 1582951] + * library/clock.tcl: Corrected an error in skipping over the %Ey field + on input. + * library/msgs/ja.msg: + * tools/loadICU.tcl: Corrected several localisation faults in the + Japanese locale (most notably, incorrect dates for the Emperors' + eras). [Bug 1637471]. Many thanks to SourceForge user 'nyademo' for + pointing this out and developing a fix. + * generic/tclPathObj.c: Corrected a 'const'ness fault that caused + bitter complaints from MSVC. + * tests/clock.test (clock-40.1, clock-58.1, clock-59.1): Corrected a + test case that depended on ":localtime" being able to handle dates + prior to the Posix epoch. [Bug 1618445] Added a test case for the + dates of the Japanese emperors. [Bug 1637471] Added a regression test + for military time zone input conversion. [Bug 1586828] + * generic/tclGetDate.y (MilitaryTable): Fixed an ancient bug where the + military NZA time zones had the signs reversed. [Bug 1586828] + * generic/tclDate.c: Regenerated. + * doc/Notifier.3: Documented Tcl_SetNotifier and Tcl_ServiceModeHook. + Quite against my better judgment. [Bug 414933] + * generic/tclBasic.c, generic/tclCkalloc.c, generic/tclClock.c: + * generic/tclCmdIL.c, generic/tclCmdMZ.c, generic/tclFCmd.c: + * generic/tclFileName.c, generic/tclInterp.c, generic/tclIO.c: + * generic/tclIOUtil.c, generic/tclNamesp.c, generic/tclObj.c: + * generic/tclPathObj.c, generic/tclPipe.c, generic/tclPkg.c: + * generic/tclResult.c, generic/tclTest.c, generic/tclTestObj.c: + * generic/tclVar.c, unix/tclUnixChan.c, unix/tclUnixTest.c: + * win/tclWinLoad.c, win/tclWinSerial.c: Replaced commas in varargs + with string concatenation where possible. [Patch 1515234] + * library/tzdata/America/Tegucigalpa: + * library/tzdata/Asia/Damascus: Olson's tzdata 2007e. + +2007-04-19 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * generic/regcomp.c, generic/regc_cvec.c, generic/regc_lex.c, + * generic/regc_locale.c: Improve the const-correctness of the RE + compiler. - * win/tclWin32Dll.c (TclWinResetInterfaces): - * win/tclWinInit.c (TclpSetInitialEncodings, WinEncodingsCleanup): - add exit handler that resets the encoding information to a state where - we can reuse Tcl. Following these changes, it is possible to reuse Tcl - (following Tcl_FindExecutable or Tcl_CreateInterp) following a - Tcl_Finalize. +2007-04-18 Miguel Sofer <msofer@users.sf.net> - * generic/tclIOUtil.c (TclFinalizeFilesystem): reset statics to their - original values on finalize to allow reuse of the library. + * generic/tclExecute.c (INST_LSHIFT): fixed a mistake introduced in + version 1.266 ('=' became '=='), which effectively turned the block + that handles native shifts into dead code. This explains why the + testsuite did not pick this mistake. Rewrote to make the intention + clear. -2002-12-04 David Gravereaux <davygrvy@pobox.com> + * generic/tclInt.h (TclDecrRefCount): change the order of the + branches, use empty 'if ; else' to handle use in unbraced outer + if/else conditions (as already done in tcl.h) - * win/tclWinPipe.c: reverted back to -r1.27 due to numerous test - failures that need to be resolved first. The idea was good, but the - details aren't. + * generic/tclExecute.c: slight changes in Tcl_Obj management. -2002-12-04 David Gravereaux <davygrvy@pobox.com> +2007-04-17 Kevin B. Kenny <kennykb@acm.org> - * win/tclWinPipe.c (Tcl_WaitPid): When a process exits with an - exception, pass this notice on to the caller with a SIG* code rather - than truncating the exit code and missing the meaning. This allows - TclCleanupChildren() to report "CHILDKILLED". + * library/clock.tcl: Fixed the naming of + ::tcl::clock::ReadZoneinfoFile because (yoicks!) it was in the global + namespace. + * doc/clock.n: Clarified the cases in which legacy time zone is + recognized. [Bug 1656002] - This has a different behavior than unix in that closing the read pipe - to a process sends the SIGPIPE signal which is returned as a SIGPIPE - exit status. On windows, we send the process a CTRL_BREAK_EVENT and - get back a CONTROL_C_EXIT which is documented to mean a SIGINT which - seems wrong as a system, but is the correct exit status. +2007-04-17 Miguel Sofer <msofer@users.sf.net> -2002-12-04 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclExecute.c: fixed checkInterp logic [Bug 1702212] - * generic/tclIOUtil.c: fix to redirected 'load' in virtual filesystem - for some Unix systems. +2007-04-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclEvent.c: the filesystem must be cleaned up before the - encoding subsystem because it needs access to encodings. Fixes crash - on exit observed in embedded applications. + * various (including generic/tclTest.c): Complete the purge of K&R + function definitions from manually-written code. - * generic/tclTestObj.c: patch omitted from previous change of - 2002-11-13 +2007-04-15 Kevin B. Kenny <kennykb@acm.org> -2002-12-03 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCompCmds.c: added a cast to silence a compiler error on + VC2005. + * library/clock.tcl: Restored unique-prefix matching of keywords on + the [clock] command. [Bug 1690041] + * tests/clock.test: Added rudimentary test cases for unique-prefix + matching of keywords. - * generic/tclStubLib.c (Tcl_InitStubs): prevent the cached check of - tclStubsPtr to allow for repeated load/unload of the Tcl dll by - hosting apps. [Bug 615304] +2007-04-14 Miguel Sofer <msofer@users.sf.net> -2002-12-03 David Gravereaux <davygrvy@pobox.com> + * generic/tclExecute.c: removed some code at INST_EXPAND_SKTOP that + duplicates functionality already present at checkForCatch. - * win/tclAppInit.c (sigHandler): Protect from trying to close a NULL - handle. +2007-04-12 Miguel Sofer <msofer@users.sf.net> - * win/tclWinPipe.c (PipeClose2Proc, TclpCreateProcess): Send a real - Win32 signal (CTRL_C_EVENT) when the read channel is brought down to - alert the child to close on its side. Start the process with - CREATE_NEW_PROCESS_GROUP to allow the ability to send these signals. - The following test case now brings down the child without the use of - an external [kill] command. + * generic/tclExecute.c: new macros OBJ_AT_TOS, OBJ_UNDER_TOS, + OBJ_AT_DEPTH(n) and CURR_DEPTH that remove all direct references to + tosPtr from TEBC (after initialisation and the code at the label + cleanupV_pushObjResultPtr). - % set p [open "|[info name]" w+] - file8d5380 - % pid $p - 2876 - % close $p <- now doesn't block in Tcl_WaitPid() - % +2007-04-11 Miguel Sofer <msofer@users.sf.net> - * win/tclWinPipe.c (PipeClose2Proc): Changed CTRL_C_EVENT to - CTRL_BREAK_EVENT as it can't be ignored by the child and proved to - work on [open "|netstat 1" w+] where CTRL_C_EVENT didn't. + * generic/tclCompCmds.c: moved all exceptDepth management to the + macros - the decreasing half was managed by hand. -2002-11-27 David Gravereaux <davygrvy@pobox.com> +2007-04-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * win/tclWinPort.h: Don't turn off winsock prototypes! TclX didn't - like it. Even though the core doesn't use the prototypes, do offer - them. + * generic/tclInt.h (TclNewLiteralStringObj): New macro to make + allocating literal string objects (i.e. objects whose value is a + constant string) easier and more efficient, by allowing the omission + of the length argument. Based on [Patch 1529526] (afredd) + * generic/*.c: Make use of this (in many files). - * win/tclWinSock.c: Removed shutdown() from the function table as it - wasn't referenced anywhere and cleaned-up some casting that that - wasn't needed. +2007-04-08 Miguel Sofer <msofer@users.sf.net> - * win/tclWinSock.c: WSAStartup() loaded version comparison error which - resulted in 2.0 looking less than 1.1. + * generic/tclCompile (tclInstructionTable): Fixed bugs in description + of dict instructions. - * win/tclWinChan.c (Tcl_MakeFileChannel): return of DuplicateHandle() - incorrectly used [Bug 618852]. +2007-04-07 Miguel Sofer <msofer@users.sf.net> -2002-11-26 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCompile (tclInstructionTable): Fixed bug in description + of INST_START_COMMAND. - * generic/tclEncoding.c (TclFinalizeEncodingSubsystem): properly - cleanup all encodings by using Tcl_FirstHashEntry in the while loop. + * generic/tclExecute.c (TEBC): Small code reduction. - * unix/Makefile.in (valgrind): add simple valgrind target +2007-04-06 Miguel Sofer <msofer@users.sf.net> - * tests/exec.test: unset path var to allow singleproc testing + * generic/tclExecute.c (TEBC): + * generic/tclNamespace.c (NsEnsembleImplementationCmd): + * generic/tclProc.c (InitCompiledLocals, ObjInterpProcEx) + (TclObjInterpProcCore, ProcCompileProc): Code reordering to reduce + branching and improve branch prediction (assume that forward branches + are typically not taken). - * generic/tclInterp.c (AliasCreate): preserve/release interps to - prevent possible FMR error in bad alias cases. +2007-04-03 Miguel Sofer <msofer@users.sf.net> -2002-11-26 David Gravereaux <davygrvy@pobox.com> + * generic/tclExecute.c: INST_INVOKE optimisation. [Patch 1693802] - * win/tclWinPort.h: - * win/tclWinSock.c: This patch does two things: +2007-04-03 Don Porter <dgp@users.sourceforge.net> - 1) Cleans-up the winsock typedefs by using the typedefs provided by - winsock2.h. This has no effect on how winsock is initialized; just - makes the source code easier to read. [Patch 561305, 561301] + * generic/tclNamesp.c: Revised ErrorCodeRead and ErrorInfoRead trace + routines so they guarantee the ::errorCode and ::errorInfo variable + always appear to exist. [Bug 1693252] - 2) Revamps how the socket message handler thread is brought up and - down to allow for cleaner exits without the use of TerminateThread(). - TerminateThread is evil. No attempt has been made to resolve [Bug - 593810] which may need a new channel driver version for adding a - registering function within the transfered thread to init the handler - thread. IOW, initialization of the TSD structure is getting bypassed - through the thread extension's [thread::transfer] command. +2007-04-03 Miguel Sofer <msofer@users.sf.net> -2002-11-26 David Gravereaux <davygrvy@pobox.com> + * generic/tclInt.decls: Moved TclGetNamespaceFromObj() to the + * generic/tclInt.h: internal stubs table; regen. + * generic/tclIntDecls.h: + * generic/tclStubInit.c: - * win/tclWinConsole.c: - * win/tclWinPipe.c: - * win/tclWinSerial.c: - * win/tclWinSock.c: - * win/tclWinThrd.c: - * win/tclWinTime.c: General cleanup of all worker threads used by the - channel drivers. Eliminates the normal case where the worker thread is - terminated ('cept the winsock one). Instead, use kernel events to - signal a clean exit. Only when the worker thread is blocked on an I/O - call is the thread terminated. Essentially, this makes all other - channel worker threads behave like the PipeReaderThread() function for - it's cleaner exit behavior. This appears to fix [Bug 597924] but needs - 3rd party confirmation to close the issue. +2007-04-02 Miguel Sofer <msofer@users.sf.net> -2002-11-26 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclBasic.c: Added bytecode compilers for the variable + * generic/tclCompCmds.c: linking commands: 'global', 'variable', + * generic/tclCompile.h: 'upvar', 'namespace upvar' [Patch 1688593] + * generic/tclExecute.c: + * generic/tclInt.h: + * generic/tclVar.c: - * win/README: Update msys build env URL. This release #4 build both - tcl and tk without problems. +2007-04-02 Don Porter <dgp@users.sourceforge.net> -2002-11-22 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclBasic.c: Replace arrays on the C stack and ckalloc + * generic/tclExecute.c: calls with TclStackAlloc calls to use memory + * generic/tclFCmd.c: on Tcl's evaluation stack. + * generic/tclFileName.c: + * generic/tclIOCmd.c: + * generic/tclIndexObj.c: + * generic/tclInterp.c: + * generic/tclNamesp.c: + * generic/tclTrace.c: + * unix/tclUnixPipe.c: - * library/init.tcl: code cleanup to reduce use of - * library/opt/optparse.tcl: string compare +2007-04-01 Donal K. Fellows <dkf@users.sf.net> - * tests/interp.test: interp-14.4 - * generic/tclInterp.c (TclPreventAliasLoop): prevent seg fault when - creating an alias command over the interp name. [Bug 641195] + * generic/tclCompile.c (TclCompileScript, TclPrintInstruction): + * generic/tclExecute.c (TclExecuteByteCode): Changed the definition of + INST_START_CMD so that it knows how many commands start at the current + location. This makes the interpreter command counter correct without + requiring a large number of instructions to be issued. (See my change + from 2007-01-19 for what triggered this.) -2002-11-18 Jeff Hobbs <jeffh@ActiveState.com> +2007-03-30 Don Porter <dgp@users.sourceforge.net> - * generic/tclUtil.c (SetEndOffsetFromAny): handle integer offset - after the "end-" prefix. + * generic/tclCompile.c: + * generic/tclCompExpr.c: + * generic/tclCompCmds.c: Replace arrays on the C stack and + ckalloc calls with TclStackAlloc calls to use memory on Tcl's + evaluation stack. - * generic/get.test: - * generic/string.test: - * generic/tclObj.c (SetIntFromAny, SetWideIntFromAny): - * generic/tclGet.c (TclGetLong, Tcl_GetInt): simplify sign handling - before calling strtoul(l). [Bug 634856] + * generic/tclCmdMZ.c: Revised [string to* $s $first $last] + implementation to reduce number of allocs/copies. -2002-11-18 David Gravereaux <davygrvy@pobox.com> + * tests/string.test: More [string reverse] tests. - * win/tclWinThrd.c (Tcl_CreateThread/TclpThreadExit): Fixed improper - compiler macros that missed the VC++ compiler. This resulted in VC++ - builds using CreateThread()/ExitThread() in place of the proper - _beginthreadex()/_endthreadex(). This was a large error and am - surprised I missed seeing it earlier. +2007-03-30 Miguel Sofer <msofer@users.sf.net> -2002-11-13 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c: optimise the lookup of elements of indexed + arrays. - * generic/regexpComp.test: added tests 22.* - * generic/tclCompCmds.c (TclCompileRegexpCmd): add left and right - anchoring (^ and $) recognition and check starting or ending .* to - extend the number of REs that can be compiled to string match or - string equal. +2007-03-29 Miguel Sofer <msofer@users.sf.net> -2002-11-13 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclProc.c (Tcl_ApplyObjCmd): + * tests/apply.test (9.3): Fixed Tcl_Obj leak on error return; an + unneeded ref to lambdaPtr was being set and not released on an error + return path. - * generic/tclCmdMZ.c: - * tests/trace.test: applied patch from Hemang Levana to fix [Bug - 615043] in execution traces with 'return -code error'. +2007-03-28 Don Porter <dgp@users.sourceforge.net> - * generic/tclTestObj.c: - * tests/stringObj.test: added 'knownBug' test for [Bug 635200] - * generic/tclStringObj.c: corrected typos in comments + * generic/tclCmdMZ.c (STR_REVERSE): Implement the actual [string + reverse] command in terms of the new TclStringObjReverse() routine. - * generic/tclFileName.c: - * tests/fileName.test: applied patch for bug reported against tclvfs - concerning handling of Windows serial ports like 'com1', 'lpt3' by the - virtual filesystem code. + * generic/tclInt.h (TclStringObjReverse): New internal routine + * generic/tclStringObj.c (TclStringObjReverse): that implements the + [string reverse] operation, making use of knowledge/surgery of the + String intrep to minimize the number of allocs and copies needed to do + the job. - * doc/RegExp.3: clarification of the 'extendMatch' return values. +2007-03-27 Don Porter <dgp@users.sourceforge.net> -2002-11-11 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCmdMZ.c (STR_MAP): Replace ckalloc calls with + TclStackAlloc calls. - * generic/tclUtil.c (Tcl_Backslash): use TclUtfToUniChar. - (Tcl_StringCaseMatch): use TclUtfToUniChar and add further - optimizations for the one-byte/char case. +2007-03-24 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * generic/tclUtf.c: make use of TclUtfToUniChar macro throughout the - functions, and add extra optimization to Tcl_NumUtfChars for - one-byte/char case. + * win/tclWinThrd.c: Thread exit handler marks the current thread as + un-initialized. This allows exit handlers that are registered later to + re-initialize this subsystem in case they need to use some sync + primitives (cond variables) from this file again. - * generic/tclVar.c (DisposeTraceResult, CallVarTraces): add proper - static declarations. +2007-03-23 Miguel Sofer <msofer@users.sf.net> - * generic/tclStringObj.c (Tcl_GetCharLength): optimize for the ascii - char case. - (Tcl_GetUniChar): remove unnecessary use of Tcl_UtfToUniChar. - (FillUnicodeRep): Use TclUtfToUniChar. + * generic/tclBasic.c (DeleteInterpProc): pop the root frame pointer + before deleting the global namespace [Bug 1658572] - * generic/tclHash.c (HashStringKey): move string++ lower to save an - instruction. +2007-03-23 Kevin B. Kenny <kennykb@acm.org> - * generic/tclExecute.c (TclExecuteByteCode): improve INST_STR_CMP to - use memcmp in the one-byte/char case, also use direct index for - INST_STR_INDEX in that case. + * win/Makefile.in: Added code to keep a Cygwin path name from leaking + into LIBRARY_DIR when doing 'make test' or 'make runtest'. - * generic/tclEncoding.c (UtfToUtfProc, UtfToUnicodeProc): - (TableFromUtfProc, EscapeFromUtfProc): Use TclUtfToUniChar. - (UnicodeToUtfProc, TableToUtfProc): add 1-byte char optimizations - for Tcl_UniCharToUtf call. These improve encoded channel conversion - speeds by up to 20%. +2007-03-22 Don Porter <dgp@users.sourceforge.net> - * tests/split.test: added 1-char string split tests - * generic/tclCmdMZ.c (Tcl_SplitObjCmd): Use TclUtfToUniChar. Also - added a special case for single-ascii-char splits. - (Tcl_StringObjCmd): Use TclUtfToUniChar. For STR_RANGE, support - getting ranges of ByteArrays (reverts change from 2000-05-26). - (TraceExecutionProc) add proper static declaration. + * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Replaced arrays on the + C stack and ckalloc calls with TclStackAlloc calls to use memory on + Tcl's evaluation stack. - * generic/tclInt.h: add macro version of Tcl_UtfToUniChar - (TclUtfToUniChar) that does the one-byte utf-char check without - calling Tcl_UtfToUniChar, for use by the core. This brings notable - speedups for primarily ascii string handling. + * generic/tclExecute.c: Revised GrowEvaluationStack to take an + argument specifying the growth required by the caller, so that a + single reallocation / copy is the most that will ever be needed even + when required growth is large. - * generic/tcl.h (TCL_PATCH_LEVEL): bump to 8.4.1.1 for patchlevel - only. This interim number will only be reflected by [info patchlevel] +2007-03-21 Don Porter <dgp@users.sourceforge.net> -2002-11-11 Kevin Kenny <kennykb@acm.org> + * generic/tclExecute.c: More ckalloc -> ckrealloc conversions. + * generic/tclLiteral.c: + * generic/tclNamesp.c: + * generic/tclParse.c: + * generic/tclPreserve.c: + * generic/tclStringObj.c: + * generic/tclUtil.c: - * doc/Tcl.n: Corrected indentation of the new language. Oops. +2007-03-20 Don Porter <dgp@users.sourceforge.net> -2002-11-10 Kevin Kenny <kennykb@acm.org> + * generic/tclEnv.c: Some more ckalloc -> ckrealloc replacements. + * generic/tclLink.c: - * doc/Tcl.n: Added language to the Endekalogue to make it clear that - substitutions always take place from left to right. [Bug 635644] +2007-03-20 Kevin B. Kenny <kennykb@acm.org> -2002-11-06 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclDate.c: Rebuilt, despite Donal Fellows's comment when + committing it that no rebuild was required. + * generic/tclGetDate.y: According to Donal Fellows, "Introduce modern + formatting standards; no need for rebuild of tclDate.c." - * changes: Note TclInExit TclInThreadExit changes. - * generic/tclEvent.c (TclInExit, TclInThreadExit): - Split out functionality of TclInExit to make it clear which one should - be called in each situation. - * generic/tclInt.decls: Declare TclInThreadExit. - * generic/tclIntDecls.h: Regen. - * generic/tclStubInit.c: Regen. - * mac/tclMacChan.c (StdIOClose): - * unix/tclUnixChan.c (FileCloseProc): - * win/tclWinChan.c (FileCloseProc): - * win/tclWinConsole.c (ConsoleCloseProc): - * win/tclWinPipe.c (TclpCloseFile): - * win/tclWinSerial.c (SerialCloseProc): Invoke the new TclInThreadExit - method instead of TclInExit. + * library/tzdata/America/Cambridge_Bay: + * library/tzdata/America/Havana: + * library/tzdata/America/Inuvik: + * library/tzdata/America/Iqaluit: + * library/tzdata/America/Pangnirtung: + * library/tzdata/America/Rankin_Inlet: + * library/tzdata/America/Resolute: + * library/tzdata/America/Yellowknife: + * library/tzdata/Asia/Choibalsan: + * library/tzdata/Asia/Dili: + * library/tzdata/Asia/Hovd: + * library/tzdata/Asia/Jakarta: + * library/tzdata/Asia/Jayapura: + * library/tzdata/Asia/Makassar: + * library/tzdata/Asia/Pontianak: + * library/tzdata/Asia/Ulaanbaatar: + * library/tzdata/Europe/Istanbul: Upgraded to Olson's tzdata2007d. -2002-11-06 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclListObj.c (TclLsetList, TclLsetFlat): + * tests/lset.test: Changes to deal with shared internal representation + for lists passed to the [lset] command. Thanks to Don Porter for + fixing this issue. [Bug 1677512] - * unix/configure: Regen. - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Generate a fatal configure error if - no ar program can be found on the path. [Bug 582039] - * win/configure: Regen. - * win/configure.in: Check that AR, RANLIB, and RC are found on the - path when building with gcc. +2007-03-19 Don Porter <dgp@users.sourceforge.net> -2002-11-03 David Gravereaux <davygrvy@pobox.com> + * generic/tclCompile.c: Revise the various expansion routines for + CompileEnv fields to use ckrealloc() where appropriate. - * win/tclAppInit.c: Calls Registry_Init() and Dde_Init() when - STATIC_BUILD and TCL_USE_STATIC_PACKAGES macros are set. + * generic/tclBinary.c (Tcl_SetByteArrayLength): Replaced ckalloc() / + memcpy() sequence with ckrealloc() call. - * win/makefile.vc: - * win/rules.vc: linkexten option now sets the TCL_USE_STATIC_PACKAGES - macro which also adds the registry and dde object files to the link - of the shell. [Patch 479697] Also factored some additional macros - that will be helpful for extension authors. Version grepping of tcl.h - will need to be added to complete this. + * generic/tclBasic.c (Tcl_CreateMathFunc): Replaced some calls to + * generic/tclEvent.c (Tcl_CreateThread): Tcl_Alloc() with calls + * generic/tclObj.c (UpdateStringOfBignum): to ckalloc(), which + * unix/tclUnixTime.c (SetTZIfNecessary): better supports memory + * win/tclAppInit.c (setargv): debugging. - * win/buildall.vc.bat: Added more descriptive commentary. +2007-03-19 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-11-01 David Gravereaux <davygrvy@pobox.com> + * doc/regsub.n: Corrected example so that it doesn't recommend + potentially unsafe practice. Many thanks to Konstantin Kushnir + <chpock@gmail.com> for reporting this. - * win/tclWinReg.c: Changed the Tcl_PkgProvide() line to declare the - registry extension at version 1.1 from 1.0. +2007-03-17 Kevin B. Kenny <kennykb@acm.org> -2002-10-31 Andreas Kupries <andreask@activestate.com> + * win/tclWinReg.c (GetKeyNames): Size the buffer for enumerating key + names correctly, so that Unicode names exceeding 127 chars can be + retrieved without crashing. [Bug 1682211] + * tests/registry.test (registry-4.9): Added test case for the above + bug. - * library/word.tcl: Changed $tcl_platform to $::tcl_platform to avoid - possible scope trouble. +2007-03-15 Mo DeJong <mdejong@users.sourceforge.net> -2002-10-29 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclIOUtil.c (Tcl_Stat): Reimplement workaround to avoid gcc + warning by using local variables. When the macro argument is of type + long long instead of long, the incorrect warning is not generated. - * win/tclWinInt.h: - * win/tclWin32Dll.c: added comments about certain NULL function - pointers which will be filled in when Tcl_FindExecutable is called, so - that users don't report invalid bugs on this topic. (No code changes - at all). +2007-03-15 Mo DeJong <mdejong@users.sourceforge.net> -2002-10-29 Daniel Steffen <das@users.sourceforge.net> + * win/Makefile.in: Fully qualify LIBRARY_DIR so that `make test` does + not depend on working dir. - * unix/tclLoadDyld.c (TclpFindSymbol): pass all dyld error messages - upstream [Bug 627546]. +2007-03-15 Mo DeJong <mdejong@users.sourceforge.net> -2002-10-28 Andreas Kupries <andreask@activestate.com> + * tests/parse.test: Add two backslash newline parse tests. - * library/dde/pkgIndex.tcl: - * library/reg/pkgIndex.tcl: Changed the hardwired debug suffix (d) to - the correct suffix (g). +2007-03-12 Don Porter <dgp@users.sourceforge.net> -2002-10-28 Don Porter <dgp@users.sourceforge.net> + * generic/tclExecute.c (INST_FOREACH_STEP4): Make private copy of + * tests/foreach.test (foreach-10.1): value list to be assigned to + variables so that shimmering of that list doesn't lead to invalid + pointers. [Bug 1671087] - * library/auto.tcl: Converted the Mac-specific [package unknown] - * library/init.tcl: behavior to use a chaining mechanism to extend - * library/package.tcl: the default [tclPkgUnknown]. [Bug 627660] - * library/tclIndex: [Patch 624509] (steffen) + * generic/tclEvent.c (HandleBgErrors): Make efficient private copy + * tests/event.test (event-5.3): of the command prefix for the interp's + background error handling command to avoid panics due to pointers to + memory invalid after shimmering. [Bug 1670155] -2002-10-26 David Gravereaux <davygrvy@pobox.com> + * generic/tclNamesp.c (NsEnsembleImplementationCmd): Make efficient + * tests/namespace.test (namespace-42.8): private copy of the + command prefix as we invoke the command appropriate to a particular + subcommand of a particular ensemble to avoid panic due to shimmering + of the List intrep. [Bug 1670091] - * win/makefile.vc: xcopy on NT 4.0 doesn't support the /Y switch - (overwrite). Added logic to handle this. [Bug 618019] + * generic/tclVar.c (TclArraySet): Make efficient private copy of + * tests/var.test (var-17.1): the "list" argument to [array set] to + avoid crash due to shimmering invalidating pointers. [Bug 1669489] -2002-10-23 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-03-12 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * generic/tclInt.h: Removed definitions of obsolete HistoryEvent and - HistoryRev structures (the history mechanism has been written in Tcl - for some time now). + * generic/tclCmdIL.c (Tcl_LsortObjCmd): Fix problems with declaration + positioning and memory leaks. [Bug 1679072] -2002-10-22 Jeff Hobbs <jeffh@ActiveState.com> +2007-03-11 Donal K. Fellows <dkf@users.sf.net> - *** 8.4.1 TAGGED FOR RELEASE *** + * generic/tclCmdIL.c (Tcl_LreverseObjCmd): Ensure that a list is + correctly reversed even if its internal representation is shared + without the object itself being shared. [Bug 1675044] - * changes: updated for 8.4.1 release +2007-03-10 Miguel Sofer <msofer@users.sf.net> - * win/Makefile.in: removed @MEM_DEBUG_FLAGS@ subst. - * win/configure: regen - * win/configure.in: removed SC_ENABLE_MEMDEBUG call - * win/tcl.m4: replaced SC_ENABLE_MEMDEBUG with a more intelligent - SC_ENABLE_SYMBOLS that takes yes|no|mem|compile|all as options now. + * generic/tclCmdIL (Tcl_LsortObjCmd): changed fix to [Bug 1675116] to + use the cheaper TclListObjCopy() instead of Tcl_DuplicateObj(). -2002-10-22 Daniel Steffen <das@users.sourceforge.net> +2007-03-09 Andreas Kupries <andreask@activestate.com> - * library/auto.tcl (tcl_findLibrary): - * library/package.tcl (tclPkgUnknown): on macosx, search inside the - Resources/Scripts subdirectory of any potential package directory - * macosx/Tcl.pbproj/project.pbxproj: add standard Frameworks dirs to - TCL_PACKAGE_PATH make argument. - * unix/tclUnixInit.c (TclpSetVariables): on macosx, add embedded - framework dirs to tcl_pkgPath: @executable_path/../Frameworks and - @executable_path/../PrivateFrameworks (if they exist), as well as the - dirs in DYLD_FRAMEWORK_PATH (if set). [Patch 624509] use standard - MAXPATHLEN instead of literal 1024 + * library/platform/shell.tcl: Made more robust if an older platform + * library/platform/pkgIndex.tcl: package is present in the inspected + * unix/Makefile.in: shell. Package forget it to prevent errors. Bumped + * win/Makefile.in: package version to 1.1.3, and updated the Makefiles + installing it as Tcl Module. -2002-10-22 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-03-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * doc/StringObj.3, doc/Object.3: Documented that Tcl_Obj's - standard string form is a modified UTF-8; apparently, this was not - mentioned anywhere in the main docs, and lead to [Bug 624919]. + * generic/tclCmdIL.c (Tcl_LsortObjCmd): Handle tricky case with loss + * tests/cmdIL.test (cmdIL-1.29): of list rep during sorting due + to shimmering. [Bug 1675116] -2002-10-21 Daniel Steffen <das@users.sourceforge.net> +2007-03-09 Kevin B. Kenny <kennykb@acm.org> - * macosx/Tcl.pbproj/project.pbxproj: bumped version to 8.4.1 - * generic/tcl.h: Added reminder comment to edit - macosx/Tcl.pbproj/project.pbxproj when version number changes. + * library/clock.tcl (ReadZoneinfoFile): Added Y2038 compliance to the + code for version-2 'zoneinfo' files. + * tests/clock.test (clock-56.3): Added a test case for Y2038 and + 'zoneinfo'. Modified test initialisation to use the + 'loadTestedCommands' function of tcltest to bring in the correct path + for the registry library. -2002-10-18 Jeff Hobbs <jeffh@ActiveState.com> +2007-03-08 Don Porter <dgp@users.sourceforge.net> - * library/reg/pkgIndex.tcl: - * win/configure: - * win/configure.in: - * win/Makefile.in: - * win/makefile.vc: - * win/makefile.bc: Updated to reg1.1 + * generic/tclListObj.c (TclLsetList): Rewrite so that the routine + itself does not do any direct intrep surgery. Better isolates those + things into the implementation of the "list" Tcl_ObjType. - * doc/registry.n: Added support for broadcasting changes to the - * tests/registry.test: registry Environment. Noted proper code in ths - * win/tclWinReg.c: docs. [Patch 625453] +2007-03-08 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * unix/Makefile.in (dist): add any mac/tcl*.sea.hqx files + * generic/tclListObj.c (TclLindexList, TclLindexFlat): Moved these + functions to tclListObj.c from tclCmdIL.c to mirror the way that the + equivalent functions for [lset]'s guts are arranged. -2002-10-17 Don Porter <dgp@users.sourceforge.net> +2007-03-08 Kevin B. Kenny <kennykb@acm.org> - * generic/tclVar.c: Fixed code that check for proper # of args to - * tests/var.test: [array names]. Added test. [Bug 624755] + * library/clock.tcl: Further tweaks to the Windows time zone table + (restoring missing Mexican time zones). Added rudimentary handling of + version-2 'zoneinfo' files. Update US DST rules so that zones such as + 'EST5EDT' get the correct transition dates. + * tests/clock.test: Added rudimentary test cases for 'zoneinfo' + parsing. Adjusted several tests that depended on obsolete US DST + transition rules. -2002-10-16 Jeff Hobbs <jeffh@ActiveState.com> +2007-03-07 Daniel Steffen <das@users.sourceforge.net> - * win/configure: add workaround for cygwin windres - * win/tcl.m4 (SC_CONFIG_CFLAGS): problem. [Patch 624010] (howell) + * macosx/tclMacOSXNotify.c: add spinlock debugging and sanity checks. -2002-10-15 Jeff Hobbs <jeffh@ActiveState.com> + * macosx/Tcl.xcodeproj/project.pbxproj: ensure gcc version used by + * macosx/Tcl.xcodeproj/default.pbxuser: Xcode and configure/make are + * macosx/Tcl-Common.xcconfig: consistent and independent of + gcc_select default and CC env var; fixes for Xcode 3.0. - * README: added archives.tcl.tk note + * unix/tcl.m4 (Darwin): s/CFLAGS/CPPFLAGS/ in macosx-version-min check + * unix/configure: autoconf-2.59 - * unix/configure: - * unix/tcl.m4: Correct AIX-5 ppc build flags. Correct HP 11 64-bit gcc - building. [Patch 601051] (martin) +2007-03-07 Don Porter <dgp@users.sourceforge.net> -2002-10-15 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclCmdIL.c (TclLindex*): Rewrites to make efficient + private copies of the list and indexlist arguments, so we can operate + on the list elements directly with no fear of shimmering effects. + Replaces defensive coding schemes that are otherwise required. End + result is that TclLindexList is entirely a wrapper around + TclLindexFlat, which is now the core engine of all [lindex] + operations. - * generic/tclCmdMZ.c: - * tests/trace.test: applied patch from Hemang Levana to fix [Bug - 615043] in execution traces with idle tasks firing. + * generic/tclObj.c (Tcl_AppendAllObjTypes): Converted to simpler + list validity test. -2002-10-14 Jeff Hobbs <jeffh@ActiveState.com> +2007-03-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclEnv.c (Tcl_PutEnv): correct possible mem leak. - [Patch 623269] (brouwers) + * generic/tclRegexp.c (TclRegAbout): Generate information about a + regexp as a Tcl_Obj instead of as a string, which is more efficient. -2002-10-11 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-03-07 Kevin B. Kenny <kennykb@acm.org> - * generic/tcl.h: Need a different strategy through the maze of - #defines to let people building with Cygwin build correctly. Also - made some comments less misleading... + * library/clock.tcl: Adjusted Windows time zone table to handle new US + DST rules by locale rather than as Posix time zone spec. + * tests/clock.test (clock-39.6, clock-49.2, testclock::registry): + Adjusted tests to simulate new US rules. + * library/tzdata/America/Indiana/Winamac: + * library/tzdata/Europe/Istanbul: + * library/tzdata/Pacific/Easter: + Olson's tzdata2007c. -2002-10-10 Jeff Hobbs <jeffh@ActiveState.com> +2007-03-05 Andreas Kupries <andreask@activestate.com> - * README: fixed minor nits [Bug 607776] (virden) + * library/platform/shell.tcl (::platform::shell::RUN): In the case of + * library/platform/pkgIndex.tcl: a failure put the captured stderr + * unix/Makefile.in: into the error message to aid in debugging. Bumped + * win/Makefile.in: package version to 1.1.2, and updated the makefiles + installing it as Tcl Module. - * win/configure: - * win/tcl.m4: enable USE_THREAD_ALLOC (new threaded allocator) by - default in cygwin configure on Windows. +2007-03-03 Donal K. Fellows <dkf@users.sf.net> -2002-10-10 Don Porter <dgp@users.sourceforge.net> + * generic/tclLink.c (LinkedVar): Added macro to conceal at least some + of the pointer hackery. - * doc/Tcl.n: Clarified that namespace separators are legal in - the variable names during $-subtitution. [Bug 615139] +2007-03-02 Don Porter <dgp@users.sourceforge.net> - * doc/regexp.n: Typo correction. Thanks Ronnie Brunner. [Bug 606826] + * generic/tclCmdIL.c (Tcl_LreverseObjCmd): Added missing + TclInvalidateStringRep() call when we directly manipulate the intrep + of an unshared "list" Tcl_Obj. [Bug 1672585] -2002-10-10 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclCmdIL.c (Tcl_JoinObjCmd): Revised [join] implementation + to append Tcl_Obj's instead of strings. [RFE 1669420] - * unix/tclLoadAout.c - * unix/tclLoadDl.c - * unix/tclLoadDld.c - * unix/tclLoadDyld.c - * unix/tclLoadNext.c - * unix/tclLoadOSF.c - * unix/tclLoadShl.c - * win/tclWinLoad.c: allow either full paths or simply dll names to be - specified when loading files (the latter will be looked up by the OS - on your PATH/LD_LIBRARY_PATH as appropriate). Fixes [Bug 611108] + * generic/tclCmdIL.c (Info*Cmd): Code simplifications and + optimizations. -2002-10-09 Jeff Hobbs <jeffh@ActiveState.com> +2007-03-02 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * unix/README: doc'ed --enable-symbols options. - * unix/Makefile.in: removed @MEM_DEBUG_FLAGS@ subst. - * unix/configure: regen - * unix/configure.in: removed SC_ENABLE_MEMDEBUG call - * unix/tcl.m4: replaced SC_ENABLE_MEMDEBUG with a more intelligent - SC_ENABLE_SYMBOLS that takes yes|no|mem|compile|all as options now. + * generic/tclCompile.c (TclPrintInstruction): Added a scheme to allow + * generic/tclCompile.h (AuxDataPrintProc): aux-data to be printed + * generic/tclCompCmds.c (Print*Info): out for debugging. For + this to work, immediate operands referring to aux-data must be + identified as such in the instruction descriptor table using + OPERAND_AUX4 (all are always 4 bytes). -2002-10-09 Kevin B. Kenny <kennykb@acm.org> + * generic/tclExecute.c (TclExecuteByteCode): Rewrote the compiled + * generic/tclCompCmds.c (TclCompileDictCmd): [dict update] so that it + * generic/tclCompile.h (DictUpdateInfo): stores critical + * tests/dict.test (dict-21.{14,15}): non-varying data in an + aux-data value instead of a (shimmerable) literal. [Bug 1671001] - * win/tclWinTime.c: Added code to set an exit handler that terminates - the thread that calibrates the performance counter, so that the thread - won't outlive unloading the Tcl DLL. [Bug 620735]. +2007-03-01 Don Porter <dgp@users.sourceforge.net> -2002-10-09 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclCmdIL.c (Tcl_LinsertObjCmd): Code simplifications + and optimizations. - * doc/binary.n: More clarification of [binary scan]'s behaviour. + * generic/tclCmdIL.c (Tcl_LreplaceObjCmd): Code simplifications + and optimizations. -2002-10-09 Daniel Steffen <das@users.sourceforge.net> + * generic/tclCmdIL.c (Tcl_LrangeObjCmd): Rewrite in the same + spirit; avoid shimmer effects rather than react to them. - * generic/tclIntDecls.h: fixed botched regen. + * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Stop throwing away + * tests/foreach.test (foreach-1.14): useful error information when + loop variable sets fail. -2002-10-09 Daniel Steffen <das@users.sourceforge.net> + * generic/tclCmdIL.c (Tcl_LassignObjCmd): Rewrite to make an + efficient private copy of the list argument, so we can operate on the + list elements directly with no fear of shimmering effects. Replaces + defensive coding schemes that are otherwise required. - * generic/tclInt.decls: made TclSetPreInitScript() declaration - generic as it is used on mac & aqua as well. - * generic/tclIntDecls.h: - * generic/tclStubInit.c: regen. - * generic/tclCompile.h: added prototype for TclCompileVariableCmd. + * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Rewrite to make + efficient private copies of the variable and value lists, so we can + operate on them without any special shimmer defense coding schemes. - * mac/tclMacPort.h: removed incorrect <fcntl.h> definitions and - obsolete <stat.h> definitions. - * mac/tclMacChan.c: removed obsolete GetOpenMode() and replaced - associated constants with the <fcntl.h> analogues (they existing defs - were inconsistent with <fcntl.h> which was causing havoc when - Tcl_GetOpenMode was used instead of private GetOpenMode). +2007-03-01 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * mac/tclMacFCmd.c: removed GenerateUniqueName(), use equivalent (and - identically named) routine from MoreFiles instead. - - * mac/tclMacLoad.c: CONSTification, fixes to Vince's last changes. + * generic/tclCompCmds.c (TclCompileForeachCmd): Prevent an unexpected + * tests/foreach.test (foreach-9.1): infinite loop when the + variable list is empty and the foreach is compiled. [Bug 1671138] - * mac/tclMacFile.c: - * mac/tclMacTest.c: - * mac/tclMacUnix.c: CONSTification. +2007-02-26 Andreas Kupries <andreask@activestate.com> - * mac/tclMacOSA.c: CONSTification, sprintf fixes, UH 3.4.x changes; - fix for missing autoname token from TclOSACompileCmd. (bdesgraupes) - * mac/AppleScript.html(AppleScript delete): doc fix. (bdesgraupes) + * generic/tclIORChan.c (FreeReflectedChannel): Added the missing + refcount release between NewRC and FreeRC for the channel handle + object, spotted by Don Porter. [Bug 1667990] - * mac/tcltkMacBuildSupport.sea.hqx: updated MoreFiles to 1.5.3, - updated build instructions for 8.4. - * mac/tclMacProjects.sea.hqx: rebuilt archive. +2007-02-26 Don Porter <dgp@users.sourceforge.net> -2002-10-09 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Removed surplus + copying of the objv array that used to be a workaround for [Bug + 404865]. That bug is long fixed. - * doc/Alloc.3: Added a note to mention that attempting to allocate a - zero-length block can return NULL. [Tk Bug 619544] +2007-02-24 Don Porter <dgp@users.sourceforge.net> -2002-10-04 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclBasic.c: Use new interface in Tcl_EvalObjEx so that the + recounting logic of the List internal rep need not be repeated there. + Better encapsulation of internal details. - * doc/binary.n: Doc improvements [Patch 616480] + * generic/tclInt.h: New internal routine TclListObjCopy() used + * generic/tclListObj.c: to efficiently do the equivalent of [lrange + $list 0 end]. After some experience with this, might be a good + candidate for exposure as a public interface. It's useful for callers + of Tcl_ListObjGetElements() who want to control the ongoing validity + of the returned objv pointer. - * tests/fCmd.test, tests/winFCmd.test: - * tools/eolFix.tcl, tools/genStubs.tcl: [file exist] -> [file exists] - Thanks to David Welton. +2007-02-22 Andreas Kupries <andreask@activestate.com> -2002-10-03 Don Porter <dgp@users.sourceforge.net> + * tests/pkg.test: Added tests for the case of an alpha package + satisfying a require for the regular package, demonstrating a corner + case specified in TIP#280. More notes in the comments to the test. - * doc/tcltest.n: fixed typo [Bug 618018]. Thanks to "JJM". +2007-02-20 Jan Nijtmans <nijtmans@users.sf.net> -2002-10-03 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclInt.decls: Added "const" specifiers in TclSockGetPort + * generic/tclIntDecls.h: regenerated + * generic/*.c: + * unix/tclUnixChan.c + * unix/tclUnixPipe.c + * win/tclWinPipe.c + * win/tclWinSock.c: Added many "const" specifiers in implementation. - * tools/man2help2.tcl: - * tests/http.test, tests/httpd, tests/httpold.test: - * tests/env.test, tests/binary.test, tests/autoMkindex.test: - * library/init.tcl, library/http/http.tcl: [info exist] should really - be [info exists]. [Bug 602566] +2007-02-20 Don Porter <dgp@users.sourceforge.net> - * doc/lsearch.n: Better specification of what happens when -sorted is - mixed with other options. [Bug 617816] + * doc/tcltest.n: Typo fix. [Bug 1663539] -2002-10-01 Jeff Hobbs <jeffh@ActiveState.com> +2007-02-20 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclProc.c (TclCreateProc): mask out VAR_UNDEFINED for - precompiled locals to support 8.3 precompiled code. - (Tcl_ProcObjCmd): correct 2002-09-26 fix to look for tclProcBodyType. + * generic/tclFileName.c: Handle extended paths on Windows NT and + * generic/tclPathObj.c: above. These have a \\?\ prefix. [Bug + * win/tclWinFile.c: 1479814] + * tests/winFCmd.test: Tests for extended path handling. -2002-10-01 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2007-02-19 Jeff Hobbs <jeffh@ActiveState.com> - * doc/socket.n: Mentioned that ports may be specified as serivce names - as well as integers. [Bug 616843] + * unix/tcl.m4: use SHLIB_SUFFIX=".so" on HP-UX ia64 arch. + * unix/configure: autoconf-2.59 -2002-09-30 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclIOUtil.c (Tcl_FSEvalFileEx): safe incr of objPtr ref. - * generic/tclCompCmds.c (TclCompileRegexpCmd): correct the checking - for bad re's that didn't terminate the re string. Resultant compiles - were correct, but much slower than necessary. +2007-02-18 Donal K. Fellows <dkf@users.sf.net> -2002-09-29 David Gravereaux <davygrvy@pobox.com> + * doc/chan.n, doc/clock.n, doc/eval.n, doc/exit.n, doc/expr.n: + * doc/interp.n, doc/open.n, doc/platform_shell.n, doc/pwd.n: + * doc/refchan.n, doc/regsub.n, doc/scan.n, doc/tclvars.n, doc/tm.n: + * doc/unload.n: Apply [Bug 1610310] to fix typos. Thanks to Larry + Virden for spotting them. - * win/tclAppInit.c: Added proper exiting conditions using Win32 - console signals. This handles the existing lack of a Ctrl+C exit to - call exit handlers when built for thread support. Also, properly - handles exits from other conditions such as CTRL_CLOSE_EVENT, - CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT signals. In all cases, exit - handlers will be called. [Bug 219355] + * doc/interp.n: Partial fix of [Bug 1662436]; rest requires some + policy decisions on what should and shouldn't be safe commands from + the "new in 8.5" set. - * win/makefile.vc: Added missing tclThreadAlloc.c to the build rules - and defines USE_THREAD_ALLOC when TCL_THREADS is defined to get the - new behavior by default. +2007-02-13 Kevin B. Kenny <kennykb@acm.org> -2002-09-27 Don Porter <dgp@users.sourceforge.net> + * tools/fix_tommath_h.tcl: Further tweaking for the x86-64. The change + is to make 'mp_digit' be an 'unsigned int' on that platform; since + we're using only 32 bits of it, there's no reason to make it a 64-bit + 'unsigned long.' + * generic/tclTomMath.h: Regenerated. - * README: Bumped to version 8.4.1 to avoid confusion - * generic/tcl.h: of CVS snapshots with the actual 8.4.0 - * tools/tcl.wse.in: release. - * unix/configure.in: - * unix/tcl.spec: - * win/configure.in: +2007-02-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * unix/configure: autoconf - * win/configure: + * doc/re_syntax.n: Corrected description of 'print' class [Bug + 1614687] and enhanced description of 'graph' class. -2002-09-26 Jeff Hobbs <jeffh@ActiveState.com> +2007-02-12 Kevin B. Kenny <kennykb@acm.org> - * unix/configure: regen. - * unix/tcl.m4: improve AIX-4/5 64bit compilation support. + * tools/fix_tommath_h.tcl: Added code to patch out a check for + __x86_64__ that caused Tommath to use __attributes(TI)__ for the + mp_word type. Tetra-int's simply fail on too many gcc-glibc-OS + combinations to be ready for shipment today, even if they work for + some of us. This change allows reversion of das's change of 2006-08-18 + that accomplised the same thing on Darwin. [Bugs 1601380, 1603737, + 1609936, 1656265] + * generic/tclTomMath.h: Regenerated. + * library/tzdata/Africa/Asmara: + * library/tzdata/Africa/Asmera: + * library/tzdata/America/Nassau: + * library/tzdata/Atlantic/Faeroe: + * library/tzdata/Atlantic/Faroe: + * library/tzdata/Australia/Eucla: + * library/tzdata/Pacific/Easter: Rebuilt from Olson's tzdata2007b. - * generic/tclProc.c (Tcl_ProcObjCmd): correct overeager optimization - of noop proc to handle the precompiled case. (sofer) +2007-02-09 Joe Mistachkin <joe@mistachkin.com> - * unix/ldAix (nmopts): add -X32_64 to make it work for 32 or 64bit - mode compilation. + * win/nmakehlp.c: Properly cleanup after nmakehlp, including the + * win/makefile.vc: vcX0.pch file. - * library/encoding/koi8-u.enc: removed extraneous spaces that confused - encoding reader. [Bug 615115] +2007-02-08 Jeff Hobbs <jeffh@ActiveState.com> - * unix/Makefile.in: generate source dists with -src designator and do - not generate .Z anymore (just .gz and .zip). + * unix/tclUnixInit.c (TclpCheckStackSpace): do stack size checks with + unsigned size_t to correctly validate stackSize in the 2^31+ range. + [Bug 1654104] -2002-09-18 Mumit Khan <khan@nanotech.wisc.edu> +2007-02-08 Don Porter <dgp@users.sourceforge.net> - Added basic Cygwin support. + * generic/tclNamesp.c: Corrected broken logic in Tcl_DeleteNamespace + * tests/namespace.test: introduced in Patch 1577278 that caused + [namespace delete ::] to be effective only at level #0. New test + namespace-7.7 should prevent similar error in the future [Bug 1655305] - * win/tcl.m4 (SC_PATH_TCLCONFIG): Support one-tree build. - (SC_PATH_TKCONFIG): Likewise. - (SC_PROG_TCLSH): Likewise. - (SC_CONFIG_CFLAGS): Assume real Cygwin port and remove -mno-cygwin - flags. Add -mwin32 to extra_cflags and extra_ldflags. Remove ``-e - _WinMain@16'' from LDFLAGS_WINDOW. - * win/configure.in: Allow Cygwin build. - (SEH test): Define to be 1 instead of empty value. - (EXCEPTION_DISPOSITION): Add test. - * win/configure: Regenerate. +2007-02-06 Don Porter <dgp@users.sourceforge.net> - * generic/tcl.h: Don't explicitly define __WIN32__ for Cygwin, let the - user decide whether to use Windows or POSIX personality. - (TCL_WIDE_INT_TYPE, TCL_LL_MODIFIER, struct Tcl_StatBuf): Define for - Cygwin. - * generic/tclEnv.c (Tcl_CygwinPutenv): putenv replacement for Cygwin. - * generic/tclFileName.c (Tcl_TranslateFileName): Convert POSIX to - native format. - (TclDoGlob): Likewise. - * generic/tclPlatDecls.h (TCHAR): Define for Cygwin. - * win/tclWinPort.h (putenv, TclpSysAlloc, TclpSysFree) - (TclpSysRealloc): Define for Cygwin. + * generic/tclNamesp.c: Corrected broken implementation of the + * tests/namespace.test: TclMatchIsTrivial optimization on [namespace + children $namespace $pattern]. -2002-09-26 Daniel Steffen <das@users.sourceforge.net> +2007-02-04 Daniel Steffen <das@users.sourceforge.net> - * macosx/Makefile: preserve environment value of INSTALL_ROOT. When - embedding only use deployment build. Force relink before embedded - build to ensure new linker flags are picked up. + * unix/tcl.m4: use gcc4's __attribute__((__visibility__("hidden"))) if + available to define MODULE_SCOPE effective on all platforms. + * unix/configure.in: add caching to -pipe and zoneinfo checks. + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 - * macosx/Tcl.pbproj/project.pbxproj: add symbolic links to debug lib, - stub libs and tclConfig.sh in framework toplevel. Configure target - dependency fix. Fix to 'clean' action. Added private tcl headers to - framework. Install tclsh symbolic link. Html doc build works when no - installed tclsh available. Made html doc structure in framework more - like in Apple frameworks. +2007-02-03 Joe Mistachkin <joe@mistachkin.com> -2002-09-24 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * win/rules.vc: Fix platform specific file copy macros for downlevel + Windows. - * unix/tcl.m4 (SC_TCL_64BIT_FLAGS): Yet more robust 64-bit value - detection to close [Bug 613117] on more systems. +2007-01-29 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompile.c (TclPrintSource): More CONSTifying. - * generic/tclExecute.c (EvalStatsCmd): Object-ify to reduce warnings. - Thanks to 'CoderX2' on the chat for bringing this to my attention... + * generic/tclResult.c: Added optimization case to TclTransferResult to + cover common case where there's big savings over the fully general + path. Thanks to Peter MacDonald. [Bug 1626518] - * unix/tcl.m4: Forgot to define TCL_WIDE_INT_IS_LONG at the - appropriate moment. I believe this is the cause of [Bug 613117] + * generic/tclLink.c: Broken linked float logic corrected. Thanks to + Andy Goth. [Bug 1602538] - * doc/lset.n: Changed 'list' to 'varName' for consistency with lappend - documentation. Thanks to Glenn Jackman [Bug 611719] + * doc/fcopy.n: Typo fix. [Bug 1630627] -2002-09-22 Don Porter <dgp@users.sourceforge.net> +2007-01-28 Daniel Steffen <das@users.sourceforge.net> - * library/tcltest/tcltest.tcl: Corrected [puts -nonewline] within - test bodies. Thanks to Harald Kirsch. [Bug 612786, Patch 612788] Also - corrected reporting of body return code. Thanks to David Taback [Bug - 611922] - * library/tcltest/pkgIndex.tcl: Bump to version 2.2.1. - * tests/tcltest.test: added tests for these bugs. + * macosx/Tcl.xcodeproj/project.pbxproj: extract build settings that + * macosx/Tcl.xcodeproj/default.pbxuser: were common to multiple + * macosx/Tcl-Common.xcconfig (new file): configurations into external + * macosx/Tcl-Debug.xcconfig (new file): xcconfig files; add extra + * macosx/Tcl-Release.xcconfig (new file): configurations for building + with SDKs and 64bit; convert legacy jam-based 'Tcl' target to native + target with single script phase; correct syntax of build setting + references to use $() throughout. -2002-09-15 Mo DeJong <mdejong@users.sourceforge.net> + * macosx/README: document new Tcl.xcodeproj configurations; other + minor updates/corrections. - * unix/configure: Regen. - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Add PEEK_XCLOSEIM define under - Linux. This is used by Tk to double check that an X input context is - cleaned up before it is closed. + * generic/tcl.h: update location of version numbers in macosx files. -2002-09-12 David Gravereaux <davygrvy@pobox.com> + * macosx/Tcl.xcode/project.pbxproj: restore 'tcltest' target to + * macosx/Tcl.xcode/default.pbxuser: working order by replicating + applicable changes to Tcl.xcodeproj since 2006-07-20. - * win/coffbase.txt: Added BLT to the virtual base address listings - table should BLT's build tools decide to use it. +2007-01-25 Daniel Steffen <das@users.sourceforge.net> -2002-09-12 Daniel Steffen <das@users.sourceforge.net> + * unix/tcl.m4: integrate CPPFLAGS into CFLAGS as late as possible and + move (rather than duplicate) -isysroot flags from CFLAGS to CPPFLAGS + to avoid errors about multiple -isysroot flags from some older gcc + builds. - * generic/tcl.h: - * mac/tclMacApplication.r: - * mac/tclMacLibrary.r: - * mac/tclMacResource.r: unified use of the two equivalent resource - compiler header inclusion defines RC_INVOKED and RESOURCE_INCLUDED, - now use RC_INVOKED throughout. + * unix/configure: autoconf-2.59 -2002-09-10 Mo DeJong <mdejong@users.sourceforge.net> +2007-01-22 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * unix/README: Add note about building extensions with the same - compiler Tcl was built with. [Tk Bug 592096] + * compat/memcmp.c (memcmp): Reworked so that arithmetic is never + performed upon void pointers, since that is illegal. [Bug 1631017] -2002-09-10 Daniel Steffen <das@users.sourceforge.net> +2007-01-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * macosx/Tcl.pbproj/project.pbxproj: disabled building html - documentation during embedded build. + * generic/tclCompile.c (TclCompileScript): Reduce the frequency with + which we issue INST_START_CMD, making bytecode both more compact and + somewhat faster. The optimized case is where we would otherwise be + issuing a sequence of those instructions; in those cases, it is only + ever the first one encountered that could possibly trigger. -2002-09-10 Daniel Steffen <das@users.sourceforge.net> +2007-01-19 Joe Mistachkin <joe@mistachkin.com> - * unix/Makefile.in: added DYLIB_INSTALL_DIR variable for macosx and - set it to default value ${LIB_RUNTIME_DIR} - * unix/tcl.m4 (Darwin): use DYLIB_INSTALL_DIR instead of - LIB_RUNTIME_DIR in the -install_name argument to ld. - * unix/configure: regen. + * tools/man2tcl.c: Include stdlib.h for exit() and improve comment + detection. + * win/nmakehlp.c: Update usage. + * win/makefile.vc: Properly build man2tcl.c for MSVC8. - * macosx/Tcl.pbproj/project.pbxproj: - * macosx/Makefile: added support for building Tcl as an embedded - framework, i.e. using an dyld install_name containing - @executable_path/../Frameworks via the new DYLIB_INSTALL_DIR - unix/Makefile variable. +2007-01-19 Daniel Steffen <das@users.sourceforge.net> -2002-09-10 Jeff Hobbs <jeffh@ActiveState.com> + * macosx/tclMacOSXFCmd.c (TclMacOSXSetFileAttribute): on some versions + of Mac OS X, truncate() fails on resource forks, in that case use + open() with O_TRUNC instead. - *** 8.4.0 TAGGED FOR RELEASE *** + * macosx/tclMacOSXNotify.c: accommodate changes to prototypes of + OSSpinLock(Un)Lock API. -2002-09-06 Don Porter <dgp@users.sourceforge.net> + * macosx/Tcl.xcodeproj/project.pbxproj: ensure HOME and USER env vars + * macosx/Tcl.xcodeproj/default.pbxuser: are defined when running + testsuite from Xcode. - * doc/file.n: Format correction, and clarified [file normalize] - returns an absolute path. + * tests/env.test: add extra system env vars that need to be preserved + on some Mac OS X versions for testsuite to work. - * doc/tcltest.n: Added examples section, as long promised. + * unix/Makefile.in: Move libtommath defines into configure.in to + * unix/configure.in: avoid replicating them across multiple + * macosx/Tcl.xcodeproj/project.pbxproj: buildsystems. -2002-09-06 Reinhard Max <max@suse.de> + * unix/tcl.m4: ensure CPPFLAGS env var is used when set. [Bug 1586861] + (Darwin): add -isysroot and -mmacosx-version-min flags to CPPFLAGS + when present in CFLAGS to avoid discrepancies between what headers + configure sees during preprocessing tests and compiling tests. - * tests/tcltest.test: Added nonRoot flag to tests 8.3, 8.4, and 8.12. + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 -2002-09-05 Don Porter <dgp@users.sourceforge.net> +2007-01-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * doc/tcltest.n: Clarified phrasing. + * generic/tclCompile.c (TclCompileScript): Make sure that when parsing + an expanded literal fails, a correct bytecode sequence is still + issued. [Bug 1638414]. Also make sure that the start of the expansion + bytecode sequence falls inside the span of bytecodes for a command. + * tests/compile.test (compile-16.24): Added test for [Bug 1638414] - * generic/tclBasic.c (TclRenameCommand,CallCommandTraces): - * tests/trace.test (trace-27.1): Corrected memory leak when a rename - trace deleted the command being traced. Test added. Thanks to Hemang - Lavana for the fix. [Bug 604609] +2007-01-17 Donal K. Fellows <dkf@users.sf.net> - * generic/tclVar.c (TclDeleteVars): Corrected logic for setting the - TCL_INTERP_DESTROYED flag when calling variable traces. [Tk Bug 605121] + * generic/tclIO.c: Added macros to make usage of ChannelBuffers + clearer. -2002-09-04 Miguel Sofer <msofer@users.sourceforge.net> +2007-01-11 Joe English <jenglish@users.sourceforge.net> - * generic/tclVar.c (DeleteArray): leak plug [Bug 604239]. Thanks to - dkf and dgp for the long and difficult discussion in the chat. + * win/tcl.m4(CFLAGS_WARNING): Remove "-Wconversion". This was removed + from unix/tcl.m4 2004-07-16 but not from here. + * win/configure: Regenerated. -2002-09-03 Jeff Hobbs <jeffh@ActiveState.com> +2007-01-11 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclVar.c (Tcl_UpVar2): code cleanup to not use goto + * win/makefile.vc: Fixes to work better on Win98. Read version numbers + * win/nmakehlp.c: from package index file to avoid keeping numbers in + * win/rules.vc: the makefile where they may become de-synchronized. - * unix/configure: remove -pthread from LIBS on FreeBSD in thread - * unix/tcl.m4: enabled build. [Bug 602849] +2007-01-10 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-09-03 Miguel Sofer <msofer@users.sourceforge.net> + * generic/regcomp.c (compile, freev): Define a strategy for + * generic/regexec.c (exec): managing the internal + * generic/regguts.h (AllocVars, FreeVars): vars of the RE engine to + * generic/regcustom.h (AllocVars, FreeVars): reduce C stack usage. + This will make Tcl as a whole much less likely to run out of stack + space... - * generic/tclInterp.c (AliasCreate): a Tcl_Obj was leaked on error - return from TclPreventAliasLoop. +2007-01-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2002-09-03 Daniel Steffen <das@users.sourceforge.net> + * generic/tclCompCmds.c (TclCompileLindexCmd): + * tests/lindex.test (lindex-9.2): Fix silly bug that ended up + sometimes compiling list arguments in the wrong order. [Bug 1631364] - * macosx/Tcl.pbproj/project.pbxproj: Bumped version number to 8.4.0 - and updated copyright info. +2007-01-03 Kevin B. Kenny <kennykb@acm.org> -2002-09-03 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclDate.c: Regenerated to recover a lost fix from patthoyts. + [Bug 1618523] - * generic/tclVar.c (Tcl_UpVar2): a Tcl_Obj was being leaked on error - return from TclGetFrame. +2006-12-26 Mo DeJong <mdejong@users.sourceforge.net> -2002-09-03 Don Porter <dgp@users.sourceforge.net> + * generic/tclIO.c (Tcl_GetsObj): Avoid checking for for the LF in a + possible CRLF sequence when EOF has already been found. - * changes: Updated changes for 8.4.0 release. +2006-12-26 Mo DeJong <mdejong@users.sourceforge.net> -2002-09-02 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclEncoding.c (EscapeFromUtfProc): Clear the + TCL_ENCODING_END flag when end bytes are written. This fix keep this + method from writing escape bytes for an encoding like iso2022-jp + multiple times when the escape byte overlap with the end of the IO + buffer. + * tests/io.test: Add test for escape byte overlap issue. - * unix/tclUnixFile.c (TclpObjLink): removed unnecessary/unfreed - extra native char*. +2006-12-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * unix/tclUnixChan.c (Tcl_MakeTcpClientChannel): make sure to init - flags field of TcpState ptr to 0. + * unix/tclUnixThrd.c (Tcl_GetAllocMutex, TclpNewAllocMutex): Add + intermediate variables to shut up unwanted warnings. [Bug 1618838] - * unix/configure: - * unix/tcl.m4: added 64-bit gcc compilation support on HP-11. - [Patch 601051] (martin) +2006-12-19 Daniel Steffen <das@users.sourceforge.net> - * README: Bumped version number to 8.4.0 - * generic/tcl.h: - * tools/tcl.wse.in: - * unix/configure: - * unix/configure.in: - * unix/tcl.spec: - * win/README.binary: - * win/configure: - * win/configure.in: + * unix/tclUnixThrd.c (TclpInetNtoa): fix for 64 bit. - * generic/tclInterp.c (SlaveCreate): make sure that the memory and - checkmem commands are initialized in non-safe slave interpreters when - TCL_MEM_DEBUG is used. [Bug 583445] + * unix/tcl.m4 (Darwin): --enable-64bit: verify linking with 64bit + -arch flag succeeds before enabling 64bit build. + * unix/configure: autoconf-2.59 - * win/tclWinConsole.c (ConsoleCloseProc): only wait on writable pipe - if there was something to write. This may prevent infinite wait on - exit. +2006-12-17 Daniel Steffen <das@users.sourceforge.net> + + * tests/macOSXLoad.test (new file): add testing of .bundle loading and + * tests/load.test: unloading on Darwin (in addition + * tests/unload.test: to existing tests of .dylib + loading). + * macosx/Tcl.xcodeproj/project.pbxproj: add building of dltest + binaries so that testsuite run from Xcode can use them; fix testsuite + run script + * unix/configure.in: add support for building dltest binaries as + * unix/dltest/Makefile.in: .bundle (in addition to .dylib) on Darwin. + * unix/Makefile.in: add stub lib dependency to dltest target. + * unix/configure: autoconf-2.59 - * tests/exec.test: marked exec-18.1 unixOnly until the Windows - incompatability (in the test, not the core) can be resolved. + * tests/append.test: fix cleanup failure when all tests are skipped. - * tests/http.test (http-3.11): added close $fp that was causing an - error on Windows because the file was not closed before deleting. + * tests/chan.test (chan-16.9): cleanup chan event handler to avoid + causing error in event.test when running testsuite with -singleproc 1. - * unix/tclUnixInit.c (Tcl_MacOSXGetLibraryPath): made this static - function only appear when HAVE_CFBUNDLE is defined. + * tests/info.test: add !singleTestInterp constraint to tests that fail + when running testsuite with -singleproc 1. [Bug 1605269] -2002-08-31 Daniel Steffen <das@users.sourceforge.net> +2006-12-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * unix/tcl.m4: added TK_SHLIB_LD_EXTRAS analogue of existing - TCL_SHLIB_LD_EXTRAS for linker settings only used when linking Tk. + * doc/string.n: Fix example. [Bug 1615277] - * unix/configure: regen +2006-12-12 Don Porter <dgp@users.sourceforge.net> -2002-08-31 Daniel Steffen <das@users.sourceforge.net> + * generic/tclCompExpr.c: Now that the new internal structs are + in use to support operator commands, might as well make them the + default for [expr] as well and avoid passing every parsed expression + through the inefficient Tcl_Token array format. This addresses most + issues in [RFE 1517602]. Assuming no performance disasters result from + this, much dead code supporting the other implementation might now be + removed. - *** macosx-8-4-branch merged into the mainline [Patch 602770] *** + * generic/tclBasic.c: Final step routing all direct evaluation forms + * generic/tclCompExpr.c: of the operator commands through TEBC, + * generic/tclCompile.h: dropping all the routines in tclMathOp.c. + * generic/tclMathOp.c: Still needs Engineering Manual attention. - * generic/tcl.decls: added new macosx specific entry to stubs table. +2006-12-11 Don Porter <dgp@users.sourceforge.net> - * tools/genStubs.tcl: added generation of platform guards for macosx. - This is a little more complex than it seems, because MacOS X IS "unix" - plus a little bit, for the purposes of Tcl. BUT unfortunately, Tk uses - "unix" to mean X11. So added platform keys for macosx (the little - added to "unix"), "aqua" and "x11" to distinguish these for Tk. + * generic/tclBasic.c: Another step with all sorting operator + * generic/tclCompExpr.c: commands now routing through TEBC via + * generic/tclCompile.h: TclSortingOpCmd(). - * generic/tcl.h: added a #ifnded RESOURCE_INCLUDED so that tcl.h can - be passed to the resource compiler. +2006-12-08 Don Porter <dgp@users.sourceforge.net> - * generic/tcl.h: - * generic/tclNotify.c: added a few Notifier procs, to be able to - modify more bits of the Tcl notifier dynamically. Required to get Mac - OS X Tk to live on top of the Tcl Unix threaded notifier. Changes the - size of the Tcl_NotifierProcs structure, but doesn't move any elements - around. + * generic/tclBasic.c: Another step down the path of re-using + * generic/tclCompExpr.c: TclExecuteByteCode to implement the TIP 174 + * generic/tclCompile.h: commands instead of using a mass of code + * generic/tclMathOp.c: duplication. Now all operator commands that + * tests/mathop.test: demand exactly one operation are implemented + via TclSingleOpCmd and a call to TEBC. - * unix/tclUnixNotfy.c: moved the call to Tcl_ConditionNotify till - AFTER we are done mucking with the pointer swap. Fixes cases where the - thread waiting on the condition wakes & accesses the waitingListPtr - before it gets reset, causing a hang. + * generic/tclCompExpr.c: Revised implementation of TclInvertOpCmd to + * generic/tclMathOp.c: perform a bytecode compile / execute sequence. + This demonstrates a path toward avoiding mountains of code duplication + in tclMathOp.c and tclExecute.c. - * library/auto.tcl (tcl_findLibrary): added checking the directories - in the tcl_pkgPath for library files on macosx to enable support of - the standard Mac OSX library locations + * generic/tclCompile.h: Change TclExecuteByteCode() from static to + * generic/tclExecute.c: MODULE_SCOPE so all files including + tclCompile.h may call it. - * unix/Makefile.in: - * unix/configure.in: - * unix/tcl.m4: added MAC_OSX_DIR. Added PLAT_OBJS to the OBJS: there - are some MacOS X specific files now for Tcl, and when I get he - resource & applescript stuff ported over, and restore support for - FindFiles, etc, there will be a few more. Added LD_LIBRARY_PATH_VAR - configure variable to avoid having to set all possible LD_LIBRARY_PATH - analogues on all platforms. LD_LIBRARY_PATH_VAR is "LD_LIBRARY_PATH" - by default, "LIBPATH" on AIX, "SHLIB_PATH" on HPUX and - "DYLD_LIBRARY_PATH" on Mac OSX. Added configure option to package Tcl - as a framework on Mac OSX. - - * macosx/tclMacOSXBundle.c (new): support for finding Tcl extension - packaged as 'bundles' in the standard Mac OSX library locations. - - * unix/tclUnixInit.c: added support for findig the tcl script library - inside Tcl packaged as a framework on Mac OSX. - - * macosx/Tcl.pbproj/jingham.pbxuser (new): - * macosx/Tcl.pbproj/project.pbxproj (new): project for Apple's - ProjectBuilder IDE. - - * macosx/Makefile (new): simple makefile for building the project from - the command line via the ProjectBuilder tool 'pbxbuild'. - - * unix/configure: - * generic/tclStubInit.c: - * generic/tclPlatDecls.h: regen + * generic/tclMathOp.c: More revisions to make tests pass. + * tests/mathop.test: -2002-08-29 Andreas Kupries <andreas_kupries@users.sourceforge.net> +2006-12-08 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * win/tclWinThrd.c (TclpFinalizeThreadData, TclWinFreeAllocCache): - Applied patch for [Bug 599428] (sofer) + * generic/tclNamesp.c (TclTeardownNamespace): Ensure that dying + namespaces unstitch themselves from their referents. [Bug 1571056] + (NsEnsembleImplementationCmd): Silence GCC warning. -2002-08-28 David Gravereaux <davygrvy@pobox.com> + * tests/mathop.test: Full tests for & | and ^ operators - * generic/tclEnv.c: - * unix/configure.in: - * win/tclWinPort.h: putenv() on some systems copies the buffer rather - than taking reference to it. This causes memory leaks and is know to - effect mswindows (msvcrt) and NetBSD 1.5.2. This patch tests for this - behavior and turns on -DHAVE_PUTENV_THAT_COPIES=1 when approriate. - Thanks to David Welton for assistance. [Bug 414910] +2006-12-08 Daniel Steffen <das@users.sourceforge.net> - * unix/configure: regen'd + * library/tcltest/tcltest.tcl: use [info frame] for "-verbose line". -2002-08-28 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2006-12-07 Don Porter <dgp@users.sourceforge.net> - * doc/eval.n: Added mention of list command and corrected "SEE ALSO". + * generic/tclCompCmds.c: Additional commits correct most + * generic/tclExecute.c: failing tests illustrating bugs + * generic/tclMathOp.c: uncovered in [Patch 1578137]. - * unix/configure.in: Cache handling of ac_cv_type_socklen_t was wrong. - [Bug 600931] reported by John Ellson. Fixed by putting the brackets - where they belong. + * generic/tclBasic.c: Biggest source of TIP 174 failures was that + the commands were not [namespace export]ed from the ::tcl::mathop + namespace. More bits from [Patch 1578137] correct that. -2002-08-26 Miguel Sofer <msofer@users.sourceforge.net> + * tests/mathop.test: Commmitted several new tests from Peter Spjuth + found in [Patch 1578137]. Many failures now demonstrate issues to fix + in the TIP 174 implementation. - * generic/tclCompCmds.c: fix for [Bug 599788] (error in element name - causing segfault), reported by Tom Wilkason. Fixed by copying the - tokens instead of the source string. +2006-12-07 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-08-26 Miguel Sofer <msofer@users.sourceforge.net> + * tests/mathop.test: Added tests for ! ~ eq operators. + * generic/tclMathOp.c (TclInvertOpCmd): Add in check for non-integral + numeric values. + * generic/tclCompCmds.c (CompileCompareOpCmd): Factor out the code + generation for the chained comparison operators. - * generic/tclThreadAlloc.c: small optimisation, reducing the new - allocator's overhead. +2006-12-07 Pat Thoyts <patthoyts@users.sourceforge.net> -2002-08-23 Miguel Sofer <msofer@users.sourceforge.net> + * tests/exec.test: Fixed line endings (caused win32 problems). - * generic/tclObj.c (USE_THREAD_ALLOC): fixed leak [Bug 597936]. Thanks - to Zoran Vasiljevic. +2006-12-06 Don Porter <dgp@users.sourceforge.net> -2002-08-23 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclCompCmds.c: Revised and consolidated into utility + * tests/mathop.test: routines some of routines that compile + the new TIP 174 commands. This corrects some known bugs. More to come. - * generic/tclThreadAlloc.c (USE_THREAD_ALLOC): moving objects between - caches as a block, instead of one-by-one. +2006-12-06 Kevin B. Kenny <kennykb@acm.org> -2002-08-22 Miguel Sofer <msofer@users.sourceforge.net> + * tests/expr.test (expr-47.12): Improved error reporting in hopes of + having more information to pursue [Bug 1609936]. - * generic/tclBasic.c: - * generic/tclCmdMZ.c: fix for freed memory r/w in delete traces [Bug - 589863], patch by Hemang Lavana. +2006-12-05 Andreas Kupries <andreask@activestate.com> -2002-08-20 Andreas Kupries <andreas_kupries@users.sourceforge.net> + TIP#291 IMPLEMENTATION - * win/Makefile.in (CFLAGS): - * unix/Makefile.in (MEM_DEBUG_FLAGS): Added usage of @MEM_DEBUG_FLAGS@. - * win/configure.in: - * unix/configure.in: Added usage of SC_ENABLE_MEMDEBUG. - * win/tcl.m4: - * unix/tcl.m4: Added macro SC_ENABLE_MEMDEBUG. Allows a user of - configure to (de)activate memory validation and debugging - (TCL_MEM_DEBUG). No need to modify the makefile anymore. + * generic/tclBasic.c: Define tcl_platform element for pointerSize. + * doc/tclvars.n: -2002-08-20 Don Porter <dgp@users.sourceforge.net> + * win/Makefile.in: Added installation instructions for the platform + * win/makefile.vc: package. Added the platform package. + * win/makefile.bc: + * unix/Makefile.in: - * generic/tclCkalloc.c: CONSTified MemoryCmd and CheckmemCmd. + * tests/platform.test: + * tests/safe.test: - * README: Bumped version number to 8.4b3 to distinguish - * generic/tcl.h: HEAD from the 8.4b2 release. - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/README.binary: - * win/configure.in: + * library/platform/platform.tcl: + * library/platform/shell.tcl: + * library/platform/pkgIndex.tcl: - * unix/configure: autoconf - * win/configure: + * doc/platform.n: + * doc/platform_shell.n: - * library/http/http.tcl: Corrected installation directory of - * library/msgcat/msgcat.tcl: the package tcltest 2.2. Added - * library/opt/optparse.tcl: comments in other packages to remind - * library/tcltest/tcltest.tcl: that installation directories need - * unix/Makefile.in: updates to match increasing version - * win/Makefile.in: numbers. [Bug 597450] - * win/makefile.bc: - * win/makefile.vc: +2006-12-05 Don Porter <dgp@users.sourceforge.net> -2002-08-19 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * generic/tclPkg.c: When no requirements are supplied to a + * tests/pkg.test: [package require $pkg] and [package unknown] + is invoked to find a satisfying package, pass the requirement argument + "0-" (which means all versions are acceptable). This permits a + registered [package unknown] command to call [package vsatisfies + $testVersion {*}$args] without any special handling of the empty $args + case. This fixes/avoids a bug in [::tcl::tm::UnknownHandler] that was + causing old TM versions to be provided in preference to newer TM + versions. Thanks to Julian Noble for discovering the issue. - * unix/tclUnixTest.c (TestfilehandlerCmd): Changed - readable/writable to the more common readable|writable. - Fixes [Bug 596034] (lvirden) +2006-12-04 Donal K. Fellows <dkf@users.sf.net> -2002-08-16 Donal K. Fellows <fellowsd@cs.man.ac.uk> + TIP#267 IMPLEMENTATION - * tests/fCmd.test: Added test to make sure that the cause of the - problem is detectable with an unpatched Tcl. - * doc/ObjectType.3: Added note on the root cause of this problem to - the documentation, since it is possible for user code to trigger this - sort of behaviour too. - * generic/tclIOUtil.c (SetFsPathFromAny): Objects should only have - their old representation deleted when we know that we are about to - install a new one. This stops a weird TclX bug under Linux with - certain kinds of memory debugging enabled which essentally came down - to a double-free of a string. + * generic/tclIOCmd.c (Tcl_ExecObjCmd): Added -ignorestderr option, + * tests/exec.test, doc/exec.n: loosely from [Patch 1476191] -2002-08-14 Miguel Sofer <msofer@users.sourceforge.net> +2006-12-04 Don Porter <dgp@users.sourceforge.net> - * generic/tclInt.h: - * generic/tclObj.c: (code cleanup) factored the parts in the macros - TclNewObj() / TclDecrRefCount() into a common part for all memory - allocators and two new macros TclAllocObjStorage() / - TclFreeObjStorage() that are specific to each allocator and fully - describe the differences. Removed allocator-specific code from - tclObj.c by using the macros. + * generic/tclCompExpr.c: Added implementation for the + CompileExprTree() routine that can produce expression bytecode + directly from internal structures with no need to pass through the + Tcl_Token array representation. Still disabled by default. #undef + USE_EXPR_TOKENS to try it out. -2002-08-12 Miguel Sofer <msofer@users.sourceforge.net> +2006-12-03 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdMZ.c: fixing UMR in delete traces, [Bug 589863]. + * generic/tclCompExpr.c: Added expr parsing routines that + produce a different set of internal structures representing the parsed + expression, as well as routines that go on to convert those structures + into the traditional Tcl_Token array format. Use of these routines is + currently disabled. #undef PARSE_DIRECT_EXPR_TOKENS to enable them. + These routines will only become really useful when more routines that + compile directly from the new internal structures are completed. -2002-08-08 David Gravereaux <davygrvy@pobox.com> +2006-12-02 Donal K. Fellows <dkf@users.sf.net> - * tools/man2help.tcl: Fixed $argv handling bug where if -bitmap wasn't - specified $argc was off by one. + * doc/file.n: Clarification of [file pathtype] docs. [Bug 1606454] -2002-08-08 Miguel Sofer <msofer@users.sourceforge.net> +2006-12-01 Kevin B. Kenny <kennykb@acm.org> - * tests/uplevel.test: added 6.1 to test [uplevel] with shadowed - commands [Bug 524383] + * libtommath/bn_mp_add.c: Corrected the effects of a + * libtommath/bn_mp_div.c: bollixed 'cvs merge' operation + * libtommath/bncore.c: that inadvertently committed some + * libtommath/tommath_class.h: half-developed code. - * tests/subst.test: added 5.8-10 as further tests for [Bug 495207] + TIP#299 IMPLEMENTATION -2002-08-08 Don Porter <dgp@users.sourceforge.net> + * doc/mathfunc.n: Added isqrt() function to docs + * generic/tclBasic.c: Added isqrt() math function (ExprIsqrtFunc) + * tests/expr.test (expr-47.*): Added tests for isqrt() + * tests/info.test (info-20.2): Added isqrt() to expected math funcs. - * tests/README: Noted removal of defs.tcl. +2006-12-01 Don Porter <dgp@users.sourceforge.net> -2002-08-08 Jeff Hobbs <jeffh@ActiveState.com> + * tests/chan.test: Correct timing sensitivity in new test. [Bug + 1606860] - * doc/lsearch.n: corrected lsearch docs to use -inline in examples. + TIP#287 IMPLEMENTATION - *** 8.4b2 TAGGED FOR RELEASE *** + * doc/chan.n: New subcommand [chan pending]. + * generic/tclBasic.c: Thanks to Michael Cleverly for proposal + * generic/tclInt.h: and implementation. + * generic/tclIOCmd.c: + * library/init.tcl: + * tests/chan.test: + * tests/ioCmd.test: - * tests/fCmd.test: - * tests/unixFCmd.test: updated tests for new link copy behavior. - * generic/tclFCmd.c (CopyRenameOneFile): changed the behavior to - follow links to endpoints and copy that file/directory instead of just - copying the surface link. This means that trying to copy a link that - has no endpoint (danling link) is an error. [Patch 591647] (darley) - (CopyRenameOneFile): this is currently disabled by default until - further issues with such behavior (like relative links) can be handled - correctly. + TIP#298 IMPLEMENTATION - * tests/README: slight wording improvements + * generic/tcl.decls: Tcl_GetBignumAndClearObj -> Tcl_TakeBignumFromObj + * generic/tclObj.c: -2002-08-07 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclDecls.h: make genstubs + * generic/tclStubInit.c: - * docs/BoolObj.3: added description of valid string reps for a boolean - object [Bug 584794] - * generic/tclObj.c: optimised Tcl_GetBooleanFromObj and - SetBooleanFromAny to avoid parsing the string rep when it can be - avoided [Bugs 584650, 472576] + * generic/tclExecute.c: Update callers. + * generic/tclMathOp.c: -2002-08-07 Miguel Sofer <msofer@users.sourceforge.net> +2006-11-30 Kevin B. Kenny <kennykb@acm.org> - * generic/tclCompile.h: - * generic/tclObj.c: making tclCmdNameType static [Bug 584567] (dgp) + * library/tzdata: Olson's tzdata2006p. + * libtommath/bn_mp_sqrt.c: Fixed a bug where the initial approximation + to the square root could be on the wrong side, causing failure of + convergence. -2002-08-07 Miguel Sofer <msofer@users.sourceforge.net> +2006-11-29 Don Porter <dgp@users.sourceforge.net> - * generic/tclObj.c (Tcl_NewObj): added conditional code for - USE_THREAD_ALLOC; objects allocated through Tcl_NewObj() were - otherwise being leaked. [Bug 587488] reported by Sven Sass. + * generic/tclBasic.c (Tcl_AppendObjToErrorInfo): Added + Tcl_DecrRefCount() on the objPtr argument to plug memory leaks. This + makes the routine a consumer, which makes it easiest to use. -2002-08-06 Daniel Steffen <das@users.sourceforge.net> +2006-11-28 Andreas Kupries <andreask@activestate.com> - * generic/tclInt.decls: - * unix/tclUnixThrd.c: Added stubs and implementations for non-threaded - build for the tclUnixThrd.c procs TclpReaddir, TclpLocaltime, - TclpGmtime and TclpInetNtoa. Fixes link errors in stubbed & threaded - extensions that include tclUnixPort.h and use any of the procs - readdir, localtime, gmtime or inet_ntoa (e.g. TclX 8.4) [Bug 589526] - * generic/tclIntPlatDecls.h: - * generic/tclStubInit.c: Regen. - -2002-08-05 Don Porter <dgp@users.sourceforge.net> - - * library/tcltest/tcltest.tcl: The setup and cleanup scripts are now - * library/tcltest/pkgIndex.tcl: skipped when a test is skipped, fixing - * tests/tcltest.test: [Bug 589859]. Test for bug added, and - corrected tcltest package bumped to version 2.2. - - * generic/tcl.decls: Restored Tcl_Concat to return (char *). Like - * generic/tclDecls.h: Tcl_Merge, it transfers ownership of a dynamic - * generic/tclUtil.c: allocated string to the caller. - -2002-08-04 Don Porter <dgp@users.sourceforge.net> - - * doc/CmdCmplt.3: Applied Patch 585105 to fully CONST-ify - * doc/Concat.3: all remaining public interfaces of Tcl. - * doc/CrtCommand.3: Notably, the parser no longer writes on - * doc/CrtSlave.3: the string it is parsing, so it is no - * doc/CrtTrace.3: longer necessary for Tcl_Eval() to be - * doc/Eval.3: given a writable string. Also, the - * doc/ExprLong.3: refactoring of the Tcl_*Var* routines - * doc/LinkVar.3: by Miguel Sofer is included, so that the - * doc/ParseCmd.3: "part1" argument for them no longer needs - * doc/SetVar.3: to be writable either. - * doc/TraceVar.3: - * doc/UpVar.3: Compatibility support has been enhanced so - * generic/tcl.decls: that a #define of USE_NON_CONST will remove - * generic/tcl.h: all possible source incompatibilities with - * generic/tclBasic.c: the 8.3 version of the header file(s). - * generic/tclCmdMZ.c: The new #define of USE_COMPAT_CONST now does - * generic/tclCompCmds.c:what USE_NON_CONST used to do -- disable - * generic/tclCompExpr.c:only those new CONST's that introduce - * generic/tclCompile.c: irreconcilable incompatibilities. + * generic/tclBasic.c: TIP #280 implementation. + * generic/tclCmdAH.c: + * generic/tclCmdIL.c: + * generic/tclCmdMZ.c: + * generic/tclCompCmds.c: + * generic/tclCompExpr.c: + * generic/tclCompile.c: * generic/tclCompile.h: - * generic/tclDecls.h: Several bugs are also fixed by this patch. - * generic/tclEnv.c: [Bugs 584051,580433] [Patches 585105,582429] - * generic/tclEvent.c: - * generic/tclInt.decls: + * generic/tclExecute.c: + * generic/tclIOUtil.c: * generic/tclInt.h: - * generic/tclIntDecls.h: * generic/tclInterp.c: - * generic/tclLink.c: + * generic/tclNamesp.c: * generic/tclObj.c: - * generic/tclParse.c: - * generic/tclParseExpr.c: * generic/tclProc.c: - * generic/tclTest.c: - * generic/tclUtf.c: - * generic/tclUtil.c: - * generic/tclVar.c: - * mac/tclMacTest.c: - * tests/expr-old.test: - * tests/parseExpr.test: - * unix/tclUnixTest.c: - * unix/tclXtTest.c: - * win/tclWinTest.c: - -2002-08-01 Miguel Sofer <msofer@users.sourceforge.net> - - * generic/tclExecute.c: bugfix (reading freed memory). Testsuite - passed on linux/i386, compile-13.1 hung on linux/alpha. - -2002-08-01 Miguel Sofer <msofer@users.sourceforge.net> - - * generic/tclExecute.c: added a reference count for the complete - execution stack, instead of Tcl_Preserve/Tcl_Release. + * tests/compile.test: + * tests/info.test: + * tests/platform.test: + * tests/safe.test: -2002-08-01 Mo DeJong <mdejong@users.sourceforge.net> +2006-11-27 Kevin B. Kenny <kennykb@acm.org> - * generic/tclCkalloc.c (TclFinalizeMemorySubsystem): Don't lock the - ckalloc mutex before invoking the Tcl_DumpActiveMemory function since - it also locks the same mutex. This code is only executed when "memory - onexit filename" has been executed and Tcl is compiled with - -DTCL_MEM_DEBUG. + * unix/tclUnixChan.c (TclUnixWaitForFile): + * tests/event.test (event-14.*): Corrected a bug where + TclUnixWaitForFile would present select() with the wrong mask on an + LP64 machine if a fd number exceeds 32. Thanks to Jean-Luc Fontaine + for reporting and diagnosing [Bug 1602208]. -2002-08-01 Reinhard Max <max@suse.de> +2006-11-27 Don Porter <dgp@users.sourceforge.net> - * win/tclWinPort.h: The windows headers don't provide socklen_t, so we - have to do it. + * generic/tclExecute.c (TclIncrObj): Correct failure to detect + floating-point increment values. Thanks to William Coleda [Bug + 1602991] -2002-07-31 Miguel Sofer <msofer@users.sourceforge.net> +2006-11-26 Donal K. Fellows <dkf@users.sf.net> - * generic/tclInt.h (USE_THREAD_ALLOC): for unshared objects, - TclDecrRefCount now frees the internal rep before the string rep - - just like the non-macro Tcl_DecrRefCount/TclFreeObj [Bug 524802]. For - the other allocators the fix was done on 2002-03-06. + * tests/mathop.test, doc/mathop.n: More bits and pieces of the TIP#174 + implementation. Note that the test suite is not yet complete. -2002-07-31 Miguel Sofer <msofer@users.sourceforge.net> +2006-11-26 Daniel Steffen <das@users.sourceforge.net> - * generic/tclInterp.c: signed/unsigned comparison warning fixed - (Vince Darley). + * unix/tcl.m4 (Linux): --enable-64bit support. [Patch 1597389] + * unix/configure: autoconf-2.59 [Bug 1230558] -2002-07-31 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2006-11-25 Donal K. Fellows <dkf@users.sf.net> - * unix/tcl.m4 (SC_BUGGY_STRTOD): Enabled caching of test results. + TIP#174 IMPLEMENTATION - * unix/tcl.m4 (SC_BUGGY_STRTOD): Solaris 2.8 still has a buggy - strtod() implementation; make sure we detect it. + * generic/tclMathOp.c (new file): Completed the implementation of the + interpreted versions of all the tcl::mathop commands. Moved to a new + file to make tclCompCmds.c more focused in purpose. - * tests/expr.test (expr-22.*): Marked as non-portable because it seems - that these tests have an annoying tendency to fail in unexpected ways. - [Bugs 584825, 584950, 585986] +2006-11-23 Donal K. Fellows <dkf@users.sf.net> -2002-07-30 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * generic/tclCompCmds.c (Tcl*OpCmd, TclCompile*OpCmd): + * generic/tclBasic.c (Tcl_CreateInterp): Partial implementation of + TIP#174; the commands are compiled, but (mostly) not interpreted yet. - * tests/io.test: - * generic/tclIO.c (WriteChars): Added flag to break out of loop if - nothing of the input is consumed at all, to prevent infinite looping - of called with a non-UTF-8 string. Fixes [Bug 584603] partially. - Added new test "io-60.1". Might need additional changes to Tcl_Main so - that unprintable results are printed as binary data. +2006-11-22 Donal K. Fellows <dkf@users.sf.net> -2002-07-29 Mo DeJong <mdejong@users.sourceforge.net> + TIP#269 IMPLEMENTATION - * unix/Makefile.in: Use CC_SEARCH_FLAGS instead of LD_SEARCH_FLAGS - when linking with ${CC}. - * unix/configure: Regen. - * unix/configure.in: Don't subst CC_SEARCH_FLAGS or LD_SEARCH_FLAGS - since this is now done in tcl.m4. - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Document and set CC_SEARCH_FLAGS - whenever LD_SEARCH_FLAGS is set. [Patch 588290] + * generic/tclCmdMZ.c (Tcl_StringObjCmd): Implementation of the [string + * tests/string.test (string-25.*): is list] command, based on + * doc/string.n: work by Joe Mistachkin, with + enhancements by Donal Fellows for better failindex behaviour. -2002-07-29 Reinhard Max <max@suse.de> +2006-11-22 Don Porter <dgp@users.sourceforge.net> - * unix/tcl.m4 (SC_SERIAL_PORT): Fixed detection for cases when - configure's stdin is not a tty. + * tools/genWinImage.tcl (removed): Removed two files used in + * win/README.binary (removed): production of binary distributions + for Windows, a task we no longer perform. [Bug 1476980] + * generic/tcl.h: Remove mention of win/README.binary in comment - * unix/tclUnixPort.h: - * generic/tclIOSock.c: Changed size_t to socklen_t in - socket-related function calls. + * generic/tcl.h: Moved TCL_REG_BOSONLY #define from tcl.h to + * generic/tclInt.h: tclInt.h. Only know user is Expect, which + already #include's tclInt.h. No need to continue greater exposure. + [Bug 926500] - * unix/configure.in: Added test and fallback definition - for socklen_t. +2006-11-20 Donal K. Fellows <dkf@users.sf.net> - * unix/configure: generated. + * generic/tclBasic.c (Tcl_CreateInterp, TclHideUnsafeCommands): + * library/init.tcl: Refactored the [chan] command's guts so that it + does not use aliases to global commands, making the code more robust. -2002-07-29 Miguel Sofer <msofer@users.sourceforge.net> +2006-11-17 Don Porter <dgp@users.sourceforge.net> - * generic/tclObj.c: fixed a comment + * generic/tclExecute.c (INST_EXPON): Corrected crash on + [expr 2**(1<<63)]. Was operating on cleared bignum Tcl_Obj. - * generic/tcl.h: - * generic/tclBasic.c: - * generic/tclInterp.c: added the new flag TCL_EVAL_INVOKE to the - interface of the Tcl_Eval* functions, removing the - TCL_EVAL_NO_TRACEBACK added yesterday: alias invocations not only - require no tracebacks, but also look up the command name in the global - scope - see new test interp-9.4 - * tests/interp.test: added 9.3 to test for safety of aliases to hidden - commands, 9.4 to test for correct command lookup scope. - -2002-07-29 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * generic/regc_locale.c (cclass): [[:xdigit:]] is only a defined - concept on western characters, so should not allow any unicode digit, - and hence number of ranges in [[:xdigit:]] is fixed. - * tests/reg.test: Added test to detect the bug. - * generic/regc_cvec.c (newcvec): Corrected initial size value in - character vector structure. [Bug 578363] Many thanks to - pvgoran@users.sf.net for tracking this down. - -2002-07-28 Miguel Sofer <msofer@users.sourceforge.net> +2006-11-16 Donal K. Fellows <dkf@users.sf.net> - * generic/tcl.h: - * generic/tclBasic.c: added the new flag TCL_EVAL_NO_TRACEBACK to the - interface of the Tcl_Eval* functions. Modified the error message for - too many nested evaluations. - * generic/tclInterp.h: changed the Alias struct to be of variable - length and store the prefix arguments directly (instead of a pointer - to a Tcl_Obj list). Made AliasObjCmd call Tcl_EvalObjv instead of - TclObjInvoke - thus making aliases trigger execution traces. [Bug - 582522] - * tests/interp.test: - * tests/stack.test: adapted to the new error message. - * tests/trace.test: added tests for aliases firing the exec traces. + * doc/apply.n, doc/chan.n: Added examples. -2002-07-27 Mo DeJong <mdejong@users.sourceforge.net> +2006-11-15 Don Porter <dgp@users.sourceforge.net> - * unix/Makefile.in: Revert fix for Tcl bug 529801 since it was - incorrect and broke the build on other systems. Fix [Bug 587299]. Add - MAJOR_VERSION, MINOR_VERSION, PATCH_LEVEL, SHLIB_LD_FLAGS, - SHLIB_LD_LIBS, CC_SEARCH_FLAGS, LD_SEARCH_FLAGS, and LIB_FILE - variables to support more generic library build/install rules. - * unix/configure: Regen. - * unix/configure.in: Move AC_PROG_RANLIB into tcl.m4. Move shared - build test and setting of MAKE_LIB and MAKE_STUB_LIB into tcl.m4. Move - subst of a number of variables into tcl.m4 where they are defined. - * unix/tcl.m4 (SC_ENABLE_SYMBOLS, SC_CONFIG_CFLAGS): - Subst vars where they are defined. Add MAKE_LIB, MAKE_STUB_LIB, - INSTALL_LIB, and INSTALL_STUB_LIB rules to deal with the ugly details - of running ranlib on static libs at build and install time. Replace - TCL_SHLIB_LD_EXTRAS with SHLIB_LD_FLAGS and use it when building a - shared library. - * unix/tclConfig.sh.in: Add TCL_CC_SEARCH_FLAGS. + TIP#270 IMPLEMENTATION -2002-07-26 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tcl.decls: New public routines Tcl_ObjPrintf, + * generic/tclStringObj.c: Tcl_AppendObjToErrorInfo, Tcl_Format, + * generic/tclInt.h: Tcl_AppendLimitedToObj, + Tcl_AppendFormatToObj and Tcl_AppendPrintfToObj. Former internal + versions removed. - * generic/tclExecute.c: fixed Tcl_Obj leak in code corresponding to - the macro NEXT_INST_V(x, 0, 1). [Bug 587495] + * generic/tclDecls.h: make genstubs + * generic/tclStubInit.c: -2002-07-26 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclBasic.c: Updated callers. + * generic/tclCkalloc.c: + * generic/tclCmdAH.c: + * generic/tclCmdIL.c: + * generic/tclCmdMZ.c: + * generic/tclCompExpr.c: + * generic/tclCompile.c: + * generic/tclDictObj.c: + * generic/tclExecute.c: + * generic/tclIORChan.c: + * generic/tclIOUtil.c: + * generic/tclMain.c: + * generic/tclNamesp.c: + * generic/tclObj.c: + * generic/tclPkg.c: + * generic/tclProc.c: + * generic/tclStrToD.c: + * generic/tclTimer.c: + * generic/tclUtil.c: + * unix/tclUnixFCmd.c: - * generic/tclVar.c (TclObjLookupVar): leak fix and improved comments. + * tools/genStubs.tcl: Updated script to no longer produce the + _ANSI_ARGS_ wrapper in generated declarations. Also revised to accept + variadic prototypes with more than one fixed argument. (This is + possible since TCL_VARARGS and its limitations are no longer in use). + * generic/tcl.h: Some reordering so that macro definitions do + not interfere with the now _ANSI_ARGS_-less stub declarations. -2002-07-26 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclDecls.h: make genstubs + * generic/tclIntDecls.h: + * generic/tclIntPlatDecls.h: + * generic/tclPlatDecls.h: + * generic/tclTomMathDecls.h: - * generic/tclVar.c (TclLookupVar): removed early returns that - prevented the parens from being restored. also removed goto label as - it was not necessary. +2006-11-15 Donal K. Fellows <dkf@users.sf.net> -2002-07-24 Miguel Sofer <msofer@users.sourceforge.net> + * doc/ChnlStack.3, doc/CrtObjCmd.3, doc/GetIndex.3, doc/OpenTcp.3: + * doc/chan.n, doc/fconfigure.n, doc/fcopy.n, doc/foreach.n: + * doc/history.n, doc/http.n, doc/library.n, doc/lindex.n: + * doc/lrepeat.n, doc/lreverse.n, doc/pkgMkIndex.n, doc/re_syntax.n: + Convert \fP to \fR so that man-page scrapers have an easier time. - * generic/tclExecute.c: - * tests/expr-old.test: fix for erroneous error messages in [expr], - [Bug 587140] reported by Martin Lemburg. +2006-11-14 Don Porter <dgp@users.sourceforge.net> -2002-07-25 Joe English <jenglish@users.sourceforge.net> + TIP#261 IMPLEMENTATION - * generic/tclProc.c: fix for [Tk Bug 219218] "error handling with - bgerror in Tk" + * generic/tclNamesp.c: [namespace import] with 0 arguments + introspects the list of imported commands. -2002-07-24 Miguel Sofer <msofer@users.sourceforge.net> +2006-11-13 Kevin B. Kenny <kennykb@users.sourceforge.net> - * generic/tclExecute.c: restoring full TCL_COMPILE_DEBUG - functionality. + * generic/tclThreadStorage.c (Tcl_InitThreadStorage): + (Tcl_FinalizeThreadStorage): Silence a compiler warning about + presenting a volatile pointer to 'memset'. -2002-07-24 Don Porter <dgp@users.sourceforge.net> +2006-11-13 Don Porter <dgp@users.sourceforge.net> - * tests/unixInit.test: relaxed unixInit-3.1 to accept iso8859-15 as a - valid C encoding. [Bug 575336] + * generic/tclIO.c: When [gets] on a binary channel needs to use + the "iso8859-1" encoding, save a copy of that encoding per-thread to + avoid repeated freeing and re-loading of it from the file system. This + replaces the cached copy of this encoding that the platform + initialization code used to keep in pre-8.5 releases. -2002-07-24 Miguel Sofer <msofer@users.sourceforge.net> +2006-11-13 Daniel Steffen <das@users.sourceforge.net> - * generic/tclExecute.c: restoring the tcl_traceCompile functionality - while I repair tcl_traceExec. The core now compiles and runs also - under TCL_COMPILE_DEBUG, but execution in the bytecode engine can - still not be traced. + * generic/tclCompExpr.c: Fix gcc warnings about 'cast to/from + * generic/tclEncoding.c: pointer from/to integer of different + * generic/tclEvent.c: size' on 64-bit platforms by casting + * generic/tclExecute.c: to intermediate types + * generic/tclHash.c: intptr_t/uintptr_t via new PTR2INT(), + * generic/tclIO.c: INT2PTR(), PTR2UINT() and UINT2PTR() + * generic/tclInt.h: macros. [Patch 1592791] + * generic/tclProc.c: + * generic/tclTest.c: + * generic/tclThreadStorage.c: + * generic/tclTimer.c: + * generic/tclUtil.c: + * unix/configure.in: + * unix/tclUnixChan.c: + * unix/tclUnixPipe.c: + * unix/tclUnixPort.h: + * unix/tclUnixTest.c: + * unix/tclUnixThrd.c: -2002-07-24 Daniel Steffen <das@users.sourceforge.net> + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 - * unix/Makefile.in: - * unix/configure.in: corrected fix for [Bug 529801]: ranlib only - needed for static builds on Mac OS X. - * unix/configure: Regen. - * unix/tclLoadDyld.c: fixed small bugs introduced by Vince, - implemented library unloading correctly (needs OS X 10.2). +2006-11-12 Donal K. Fellows <dkf@users.sf.net> -2002-07-23 Joe English <jenglish@users.sourceforge.net> + * generic/tclInt.h, generic/tclInt.decls: Transfer TclPtrMakeUpvar and + TclObjLookupVar to the internal stubs table. - * doc/OpenFileChnl.3: (Updates from Larry Virden) - * doc/open.n: - * doc/tclsh.1: Fix section numbers in Unix man page references. - * doc/lset.n: In EXAMPLES section, include command to set the initial - value used in subsequent examples. - * doc/http.n: Package version updated to 2.4. +2006-11-10 Daniel Steffen <das@users.sourceforge.net> -2002-07-23 Mo DeJong <mdejong@users.sourceforge.net> + * tests/fCmd.test (fCmd-6.26): fix failure when env(HOME) path + contains symlinks. - * unix/configure: Regen. - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Enable 64 bit compilation when using - the native compiler on a 64 bit version of IRIX. [Bug 219220] + * macosx/Tcl.xcodeproj/project.pbxproj: remove tclParseExpr.c; when + running testsuite from inside Xcdoe, skip stack-3.1 (it only fails + under those circumstances). -2002-07-23 Mo DeJong <mdejong@users.sourceforge.net> + * unix/tcl.m4 (Darwin): suppress linker arch warnings when building + universal for both 32 & 64 bit and no 64bit CoreFoundation is + available; sync with tk tcl.m4 change. + * unix/configure.in: whitespace. + * unix/configure: autoconf-2.59 - * unix/Makefile.in: Combine ranlib tests and avoid printing unless - ranlib is actually run. +2006-11-09 Don Porter <dgp@users.sourceforge.net> -2002-07-23 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclParseExpr.c (removed): Moved all the code of + * generic/tclCompExpr.c: tclParseExpr.c into tclCompExpr.c. + * unix/Makefile.in: This sets the stage for expr compiling to work + * win/Makefile.in: directly with the full parse tree structures, + * win/makefile.bc: and not have to pass through the information + * win/makefile.vc: lossy format of an array of Tcl_Tokens. + * win/tcl.dsp: - * unix/tcl.m4 (SC_PATH_X): Set XINCLUDES to "" instead of "# no - special path needed" or "# no include files found" when x headers - cannot be located. +2006-11-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-07-22 Vince Darley <vincentdarley@users.sourceforge.net> + TIP#272 IMPLEMENTATION - * generic/tclIOUtil.c: made tclNativeFilesystem static (since 07-19 - changes removed its usage elsewhere), and added comments about its - usage. - * generic/tclLoad.c: - * generic/tcl.h: - * generic/tcl.decls: - * doc/FileSystem.3: converted last load-related ClientData parameter - to Tcl_LoadHandle opaque structure, removing a couple of casts in the - process. + * generic/tclCmdMZ.c (Tcl_StringObjCmd): Implementation of the + * tests/string.test, tests/stringComp.test: [string reverse] command + * doc/string.n: from TIP#272. - * generic/tclInt.h: removed tclNativeFilesystem declaration since it - is now static again. + * generic/tclCmdIL.c (Tcl_LreverseObjCmd): Implementation of the + * generic/tclBasic.c, generic/tclInt.h: [lreverse] command from + * tests/cmdIL.test (cmdIL-7.*): TIP#272. + * doc/lreverse.n: -2002-07-22 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2006-11-08 Donal K. Fellows <dkf@users.sf.net> - * tests/expr.test (expr-22.*): Added tests to help detect the - corrected handling. - * generic/tclExecute.c (IllegalExprOperandType): Improved error - message generated when attempting to manipulate Inf and NaN values. - * generic/tclParseExpr.c (GetLexeme): Allowed parser to recognise - 'Inf' as a floating-point number. [Bug 218000] + * generic/tclIO.c, generic/tclPkg.c: Style & clarity rewrites. -2002-07-21 Don Porter <dgp@users.sourceforge.net> +2006-11-07 Andreas Kupries <andreask@activestate.com> - * tclIOUtil.c: Silence compiler warning. [Bug 584408]. + * unix/tclUnixFCmd.c (CopyFile): Added code to fall back to a + hardwired default block size should the filesystem report a bogus + value. [Bug 1586470] -2002-07-19 Vince Darley <vincentdarley@users.sourceforge.net> +2006-11-04 Don Porter <dgp@users.sourceforge.net> - * generic/tclIOUtil.c: fix to GetFilesystemRecord - * win/tclWinFile.c: - * unix/tclUnixFile.c: fix to subtle problem with links shown up by - latest tclkit builds. + * generic/tclStringObj.c: Changed Tcl_ObjPrintf() response to an + invalid format specifier string. No longer panics; now produces an + error message as output. -2002-07-19 Mo DeJong <mdejong@users.sourceforge.net> + TIP#274 IMPLEMENTATION - * unix/configure: - * unix/configure.in: - * win/configure: - * win/configure.in: Add AC_PREREQ(2.13) in an attempt to make it more - clear that the configure scripts must be generated with autoconf - version 2.13. [Bug 583573] + * generic/tclParseExpr.c: Exponentiation operator is now right + * tests/expr.test: associative. [Patch 1556802] -2002-07-19 Vince Darley <vincentdarley@users.sourceforge.net> +2006-11-03 Miguel Sofer <msofer@users.sf.net> - * unix/Makefile.in: fix to build on MacOS X [Bug 529801], bug report - and fix from jcw. + * generic/tclBasic.c (TEOVI): fix por possible leak of a Command in + the presence of execution traces that delete it. -2002-07-19 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclBasic.c (TEOVI): + * tests/trace.test (trace-21.11): fix for [Bug 1590232], execution + traces may cause a second command resolution in the wrong namespace. + +2006-11-03 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * tests/event.test (event-11.5): Rewrote tests to stop Tcl from + * tests/io.test (multiple tests): opening sockets that are + * tests/ioCmd.test (iocmd-15.1,16,17): reachable from outside hosts + * tests/iogt.test (__echo_srv__.tcl): where not necessary. This is + * tests/socket.test (multiple tests): noticably annoying on some + * tests/unixInit.test (unixInit-1.2): systems (e.g., Windows). + +2006-11-02 Daniel Steffen <das@users.sourceforge.net> + + * macosx/Tcl.xcodeproj/project.pbxproj: check autoconf/autoheader exit + status and stop build if they fail. + +2006-11-02 Jeff Hobbs <jeffh@ActiveState.com> + + * doc/ParseCmd.3, doc/Tcl.n, doc/eval.n, doc/exec.n: + * doc/fconfigure.n, doc/interp.n, doc/unknown.n: + * library/auto.tcl, library/init.tcl, library/package.tcl: + * library/safe.tcl, library/tm.tcl, library/msgcat/msgcat.tcl: + * tests/all.tcl, tests/basic.test, tests/cmdInfo.test: + * tests/compile.test, tests/encoding.test, tests/execute.test: + * tests/fCmd.test, tests/http.test, tests/init.test: + * tests/interp.test, tests/io.test, tests/ioUtil.test: + * tests/iogt.test, tests/namespace-old.test, tests/namespace.test: + * tests/parse.test, tests/pkg.test, tests/pkgMkIndex.test: + * tests/proc.test, tests/reg.test, tests/trace.test: + * tests/upvar.test, tests/winConsole.test, tests/winFCmd.test: + * tools/tclZIC.tcl: + * generic/tclParse.c (Tcl_ParseCommand): Replace {expand} with {*} + officially (TIP #293). Leave -DALLOW_EXPAND=0|1 option to keep + {expand} syntax for transition users. [Bug 1589629] + +2006-11-02 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * generic/tclBasic.c, generic/tclInterp.c, generic/tclProc.c: Silence + warnings from gcc over signed/unsigned and TclStackAlloc(). + * generic/tclCmdMZ.c: Update to more compact and clearer coding style. + +2006-11-02 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCmdAH.c: Further revisions to produce the routines + * generic/tclInt.h: TclFormat() and TclAppendFormatToObj() that + * generic/tclNamesp.c: accept (objc, objv) arguments rather than + * generic/tclStringObj.c: any varargs stuff. + + * generic/tclBasic.c: Further revised TclAppendPrintToObj() and + * generic/tclCkalloc.c: TclObjPrintf() routines to panic when unable + * generic/tclCmdAH.c: to complete their formatting operations, + * generic/tclCmdIL.c: rather than report an error message. This + * generic/tclCmdMZ.c: means an interp argument for error message + * generic/tclDictObj.c: recording is no longer needed, further + * generic/tclExecute.c: simplifying the interface for callers. + * generic/tclIORChan.c: + * generic/tclIOUtil.c: + * generic/tclInt.h: + * generic/tclMain.c: + * generic/tclNamesp.c: + * generic/tclParseExpr.c: + * generic/tclPkg.c: + * generic/tclProc.c: + * generic/tclStringObj.c: + * generic/tclTimer.c: + * generic/tclUtil.c: + * unix/tclUnixFCmd.c: - * win/tclWinSerial.c (no_timeout): Made this variable static. +2006-11-02 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * generic/tclExecute.c, generic/tclCompile.c, generic/tclBasic.c: - * generic/tclCompile.h (builtinFuncTable, instructionTable): Added - prefix to these symbols because they are visible outside the Tcl - library. + * tests/winPipe.test (winpipe-4.[2345]): Made robust when run in + directory with spaces in its name. - * generic/tclCompExpr.c (operatorTable): - * unix/tclUnixTime.c (tmKey): - * generic/tclIOUtil.c (theFilesystemEpoch, filesystemWantToModify, - (filesystemIteratorsInProgress, filesystemOkToModify): Made these - variables static. + * generic/tclCmdAH.c: Clean up uses of cast NULLs. - * unix/tclUnixFile.c: Renamed nativeFilesystem to - * win/tclWinFile.c: tclNativeFilesystem and declared - * generic/tclIOUtil.c: it properly in tclInt.h - * generic/tclInt.h: + * generic/tclInterp.c (AliasObjCmd): Added more explanatory comments. - * generic/tclUtf.c (totalBytes): Made this array static and const. + * generic/tclBasic.c (TclEvalObjvInternal): Rewrote so that comments + are relevant and informative once more. Also made the unknown handler + processing use the Tcl execution stack for working space, and not the + general heap. - * generic/tclParse.c (typeTable): Made this array static and const. - (Tcl_ParseBraces): Simplified error handling case so that scans are - only performed when needed, and flags are simpler too. +2006-11-01 Daniel Steffen <das@users.sourceforge.net> - * license.terms: Added AS to list of copyright holders; it's only fair - for the current gatekeepers to be listed here! + * unix/tclUnixPort.h: ensure MODULE_SCOPE is defined before use, so + that tclPort.h can once again be included without tclInt.h. - * tests/cmdMZ.test: Renamed constraint for clarity. [Bug 583427] - Added tests for the [time] command, which was previously only - indirectly tested! + * generic/tclEnv.c (Darwin): mark _environ symbol as unexported even + when MODULE_SCOPE != __private_extern__. -2002-07-18 Vince Darley <vincentdarley@users.sourceforge.net> +2006-10-31 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: Refactored and renamed the routines + * generic/tclCkalloc.c: TclObjPrintf, TclFormatObj, and + * generic/tclCmdAH.c: TclFormatToErrorInfo to a new set of routines + * generic/tclCmdIL.c: TclAppendPrintfToObj, TclAppendFormatToObj, + * generic/tclCmdMZ.c: TclObjPrintf, and TclObjFormat, with the + * generic/tclDictObj.c: intent of making the latter list, plus + * generic/tclExecute.c: TclAppendLimitedToObj and + * generic/tclIORChan.c: TclAppendObjToErrorInfo, public via a revised + * generic/tclIOUtil.c: TIP 270. * generic/tclInt.h: - * generic/tcl.h: - * */*Load*.c: added comments on changes of 07/17 and replaced - clientData with Tcl_LoadHandle in all locations. - - * generic/tclFCmd.c: - * tests/fileSystem.test: fixed a 'knownBug' with 'file - attributes ""' - * tests/winFCmd.test: - * tests/winPipe.test: - * tests/fCmd.test: - * tessts/winFile.test: added 'pcOnly' constraint to some tests to make - for more useful 'tests skipped' log from running all tests on - non-Windows platforms. - -2002-07-17 Miguel Sofer <msofer@users.sourceforge.net> - - * generic/tclBasic.c (CallCommandTraces): delete traces now receive - the FQ old name of the command. [Bug 582532] (Don Porter) + * generic/tclMain.c: + * generic/tclNamesp.c: + * generic/tclParseExpr.c: + * generic/tclPkg.c: + * generic/tclProc.c: + * generic/tclStringObj.c: + * generic/tclTimer.c: + * generic/tclUtil.c: + * unix/tclUnixFCmd.c: -2002-07-18 Vince Darley <vincentdarley@users.sourceforge.net> +2006-10-31 Miguel Sofer <msofer@users.sf.net> - * tests/ioUtil.test: added constraints to 1.4,2.4 so they don't run - outside of tcltest. [Bugs 583276,583277] + * generic/tclBasic.c, generic/tcl.h, generic/tclInterp.c: + * generic/tclNamesp.c: removing the flag bit TCL_EVAL_NOREWRITE, the + last remnant of the callObjc/v fiasco. It is not needed, as it is now + always set and checked or'ed with TCL_EVAL_INVOKE. -2002-07-17 Miguel Sofer <msofer@users.sourceforge.net> +2006-10-31 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclVar.c (DupParsedVarName): nasty bug fixed, reported by - Vince Darley. + * win/rules.vc: Fix for [Bug 1582769] - options conflict with VC2003. -2002-07-17 Miguel Sofer <msofer@users.sourceforge.net> +2006-10-31 Donal K. Fellows <dkf@users.sf.net> - * generic/tclVar.c (TclPtrIncrVar): missing CONST in declarations, - inconsistent with tclInt.h. Thanks to Vince Darley for reporting, boo - to gcc for not complaining. + * generic/tclBasic.c, generic/tclNamesp.c, generic/tclProc.c: + * generic/tclInt.h: Removed the callObjc and callObjv fields from the + Interp structure. They did not function correctly and made other parts + of the core amazingly complex, resulting in a substantive change to + [info level] behaviour. [Bug 1587618] + * library/clock.tcl: Removed use of [info level 0] for calculating the + command name as used by the user and replace with a literal. What's + there now is sucky, but at least appears to be right to most users. + * tests/namespace.test (namespace-42.7,namespace-47.1): Reverted + changes to these tests. + * tests/info.test (info-9.11,info-9.12): Added knownBug constraint + since these tests require a different behaviour of [info level] than + is possible because of other dependencies. -2002-07-17 Vince Darley <vincentdarley@users.sourceforge.net> +2006-10-30 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclInt.h: - * generic/tclIOUtil.c: - * generic/tclLoadNone.c: - * unix/tclLoadAout.c: - * unix/tclLoadDl.c: - * unix/tclLoadDld.c: - * unix/tclLoadDyld.c: - * unix/tclLoadNext.c: - * unix/tclLoadOSF.c: - * unix/tclLoadShl.c: - * mac/tclMacLoad.c: - * win/tclWinLoad.c: modified to move more functionality to the generic - code and avoid duplication. Partial replacement of internal uses of - clientData with opaque Tcl_LoadHandle. A little further work still - needed, but significant changes are done. - -2002-07-17 D. Richard Hipp <drh@hwaci.com> - - * library/msgcat/msgcat.tcl: fix a comment that was causing problems - for programs (ex: mktclapp) that embed the initialization scripts in - strings. - -2002-07-17 Miguel Sofer <msofer@users.sourceforge.net> + * tools/tcltk-man2html.tcl (option-toc): handle any kind of options + defined toc section (needed for ttk docs) - * generic/tclInt.decls: - * generic/tclIntDecls.h: - * generic/tclStubInit.c: - * generic/tclVar.c: removing the now redundant functions to access - indexed variables: Tcl(Get|Set|Incr)IndexedScalar() and - Tcl(Get|Set|Incr)ElementOfIndexedArray(). +2006-10-30 Miguel Sofer <msofer@users.sf.net> -2002-07-17 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclBasic.c (TEOVI): insured that the interp's callObjc/v + fields are restored after traces run, as they be spoiled. This was + causing a segfault in tcllib's profiler tests. - * generic/tclExecute.c (TclExecuteByteCode): Minor fixes to make this - file compile with SunPro CC... +2006-10-30 Don Porter <dgp@users.sourceforge.net> -2002-07-17 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclExecute.c (INST_MOD): Corrected improper testing of the + * tests/expr.test: sign of bignums when applying Tcl's + division rules. Thanks to Peter Spjuth. [Bug 1585704] - * generic/tclExecute.c: modified to do variable lookup explicitly, and - then either inlining the variable access or else calling the new - TclPtr(Set|Get|Incr)Var functions in tclVar.c - * generic/tclInt.h: declare some functions previously local to - tclVar.c for usage by TEBC. - * generic/tclVar.c: removed local declarations; moved all special - accessor functions for indexed variables to the end of the file - they - are unused and ready for removal, but left there for the time being as - they are in the internal stubs table. +2006-10-29 Miguel Sofer <msofer@users.sf.net> - ** WARNING FOR BYTECODE MAINTAINERS ** - TCL_COMPILE_DEBUG is currently not functional; will be fixed ASAP. + * generic/tclNamesp.c (EnsembleImplementationCmd): + * tests/namespace.test (47.7-8): reverted a wrong "optimisation" that + completely broke snit; added two tests. -2002-07-16 Mo DeJong <mdejong@users.sourceforge.net> +2006-10-28 Donal K. Fellows <dkf@users.sf.net> - * unix/Makefile.in: - * win/Makefile.in: Add a more descriptive warning in the event `make - genstubs` needs to be rerun. + * generic/tclProc.c (ObjInterpProcEx, TclObjInterpProcCore): Split the + core of procedures to make it easier to build procedure-like code + without going through horrible contortions. This is the last critical + component to make advanced OO systems workable as simple loadable + extensions. TOIPC is now in the internal stub table. + (MakeProcError, MakeLambdaError): Refactored ProcessProcResultCode to + be simpler, some of which goes to TclObjInterpProcCore, and the rest + of which is now in these far simpler routines which just do errorInfo + stack generation for different types of procedure-like entity. + * tests/apply.test (apply-5.1): Updated to expect the more informative + form of message. -2002-07-16 Mo DeJong <mdejong@users.sourceforge.net> +2006-10-27 Donal K. Fellows <dkf@users.sf.net> - * unix/Makefile.in: Use dltest.marker file to keep track of when the - dltest package is up to date. This fixes [Bug 575768] since tcltest is - no longer linked every time. - * unix/dltest/Makefile.in: Create ../dltest.marker after a successful - `make all` run in dltest. + * generic/tclVar.c (HasLocalVars): New macro to make various bits and + pieces cleaner. -2002-07-16 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclNamesp.c (TclSetNsPath): Expose SetNsPath() through + internal stubs table with semi-external name. - * unix/configure: Regen. - * unix/configure.in: Remove useless subst of TCL_BIN_DIR. + * generic/tclInt.h (CallFrame): Add a field for handling context data + for extensions (like object systems) that should be tied to a call + frame (and not a command or interpreter). -2002-07-15 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclBasic.c (TclRenameCommand): Change to take CONST args; + they were only ever used in a constant way anyway, so this appears to + be a spot that was missed during TIP#27 work. - * generic/tclVar.c: inaccurate comment fixed +2006-10-26 Miguel Sofer <msofer@users.sf.net> -2002-07-15 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclProc.c (SetLambdaFromAny): minor change, eliminate + redundant call to Tcl_GetString (thanks aku). - * generic/tclBasic.c (Tcl_AddObjErrorInfo): - * generic/tclExecute.c (TclUpdateReturnInfo): - * generic/tclInt.h: - * generic/tclProc.c: - Added two Tcl_Obj to the ExecEnv structure to hold the fully qualified - names "::errorInfo" and "::errorCode" to cache the addresses of the - corresponding variables. The two most frequent setters of these - variables now profit from the new variable name caching. + * generic/tclInterp.c (ApplyObjCmd): + * generic/tclNamesp.c (EnsembleImplementationCmd): replaced ckalloc + (heap) with TclStackAlloc (execution stack). -2002-07-15 Miguel Sofer <msofer@users.sourceforge.net> +2006-10-24 Miguel Sofer <msofer@users.sf.net> - * generic/tclVar.c: refactorisation to reuse already looked-up Var - pointers; definition of three new Tcl_Obj types to cache variable name - parsing and lookup for later reuse; modification of internal functions - to profit from the caching. + * tests/info.test (info-9.11-12): tests for [Bug 1577492] + * tests/apply.test (apply-4.3-5): tests for [Bug 1574835] - * generic/tclInt.decls: - * generic/tclInt.h: - * generic/tclIntDecls.h: - * generic/tclNamesp.c: adding CONST qualifiers to variable names - passed to Tcl_FindNamespaceVar and to variable resolvers; adding CONST - qualifier to the 'msg' argument to TclLookupVar. Needed to avoid code - duplication in the new tclVar.c code. + * generic/tclProc.c (ObjInterpProcEx): disable itcl hacks for calls + from ApplyObjCmd (islambda==1), as they mess apply's error messages + [Bug 1583266] - * tests/set-old.test: - * tests/var.test: slight modification of error messages due to the - modifications in the tclVar.c code. +2006-10-23 Miguel Sofer <msofer@users.sf.net> -2002-07-15 Don Porter <dgp@users.sourceforge.net> + * generic/tclProc.c (ApplyObjCmd): fix wrong#args for apply by using + the ensemble rewrite engine. [Bug 1574835] + * generic/tclInterp.c (AliasObjCmd): previous commit missed usage of + TCL_EVAL_NOREWRITE for aliases. - * tests/unixInit.test: Improved constraints to protect /tmp. [Bug - 581403] + * generic/tclBasic.c (TclEvalObjvInternal): removed redundant check + for ensembles. [Bug 1577628] -2002-07-15 Vince Darley <vincentdarley@users.sourceforge.net> + * library/clock.tcl (format, scan): corrected wrong # args messages to + * tests/clock.test (3.1, 34.1): make use of the new rewrite + capabilities of [info level] - * tests/winFCmd.test: renamed 'win2000' and 'notWin2000' to more - appropriate constraint names. - * win/tclWinFile.c: updated comments to reflect 07-11 changes. - * win/tclWinFCmd.c: made ConvertFileNameFormat static again, since no - longer used in tclWinFile.c - * mac/tclMacFile.c: completed TclpObjLink implementation which was - previously lacking. - * generic/tclIOUtil.c: comment cleanup and code speedup. + * generic/tcl.h: Lets TEOV update the iPtr->callObj[cv] new + * generic/tclBasic.c: fields, except when the flag bit + * generic/tclInt.h: TCL_EVAL_NOREWRITE is present. These values + * generic/tclNamesp.c: are used by Tcl_PushCallFrame to initialise + * generic/tclProc.c: the frame's obj[cv] fields, and allows + * tests/namespace.test: [info level] to know and use ensemble + rewrites. [Bug 1577492] -2002-07-14 Don Porter <dgp@users.sourceforge.net> + ***POTENTIAL INCOMPATIBILITY*** + The return value from [info level 0] on interp alias calls is changed: + previously returned the target command (including curried values), now + returns the source - what was actually called. + +2006-10-23 Miguel Sofer <msofer@users.sf.net> + + * generic/tcl.h: Modified the Tcl call stack so there is + * generic/tclBasic.c: always a valid CallFrame, even at level 0 + * generic/tclCmdIL.c: [Patch 1577278]. Most of the changes + * generic/tclInt.h: involve removing tests for a NULL + * generic/tclNamesp.c: iPtr->(var)framePtr. There is now a + * generic/tclObj.c: CallFrame pushed at interp creation with a + * generic/tclProc.c: pointer to it stored in iPtr->rootFramePtr. + * generic/tclTrace.c: A second unused field in Interp is + * generic/tclVar.c: hijacked to enable further functionality, + currently unused (but with several FRQs depending on it). - * generic/tclInt.h: Removed declarations that duplicated entries - in the (internal) stub table. + ***POTENTIAL INCOMPATIBILITY*** + Any user that includes tclInt.h and needs to determine if it is + running at level 0 should change (iPtr->varFramePtr == NULL) to + (iPtr->varFramePtr == iPtr->rootFramePtr). - * library/tcltest/tcltest.tcl: Corrected errors in handling of - configuration options -constraints and -limitconstraints. +2006-10-23 Don Porter <dgp@users.sourceforge.net> - * README: Bumped HEAD to version 8.4b2 so we can - * generic/tcl.h: distinguish it from the 8.4b1 release. + * README: Bump version number to 8.5a6 + * generic/tcl.h: * tools/tcl.wse.in: - * unix/configure*: + * unix/configure.in: * unix/tcl.spec: * win/README.binary: - * win/configure*: - -2002-07-11 Vince Darley <vincentdarley@users.sourceforge.net> - - * doc/file.n: - * win/tclWinFile.c: on Win 95/98/ME the long form of the path is used - as a normalized form. This is required because short forms are not a - robust representation. The file normalization function has been sped - up, but more performance gains might be possible, if speed is still an - issue on these platforms. - -2002-07-11 Don Porter <dgp@users.sourceforge.net> - - * library/tcltest/tcltest.tcl: Corrected reaction to existing but - false ::tcl_interactive. - - * doc/Hash.3: Overlooked CONST documentation update. - -2002-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * generic/tclCkalloc.c: ckalloc() and friends take the block size as - an unsigned, so we should use %ud when reporting it in fprintf() and - panic(). - -2002-07-11 Miguel Sofer <msofer@users.sourceforge.net> - - * generic/tclCompile.c: now setting local vars undefined at compile - time, instead of waiting until the proc is initialized. - * generic/tclProc.c: use macro TclSetVarUndefined instead of directly - setting the flag. + * win/configure.in: -2002-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * unix/configure: autoconf-2.59 + * win/configure: - * tests/cmdAH.test: [file attr -perm] is Unix-only, so add [catch] - when not inside a suitably-protected test. +2006-10-21 Miguel Sofer <msofer@users.sf.net> -2002-07-10 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tcl.h, generic/tclHash.c: Tcl_FindHashEntry now calls + Tcl_CreateHashEntry with a newPtr set to NULL: this would have caused + a segfault previously and eliminates duplicated code. A macro has been + added to tcl.h (only used when TCL_PRESERVE_BINARY_COMPATABALITY is + not set - i.e., not by default). - * tests/unixFCmd.test, tests/fileName.test: - * tests/fCmd.test: Removed [exec] of Unix utilities that have - equivalents in standard Tcl. [Bug 579268] Also simplified some of - unixFCmd.test while I was at it. +2006-10-20 Reinhard Max <max@tclers.tk> -2002-07-10 Don Porter <dgp@users.sourceforge.net> + * unix/configure.in: Added autodetection for OS-supplied timezone + * unix/Makefile.in: files and configure switches to override the + * unix/configure: detected default. - * tests/tcltest.test: Greatly reduced the number of [exec]s, using - slave interps instead. - * library/tcltest/tcltest.tcl: Fixed bug uncovered in the conversion - where a message was written to stdout instead of [outputChannel]. +2006-10-20 Daniel Steffen <das@users.sourceforge.net> - * tests/basic.test: Cleaned up, constrained, and reduced the - * tests/compile.test: amount of [exec] usage in the test suite. - * tests/encoding.test: - * tests/env.test: - * tests/event.test: - * tests/exec.test: - * tests/io.test: - * tests/ioCmd.test: - * tests/regexp.test: - * tests/regexpComp.test: - * tests/socket.test: - * tests/tcltest.test: - * tests/unixInit.test: - * tests/winDde.test: - * tests/winPipe.test: + *** 8.5a5 TAGGED FOR RELEASE *** -2002-07-10 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * tools/tcltk-man2html.tcl: add support for alpha & beta versions to + useversion glob pattern. [Bug 1579941] - * tests/cmdAH.test: Removed [exec] of Unix utilities. [Bug 579211] +2006-10-18 Don Porter <dgp@users.sourceforge.net> - * tests/expr.test: Added tests to make sure that this works. - * generic/tclExecute.c (ExprCallMathFunc): Functions should also be - able to return wide-ints. [Bug 579284] + * changes: 8.5a5 release date set -2002-07-08 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * doc/Encoding.3: Missing doc updates (mostly Table of + * doc/Ensemble.3: Contents) exposed by `make checkdoc` + * doc/FileSystem.3: + * doc/GetTime.3: + * doc/PkgRequire.3: - * tests/socket.test: Fixed [Bug 578164]. The original reason for the - was a DNS outage while running the testsuite. Changed [info hostname] - to 127.0.0.1 to bypass DNS, knowing that we operate on the local - host. +2006-10-17 Miguel Sofer <msofer@users.sf.net> -2002-07-08 Don Porter <dgp@users.sourceforge.net> + * generic/tclInterp.c (ApplyObjCmd): fixed bad error in 2006-10-12 + commit: interp released too early. Spotted by mistachkin. - * doc/tcltest.n: Fixed incompatibility in [viewFile]. - * library/tcltest/tcltest.tcl: Corrected docs. Bumped to 2.2.1. - * library/tcltest/pkgIndex.tcl: [Bug 578163] +2006-10-16 Miguel Sofer <msofer@users.sf.net> -2002-07-08 Vince Darley <vincentdarley@users.sourceforge.net> + * tclProc.c (SetLambdaFromAny): + * tests/apply.test (9.1-9.2): plugged intrep leak [Bug 1578454], + found by mjanssen. - * tests/cmdAH.test: - * tests/fCmd.test: - * tests/fileName.test: tests which rely on 'file link' need a - constraint so they don't run on older Windows OS. [Bug 578158] - * generic/tclIOUtil.c: - * generic/tcl.h: - * generic/tclInt.h: - * generic/tclTest.c: - * mac/tclMacChan.c: - * unix/tclUnixChan.c: - * win/tclWinChan.c: - * doc/FileSystem.3: cleaned up internal handling of - Tcl_FSOpenFileChannel to remove duplicate code, and make writing - external vfs's clearer and easier. No functionality change. Also - clarify that objects with refCount zero should not be passed in to the - Tcl_FS API, and prevent segfaults from occuring on such user errors. - [Bug 578617] - -2002-07-06 Don Porter <dgp@users.sourceforge.net> - - * tests/pkgMkIndex.test: Constrained tests of [load] package indexing - to those platforms where the testing shared libraries have been built. - [Bug 578166]. - -2002-07-05 Don Porter <dgp@users.sourceforge.net> - - * changes: added recent changes - -2002-07-05 Reinhard Max <max@suse.de> - - * generic/tclClock.c (FormatClock): Convert the format string to - UTF8 before calling TclpStrftime, so that non-ASCII characters don't - get mangled when the result string is being converted back. - * tests/clock.test: Added a test for that. - -2002-07-05 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * unix/Makefile.in (ro-test,ddd,GDB,DDD): Created new targets to allow - running the test suite with a read-only current directory, running - under ddd instead of gdb, and factored out some executable names for - broken sites (like mine) where gdb and ddd are installed with - non-standard names... - - * tests/httpold.test: Altered test names to httpold-* to avoid clashes - with http.test, and stopped tests from failing when the current - directory is not writable... - - * tests/event.test: Stop these tests from failing - * tests/ioUtil.test: when the current directory is - * tests/regexp.test: not writable... - * tests/regexpComp.test: - * tests/source.test: - * tests/unixFile.test: - * tests/unixNotfy.test: - - * tests/unixFCmd.test: Trying to make these test-files - * tests/macFCmd.test: not bomb out with an error when - * tests/http.test: the current directory is not - * tests/fileName.test: writable... - * tests/env.test: +2006-10-16 Andreas Kupries <andreask@activestate.com> -2002-07-05 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclBasic.c: Moved TIP#219 cleanup to DeleteInterpProc. - *** 8.4b1 TAGGED FOR RELEASE *** +2006-10-16 Daniel Steffen <das@users.sourceforge.net> -2002-07-04 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * changes: updates for 8.5a5 release. - * tests/cmdMZ.test (cmdMZ-1.4): - * tests/cmdAH.test: More fixing of writable-current-dir assumption. - [Bug 575824] + * unix/tclUnixThrd.c (TclpThreadGetStackSize): Darwin: fix for main + thread, where pthread_get_stacksize_np() returns incorrect info. -2002-07-04 Miguel Sofer <msofer@users.sourceforge.net> + * macosx/GNUmakefile: don't redo prebinding of non-prebound binaires. - * tests/basic.test: Same issue as below; fixed [Bug 575817] +2006-10-16 Don Porter <dgp@users.sourceforge.net> -2002-07-04 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * generic/tclPkg.c (ExactRequirement): Plugged memory leak. Also + changed Tcl_Alloc()/Tcl_Free() calls to ckalloc()/ckfree() for easier + memory debugging in the future. [Bug 1568373] - * tests/socket.test: - * tests/winPipe.test: - * tests/pid.test: Fixed [Bug 575848]. See below for a description the - general problem. + * library/tcltest/tcltest.tcl: Revise tcltest bump to 2.3a1. + * library/tcltest/pkgIndex.tcl: This permits more features to be + * unix/Makefile.in: added to tcltest before we reach version 2.3.0 + * win/Makefile.in: best timed to match the release of Tcl 8.5.0. + * win/makefile.vc: This also serves as a demo of TIP 268 features - All the bugs below are instances of the same problem: The testsuite - assumes [pwd] = [temporaryDirectory] and writable. +2006-10-13 Colin McCormack <coldstore@users.sf.net> - * tests/iogt.test: Fixed [Bug 575860] - * tests/io.test: Fixed [Bug 575862] - * tests/exec.test: - * tests/ioCmd.test: Fixed [Bug 575836] + * win/tclWinFile.c: corrected erroneous attempt to protect against + NULL return from Tcl_FSGetNormalizedPath per [Bug 1548263] causing + [Bug 1575837]. + * win/tclWinFile.c: alfredd supplied patch to fix [Bug 1575837] -2002-07-03 Don Porter <dgp@users.sourceforge.net> +2006-10-13 Daniel Steffen <das@users.sourceforge.net> - * tests/pkg1/direct1.tcl: removed - * tests/pkg1/pkgIndex.tcl: removed - * tests/pkgMkIndex.test: Imported auxilliary files from tests/pkg1 - into the test file pkgMkIndex.test itself. Formatting fixes. + * unix/tclUnixThrd.c (TclpThreadGetStackSize): on Darwin, use + * unix/tcl.m4: pthread_get_stacksize_np() API to get thread stack size + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 - * unix/Makefile.in: removed tests/pkg/* from `make dist` +2006-10-12 Miguel Sofer <msofer@users.sf.net> - * tests/pkg/circ1.tcl: removed - * tests/pkg/circ2.tcl: removed - * tests/pkg/circ3.tcl: removed - * tests/pkg/global.tcl: removed - * tests/pkg/import.tcl: removed - * tests/pkg/pkg1.tcl: removed - * tests/pkg/pkg2_a.tcl: removed - * tests/pkg/pkg2_b.tcl: removed - * tests/pkg/pkg3.tcl: removed - * tests/pkg/pkg4.tcl: removed - * tests/pkg/pkg5.tcl: removed - * tests/pkg/pkga.tcl: removed - * tests/pkg/samename.tcl: removed - * tests/pkg/simple.tcl: removed - * tests/pkg/spacename.tcl: removed - * tests/pkg/std.tcl: removed - * tests/pkgMkIndex.test: Fixed [Bug 575857] where this test file - expected to be able to write to [file join [testsDirectory] pkg]. Part - of the fix was to import several auxilliary files into the test file - itself. + * generic/tclInterp.c (ApplyObjCmd): + * tests/interp.test (interp-14.5-10): made [interp alias] use the + ensemble rewrite machinery to produce better error messages [Bug + 1576006] - * tests/main.test: Cheap fix for [Bugs 575851, 575858]. Avoid - * tests/tcltest.test: non-writable . by [cd [temporaryDirectory]]. +2006-10-12 David Gravereaux <davygrvy@pobox.com> - * library/auto.tcl: Fix [tcl_findLibrary] to be sure it sets $varName - only if a successful library script is found. [Bug 577033] + * win/nmakehlp.c: Replaced all wnsprintf() calls with snprintf(). + wnsprintf was not in my shwlapi header file (VC++6) -2002-07-03 Miguel Sofer <msofer@users.sourceforge.net> +2006-10-11 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompCmds.c (TclCompileCatchCmd): return - TCL_OUT_LINE_COMPILE instead of TCL_ERROR: let the failure happen at - runtime so that it can be caught [Bug 577015]. + * generic/tclPkg.c (Tcl_PackageRequireEx): Corrected crash when + argument version=NULL passed in. -2002-07-02 Joe English <jenglish@users.sourceforge.net> +2006-10-10 Don Porter <dgp@users.sourceforge.net> - * doc/tcltest.n: Markup fixes, spellcheck. + * changes: Updates for 8.5a5 release. -2002-07-02 Don Porter <dgp@users.sourceforge.net> + * generic/tclNamespace.c (TclTeardownNamespace): After the + commandPathSourceList of a namespace is cleared, set the + commandPathSourceList to NULL so we don't try to walk the list a + second time, possibly after it is freed. [Bug 1566526] + * tests/namespace.test (namespace-51.16): Added test. - * doc/tcltest.n: more refinements of the documentation. +2006-10-09 Miguel Sofer <msofer@users.sf.net> - * library/tcltest/tcltest.tcl: Added trace to be sure the stdio - constraint is updated whenever the [interpreter] changes. + * doc/UpVar.3: brough the docs in accordance to the code. Ever since + 8.0, Tcl_UpVar(2)? accepts TCL_NAMESPACE_ONLY as a flag value, and + var-3.4 tests for proper behaviour. The docs only allowed 0 and + TCL_GLOBAL_ONLY. [Bug 1574099] - * doc/tcltest.n: Reverted [makeFile] and [viewFile] to - * library/tcltest/tcltest.tcl: their former behavior, and documented - * tests/cmdAH.test: it. Corrected misspelling of hook - * tests/event.test: procedure. Restored tests. - * tests/http.test: - * tests/io.test: +2006-10-09 Miguel Sofer <msofer@users.sf.net> - * library/tcltest/tcltest.tcl: Simplified logic of [GetMatchingFiles] - and [GetMatchingDirectories], removing special case processing. + * tests/*.test: updated all tests to refer explicitly to the global + variables ::errorInfo, ::errorCode, ::env and ::tcl_platform: many + were relying on the alternative lookup in the global namespace, that + feature is tested specifically in namespace and variable tests. - * doc/tcltest.n: More documentation updates. Reference sections are - complete. Only examples need adding. + The modified testfiles are: apply.test, basic.test, case.test, + cmdIL.test, cmdMZ.test, compExpr-old.test, error.test, eval.test, + event.test, expr.test, fileSystem.test, for.test, http.test, if.test, + incr-old.test, incr.test, interp.test, io.test, ioCmd.test, load.test, + misc.test, namespace.test, parse.test, parseOld.test, pkg.test, + proc-old.test, set.test, switch.test, tcltest.test, thread.test, + var.test, while-old.test, while.test. -2002-07-02 Vince Darley <vincentdarley@users.sourceforge.net> +2006-10-06 Pat Thoyts <patthoyts@users.sourceforge.net> - * tests/fCmd.test: - * generic/tclCmdAH.c: clearer error msgs for 'file link', as per the - man page. + * win/rules.vc: [Bug 1571954] avoid /RTCc flag with MSVC8 -2002-07-01 Joe English <jenglish@users.sourceforge.net> - - * doc/Access.3: - * doc/AddErrInfo.3: - * doc/Alloc.3: - * doc/Backslash.3: - * doc/CrtChannel.3: - * doc/CrtSlave.3: - * doc/Encoding.3: - * doc/Eval.3: - * doc/FileSystem.3: - * doc/Notifier.3: - * doc/OpenFileChnl.3: - * doc/ParseCmd.3: - * doc/RegExp.3: - * doc/Tcl_Main.3: - * doc/Thread.3: - * doc/TraceCmd.3: - * doc/Utf.3: - * doc/WrongNumArgs.3: - * doc/binary.n: - * doc/clock.n: - * doc/expr.n: - * doc/fconfigure.n: - * doc/glob.n: - * doc/http.n: - * doc/interp.n: - * doc/lsearch.n: - * doc/lset.n: - * doc/msgcat.n: - * doc/packagens.n: - * doc/pkgMkIndex.n: - * doc/registry.n: - * doc/resource.n: - * doc/safe.n: - * doc/scan.n: - * doc/tclvars.n: Spell-check, fixed typos (Updates from Larry Virden) +2006-10-06 Pat Thoyts <patthoyts@users.sourceforge.net> -2002-07-01 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * doc/binary.n: TIP #275: Support unsigned values in binary + * generic/tclBinary.c: command. Tests and documentation updated. + * tests/binary.test: - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Made Solaris use gcc for linking - when building with gcc to resolve problems with undefined symbols - being present when tcl library used with non-gcc linker at later - stage. Symbols were compiler-generated, so it is the compiler's - business to define them. [Bug 541181] +2006-10-05 Andreas Kupries <andreask@activestate.com> -2002-07-01 Don Porter <dgp@users.sourceforge.net> + * library/tm.tcl: Fixed bug in TIP #189 implementation, now allowing + '_' in module names. - * doc/tcltest.n: more work in progress updating tcltest docs. +2006-10-05 Jeff Hobbs <jeffh@ActiveState.com> - * library/tcltest/tcltest.tcl: Change [configure -match] to stop - treating an empty list as a list of the single pattern "*". Changed - the default value to [list *] so default operation remains the same. + * library/http/http.tcl (http::geturl): only do geturl url rfc 3986 + validity checking if $::http::strict is true (default true for 8.5). + [Bug 1560506] - * tests/pkg/samename.tcl: restored. Needed by pkgMkIndex.test. + * generic/tcl.h: note limitation on changing Tcl_UniChar size + * generic/tclEncoding.c (UtfToUnicodeProc, UnicodeToUtfProc): + * tests/encoding.test (encoding-16.1): fix alignment issues in + unicode <> utf conversion procs. [Bug 1122671] - * library/tcltest/tcltest.tcl: restored writeability testing of - -tmpdir, augmented by a special exception for the deafault value. +2006-10-05 Miguel Sofer <msofer@users.sf.net> -2002-07-01 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclVar.c (Tcl_LappendObjCmd): + * tests/append.test(4.21-22): fix for longstanding [Bug 1570718], + lappending nothing to non-list. Reported by lvirden - * doc/concat.n: Documented the *real* behaviour of [concat]! +2006-10-04 Kevin B. Kenny <kennykb@acm.org> -2002-06-30 Don Porter <dgp@users.sourceforge.net> + * tzdata/: Olson's tzdata2006m. - * doc/tcltest.n: more work in progress updating tcltest docs. +2006-10-01 Kevin B. Kenny <kennykb@acm.org> - * tests/README: Updated the instructions on running and - * tests/cmdMZ.test: adding to the test suite. Also updated - * tests/encoding.test: several tests, mostly to correctly create - * tests/fCmd.test: and destroy any temporary files in the - * tests/info.test: [temporaryDirectory] of tcltest. - * tests/interp.test: + * tests/clock.test (clock-49.2): Removed a locale dependency that + caused a spurious failure in the German locale. [Bug 1567956] - * library/tcltest/tcltest.tcl: Stopped checking for writeability of - -tmpdir value because no default directory can be guaranteed to be - writeable. +2006-10-01 Miguel Sofer <msofer@users.sf.net> - * tests/autoMkindex.tcl: removed. - * tests/pkg/samename.tcl: removed. - * tests/pkg/magicchar.tcl: removed. - * tests/pkg/magicchar2.tcl: removed. - * tests/autoMkindex.test: Updated auto_mkIndex tests to use [makeFile] - and [removeFile] so tests are done in [temporaryDirecotry] where write - access is guaranteed. + * doc/Eval.3 (TclEvalObjv): added note on refCount management for the + elements of objv. [Bug 730244] - * library/tcltest/tcltest.tcl: Fixed [makeFile] and [viewFile] to - * tests/cmdAH.test: accurately reflect a file's contents. - * tests/event.test: Updated tests that depended on buggy - * tests/http.test: behavior. Also added warning messages - * tests/io.test: to "-debug 1" operations to debug test - * tests/iogt.test: calls to (make|remove)(File|Directory). +2006-10-01 Pat Thoyts <patthoyts@users.sourceforge.net> - * unix/mkLinks: `make mklinks` on 6-27 commits. + * win/tclWinFile.c: Handle possible missing define. -2002-06-28 Miguel Sofer <msofer@users.sourceforge.net> + * win/tclWinFile.c (TclpUtime): [Bug 1420432] file mtime fails for + * tests/cmdAH.test: directories on windows - * generic/tclCompile.h: modified the macro TclEmitPush to not call its - first argument repeatedly or pass it to other macros, [Bug 575194] - reported by Peter Spjuth. + * tests/winFile.test: Handle Msys environment a little differently in + getuser function. [Bug 1567956] -2002-06-28 Don Porter <dgp@users.sourceforge.net> +2006-09-30 Miguel Sofer <msofer@users.sf.net> - * docs/tcltest.n: Doc revisions in progress. - * library/tcltest/tcltest.tcl: Corrected -testdir default value. Was - not reliable, and disagreed with docs! Thanks to Hemang Lavana. [Bug - 575150] + * generic/tclUtil.c (Tcl_SplitList): optimisation, [Patch 1344747] by + dgp. -2002-06-28 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclInt.decls: + * generic/tclInt.h: + * generic/tclIntDecls.h: + * generic/tclObj.c: + * generic/tclStubInit.c: added an internal function TclObjBeingDeleted + to provide info as to the reason for the loss of an internal rep. [FR + 1512138] - * unix/tclUnixThrd.c: Renamed the Tcl_Platform* #defines to - * unix/tclUnixPipe.c: TclOS* because they are only used - * unix/tclUnixFile.c: internally. Also stopped double-#def - * unix/tclUnixFCmd.c: of TclOSlstat [Bug 566099, post-rename] - * unix/tclUnixChan.c: - * unix/tclUnixPort.h: + * generic/tclCompile.c: + * generic/tclHistory.c: + * generic/tclInt.h: + * generic/tclProc.c: made Tcl_RecordAndEvalObj not call "history" if + it has been redefined to an empty proc, in order to reduce the noise + when debugging [FR 1190441]. Moved TclCompileNoOp from tclProc.c to + tclCompile.c - * doc/string.n: Improved documentation for [string last] along lines - described in [Bug 574799] so it indicates that the supplied index - marks the end of the search space. +2006-09-28 Andreas Kupries <andreask@activestate.com> -2002-06-27 Don Porter <dgp@users.sourceforge.net> + * generic/tclPkg.c (CompareVersions): Bugfix. Check string lengths + * tests/pkg.test: before comparison. The shorter string is the smaller + number. Added testcases as well. Interestingly all existing test cases + for vcompare compared numbers of the same length with each other. [Bug + 1563836] - * doc/dde.n: Work in progress updating the documentation - * doc/http.n: of the packages that come bundled with - * doc/msgcat.n: the Tcl source distribution, notably tcltest. - * doc/registry.n: - * doc/tcltest.n: +2006-09-28 Miguel Sofer <msofer@users.sf.net> - * library/tcltest/tcltest.tcl: Made sure that the TCLTEST_OPTIONS - environment variablle configures tcltest at package load time. + * generic/tclIO.c (Tcl_GetsObj): added two test'n'panic guards for + possible NULL derefs, [Bug 1566382] and coverity #33. -2002-06-26 Vince Darley <vincentdarley@users.sourceforge.net> +2006-09-27 Don Porter <dgp@users.sourceforge.net> - * tests/fileSystem.test: - * generic/tclIOUtil.c: fix to handling of empty paths "" which are not - claimed by any filesystem [Bug 573758]. Ensure good error messages are - given in all cases. - * tests/cmdAH.test: - * unix/tclUnixFCmd.c: fix to bug reported as part of [Patch 566669]. - Thanks to Taguchi, Takeshi for the report. + * generic/tclExecute.c: Corrected error in INST_LSHIFT in the + * tests/expr.test: calculation done to determine whether a shift + in the (long int) type is possible. The calculation had literal value + "1" where it needed a value "1L" to compute the correct result. Error + detected via testing with the math::bigfloat package [Bug 1567222] -2002-06-26 Reinhard Max <max@suse.de> + * generic/tclPkg.c (CompareVersion): Flatten strcmp() results to + {-1, 0, 1} to match expectations of CompareVersion() callers. - * unix/tclUnixTime.c: Make [clock format] respect locale settings. - * tests/clock.test: [Bug 565880]. ***POTENTIAL INCOMPATIBILITY*** +2006-09-27 Miguel Sofer <msofer@users.sf.net> -2002-06-26 Miguel Sofer <msofer@users.sourceforge.net> + * generic/regc_color.c (singleton): + * generic/regc_cvec.c (addmcce): + * generic/regcomp.c (compile, dovec): the static function addmcce does + nothing when called with two NULL pointers; the only call is by + compile with two NULL pointers (regcomp.c #includes regc_cvec.c). + Large parts (all?) the code for mcce (multi character collating + element) that we do not use is ifdef'ed out with the macro + REGEXP_MCCE_ENABLE. + This silences coverity bugs 7, 16, 80 - * doc/CrtInterp.3: - * doc/StringObj.3: clarifications by Don Porter, [Bugs 493995, 500930] + * generic/regc_color.c (uncolorchain): + * generic/regc_nfa.c (freearc): changed tests and asserts to + equivalent formulation, designed to avoid an explicit comparison to + NULL and satisfy coverity that 6 and 9 are not bugs. -2002-06-24 Don Porter <dgp@users.sourceforge.net> +2006-09-27 Andreas Kupries <andreask@activestate.com> - * library/tcltest/tcltest.tcl: Corrected suppression of -verbose skip - * tests/tcltest.test: and start by [test -output]. Also - corrected test suite errors exposed by corrected code. [Bug 564656] + * tests/pkg.test: Added test for version comparison at the 32bit + boundary. [Bug 1563836] -2002-06-25 Reinhard Max <max@suse.de> + * generic/tclPkg.c: Rewrote CompareVersion to perform string + comparison instead of numeric. This breaks through the 32bit limit on + version numbers. See code for details (handling of leading zeros, + signs, etc.). un-CONSTed some arguments of CompareVersions, + RequirementSatisfied, and AllRequirementsSatisfied. The new compare + modifies the string (temporary string terminators). All callers use + heap-allocated ver-intreps, so we are good with that. [Bug 1563836] - * unix/tcl.m4: New macro SC_CONFIG_MANPAGES. - * unix/configure.in: Added support for symlinks and compression - * unix/Makefile.in: when installing the manpages. [Patch 518052] - * unix/mkLinks.tcl: Default is still hardlinks and no compression. +2006-09-27 Miguel Sofer <msofer@users.sf.net> - * unix/mkLinks: generated - * unix/configure: + * generic/tclFileName.c (TclGlob): added a panic for a call with + TCL_GLOBMODE_TAILS and pathPrefix==NULL. This would cause a segfault, + as found by coverity #26. - * unix/README: Added documentation for the new features. +2006-09-26 Kevin B. Kenny <kennykb@acm.org> - * unix/tcl.m4 (SC_PATH_TCLCONFIG): Replaced ${exec_prefix}/lib by - ${libdir}. + * doc/Encoding.3: Added covariant 'const' qualifier for the + * generic/tcl.decls: Tcl_EncodingType argument to + * generic/tclEncoding.c: Tcl_CreateEncoding. [Further TIP#27 work.] + * generic/tclDecls.h: Reran 'make genstubs'. -2002-06-25 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2006-09-26 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclUtil.c (TclGetIntForIndex): Fix of critical [Bug 533364] - generated when the index is bad and the result is a shared object. The - T_ASTO(T_GOR, ...) idiom likely exists elsewhere though. Also removed - some cruft that just complicated things to no advantage. - (SetEndOffsetFromAny): Same fix, though this wasn't on the path - excited by the bug. + * win/makefile.vc: Additional compiler flags and amd64 support. + * win/nmakehlp.c: + * win/rules.vc: -2002-06-24 Don Porter <dgp@users.sourceforge.net> +2006-09-26 Don Porter <dgp@users.sourceforge.net> - * library/tcltest/tcltest.tcl: Implementation of TIP 101. Adds - * tests/parseOld.test: and exports a [configure] command - * tests/tcltest.test: from tcltest. + * generic/tcl.h: As 2006-09-22 commit from Donal K. Fellows + demonstrates, "#define NULL 0" is just wrong, and as a quotable chat + figure observed, "If NULL isn't defined, we're not using a C compiler" + Improper fallback definition of NULL removed. -2002-06-22 Don Porter <dgp@users.sourceforge.net> +2006-09-25 Pat Thoyts <patthoyts@users.sourceforge.net> - * changes: updated changes file for 8.4b1 release. + * generic/tcl.h: More fixing which struct stat to refer to. + * generic/tclGetDate.y: Some casts from time_t to int required. + * generic/tclTimer.c: Tcl_Time structure members are longs. + * win/makefile.vc: Support for varying compiler options + * win/rules.vc: and build to platform-specific subdirs. - * library/tcltest/tcltest.tcl: Corrections to tcltest and the - * tests/basic.test: Tcl test suite so that a test - * tests/cmdInfo.test: with options -constraints knownBug - * tests/compile.test: -limitConstraints 1 only tests the - * tests/encoding.test: knownBug tests. Mostly involves - * tests/env.test: replacing direct access to the - * tests/event.test: testConstraints array with calls - * tests/exec.test: to the testConstraint command - * tests/execute.test: (which requires tcltest version 2) - * tests/fCmd.test: - * tests/format.test: - * tests/http.test: - * tests/httpold.test: - * tests/ioUtil.test: - * tests/link.test: - * tests/load.test: - * tests/namespace.test: - * tests/pkgMkIndex.test: - * tests/reg.test: - * tests/result.test: - * tests/scan.test: - * tests/stack.test: +2006-09-25 Andreas Kupries <andreask@activestate.com> -2002-06-22 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclIO.c (Tcl_StackChannel): Fixed [Bug 1564642], aka + coverity #51. Extended loop condition, added checking for NULL to + prevent seg.fault. - * tools/tcl.wse.in (Disk Label), unix/tcl.spec (version): - * win/README.binary, README, win/configure.in, unix/configure.in: - * generic/tcl.h (TCL_RELEASE_*, TCL_PATCH_LEVEL): Bump to beta1. +2006-09-25 Andreas Kupries <andreask@activestate.com> -2002-06-21 Joe English <jenglish@users.sourceforge.net> + * doc/package.n: Fixed nits reported by Daniel Steffen in the TIP#268 + changes. - * generic/tclCompExpr.c: - * generic/tclParseExpr.c: LogSyntaxError() should reset the - interpreter result [Bug 550142 "Tcl_ExprObj -> abort"] +2006-09-25 Kevin B. Kenny <kennykb@acm.org> -2002-06-21 Don Porter <dgp@users.sourceforge.net> + * generic/tclNotify.c (Tcl_DeleteEvents): Simplified the code in hopes + of making the invariants clearer and proving to Coverity that the + event queue memory is managed correctly. - * unix/Makefile.in: Updated all package install directories to - * win/Makefile.in: match current Major.minor versions of the - * win/makefile.bc: packages. Added tcltest package to - * win/makefile.vc: installation on Windows. +2006-09-25 Donal K. Fellows <dkf@users.sf.net> - * library/init.tcl: Corrected comments and namespace style issues. - Thanks to Bruce Stephens. [Bug 572025] + * generic/tclNotify.c (Tcl_DeleteEvents): Make it clear what happens + when the event queue is mismanaged. [Bug 1564677], coverity bug #10. -2002-06-21 Vince Darley <vincentdarley@users.sourceforge.net> +2006-09-24 Miguel Sofer <msofer@users.sf.net> - * tests/cmdAH.test: Added TIP#99 implementation of 'file - * tests/fCmd.test: link'. Supports creation of symbolic and - * tests/fileName.test: hard links in the native filesystems and - * tests/fileSystem.test: in vfs's, when the individual filesystem - * generic/tclTest.c: supports the concept. - * generic/tclCmdAH.c: - * generic/tclIOUtil.c: - * generic/tcl.h: - * generic/tcl.decls: - * doc/FileSystem.3: - * doc/file.n: - * mac/tclMacFile.c: - * unix/tclUnixFile.c: - * win/tclWinFile.c: Also enhanced speed of 'file normalize' on Windows + * generic/tclParse.c (Tcl_ParseCommand): also return an error if + start==NULL and numBytes<0. This is coverity's bug #20 -2002-06-20 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclStringObj.c (STRING_SIZE): fix allocation for 0-length + strings. This is coverity's bugs #54-5 - * generic/tclBasic.c (TclEvalObjvInternal): fix for [Bug 571385] in - the implementation of TIP#62 (command tracing). Vince Darley, Hemang - Lavana & Don Porter: thanks. +2006-09-22 Andreas Kupries <andreask@activestate.com> -2002-06-20 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclInt.h: Moved TIP#268's field 'packagePrefer' to the end + of the structure, for better backward compatibility. - * generic/tclExecute.c (TclCompEvalObj): clarified and simplified the - logic for compilation/recompilation. +2006-09-22 Andreas Kupries <andreask@activestate.com> -2002-06-19 Joe English <jenglish@users.sourceforge.net> + TIP#268 IMPLEMENTATION - * doc/file.n: Fixed indentation. No substantive changes. + * generic/tclDecls.h: Regenerated from tcl.decls. + * generic/tclStubInit.c: -2002-06-19 Jeff Hobbs <jeffh@ActiveState.com> + * doc/PkgRequire.3: Documentation of extended API, extended testsuite. + * doc/package.n: + * tests/pkg.test: - * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): get the resultPtr again as - the Tcl_ObjSetVar2 may cause the result to change. - [Patch 558324] (watson) + * generic/tcl.decls: Implementation. + * generic/tclBasic.c: + * generic/tclConfig.c: + * generic/tclInt.h: + * generic/tclPkg.c: + * generic/tclTest.c: + * generic/tclTomMathInterface.c: + * library/init.tcl: + * library/package.tcl: + * library/tm.tcl: -2002-06-19 Miguel Sofer <msofer@users.sourceforge.net> +2006-09-22 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclExecute.c (TEBC): removing unused "for(;;)" loop; - improved comments; re-indentation. + * generic/tclThreadTest.c (TclCreateThread): Use NULL instead of 0 as + end-of-strings marker to Tcl_AppendResult; the difference matters on + 64-bit machines. [Bug 1562528] -2002-06-18 Miguel Sofer <msofer@users.sourceforge.net> +2006-09-21 Don Porter <dgp@users.sourceforge.net> - * generic/tclExecute.c (TEBC): - - elimination of duplicated code in the non-immediate INST_INCR - instructions. - - elimination of 103 (!) TclDecrRefCount macros. The different - instructions now jump back to a common "DecrRefCount zone" at the - top of the loop. The macro "ADJUST_PC" was replaced by two macros - "NEXT_INST_F" and "NEXT_INST_V" that take three params - (pcAdjustment, # of stack objects to discard, resultObjPtr handling - flag). The only instructions that retain a TclDecrRefCount are - INST_POP (for speed), the common code for the non-immediate - INST_INCR, INST_FOREACH_STEP and the two INST_LSET. + * generic/tclUtil.c: Dropped ParseInteger() routine. TclParseNumber + covers the task just fine. - The object size of tclExecute.o was reduced by approx 20% since the - start of the consolidation drive, while making room for some peep-hole - optimisation at runtime. +2006-09-19 Donal K. Fellows <dkf@users.sf.net> -2002-06-18 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclEvent.c (Tcl_VwaitObjCmd): Rewrite so that an exceeded + limit trapped in a vwait cannot cause a dangerous dangling trace. - * generic/tclExecute.c (TEBC, INST_DONE): small bug in the panic code - for tcl-stack corruption. +2006-09-19 Don Porter <dgp@users.sourceforge.net> -2002-06-17 David Gravereaux <davygrvy@pobox.com> + * generic/tclExecute.c (INST_EXPON): Native type overflow detection + * tests/expr.test: was completely broken. Falling back on use of + bignums for all non-trivial ** calculations until + native-type-constrained special cases can be done carefully and + correctly. [Bug 1561260] - Trims to support the removal of RESOURCE_INCLUDED from rc scripts from - [FRQ 565088]. +2006-09-15 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tcl.h: moved the #ifndef RC_INVOKED start block up in the - file. rc scripts don't need to know thread mutexes. + * library/http/http.tcl: Change " " -> "+" url encoding mapping + * library/http/pkgIndex.tcl: to " " -> "%20" as per RFC 3986. + * tests/http.test (http-5.1): bump http to 2.5.3 + * unix/Makefile.in: + * win/Makefile.in: - * win/tcl.rc: - * win/tclsh.rc: removed the #define RESOURCE_INCLUDED to let the - built-in -DRC_INVOKED to the work. +2006-09-12 Andreas Kupries <andreask@activestate.com> -2002-06-17 Jeff Hobbs <jeffh@ActiveState.com> + * unix/configure.in (HAVE_MTSAFE_GETHOST*): Modified to recognize + HP-UX 11.00 and beyond as having mt-safe implementations of the + gethost functions. + * unix/configure: Regenerated, using autoconf 2.59 - * doc/CrtTrace.3: Added TIP#62 implementation of command - * doc/trace.n: execution tracing [FRQ 462580] (lavana). - * generic/tcl.h: This includes enter/leave tracing as well - * generic/tclBasic.c: as inter-procedure stepping. - * generic/tclCmdMZ.c: - * generic/tclCompile.c: - * generic/tclExecute.c: - * generic/tclInt.decls: - * generic/tclInt.h: - * generic/tclIntDecls.h: - * generic/tclStubInit.c: - * generic/tclVar.c: - * tests/trace.test: + * unix/tclUnixCompat.c (PadBuffer): Fixed bug in calculation of the + increment needed to align the pointer, and added documentation + explaining why the macro is implemented as it is. -2002-06-17 Andreas Kupries <andreas_kupries@users.sourceforge.net> +2006-09-11 Pat Thoyts <patthoyts@users.sourceforge.net> - * win/tclWinPipe.c (BuildCommandLine): Fixed [bug 554068] ([exec] on - windows did not treat { in filenames well.). Bug reported by Vince - Darley <vincentdarley@users.sourceforge.net>, patch provided by Vince - too. + * win/rules.vc: Updated to install http, tcltest and msgcat as + * win/makefile.vc: Tcl Modules (as per Makefile.in). + * win/makefile.vc: Added tommath_(super)class headers. -2002-06-17 Joe English <jenglish@users.sourceforge.net> +2006-09-11 Andreas Kupries <andreask@activestate.com> - * generic/tcl.h: #ifdef logic for K&R C backwards compatibility - changed to assume modern C by default. See [FRQ 565088] for full - details. + * unix/Makefile.in (install-libraries): Fixed typo tcltest 2.3.9 -> + 2.3.0. -2002-06-17 Don Porter <dgp@users.sourceforge.net> +2006-09-11 Daniel Steffen <das@users.sourceforge.net> - * doc/msgcat.n: Corrected en_UK references to en_GB. UK is not a - country designation recognized in ISO 3166. + * unix/tclUnixCompat.c: make compatLock static and only declare it + when it will actually be used; #ifdef parts of TSD that are not always + needed; adjust #ifdefs to cover all possible cases; fix whitespace. - * library/msgcat/msgcat.tcl: More Windows Registry locale codes from - Bruno Haible. +2006-09-11 Andreas Kupries <andreask@activestate.com> + * tests/msgcat.test: Bumped version in auxiliary files as well. * doc/msgcat.n: - * library/msgcat/msgcat.tcl: - * library/msgcat/pkgIndex.tcl: - * tests/msgcat.test: Revised locale initialization to interpret - environment variable locale values according to XPG4, and to recognize - the LC_ALL and LC_MESSAGES values over that of LANG. Also added many - Windows Registry locale values to those recognized by msgcat. Revised - tests and docs. Bumped to version 1.3. Thanks to Bruno Haible for the - report and assistance crafting the solution. [Bug 525522, 525525] -2002-06-16 Miguel Sofer <msofer@users.sourceforge.net> +2006-09-11 Kevin B. Kenny <kennykb@acm.org> - * generic/tclCompile.c (TclCompileTokens): a better algorithm for the - previous bug fix. + * unix/Makefile.in: Bumped msgcat version to 1.4.2 to be + * win/Makefile.in: consistent with dgp's commits of 2006-09-10. -2002-06-16 Miguel Sofer <msofer@users.sourceforge.net> +2006-09-11 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompile.c (TclCompileTokens): - * tests/compile.test: [Bug 569438] in the processing of dollar - variables; report by Georgios Petasis. + * library/msgcat/msgcat.tcl: Removed some unneeded [uplevel]s. -2002-06-16 Miguel Sofer <msofer@users.sourceforge.net> +2006-09-10 Don Porter <dgp@users.sourceforge.net> - * generic/tclExecute.c: bug in the consolidation of the INCR_..._STK - instructions; the bug could not be exercised as the (faulty) - instruction INST_INCR_ARRAY_STK was never compiled-in (related to [Bug - 569438]). + * generic/tclExecute.c: Corrected INST_EXPON flaw that treated + * tests/expr.test: $x**1 as $x**3. [Bug 1555371] -2002-06-14 Miguel Sofer <msofer@users.sourceforge.net> + * doc/tcltest.n: Bump to version tcltest 2.3.0 to + * library/tcltest/pkgIndex.tcl: account for new "-verbose line" + * library/tcltest/tcltest.tcl: feature. + * unix/Makefile.in: + * win/Makefile.in: + * win/makefile.bc: + * win/makefile.vc: - * generic/tclExecute.c (TclExecuteByteCode): runtime peep-hole - optimisation of variables (INST_STORE, INST_INCR) and commands - (INST_INVOKE); faster check for the existence of a catch. - (TclExecuteByteCode): runtime peep-hole optimisation of comparisons. - (TclExecuteByteCode): runtime peep-hole optimisation of INST_FOREACH - - relies on peculiarities of the code produced by the bytecode compiler. + * library/msgcat/msgcat.tcl: Bump to version msgcat 1.4.2 to + * library/msgcat/pkgIndex.tcl: account for modifications. -2002-06-14 David Gravereaux <davygrvy@pobox.com> +2006-09-10 Daniel Steffen <das@users.sourceforge.net> - * win/rules.vc: The test for compiler optimizations was in error. - Thanks goes to Roy Terry <royterry@earthlink.net> for his assistance - with this. + * library/msgcat/msgcat.tcl (msgcat::Init): on Darwin, add fallback of + * tests/msgcat.test: default msgcat locale to + * unix/tclUnixInit.c (TclpSetVariables): current CFLocale + identifier if available (via private ::tcl::mac::locale global, set at + interp init when on Mac OS X 10.3 or later with CoreFoundation). -2002-06-14 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * library/tcltest/tcltest.tcl: add 'line' verbose level: prints source + * doc/tcltest.n: file line information of failing tests. - * doc/trace.n, tests/trace.test: - * generic/tclCmdMZ.c (Tcl_TraceObjCmd,TclTraceCommandObjCmd) - (TclTraceVariableObjCmd): Changed references to "trace list" to "trace - info" as mandated by TIP#102. + * macosx/Tcl.xcodeproj/project.pbxproj: add new tclUnixCompat.c file; + revise tests target to use new tcltest 'line' verbose level. -2002-06-13 Miguel Sofer <msofer@users.sourceforge.net> + * unix/configure.in: add descriptions to new AC_DEFINEs for MT-safe. + * unix/tcl.m4: add caching to new SC_TCL_* macros for MT-safe wrappers + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 - * generic/tclExecute.c (TclExecuteByteCode): consolidated code for the - conditional branch instructions. +2006-09-08 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> -2002-06-13 Miguel Sofer <msofer@users.sourceforge.net> + * unix/tclUnixCompat.c: Added fallback to gethostbyname() and + gethostbyaddr() if the implementation is known to be MT-safe + (currently for Darwin 6 or later only). - * generic/tclExecute.c (TclExecuteByteCode): fixed the previous - patch - wouldn't compile with TCL_COMPILE_DEBUG set. + * unix/configure.in: Assume gethostbyname() and gethostbyaddr() are + MT-safe starting with Darwin 6 (Mac OSX 10.2). -2002-06-13 Miguel Sofer <msofer@users.sourceforge.net> + * unix/configure: Regenerated with autoconf V2.59 - * generic/tclExecute.c (TclExecuteByteCode): consolidated the handling - of exception returns to INST_INVOKE and INST_EVAL, as well as most of - the code for INST_CONTINUE and INST_BREAK, in the new jump target - "processExceptionReturn". +2006-09-08 Andreas Kupries <andreask@activestate.com> -2002-06-13 Miguel Sofer <msofer@users.sourceforge.net> + * unix/tclUnixCompat.c: Fixed conditions for CopyArray/CopyString, and + CopyHostent. Also fixed bad var names in TclpGetHostByName. - * generic/tclExecute.c (TclExecuteByteCode): consolidated variable - handling opcodes, replaced redundant code with some 'goto'. All - store/append/lappend opcodes on the same data type now share the main - code; same with incr opcodes. - * generic/tclVar.c: added the bit TCL_TRACE_READS to the possible - flags to Tcl_SetVar2Ex - it causes read traces to be fired prior to - setting the variable. This is used in the core for [lappend]. +2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - ***NOTE*** the usage of TCL_TRACE_READS in Tcl_(Obj)?GetVar.* is not - documented; there, it causes the call to create the variable if it - does not exist. The new usage in Tcl_(Obj)?SetVar.* remains - undocumented too ... + * unix/tclUnixCompat.c: Added fallback to MT-unsafe library calls if + TCL_THREADS is not defined. + Fixed alignment of arrays copied by CopyArray() to be on the + sizeof(char *) boundary. -2002-06-13 Vince Darley <vincentdarley@users.sourceforge.net> +2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * tests/fCmd.test: - * tests/winFile.test: - * tests/fileSystem.test: - * generic/tclTest.c: - * generic/tclCmdAH.c: - * generic/tclIOUtil.c: - * doc/FileSystem.3: - * mac/tclMacFile.c: - * unix/tclUnixFile.c: - * win/tclWinFile.c: fixed up further so both compiles and actually - works with VC++ 5 or 6. - * win/tclWinInt.h: - * win/tclWin32Dll.c: cleaned up code and vfs tests and added tests for - the internal changes of 2002-06-12, to see whether WinTcl on NTFS can - coexist peacefully with links in the filesystem. Added new test - command 'testfilelink' to enable the newer code to be tested. - * tests/fCmd.test: (made certain tests of 'testfilelink' not run on - unix). + * unix/tclUnixChan.c: Rewritten MT-safe wrappers to return ptrs to + * unix/tclUnixCompat.c: TSD storage making them all look like their + * unix/tclUnixFCmd.c: MT-unsafe pendants API-wise. + * unix/tclUnixPort.h: + * unix/tclUnixSock.c: -2002-06-12 Miguel Sofer <msofer@users.sourceforge.net> +2006-09-06 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * tclBasic.c (Tcl_DeleteTrace): fixed [Bug 568123] (thanks to - Hemang Lavana) + * unix/tclUnixChan.c: Added TCL_THREADS ifdef'ed usage of MT-safe + * unix/tclUnixFCmd.c: calls like: getpwuid, getpwnam, getgrgid, + * unix/tclUnixSock.c: getgrnam, gethostbyname and gethostbyaddr. + * unix/tclUnixPort.h: See [Bug 999544] + * unix/Makefile.in: + * unix/configure.in: + * unix/tcl.m4: + * unix/configure: Regenerated. -2002-06-12 Jeff Hobbs <jeffh@ActiveState.com> + * unix/tclUnixCompat.c: New file containing MT-safe implementation of + some library calls. - * win/tclWinFile.c: corrected the symbolic link handling code to - allow it to compile. Added real definition of REPARSE_DATA_BUFFER - (found in winnt.h). Most of the added definitions appear to have - correct, cross-Win-version equivalents in winnt.h and should be - removed, but just making things "work" for now. +2006-09-04 Don Porter <dgp@users.sourceforge.net> -2002-06-12 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclCompExpr.c: Removed much complexity that is no + longer needed. - * generic/tclIOUtil.c: - * generic/tcl.decls: - * generic/tclDecls.h: made code for Tcl_FSNewNativePath agree with man - pages. + * tests/main.text (Tcl_Main-4.4): Test corrected to not be + timing sensitive to the Bug 1481986 fix. [Bug 1550858] - * doc/FileSystem.3: clarified the circumstances under which certain - functions are called in the presence of symlinks. +2006-09-04 Jeff Hobbs <jeffh@ActiveState.com> - * win/tclWinFile.c: - * win/tclWinPort.h: - * win/tclWinInt.h: - * win/tclWinFCmd.c: Fix for Windows to allow 'file lstat', 'file - type', 'glob -type l', 'file copy', 'file delete', 'file normalize', - and all VFS code to work correctly in the presence of symlinks - (previously Tcl's behaviour was not very well defined). This also - fixes possible serious problems in all versions of WinTcl where 'file - delete' on a NTFS symlink could delete the original, not the symlink. - Note: symlinks cannot yet be created in pure Tcl. + * doc/package.n: correct package example -2002-06-11 Miguel Sofer <msofer@users.sourceforge.net> +2006-08-31 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c: - * generic/tclCompCmds.c: - * generic/tclInt.h: reverted the new compilation functions; replaced - by a more general approach described below. + * generic/tclCompExpr.c: Corrected flawed logic for disabling + the INST_TRY_CVT_TO_NUMERIC instruction at the end of an expression + when function arguments contain operators. [Bug 1541274] - * generic/tclCompCmds.c: - * generic/tclCompile.c: made *all* compiled variable access attempts - create an indexed variable - even get or incr without previous set. - This allows indexed access to local variables that are created and set - at runtime, for example by [global], [upvar], [variable], [regexp], - [regsub]. + * tests/expr-old.test: The remaining failing tests reported in + * tests/expr.test: [Bug 1381715] are all new in Tcl 8.5, so + there's really no issue of compatibility with Tcl 8.4 result to deal + with. Fixed by updating tests to expect 8.5 results. -2002-06-11 Miguel Sofer <msofer@users.sourceforge.net> +2006-08-29 Don Porter <dgp@users.sourceforge.net> - * doc/global.n: - * doc/info.n: - * test/info.test: - * generic/tclCmdIL.c: fix for [Bug 567386], [info locals] was - reporting some linked variables. + * generic/tclParseExpr.c: Dropped the old expr parser. - * generic/tclBasic.c: - * generic/tclCompCmds.c: - * generic/tclInt.h: added compile functions for [global], [variable] - and [upvar]. They just declare the new local variables, the commands - themselves are not compiled-in. This gives a notably faster read - access to these linked variables. +2006-08-30 Jeff Hobbs <jeffh@ActiveState.com> -2002-06-11 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclBasic.c (Tcl_CreateInterp): init iPtr->threadId - * generic/tclExecute.c: optimised algorithm for exception range - lookup; part of [Patch 453709]. + * win/tclWinChan.c [Bug 819667] Improve logic for identifying COM + ports. -2002-06-10 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclIOGT.c (ExecuteCallback): + * generic/tclPkg.c (Tcl_PkgRequireEx): replace Tcl_GlobalEval(Obj) + with more efficient Tcl_Eval(Obj)Ex - * unix/tclUnixFCmd.c: fixed [Bug 566669] - * generic/tclIOUtil.c: improved and sped up handling of native paths - (duplication and conversion to normalized paths), particularly on - Windows. - * modified part of above commit, due to problems on Linux. Will - re-examine bug report and evaluate more closely. + * unix/Makefile.in (valgrindshell): add valgrindshell target and + update default VALGRINDARGS. User can override, or add to it with + VALGRIND_OPTS env var. -2002-06-07 Don Porter <dgp@users.sourceforge.net> + * generic/tclFileName.c (DoGlob): match incrs with decrs. - * tests/tcltest.test: More corrections to test suite so that tests of - failing [test]s don't show up themselves as failing tests. +2006-08-29 Don Porter <dgp@users.sourceforge.net> -2002-06-07 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclParseExpr.c: Use the "parent" field of orphan + ExprNodes to store the closure of left pointers. This lets us avoid + repeated re-scanning leftward for the left boundary of subexpressions, + which in worst case led to near O(N^2) runtime. - * generic/tclExecute.c: Tidied up headers in relation to float.h to - cut the cruft and ensure DBL_MAX is defined since doubles seem to be - the same size everywhere; if the assumption isn't true, the variant - platforms had better have run configure... +2006-08-29 Joe Mistachkin <joe@mistachkin.com> - * unix/tclUnixPort.h (EOVERFLOW): Added code to define it if it wasn't - previously defined. Also some other general tidying and adding of - comments. [Bugs 563122, 564595] - * compat/tclErrno.h: Added definition for EOVERFLOW copied from - Solaris headers; I've been unable to find any uses of EFTYPE, which - was the error code previously occupying the slot, in Tcl, or any - definition of it in the Solaris headers. + * unix/tclUnixInit.c: Fixed the issue (typo) that was causing + * unix/tclUnixThrd.c (TclpThreadGetStackSize): stack.test to fail on + FreeBSD (and possibly other Unix platforms). -2002-06-06 Mo DeJong <mdejong@users.sourceforge.net> +2006-08-29 Colin McCormack <coldstore@users.sourceforge.net> - * unix/dltest/Makefile.in: Remove hard coded CFLAGS=-g and add - CFLAGS_DEBUG, CFLAGS_OPTIMIZE, and CFLAGS_DEFAULT varaibles. [Bug - 565488] + * generic/tclIOUtil.c: Added test for NULL return from + * generic/tclPathObj.c: Tcl_FSGetNormalizedPath which was causing + * unix/tclUnixFile.c: segv's per [Bug 1548263] + * win/tclWinFCmd.c: + * win/tclWinFile.c: -2002-06-06 Don Porter <dgp@users.sourceforge.net> +2006-08-28 Kevin B. Kenny <kennykb@acm.org> - * tests/tcltest.test: Corrections to test suite so that tests of - failing [test]s don't show up themselves as failing tests. + * library/tzdata/America/Havana: Regenerated from Olson's + * library/tzdata/America/Tegucigalpa: tzdata2006k. + * library/tzdata/Asia/Gaza: - * tests/io.test: Fixed up namespace variable resolution issues - revealed by running test suite with "-singleproc 1". +2006-08-28 Don Porter <dgp@users.sourceforge.net> - * doc/tcltest.n: - * library/tcltest/tcltest.tcl: - * tests/tcltest.test: Several updates to tcltest. - 1) changed to lazy initialization of test constraints - 2) deprecated [initConstraintsHook] - 3) repaired badly broken [limitConstraints]. - 4) deprecated [threadReap] and [mainThread] - [Patch 512214, Bug 558742, Bug 461000, Bug 534903] + * generic/tclStringObj.c: Revised ObjPrintfVA to take care to + * generic/tclParseExpr.c: copy only whole characters when doing + %s formatting. This relieves callers of TclObjPrintf() and + TclFormatToErrorInfo() from needing to fix arguments to character + boundaries. Tcl_ParseExpr() simplified by taking advantage. [Bug + 1547786] -2002-06-06 Daniel Steffen <das@users.sourceforge.net> + * generic/tclStringObj.c: Corrected TclFormatObj's failure to + count up the number of arguments required by examining the format + string. [Bug 1547681] - * unix/tclUnixThrd.c (TclpReaddir, TclpLocaltime, TclpGmtime): - added mutex wrapped calls to readdir, localtime & gmtime in case their - thread-safe *_r counterparts are not available. - * unix/tcl.m4: added configure check for readdir_r - * unix/tcl.m4 (Darwin): set TCL_DEFAULT_ENCODING to utf-8 on MacOSX - (where posix file apis expect utf-8, not iso8859-1). - * unix/configure: regen - * unix/Makefile.in: set DYLD_LIBRARY_PATH in parallel to - LD_LIBRARY_PATH for MacOSX dynamic linker. - * generic/tclEnv.c (TclSetEnv): fix env var setting on MacOSX. Adapted - from [Patch 524352] (jkbonfield). +2006-08-27 Joe Mistachkin <joe@mistachkin.com> -2002-06-05 Don Porter <dgp@users.sourceforge.net> + * generic/tclClock.c (ClockClicksObjCmd): Fix nested macro breakage + with TCL_MEM_DEBUG enabled. [Bug 1547662] - * doc/Tcl_Main.3: Documented $tcl_rcFileName and added more - clarifications about the intended use of Tcl_Main(). [Bug 505651] +2006-08-26 Miguel Sofer <msofer@users.sf.net> -2002-06-05 Daniel Steffen <das@users.sourceforge.net> + * doc/namespace.n: + * generic/tclNamesp.c: + * tests/upvar.test: bugfix, docs clarification and new tests for + [namespace upvar] as follow up to [Bug 1546833], reported by Will + Duquette. - * generic/tclFileName.c (TclGlob): mac specific fix to recent changes - in 'glob -tails' handling. - * mac/tclMacPort.h: - * mac/tclMacChan.c: fixed TIP#91 bustage. - * mac/tclMacResource.c (Tcl_MacConvertTextResource): added utf - conversion of text resource contents. - * tests/macFCmd.test (macFCmd-1.2): allow CWIE creator. +2006-08-24 Kevin B. Kenny <kennykb@acm.org> -2002-06-04 Don Porter <dgp@users.sourceforge.net> + * library/tzdata: Regenerated, including several new files, from + Olson's tzdata2006j. + * library/clock.tcl: + * tests/clock.test: Removed an early testing hack that allowed loading + 'registry' from the build tree rather than an installed one. This is a + workaround for [Bug 15232730], which remains open because it's a + symptom of a deeper underlying problem. - * library/tcltest/tcltest.tcl: - * tests/init.test: - * tests/tcltest.test: Added more TIP 85 tests from Arjen Markus. - Converted tcltest.test to use a private namespace. Fixed bugs in - [tcltest::Eval] revealed by calling [tcltest::test] from a non-global - namespace, and namespace errors in init.test. +2006-08-23 Don Porter <dgp@users.sourceforge.net> -2002-06-04 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclParseExpr.c: Minimal collection of new tests + * tests/parseExpr.test: testing the error messages of the new + expr parser. Several bug fixes and code simplifications that appeared + during that effort. - * win/README: Update msys+mingw URL. +2006-08-21 Don Porter <dgp@users.sourceforge.net> -2002-06-03 Don Porter <dgp@users.sourceforge.net> + * generic/tclIOUtil.c: Revisions to complete the thread finalization + of the cwdPathPtr. [Bug 1536142] - * doc/tcltest.n: - * library/tcltest/tcltest.tcl: - * library/tcltest/pkgIndex.tcl: - * tests/tcltest.test: Implementation of TIP 85. Allows tcltest users - to add new legal values of the -match option to [test], associating - each with a Tcl command that does the matching of expected results - with actual results of tests. Thanks to Arjen Markus. => tcltest 2.1 - [Patch 521362] + * generic/tclParseExpr.c: Revised mistaken call to + TclCheckBadOctal(), so both [expr 08] and [expr 08z] have same + additional info in error message. -2002-06-03 Miguel Sofer <msofer@users.sourceforge.net> + * tests/compExpr-old.test: Update existing tests to not fail with + * tests/compExpr.test: the new expr parser. + * tests/compile.test: + * tests/expr-old.test: + * tests/expr.test: + * tests/for.test: + * tests/if.test: + * tests/parseExpr.test: + * tests/while.test: - * doc/namespace.n: added description of [namepace forget] behaviour - for unqualified patterns [Bug 559268] +2006-08-21 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-06-03 Miguel Sofer <msofer@users.sourceforge.net> + * win/Makefile.in (gdb): Make this target work so that debugging an + msys build is possible. - * generic/tclExecute.c: reverting an accidental modification in the - last commit. +2006-08-21 Daniel Steffen <das@users.sourceforge.net> -2002-06-03 Miguel Sofer <msofer@users.sourceforge.net> + * macosx/tclMacOSXNotify.c (Tcl_WaitForEvent): if the run loop is + already running (e.g. if Tcl_WaitForEvent was called recursively), + re-run it in a custom run loop mode containing only the source for the + notifier thread, otherwise wakeups from other sources added to the + common run loop modes might get lost. - * doc/Tcl.n: clarify the empty variable name issue ([Bug 549285] - reported by Tom Krehbiel, patch by Don Porter). + * unix/tclUnixNotfy.c (Tcl_WaitForEvent): on 64-bit Darwin, + pthread_cond_timedwait() appears to have a bug that causes it to wait + forever when passed an absolute time which has already been exceeded + by the system time; as a workaround, when given a very brief timeout, + just do a poll on that platform. [Bug 1457797] -2002-05-31 Don Porter <dgp@users.sourceforge.net> + * generic/tclClock.c (ClockClicksObjCmd): add support for Darwin + * generic/tclCmdMZ.c (Tcl_TimeObjCmd): nanosecond resolution timer + * generic/tclInt.h: to [clock clicks] and [time] + * unix/configure.in (Darwin): when TCL_WIDE_CLICKS defined + * unix/tclUnixTime.c (TclpGetWideClicks, TclpWideClicksToNanoseconds): + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 - * library/package.tcl: Fixed leak of slave interp in [pkg_mkIndex]. - Thanks to Helmut for report. [Bug 550534] + * unix/tclUnixPort.h (Darwin): override potentially faulty configure + detection of termios availability in all cases, since termios is known + to be present on all Mac OS X releases since 10.0. [Bug 497147] - * tests/io.test: - * tests/main.test: Use the "stdio" constraint to control whether an - [open "|[interpreter]"] is attempted. - - * generic/tclExecute.c (TclMathInProgress,TclExecuteByteCode - (ExprCallMathFunc): - * generic/tclInt.h (TclMathInProgress): - * unix/Makefile.in (tclMtherr.*): - * unix/configure.in (NEED_MATHERR): - * unix/tclAppInit.c (matherr): - * unix/tclMtherr.c (removed file): - * win/tclWinMtherr.c (_matherr): Removed internal routine - TclMathInProgress and Unix implementation of matherr(). These are now - obsolete, dealing with very old versions of the C math library. - Windows version is retained in case Borland compilers require it, but - it is inactive. Thanks to Joe English. [Bug 474335, Patch 555635] - * unix/configure: regen - -2002-05-30 Miguel Sofer <msofer@users.sourceforge.net> +2006-08-18 Daniel Steffen <das@users.sourceforge.net> - * generic/tclCompExpr.c: - * generic/tclCompile.c: - * generic/tclCompile.h: removed exprIsJustVarRef and - exprIsComparison from the ExprInfo and CompileEnv structs. These were - set, but not used since dec 1999 [Bug 562383]. + * unix/tcl.m4 (Darwin): add support for --enable-64bit on x86_64, for + universal builds including x86_64, for 64-bit CoreFoundation on + Leopard and for use of -mmacosx-version-min instead of + MACOSX_DEPLOYMENT_TARGET + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 -2002-05-30 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tcl.h: add fixes for building on Leopard and + * unix/tclUnixPort.h: support for 64-bit CoreFoundation on Leopard + * macosx/tclMacOSXFCmd.c: - * generic/tclFileName.c (TclGlob): fix to longstanding 'knownBug' in - fileName tests 15.2-15.4, and fix to a new Tcl 8.4 bug in certain uses - of 'glob -tails'. - * tests/fileName.test: removed 'knownBug' flag from some tests, added - some new tests for above bugs. + * unix/tclUnixPort.h: on Darwin x86_64, disable use of vfork as it + causes execve to fail intermittently. (rdar://4685553) -2002-05-29 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclTomMath.h: on Darwin 64-bit, for now disable use of + 128-bit arithmetic through __attribute__ ((mode(TI))), as it leads to + link errors due to missing fallbacks. (rdar://4685527) - * unix/configure: regen'ed - * unix/configure.in: replaced bigendian check with autoconf standard - AC_C_BIG_ENDIAN, which defined WORDS_BIGENDIAN on bigendian systems. - * generic/tclUtf.c (Tcl_UniCharNcmp): - * generic/tclInt.h (TclUniCharNcmp): use WORDS_BIGENDIAN instead of - TCL_OPTIMIZE_UNICODE_COMPARE to enable memcmp alternative. + * macosx/Tcl.xcodeproj/project.pbxproj: add x86_64 to universal build, + switch native release targets to use DWARF with dSYM, Xcode 3.0 + changes + * macosx/README: updates for x86_64 and Xcode 2.4. - * generic/tclExecute.c (TclExecuteByteCode INST_STR_CMP): - * generic/tclCmdMZ.c (Tcl_StringObjCmd): changed the case for choosing - the Tcl_UniCharNcmp compare to when both objs are of StringType, as - benchmarks show that is the optimal check (both bigendian and - littleendian systems). + * macosx/Tcl.xcodeproj/default.pbxuser: add test suite target that + * macosx/Tcl.xcodeproj/project.pbxproj: runs the tcl test suite at + build time and shows clickable test suite errors in the GUI build + window. -2002-05-29 Don Porter <dgp@users.sourceforge.net> + * tests/macOSXFCmd.test: fix use of deprecated resource fork paths. - * generic/tclMain.c: Removed "dummy" reference to Tcl_LinkVar. It is - no longer needed since Tcl_Main() now actually calls Tcl_LinkVar(). - Thanks to Joe English for pointing that out. + * unix/tclUnixInit.c (TclpInitLibraryPath): move code that is only + needed when TCL_LIBRARY is defined to run only in that case. -2002-05-29 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclLink.c (LinkTraceProc): fix 64-bit signed-with-unsigned + comparison warning from gcc4 -Wextra. - * generic/tclExecute.c (TclExecuteByteCode): - * generic/tclCmdMZ.c (Tcl_StringObjCmd): Use the macro version. - * generic/tclInt.h (TclUniCharNcmp): Optimised still further with a - macro for use in sensitive places like tclExecute.c + * unix/tclUnixChan.c (TclUnixWaitForFile): with timeout < 0, if + select() returns early (e.g. due to a signal), call it again instead + of returning a timeout result. Fixes intermittent event-13.8 failures. - * generic/tclUtf.c (Tcl_UniCharNcmp): Use new flag to figure out when - we can use an optimal comparison scheme, and default to the old scheme - in other cases which is at least safe. - * unix/configure.in (TCL_OPTIMIZE_UNICODE_COMPARE): New optional flag - that indicates when we can use memcmp() to compare Unicode strings - (i.e. when the high-byte of a Tcl_UniChar precedes the low-byte.) +2006-08-17 Don Porter <dgp@users.sourceforge.net> -2002-05-29 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCompile.c: Revised the new set of expression + * generic/tclParseExpr.c: parse error messages. - * generic/tclInt.decls: - * generic/tclIntDecls.h: - * generic/tclStubInit.c: - * generic/tclUtf.c: added TclpUtfNcmp2 private command that mirrors - Tcl_UtfNcmp, but takes n in bytes, not utf-8 chars. This provides a - faster alternative for comparing utf strings internally. - (Tcl_UniCharNcmp, Tcl_UniCharNcasecmp): removed the explicit end of - string check as it wasn't correct for the function (by doc and logic). - - * generic/tclCmdMZ.c (Tcl_StringObjCmd): reworked the string equal - comparison code to use TclpUtfNcmp2 as well as short-circuit for equal - objects or unequal length strings in the equal case. Removed the use - of goto and streamlined the other parts. - - * generic/tclExecute.c (TclExecuteByteCode): added check for object - equality in the comparison instructions. Added short-circuit for != - length strings in INST_EQ, INST_NEQ and INST_STR_CMP. Reworked - INST_STR_CMP to use TclpUtfNcmp2 where appropriate, and only use - Tcl_UniCharNcmp when at least one of the objects is a Unicode obj with - no utf bytes. - - * generic/tclCompCmds.c (TclCompileStringCmd): removed error creation - in code that no longer throws an error. +2006-08-16 Don Porter <dgp@users.sourceforge.net> - * tests/string.test: - * tests/stringComp.test: added more string comparison checks. + * generic/tclParseExpr.c: Replace PrecedenceOf() function with + prec[] static array. - * tests/clock.test: better qualified 9.1 constraint check for %s. +2006-08-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-05-28 Jeff Hobbs <jeffh@ActiveState.com> + * library/clock.tcl (::tcl::clock::add): Added missing braces to + clockval validation code. Pointed out on comp.lang.tcl. - * generic/tclThreadAlloc.c (TclpRealloc, TclpFree): protect against - the case when NULL is based. +2006-08-11 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * tests/clock.test: added clock-9.1 - * compat/strftime.c: - * generic/tclClock.c: - * generic/tclInt.decls: - * generic/tclIntDecls.h: - * unix/tclUnixTime.c: fix for Windows msvcrt mem leak caused by using - an env(TZ) setting trick for in clock format -gmt 1. This also makes - %s seem to work correctly with -gmt 1 as well as making it a lot - faster by avoid the env(TZ) hack. TclpStrftime now takes useGMT as an - arg. [Bug 559376] - -2002-05-28 Vince Darley <vincentdarley@users.sourceforge.net> - - * generic/tclIOUtil.c: fixes to Tcl_FSLoadFile when called on a file - inside a vfs. This should avoid leaving temporary files sitting around - on exit. [Bug 545579] - -2002-05-27 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * win/tclWinError.c: Added comment on conversion of - ERROR_NEGATIVE_SEEK because that is a mapping that really belongs, and - not a catch-all case. - * win/tclWinPort.h (EOVERFLOW): Should be either EFBIG or EINVAL - * generic/tclPosixStr.c (Tcl_ErrnoId, Tcl_ErrnoMsg): EOVERFLOW can - potentially be a synonym for EINVAL. - -2002-05-24 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - === Changes due to TIP#91 === - - * win/tclWinPort.h: Added declaration of EOVERFLOW. - * doc/CrtChannel.3: Added documentation of wideSeekProc. - * generic/tclIOGT.c (TransformSeekProc, TransformWideSeekProc): - Adapted to use the new channel mechanism. - * unix/tclUnixChan.c (FileSeekProc, FileWideSeekProc): Renamed - FileSeekProc to FileWideSeekProc and created new FileSeekProc which - has the old-style interface and which errors out with EOVERFLOW when - the returned file position can't fit into the return type (int for - historical reasons.) - * win/tclWinChan.c (FileSeekProc, FileWideSeekProc): Renamed - FileSeekProc to FileWideSeekProc and created new FileSeekProc which - has the old-style interface and which errors out with EOVERFLOW when - the returned file position can't fit into the return type (int for - historical reasons.) - * mac/tclMacChan.c (FileSeek): Reverted to old interface; Macs lack - large-file support because I can't see how to add it. - * generic/tclIO.c (Tcl_Seek, Tcl_Tell): Given these functions - knowledge of the new arrangement of channel types. - (Tcl_ChannelVersion): Added recognition of new version code. - (HaveVersion): New function to do version checking. - (Tcl_ChannelBlockModeProc, Tcl_ChannelFlushProc) - (Tcl_ChannelHandlerProc): Made these functions use HaveVersion for - ease of future maintainability. - (Tcl_ChannelBlockModeProc): Obvious lookup function. - * generic/tcl.h (Tcl_ChannelType): New wideSeekProc field, and - seekProc type restored to old interpretation. - (TCL_CHANNEL_VERSION_3): New channel version. - -2002-05-24 Andreas Kupries <andreas_kupries@users.sourceforge.net> - - * tests/winPipe.test: Applied patch for [Bug 549617]. Patch and bug - report by Kevin Kenny <kennykb@users.sourceforge.net>. - - * win/tclWinSock.c (TcpWatchProc): Fixed [Bug 557878]. We are not - allowed to mess with the watch mask if the socket is a server socket. - I believe that the original reporter is George Peter Staplin. - -2002-05-21 Mo DeJong <mdejong@users.sourceforge.net> - - * unix/configure: Regen. - * unix/configure.in: Invoke SC_ENABLE_SHARED before calling - SC_CONFIG_CFLAGS so that the SHARED_BUILD variable can be checked - inside SC_CONFIG_CFLAGS. - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Pass -non_shared instead of -shared - to ld when configured with --disable-shared under OSF. [Bug 540390] - -2002-05-20 Daniel Steffen <das@users.sourceforge.net> - - * generic/tclInt.h: added prototype for TclpFilesystemPathType(). - * mac/tclMacChan.c: use MSL provided creator type if available instead - of the default 'MPW '. - -2002-05-16 Joe English <jenglish@users.sf.net> - - * doc/CrtObjCmd.3: Added Tcl_GetCommandFromObj, Tcl_GetCommandFullName - [Bugs 547987, 414921] - -2002-05-14 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * unix/tclUnixChan.c (TtyOutputProc): #if/#endif-ed this function out - to stop compiler warnings. Also much general tidying of comments in - this file and removal of whitespace from blank lines. - -2002-05-13 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * unix/tclUnixChan.c (SETBREAK): Solaris thinks ioctl() takes a signed - second argument, and Linux thinks ioctl() takes an unsigned second - argument. So need a longer definition of this macro to get neither to - spew warnings... - -2002-05-13 Vince Darley <vincentdarley@users.sourceforge.net> - - * generic/tclEvent.c: - * generic/tclIOUtil.c: - * generic/tclInt.h: clean up all memory allocated by the filesystem, - via introduction of 'TclFinalizeFilesystem'. Move TclFinalizeLoad into - TclFinalizeFilesystem so we can be sure it is called at just the right - time. Fix bad comment also. [Bug 555078 and 'fs' part of 543549] - * win/tclWinChan.c: fix comment referring to wrong function. + * generic/tclNamesp.c: Improvements in buffer management to make + namespace creation faster. Plus selected other minor improvements to + code quality. [Patch 1352382] -2002-05-10 Don Porter <dgp@users.sourceforge.net> +2006-08-10 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * tests/load.test: - * tests/safe.test: - * tests/tcltest.test: Corrected some list-quoting issues and other - matters that cause tests to fail when the patch includes special - characters. Report from Vince Darley. [Bug 554068]. + Misc patches to make code more efficient. [Bug 1530474] (afredd) + * generic/*.c, macosx/tclMacOSXNotify.c, unix/tclUnixNotfy.c, + * win/tclWinThrd.c: Tidy up invokations of Tcl_Panic() to promote + string constant sharing and consistent style. + * generic/tclBasic.c (Tcl_CreateInterp): More efficient handling of + * generic/tclClock.c (TclClockInit): registration of commands not + in global namespace. + * generic/tclVar.c (Tcl_UnsetObjCmd): Remove unreachable clause. -2002-05-08 David Gravereaux <davygrvy@pobox.com> +2006-08-09 Don Porter <dgp@users.sourceforge.net> - * doc/file.n: - * tools/man2tcl.c: - * tools/man2help2.tcl: Thanks to Peter Spjuth <peter.spjuth@space.se>, - again. My prior fix for single-quote macro mis-understanding was - wrong. Reverted to reimpliment the 'macro2' proc which handles - single-quote macros and restored file.n text arrangement to avoid - single-quotes on the first line. Sorry for all the confusion. + * generic/tclEncoding.c: Replace buffer copy in for loop with + call to memcpy(). Thanks to afredd. [Patch 1530262] -2002-05-08 David Gravereaux <davygrvy@pobox.com> +2006-08-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * tools/man2tcl.c: - * tools/man2help2.tcl: Proper source of macro error mis-understanding - single-quote as the leading macro command found and repaired. + * generic/tclCmdIL.c (Tcl_LassignObjCmd): Make the wrong#args message + a bit more consistent with those used elsewhere. [Bug 1534628] - * doc/file.n: Reverted to prior state before I messed with it. + * generic/tclDictObj.c (DictForCmd): Stop crash when attempting to + iterate over an invalid dictionary. [Bug 1531184] -2002-05-08 Don Porter <dgp@users.sourceforge.net> + * doc/ParseCmd.3, doc/expr.n, doc/set.n, doc/subst.n, doc/switch.n: + * doc/tclvars.n: Ensure that uses of [expr] in documentation examples + are also good style (with braces) unless otherwise necessary. [Bug + 1526581] - * library/tcltest/tcltest.tcl: Corrected [uplevel] quoting when - [source]-ing test script in subdirectories. - * tests/fileName.test: - * tests/load.test: - * tests/main.test: - * tests/tcltest.test: - * tests/unixInit.test: Fixes to test suite when there's a space in the - working path. Thanks to Kevin Kenny. - -2002-05-07 David Gravereaux <davygrvy@pobox.com> - - -- Changes from Peter Spjuth <peter.spjuth@space.se> - * tools/man2tcl.c: Increased line buffer size and a bail-out if that - should ever be over-run. - * tools/man2help.tcl: Include Courier New font in rtf header. - * tools/man2help2.tcl: Improved handling of CS/CE fields. Use Courier - New for code samples and indent better. - - * doc/file.n: - * doc/TraceCmd.3: winhelp conversion tools where understanding a ' as - the first character on a line to be an unknown macro. Not knowing how - to repair tools/man2tcl.c, I decided to rearrange the text in the docs - instead. - -2002-05-07 Vince Darley <vincentdarley@users.sourceforge.net> - - * generic/tclFileName.c: fix to similar segfault when using - 'glob -types nonsense -dir dirname -join * *'. [Bug 553320] - - * doc/FileSystem.3: further documentation on vfs. - * tests/cmdAH.test: - * tests/fileSystem.test: - * tests/pkgMkindex.test: Fix to testsuite bugs when running out of - directory whose name contains '{' or '['. - -2002-05-07 Miguel Sofer <msofer@users.sourceforge.net> - - * tests/basic.test: Fix for [Bug 549607] - * tests/encoding.test: Fix for [Bug 549610] - These are testsuite bugs that caused failures when the filename - contained spaces. Report & fix by Kevin Kenny. - -2002-05-02 Vince Darley <vincentdarley@users.sourceforge.net> - - * generic/tclFileName.c: fix to freeing a bad object (i.e. segfault) - when using 'glob -types nonsense -dir dirname'. - * generic/tclWinFile.c: fix to [Bug 551306], also wrapped some long - lines. - * tests/fileName.test: added several tests for the above bugs. - * doc/FileSystem.3: clarified documentation on refCount requirements - of the object returned by the path type function. - * generic/tclIOUtil.c: - * win/tclWinFile.c: - * unix/tclUnixFile.c: - * mac/tclMacFile.c: moved TclpFilesystemPathType to the platform - specific directories, so we can add missing platform-specific - implementations. On Windows, 'file system' now returns useful results - like "native NTFS", "native FAT" for that system. Unix and MacOS still - only return "native". - * doc/file.n: clarified documentation. - * tests/winFile.test: test for 'file system' returning correct values. - * tests/fileSystem.test: test for 'file system' returning correct - values. Clean up after failed previous test run. +2006-08-03 Daniel Steffen <das@users.sourceforge.net> -2002-04-26 Jeff Hobbs <jeffh@ActiveState.com> + * unix/tclUnixPipe.c (TclpCreateProcess): for USE_VFORK: ensure + standard channels are initialized before vfork() so that the child + doesn't potentially corrupt global state in the parent's address space + + * tests/compExpr-old.test: add 'oldExprParser' constraint to all tests + * tests/compExpr.test: that depend on the exact format of the + * tests/compile.test: error messages of the pre-2006-07-05 + * tests/expr-old.test: expression parser. The constraint is on by + * tests/expr.test: default (i.e those tests still fail), but + * tests/for.test: can be turned off by passing '-constraints + * tests/if.test: newExprParser' to tcltest, which will skip + * tests/parseExpr.test: the 196 failing tests in the testsuite that + * tests/while.test: are caused by the new expression parser + error messages. - * unix/configure: - * unix/tcl.m4: change HP-11 SHLIB_LD_LIBS from "" to ${LIBS} so that - the .sl knows its dependent libs. +2006-07-31 Kevin B. Kenny <kennykb@acm.org> -2002-04-26 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclClock.c (ConvertLocalToUTCUsingC): Corrected a regression + that caused dates before 1969 to be one day off in the :localtime time + zone if TZ is not set. [Bug 1531530] - * tests/obj.test (obj-11.[56]): Test conversion to boolean more - thoroughly. - * generic/tclObj.c (SetBooleanFromAny): Was not calling an integer - parsing function on native 64-bit platforms! [Bug 548686] +2006-07-30 Kevin B. Kenny <kennykb@acm.org> -2002-04-24 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclClock.c (GetJulianDayFromEraYearMonthDay): Corrected + several errors in converting dates before the Common Era [Bug 1426279] + * library/clock.tcl: Corrected syntax errors in generated code for %EC + %Ey, and %W format groups [Bug 1505383]. Corrected a bug in cache + management for format strings containing [glob] metacharacters [Bug + 1494664]. Corrected several errors in formatting/scanning of years + prior to the Common Era, and added the missing %EE format group to + indicate the era. + * tools/makeTestCases.tcl: Added code to make sure that %U and %V + format groups are included in the tests. (The code depends on %U and + %V formatting working correctly when 'makeTestCases.tcl' is run, + rather than making a completely independent check.) Added tests for + [glob] metacharacters in strings. Added tests for years prior to the + Common Era. + * tests/clock.test: Rebuilt with new test cases for all the above. - * generic/tclInt.h: corrected TclRememberJoinableThread decl to use - VOID instead of void. - * generic/tclThreadJoin.c: noted that this code isn't needed on Unix. +2006-07-30 Joe English <jenglish@users.sourceforge.net> -2002-04-23 Jeff Hobbs <jeffh@ActiveState.com> + * doc/AppInit.3: Fix typo [Bug 1496886] - * doc/exec.n: - * doc/tclvars.n: doc updates [Patch 509426] (gravereaux) +2006-07-26 Don Porter <dgp@users.sourceforge.net> -2002-04-24 Daniel Steffen <das@users.sourceforge.net> + * generic/tclExecute.c: Corrected flawed overflow detection in + * tests/expr.test: INST_EXPON that caused [expr 2**64] to return + 0 instead of the same value as [expr 1<<64]. - * mac/tclMacResource.r: added check of TCLTK_NO_LIBRARY_TEXT_RESOURCES - #define to allow disabling the inclusion of the tcl library code in - the resource fork of Tcl executables and shared libraries. +2006-07-24 Don Porter <dgp@users.sourceforge.net> -2002-04-23 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * win/tclWinSock.c: Correct un-initialized Tcl_DString. Thanks to + afredd. [Bug 1518166] - * doc/TraceCmd.3: New file that documents Tcl_CommandTraceInfo, - Tcl_TraceCommand and Tcl_UntraceCommand [Bug 414927] +2006-07-21 Miguel Sofer <msofer@users.sf.net> -2002-04-22 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c: + * tests/execute.test (execute-9.1): dgp's fix for [Bug 1522803]. - * generic/tclAlloc.c: - * generic/tclInt.h: - * generic/tclThreadAlloc.c (new): - * unix/Makefile.in: - * unix/tclUnixThrd.c: - * win/Makefile.in: - * win/tclWinInt.h: - * win/tclWinThrd.c: added new threaded allocator contributed by AOL - that significantly reduces lock contention when multiple threads are - in use. Only Windows and Unix implementations are ready, and the - Windows one may need work. It is only used by default on Unix for now, - and requires that USE_THREAD_ALLOC be defined (--enable-threads on - Unix will define this). +2006-07-20 Daniel Steffen <das@users.sourceforge.net> - * generic/tclIOUtil.c (Tcl_FSRegister, Tcl_FSUnregister): corrected - calling of Tcl_ConditionWait to ensure that there would be a condition - to wait upon. + * macosx/tclMacOSXNotify.c (Tcl_InitNotifier, Tcl_WaitForEvent): + create notifier thread lazily upon first call to Tcl_WaitForEvent() + rather than in Tcl_InitNotifier(). Allows calling exeve() in processes + where the event loop has not yet been run (Darwin's execve() fails in + processes with more than one thread), in particular allows embedders + to call fork() followed by execve(), previously the pthread_atfork() + child handler's call to Tcl_InitNotifier() would immediately recreate + the notifier thread in the child after a fork. - * generic/tclCmdAH.c (Tcl_FileObjCmd): added cast in FILE_SIZE. + * macosx/tclMacOSXFCmd.c (TclMacOSXCopyFileAttributes): add support + * macosx/tclMacOSXNotify.c (Tcl_InitNotifier): for weakly + * unix/tclUnixInit.c (Tcl_GetEncodingNameFromEnvironment): importing + symbols not available on OSX 10.2 or 10.3, enables binaires built on + later OSX versions to run on earlier ones. + * macosx/Tcl.xcodeproj/project.pbxproj: enable weak-linking; turn on + extra warnings. + * macosx/README: document how to enable weak-linking; cleanup. + * unix/tclUnixPort.h: add support for weak-linking; conditionalize + AvailabilityMacros.h inclusion; only disable realpath on 10.2 or + earlier when threads are enabled. + * unix/tclLoadDyld.c (TclpLoadMemoryGetBuffer): change runtime Darwin + * unix/tclUnixInit.c (TclpInitPlatform): release check to use + global initialized + once + * unix/tclUnixFCmd.c (DoRenameFile, TclpObjNormalizePath): add runtime + Darwin release check to determine if realpath is threadsafe. + * unix/configure.in: add check on Darwin for compiler support of weak + * unix/tcl.m4: import and for AvailabilityMacros.h header; move + Darwin specific checks & defines that are only relevant to the tcl + build out of tcl.m4; restrict framework option to Darwin; clean up + quoting and help messages. + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 - * win/tclWinFCmd.c (DoDeleteFile): check return of setattr API calls - in file deletion for correct Win32 API handling. + * generic/regc_locale.c (cclass): + * generic/tclExecute.c (TclExecuteByteCode): + * generic/tclIOCmd.c (Tcl_ExecObjCmd): + * generic/tclListObj.c (NewListIntRep): + * generic/tclObj.c (Tcl_GetLongFromObj, Tcl_GetWideIntFromObj) + (FreeBignum, Tcl_SetBignumObj): + * generic/tclParseExpr.c (Tcl_ParseExpr): + * generic/tclStrToD.c (TclParseNumber): + * generic/tclStringObj.c (TclAppendFormattedObjs): + * unix/tclLoadDyld.c (TclpLoadMemory): + * unix/tclUnixPipe.c (TclpCreateProcess): fix signed-with-unsigned + comparison and other warnings from gcc4 -Wextra. - * win/Makefile.in: correct dependencies for shell, gdb, runtest - targets. +2006-07-13 Andreas Kupries <andreask@activestate.com> - * doc/clock.n: - * compat/strftime.c (_fmt): change strftime to correctly handle - localized %c, %x and %X on Windows. Added some notes about how the - other values could be further localized. + * unix/tclUnixPort.h: Added the inclusion of <AvailabilityMacros.h>. + The missing header caused the upcoming #if conditions to wrongly + exclude realpath, causing file normalize to ignore symbolic links in + the path. -2002-04-19 Don Porter <dgp@users.sourceforge.net> +2006-07-11 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * generic/tclMain.c (Tcl_Main): Free the memory allocated for the - startup script path. [Bug 543549] + * generic/tclAsync.c: Made Tcl_AsyncDelete() more tolerant when called + after all thread TSD has been garbage-collected. - * library/msgcat/msgcat.tcl: [mcmax] wasn't using the caller's - namespace when determining the max translated length. Also made - revisions for better use of namespace variables and more efficient - [uplevel]s. +2006-07-05 Don Porter <dgp@users.sourceforge.net> + + * generic/tclParseExpr.c: Completely new expression parser that + builds a parse tree instead of operating with deep recursion. This + corrects reports of stack-blowing crashes parsing long expressions + [Bug 906201] and replaces a fundamentally O(N^2) algorithm with an + O(N) one [RFE 903765]. The new parser is better able to generate error + messages that clearly report both the nature and context of the syntax + error [Bugs 1029267, 1381715]. For now, the code for the old parser is + still present and can be activated with a "#define OLD_EXPR_PARSER + 1". This is for the sake of a clean implementation patch, and for ease + of benchmarking. The new parser is non-recursive, so much lighter in + stack consumption, but it does use more heap, so there may be cases + where parsing of long expressions that succeeded with the old parser + will lead to out of memory panics with the new one. There are still + more improvements possible on that point, though significant progress + may require changes to the Tcl_Token specifications documented for the + public Tcl_Parse*() routines. + ***POTENTIAL INCOMPATIBILITY*** for any callers that rely on the exact + (usually terrible) error messages generated by the old parser. This + includes a large number of tests in the test suite. + + * generic/tclInt.h: Replaced TclParseWhiteSpace() with + * generic/tclParse.c: TclParseAllWhiteSpace() which is what + * generic/tclParseExpr.c: all the callers really needed. + Breaking whitespace runs at newlines is useful only to the command + parsing function, and it can call the file scoped routine + ParseWhiteSpace() to do that. + + * tests/expr-old.test: Removed knownBug constraints that masked + * tests/expr.test: failures due to revised error messages. + * tests/parseExpr.test: - * doc/msgcat.n: - * library/msgcat/msgcat.tcl: - * library/msgcat/pkgIndex.tcl: Added [mcload] to the export list of - msgcat; bumped to 1.2.3. [Bug 544727] +2006-06-20 Don Porter <dgp@users.sourceforge.net> -2002-04-20 Daniel Steffen <das@users.sourceforge.net> + * generic/tclIOUtil.c: Changed default configuration to + * generic/tclInt.decls: #undef USE_OBSOLETE_FS_HOOKS which disables + * generic/tclTest.c: access to the Tcl 8.3 internal routines for + hooking into filesystem operations. Everyone ought to have migrated to + Tcl_Filesystems by now. + ***POTENTIAL INCOMPATIBILITY*** for any code still stuck in the + pre-Tcl_Filesystem era. - * generic/tclInt.decls: - * generic/tclIntPlatDecls.h: + * generic/tclIntDecls.h: make genstubs * generic/tclStubInit.c: - * mac/tclMacFCmd.c: - * mac/tclMacFile.c: - * mac/tclMacUtil.c: Modified TclpObjNormalizePath to be alias file - aware, and replaced various calls to FSpLocationFrom*Path by calls to - new alias file aware versions FSpLLocationFrom*Path. The alias file - aware routines don't resolve the last component of a path if it is an - alias. This allows [file copy/delete] etc. to act correctly on alias - files. (c.f. discussion in [Bug 511666]) - -2002-04-19 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * tests/lindex.test (lindex-3.7): - * generic/tclUtil.c (TclGetIntForIndex): Stopped indexes from hitting - wide ints. [Bug 526717] - -2002-04-18 Miguel Sofer <msofer@users.sourceforge.net> - - * generic/tclNamesp.c: - * tests/info.test: [Bug 545325] info level didn't report namespace - eval, bug report by Richard Suchenwirth. - -2002-04-18 Don Porter <dgp@users.sourceforge.net> - - * doc/subst.n: Clarified documentation on handling unusual return - codes during substitution, and on variable substitutions implied by - command substitution, and vice versa. [Bug 536838] -2002-04-18 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclStrToD.c: Removed dead code that permitted disabling of + recognition of the new 0b and 0o numeric formats. - * generic/tclCmdIL.c (InfoBodyCmd): - * tests/info.test (info-2.6): Proc bodies without string reps would - report as empty [Bug 545644] + * generic/tclExecute.c: Removed dead code that implemented alternative + * generic/tclObj.c: design where numeric values did not + automatically narrow to the smallest Tcl_ObjType required to hold them - * generic/tclCmdMZ.c (Tcl_SubstObj): More clarification for comment on - behaviour when substitutions are not well-formed, prompted by [Bug - 536831]; alas, removing the ill-defined behaviour is a lot of work. + * generic/tclCmdAH.c: Removed dead code that was old implementation + of [format]. -2002-04-18 Miguel Sofer <msofer@users.sourceforge.net> - - * generic/tclExecute.c: - * tests/expr-old.test: fix for [Bug 542588] (Phil Ehrens), where "too - large integers" were reported as "floating-point value" in [expr] - error messages. - -2002-04-17 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclEncoding.c (EscapeFromUtfProc): - * generic/tclIO.c (WriteChars, Tcl_Close): corrected the handling of - outputting end escapes for escape-based encodings. - [Bug 526524] (yamamoto) - -2002-04-17 Don Porter <dgp@users.sourceforge.net> - - * doc/tcltest.n: Removed [saveState] and [restoreState] from tcltest - 2 documentation, effectively deprecating them. [Bug 495660] - * library/tcltest/tcltest.tcl: Made separate export for commands kept - only for tcltest 1 compatibility. - - * tests/iogt.test: Revised to run tests in a namespace, rather than - use the useless and buggy [saveState] and [restoreState] commands of - tcltest. Updated to use tcltest 2 as well. [Patch 544911] +2006-06-14 Daniel Steffen <das@users.sourceforge.net> -2002-04-16 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixPort.h (Darwin): support MAC_OS_X_VERSION_MAX_ALLOWED + define from AvailabilityMacros.h: override configure detection and + only use API available in the indicated OS version or earlier. - * tests/io.test: Revised to run tests in a namespace, rather than use - the useless and buggy [saveState] and [restoreState] commands of - tcltest. Updated to use tcltest 2 as well. [Patch 544546] +2006-06-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-04-15 Miguel Sofer <msofer@users.sourceforge.net> + * doc/format.n, doc/scan.n: Added examples for converting between + characters and their numeric interpretations following user prompting. - * generic/tclProc.c: - * tests/proc-old.test: Improved stack trace for TCL_BREAK and - TCL_CONTINUE returns from procs. [Bug 536955] (dgp) +2006-06-13 Donal K. Fellows <dkf@users.sf.net> - * generic/tclExecute.c: - * tests/compile.test: made bytecodes check for a catch before - returning; the compiled [return] is otherwise non-catchable. [Bug - 542142] reported by Andreas Kupries. - -2002-04-15 Don Porter <dgp@users.sourceforge.net> - - * tests/socket.test: Increased timeout values so that tests have time - to successfully complete even on slow/busy machines. [Bug 523470] - - * doc/tcltest.n: - * library/tcltest/tcltest.tcl: - * tests/tcltest.test: Revised [tcltest::test] to return errors when - called with invalid syntax and to accept exactly two arguments as - documented. Improved error messages. [Bug 497446, Patch 513983] - ***POTENTIAL INCOMPATIBILITY***: Incompatible with previous - tcltest 2.* releases, found only in alpha releases of Tcl 8.4. - -2002-04-11 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclNotify.c (TclFinalizeNotifier): remove remaining - unserviced events on finalization. - - * win/tcl.m4: Enabled COFF as well as CV style debug info with - --enable-symbols to allow Dr. Watson users to see function info. More - info on debugging levels can be obtained at: - http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp + * unix/tclLoadDl.c (TclpDlopen): Workaround for a compiler bug in Sun + Forte 6. [Bug 1503729] - * tests/ioCmd.test: fixed iocmd-8.15 to have mac and unixPc variants. - - * generic/tclParse.c (Tcl_ParseVar): conditionally incr obj refcount - to prevent possible mem leak. - -2002-04-08 Daniel Steffen <das@users.sourceforge.net> - - * generic/tcl.h: no <sys/types.h> on mac. - * mac/tclMacFile.c: minor fixes to Vince's changes from 03-24. - * mac/tclMacOSA.c: - * mac/tclMacResource.c: added missing Tcl_UtfToExternalDString - conversions of resource file names. - * mac/tclMacSock.c (TcpGetOptionProc): fixed bug introduced by Andreas - on 02-25; changed strcmp's to strncmp's so that option comparison - behaves like on other platforms. - * mac/tcltkMacBuildSupport.sea.hqx (CW Pro6 changes): added support to - allow Tk to hookup C library stderr/stdout to TkConsole. - * tests/basic.test: - * tests/cmdAH.test: - * tests/encoding.test: - * tests/fileSystem.test: - * tests/ioCmd.test: fixed tests failing on mac: check for existence of - [exec], changed some result strings. - -2002-04-06 Jeff Hobbs <jeffh@ActiveState.com> - - * unix/tclUnixFCmd.c (Realpath): added a little extra code to - initialize a realpath arg when compiling in PURIFY mode in order to - prevent spurious purify warnings. We should really create our own - realpath implementation, but this will at least quiet purify for now. - -2002-04-05 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCmdMZ.c (Tcl_SubstObj): - * tests/subst.test: Corrected [subst] so that return codes TCL_BREAK - and TCL_CONTINUE returned by variable substitution have the same - effect as when those codes are returned by command substitution. [Bug - 536879] - -2002-04-03 Jeff Hobbs <jeffh@ActiveState.com> - - * library/tcltest/tcltest.tcl: added getMatchingFiles back (alias - to GetMatchingFiles), which was a public function in tcltest 1.0. - -2002-04-01 Vince Darley <vincentdarley@users.sourceforge.net> - - * generic/tclEnv.c: - * generic/tclIOUtil.c: invalidate filesystem cache when the user - changes env(HOME). Fixes [Bug 535621]. Also cleaned up some of the - documentation. - * tests/fileSystem.test: added test for bug just fixed. - -2002-04-01 Kevin Kenny <kennykb@acm.org> - - * win/tclWinTime.c (Tcl_GetTime): made the checks of clock frequency - more permissive to cope with the fact that Win98SE is observed to - return 1.19318 in place of 1.193182 for the performance counter - frequency. - -2002-03-29 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclCmdMZ.c (Tcl_TraceObjCmd, TraceVarProc) - (TraceCommandProc, TclTraceCommandObjCmd): corrected potential - double-free of traces on variables by flagging in Trace*Proc that it - will free the var in case the eval wants to delete the var trace as - well. [Bug 536937] - Also converted Tcl_UntraceVar -> Tcl_UntraceVar2 and Tcl_Eval to - Tcl_EvalEx in Trace*Proc for slight efficiency improvement. - -2002-03-29 Don Porter <dgp@users.sourceforge.net> - - * doc/AllowExc.3: - * generic/tclBasic.c (Tcl_EvalObjv,Tcl_EvalEx,Tcl_EvalObjEx): - * generic/tclCompile.h (TclCompEvalObj): - * generic/tclExecute.c (TclCompEvalObj,TclExecuteByteCode): - * tests/basic.test: Corrected problems with Tcl_AllowExceptions having - influence over the wrong scope of Tcl_*Eval* calls. Patch from Miguel - Sofer. Report from Jean-Claude Wippler. [Bug 219181] - -2002-03-28 Don Porter <dgp@users.sourceforge.net> - - * generic/tclVar.c: Refactored CallTraces to collect repeated handling - of its returned value into CallTraces itself. - -2002-03-28 David Gravereaux <davygrvy@pobox.com> - - * tools/feather.bmp: - * tools/man2help.tcl: - * tools/man2help2.tcl: - * win/makefile.vc: More winhelp target fixups. Added a feather bitmap - to the non-scrollable area and changed the color to be yellow from a - plain white. The colors can be whatever we want them to be, but - thought I would start with something bold. [Bug 527941] - - * doc/SetVar.3: - * doc/TraceVar.3: - * doc/UpVar.3: .AP macro syntax repair. - -2002-03-27 David Gravereaux <davygrvy@pobox.com> - - * tools/man2help.tcl: - * win/makefile.vc: winhelp target now copies all needed files from - tools/ to a workarea under $(OUT_DIR) and builds it from there. No - build cruft is left in tools/ anymore. All paths used in man2help.tcl - are now relative to where the script is. [Bug 527941] - -2002-03-27 David Gravereaux <davygrvy@pobox.com> - - * win/.cvsignore: - * win/buildall.vc.bat: - * win/coffbase.txt: - * win/makefile.vc: - * win/nmakehlp.c (new): - * win/rules.vc: First draft fix for [Bug 527941]. More changes need to - done to the makehelp target to get to stop leaving build files in the - tools/ directory. This does not address the syntax errors in the man - files. Having the contents of tcl.hpj(.in) inside makefile.vc allows - for version numbers to be replaced with macros. +2006-06-06 Don Porter <dgp@users.sourceforge.net> - The new nmakehlp.c is built by rules.vc in preprocessing and removes - the need to use tricky shell syntax that wasn't compatible on Win9x - systems. Clean targets made Win9x complient. This is a first draft - repair for [Bug 533862]. + * doc/GetStdChan.3: Added recommendation that each call to + Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel(). -2002-03-28 Miguel Sofer <msofer@users.sourceforge.net> +2006-06-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * generic/tclBasic.c (Tcl_EvalEx): passing the correct commandSize - to TclEvalObjvInternal. [Bug 219362], fix by David Knoll. + * doc/Alloc.3: Added documentation of promise that Tcl_Realloc(NULL,x) + is the same as Tcl_Alloc(x), as discussed in comp.lang.tcl. Also fixed + nonsense sentence to say something meaningful. -2002-03-28 Miguel Sofer <msofer@users.sourceforge.net> +2006-05-29 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclBasic.c (Tcl_EvalEx): - * tests/basic.test: avoid exceptional returns at level 0 - [Bug 219181] + * generic/tcl.h (Tcl_DecrRefCount): use if/else construct to allow + placement in unbraced outer if/else conditions. (jcw) -2002-03-27 Don Porter <dgp@users.sourceforge.net> +2006-05-27 Daniel Steffen <das@users.sourceforge.net> - * doc/tcltest.n ([mainThread]): - * library/tcltest/tcltest.tcl: - * tests/tcltest.test: Major code cleanup to deal with whitespace, - coding conventions, and namespace issues, with several minor bugs - fixed in the process. + * macosx/tclMacOSXNotify.c: implemented pthread_atfork() handler that + * unix/tcl.m4 (Darwin): recreates CoreFoundation state and + notifier thread in the child after a fork(). Note that pthread_atfork + is available starting with Tiger only. Because vfork() is used by the + core on Darwin, [exec]/[open] are not affected by this fix, only + extensions or embedders that call fork() directly (such as TclX). + However, this only makes fork() safe from corefoundation tcl with + --disable-threads; as on all platforms, forked children may deadlock + in threaded tcl due to the potential for stale locked mutexes in the + child. [Patch 923072] - * tests/main.test: Added missing [after cancel]s. + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 -2002-03-25 Don Porter <dgp@users.sourceforge.net> +2006-05-24 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * tests/main.test: Removed workarounds for Bug 495977. + * unix/tcl.m4 (SC_CONFIG_SYSTEM): Fixed quoting of command script to + awk; it was a rarely used branch, but it was wrong. [Bug 1494160] - * library/tcltest/tcltest.tcl: Keep the value of $::auto_path - unchanged, so that the tcltest package can test code that depends - on auto-loading. If a testing application needs $::auto_path pruned, - it should do that itself. [Bug 495726] - Improve the processing of the -constraints option to [test] so that - constraint lists can have arbitrary whitespace, and non-lists don't - blow things up. [Bug 495977] - Corrected faulty variable initialization. [Bug 534845] +2006-05-23 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-03-25 Miguel Sofer <msofer@users.sourceforge.net> + * doc/chan.n, doc/refchan.n: Tighten up the documentation to follow a + slightly more consistent style with regard to argument capitalization. - * doc/CrtTrace.3: small doc correction - * generic/tclBasic.c (Tcl_DeleteTrace): Allow NULL callback on - trace deletions [Bug 534728] (Hemang Lavana). +2006-05-13 Don Porter <dgp@users.sourceforge.net> -2002-03-24 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclProc.c (ProcCompileProc): When a bump of the compile + epoch forces the re-compile of a proc body, take care not to overwrite + any Proc struct that may be referred to on the active call stack. This + fixes [Bug 1482718]. Note that the fix will not be effective for code + that calls the private routine TclProcCompileProc() directly. - * generic/tclBasic.c (Tcl_EvalObjv): replaced obscure, incorrect - code as described in [Bug 533907] (Don Porter). +2006-05-13 Daniel Steffen <das@users.sourceforge.net> -2002-03-24 Don Porter <dgp@users.sourceforge.net> + * generic/tclEvent.c (HandleBgErrors): fix leak. [Coverity issue 86] - * library/tcltest/tcltest.tcl: Use [interpreter] to set/query the - executable currently running the tcltest package. [Bug 454050] +2006-05-05 Don Porter <dgp@users.sourceforge.net> - * library/tcltest/tcltest.tcl: Allow non-proc commands to be used - as the customization hooks. [Bug 495662] + * generic/tclMain.c (Tcl_Main): Corrected flaw that required + * tests/main.test: (Tcl_Main-4.5): processing of one interactive + command before passing control to the loop routine registered with + Tcl_SetMainLoop(). [Bug 1481986] -2002-03-24 Vince Darley <vincentdarley@users.sourceforge.net> +2006-05-04 Don Porter <dgp@users.sourceforge.net> - * generic/tclFilename.c: - * generic/tclFCmd.c: - * generic/tclTest.c: + * README: Bump version number to 8.5a5 * generic/tcl.h: - * generic/tclIOUtil.c: - * win/tclWinFile.c: - * win/tclWinFCmd.c: - * win/tclWinPipe.c: - * unix/tclUnixFile.c: - * unix/tclUnixFCmd.c: - * mac/tclMacFile.c: - * doc/FileSystem.3: - * doc/file.n: - * tests/cmdAH.test: - * tests/fileName.test: - * tests/fileSystem.test: (new file) - * tests/winFCmd.test: fix [Bug 511666] and [Bug 511658], and improved - documentation of some aspects of the filesystem, particularly - 'Tcl_FSMatchInDirectory' which now might match a single file/directory - only, and 'file normalize' which wasn't very clear before. Removed - inconsistency betweens docs and the Tcl_Filesystem structure. Also - fixed [Bug 523217] and corrected file normalization on Unix so that it - expands symbolic links. Added some new tests of the filesystem code - (in the new file 'fileSystem.test'), and some extra tests for correct - handling of symbolic links. Fix to [Bug 530960] which shows up on - Win98. Made comparison with ".com" case insensitive in tclWinPipe.c - - ***POTENTIAL INCOMPATIBILITY***: But only between alpha releases - (users of the new Tcl_Filesystem lookup table in Tcl 8.4a4 need to - handle the new way in which Tcl may call Tcl_FSMatchInDirectory, and - 'file normalize' on unix now behaves correctly). Only known impact is - with the 'tclvfs' extension. - -2002-03-22 Miguel Sofer <msofer@users.sourceforge.net> - - * tests/basic.test (basic-46.1): adding test for [Bug 533758], fixed - earlier today. - -2002-03-22 Jeff Hobbs <jeffh@ActiveState.com> - - * win/tclWinInt.h: moved undef of TCL_STORAGE_CLASS. [Bug 478579] - -2002-03-22 Miguel Sofer <msofer@users.sourceforge.net> - - * generic/tclBasic.c (Tcl_EvalObjEx): - * generic/tclExecute.c (TclCompEvalObj): fixed the errorInfo for - return codes other than (TCL_OK, TCL_ERROR) to runLevel 0 [Bug - 533758]. Removed the static RecordTracebackInfo(), as its - functionality is easily replicated by Tcl_LogCommandInfo. Bug and - redundancy noted by Don Porter. - -2002-03-21 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * doc/expr.n: Improved documentation for ceil and floor [Bug 530535] - -2002-03-20 Don Porter <dgp@users.sourceforge.net> - - * doc/SetVar.3: - * doc/TraceVar.3: - * doc/UpVar.3: - * generic/tcl.h (Tcl_VarTraceProc): - * generic/tcl.decls (Tcl_GetVar2, Tcl_SetVar2, Tcl_TraceVar2) - (Tcl_UnsetVar2, Tcl_UntraceVar2, Tcl_UpVar2, Tcl_VarTraceInfo2) - (Tcl_GetVar2Ex, TclSetVar2Ex): - * generic/tclCmdMZ.c (TraceVarProc): - * generic/tclEnv.c (EnvTraceProc): - * generic/tclEvent.c (VwaitVarProc): - * generic/tclInt.decls (TclLookupVar,TclPrecTraceProc): - * generic/tclLink.c (LinkTraceProc): - * generic/tclUtil.c (TclPrecTraceProc): - * generic/tclVar.c (CallTraces, MakeUpvar, VarErrMsg, TclLookupVar, - (Tcl_GetVar2, Tcl_SetVar2, Tcl_TraceVar2, Tcl_UnsetVar2) - (Tcl_UntraceVar2, Tcl_UpVar2, Tcl_VarTraceInfo2, Tcl_GetVar2Ex) - (TclSetVar2Ex): Updated interfaces of generic/tclVar.c according to - TIP 27. In particular, the "part2" arguments were CONSTified. - [Patch 532642] - * generic/tclDecls.h: - * generic/tclIntDecls.h: make genstubs - -2002-03-15 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - * tests/compile.test (compile-12.3): Test to detect bug 530320. - * generic/tclCompile.c (TclCompileTokens): Fixed buffer overrun - reported in bug 530320. - -2002-03-14 Mo DeJong <mdejong@users.sourceforge.net> - - * win/configure: Regen. - * win/configure.in: Add configure time test for SEH support in the - compiler. - * win/tclWin32Dll.c (ESP, EBP, TclpCheckStackSpace, - (_except_checkstackspace_handler): - * win/tclWinChan.c (ESP, EBP, Tcl_MakeFileChannel, - (_except_makefilechannel_handler): - * win/tclWinFCmd.c (ESP, EBP, DoRenameFile, DoCopyFile, - (_except_dorenamefile_handler, _except_docopyfile_handler): Implement - SEH support under gcc using inline asm. Tcl and Tk should now compile - with Mingw 1.1. [Patch 525746] + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/README.binary: + * win/configure.in: -2002-03-14 Mo DeJong <mdejong@users.sourceforge.net> + * unix/configure: autoconf-2.59 + * win/configure: - * win/tclWinFCmd.c (DoRenameFile, DoCopyFile): Handle an SEH exception - with EXCEPTION_EXECUTE_HANDLER instead of restarting the faulting - instruction with EXCEPTION_CONTINUE_EXECUTION. Bug 466102 provides an - example of how restarting could send Tcl into an infinite loop. [Patch - 525746] + * generic/tclBasic.c (ExprSrandFunc): Restore acceptance of wide/big + * doc/mathfunc.n: integer values by srand(). [Bug 1480509] -2002-03-11 Mo DeJong <mdejong@users.sourceforge.net> +2006-04-26 Don Porter <dgp@users.sourceforge.net> - * win/tclWinFCmd.c (DoRenameFile, DoCopyFile, DoDeleteFile, - (DoRemoveJustDirectory): Make sure we don't pass NULL or "" as a path - name to Win32 API functions since this was crashing under Windows 98. + *** 8.5a4 TAGGED FOR RELEASE *** -2002-03-11 Don Porter <dgp@users.sourceforge.net> + * changes: Updates for another RC. - * library/tcltest/tcltest.tcl: - * library/tcltest/pkgIndex.tcl: Bumped tcltest package to 2.0.2. + * generic/tclBinary.c: Revised the handling of the Q and q format + * generic/tclInt.h: specifiers for [binary] to account for the + * generic/tclStrToD.c: "middle endian" floating point format used in + Nokia N770. -2002-03-11 Mo DeJong <mdejong@users.sourceforge.net> +2006-04-25 Don Porter <dgp@users.sourceforge.net> - * library/tcltest/tcltest.tcl (getMatchingFiles): Pass a proper list - to foreach to avoid munging a Windows patch like D:\Foo\Bar into - D:FooBar before the glob. + * doc/DoubleObj.3: More doc updates for TIP 237. + * doc/expr.n: + * doc/format.n: + * doc/mathfunc.n: + * doc/scan.n: + * doc/string.n: -2002-03-11 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclScan.c: [scan $s %u] is documented to accept only + * tests/scan.test: decimal formatted integers. Fixed to match. - * generic/tclEncoding.c: Fix typo in comment. - * generic/tclIO.c (DoReadChars, ReadBytes, ReadChars): Use NULL value - instead of pointer set to NULL to make things more clear. Reorder - arguments so that they match the function signatures. Cleanup little - typos and add more descriptive comment. +2006-04-19 Kevin B. Kenny <kennykb@acm.org> -2002-03-08 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclStrToD.c: Added code to support the "middle endian" + floating point format used in the Nokia N770's software-based floating + point. Thanks to Bruce Johnson for reporting this bug, originally on + http://wiki.tcl.tk/15408. + * library/clock.tcl: Fixed a bug with Daylight Saving Time and Posix + time zone specifiers reported by Martin Lemburg in + http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/9a8b15a4dfc0b7a0 + (and not at SourceForge). + * tests/clock.test: Added test case for the above bug. - * win/README: Update to indicate that Mingw 1.1 is required to build - Tcl. Add section describing new msys based build process. Update - Cygwin build instructions so users know where to find Mingw 1.1. +2006-04-18 Donal K. Fellows <dkf@users.sf.net> -2002-03-08 Jeff Hobbs <jeffh@ActiveState.com> + * doc/IntObj.3: Minor review fixes, including better documentation of + the behaviour of Tcl_GetBignumAndClearObj. - * win/tclWinFCmd.c (DoCopyFile): correctly set retval to TCL_OK. +2006-04-17 Don Porter <dgp@users.sourceforge.net> -2002-03-07 Mo DeJong <mdejong@users.sourceforge.net> + * doc/IntObj.3: Documentation changes to account for TIP 237 changes. + * doc/Object.3: [Bug 1446971] - * win/tclWin32Dll.c (TclpCheckStackSpace): - * win/tclWinFCmd.c (DoRenameFile, DoCopyFile): Replace hard coded - constants with Win32 symbolic names. Move control flow statements out - of __try blocks since the documentation indicates it is frowned upon. +2006-04-12 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-03-07 Don Porter <dgp@users.sourceforge.net> + * generic/regc_locale.c (cclass): Redefined the meaning of [:print:] + to be exactly UNICODE letters, numbers, punctuation, symbols and + spaces (*not* whitespace). [Bug 1376892] - * doc/interp.n: - * generic/tclInterp.c (Tcl_InterpObjCmd,SlaveObjCmd, - (SlaveRecursionLimit): - * generic/tclTest.c: - * tests/interp.test: Added the [interp recursionlimit] command to - set/query the recursion limit of an interpreter. Proposal and - implementation from Stephen Trier. [TIP 87, Patch 522849] +2006-04-11 Don Porter <dgp@users.sourceforge.net> -2002-03-06 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclTrace.c: Stop some interference between enter traces + * tests/trace.test: and enterstep traces. [Bug 1458266] - * generic/tcl.h, tools/tcl.wse.in, unix/configure.in, - * unix/tcl.spec, win/README.binary, win/configure.in, README: - Bumped patchlevel; this might need to change in the future, but it - will help us distinguish between the CVS version and the most - recent released version. +2006-04-07 Don Porter <dgp@users.sourceforge.net> -2002-03-06 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclPathObj.c: Yet another revised fix for the [Bug 1379287] + * tests/fileSystem.test: family of path normalization bugs. - * generic/tclInt.h: for unshared objects, TclDecrRefCount now frees - the internal rep before the string rep - just like the non-macro - Tcl_DecrRefCount/TclFreeObj [Bug 524802]. +2006-04-06 Jeff Hobbs <jeffh@ActiveState.com> -2002-03-06 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * generic/tclRegexp.c (FinalizeRegexp): full reset data to indicate + readiness for reinitialization. - * doc/lsearch.n: Documentation of new features, plus examples. - * tests/lsearch.test: Tests of new features. - * generic/tclCmdIL.c (Tcl_LsearchObjCmd): TIP#80 support. See - http://purl.org/tcl/tip/80 for details. +2006-04-06 Don Porter <dgp@users.sourceforge.net> -2002-03-05 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): It seems there + * tests/indexObj.test: are extensions that rely on the prior behavior + * doc/GetIndex.3: that the empty string cannot succeed as a + unique prefix matcher, so I'm restoring Donal Fellows's solution. + Added mention of this detail to the documentation. [Bug 1464039] - *** 8.4a4 TAGGED FOR RELEASE *** + * tests/compExpr-old.test: Updated testmathfunctions constraint + * tests/compExpr.test: to post-TIP-232 world. + * tests/expr-old.test: + * tests/expr.test: + * tests/info.test: - * unix/tclUnixChan.c: initial remedy for [Bug 525783] flush problem - introduced by TIP #35. This may not satisfy true serial channels, but - it restores the correct flushing of std* channels on exit. + * tests/indexObj.test: Corrected other test errors revealed by + * tests/upvar.test: testing outside the tcltest application. - * unix/README: added --enable-langinfo doc. + * generic/tclPathObj.c: Revised fix for the [Bug 1379287] family of + path normalization bugs. - * unix/tcl.spec: - * tools/tcl.wse.in: fixed URL refs to use www.tcl.tk or SF. +2006-04-06 Daniel Steffen <das@users.sourceforge.net> -2002-03-04 Jeff Hobbs <jeffh@ActiveState.com> + * unix/tcl.m4: removed TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING + define on Darwin. [Bug 1457515] + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 - * README: - * mac/README: - * unix/Makefile.in: - * unix/README: - * win/README: - * win/README.binary: updated to use www.tcl.tk URL. +2006-04-05 Don Porter <dgp@users.sourceforge.net> - * unix/Makefile.in: added older ChangeLogs to dist target. + * win/tclWinInit.c: More careful calls to Tcl_DStringSetLength() + * win/tclWinSock.c: to avoid creating invalid DString states. Bump + * win/tclWinDde.c: to version 1.3.2. [RFE 1366195] + * library/dde/pkgIndex.tcl: - * tests/io.test: - * tests/encoding.test: corrected iso2022 encoding results. - added encoding-24.* - * generic/tclEncoding.c (EscapeFromUtfProc): corrected output of - escape codes as per RFC 1468. [Patch 474358] (taguchi) - (TclFinalizeEncodingSubsystem): corrected potential double-free - when encodings were finalized on exit. [Bug 219314, 524674] + * library/reg/pkgIndex.tcl: Bump to registry 1.2 because + * win/tclWinReg.c: Registry_Unload() is a new public routine + * win/Makefile.in: compared to the 1.1.* releases. -2002-03-01 Jeff Hobbs <jeffh@ActiveState.com> + * win/configure.in: Bump package version numbers. + * win/configure: autoconf 2.59 - * library/encoding/iso2022-jp.enc: - * library/encoding/iso2022.enc: - * tools/encoding/iso2022-jp.esc: - * tools/encoding/iso2022.esc: gave <ESC>$B precedence over <ESC>$@, - based on comments (point 1) in [Bug 219283] (RFC 1468) +2006-04-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * tests/encoding.test: added encoding-23.* tests - * generic/tclIO.c (FilterInputBytes): reset the TCL_ENCODING_START - flags in the ChannelState when using 'gets'. [Bug 523988] - Also reduced the value of ENCODING_LINESIZE from 30 to 20 as this - seems to improve the performance of 'gets' according to tclbench. + * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Allow empty + strings to be matched by the Tcl_GetIndexFromObj machinery, in the + same manner as any other key. [Bug 1464039] -2002-02-28 Jeff Hobbs <jeffh@ActiveState.com> +2006-04-03 Andreas Kupries <andreask@activestate.com> - * generic/tclCmdMZ.c (TraceCommandProc): ensure that TraceCommandInfo - structure was also deleted when a command was deleted to prevent a - mem leak. + * generic/tclIO.c (ReadChars): Added check, panic and commentary to a + piece of code which relies on BUFFER_PADDING to create enough space at + the beginning of each buffer for the insertion of partial multibyte + data at the beginning of a buffer. Commentary explains why this code + is OK, and the panic is as a precaution if someone twiddled the + BUFFER_PADDING into uselessness. - * generic/tclBasic.c (Tcl_CreateObjTrace): set tracePtr->flags - correctly. + * generic/tclIO.c (ReadChars): Temporarily suppress the use of + TCL_ENCODING_END set when EOF was reached while the buffer we are + converting is not truly the last buffer in the queue. Together with + the Utf bug below it was possible to completely wreck the buffer data + structures, eventually crashing Tcl. [Bug 1462248] - * generic/tclTimer.c (TimerExitProc): remove remaining events in - tls on thread exit. + * generic/tclEncoding.c (UtfToUtfProc): Stop accessing memory beyond + the end of the input buffer when TCL_ENCODING_END is set and the last + bytes of the buffer start a multi-byte sequence. This bug contributed + to [Bug 1462248]. -2002-02-28 Miguel Sofer <msofer@users.sourceforge.net> +2006-03-30 Miguel Sofer <msofer@users.sf.net> - * generic/tclNamesp.c: allow cached fully-qualified namespace names to - be usable from different namespaces within the same interpreter - without forcing a new lookup [Patch 458872]. + * generic/tclExecute.c: remove unused var and silence gcc warning -2002-02-28 Miguel Sofer <msofer@users.sourceforge.net> +2006-03-29 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclExecute.c: Replaced a few direct stack accesses with the - POP_OBJECT() macro [Bug 507181] (Don Porter). + * win/Makefile.in: convert _NATIVE paths to use / to avoid ".\" + path-as-escape issue. -2002-02-27 Don Porter <dgp@users.sourceforge.net> +2006-03-29 Don Porter <dgp@users.sourceforge.net> - * doc/GetIndex.3: - * generic/tcl.decls (Tcl_GetIndexFromObjStruct): - * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Revised the - prototype of the Tcl_GetIndexFromObjStruct to take its struct - table as a (CONST VOID *) argument, better describing what it is, - maintaining source compatibility, and adding CONST correctness - according to TIP 27. Thanks to Joe English for an elegant - solution. [Bug 520304] + * changes: Updates for another RC. - * generic/tclDecls.h: make genstubs + * generic/tclPathObj.c: More fixes for path normalization when /../ + * tests/fileSystem.test: tries to go beyond root.[Bug 1379287] - * generic/tclMain.c (Tcl_Main,StdinProc): Corrected some reference - count management errors on the interactive command Tcl_Obj found by - Purify. Thanks to Jeff Hobbs for the report and assistance. + * generic/tclExecute.c: Revised INST_MOD implementation to do + calculations in native types as much as possible, moving to mp_ints + only when necessary. -2002-02-27 Jeff Hobbs <jeffh@ActiveState.com> +2006-03-28 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclBasic.c (Tcl_EvalTokensStandard): corrected mem leak - in error case. + * win/tclWinPipe.c (TclpCreateProcess): change panics to Tcl errors + and do proper refcounting of noe objPtr. [Bug 1194429] - * generic/tclTest.c (TestStatProc[123]): correct harmless UMRs. + * unix/tcl.m4, win/tcl.m4: []-quote AC_DEFUN functions. - * generic/tclLink.c (Tcl_LinkVar): correct mem leak in error case. +2006-03-28 Daniel Steffen <das@users.sourceforge.net> -2002-02-27 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * macosx/Tcl.xcode/default.pbxuser: add '-singleproc 1' cli arg to + * macosx/Tcl.xcodeproj/default.pbxuser: tcltest to ease test debugging - * tests/socket.test (2.7): Accepted and applied patch for [Bug 523470] - provided by Don Porter <dgp@users.sourceforge.net> to avoid timing - problems in that test. + * macosx/Tcl.xcode/project.pbxproj: removed $prefix/share from + * macosx/Tcl.xcodeproj/project.pbxproj: TCL_PACKAGE_PATH as per change + to unix/configure.in of 2006-03-13. - * unix/tclUnixChan.c (TclpOpenFileChannel): Added code to regonize - "/dev/tty" (by name) and to not handle it as tty / serial line. This - is the controlling terminal and is special. Setting it into raw mode - as is done for other tty's is a bad idea. This is a hackish fix for - expect [Bug 520624]. The fix has limitation: Tcl_MakeFileChannel - handles tty's specially too, but is unable to recognize /dev/tty as it - only gets a file descriptor, and no name for it. + * unix/tclUnixFCmd.c (TclpObjNormalizePath): deal with *BSD/Darwin + realpath() converting relative paths into absolute paths [Bug 1064247] -2002-02-26 Jeff Hobbs <jeffh@ActiveState.com> +2006-03-28 Vince Darley <vincentdarley@sourceforge.net> - * generic/tclCmdAH.c (StoreStatData): corrected mem leak. + * generic/tclIOUtil.c: fix to nativeFilesystemRecord comparisons + (lesser part of [Bug 1064247]) - * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): prevent obj leak in remedial - regsub case. +2006-03-27 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclFileName.c (Tcl_TranslateFileName): decr refcount for - error case to prevent mem leak. + * win/tclWinTest.c: Fixes for [Bug 1456373] (mingw-gcc issue) - * generic/tclVar.c (Tcl_ArrayObjCmd): removed extra obj allocation. +2006-03-27 Andreas Kupries <andreask@activestate.com> - * unix/tclUnixSock.c (Tcl_GetHostName): added an extra gethostbyname - check to guard against failure with truncated names returned by uname. + * doc/CrtChannel.3: Added TCL_CHANNEL_VERSION_5, made it the + * generic/tcl.h: version where the "truncateProc" is defined at, + * generic/tclIO.c: and moved all channel drivers of Tcl to v5. + * generic/tclIOGT.c, generic/tclIORChan.c, unix/tclUnixChan.c: + * unix/tclUnixPipe.c, win/tclWinChan.c, win/tclWinConsole.c: + * win/tclWinPipe.c, win/tclWinSerial.c, win/tclWinSock.c: - * unix/configure: - * unix/tcl.m4 (SC_SERIAL_PORT): added sys/modem.h check and defined - _XOPEN_SOURCE_EXTENDED for HP-11 to get updated header decls. +2006-03-27 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixChan.c: added Unix implementation of TIP #35, serial - port support. [Patch 438509] (schroedter) + * generic/tclExecute.c: Merge INST_MOD computation in with the + INST_?SHIFT instructions, which also operate only on two integral + values. Also corrected flaw that made INST_BITNOT of wide values + require mp_int calculations. Also corrected type that missed optimized + handling of the tclBooleanType by the TclGetBooleanFromObj macro. -2002-02-26 Miguel Sofer <msofer@users.sourceforge.net> + * changes: Updates for another RC. - * generic/tclCmpCmds.c: (bugfix to the bugfix, hopefully the last) - Bugfix to the new [for] compiling code: was setting a exceptArray - parameter using another param which wasn't yet initialised, thus - filling it with noise. +2006-03-25 Don Porter <dgp@users.sourceforge.net> -2002-02-25 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * generic/tclExecute.c: Corrections to INST_EXPON detection of + overflow to use mp_int calculations. - * mac/tclMacSock.c (TcpGetOptionProc): Changed to recognize the option - "-error". Essentially ignores the option, always returning an empty - string. +2006-03-24 Kevin B. Kenny <kennykb@acm.org> -2002-02-25 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c (TclExecuteByteCode): Added a couple of missing + casts to 'int' that were affecting compilablity on VC6. - * doc/Alloc.3: - * doc/LinkVar.3: - * doc/ObjectType.3: - * doc/PkgRequire.3: - * doc/Preserve.3: - * doc/TCL_MEM_DEBUG.3: Updated documentation to describe the ckalloc, - ckfree, ckrealloc, attemptckalloc, and attemptckrealloc macros, and - to accurately describe when and how they are used. [Bug 497459] (dgp) +2006-03-24 Don Porter <dgp@users.sourceforge.net> - * generic/tclHash.c (AllocArrayEntry, AllocStringEntry): Before - invoking ckalloc when creating a Tcl_HashEntry, check that the amount - of memory being allocated is at least as large as - sizeof(Tcl_HashEntry). The previous code was allocating memory regions - that were one or two bytes short. [Bug 521950] (dejong) + * generic/tclEncoding.c: Reverted latest change [Bug 506653] since it + reportedly killed test performance on Windows. -2002-02-25 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclExecute.c: Revised INST_EXPON implementation to do + calculations in native types as much as possible, moving to mp_ints + only when necessary. - * generic/tclBasic.c (Tcl_EvalEx): avoiding a buffer overrun reported - by Joe English, and restoring tcl7.6 behaviour for [subst]: badly - terminated nested scripts will raise an error and not be evaluated. - [Bug 495207] +2006-03-23 Don Porter <dgp@users.sourceforge.net> -2002-02-25 Don Porter <dgp@users.sourceforge.net> + * generic/tclExecute.c: Merged INST_EXPON handling in with the other + binary operators that operate on all number types (INST_ADD, etc.). - * unix/tclUnixPort.h: corrected strtoll prototype mismatch on Tru64. - * compat/strtod.c (strtod): simplified #includes - * compat/strtol.c (strtol): gather result in a long before returning - as a long: necessary on platforms where sizeof(int) != sizeof(long). + * tests/env.test: With case preserved (see 2006-03-21 commit) be sure + to do case-insensitive filtering. [Bug 1457065] -2002-02-25 Daniel Steffen <das@users.sourceforge.net> +2006-03-23 Reinhard Max <max@suse.de> - * unix/tclLoadDyld.c: updated to use Mac OS X 10.1 dyld APIs that have - more libdl-like semantics. [Bug 514392] + * unix/tcl.spec: Cleaned up and completed the spec file. An RPM can + now be built from the tcl source distribution with "rpmbuild -tb + <tarball>" -2002-02-25 Miguel Sofer <msofer@users.sourceforge.net> +2006-03-22 Reinhard Max <max@suse.de> - * generic/tclCompCmds: fixing a bug in patch dated 2002-02-22, in the - code for [for] and [while]. Under certain conditions, for long bodies, - the exception range parameters were badly computed. Tests forthcoming: - I still can't reproduce the conditions in the testsuite (!), although - the bug (with assorted segfault or panic!) can be triggered from the - console or with the new parse.bench in tclbench. + * tests/stack.test: Run the stack tests in subshells, so that they are + reported as failed tests rather than bugs in the test suite if the + recursion causes a segfault. -2002-02-25 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2006-03-21 Don Porter <dgp@users.sourceforge.net> - * compat/strtoul.c, compat/strtol.c, compat/strtod.c: Added UCHAR, - CONST and #includes to clean up GCC output. + * changes: Updates for another RC. -2002-02-23 Don Porter <dgp@users.sourceforge.net> + * generic/tclStrToD.c: One of the branches of AccumulateDecimalDigit + * tests/parseExpr.test: did not. [Bug 1451233] - * compat/strtoull.c (strtoull): - * compat/strtoll.c (strtoll): - * compat/strtoul.c (strtoul): Fixed failure to handle leading sign - symbols '+' and '-' and '0X' and raise overflow errors. [Bug 440916] - Also corrects prototype and errno problems. + * tests/env.test: Preserve case of saved env vars. [Bug 1409272] -2002-02-23 Mo DeJong <mdejong@users.sourceforge.net> +2006-03-21 Daniel Steffen <das@users.sourceforge.net> - * configure: Regen. - * unix/tcl.m4 (SC_CONFIG_CFLAGS): Link with -n32 instead of -32 when - building on IRIX64-6.* system. [Bug 521707] + * generic/tclInt.decls: implement globbing for HFS creator & type + * macosx/tclMacOSXFCmd.c:codes and 'hidden' flag, as documented in + * tests/macOSXFCmd.test: glob.n; objectified OSType handling in [glob] + * unix/tclUnixFile.c: and [file attributes]; fix globbing for + hidden files with pattern==NULL arg. [Bug 823329] + * generic/tclIntPlatDecls.h: + * generic/tclStubInit.c: make genstubs -2002-02-22 Don Porter <dgp@users.sourceforge.net> +2006-03-20 Andreas Kupries <andreask@activestate.com> - * generic/tclInt.h: - * generic/tclObj.c: renamed global variable emptyString -> - tclEmptyString because it is no longer static. - * generic/tclPkg.c: Fix for panic when library is loaded on a - platform without backlinking without proper use of stubs. [Bug 476537] + * win/Makefile.in (install-libraries): Generate tcl8/8.4 directory + under Windows as well (cygwin Makefile). Related entry: 2006-03-07, + dgp. This moved the installation of http from 8.2 to 8.4, partially. A + fix of the required directory creation was done for unix on Mar 10, + without entry in the Changelog. This entry is for the fix of the + directory creation under Windows. -2002-02-22 Jeff Hobbs <jeffh@ActiveState.com> + * unix/installManPage: There is always one even more broken "sed". + Moved the # comment starting character in the sed script to the + beginning of their respective lines. The AIX sed will not recognize + them as comments otherwise :( The actual text stays indented for + better association with the commands they belong to. - * tests/regexpComp.test: updated regexp-11.[1-4] to match changes - in regexp.test for new regsub syntax +2006-03-20 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * unix/configure: - * unix/tcl.m4: added --enable-64bit support for AIX-4 (using -q64 - flag) when using IBM's xlc compiler. + * tests/cmdAH.test, tests/fCmd.test, tests/unixFCmd.test: + * tests/winFCmd.test: Cleanup of some test constraint handling, and a + few other minor issues. - * tests/safe.test: updated safe-8.5 and safe-8.7 - * library/safe.tcl (CheckFileName): removed the limit on - sourceable file names (was only *.tcl or tclIndex files with no - more than one dot and 14 chars). There is enough internal - protection in a safe interpreter already. Fixes [Tk Bug 521560]. +2006-03-18 Vince Darley <vincentdarley@sourceforge.net> -2002-02-22 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclFileName.c: + * doc/FileSystem.3: + * tests/fileName.test: Fix to [Bug 1084705] so that 'glob -nocomplain' + finally agrees with its documentation and doesn't swallow genuine + errors. - * generic/tclCompCmds: [FR 465811]. Optimising [if], [for] and - [while] for constant conditions; in addition, [for] and [while] are - now compiled with the "loop rotation" optimisation (thanks to Kevin - Kenny). + ***POTENTIAL INCOMPATIBILITY*** for scripts that assumed '-nocomplain' + removes the need for 'catch' to deal with non-understood path names. -2002-02-22 Donal K. Fellows <fellowsd@cs.man.ac.uk> + Small optimisation to implementation of pattern==NULL case of TclGlob, + and clarification to the documentation. [Tclvfs bug 1405317] - --- TIP#76 CHANGES --- - * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): Final-argument-less - [regsub] returns the modified string. - * doc/regsub.n: Updated docs. - * tests/regexp.test: Updated and added tests. +2006-03-18 Vince Darley <vincentdarley@sourceforge.net> - * compat/strtoll.c (strtoll): - * compat/strtoull.c (strtoull): - * unix/tclUnixPort.h: - * win/tclWinPort.h: Const-ing 64-bit compatability declarations. - Note that the return pointer is non-const because it is entirely - legal for the functions to be called from somewhere that owns the - string being passed. Fixes problem reported by Larry Virden. + * tests/fCmd.test: added knownBug test case for [Bug 1394972] -2002-02-21 David Gravereaux <davygrvy@pobox.com> + * tests/winFCmd.test: + * tests/tcltest.test: corrected tests to better account for behaviour + of writable/non-writable directories on Windows 2000/XP. This, with + the previous patches, closes [Bug 1193497] - * win/mkd.bat (removed): - * win/coffbase.txt (new): - * win/makefile.bc: - * win/makefile.vc: Changed the 'setup' target to stop using the - mkd.bat file and just make the directory right in the rule. Same - change to makefile.bc. configure.in nor Makefile.in use it. +2006-03-17 Andreas Kupries <andreask@activestate.com> - coffbase.txt will be the master list for our "prefered base addresses" - set by the linker. This should improve load-time (NT only) by avoiding - relocations. Submissions to the list by extension authors are - encouraged. + * doc/chan.n: Updated with documentation for the commands 'chan + create' and 'chan postevent' (TIP #219). - Added a 'tidy' target to compliment 'clean' and 'hose' to remove just - the outputs. Also removed the $(winlibs) macro as it wasn't being - used. + * doc/refchan.n: New file. Documentation of the command handler API + for reflected channels (TIP #219). - Stuff left to do: - 1) get the winhelp target to stop building in the tools/ directory. - 2) stop using rmd.bat - 3) add more dependacy rules. +2006-03-17 Joe Mistachkin <joe@mistachkin.com> - * win/tclAppInit.c: Reverted back to -r1.6, as the header file change - to tclPort.h won't allow for easy embedded support outside of the - source dist. Thanks to Don Porter for pointing this out to me. + * unix/tclUnixPort.h: Include pthread.h prior to pthread_np.h [Bug + 1444692] -2002-02-21 David Gravereaux <davygrvy@pobox.com> + * win/tclWinTest.c: Corrected typo of 'initializeMutex' that prevented + successful compilation. - * win/makefile.vc: - * win/rules.vc: Added a new "loimpact" option that sets the - -ws:aggressive linker option. Off by default. It's said to keep the - heap use low at the expense of alloc speed. +2006-03-16 Andreas Kupries <andreask@activestate.com> - * win/tclAppInit.c: Changed #include "tcl.h" to be tclPort.h to remove - the raw windows.h include. tclPort.h brings in windows.h already and - lessens the pre-compiled-header mush and the randomly useless #pragma - comment (lib,...) references throughout the big windows.h tree (as - observed at high linker warning levels). + * doc/open.n: Documented the changed behaviour of 'a'ppend mode. -2002-02-21 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * tests/io.test (io-43.1 io-44.[1234]): Rewritten to be self-contained + with regard to setup and cleanup. [Bug 681793] - * generic/tcl.h: Better guessing of LP64/ILP32 architecture, but - now sensitive to presence of (suitable) <limits.h> + * generic/tclIOUtil.c (TclGetOpenMode): Added the flag O_APPEND to the + list of POSIX modes used when opening a file for 'a'ppend. This + enables the proper automatic seek-to-end-on-write by the OS. See [Bug + 680143] for longer discussion. -2002-02-20 Don Porter <dgp@users.sourceforge.net> + * tests/ioCmd.test (iocmd-13.7.*): Extended the testsuite to check the + new handling of 'a'. - * generic/tcl.decls (Tcl_RegExpRange,Tcl_GetIndexFromObjStruct): - Overlooked a few source incompatibilities. Now using CONST84. - * generic/tclDecls.h: make genstubs - * generic/tcl.h (Tcl_CmdObjTraceProc): silence warning from Sun - Workshop compiler. +2006-03-15 Andreas Kupries <andreask@activestate.com> -2002-02-20 David Gravereaux <davygrvy@pobox.com> + * tests/socket.test: Extended the timeout in socket-11.11 from 10 to + 40 seconds to allow for really slow machines. Also extended + actual/expected results with value of variable 'done' to make it + clearer when a test fails due to a timeout. [Bug 792159] - * win/buildall.vc.bat: - * win/makefile.vc: - * win/rules.vc: General clean-ups. Added compiler and linker tests for - a) the pentium 0x0F errata, b) optimizing (not all have this), and c) - linker v6 section alignment confusion. All these are tested first to - make sure any D4002 or LNK1117 warnings aren't displayed. The pentium - 0x0F errata is a recommended switch. The v5 linker's section alignment - default is 512, but the v6 linker was changed to 4096 in an attempt to - speed loading on Win98. I changed the default to always be 512 across - both linkers, unless linking statically, then 4096 is used for the - claimed speed effect. Using a 512 alignment saves 12k bytes of dead - space in the DLL. +2006-03-15 Vince Darley <vincentdarley@sourceforge.net> - Added IA64 B-stepping errata switch when the compiler supports it. + * win/fCmd.test: add proper test constraints so the new tests don't + run on Unix. - Added profiling to $(lflags) when requested and also removed the - explict -entry option as the default works fine as is. +2006-03-14 Andreas Kupries <andreask@activestate.com> - Removed win/tclWinInit.c from the special case section to let it use - the common implicit rule as the $(EXTFLAGS) macro it had was never - referenced anywhere. + * generic/tclPipe.c (TclCreatePipeline): Modified the processing of + pipebars to fail if the last bar is followed only by redirections. + [Bug 768659] -2002-02-20 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2006-03-14 Andreas Kupries <andreask@activestate.com> - * generic/tcl.h: Added code to guess the correct settings for - TCL_WIDE_INT_IS_LONG and TCL_WIDE_INT_TYPE when configure doesn't tell - us them, as can happen with extensions. + * doc/fconfigure.n: Clarified that -translation is binary is reported + as lf when queried, because it is identical to lf, except for the + special additional behaviour when setting it. [Bug 666770] -2002-02-19 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2006-03-14 Andreas Kupries <andreask@activestate.com> - * doc/format.n: Updated docs to list the specification. - * generic/tclCmdAH.c (Tcl_FormatObjCmd): Made behaviour on 64-bit - platforms correctly meet the specification, that %d works with the - native word-sized integer, instead of trying to guess (wrongly) from - the value being passed. + * doc/clock.n: Removed double-quotes around section title NAME; not + needed. + * unix/installManpage: Reverted part to handle double-quotes in + section NAME, chokes older sed installations. -2002-02-19 Don Porter <dgp@users.sourceforge.net> +2006-03-14 Andreas Kupries <andreask@activestate.com> - * changes: First draft of updated changes for 8.4a4 release. + * library/tm.tcl (::tcl::tm::Defaults): Fixed handling of environment + variable TCLX.y_TM_PATH, bad variable reference. Thanks to Julian + Noble. [Bug 1448251] -2002-02-15 Jeff Hobbs <jeffh@ActiveState.com> +2006-03-14 Vince Darley <vincentdarley@sourceforge.net> - * unix/tclUnixPort.h: add strtoll/strtoull declarations for platforms - that do not define them. + * win/tclWinFile.c: updated patch to deal with 'file writable' issues + on Windows XP/2000. + * generic/tclTest.c: + * unix/tclUnixTest.c: + * win/tclWinTest.c: + * tests/fCmd.test: updated test suite to deal with correct permissions + setting and differences between XP/2000 and 95/98 3 tests still fail; + to be dealt with shortly - * generic/tclIndexObj.c (STRING_AT): removed ptrdiff_t cast and use of - VOID* in default case (GNU-ism). +2006-03-13 Don Porter <dgp@users.sourceforge.net> -2002-02-15 Kevin Kenny <kennykb@acm.org> + * generic/tclEncoding.c: Report error when an escape encoding is + missing one of its sub-encodings. [Bug 506653] - * compat/strtoll.c: - * compat/strtoul.c: - * compat/strtoull.c: - * generic/tclIOUtil.c: - * generic/tclPosixStr.c: - * generic/tclTest.c: - * generic/tclTestObj.c: - * tests/get.test: - * win/Makefile.vc: Further tweaks to the TIP 72 patch to make it - compile under VC++. - -2002-02-15 Andreas Kupries <andreas_kupries@users.sourceforge.net> - - * tclExecute.c: - * tclIOGT.c: - * tclIndexObj.c: Touchups to the TIP 72 patch to make it compileable - under Windows again. The changes are not complete, there is one nasty - regarding _stati64 - -2002-02-15 Donal K. Fellows <fellowsd@cs.man.ac.uk> - - +----------------------+ - | TIP #72 IMPLEMENTED. | - +----------------------+ - - There are a lot of changes from this TIP, so please see - http://tip.tcl.tk/72.html for discussion of backward-compatability - issues, but the main ones modifications are in: - - * generic/tcl.h: New types. - * generic/tcl.decls: New public functions. - * generic/tclExecute.c: 64-bit aware bytecode engine. - * generic/tclBinary.c: 64-bit handling in [binary] command. - * generic/tclScan.c: 64-bit handling in [scan] command. - * generic/tclCmdAH.c: 64-bit handling in [file] and [format] - commands. - * generic/tclBasic.c: New "wordSize" entry in ::tcl_platform. - * generic/tclFCmd.c: Large-file support (with many consequences.) - * generic/tclIO.c: Large-file support (with many consequences.) - * compat/strtoll.c, compat/strtoull.c: New support functions. - * unix/tcl.m4, unix/configure: 64-bit support and greatly enhanced - cacheing. - - Most other changes, including all those in doc/* and test/* as well as - the majority in the platform directories, follow on from these. - - Also coming out of the woodwork: - * generic/tclIndex.c: Better support for Cray PVP. - * win/tclWinMtherr.c: Better Borland support. - - Note that, in a number of places through the Unix part of the platform - support, there are Tcl_Platform* references. These are expanded into - the correct way to call that particular underlying function, i.e. with - or without a '64' suffix, and should be used by people working on the - core in preference to the API functions they overlay so that the code - remains portable depending on the presence or absence of 64-bit - support on the underlying platform. - - ***POTENTIAL INCOMPATIBILITY***: Extracted from the TIP - - SUMMARY OF INCOMPATIBILITIES AND FIXES - ====================================== - - The behaviour of expressions containing constants that appear positive - but which have a negative internal representation will change, as - these will now usually be interpreted as wide integers. This is always - fixable by replacing the constant with int(constant). - - Extensions creating new channel types will need to be altered as - different types are now in use in those areas. The change to the - declaration of Tcl_FSStat and Tcl_FSLstat (which are the new preferred - API in any case) are less serious as no non-alpha releases have been - made yet with those API functions. - - Scripts that are lax about the use of the l modifier in format and - scan will probably need to be rewritten. This should be very uncommon - though as previously it had absolutely no effect. - - Extensions that create new math functions that take more than one - argument will need to be recompiled (the size of Tcl_Value changes), - and functions that accept arguments of any type (TCL_EITHER) will need - to be rewritten to handle wide integer values. (I do not expect this - to affect many extensions at all.) - -2002-02-14 Andreas Kupries <andreas_kupries@users.sourceforge.net> - - * generic/tclIOCmd.c (Tcl_GetsObjCmd): Trivial fix for [Bug 517503], a - memory leak reported by Miguel Sofer <msofer@users.sourceforge.net>. - The leak happens if an error occurs for "set var [gets $chan]" and - leak one empty object. - -2002-02-12 David Gravereaux <davygrvy@pobox.com> - - * djgpp/ (new directory) - * djgpp/Makefile (new): - * unix/tclAppInit.c: - * unix/tclMtherr.c: - * unix/tclUnixFCmd.c: - * unix/tclUnixFile.c: - * unix/tclUnixInit.c: - * unix/tclUnixPort.h: Early stage of DJGPP support for building Tcl - on DOS. Dynamic loading isn't working, yet. Requires watt32 for the - TCP/IP stack. No autoconf, yet. Barely tested, but makes a working exe - that runs Tcl in protected-mode, flat memory. [exec] and pipes will - need the most work as multi-tasking on DOS has to be carefully. + * unix/configure.in: Revert change from 2005-07-26 that sometimes + * unix/configure: added $prefix/share to the tcl_pkgPath. See + [Patch 1231015]. autoconf-2.59. -2002-02-10 Kevin Kenny <kennykb@acm.org> +2006-03-10 Miguel Sofer <msofer@users.sf.net> - * doc/CrtObjCmd.3: - * doc/CrtTrace.3: - * generic/tcl.decls: - * generic/tcl.h: - * generic/tclBasic.c: - * generic/tclInt.h: - * generic/tclTest.c: - * tests/basic.test: Added Tcl_CreateObjTrace, - Tcl_GetCommandInfoFromToken and Tcl_SetCommandInfoFromToken. - (TIPs #32 and #79.) + * generic/tclProc.c (ObjInterpProcEx): + * tests/apply.test (apply-5.1): Fix [apply] error messages so that + they quote the lambda expression. [Bug 1447355] - * generic/tclDecls.h: - * generic/tclStubInit.c: Regenerated Stubs tables. +2006-03-10 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> -2002-02-08 Jeff Hobbs <jeffh@ActiveState.com> + -- Summary of changes fixing [Bug 1437595] -- - * unix/configure: - * unix/tcl.m4: added -pthread for FreeBSD to EXTRA_CFLAGS and - LDFLAGS. Also triggered nodots only for FreeBSD-3. - Added AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) for Solaris. + * generic/tclEvent.c: Cosmetic touches and identation + * generic/tclInt.h: Added TclpFinalizeSockets() call. - * unix/tclUnixPort.h: - * unix/tclUnixThrd.c: added thread-safe versions of readdir, - localtime, gmtime and inet_ntoa for threaded build. (jgdavidson) + * generic/tclIO.c: Calls TclpFinalizeSockets() as part of the + TclFinalizeIOSubsystem(). - * generic/tclScan.c (Tcl_ScanObjCmd): prevented ckfree being - called on a pointer to NULL. + * unix/tclUnixSock.c: Added no-op TclpFinalizeSockets(). -2002-02-07 Don Porter <dgp@users.sourceforge.net> + * win/tclWinPipe.c, win/tclWinSock.c: Finalization of sockets/pipes is + now solely done in TclpFinalizeSockets() and TclpFinalizePipes() and + not over the thread-exit handler, because the order of actions the Tcl + generic core will impose may result in cores/hangs if the thread exit + handler tears down corresponding subsystem(s) too early. - * doc/DString.3: - * doc/Encoding.3: - * doc/GetCwd.3: - * doc/SplitPath.3: - * doc/Translate.3: - * doc/Utf.3: - * generic/tcl.decls: - * generic/tcl.h: - * generic/tclEncoding.c: - * generic/tclEnv.c: - * generic/tclFileName.c: - * generic/tclIOUtil.c: - * generic/tclUtf.c: - * generic/tclUtil.c: - * mac/tclMacInit.c: - * unix/tclUnixFile.c: - * unix/tclUnixInit.c: - * unix/tclUnixPipe.c: - * win/tclWin32Dll.c: - * win/tclWinFCmd.c: - * win/tclWinFile.c: - * win/tclWinInit.c: Partial TIP 27 rollback. Following routines - restored to return (char *): Tcl_DStringAppend, - Tcl_DStringAppendElement, Tcl_JoinPath, Tcl_TranslateFileName, - Tcl_ExternalToUtfDString, Tcl_UtfToExternalDString, - Tcl_UniCharToUtfDString, Tcl_GetCwd, Tcl_WinTCharToUtf. Also - restored Tcl_WinUtfToTChar to return (TCHAR *) and - Tcl_UtfToUniCharDString to return (Tcl_UniChar *). Modified - some callers. This change recognizes that Tcl_DStrings are - de-facto white-box objects. +2006-03-10 Vince Darley <vincentdarley@sourceforge.net> - * generic/tclDecls.h: - * generic/tclPlatDecls.h: make genstubs + * win/tclWinFile.c: previous patch breaks tests, so removed. - * generic/tclCmdMZ.c: corrected use of C++-style comment. +2006-03-09 Vince Darley <vincentdarley@sourceforge.net> -2002-02-06 Jeff Hobbs <jeffh@ActiveState.com> + * win/tclWinFile.c: fix to 'file writable' in certain XP directories. + Thanks to fvogel and jfg. [Patch 1344540] Modified patch to make use + of existing use of getSecurityProc. - * tests/scan.test: - * generic/tclScan.c (Tcl_ScanObjCmd): corrected scan 0x... %x handling - that didn't accept the 0x as a prelude to a base 16 number. [Bug - 495213] +2006-03-08 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompCmds.c (TclCompileRegexpCmd): made early check - for bad RE to stop checking further. + * generic/tclExecute.c: Complete missing bit of TIP 215 implementation + * tests/incr.test: - * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): added special case to - search for simple 'string map' style regsub calls. - Delayed creation of resultPtr object until an initial match is - made, as the input string object can then be reused for no matches. - (Tcl_StringObjCmd): optimization improvements to the STR_MAP - algorithm for zero-length and nocase cases. +2006-03-07 Joe English <jenglish@users.sourceforge.net> - * tests/regexp.test: - * tests/regexpComp.test: extra code coverage tests. + * unix/tcl.m4: Set SHLIB_LD_FLAGS='${LIBS}' on NetBSD, as per the + other *BSD variants. [Bug 1334613] + * unix/configure: Regenerated. - * tests/string.test: added 10.18 and 10.19 extra tests. +2006-03-07 Don Porter <dgp@users.sourceforge.net> - * generic/regc_locale.c (casecmp): slight performance improvement. + * changes: Update in prep. for 8.5a4 release. -2002-02-05 Don Porter <dgp@users.sourceforge.net> + * unix/Makefile.in: Package http 2.5.2 requires Tcl 8.4, so the + * win/Makefile.in: *.tm installation has to be placed in an "8.4" + directory, not an "8.2" directory. - * library/http/http.tcl: - * library/http/pkgIndex.tcl: Corrected use of http::error when - ::error was intended. Bump to http 2.4.2. +2006-03-06 Don Porter <dgp@users.sourceforge.net> -2002-02-04 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * generic/tclBasic.c: Revised handling of TCL_EVAL_* flags to + * tests/parse.test: simplify TclEvalObjvInternal and to correct + the auto-loading of alias targets (parse-8.12). [Bug 1444291] - * unix/tclUnixChan.c (FileOutputProc): Fixed [bug 465765] reported by - Dale Talcott <daletalcott@users.sourceforge.net>. Avoid writing - nothing into a file as STREAM based implementations will consider this - a EOF (if the file is a pipe). Not done in the generic layer as this - type of writing is actually useful to check the state of a socket. +2006-03-03 Don Porter <dgp@users.sourceforge.net> - * doc/open.n: Fixed [Bug 511540], added cross-reference to 'pid' as - the command to use to retrieve the pid of a command pipeline created - via 'open'. + * generic/tclPathObj.c: Revised yesterday's fix for [Bug 1379287] to + work on Windows. -2002-02-01 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclObj.c: Compatibility support for existing code that + calls Tcl_GetObjType("boolean"). - * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): handle quirky about case - earlier to avoid shimmering problem. +2006-03-02 Don Porter <dgp@users.sourceforge.net> -2002-02-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * generic/tclPathObj.c: Fix for failed normalization of paths + * tests/fileSystem.test: with /../ that lead back to the root + of the filesystem, like /foo/.. [Bug 1379287] - * tests/io.test: io-39.22 split into two tests, one platform - dependent, the other not. -eofchar is not empty on the windows - platform. +2006-03-01 Reinhard Max <max@suse.de> -2002-02-01 Vince Darley <vincentdarley@users.sourceforge.net> + * unix/installManPage: Fix the script for manpages that have quotes + around the .SH arguments, as doctools produces them. [Bug 1292145] + Some minor cleanups and improvements. - * generic/tclTest.c: fix to picky windows compiler problem with the - 'MainLoop' function declaration. +2006-02-28 Don Porter <dgp@users.sourceforge.net> -2002-01-31 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * generic/tclBasic.c: Corrections to be sure that TCL_EVAL_GLOBAL + * tests/namespace.test: evaluations act the same as [uplevel #0] + * tests/parse.test: evaluations, even when execution traces or + * tests/trace.test: invocations of [::unknown] are present. [Bug + 1439836] - * win/tclWinFCmd.c: TIP 27: Applied patch fixing CONST warnings on - behalf of Don Porter <dgp@users.sourceforge.net>. +2006-02-22 Don Porter <dgp@users.sourceforge.net> -2002-01-30 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: Corrected a few bugs in how [namespace + * tests/namespace.test: unknown] interacts with TCL_EVAL_* flags. + [Patch 958222] - * generic/tcl.decls: - * generic/tcl.h: - * generic/tclInt.h: For each interface identified in the TIP 27 - changes below as a POTENTIAL INCOMPATIBILITY, the source of the - incompatibility has been parameterized so that it can be removed. When - compiling extension code against the Tcl header files, use the - compiler flag -DUSE_NON_CONST to remove the irresolvable source - incompatibilities introduced by the TIP 27 changes. Resolvable changes - are left for extension authors to resolve. - * generic/tclDecls.h: make genstubs +2006-02-17 Don Porter <dgp@users.sourceforge.net> -2002-01-30 Vince Darley <vincentdarley@users.sourceforge.net> + * generic/tclIORChan.c: Revised error message generation and handling + * tests/ioCmd.test: of exceptional return codes in the channel + reflection layer. [Bug 1372348] - * doc/FileSystem.3: added documentation for 3 public functions which - had been overlooked. Fixes [Bug 507701] - * unix/mkLinks: make mklinks +2006-02-16 Don Porter <dgp@users.sourceforge.net> -2002-01-29 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclIndexObj.c: Disallow the "ambiguous" error message + * tests/indexObj.test: when TCL_EXACT matching is requested. + * tests/ioCmd.test: - * tests/regexpComp.test: - * generic/tclCompCmds.c (TclCompileRegexpCmd): enhanced to support - -nocase and -- options. +2006-02-15 Don Porter <dgp@users.sourceforge.net> -2002-01-28 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclIO.c: Made several routines tolerant of + * generic/tclIORChan.c: interp == NULL arguments. [Bug 1380662] + * generic/tclIOUtil.c: - * unix/tcl.m4 (SC_LOAD_TCLCONFIG): - * win/tcl.m4 (SC_LOAD_TCLCONFIG): Set TCL_LIB_SPEC, TCL_STUB_LIB_SPEC, - and TCL_STUB_LIB_PATH to the values of TCL_BUILD_LIB_SPEC, - TCL_BUILD_STUB_LIB_SPEC, and TCL_BUILD_STUB_LIB_PATH when tclConfig.sh - is loaded from the build directory. A Tcl extension should make use of - the non-build versions of these variables since they will work in both - cases. This modification was described in TIP #34. +2006-02-09 Don Porter <dgp@users.sourceforge.net> -2002-01-28 Jeff Hobbs <jeffh@ActiveState.com> + TIP#215 IMPLEMENTATION - * win/tclWinReg.c (regConnectRegistryProc,RecursiveDeleteKey) - (DeleteKey,GetKeyNames,GetType,GetValue,OpenSubKey,SetValue): - redid the CONSTification as previous changes caused failing tests. + * doc/incr.n: Revised [incr] to auto-initialize when varName + * generic/tclExecute.c: argument is unset. [Patch 1413115] + * generic/tclVar.c: + * tests/compile.test: + * tests/incr-old.test: + * tests/incr.test: + * tests/set.test: + + * tests/main.test (Tcl_Main-6.7): Improved robustness of + command auto-completion test. [Bug 1422736] + +2006-02-08 Donal K. Fellows <dkf@users.sf.net> + + * doc/Encoding.3, doc/encoding.n: Updates due to review at request of + Don Porter. Mostly minor changes. + +2006-02-08 Don Porter <dgp@users.sourceforge.net> + + TIP#258 IMPLEMENTATION + + * doc/Encoding.3: New subcommand [encoding dirs]. + * doc/encoding.n: New routine Tcl_GetEncodingNameFromEnvironment + * generic/tcl.decls: Made public: + * generic/tclBasic.c: TclGetEncodingFromObj + * generic/tclCmdAH.c: -> Tcl_GetEncodingFromObj + * generic/tclEncoding.c:TclGetEncodingSearchPath + * generic/tclInt.decls: -> Tcl_GetEncodingSearchPath + * generic/tclInt.h: TclSetEncodingSearchPath + * generic/tclTest.c: -> Tcl_SetEncodingSearchPath + * library/init.tcl: Removed commands: + * tests/cmdAH.test: [tcl::unsupported::EncodingDirs] + * tests/encoding.test: [testencoding path] (Tcltest) + * unix/tclUnixInit.c: [Patch 1413934] + * win/tclWinInit.c: - * tests/regexpComp.test (new): - * generic/tclInt.h: - * generic/tclBasic.c: added TclCompileRegexpCmd entry - * generic/tclCompCmds.c (TclCompileStringCmd): corrected to return - TCL_OUT_LINE_COMPILE instead of TCL_ERROR for parsing errors, so - it only throws the error for runtime compile, in case the user - modifies 'string'. - (TclCompileRegexpCmd): first try at a byte-compiled regexp - command. It handles static strings and ^$ bounded static strings. - (TclCompileAppendCmd): made TclPushVarName call always use - TCL_CREATE_VAR as numWords is always > 2 at that point. + * generic/tclDecls.h: make genstubs + * generic/tclIntDecls.h: + * generic/tclStubInit.c: - * generic/tclExecute.c (TclExecuteByteCode:INST_LIST): correct - possibly dangerous decr in macro call. +2006-02-01 Miguel Sofer <msofer@users.sf.net> - * win/tclWinInit.c (TclpFindVariable): CONSTification touch-up + * generic/tclProc.c: minor improvements to [apply] + * tests/apply.test: new tests; apply-5.1 currently fails to indicate + missing work in error reporting - * win/tclWinReg.c (OpenSubKey): corrected bug introduced in - CONSTification that dropped pointer reference. +2006-02-01 Don Porter <dgp@users.sourceforge.net> - * ChangeLog.2000 (new file): - * ChangeLog: broke changes from 2000 into ChangeLog.2000 to reduce - size of the main ChangeLog. + TIP#194 IMPLEMENTATION -2002-01-28 David Gravereaux <davygrvy@pobox.com> + * doc/apply.n: (New file) New command [apply]. [Patch 944803] + * doc/uplevel.n: + * generic/tclBasic.c: + * generic/tclInt.h: + * generic/tclProc.c: + * tests/apply.test: (New file) + * tests/proc-old.test: + * tests/proc.test: - * generic/tclPlatDecls.h: Added preprocessor logic to force a typedef - of TCHAR when __STDC__ is defined when using the uncommon -Za compiler - switch with the microsoft compiler. + TIP#181 IMPLEMENTATION -2002-01-27 Don Porter <dgp@users.sourceforge.net> + * doc/Namespace.3: New command [namespace unknown]. New public C + * doc/namespace.n: routines Tcl_(Get|Set)NamespaceUnknownHandler. + * doc/unknown.n: [Patch 958222] + * generic/tcl.decls: + * generic/tclBasic.c: + * generic/tclInt.h: + * generic/tclNamesp.c: + * tests/namespace.test: - * doc/package.n: Documented global namespace context for script - evaluation by [package require]. + * generic/tclDecls.h: make genstubs + * generic/tclStubInit.c: -2002-01-27 Daniel Steffen <das@users.sourceforge.net> + TIP#250 IMPLEMENTATION - * generic/tclInt.decls: - * generic/tclIntPlatDecls.h: - * mac/tclMacChan.c: - * mac/tclMacFCmd.c: - * mac/tclMacFile.c: - * mac/tclMacInit.c: - * mac/tclMacLoad.c: - * mac/tclMacResource.c: - * mac/tclMacSock.c: TIP 27 CONSTification induced changes - - * tests/event.test: - * tests/main.test: added catches/constraints to test that use features - that don't exist on the mac. - -2002-01-25 Mo DeJong <mdejong@users.sourceforge.net> - - Make -eofchar and -translation options read only for server sockets. - [Bug 496733] - - * generic/tclIO.c (Tcl_GetChannelOption, Tcl_SetChannelOption): - Instead of returning nothing for the -translation option on a server - socket, always return "auto". Return the empty string enclosed in - quotes for the -eofchar option on a server socket. Fixup -eofchar - usage message so that it matches the implementation. - * tests/io.test: Add -eofchar tests and -translation tests to ensure - options are read only on server sockets. - * tests/socket.test: Update tests to account for -eofchar and - -translation option changes. - -2002-01-25 Don Porter <dgp@users.sourceforge.net> - - * compat/strstr.c (strstr): - * generic/tclCmdAH.c (Tcl_FormatObjCmd): - * generic/tclCmdIL.c (InfoNameOfExecutableCmd): - * generic/tclEnv.c (ReplaceString): - * generic/tclFileName.c (ExtractWinRoot): - * generic/tclIO.c (FlushChannel,Tcl_BadChannelOption): - * generic/tclStringObj.c (AppendUnicodeToUtfRep): - * generic/tclThreadTest.c (TclCreateThread): - * generic/tclUtf.c (Tcl_UtfPrev): - * mac/tclMacFCmd.c (TclpObjListVolumes): - * mac/tclMacResource.c (TclMacRegisterResourceFork) - (BuildResourceForkList): - * win/tclWinInit.c (AppendEnvironment): Sought out and eliminated - instances of CONST-casting that are no longer needed after the - TIP 27 effort. - - * Following is [Patch 501006] - * generic/tclInt.decls (Tcl_AddInterpResolvers, Tcl_Export) - (Tcl_FindNamespace, Tcl_GetInterpResolvers, Tcl_ForgetImport) - (Tcl_Import, Tcl_RemoveInterpResolvers): - * generic/tclNamesp.c (Tcl_Export, Tcl_Import, Tcl_ForgetImport) - (Tcl_FindNamespace): - * generic/tclResolve.c (Tcl_AddInterpResolvers,Tcl_GetInterpResolvers, - (Tcl_RemoveInterpResolvers): Updated APIs in generic/tclResolve.c and - generic/tclNamesp.c according to the guidelines of TIP 27. - * generic/tclIntDecls.h: make genstubs - - * Following is [Patch 505630] - * doc/AddErrorInfo.3: - * generic/tcl.decls (Tcl_LogCommandInfo): - * generic/tclBasic.c (Tcl_LogCommandInfo): Updated interfaces - of generic/tclBasic.cc according to TIP 27. - * generic/tclDecls.h: make genstubs - - * Following is [Patch 506818] - * doc/Hash.3: - * generic/tcl.decls (Tcl_HashStats): - * generic/tclHash.c (Tcl_HashStats): Updated APIs of generic/tclHash.c - according to guidelines of TIP 27. - * generic/tclDecls.h: make genstubs - * generic/tclVar.c (Tcl_ArrayObjCmd): Updated callers. - - * Following is [Patch 506807] - * doc/ObjectType.3: - * generic/tcl.decls (Tcl_GetObjType): - * generic/tclObj.c (Tcl_GetObjType): Updated APIs of generic/tclObj.c - according to guidelines of TIP 27. - * generic/tclDecls.h: make genstubs - - * Following is [Patch 507304] - * doc/Encoding.3: - * generic/tcl.decls (Tcl_WinUtfToTChar,Tcl_WinTCharToUtf): - * win/tclWin32Dll.c (Tcl_WinUtfToTChar,Tcl_WinTCharToUtf): - Updated interfaces in win/tclWin32Dll.c according to TIP 27. - * generic/tclPlatDecls.h: make genstubs - * generic/tclIOUtil.c (TclpNativeToNormalized): - * win/tclWinFCmd.c (TclpObjNormalizePath): - * win/tclWinFile.c (TclpFindExecutable,TclpMatchInDirectory) - (NativeIsExec,NativeStat): - * win/tclWinLoad.c (TclpLoadFile): - * win/tclWinPipe.c (TclpOpenFile,ApplicationType): - * win/tclWinReg.c (regConnectRegistryProc,RecursiveDeleteKey,DeleteKey) - (GetKeyNames,GetType,GetValue,OpenSubKey,SetValue): - * win/tclWinSerial.c (SerialSetOptionProc): Update callers. - - * Following is [Patch 505072] - * doc/Concat.3: - * doc/Encoding.3: - * doc/Filesystem.3: - * doc/Macintosh.3: - * doc/OpenFileChnl.3 - * doc/SetResult.3: - * doc/SetVar.3: - * doc/SplitList.3: - * doc/SplitPath.3: - * doc/Translate.3: - * generic/tcl.h (Tcl_FSMatchInDirectoryProc): - * generic/tclInt.h (TclpMatchInDirectory): - * generic/tcl.decls (Tcl_Concat,Tcl_GetStringResult,Tcl_GetVar, - (Tcl_GetVar2,Tcl_JoinPath,Tcl_Merge,Tcl_OpenCommandChannel,Tcl_SetVar) - (Tcl_SetVar2,Tcl_SplitList,Tcl_SplitPath,Tcl_TranslateFileName) - (Tcl_ExternalToUtfDString,Tcl_GetEncodingName,Tcl_UtfToExternalDString) - (Tcl_GetDefaultEncodingDir,Tcl_SetDefaultEncodingDir) - (Tcl_FSMatchInDirectory,Tcl_MacEvalResource,Tcl_MacFindResource): - * generic/tclInt.decls (TclCreatePipeline,TclGetEnv,TclpGetCwd, - (TclpCreateProcess): - * mac/tclMacFile.c (TclpGetCwd): - * generic/tclEncoding.c (Tcl_GetDefaultEncodingDir) - (Tcl_SetDefaultEncodingDir,Tcl_GetEncodingName) - (Tcl_ExternalToUtfDString,Tcl_UtfToExternalDString, OpenEncodingFile) - (LoadEscapeEncoding): - * generic/tclFileName.c (DoTildeSubst,Tcl_JoinPath,Tcl_SplitPath, - (Tcl_TranslateFileName): - * generic/tclIOUtil.c (Tcl_FSMatchInDirectory): - * generic/tclPipe.c (FileForRedirect,TclCreatePipeline) - (Tcl_OpenCommandChannel): - * generic/tclResult.c (Tcl_GetStringResult): - * generic/tclUtil.c (Tcl_Concat,Tcl_SplitList,Tcl_Merge): - * generic/tclVar.c (Tcl_GetVar,Tcl_GetVar2,Tcl_SetVar,Tcl_SetVar2): - * mac/tclMacResource.c (Tcl_MacEvalResource,Tcl_MacFindResource): - Updated interfaces of generic/tclEncoding, generic/tclFilename.c, - generic/tclIOUtil.c, generic/tclPipe.c, generic/tclResult.c, - generic/tclUtil.c, generic/tclVar.c and mac/tclMacResource.c according - to TIP 27. Tcl_TranslateFileName rewritten as wrapper around - VFS-aware version. - ***POTENTIAL INCOMPATIBILITY*** - Includes source incompatibilities: argv arguments of Tcl_Concat, - Tcl_JoinPath, Tcl_OpenCommandChannel, Tcl_Merge; argvPtr arguments of - Tcl_SplitList and Tcl_SplitPath. - * generic/tclDecls.h: - * generic/tclIntDecls.h: make genstubs - - * generic/tclCkalloc.c (MemoryCmd): - * generic/tclClock.c (FormatClock): - * generic/tclCmdAH.c (Tcl_CaseObjCmd,Tcl_EncodingObjCmd,Tcl_FileObjCmd): - * generic/tclCmdIL.c (InfoLibraryCmd,InfoPatchLevelCmd, - (InfoTclVersionCmd): - * generic/tclCompCmds.c (TclCompileForeachCmd): - * generic/tclCompCmds.h (TclCompileForeachCmd): - * generic/tclCompile.c (TclFindCompiledLocal): - * generic/tclEnv.c (TclSetupEnv,TclSetEnv,Tcl_PutEnv,TclGetEnv, - (EnvTraceProc): - * generic/tclEvent.c (Tcl_BackgroundError): - * generic/tclIO.c (Tcl_BadChannelOption,Tcl_SetChannelOption): - * generic/tclIOCmd.c (Tcl_ExecObjCmd,Tcl_OpenObjCmd): - * generic/tclIOSock.c (TclSockGetPort): - * generic/tclIOUtil.c (SetFsPathFromAny): - * generic/tclLink.c (LinkTraceProc): - * generic/tclMain.c (Tcl_Main): - * generic/tclNamesp.c (TclTeardownNamespace): - * generic/tclProc.c (TclCreateProc): - * generic/tclTest.c (TestregexpObjCmd,TesttranslatefilenameCmd, - (TestchmodCmd,GetTimesCmd,TestsetCmd,TestOpenFileChannelProc1, - (TestOpenFileChannelProc2,TestOpenFileChannelProc3,AsyncHandlerProc, - (TestpanicCmd): - * generic/tclThreadTest.c (ThreadErrorProc,ThreadEventProc): - * generic/tclUtil.c (TclPrecTraceProc): - * mac/tclMacFCmd.c (GetFileSpecs): - * mac/tclMacFile.c (TclpMatchInDirectory): - * mac/tclMacInit.c (TclpInitLibraryPath,Tcl_SourceRCFile): - * mac/tclMacOSA.c (tclOSAStore,tclOSALoad): - * mac/tclMacResource.c (Tcl_MacEvalResource): - * unix/tclUnixFCmd.c (TclpObjNormalizePath): - * unix/tclUnixFile.c (TclpMatchInDirectory,TclpGetUserHome,TclpGetCwd, - (TclpReadLink): - * unix/tclUnixInit.c (TclpInitLibraryPath,TclpSetVariables, - (Tcl_SourceRCFile): - * unix/tclUnixPipe.c (TclpOpenFile,TclpCreateTempFile, - (TclpCreateProcess): - * win/tclWinFile.c (TclpGetCwd,TclpMatchInDirectory): - * win/tclWinInit.c (TclpInitLibraryPath,Tcl_SourceRCFile, - (TclpSetVariables): - * win/tclWinPipe.c (TclpCreateProcess): Updated callers. - -2002-01-24 Don Porter <dgp@users.sourceforge.net> - - * generic/tclIOUtil.c (SetFsPathFromAny): Corrected tilde-substitution - of pathnames where > 1 separator follows the ~. [Bug 504950] - -2002-01-24 Jeff Hobbs <jeffh@ActiveState.com> + * doc/namespace.n: New command [namespace upvar]. [Patch 1275435] + * generic/tclInt.h: + * generic/tclNamesp.c: + * generic/tclVar.c: + * tests/namespace.test: + * tests/upvar.test: - * library/http/pkgIndex.tcl: - * library/http/http.tcl: don't add port in default case to handle - broken servers. http bumped to 2.4.1 [Bug 504508] - -2002-01-23 Andreas Kupries <andreas_kupries@users.sourceforge.net> - - * unix/mkLinks: Regenerated. - * doc/CrtChannel.3: - * doc/ChnlStack.3: Moved documentation for 'Tcl_GetTopChannel' from - 'CrtChannel' to 'ChnlStack'. Added documentation of - 'Tcl_GetStackedChannel'. [Bug 506147] reported by Mark Patton - <msp@users.sourceforge.net> - -2002-01-23 Don Porter <dgp@users.sourceforge.net> - - * win/tclWinFile.c (NativeAccess,NativeStat,NativeIsExec, - (TclpGetUserHome): - * win/tclWinPort.h (TclWinSerialReopen): - * win/tclWinSerial.c (TclWinSerialReopen): - * win/tclWinSock.c (Tcl_OpenTcpServer): Corrections to earlier TIP - #27 changes. Thanks to Andreas Kupries for the feedback. - * generic/tclPlatDecls.h: make genstubs - - * doc/GetHostName.3: - * doc/GetOpnFl.3: - * doc/OpenTcp.3: - * tcl.decls (Tcl_GetHostName,Tcl_GetOpenFile,Tcl_OpenTcpClient, - (Tcl_OpenTclServer): - * mac/tclMacSock.c (CreateSocket,Tcl_OpenTcpClient,Tcl_OpenTcpServer, - (Tcl_GetHostName,GetHostFromString): - * unix/tclUnixChan.c (CreateSocket,CreateSocketAddress, - (Tcl_OpenTcpClient,Tcl_OpenTcpServer,Tcl_GetOpenFile): - * unix/tclUnixSock.c (Tcl_GetHostName): - * win/tclWinSock.c (CreateSocket,CreateSocketAddress, - (Tcl_OpenTcpClient,Tcl_OpenTcpServer,Tcl_GetHostName): - Updated socket interfaces according to TIP 27. - * generic/tclCmdIL.c (InfoHostnameCmd): Updated callers. - * generic/tclDecls.h: make genstubs - -2002-01-21 David Gravereaux <davygrvy@pobox.com> - - * generic/tclLoadNone.c: TclpLoadFile() didn't match proto of typedef - Tcl_FSLoadFileProc. OK'd by vincentdarley. [Patch 502488] - -2002-01-21 Andreas Kupries <andreas_kupries@users.sourceforge.net> - - * generic/tclIO.c (WriteChars): Fix for [Bug 506297], reported by - Martin Forssen <ruric@users.sourceforge.net>. The encoding chosen in - the script exposing the bug writes out three intro characters when - TCL_ENCODING_START is set, but does not consume any input as - TCL_ENCODING_END is cleared. As some output was generated the - enclosing loop calls UtfToExternal again, again with START set. Three - more characters in the out and still no use of input ... To break this - infinite loop we remove TCL_ENCODING_START from the set of flags after - the first call (no condition is required, the later calls remove an - unset flag, which is a no-op). This causes the subsequent calls to - UtfToExternal to consume and convert the actual input. - -2002-01-21 Don Porter <dgp@users.sourceforge.net> - - * generic/tclTest.c: Converted declarations of TestReport file system - to more portable form. [Bug 501417]. - - * generic/tcl.decls (Tcl_TraceCommand,Tcl_UntraceCommand, - (Tcl_CommandTraceInfo): - * generic/tclCmdMZ.c (Tcl_TraceCommand,Tcl_UntraceCommand, - (Tcl_CommandTraceInfo): Updated APIs in generic/tclCmdMZ.c - according to the guidelines of TIP 27. - * generic/tclDecls.h: make genstubs - -2002-01-18 Don Porter <dgp@users.sourceforge.net> +2006-01-26 Donal K. Fellows <dkf@users.sf.net> - * win/tclWinChan.c: - * win/tclWinFCmd.c: - * win/tclWinFile.c: Overlooked callers of Tcl_FSGetNativePath + * doc/dict.n: Fixed silly bug in example. Thanks to Heiner Marxen + <heiner.marxen@unsel.de> for catching this! [Bug 1415725] - * win/tclWinDde.c: - * win/tclWinReg.c: Overlooked callers of Tcl_GetIndexFromObj +2006-01-26 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-01-18 Daniel Steffen <das@users.sourceforge.net> + * unix/tclUnixChan.c (TclpOpenFileChannel): Tidy up and comment the + mess to do with setting up serial channels. This (deliberately) breaks + a broken FreeBSD port, indicates what we're really doing, and reduces + the amount of conditional compilation sections for better maintenance. - * generic/tclThreadTest.c: - * mac/tclMacChan.c: - * mac/tclMacFCmd.c: - * mac/tclMacFile.c: - * mac/tclMacLoad.c: - * mac/tclMacResource.c: TIP 27 CONSTification broke the mac build in a - number of places. +2006-01-25 Donal K. Fellows <dkf@users.sf.net> -2002-01-17 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * unix/tclUnixInit.c (TclpInitPlatform): Improved conditions on when + to update the FP rounding mode on FreeBSD, taken from FreeBSD port. - * generic/tclIOCmd.c (Tcl_GetsObjCmd): Fixed [Bug 504642] as reported - by Brian Griffin <bgriffin@users.sourceforge.net>, using his patch. - Before the patch the generic I/O layer held an unannounced reference - to the interp result to store the read line into. This unfortunately - has disastrous results if the channel driver executes a Tcl script to - perform its operation, this freeing the interp result. In that case we - are dereferencing essentially a dangling reference. It is not truly - dangling because the object is in the free list, but this only causes - us to smash the free list and have the error occur later somewhere - else. The patch simply creates a new object for the line and later - sets it into the interp result when we are done with reading. +2006-01-23 Donal K. Fellows <dkf@users.sf.net> -2002-01-16 Mo DeJong <mdejong@users.sourceforge.net> + * tests/string.test (string-12.21): Added test for [Bug 1410553] based + on original bug report. - * unix/tcl.m4 (SC_LOAD_TCLCONFIG): - * win/tcl.m4 (SC_LOAD_TCLCONFIG): Subst TCL_DBGX into - TCL_STUB_LIB_FILE and TCL_STUB_LIB_FLAG variables so that an extension - does not need to subst TCL_DBGX into its makefile. [Tk Bug 504356] +2006-01-23 Miguel Sofer <msofer@users.sf.net> -2002-01-16 Don Porter <dgp@users.sourceforge.net> + * generic/tclStringObj.c: fixed incorrect handling of internal rep in + Tcl_GetRange. Thanks to twylite and Peter Spjuth. [Bug 1410553] - * doc/FileSystem.3: - * doc/GetCwd.3: - * doc/GetIndex.3: - * generic/tcl.decls (Tcl_GetIndexFromObj, Tcl_GetIndexFromObjStruct, - (Tcl_GetCwd, Tcl_FSFileAttrStrings, Tcl_FSGetNativePath, - (Tcl_FSGetTranslatedStringPath): - * generic/tcl.h (Tcl_FSFileAttrStringsProc): - * generic/tclFCmd.c (TclFileAttrsCmd): - * generic/tclIOUtil.c (Tcl_GetCwd,NativeFileAttrStrings, - (Tcl_FSFileAttrStrings,Tcl_FSGetTranslatedStringPath, - (Tcl_FSGetNativePath): - * generic/tclIndexObj.c (Tcl_GetIndexFromObj,Tcl_GetIndexFromObjStruct): - More TIP 27 updates in tclIOUtil.c and tclIndexObj.c that were - overlooked before. [Patch 504671] - ***POTENTIAL INCOMPATIBILITY*** - Includes a source incompatibility in the tablePtr arguments of the - Tcl_GetIndexFromObj* routines. - * generic/tclDecls.h: make genstubs - - * generic/tclBinary.c (Tcl_BinaryObjCmd): - * generic/tclClock.c (Tcl_ClockObjCmd): - * generic/tclCmdAH.c (Tcl_EncodingObjCmd, Tcl_FileObjCmd): - * generic/tclCmdIL.c (Tcl_InfoObjCmd,Tcl_LsearchObjCmd,Tcl_LsortObjCmd): - * generic/tclCmdMZ.c (Tcl_TraceObjCmd,Tcl_RegexpObjCmd,Tcl_RegsubObjCmd, - (Tcl_StringObjCmd,Tcl_SubstObjCmd,Tcl_SwitchObjCmd, - (TclTraceCommandObjCmd,TclTraceVariableObjCmd): - * generic/tclCompCmds.c (TclCompileStringCmd): - * generic/tclEvent.c (Tcl_UpdateObjCmd): - * generic/tclFileName.c (Tcl_GlobObjCmd): - * generic/tclIO.c (Tcl_FileEventObjCmd): - * generic/tclIOCmd.c (Tcl_SeekObjCmd,Tcl_ExecObjCmd,Tcl_SocketObjCmd, - (Tcl_FcopyObjCmd): - * generic/tclInterp.c (Tcl_InterpObjCmd,SlaveObjCmd): - * generic/tclNamesp.c (Tcl_NamespaceObjCmd): - * generic/tclPkg.c (Tcl_PackageObjCmd): - * generic/tclTest.c (Tcltest_Init,TestencodingObjCmd,TestgetplatformCmd, - (TestlocaleCmd,TestregexpObjCmd,TestsaveresultCmd, - (TestGetIndexFromObjStructObjCmd,TestReportFileAttrStrings): - * generic/tclTestObj.c (TestindexObjCmd,TeststringObjCmd): - * generic/tclTimer.c (Tcl_AfterObjCmd): - * generic/tclVar.c (Tcl_ArrayObjCmd): - * mac/tclMacFCmd.c (SetFileFinderAttributes): - * unix/tclUnixChan.c (TclpOpenFileChannel): - * unix/tclUnixFCmd.c (tclpFileAttrStrings): - * unix/tclUnixFile.c (TclpObjAccess,TclpObjChdir,TclpObjStat, - (TclpObjLstat): - * win/tclWinFCmd.c (tclpFileAttrStrings): Updated callers. - - * doc/RegExp.3: - * doc/Utf.3: - * generic/tcl.decls: - * generic/tclInt.decls: - * generic/tclRegexp.c: - * generic/tclUtf.c: Updated APIs in generic/tclUtf.c and - generic/tclRegexp.c according to the guidelines of TIP 27. - [Patch 471509] - - * generic/regc_locale.c (element,cclass): - * generic/tclCmdMZ.c (Tcl_StringObjCmd): - * generic/tclFileName.c (TclpGetNativePathType,SplitMacPath): - * generic/tclIO.c (ReadChars): - * mac/tclMacLoad.c (TclpLoadFile): - * win/tclWinFile.c (TclpGetUserHome): Updated callers. - - * generic/tclDecls.h: - * generic/tclIntDecls.h: make genstubs - - * doc/ParseCmd.3 (Tcl_ParseVar): - * generic/tcl.decls (Tcl_ParseVar): - * generic/tclParse.c (Tcl_ParseVar): - * generic/tclTest.c (TestparsevarObjCmd): Updated APIs in - generic/tclParse.c according to the guidelines of TIP 27. Updated - callers. [Patch 501046] - * generic/tclDecls.h: make genstubs - - * generic/tcl.decls (Tcl_RecordAndEval): - * generic/tclDecls.h: make genstubs - * generic/tclHistory.c (Tcl_RecordAndEval): Updated APIs in - generic/tclHistory.c according to the guidelines of TIP 27. - [Patch 504091] - - * doc/CrtSlave.3: - * generic/tcl.decls (Tcl_CreateAlias, Tcl_CreateAliasObj, - (Tcl_CreateSlave, Tcl_GetAlias, Tcl_GetAliasObj, Tcl_GetSlave): - * generic/tclInterp.c (Tcl_CreateAlias, Tcl_CreateAliasObj, - (Tcl_CreateSlave, Tcl_GetAlias, Tcl_GetAliasObj, Tcl_GetSlave): - Updated APIs in the file generic/tclInterp.c according to the - guidelines of TIP 27. [Patch 501371] - ***POTENTIAL INCOMPATIBILITY*** - Includes a source incompatibility in the targetCmdPtr arguments of - the Tcl_GetAlias* routines. - - * generic/tclDecls.h: make genstubs - -2002-01-15 Don Porter <dgp@users.sourceforge.net> - - * doc/SetErrno.3 (Tcl_ErrnoMsg): Corrected documentation for - Tcl_ErrnoMsg; it takes an integer argument. Thanks to Georgios - Petasis. [Bug 468183] - - * doc/AddErrInfo.3 (Tcl_PosixError): - * doc/Eval.3 (Tcl_EvalFile): - * doc/FileSystem.c (Tcl_FSOpenFileChannel,Tcl_FSOpenFileChannelProc): - * doc/OpenFileChnl.3 (Tcl_OpenFileChannel): - * doc/SetErrno.3 (Tcl_ErrnoId,Tcl_ErrnoMsg): - * doc/Signal.3 (Tcl_SignalId,Tcl_SignalMsg): - * generic/tcl.decls (Tcl_ErrnoId,TclErrnoMsg,Tcl_EvalFile, - (Tcl_OpenFileChannel,Tcl_PosixError,Tcl_SignalId,Tcl_SignalMsg, - (Tcl_FSOpenFileChannel): - * generic/tcl.h (Tcl_FSOpenFileChannelProc): - * generic/tclIO.c (FlushChannel): - * generic/tclIOUtil.c (Tcl_OpenFileChannel,Tcl_EvalFile,TclGetOpenMode, - (Tcl_PosixError,Tcl_FSOpenFileChannel): - * generic/tclInt.decls (TclGetOpenMode): - * generic/tclInt.h (TclOpenFileChannelProc_,TclGetOpenMode, - (TclpOpenFileChannel): - * generic/tclPipe.c (TclCleanupChildren): - * generic/tclPosixStr.c (Tcl_ErrnoId,Tcl_ErrnoMsg,Tcl_SignalId, - (Tcl_SignalMsg): - * generic.tclTest.c (PretendTclpOpenFileChannel, - (TestOpenFileChannelProc1,TestOpenFileChannelProc2, - (TestOpenFileChannelProc3,TestReportOpenFileChannel): - * mac/tclMacChan.c (TclpOpenFileChannel): - * unix/tclUnixChan.c (TclpOpenFileChannel): - * win/tclWinChan.c (TclpOpenFileChannel): Updated APIs in - generic/tclIOUtil.c and generic/tclPosixStr.c according to the - guidelines of TIP 27. Updated callers. [Patch 499196] - - * generic/tclDecls.h: - * generic/tclIntDecls.h: make genstubs - - * doc/CrtChannel.3: - * doc/OpenFileChnl.3: - * generic/tcl.decls: - * generic/tclIO.h: - * generic/tclIO.c (DoWrite, Tcl_RegisterChannel, Tcl_GetChannel, - (Tcl_CreateChannel, Tcl_GetChannelName, CloseChannel, Tcl_Write, - (Tcl_WriteRaw, Tcl_Ungets, Tcl_BadChannelOption, Tcl_GetChannelOption, - (Tcl_SetChannelOption, Tcl_GetChannelNamesEx, Tcl_ChannelName): - Updated APIs in the file generic/tclIO.c according to the guidelines - of TIP 27. Several minor documentation corrections as well. [Patch - 503565] - * generic/tclDecls.h: make genstubs - - * generic/tcl.h (Tcl_DriverOutputProc, Tcl_DriverGetOptionProc, - (Tcl_DriverSetOptionProc): - * generic/tclIOGT.c (TransformOutputProc, TransformGetOptionProc, - (TransformSetOptionProc): - * mac/tclMacChan.c (FileOutput, StdIOOutput): - * man/tclMacSock.c (TcpGetOptionProc, TcpOutput): - * unix/tclUnixChan.c (FileOutputProc, TcpGetOptionProc, TcpOutputProc, - (TtyGetOptionProc, TtySetOptionProc): - * unix/tclUnixPipe.c (PipeOuputProc): - * win/tclWinChan.c (FileOutputProc): - * win/tclWinConsole.c (ConsleOutputProc): - * win/tclWinPipe.c (PipeOuputProc): - * win/tclWinSerial.c (SerialOutputProc, SerialGetOptionProc, - (SerialSetOptionProc): - * win/tclWinSock.c (TcpGetOptionProc, TcpOutput): Updated channel - driver interface according to the guidelines of TIP 27. See also [Bug - 500348]. - - * doc/CrtChannel.3: - * generic/tcl.h: - * generic/tclIO.c: - * generic/tclIO.h: - * generic/tclInt.h: - * tools/checkLibraryDoc.tcl: - Moved Tcl_EolTranslation enum declaration from generic/tcl.h to - generic/tclInt.h (renamed to TclEolTranslation). It is not used - anywhere in Tcl's public interface. + * generic/tclProc.c: fixed args handling for precompiled bodies [Bug + 1412695]; thanks to Uwe Traum. -2002-01-14 Don Porter <dgp@users.sourceforge.net> +2006-01-16 Reinhard Max <max@suse.de> - * doc/GetIndex.3: - * doc/WrongNumArgs.3: - * generic/tcl.decls (Tcl_GetIndexFromObj, Tcl_GetIndexFromObjStruct, - (Tcl_WrongNumArgs): - * generic/tclIndexObj.c (Tcl_GetIndexFromObj, Tcl_GetIndexFromObjStruct, - (Tcl_WrongNumArgs): Updated APIs in the file generic/tclIndexObj.c - according to the guidelines of TIP 27. [Patch 501491] - * generic/tclDecls.h: make genstubs + * generic/tclPipe.c (FileForRedirect): Prevent nameString from being + freed without having been initialized. + * tests/exec.test: Added a test for the above. -2002-01-11 Mo DeJong <mdejong@users.sourceforge.net> +2006-01-12 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * unix/configure: Regen. - * unix/configure.in: - * win/configure: Regen. - * win/configure.in: Use ${libdir} instead of ${exec_prefix}/lib - to properly support the --libdir option to configure. [Bug 489370] - -2002-01-11 Andreas Kupries <andreas_kupries@users.sourceforge.net> - - * win/tclWinSerial.c (SerialSetOptionProc): Applied patch for [Bug - 500348] supplied by Rolf Schroedter <schroedter@users.sf.net>. The - function modified the contents of the the 'value' string and now does - not do this anymore. This is a followup to the change made on - 2001-12-17. - -2002-01-11 David Gravereaux <davygrvy@pobox.com> - - * win/makefile.vc: Removed -GD compiler option. It was intended for - future use, but MS is again changing the future at their whim. The - D4002 warning was harmless though, but someone using VC .NET logged it - as a concern. [Bug 501565] - -2002-01-11 Mo DeJong <mdejong@users.sourceforge.net> - - * unix/Makefile.in: Burn Tcl build directory into tcltest executable - to avoid crashes caused by ld loading a previously installed version - of the tcl shared library. [Bug 218110] - -2002-01-10 Don Porter <dgp@users.sourceforge.net>, - Kevin Kenny <kennykb@users.sourceforge.net> - - * unix/tclLoadDld.c (TclpLoadFile): syntax error: unbalanced parens. - Kevin notes that it's far from clear that this file is ever included - in an actual build; Linux without dlopen appears to be a nonexistent - configuration. - -2002-01-08 Don Porter <dgp@users.sourceforge.net>, - Kevin Kenny <kennykb@users.sourceforge.net> - - * doc/StaticPkg.3 (Tcl_StaticPackage): - * generic/tcl.decls (Tcl_StaticPackage): - * generic/tclDecls.h (Tcl_StaticPackage): - * generic/tclInt.decls (TclGuessPackageName): - * generic/tclInt.h (TclGuessPackageName): - * generic/tclLoad.c (Tcl_StaticPackage): - * generic/tclLoadNone.c (TclGuessPackageName): - * mac/tclMacLoad.c (TclGuessPackageName): - * unix/tclLoadAout.c (TclGuessPackageName): - * unix/tclLoadDl.c (TclGuessPackageName): - * unix/tclLoadDld.c (TclGuessPackageName): - * unix/tclLoadDyld.c (TclGuessPackageName): - * unix/tclLoadNext.c (TclGuessPackageName): - * unix/tclLoadOSF.c (TclGuessPackageName): - * unix/tclLoadShl.c (TclGuessPackageName): - * win/tclWinLoad.c (TclGuessPackageName): Updated APIs in the files - */tcl*Load*.c according to the guidelines of TIP 27. [Patch 501096] - -2002-01-09 Don Porter <dgp@users.sourceforge.net> - - * generic/tclTest.c (MainLoop): - * tests/main.test (Tcl_Main-1.{3,4,5,6}): Corrected some non-portable - tests from the new Tcl_Main changes. Thanks to Kevin Kenny. - -2002-01-07 Don Porter <dgp@users.sourceforge.net> - - * generic/tclEvent.c (TclInExit): - * generic/tclIOUtil.c (SetFsPathFromAbsoluteNormalized, - (SetFsPathFromAny,Tcl_FSNewNativePath,DupFsPathInternalRep): - * generic/tclListObj.c (TclLsetList,TclLsetFlat): Added some type - casts to satisfy picky compilers. - - * generic/tclMain.c: Bug fix: neglected the NULL case in - TclGetStartupScriptFileName(). Broke Tk/wish. - -2002-01-05 Don Porter <dgp@users.sourceforge.net> - - * doc/Tcl_Main.3: - * generic/tclMain.c: Substantial rewrite and expanded documentation - of Tcl_Main to correct a number of bugs and flaws: - - * Interactive Tcl_Main can now enter a main loop, exit that - loop and continue interactive operations. The loop may even - exit in the midst of interactive command typing without loss - of the partial command. [Bugs 486453, 474131] - * Tcl_Main now gracefully handles deletion of its master - interpreter. - * Interactive Tcl_Main can now operate with non-blocking stdin - * Interactive Tcl_Main can now detect EOF on stdin even in - mid-command. [Bug 491341] - * Added VFS-aware internal routines for managing the startup - script selection. - * Tcl variable 'tcl_interactive' is now linked to C variable - 'tty' so that one can disable/enable interactive prompts at - the script level when there is no startup script. This is - meant for use by the test suite. - * Consistent use of the Tcl libraries standard channels as - returned by Tcl_GetStdChannel(); as opposed to the channels - named 'stdin', 'stdout', and 'stderr' in the master interp, - which can be different or unavailable. - * Tcl_Main now calls Tcl_Exit() if evaluation of [exit] in the - master interpreter returns, assuring Tcl_Main does not - return. - * Documented Tcl_Main's absence from public stub table - * Documented that Tcl_Main does not return. - * Documented Tcl variables set by Tcl_Main. - * All prompts are done from a single procedure, Prompt. - * Use of Tcl_Obj-enabled interfaces everywhere. - - * generic/tclInt.decls (TclGetStartupScriptPath, - (TclSetStartupScriptPath): New internal VFS-aware routines for - managing the startup script of Tcl_Main. - * generic/tclIntDecls.h: - * generic/tclStubInit.c: make genstubs + * generic/tclPathObj.c (Tcl_FSGetInternalRep): backported patch from + core-8-4-branch. A freed pointer has been overwritten causing all + sorts of coredumps. - * generic/tclTest.c (TestsetmainloopCmd,TestexitmainloopCmd, - (Tcltest_Init,TestinterpdeleteCmd): - * tests/main.test (new): Added new file to test suite that thoroughly - tests generic/tclMain.c; added some new test commands for testing - Tcl_SetMainLoop(). +2006-01-12 Vince Darley <vincentdarley@sourceforge.net> -2002-01-04 Don Porter <dgp@users.sourceforge.net> + * win/tclWinFile.c: fix to sharing violation [Bug 1366227] - * doc/Alloc.3: - * doc/Concat.3: - * doc/CrtMathFnc.3: - * doc/Hash.3: - * doc/Interp.3: - * doc/LinkVar.3: - * doc/ObjectType.3: - * doc/PkgRequire.3: - * doc/Preserve.3: - * doc/SetResult.3: - * doc/SplitList.3: - * doc/SplitPath.3: - * doc/TCL_MEM_DEBUG.3: Updated documentation to describe the ckalloc, - ckfree, ckrealloc, attemptckalloc, and attemptckrealloc macros, and to - accurately describe when and how they are used. [Bug 497459] +2006-01-11 Don Porter <dgp@users.sourceforge.net> - * generic/tclThreadJoin.c (TclRememberJoinableThread,TclJoinThread): - Replaced Tcl_Alloc and Tcl_Free calls with ckalloc and ckfree so that - memory debugging is supported. + * generic/tclBasic.c: Moved Tcl_LogCommandInfo from tclBasic.c to + * generic/tclNamesp.c: tclNamesp.c to get access to identifier with + * tests/error.test (error-7.0): file scope. Added check for traces on + ::errorInfo, and when present fall back to contruction of the stack + trace in the variable so that write trace notification timings are + compatible with earlier Tcl releases. This reduces, but does not + completely eliminate the ***POTENTIAL INCOMPATIBILITY*** created by + the 2004-10-15 commit. [Bug 1397843] -2002-01-04 Daniel Steffen <das@users.sourceforge.net> +2006-01-10 Daniel Steffen <das@users.sourceforge.net> - * mac/tclMacTime.c (TclpGetTZName): fix for daylight savings TZName - bug + * unix/configure: add caching, use AC_CACHE_CHECK instead of + * unix/configure.in: AC_CACHE_VAL where possible, consistent message + * unix/tcl.m4: quoting, sync relevant tclconfig/tcl.m4 changes + and gratuitous formatting differences, fix SC_CONFIG_MANPAGES with + default argument, Darwin improvements to SC_LOAD_*CONFIG. -2002-01-03 Don Porter <dgp@users.sourceforge.net> +2006-01-09 Don Porter <dgp@users.sourceforge.net> - * doc/FileSystem.3: - * generic/tclIOUtil.c: Updated some old uses of "fileName" to new VFS - terminology, "pathPtr". + * generic/tclNamesp.c (NamespaceInscopeCmd): [namespace inscope] + * tests/namespace.test: commands were not reported by [info level]. + [Bug 1400572] -2002-01-03 Donal K. Fellows <fellowsd@cs.man.ac.uk> +2006-01-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * tests/basic.test (basic-39.4): Greatly simplified test while still - leaving it so that it crashes when run without the fix to the - [foreach] implementation. - * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Stopped [Bug 494348] from - happening by not trying to be so clever with cacheing; if nothing - untoward is happening anyway, the less efficient technique will only - add a few instruction cycles (one function call and a few - derefs/assigns per list per iteration, with no change in the number of - tests) and if something odd *is* going on, the code is now far more - robust. + * generic/tclTrace.c: Stop exporting the guts of the trace command; + nothing outside this file needs to see it. [Bug 971336] - * tests/basic.test (basic-39.4): Reproducable script from [Bug 494348] +2006-01-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> -2002-01-02 Donal K. Fellows <fellowsd@cs.man.ac.uk> + * unix/tcl.m4 (TCL_CONFIG_SYSTEM): Factor out the code to determine + the operating system version number, as it was replicated in several + places. - * tests/util.test (Wrapper_Tcl_StringMatch,util-5.*): Rewrote so the - test is performed with the right internal function since [string - match] no longer uses Tcl_StringCaseMatch internally. +2006-01-04 David Gravereaux <davygrvy@pobox.com> - * tests/string.test (string-11.51): - * generic/tclUtf.c (Tcl_UniCharCaseMatch): - * generic/tclUtil.c (Tcl_StringCaseMatch): Fault with matching - case-insensitive non-ASCII patterns containing upper case characters. - [Bug 233257] + * win/tclAppInit.c: WIN32 native console signal handler removed. This + was found to be interfering with TWAPI extension one. IMO, special + services such as signal handlers should best be done with extensions + to the core after discussions on c.l.t. about Roy Terry's tclsh + children of a real windows service shell. ****************************************************************** + *** CHANGELOG ENTRIES FOR 2005 IN "ChangeLog.2005" *** + *** 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" *** *** CHANGELOG ENTRIES FOR 2000 IN "ChangeLog.2000" *** *** CHANGELOG ENTRIES FOR 1999 AND EARLIER IN "ChangeLog.1999" *** |