diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 12138 |
1 files changed, 4371 insertions, 7767 deletions
@@ -16,23 +16,22 @@ * generic/tclUtf.c: * unix/tclUnixFile.c: -2011-04-27 Don Porter <dgp@users.sourceforge.net> + * generic/tclStringObj.c: Improved reaction to out of memory. - * generic/tclListObj.c: FreeListInternalRep() cleanup. +2011-04-27 Don Porter <dgp@users.sourceforge.net> - * generic/tclBinary.c: Backport fix for [Bug 2857044]. - * generic/tclDictObj.c: All freeIntRepProcs set typePtr to NULL. - * generic/tclEncoding.c: + * generic/tclCmdMZ.c: TclFreeIntRep() correction & cleanup. + * generic/tclExecute.c: * generic/tclIndexObj.c: + * generic/tclInt.h: * generic/tclListObj.c: * generic/tclNamesp.c: - * generic/tclObj.c: - * generic/tclPathObj.c: - * generic/tclProc.c: - * generic/tclRegexp.c: + * generic/tclResult.c: * generic/tclStringObj.c: * generic/tclVar.c: + * generic/tclListObj.c: FreeListInternalRep() cleanup. + 2011-04-21 Don Porter <dgp@users.sourceforge.net> * generic/tclInt.h: Use macro to set List intreps. @@ -41,6 +40,7 @@ * generic/tclCmdIL.c: Limits on list length were too strict. * generic/tclInt.h: Revised panics to errors where possible. * generic/tclListObj.c: + * tests/lrepeat.test: * generic/tclCompile.c: Make sure SetFooFromAny routines react * generic/tclIO.c: reasonably when passed a NULL interp. @@ -59,14 +59,6 @@ * win/configure.in: for Tcl_StatBuf - the one used by MSVC6 - * win/configure: in all situations. -2011-04-20 Andreas Kupries <andreask@activestate.com> - - * 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. - 2011-04-19 Don Porter <dgp@users.sourceforge.net> * generic/tclConfig.c: Reduce internals access in the implementation @@ -82,12 +74,16 @@ * generic/tclBasic.c: a Tcl list value is canonical. * generic/tclUtil.c: +2011-04-18 Donal K. Fellows <dkf@users.sf.net> + + * doc/dict.n: [Bug 3288696]: Command summary was confusingly wrong + when it came to [dict filter] with a 'value' filter. + 2011-04-16 Donal K. Fellows <dkf@users.sf.net> - * 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/tclFCmd.c (TclFileAttrsCmd): Add comments to make this code + easier to understand. Added a panic to handle the case where the VFS + layer does something odd. 2011-04-13 Don Porter <dgp@users.sourceforge.net> @@ -105,9271 +101,5879 @@ * generic/tclVar.c: [Bug 2662380]: Fix crash caused by appending to a variable with a write trace that unsets it. +2011-04-13 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclUtil.c (Tcl_ConcatObj): [Bug 3285375]: Make the crash + less mysterious through the judicious use of a panic. Not yet properly + fixed, but at least now clearer what the failure mode is. + 2011-04-12 Don Porter <dgp@users.sourceforge.net> - * 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. + * tests/string.test: Test for [Bug 3285472]. Not buggy in trunk. 2011-04-12 Venkat Iyer <venkat@comit.com> * library/tzdata/Atlantic/Stanley: Update to Olson tzdata2011f -2011-04-06 Miguel Sofer <msofer@users.sf.net> +2011-04-12 Miguel Sofer <msofer@users.sf.net> - * generic/tclExecute.c (TclCompEvalObj): Earlier return if Tip280 - gymnastics not needed. + * generic/tclBasic.c: Fix for [Bug 2440625], kbk's patch -2011-04-05 Venkat Iyer <venkat@comit.com> +2011-04-11 Miguel Sofer <msofer@users.sf.net> - * 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) - -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-04-02 Kevin B. Kenny <kennykb@acm.org> + * generic/tclBasic.c: + * tests/coroutine.test: [Bug 3282869]: Ensure that 'coroutine eval' + runs the initial command in the proper context. - * generic/tclStrToD.c (QuickConversion): Replaced another couple of - 'double' declarations with 'volatile double' to work around - misrounding issues in mingw-gcc 3.4.5. +2011-04-11 Jan Nijtmans <nijtmans@users.sf.net> -2011-03-24 Donal K. Fellows <dkf@users.sf.net> + * generic/tcl.h: Fix for [Bug 3281728]: Tcl sources from 2011-04-06 + * unix/tcl.m4: do not build on GCC9 (RH9) + * unix/configure: - * 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-04-08 Jan Nijtmans <nijtmans@users.sf.net> -2011-03-21 Jan Nijtmans <nijtmans@users.sf.net> + * win/tclWinPort.h: Fix for [Bug 3280043]: win2k: unresolved DLL + * win/configure.in: imports. + * win/configure - * unix/tclLoadDl.c: [Bug #3216070]: Loading extension libraries - * unix/tclLoadDyld.c: from embedded Tcl applications. +2011-04-06 Miguel Sofer <msofer@users.sf.net> -2011-03-16 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclExecute.c (TclCompileObj): Earlier return if Tip280 + gymnastics not needed. - * generic/tclCkalloc.c: [Bug #3197864]: pointer truncation on Win64 - TCL_MEM_DEBUG builds + * generic/tclExecute.c: Fix for [Bug 3274728]: making *catchTop an + unsigned long. -2011-03-16 Don Porter <dgp@users.sourceforge.net> +2011-04-06 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclBasic.c: Some rewrites to eliminate calls to - * generic/tclParse.c: isspace() and their /* INTL */ risk. - * generic/tclProc.c: + * unix/tclAppInit.c: Make symbols "main" and "Tcl_AppInit" + MODULE_SCOPE: there is absolutely no reason for exporting them. + * unix/tcl.m4: Don't use -fvisibility=hidden with static + * unix/configure libraries (--disable-shared) -2011-03-16 Jan Nijtmans <nijtmans@users.sf.net> +2011-04-06 Donal K. Fellows <dkf@users.sf.net> - * 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. + * generic/tclFCmd.c, macosx/tclMacOSXFCmd.c, unix/tclUnixChan.c, + * unix/tclUnixFCmd.c, win/tclWinChan.c, win/tclWinDde.c, + * win/tclWinFCmd.c, win/tclWinLoad.c, win/tclWinPipe.c, + * win/tclWinReg.c, win/tclWinSerial.c, win/tclWinSock.c: More + generation of error codes (most platform-specific parts not already + using Tcl_PosixError). -2011-03-14 Kevin B. Kenny <kennykb@acm.org> +2011-04-05 Venkat Iyer <venkat@comit.com> - * 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/Africa/Casablanca: Update to Olson's tzdata2011e * library/tzdata/America/Santiago: - * library/tzdata/Europe/Istanbul: - * library/tzdata/Pacific/Apia: * library/tzdata/Pacific/Easter: - * library/tzdata/Pacific/Honolulu: tzdata2011d - - - * unix/configure.in [Bug 3205320]: stack space detection defeated by inlining - * unix/configure: (autoconf-2.59) - -2011-03-09 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] - - * doc/tclvars.n: Formatting fix. Thanks to Pat Thotys. - -2011-03-08 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclBasic.c: Fix gcc warnings: variable set but not used - -2011-03-08 Don Porter <dgp@users.sourceforge.net> - - * generic/tclInt.h: Remove TclMarkList() routine, an experimental - * generic/tclUtil.c: dead-end from the 8.5 alpha days. - - * generic/tclResult.c (ResetObjResult): Correct failure to clear - invalid intrep. Thanks to Colin McDonald. [Bug 3202905] - -2011-03-06 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/tclUtil.c (TclFindElement): Guard escape sequence scans - to not overrun the string end. [Bug 3192636] + * library/tzdata/America/Metlakatla: (new) + * library/tzdata/America/North_Dakota/Beulah: (new) + * library/tzdata/America/Sitka: (new) -2011-03-05 Don Porter <dgp@users.sourceforge.net> +2011-04-04 Donal K. Fellows <dkf@users.sf.net> - * generic/tclParse.c (TclParseBackslash): Correct trunction checks in - * tests/parse.test: \x and \u substitutions. [Bug 3200987] - -2011-01-26 Donal K. Fellows <dkf@users.sf.net> + * generic/tclOO.c, generic/tclOOBasic.c, generic/tclOODefineCmds.c + * generic/tclOOInfo.c, generic/tclOOMethod.c: More generation of + error codes (TclOO miscellany). - * doc/RegExp.3: [Bug 3165108]: Corrected documentation of description - of subexpression info in Tcl_RegExpInfo structure. + * generic/tclCmdAH.c, generic/tclCmdIL.c: More generation of error + codes (miscellaneous commands mostly already handled). -2011-01-25 Jan Nijtmans <nijtmans@users.sf.net> - - * 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. +2011-04-04 Don Porter <dgp@users.sourceforge.net> -2011-01-19 Alexandre Ferrieux <ferrieux@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/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). +2011-04-04 Donal K. Fellows <dkf@users.sf.net> -2011-01-19 Jan Nijtmans <nijtmans@users.sf.net> + * library/init.tcl (tcl::mathfunc::rmmadwiw): Disable by default to + make test suite work. - * 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. + * generic/tclBasic.c, generic/tclStringObj.c, generic/tclTimer.c, + * generic/tclTrace.c, generic/tclUtil.c: More generation of error + codes ([format], [after], [trace], RE optimizer). -2011-01-18 Jan Nijtmans <nijtmans@users.sf.net> +2011-04-04 Jan Nijtmans <nijtmans@users.sf.net> - * 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/tclCmdAH.c: Better error-message in case of errors + * generic/tclCmdIL.c: related to setting a variable. This fixes + * generic/tclDictObj.c: a warning: "Why make your own error + * generic/tclScan.c: message? Why?" * generic/tclTest.c: + * test/error.test: + * test/info.test: + * test/scan.test: + * unix/tclUnixThrd.h: Remove this unused header file. -2011-01-17 Jan Nijtmans <nijtmans@users.sf.net> +2011-04-03 Donal K. Fellows <dkf@users.sf.net> - * 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 + * generic/tclNamesp.c, generic/tclObj.c, generic/tclPathObj.c: + * generic/tclPipe.c, generic/tclPkg.c, generic/tclProc.c: + * generic/tclScan.c: More generation of error codes (namespace + creation, path normalization, pipeline creation, package handling, + procedures, [scan] formats) -2011-01-15 Kevin B. Kenny <kennykb@users.sf.net> +2011-04-02 Kevin B. Kenny <kennykb@acm.org> - * 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] + * generic/tclStrToD.c (QuickConversion): Replaced another couple + of 'double' declarations with 'volatile double' to work around + misrounding issues in mingw-gcc 3.4.5. -2011-01-13 Miguel Sofer <msofer@users.sf.net> +2011-04-02 Donal K. Fellows <dkf@users.sf.net> - * 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. + * generic/tclInterp.c, generic/tclListObj.c, generic/tclLoad.c: + More generation of errorCodes ([interp], [lset], [load], [unload]). -2011-01-03 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclEvent.c, generic/tclFileName.c: More generation of + errorCode information (default [bgerror] and [glob]). - * tools/genStubs.tcl: Fix "make genstubs", which was broken - since 2010-11-30, the TclDoubleDigits backport. +2011-04-01 Reinhard Max <max@suse.de> -2010-12-31 Jan Nijtmans <nijtmans@users.sf.net> + * library/init.tcl: TIP#131 implementation. - * 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) +2011-03-31 Donal K. Fellows <dkf@users.sf.net> -2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> + * generic/tclGetDate.y, generic/tclDate.c (TclClockOldscanObjCmd): + More generation of errorCode information. - * unix/Makefile.in: Remove unwanted/obsolete 'ddd' target. +2011-03-28 Donal K. Fellows <dkf@users.sf.net> -2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> + * generic/tclCmdMZ.c, generic/tclConfig.c, generic/tclUtil.c: More + generation of errorCode information, notably when lists are + mis-parsed. - * unix/Makefile.in: [Bug 2446711]: Remove 'allpatch' target. + * generic/tclCmdMZ.c (Tcl_RegexpObjCmd, Tcl_RegsubObjCmd): Use the + error messages generated by the variable management code rather than + creating our own. -2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> +2011-03-27 Miguel Sofer <msofer@users.sf.net> - * unix/Makefile.in: Use 'rpmbuild', not 'rpm' [Bug 2537626]. + * generic/tclBasic.c (TclNREvalObjEx): fix performance issue, + notably apparent in tclbench's "LIST lset foreach". Many thanks to + twylite for patiently researching the issue and explaining it to + me: a missing Tcl_ResetObjResult that causes unwanted sharing of + the current result Tcl_Obj. -2010-12-13 Jan Nijtmans <nijtmans@users.sf.net> +2011-03-26 Donal K. Fellows <dkf@users.sf.net> - * 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) + * generic/tclNamesp.c (Tcl_Export, Tcl_Import, DoImport): More + generation of errorCode information. -2010-12-12 Stuart Cassoff <stwo@users.sourceforge.net> + * generic/tclCompExpr.c, generic/tclCompile.c, generic/tclExecute.c: + * generic/tclListObj.c, generic/tclNamesp.c, generic/tclObj.c: + * generic/tclStringObj.c, generic/tclUtil.c: Reduce the number of + casts used to manage Tcl_Obj internal representations. - * unix/tcl.m4: Better building on OpenBSD. - * unix/configure: (autoconf-2.59) - -2010-12-10 Alexandre Ferrieux <ferrieux@users.sourceforge.net> +2011-03-24 Don Porter <dgp@users.sourceforge.net> - * generic/tclIO.c: [backport] Make sure [fcopy -size ... -command ...] always - * tests/io.test: calls the callback asynchronously, even for size zero. + * generic/tcl.h (ckfree,etc.): Restored C++ usability to the memory + allocation and free macros. -2010-12-03 Jeff Hobbs <jeffh@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. +2011-03-24 Donal K. Fellows <dkf@users.sf.net> -2010-12-01 Kevin B. Kenny <kennykb@acm.org> + * 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. - * 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] +2011-03-23 Miguel Sofer <msofer@users.sf.net> -2010-11-30 Andreas Kupries <andreask@activestate.com> + * generic/tclObj.c: Exploit HAVE_FAST_TSD for the deletion context in + TclFreeObj() - * 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. +2011-03-22 Miguel Sofer <msofer@users.sf.net> - * generic/tclIntDecls.h: - * generic/tclStubInit.c: - * generic/tclTomMathDecls.h: Regenerated. + * generic/tclThreadAlloc.c: Simpler initialization of Cache under + HAVE_FAST_TSD, from mig-alloc-reform. -2010-11-30 Jeff Hobbs <jeffh@ActiveState.com> +2011-03-21 Jan Nijtmans <nijtmans@users.sf.net> - * 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). + * unix/tclLoadDl.c: [Bug #3216070]: Loading extension libraries + * unix/tclLoadDyld.c: from embedded Tcl applications. -2010-11-23 Andreas Kupries <andreask@activestate.com> +2011-03-21 Miguel Sofer <msofer@users.sf.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/tclCkAlloc.c: + * generic/tclInt.h: Remove one level of allocator indirection in + non-memdebug builds, imported from mig-alloc-reform. -2010-11-19 Jan Nijtmans <nijtmans@users.sf.net> +2011-03-20 Miguel Sofer <msofer@users.sf.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) + * generic/tclThreadAlloc.c: Imported HAVE_FAST_TSD support from + mig-alloc-reform. The feature has to be enabled by hand: no autoconf + support has been added. It is not clear how universal a build using + this will be: it also requires some loader support. -2010-11-18 Donal K. Fellows <dkf@users.sf.net> +2011-03-17 Donal K. Fellows <dkf@users.sf.net> - * doc/file.n: [Bug 3111298]: Typofix. + * generic/tclCompExpr.c (ParseExpr): Generate errorCode information on + failure to parse expressions. -2010-11-16 Jan Nijtmans <nijtmans@users.sf.net> +2011-03-17 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclPlatDecls.h: [Bug 3110161]: Extensions using TCHAR don't - compile on VS2005 SP1 + * generic/tclMain.c: [Patch 3124683]: Reorganize the platform-specific + stuff in (tcl|tk)Main.c. -2010-11-15 Andreas Kupries <andreask@activestate.com> +2011-03-16 Jan Nijtmans <nijtmans@users.sf.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: + * generic/tclCkalloc.c: [Bug 3197864]: Pointer truncation on Win64 + TCL_MEM_DEBUG builds. -2010-11-03 Kevin B. Kenny <kennykb@acm.org> +2011-03-16 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/tclBasic.c: Some rewrites to eliminate calls to + * generic/tclParse.c: isspace() and their /* INTL */ risk. + * generic/tclProc.c: -2010-11-01 Stuart Cassoff <stwo@users.sourceforge.net> +2011-03-16 Jan Nijtmans <nijtmans@users.sf.net> - * library/safe.tcl: Improved handling of non-standard module - * tests/safe.test: path lists, empty path lists in particular. + * 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. -2010-11-01 Kevin B. Kenny <kennykb@acm.org> +2011-03-14 Kevin B. Kenny <kennykb@acm.org> - * library/tzdata/Asia/Hong_Kong: + * 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/Fiji: Olson's tzdata2010o. - -2010-10-23 Jan Nijtmans <nijtmans@users.sf.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 - -2010-10-09 Miguel Sofer <msofer@users.sf.net> - - * generic/tclExecute.c: fix overallocation of exec stack in TEBC - (mixing numwords and numbytes) - -2010-10-01 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: - -2010-09-24 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. - -2010-09-23 Don Porter <dgp@users.sourceforge.net> - - * 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. - -2010-09-19 Donal K. Fellows <dkf@users.sf.net> - - * doc/file.n (file readlink): [Bug 3070580]: Typofix. - -2010-09-10 Donal K. Fellows <dkf@users.sf.net> - - * 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. - -2010-09-08 Andreas Kupries <andreask@activestate.com> - - *** 8.5.9 TAGGED FOR RELEASE *** - - * 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. - -2010-09-08 Don Porter <dgp@users.sourceforge.net> - - * changes: Update for 8.5.9 release. - - * 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. - -2010-09-06 Stuart Cassoff <stwo@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 - -2010-09-02 Andreas Kupries <andreask@activestate.com> - - * doc/glob.n: Fixed documentation ambiguity regarding the handling - of -join. - - * 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. - -2010-09-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> - - * 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, - -2010-09-01 Don Porter <dgp@users.sourceforge.net> - - * changes: Update for 8.5.9 release. - -2010-09-01 Andreas Kupries <andreask@activestate.com> - - * 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*** - -2010-09-01 Donal K. Fellows <dkf@users.sf.net> - - * tools/tcltk-man2html.tcl: Improve handling of cross-links for - options between Ttk manual pages. - - * doc/Tcl.n: Avoid nroff hazards when generating documentation. - -2010-08-31 Andreas Kupries <andreask@activestate.com> - - * win/tcl.m4: Applied patch by Jeff fixing issues with the - manifest handling on Win64. - * win/configure: Regenerated. - -2010-08-29 Donal K. Fellows <dkf@users.sf.net> - - * doc/dict.n: [Bug 3046999]: Corrected cross reference to array - manpage to refer to (correct) existing subcommand. - -2010-08-26 Jeff Hobbs <jeffh@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. - - * 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+. - -2010-08-24 Don Porter <dgp@users.sourceforge.net> - - * changes: Update for 8.5.9 release. + * library/tzdata/Pacific/Easter: + * library/tzdata/Pacific/Honolulu: tzdata2011d -2010-08-23 Kevin B. Kenny <kennykb@acm.org> + * generic/tclAssembly.c (BBEmitInstInt1): Changed parameter data types + in an effort to silence a MSVC warning reported by Ashok P. Nadkarni. + Unable to test, since both forms work on my machine in VC2005, 2008, + 2010, in both release and debug builds. + * tests/tclTest.c (TestdstringCmd): Restored MSVC buildability broken + by [5574bdd262], which changed the effective return type of 'ckalloc' + from 'char*' to 'void*'. - * library/tzdata/Africa/Cairo: - * library/tzdata/Asia/Gaza: Olson's tzdata2010l. +2011-03-13 Miguel Sofer <msofer@users.sf.net> -2010-08-19 Donal K. Fellows <dkf@users.sf.net> + * generic/tclExecute.c: remove TEBCreturn() - * 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. +2011-03-12 Donal K. Fellows <dkf@users.sf.net> -2010-08-15 Donal K. Fellows <dkf@users.sf.net> + * generic/tcl.h (ckalloc,ckfree,ckrealloc): Moved casts into these + macro so that they work with VOID* (which is a void* on all platforms + which Tcl actually builds on) and unsigned int for the length + parameters, removing the need for MANY casts across the rest of Tcl. + Note that this is a strict source-level-only change, so size_t cannot + be used (would break binary compatibility on 64-bit platforms). - * 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. - -2010-08-12 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): [Bug 2826551, Patch 2948425]: - Backport of updates to make handling of RE line anchors correct. +2011-03-12 Jan Nijtmans <nijtmans@users.sf.net> -2010-08-11 Jeff Hobbs <jeffh@ActiveState.com> + * win/tclWinFile.c: [Bug 3185609]: File normalization corner case + of ... broken with -DUNICODE - * 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. +2011-03-11 Donal K. Fellows <dkf@users.sf.net> -2010-08-10 Jeff Hobbs <jeffh@ActiveState.com> + * tests/unixInit.test: Make better use of tcltest2. - * generic/tclUtil.c (TclByteArrayMatch): Patterns may not be - null-terminated, so account for that. +2011-03-10 Donal K. Fellows <dkf@users.sf.net> -2010-08-05 Don Porter <dgp@users.sourceforge.net> - - * changes: Update for 8.5.9 release. - -2010-08-04 Jeff Hobbs <jeffh@ActiveState.com> - - * unix/tclUnixFCmd.c: Adjust license header as per - ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change - - * license.terms: Fix DFARs note for number-adjusted rights clause - - * 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. + * generic/tclBasic.c, generic/tclCompCmds.c, generic/tclEnsemble.c: + * generic/tclInt.h, generic/tclNamesp.c, library/auto.tcl: + * tests/interp.test, tests/namespace.test, tests/nre.test: + Converted the [namespace] command into an ensemble. This has the + consequence of making it vital for Tcl code that wishes to work with + namespaces to _not_ delete the ::tcl namespace. ***POTENTIAL INCOMPATIBILITY*** - * win/Makefile.in (%.${OBJEXT}): better implicit rules support - -2010-08-04 Don Porter <dgp@users.sourceforge.net> - - * generic/tcl.h: Bump to 8.5.9 for release. - * library/init.tcl: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/configure.in: - * README: - - * unix/configure: autoconf-2.59 - * win/configure: - - * changes: Update for 8.5.9 release. + * library/tcltest/tcltest.tcl (loadIntoSlaveInterpreter): Added this + command to handle connecting tcltest to a slave interpreter. This adds + in the hook (inside the tcltest namespace) that allows the tests run + in the child interpreter to be reported as part of the main sequence + of test results. Bumped version of tcltest to 2.3.3. + * tests/init.test, tests/package.test: Adapted these test files to use + the new feature. -2010-08-04 Andreas Kupries <andreask@activestate.com> + * generic/tclAlloc.c, generic/tclCmdMZ.c, generic/tclCompExpr.c: + * generic/tclCompile.c, generic/tclEnv.c, generic/tclEvent.c: + * generic/tclIO.c, generic/tclIOCmd.c, generic/tclIORChan.c: + * generic/tclIORTrans.c, generic/tclLiteral.c, generic/tclNotify.c: + * generic/tclParse.c, generic/tclStringObj.c, generic/tclUtil.c: + * generic/tclZlib.c, unix/tclUnixFCmd.c, unix/tclUnixNotfy.c: + * unix/tclUnixPort.h, unix/tclXtNotify.c: Formatting fixes, mainly to + comments, so code better fits the style in the Engineering Manual. - * generic/tclIORChan.c: [Bug 3034840]: Fixed reference counting - * tests/ioCmd.test: in InvokeTclMethod and callers. +2011-03-09 Donal K. Fellows <dkf@users.sf.net> -2010-08-03 Andreas Kupries <andreask@activestate.com> + * tests/incr.test: Update more of the test suite to use Tcltest 2. - * tests/var.test (var-19.1): [Bug 3037525]: Added test demonstrating - the local hashtable deletion crash and fix. - - * 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. - -2010-08-03 Don Porter <dgp@users.sourceforge.net> - - * changes: Update for 8.5.9 release. - -2010-08-02 Kevin B. Kenny <kennykb@users.sf.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. - -2010-07-28 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c: [Bug 3037525]: lose fickle optimisation in - TclDeleteVars (used for runtime-created locals) that caused crashes. +2011-03-09 Don Porter <dgp@users.sourceforge.net> -2010-07-25 Jan Nijtmans <nijtmans@users.sf.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/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. + * doc/tclvars.n: Formatting fix. Thanks to Pat Thotys. -2010-07-17 Jan Nijtmans <nijtmans@users.sf.net> +2011-03-09 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 + * tests/dstring.test, tests/init.test, tests/link.test: Update more of + the test suite to use Tcltest 2. -2010-07-02 Donal K. Fellows <dkf@users.sf.net> +2011-03-08 Jan Nijtmans <nijtmans@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/tclBasic.c: Fix gcc warnings: variable set but not used + * generic/tclProc.c: + * generic/tclIORChan.c: + * generic/tclIORTrans.c: + * generic/tclAssembly.c: Fix gcc warning: comparison between signed + and unsigned integer expressions -2010-07-02 Jan Nijtmans <nijtmans@users.sf.net> +2011-03-08 Don Porter <dgp@users.sourceforge.net> - * generic/tclIntDecls.h: [Bug 803489]: Tcl_FindNamespace problem in - the Stubs table. + * generic/tclInt.h: Remove TclMarkList() routine, an experimental + * generic/tclUtil.c: dead-end from the 8.5 alpha days. -2010-07-01 Donal K. Fellows <dkf@users.sf.net> + * generic/tclResult.c (ResetObjResult): Correct failure to clear + invalid intrep. Thanks to Colin McDonald. [Bug 3202905] - * doc/mathop.n: [Bug 3023165]: Fix typo that was preventing proper - rendering of the exclusive-or operator. +2011-03-08 Donal K. Fellows <dkf@users.sf.net> -2010-06-28 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclAssembly.c, tests/assemble.test: Migrate to use a style + more consistent with the rest of Tcl. - * generic/tclPosixStr.c: [Bug 3019634]: errno.h and tclWinPort.h have - conflicting definitions. +2011-03-06 Don Porter <dgp@users.sourceforge.net> -2010-06-22 Donal K. Fellows <dkf@users.sf.net> + * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() calls + * generic/tclCompile.c: with TclParseBackslash() where possible. + * generic/tclCompCmdsSZ.c: + * generic/tclParse.c: + * generic/tclUtil.c: - * generic/tclCmdIL.c (Tcl_LsetObjCmd): [Bug 3019351]: Corrected wrong - args message. + * generic/tclUtil.c (TclFindElement): Guard escape sequence scans + to not overrun the string end. [Bug 3192636] -2010-06-18 Donal K. Fellows <dkf@users.sf.net> +2011-03-05 Don Porter <dgp@users.sourceforge.net> - * library/init.tcl (auto_execok): [Bug 3017997]: Add .cmd to the - default list of extensions that we can execute interactively. + * generic/tclParse.c (TclParseBackslash): Correct trunction checks in + * tests/parse.test: \x and \u substitutions. [Bug 3200987] -2010-06-16 Jan Nijtmans <nijtmans@users.sf.net> +2011-03-05 Miguel Sofer <msofer@users.sf.net> - * tools/loadICU.tcl: [Bug 3016135]: Traceback using clock format - * library/msgs/he.msg: with locale of he_IL + * generic/tclExecute.c (TclStackFree): insure that the execStack + satisfies "at most one free stack after the current one" when + consecutive reallocs caused the creation of intervening stacks. -2010-06-09 Andreas Kupries <andreask@activestate.com> +2011-03-05 Kevin B. Kenny <kennykb@acm.org> - * library/platform/platform.tcl: Added OSX Intel 64bit - * library/platform/pkgIndex.tcl: Package updated to version 1.0.9. + * generic/tclAssembly.c (new file): + * generic/tclBasic.c (Tcl_CreateInterp): + * generic/tclInt.h: + * tests/assemble.test (new file): * unix/Makefile.in: * win/Makefile.in: + * win/makefile.vc: Merged dogeen-assembler-branch into HEAD. + Since all functional changes are in the tcl::unsupported namespace, + there's no reason to sequester this code on a separate branch. -2010-05-26 Donal K. Fellows <dkf@users.sf.net> +2011-03-05 Miguel Sofer <msofer@users.sf.net> - * doc/socket.n: [Bug 3007442]: Server sockets never took a host - argument, so the list of options must precede the port argument. + * generic/tclExecute.c: cleaner mem management for TEBCdata -2010-05-25 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclExecute.c: + * tests/nre.test: Renamed BottomData to TEBCdata, so that the name + refers to what it is rather than to its storage location. - * unix/tclUnixPort.h: [Bug 2991415]: tclport.h #included before - * win/tclWinPort.h: limits.h + * generic/tclBasic.c: Renamed struct TEOV_callback to + * generic/tclCompExpr.c: the more descriptive NRE_callback. + * generic/tclCompile.c: + * generic/tclExecute.c: + * generic/tclInt.decls: * generic/tclInt.h: + * generic/tclIntDecls.h: + * generic/tclTest.c: -2010-05-21 Jan Nijtmans <nijtmans@users.sf.net> - - * 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 - -2010-05-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - - * generic/tclDictObj.c: Backport of fix for [Bug 3004007], EIAS - * tests/dict.test: violation in list-dict conversions. - -2010-05-07 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. - * unix/Makefile.in: - * win/Makefile.in: - -2010-04-30 Don Porter <dgp@users.sourceforge.net> - - * generic/tclBinary.c (UpdateStringOfByteArray): [Bug 2994924]: Add - panic when the generated string representation would grow beyond Tcl's - size limits. - -2010-04-29 Andreas Kupries <andreask@activestate.com> - - * 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: - -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. - -2010-04-19 Jan Nijtmans <nijtmans@users.sf.net> - - * win/tclWinPort.h: [Patch 2986105]: Conditionally defining - * win/tclWinFile.c: strcasecmp/strncasecmp - -2010-04-18 Donal K. Fellows <dkf@users.sf.net> - - * doc/unset.n: [Bug 2988940]: Fix typo. - -2010-04-14 Andreas Kupries <andreask@activestate.com> - - * 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. - -2010-04-03 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - - * generic/tclStringObj.c: (SetStringFromAny): avoid trampling - over the tclEmptyStringRep as it is thread-shared. - - * 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. - - Thanks to Gustaf Neumann for the (hard) work. - -2010-03-31 Donal K. Fellows <dkf@users.sf.net> - - * doc/package.n: [Bug 2980210]: Document the arguments taken by - the [package present] command correctly. - -2010-03-30 Andreas Kupries <andreask@activestate.com> - - * 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. - -2010-03-30 Don Porter <dgp@users.sourceforge.net> - - * 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. - -2010-03-29 Don Porter <dgp@users.sourceforge.net> - - * generic/tclStringObj.c: Fix array overrun in test format-1.12 - caught by valgrind testing. - -2010-03-25 Donal K. Fellows <dkf@users.sf.net> - - * unix/tclUnixFCmd.c (TclUnixCopyFile): [Bug 2976504]: Corrected - number of arguments to fstatfs() call. - -2010-03-24 Don Porter <dgp@users.sourceforge.net> - - * generic/tclResult.c: [Bug 2383005]: Revise [return -errorcode] so - * tests/result.test: that it rejects illegal non-list values. - -2010-03-20 Donal K. Fellows <dkf@users.sf.net> +2011-03-04 Donal K. Fellows <dkf@users.sf.net> - * generic/tclIO.c (CopyData): Allow the total number of bytes copied - by [fcopy] to exceed 2GB. Can happen when no -size parameter given. + * generic/tclOOMethod.c (ProcedureMethodCompiledVarConnect) + (ProcedureMethodCompiledVarDelete): [Bug 3185009]: Keep references to + resolved object variables so that an unset doesn't leave any dangling + pointers for code to trip over. -2010-03-18 Don Porter <dgp@users.sourceforge.net> +2011-03-01 Miguel Sofer <msofer@users.sf.net> - * 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. + * generic/tclBasic.c (TclNREvalObjv): missing a variable + declaration in commented out non-optimised code, left for ref in + checkin [b97b771b6d] -2010-03-12 Jan Nijtmans <nijtmans@users.sf.net> +2011-03-03 Don Porter <dgp@users.sourceforge.net> - * win/makefile.vc: Fix [Bug 2967340]: Static build failure - * win/.cvsignore + * generic/tclResult.c (Tcl_AppendResultVA): Use the directive + USE_INTERP_RESULT [TIP 330] to force compat with interp->result + access, instead of the improvised hack USE_DIRECT_INTERP_RESULT_ACCESS + from releases past. -2010-03-09 Andreas Kupries <andreask@activestate.com> +2011-03-01 Miguel Sofer <msofer@users.sf.net> - * 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. + * generic/tclCompCmdsSZ.c (TclCompileThrowCmd, TclCompileUnsetCmd): + fix leaks -2010-03-09 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: This is [Patch 3168398], + * generic/tclCompCmdsSZ.c: Joe Mistachkin's optimisation + * generic/tclExecute.c: of Tip #285 + * generic/tclInt.decls: + * generic/tclInt.h: + * generic/tclIntDecls.h: + * generic/tclInterp.c: + * generic/tclOODecls.h: + * generic/tclStubInit.c: + * win/makefile.vc: - * 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. + * generic/tclExecute.c (ExprObjCallback): fix object leak -2010-03-01 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * generic/tclExecute.c (TEBCresume): store local var array and + constants in automatic vars to reduce indirection, slight perf + increase - * 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. + * generic/tclOOCall.c (TclOODeleteContext): added missing '*' so + that trunk compiles. -2010-02-27 Donal K. Fellows <dkf@users.sf.net> + * generic/tclBasic.c (TclNRRunCallbacks): don't do the trampoline + dance for commands that do not have an nreProc, [Patch 3168229] - * 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). +2011-03-01 Donal K. Fellows <dkf@users.sf.net> -2010-02-21 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclOO.c (Tcl_NewObjectInstance, TclNRNewObjectInstance) + (TclOOObjectCmdCore, FinalizeObjectCall): + * generic/tclOOBasic.c (TclOO_Object_Destroy, AfterNRDestructor): + * generic/tclOOCall.c (TclOODeleteContext, TclOOGetCallContext): + Reorganization of call context reference count management so that code + is (mostly) simpler. - * generic/tclBasic.c: Fix [Bug 2954959] expr abs(0.0) is -0.0 - * tests/expr.test +2011-01-26 Donal K. Fellows <dkf@users.sf.net> -2010-02-19 Stuart Cassoff <stwo@users.sourceforge.net> + * doc/RegExp.3: [Bug 3165108]: Corrected documentation of description + of subexpression info in Tcl_RegExpInfo structure. - * tcl.m4: Correct compiler/linker flags for threaded builds on OpenBSD - * configure: (regenerated). +2011-01-25 Jan Nijtmans <nijtmans@users.sf.net> -2010-02-19 Donal K. Fellows <dkf@users.sf.net> + * generic/tclPreserve.c: Don't miss 64-bit address bits in panic + message. + * win/tclWinChan.c: Fix various gcc-4.5.2 64-bit warning messages + * win/tclWinConsole.c e.g. by using full 64-bits for socket fd's + * win/tclWinDde.c + * win/tclWinPipe.c + * win/tclWinReg.c + * win/tclWinSerial.c + * win/tclWinSock.c + * win/tclWinThrd.c - * 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). +2011-01-19 Jan Nijtmans <nijtmans@users.sf.net> -2010-02-11 Donal K. Fellows <dkf@users.sf.net> + * tools/genStubs.tcl: [Enh #3159920]: Tcl_ObjPrintf() crashes with + * generic/tcl.decls bad format specifier. + * generic/tcl.h + * generic/tclDecls.h - * generic/tclIOCmd.c (Tcl_OpenObjCmd): [Bug 2949740]: Make sure that - we do not try to put a NULL pipeline channel into binary mode. +2011-01-18 Donal K. Fellows <dkf@users.sf.net>3159920 -2010-02-07 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclOOMethod.c (PushMethodCallFrame): [Bug 3001438]: Make + sure that the cmdPtr field of the procPtr is correct and relevant at + all times so that [info frame] can report sensible information about a + frame after a return to it from a recursive call, instead of probably + crashing (depending on what else has overwritten the Tcl stack!) - * 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!) +2011-01-18 Jan Nijtmans <nijtmans@users.sf.net> -2010-02-03 Donal K. Fellows <dkf@users.sf.net> + * generic/tclBasic.c: Various mismatches between Tcl_Panic + * generic/tclCompCmds.c: format string and its arguments, + * generic/tclCompCmdsSZ.c: discovered thanks to [Bug 3159920] + * generic/tclCompExpr.c + * generic/tclEnsemble.c + * generic/tclPreserve.c + * generic/tclTest.c - * generic/tclVar.c (Tcl_ArrayObjCmd): More corrections for the 'unset' - subcommand. +2011-01-17 Jan Nijtmans <nijtmans@users.sf.net> -2010-02-02 Andreas Kupries <andreask@activestate.com> + * 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 - * 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. +2011-01-15 Kevin B. Kenny <kennykb@acm.org> -2010-02-02 Donal K. Fellows <dkf@users.sf.net> + * doc/tclvars.n: + * generic/tclStrToD.c: + * generic/tclUtil.c (Tcl_PrintDouble): + * tests/util.test (util-16.*): [Bug 3157475]: 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. + +2011-01-12 Jan Nijtmans <nijtmans@users.sf.net> + + * win/tclWinFile.c: Use _vsnprintf in stead of vsnprintf, because + MSVC 6 doesn't have it. Reported by andreask. + * win/tcl.m4: handle --enable-64bit=ia64 for gcc + * win/configure.in: more accurate test for correct <intrin.h> + * win/configure: (autoconf-2.59) + * win/tclWin32Dll.c: VS 2005 64-bit does not have intrin.h, and + * generic/tclPanic.c: does not need it. - * 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. +2011-01-07 Kevin B. Kenny <kennykb@acm.org> -2010-02-01 Donal K. Fellows <dkf@users.sf.net> + * tests/util.test (util-15.*): Added test cases for floating point + conversion of the largest denormal and the smallest normal number, + to avoid any possibility of the failure suffered by PHP in the + last couple of days. (They didn't fail, so no actual functional + change.) - * 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-01-05 Donal K. Fellows <dkf@users.sf.net> -2010-02-01 Jan Nijtmans <nijtmans@users.sf.net> + * tests/package.test, tests/pkg.test: Coalesce these tests into one + file that is concerned with the package system. Convert to use + tcltest2 properly. + * tests/autoMkindex.test, tests/pkgMkIndex.test: Convert to use + tcltest2 properly. - * 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: +2011-01-01 Donal K. Fellows <dkf@users.sf.net> -2010-01-29 Jan Nijtmans <nijtmans@users.sf.net> + * tests/cmdAH.test, tests/cmdMZ.test, tests/compExpr.test, + * tests/compile.test, tests/concat.test, tests/eval.test, + * tests/fileName.test, tests/fileSystem.test, tests/interp.test, + * tests/lsearch.test, tests/namespace-old.test, tests/namespace.test, + * tests/oo.test, tests/proc.test, tests/security.test, + * tests/switch.test, tests/unixInit.test, tests/var.test, + * tests/winDde.test, tests/winPipe.test: Clean up of tests and + conversion to tcltest 2. Target has been to get init and cleanup code + out of the test body and into the -setup/-cleanup stanzas. - * 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: + * tests/execute.test (execute-11.1): [Bug 3142026]: Added test that + fails (with a crash) in an unfixed memdebug build on 64-bit systems. -2010-01-19 Donal K. Fellows <dkf@users.sf.net> +2010-12-31 Donal K. Fellows <dkf@users.sf.net> - * doc/dict.n: [Bug 2929546]: Clarify just what [dict with] and [dict - update] are doing with variables. + * generic/tclCmdIL.c (SortElement): Use unions properly in the + definition of this structure so that there is no need to use nasty + int/pointer type punning. Made it clearer what the purposes of the + various parts of the structure are. -2010-01-18 Andreas Kupries <andreask@activestate.com> +2010-12-31 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * unix/dltest/*.c: [Bug 3148192]: Fix broken [load] tests by ensuring + that the affected files are never compiled with -DSTATIC_BUILD. -2010-01-18 Donal K. Fellows <dkf@users.sf.net> +2010-12-30 Miguel Sofer <msofer@users.sf.net> - * 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. + * 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. -2010-01-06 Jan Nijtmans <nijtmans@users.sf.net> +2010-12-26 Donal K. Fellows <dkf@users.sf.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/tclCmdIL.c (Tcl_LsortObjCmd): Fix crash when multiple -index + options are used. Simplified memory handling logic. -2010-01-05 Don Porter <dgp@users.sourceforge.net> +2010-12-20 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * win/tclWin32Dll.c: [Patch 3059922]: fixes for mingw64 - gcc4.5.1 + tdm64-1: completed for all environments. -2010-01-03 Donal K. Fellows <dkf@users.sf.net> +2010-12-20 Jan Nijtmans <nijtmans@users.sf.net> - * unix/tcl.m4 (SC_CONFIG_CFLAGS): [Bug 1636685]: Use the configuration - for modern FreeBSD suggested by the FreeBSD porter. + * win/configure.in: Explicitely test for intrinsics support in + compiler, before assuming only MSVC has it. + * win/configure: (autoconf-2.59) + * generic/tclPanic.c: -2009-12-30 Donal K. Fellows <dkf@users.sf.net> +2010-12-19 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * win/tclWin32Dll.c: [Patch 3059922]: fixes for mingw64 - gcc4.5.1 + tdm64-1: Fixed for gcc, not yet for MSVC 64-bit. -2009-12-29 Donal K. Fellows <dkf@users.sf.net> +2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> - * generic/tclInterp.c (Tcl_MakeSafe): [Bug 2895741]: Make sure that - the min() and max() functions are supported in safe interpreters. + * unix/Makefile.in: Remove unwanted/obsolete 'ddd' target. -2009-12-28 Donal K. Fellows <dkf@users.sf.net> +2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> - * 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): + * unix/Makefile.in: Clean up '.PHONY:' targets: Arrange those + common to Tcl and Tk as in Tk's Makefile.in, + add any missing ones and remove duplicates. - * 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. +2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> -2009-12-27 Donal K. Fellows <dkf@users.sf.net> + * unix/Makefile.in: [Bug 2446711]: Remove 'allpatch' target. - * doc/namespace.n (SCOPED SCRIPTS): [Bug 2921538]: Updated example to - not be quite so ancient. +2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> -2009-12-23 Donal K. Fellows <dkf@users.sf.net> + * unix/Makefile.in: [Bug 2537626]: Use 'rpmbuild', not 'rpm'. - * library/safe.tcl (AliasSource, AliasExeName): [Bug 2913625]: Stop - information about paths from leaking through [info script] and [info - nameofexecutable]. +2010-12-16 Jan Nijtmans <nijtmans@users.sf.net> -2009-12-16 Donal K. Fellows <dkf@users.sf.net> + * generic/tclPanic.c: [Patch 3124554]: Move WishPanic from Tk to Tcl + * win/tclWinFile.c: Better communication with debugger, if present. - * library/safe.tcl (::safe::AliasGlob): Upgrade to correctly support a - larger fraction of [glob] functionality, while being stricter about - directory management. +2010-12-15 Kevin B. Kenny <kennykb@acm.org> - * doc/tm.n: [Bug 1911342]: Formatting rewrite to avoid bogus crosslink - to the list manpage when generating HTML. + [dogeen-assembler-branch] - * library/msgcat/msgcat.tcl (Init): [Bug 2913616]: Do not use platform - tests that are not needed and which don't work in safe interpreters. + * tclAssembly.c: + * assemble.test: Reworked beginCatch/endCatch handling to + enforce the more severe (but more correct) restrictions on catch + handling that appeared in the discussion of [Bug 3098302] and in + tcl-core traffic beginning about 2010-10-29. -2009-12-12 Donal K. Fellows <dkf@users.sf.net> +2010-12-15 Jan Nijtmans <nijtmans@users.sf.net> - * 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! + * generic/tclPanic.c: Restore abort() as it was before. + * win/tclWinFile.c: [Patch 3124554]: Use ExitProcess() here, like + in wish. -2009-12-10 Andreas Kupries <andreask@activestate.com> +2010-12-14 Jan Nijtmans <nijtmans@users.sf.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. + * generic/tcl.h: [Bug 3137454]: Tcl CVS HEAD does not build + on GCC 3. -2009-12-09 Andreas Kupries <andreask@activestate.com> +2010-12-14 Reinhard Max <max@suse.de> - * 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). + * win/tclWinSock.c (CreateSocket): Swap the loops over + * unix/tclUnixSock.c (CreateClientSocket): local and remote addresses, + so that the system's address preference for the remote side decides + which family gets tried first. Cleanup and clarify some of the + comments. -2009-12-07 Don Porter <dgp@users.sourceforge.net> +2010-12-13 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * generic/tcl.h: [Bug 3135271]: Link error due to hidden + * unix/tcl.m4: symbols (CentOS 4.2) + * unix/configure: (autoconf-2.59) + * win/tclWinFile.c: Undocumented feature, only meant to be + used by Tk_Main. See [Patch 3124554]: Move WishPanic from Tk to Tcl -2009-12-02 Jan Nijtmans <nijtmans@users.sf.net> +2010-12-12 Stuart Cassoff <stwo@users.sourceforge.net> - * tools/genStubs.tcl: Add support for win32 CALLBACK functions (needed - for Tk bugfix). + * unix/tcl.m4: Better building on OpenBSD. + * unix/configure: (autoconf-2.59) -2009-11-30 Donal K. Fellows <dkf@users.sf.net> +2010-12-10 Jan Nijtmans <nijtmans@users.sf.net> - * doc/Tcl.n: [Bug 2901433]: Improved description of expansion to - mention that it is using list syntax. + * generic/tcl.h: [Bug 3129448]: Possible over-allocation on + * generic/tclCkalloc.c: 64-bit platforms, part 2 + * generic/tclCompile.c: + * generic/tclHash.c: + * generic/tclInt.h: + * generic/tclIO.h: + * generic/tclProc.c: -2009-11-27 Donal K. Fellows <dkf@users.sf.net> +2010-12-10 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * 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. + * generic/tclIO.c: Make sure [fcopy -size ... -command ...] always + * tests/io.test: calls the callback asynchronously, even for size + zero. -2009-11-25 Stuart Cassoff <stwo@users.sf.net> +2010-12-10 Jan Nijtmans <nijtmans@users.sf.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. + * generic/tclBinary.c: Fix gcc -Wextra warning: missing initializer + * generic/tclCmdAH.c: + * generic/tclCmdIL.c: + * generic/tclCmdMZ.c: + * generic/tclDictObj.c: + * generic/tclIndexObj.c: + * generic/tclIOCmd.c: + * generic/tclVar.c: + * win/tcl.m4: Fix manifest-generation for 64-bit gcc + (mingw-w64) + * win/configure.in: Check for availability of intptr_t and + uintptr_t + * win/configure: (autoconf-2.59) + * generic/tclInt.decls: Change 1st param of TclSockMinimumBuffers + * generic/tclIntDecls.h: to ClientData, and TclWin(Get|Set)SockOpt + * generic/tclIntPlatDecls.h:to SOCKET, because on Win64 those are + * generic/tclIOSock.c: 64-bit, which does not fit. + * win/tclWinSock.c: + * unix/tclUnixSock.c: -2009-11-16 Alexandre Ferrieux <ferrieux@users.sourceforge.net> +2010-12-09 Donal K. Fellows <dkf@users.sf.net> - * 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> + * tests/fCmd.test: Improve sanity of constraints now that we don't + support anything before Windows 2000. - *** 8.5.8 TAGGED FOR RELEASE *** + * generic/tclCmdAH.c (TclInitFileCmd, TclMakeFileCommandSafe, ...): + Break up [file] into an ensemble. Note that the ensemble is safe in + itself, but the majority of its subcommands are not. + * generic/tclFCmd.c (FileCopyRename,TclFileDeleteCmd,TclFileAttrsCmd) + (TclFileMakeDirsCmd): Adjust these subcommand implementations to work + inside an ensemble. + (TclFileLinkCmd, TclFileReadLinkCmd, TclFileTemporaryCmd): Move these + subcommand implementations from tclCmdAH.c, where they didn't really + belong. + * generic/tclIOCmd.c (TclChannelNamesCmd): Move to more appropriate + source file. + * generic/tclEnsemble.c (TclMakeEnsemble): Start of code to make + partially-safe ensembles. Currently does not function as expected due + to various shortcomings in how safe interpreters are constructed. + * tests/cmdAH.test, tests/fCmd.test, tests/interp.test: Test updates + to take into account systematization of error messages. - * changes: Update for 8.5.8 release. + * tests/append.test, tests/appendComp.test: Clean up tests so that + they don't leave things in the global environment (detected when doing + -singleproc testing). - * generic/tclClock.c (TclClockInit): Do not create [clock] support - commands in safe interps. +2010-12-07 Donal K. Fellows <dkf@users.sf.net> - * tests/io.test: New test io-53.11 to test for [Bug 2895565]. + * tests/fCmd.test, tests/safe.test, tests/uplevel.test, + * tests/upvar.test, tests/var.test: Convert more tests to tcltest2 and + factor them to be easier to understand. -2009-11-12 Andreas Kupries <andreask@activestate.com> + * generic/tclStrToD.c: Tidy up code so that more #ifdef-fery is + quarantined at the front of the file and function headers follow the + modern Tcl style. - * 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. +2010-12-06 Jan Nijtmans <nijtmans@users.sf.net> -2009-11-11 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclBinary.c: [Bug 3129448]: Possible over-allocation on + * generic/tclCkalloc.c: 64-bit platforms. + * generic/tclTrace.c - * tests/fCmd.test: Fixed a number of issues for Vista and Win7 - * tests/registry.test: that are due to restricted permissions. - * tests/winFCmd.test: +2010-12-05 Jan Nijtmans <nijtmans@users.sf.net> -2009-11-11 Don Porter <dgp@users.sourceforge.net> + * unix/tcl.m4: [Patch 3116490]: Cross-compile support for unix + * unix/configure: (autoconf-2.59) - * library/http/http.tcl: [Bug 2891171]: Update the URL syntax - check to RFC 3986 compliance on the subject of non-encoded question - mark characters. - - * 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. +2010-12-03 Jeff Hobbs <jeffh@ActiveState.com> -2009-11-11 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * 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/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. +2010-12-03 Jan Nijtmans <nijtmans@users.sf.net> -2009-11-10 Don Porter <dgp@users.sourceforge.net> + * generic/tclUtil.c: Silence gcc warning when using -Wwrite-strings + * generic/tclStrToD.c: Silence gcc warning for non-IEEE platforms + * win/Makefile.in: [Patch 3116490]: Cross-compile Tcl mingw32 on unix + * win/tcl.m4: This makes it possible to cross-compile Tcl/Tk for + * win/configure.in: Windows (either 32-bit or 64-bit) out-of-the-box + * win/configure: on UNIX, using mingw-w64 build tools (If Itcl, + tdbc and Thread take over the latest tcl.m4, they can do that too). - * generic/tclBasic.c: Plug another leak in TCL_EVAL_DIRECT - evaluation. +2010-12-01 Kevin B. Kenny <kennykb@acm.org> - * generic/tclObj.c: Plug memory leak in TclContinuationsEnter(). - [Bug 2895323] + * generic/tclStrToD.c (SetPrecisionLimits, TclDoubleDigits): + [Bug 3124675]: 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. -2009-11-09 Stuart Cassoff <stwo@users.sf.net> +2010-12-01 Jan Nijtmans <nijtmans@users.sf.net> - * win/README: [bug 2459744]: Removed outdated Msys + Mingw info. + * generic/tclBasic.c: Fix gcc 64-bit warnings: cast from pointer to + * generic/tclHash.c: integer of different size. + * generic/tclTest.c: + * generic/tclThreadTest.c: + * generic/tclStrToD.c: Fix gcc(-4.5.2) warning: 'static' is not at + beginning of declaration. + * generic/tclPanic.c: Allow Tcl_Panic() to enter the debugger on win32 + * generic/tclCkalloc.c: Use Tcl_Panic() in stead of duplicating the + code. -2009-11-09 Don Porter <dgp@users.sourceforge.net> +2010-11-30 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclBasic.c (TclEvalObjEx): Plug memory leak in - TCL_EVAL_DIRECT evaluation. + * 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). - * tests/info.test: Resolve ambiguous resolution of variable "res". +2010-11-29 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2009-11-03 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: Patch by Miguel, providing a + [::tcl::unsupported::inject coroname command args], which prepends + ("injects") arbitrary code to a suspended coro's future resumption. + Neat for debugging complex coros without heavy instrumentation. - * generic/tcl.h: Bump to 8.5.8 for release. - * library/init.tcl: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/configure.in: - * README: +2010-11-29 Kevin B. Kenny <kennykb@acm.org> - * unix/configure: autoconf-2.59 - * win/configure: + * generic/tclInt.decls: + * generic/tclInt.h: + * 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. - * changes: Update for 8.5.8 release. + * generic/tclIntDecls.h: + * generic/tclStubInit.c: + * generic/tclTomMathDecls.h: Regenerated. -2009-11-03 Andreas Kupries <andreask@activestate.com> +2010-11-24 Donal K. Fellows <dkf@users.sf.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. + * tests/chanio.test, tests/iogt.test, tests/ioTrans.test: Convert more + tests to tcltest2 and factor them to be easier to understand. -2009-11-03 Kevin B. Kenny <kennykb@acm.org> - - * 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. +2010-11-20 Donal K. Fellows <dkf@users.sf.net> -2009-11-03 Pat Thoyts <patthoyts@users.sourceforge.net> + * tests/chanio.test: Converted many tests to tcltest2 by marking the + setup and cleanup parts as such. - * tests/tcltest.test: Backport permissions fix for Win7. +2010-11-19 Jan Nijtmans <nijtmans@users.sf.net> -2009-10-31 Donal K. Fellows <dkf@users.sf.net> + * win/tclWin32Dll.c: Fix gcc warnings: unused variable 'registration' + * win/tclWinChan.c: + * win/tclWinFCmd.c: - * generic/tclBasic.c (ExprRoundFunc): [Bug 2889593]: Correctly report - the expected number of arguments when generating an error for round(). +2010-11-18 Jan Nijtmans <nijtmans@users.sf.net> -2009-10-29 Don Porter <dgp@users.sourceforge.net> + * win/tclAppInit.c: [FRQ 491789]: "setargv() doesn't support a unicode + cmdline" now implemented for cygwin and mingw32 too. + * tests/main.test: No longer disable tests Tcl_Main-1.4 and 1.6 on + Windows, because those now work on all supported platforms. + * win/configure.in: Set NO_VIZ=1 when zlib is compiled in libtcl, + this resolves compiler warnings in 64-bit and static builds. + * win/configure (regenerated) - * 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. +2010-11-18 Donal K. Fellows <dkf@users.sf.net> - ***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. + * doc/file.n: [Bug 3111298]: Typofix. -2009-10-29 Kevin B. Kenny <kennykb@acm.org> + * tests/oo.test: [Bug 3111059]: Added testing that neatly trapped this + issue. - * 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. +2010-11-18 Miguel Sofer <msofer@users.sf.net> -2009-10-28 Don Porter <dgp@users.sourceforge.net> + * generic/tclNamesp.c: [Bug 3111059]: Fix leak due to bad looping + construct. - * generic/tclLiteral.c: Backport fix for [Bug 2888044]. +2010-11-17 Jan Nijtmans <nijtmans@users.sf.net> -2009-10-28 Kevin B. Kenny <kennykb@acm.org> + * win/tcl.m4: [FRQ 491789]: "setargv() doesn't support a unicode + cmdline" now implemented for mingw-w64 + * win/configure (re-generated) - * 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). +2010-11-16 Jan Nijtmans <nijtmans@users.sf.net> -2009-10-27 Don Porter <dgp@users.sourceforge.net> + * win/tclAppInit.c:Bring compilation under mingw-w64 a bit closer + * win/cat.c: to reality. See for what's missing: + * win/tcl.m4: <https://sourceforge.net/apps/trac/mingw-w64/wiki/Unicode%20apps> + * win/configure: (re-generated) + * win/tclWinPort.h:[Bug #3110161]: Extensions using TCHAR don't compile + on VS2005 SP1 - * generic/tclPathObj.c: [Bug 2884203]: Missing refcount on cached - normalized path caused crashes. +2010-11-15 Andreas Kupries <andreask@activestate.com> -2009-10-27 Kevin B. Kenny <kennykb@acm.org> + * doc/interp.n: [Bug 3081184]: TIP #378. + * 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: - * 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.) +2010-11-10 Andreas Kupries <andreask@activestate.com> -2009-10-24 Kevin B. Kenny <kennykb@acm.org> + * changes: Updates for 8.6b2 release. - * 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.) +2010-11-09 Donal K. Fellows <dkf@users.sf.net> -2009-10-23 Andreas Kupries <andreask@activestate.com> + * generic/tclOOMethod.c (ProcedureMethodVarResolver): [Bug 3105999]: + * tests/oo.test: Make sure that resolver structures that are + only temporarily needed get squelched. - * 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>. +2010-11-05 Jan Nijtmans <nijtmans@users.sf.net> -2009-10-21 Donal K. Fellows <dkf@users.sf.net> + * generic/tclMain.c: Thanks, Kevin, for the fix, but this how it was + supposed to be (TCL_ASCII_MAIN is only supposed to be defined on + WIN32). - * generic/tclPosixStr.c: [Bug 2882561]: Work around oddity on Haiku OS - where SIGSEGV and SIGBUS are the same value. +2010-11-05 Kevin B. Kenny <kennykb@acm.org> -2009-10-19 Don Porter <dgp@users.sourceforge.net> + * generic/tclMain.c: Added missing conditional on _WIN32 around code + that messes around with the definition of _UNICODE, to correct a badly + broken Unix build from Jan's last commit. - * 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. +2010-11-04 Jan Nijtmans <nijtmans@users.sf.net> -2009-10-18 Joe Mistachkin <joe@mistachkin.com> + * generic/tclDecls.h: [FRQ 491789]: "setargv() doesn't support a + * generic/tclMain.c: unicode cmdline" implemented for Tcl on MSVC++ + * doc/Tcl_Main.3: + * win/tclAppInit.c: + * win/makefile.vc: + * win/Makefile.in: + * win/tclWin32Dll.c: Eliminate minor MSVC warning TCHAR -> char + conversion - * 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. - - * 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. +2010-11-04 Reinhard Max <max@suse.de> -2009-10-17 Donal K. Fellows <dkf@users.sf.net> + * tests/socket.test: Run the socket tests three times with the address + family set to any, inet, and inet6 respectively. Use constraints to + skip the tests if a family is found to be unsupported or not + configured on the local machine. Adjust the tests to dynamically adapt + to the address family that is being tested. - * 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. + Rework some of the tests to speed them up by avoiding (supposedly) + unneeded [after]s. -2009-10-08 Donal K. Fellows <dkf@users.sf.net> +2010-11-04 Stuart Cassoff <stwo@users.sourceforge.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. + * unix/Makefile.in: [Patch 3101127]: Installer Improvements. + * unix/install-sh: -2009-10-07 Andreas Kupries <andreask@activestate.com> +2010-11-04 Donal K. Fellows <dkf@users.sf.net> - * 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>. + * tests/error.test (error-19.13): Another variation on testing for + issues in [try] compilation. - * 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. + * doc/Tcl.n (Variable substitution): [Bug 3099086]: Increase clarity + of explanation of what characters are actually permitted in variable + substitutions. Note that this does not constitute a change of + behavior; it is just an improvement of explanation. -2009-10-06 Don Porter <dgp@users.sourceforge.net> +2010-11-04 Don Porter <dgp@users.sourceforge.net> - * 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]. + * changes: Updates for 8.6b2 release. (Thanks Andreas Kupries) -2009-10-05 Don Porter <dgp@users.sourceforge.net> +2010-11-03 Jan Nijtmans <nijtmans@users.sf.net> - * changes: Update for 8.5.8 release. + * win/tclWinFcmd.c: [FRQ 2965056]: Windows build with -DUNICODE + * win/tclWinFile.c: (more clean-ups for pre-win2000 stuff) + * win/tclWinReg.c: -2009-10-04 Daniel Steffen <das@users.sourceforge.net> +2010-11-03 Donal K. Fellows <dkf@users.sf.net> - * macosx/tclMacOSXBundle.c: Workaround CF memory managment bug in - * unix/tclUnixInit.c: Mac OS X 10.4 & earlier. [Bug 2569449] + * generic/tclCmdMZ.c (TryPostBody): Ensure that errors when setting + * tests/error.test (error-19.1[12]): message/opt capture variables get + reflected properly to the caller. -2009-10-02 Kevin B. Kenny <kennykb@acm.org> +2010-11-03 Kevin B. Kenny <kennykb@acm.org> - * library/tzdata/Africa/Cairo: - * library/tzdata/Asia/Gaza: - * library/tzdata/Asia/Karachi: - * library/tzdata/Pacific/Apia: Olson's tzdata2009n. + * generic/tclCompCmds.c (TclCompileCatchCmd): [Bug 3098302]: + * tests/compile.test (compile-3.6): 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. -2009-09-29 Don Porter <dgp@users.sourceforge.net> +2010-11-01 Stuart Cassoff <stwo@users.sourceforge.net> - * 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]. + * library/safe.tcl: Improved handling of non-standard module path + * tests/safe.test: lists, empty path lists in particular. -2009-09-11 Don Porter <dgp@users.sourceforge.net> +2010-11-01 Kevin B. Kenny <kennykb@acm.org> - * 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: + * library/tzdata/Asia/Hong_Kong: + * library/tzdata/Pacific/Apia: + * library/tzdata/Pacific/Fiji: Olson's tzdata2010o. -2009-09-10 Donal K. Fellows <dkf@users.sf.net> +2010-10-29 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * library/http/http.tcl (http::Event): [Bug 2849860]: Handle charset - names in double quotes; some servers like generating them like that. + * generic/tclTimer.c: [Bug 2905784]: Stop small [after]s from + wasting CPU while keeping accuracy. -2009-09-01 Don Porter <dgp@users.sourceforge.net> +2010-10-28 Kevin B. Kenny <kennykb@acm.org> - * 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: + [dogeen-assembler-branch] + * generic/tclAssembly.c: + * tests/assembly.test (assemble-31.*): Added jump tables. -2009-08-27 Don Porter <dgp@users.sourceforge.net> +2010-10-28 Don Porter <dgp@users.sourceforge.net> - * generic/tclStringObj.c: [Bug 2845535]: A few more string - overflow cases in [format]. + * tests/http.test: [Bug 3097490]: Make http-4.15 pass in + isolation. -2009-08-25 Andreas Kupries <andreask@activestate.com> + * unix/tclUnixSock.c: [Bug 3093120]: Prevent calls of + freeaddrinfo(NULL) which can crash some + systems. Thanks Larry Virden. - * 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): +2010-10-26 Reinhard Max <max@suse.de> - 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. + * Changelog.2008: Split off from Changelog. + * generic/tclIOSock.c (TclCreateSocketAddress): The interp != NULL + check is needed for ::tcl::unsupported::socketAF as well. -2009-08-24 Daniel Steffen <das@users.sourceforge.net> +2010-10-26 Donal K. Fellows <dkf@users.sf.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/tclUnixSock.c (TcpGetOptionProc): Prevent crash if interp is + * win/tclWinSock.c (TcpGetOptionProc): NULL (a legal situation). -2009-08-21 Don Porter <dgp@users.sourceforge.net> +2010-10-26 Reinhard Max <max@suse.de> - * generic/tclFileName.c: Correct regression in [Bug 2837800] fix. - * tests/fileName.test: + * unix/tclUnixSock.c (TcpGetOptionProc): Added support for + ::tcl::unsupported::noReverseDNS, which if set to any value, prevents + [fconfigure -sockname] and [fconfigure -peername] from doing + reverse DNS queries. -2009-08-20 Don Porter <dgp@users.sourceforge.net> +2010-10-24 Kevin B. Kenny <kennykb@acm.org> - * generic/tclFileName.c: [Bug 2837800]: Get the correct result from - [glob */test] when * matches something like ~foo. + [dogeen-assembler-branch] + * generic/tclAssembly.c: + * tests/assembly.test (assemble-17.15): Reworked branch handling so that + forward branches can use jump1 (jumpTrue1, jumpFalse1). Added test + cases that the forward branches will expand to jump4, jumpTrue4, + jumpFalse4 when needed. - * 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. +2010-10-23 Kevin B. Kenny <kennykb@acm.org> -2009-08-20 Donal K. Fellows <dkf@users.sf.net> + [dogeen-assembler-branch] + * generic/tclAssembly.h (removed): + Removed file that was included in only one + source file. + * generictclAssembly.c: Inlined tclAssembly.h. - * generic/tclCmdIL.c (Tcl_LsortObjCmd): Plug memory leak. +2010-10-17 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2009-08-18 Don Porter <dgp@users.sourceforge.net> + * doc/info.n: [Patch 2995655]: + * generic/tclBasic.c: Report inner contexts in [info errorstack] + * generic/tclCompCmds.c: + * generic/tclCompile.c: + * generic/tclCompile.h: + * generic/tclExecute.c: + * generic/tclInt.h: + * generic/tclNamesp.c: + * tests/error.test: + * tests/result.test: - * generic/tclPathObj.c: [Bug 2837800]: Added NULL check to prevent - * tests/fileName.test: crashes during [glob]. +2010-10-20 Donal K. Fellows <dkf@users.sf.net> -2009-08-06 Andreas Kupries <andreask@activestate.com> + * generic/tclCompCmds.c (TclCompileDictForCmd): Update the compilation + * generic/tclCompile.c (tclInstructionTable): of [dict for] so that + * generic/tclExecute.c (TEBCresume): it no longer makes any + use of INST_DICT_DONE now that's not needed, and make it clearer in + the implementation of the instruction that it's just a deprecated form + of unset operation. Followup to my commit of 2010-10-16. - * 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}). +2010-10-19 Donal K. Fellows <dkf@users.sf.net> -2009-08-02 Donal K. Fellows <dkf@users.sf.net> + * generic/tclZlib.c (Tcl_ZlibStreamGet): [Bug 3081008]: Ensure that + when a bytearray gets its internals entangled with zlib for more than + a passing moment, that bytearray will never be shimmered away. This + increases the amount of copying but is simple to get right, which is a + reasonable trade-off. - * unix/tclUnixFCmd.c (GetOwnerAttribute, SetOwnerAttribute) - (GetGroupAttribute, SetGroupAttribute): [Bug 1942222]: Stop calling - * unix/tclUnixFile.c (TclpGetUserHome): endpwent() and endgrent(); - they've been unnecessary for ages. + * generic/tclStringObj.c (Tcl_AppendObjToObj): Added some special + cases so that most of the time when you build up a bytearray by + appending, it actually ends up being a bytearray rather than + shimmering back and forth to string. -2009-07-31 Don Porter <dgp@users.sourceforge.net> + * tests/http11.test (check_crc): Use a simpler way to express the + functionality of this procedure. - * 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. + * generic/tclZlib.c: Purge code that wrote to the object returned by + Tcl_GetObjResult, as we don't want to do that anti-pattern no more. -2009-07-24 Andreas Kupries <andreask@activestate.com> +2010-10-18 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * tools/uniParse.tcl: [Bug 3085863]: tclUniData was 9 years old; + Ignore non-BMP characters and fix comment about UnicodeData.txt file. + * generic/regcomp.c: Fix comment + * tests/utf.test: Add some Unicode 6 testcases -2009-07-23 Joe Mistachkin <joe@mistachkin.com> +2010-10-17 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * generic/tclNotify.c: [Bug 2820349]: Ensure that queued events are - freed once processed. + * doc/info.n: Document [info errorstack] faithfully. -2009-07-21 Kevin B. Kenny <kennykb@acm.org> +2010-10-16 Donal K. Fellows <dkf@users.sf.net> - * library/tzdata/Asia/Dhaka: - * library/tzdata/Indian/Mauritius: Olson's tzdata2009k. + * generic/tclExecute.c (ReleaseDictIterator): Factored out the release + of the bytecode-level dictionary iterator information so that the + side-conditions on instruction issuing are simpler. -2009-07-20 Donal K. Fellows <dkf@users.sf.net> +2010-10-15 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * generic/reg_locale.c: [Bug 3085863]: tclUniData 9 years old: Updated + * generic/tclUniData.c: Unicode tables to latest UnicodeData.txt, + * tools/uniParse.tcl: corresponding with Unicode 6.0 (except for + out-of-range chars > 0xFFFF) -2009-07-16 Don Porter <dgp@users.sourceforge.net> +2010-10-13 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdIL.c: Removed unused variables. - * generic/tclCompile.c: - * generic/tclVar.c: - * unix/tclUnixChan.c: + * generic/tclCompile.c: Alternative fix for [Bugs 467523,983660] where + * generic/tclExecute.c: sharing of empty scripts is allowed again. - * generic/tclScan.c: Typo in ACCEPT_NAN configuration. +2010-10-13 Jan Nijtmans <nijtmans@users.sf.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. + * win/tclWinThrd.h: (removed) because it is just empty en used nowhere + * win/tcl.dsp -2009-07-14 Andreas Kupries <andreask@activestate.com> +2010-10-12 Jan Nijtmans <nijtmans@users.sf.net> - * 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): + * tools/uniClass.tcl: Spacing and comments: let uniClass.tcl + * generic/regc_locale.c: generation match better the current + (hand-modified) regc_locale.c + * tools/uniParse.tcl: Generate proper const qualifiers for + * generic/tclUniData.c: tclUniData.c - 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. +2010-10-12 Reinhard Max <max@suse.de> - 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/tclUnixSock.c (CreateClientSocket): [Bug 3084338]: Fix a + memleak and refactor the calls to freeaddrinfo(). -2009-07-01 Pat Thoyts <patthoyts@users.sourceforge.net> +2010-10-11 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * win/tclWinDde.c: [FRQ 2965056]: Windows build with -DUNICODE + * win/tclWinReg.c: + * win/tclWinTest.c: More cleanups + * win/tclWinFile.c: Add netapi32 to the link line, so we no longer + * win/tcl.m4: have to use LoadLibrary to access those functions. + * win/makefile.vc: + * win/configure: (Re-generate with autoconf-2.59) + * win/rules.vc Update for VS10 -2009-06-15 Don Porter <dgp@users.sourceforge.net> +2010-10-09 Miguel Sofer <msofer@users.sf.net> - * generic/tclStringObj.c: sprintf() -> Tcl_ObjPrintf() conversion. + * generic/tclExecute.c: Fix overallocation of exec stack in TEBC (due + to mixing numwords and numbytes) -2009-06-13 Don Porter <dgp@users.sourceforge.net> +2010-10-08 Jan Nijtmans <nijtmans@users.sf.net> - * 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]. + * generic/tclIOSock.c: On Windows, use gai_strerrorA -2009-06-10 Don Porter <dgp@users.sourceforge.net> +2010-10-06 Don Porter <dgp@users.sourceforge.net> - * 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] + * tests/winPipe.test: Test hygiene with makeFile and removeFile. -2006-06-09 Kevin B. Kenny <kennykb@acm.org> + * generic/tclCompile.c: [Bug 3081065]: Prevent writing to the intrep + * tests/subst.test: fields of a freed Tcl_Obj. - * 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 +2010-10-06 Kevin B. Kenny <kennykb@acm.org> -2006-06-08 Kevin B. Kenny <kennykb@acm.org> + [dogeen-assembler-branch] - * library/tzdata/Asia/Dhaka: New DST rule for Bangladesh. - (Olson's tzdata2009i.) + * generic/tclAssembly.c: + * generic/tclAssembly.h: + * tests/assemble.test: Added catches. Still needs a lot of testing. -2009-06-02 Don Porter <dgp@users.sourceforge.net> +2010-10-02 Kevin B. Kenny <kennykb@acm.org> - * 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. + [dogeen-assembler-branch] - * generic/tclExecute.c: Corrected implementations and selection - logic of the INST_EXPON instruction to fix [Bug 2798543]. + * generic/tclAssembly.c: + * generic/tclAssembly.h: + * tests/assemble.test: Added dictAppend, dictIncrImm, dictLappend, + dictSet, dictUnset, nop, regexp, nsupvar, upvar, and variable. -2009-06-01 Don Porter <dgp@users.sourceforge.net> +2010-10-02 Donal K. Fellows <dkf@users.sf.net> - * tests/expr.test: Added many tests demonstrating the broken - cases of [Bug 2798543]. + * generic/tclExecute.c (TEBCresume): [Bug 3079830]: Added invalidation + of string representations of dictionaries in some cases. -2009-05-30 Kevin B. Kenny <kennykb@acm.org> +2010-10-01 Jeff Hobbs <jeffh@ActiveState.com> - * library/tzdata/Africa/Cairo: - * library/tzdata/Asia/Amman: Olson's tzdata2009h. + * 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 objPtr + * generic/tclInt.decls: as well as FILE* as output. + * generic/tclIntDecls.h: -2009-05-29 Andreas Kupries <andreask@activestate.com> +2010-10-01 Donal K. Fellows <dkf@users.sf.net> - * 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. + * generic/tclBasic.c, generic/tclClock.c, generic/tclEncoding.c, + * generic/tclEnv.c, generic/tclLoad.c, generic/tclNamesp.c, + * generic/tclObj.c, generic/tclRegexp.c, generic/tclResolve.c, + * generic/tclResult.c, generic/tclUtil.c, macosx/tclMacOSXFCmd.c: + More purging of strcpy() from locations where we already know the + length of the data being copied. -2009-05-07 Miguel Sofer <msofer@users.sf.net> +2010-10-01 Kevin B. Kenny <kennykb@acm.org> - * generic/tclObj.c (Tcl_GetCommandFromObj): fix for bug [2785893], - insure that a command in a deleted namespace cannot be found - through a cached name. + [dogeen-assembler-branch] -2009-05-06 Don Porter <dgp@users.sourceforge.net> + * tests/assemble.test: + * generic/tclAssemble.h: + * generic/tclAssemble.c: Added listIn, listNotIn, and dictGet. - * generic/tclCmdMZ.c: Improve overflow error message from - [string repeat]. [Bug 2582327] +2010-09-30 Kevin B. Kenny <kennykb@acm.org> -2009-04-28 Jeff Hobbs <jeffh@ActiveState.com> + [dogeen-assembler-branch] - * unix/tcl.m4, unix/configure (SC_CONFIG_CFLAGS): harden the check - to add _r to CC on AIX with threads. + * tests/assemble.test: Added tryCvtToNumeric and several more list + * generic/tclAssemble.c: operations. + * generic/tclAssemble.h: -2009-04-27 Alexandre Ferrieux <ferrieux@users.sourceforge.net> +2010-09-29 Kevin B. Kenny <kennykb@acm.org> - * 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. + [dogeen-assembler-branch] -2009-04-27 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * tests/assemble.test: Completed conversion of tests to a + * generic/tclAssemble.c: "white box" structure that follows the + C code. Added missing safety checks on the operands of 'over' and + 'reverse' so that negative operand counts don't smash the stack. - * win/tclWinSock.c: Backport fix for [Bug 2446662]: resync Win - behavior on RST with that of unix (EOF). +2010-09-29 Jan Nijtmans <nijtmans@users.sf.net> -2009-04-27 Donal K. Fellows <dkf@users.sf.net> + * unix/configure: Re-generate with autoconf-2.59 + * win/configure: + * generic/tclMain.c: Make compilable with -DUNICODE as well + +2010-09-28 Reinhard Max <max@suse.de> + + TIP #162 IMPLEMENTATION + + * doc/socket.n: Document the changes to the [socket] and + [fconfigure] commands. + + * generic/tclInt.h: Introduce TclCreateSocketAddress() as a + * generic/tclIOSock.c: replacement for the platform-dependent + * unix/tclUnixSock.c: TclpCreateSocketAddress() functions. Extend + * unix/tclUnixChan.c: the [socket] and [fconfigure] commands to + * unix/tclUnixPort.h: behave as proposed in TIP #162. This is the + * win/tclWinSock.c: core of what is required to support the use of + * win/tclWinPort.h: IPv6 sockets in Tcl. + + * compat/fake-rfc2553.c: A compat implementation of the APIs defined + * compat/fake-rfc2553.h: in RFC-2553 (getaddrinfo() and friends) on + top of the existing gethostbyname() etc. + * unix/configure.in: Test whether the fake-implementation is + * unix/tcl.m4: needed. + * unix/Makefile.in: Add a compile target for fake-rfc2553. + + * win/configure.in: Allow cross-compilation by default. + + * tests/socket.test: Improve the test suite to make more use of + * tests/remote.tcl: randomized ports to reduce interference with + tests running in parallel or other services on + the machine. + +2010-09-28 Kevin B. Kenny <kennykb@acm.org> + + [dogeen-assembler-branch] + + * tests/assemble.test: Added more "white box" tests. + * generic/tclAssembly.c: Added the error checking and reporting + for undefined labels. Revised code so that no pointers into the + bytecode sequence are held (because the sequence can move!), + that no Tcl_HashEntry pointers are held (because the hash table + doesn't guarantee their stability!) and to eliminate the BBHash + table, which is merely additional information indexed by jump + labels and can just as easily be held in the 'label' structure. + Renamed shared structures to CamelCase, and renamed 'label' to + JumpLabel because other types of labels may eventually be possible. + +2010-09-27 Kevin B. Kenny <kennykb@acm.org> + + [dogeen-assembler-branch] + + * tests/assemble.test: Added more "white box" tests. + * generic/tclAssembly.c: Fixed bugs exposed by the new tests. + (a) [eval] and [expr] had incorrect stack balance computed if + the arg was not a simple word. (b) [concat] accepted a negative + operand count. (c) [invoke] accepted a zero or negative operand + count. (d) more misspelt error messages. + Also replaced a funky NRCallTEBC with the new call + TclNRExecuteByteCode, necessitated by a merge with changes on the + HEAD. + +2010-09-26 Miguel Sofer <msofer@users.sf.net> + + * generic/tclBasic.c: [Patch 3072080] (minus the itcl + * generic/tclCmdIL.c: update): a saner NRE. + * generic/tclCompExpr.c: + * generic/tclCompile.c: This makes TclNRExecuteByteCode (ex TEBC) + * generic/tclCompile.h: to be a normal NRE citizen: it loses its + * generic/tclExecute.c: special status. + * generic/tclInt.decls: The logic flow within the BC engine is + * generic/tclInt.h: simplified considerably. + * generic/tclIntDecls.h: + * generic/tclObj.c: + * generic/tclProc.c: + * generic/tclTest.c: - * 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.) + * generic/tclVar.c: Use the macro HasLocalVars everywhere -2009-04-24 Stuart Cassoff <stwo@users.sf.net> +2010-09-26 Miguel Sofer <msofer@users.sf.net> - * unix/Makefile.in: [Patch 2769530]: Don't chmod/exec installManPage. + * generic/tclOOMethod.c (ProcedureMethodVarResolver): avoid code + duplication, let the runtime var resolver call the compiled var + resolver. -2009-04-15 Don Porter <dgp@users.sourceforge.net> +2010-09-26 Kevin B. Kenny <kennykb@acm.org> - *** 8.5.7 TAGGED FOR RELEASE *** + [dogeen-assembler-branch] - * generic/tclStringObj.c: AppendUnicodeToUnicodeRep failed - to set stringPtr->allocated to 0, leading to crashes. + * tests/assemble.test: Added many new tests moving toward a more + comprehensive test suite for the assembler. + * generic/tclAssembly.c: Fixed bugs exposed by the new tests: + (a) [bitnot] and [not] had incorrect operand counts. (b) + INST_CONCAT cannot concatenate zero objects. (c) misspelt error + messages. (d) the "assembly code" internal representation lacked + a duplicator, which caused double-frees of the Bytecode object + if assembly code ever was duplicated. - * changes: Update for 8.5.7 release. +2010-09-25 Kevin B. Kenny <kennykb@acm.org> -2009-04-14 Stuart Cassoff <stwo@users.sourceforge.net> + [dogeen-assembler-branch] - * unix/tcl.m4: Removed -Wno-implicit-int from CFLAGS_WARNING. + * generic/tclAssembly.c: Massive refactoring of the assembler + * generic/tclAssembly.h: to use a Tcl-like syntax (and use + * tests/assemble.test: Tcl_ParseCommand to parse it). The + * tests/assemble1.bench: refactoring also ensures that + Tcl_Tokens in the assembler have string ranges inside the source + code, which allows for [eval] and [expr] assembler directives + that simply call TclCompileScript and TclCompileExpr recursively. -2008-04-14 Kevin B. Kenny <kennykb@acm.org> +2010-09-24 Jeff Hobbs <jeffh@ActiveState.com> - * library/tzdata/Asia/Karachi: Updated rules for Pakistan Summer - Time (Olson's tzdata2009f) + * tests/stringComp.test: improved string eq/cmp test coverage + * generic/tclExecute.c (TclExecuteByteCode): merge INST_STR_CMP and + INST_STR_EQ/INST_STR_NEQ paths. Speeds up eq/ne/[string eq] with + obj-aware comparisons and eq/==/ne/!= with length equality check. -2009-04-10 Don Porter <dgp@users.sourceforge.net> +2010-09-24 Andreas Kupries <andreask@activestate.com> - * changes: Update for 8.5.7 release. + * 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. - * generic/tcl.h: Bump to 8.5.7 for release. - * library/init.tcl: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/configure.in: - * README: +2010-09-23 Jan Nijtmans <nijtmans@users.sf.net> - * unix/configure: autoconf-2.59 - * win/configure: + * generic/tclDecls.h: Make Tcl_SetPanicProc and Tcl_GetStringResult + * unix/tclAppInit.c: callable without stubs, just as Tcl_SetVar. + * win/tclAppInit.c: - * generic/tclStringObj.c (UpdateStringOfString): Fix bug detected - by compiler warning about undefined "dst". +2010-09-23 Don Porter <dgp@users.sourceforge.net> - * tests/httpd: Backport new tests for http 2.7.3. - * tests/http.tcl: + * 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. -2009-04-10 Daniel Steffen <das@users.sourceforge.net> +2010-09-23 Jan Nijtmans <nijtmans@users.sf.net> - * unix/tclUnixChan.c: TclUnixWaitForFile(): use FD_* macros - * macosx/tclMacOSXNotify.c: to manipulate select masks (Cassoff). - [Bug 1960647] + * unix/tclAppInit.c: Make compilable with -DUNICODE (not activated + * win/tclAppInit.c: yet), many clean-ups in comments. - * unix/tclLoadDyld.c: use RTLD_GLOBAL instead of RTLD_LOCAL. - [Bug 1961211] +2010-09-22 Miguel Sofer <msofer@users.sf.net> - * 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). + * generic/tclExecute: [Bug 3072640]: One more DECACHE_STACK_INFO() was + missing. - * 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. + * tests/execute.test: Added execute-10.3 for [Bug 3072640]. The test + causes a mem failure. - * unix/tclUnixNotify.c: simplify, sync with tclMacOSXNotify.c. + * generic/tclExecute: Protect all possible writes to ::errorInfo or + ::errorCode with DECACHE_STACK_INFO(), as they could run traces. The + new calls to be protected are Tcl_ResetResult(), Tcl_SetErrorCode(), + IllegalExprOperandType(), TclExprFloatError(). The error was triggered + by [Patch 3072080]. - * generic/tclInt.decls: add TclMacOSXNotifierAddRunLoopMode() - * generic/tclIntPlatDecls.h: internal API, regen. - * generic/tclStubInit.c: +2010-09-22 Jan Nijtmans <nijtmans@users.sf.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 + * win/tcl.m4: Add kernel32 to LIBS, so the link line for + * win/configure: mingw is exactly the same as for MSVC++. - * macosx/tclMacOSXBundle.c: on Mac OS X 10.4 and later, replace - deprecated NSModule API by dlfcn API. +2010-09-21 Jeff Hobbs <jeffh@ActiveState.com> -2009-04-09 Kevin B. Kenny <kennykb@acm.org> + * generic/tclExecute.c (TclExecuteByteCode): + * generic/tclOOMethod.c (ProcedureMethodCompiledVarConnect): + * generic/tclVar.c (TclLookupSimpleVar, CompareVarKeys): + * generic/tclPathObj.c (Tcl_FSGetNormalizedPath, Tcl_FSEqualPaths): + * generic/tclIOUtil.c (TclFSCwdPointerEquals): peephole opt + * generic/tclResult.c (TclMergeReturnOptions): Use memcmp where + applicable as possible speedup on some libc variants. - * tools/tclZIC.tcl: Always emit Unix-style line terminators. - * library/tzdata: Olson's tzdata2009e. +2010-09-21 Kevin B. Kenny <kennykb@acm.org> -2009-04-09 Don Porter <dgp@users.sourceforge.net> + [BRANCH: dogeen-assembler-branch] - * library/http/http.tcl: Backport http 2.7.3 from HEAD for - * library/http/pkgIndex.tcl: bundling with the Tcl 8.5.7 release. + * generic/tclAssembly.c (new file): + * generic/tclAssembly.h: + * generic/tclBasic.c (builtInCmds, Tcl_CreateInterp): + * generic/tclInt.h: + * tests/assemble.test (new file): + * tests/assemble1.bench (new file): * unix/Makefile.in: * win/Makefile.in: + * win/Makefile.vc: + Initial commit of Ozgur Dogan Ugurlu's (SF user: dogeen) + assembler for the Tcl bytecode language. -2009-04-08 Andreas Kupries <andreask@activestate.com> +2010-09-21 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * win/tclWinFile.c: Fix declaration after statement. + * win/tcl.m4: Add -Wdeclaration-after-statement, so this + * win/configure: mistake cannot happen again. + * win/tclWinFCmd.c: [Bug 3069278]: Breakage on head Windows + * win/tclWinPipe.c: triggered by install-tzdata, final fix -2009-04-08 Don Porter <dgp@users.sourceforge.net> +2010-09-20 Jan Nijtmans <nijtmans@users.sf.net> - * 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: + * win/tclWinFCmd.c: Eliminate tclWinProcs->useWide everywhere, since + * win/tclWinFile.c: the value is always "1" on platforms >win95 + * win/tclWinPipe.c: -2009-04-07 Don Porter <dgp@users.sourceforge.net> +2010-09-19 Donal K. Fellows <dkf@users.sf.net> - * generic/tclStringObj.c: Completed backports of fixes for - [Bug 2494093] and [Bug 2553906]. + * doc/file.n (file readlink): [Bug 3070580]: Typofix. -2009-03-30 Don Porter <dgp@users.sourceforge.net> +2010-09-18 Jan Nijtmans <nijtmans@users.sf.net> - * doc/Alloc.3: Size argument is "unsigned int". [Bug 2556263] + * win/tclWinFCmd.c [Bug 3069278]: Breakage on head Windows triggered + by install-tzdata. Temporary don't compile this with -DUNICODE, while + investigating this bug. - * 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] +2010-09-16 Jeff Hobbs <jeffh@ActiveState.com> -2009-03-27 Don Porter <dgp@users.sourceforge.net> + * win/tclWinFile.c: Remove define of FINDEX_INFO_LEVELS as all + supported versions of compilers should now have it. - * 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/Makefile.in: Do not pass current build env vars when using + NATIVE_TCLSH in targets. -2009-03-20 Don Porter <dgp@users.sourceforge.net> +2010-09-16 Jan Nijtmans <nijtmans@users.sf.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/tclDecls.h: Make Tcl_FindExecutable() work in UNICODE + * generic/tclEncoding.c: compiles (windows-only) as well as ASCII. + * generic/tclStubInit.c: Needed for [FRQ 491789]: setargv() doesn't + support a unicode cmdline. - * generic/tclExecute.c (INST_CONCAT1): Panic when appends overflow - the max length of a Tcl value. [Bug 2669109] +2010-09-15 Donal K. Fellows <dkf@users.sf.net> -2009-03-18 Don Porter <dgp@users.sourceforge.net> + * generic/tclBinary.c (TclAppendBytesToByteArray): [Bug 3067036]: Make + sure we never try to double zero repeatedly to get a buffer size. Also + added a check for sanity on the size of buffer being appended. - * win/tclWinFile.c (TclpObjNormalizePath): Corrected Tcl_Obj leak. - Thanks to Joe Mistachkin for detection and patch. [Bug 2688184]. +2010-09-15 Don Porter <dgp@users.sourceforge.net> -2009-03-15 Donal K. Fellows <dkf@users.sf.net> + * unix/Makefile.in: Revise `make dist` target to tolerate the + case of zero bundled packages. - * generic/tclPosixStr.c (Tcl_SignalId,Tcl_SignalMsg): [Patch 1513655]: - Added support for SIGINFO, which is present on BSD platforms. +2010-09-15 Jan Nijtmans <nijtmans@users.sf.net> -2009-02-20 Don Porter <dgp@users.sourceforge.net> + * tools/genStubs.tcl: [Patch 3034251]: Backport ttkGenStubs.tcl + * generic/tcl.decls: features to genStubs.tcl. Make the "generic" + * generic/tclInt.decls: argument in the *.decls files optional + * generic/tclOO.decls: (no change to any tcl*Decls.h files) + * generic/tclTomMath.decls: + This allows genStubs.tcl to generate the ttk stub files as well, while + keeping full compatibility with existing *.decls files. - * 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]. +2010-09-14 Jan Nijtmans <nijtmans@users.sf.net> -2009-02-17 Jeff Hobbs <jeffh@ActiveState.com> + * win/tclWinPort.h: Allow all Win2000+ API entries in Tcl + * win/tclWin32Dll.c: Eliminate dynamical loading of advapi23 and + kernel32 symbols. - * 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. +2010-09-13 Jan Nijtmans <nijtmans@users.sf.net> -2009-02-05 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] + * win/tclWinChan.c: Various clean-ups, converting from + * win/tclWinConsole.c: tclWinProc->xxxProc directly to Xxx + * win/tclWinInit.c: (no change in functionality) + * win/tclWinLoad.c: + * win/tclWinSerial.c: + * win/tclWinSock.c: + * tools/genStubs.tcl: Add scspec feature from ttkGenStubs.tcl + (no change in output for *Decls.h files) -2009-02-04 Don Porter <dgp@users.sourceforge.net> +2010-09-10 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * win/tclWin32Dll.c: Partly revert yesterday's change, to make it work + on VC++ 6.0 again. - * generic/tclCmdMZ.c: Prevent crashes due to int overflow of the - length of the result of [string repeat]. [Bug 2561746] +2010-09-10 Donal K. Fellows <dkf@users.sf.net> -2009-01-29 Donal K. Fellows <dkf@users.sf.net> + * 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. - * generic/tclNamesp.c (Tcl_FindCommand): [Bug 2519474]: Ensure that - the path is not searched when the TCL_NAMESPACE_ONLY flag is given. +2010-09-09 Jan Nijtmans <nijtmans@users.sf.net> -2009-01-22 Kevin B. Kenny <kennykb@acm.org> + * win/makefile.vc: Mingw should always link with -ladvapi32. + * win/tcl.m4: + * win/configure: (regenerated) + * win/tclWinInt.h: Remove ascii variant of tkWinPocs table, it is + * win/tclWin32Dll.c: no longer necessary. Fix CreateProcess signature + * win/tclWinPipe.c: and remove unused GetModuleFileName and lstrcpy. + * win/tclWinPort.h: Mingw/cygwin fixes: <tchar.h> should always be + included, and fix conflict in various macro values: Always force the + same values as in VC++. - * unix/tcl.m4: Corrected a typo ($(SHLIB_VERSION) should be - ${SHLIB_VERSION}). - * unix/configure: Autoconf 2.59 +2010-09-08 Don Porter <dgp@users.sourceforge.net> -2009-01-21 Andreas Kupries <andreask@activestate.com> + * win/tclWinChan.c: [Bug 3059922]: #ifdef protections to permit + * win/tclWinFCmd.c: builds with mingw on amd64 systems. Thanks to + "mescalinum" for reporting and testing. - * 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. +2010-09-08 Andreas Kupries <andreask@activestate.com> -2009-01-19 Kevin B. Kenny <kennykb@acm.org> + * 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. - * 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 +2010-09-03 Donal K. Fellows <dkf@users.sf.net> -2009-01-09 Don Porter <dgp@users.sourceforge.net> + * tools/tcltk-man2html.tcl (plus-pkgs): Improve the package + documentation search pattern to support the doctoos-generated + directory structure. + * tools/tcltk-man2html-utils.tcl (output-name): Made this more + resilient against misformatted NAME sections, induced by import of + Thread package documentation into Tcl doc tree. - * 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]. +2010-09-02 Andreas Kupries <andreask@activestate.com> -2009-01-08 Don Porter <dgp@users.sourceforge.net> + * doc/glob.n: Fixed documentation ambiguity regarding the handling + of -join. - * generic/tclStringObj.c (STRING_UALLOC): Added missing parens - required to get correct results out of things like - STRING_UALLOC(num + append). [Bug 2494093]. + * 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. -2009-01-06 Donal K. Fellows <dkf@users.sf.net> +2010-09-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> - * generic/tclDictObj.c (DictIncrCmd): Corrected twiddling in internals - of dictionaries so that literals can't get destroyed. + * 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/expr.test, tests/string.test: Eliminate non-ASCII characters. - [Bugs 2006884, 2006879] +2010-09-01 Andreas Kupries <andreask@activestate.com> -2009-01-03 Kevin B. Kenny <kennykb@acm.org>: + * generic/tclExecute.c: [Bug 3057639]: Applied patch by Jeff to make + * generic/tclVar.c: the behaviour of lappend in bytecompiled mode + * tests/append.test: consistent with direct-eval and 'append' + * tests/appendComp.test: generally. Added tests (append*-9.*) + showing the difference. - * 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]. +2010-08-31 Jan Nijtmans <nijtmans@users.sf.net> -2008-12-21 Don Porter <dgp@users.sourceforge.net> + * win/rules.vc: Typo (thanks to Twylite discovering + this) + * generic/tclStubLib.c: Revert to previous version: MSVC++ 6.0 + * generic/tclTomMathStubLib.c:cannot handle the new construct. + * generic/tcl.decls [Patch 2997642]: Many type casts needed + * generic/tclDecls.h: when using Tcl_Pkg* API. Remaining part. + * generic/tclPkg.c: + * generic/tclBasic.c: + * generic/tclTomMathInterface.c: + * doc/PkgRequire.3 - *** 8.5.6 TAGGED FOR RELEASE *** +2010-08-31 Andreas Kupries <andreask@activestate.com> - * generic/tcl.h: Bump to 8.5.6 for release. - * library/init.tcl: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/configure.in: - * README: + * win/tcl.m4: Applied patch by Jeff fixing issues with the manifest + handling on Win64. + * win/configure: Regenerated. - * unix/configure: autoconf-2.59 - * win/configure: +2010-08-30 Miguel Sofer <msofer@users.sf.net> - * changes: Update for 8.5.6 release. + * generic/tclBasic.c: [Bugs 3046594,3047235,3048771]: New + * generic/tclCmdAH.c: implementation for [tailcall] command: it now + * generic/tclCmdMZ.c: schedules the command and returns TCL_RETURN. + * generic/tclExecute.c: This fixes all issues with [catch] and [try]. + * generic/tclInt.h: Thanks dgp for exploring the dark corners. + * generic/tclNamesp.c: More thorough testing is required. + * tests/tailcall.test: - * 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. +2010-08-30 Jan Nijtmans <nijtmans@users.sf.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. + * win/Makefile.in: [FRQ 2965056]: Windows build with -DUNICODE + * win/rules.vc: + * win/tclWinFCmd.c: Make sure that allocated TCHAR arrays are + * win/tclWinFile.c: always properly aligned as wchar_t, and + * win/tclWinPipe.c: not bigger than necessary. + * win/tclWinSock.c: + * win/tclWinDde.c: Those 3 files are not converted yet to be + * win/tclWinReg.c: built with -DUNICODE, so add a TODO. + * win/tclWinTest.c: + * generic/tcl.decls: [Patch 2997642]: Many type casts needed when + * generic/tclDecls.h: using Tcl_Pkg* API. Partly. + * generic/tclPkg.c: + * generic/tclStubLib.c: Demonstration how this change can benefit + code. + * generic/tclTomMathStubLib.c: + * doc/PkgRequire.3: -2008-12-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-08-29 Donal K. Fellows <dkf@users.sf.net> - * generic/tclExecute.c (TEBC:INST_DICT_GET): Make sure that the result - is empty when generating an error message. [Bug 2431847] + * doc/dict.n: [Bug 3046999]: Corrected cross reference to array + manpage to refer to (correct) existing subcommand. -2008-12-12 Jan Nijtmans <nijtmans@users.sf.net> +2010-08-26 Jeff Hobbs <jeffh@ActiveState.com> - * library/clock.tcl (ProcessPosixTimeZone): Fix time change in Eastern - Europe (not 3:00 but 4:00 local time) [Bug 2207436] + * 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. -2008-12-11 Andreas Kupries <andreask@activestate.com> + * 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+. - * 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] +2010-08-24 Jan Nijtmans <nijtmans@users.sf.net> -2008-12-11 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tcl.decls: [Bug 3007895]: Tcl_(Find|Create)HashEntry + * generic/tclHash.c: stub entries can never be called. + * generic/tclDecls.h: + * generic/tclStubInit.c: [Patch 2994165]: Change signature of + Tcl_FSGetNativePath and TclpDeleteFile follow-up: move stub entry back + to original location. - * 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. +2010-08-23 Kevin B. Kenny <kennykb@acm.org> -2008-12-10 Kevin B. Kenny <kennykb@acm.org> + * library/tzdata/Africa/Cairo: + * library/tzdata/Asia/Gaza: Olson's tzdata2010l. - * library/tzdata/*: Update from Olson's tzdata2008i. +2010-08-22 Jan Nijtmans <nijtmans@users.sf.net> -2008-12-04 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: [Patch 3009403]: Signature of Tcl_GetHashKey, + * generic/tclBinary.c: Tcl_(Create|Find)HashEntry follow-up: + * generic/tclCmdIL.c: Remove many type casts which are no longer + * generic/tclCompile.c:necessary as a result of this signature change. + * generic/tclDictObj.c: + * generic/tclEncoding.c: + * generic/tclExecute.c: + * generic/tclInterp.c: + * generic/tclIOCmd.c: + * generic/tclObj.c: + * generic/tclProc.c: + * generic/tclTest.c: + * generic/tclTrace.c: + * generic/tclUtil.c: + * generic/tclVar.c: - * 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] +2010-08-21 Donal K. Fellows <dkf@users.sf.net> -2008-12-03 Don Porter <dgp@users.sourceforge.net> + * doc/linsert.n: [Bug 3045123]: Make description of what is actually + happening more accurate. - * 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. +2010-08-21 Jan Nijtmans <nijtmans@users.sf.net> -2008-12-02 Andreas Kupries <andreask@activestate.com> + * tools/genStubs.tcl: [Patch 3034251]: Backport ttkGenStubs.tcl + features to genStubs.tcl, partly: Use void (*reserved$i)(void) = 0 + instead of void *reserved$i = NULL for unused stub entries, in case + pointer-to-function and pointer-to-object are different sizes. + * generic/tcl*Decls.h: (regenerated) + * generic/tcl*StubInit.c:(regenerated) - * generic/tclIO.c (TclFinalizeIOSubsystem): Replaced Alexandre - Ferrieux's first patch for [Bug 2270477] with a gentler version, also - supplied by him. +2010-08-20 Jan Nijtmans <nijtmans@users.sf.net> -2008-12-01 Don Porter <dgp@users.sourceforge.net> + * doc/Method.3: Fix definition of Tcl_MethodType. - * generic/tclParse.c: Backport fix for [Bug 2251175]. +2010-08-19 Donal K. Fellows <dkf@users.sf.net> -2008-11-30 Kevin B. Kenny <kennykb@acm.org> + * 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. - * 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. +2010-08-18 Jan Nijtmans <nijtmans@users.sf.net> -2008-11-25 Andreas Kupries <andreask@activestate.com> + * tools/genStubs.tcl: [Patch 3034251]: Backport ttkGenStubs.tcl + features to genStubs.tcl, partly: remove unneeded ifdeffery and put + C++ guard around stubs pointer definition. + * generic/*Decls.h: (regenerated) - * generic/tclIO.c (TclFinalizeIOSubsystem): Applied Alexandre - Ferrieux's patch for [Bug 2270477] to prevent infinite looping during - finalization of channels not bound to interpreters. +2010-08-18 Miguel Sofer <msofer@users.sf.net> + * generic/tclBasic.c: New redesign of [tailcall]: find + * generic/tclExecute.c: errors early on, so that errorInfo + * generic/tclInt.h: contains the proper info [Bug 3047235] + * generic/tclNamesp.c: -2008-08-23 Andreas Kupries <andreask@activestate.com> + * generic/tclCmdAH.c (TclNRTryObjCmd): [Bug 3046594]: Block + tailcalling out of the body of a non-bc'ed [try]. - * generic/tclIO.c: Backport of fix for [Bug 2333466]. + * generic/tclBasic.c: Redesign of [tailcall] to + * generic/tclCmdAH.c: (a) fix [Bug 3047235] + * generic/tclCompile.h: (b) enable fix for [Bug 3046594] + * generic/tclExecute.c: (c) enable recursive tailcalls + * generic/tclInt.h: + * generic/tclNamesp.c: + * tests/tailcall.test: -2008-11-18 Jan Nijtmans <nijtmans@users.sf.net> +2010-08-18 Donal K. Fellows <dkf@users.sf.net> - * 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: + * library/safe.tcl (AliasGlob): [Bug 3004191]: Restore safe [glob] to + working condition. -2008-11-13 Jan Nijtmans <nijtmans@users.sf.net> +2010-08-15 Donal K. Fellows <dkf@users.sf.net> - * generic/tclInt.h: Rename static function FSUnloadTempFile to - * generic/tclIOUtil.c: TclFSUnloadTempFile, needed in tclLoad.c + * 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. - * generic/tclLoad.c: Fixed [Bug 2269431]: load of shared - objects leaves temporary files on windows +2010-08-14 Jan Nijtmans <nijtmans@users.sf.net> -2008-11-10 Andreas Kupries <andreask@activestate.com> + * compat/unicows: Remove completely, see [FRQ 2819611]. + * doc/FileSystem.3: [Patch 2994165]: Change signature of + * generic/tcl.decls Tcl_FSGetNativePath and TclpDeleteFile + * generic/tclDecls.h: + * generic/tclIOUtil.c: + * generic/tclStubInit.c: + * generic/tclInt.h: + * unix/tclUnixFCmd.c: + * win/tclWinFCmd.c: + * doc/Hash.3: [Patch 3009403]: Signature of Tcl_GetHashKey, + * generic/tcl.h: Tcl_(Create|Find)HashEntry - * 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. +2010-08-11 Jeff Hobbs <jeffh@ActiveState.com> -2008-11-04 Jeff Hobbs <jeffh@ActiveState.com> + * 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/tclPort.h: remove the ../win/ header dir as the build system - already has it, and it confuses builds when used with private headers - installed. +2010-08-11 Miguel Sofer <msofer@users.sf.net> -2008-10-24 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclBasic.c (TclNRYieldToObjCmd): + * tests/coroutine.test: Fixed bad copypasta snafu. Thanks to Andy Goth + for finding the bug. - * 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 +2010-08-10 Jeff Hobbs <jeffh@ActiveState.com> -2008-10-23 Don Porter <dgp@users.sourceforge.net> + * generic/tclUtil.c (TclByteArrayMatch): Patterns may not be + null-terminated, so account for that. - * 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 +2010-08-09 Don Porter <dgp@users.sourceforge.net> - * unix/configure: autoconf (2.59) - * win/configure: + * changes: Updates for 8.6b2 release. -2008-10-19 Don Porter <dgp@users.sourceforge.net> +2010-08-04 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclProc.c: Reset -level and -code values to defaults - after they are used. [Bug 2152286] + * win/Makefile.in, win/makefile.bc, win/makefile.vc, win/tcl.dsp: + * win/tclWinPipe.c (TclpCreateProcess): + * win/stub16.c (removed): Removed Win9x tclpip8x.dll build and 16-bit + application loader stub support. Win9x is no longer supported. -2008-10-16 Don Porter <dgp@users.sourceforge.net> + * win/tclWin32Dll.c (TclWinInit): Hard-enforce Windows 9x as an + unsupported platform with a panic. Code to support it still exists in + other files (to go away in time), but new APIs are being used that + don't exist on Win9x. - * 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/tclUnixFCmd.c: Adjust license header as per + ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change -2008-10-10 Don Porter <dgp@users.sourceforge.net> + * license.terms: Fix DFARs note for number-adjusted rights clause - *** 8.5.5 TAGGED FOR RELEASE *** + * 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. - * 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: + * win/Makefile.in (%.${OBJEXT}): better implicit rules support - * unix/configure: autoconf-2.59 - * win/configure: +2010-08-04 Andreas Kupries <andreask@activestate.com> - * changes: Update for 8.5.5 release. + * generic/tclIORChan.c: [Bug 3034840]: Fixed reference counting in + * generic/tclIORTrans.c: InvokeTclMethod and callers. + * tests/ioTrans.test: -2008-10-08 Don Porter <dgp@users.sourceforge.net> +2010-08-03 Andreas Kupries <andreask@activestate.com> - * generic/tclTrace.c: Corrected handling of errors returned by - variable traces so that the errorInfo value contains the original - error message. [Bug 2151707] + * tests/var.test (var-19.1): [Bug 3037525]: Added test demonstrating + the local hashtable deletion crash and fix. - * generic/tclVar.c: Revised implementation of TclObjVarErrMsg so - that error message construction does not disturb an existing - iPtr->errorInfo that may be in progress. + * tests/info.test (info-39.1): Added forward copy of test in 8.5 + branch about [Bug 2933089]. Should not fail, and doesn't, after + updating the line numbers to the changed position. -2008-10-06 Jan Nijtmans <nijtmans@users.sf.net> +2010-08-02 Kevin B. Kenny <kennykb@users.sf.net> - * 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] + * 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. -2008-10-06 Joe Mistachkin <joe@mistachkin.com> +2010-08-02 Miguel Sofer <msofer@users.sf.net> - * tools/man2tcl.c: Added missing line from patch by Harald Oehlmann. - [Bug 1934200] + * generic/tclVar.c: Correcting bad port of [Bug 3037525] fix -2008-10-05 Kevin B. Kenny <kennykb@acm.org> +2010-07-28 Miguel Sofer <msofer@users.sf.net> - * 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. + * generic/tclVar.c: [Bug 3037525]: Lose fickle optimisation in + TclDeleteVars (used for runtime-created locals) that caused crash. -2008-10-02 Joe Mistachkin <joe@mistachkin.com> +2010-07-29 Jan Nijtmans <nijtmans@users.sf.net> - * tools/man2help2.tcl: Integrated patches from Harald Oehlmann. - * tools/man2tcl.c: [Bug 1934200, 1934272] + * compat/zlib/win32/README.txt: Official build of zlib1.dll 1.2.5 is + * compat/zlib/win32/USAGE.txt: finally available, so put it in. + * compat/zlib/win32/zlib1.dll: -2008-09-27 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-07-25 Donal K. Fellows <dkf@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] + * doc/http.n: Corrected description of location of one of the entries + in the state array. -2008-09-25 Don Porter <dgp@users.sourceforge.net> +2010-07-24 Jan Nijtmans <nijtmans@users.sf.net> - * doc/global.n: Correct false claim about [info locals]. + * generic/tclDecls.h: [Bug 3029891]: Functions that don't belong in + * generic/tclTest.c: the stub table. + * generic/tclBasic.c: From [Bug 3030870] make itcl 3.x built with + pre-8.6 work in 8.6: Relax the relation between Tcl_CallFrame and + CallFrame. -2008-09-17 Don Porter <dgp@users.sourceforge.net> +2010-07-16 Donal K. Fellows <dkf@users.sf.net> - * 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. + * generic/tclBasic.c: Added more errorCode setting. -2008-09-17 Miguel Sofer <msofer@users.sf.net> +2010-07-15 Donal K. Fellows <dkf@users.sf.net> - * library/init.tcl: export min and max commands from the mathfunc - namespace [Bug 2116053] + * generic/tclExecute.c (TclExecuteByteCode): Ensure that [dict get] + * generic/tclDictObj.c (DictGetCmd): always generates an errorCode on + a failure to look up an entry. -2008-09-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-07-11 Pat Thoyts <patthoyts@users.sourceforge.net> - * 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. + * unix/configure: (regenerated) + * unix/configure.in: For the NATIVE_TCLSH variable use the autoconf + * unix/Makefile.in: SC_PROG_TCLSH to try and find a locally installed + native binary. This avoids manually fixing up when cross compiling. If + there is not one, revert to using the build product. -2008-09-07 Miguel Sofer <msofer@users.sf.net> +2010-07-02 Don Porter <dgp@users.sourceforge.net> - * doc/namespace.n: fix [Bug 2098441] + * generic/tclInt.decs: Reverted to the original TIP 337 + implementation on what to do with the obsolete internal stub for + TclBackgroundException() (eliminate it!) + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: -2008-08-28 Don Porter <dgp@users.sourceforge.net> +2010-07-02 Jan Nijtmans <nijtmans@users.sf.net> - * 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/configure.in: - * tools/tcl.wse.in: - * README + * generic/tclInt.decls: [Bug 803489]: Tcl_FindNamespace problem in the + * generic/tclIntDecls.h: Stubs table + * generic/tclStubInit.c: - * unix/configure: autoconf (2.59) - * win/configure: +2010-07-02 Donal K. Fellows <dkf@users.sf.net> -2008-08-22 Don Porter <dgp@users.sourceforge.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/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. +2010-07-01 Jan Nijtmans <nijtmans@users.sf.net> -2008-08-21 Jeff Hobbs <jeffh@ActiveState.com> + * win/rules.vc: [Bug 3020677]: wish can't link reg1.2 + * tools/checkLibraryDoc.tcl: formatting, spacing, cleanup unused + * tools/eolFix.tcl: variables; no change in generated output + * tools/fix_tommath_h.tcl: + * tools/genStubs.tcl: + * tools/index.tcl: + * tools/man2help2.tcl: + * tools/regexpTestLib.tcl: + * tools/tsdPerf.tcl: + * tools/uniClass.tcl: + * tools/uniParse.tcl: - * tests/regexp.test, tests/regexpComp.test: correct re2glob ***= - * generic/tclUtil.c (TclReToGlob): translation from exact - to anywhere-in-string match. [Bug 2065115] +2010-07-01 Donal K. Fellows <dkf@users.sf.net> -2008-08-20 Daniel Steffen <das@users.sourceforge.net> + * doc/mathop.n: [Bug 3023165]: Fix typo that was preventing proper + rendering of the exclusive-or operator. - * generic/tclTest.c (TestconcatobjCmd): fix use of internal-only - TclInvalidateStringRep macro. - [Bug 2057479] +2010-06-28 Jan Nijtmans <nijtmans@users.sf.net> -2008-08-17 Miguel Sofer <msofer@users.sf.net> + * generic/tclPosixStr.c: [Bug 3019634]: errno.h and tclWinPort.h have + conflicting definitions. Added messages for ENOTRECOVERABLE, EOTHER, + ECANCELED and EOWNERDEAD, and fixed various typing mistakes in other + messages. - * 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! +2010-06-25 Reinhard Max <max@suse.de> - *** NASTY BUG FIXED *** + * tests/socket.test: Prevent a race condition during shutdown of the + remote test server that can cause a hang when the server is being run + in verbose mode. -2008-08-14 Don Porter <dgp@users.sourceforge.net> +2010-06-24 Jan Nijtmans <nijtmans@users.sf.net> - *** 8.5.4 TAGGED FOR RELEASE *** + * win/tclWinPort.h: [Bug 3019634]: errno.h and tclWinPort.h have + conflicting definitions. - * tests/fileName.test: Revise new tests for portability to case - insensitive filesystems. + ***POTENTIAL INCOMPATIBILITY*** + On win32, the correspondence between errno and the related error + message, as handled by Tcl_ErrnoMsg() changes. The error message is + kept the same, but the corresponding errno value might change. -2008-08-14 Daniel Steffen <das@users.sourceforge.net> +2010-06-22 Donal K. Fellows <dkf@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). + * generic/tclCmdIL.c (Tcl_LsetObjCmd): [Bug 3019351]: Corrected wrong + args message. - * generic/tclCmdIL.c (TclInfoFrame): Check fPtr->line before - dereferencing as line info may - not exists when TclInfoFrame() - is called from a DTrace probe. +2010-06-21 Jan Nijtmans <nijtmans@users.sf.net> - * tests/msgcat.test: Fix for ::tcl::mac::locale with - @modifier (HEAD backport 2008-06-01). + * unix/tclLoadDl.c: Eliminate various unnecessary type casts, use + * unix/tclLoadNext.c: function typedefs whenever possible + * unix/tclUnixChan.c: + * unix/tclUnixFile.c: + * unix/tclUnixNotfy.c: + * unix/tclUnixSock.c: + * unix/tclUnixTest.c: + * unix/tclXtTest.c: + * generic/tclZlib.c: Remove hack needed for zlib 1.2.3 on win32 - * tests/fCmd.test (fCmd-6.23): Made result matching robust when test - workdir and /tmp are not on same FS. +2010-06-18 Donal K. Fellows <dkf@users.sf.net> - * 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] + * library/init.tcl (auto_execok): [Bug 3017997]: Add .cmd to the + default list of extensions that we can execute interactively. - * unix/tcl.m4 (SC_PATH_X): Check for libX11.dylib in addition to - libX11.so et al. +2010-06-16 Jan Nijtmans <nijtmans@users.sf.net> - * unix/configure: autoconf-2.59 + * tools/loadICU.tcl: [Bug 3016135]: Traceback using clock format + * library/msgs/he.msg: with locale of he_IL. + + * generic/tcl.h: Simplify Tcl_AppInit and *_Init definitions, + * generic/tclInt.h: spacing. Change TclpThreadCreate and + * generic/tcl.decls: Tcl_CreateThread signature, making clear that + * generic/tclDecls.h: "proc" is a function pointer, as in all other + * generic/tclEvent.c: "proc" function parameters. + * generic/tclTestProcBodyObj.c: + * win/tclWinThrd.c: + * unix/tclUnixThrd.c: + * doc/Thread.3: + * doc/Class.3: Fix Tcl_ObjectMetadataType definition. -2008-08-13 Don Porter <dgp@users.sourceforge.net> +2010-06-14 Jan Nijtmans <nijtmans@users.sf.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. + * unix/Makefile.in: Fix compilation of xttest with 8.6 changes + * unix/tclXtNotify.c: + * unix/tclXtTest.c: + * generic/tclPipe.c: Fix gcc warning (with -fstrict-aliasing=2) + * library/auto.tcl: Spacing and style fixes. + * library/history.tcl: + * library/init.tcl: + * library/package.tcl: + * library/safe.tcl: + * library/tm.tcl: -2008-08-12 Don Porter <dgp@users.sourceforge.net> +2010-06-13 Donal K. Fellows <dkf@users.sf.net> - * changes: Update for 8.5.4 release. + * tools/tcltk-man2html.tcl (make-man-pages): [Bug 3015327]: Make the + title of a manual page be stored relative to its resulting directory + name as well as its source filename. This was caused by both Tcl and a + contributed package ([incr Tcl]) defining an Object.3. Also corrected + the joining of strings in titles to avoid extra braces. -2008-08-11 Pat Thoyts <patthoyts@users.sourceforge.net> +2010-06-09 Andreas Kupries <andreask@activestate.com> - * library/http/http.tcl: Remove 8.5 requirement. - * library/http/pkgIndex.tcl: + * 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: - * win/makefile.vc: - -2008-08-11 Andreas Kupries <andreask@activestate.com> - - * 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. - - * 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. - -2008-08-11 Don Porter <dgp@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. - -2008-08-11 Pat Thoyts <patthoyts@users.sourceforge.net> - - * library/http/http.tcl: crc field from zlib data should be treated as - unsigned for 64bit support [Bug 2046846] - -2008-08-08 Don Porter <dgp@users.sourceforge.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: - - * unix/configure: autoconf-2.59 - * win/configure: - - * changes: Update for 8.5.4 release. - -2008-08-08 Kevin Kenny <kennykb@acm.org> - - * 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. - -2008-08-06 Don Porter <dgp@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. +2010-06-09 Jan Nijtmans <nijtmans@users.sf.net> -2008-08-04 Don Porter <dgp@users.sourceforge.net> + * tools/tsdPerf.c: Fix export of symbol Tsdperf_Init, when using + -fvisibility=hidden. Make two functions static, eliminate some + unnecessary type casts. + * tools/configure.in: Update to Tcl 8.6 + * tools/configure: (regenerated) + * tools/.cvsignore new file - * 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] +2010-06-07 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2008-07-30 Don Porter <dgp@users.sourceforge.net> + * generic/tclExecute.c: Ensure proper reset of [info errorstack] even + * generic/tclNamesp.c: when compiling constant expr's with errors. - * generic/tclBasic.c: Corrected the timing of when the flag - TCL_ALLOW_EXCEPTIONS is tested. +2010-06-05 Miguel Sofer <msofer@users.sf.net> -2008-07-29 Miguel Sofer <msofer@users.sf.net> + * generic/tclBasic.c: [Bug 3008307]: make callerPtr chains be + * generic/tclExecute.c: traversable accross coro boundaries. Add the + special coroutine CallFrame (partially reverting commit of + 2009-12-10), as it is needed for coroutines that do not push a CF, eg, + those with [eval] as command. Thanks to Colin McCormack (coldstore) + and Alexandre Ferrieux for the hard work on this. - * generic/tclExecute.c: fix [Bug 2030670] that cause - TclStackRealloc to panic on rare corner cases. Thx ajpasadyn for - diagnose and patch. +2010-06-03 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2008-07-28 Andreas Kupries <andreask@activestate.com> + * generic/tclNamesp.c: Safer (and faster) computation of [uplevel] + * tests/error.test: offsets in TIP 348. Toplevel offsets no longer + * tests/result.test: overestimated. - * 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. +2010-06-02 Jan Nijtmans <nijtmans@users.sf.net> -2008-07-25 Daniel Steffen <das@users.sourceforge.net> + * generic/tclOO.h: BUILD_tcloo is never defined (leftover) + * win/makefile.bc: Don't set BUILD_tcloo (leftover) + See also entry below: 2008-06-01 Joe Mistachkin - * 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] +2010-06-01 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2008-07-25 Andreas Kupries <andreask@activestate.com> + * generic/tclNamesp.c: Fix computation of [uplevel] offsets in TIP 348 + * tests/error.test: Only depend on callerPtr chaining now. + * tests/result.test: Needed for upcoming coro patch. - * tests/info.test: Tests 38.* added, exactly testing the tracking of - location for uplevel scripts. +2010-05-31 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCompile.c (TclInitCompileEnv): Reorganized the - initialization of the #280 location information to match the flow in - TclEvalObjEx to get more absolute contexts. - - * 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. - -2008-07-23 Andreas Kupries <andreask@activestate.com> - - * tests/info.test: Reordered the tests to have monotonously - increasing numbers. - - * 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. - -2008-07-22 Andreas Kupries <andreask@activestate.com> - - * generic/tclBasic.c: Added missing function comments. - - * generic/tclCompile.c: Made the new TclEnterCmdWordIndex - * generic/tclCompile.h: static, and ansified. - - * 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]. - -2008-07-21 Don Porter <dgp@users.sourceforge.net> + * generic/tclVar.c: Eliminate some casts to (Tcl_HashTable *) + * generic/tclExecute.c: + * tests/fileSystem.test: Fix filesystem-5.1 test failure on CYGWIN - * tests/encoding.test: Make failing tests pass again. [Bug 1972867] +2010-05-28 Jan Nijtmans <nijtmans@users.sf.net> -2008-07-21 Andreas Kupries <andreask@activestate.com> + * generic/tclInt.h: [Patch 3008541]: Order of TIP #348 fields in + Interp structure - * 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-05-28 Donal K. Fellows <dkf@users.sf.net> -2008-07-21 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclCompCmdsSZ.c (IssueTryFinallyInstructions): [3007374]: + Corrected error in handling of catch contexts to prevent crash with + chained handlers. - * generic/tclFCmd.c: Inodes on windows are unreliable [Bug 2015723] + * generic/tclExecute.c (TclExecuteByteCode): Restore correct operation + of instruction-level execution tracing (had been broken by NRE). -2008-07-20 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-05-27 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * library/opt/optParse.tcl: Don't generate spaces at the end of a + * library/opt/pkgIndex.tcl: line, eliminate ';' at line end, bump to + * tools/uniParse.tcl: v0.4.6 + * generic/tclUniData.c: + * tests/opt.test: + * tests/safe.test: -2008-07-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-05-21 Jan Nijtmans <nijtmans@users.sf.net> - * doc/DictObj.3: Fix error in example. [Bug 2016740] + * tools/installData.tcl: Make sure that copyDir only receives + normalized paths, otherwise it might result in a crash on CYGWIN. + Restyle according to the Tcl style guide. + * generic/tclStrToD.c: [Bug 3005233]: Fix for build on OpenBSD vax -2008-07-08 Don Porter <dgp@users.sourceforge.net> +2010-05-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * generic/tclGet.c: Corrected out of date comments. + * tests/dict.test: Add missing tests for [Bug 3004007], fixed under + the radar on 2010-02-24 (dkf): EIAS violation in + list-dict conversions. -2008-07-07 Andreas Kupries <andreask@activestate.com> +2010-05-19 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCmdIL.c (InfoFrameCmd): Fixed unsafe idiom of setting the - interp result found by Don Porter. + * generic/regcomp.c: Don't use arrays of length 1, just use a + * generic/tclFileName.c: single element then, it makes code more + * generic/tclLoad.c: readable. (Here it even prevents a type cast) -2008-07-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-05-17 Jan Nijtmans <nijtmans@users.sf.net> - * doc/regexp.n, doc/regsub.n: Correct examples. [Bug 1982642] + * generic/tclStrToD.c: [Bug 2996549]: Failure in expr.test on Win32 -2008-07-04 Joe English <jenglish@users.sourceforge.net> +2010-05-17 Donal K. Fellows <dkf@users.sf.net> - * generic/tclEncoding.c(UtfToUtfProc): Avoid unwanted sign extension - when converting incomplete UTF-8 sequences. See [Bug 1908443] for - details. + * generic/tclCmdIL.c (TclInfoFrame): Change this code to use + Tcl_GetCommandFullName rather than rolling its own. Discovered during + the hunting of [Bug 3001438] but unlikely to be a fix. -2008-07-03 Andreas Kupries <andreask@activestate.com> +2010-05-11 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * win/tclWinConsole.c: [Patch 2997087]: Unnecessary type casts. + * win/tclWinDde.c: + * win/tclWinLoad.c: + * win/tclWinNotify.c: + * win/tclWinSerial.c: + * win/tclWinSock.c: + * win/tclWinTime.c: + * win/tclWinPort.h: Don't duplicate CYGWIN timezone #define from + tclPort.h -2008-07-03 Don Porter <dgp@users.sourceforge.net> +2010-05-07 Andreas Kupries <andreask@activestate.com> - * 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] + * 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: -2008-06-29 Don Porter <dgp@users.sourceforge.net> +2010-05-06 Jan Nijtmans <nijtmans@users.sf.net> + + * generic/tclPkg.c: Unnecessary type casts, see [Patch 2997087] + +2010-05-04 Jan Nijtmans <nijtmans@users.sf.net> + + * win/tclWinNotify.c: TCHAR-related fixes, making those two files + * win/tclWinSock.c: compile fine when TCHAR != char. Please see + comments in [FRQ 2965056] (2965056-1.patch). + +2010-05-03 Jan Nijtmans <nijtmans@users.sf.net> + + * generic/tclIORChan.c: Use "tclIO.h" and "tclTomMathDecls.h" + * generic/tclIORTrans.c: everywhere + * generic/tclTomMath.h: + * tools/fix_tommath_h.tcl: + * libtommath/tommath.h: Formatting (# should always be first char on + line) + * win/tclAppInit.c: For MINGW/CYGWIN, use GetCommandLineA + explicitly. + * unix/.cvsignore: Add pkg, *.dll + + * libtommath/tommath.h: CONSTify various useful internal + * libtommath/bn_mp_cmp_d.c: functions (TclBignumToDouble, TclCeil, + * libtommath/bn_mp_cmp_mag.c: TclFloor), and related tommath functions + * libtommath/bn_mp_cmp.c: + * libtommath/bn_mp_copy.c: + * libtommath/bn_mp_count_bits.c: + * libtommath/bn_mp_div_2d.c: + * libtommath/bn_mp_mod_2d.c: + * libtommath/bn_mp_mul_2d.c: + * libtommath/bn_mp_neg.c: + * generic/tclBasic.c: Handle TODO: const correctness ? + * generic/tclInt.h: + * generic/tclStrToD.c: + * generic/tclTomMath.decls: + * generic/tclTomMath.h: + * generic/tclTomMathDecls.h: - *** 8.5.3 TAGGED FOR RELEASE *** +2010-04-30 Don Porter <dgp@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: + * generic/tcl.h: Bump patchlevel to 8.6b1.2 to distinguish + * library/init.tcl: CVS snapshots from earlier snapshots as well + * unix/configure.in: as the 8.6b1 and 8.6b2 releases. * win/configure.in: * unix/configure: autoconf-2.59 * win/configure: - * doc/ObjectType.3: Updated documentation of the Tcl_ObjType - struct to match expectations of Tcl 8.5 [Bug 1917650]. - - * generic/tclPathObj.c: Plug memory leak in [Bug 1999176] fix. Thanks - Rolf Ade for detecting. - -2008-06-28 Don Porter <dgp@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]. - -2008-06-26 Andreas Kupries <andreask@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. - -2008-06-25 Don Porter <dgp@users.sourceforge.net> - - * changes: Update for 8.5.3 release. - -2008-06-25 Andreas Kupries <andreask@activestate.com> - - * 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]. + * generic/tclBinary.c (TclAppendBytesToByteArray): Add comments + * generic/tclInt.h (TclAppendBytesToByteArray): placing overflow + protection responsibility on caller. Convert "len" argument to signed + int which any value already vetted for overflow issues will fit into. + * generic/tclStringObj.c: Update caller; standardize panic msg. -2008-06-25 Pat Thoyts <patthoyts@users.sourceforge.net> - - * win/rules.vc: Backported fix for dde/registry versions and - * win/makefile.vc: the staticpkg build option - -2008-06-24 Don Porter <dgp@users.sourceforge.net> - - * 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]. - -2008-06-23 Don Porter <dgp@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] - -2008-06-19 Don Porter <dgp@users.sourceforge.net> - - * changes: Update for 8.5.3 release. - - * 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] - - * tests/chanio.test: Corrected flawed tests revealed by a -debug 1 - * tests/event.test: -singleproc 1 test suite run. - * tests/io.test: - -2008-06-19 Don Porter <dgp@users.sourceforge.net> - - * changes: Updates for 8.5.3 release. - -2008-06-17 Andreas Kupries <andreask@activestate.com> - - * generic/tclClock.c (ClockConvertlocaltoutcObjCmd): Removed left - over debug output. - -2008-06-17 Andreas Kupries <andreask@activestate.com> - - * 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]. - -2008-06-17 Kevin Kenny <kennykb@acm.org> - - * 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. - -2008-06-16 Andreas Kupries <andreask@activestate.com> - - * 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]. - -2008-06-12 Daniel Steffen <das@users.sourceforge.net> - - * unix/Makefile.in: add complete deps on tclDTrace.h. - - * unix/Makefile.in: clean generated tclDTrace.h file. - * unix/configure.in (SunOS): fix static DTrace-enabled build. - - * unix/tcl.m4 (SunOS-5.11): fix 64bit amd64 support with gcc & Sun cc. - * unix/configure: autoconf-2.59 - - * 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. - -2008-05-26 Jeff Hobbs <jeffh@ActiveState.com> - - * tests/io.test (io-53.9): need to close chan before removing file. - -2008-05-23 Andreas Kupries <andreask@activestate.com> - - * 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. - - * 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. - -2008-05-22 Don Porter <dgp@users.sourceforge.net> - - * 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]. - -2008-05-21 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] - -2008-05-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * 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. - -2008-05-16 Miguel Sofer <msofer@users.sf.net> - - * generic/tclCompile.c: Fix crash with tcl_traceExec. Found and - fixed by Alexander Pasadyn [Bug 1964803]. - -2008-05-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * 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. - -2008-04-26 Zoran Vasiljevic <vasiljevic@users.sourceforge.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. - - 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. - -2008-04-24 Andreas Kupries <andreask@activestate.com> - - * 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.) - - * generic/tclIORChan.c: Fixed the bugs exposed by the new testcases, - redone most of the cleanup and exit handling. - -2008-04-15 Andreas Kupries <andreask@activestate.com> - - * 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. - -2008-04-14 Kevin B. Kenny <kennykb@acm.org> - - * 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. - -2008-04-11 Don Porter <dgp@users.sourceforge.net> - - * 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/configure.in: - * README - - * unix/configure: autoconf (2.59) - * win/configure: - -2008-04-10 Andreas Kupries <andreask@activestate.com> - - * 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). - - * tests/iocmd.test (iocmd-15.{12,13}): Removed. - - * 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. - -2008-04-09 Andreas Kupries <andreask@activestate.com> - - * 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. - - * 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. - -2008-04-08 Andreas Kupries <andreask@activestate.com> - - * tests/io.test (io-53.8): Fixed ordering of vwait and after - cancel. cancel has to be done after the vwait completes. - -2008-04-09 Daniel Steffen <das@users.sourceforge.net> - - * 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 - -2008-04-07 Andreas Kupries <andreask@activestate.com> - - * 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. - - * 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. - -2008-04-07 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. - -2008-04-07 Reinhard Max <max@suse.de> - - * 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'. - -2008-04-05 Kevin B. Kenny <kennykb@acm.org> - - * 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. - -2008-04-04 Andreas Kupries <andreask@activestate.com> - - * 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. - -2008-04-04 Andreas Kupries <andreask@activestate.com> - - * 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'. - - * tests/ioCmd.test (iocmd-24.6): Testcase updated for changed - message. - - * 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. - - * tests/ioCmd.test (iocmd-31.8): Testcase for the above. - -2008-04-03 Andreas Kupries <andreask@activestate.com> - - * 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. - -2008-04-02 Andreas Kupries <andreask@activestate.com> + * generic/tclBinary.c (UpdateStringOfByteArray): [Bug 2994924]: Add + panic when the generated string representation would grow beyond Tcl's + size limits. - * 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. +2010-04-30 Donal K. Fellows <dkf@users.sf.net> -2008-04-01 Andreas Kupries <andreask@activestate.com> + * generic/tclBinary.c (TclAppendBytesToByteArray): Add extra armour + against buffer overflows. - * 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. + * generic/tclBasic.c (NRInterpCoroutine): Corrected handling of + * tests/coroutine.test (coroutine-6.4): arguments to deal with + trickier cases. -2008-04-01 Don Porter <dgp@users.sourceforge.net> +2010-04-30 Miguel Sofer <msofer@users.sf.net> - * generic/tclStubLib.c (Tcl_InitStubs): Added missing error message. - * generic/tclPkg.c (Tcl_PkgInitStubsCheck): + * tests/coroutine.test: testing coroutine arguments after [yield]: + check that only 0/1 allowed -2008-03-30 Kevin Kenny <kennykb@acm.org> +2010-04-30 Donal K. Fellows <dkf@users.sf.net> - * 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. + * generic/tclBasic.c (NRInterpCoroutine): Corrected handling of + arguments to deal with trickier cases. - * unix/configure: autoconf-2.61 + * generic/tclCompCmds.c (TclCompileVariableCmd): Slightly tighter + issuing of instructions. - * 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] + * generic/tclExecute.c (TclExecuteByteCode): Add peephole optimization + of the fact that INST_DICT_FIRST and INST_DICT_NEXT always have a + conditional jump afterwards. -2008-03-26 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c (TclNRYieldObjCmd, TclNRYieldmObjCmd) + (NRInterpCoroutine): Replace magic values for formal argument counts + for coroutine command implementations with #defines, for an increase + in readability. - *** 8.5.2 TAGGED FOR RELEASE *** +2010-04-30 Jan Nijtmans <nijtmans@users.sf.net> - * 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: + * generic/tclMain.c: Unnecessary TCL_STORAGE_CLASS re-definition. It + was used for an ancient dummy reference to Tcl_LinkVar(), but that's + already gone since 2002-05-29. - * unix/configure: autoconf-2.59 - * win/configure: +2010-04-29 Miguel Sofer <msofer@users.sf.net> - * changes: Updated for 8.5.2 release. + * generic/tclCompExpr.c: Slight change in the literal sharing + * generic/tclCompile.c: mechanism to avoid shimmering of + * generic/tclCompile.h: command names. + * generic/tclLiteral.c: -2008-03-28 Donal K. Fellows <dkf@users.sf.net> +2010-04-29 Andreas Kupries <andreask@activestate.com> - * 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! + * 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: -2008-03-27 Kevin B. Kenny <kennykb@acm.org> +2010-04-29 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/Antarctica/Macquarie: + * library/tzdata/Africa/Casablanca: + * library/tzdata/Africa/Tunis: * 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/America/Argentina/San_Luis: + * library/tzdata/Antarctica/Casey: + * library/tzdata/Antarctica/Davis: + * library/tzdata/Asia/Anadyr: * library/tzdata/Asia/Damascus: - * library/tzdata/Asia/Saigon: + * 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: - Changes up to and including Olson's tzdata2008b. + * library/tzdata/Pacific/Fiji: Olson's tzdata2010i. -2008-03-27 Daniel Steffen <das@users.sourceforge.net> +2010-04-29 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclBinary.c (TclAppendBytesToByteArray): [Bug 2992970]: Make + * generic/tclStringObj.c (Tcl_AppendObjToObj): an append of a byte + array to another into an efficent operation. The problem was the (lack + of) a proper growth management strategy for the byte array. + +2010-04-29 Jan Nijtmans <nijtmans@users.sf.net> + + * compat/dirent2.h: Include "tcl.h", not <tcl.h>, like everywhere + * compat/dlfcn.h: else, to ensure that the version in the Tcl + * compat/stdlib.h: distribution is used, not some version from + * compat/string.h: somewhere else. + * compat/unistd.h: + +2010-04-28 Jan Nijtmans <nijtmans@users.sf.net> + + * win/Makefile.in: Remove unused @MAN2TCLFLAGS@ + * win/tclWinPort.h: Move <limits.h> include from tclInt.h to + * generic/tclInt.h: tclWinPort.h, and eliminate unneeded + * generic/tclEnv.c: <stdlib.h>, <stdio.h> and <string.h>, which + are already in tclInt.h + * generic/regcustom.h: Move "tclInt.h" from regcustom.h up to + * generic/regex.h: regex.h. + * generic/tclAlloc.c: Unneeded <stdio.h> include. + * generic/tclExecute.c: Fix gcc warning: comparison between signed and + unsigned. + +2010-04-28 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclInt.h (TclIsVarDirectUnsettable): Corrected flags so that + deletion of traces is not optimized out... + + * generic/tclExecute.c (ExecuteExtendedBinaryMathOp) + (TclCompareTwoNumbers,ExecuteExtendedUnaryMathOp,TclExecuteByteCode): + [Patch 2981677]: Move the less common arithmetic operations (i.e., + exponentiation and operations on non-longs) out of TEBC for a big drop + in the overall size of the stack frame for most code. Net effect on + speed is minimal (slightly faster overall in tclbench). Also extended + the number of places where TRESULT handling is replaced with a jump to + dedicated code. + +2010-04-27 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclExecute.c (TclExecuteByteCode): Rearrange location of an + assignment to shorten the object code. + +2010-04-27 Jan Nijtmans <nijtmans@users.sf.net> + + * generic/tclIOUtil.c (Tcl_FSGetNativePath): [Bug 2992292]: + tclIOUtil.c assignment type mismatch compiler warning + * generic/regguts.h: If tclInt.h or tclPort.h is already + * generic/tclBasic.c: included, don't include <limits.h> + * generic/tclExecute.c: again. Follow-up to [Bug 2991415]: + * generic/tclIORChan.c: tclport.h #included before limits.h + * generic/tclIORTrans.c: See comments in [Bug 2991415] + * generic/tclObj.c: + * generic/tclOOInt.h: + * generic/tclStrToD.c: + * generic/tclTomMath.h: + * generic/tclTomMathInterface.c: + * generic/tclUtil.c: + * compat/strtod.c: + * compat/strtol.c: - * unix/tcl.m4 (SunOS-5.1x): fix 64bit support for Sun cc. [Bug 1921166] +2010-04-27 Kevin B. Kenny <kennykb@acm.org> - * unix/configure: autoconf-2.59 + * unix/tclLoadDl.c (FindSymbol): [Bug 2992295]: Simplified the logic + so that the casts added in Donal Fellows's change for the same bug are + no longer necessary. -2008-03-26 Don Porter <dgp@users.sourceforge.net> +2010-04-26 Donal K. Fellows <dkf@users.sf.net> - * changes: Updated for 8.5.2 release. + * unix/tclLoadDl.c (FindSymbol): [Bug 2992295]: Added an explicit cast + because auto-casting between function and non-function types is never + naturally warning-free. -2008-03-24 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclStubInit.c: Add a small amount of gcc-isms (with #ifdef + * generic/tclOOStubInit.c: guards) to ensure that warnings are issued + when these files are older than the various *.decls files. - * generic/tclBinary.c: [Bug 1923966] - crash in binary format - * tests/binary.test: Added tests for the above crash condition. +2010-04-25 Miguel Sofer <msofer@users.sf.net> -2008-03-21 Donal K. Fellows <dkf@users.sf.net> + * generic/tclBasic.c: Add unsupported [yieldm] command. Credit + * generic/tclInt.h: Lars Hellstrom for the basic idea. - * doc/switch.n: Clarified documentation in respect of two-argument - invokation. [Bug 1899962] +2010-04-24 Miguel Sofer <msofer@users.sf.net> - * tests/switch.test: Added more tests of regexp-mode compilation of - the [switch] command. [Bug 1854435] + * generic/tclBasic.c: Modify api of TclSpliceTailcall() to fix + * generic/tclExecute.c: [yieldTo], which had not survived the latest + * generic/tclInt.h: mods to tailcall. Thanks kbk for detecting + the problem. -2008-03-20 Donal K. Fellows <dkf@users.sf.net> +2010-04-23 Jan Nijtmans <nijtmans@users.sf.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. + * unix/tclUnixPort.h: [Bug 2991415]: tclport.h #included before + limits.h -2008-03-19 Donal K. Fellows <dkf@users.sf.net> +2010-04-22 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tcl.h, generic/tclThreadAlloc.c (Tcl_GetMemoryInfo): Make - sure this function is available when direct linking. [Bug 1868171] + * generic/tclPlatDecls.h: Move TCHAR fallback typedef from tcl.h to + * generic/tcl.h: tclPlatDecls.h (as suggested by dgp) + * generic/tclInt.h: fix typo + * generic/tclIOUtil.c: Eliminate various unnecessary + * unix/tclUnixFile.c: type casts. + * unix/tclUnixPipe.c: + * win/tclWinChan.c: + * win/tclWinFCmd.c: + * win/tclWinFile.c: + * win/tclWinLoad.c: + * win/tclWinPipe.c: - * tests/reg.test (reg-33.14): Marked nonPortable because some - environments have small default stack sizes. [Bug 1905562] +2010-04-20 Jan Nijtmans <nijtmans@users.sf.net> -2008-03-18 Andreas Kupries <andreask@activestate.com> + * generic/tclTest.c: Use function prototypes from the FS API. + * compat/zlib/*: Upgrade to zlib 1.2.5 - * 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. +2010-04-19 Donal K. Fellows <dkf@users.sf.net> - ***INCOMPATIBILITY*** for all Tcl Modules already written in non-utf-8 - compatible encodings. + * generic/tclExecute.c (TclExecuteByteCode): Improve commenting and + reduce indentation for the Invocation Block. -2008-03-18 Don Porter <dgp@users.sourceforge.net> +2010-04-18 Donal K. Fellows <dkf@users.sf.net> - * generic/tclExecute.c: Patch from Miguel Sofer to correct the - alignment of memory allocated by GrowEvaluationStack(). [Bug 1914503] + * doc/unset.n: [Bug 2988940]: Fix typo. -2008-03-18 Andreas Kupries <andreask@activestate.com> +2010-04-15 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * win/tclWinPort.h: Move inclusion of <tchar.h> from + * generic/tcl.h: tclPlatDecls.h to tclWinPort.h, where it + * generic/tclPlatDecls.h: belongs. Add fallback in tcl.h, so TCHAR is + available in win32 always. -2008-03-16 Donal K. Fellows <dkf@users.sf.net> +2010-04-15 Donal K. Fellows <dkf@users.sf.net> - * 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] + * doc/try.n: [Bug 2987551]: Fix typo. - * doc/lreplace.n: Clarified documentation of what happens with - negative indices. [Bug 1905809] Added example, tidied up formatting. +2010-04-14 Andreas Kupries <andreask@activestate.com> -2008-03-14 Don Porter <dgp@users.sourceforge.net> + * library/platform/platform.tcl: Linux platform identification: + * library/platform/pkgIndex.tcl: Check /lib64 for existence of files + * unix/Makefile.in: matching libc* before accepting it as base + * win/Makefile.in: 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. - * generic/tclBasic.c (OldMathFuncProc): Same workaround protection - from bad TclStackAlloc() alignment. Thanks George Peter Staplin. +2010-04-13 Jan Nijtmans <nijtmans@users.sf.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]. + * win/tclWinPort.h: Fix [Patch 2986105]: conditionally defining + * win/tclWinFile.c: strcasecmp/strncasecmp + * win/tclWinLoad.c: Fix gcc warning: comparison of unsigned expression + >= 0 is always true -2008-03-14 Reinhard Max <max@suse.de> +2010-04-08 Donal K. Fellows <dkf@users.sf.net> - * generic/tclTest.c: Ignore the return value of write() when we are - * unix/tclUnixPipe.c: about to exit anyways. + * generic/tclCompCmdsSZ.c (TclSubstCompile): If the first token does + not result in a *guaranteed* push of a Tcl_Obj on the stack, we must + push an empty object. Otherwise it is possible to get to a 'concat1' + or 'done' without enough values on the stack, resulting in a crash. + Thanks to Joe Mistachkin for identifying a script that could trigger + this case. -2008-03-13 Daniel Steffen <das@users.sourceforge.net> +2010-04-07 Donal K. Fellows <dkf@users.sf.net> - * 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 + * doc/catch.n, doc/info.n, doc/return.n: Formatting. -2008-03-13 Don Porter <dgp@users.sourceforge.net> +2010-04-06 Donal K. Fellows <dkf@users.sf.net> - * changes: Updated for 8.5.2 release. + * doc/Load.3: Minor corrections of formatting and cross links. - * generic/tclStrToD.c: Resolve identifier conflict over "pow10" with - libm in Cygwin and DJGPP. Thanks to Gordon Schumacher and Philip - Moore. [Patch 1800636] +2010-04-06 Jan Nijtmans <nijtmans@users.sf.net> -2008-03-12 Daniel Steffen <das@users.sourceforge.net> + * win/configure: (regenerate with autoconf-2.59) + * unix/configure: + * unix/installManPage: [Bug 2982540]: configure and install* script + * unix/install-sh: files should always have LF line ending. + * doc/Load.3: Fix signature of Tcl_LoadFile in documentation. - * 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'. +2010-04-05 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2008-03-12 Andreas Kupries <andreask@activestate.com> + TIP #348 IMPLEMENTATION - * doc/info.n: Replaced {expand} with {*}. + * generic/tclBasic.c: [Patch 2868499]: Substituted error stack + * generic/tclCmdIL.c: + * generic/tclInt.h: + * generic/tclNamesp.c: + * generic/tclResult.c: + * doc/catch.n: + * doc/info.n: + * doc/return.n: + * tests/cmdMZ.test: + * tests/error.test: + * tests/execute.test: + * tests/info.test: + * tests/init.test: + * tests/result.test: -2008-03-12 Jeff Hobbs <jeffh@ActiveState.com> +2010-04-05 Donal K. Fellows <dkf@users.sf.net> - * 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] + * unix/tcl.m4 (SC_ENABLE_THREADS): Flip the default for whether to + * win/tcl.m4 (SC_ENABLE_THREADS): build in threaded mode. Part of + * win/rules.vc: TIP #364. -2008-03-11 Jeff Hobbs <jeffh@ActiveState.com> + * unix/tclLoadDyld.c (FindSymbol): Better human-readable error message + generation to match code in tclLoadDl.c. - * 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] +2010-04-04 Donal K. Fellows <dkf@users.sf.net> - * library/http/http.tcl: Whitespace changes, code cleanup. Allow http - to be re-sourced without overwriting http state. + * generic/tclIOUtil.c, unix/tclLoadDl.c: Minor changes to enforce + Engineering Manual style rules. -2008-03-11 Daniel Steffen <das@users.sourceforge.net> + * doc/FileSystem.3, doc/Load.3: Documentation for TIP#357. - * generic/tclEncoding.c (LoadEscapeEncoding): Avoid leaking escape - sub-encodings, fixes encoding-11.1 failing after iso2022-jp loaded. - [Bug 1893053] + * macosx/tclMacOSXBundle.c (OpenResourceMap): [Bug 2981528]: Only + define this function when HAVE_COREFOUNDATION is defined. - * macosx/tclMacOSXNotify.c: Avoid using CoreFoundation after fork() on - Darwin 9 even when TclpCreateProcess() uses vfork(). +2010-04-02 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * generic/tcl.decls (Tcl_LoadFile): Add missing "const" in signature, + * generic/tclIOUtil.c (Tcl_LoadFile): and some formatting fixes + * generic/tclDecls.h: (regenerated) - * unix/tclUnixPort.h: Workaround vfork() problems - in llvm-gcc-4.2.1 -O4 build. +2010-04-02 Donal K. Fellows <dkf@users.sf.net> - * unix/tclUnixPort.h: Move MODULE_SCOPE compat define - to top [Bug 1911102]. + * generic/tclIOUtil.c (Tcl_LoadFile): Corrections to previous commit + * unix/tclLoadDyld.c (TclpDlopen): to make it build on OSX. - * 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: +2010-04-02 Kevin B. Kenny <kennykb@acm.org> - * unix/configure: autoconf-2.59 + TIP #357 IMPLEMENTATION + TIP #362 IMPLEMENTATION - * unix/Makefile.in (install-strip): Strip non-global symbols from - dynamic library. + * generic/tclStrToD.c: [Bug 2952904]: Defer creation of the smallest + floating point number until it is actually used. (This change avoids a + bogus syslog message regarding a 'floating point software assist + fault' on SGI systems.) - * unix/tclUnixNotfy.c: Fix warning. + * library/reg/pkgIndex.tcl: [TIP #362]: Fixed first round of bugs + * tests/registry.test: resulting from the recent commits of + * win/tclWinReg.c: changes in support of the referenced + TIP. - * tests/exec.test (exec-9.7): Reduce timing sensitivity - * tests/socket.test (socket-2.11): (esp. on multi-proc machines). + * generic/tcl.decls: [TIP #357]: First round of changes + * generic/tclDecls.h: to export Tcl_LoadFile, + * generic/tclIOUtil.c: Tcl_FindSymbol, and Tcl_FSUnloadFile + * generic/tclInt.h: to the public API. + * generic/tclLoad.c: + * generic/tclLoadNone.c: + * generic/tclStubInit.c: + * tests/fileSystem.test: + * tests/load.test: + * tests/unload.test: + * unix/tclLoadDl.c: + * unix/tclLoadDyld.c: + * unix/tclLoadNext.c: + * unix/tclLoadOSF.c: + * unix/tclLoadShl.c: + * unix/tclUnixPipe.c: + * win/Makefile.in: + * win/tclWinLoad.c: - * tests/fCmd.test (fCmd-9.4): Skip on Darwin 9 (xfail). +2010-03-31 Donal K. Fellows <dkf@users.sf.net> -2008-03-11 Miguel Sofer <msofer@users.sf.net> + * doc/registry.n: Added missing documentation of TIP#362 flags. - * 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] + * doc/package.n: [Bug 2980210]: Document the arguments taken by + the [package present] command correctly. -2008-03-10 Don Porter <dgp@users.sourceforge.net> + * doc/Thread.3: Added some better documentation of how to create and + use a thread using the C-level thread API, based on realization that + no such tutorial appeared to exist. - * changes: Updated for 8.5.2 release. +2010-03-31 Jan Nijtmans <nijtmans@users.sf.net> - * doc/http.n: Revised to indicate that [package require http 2.5.5] - is needed to get all the documented commands ([http::meta]). + * test/cmdMZ.test: [FRQ 2974744]: share exception codes (ObjType?): + * test/error.test: Revised test cases, making sure that abbreviated + * test/proc-old.test: codes are checked resulting in an error, and + checking for the exact error message. - * generic/tclEvent.c (TclDefaultBgErrorHandlerObjCmd): Added error - * tests/event.test (event-5.*): checking to protect against callers - passing invalid return options dictionaries. [Bug 1901113] +2010-03-30 Andreas Kupries <andreask@activestate.com> - * 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] + * 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. -2008-03-07 Andreas Kupries <andreask@activestate.com> +2010-03-30 Don Porter <dgp@users.sourceforge.net> - * 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. + * 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. -2008-03-07 Don Porter <dgp@users.sourceforge.net> +2010-03-30 Jan Nijtmans <nijtmans@users.sf.net> - * 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] + * generic/tclIndexObj: [FRQ 2974744]: share exception codes + * generic/tclResult.c: further optimization, making use of indexType. + * generic/tclZlib.c: [Bug 2979399]: uninitialized value troubles - * generic/tclCmdAH.c: Revised direct evaluation implementation of - [expr] so that [expr $e] caches compiled bytecodes for the expression - as the intrep of $e. +2010-03-30 Donal K. Fellows <dkf@users.sf.net> - * tests/execute.test (execute-6.*): More tests checking that - script bytecode is invalidated in the right situations. + TIP #362 IMPLEMENTATION -2008-03-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * win/tclWinReg.c: [Patch 2960976]: Apply patch from Damon Courtney to + * tests/registry.test: allow the registry command to be told to work + * win/Makefile.in: with both 32-bit and 64-bit registries. Bump + * win/configure.in: version of registry package to 1.3. + * win/makefile.bc: + * win/makefile.vc: + * win/configure: autoconf-2.59 - * win/configure.in: Add AC_HEADER_STDC to support msys/win64. +2010-03-29 Jan Nijtmans <nijtmans@users.sf.net> -2008-03-06 Donal K. Fellows <dkf@users.sf.net> + * unix/tcl.m4: Only test for -visibility=hidden with gcc + (Second remark in [Bug 2976508]) + * unix/configure: regen - * doc/namespace.n: Minor tidying up. [Bug 1909019] +2010-03-29 Don Porter <dgp@users.sourceforge.net> -2008-03-04 Don Porter <dgp@users.sourceforge.net> + * generic/tclStringObj.c: Fix array overrun in test format-1.12 + caught by valgrind testing. - * tests/execute.test (6.3,4): Added tests for [Bug 1899164]. +2010-03-27 Jan Nijtmans <nijtmans@users.sf.net> -2008-03-03 Reinhard Max <max@suse.de> + * generic/tclInt.h: [FRQ 2974744]: share exception codes + * generic/tclResult.c: (ObjType?) + * generic/tclCmdMZ.c: + * generic/tclCompCmdsSZ.c: - * unix/tclUnixChan.c: Fix mark and space parity on Linux, which uses - CMSPAR instead of PAREXT. +2010-03-26 Jan Nijtmans <nijtmans@users.sf.net> -2008-03-02 Miguel Sofer <msofer@users.sf.net> + * generic/tclExecute.c: [Bug 2976508]: Tcl HEAD fails on HP-UX - * generic/tclNamesp.c (GetNamespaceFromObj): - * tests/interp.test (interp-28.2): Spoil the intrep of an nsNameType - obj when the reference crosses interpreter boundaries. +2010-03-25 Donal K. Fellows <dkf@users.sf.net> -2008-02-29 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixFCmd.c (TclUnixCopyFile): [Bug 2976504]: Corrected + number of arguments to fstatfs() call. - * 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(). + * macosx/tclMacOSXBundle.c, macosx/tclMacOSXFCmd.c: + * macosx/tclMacOSXNotify.c: Reduce the level of ifdeffery in the + functions of these files to improve readability. They need to be + audited for whether complexity can be removed based on the minimum + supported version of OSX, but that requires a real expert. - * 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(). +2010-03-24 Don Porter <dgp@users.sourceforge.net> -2008-02-28 Joe English <jenglish@users.sourceforge.net> + * generic/tclResult.c: [Bug 2383005]: Revise [return -errorcode] so + * tests/result.test: that it rejects illegal non-list values. - * unix/tclPort.h, unix/tclCompat.h, unix/tclUnixChan.h: Reduce scope - of <sys/filio.h> and <sys/ioctl.h> #includes. [Patch 1903339] +2010-03-24 Donal K. Fellows <dkf@users.sf.net> -2008-02-28 Joe English <jenglish@users.sourceforge.net> + * generic/tclOOInfo.c (InfoObjectMethodTypeCmd) + (InfoClassMethodTypeCmd): Added introspection of method types so that + it is possible to find this info out without using errors. + * generic/tclOOMethod.c (procMethodType): Now that introspection can + reveal the name of method types, regularize the name of normal methods + to be the name of the definition type used to create them. - * 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]. + * tests/async.test (async-4.*): Reduce obscurity of these tests by + putting the bulk of the code for them inside the test body with the + help of [apply]. -2008-02-28 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdMZ.c (TryPostBody, TryPostHandler): Make sure that the + [try] command does not trap unwinding due to limits. - * 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. +2010-03-23 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompExpr.c (ParseExpr): Plug memory leak in error - message generation. + * generic/tclCmdMZ.c: [Bug 2973361]: Revised fix for computing + indices of script arguments to [try]. - * generic/tclStringObj.c (Tcl_AppendFormatToObj): [format %llx $big] - leaked an mp_int. +2010-03-23 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * generic/tclCmdMZ.c: Make error message in "try" implementation + * generic/tclCompCmdsSZ.c: exactly the same as the one in "return" + * tests/error.test: + * libtommath/mtests/mpi.c: Single "const" addition -2008-02-27 Pat Thoyts <patthoyts@users.sourceforge.net> +2010-03-22 Don Porter <dgp@users.sourceforge.net> - * library/http/http.tcl: [Bug 705956] - fix inverted logic when - cleaning up socket error in geturl. + * generic/tclCmdMZ.c: [Bug 2973361]: Compute the correct integer + values to identify the argument indices of the various script + arguments to [try]. Passing in -1 led to invalid memory reads. -2008-02-27 Kevin B. Kenny <kennykb@acm.org> +2010-03-20 Donal K. Fellows <dkf@users.sf.net> - * 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/exec.n: Make it a bit clearer that there is an option to run a + pipeline in the background. -2008-02-26 Joe English <jenglish@users.sourceforge.net> + * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Lift the restriction + * generic/tclIO.c (TclCopyChannel, CopyData): on the [fcopy] command + * generic/tclIO.h (CopyState): that forced it to only + copy up to 2GB per script-level callback. Now it is anything that can + fit in a (signed) 64-bit integer. Problem identified by Frederic + Bonnet on comp.lang.tcl. Note that individual low-level reads and + writes are still smaller as the optimal buffer size is smaller. - * generic/tclIOUtil.c, unix/tclUnixPort.h, unix/tclUnixChan.c: - Remove dead/unused portability-related #defines and unused conditional - code. See [Patch 1901828] for discussion. +2010-03-20 Jan Nijtmans <nijtmans@users.sf.net> -2008-02-26 Joe English <jenglish@users.sourceforge.net> + * win/stub16.c: Don't hide that we use the ASCII API here. + (does someone still use that?) + * win/tclWinPipe.c: 2 unnecessary type casts. - * generic/tclIORChan.c (enum MethodName), - * generic/tclCompExpr.c (enum Marks): More stray trailing ","s +2010-03-19 Donal K. Fellows <dkf@users.sf.net> -2008-02-26 Joe English <jenglish@users.sourceforge.net> + * generic/tclCompCmdsSZ.c (TclCompileThrowCmd): Added compilation for + the [throw] command. - * 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. +2010-03-18 Don Porter <dgp@users.sourceforge.net> -2008-02-26 Joe English <jenglish@users.sourceforge.net> + * 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. - * generic/tclCompile.h: Remove stray trailing "," from enum - InstOperandType definition (C99ism). +2010-03-18 Donal K. Fellows <dkf@users.sf.net> -2008-02-26 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCompCmdsSZ.c (IssueTryFinallyInstructions): + [Bug 2971921]: Corrected jump so that it doesn't skip into the middle + of an instruction! Tightened the instruction issuing. Moved endCatch + calls closer to their point that they guard, ensuring correct ordering + of result values. - * generic/tclUtil.c (TclReToGlob): Fix the handling of the last star - * tests/regexpComp.test: possibly being escaped in - determining right anchor. [Bug 1902436] +2010-03-17 Andreas Kupries <andreask@activestate.com> -2008-02-26 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclIORTrans.c (ReflectInput, ReflectOutput) + (ReflectSeekWide): [Bug 2921116]: Added missing TclEventuallyFree + calls for preserved ReflectedTransform* structures. Reworked + ReflectInput to preserve the structure for its whole life, not only in + InvokeTclMethod. - * 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] + * generic/tclIO.c (Tcl_GetsObj): [Bug 2921116]: Regenerate topChan, + may have been changed by a self-modifying transformation. -2008-02-22 Pat Thoyts <patthoyts@users.sourceforge.net> + * tests/ioTrans/test (iortrans-4.8, iortrans-4.9, iortrans-5.11) + (iortrans-7.4, iortrans-8.3): New test cases. - * 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] +2010-03-16 Jan Nijtmans <nijtmans@users.sf.net> -2008-02-13 Don Porter <dgp@users.sourceforge.net> + * compat/zlib/*: Upgrade zlib to version 1.2.4. + * win/makefile.vc: + * unix/Makefile.in: + * win/tclWinChan.c: Don't cast away "const" without reason. - * 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 +2010-03-12 Jan Nijtmans <nijtmans@users.sf.net> - * unix/configure: autoconf (2.59) - * win/configure: + * win/makefile.vc: [Bug 2967340]: Static build was failing. + * win/.cvsignore: -2008-02-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-03-10 Jan Nijtmans <nijtmans@users.sf.net> - * 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] + * generic/tclTest.c: Remove unnecessary '&' decoration for + * generic/tclIOUtil.c: function pointers + * win/tclWin32Dll.c: Double declaration of TclNativeDupInternalRep + * unix/tclIOUtil.c: + * unix/dltest/.cvsignore: Ignore *.so here - * unix/README: Documented missing configure flags. [Bug 1799011] +2010-03-09 Andreas Kupries <andreask@activestate.com> -2008-02-06 Kevin B. Kenny <kennykb@acm.org> + * generic/tclIORChan.c: [Bug 2936225]: Thanks to Alexandre Ferrieux + * doc/refchan.n: <ferrieux@users.sourceforge.net> for debugging and + * tests/ioCmd.test: fixing the problem. It is the write-side + equivalent to the bug fixed 2009-08-06. - * 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). +2010-03-09 Don Porter <dgp@users.sourceforge.net> -2008-02-04 Don Porter <dgp@users.sourceforge.net> + * 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. - *** 8.5.1 TAGGED FOR RELEASE *** +2010-03-07 Jan Nijtmans <nijtmans@users.sf.net> - * changes: Updated for 8.5.1 release. + * generic/tclTest.c: Test that tclOO stubs are present in stub + library + * generic/tclOOMethod.c: Applied missing part of [Patch 2961556] + * win/tclWinInt.h: Change all tclWinProcs signatures to use + * win/tclWin32Dll.c: TCHAR* in stead of WCHAR*. This is meant + * win/tclWinDde.c: as preparation to make [Enh 2965056] + * win/tclWinFCmd.c: possible at all. + * win/tclWinFile.c: + * win/tclWinPipe.c: + * win/tclWinSock.c: - * generic/tcl.h: Bump to 8.5.1 for release. - * library/init.tcl: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/configure.in: +2010-03-06 Jan Nijtmans <nijtmans@users.sf.net> - * unix/configure: autoconf-2.59 - * win/configure: + * generic/tclStubLib.c: Remove presence of tclTomMathStubsPtr here. + * generic/tclTest.c: Test that tommath stubs are present in stub + library. -2008-02-04 Miguel Sofer <msofer@users.sf.net> +2010-03-05 Donal K. Fellows <dkf@users.sf.net> - * generic/tclExecute.c (INST_CONCAT1): Fix optimisation for in-place - concatenation (was going over String type) + * generic/tclIORTrans.c (ForwardProc): [Bug 2964425]: When cleaning + the stables, it is sometimes necessary to do more than the minimum. In + this case, rationalizing the variables for a forwarded limit? method + required removing an extra Tcl_DecrRefCount too. -2008-02-02 Daniel Steffen <das@users.sourceforge.net> + * generic/tclOO.h, generic/tclOOInt.h: [Patch 2961556]: Change TclOO + to use the same style of function typedefs as Tcl, as this is about + the last chance to get this right. - * unix/configure.in (Darwin): Correct Info.plist year substitution in - non-framework builds. + ***POTENTIAL INCOMPATIBILITY*** + Source code that uses function typedefs from TclOO will need to update + variables and argument definitions so that pointers to the function + values are used instead. Binary compatibility is not affected. + + * generic/*.c, generic/tclInt.h, unix/*.c, macosx/*.c: Applied results + of doing a Code Audit. Principal changes: + * Use do { ... } while (0) in macros + * Avoid shadowing one local variable with another + * Use clearer 'foo.bar++;' instead of '++foo.bar;' where result not + required (i.e., semantically equivalent); clarity is increased + because it is bar that is incremented, not foo. + * Follow Engineering Manual rules on spacing and declarations + +2010-03-04 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclOO.c (ObjectRenamedTrace): [Bug 2962664]: Add special + handling so that when the class of classes is deleted, so is the class + of objects. Immediately. + + * generic/tclOOInt.h (ROOT_CLASS): Add new flag for specially marking + the root class. Simpler and more robust than the previous technique. + +2010-03-04 Jan Nijtmans <nijtmans@users.sf.net> + + * generic/tclGetDate.y: 3 unnecessary MODULE_SCOPE + * generic/tclDate.c: symbols + * generic/tclStubLib.c: Split tommath stub lib + * generic/tclTomMathStubLib.c: in separate file. + * win/makefile.bc: + * win/Makefile.in: + * win/makefile.vc: + * win/tcl.dsp: + * unix/Makefile.in: + * unix/tcl.m4: Cygwin only gives warning + * unix/configure: using -fvisibility=hidden + * compat/strncasecmp.c: A few more const's + * compat/strtod.c: + * compat/strtoul.c: - * unix/configure: autoconf-2.59 +2010-03-03 Andreas Kupries <andreask@activestate.com> -2008-01-30 Miguel Sofer <msofer@users.sf.net> + * doc/refchan.n: Followup to ChangeLog entry 2009-10-07 + (generic/tclIORChan.c). Fixed the documentation to explain that errno + numbers are operating system dependent, and reworked the associated + example. - * generic/tclInterp.c (Tcl_GetAlias): Fix for [Bug 1882373], thanks go - to an00na. +2010-03-02 Jan Nijtmans <nijtmans@users.sf.net> -2008-01-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * unix/tcl.m4: [FRQ 2959069]: Support for -fvisibility=hidden + * unix/configure (regenerated with autoconf-2.59) - * tools/tcltk-man2html.tcl: Reworked manual page scraper to do a - proper job of handling references to Ttk options. [Tk Bug 1876493] +2010-03-01 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2008-01-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * unix/tclUnixSock.c: Refrain from a possibly lengthy reverse-DNS + lookup on 0.0.0.0 when calling [fconfigure -sockname] on an + universally-bound (default) server socket. - * 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] + * generic/tclIndexObj.c: fix [AT 86258]: special-casing of empty + tables when generating error messages for [::tcl::prefix match]. -2008-01-25 Don Porter <dgp@users.sourceforge.net> +2010-02-28 Donal K. Fellows <dkf@users.sf.net> - * changes: Updated for 8.5.1 release. + * generic/tclCmdIL.c: More additions of {TCL LOOKUP} error-code + generation to various subcommands of [info] as part of long-term + project to classify all Tcl's generated errors. -2008-01-23 Don Porter <dgp@users.sourceforge.net> +2010-02-28 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * generic/tclStubInit.c: [Bug 2959713]: Link error with gcc 4.1 - * generic/tclCompile.h: Demote TclCompEvalObj() from internal stubs to - * generic/tclInt.decls: a MODULE_SCOPE routine declared in - tclCompile.h. +2010-02-27 Donal K. Fellows <dkf@users.sf.net> - * generic/tclIntDecls.h: make genstubs - * generic/tclStubInit.c: + * 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). -2008-01-22 Don Porter <dgp@users.sourceforge.net> + * generic/tclMain.c (Tcl_Main): [Bug 801429]: Factor out the holding + of the client-installed main loop function into thread-specific data. - * generic/tclTimer.c (AfterProc): Replace Tcl_EvalEx() with - Tcl_EvalObjEx() to evaluate [after] callbacks. Part of trend to favor - compiled execution over direct evaluation. + ***POTENTIAL INCOMPATIBILITY*** + Code that previously tried to set the main loop from another thread + will now fail. On the other hand, there is a fairly high probability + that such programs would have been failing before due to the lack of + any kind of inter-thread memory barriers guarding accesses to this + part of Tcl's state. -2008-01-22 Miguel Sofer <msofer@users.sf.net> +2010-02-26 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdIl.c (Tcl_LreverseObjCmd): - * tests/cmdIL.test (cmdIL-7.7): Fix crash on reversing an empty list. - [Bug 1876793] + * generic/tclCompCmds.c: Split this file into two pieces to make it + * generic/tclCompCmdsSZ.c: easier to work with. It's still two very + long files even after the split. -2008-01-20 Jeff Hobbs <jeffh@ActiveState.com> +2010-02-26 Reinhard Max <max@suse.de> - * unix/README: Minor typo fixes [Bug 1853072] + * doc/safe.n: Name the installed file after the command it documents. + Use "Safe Tcl" instead of the "Safe Base", "Safe Tcl" mixture. - * generic/tclIO.c (TclGetsObjBinary): Operate on topmost channel. - [Bug 1869405] (Ficicchia) +2010-02-26 Donal K. Fellows <dkf@users.sf.net> -2008-01-17 Don Porter <dgp@users.sourceforge.net> + * unix/Makefile.in (NATIVE_TCLSH): Added this variable to allow for + better control of what tclsh to use for various scripts when doing + cross compiling. An imperfect solution, but works. - * generic/tclCompExpr.c: Revision to preserve parsed intreps of - numeric and boolean literals when compiling expressions with (optimize - == 1). + * unix/installManPage: Remap non-alphanumeric sequences in filenames + to single underscores (especially colons). -2008-01-15 Miguel Sofer <msofer@users.sf.net> +2010-02-26 Pat Thoyts <patthoyts@users.sourceforge.net> - * 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: + * tests/zlib.test: Add tests for [Bug 2818131] which was crashing with + mismatched zlib algorithms used in combination with gets. This issue + has been fixed by Andreas's last commit. - * generic/tclCompExpr.c: Fix literal leak in exprs [Bug 1869989] (dgp) - * generic/tclExecute.c: - * tests/compExpr.test: +2010-02-25 Jan Nijtmans <nijtmans@users.sf.net> - * doc/proc.n: Changed wording for access to non-local variables; added - mention to [namespace upvar]. Lame attempt at dealing with - documentation. [Bug 1872708] + * generic/tclHash.c: [FRQ 2958832]: Further speed-up of the + * generic/tclLiteral.c: ouster-hash function. + * generic/tclObj.c: + * generic/tclCkalloc.c: Eliminate various unnecessary (ClientData) + * generic/tclTest.c: type casts. + * generic/tclTestObj.c: + * generic/tclTestProcBodyObj.c: + * unix/tclUnixTest.c: + * unix/tclUnixTime.c: + * unix/tclXtTest.c: -2008-01-15 Miguel Sofer <msofer@users.sf.net> +2010-02-24 Donal K. Fellows <dkf@users.sf.net> - * 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] + * generic/tclDictObj.c (SetDictFromAny): Prevent the list<->dict + * generic/tclListObj.c (SetListFromAny): conversion code from taking + too many liberties. Stops loss of duplicate keys in some scenarios. + Many thanks to Jean-Claude Wippler for finding this. -2008-01-13 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c (TclExecuteByteCode): Reduce ifdef-fery and + size of activation record. More variables shared across instructions + than before. - * win/tclWinSerial.c (SerialCloseProc, TclWinOpenSerialChannel): Use - critical section for read & write side. [Bug 1353846] (newman) + * doc/socket.n: [Bug 2957688]: Clarified that [socket -server] works + with a command prefix. Extended example to show this in action. -2008-01-11 Miguel Sofer <msofer@users.sf.net> +2010-02-22 Andreas Kupries <andreask@activestate.com> - * unix/tclUnixThrd.c (TclpThreadGetStackSize): Restore stack checking - functionality in freebsd. [Bug 1850424] + * generic/tclZlib.c (ZlibTransformInput): [Bug 2762041]: Added a hack + to work around the general problem, early EOF recognition based on the + base-channel, instead of the data we have ready for reading in the + transform. Long-term we need a proper general fix (likely tracking EOF + on each level of the channel stack), with attendant complexity. + Furthermore, Z_BUF_ERROR can be ignored, and must be when feeding the + zlib code with single characters. - * unix/tclUnixThrd.c (TclpThreadGetStackSize): Fix for crash in - freebsd. [Bug 1860425] +2010-02-22 Jan Nijtmans <nijtmans@users.sf.net> -2008-01-10 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixPort.h: Remove unnecessary EXTERN's, which already are + in the global stub table. + * unix/configure.in: Use @EXEEXT@ in stead of @EXT_SUFFIX@ + * unix/tcl.m4: + * unix/Makefile.in: Use -DBUILD_tcl for CYGWIN + * unix/configure: (regenerated) + * unix/dltest/pkg*.c: Use EXTERN to control CYGWIN exported symbols + * generic/tclCmdMZ.c: Remove some unnecessary type casts. + * generic/tclCompCmds.c: + * generic/tclTest.c: + * generic/tclUtil.c: - * 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] +2010-02-21 Mo DeJong <mdejong@users.sourceforge.net> -2008-01-09 George Peter Staplin <georgeps@xmission.com> + * tests/regexp.test: Add test cases back ported from Jacl regexp work. - * doc/vwait.n: Add a missing be to fix a typo. +2010-02-21 Jan Nijtmans <nijtmans@users.sf.net> -2008-01-04 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclDate.c: Some more const tables. + * generic/tclGetDate.y: + * generic/regc_lex.c: + * generic/regerror.c: + * generic/tclStubLib.c: + * generic/tclBasic.c: Fix [Bug 2954959] expr abs(0.0) is -0.0 + * tests/expr.test: - * tools/tcltk-man2html.tcl (make-man-pages): Make man page title use - more specific info on lhs to improve tabbed browser view titles. +2010-02-20 Donal K. Fellows <dkf@users.sf.net> -2008-01-02 Donal K. Fellows <dkf@users.sf.net> + * generic/tclCompCmds.c (TclCompileStringLenCmd): Make [string length] + of a constant string be handled better (i.e., handle backslashes too). - * 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. +2010-02-19 Stuart Cassoff <stwo@users.sourceforge.net> -2008-01-02 Don Porter <dgp@users.sourceforge.net> + * tcl.m4: Correct compiler/linker flags for threaded builds on + OpenBSD. + * configure: (regenerated). - * 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/configure.in: - * README +2010-02-19 Donal K. Fellows <dkf@users.sf.net> - * unix/configure: autoconf (2.59) - * win/configure: + * 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-12-31 Donal K. Fellows <dkf@users.sf.net> +2010-02-17 Donal K. Fellows <dkf@users.sf.net> - * doc/dict.n: Clarified meaning of dictionary values following - discussion on comp.lang.tcl. + * generic/tclHash.c (HashStringKey): Restore these hash functions + * generic/tclLiteral.c (HashString): to use the classic algorithm. + * generic/tclObj.c (TclHashObjKey): Community felt normal case + speed to be more important than resistance to malicious cases. For + now, hashes that need to deal with the malicious case can use a custom + hash table and install their own hash function, though that is not + functionality exposed to the script level. -2007-12-26 Miguel Sofer <msofer@users.sf.net> + * generic/tclCompCmds.c (TclCompileDictUpdateCmd): Stack depth must be + correctly described when compiling a body to prevent crashes in some + debugging modes. - * 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. +2010-02-16 Jan Nijtmans <nijtmans@users.sf.net> -2007-12-25 Miguel Sofer <msofer@users.sf.net> + * generic/tclInt.h: Change order of various struct members, + fixing potential binary incompatibility with Tcl 8.5 - * 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. +2010-02-16 Donal K. Fellows <dkf@users.sf.net> -2007-12-23 Jeff Hobbs <jeffh@ActiveState.com> + * 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. - * 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. + * generic/tclLiteral.c (HashString): Missed updating to FNV in one + place; the literal table (a copy of the hash table code...) -2007-12-21 Miguel Sofer <msofer@users.sf.net> +2010-02-15 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCmdIL.c: Speed patch for lsort [Patch 1856994]. + * tools/genStubs.tcl: Reverted earlier rename from tcl*Stubs to + * generic/tclBasic.c: tcl*ConstStubs, it's not necessary at all. + * generic/tclOO.c: + * generic/tclTomMathInterface.c: + * generic/tclStubInit.c: (regenerated) + * generic/tclOOStubInit.c: (regenerated) + * generic/tclEnsemble.c:Fix signed-unsigned mismatch + * win/tclWinInt.h: make tclWinProcs "const" + * win/tclWin32Dll.c: + * win/tclWinFCmd.c: Eliminate all internal Tcl_WinUtfToTChar + * win/tclWinFile.c: and Tcl_WinTCharToUtf calls, needed + * win/tclWinInit.c: for mslu support. + * win/tclWinLoad.c: + * win/tclWinPipe.c: + * win/tclWinSerial.c: + * win/.cvsignore: + * compat/unicows/readme.txt: [FRQ 2819611]: Add first part of MSLU + * compat/unicows/license.txt: support. + * compat/unicows/unicows.lib: -2007-12-21 Miguel Sofer <msofer@users.sf.net> +2010-02-15 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdIL.c (Tcl_LsortObjCmd, Tcl_LsearchObjCmd): Avoid - calling SelectObjFromSublist when there are no sublists. + * generic/tclOO.c (AllocObject, SquelchedNsFirst, ObjectRenamedTrace): + * generic/tclNamesp.c (Tcl_DeleteNamespace): [Bug 2950259]: Revised + the namespace deletion code to provide an additional internal callback + that gets triggered early enough in namespace deletion to allow TclOO + destructors to run sanely. Adjusted TclOO to take advantage of this, + so making tearing down an object by killing its namespace appear to + work seamlessly, which is needed for Itcl. (Note that this is not a + feature that will ever be backported to 8.5, and it remains not a + recommended way of deleting an object.) -2007-12-21 Miguel Sofer <msofer@users.sf.net> +2010-02-13 Donal K. Fellows <dkf@users.sf.net> - * 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. + * generic/tclCompCmds.c (TclCompileSwitchCmd): Divided the [switch] + compiler into three pieces (after the model of [try]): a parser, an + instruction-issuer for chained tests, and an instruction-issuer for + jump tables. -2007-12-19 Don Porter <dgp@users.sourceforge.net> + * generic/tclEnsemble.c: Split the ensemble engine out into its own + file rather than keeping it mashed together with the namespace code. - *** 8.5.0 TAGGED FOR RELEASE *** +2010-02-12 Jan Nijtmans <nijtmans@users.sf.net> - * changes: Updated for 8.5.0 release. + * win/tcl.m4: Use -pipe for gcc on win32 + * win/configure: (mingw/cygwin) (regenerated) + * win/.cvsignore: Add .lib, .exp and .res here -2007-12-19 Jeff Hobbs <jeffh@ActiveState.com> +2010-02-11 Mo DeJong <mdejong@users.sourceforge.net> - * 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] + * tests/list.test: Add tests for explicit \0 in a string argument to + the list command. -2007-12-18 Don Porter <dgp@users.sourceforge.net> +2010-02-11 Donal K. Fellows <dkf@users.sf.net> - * changes: Updated for 8.5.0 release. + * generic/tclIOCmd.c (Tcl_OpenObjCmd): [Bug 2949740]: Make sure that + we do not try to put a NULL pipeline channel into binary mode. -2007-12-18 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2010-02-11 Mo DeJong <mdejong@users.sourceforge.net> - * 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] + [Bug 2826551, Patch 2948425]: Assorted regexp bugs related to -all, + -line and -start options and newlines. + * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): If -offset is given, treat it + as the start of the line if the previous character was a newline. Fix + nasty edge case where a zero length match would not advance the index. + * tests/regexp.test: Add regression tests back ported from Jacl. + Checks for a number of issues related to -line and newline handling. A + few of tests were broken before the patch and continue to be broken, + marked as knownBug. -2007-12-17 Don Porter <dgp@users.sourceforge.net> +2010-02-11 Donal K. Fellows <dkf@users.sf.net> - * changes: Updated for 8.5.0 release. + * generic/tclOO.c (ObjectRenamedTrace): [Bug 2949397]: Prevent + destructors from running on the two core class objects when the whole + interpreter is being destroyed. -2007-12-17 Miguel Sofer <msofer@users.sf.net> +2010-02-09 Donal K. Fellows <dkf@users.sf.net> - * 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] + * generic/tclCompCmds.c (TclCompileTryCmd, IssueTryInstructions) + (IssueTryFinallyInstructions): Added compiler for the [try] command. + It is split into three pieces that handle the parsing of the tokens, + the issuing of instructions for finally-free [try], and the issuing of + instructions for [try] with finally; there are enough differences + between the all cases that it was easier to split the code rather than + have a single function do the whole thing. -2007-12-14 Jeff Hobbs <jeffh@ActiveState.com> +2010-02-09 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * generic/tclIOUtil.c (FsAddMountsToGlobResult): fix the tail - conversion of vfs mounts. [Bug 1602539] + * tools/genStubs.tcl: Remove dependency on 8.5+ idiom "in" in + expressions. - * win/README: updated notes +2010-02-08 Donal K. Fellows <dkf@users.sf.net> -2007-12-14 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclZlib.c (Tcl_ZlibDeflate, Tcl_ZlibInflate): [Bug 2947783]: + Make sure that the result is an unshared object before appending to it + so that nothing crashes if it is shared (use in Tcl code was not + affected by this, but use from C was an issue). - * tests/winFile.test: Fixed tests for win2k with long machine name +2010-02-06 Donal K. Fellows <dkf@users.sf.net> -2007-12-14 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclHash.c (HashStringKey): Replace Tcl's crusty old hash + * generic/tclObj.c (TclHashObjKey): function with the algorithm + due to Fowler, Noll and Vo. This is slightly faster (assuming the + presence of hardware multiply) and has somewhat better distribution + properties of the resulting hash values. Note that we only ever used + the 32-bit version of the FNV algorithm; Tcl's core hash engine + assumes that hash values are simple unsigned ints. - * win/nmakehlp.c: Support compilation with MSVC9 for AMD64. - * win/makefile.vc: + ***POTENTIAL INCOMPATIBILITY*** + Code that depends on hash iteration order (especially tests) may well + be disrupted by this. Where a definite order is required, the fix is + usually to just sort the results after extracting them from the hash. + Where this is insufficient, the code that has ceased working was + always wrong and was only working by chance. + +2010-02-05 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclCompCmds.c (TclCompileErrorCmd): Added compilation of the + [error] command. No new bytecodes. + +2010-02-05 Jan Nijtmans <nijtmans@users.sf.net> + + * tools/genStubs.tcl: Follow-up to earlier commit today: + Eliminate the need for an extra Stubs Pointer for adressing + a static stub table: Just change the exported table from + static to MODULE_SCOPE. + * generic/tclBasic.c + * generic/tclOO.c + * generic/tclTomMathInterface.c + * generic/tcl*Decls.h (regenerated) + * generic/tclStubInit.c (regenerated) + * generic/tclOOStubInit.c (regenerated) + * generic/tclTest.c (minor formatting) + +2010-02-05 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclVar.c: More consistency in errorcode generation. + + * generic/tclOOBasic.c (TclOO_Object_Destroy): Rewrote to be NRE-aware + when calling destructors. Note that there is no guarantee that + destructors will always be called in an NRE context; that's a feature + of the 'destroy' method only. + + * generic/tclEncoding.c: Add 'const' to many function-internal vars + that are never pointing to things that are written to. + +2010-02-05 Jan Nijtmans <nijtmans@users.sf.net> + + * tools/genStubs.tcl: Follow-up to [2010-01-29] commit: + prevent space within stub table function parameters if the + parameter type is a pointer. + * win/tclWinInt.h: Minor Formatting + * generic/tcl.h: VOID -> void and other formatting + * generic/tclInt.h: Minor formatting + * generic/tclInt.decls: Change signature of TclNRInterpProcCore, + * generic/tclOO.decls: and TclOONewProc(Instance|)MethodEx, + * generic/tclProc.c: indicating that errorProc is a function, + * generic/tclOOMethod.c:pointer, and other formatting + * generic/tcl*Decls.h: (regenerated) + * generic/tclVar.c: gcc warning(line 3703): 'pattern' may be used + uninitialized in this function + gcc warning(line 3788): 'matched' may be used + uninitialized in this function + +2010-02-04 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclVar.c: Added more use of error-codes and reduced the + stack overhead of older interfaces. + (ArrayGetCmd): Stop silly crash when using a trivial pattern due to + error in conversion to ensemble. + (ArrayNamesCmd): Use the object RE interface for faster matching. -2007-12-13 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2010-02-03 Donal K. Fellows <dkf@users.sf.net> - * doc/trace.n: Clarified documentation of enterstep and leavestep - traces, including adding example. [Bug 614282, 1701540, 1755984] + * generic/tclVar.c (ArrayUnsetCmd): More corrections. -2007-12-12 Don Porter <dgp@users.sourceforge.net> +2010-02-02 Donal K. Fellows <dkf@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]. + * generic/tclVar.c: Turned the [array] command into a true ensemble. - * changes: Updated for 8.5.0 release. + * generic/tclOO.c (AllocObject, MyDeleted): A slightly faster way to + handle the deletion of [my] is with a standard delete callback. This + is because it doesn't require an additional memory allocation during + object creation. Also reduced the amount of string manipulation + performed during object creation to further streamline memory + handling; this is not backported to the 8.5 package as it breaks a + number of abstractions. -2007-12-10 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclOOBasic.c (TclOO_Object_Destroy): [Bug 2944404]: Do not + crash when a destructor deletes the object that is executing that + destructor. - * generic/tclUtil.c (TclReToGlob): reduce escapes in conversion - when not necessary +2010-02-01 Donal K. Fellows <dkf@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 + * 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-12-10 Joe English <jenglish@users.sourceforge.net> + * 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. - * 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". +2010-01-30 Donal K. Fellows <dkf@users.sf.net> -2007-12-10 Daniel Steffen <das@users.sourceforge.net> + * generic/tclCompile.c (tclInstructionTable): Bytecode instructions + * generic/tclCompCmds.c (TclCompileUnsetCmd): to allow the [unset] + * generic/tclExecute.c (TclExecuteByteCode): command to be compiled + with the compiler being a complete compilation for all compile-time + decidable uses. - * 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. + * generic/tclVar.c (TclPtrUnsetVar): Var reference version of the code + to unset a variable. Required for INST_UNSET bytecodes. - * 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. +2010-01-29 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclDecls.h: regen with new genStubs.tcl. - * generic/tclIntDecls.h: [Bug 1834288] + * generic/tcl.h: [Bug 2942081]: Reverted Tcl_ThreadDataKey type change + Changed some Tcl_CallFrame fields from "char *" + to "void *". This saves unnecessary space on + Cray's (and it's simply more correct). + + * tools/genStubs.tcl: No longer generate a space after "*" and + immediately after a function name, so the + format of function definitions in tcl*Decls.h + match all other tcl*.h header files. + * doc/ParseArgs.3: Change Tcl_ArgvFuncProc, Tcl_ArgvGenFuncProc + * generic/tcl.h: and GetFrameInfoValueProc to be function + * generic/tclInt.h: definitions, not pointers, for consistency + * generic/tclOOInt.h: with all other Tcl function definitions. + * generic/tclIndexObj.c: + * generic/regguts.h: CONST -> const + * generic/tcl.decls: Formatting + * generic/tclTomMath.decls: Formatting + * generic/tclDecls.h: (regenerated) + * generic/tclIntDecls.h: * generic/tclIntPlatDecls.h: + * generic/tclOODecls.h: + * generic/tclOOIntDecls.h: * generic/tclPlatDecls.h: - * generic/tclStubInit.c: - -2007-12-09 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] - -2007-12-08 Donal K. Fellows <dkf@users.sf.net> - - * doc/expr.n, doc/mathop.n: Improved the documentation of the - operators. [Bug 1823622] - - * 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] - -2007-12-07 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclExecute.c (TclExecuteByteCode INST_REGEXP): - * generic/tclCompCmds.c (TclCompileRegexpCmd): Pass correct RE - compile flags at compile time, and use TCL_REG_NOSUB. - - * generic/tclIOCmd.c (FinalizeIOCmdTSD, Tcl_PutsObjCmd): cache - stdout channel object for [puts $str] calls. - -2007-12-06 Don Porter <dgp@users.sourceforge.net> - - * README: Remove mention of dead comp.lang.tcl.announce - newsgroup. [Bug 1846433]. - - * 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] - - * doc/AddErrInfo.3: Documentation for the new routines in TIP 270. - * doc/Interp.3: - * doc/StringObj.3: - -2007-12-06 Don Porter <dgp@users.sourceforge.net> - - * doc/namespace.n: Documentation for zero-argument form of - [namespace import] (TIP 261) [Bug 1596416] - -2007-12-06 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclInt.h: add TclGetChannelFromObj decl - (TclMatchIsTrivial): simplify TclMatchIsTrivial to remove ] check. - -2007-12-06 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - - * 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. - - * generic/tclCompCmds.c (TclCompileEnsemble): Ensure that the right - number of tokens are copied. [Bug 1845320] - - * generic/tclNamesp.c (TclMakeEnsemble): Added missing release of a - DString. [Bug 1845397] - -2007-12-05 Jeff Hobbs <jeffh@ActiveState.com> - - * 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] - -2007-12-05 Miguel Sofer <msofer@users.sf.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). - -2007-12-05 Jeff Hobbs <jeffh@ActiveState.com> - - * win/configure, win/tcl.m4 (LIBS_GUI): mingw needs -lole32 - -loleaut32 but not msvc for Tk's [send]. [Bug 1844749] - -2007-12-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Prevent shimmering crash - when -exact and -integer/-real are mixed. [Bug 1844789] - -2007-12-03 Donal K. Fellows <dkf@users.sf.net> - - * unix/tclUnixChan.c (CreateSocketAddress): Add extra #ifdef-fery to - make code compile on BSD 5. [Bug 1618235, again] - -2007-12-03 Don Porter <dgp@users.sourceforge.net> - - * 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: - -2007-12-03 Jeff Hobbs <jeffh@ActiveState.com> - - * win/configure, win/tcl.m4 (LIBS_GUI): remove ole32.lib oleaut32.lib - -2007-12-03 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * 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] - -2007-11-29 Jeff Hobbs <jeffh@ActiveState.com> - - * 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. - -2007-11-29 Don Porter <dgp@users.sourceforge.net> - - * 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. - -2007-11-28 Don Porter <dgp@users.sourceforge.net> - - * 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] - - * 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/tclIO.c: Simplify test and improve accuracy of error - message in latest changes. - -2007-11-28 Pat Thoyts <patthoyts@users.sourceforge.net> - - * generic/tclIO.c: -eofchar must support no eofchar. - -2007-11-27 Miguel Sofer <msofer@users.sf.net> - - * generic/tclBasic.c: remove unneeded call in Tcl_CreateInterp, add - comments. - -2007-11-27 Don Porter <dgp@users.sourceforge.net> - - * win/tclWinSock.c: Add mising encoding conversion of the [info - hostname] value from the system encoding to Tcl's internal encoding. - - * 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] - -2007-11-26 Miguel Sofer <msofer@users.sf.net> - - * generic/tclBasic.c: - * generic/tclInt.h: - * 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. - -2007-11-24 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclCompCmds.c (TclCompileDictAppendCmd): Fix bug in [dict - append] compiler which caused strange stack corruption. [Bug 1837392] - -2007-11-23 Andreas Kupries <andreask@activestate.com> - - * 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. - - 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'. - - * tests/ioCmd.test: Updated the testsuite. - -2007-11-23 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclVar.c (Tcl_ArrayObjCmd): handle the right data for - * tests/var.test (var-14.2): [array names $var -glob $ptn] - -2007-11-23 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * generic/tclCmdMZ.c (String*Cmd, TclInitStringCmd): Rebuilt [string] - * generic/tclCompCmds.c (TclCompileString*Cmd): as an ensemble. + * generic/tclTomMathDecls.h: -2007-11-22 Donal K. Fellows <dkf@users.sf.net> +2010-01-28 Donal K. Fellows <dkf@users.sf.net> - * generic/tclDictObj.c (Dict*Cmd,TclInitDictCmd): Rebuilt the [dict] - * generic/tclCompCmds.c (TclCompileDict*Cmd): command as an ensemble. + * generic/tclOOBasic.c (TclOO_Object_Destroy): Move the execution of + destructors to a point where they can produce an error. This will not + work for all destructors, but it does mean that more failing calls of + them will be caught. + * generic/tclOO.c (AllocObject, MyDeletedTrace, ObjectRenamedTrace): + (ObjectNamespaceDeleted): Stop various ways of getting at commands + with dangling pointers to the object. Also increases the reliability + of calling of destructors (though most destructors won't benefit; when + an object is deleted namespace-first, its destructors are not run in a + nice state as the namespace is partially gone). -2007-11-22 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2010-01-25 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCmdMZ.c (Tcl_StringObjCmd): Rewrote the [string] and - * generic/tclDictObj.c (Tcl_DictObjCmd): [dict] implementations to be - ready for conversion to ensembles. + * generic/tclOOStubInit.c: Remove double includes (which causes a + * generic/tclOOStubLib.c: warning in CYGWIN compiles) + * unix/.cvsignore: add confdefs.h - * tests/string.test (string-12.22): Flag shimmering bug found in - [string range]. +2010-01-22 Donal K. Fellows <dkf@users.sf.net> -2007-11-21 Donal K. Fellows <dkf@users.sf.net> + * doc/proc.n: [Bug 1970629]: Define a bit better what the current + namespace of a procedure is. - * 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). +2010-01-22 Jan Nijtmans <nijtmans@users.sf.net> -2007-11-21 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclInt.decls: Don't use DWORD and HANDLE here. + * generic/tclIntPlatDecls.h: + * generic/tcl.h: Revert [2009-12-21] change, instead + * generic/tclPort.h: resolve the CYGWIN inclusion problems by + * win/tclWinPort.h: re-arranging the inclusions at other + places. + * win/tclWinError.c + * win/tclWinPipe.c + * win/tcl.m4: Make cygwin configuration error into + * win/configure.in: a warning: CYGWIN compilation works + * win/configure: although there still are test failures. - * 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. +2010-01-22 Donal K. Fellows <dkf@users.sf.net> - * generic/various: Start to return more useful Error codes, currently - mainly on assorted lookup failures. + * generic/tclExecute.c (TclExecuteByteCode): Improve error code + generation from some of the tailcall-related bits of TEBC. -2007-11-20 Donal K. Fellows <dkf@users.sf.net> +2010-01-21 Miguel Sofer <msofer@users.sf.net> - * 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. + * generic/tclCompile.h: NRE-enable direct eval on BC spoilage + * generic/tclExecute.c: [Bug 2910748] + * tests/nre.test: - ***POTENTIAL INCOMPATIBILITY*** - For any code that depended on the (strange) old iteration order. +2010-01-19 Donal K. Fellows <dkf@users.sf.net> - * generic/tclConfig.c (QueryConfigObjCmd): Correct usage of - Tcl_WrongNumArgs. + * doc/dict.n: [Bug 2929546]: Clarify just what [dict with] and [dict + update] are doing with variables. -2007-11-19 Don Porter <dgp@users.sourceforge.net> +2010-01-18 Andreas Kupries <andreask@activestate.com> - *** 8.5b3 TAGGED FOR RELEASE *** + * 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. - * 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: +2010-01-18 Donal K. Fellows <dkf@users.sf.net> - * unix/configure: autoconf (2.59) - * win/configure: + * 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. - * changes: Updated for 8.5b3 release. +2010-01-13 Donal K. Fellows <dkf@users.sf.net> -2007-11-19 Kevin Kenny <kennykb@users.sourceforge.net> + * tools/tcltk-man2html.tcl: More factoring out of special cases + * tools/tcltk-man2html-utils.tcl: so that they are described outside + the engine file. Now there is only one real set of special cases in + there, to handle the .SO/.OP/.SE directives. - * 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. +2010-01-13 Jan Nijtmans <nijtmans@users.sf.net> -2007-11-18 Daniel Steffen <das@users.sourceforge.net> + * generic/tcl.h: Fix TCL_LL_MODIFIER for Cygwin + * generic/tclEnv.c: Fix CYGWIN compilation problems, + * generic/tclInt.h: and remove some unnecessary + * generic/tclPort.h: double includes. + * generic/tclPlatDecls.h: + * win/cat.c: + * win/tclWinConsole.c: + * win/tclWinFCmd.c: + * win/tclWinFile.c: + * win/tclWinPipe.c: + * win/tclWinSerial.c: + * win/tclWinThrd.c: + * win/tclWinPort.h: Put win32 includes first + * unix/tclUnixChan.c: Forgot one CONST change - * generic/tclExecute.c (TclExecuteByteCode:INST_EXIST_*): Fix read - traces not firing on non-existent array elements. [Bug 1833522] +2010-01-12 Donal K. Fellows <dkf@users.sf.net> -2007-11-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * tools/tcltk-man2html.tcl: Make the generation of the list of things + to process the docs from simpler and more flexible. Also factored out + the lists of special cases. - * generic/tclCmdIL.c (TclInitInfoCmd): Rename the implementation - commands for [info] to be something more "expected". +2010-01-10 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * win/tclWinDde.c: VC++ 6.0 doesn't have + * win/tclWinReg.c: PDWORD_PTR + * win/tclWinThrd.c: Fix various minor gcc warnings. + * win/tclWinTime.c: + * win/tclWinConsole.c: Put channel type definitions + * win/tclWinChan.c: in static const memory + * win/tclWinPipe.c: + * win/tclWinSerial.c: + * win/tclWinSock.c: + * generic/tclIOGT.c: + * generic/tclIORChan.c: + * generic/tclIORTrans.c: + * unix/tclUnixChan.c: + * unix/tclUnixPipe.c: + * unix/tclUnixSock.c: + * unix/configure: (regenerated with autoconf 2.59) + * tests/info.test: Make test independant from + tcltest implementation. - * generic/tclInt.h (ENSEMBLE_COMPILE): Added flag to allow for cleaner - turning on and off of ensemble bytecode compilation. +2010-01-10 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCompile.c (TclCompileScript): Add the cmdPtr to the list - of arguments passed to command compilers. + * tests/namespace.test (namespace-51.17): [Bug 2898722]: Demonstrate + that there are still bugs in the handling of resolution epochs. This + bug is not yet fixed. -2007-11-15 Don Porter <dgp@users.sourceforge.net> + * tools/tcltk-man2html.tcl: Split the man->html converter into + * tools/tcltk-man2html-utils.tcl: two pieces for easier maintenance. + Also made it much less verbose in its printed messages by default. - * generic/regc_nfa.c: Fixed infinite loop in the regexp compiler. - [Bug 1810038] +2010-01-09 Donal K. Fellows <dkf@users.sf.net> - * generic/regc_nfa.c: Corrected looping logic in fixempties() to - avoid wasting time walking a list of dead states. [Bug 1832612] + * tools/tcltk-man2html.tcl: Added basic support for building the docs + for contributed packages into the HTML versions. Prompted by question + on Tcler's Chat by Tom Krehbiel. Note that there remain problems in + the documentation generated due to errors in the contributed docs. -2007-11-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2010-01-05 Don Porter <dgp@users.sourceforge.net> - * generic/tclNamesp.c (NamespaceEnsembleCmd): Must pass a non-NULL - interp to Tcl_SetEnsemble* functions. + * 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. - * doc/re_syntax.n: Try to make this easier to read. It's still a very - difficult manual page! +2010-01-03 Donal K. Fellows <dkf@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]. + * unix/tcl.m4 (SC_CONFIG_CFLAGS): [Bug 1636685]: Use the configuration + for modern FreeBSD suggested by the FreeBSD porter. -2007-11-15 Pat Thoyts <patthoyts@users.sourceforge.net> +2010-01-03 Miguel Sofer <msofer@users.sf.net> - * win/tclWin32Dll.c: Prefer UINT_PTR to DWORD_PTR when casting pointers - to integer types for greater portability. [Bug 1831253] + * generic/tclBasic.c: [Bug 2724403]: Fix leak of coroutines on + * generic/tclCompile.h: namespace deletion. Added a test for this + * generic/tclNamesp.c: leak, and also a test for leaks on namespace + * tests/coroutine.test: deletion. + * tests/namespace.test: -2007-11-15 Daniel Steffen <das@users.sourceforge.net> +2009-12-30 Donal K. Fellows <dkf@users.sf.net> - * macosx/Tcl.xcodeproj/project.pbxproj: add new chanio.test. - * macosx/Tcl.xcode/project.pbxproj: + * 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. -2007-11-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2009-12-30 Miguel Sofer <msofer@users.sf.net> - * 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. + * library/init.tcl (unknown): [Bug 2824981]: Fix infinite recursion of + ::unknown when [set] is undefined. - * 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. +2009-12-29 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCompCmds.c (TclCompileInfoCmd): Simple compiler for the - [info] command that only handles [info exists]. + * generic/tclHistory.c (Tcl_RecordAndEvalObj): Reduce the amount of + allocation and deallocation of memory by caching objects in the + interpreter assocData table. - * generic/tclExecute.c (TclExecuteByteCode:INST_EXIST_*): New - instructions to allow the testing of whether a variable exists. + * generic/tclObj.c (Tcl_GetCommandFromObj): Rewrite the logic so that + it does not require making assignments part way through an 'if' + condition, which was deeply unclear. -2007-11-14 Andreas Kupries <andreask@activestate.com> + * generic/tclInterp.c (Tcl_MakeSafe): [Bug 2895741]: Make sure that + the min() and max() functions are supported in safe interpreters. - * 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. +2009-12-29 Pat Thoyts <patthoyts@users.sourceforge.net> -2007-11-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclBinary.c: [Bug 2922555]: Handle completely invalid input + * tests/binary.test: to the decode methods. - * 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] +2009-12-28 Donal K. Fellows <dkf@users.sf.net> -2007-11-13 Jeff Hobbs <jeffh@ActiveState.com> + * unix/Makefile.in (trace-shell, trace-test): [FRQ 1083288]: Added + targets to allow easier tracing of shell and test invokations. - * generic/tclCompCmds.c (TclCompileRegexpCmd): clean up comments, only - free dstring on OK from TclReToGlob. - (TclCompileSwitchCmd): simplify TclReToGlob usage. + * unix/configure.in: [Bug 942170]: Detect the st_blocks field of + * generic/tclCmdAH.c (StoreStatData): 'struct stat' correctly. + * generic/tclFileName.c (Tcl_GetBlocksFromStat): + * generic/tclIOUtil.c (Tcl_Stat): -2007-11-14 Donal K. Fellows <dkf@users.sf.net> + * 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. - * 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] +2009-12-27 Donal K. Fellows <dkf@users.sf.net> -2007-11-13 Donal K. Fellows <dkf@users.sf.net> + * doc/namespace.n (SCOPED SCRIPTS): [Bug 2921538]: Updated example to + not be quite so ancient. - * 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. +2009-12-25 Jan Nijtmans <nijtmans@users.sf.net> - * doc/mathop.n: Clarify definitions of some operations. + * generic/tclCmdMZ.c: CONST -> const + * generic/tclParse.c -2007-11-13 Miguel Sofer <msofer@users.sf.net> +2009-12-23 Donal K. Fellows <dkf@users.sf.net> - * 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. + * library/safe.tcl (AliasSource, AliasExeName): [Bug 2913625]: Stop + information about paths from leaking through [info script] and [info + nameofexecutable]. -2007-11-13 Pat Thoyts <patthoyts@users.sourceforge.net> +2009-12-23 Jan Nijtmans <nijtmans@users.sf.net> - * unix/tcl.m4: Added autoconf goo to detect and make use of - * unix/configure.in: getaddrinfo and friends. + * unix/tcl.m4: Install libtcl8.6.dll in bin directory + * unix/Makefile.in: * unix/configure: (regenerated) -2007-11-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * 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] - -2007-11-13 Don Porter <dgp@users.sourceforge.net> - - * generic/regcomp.c: Convert optst() from expensive no-op to a - cheap no-op. - -2007-11-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * 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]. - -2007-11-12 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclGet.c (Tcl_Get, Tcl_GetInt): revert use of TclGet* macros - due to compiler warning. These cases won't save time either. - - * generic/tclUtil.c (TclReToGlob): add more comments, set interp result - if specified on error. - -2007-11-12 Miguel Sofer <msofer@users.sf.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: +2009-12-22 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclCmdIL.c (Tcl_LsortObjCmd): [Bug 2918962]: Stop crash when + -index and -stride are used together. + +2009-12-21 Jan Nijtmans <nijtmans@users.sf.net> + + * generic/tclThreadStorage.c: Fix gcc warning, using gcc-4.3.4 on + cygwin: missing initializer + * generic/tclOOInt.h: Prevent conflict with DUPLICATE + definition in WINAPI's nb30.h + * generic/rege_dfa.c: Fix macro conflict on CYGWIN: don't use + "small". + * generic/tcl.h: Include <winsock2.h> before <stdio.h> on + CYGWIN + * generic/tclPathObj.c + * generic/tclPort.h + * tests/env.test: Don't unset WINDIR and TERM, it has a + special meaning on CYGWIN (both in UNIX + and WIN32 mode!) + * generic/tclPlatDecls.h: Include <tchar.h> through tclPlatDecls.h + * win/tclWinPort.h: stricmp -> strcasecmp + * win/tclWinDde.c: _wcsicmp -> wcscasecmp + * win/tclWinFile.c + * win/tclWinPipe.c + * win/tclWinSock.c + * unix/tcl.m4: Add dynamic loading support to CYGWIN + * unix/configure (regenerated) + * unix/Makefile.in - THIS PATCH WAS REVERTED: initial (mis)measurements overstated the - perfomance wins, which turn out to be tiny. Not worth the complication. +2009-12-19 Miguel Sofer <msofer@users.sf.net> -2007-11-11 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclBasic.c: [Bug 2917627]: Fix for bad cmd resolution by + * tests/coroutine.test: coroutines. Thanks to schelte for finding it. - * 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. +2009-12-16 Donal K. Fellows <dkf@users.sf.net> -2007-11-11 Miguel Sofer <msofer@users.sf.net> + * library/safe.tcl (::safe::AliasGlob): Upgrade to correctly support a + larger fraction of [glob] functionality, while being stricter about + directory management. - * generic/tclResult.c (ResetObjResult): clarify the logic. +2009-12-11 Jan Nijtmans <nijtmans@users.sf.net> - * 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/tclTest.c: Fix gcc warning: ignoring return value of + * unix/tclUnixNotify.c: "write", declared with attribute + * unix/tclUnixPipe.c: warn_unused_result. + * generic/tclInt.decls: CONSTify functions TclpGetUserHome and + * generic/tclIntDecls.h:TclSetPreInitScript (TIP #27) * 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: + * win/tclWinFile.c: + * unix/tclUnixFile.c: -2007-11-11 Daniel Steffen <das@users.sourceforge.net> +2009-12-16 Donal K. Fellows <dkf@users.sf.net> - * unix/tclUnixTime.c (TclpWideClicksToNanoseconds): Fix issues with - * generic/tclInt.h: int64_t overflow. + * doc/tm.n: [Bug 1911342]: Formatting rewrite to avoid bogus crosslink + to the list manpage when generating HTML. - * generic/tclBasic.c: Fix stack check failure case if stack grows up - * unix/tclUnixInit.c: Simplify non-crosscompiled case. + * 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: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 +2009-12-14 Donal K. Fellows <dkf@users.sf.net> -2007-11-10 Miguel Sofer <msofer@users.sf.net> + * doc/file.n (file tempfile): [Bug 2388866]: Note that this only ever + creates files on the native filesystem. This is a design feature. - * generic/tclExecute.c: Fast path for INST_LIST_INDEX when the index is - not a list. +2009-12-13 Miguel Sofer <msofer@users.sf.net> - * generic/tclBasic.c: - * unix/configure.in: - * unix/tclUnixInit.c: Detect stack grwoth direction at compile time, - only fall to runtime detection when crosscompiling. + * generic/tclBasic.c: Release TclPopCallFrame() from its + * generic/tclExecute.c: tailcall-management duties + * generic/tclNamesp.c: - * unix/configure: autoconf 2.61 + * generic/tclBasic.c: Moving TclBCArgumentRelease call from + * generic/tclExecute.c: TclNRTailcallObjCmd to TEBC, so that the + pairing of the Enter and Release calls is clearer. - * 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). +2009-12-12 Donal K. Fellows <dkf@users.sf.net> -2007-11-10 Kevin Kenny <kennykb@acm.org> + * 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/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. +2009-12-11 Jan Nijtmans <nijtmans@users.sf.net> -2007-11-10 Miguel Sofer <msofer@users.sf.net> + * generic/tclBinary.c: Fix gcc warning, using gcc-4.3.4 on cygwin + * generic/tclCompExpr.c:warning: array subscript has type 'char' + * generic/tclPkg.c: + * libtommath/bn_mp_read_radix.c: + * win/makefile.vc: [Bug 2912773]: Revert to version 1.203 + * unix/tclUnixCompat.c: Fix gcc warning: signed and unsigned type + in conditional expression. - * 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. +2009-12-11 Donal K. Fellows <dkf@users.sf.net> -2007-11-09 Miguel Sofer <msofer@users.sf.net> + * tools/tcltk-man2html.tcl (long-toc, cross-reference): [FRQ 2897296]: + Added cross links to sections within manual pages. - * generic/tclResult.c (ResetObjResult): new shortcut. +2009-12-11 Miguel Sofer <msofer@users.sf.net> - * generic/tclAsync.c: - * generic/tclBasic.c: + * generic/tclBasic.c: [Bug 2806407]: Full nre-enabling of coroutines * 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] -2007-11-09 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclBasic.c: Small cleanup - * 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. + * generic/tclExecute.c: Fix panic in http11.test caused by buggy + earlier commits in coroutine management. - * generic/tclBinary.c (Tcl_GetByteArrayFromObj): check type before - func jump (perf). +2009-12-10 Andreas Kupries <andreask@activestate.com> -2007-11-07 Jeff Hobbs <jeffh@ActiveState.com> + * 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. - * 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] +2009-12-10 Miguel Sofer <msofer@users.sf.net> - * generic/tclIO.c (TclGetsObjBinary): Add an efficient binary path for - [gets]. - (DoWriteChars): Special case for 1-byte channel write. + * generic/tclBasic.c: Reducing the # of moving parts for coroutines + * generic/tclExecute.c: by delegating more to tebc; eliminate the + special coroutine CallFrame. -2007-11-06 Miguel Sofer <msofer@users.sf.net> +2009-12-09 Andreas Kupries <andreask@activestate.com> - * 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/tclIO.c: [Bug 2901998]: Applied Alexandre Ferrieux's patch + fixing the inconsistent buffered I/O. Tcl's I/O now flushes buffered + output before reading, discards buffered input before writing, etc. -2007-11-05 Andreas Kupries <andreask@activestate.com> +2009-12-09 Miguel Sofer <msofer@users.sf.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/tclBasic.c: Ensure right lifetime of varFrame's (objc,objv) + for coroutines. - * 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. + * generic/tclExecute.c: Code regrouping -2007-11-03 Miguel Sofer <msofer@users.sf.net> +2009-12-09 Donal K. Fellows <dkf@users.sf.net> - * 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). + * generic/tclBasic.c: Added some of the missing setting of errorcode + values. -2007-11-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2009-12-08 Miguel Sofer <msofer@users.sf.net> - * tools/tcltk-man2html.tcl (output-directive): Convert .DS/.DE pairs - into tables since that is now all that they are used for. + * generic/tclExecute.c (TclStackFree): Improved panic msg. - * doc/RegExp.3: Clarified documentation of RE flags. [Bug 1167840] +2009-12-08 Miguel Sofer <msofer@users.sf.net> - * doc/refchan.n: Adjust internal name to be consistent with the file - name for reduced user confusion. After comment by Dan Steffen. + * generic/tclBasic.c: Partial nre-enabling of coroutines. The + * generic/tclExecute.c: initial call still requires its own + * generic/tclInt.h: instance of tebc, but on resume coros can + execute in the caller's tebc. - * generic/tclCmdMZ.c (Tcl_StringObjCmd, UniCharIsAscii): Remember, the - NUL character is in ASCII too. [Bug 1808258] + * generic/tclExecute.c (TEBC): Silence warning about pcAdjustment. - * doc/file.n: Clarified use of [file normalize]. [Bug 1185154] +2009-12-08 Donal K. Fellows <dkf@users.sf.net> -2007-10-30 Don Porter <dgp@users.sourceforge.net> + * generic/tclExecute.c (TclExecuteByteCode): Make the dict opcodes + more sparing in their use of C variables, to reduce size of TEBC + activiation record a little bit. - * 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: +2009-12-07 Miguel Sofer <msofer@users.sf.net> - * unix/configure: autoconf (2.59) - * win/configure: + * generic/tclExecute.c (TEBC): Grouping "slow" variables into structs, + to reduce register pressure and help the compiler with variable + allocation. -2007-10-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2009-12-07 Miguel Sofer <msofer@users.sf.net> - * doc/expr.n, doc/mathfunc.n: Improve documentation to try to make - clearer what is going on. + * generic/tclExecute.c: Start cleaning the TEBC stables + * generic/tclInt.h: - * doc/interp.n: Shorten the basic descriptive text for some interp - subcommands so Solaris nroff doesn't truncate them. [Bug 1822268] + * generic/tclCmdIL.c: [Bug 2910094]: Fix by aku + * tests/coroutine.test: -2007-10-30 Donal K. Fellows <dkf@users.sf.net> + * generic/tclBasic.c: Arrange for [tailcall] to be created with the + other builtins: was being created in a separate call, leftover from + pre-tip days. - * tools/tcltk-man2html.tcl (output-widget-options): Enhance the HTML - generator so that it can produce multi-line option descriptions. +2009-12-07 Don Porter <dgp@users.sourceforge.net> -2007-10-28 Miguel Sofer <msofer@users.sf.net> + * 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. - * generic/tclUtil.c (Tcl_ConcatObj): optimise for some of the - concatenees being empty objs. [Bug 1447328] +2009-12-07 Miguel Sofer <msofer@users.sf.net> -2007-10-28 Donal K. Fellows <dkf@users.sf.net> + * generic/tclBasic.c: [Patch 2910056]: Add ::tcl::unsupported::yieldTo + * generic/tclInt.h: - * 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. +2009-12-07 Donal K. Fellows <dkf@users.sf.net> -2007-10-27 Donal K. Fellows <dkf@users.sf.net> + * generic/tclCmdMZ.c (TryPostBody): [Bug 2910044]: Close off memory + leak in [try] when a variable-free handler clause is present. - * generic/regc_lex.c (lexescape): Close off one of the problems - mentioned in [Bug 1810264]. +2009-12-05 Miguel Sofer <msofer@users.sf.net> -2007-10-27 Miguel Sofer <msofer@users.sf.net> + * generic/tclBasic.c: Small changes for clarity in tailcall + * generic/tclExecute.c: and coroutine code. + * tests/coroutine.test: - * 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] + * tests/tailcall.test: Remove some old unused crud; improved the + stack depth tests. - * 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/tclBasic.c: Fixed things so that you can tailcall + * generic/tclNamesp.c: properly out of a coroutine. + * tests/tailcall.test: - * 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). + * generic/tclInterp.c: Fixed tailcalls for same-interp aliases (no + test) - * generic/tclVar.c: try to preserve Tcl_Objs when doing variable - lookups by name, partially addressing [Bug 1793601]. +2009-12-03 Donal K. Fellows <dkf@users.sf.net> -2007-10-27 Donal K. Fellows <dkf@users.sf.net> + * library/safe.tcl (::safe::AliasEncoding): Make the safe encoding + command behave more closely like the unsafe one (for safe ops). + (::safe::AliasGlob): [Bug 2906841]: Clamp down on evil use of [glob] + in safe interpreters. + * tests/safe.test: Rewrite to use tcltest2 better. - * tools/tcltk-man2html.tcl (make-man-pages, htmlize-text) - (process-text): Make the man->HTML scraper work better. +2009-12-02 Jan Nijtmans <nijtmans@users.sf.net> -2007-10-26 Don Porter <dgp@users.sourceforge.net> + * tools/genStubs.tcl: Add support for win32 CALLBACK functions and + remove obsolete "emitStubs" and "genStubs" functions. + * win/Makefile.in: Use tcltest86.dll for all tests, and add + .PHONY rules to preemptively stop trouble that plagued Tk from hitting + Tcl too. - *** 8.5b2 TAGGED FOR RELEASE *** +2009-11-30 Jan Nijtmans <nijtmans@users.sf.net> - * changes: Updated for 8.5b2 release. + * generic/tcl.h: Don't use EXPORT for Tcl_InitStubs + * win/Makefile.in: Better dependancies in case of static build. - * doc/*.1: Revert doc changes that broke - * doc/*.3: `make html` so we can get the release - * doc/*.n: out the door. +2009-11-30 Donal K. Fellows <dkf@users.sf.net> - * 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: + * doc/Tcl.n: [Bug 2901433]: Improved description of expansion to + mention that it is using list syntax. - * unix/configure: autoconf (2.59) - * win/configure: +2009-11-27 Kevin B. Kenny <kennykb@acm.org> -2007-10-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * win/tclAppInit.c (Tcl_AppInit): [Bug 2902965]: Reverted Jan's change + that added a call to Tcl_InitStubs. The 'tclsh' and 'tcltest' programs + are providers, not consumers of the Stubs table, and should not link + with the Stubs library, but only with the main Tcl library. (In any + case, the presence of Tcl_InitStubs broke the build.) - * 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. +2009-11-27 Donal K. Fellows <dkf@users.sf.net> -2007-10-25 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * doc/BoolObj.3, doc/Class.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/Method.3, doc/NRE.3, doc/ObjectType.3, doc/PkgRequire.3: + * doc/SetChanErr.3, doc/SetResult.3: [Patch 2903921]: Many small + spelling fixes from Larry Virden. - * 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] + BUMP VERSION OF TCLOO TO 0.6.2. Too many people need accumulated small + versions and bugfixes, so the version-bump removes confusion. -2007-10-24 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclOOBasic.c (TclOO_Object_LinkVar): [Bug 2903811]: Remove + unneeded restrictions on who can usefully call this method. - * tools/man2html2.tcl (macro): Added support for converting the new - macros into HTML. +2009-11-26 Donal K. Fellows <dkf@users.sf.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. + * unix/Makefile.in: Add .PHONY rules and documentation to preemptively + stop trouble that plagued Tk from hitting Tcl too, and to make the + overall makefile easier to understand. Some reorganization too to move + related rules closer together. -2007-10-20 Miguel Sofer <msofer@users.sf.net> +2009-11-26 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCompile.c: Fix comments. - * generic/tclExecute.c: + * win/Makefile.in: [Bug 2902965]: Fix stub related changes that + * win/makefile.vc: caused tclkit build to break. + * win/tclAppInit.c + * unix/tcl.m4 + * unix/Makefile.in + * unix/tclAppInit.c + * unix/configure: (regenerated) -2007-10-18 David Gravereaux <davygrvy@pobox.com> +2009-11-25 Kevin B. Kenny <kennykb@acm.org> - * tools/mkdepend.tcl: sort the dep list for a more humanly readable - output. + * win/Makefile.in: Added a 'test-tcl' rule that is identical to + 'test' except that it does not go spelunking in 'pkgs/'. (This rule + has existed in unix/Makefile.in for some time.) -2007-10-18 Don Porter <dgp@users.sourceforge.net> +2009-11-25 Stuart Cassoff <stwo@users.sf.net> - * generic/tclResult.c (TclMergeReturnOptions): Make sure any -code - values get pulled out of the dictionary, even if they are integer - valued. + * 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. - * generic/tclCompCmds.c (TclCompileReturnCmd): Added code to more - optimally compile [return -level 0 $x] to "push $x". [RFE 1794073] +2009-11-24 Andreas Kupries <andreask@activestate.com> - * 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] + * library/tclIndex: Manually redone the part of tclIndex dealing with + safe.tcl and tm.tcl. This part passes the testsuite. Note that + automatic regeneration of this part is not possible because it wrongly + puts 'safe::Setup' on the list, and wrongly leaves out 'safe::Log' + which is more dynamically created than the generator expects. - * unix/configure: autoconf-2.59 + Further note that the file "clock.tcl" is explicitly loaded by + "init.tcl", the first time the clock command is invoked. The relevant + code can be found at line 172ff, roughly, the definition of the + procedure 'clock'. This means none of the procedures of this file + belong in the tclIndex. Another indicator that automatic regeneration + of tclIndex is ill-advised. - * generic/tcl.h: Remove TCL_LL_MODIFIER_SIZE. [RFE 1811837] +2009-11-24 Donal K. Fellows <dkf@users.sf.net> -2007-10-17 David Gravereaux <davygrvy@pobox.com> + * generic/tclOO.c (FinalizeAlloc, Tcl_NewObjectInstance): + [Bug 2903011]: Make it an error to destroy an object in a constructor, + and also make sure that an object is not deleted twice in the error + case. - * tools/mkdepend.tcl: Improved defense from malformed object list - infile. +2009-11-24 Pat Thoyts <patthoyts@users.sourceforge.net> -2007-10-17 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * tests/fCmd.test: [Bug 2893771]: Teach [file stat] to handle locked + * win/tclWinFile.c: files so that [file exists] no longer lies. - * tools/man2html2.tcl: Convert .DS/.DE into HTML tables, not - preformatted text. +2009-11-23 Kevin Kenny <kennykb@acm.org> -2007-10-17 Kevin B. Kenny <kennykb@acm.org> + * tests/fCmd.test (fCmd-30.1): Changed registry location of the 'My + Documents' folder to the one that's correct for Windows 2000, XP, + Server 2003, Vista, Server 2008, and Windows 7. (See + http://support.microsoft.com/kb/310746) - * 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'. +2009-11-23 Jan Nijtmans <nijtmans@users.sf.net> -2007-10-16 David Gravereaux <davygrvy@pobox.com> + * win/tclWinDde.c: #undef STATIC_BUILD, in order to make sure + * win/tclWinReg.c: that Xxxxx_Init is always exported even when + * generic/tclTest.c: Tcl is built static (otherwise we cannot + create a DLL). + * generic/tclThreadTest.c: Make all functions static, except + TclThread_Init. + * tests/fCmd.test: Enable fCmd-30.1 when registry is available. + * win/tcl.m4: Fix ${SHLIB_LD_LIBS} definition, fix conflicts + * win/Makefile.in: Simplifications related to tcl.m4 changes. + * win/configure.in: Between static libraries and import library on + windows. + * win/configure: (regenerated) + * win/makefile.vc: Add stub library to necessary link lines. - * win/makefile.vc: removed old dependency cruft that is no longer - needed. +2009-11-23 Kevin B. Kenny <kennykb@acm.org> -2007-10-15 Don Porter <dgp@users.sourceforge.net> + * generic/tclThreadTest.c (NewTestThread): [Bug 2901803]: Further + machinations to get NewTestThread actually to launch the thread, not + just compile. - * 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. +2009-11-22 Donal K. Fellows <dkf@users.sf.net> - * 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. + * generic/tclThreadTest.c (NewTestThread): [Bug 2901803]: Fix small + error in function naming which blocked a threaded test build. - * generic/tclCompExpr.c: Corrections to code that produces - * generic/tclUtil.c: extended "bad octal" error messages. +2009-11-19 Jan Nijtmans <nijtmans@users.sf.net> - * 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: + * win/Makefile.in: Create tcltest86.dll as dynamic Tcltest + package. + * generic/tclTest.c: Remove extraneous prototypes, follow-up to + * generic/tclTestObj.c: [Bug 2883850] + * tests/chanio.test: Test-cases for fixed [Bug 2849797] * tests/io.test: - * tests/lindex.test: - * tests/link.test: - * tests/mathop.test: - * tests/parseExpr.test: - * tests/set.test: - * tests/string.test: - * tests/stringComp.test: - -2007-10-15 David Gravereaux <davygrvy@pobox.com> - - * 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. - -2007-10-15 Miguel Sofer <msofer@users.sf.net> - - * generic/tclParse.c (Tcl_ParseBraces): fix for possible read after - the end of buffer. [Bug 1813528] (Joe Mistachkin) - -2007-10-14 David Gravereaux <davygrvy@pobox.com> - - * tools/mkdepend.tcl (new): Initial stab at generating automatic - * win/makefile.vc: dependencies. - -2007-10-12 Pat Thoyts <patthoyts@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. - -2007-10-11 David Gravereaux <davygrvy@pobox.com> - - * win/makefile.vc: Fixed my bad spelling mistakes from years back. - Dedependency, duh! Rather funny. - -2007-10-11 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCmdMZ.c: Correct [string is (wide)integer] failure - * tests/string.test: to report correct failindex values for - non-decimal integer strings. [Bug 1805887] - - * 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: - + * tests/safe.test: Fix safe-10.1 and safe-10.4 test cases, making + the wrong assumption that Tcltest is a static + package. + * generic/tclEncoding.c:[Bug 2857044]: Updated freeIntRepProc routines + * generic/tclVar.c: so that they set the typePtr field to NULL so + that the Tcl_Obj is not left in an + inconsistent state. + * unix/tcl.m4: [Patch 2883533]: tcl.m4 support for Haiku OS * unix/configure: autoconf-2.59 -2007-10-11 Miguel Sofer <msofer@users.sf.net> - - * generic/tclObj.c: remove superfluous #include of tclCompile.h - -2007-10-08 George Peter Staplin <georgeps@xmission.com> - - * 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. - -2007-10-02 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tcl.h (Tcl_DecrRefCount): Update change from 2006-05-29 to - make macro more warning-robust in unbraced if code. - -2007-10-02 Don Porter <dgp@users.sourceforge.net> - - [core-stabilizer-branch] - - * 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/configure.in: - - * unix/configure: autoconf (2.59) - * win/configure: - -2007-10-02 Andreas Kupries <andreask@activestate.com> - - * library/tclIndex: Added 'tcl::tm::path' to the tclIndex. This fixes - [Bug 1806422] reported by Don Porter. - -2007-09-25 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * 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. - -2007-09-20 Don Porter <dgp@users.sourceforge.net> - - *** 8.5b1 TAGGED FOR RELEASE *** - - * changes: updates for 8.5b1 release. - -2007-09-19 Don Porter <dgp@users.sourceforge.net> - - * README: Bump version number to 8.5b1 - * generic/tcl.h: Merge from core-stabilizer-branch. - * library/init.tcl: Stabilizing toward 8.5b1 release now done on - * tools/tcl.wse.in: the HEAD. core-stabilizer-branch is now - * unix/configure.in: suspended. - * unix/tcl.spec: - * win/configure.in: - -2007-09-19 Pat Thoyts <patthoyts@users.sourceforge.net> - - * generic/tclStubLib.: Replaced isdigit with internal implementation. - -2007-09-18 Don Porter <dgp@users.sourceforge.net> - - * generic/tclStubLib.c: Remove C library calls from Tcl_InitStubs() so - * win/makefile.vc: that we don't need the C library linked in to - libtclStub. - -2007-09-17 Pat Thoyts <patthoyts@users.sourceforge.net> +2009-11-19 Don Porter <dgp@users.sourceforge.net> - * win/makefile.vc: Add crt flags for tclStubLib now it uses C-library - functions. + * unix/tclAppInit.c: [Bug 2883850, 2900542]: Repair broken build of + * win/tclAppInit.c: the tcltest executable. -2007-09-17 Joe English <jenglish@users.sourceforge.net> +2009-11-19 Donal K. Fellows <dkf@users.sf.net> - * tcl.m4: use '${CC} -shared' instead of 'ld -Bshareable' to build - shared libraries on current NetBSDs. [Bug 1749251] - * unix/configure: regenerated (autoconf-2.59). + * library/auto.tcl (tcl_findLibrary): + * library/clock.tcl (MakeUniquePrefixRegexp, MakeParseCodeFromFields) + (SetupTimeZone, ProcessPosixTimeZone): Restored the use of a literal + * library/history.tcl (HistAdd): 'then' when following a multi- + * library/safe.tcl (interpConfigure): line test expresssion. It's an + * library/tm.tcl (UnknownHandler): aid to readability then. -2007-09-17 Don Porter <dgp@users.sourceforge.net> +2009-11-19 Jan Nijtmans <nijtmans@users.sf.net> - * unix/Makefile.in: Update `make dist` so that tclDTrace.d is - included in the source code distribution. - - * generic/tcl.h: Revised Tcl_InitStubs() to restore Tcl 8.4 - * generic/tclPkg.c: source compatibility with callers of - * generic/tclStubLib.c: Tcl_InitStubs(interp, TCL_VERSION, 1). [Bug - 1578344] - -2007-09-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclInt.h: Make all internal initialization + * generic/tclTest.c: routines MODULE_SCOPE + * generic/tclTestObj.c: + * generic/tclTestProcBodyObj.c: + * generic/tclThreadTest.c: + * unix/Makefile.in: Fix [Bug 2883850]: pkgIndex.tcl doesn't + * unix/tclAppInit.c: get created with static Tcl build + * unix/tclXtTest.c: + * unix/tclXtNotify.c: + * unix/tclUnixTest.c: + * win/Makefile.in: + * win/tcl.m4: + * win/configure: (regenerated) + * win/tclAppInit.c: + * win/tclWinDde.c: Always compile with Stubs. + * win/tclWinReg.c: + * win/tclWinTest.c: - * 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. +2009-11-18 Jan Nijtmans <nijtmans@users.sf.net> + + * doc/CrtChannel.3: [Bug 2849797]: Fix channel name inconsistences + * generic/tclIORChan.c: as suggested by DKF. + * generic/tclIO.c: Minor *** POTENTIAL INCOMPATIBILITY *** + because Tcl_CreateChannel() and derivatives + now sometimes ignore their "chanName" + argument. + + * generic/tclAsync.c: Eliminate various gcc warnings (with -Wextra) + * generic/tclBasic.c + * generic/tclBinary.c + * generic/tclCmdAH.c + * generic/tclCmdIL.c + * generic/tclCmdMZ.c + * generic/tclCompile.c + * generic/tclDate.c + * generic/tclExecute.c + * generic/tclDictObj.c + * generic/tclIndexObj.c + * generic/tclIOCmd.c + * generic/tclIOUtil.c + * generic/tclIORTrans.c + * generic/tclOO.c + * generic/tclZlib.c + * generic/tclGetDate.y + * win/tclWinInit.c + * win/tclWinChan.c + * win/tclWinConsole.c + * win/tclWinNotify.c + * win/tclWinReg.c + * library/auto.tcl: Eliminate "then" keyword + * library/clock.tcl + * library/history.tcl + * library/safe.tcl + * library/tm.tcl + * library/http/http.tcl: Eliminate unnecessary spaces + * library/http1.0/http.tcl + * library/msgcat/msgcat.tcl + * library/opt/optparse.tcl + * library/platform/platform.tcl + * tools/tcltk-man2html.tcl + * tools/tclZIC.tcl + * tools/tsdPerf.c + +2009-11-17 Andreas Kupries <andreask@activestate.com> + + * unix/tclUnixChan.c (TtyParseMode): Partial undo of Donal's tidy-up + from a few days ago (2009-11-9, not in ChangeLog). It seems that + strchr is apparently a macro on AIX and reacts badly to pre-processor + directives in its arguments. -2007-09-15 Daniel Steffen <das@users.sourceforge.net> +2009-11-16 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * unix/tcl.m4: replace all direct references to compiler by ${CC} to - enable CC overriding at configure & make time; run - check for visibility "hidden" with all compilers; - quoting fixes from TEA tcl.m4. - (SunOS-5.1x): replace direct use of '/usr/ccs/bin/ld' in SHLIB_LD by - 'cc' compiler driver. - * unix/configure: autoconf-2.59 + * generic/tclEncoding.c: [Bug 2891556]: Fix and improve test to + * generic/tclTest.c: detect similar manifestations in the future. + * tests/encoding.test: Add tcltest support for finalization. -2007-09-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2009-11-15 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclBasic.c (Tcl_CreateObjCommand): Only invalidate along the - namespace path once; that is enough. [Bug 1519940] + * win/tclWinDde.c: Avoid gcc compiler warning by explicitly casting + DdeCreateStringHandle argument. -2007-09-14 Daniel Steffen <das@users.sourceforge.net> +2009-11-12 Andreas Kupries <andreask@activestate.com> - * 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] + * generic/tclIO.c (CopyData): [Bug 2895565]: Dropped bogosity which + * tests/io.test: 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 forward port from the 8.5 branch. - * macosx/GNUmakefile: Enable DTrace support. - * macosx/Tcl-Common.xcconfig: - * macosx/Tcl.xcodeproj/project.pbxproj: +2009-11-11 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdIL.c: Factor out core of InfoFrameCmd() into - internal TclInfoFrame() for use by DTrace - probes. + * generic/tclClock.c (TclClockInit): Do not create [clock] support + commands in safe interps. - * unix/configure: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 +2009-11-11 Jan Nijtmans <nijtmans@users.sf.net> -2007-09-12 Don Porter <dgp@users.sourceforge.net> + * library/http/http.tcl (http::geturl): [Bug 2891171]: URL checking + too strict when using multiple question marks. + * tests/http.test + * library/http/pkgIndex.tcl: Bump to http 2.8.2 + * unix/Makefile.in: + * win/Makefile.in: - * 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. +2009-11-11 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2007-09-12 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclIO.c: Fix [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. - * win/makefile.vc, win/rules.vc, win/nmakehlp.c: Use nmakehlp to - substitute values for tclConfig.sh (helps cross-compiling). +2009-11-10 Pat Thoyts <patthoyts@users.sourceforge.net> -2007-09-11 Don Porter <dgp@users.sourceforge.net> + * tests/winFCmd.test: Cleanup directories that have been set chmod + 000. On Windows7 and Vista we really have no access and these were + getting left behind. + A few tests were changed to reflect the intent of the test where + setting a directory chmod 000 should prevent any modification. This + restriction was ignored on XP but is honoured on Vista - * 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. +2009-11-10 Andreas Kupries <andreask@activestate.com> - * 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] + * generic/tclBasic.c: Plug another leak in TCL_EVAL_DIRECT evaluation. + Forward port from Tcl 8.5 branch, change by Don Porter. -2007-09-11 Miguel Sofer <msofer@users.sf.net> + * generic/tclObj.c: [Bug 2895323]: Plug memory leak in + TclContinuationsEnter(). Forward port from Tcl 8.5 branch, change by + Don Porter. - * 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] +2009-11-09 Stuart Cassoff <stwo@users.sf.net> - ***POTENTIAL INCOMPATIBILITY*** - Scripts that were precompiled on earlier versions of 8.5 and use [dict - update] will crash. Workaround: recompile. + * win/README: [bug 2459744]: Removed outdated Msys + Mingw info. -2007-09-11 Kevin B. Kenny <kennykb@acm.org> +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. Forward port from valgrinding the Tcl 8.5 + branch. + + * tests/info.test: Resolve ambiguous resolution of variable "res". + Forward port from 8.5 + +2009-11-08 Donal K. Fellows <dkf@users.sf.net> + + * doc/string.n (bytelength): Noted that this command is not a good + thing to use, and suggested a better alternatve. Also factored out the + description of the indices into its own section. + +2009-11-07 Pat Thoyts <patthoyts@users.sourceforge.net> + + * tests/fCmd.test: [Bug 2891026]: Exclude tests using chmod 555 + directories on vista and win7. The current user has access denied and + so cannot rename the directory without admin privileges. + +2009-11-06 Andreas Kupries <andreask@activestate.com> + + * library/safe.tcl (::safe::Setup): Added documentation of the + contents of the state array. Also killed the 'InterpState' procedure + with its upleveled variable/upvar combination, and replaced all uses + with 'namespace upvar'. + +2009-11-05 Andreas Kupries <andreask@activestate.com> + + * library/safe.tcl: A series of patches which bring the SafeBase up to + date with code guidelines, Tcl's features, also eliminating a number + of inefficiencies along the way. + (1) Changed all procedure names to be fully qualified. + (2) Moved the procedures out of the namespace eval. Kept their + locations. IOW, broke the namespace eval apart into small sections not + covering the procedure definitions. + (3) Reindented the code. Just lots of whitespace changes. + Functionality unchanged. + (4) Moved the multiple namespace eval's around. Command export at the + top, everything else (var decls, argument parsing setup) at the + bottom. + (5) Moved the argument parsing setup into a procedure called when the + code is loaded. Easier management of temporary data. + (6) Replaced several uses of 'Set' with calls to the new procedure + 'InterpState' and direct access to the per-slave state array. + (7) Replaced the remaining uses of 'Set' and others outside of the + path/token handling, and deleted a number of procedures related to + state array access which are not used any longer. + (8) Converted the path token system to cache normalized paths and path + <-> token conversions. Removed more procedures not used any longer. + Removed the test cases 4.3 and 4.4 from safe.test. They were testing + the now deleted command "InterpStateName". + (9) Changed the log command setup so that logging is compiled out + completely when disabled (default). + (10) Misc. cleanup. Inlined IsInterp into CheckInterp, its only user. + Consistent 'return -code error' for error reporting. Updated to use + modern features (lassign, in/ni, dicts). The latter are used to keep a + reverse path -> token map and quicker check of existence. + (11) Fixed [Bug 2854929]: Recurse into all subdirs under all TM root + dirs and put them on the access path. + +2009-11-02 Kevin B. Kenny <kennykb@acm.org> - * generic/tclExecute.c: Corrected an off-by-one error in the setting - of MaxBaseWide for certain powers. [Bug 1767293 - problem reported in - comments when bug was reopened] + * 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. -2007-09-10 Jeff Hobbs <jeffh@ActiveState.com> +2009-11-02 Donal K. Fellows <dkf@users.sf.net> + + * doc/object.n (DESCRIPTION): Substantive revision to make it clearer + what the fundamental semantics of an object actually are. + +2009-11-01 Joe Mistachkin <joe@mistachkin.com> + + * doc/Cancel.3: Minor cosmetic fixes. + * win/makefile.vc: Make htmlhelp target work again. An extra set of + double quotes around the definition of the HTML help compiler tool + appears to be required. Previously, there was one set of double + quotes around the definition of the tool and one around the actual + invocation. This led to confusion because it was the only such tool + path to include double quotes around its invocation. Also, it was + somewhat inflexible in the event that somebody needed to override the + tool command to include arguments. Therefore, even though it may look + "wrong", there are now two double quotes on either side of the tool + path definition. This fixes the problem that currently prevents the + htmlhelp target from building and maintains flexibility in case + somebody needs to override it via the command line or an environment + variable. - * generic/tclLink.c (Tcl_UpdateLinkedVar): guard against var being - unlinked. [Bug 1740631] (maros) +2009-11-01 Joe English <jenglish@users.sourceforge.net> -2007-09-10 Miguel Sofer <msofer@users.sf.net> + * doc/Eval.3, doc/Cancel.3: Move TIP#285 routines out of Eval.3 into + their own manpage. - * generic/tclCompile.c: fix tclInstructionTable entry for - dictUpdateEnd +2009-10-31 Donal K. Fellows <dkf@users.sf.net> - * generic/tclExecute.c: remove unneeded setting of 'cleanup' variable - before jumping to checkForCatch. + * generic/tclBasic.c (ExprRoundFunc): [Bug 2889593]: Correctly report + the expected number of arguments when generating an error for round(). -2007-09-10 Don Porter <dgp@users.sourceforge.net> +2009-10-30 Pat Thoyts <patthoyts@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] + * tests/tcltest.test: When creating the notwritabledir we deny the + current user access to delete the file. We must grant this right when + we cleanup. Required on Windows 7 when the user does not automatically + have administrator rights. -2007-09-09 Don Porter <dgp@users.sourceforge.net> +2009-10-29 Don Porter <dgp@users.sourceforge.net> - * generic/tclInt.h: Removed the "nsName" Tcl_ObjType from the - * generic/tclNamesp.c: registered set. Revised the management of the - * generic/tclObj.c: intrep of that Tcl_ObjType. Revised the - * tests/obj.test: TclGetNamespaceFromObj() routine to return - TCL_ERROR and write a consistent error message when a namespace is not - found. [Bug 1588842. Patch 1686862] + * generic/tcl.h: 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. [Bug 2800740]. ***POTENTIAL INCOMPATIBILITY*** - For callers of Tcl_GetObjType() on the name "nsName". - - * generic/tclExecute.c: Update TclGetNamespaceFromObj() callers. - * generic/tclProc.c: - - * tests/apply.test: Updated tests to expect new consistent - * tests/namespace-old.test: error message when a namespace is not - * tests/namespace.test: found. - * tests/upvar.test: - - * generic/tclCompCmds.c: Use the new INST_REVERSE instruction - * tests/mathop.test: to correct the compiled versions of math - operator commands. [Bug 1724437] - - * generic/tclCompile.c: New bytecode instruction INST_REVERSE to - * generic/tclCompile.h: reverse the order of N items at the top of - * generic/tclExecute.c: stack. - - * generic/tclCompCmds.c (TclCompilePowOpCmd): Make a separate - routine to compile ** to account for its different associativity. - -2007-09-08 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c (Tcl_SetVar2, TclPtrSetVar): [Bug 1710710] fixed - correctly, reverted fix of 2007-05-01. - -2007-09-08 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclDictObj.c (DictUpdateCmd, DictWithCmd): Plug a hole that - * generic/tclExecute.c (TEBC,INST_DICT_UPDATE_END): allowed a careful - * tests/dict.test (dict-21.16,21.17,22.11): attacker to craft a dict - containing a recursive link to itself, violating one of Tcl's - fundamental datatype assumptions and causing a stack crash when the - dict was converted to a string. [Bug 1786481] - -2007-09-07 Don Porter <dgp@users.sourceforge.net> - - * generic/tclEvent.c ([::tcl::Bgerror]): Corrections to Tcl's - * tests/event.test: default [interp bgerror] handler so that when - it falls back to a hidden [bgerror] in a safe interp, it gets the - right error context data. [Bug 1790274] - -2007-09-07 Miguel Sofer <msofer@users.sf.net> - - * generic/tclProc.c (TclInitCompiledLocals): the refCount of resolved - variables was being managed without checking if they were Var or - VarInHash: itcl [Bug 1790184] - -2007-09-06 Don Porter <dgp@users.sourceforge.net> - - * generic/tclResult.c (Tcl_GetReturnOptions): Take care that a - * tests/init.test: non-TCL_ERROR code doesn't cause existing - -errorinfo, -errorcode, and -errorline entries to be omitted. - * generic/tclEvent.c: With -errorInfo no longer lost, generate more - complete ::errorInfo when calling [bgerror] after a non-TCL_ERROR - background exception. - -2007-09-06 Don Porter <dgp@users.sourceforge.net> - - * generic/tclInterp.c (Tcl_Init): Removed constraint on ability - to define a custom [tclInit] before calling Tcl_Init(). Until now the - custom command had to be a proc. Now it can be any command. - - * generic/tclInt.decls: New internal routine TclBackgroundException() - * generic/tclEvent.c: that for the first time permits non-TCL_ERROR - exceptions to trigger [interp bgerror] handling. Closes a gap in TIP - 221. When falling back to [bgerror] (which is designed only to handle - TCL_ERROR), convert exceptions into errors complaining about the - exception. - - * generic/tclInterp.c: Convert Tcl_BackgroundError() callers to call - * generic/tclIO.c: TclBackgroundException(). - * generic/tclIOCmd.c: - * generic/tclTimer.c: - - * generic/tclIntDecls.h: make genstubs - * generic/tclStubInit.c: - -2007-09-06 Daniel Steffen <das@users.sourceforge.net> - - * macosx/Tcl.xcode/project.pbxproj: discontinue unmaintained support - * macosx/Tcl.xcode/default.pbxuser: for Xcode 1.5; replace by Xcode2 - project for use on Tiger (with Tcl.xcodeproj to be used on Leopard). - - * macosx/Tcl.xcodeproj/project.pbxproj: updates for Xcode 2.5 and 3.0. - * macosx/Tcl.xcodeproj/default.pbxuser: - * macosx/Tcl.xcode/project.pbxproj: - * macosx/Tcl.xcode/default.pbxuser: - * macosx/Tcl-Common.xcconfig: - - * macosx/README: document project changes. - -2007-09-05 Don Porter <dgp@users.sourceforge.net> - - * generic/tclBasic.c: Removed support for the unmaintained - * generic/tclExecute.c: -DTCL_GENERIC_ONLY configuration. [Bug - * unix/Makefile.in: 1264623] - -2007-09-04 Don Porter <dgp@users.sourceforge.net> - - * unix/Makefile.in: It's unreliable to count on the release - manager to remember to `make genstubs` before `make dist`. Let the - Makefile remember the dependency for us. - - * unix/Makefile.in: Corrections to `make dist` dependencies to be - sure that macosx/configure gets generated whenever it does not exist. - -2007-09-03 Kevin B, Kenny <kennykb@acm.org> - - * library/tzdata/Africa/Cairo: - * library/tzdata/America/Grand_Turk: - * library/tzdata/America/Port-au-Prince: - * library/tzdata/America/Indiana/Petersburg: - * library/tzdata/America/Indiana/Tell_City: - * library/tzdata/America/Indiana/Vincennes: - * library/tzdata/Antarctica/McMurdo: - * library/tzdata/Australia/Adelaide: - * library/tzdata/Australia/Broken_Hill: - * library/tzdata/Australia/Currie: - * library/tzdata/Australia/Hobart: - * library/tzdata/Australia/Lord_Howe: - * library/tzdata/Australia/Melbourne: - * library/tzdata/Australia/Sydney: - * library/tzdata/Pacific/Auckland: - * library/tzdata/Pacific/Chatham: Olson's tzdata2007g. - - * generic/tclListObj.c (TclLindexFlat): - * tests/lindex.test (lindex-17.[01]): Added code to detect the error - when a script does [lindex {} end foo]; an overaggressive optimisation - caused this call to return an empty object rather than an error. - -2007-09-03 Daniel Steffen <das@users.sourceforge.net> - - * generic/tclObj.c (TclInitObjSubsystem): restore registration of the - "wideInt" Tcl_ObjType for compatibility with 8.4 extensions that - access the tclWideIntType Tcl_ObjType; add setFromAnyProc for - tclWideIntType. - -2007-09-02 Donal K. Fellows <dkf@users.sf.net> - - * doc/lsearch.n: Added note that order of results with the -all option - is that of the input list. It always was, but this makes it crystal. - -2007-08-30 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompile.c: Added fflush() calls following all callers of - * generic/tclExecute.c: TclPrintByteCodeObj() so that tcl_traceCompile - output is less likely to get mangled when writes to stdout interleave - with other code. - -2007-08-28 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Use a table lookup in ParseLexeme() to - determine lexemes with single-byte representations. - - * generic/tclBasic.c: Used unions to better clarify overloading of - * generic/tclCompExpr.c: the fields of the OpCmdInfo and - * generic/tclCompile.h: TclOpCmdClientData structs. - -2007-08-27 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Call TclCompileSyntaxError() when - expression syntax errors are found when compiling expressions. With - this in place, convert TclCompileExpr to return void, since there's no - longer any need to report TCL_ERROR. - * generic/tclCompile.c: Update callers. - * generic/tclExecute.c: - - * generic/tclCompCmds.c: New routine TclCompileSyntaxError() - * generic/tclCompile.h: to directly compile bytecodes that report a - * generic/tclCompile.c: syntax error, rather than (ab)use a call to - TclCompileReturnCmd. Also, undo the most recent commit that papered - over some issues with that (ab)use. New routine produces a new opcode - INST_SYNTAX, which is a minor variation of INST_RETURN_IMM. Also a bit - of constification. - - * generic/tclCompile.c: Move the deallocation of local LiteralTable - * generic/tclCompExpr.c: entries into TclFreeCompileEnv(). - * generic/tclExecute.c: Update callers. - - * generic/tclCompExpr.c: Force numeric and boolean literals in - expressions to register with their intreps intact, even if that means - overwriting existing intreps in already registered literals. - -2007-08-25 Kevin B. Kenny <kennykb@acm.org> - - * generic/tclExecute.c (TclExecuteByteCode): Added code to handle - * tests/expr.test (expr-23.48-53) integer exponentiation - that results in 32- and 64-bit integer results, avoiding calls to wide - integer exponentiation routines in this common case. [Bug 1767293] - - * library/clock.tcl (ParseClockScanFormat): Modified code to allow - * tests/clock.test (clock-60.*): case-insensitive matching - of time zone and month names. [Bug 1781282] - -2007-08-24 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Register literals found in expressions - * tests/compExpr.test: to restore literal sharing. Preserve numeric - intreps when literals are created for the first time. Correct memleak - in ExecConstantExprTree() and add test for the leak. - -2007-08-24 Miguel Sofer <msofer@users.sf.net> - - * generic/tclCompile.c: replaced copy loop that tripped some compilers - with memmove. [Bug 1780870] - -2007-08-23 Don Porter <dgp@users.sourceforge.net> - - * library/init.tcl ([auto_load_index]): Delete stray "]" that created - an expr syntax error (masked by a [catch]). - - * generic/tclCompCmds.c (TclCompileReturnCmd): Added crash protection - to handle callers other than TclCompileScript() failing to meet the - initialization assumptions of the TIP 280 code in CompileWord(). - - * generic/tclCompExpr.c: Suppress the attempt to convert to - numeric when pre-compiling a constant expresion indicates an error. - -2007-08-22 Miguel Sofer <msofer@users.sf.net> - - * generic/tclExecute.c (TEBC): disable the new shortcut to frequent - INSTs for debug builds. REVERTED (collision with alternative fix) - -2007-08-21 Don Porter <dgp@users.sourceforge.net> - - * generic/tclMain.c: Corrected the logic of dropping the last - * tests/main.test: newline from an interactively typed command. - [Bug 1775878] - -2007-08-21 Pat Thoyts <patthoyts@users.sourceforge.net> - - * tests/thread.test: thread-4.4: clear ::errorInfo in the thread as a - message is left here from init.tcl on windows due to no tcl_pkgPath. - -2007-08-20 Miguel Sofer <msofer@users.sf.net> - - * generic/tclExecute.c (INST_SUB): fix usage of the new macro for - overflow detection in sums, adapt to subtraction. Lengthy comment - added. - -2007-08-19 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclExecute.c (Overflowing, TclIncrObj, TclExecuteByteCode): - Encapsulate Miguel's last change in a more mnemonic macro. - -2007-08-19 Miguel Sofer <msofer@users.sf.net> - - * generic/tclExecute.c: changed the check for overflow in sums, - reducing objsize, number of branches and cache misses (according to - cachegrind). Non-overflow for s=a+b: - previous - ((a >= 0 || b >= 0 || s < 0) && (s >= 0 || b < 0 || a < 0)) - now - (((a^s) >= 0) || ((a^b) < 0)) - This expresses: "a and s have the same sign or else a and b have - different sign". - -2007-08-19 Donal K. Fellows <dkf@users.sf.net> - - * doc/interp.n (RESOURCE LIMITS): Added text to better explain why - time limits are described using absolute times. [Bug 1752148] - -2007-08-16 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c: improved localVarNameType caching to leverage - the new availability of Tcl_Obj in variable names, avoiding string - comparisons to verify that the cached value is usable. - - * generic/tclExecute.c: check the two most frequent instructions - before the switch. Reduces both runtime and obj size a tiny bit. - -2007-08-16 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Added a "constant" field to the OpNode - struct (again "free" due to alignment requirements) to mark those - subexpressions that are completely known at compile time. Enhanced - CompileExprTree() and its callers to precompute these constant - subexpressions at compile time. This resolves the issue raised in [Bug - 1564517]. - -2007-08-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * generic/tclIOUtil.c (TclGetOpenModeEx): Only set the O_APPEND flag - * tests/ioUtil.test (ioUtil-4.1): on a channel for the 'a' - mode and not for 'a+'. [Bug 1773127] - -2007-08-14 Miguel Sofer <msofer@users.sf.net> + 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. - * generic/tclExecute.c (INST_INVOKE*): peephole opt, do not get the - interp's result if it will be pushed/popped. +2009-10-29 Donal K. Fellows <dkf@users.sf.net> -2007-08-14 Don Porter <dgp@users.sourceforge.net> + * tests/dict.test: Make variable-clean and simplify tests by utilizing + the fact that dictionaries have defined orders. - * 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/tclZlib.c (TclZlibCmd): Remove accidental C99-ism which + reportedly makes the AIX native compiler choke. -2007-08-14 Daniel Steffen <das@users.sourceforge.net> +2009-10-29 Kevin B. Kenny <kennykb@acm.org> - * 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/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 - * tests/load.test: add test load-10.1 for loading from vfs. +2009-10-28 Don Porter <dgp@users.sourceforge.net> - * 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/tclLiteral.c: [Bug 2888044]: Fixed 2 bugs. + * tests/info.test: First, as noted in the comments of the + TclCleanupLiteralTable routine, since the teardown of the intrep of + one Tcl_Obj can cause the teardown of others in the same table, the + full table cleanup must be done with care, but the code did not + contain the same care demanded in the comment. Second, recent + additions to the info.test file had poor hygiene, leaving an array + variable ::a lying around, which breaks later interp.test tests during + a -singleproc 1 run of the test suite. -2007-08-13 Don Porter <dgp@users.sourceforge.net> +2009-10-28 Kevin B. Kenny <kennykb@acm.org> - * generic/tclExecute.c: Provide DECACHE/CACHE protection to the - * tests/trace.test: Tcl_LogCommandInfo() call. [Bug 1773040] + * 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). -2007-08-12 Miguel Sofer <msofer@users.sf.net> +2009-10-27 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdMZ.c (Tcl_SplitObjCmd): use TclNewStringObj macro - instead of calling the function. + * generic/tclPathObj.c: [Bug 2884203]: Missing refcount on cached + normalized path caused crashes. - * generic/tcl_Obj.c (TclAllocateFreeObjects): remove unneeded memset - to 0 of all allocated objects. +2009-10-27 Kevin B. Kenny <kennykb@acm.org> -2007-08-10 Miguel Sofer <msofer@users.sf.net> + * 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.) - * generic/tclInt.h: remove redundant ops in TclNewStringObj macro. +2009-10-26 Don Porter <dgp@users.sourceforge.net> -2007-08-10 Miguel Sofer <msofer@users.sf.net> + * unix/Makefile.in: Remove $(PACKAGE).* and prototype from the + `make distclean` target. Completes 2009-10-20 commit. - * generic/tclInt.h: fix the TclSetVarNamespaceVar macro, was causing a - leak. +2009-10-24 Kevin B. Kenny <kennykb@acm.org> -2007-08-10 Don Porter <dgp@users.sourceforge.net> + * 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 bug. + * library/tzdata/Asia/Dhaka: + * library/tzdata/Asia/Karachi: + New DST rules for Bangladesh and Pakistan. (Olson's tzdata2009o.) - * 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. +2009-10-23 Andreas Kupries <andreask@activestate.com> -2007-08-09 Miguel Sofer <msofer@users.sf.net> + * 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/tclProc.c (TclCreateProc): better comments on the required - varflag values when loading precompiled procs. +2009-10-22 Donal K. Fellows <dkf@users.sf.net> - * 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/tclOOBasic.c (TclOO_Object_VarName): [Bug 2883857]: Allow + the passing of array element names through this method. -2007-08-08 Jeff Hobbs <jeffh@ActiveState.com> +2009-10-21 Donal K. Fellows <dkf@users.sf.net> - * generic/tclProc.c (InitLocalCache): reference firstLocalPtr via - procPtr. codePtr->procPtr == NULL exposed by tbcload. + * generic/tclPosixStr.c: [Bug 2882561]: Work around oddity on Haiku OS + where SIGSEGV and SIGBUS are the same value. -2007-08-08 Don Porter <dgp@users.sourceforge.net> + * generic/tclTrace.c (StringTraceProc): [Bug 2881259]: Added back cast + to work around silly bug in MSVC's handling of auto-casting. - * generic/tclExecute.c: Corrected failure to compile/link in the - -DNO_WIDE_TYPE configuration. +2009-10-20 Don Porter <dgp@users.sourceforge.net> - * generic/tclExecute.c: Corrected improper use of bignum arguments to - * tests/expr.test: *SHIFT operations. [Bug 1770224] + * unix/Makefile.in: Removed the long outdated and broken targets + package-* that were for building Solaris packages. Appears that the + pieces needed for these targets to function have never been present in + the current era of Tcl development and belong completely to Tcl + pre-history. -2007-08-07 Miguel Sofer <msofer@users.sf.net> +2009-10-19 Don Porter <dgp@users.sourceforge.net> - * generic/tclInt.h: remove comments refering to VAR_SCALAR, as that - flag bit does not exist any longer. - * generic/tclProc.c (InitCompiledLocals): removed optimisation for - non-resolved case, as the function is never called in that case. - Renamed the function to InitResolvedLocals to calrify the point. + * generic/tclIO.c: [Patch 2107634]: 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. + Thanks to Sean Morrison and Bob Parker for their roles in the fix. - * generic/tclInt.decls: Exporting via stubs to help xotcl adapt to - * generic/tclInt.h: VarReform. - * generic/tclIntDecls.h: - * generic/tclStubInit.c: +2009-10-18 Joe Mistachkin <joe@mistachkin.com> -2007-08-07 Daniel Steffen <das@users.sourceforge.net> + * generic/tclObj.c (TclDbDumpActiveObjects, TclDbInitNewObj) + (Tcl_DbIncrRefCount, Tcl_DbDecrRefCount, Tcl_DbIsShared): + [Bug 2871908]: Enforce separation of concerns between the lineCLPtr + and objThreadMap thread specific data members. - * generic/tclEnv.c: improve environ handling on Mac OS X (adapted - * unix/tclUnixPort.h: from Apple changes in Darwin tcl-64). +2009-10-18 Joe Mistachkin <joe@mistachkin.com> - * unix/Makefile.in: add support for compile flags specific to - object files linked directly into executables. + * 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. - * 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. +2009-10-17 Donal K. Fellows <dkf@users.sf.net> - * unix/configure: autoconf-2.59 + * generic/tclVar.c (UnsetVarStruct, TclDeleteNamespaceVars) + (TclDeleteCompiledLocalVars, DeleteArray): + * 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. -2007-08-06 Don Porter <dgp@users.sourceforge.net> +2009-10-08 Donal K. Fellows <dkf@users.sf.net> - * tests/parseExpr.test: Update source file name of expr parser code. + * 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/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(). +2009-10-07 Andreas Kupries <andreask@activestate.com> -2007-08-06 Kevin B. Kenny <kennykb@users.sf.net> + * generic/tclObj.c: [Bug 2871908]: Plug memory leaks of 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/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. + * generic/tclIORChan.c (ErrnoReturn): Replace hardwired constant 11 + with 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. -2007-08-04 Miguel Sofer <msofer@users.sf.net> +2009-10-06 Don Porter <dgp@users.sourceforge.net> - * generic/tclInt.decls: Exporting via stubs to help itcl adapt to - * generic/tclInt.h: VarReform. Added localCache initialization - * generic/tclIntDecls.h: to TclInitCompiledLocals (which only exists - * generic/tclProc.c: for itcl). - * generic/tclStubInit.c: - * generic/tclVar.c: + * generic/tclInterp.c (SlaveEval): Agressive stomping of internal reps + was added as part of the NRE patch of 2008-07-13. This doesn't appear + to actually be needed, and it hurts quite a bit when large lists lose + their intreps and require reparsing. Thanks to Ashok Nadkarni for + reporting the problem. -2007-08-01 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * 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]. - * library/word.tcl: Rewrote for greater efficiency. [Bug 1764318] +2009-10-05 Andreas Kupries <andreask@activestate.com> -2007-08-01 Pat Thoyts <patthoyts@users.sourceforge.net> + * library/safe.tcl (AliasGlob): Fixed conversion of catch to + try/finally, it had an 'on ok msg' branch missing, causing a + silent error immediately, and bogus glob results, breaking + search for Tcl modules. - * 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). +2009-10-04 Daniel Steffen <das@users.sourceforge.net> -2007-08-01 Miguel Sofer <msofer@users.sf.net> + * macosx/tclMacOSXBundle.c: Workaround CF memory managment bug in + * unix/tclUnixInit.c: Mac OS X 10.4 & earlier. [Bug 2569449] - * generic/tclVar.c (TclCleanupVar): fix [Bug 1765225], thx Larry - Virden. +2009-10-02 Kevin B. Kenny <kennykb@acm.org> -2007-07-31 Miguel Sofer <msofer@users.sf.net> + * library/tzdata/Africa/Cairo: + * library/tzdata/Asia/Gaza: + * library/tzdata/Asia/Karachi: + * library/tzdata/Pacific/Apia: Olson's tzdata2009n. - * 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. +2009-09-29 Don Porter <dgp@users.sourceforge.net> - * 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/tclDictObj.c: [Bug 2857044]: Updated freeIntRepProc + * generic/tclExecute.c: routines so that they set the typePtr + * generic/tclIO.c: field to NULL so that the Tcl_Obj is + * generic/tclIndexObj.c: not left in an inconsistent state. * generic/tclInt.h: - * generic/tclIntDecls.h: - * generic/tclLiteral.c: + * generic/tclListObj.c: * generic/tclNamesp.c: + * generic/tclOOCall.c: * generic/tclObj.c: + * generic/tclPathObj.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. + * generic/tclRegexp.c: + * generic/tclStringObj.c: -2007-07-31 Miguel Sofer <msofer@users.sf.net> + * 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/configure.in: allow use of 'inline' in Tcl sources. [Patch - * win/configure.in: 1754128] - * win/makefile.vc: Regen with autoconf 2.61 +2009-09-28 Don Porter <dgp@users.sourceforge.net> -2007-07-31 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclCmdMZ.c: Replaced TclProcessReturn() calls with + * tests/error.test: Tcl_SetReturnOptions() calls as a simple fix + for [Bug 2855247]. Thanks to Anton Kovalenko for the report and fix. + Additional fixes for other failures demonstrated by new tests. - * 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] +2009-09-27 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixCompat.c: Simplify the #ifdef logic. + * tests/error.test (error-15.8.*): Coverage tests illustrating + flaws in the propagation of return options by [try]. - * unix/tclUnixChan.c (FileWatchProc): Fix test failures. +2009-09-26 Donal K. Fellows <dkf@users.sf.net> -2007-07-30 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * unix/tclooConfig.sh, win/tclooConfig.sh: [Bug 2026844]: Added dummy + versions of tclooConfig.sh that make it easier to build extensions + against both Tcl8.5+TclOO-standalone and Tcl8.6. - * unix/tclUnixChan.c (SET_BITS, CLEAR_BITS): Added macros to make this - file clearer. +2009-09-24 Don Porter <dgp@users.sourceforge.net> -2007-07-24 Miguel Sofer <msofer@users.sf.net> + TIP #356 IMPLEMENTATION - * generic/tclBasic.c (TEOvI, GetCommandSource): - * generic/tclExecute.c (TEBC, TclGetSrcInfoForCmd): + * generic/tcl.decls: Promote internal routine TclNRSubstObj() + * generic/tclCmdMZ.c: to public Tcl_NRSubstObj(). Still needs docs. + * generic/tclCompile.c: * generic/tclInt.h: - * generic/tclTrace.c (TclCheck(Interp|Execution)Traces): - Removed the need for TEBC to inspect the command before calling TEOvI, - leveraging the TIP 280 infrastructure. Moved the generation of a - correct nul-terminated command string away from the trace code, back - into TEOvI/GetCommandSource. - -2007-07-20 Andreas Kupries <andreask@activestate.com> - - * library/platform/platform.tcl: Fixed bug in 'platform::patterns' - * library/platform/pkgIndex.tcl: where identifiers not matching - * unix/Makefile.in: the special linux and solaris forms would not - * win/Makefile.in: get 'tcl' as an acceptable platform added to - * doc/platform.n: the result. Bumped package to version 1.0.3 and - * doc/platform_shell.n: updated documentation and Makefiles. Also - fixed bad version info in the documentation of platform::shell. - -2007-07-19 Don Porter <dgp@users.sourceforge.net> - - * generic/tclParse.c: In contexts where interp and parsePtr->interp - might be different, be sure to use the latter for error reporting. - Also pulled the interp argument back out of ParseTokens() since we - already had a parsePtr->interp to work with. - -2007-07-18 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Removed unused arguments and variables - -2007-07-17 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c (ParseExpr): While adding comments to - explain the operations of ParseExpr(), made significant revisions to - the code so it would be easier to explain, and in the process made the - code simpler and clearer as well. - -2007-07-15 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: More commentary. - * tests/parseExpr.test: Several tests of syntax error messages - to check that when expression substrings are truncated they leave - visible the context relevant to the reported error. - -2007-07-12 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Factored out, corrected, and commented - common code for reporting syntax errors in LEAF elements. - -2007-07-11 Miguel Sofer <msofer@users.sf.net> - - * generic/tclCompCmds.c (TclCompileWhileCmd): - * generic/tclCompile.c (TclCompileScript): - Corrected faulty avoidance of INST_START_CMD when the first opcode in - a script is within a loop (as produced by 'while 1'), so that the - corresponding command is properly counted. [Bug 1752146] - -2007-07-11 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Added a "parseOnly" flag argument to - ParseExpr() to indicate whether the caller is Tcl_ParseExpr(), with an - end goal of filling a Tcl_Parse with Tcl_Tokens representing the - parsed expression, or TclCompileExpr() with the goal of compiling and - executing the expression. In the latter case, more aggressive - conversion of QUOTED and BRACED lexeme to literals is done. In the - former case, all such conversion is avoided, since Tcl_Token - production would revert it anyway. This enables simplifications to the - GenerateTokensForLiteral() routine as well. - -2007-07-10 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Added a field for operator precedence - to be stored directly in the parse tree. There's no memory cost to - this addition, since that memory would have been lost to alignment - issues anyway. Also, converted precedence definitions and lookup - tables to use symbolic constants instead of raw number for improved - readability, and continued extending/improving/correcting comments. - Removed some unused counter variables. Renamed some variables for - clarity and replaced some cryptic logic with more readable macros. - -2007-07-09 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Revision so that the END lexeme never - gets inserted into the parse tree. Later tree traversal never reaches - it since its location in the tree is not variable. Starting and - stopping with the START lexeme (node 0) is sufficient. Also finished - lexeme code commentary. - * generic/tclCompExpr.c: Added missing creation and return of - the Tcl_Parse fields that indicate error conditions. [Bug 1749987] - -2007-07-05 Don Porter <dgp@users.sourceforge.net> - - * library/init.tcl (unknown): Corrected inconsistent error message - in interactive [unknown] when empty command is invoked. [Bug 1743676] - -2007-07-05 Miguel Sofer <msofer@users.sf.net> - - * generic/tclNamesp.c (SetNsNameFromAny): - * generic/tclObj.c (SetCmdNameFromAny): Avoid unnecessary - ckfree/ckalloc when the old structs can be reused. - -2007-07-04 Miguel Sofer <msofer@users.sf.net> - - * generic/tclNamesp.c: Fix case where a FQ cmd or ns was being cached - * generic/tclObj.c: in a different interp, tkcon. [Bug 1747512] - -2007-07-03 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Revised #define values so that there - is now more expansion room to define more BINARY operators. - -2007-07-02 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclHash.c (CompareStringKeys): Always use the strcmp() - version; the operation is functionally equivalent, the speed is - identical (up to measurement limitations), and yet the code is - simpler. [FRQ 951168] - -2007-07-02 Don Porter <dgp@users.sourceforge.net> - - * generic/tcl.h: Removed TCL_PRESERVE_BINARY_COMPATIBILITY and - * generic/tclHash.c: any code enabled when it is set to 0. We will - * generic/tclStubInit.c: always want to preserve binary compat - of the structs that appear in the interface through the 8.* series of - releases, so it's pointless to drag around this never-enabled - alternative. - - * generic/tclIO.c: Removed dead code. - * unix/tclUnixChan.c: - - * generic/tclCompExpr.c: Removed dead code, old implementations - * generic/tclEvent.c: of expr parsing and compiling, including the - * generic/tclInt.h: routine TclFinalizeCompilation(). - -2007-06-30 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclCmdIL.c (Tcl_LsortObjCmd): Plug a memory leak caused by a - missing Tcl_DecrRefCount on an error path. [Bug 1717186] + * generic/tclDecls.h: make genstubs + * generic/tclStubInit.c: -2007-06-30 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> +2009-09-23 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. + * doc/namespace.n: the description of [namespace unknown] failed + to mention [namespace path]: fixed. Thx emiliano. -2007-06-29 Donal K. Fellows <dkf@users.sf.net> +2009-09-21 Mo DeJong <mdejong@users.sourceforge.net> - * doc/DictObj.3 (Tcl_DictObjDone): Improved documentation of this - function to make it clearer how to use it. [Bug 1710795] + * tests/regexp.test: Added check for error message from + unbalanced [] in regexp. Added additional simple test cases + of basic regsub command. -2007-06-29 Daniel Steffen <das@users.sourceforge.net> +2009-09-21 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/tclCompile.c: Correct botch in the conversion of + Tcl_SubstObj(). Thanks to Kevin Kenny for detection and report. - * generic/tclGetDate.y: use ckalloc/ckfree instead of malloc/free. - * generic/tclDate.c: bison 1.875e +2009-09-17 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c (TclEvalEx): fix warnings. + * generic/tclCompile.c: Re-implement Tcl_SubstObj() as a simple + * generic/tclParse.c: wrapper around TclNRSubstObj(). This has + * tests/basic.test: the effect of caching compiled bytecode in + * tests/parse.test: the value to be substituted. Note that + Tcl_SubstObj() now exists only for extensions. Tcl itself no longer + makes any use of it. Note also that TclSubstTokens() is now reachable + only by Tcl_EvalEx() and Tcl_ParseVar() so tests aiming to test its + functioning needed adjustment to still have the intended effect. - * 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. +2009-09-16 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * macosx/README: document Tcl.xcodeproj changes. + * generic/tclObj.c: Extended ::tcl::unsupported::representation. -2007-06-28 Don Porter <dgp@users.sourceforge.net> +2009-09-11 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c: Removed dead code, including the - * generic/tclExecute.c: entire file tclMathOp.c. + * generic/tclBasic.c: Completed the NR-enabling of [subst]. + * generic/tclCmdMZ.c: [Bug 2314561]. + * generic/tclCompCmds.c: + * generic/tclCompile.c: * generic/tclInt.h: - * generic/tclMathOp.c (removed): - * generic/tclTestObj.c: - * win/tclWinFile.c: + * tests/coroutine.test: + * tests/parse.test: - * unix/Makefile.in: Updated to reflect deletion of tclMathOp.c. - * win/Makefile.in: - * win/makefile.bc: - * win/makefile.vc: - -2007-06-28 Pat Thoyts <patthoyts@users.sourceforge.net> - - * generic/tclBasic.c: Silence constness warnings for TclStackFree - * generic/tclCompCmds.c: when building with msvc. - * generic/tclFCmd.c: - * generic/tclIOCmd.c: - * generic/tclTrace.c: - -2007-06-28 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c (UnsetVarStruct): fix possible segfault. - -2007-06-27 Don Porter <dgp@users.sourceforge.net> - - * generic/tclTrace.c: Corrected broken trace reversal logic in - * generic/tclTest.c: TclCheckInterpTraces that led to infinite loop - * tests/trace.test: when multiple Tcl_CreateTrace traces were set - and one of them did not fire due to level restrictions. [Bug 1743931] - -2007-06-26 Don Porter <dgp@users.sourceforge.net> - - * generic/tclBasic.c (TclEvalEx): Moved some arrays from the C - stack to the Tcl stack. +2009-09-11 Donal K. Fellows <dkf@users.sf.net> -2007-06-26 Miguel Sofer <msofer@users.sf.net> + * tests/http.test: Added in cleaning up of http tokens for each test + to reduce amount of global-variable pollution. - * generic/tclVar.c (UnsetVarStruct): more streamlining. - -2007-06-25 Don Porter <dgp@users.sourceforge.net> - - * generic/tclExecute.c: Safety checks to avoid crashes in the - TclStack* routines when called with an incompletely initialized - interp. [Bug 1743302] - -2007-06-25 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c (UnsetVarStruct): fixing incomplete change, more - streamlining. - -2007-06-24 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c (TclDeleteCompiledLocalVars): removed inlining that - ended up not really optimising (limited benchmarks). Now calling - UnsetVarStruct (streamlined old code is #ifdef'ed out, in case better - benchmarks do show a difference). - - * generic/tclVar.c (UnsetVarStruct): fixed a leak introduced in last - commit. - -2007-06-23 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c (UnsetVarStruct, TclDeleteVars): made the logic - slightly clearer, eliminated some duplicated code. - - *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and Var struct users) - The core never builds VAR_LINK variable to have traces. Such a - "monster", should one exist, will now have its unset traces called - *before* it is unlinked. +2009-09-10 Donal K. Fellows <dkf@users.sf.net> -2007-06-23 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. - * macosx/tclMacOSXNotify.c (AtForkChild): don't call CoreFoundation - APIs after fork() on systems where that would lead to an abort(). +2009-09-07 Don Porter <dgp@users.sourceforge.net> -2007-06-22 Don Porter <dgp@users.sourceforge.net> + * generic/tclParse.c: [Bug 2850901]: Corrected line counting error + * tests/into.test: in multi-command script substitutions. - * generic/tclExecute.c: Revised TclStackRealloc() signature to better - * generic/tclInt.h: parallel (and fall back on) Tcl_Realloc. +2009-09-07 Daniel Steffen <das@users.sourceforge.net> - * generic/tclNamesp.c (TclResetShadowesCmdRefs): Replaced - ckrealloc based allocations with TclStackRealloc allocations. + * generic/tclExecute.c: Fix potential uninitialized variable use and + * generic/tclFCmd.c: null dereference flagged by clang static + * generic/tclProc.c: analyzer. + * generic/tclTimer.c: + * generic/tclUtf.c: - * generic/tclCmdIL.c: More conversions to use TclStackAlloc. + * generic/tclExecute.c: Silence false positives from clang static + * generic/tclIO.c: analyzer about potential null dereference. * generic/tclScan.c: - -2007-06-21 Don Porter <dgp@users.sourceforge.net> - - * generic/tclBasic.c: Move most instances of the Tcl_Parse struct - * generic/tclCompExpr.c: off the C stack and onto the Tcl stack. This - * generic/tclCompile.c: is a rather large struct (> 3kB). - * generic/tclParse.c: - -2007-06-21 Miguel Sofer <msofer@users.sf.net> - - * generic/tclBasic.c (TEOvI): Made sure that leave traces - * generic/tclExecute.c (INST_INVOKE): that were created during - * tests/trace.test (trace-36.2): execution of an originally - untraced command do not fire [Bug 1740962], partial fix. - -2007-06-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * generic/tcl.h, generic/tclCompile.h, generic/tclCompile.c: Remove - references in comments to obsolete {expand} notation. [Bug 1740859] - -2007-06-20 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c: streamline namespace vars deletion: only compute - the variable's full name if the variable is traced. - -2007-06-20 Don Porter <dgp@users.sourceforge.net> - - * generic/tclInt.decls: Revised the interfaces of the routines - * generic/tclExecute.c: TclStackAlloc and TclStackFree to make them - easier for callers to use (or more precisely, harder to misuse). - TclStackFree now takes a (void *) argument which is the pointer - intended to be freed. TclStackFree will panic if that's not actually - the memory the call will free. TSA/TSF also now tolerate receiving - (interp == NULL), in which case they simply fall back to be calls to - Tcl_Alloc/Tcl_Free. - - * generic/tclIntDecls.h: make genstubs - - * generic/tclBasic.c: Updated callers - * generic/tclCmdAH.c: - * generic/tclCmdIL.c: - * generic/tclCompCmds.c: * generic/tclCompExpr.c: - * generic/tclCompile.c: - * generic/tclFCmd.c: - * generic/tclFileName.c: - * generic/tclIOCmd.c: - * generic/tclIndexObj.c: - * generic/tclInterp.c: - * generic/tclNamesp.c: - * generic/tclProc.c: - * generic/tclTrace.c: - * unix/tclUnixPipe.c: - -2007-06-20 Jeff Hobbs <jeffh@ActiveState.com> - - * tools/tcltk-man2html.tcl: revamp of html doc output to use CSS, - standardized headers, subheaders, dictionary sorting of names. - -2007-06-18 Jeff Hobbs <jeffh@ActiveState.com> - - * tools/tcltk-man2html.tcl: clean up copyright merging and output. - clean up coding constructs. - -2007-06-18 Miguel Sofer <msofer@users.sf.net> - - * generic/tclCmdIL.c (InfoFrameCmd): - * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): - * generic/tclCompile.c (TclInitCompileEnv): - * generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Moved the - CmdFrame off the C stack and onto the Tcl stack. - - * generic/tclExecute.c (TEBC): Moved the CmdFrame off the C stack and - onto the Tcl stack, between the catch and the execution stacks -2007-06-18 Don Porter <dgp@users.sourceforge.net> +2009-09-04 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c (TclEvalEx,TclEvalObjEx): Moved the CmdFrame off - the C stack and onto the Tcl stack. + * generic/tclCompCmds.c (TclCompileSubstCmd): [Bug 2314561]: + * generic/tclBasic.c: Added a bytecode compiler routine for the + * generic/tclCmdMZ.c: [subst] command. This is a partial solution to + * generic/tclCompile.c: the need to NR-enable [subst] since bytecode + * generic/tclCompile.h: execution is already NR-enabled. Two new + * generic/tclExecute.c: bytecode instructions, INST_NOP and + * generic/tclInt.h: INST_RETURN_CODE_BRANCH were added to support + * generic/tclParse.c: the new routine. INST_RETURN_CODE_BRANCH is + * tests/basic.test: likely to be useful in any future effort to + * tests/info.test: add a bytecode compiler routine for [try]. + * tests/parse.test: -2007-06-17 Donal K. Fellows <dkf@users.sf.net> +2009-09-03 Donal K. Fellows <dkf@users.sf.net> - * generic/tclProc.c (TclObjInterpProcCore): Minor fixes to make - * generic/tclExecute.c (TclExecuteByteCode): compilation debugging - builds work again. [Bug 1738542] + * doc/LinkVar.3: [Bug 2844962]: Added documentation of issues relating + to use of this API in a multi-threaded environment. -2007-06-16 Donal K. Fellows <dkf@users.sf.net> +2009-09-01 Andreas Kupries <andreask@activestate.com> - * generic/tclProc.c (TclObjInterpProcCore): Use switch instead of a - chain of if's for a modest performance gain and a little more clarity. + * generic/tclIORTrans.c (ReflectInput): Remove error response to + 0-result from method 'limit?' of transformations. Return the number of + copied bytes instead, which is possibly nothing. The latter then + triggers EOF handling in the higher layers, making the 0-result of + limit? the way to inject artificial EOF's into the data stream. -2007-06-15 Miguel Sofer <msofer@users.sf.net> +2009-09-01 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompCmds.c: Simplified [variable] compiler and executor. - * generic/tclExecute.c: Missed updates to "there is always a valid - frame". + * 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: - * 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. +2009-08-27 Don Porter <dgp@users.sourceforge.net> - * 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. + * generic/tclStringObj.c: [Bug 2845535]: A few more string + overflow cases in [format]. -2007-06-14 Miguel Sofer <msofer@users.sf.net> +2009-08-25 Andreas Kupries <andreask@activestate.com> - * generic/tclInt.decls: Modif to the internals of TclObjInterpProc - * generic/tclInt.h: to reduce stack consumption and improve task - * generic/tclIntDecls.h: separation. Changes the interface of - * generic/tclProc.c: TclObjInterpProcCore (patching TclOO - simultaneously). + * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard) + (Tcl_EvalEx, TclEvalEx, TclAdvanceContinuations, TclNREvalObjEx): + * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines): + * generic/tclCompCmds.c (*): + * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv) + (TclFreeCompileEnv, TclCompileScript, TclCompileTokens): + * generic/tclCompile.h (CompileEnv): + * generic/tclInt.h (ContLineLoc, Interp): + * generic/tclObj.c (ThreadSpecificData, ContLineLocFree) + (TclThreadFinalizeObjects, TclInitObjSubsystem, TclContinuationsEnter, + (TclContinuationsEnterDerived, TclContinuationsCopy, TclFreeObj) + (TclContinuationsGet): + * generic/tclParse.c (TclSubstTokens, Tcl_SubstObj): + * generic/tclProc.c (TclCreateProc): + * generic/tclVar.c (TclPtrSetVar): + * tests/info.test (info-30.0-24): - * generic/tclProc.c (TclObjInterpProcCore): simplified obj management - in wrongNumArgs calls. + Extended the parser, compiler, and execution engine with code and + attendant data structures tracking the position of continuation lines + which are not visible in the resulting script Tcl_Obj*'s, to properly + account for them while counting lines for #280. -2007-06-14 Don Porter <dgp@users.sourceforge.net> +2009-08-24 Daniel Steffen <das@users.sourceforge.net> - * generic/tclCompile.c: SetByteCodeFromAny() can no longer return any - * generic/tclExecute.c: code other than TCL_OK, so remove code that - * generic/tclProc.c: formerly handled exceptional codes. + * generic/tclInt.h: Annotate Tcl_Panic as noreturn for clang static + analyzer in PURIFY builds, replacing preprocessor/assert technique. -2007-06-13 Miguel Sofer <msofer@users.sf.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) - * generic/tclExecute.c (TclCompEvalObj): missed update to "there is - always a valid frame". +2009-08-21 Don Porter <dgp@users.sourceforge.net> - * 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]. + * generic/tclFileName.c: Correct regression in [Bug 2837800] fix. + * tests/fileName.test: -2007-06-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2009-08-20 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c (Tcl_CreateInterp): Turn the [info] command into - * generic/tclCmdIL.c (TclInitInfoCmd): an ensemble, making it easier - for third-party code to plug into. + * generic/tclFileName.c: [Bug 2837800]: Correct the result produced by + [glob */test] when * matches something like ~foo. - * 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. + * 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. -2007-06-11 Miguel Sofer <msofer@users.sf.net> +2009-08-20 Donal K. Fellows <dkf@users.sf.net> - * generic/tclExecute.c: comments added to explain iPtr->numLevels - management. + * generic/tclCmdIL.c (TclNRIfObjCmd): [Bug 2823276]: Make [if] + NRE-safe on all arguments when interpreted. + (Tcl_LsortObjCmd): Close off memory leak. - * 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. +2009-08-19 Donal K. Fellows <dkf@users.sf.net> -2007-06-10 Miguel Sofer <msofer@users.sf.net> + * generic/tclCmdAH.c (TclNRForObjCmd, etc.): [Bug 2823276]: Make [for] + and [while] into NRE-safe commands, even when interpreted. - * 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. +2009-08-18 Don Porter <dgp@users.sourceforge.net> - ***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*** + * generic/tclPathObj.c: [Bug 2837800]: Added NULL check to prevent + * tests/fileName.test: crashes during [glob]. -2007-06-10 Jeff Hobbs <jeffh@ActiveState.com> +2009-08-16 Jan Nijtmans <nijtmans@users.sf.net> - * README: updated links. [Bug 1715081] + * unix/dltest/pkge.c: const addition + * unix/tclUnixThrd.c: Use <pthread.h> in stead of "pthread.h" + * win/tclWinDde.c: Eliminate some more gcc warnings + * win/tclWinReg.c: + * generic/tclInt.h: Change ForIterData, make it const-safe. + * generic/tclCmdAH.c: - * 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] +2009-08-12 Don Porter <dgp@users.sourceforge.net> -2007-06-10 Miguel Sofer <msofer@users.sf.net> + TIP #353 IMPLEMENTATION - * generic/tclInt.h: - * generic/tclNamesp.c: - * generic/tclObj.c: - * generic/tclvar.c: new macros TclGetCurrentNamespace() and - TclGetGlobalNamespace(); Tcl_GetCommandFromObj and - TclGetNamespaceFromObj rewritten to make the logic clearer; slightly - faster too. - -2007-06-09 Miguel Sofer <msofer@users.sf.net> - - * generic/tclExecute.c (INST_INVOKE): isolated two vars to the small - block where they are actually used. - - * generic/tclObj.c (Tcl_GetCommandFromObj): rewritten to make the - logic clearer; slightly faster too. - - * generic/tclBasic.c: Split TEOv in two, by separating a processor - for non-TCL_OK returns. Also split TEOvI in a full version that - handles non-existing and traced commands, and a separate shorter - version for the regular case. - - * generic/tclBasic.c: Moved the generation of command strings for - * generic/tclTrace.c: traces: previously in Tcl_EvalObjv(), now in - TclCheck[Interp|Execution]Traces(). Also insured that the strings are - properly NUL terminated at the correct length. [Bug 1693986] - - ***POTENTIAL INCOMPATIBILITY in internal API*** - The functions TclCheckInterpTraces() and TclCheckExecutionTraces() (in - internal stubs) used to be noops if the command string was NULL, this - is not true anymore: if the command string is NULL, they generate an - appropriate string from (objc,objv) and use it to call the traces. The - caller might as well not call them with a NULL string if he was - expecting a noop. - - * generic/tclBasic.c: Extend usage of TclLimitReady() and - * generic/tclExecute.c: (new) TclLimitExceeded() macros. - * generic/tclInt.h: - * generic/tclInterp.c: - - * generic/tclInt.h: New TclCleanupCommandMacro for core usage. - * generic/tclBasic.c: + * doc/NRE.3: New public routine Tcl_NRExprObj() permits + * generic/tcl.decls: extension commands to evaluate Tcl expressions + * generic/tclBasic.c: in NR-enabled command procedures. + * generic/tclCmdAH.c: * generic/tclExecute.c: - * generic/tclObj.c: - -2007-06-09 Daniel Steffen <das@users.sourceforge.net> - - * macosx/Tcl.xcodeproj/project.pbxproj: add new Tclsh-Info.plist.in. - -2007-06-08 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclCmdMZ.c (Tcl_StringObjCmd): Changed [string first] and - * doc/string.n: [string last] so that they have clearer descriptions - for those people who know the adage about needles and haystacks. This - follows suggestions on comp.lang.tcl... - -2007-06-06 Miguel Sofer <msofer@users.sf.net> - - * generic/tclParse.c: fix for uninit read. [Bug 1732414] - -2007-06-06 Daniel Steffen <das@users.sourceforge.net> - - * macosx/Tcl.xcodeproj/project.pbxproj: add settings for Fix&Continue. - - * unix/configure.in (Darwin): add plist for tclsh; link the - * unix/Makefile.in (Darwin): Tcl and tclsh plists into - * macosx/Tclsh-Info.plist.in (new): their binaries in all cases. - * macosx/Tcl-Common.xcconfig: - - * unix/tcl.m4 (Darwin): fix CF checks in fat 32&64bit builds. - * unix/configure: autoconf-2.59 - -2007-06-05 Don Porter <dgp@users.sourceforge.net> - - * generic/tclBasic.c: Added interp flag value ERR_LEGACY_COPY to - * generic/tclInt.h: control the timing with which the global - * generic/tclNamesp.c: variables ::errorCode and ::errorInfo get - * generic/tclProc.c: updated after an error. This keeps more - * generic/tclResult.c: precise compatibility with Tcl 8.4. - * tests/result.test (result-6.2): [Bug 1649062] - -2007-06-05 Miguel Sofer <msofer@users.sf.net> - * generic/tclInt.h: - * generic/tclExecute.c: Tcl-stack reform, [Patch 1701202] - -2007-06-03 Daniel Steffen <das@users.sourceforge.net> - - * unix/Makefile.in: add datarootdir to silence autoconf-2.6x warning. - -2007-05-30 Don Porter <dgp@users.sourceforge.net> - - * generic/tclBasic.c: Removed code that dealt with - * generic/tclCompile.c: TCL_TOKEN_EXPAND_WORD tokens representing - * generic/tclCompile.h: expanded literal words. These sections were - mostly in place to enable [info frame] to discover line information in - expanded literals. Since the parser now generates a token for each - post-expansion word referring to the right location in the original - script string, [info frame] gets all the data it needs. - - * generic/tclInt.h: Revised the parser so that it never produces - * generic/tclParse.c: TCL_TOKEN_EXPAND_WORD tokens when parsing an - * tests/parse.test: expanded literal word; that is, something like - {*}{x y z}. Instead, generate the series of TCL_TOKEN_SIMPLE_WORD - tokens to represent the words that expansion of the literal string - produces. [RFE 1725186] - -2007-05-29 Jeff Hobbs <jeffh@ActiveState.com> - - * unix/tclUnixThrd.c (Tcl_JoinThread): fix for 64-bit handling of - pthread_join exit return code storage. [Bug 1712723] - -2007-05-22 Don Porter <dgp@users.sourceforge.net> - - [core-stabilizer-branch] - - * unix/configure: autoconf-2.59 (FC6 fork) - * win/configure: - - * README: Bump version number to 8.5b1 - * generic/tcl.h: - * library/init.tcl: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/configure.in: - -2007-05-18 Don Porter <dgp@users.sourceforge.net> - - * unix/configure: autoconf-2.59 (FC6 fork) - * win/configure: - - * README: Bump version number to 8.5a7 - * generic/tcl.h: - * library/init.tcl: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/configure.in: - - * generic/tclParse.c: Disable and remove the ALLOW_EXPAND sections - * tests/info.test: that continued to support the deprecated - * tests/mathop.test: {expand} syntax. Updated the few remaining - users of that syntax in the test suite. - -2007-05-17 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclExecute.c (TclLimitReady): Created a macro version of - Tcl_LimitReady just for TEBC, to reduce the amount of times that the - bytecode engine calls out to external functions on the critical path. - * generic/tclInterp.c (Tcl_LimitReady): Added note to remind anyone - doing maintenance that there is a macro version to update. - -2007-05-17 Daniel Steffen <das@users.sourceforge.net> - - * generic/tcl.decls: workaround 'make checkstubs' failures from - tclStubLib.c MODULE_SCOPE revert. [Bug 1716117] - -2007-05-16 Joe English <jenglish@users.sourceforge.net> - - * generic/tclStubLib.c: Change Tcl_InitStubs(), tclStubsPtr, and the - auxilliary stubs table pointers back to public visibility. - - These symbols need to be exported so that stub-enabled extensions may - be statically linked into an extended tclsh or Big Wish with a - dynamically-linked libtcl. [Bug 1716117] - -2007-05-15 Don Porter <dgp@users.sourceforge.net> - - * win/configure: autoconf-2.59 (FC6 fork) - - * library/reg/pkgIndex.tcl: Bump to registry 1.2.1 to account for - * win/configure.in: [Bug 1682211] fix. - * win/makefile.bc: - * win/tclWinReg.c: - -2007-05-11 Pat Thoyts <patthoyts@users.sourceforge.net> - - * generic/tclInt.h: Removed TclEvalObjEx and TclGetSrcInfoForPc from - tclInt.h now they are in the internal stubs table. - -2007-05-09 Don Porter <dgp@users.sourceforge.net> - - * generic/tclInt.h: TclFinalizeThreadAlloc() is always defined, so - make sure it is also always declared (with MODULE_SCOPE). - -2007-05-09 Daniel Steffen <das@users.sourceforge.net> - - * generic/tclInt.h: fix warning when building threaded with -DPURIFY. - - * macosx/Tcl.xcodeproj/project.pbxproj: add 'DebugUnthreaded' & - * macosx/Tcl.xcodeproj/default.pbxuser: 'DebugLeaks' configs and env - var settings needed to run the 'leaks' tool. - -2007-05-07 Don Porter <dgp@users.sourceforge.net> - - [Tcl Bug 1706140] - - * generic/tclLink.c (LinkTraceProc): Update Tcl_VarTraceProcs so - * generic/tclNamesp.c (Error*Read): they call Tcl_InterpDeleted() - * generic/tclTrace.c (Trace*Proc): for themselves, and do not - * generic/tclUtil.c (TclPrecTraceProc): rely on (frequently buggy) - setting of the TCL_INTERP_DESTROYED flag by the trace core. - - * generic/tclVar.c: Update callers of TclCallVarTraces to not pass - in the TCL_INTERP_DESTROYED flag. Also apply filters so that public - routines only pass documented flag values down to lower level routines - - * generic/tclTrace.c (TclCallVarTraces): The setting of the - TCL_INTERP_DESTROYED flag is now done entirely within the - TclCallVarTraces routine, the only place it can be done right. - -2007-05-06 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclInt.h (ExtraFrameInfo): Create a new mechanism for - * generic/tclCmdIL.c (InfoFrameCmd): conveying what information needs - to be added to the results of [info frame] to replace the hack that - was there before. - * generic/tclProc.c (Tcl_ApplyObjCmd): Use the new mechanism for the - [apply] command, the only part of Tcl itself that needs it (so far). - - * generic/tclInt.decls (TclEvalObjEx, TclGetSrcInfoForPc): Expose - these two functions through the internal stubs table, necessary for - extensions that need to integrate deeply with TIP#280. - -2007-05-05 Donal K. Fellows <dkf@users.sf.net> - - * win/tclWinFile.c (TclpGetUserHome): Squelch type-pun warnings in - * win/tclWinInit.c (TclpSetVariables): Win-specific code not found - * win/tclWinReg.c (AppendSystemError): during earlier work on Unix. - -2007-05-04 Kevin B. Kenny <kennykb@acm.org> - - * generic/tclIO.c (TclFinalizeIOSubsystem): Added an initializer to - silence a spurious gcc warning about use of an uninitialized - variable. - * tests/encoding.test: Modified so that encoding tests happen in a - private namespace, to avoid polluting the global one. This problem was - discovered when running the test suite '-singleproc 1 -skip exec.test' - because the 'path' variable in encoding.test conflicted with the one - in io.test. - * tests/io.test: Made more of the working variables private to the - namespace. - -2007-05-02 Kevin B. Kenny <kennykb@acm.org> - - * generic/tclTest.c (SimpleMatchInDirectory): Corrected a refcount - imbalance that affected the filesystem-[147]* tests in the test suite. - Thanks to Don Porter for the patch. [Bug 1710707] - * generic/tclPathObj.c (Tcl_FSJoinPath, Tcl_FSGetNormalizedPath): - Corrected several memory leaks that caused refcount imbalances - resulting in memory leaks on Windows. Thanks to Joe Mistachkin for the - patch. - -2007-05-01 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c (TclPtrSetVar): fixed leak whenever newvaluePtr had - refCount 0 and was used for appending (but not lappending). Thanks to - mistachkin and kbk. [Bug 1710710] - -2007-05-01 Kevin B. Kenny <kennykb@acm.org> - - * generic/tclIO.c (DeleteChannelTable): Made changes so that - DeleteChannelTable tries to close all open channels, not just the - first. [Bug 1710285] - * generic/tclThread.c (TclFinalizeSynchronization): Make sure that TSD - blocks get freed on non-threaded builds. [Bug 1710825] - * tests/utf.test (utf-25.1--utf-25.4): Modified tests to clean up - after the 'testobj' extension to avoid spurious reports of memory - leaks. - -2007-05-01 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCmdMZ.c (STR_MAP): When [string map] has a pure dict map, - a missing Tcl_DictObjDone() call led to a memleak. [Bug 1710709] - -2007-04-30 Daniel Steffen <das@users.sourceforge.net> - - * unix/Makefile.in: add 'tclsh' dependency to install targets that - rely on tclsh, fixes parallel 'make install' from empty build dir. - -2007-04-30 Andreas Kupries <andreask@gactivestate.com> - - * generic/tclIO.c (FixLevelCode): Corrected reference count - mismanagement of newlevel, newcode. Changed to allocate the Tcl_Obj's - as late as possible, and only when actually needed. [Bug 1705778, leak - K29] - -2007-04-30 Kevin B. Kenny <kennykb@acm.org> - - * generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Corrected - reference count mismanagement on the name of the source file in the - TIP 280 code. [Bug 1705778, leak K02 among other manifestations] - -2007-04-25 Donal K. Fellows <dkf@users.sf.net> - - *** 8.5a6 TAGGED FOR RELEASE *** - - * generic/tclProc.c (TclObjInterpProcCore): Only allocate objects for - error message generation when associated with argument names that are - really used. [Bug 1705778, leak K15] - -2007-04-25 Kevin B. Kenny <kennykb@acm.org> - - * 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] - -2007-04-25 Don Porter <dgp@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] - -2007-04-25 Daniel Steffen <das@users.sourceforge.net> - - * unix/Makefile.in (dist): add macosx/*.xcconfig files to src dist; - copy license.terms to dist macosx dir; fix autoheader bits. - -2007-04-24 Miguel Sofer <msofer@users.sf.net> - - * 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. - -2007-04-24 Donal K. Fellows <dkf@users.sf.net> - - * 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] + * generic/tclObj.c: + * tests/expr.test: -2007-04-24 Kevin B. Kenny <kennykb@acm.org> + * generic/tclDecls.h: make genstubs + * generic/tclStubInit.c: - * 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] +2009-08-06 Andreas Kupries <andreask@activestate.com> -2007-04-24 Jeff Hobbs <jeffh@ActiveState.com> + * doc/refchan.n [Bug 2827000]: Extended the implementation of + * generic/tclIORChan.c: reflective channels (TIP 219, method + * tests/ioCmd.test: 'read'), 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/Makefile.in (dist): add platform library package to src dist +2009-08-02 Miguel Sofer <msofer@users.sf.net> -2007-04-24 Don Porter <dgp@users.sourceforge.net> + * tests/coroutine.test: fix testfile cleanup - * generic/tclCompExpr.c (ParseExpr): Memory leak in error case; the - literal Tcl_Obj was not getting freed. [Bug 1705778, leak #1 (new)] +2009-08-02 Donal K. Fellows <dkf@users.sf.net> - * 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] + * generic/tclObj.c (Tcl_RepresentationCmd): Added an unsupported + command for reporting the representation of an object. Result string + is deliberately a bit obstructive so that people are not encouraged to + make code that depends on it; it's a debugging tool only! -2007-04-24 Kevin B. Kenny <kennykb@acm.org> + * unix/tclUnixFCmd.c (GetOwnerAttribute, SetOwnerAttribute) + (GetGroupAttribute, SetGroupAttribute): [Bug 1942222]: Stop calling + * unix/tclUnixFile.c (TclpGetUserHome): endpwent() and endgrent(); + they've been unnecessary for ages. - * 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]) +2009-08-02 Jan Nijtmans <nijtmans@users.sf.net> -2007-04-23 Daniel Steffen <das@users.sourceforge.net> + * win/tclWin32Dll.c: Eliminate TclWinResetInterfaceEncodings, since it + * win/tclWinInit.c: does exactly the same as TclWinEncodingsCleanup, + * win/tclWinInt.h: make sure that tclWinProcs and + tclWinTCharEncoding are always set and reset + concurrently. + * win/tclWinFCmd.c: Correct check for win95 - * generic/tclCkalloc.c: fix warnings from gcc build configured with - * generic/tclCompile.c: --enable-64bit --enable-symbols=all. - * generic/tclExecute.c: +2009-07-31 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixFCmd.c: add workaround for crashing bug in fts_open() - * unix/tclUnixInit.c: without FTS_NOSTAT on 64bit Darwin 8 or earlier. - - * unix/tclLoadDyld.c (TclpLoadMemory): fix (void*) arithmetic. - - * macosx/Tcl-Common.xcconfig: enable more warnings. - - * 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. - - * macosx/tclMacOSXNotify.c: fix warnings. - - * macosx/tclMacOSXFCmd.c: const fixes. - - * macosx/Tcl-Common.xcconfig: fix whitespace. - * macosx/Tcl-Debug.xcconfig: - * macosx/Tcl-Release.xcconfig: - * macosx/README: - - * 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: - - * unix/configure.in: install license.terms into Tcl.framework. - * unix/configure: autoconf-2.59 - -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. + * 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. -2007-04-19 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2009-07-26 Donal K. Fellows <dkf@users.sf.net> - * generic/regcomp.c, generic/regc_cvec.c, generic/regc_lex.c, - * generic/regc_locale.c: Improve the const-correctness of the RE - compiler. - -2007-04-18 Miguel Sofer <msofer@users.sf.net> + * library/auto.tcl (tcl_findLibrary, auto_mkindex): + * library/package.tcl (pkg_mkIndex, tclPkgUnknown, MacOSXPkgUnknown): + * library/safe.tcl (interpAddToAccessPath, interpDelete, AliasGlob): + (AliasSource, AliasLoad, AliasEncoding): + * library/tm.tcl (UnknownHandler): Simplify by swapping some [catch] + gymnastics for use of [try]. - * 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. +2009-07-26 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * 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) + * tools/genStubs.tcl: Forced LF translation when generating .h's to + avoid spurious diffs when regenerating on a Windows box. - * generic/tclExecute.c: slight changes in Tcl_Obj management. +2009-07-26 Jan Nijtmans <nijtmans@users.sf.net> -2007-04-17 Kevin B. Kenny <kennykb@acm.org> - - * 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] - -2007-04-17 Miguel Sofer <msofer@users.sf.net> - - * generic/tclExecute.c: fixed checkInterp logic [Bug 1702212] - -2007-04-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * various (including generic/tclTest.c): Complete the purge of K&R - function definitions from manually-written code. - -2007-04-15 Kevin B. Kenny <kennykb@acm.org> - - * 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. + * win/Makefile.in: [Bug 2827066]: msys build --enable-symbols broken + * win/tcl.m4: And modified the same for unicows.dll, as a + * win/configure: preparation for [Enh 2819611]. -2007-04-14 Miguel Sofer <msofer@users.sf.net> +2009-07-25 Donal K. Fellows <dkf@users.sf.net> - * generic/tclExecute.c: removed some code at INST_EXPAND_SKTOP that - duplicates functionality already present at checkForCatch. + * library/history.tcl (history): Reworked the history mechanism in + terms of ensembles, rather than the ad hoc ensemble-lite mechanism + used previously. -2007-04-12 Miguel Sofer <msofer@users.sf.net> +2009-07-24 Donal K. Fellows <dkf@users.sf.net> - * 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). + * doc/self.n (self class): [Bug 2704302]: Add some text to make it + clearer how to get the name of the current object's class. -2007-04-11 Miguel Sofer <msofer@users.sf.net> +2009-07-23 Andreas Kupries <andreask@activestate.com> - * generic/tclCompCmds.c: moved all exceptDepth management to the - macros - the decreasing half was managed by hand. - -2007-04-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * 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> - * 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). +2009-07-23 Joe Mistachkin <joe@mistachkin.com> -2007-04-08 Miguel Sofer <msofer@users.sf.net> + * generic/tclNotify.c: [Bug 2820349]: Ensure that queued events are + freed once processed. - * generic/tclCompile (tclInstructionTable): Fixed bugs in description - of dict instructions. +2009-07-22 Jan Nijtmans <nijtmans@users.sf.net> -2007-04-07 Miguel Sofer <msofer@users.sf.net> + * macosx/tclMacOSXFCmd.c: CONST -> const + * generic/tclGetDate.y: + * generic/tclDate.c: + * generic/tclLiteral.c: (char *) cast in ckfree call + * generic/tclPanic.c: [Feature Request 2814786]: remove TclpPanic + * generic/tclInt.h + * unix/tclUnixPort.h + * win/tclWinPort.h - * generic/tclCompile (tclInstructionTable): Fixed bug in description - of INST_START_COMMAND. +2009-07-22 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * generic/tclExecute.c (TEBC): Small code reduction. + * generic/tclEvent.c: [Bug 2001201 again]: Refined the 20090617 patch + on [exit] streamlining, so that it now correctly calls thread exit + handlers for the calling thread, including <Destroy> bindings in Tk. -2007-04-06 Miguel Sofer <msofer@users.sf.net> +2009-07-21 Kevin B. Kenny <kennykb@acm.org> - * 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). + * library/tzdata/Asia/Dhaka: + * library/tzdata/Indian/Mauritius: Olson's tzdata2009k. -2007-04-03 Miguel Sofer <msofer@users.sf.net> +2009-07-20 Donal K. Fellows <dkf@users.sf.net> - * generic/tclExecute.c: INST_INVOKE optimisation. [Patch 1693802] + * 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. -2007-04-03 Don Porter <dgp@users.sourceforge.net> +2009-07-19 Donal K. Fellows <dkf@users.sf.net> - * generic/tclNamesp.c: Revised ErrorCodeRead and ErrorInfoRead trace - routines so they guarantee the ::errorCode and ::errorInfo variable - always appear to exist. [Bug 1693252] + * generic/tclOO.decls, generic/tclOO.c (Tcl_GetObjectName): Expose a + function for efficiently returning the current name of an object. -2007-04-03 Miguel Sofer <msofer@users.sf.net> +2009-07-18 Daniel Steffen <das@users.sourceforge.net> - * generic/tclInt.decls: Moved TclGetNamespaceFromObj() to the - * generic/tclInt.h: internal stubs table; regen. - * generic/tclIntDecls.h: - * generic/tclStubInit.c: + * unix/Makefile.in: Define NDEBUG in optimized (non-symbols) build to + disable NRE assert()s and threaded allocator range checks. -2007-04-02 Miguel Sofer <msofer@users.sf.net> +2009-07-16 Don Porter <dgp@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/tclBinary.c: Removed unused variables. + * generic/tclCmdIL.c: + * generic/tclCompile.c: * generic/tclExecute.c: - * generic/tclInt.h: + * generic/tclHash.c: + * generic/tclIOUtil.c: * generic/tclVar.c: -2007-04-02 Don Porter <dgp@users.sourceforge.net> - - * 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: - -2007-04-01 Donal K. Fellows <dkf@users.sf.net> - - * 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.) - -2007-03-30 Don Porter <dgp@users.sourceforge.net> - - * 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/tclCmdMZ.c: Revised [string to* $s $first $last] - implementation to reduce number of allocs/copies. - - * tests/string.test: More [string reverse] tests. - -2007-03-30 Miguel Sofer <msofer@users.sf.net> - - * generic/tclExecute.c: optimise the lookup of elements of indexed - arrays. - -2007-03-29 Miguel Sofer <msofer@users.sf.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. - -2007-03-28 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCmdMZ.c (STR_REVERSE): Implement the actual [string - reverse] command in terms of the new TclStringObjReverse() routine. - - * 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. - -2007-03-27 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCmdMZ.c (STR_MAP): Replace ckalloc calls with - TclStackAlloc calls. - -2007-03-24 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - - * 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. - -2007-03-23 Miguel Sofer <msofer@users.sf.net> - - * generic/tclBasic.c (DeleteInterpProc): pop the root frame pointer - before deleting the global namespace [Bug 1658572] - -2007-03-23 Kevin B. Kenny <kennykb@acm.org> - - * win/Makefile.in: Added code to keep a Cygwin path name from leaking - into LIBRARY_DIR when doing 'make test' or 'make runtest'. - -2007-03-22 Don Porter <dgp@users.sourceforge.net> - - * 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/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. - -2007-03-21 Don Porter <dgp@users.sourceforge.net> - - * 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: - -2007-03-20 Don Porter <dgp@users.sourceforge.net> - - * generic/tclEnv.c: Some more ckalloc -> ckrealloc replacements. - * generic/tclLink.c: - -2007-03-20 Kevin B. Kenny <kennykb@acm.org> - - * 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." - - * 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. - - * 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] - -2007-03-19 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompile.c: Revise the various expansion routines for - CompileEnv fields to use ckrealloc() where appropriate. - - * generic/tclBinary.c (Tcl_SetByteArrayLength): Replaced ckalloc() / - memcpy() sequence with ckrealloc() call. - - * 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. - -2007-03-19 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * 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. - -2007-03-17 Kevin B. 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. + * generic/tclBasic.c: Silence compiler warnings about ClientData. + * generic/tclProc.c: -2007-03-15 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclScan.c: Typo in ACCEPT_NAN configuration. - * 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. + * generic/tclStrToD.c: [Bug 2819200]: Set floating point control + register on MIPS systems so that the gradual underflow expected by Tcl + is in effect. -2007-03-15 Mo DeJong <mdejong@users.sourceforge.net> +2009-07-15 Donal K. Fellows <dkf@users.sf.net> - * win/Makefile.in: Fully qualify LIBRARY_DIR so that `make test` does - not depend on working dir. + * generic/tclInt.h (Namespace): Added machinery to allow + * generic/tclNamesp.c (many functions): reduction of memory used + * generic/tclResolve.c (BumpCmdRefEpochs): by namespaces. Currently + #ifdef'ed out because of compatibility concerns. -2007-03-15 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclInt.decls: Added four functions for better integration + with itcl-ng. - * tests/parse.test: Add two backslash newline parse tests. +2009-07-14 Kevin B. Kenny <kennykb@acm.org> -2007-03-12 Don Porter <dgp@users.sourceforge.net> + * generic/tclInt.h (TclNRSwitchObjCmd): + * generic/tclBasic.c (builtInCmds): + * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): + * tests/switch.test (switch-15.1): + [Bug 2821401]: Make non-bytecoded [switch] command aware of NRE. + +2009-07-13 Andreas Kupries <andreask@activestate.com> + + * generic/tclCompile.c (TclInitCompileEnv, EnterCmdWordIndex) + (TclCleanupByteCode, TclCompileScript): + * generic/tclExecute.c (TclCompileObj, TclExecuteByteCode): + * tclCompile.h (ExtCmdLoc): + * tclInt.h (ExtIndex, CFWordBC, CmdFrame): + * tclBasic.c (DeleteInterpProc, TclArgumentBCEnter) + (TclArgumentBCRelease, TclArgumentGet, SAVE_CONTEXT) + (RESTORE_CONTEXT, NRCoroutineExitCallback, TclNRCoroutineObjCmd): + * generic/tclCmdAH.c (TclNRForObjCmd, TclNRForIterCallback, + (ForNextCallback): + * generic/tclCmdMZ.c (TclNRWhileObjCmd): + + Extended the bytecode compiler initialization to recognize the + compilation of whole files (NRE enabled 'source' command) and switch + to the counting of absolute lines in that case. + + Further extended the bytecode compiler to track the start line in the + generated information, and modified the bytecode execution to + recompile an object if the location as per the calling context doesn't + match the location saved in the bytecode. This part could be optimized + more by using more memory to keep all possibilities which occur + around, or by just adjusting the location information instead of a + total recompile. - * 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] + 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, + and the previous change remove the problems with location data caused + by literal sharing (across whole files, but also proc bodies). + Simplified the associated datastructures (ExtIndex is gone, as is the + function EnterCmdWordIndex). - * 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] + The last change causes the hashtable 'lineLABCPtr' to be state which + has to be kept per coroutine, like the CmdFrame stack. Reworked the + coroutine support code to create, delete and switch the information as + needed. Further reworked the tailcall command as well, it has to pop + its own arguments when run in a bytecode context to keep a proper + stack in 'lineLABCPtr'. - * 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] + Fixed the mishandling of line information in the NRE-enabled 'for' and + 'while' commands introduced when both were made to share their + iteration callbacks without taking into account that the loop body is + found in different words of the command. Introduced a separate data + structure to hold all the callback information, as we went over the + limit of 4 direct client-data values for NRE callbacks. - * 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] + The above fixes [Bug 1605269]. -2007-03-12 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2009-07-12 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdIL.c (Tcl_LsortObjCmd): Fix problems with declaration - positioning and memory leaks. [Bug 1679072] + * generic/tclCmdMZ.c (StringIndexCmd, StringEqualCmd, StringCmpCmd): + * generic/tclExecute.c (TclExecuteByteCode): [Bug 2637173]: Factor out + * generic/tclInt.h (TclIsPureByteArray): the code to determine if + * generic/tclUtil.c (TclStringMatchObj): it is safe to work with + byte arrays directly, so that we get the check correct _once_. -2007-03-11 Donal K. Fellows <dkf@users.sf.net> + * generic/tclOOCall.c (TclOOGetCallContext): [Bug 1895546]: Changed + * generic/tclOO.c (TclOOObjectCmdCore): the way that the cache is + managed so that when itcl does cunning things, those cunning things + can be cached properly. - * 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] +2009-07-11 Donal K. Fellows <dkf@users.sf.net> -2007-03-10 Miguel Sofer <msofer@users.sf.net> + * doc/vwait.n: Substantially increased the discussion of issues and + work-arounds relating to nested vwaits, following discussion on the + tcl-core mailing list on the topic. - * generic/tclCmdIL (Tcl_LsortObjCmd): changed fix to [Bug 1675116] to - use the cheaper TclListObjCopy() instead of Tcl_DuplicateObj(). +2009-07-10 Pat Thoyts <patthoyts@users.sourceforge.net> -2007-03-09 Andreas Kupries <andreask@activestate.com> + * tests/zlib.test: ZlibTransformClose may be called with a NULL + * generic/tclZlib.c: interpreter during finalization and + Tcl_SetChannelError requires a list. Added some tests to ensure error + propagation from the zlib library to the interp. - * 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. +2009-07-09 Pat Thoyts <patthoyts@users.sourceforge.net> -2007-03-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * tests/zlib.test: [Bug 2818131]: Added tests and fixed a typo that + broke [zlib push] for deflate format. - * 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] +2009-07-09 Donal K. Fellows <dkf@users.sf.net> -2007-03-09 Kevin B. Kenny <kennykb@acm.org> + * compat/mkstemp.c (mkstemp): [Bug 2819227]: Use rand() for random + numbers as it is more portable. - * 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. +2009-07-05 Donal K. Fellows <dkf@users.sf.net> -2007-03-08 Don Porter <dgp@users.sourceforge.net> + * generic/tclZlib.c (ZlibTransformWatch): Correct the handling of + events so that channel transforms work with things like an asynch + [chan copy]. Problem reported by Pat Thoyts. - * 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. +2009-07-01 Pat Thoyts <patthoyts@users.sourceforge.net> -2007-03-08 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * 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. - * 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. +2009-06-30 Daniel Steffen <das@users.sourceforge.net> -2007-03-08 Kevin B. Kenny <kennykb@acm.org> + * generic/tclInt.h: Add assert macros for clang static + * generic/tclPanic.c: analyzer and redefine Tcl_Panic to + * generic/tclStubInit.c: assert after panic in clang PURIFY + builds. - * 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. + * generic/tclCmdIL.c: Add clang assert for false positive + from static analyzer. -2007-03-07 Daniel Steffen <das@users.sourceforge.net> +2009-06-26 Daniel Steffen <das@users.sourceforge.net> - * macosx/tclMacOSXNotify.c: add spinlock debugging and sanity checks. + * macosx/Tcl-Common.xcconfig: Update projects for Xcode 3.1 and + * macosx/Tcl.xcode/*: 3.2, standardize on gcc 4.2, remove + * macosx/Tcl.xcodeproj/*: obsolete configurations and pre-Xcode + * macosx/Tcl.pbproj/* (removed): project. - * 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. + * macosx/README: Update project docs, cleanup. - * unix/tcl.m4 (Darwin): s/CFLAGS/CPPFLAGS/ in macosx-version-min check - * unix/configure: autoconf-2.59 + * unix/Makefile.in: Update dist target for project + changes. -2007-03-07 Don Porter <dgp@users.sourceforge.net> +2009-06-24 Donal K. Fellows <dkf@users.sf.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. + * tests/oo.test (oo-19.1): [Bug 2811598]: Make more resilient. - * generic/tclObj.c (Tcl_AppendAllObjTypes): Converted to simpler - list validity test. +2009-06-24 Pat Thoyts <patthoyts@users.sourceforge.net> -2007-03-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * tests/http11.test: [Bug 2811492]: Clean up procs after testing. - * generic/tclRegexp.c (TclRegAbout): Generate information about a - regexp as a Tcl_Obj instead of as a string, which is more efficient. +2009-06-18 Donal K. Fellows <dkf@users.sf.net> -2007-03-07 Kevin B. Kenny <kennykb@acm.org> + * generic/tclCkalloc.c (MemoryCmd): [Bug 988703]: + * generic/tclObj.c (ObjData, TclFinalizeThreadObjects): Add mechanism + for discovering what Tcl_Objs are allocated when built for memory + debugging. Developed by Joe Mistachkin. - * 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. +2009-06-17 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2007-03-05 Andreas Kupries <andreask@activestate.com> + * generic/tclEvent.c: Applied a patch by George Peter Staplin + drastically reducing the ambition of [exit] wrt finalization, and + thus solving many multi-thread teardown issues. [Bugs 2001201, + 486399, and possibly 597575, 990457, 1437595, 2750491] - * 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. +2009-06-15 Don Porter <dgp@users.sourceforge.net> -2007-03-03 Donal K. Fellows <dkf@users.sf.net> + * generic/tclStringObj.c: sprintf() -> Tcl_ObjPrintf() conversion. - * generic/tclLink.c (LinkedVar): Added macro to conceal at least some - of the pointer hackery. +2009-06-15 Reinhard Max <max@suse.de> -2007-03-02 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixPort.h: Move all socket-related code from tclUnixChan.c + * unix/tclUnixChan.c: to tclUnixSock.c. + * unix/tclUnixSock.c: - * generic/tclCmdIL.c (Tcl_LreverseObjCmd): Added missing - TclInvalidateStringRep() call when we directly manipulate the intrep - of an unshared "list" Tcl_Obj. [Bug 1672585] +2009-06-15 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdIL.c (Tcl_JoinObjCmd): Revised [join] implementation - to append Tcl_Obj's instead of strings. [RFE 1669420] + * tools/tcltk-man2html.tcl (make-man-pages): [Patch 557486]: Apply + last remaining meaningful part of this patch, a clean up of some + closing tags. - * generic/tclCmdIL.c (Info*Cmd): Code simplifications and - optimizations. +2009-06-13 Don Porter <dgp@users.sourceforge.net> -2007-03-02 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclCompile.c: [Bug 2802881]: The value stashed in + * generic/tclProc.c: iPtr->compiledProcPtr when compiling a proc + * tests/execute.test: survives too long. We 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. - * 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). +2009-06-10 Don Porter <dgp@users.sourceforge.net> - * 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] + * generic/tclStringObj.c: [Bug 2801413]: 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. -2007-03-01 Don Porter <dgp@users.sourceforge.net> + * generic/tclStringObj.c: [Bug 2803109]: Corrected failures to + deal with the "pure unicode" representation of an empty string. + Thanks to Julian Noble for reporting the problem. - * generic/tclCmdIL.c (Tcl_LinsertObjCmd): Code simplifications - and optimizations. +2006-06-09 Kevin B. Kenny <kennykb@acm.org> - * generic/tclCmdIL.c (Tcl_LreplaceObjCmd): Code simplifications - and optimizations. + * 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 - * generic/tclCmdIL.c (Tcl_LrangeObjCmd): Rewrite in the same - spirit; avoid shimmer effects rather than react to them. +2006-06-08 Kevin B. Kenny <kennykb@acm.org> - * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Stop throwing away - * tests/foreach.test (foreach-1.14): useful error information when - loop variable sets fail. + * library/tzdata/Asia/Dhaka: New DST rule for Bangladesh. (Olson's + tzdata2009i.) - * 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. +2009-06-08 Donal K. Fellows <dkf@users.sf.net> - * 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. + * doc/copy.n: Fix error in example spotted by Venkat Iyer. -2007-03-01 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2009-06-02 Don Porter <dgp@users.sourceforge.net> - * 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] + * 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. -2007-02-26 Andreas Kupries <andreask@activestate.com> + * generic/tclExecute.c: [Bug 2798543]: Corrected implementations and + selection logic of the INST_EXPON instruction. - * generic/tclIORChan.c (FreeReflectedChannel): Added the missing - refcount release between NewRC and FreeRC for the channel handle - object, spotted by Don Porter. [Bug 1667990] +2009-06-01 Don Porter <dgp@users.sourceforge.net> -2007-02-26 Don Porter <dgp@users.sourceforge.net> + * tests/expr.test: [Bug 2798543]: Added many tests demonstrating + the broken cases. - * 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. +009-05-30 Kevin B. Kenny <kennykb@acm.org> -2007-02-24 Don Porter <dgp@users.sourceforge.net> + * library/tzdata/Africa/Cairo: + * library/tzdata/Asia/Amman: Olson's tzdata2009h. - * 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. +2009-05-29 Andreas Kupries <andreask@activestate.com> - * 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. + * 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. -2007-02-22 Andreas Kupries <andreask@activestate.com> +2009-05-26 Alexandre Ferrieux <ferrieux@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/expr.n: Fixed documentation of the right-associativity of + the ** operator. (spotted by kbk) -2007-02-20 Jan Nijtmans <nijtmans@users.sf.net> +2009-05-14 Donal K. Fellows <dkf@users.sf.net> - * 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. + * generic/tclOOInfo.c (InfoObjectNsCmd): Added introspection mechanism + for finding out what an object's namespace is. Experience suggests + that it is just too useful to be able to do without it. -2007-02-20 Don Porter <dgp@users.sourceforge.net> +2009-05-12 Donal K. Fellows <dkf@users.sf.net> - * doc/tcltest.n: Typo fix. [Bug 1663539] + * doc/vwait.n: Added more words to make it clear just how bad it is to + nest [vwait]s. -2007-02-20 Pat Thoyts <patthoyts@users.sourceforge.net> + * compat/mkstemp.c: Add more headers to make this file build on IRIX + 6.5. Thanks to Larry McVoy for this. - * 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. +2009-05-08 Donal K. Fellows <dkf@users.sf.net> -2007-02-19 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclOO.c (TclNRNewObjectInstance): [Bug 2414858]: Add a + * generic/tclBasic.c (TclPushTailcallPoint): marker to the stack of + NRE callbacks at the right point so that tailcall works correctly in a + constructor. - * unix/tcl.m4: use SHLIB_SUFFIX=".so" on HP-UX ia64 arch. - * unix/configure: autoconf-2.59 + * tests/exec.test (cat): [Bug 2788468]: Adjust the scripted version of + cat so that it does not perform transformations on the data it is + working with, making it more like the standard Unix 'cat' program. - * generic/tclIOUtil.c (Tcl_FSEvalFileEx): safe incr of objPtr ref. +2009-05-07 Miguel Sofer <msofer@users.sf.net> -2007-02-18 Donal K. Fellows <dkf@users.sf.net> + * generic/tclObj.c (Tcl_GetCommandFromObj): [Bug 2785893]: Ensure that + a command in a deleted namespace can't be found through a cached name. - * 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. + * generic/tclBasic.c: Let coroutines start with a much smaller + * generic/tclCompile.h: stack: 200 words (previously was 2000, the + * generic/tclExecute.c: same as interps). - * 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. +2009-05-07 Donal K. Fellows <dkf@users.sf.net> -2007-02-13 Kevin B. Kenny <kennykb@acm.org> + * tests/env.test (printenvScript, env-4.3, env-4.5): [Bug 1513659]: + * tests/exec.test (exec-2.6): These tests had subtle dependencies on + being on platforms that were either ISO 8859-1 or UTF-8. Stabilized + the results by forcing the encoding. - * 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. +2009-05-06 Don Porter <dgp@users.sourceforge.net> -2007-02-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclCmdMZ.c: [Bug 2582327]: Improve overflow error message + from [string repeat]. - * doc/re_syntax.n: Corrected description of 'print' class [Bug - 1614687] and enhanced description of 'graph' class. + * tests/interp.test: interp-20.50 test for Bug 2486550. -2007-02-12 Kevin B. Kenny <kennykb@acm.org> +2009-05-04 Donal K. Fellows <dkf@users.sf.net> - * 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/tclOO.c (InitFoundation, AllocObject, AllocClass): + * generic/tclOODefineCmds.c (InitDefineContext): Make sure that when + support namespaces are deleted, nothing bad can subsequently happen. + Issue spotted by Don Porter. -2007-02-09 Joe Mistachkin <joe@mistachkin.com> +2009-05-03 Donal K. Fellows <dkf@users.sf.net> - * win/nmakehlp.c: Properly cleanup after nmakehlp, including the - * win/makefile.vc: vcX0.pch file. + * doc/Tcl.n: [Bug 2538432]: Clarified exact treatment of ${arr(idx)} + form of variable substitution. This is not a change of behavior, just + an improved description of the current situation. -2007-02-08 Jeff Hobbs <jeffh@ActiveState.com> +2009-04-30 Miguel Sofer <msofer@users.sf.net> - * unix/tclUnixInit.c (TclpCheckStackSpace): do stack size checks with - unsigned size_t to correctly validate stackSize in the 2^31+ range. - [Bug 1654104] + * generic/tclBasic.c (TclObjInvoke): [Bug 2486550]: Make sure that a + null objProc is not used, use Tcl_NRCallObjProc instead. -2007-02-08 Don Porter <dgp@users.sourceforge.net> +2009-05-01 Jan Nijtmans <nijtmans@users.sf.net> - * 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/configure.in Fix 64-bit detection for zlib on Win64 + * win/configure (regenerated) -2007-02-06 Don Porter <dgp@users.sourceforge.net> +2009-04-28 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclNamesp.c: Corrected broken implementation of the - * tests/namespace.test: TclMatchIsTrivial optimization on [namespace - children $namespace $pattern]. + * unix/tcl.m4, unix/configure (SC_CONFIG_CFLAGS): harden the check to + add _r to CC on AIX with threads. -2007-02-04 Daniel Steffen <das@users.sourceforge.net> +2009-04-27 Donal K. Fellows <dkf@users.sf.net> - * 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 + * 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.) -2007-02-03 Joe Mistachkin <joe@mistachkin.com> +2009-04-27 Jan Nijtmans <nijtmans@users.sf.net> - * win/rules.vc: Fix platform specific file copy macros for downlevel - Windows. + * generic/tclIndexObj.c: Reset internal INTERP_ALTERNATE_WRONG_ARGS + * generic/tclIOCmd.c: flag inside the Tcl_WrongNumArgs function, + so the caller no longer has to do the reset. -2007-01-29 Don Porter <dgp@users.sourceforge.net> +2009-04-24 Stuart Cassoff <stwo@users.sf.net> - * 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/Makefile.in: [Patch 2769530]: Don't chmod/exec installManPage. - * generic/tclLink.c: Broken linked float logic corrected. Thanks to - Andy Goth. [Bug 1602538] +2009-04-19 Pat Thoyts <patthoyts@users.sourceforge.net> - * doc/fcopy.n: Typo fix. [Bug 1630627] + * library/http/http.tcl: [Bug 2715421]: Removed spurious newline added + * tests/http11.test: after POST and added tests to detect excess + * tests/httpd11.tcl: bytes being POSTed. + * library/http/pkgIndex.tcl: + * makefiles: package version now 2.8.1 -2007-01-28 Daniel Steffen <das@users.sourceforge.net> +2009-04-15 Donal K. Fellows <dkf@users.sf.net> - * 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. + * doc/chan.n, doc/close.n: Tidy up documentation of TIP #332. - * macosx/README: document new Tcl.xcodeproj configurations; other - minor updates/corrections. +2009-04-14 Kevin B. Kenny <kennykb@acm.org> - * generic/tcl.h: update location of version numbers in macosx files. + * library/tzdata/Asia/Karachi: Updated rules for Pakistan Summer + Time (Olson's tzdata2009f) - * 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. +2009-04-11 Donal K. Fellows <dkf@users.sf.net> -2007-01-25 Daniel Steffen <das@users.sourceforge.net> + * generic/tclOOMethod.c (InvokeForwardMethod): Clarify the resolution + behaviour of the name of the command that is forwarded to: it's now + resolved using the object's namespace as context, which is much more + useful than the previous (somewhat random) behaviour of using the + caller's current namespace. - * 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. +2009-04-10 Pat Thoyts <patthoyts@users.sourceforge.net> - * unix/configure: autoconf-2.59 + * library/http/http.tcl: Improved HTTP/1.1 support and added + * library/http/pkgIndex.tcl: specific HTTP/1.1 testing to ensure + * tests/http11.test: we handle chunked+gzip for the various + * tests/httpd11.test: modes (normal, -channel and -handler) + * makefiles: package version set to 2.8.0 -2007-01-22 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2009-04-10 Daniel Steffen <das@users.sourceforge.net> - * compat/memcmp.c (memcmp): Reworked so that arithmetic is never - performed upon void pointers, since that is illegal. [Bug 1631017] + * unix/tclUnixChan.c: TclUnixWaitForFile(): use FD_* macros + * macosx/tclMacOSXNotify.c: to manipulate select masks (Cassoff). + [Bug 1960647] -2007-01-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * unix/tclLoadDyld.c: use RTLD_GLOBAL instead of RTLD_LOCAL. + [Bug 1961211] - * 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. + * 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). -2007-01-19 Joe Mistachkin <joe@mistachkin.com> + * 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. - * 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. + * unix/tclUnixNotify.c: simplify, sync with tclMacOSXNotify.c. -2007-01-19 Daniel Steffen <das@users.sourceforge.net> + * generic/tclInt.decls: add TclMacOSXNotifierAddRunLoopMode() + * generic/tclIntPlatDecls.h: internal API, regen. + * generic/tclStubInit.c: - * 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. + * 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 - * macosx/tclMacOSXNotify.c: accommodate changes to prototypes of - OSSpinLock(Un)Lock API. + * macosx/tclMacOSXBundle.c: on Mac OS X 10.4 and later, replace + deprecated NSModule API by dlfcn API. - * macosx/Tcl.xcodeproj/project.pbxproj: ensure HOME and USER env vars - * macosx/Tcl.xcodeproj/default.pbxuser: are defined when running - testsuite from Xcode. +2009-04-10 Donal K. Fellows <dkf@users.sf.net> - * tests/env.test: add extra system env vars that need to be preserved - on some Mac OS X versions for testsuite to work. + * doc/StringObj.3: [Bug 2089279]: Corrected example so that it works + on 64-bit machines as well. - * unix/Makefile.in: Move libtommath defines into configure.in to - * unix/configure.in: avoid replicating them across multiple - * macosx/Tcl.xcodeproj/project.pbxproj: buildsystems. +2009-04-10 Pat Thoyts <patthoyts@users.sourceforge.net> - * 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/http.test: [Bug 26245326]: Added specific check for problem + * tests/httpd: (return incomplete HTTP response header). - * unix/configure: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 +2009-04-08 Kevin B. Kenny <kennykb@acm.org> -2007-01-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * tools/tclZIC.tcl: Always emit files with Unix line termination. + * library/tzdata: Olson's tzdata2009e - * 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] +2009-04-09 Don Porter <dgp@users.sourceforge.net> -2007-01-17 Donal K. Fellows <dkf@users.sf.net> + * library/http/http.tcl: [Bug 26245326]: Handle incomplete + lines in the "connecting" state. Thanks to Sergei Golovan. - * generic/tclIO.c: Added macros to make usage of ChannelBuffers - clearer. +2009-04-08 Andreas Kupries <andreask@activestate.com> -2007-01-11 Joe English <jenglish@users.sourceforge.net> + * library/platform/platform.tcl: Extended the darwin sections to add + * library/platform/pkgIndex.tcl: a kernel version number to the + * unix/Makefile.in: identifier for anything from Leopard (10.5) on up. + * win/Makefile.in: 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. - * win/tcl.m4(CFLAGS_WARNING): Remove "-Wconversion". This was removed - from unix/tcl.m4 2004-07-16 but not from here. - * win/configure: Regenerated. +2009-04-08 Don Porter <dgp@users.sourceforge.net> -2007-01-11 Pat Thoyts <patthoyts@users.sourceforge.net> + * library/tcltest/tcltest.tcl: [Bug 2570363]: Converted [eval]s (some + * library/tcltest/pkgIndex.tcl: unsafe!) to {*} in tcltest package. + * unix/Makefile.in: => tcltest 2.3.1 + * win/Makefile.in: - * 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. +2009-04-07 Don Porter <dgp@users.sourceforge.net> -2007-01-10 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclStringObj.c: Correction so that value of + TCL_GROWTH_MIN_ALLOC is everywhere expressed in bytes as comment + claims. - * 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... +2009-04-04 Donal K. Fellows <dkf@users.sf.net> -2007-01-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * doc/vwait.n: [Bug 1910136]: Extend description and examples to make + it clearer just how this command interprets variable names. - * 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] +2009-03-30 Don Porter <dgp@users.sourceforge.net> -2007-01-03 Kevin B. Kenny <kennykb@acm.org> + * doc/Alloc.3: [Bug 2556263]: Size argument is "unsigned int". - * generic/tclDate.c: Regenerated to recover a lost fix from patthoyts. - [Bug 1618523] +2009-03-27 Don Porter <dgp@users.sourceforge.net> -2006-12-26 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclPathObj.c (TclPathPart): [Bug 2710920]: TclPathPart() + * tests/fileName.test: was computing 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. - * generic/tclIO.c (Tcl_GetsObj): Avoid checking for for the LF in a - possible CRLF sequence when EOF has already been found. +2009-03-25 Jan Nijtmans <nijtmans@users.sf.net> -2006-12-26 Mo DeJong <mdejong@users.sourceforge.net> + * doc/tclsh.1: Bring doc and tools in line with + * tools/installData.tcl: http://wiki.tcl.tk/812 + * tools/str2c + * tools/tcltk-man2html.tcl - * 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. +2009-03-25 Donal K. Fellows <dkf@users.sf.net> -2006-12-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * doc/coroutine.n: [Bug 2152285]: Added basic documentation for the + coroutine and yield commands. - * unix/tclUnixThrd.c (Tcl_GetAllocMutex, TclpNewAllocMutex): Add - intermediate variables to shut up unwanted warnings. [Bug 1618838] +2009-03-24 Donal K. Fellows <dkf@users.sf.net> -2006-12-19 Daniel Steffen <das@users.sourceforge.net> + * generic/tclOOBasic.c (TclOOSelfObjCmd): [Bug 2704302]: Make 'self + class' better defined in the context of objects that change class. - * unix/tclUnixThrd.c (TclpInetNtoa): fix for 64 bit. + * generic/tclVar.c (Tcl_UpvarObjCmd): [Bug 2673163] (ferrieux) + * generic/tclProc.c (TclObjGetFrame): Make the upvar command more able + to handle its officially documented syntax. - * unix/tcl.m4 (Darwin): --enable-64bit: verify linking with 64bit - -arch flag succeeds before enabling 64bit build. - * unix/configure: autoconf-2.59 +2009-03-22 Miguel Sofer <msofer@users.sf.net> -2006-12-17 Daniel Steffen <das@users.sourceforge.net> + * generic/tclBasic.c: [Bug 2502037]: NR-enable the handling of unknown + commands. - * 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 +2009-03-21 Miguel Sofer <msofer@users.sf.net> - * tests/append.test: fix cleanup failure when all tests are skipped. + * generic/tclBasic.c: Fixed "leaks" in aliases, imports and + * generic/tclInt.h: ensembles. Only remaining known leak is in + * generic/tclInterp.c: ensemble unknown dispatch (as it not + * generic/tclNamesp.c: NR-enabled) + * tests/tailcall.test: - * tests/chan.test (chan-16.9): cleanup chan event handler to avoid - causing error in event.test when running testsuite with -singleproc 1. + * tclInt.h: comments - * tests/info.test: add !singleTestInterp constraint to tests that fail - when running testsuite with -singleproc 1. [Bug 1605269] + * tests/tailcall.test: Added tests to show that [tailcall] does not + currently always execute in constant space: interp-alias, ns-imports + and ensembles "leak" as of this commit. -2006-12-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * tests/nre.test: [foreach] has been NR-enabled for a while, the test + was marked 'knownBug': unmark it. - * doc/string.n: Fix example. [Bug 1615277] + * generic/tclBasic.c: Fix for (among others) [Bug 2699087] + * generic/tclCmdAH.c: Tailcalls now perform properly even from + * generic/tclExecute.c: within [eval]ed scripts. + * generic/tclInt.h: More tests missing, as well as proper + exploration and testing of the interaction with "redirectors" like + interp-alias (suspect that it does not happen in constant space) + and pure-eval commands. -2006-12-12 Don Porter <dgp@users.sourceforge.net> + * generic/tclExecute.c: Proper fix for [Bug 2415422]. Reenabled + * tests/nre.test: the failing assertion that was disabled on + 2008-12-18: the assertion is correct, the fault was in the + management of expansions. - * 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. + * generic/tclExecute.c: Fix both test and code for tailcall + * tests/tailcall.test: from within a compiled [eval] body. - * 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. + * tests/tailcall.test: Slightly improved tests -2006-12-11 Don Porter <dgp@users.sourceforge.net> +2009-03-20 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c: Another step with all sorting operator - * generic/tclCompExpr.c: commands now routing through TEBC via - * generic/tclCompile.h: TclSortingOpCmd(). + * tests/stringObj.test: [Bug 2597185]: Test stringObj-6.9 + checks that Tcl_AppendStringsToObj() no longer crashes when operating + on a pure unicode value. -2006-12-08 Don Porter <dgp@users.sourceforge.net> + * generic/tclExecute.c (INST_CONCAT1): [Bug 2669109]: Panic when + appends overflow the max length of a Tcl value. - * 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. +2009-03-19 Miguel Sofer <msofer@users.sf.net> - * 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. + * generic/tcl.h: + * generic/tclInt.h: + * generic/tclBasic.c: + * generic/tclExecute.c: + * generic/tclNamesp.c (Tcl_PopCallFrame): Rewritten tailcall + implementation, ::unsupported::atProcExit is (temporarily?) gone. The + new approach is much simpler, and also closer to being correct. This + commit fixes [Bug 2649975] and [Bug 2695587]. - * generic/tclCompile.h: Change TclExecuteByteCode() from static to - * generic/tclExecute.c: MODULE_SCOPE so all files including - tclCompile.h may call it. + * tests/coroutine.test: Moved the tests to their own files, + * tests/tailcall.test: removed the unsupported.test. Added + * tests/unsupported.test: tests for the fixed bugs. - * generic/tclMathOp.c: More revisions to make tests pass. - * tests/mathop.test: +2009-03-19 Donal K. Fellows <dkf@users.sf.net> -2006-12-08 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * doc/tailcall.n: Added documentation for tailcall command. - * generic/tclNamesp.c (TclTeardownNamespace): Ensure that dying - namespaces unstitch themselves from their referents. [Bug 1571056] - (NsEnsembleImplementationCmd): Silence GCC warning. +2009-03-18 Don Porter <dgp@users.sourceforge.net> - * tests/mathop.test: Full tests for & | and ^ operators + * win/tclWinFile.c (TclpObjNormalizePath): [Bug 2688184]: + Corrected Tcl_Obj leak. Thanks to Joe Mistachkin for detection and + patch. -2006-12-08 Daniel Steffen <das@users.sourceforge.net> + * generic/tclVar.c (TclLookupSimpleVar): [Bug 2689307]: Shift + all calls to Tcl_SetErrorCode() out of TclLookupSimpleVar and onto its + callers, where control with TCL_LEAVE_ERR_MSG flag is more easily + handled. - * library/tcltest/tcltest.tcl: use [info frame] for "-verbose line". +2009-03-16 Donal K. Fellows <dkf@users.sf.net> -2006-12-07 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdMZ.c (TryPostBody): [Bug 2688063]: Extract information + from list before getting rid of last reference to it. - * generic/tclCompCmds.c: Additional commits correct most - * generic/tclExecute.c: failing tests illustrating bugs - * generic/tclMathOp.c: uncovered in [Patch 1578137]. +2009-03-15 Joe Mistachkin <joe@mistachkin.com> - * 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. + * generic/tclThread.c: Modify fix for TSD leak to match Tcl 8.5 + * generic/tclThreadStorage.c: (and prior) allocation semantics. [Bug + 2687952] - * 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. +2009-03-15 Donal K. Fellows <dkf@users.sf.net> -2006-12-07 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclThreadStorage.c (TSDTableDelete): [Bug 2687952]: Ensure + * generic/tclThread.c (Tcl_GetThreadData): that structures in + Tcl's TSD system are all freed. Use the correct matching allocator. - * 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/tclPosixStr.c (Tcl_SignalId,Tcl_SignalMsg): [Patch 1513655]: + Added support for SIGINFO, which is present on BSD platforms. -2006-12-07 Pat Thoyts <patthoyts@users.sourceforge.net> +2009-03-14 Donal K. Fellows <dkf@users.sf.net> - * tests/exec.test: Fixed line endings (caused win32 problems). + * unix/tcl.pc.in (new file): [Patch 2243948] (hat0) + * unix/configure.in, unix/Makefile.in: Added support for reporting + Tcl's public build configuration via the pkg-config system. TEA is + still the official mechanism though, in part because pkg-config is not + universally supported across all Tcl's supported platforms. -2006-12-06 Don Porter <dgp@users.sourceforge.net> +2009-03-11 Miguel Sofer <msofer@users.sf.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/tclBasic.c (TclNRCoroutineObjCmd): fix Tcl_Obj leak. + Diagnosis and fix thanks to GPS. -2006-12-06 Kevin B. Kenny <kennykb@acm.org> +2009-03-09 Donal K. Fellows <dkf@users.sf.net> - * tests/expr.test (expr-47.12): Improved error reporting in hopes of - having more information to pursue [Bug 1609936]. + * generic/tclCmdMZ.c (Tcl_TryObjCmd, TclNRTryObjCmd): Moved the + implementation of [try] from Tcl code into C. Still lacks a bytecode + version, but should be better than what was before. -2006-12-05 Andreas Kupries <andreask@activestate.com> +2009-03-04 Donal K. Fellows <dkf@users.sf.net> - TIP#291 IMPLEMENTATION + * generic/tclZlib.c (TclZlibCmd): Checksums are defined to be unsigned + 32-bit integers, use Tcl_WideInt to pass to scripts. [Bug 2662434] + (ZlibStreamCmd, ChanGetOption): A few other related corrections. - * generic/tclBasic.c: Define tcl_platform element for pointerSize. - * doc/tclvars.n: +2009-02-27 Jan Nijtmans <nijtmans@users.sf.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/tcl.decls: [Bug 218977]: Tcl_DbCkfree needs return value + * generic/tclCkalloc.c + * generic/tclDecls.h: (regenerated) + * generic/tclInt.decls: don't use CONST84/CONST86 here + * generic/tclCompile.h: don't use CONST86 here, comment fixing. + * generic/tclIO.h: don't use CONST86 here, comment fixing. + * generic/tclIntDecls.h (regenerated) - * tests/platform.test: - * tests/safe.test: - - * library/platform/platform.tcl: - * library/platform/shell.tcl: - * library/platform/pkgIndex.tcl: +2009-02-25 Don Porter <dgp@users.sourceforge.net> - * doc/platform.n: - * doc/platform_shell.n: + * generic/tclUtil.c (TclStringMatchObj): [Bug 2637173]: Revised + the branching on the strObj->typePtr so that untyped values get + converted to the "string" type and pass through the Unicode matcher. + [Bug 2613766]: Also added checks to only perform "bytearray" + optimization on pure bytearray values. -2006-12-05 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdMZ.c: Since Tcl_GetCharLength() has its own + * generic/tclExecute.c: optimizations for the tclByteArrayType, stop + having the callers do them. - * 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. +2009-02-24 Donal K. Fellows <dkf@users.sf.net> -2006-12-04 Donal K. Fellows <dkf@users.sf.net> + * doc/clock.n, doc/fblocked.n, doc/format.n, doc/lsort.n, + * doc/pkgMkIndex.n, doc/regsub.n, doc/scan.n, doc/tclvars.n: + General minor documentation improvements. - TIP#267 IMPLEMENTATION + * library/http/http.tcl (geturl, Eof): Added support for 8.6's built + in zlib routines. - * generic/tclIOCmd.c (Tcl_ExecObjCmd): Added -ignorestderr option, - * tests/exec.test, doc/exec.n: loosely from [Patch 1476191] +2009-02-22 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2006-12-04 Don Porter <dgp@users.sourceforge.net> + * tests/lrange.test: Revert commits of 2008-07-23. Those were speed + * tests/binary.test: tests, that are inherently brittle. - * 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. +2009-02-21 Don Porter <dgp@users.sourceforge.net> -2006-12-03 Don Porter <dgp@users.sourceforge.net> + * generic/tclStringObj.c: Several revisions to the shimmering + patterns between Unicode and UTF string reps. Most notably the + call: objPtr = Tcl_NewUnicodeObj(...,0); followed by a loop of calls: + Tcl_AppendUnicodeToObj(objPtr, u, n); will now grow and append to + the Unicode representation. Before this commit, the sequence would + convert each append to UTF and perform the append to the UTF rep. + This is puzzling and likely a bug. The performance of [string map] + is significantly improved by this change (according to the MAP + collection of benchmarks in tclbench). Just in case there was some + wisdom in the old ways that I missed, I left in the ability to restore + the old patterns with a #define COMPAT 1 at the top of the file. - * 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. +2009-02-20 Don Porter <dgp@users.sourceforge.net> -2006-12-02 Donal K. Fellows <dkf@users.sf.net> + * 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/file.n: Clarification of [file pathtype] docs. [Bug 1606454] +2009-02-18 Don Porter <dgp@users.sourceforge.net> -2006-12-01 Kevin B. Kenny <kennykb@acm.org> + * generic/tclStringObj.c: Simplify the logic of the + Tcl_*SetObjLength() routines. - * 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. + * generic/tclStringObj.c: Rewrite GrowStringBuffer() so that it + has parallel structure with GrowUnicodeBuffer(). The revision permits + allocation attempts to continue all the way up to failure, with no + gap. It also directly manipulates the String and Tcl_Obj internals + instead of inefficiently operating via Tcl_*SetObjLength() with all of + its extra protections and underdocumented special cases. - TIP#299 IMPLEMENTATION + * generic/tclStringObj.c: Another round of simplification on + the allocation macros. - * 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. +2009-02-17 Jeff Hobbs <jeffh@ActiveState.com> -2006-12-01 Don Porter <dgp@users.sourceforge.net> + * 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. - * tests/chan.test: Correct timing sensitivity in new test. [Bug - 1606860] +2009-02-17 Don Porter <dgp@users.sourceforge.net> - TIP#287 IMPLEMENTATION + * generic/tclStringObj.c: Pare back the length of the unicode + array in a non-extended String struct to one Tcl_UniChar, meant to + hold the terminating NUL character. Non-empty unicode strings are + then stored by extending the String struct by stringPtr->maxChars + additional slots in that array with sizeof(Tcl_UniChar) bytes per + slot. This revision makes the allocation macros much simpler. - * 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: + * generic/tclStringObj.c: Factor out common GrowUnicodeBuffer() + and solve overflow and growth algorithm fallbacks in it. - TIP#298 IMPLEMENTATION + * generic/tclStringObj.c: Factor out common GrowStringBuffer(). - * generic/tcl.decls: Tcl_GetBignumAndClearObj -> Tcl_TakeBignumFromObj - * generic/tclObj.c: + * generic/tclStringObj.c: Convert Tcl_AppendStringsToObj into + * tests/stringObj.test: a radically simpler implementation + where we just loop over calls to Tcl_AppendToObj. This fixes [Bug + 2597185]. It also creates a *** POTENTIAL INCOMPATIBILITY *** in + that T_ASTO can now allocate more space than is strictly required, + like all the other Tcl_Append* routines. The incompatibility was + detected by test stringObj-6.5, which I've updated to reflect the + new behavior. - * generic/tclDecls.h: make genstubs - * generic/tclStubInit.c: + * generic/tclStringObj.c: Revise buffer growth implementation + in ExtendStringRepWithUnicode. Use cheap checks to determine that + no reallocation is necessary without cost of computing the precise + number of bytes needed. Also make use of the string growth algortihm + in the case of repeated appends. - * generic/tclExecute.c: Update callers. - * generic/tclMathOp.c: +2009-02-16 Jan Nijtmans <nijtmans@users.sf.net> -2006-11-30 Kevin B. Kenny <kennykb@acm.org> + * generic/tclZlib.c: hack needed for official zlib1.dll build. + * win/configure.in: fix [Feature Request 2605263] use official + * win/Makefile.in: zlib build. + * win/configure: (regenerated) + * compat/zlib/zdll.lib: new files + * compat/zlib/zlib1.dll: - * 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. + * win/Makefile.in: fix [Bug 2605232] tdbc doesn't build when + Tcl is compiled with --disable-shared. -2006-11-29 Don Porter <dgp@users.sourceforge.net> +2009-02-15 Don Porter <dgp@users.sourceforge.net> - * 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. - -2006-11-28 Andreas Kupries <andreask@activestate.com> + * 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: 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/tclExecute.c: - * generic/tclIOUtil.c: - * generic/tclInt.h: + * generic/tclStringObj.c: Factor out duplicate code from + Tcl_AppendObjToObj. + + * generic/tclStringObj.c: Replace the 'size_t uallocated' field + of the String struct, storing the number of bytes allocated to store + the Tcl_UniChar array, with an 'int maxChars' field, storing the + number of Tcl_UniChars that may be stored in the allocated space. + This reduces memory requirement a small bit, and makes some range + checks simpler to code. + * generic/tclTestObj.c: Replace the [teststringobj ualloc] testing + * tests/stringObj.test: command with [teststringobj maxchars] and + update the tests. + + * generic/tclStringObj.c: Removed limitation in + Tcl_AppendObjToObj where the char length of the result was only + computed if the appended string was all single byte characters. + This limitation was in place to dodge a bug in Tcl_GetUniChar. + With that bug gone, we can take advantage of always recording the + length of append results when we know it. + +2009-02-14 Don Porter <dgp@users.sourceforge.net> + + * generic/tclStringObj.c: Revisions so that we avoid creating + the strange representation of an empty string with + objPtr->bytes == NULL and stringPtr->hasUnicode == 0. Instead in + the situations where that was being created, create a traditional + two-legged stork representation (objPtr->bytes = tclEmptyStringRep + and stringPtr->hasUnicode = 1). In the situations where the strange + rep was treated differently, continue to do so by testing + stringPtr->numChars == 0 to detect it. These changes make the code + more conventional so easier for new maintainers to pick up. Also + sets up further simplifications. + + * generic/tclTestObj.c: Revise updates to [teststringobj] so we don't + get blocked by MODULE_SCOPE limits. + +2009-02-12 Don Porter <dgp@users.sourceforge.net> + + * generic/tclStringObj.c: Rewrites of the routines + Tcl_GetCharLength, Tcl_GetUniChar, Tcl_GetUnicodeFromObj, + Tcl_GetRange, and TclStringObjReverse to use the new macro, and + to more simply and clearly split the cases depending on whether + a valid unicode rep is present or needs to be created. + New utility routine UnicodeLength(), to compute the length of unicode + buffer arguments when no length is passed in, with built-in + overflow protection included. Update three callers to use it. + + * generic/tclInt.h: New macro TclNumUtfChars meant to be a faster + replacement for a full Tcl_NumUtfChars() call when the string has all + single-byte characters. + + * generic/tclStringObj.c: Simplified Tcl_GetCharLength by + * generic/tclTestObj.c: removing code that did nothing. + Added early returns from Tcl_*SetObjLength when the desired length + is already present; adapted test command to the change. + + * generic/tclStringObj.c: Re-implemented AppendUtfToUnicodeRep + so that we no longer pass through Tcl_DStrings which have their own + sets of problems when lengths overflow the int range. Now AUTUR and + FillUnicodeRep share a common core routine. + +2009-02-12 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclOODefineCmds.c (TclOOGetDefineCmdContext): Use the + correct field in the Interp structure for retrieving the frame to get + the context object so that people can extend [oo::define] without deep + shenanigans. Bug found by Federico Ferri. + +2009-02-11 Don Porter <dgp@users.sourceforge.net> + + * generic/tclStringObj.c: Re-implemented AppendUnicodeToUtfRep + so that we no longer pass through Tcl_DStrings which have their own + sets of problems when lengths overflow the int range. Now AUTUR and + UpdateStringOfString share a common core routine. + + * generic/tclStringObj.c: Changed type of the 'allocated' field + * generic/tclTestObj.c: of the String struct (and the + TestString counterpart) from size_t to int since only int values are + ever stored in it. + +2009-02-10 Jan Nijtmans <nijtmans@users.sf.net> + + * generic/tclEncoding.c: Eliminate some unnessary type casts + * generic/tclEvent.c: some internal const decorations + * generic/tclExecute.c: spacing + * generic/tclIndexObj.c: * generic/tclInterp.c: - * generic/tclNamesp.c: - * generic/tclObj.c: - * generic/tclProc.c: - * tests/compile.test: - * tests/info.test: - * tests/platform.test: - * tests/safe.test: - -2006-11-27 Kevin B. Kenny <kennykb@acm.org> - - * 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]. - -2006-11-27 Don Porter <dgp@users.sourceforge.net> - - * generic/tclExecute.c (TclIncrObj): Correct failure to detect - floating-point increment values. Thanks to William Coleda [Bug - 1602991] - -2006-11-26 Donal K. Fellows <dkf@users.sf.net> - - * tests/mathop.test, doc/mathop.n: More bits and pieces of the TIP#174 - implementation. Note that the test suite is not yet complete. - -2006-11-26 Daniel Steffen <das@users.sourceforge.net> - - * unix/tcl.m4 (Linux): --enable-64bit support. [Patch 1597389] - * unix/configure: autoconf-2.59 [Bug 1230558] - -2006-11-25 Donal K. Fellows <dkf@users.sf.net> - - TIP#174 IMPLEMENTATION - - * 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. - -2006-11-23 Donal K. Fellows <dkf@users.sf.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. - -2006-11-22 Donal K. Fellows <dkf@users.sf.net> - - TIP#269 IMPLEMENTATION - - * 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. - -2006-11-22 Don Porter <dgp@users.sourceforge.net> - - * 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 - - * 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] - -2006-11-20 Donal K. Fellows <dkf@users.sf.net> - - * 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. - -2006-11-17 Don Porter <dgp@users.sourceforge.net> - - * generic/tclExecute.c (INST_EXPON): Corrected crash on - [expr 2**(1<<63)]. Was operating on cleared bignum Tcl_Obj. - -2006-11-16 Donal K. Fellows <dkf@users.sf.net> - - * doc/apply.n, doc/chan.n: Added examples. - -2006-11-15 Don Porter <dgp@users.sourceforge.net> - - TIP#270 IMPLEMENTATION - - * 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/tclDecls.h: make genstubs - * generic/tclStubInit.c: - - * 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/tclIO.c: + * generic/tclIOCmd.c: * generic/tclIORChan.c: * generic/tclIOUtil.c: - * generic/tclMain.c: + * generic/tclListObj.c: + * generic/tclLiteral.c: * generic/tclNamesp.c: * generic/tclObj.c: + * generic/tclOOBasic.c: + * generic/tclPathObj.c: * generic/tclPkg.c: * generic/tclProc.c: - * generic/tclStrToD.c: - * generic/tclTimer.c: - * generic/tclUtil.c: - * unix/tclUnixFCmd.c: - - * 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. - - * generic/tclDecls.h: make genstubs - * generic/tclIntDecls.h: - * generic/tclIntPlatDecls.h: - * generic/tclPlatDecls.h: - * generic/tclTomMathDecls.h: - -2006-11-15 Donal K. Fellows <dkf@users.sf.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. - -2006-11-14 Don Porter <dgp@users.sourceforge.net> - - TIP#261 IMPLEMENTATION - - * generic/tclNamesp.c: [namespace import] with 0 arguments - introspects the list of imported commands. - -2006-11-13 Kevin B. Kenny <kennykb@users.sourceforge.net> - - * generic/tclThreadStorage.c (Tcl_InitThreadStorage): - (Tcl_FinalizeThreadStorage): Silence a compiler warning about - presenting a volatile pointer to 'memset'. - -2006-11-13 Don Porter <dgp@users.sourceforge.net> - - * 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. - -2006-11-13 Daniel Steffen <das@users.sourceforge.net> - - * 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: - - * unix/configure: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 - -2006-11-12 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclInt.h, generic/tclInt.decls: Transfer TclPtrMakeUpvar and - TclObjLookupVar to the internal stubs table. - -2006-11-10 Daniel Steffen <das@users.sourceforge.net> - - * tests/fCmd.test (fCmd-6.26): fix failure when env(HOME) path - contains symlinks. - - * macosx/Tcl.xcodeproj/project.pbxproj: remove tclParseExpr.c; when - running testsuite from inside Xcdoe, skip stack-3.1 (it only fails - under those circumstances). - - * 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 - -2006-11-09 Don Porter <dgp@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: - -2006-11-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - TIP#272 IMPLEMENTATION - - * generic/tclCmdMZ.c (Tcl_StringObjCmd): Implementation of the - * tests/string.test, tests/stringComp.test: [string reverse] command - * doc/string.n: from TIP#272. - - * 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: - -2006-11-08 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclIO.c, generic/tclPkg.c: Style & clarity rewrites. - -2006-11-07 Andreas Kupries <andreask@activestate.com> - - * unix/tclUnixFCmd.c (CopyFile): Added code to fall back to a - hardwired default block size should the filesystem report a bogus - value. [Bug 1586470] - -2006-11-04 Don Porter <dgp@users.sourceforge.net> - - * generic/tclStringObj.c: Changed Tcl_ObjPrintf() response to an - invalid format specifier string. No longer panics; now produces an - error message as output. - - TIP#274 IMPLEMENTATION - - * generic/tclParseExpr.c: Exponentiation operator is now right - * tests/expr.test: associative. [Patch 1556802] - -2006-11-03 Miguel Sofer <msofer@users.sf.net> - - * generic/tclBasic.c (TEOVI): fix por possible leak of a Command in - the presence of execution traces that delete it. - - * 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: - -2006-11-02 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * tests/winPipe.test (winpipe-4.[2345]): Made robust when run in - directory with spaces in its name. - - * generic/tclCmdAH.c: Clean up uses of cast NULLs. - - * generic/tclInterp.c (AliasObjCmd): Added more explanatory comments. - - * 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. - -2006-11-01 Daniel Steffen <das@users.sourceforge.net> - - * unix/tclUnixPort.h: ensure MODULE_SCOPE is defined before use, so - that tclPort.h can once again be included without tclInt.h. - - * generic/tclEnv.c (Darwin): mark _environ symbol as unexported even - when MODULE_SCOPE != __private_extern__. - -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/tclMain.c: - * generic/tclNamesp.c: - * generic/tclParseExpr.c: - * generic/tclPkg.c: - * generic/tclProc.c: + * generic/tclRegexp.c: + * generic/tclScan.c: * generic/tclStringObj.c: + * generic/tclTest.c: + * generic/tclTestProcBodyObj.c: + * generic/tclThread.c: + * generic/tclThreadTest.c: * generic/tclTimer.c: + * generic/tclTrace.c: * generic/tclUtil.c: - * unix/tclUnixFCmd.c: - -2006-10-31 Miguel Sofer <msofer@users.sf.net> - - * 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. - -2006-10-31 Pat Thoyts <patthoyts@users.sourceforge.net> - - * win/rules.vc: Fix for [Bug 1582769] - options conflict with VC2003. - -2006-10-31 Donal K. Fellows <dkf@users.sf.net> - - * 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. - -2006-10-30 Jeff Hobbs <jeffh@ActiveState.com> - - * tools/tcltk-man2html.tcl (option-toc): handle any kind of options - defined toc section (needed for ttk docs) - -2006-10-30 Miguel Sofer <msofer@users.sf.net> - - * 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. - -2006-10-30 Don Porter <dgp@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] - -2006-10-29 Miguel Sofer <msofer@users.sf.net> - - * generic/tclNamesp.c (EnsembleImplementationCmd): - * tests/namespace.test (47.7-8): reverted a wrong "optimisation" that - completely broke snit; added two tests. - -2006-10-28 Donal K. Fellows <dkf@users.sf.net> - - * 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. - -2006-10-27 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclVar.c (HasLocalVars): New macro to make various bits and - pieces cleaner. - - * generic/tclNamesp.c (TclSetNsPath): Expose SetNsPath() through - internal stubs table with semi-external name. - - * 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). - - * 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. - -2006-10-26 Miguel Sofer <msofer@users.sf.net> - - * generic/tclProc.c (SetLambdaFromAny): minor change, eliminate - redundant call to Tcl_GetString (thanks aku). - - * generic/tclInterp.c (ApplyObjCmd): - * generic/tclNamesp.c (EnsembleImplementationCmd): replaced ckalloc - (heap) with TclStackAlloc (execution stack). - -2006-10-24 Miguel Sofer <msofer@users.sf.net> - - * tests/info.test (info-9.11-12): tests for [Bug 1577492] - * tests/apply.test (apply-4.3-5): tests for [Bug 1574835] - - * generic/tclProc.c (ObjInterpProcEx): disable itcl hacks for calls - from ApplyObjCmd (islambda==1), as they mess apply's error messages - [Bug 1583266] - -2006-10-23 Miguel Sofer <msofer@users.sf.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. - - * generic/tclBasic.c (TclEvalObjvInternal): removed redundant check - for ensembles. [Bug 1577628] - - * 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] - - * 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] - - ***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). - - ***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). - -2006-10-23 Don Porter <dgp@users.sourceforge.net> - - * README: Bump version number to 8.5a6 - * generic/tcl.h: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/README.binary: - * win/configure.in: - - * unix/configure: autoconf-2.59 - * win/configure: - -2006-10-21 Miguel Sofer <msofer@users.sf.net> - - * 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). - -2006-10-20 Reinhard Max <max@tclers.tk> - - * unix/configure.in: Added autodetection for OS-supplied timezone - * unix/Makefile.in: files and configure switches to override the - * unix/configure: detected default. - -2006-10-20 Daniel Steffen <das@users.sourceforge.net> - - *** 8.5a5 TAGGED FOR RELEASE *** - - * tools/tcltk-man2html.tcl: add support for alpha & beta versions to - useversion glob pattern. [Bug 1579941] - -2006-10-18 Don Porter <dgp@users.sourceforge.net> - - * changes: 8.5a5 release date set - - * 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: - -2006-10-17 Miguel Sofer <msofer@users.sf.net> - - * generic/tclInterp.c (ApplyObjCmd): fixed bad error in 2006-10-12 - commit: interp released too early. Spotted by mistachkin. - -2006-10-16 Miguel Sofer <msofer@users.sf.net> - - * tclProc.c (SetLambdaFromAny): - * tests/apply.test (9.1-9.2): plugged intrep leak [Bug 1578454], - found by mjanssen. - -2006-10-16 Andreas Kupries <andreask@activestate.com> - - * generic/tclBasic.c: Moved TIP#219 cleanup to DeleteInterpProc. - -2006-10-16 Daniel Steffen <das@users.sourceforge.net> - - * changes: updates for 8.5a5 release. - - * unix/tclUnixThrd.c (TclpThreadGetStackSize): Darwin: fix for main - thread, where pthread_get_stacksize_np() returns incorrect info. - - * macosx/GNUmakefile: don't redo prebinding of non-prebound binaires. - -2006-10-16 Don Porter <dgp@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] - - * 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 - -2006-10-13 Colin McCormack <coldstore@users.sf.net> - - * 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] - -2006-10-13 Daniel Steffen <das@users.sourceforge.net> - - * 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 - -2006-10-12 Miguel Sofer <msofer@users.sf.net> - - * 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] - -2006-10-12 David Gravereaux <davygrvy@pobox.com> - - * win/nmakehlp.c: Replaced all wnsprintf() calls with snprintf(). - wnsprintf was not in my shwlapi header file (VC++6) - -2006-10-11 Don Porter <dgp@users.sourceforge.net> - - * generic/tclPkg.c (Tcl_PackageRequireEx): Corrected crash when - argument version=NULL passed in. - -2006-10-10 Don Porter <dgp@users.sourceforge.net> - - * changes: Updates for 8.5a5 release. - - * 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. - -2006-10-09 Miguel Sofer <msofer@users.sf.net> - - * 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] - -2006-10-09 Miguel Sofer <msofer@users.sf.net> - - * 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. - - 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. - -2006-10-06 Pat Thoyts <patthoyts@users.sourceforge.net> - - * win/rules.vc: [Bug 1571954] avoid /RTCc flag with MSVC8 - -2006-10-06 Pat Thoyts <patthoyts@users.sourceforge.net> - - * doc/binary.n: TIP #275: Support unsigned values in binary - * generic/tclBinary.c: command. Tests and documentation updated. - * tests/binary.test: - -2006-10-05 Andreas Kupries <andreask@activestate.com> - - * library/tm.tcl: Fixed bug in TIP #189 implementation, now allowing - '_' in module names. - -2006-10-05 Jeff Hobbs <jeffh@ActiveState.com> - - * 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] - - * 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-04 Kevin B. Kenny <kennykb@acm.org> - - * tzdata/: Olson's tzdata2006m. - -2006-10-01 Kevin B. Kenny <kennykb@acm.org> - - * tests/clock.test (clock-49.2): Removed a locale dependency that - caused a spurious failure in the German locale. [Bug 1567956] - -2006-10-01 Miguel Sofer <msofer@users.sf.net> - - * doc/Eval.3 (TclEvalObjv): added note on refCount management for the - elements of objv. [Bug 730244] - -2006-10-01 Pat Thoyts <patthoyts@users.sourceforge.net> - - * win/tclWinFile.c: Handle possible missing define. - - * win/tclWinFile.c (TclpUtime): [Bug 1420432] file mtime fails for - * tests/cmdAH.test: directories on windows - - * tests/winFile.test: Handle Msys environment a little differently in - getuser function. [Bug 1567956] - -2006-09-30 Miguel Sofer <msofer@users.sf.net> - - * generic/tclUtil.c (Tcl_SplitList): optimisation, [Patch 1344747] by - dgp. - - * 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] - - * 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 - -2006-09-28 Andreas Kupries <andreask@activestate.com> - - * 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] - -2006-09-28 Miguel Sofer <msofer@users.sf.net> - - * generic/tclIO.c (Tcl_GetsObj): added two test'n'panic guards for - possible NULL derefs, [Bug 1566382] and coverity #33. - -2006-09-27 Don Porter <dgp@users.sourceforge.net> - - * 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] - - * generic/tclPkg.c (CompareVersion): Flatten strcmp() results to - {-1, 0, 1} to match expectations of CompareVersion() callers. - -2006-09-27 Miguel Sofer <msofer@users.sf.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 - - * 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. - -2006-09-27 Andreas Kupries <andreask@activestate.com> - - * tests/pkg.test: Added test for version comparison at the 32bit - boundary. [Bug 1563836] - - * 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] - -2006-09-27 Miguel Sofer <msofer@users.sf.net> - - * 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. - -2006-09-26 Kevin B. Kenny <kennykb@acm.org> - - * 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'. - -2006-09-26 Pat Thoyts <patthoyts@users.sourceforge.net> - - * win/makefile.vc: Additional compiler flags and amd64 support. - * win/nmakehlp.c: - * win/rules.vc: - -2006-09-26 Don Porter <dgp@users.sourceforge.net> - - * 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. - -2006-09-25 Pat Thoyts <patthoyts@users.sourceforge.net> - - * 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. - -2006-09-25 Andreas Kupries <andreask@activestate.com> - - * generic/tclIO.c (Tcl_StackChannel): Fixed [Bug 1564642], aka - coverity #51. Extended loop condition, added checking for NULL to - prevent seg.fault. - -2006-09-25 Andreas Kupries <andreask@activestate.com> - - * doc/package.n: Fixed nits reported by Daniel Steffen in the TIP#268 - changes. - -2006-09-25 Kevin B. Kenny <kennykb@acm.org> - - * 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. - -2006-09-25 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclNotify.c (Tcl_DeleteEvents): Make it clear what happens - when the event queue is mismanaged. [Bug 1564677], coverity bug #10. - -2006-09-24 Miguel Sofer <msofer@users.sf.net> - - * generic/tclParse.c (Tcl_ParseCommand): also return an error if - start==NULL and numBytes<0. This is coverity's bug #20 - - * 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/tclInt.h: Moved TIP#268's field 'packagePrefer' to the end - of the structure, for better backward compatibility. - -2006-09-22 Andreas Kupries <andreask@activestate.com> - - TIP#268 IMPLEMENTATION - - * generic/tclDecls.h: Regenerated from tcl.decls. - * generic/tclStubInit.c: - - * doc/PkgRequire.3: Documentation of extended API, extended testsuite. - * doc/package.n: - * tests/pkg.test: - - * 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: - -2006-09-22 Donal K. Fellows <donal.k.fellows@man.ac.uk> - - * 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] - -2006-09-21 Don Porter <dgp@users.sourceforge.net> - - * generic/tclUtil.c: Dropped ParseInteger() routine. TclParseNumber - covers the task just fine. - -2006-09-19 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclEvent.c (Tcl_VwaitObjCmd): Rewrite so that an exceeded - limit trapped in a vwait cannot cause a dangerous dangling trace. - -2006-09-19 Don Porter <dgp@users.sourceforge.net> - - * 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] - -2006-09-15 Jeff Hobbs <jeffh@ActiveState.com> - - * 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: - -2006-09-12 Andreas Kupries <andreask@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 - - * 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. - -2006-09-11 Pat Thoyts <patthoyts@users.sourceforge.net> - - * 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. - -2006-09-11 Andreas Kupries <andreask@activestate.com> - - * unix/Makefile.in (install-libraries): Fixed typo tcltest 2.3.9 -> - 2.3.0. - -2006-09-11 Daniel Steffen <das@users.sourceforge.net> - - * 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. - -2006-09-11 Andreas Kupries <andreask@activestate.com> - - * tests/msgcat.test: Bumped version in auxiliary files as well. - * doc/msgcat.n: - -2006-09-11 Kevin B. Kenny <kennykb@acm.org> - - * unix/Makefile.in: Bumped msgcat version to 1.4.2 to be - * win/Makefile.in: consistent with dgp's commits of 2006-09-10. - -2006-09-11 Don Porter <dgp@users.sourceforge.net> - - * library/msgcat/msgcat.tcl: Removed some unneeded [uplevel]s. - -2006-09-10 Don Porter <dgp@users.sourceforge.net> - - * generic/tclExecute.c: Corrected INST_EXPON flaw that treated - * tests/expr.test: $x**1 as $x**3. [Bug 1555371] - - * 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: - - * library/msgcat/msgcat.tcl: Bump to version msgcat 1.4.2 to - * library/msgcat/pkgIndex.tcl: account for modifications. - -2006-09-10 Daniel Steffen <das@users.sourceforge.net> - - * 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). - - * library/tcltest/tcltest.tcl: add 'line' verbose level: prints source - * doc/tcltest.n: file line information of failing tests. - - * macosx/Tcl.xcodeproj/project.pbxproj: add new tclUnixCompat.c file; - revise tests target to use new tcltest 'line' verbose level. - - * 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 - -2006-09-08 Zoran Vasiljevic <vasiljevic@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). - - * unix/configure.in: Assume gethostbyname() and gethostbyaddr() are - MT-safe starting with Darwin 6 (Mac OSX 10.2). - - * unix/configure: Regenerated with autoconf V2.59 - -2006-09-08 Andreas Kupries <andreask@activestate.com> - - * unix/tclUnixCompat.c: Fixed conditions for CopyArray/CopyString, and - CopyHostent. Also fixed bad var names in TclpGetHostByName. - -2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - - * 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. - -2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - - * 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: - -2006-09-06 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - - * 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. - - * unix/tclUnixCompat.c: New file containing MT-safe implementation of - some library calls. - -2006-09-04 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: Removed much complexity that is no - longer needed. - - * tests/main.text (Tcl_Main-4.4): Test corrected to not be - timing sensitive to the Bug 1481986 fix. [Bug 1550858] - -2006-09-04 Jeff Hobbs <jeffh@ActiveState.com> - - * doc/package.n: correct package example - -2006-08-31 Don Porter <dgp@users.sourceforge.net> - - * 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] - - * 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. - -2006-08-29 Don Porter <dgp@users.sourceforge.net> - - * generic/tclParseExpr.c: Dropped the old expr parser. - -2006-08-30 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclBasic.c (Tcl_CreateInterp): init iPtr->threadId - - * win/tclWinChan.c [Bug 819667] Improve logic for identifying COM - ports. - - * generic/tclIOGT.c (ExecuteCallback): - * generic/tclPkg.c (Tcl_PkgRequireEx): replace Tcl_GlobalEval(Obj) - with more efficient Tcl_Eval(Obj)Ex - - * unix/Makefile.in (valgrindshell): add valgrindshell target and - update default VALGRINDARGS. User can override, or add to it with - VALGRIND_OPTS env var. - - * generic/tclFileName.c (DoGlob): match incrs with decrs. - -2006-08-29 Don Porter <dgp@users.sourceforge.net> - - * 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. - -2006-08-29 Joe Mistachkin <joe@mistachkin.com> - - * 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). - -2006-08-29 Colin McCormack <coldstore@users.sourceforge.net> - - * 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: - -2006-08-28 Kevin B. Kenny <kennykb@acm.org> - - * library/tzdata/America/Havana: Regenerated from Olson's - * library/tzdata/America/Tegucigalpa: tzdata2006k. - * library/tzdata/Asia/Gaza: - -2006-08-28 Don Porter <dgp@users.sourceforge.net> - - * 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] - - * generic/tclStringObj.c: Corrected TclFormatObj's failure to - count up the number of arguments required by examining the format - string. [Bug 1547681] - -2006-08-27 Joe Mistachkin <joe@mistachkin.com> - - * generic/tclClock.c (ClockClicksObjCmd): Fix nested macro breakage - with TCL_MEM_DEBUG enabled. [Bug 1547662] - -2006-08-26 Miguel Sofer <msofer@users.sf.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. - -2006-08-24 Kevin B. Kenny <kennykb@acm.org> - - * 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. - -2006-08-23 Don Porter <dgp@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. - -2006-08-21 Don Porter <dgp@users.sourceforge.net> - - * generic/tclIOUtil.c: Revisions to complete the thread finalization - of the cwdPathPtr. [Bug 1536142] - - * generic/tclParseExpr.c: Revised mistaken call to - TclCheckBadOctal(), so both [expr 08] and [expr 08z] have same - additional info in error message. - - * 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: - -2006-08-21 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * win/Makefile.in (gdb): Make this target work so that debugging an - msys build is possible. - -2006-08-21 Daniel Steffen <das@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. - - * 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/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 - - * 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] - -2006-08-18 Daniel Steffen <das@users.sourceforge.net> - - * 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 - - * generic/tcl.h: add fixes for building on Leopard and - * unix/tclUnixPort.h: support for 64-bit CoreFoundation on Leopard - * macosx/tclMacOSXFCmd.c: - - * unix/tclUnixPort.h: on Darwin x86_64, disable use of vfork as it - causes execve to fail intermittently. (rdar://4685553) - - * 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) + * generic/tclVar.c: + * generic/tclStubInit.c: (regenerated) - * 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. +2009-02-10 Jan Nijtmans <nijtmans@users.sf.net> - * 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. + * unix/tcl.m4: [Bug 2502365]: Building of head on HPUX is broken when + using the native CC. + * unix/configure: (autoconf-2.59) - * tests/macOSXFCmd.test: fix use of deprecated resource fork paths. +2009-02-10 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixInit.c (TclpInitLibraryPath): move code that is only - needed when TCL_LIBRARY is defined to run only in that case. + * generic/tclObj.c (Tcl_GetString): Added comments and validity + checks following the call to an UpdateStringProc. - * generic/tclLink.c (LinkTraceProc): fix 64-bit signed-with-unsigned - comparison warning from gcc4 -Wextra. + * generic/tclStringObj.c: Reduce code duplication in Tcl_GetUnicode*. + Restrict AppendUtfToUtfRep to non-negative length appends. + Convert all Tcl_InvalidateStringRep() calls into macros. + Simplify Tcl_AttemptSetObjLength by removing unreachable code. + Simplify SetStringFromAny() by removing unreachable and duplicate code. + Simplify Tcl_SetObjLength by removing unreachable code. + Removed handling of (objPtr->bytes != NULL) from UpdateStringOfString, + which is only called when objPtr->bytes is NULL. - * 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. +2009-02-09 Jan Nijtmans <nijtmans@users.sf.net> -2006-08-17 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompile.c: fix [Bug 2555129] const compiler warning (as + error) in tclCompile.c - * generic/tclCompile.c: Revised the new set of expression - * generic/tclParseExpr.c: parse error messages. +2009-02-07 Donal K. Fellows <dkf@users.sf.net> -2006-08-16 Don Porter <dgp@users.sourceforge.net> + * generic/tclZlib.c (TclZlibCmd): [Bug 2573172]: Ensure that when + invalid subcommand name is given, the list of valid subcommands is + produced. This gives a better experience when using the command + interactively. - * generic/tclParseExpr.c: Replace PrecedenceOf() function with - prec[] static array. +2009-02-05 Joe Mistachkin <joe@mistachkin.com> -2006-08-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclInterp.c: Fix argument checking for [interp cancel]. [Bug + 2544618] + * unix/Makefile.in: Fix build issue with zlib on FreeBSD (and possibly + other platforms). - * library/clock.tcl (::tcl::clock::add): Added missing braces to - clockval validation code. Pointed out on comp.lang.tcl. +2009-02-05 Donal K. Fellows <dkf@users.sf.net> -2006-08-11 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclCmdMZ.c (StringIndexCmd, StringRangeCmd, StringLenCmd): + Simplify the implementation of some commands now that the underlying + string API knows more about bytearrays. - * generic/tclNamesp.c: Improvements in buffer management to make - namespace creation faster. Plus selected other minor improvements to - code quality. [Patch 1352382] + * generic/tclExecute.c (TclExecuteByteCode): [Bug 2568434]: Make sure + that INST_CONCAT1 will not lose string reps wrongly. -2006-08-10 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclStringObj.c (Tcl_AppendObjToObj): Special-case the + appending of one bytearray to another, which can be extremely rapid. + Part of scheme to address [Bug 1665628] by making the basic string + operations more efficient on byte arrays. + (Tcl_GetCharLength, Tcl_GetUniChar, Tcl_GetRange): More special casing + work for bytearrays. - 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. +2009-02-04 Don Porter <dgp@users.sourceforge.net> -2006-08-09 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/tclEncoding.c: Replace buffer copy in for loop with - call to memcpy(). Thanks to afredd. [Patch 1530262] + * generic/tclCmdMZ.c: Prevent crashes due to int overflow of the + length of the result of [string repeat]. [Bug 2561746] -2006-08-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2009-02-03 Jan Nijtmans <nijtmans@users.sf.net> + + * macosx/tclMacOSXFCmd.c: Eliminate some unnessary type casts + * unix/tclLoadDyld.c: some internal const decorations + * unix/tclUnixCompat.c: spacing + * unix/tclUnixFCmd.c + * unix/tclUnixFile.c + * win/tclWinDde.c + * win/tclWinFCmd.c + * win/tclWinInit.c + * win/tclWinLoad.c + * win/tclWinPipe.c + * win/tclWinReg.c + * win/tclWinTest.c + * generic/tclBasic.c + * generic/tclBinary.c + * generic/tclCmdAH.c + * generic/tclCmdIL.c + * generic/tclCmdMZ.c + * generic/tclCompCmds.c + * generic/tclDictObj.c - * generic/tclCmdIL.c (Tcl_LassignObjCmd): Make the wrong#args message - a bit more consistent with those used elsewhere. [Bug 1534628] +2009-02-03 Donal K. Fellows <dkf@users.sf.net> - * generic/tclDictObj.c (DictForCmd): Stop crash when attempting to - iterate over an invalid dictionary. [Bug 1531184] + * generic/tclObj.c (tclCmdNameType): [Bug 2558422]: Corrected the type + of this structure so that extensions that write it (yuk!) will still + be able to function correctly. - * 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] +2009-02-03 Don Porter <dgp@users.sourceforge.net> -2006-08-03 Daniel Steffen <das@users.sourceforge.net> + * 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. - * 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/tclObj.c (Tcl_GetStringFromObj): Reduce code duplication. - * 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. +2009-02-02 Don Porter <dgp@users.sourceforge.net> -2006-07-31 Kevin B. Kenny <kennykb@acm.org> + * generic/tclInterp.c: Reverted the conversion of [interp] into an + * tests/interp.test: ensemble. Such conversion is not necessary + * tests/nre.test: (or even all that helpful) in the NRE-enabling + of [interp invokehidden], and it has other implications -- including + significant forkage of the 8.5 and 8.6 implementations -- that are + better off avoided if there's no gain. - * 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] + * generic/tclStringObj.c (STRING_NOMEM): [Bug 2494093]: Add missing + cast of NULL to (char *) that upsets some compilers. -2006-07-30 Kevin B. Kenny <kennykb@acm.org> + * generic/tclStringObj.c (Tcl_(Attempt)SetObjLength): [Bug 2553906]: + Added protections against callers asking for negative lengths. It is + likely when this happens that an integer overflow is to blame. - * 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. +2009-02-01 David Gravereaux <davygrvy@pobox.com> -2006-07-30 Joe English <jenglish@users.sourceforge.net> + * win/makefile.vc: Allow nmake flags such as -a (rebuild all) to pass + down to the pkgs targets, too. - * doc/AppInit.3: Fix typo [Bug 1496886] +2009-01-30 Donal K. Fellows <dkf@users.sf.net> -2006-07-26 Don Porter <dgp@users.sourceforge.net> + * doc/chan.n: [Bug 1216074]: Added another extended example. - * 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]. + * doc/refchan.n: Added an example of how to build a scripted channel. -2006-07-24 Don Porter <dgp@users.sourceforge.net> +2009-01-29 Donal K. Fellows <dkf@users.sf.net> - * win/tclWinSock.c: Correct un-initialized Tcl_DString. Thanks to - afredd. [Bug 1518166] + * tests/stringObj.test: [Bug 2006888]: Remove non-ASCII chars from + non-comment locations in the file, making it work more reliably in + locales with a non-Latin-1 default encoding. -2006-07-21 Miguel Sofer <msofer@users.sf.net> + * generic/tclNamesp.c (Tcl_FindCommand): [Bug 2519474]: Ensure that + the path is not searched when the TCL_NAMESPACE_ONLY flag is given. - * generic/tclExecute.c: - * tests/execute.test (execute-9.1): dgp's fix for [Bug 1522803]. - -2006-07-20 Daniel Steffen <das@users.sourceforge.net> - - * 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. - - * 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 - - * 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. - -2006-07-13 Andreas Kupries <andreask@activestate.com> - - * 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. - -2006-07-11 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - - * generic/tclAsync.c: Made Tcl_AsyncDelete() more tolerant when called - after all thread TSD has been garbage-collected. - -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: - -2006-06-20 Don Porter <dgp@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/tclOODecls.h (Tcl_OOInitStubs): [Bug 2537839]: Make the + declaration of this macro work correctly in the non-stub case. - * generic/tclIntDecls.h: make genstubs - * generic/tclStubInit.c: +2009-01-29 Don Porter <dgp@users.sourceforge.net> - * generic/tclStrToD.c: Removed dead code that permitted disabling of - recognition of the new 0b and 0o numeric formats. + * generic/tclInterp.c: Convert the [interp] command into a + * tests/interp.test: [namespace ensemble]. Work in progress + * tests/nre.test: to NRE-enable the [interp invokehidden] + subcommand. - * 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 +2009-01-29 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdAH.c: Removed dead code that was old implementation - of [format]. + * generic/tclNamesp.c (TclMakeEnsemble): [Bug 2529117]: Make this + function behave more sensibly when presented with a fully-qualified + name, rather than doing strange stuff. -2006-06-14 Daniel Steffen <das@users.sourceforge.net> +2009-01-28 Donal K. Fellows <dkf@users.sf.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. + * generic/tclBasic.c (TclInvokeObjectCommand): Made this understand + what to do if it ends up being used on a command with no objProc; that + shouldn't happen, but... -2006-06-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclNamesp.c (TclMakeEnsemble): [Bug 2529157]: Made this + understand NRE command implementations better. + * generic/tclDictObj.c (DictForCmd): Eliminate unnecessary command + implementation. - * doc/format.n, doc/scan.n: Added examples for converting between - characters and their numeric interpretations following user prompting. +2009-01-27 Donal K. Fellows <dkf@users.sf.net> -2006-06-13 Donal K. Fellows <dkf@users.sf.net> + * generic/tclOODefineCmds.c (Tcl_ClassSetConstructor): + [Bug 2531577]: Ensure that caches of constructor chains are cleared + when the constructor is changed. - * unix/tclLoadDl.c (TclpDlopen): Workaround for a compiler bug in Sun - Forte 6. [Bug 1503729] +2009-01-26 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2006-06-06 Don Porter <dgp@users.sourceforge.net> + * generic/tclInt.h: Fix [Bug 1028264]: WSACleanup() too early. + * generic/tclEvent.c: The fix introduces "late exit handlers" + * win/tclWinSock.c: for similar late process-wide cleanups. - * doc/GetStdChan.3: Added recommendation that each call to - Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel(). +2009-01-26 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2006-06-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * win/tclWinSock.c: Fix [Bug 2446662]: resync Win behavior on RST + with that of unix (EOF). - * 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. +2009-01-26 Donal K. Fellows <dkf@users.sf.net> -2006-05-29 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclZlib.c (ChanClose): Only generate error messages in the + interpreter when the thread is not being closed down. [Bug 2536400] - * generic/tcl.h (Tcl_DecrRefCount): use if/else construct to allow - placement in unbraced outer if/else conditions. (jcw) +2009-01-23 Donal K. Fellows <dkf@users.sf.net> -2006-05-27 Daniel Steffen <das@users.sourceforge.net> + * doc/zlib.n: Added a note that 'zlib push' is reversed by 'chan pop'. - * 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] +2009-01-22 Jan Nijtmans <nijtmans@users.sf.net> - * unix/configure: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 + * generic/tclCompile.h: CONSTify TclPrintInstruction (TIP #27) + * generic/tclCompile.c + * generic/tclInt.h: CONSTify TclpNativeJoinPath (TIP #27) + * generic/tclFileName.c + * generic/tcl.decls: {unix win} is equivalent to {generic} + * generic/tclInt.decls + * generic/tclDecls.h: (regenerated) + * generic/tclIntDecls.h + * generic/tclGetDate.y: Single internal const decoration. + * generic/tclDate.c: -2006-05-24 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2009-01-22 Kevin B. Kenny <kennykb@acm.org> - * 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] + * unix/tcl.m4: Corrected a typo ($(SHLIB_VERSION) should be + ${SHLIB_VERSION}). + * unix/configure: Autoconf 2.59 -2006-05-23 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2009-01-21 Andreas Kupries <andreask@activestate.com> - * doc/chan.n, doc/refchan.n: Tighten up the documentation to follow a - slightly more consistent style with regard to argument capitalization. + * generic/tclIORChan.c (ReflectClose): Fix for [Bug 2458202]. + * generic/tclIORTrans.c (ReflectClose): 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. -2006-05-13 Don Porter <dgp@users.sourceforge.net> +2009-01-21 Don Porter <dgp@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/tclStringObj.c: New fix for [Bug 2494093] replaces the + flawed attempt committed 2009-01-09. -2006-05-13 Daniel Steffen <das@users.sourceforge.net> +2009-01-19 Kevin B. Kenny <kennykb@acm.org> - * generic/tclEvent.c (HandleBgErrors): fix leak. [Coverity issue 86] + * 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-05-05 Don Porter <dgp@users.sourceforge.net> +2009-01-19 David Gravereaux <davygrvy@pobox.com> - * 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] + * win/build.vc.bat: Improved tools detection and error message + * win/makefile.vc: Reorganized the $(TCLOBJ) file list into seperate + parts for easier maintenance. Matched all sources built using -GL to + both $(lib) and $(link) to use -LTCG and avoid a warning message. + Addressed the over-building nature of the htmlhelp target by moving + from a pseudo target to a real target dependent on the entire docs/ + directory contents. + * win/nmakehlp.c: Removed -g option and GrepForDefine() func as it + isn't being used anymore. The -V option method is much better. -2006-05-04 Don Porter <dgp@users.sourceforge.net> +2009-01-16 Don Porter <dgp@users.sourceforge.net> - * README: Bump version number to 8.5a5 - * generic/tcl.h: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/README.binary: - * win/configure.in: + * generic/tcl.h: Bump patchlevel to 8.6b1.1 to distinguish + * library/init.tcl: CVS snapshots from the 8.6b1 and 8.6b2 releases + * unix/configure.in: and to deal with the fact that the 8.6b1 + * win/configure.in: version of init.tcl will not [source] in the + HEAD version of Tcl. * unix/configure: autoconf-2.59 * win/configure: - * generic/tclBasic.c (ExprSrandFunc): Restore acceptance of wide/big - * doc/mathfunc.n: integer values by srand(). [Bug 1480509] - -2006-04-26 Don Porter <dgp@users.sourceforge.net> - - *** 8.5a4 TAGGED FOR RELEASE *** - - * changes: Updates for another RC. - - * 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. - -2006-04-25 Don Porter <dgp@users.sourceforge.net> - - * doc/DoubleObj.3: More doc updates for TIP 237. - * doc/expr.n: - * doc/format.n: - * doc/mathfunc.n: - * doc/scan.n: - * doc/string.n: - - * generic/tclScan.c: [scan $s %u] is documented to accept only - * tests/scan.test: decimal formatted integers. Fixed to match. - -2006-04-19 Kevin B. Kenny <kennykb@acm.org> - - * 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. - -2006-04-18 Donal K. Fellows <dkf@users.sf.net> - - * doc/IntObj.3: Minor review fixes, including better documentation of - the behaviour of Tcl_GetBignumAndClearObj. - -2006-04-17 Don Porter <dgp@users.sourceforge.net> +2009-01-14 Don Porter <dgp@users.sourceforge.net> - * doc/IntObj.3: Documentation changes to account for TIP 237 changes. - * doc/Object.3: [Bug 1446971] + * generic/tclBasic.c (Tcl_DeleteCommandFromToken): Reverted most + of the substance of my 2009-01-12 commit. NULLing the objProc field of + a Command when deleting it is important so that tests for certain + classes of commands don't return false positives when applied to + deleted command tokens. Overall change is now just replacement of a + false comment with a true one. -2006-04-12 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2009-01-13 Jan Nijtmans <nijtmans@users.sf.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] + * unix/tcl.m4: fix [tcl-Bug 2502365] Building of head on HPUX is + broken when using the native CC. + * unix/configure (autoconf-2.59) -2006-04-11 Don Porter <dgp@users.sourceforge.net> +2009-01-13 Donal K. Fellows <dkf@users.sf.net> - * generic/tclTrace.c: Stop some interference between enter traces - * tests/trace.test: and enterstep traces. [Bug 1458266] + * generic/tclCmdMZ.c (Tcl_ThrowObjCmd): Move implementation of [throw] + * library/init.tcl (throw): to C from Tcl. -2006-04-07 Don Porter <dgp@users.sourceforge.net> +2009-01-12 Don Porter <dgp@users.sourceforge.net> - * generic/tclPathObj.c: Yet another revised fix for the [Bug 1379287] - * tests/fileSystem.test: family of path normalization bugs. + * generic/tclBasic.c (Tcl_DeleteCommandFromToken): One consequence of + the NRE rewrite is that there are now situations where a NULL objProc + field in a Command struct is perfectly normal. Removed an outdated + comment in Tcl_DeleteCommandFromToken that claimed we use + cmdPtr->objPtr==NULL as a test of command validity. In fact we use + cmdPtr->flags&CMD_IS_DELETED to perform that test. Also removed the + setting to NULL, since any extension following the advice of the old + comment is going to be broken by NRE anyway, and needs to shift to + flag-based testing (or stop intruding into such internal matters). + Part of [Bug 2486550]. -2006-04-06 Jeff Hobbs <jeffh@ActiveState.com> - - * generic/tclRegexp.c (FinalizeRegexp): full reset data to indicate - readiness for reinitialization. - -2006-04-06 Don Porter <dgp@users.sourceforge.net> - - * 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] - - * 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: - - * tests/indexObj.test: Corrected other test errors revealed by - * tests/upvar.test: testing outside the tcltest application. - - * generic/tclPathObj.c: Revised fix for the [Bug 1379287] family of - path normalization bugs. - -2006-04-06 Daniel Steffen <das@users.sourceforge.net> - - * 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 - -2006-04-05 Don Porter <dgp@users.sourceforge.net> - - * 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: - - * 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. - - * win/configure.in: Bump package version numbers. - * win/configure: autoconf 2.59 - -2006-04-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * 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-03 Andreas Kupries <andreask@activestate.com> - - * 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/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/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]. - -2006-03-30 Miguel Sofer <msofer@users.sf.net> - - * generic/tclExecute.c: remove unused var and silence gcc warning - -2006-03-29 Jeff Hobbs <jeffh@ActiveState.com> - - * win/Makefile.in: convert _NATIVE paths to use / to avoid ".\" - path-as-escape issue. - -2006-03-29 Don Porter <dgp@users.sourceforge.net> - - * changes: Updates for another RC. - - * generic/tclPathObj.c: More fixes for path normalization when /../ - * tests/fileSystem.test: tries to go beyond root.[Bug 1379287] - - * generic/tclExecute.c: Revised INST_MOD implementation to do - calculations in native types as much as possible, moving to mp_ints - only when necessary. - -2006-03-28 Jeff Hobbs <jeffh@ActiveState.com> - - * win/tclWinPipe.c (TclpCreateProcess): change panics to Tcl errors - and do proper refcounting of noe objPtr. [Bug 1194429] - - * unix/tcl.m4, win/tcl.m4: []-quote AC_DEFUN functions. - -2006-03-28 Daniel Steffen <das@users.sourceforge.net> - - * macosx/Tcl.xcode/default.pbxuser: add '-singleproc 1' cli arg to - * macosx/Tcl.xcodeproj/default.pbxuser: tcltest to ease test debugging - - * 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/tclUnixFCmd.c (TclpObjNormalizePath): deal with *BSD/Darwin - realpath() converting relative paths into absolute paths [Bug 1064247] - -2006-03-28 Vince Darley <vincentdarley@sourceforge.net> - - * generic/tclIOUtil.c: fix to nativeFilesystemRecord comparisons - (lesser part of [Bug 1064247]) - -2006-03-27 Pat Thoyts <patthoyts@users.sourceforge.net> - - * win/tclWinTest.c: Fixes for [Bug 1456373] (mingw-gcc issue) - -2006-03-27 Andreas Kupries <andreask@activestate.com> - - * 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: - -2006-03-27 Don Porter <dgp@users.sourceforge.net> - - * 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. - - * changes: Updates for another RC. - -2006-03-25 Don Porter <dgp@users.sourceforge.net> - - * generic/tclExecute.c: Corrections to INST_EXPON detection of - overflow to use mp_int calculations. - -2006-03-24 Kevin B. Kenny <kennykb@acm.org> - - * generic/tclExecute.c (TclExecuteByteCode): Added a couple of missing - casts to 'int' that were affecting compilablity on VC6. - -2006-03-24 Don Porter <dgp@users.sourceforge.net> - - * generic/tclEncoding.c: Reverted latest change [Bug 506653] since it - reportedly killed test performance on Windows. - - * generic/tclExecute.c: Revised INST_EXPON implementation to do - calculations in native types as much as possible, moving to mp_ints - only when necessary. - -2006-03-23 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.). - - * tests/env.test: With case preserved (see 2006-03-21 commit) be sure - to do case-insensitive filtering. [Bug 1457065] - -2006-03-23 Reinhard Max <max@suse.de> - - * 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>" - -2006-03-22 Reinhard Max <max@suse.de> - - * 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. - -2006-03-21 Don Porter <dgp@users.sourceforge.net> - - * changes: Updates for another RC. - - * generic/tclStrToD.c: One of the branches of AccumulateDecimalDigit - * tests/parseExpr.test: did not. [Bug 1451233] - - * tests/env.test: Preserve case of saved env vars. [Bug 1409272] - -2006-03-21 Daniel Steffen <das@users.sourceforge.net> - - * 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 - -2006-03-20 Andreas Kupries <andreask@activestate.com> - - * 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. - - * 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. - -2006-03-20 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * tests/cmdAH.test, tests/fCmd.test, tests/unixFCmd.test: - * tests/winFCmd.test: Cleanup of some test constraint handling, and a - few other minor issues. - -2006-03-18 Vince Darley <vincentdarley@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. - - ***POTENTIAL INCOMPATIBILITY*** for scripts that assumed '-nocomplain' - removes the need for 'catch' to deal with non-understood path names. - - Small optimisation to implementation of pattern==NULL case of TclGlob, - and clarification to the documentation. [Tclvfs bug 1405317] - -2006-03-18 Vince Darley <vincentdarley@sourceforge.net> - - * tests/fCmd.test: added knownBug test case for [Bug 1394972] - - * 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] - -2006-03-17 Andreas Kupries <andreask@activestate.com> - - * doc/chan.n: Updated with documentation for the commands 'chan - create' and 'chan postevent' (TIP #219). - - * doc/refchan.n: New file. Documentation of the command handler API - for reflected channels (TIP #219). - -2006-03-17 Joe Mistachkin <joe@mistachkin.com> - - * unix/tclUnixPort.h: Include pthread.h prior to pthread_np.h [Bug - 1444692] - - * win/tclWinTest.c: Corrected typo of 'initializeMutex' that prevented - successful compilation. - -2006-03-16 Andreas Kupries <andreask@activestate.com> - - * 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/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. - - * tests/ioCmd.test (iocmd-13.7.*): Extended the testsuite to check the - new handling of 'a'. - -2006-03-15 Andreas Kupries <andreask@activestate.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] - -2006-03-15 Vince Darley <vincentdarley@sourceforge.net> - - * win/fCmd.test: add proper test constraints so the new tests don't - run on Unix. - -2006-03-14 Andreas Kupries <andreask@activestate.com> - - * generic/tclPipe.c (TclCreatePipeline): Modified the processing of - pipebars to fail if the last bar is followed only by redirections. - [Bug 768659] - -2006-03-14 Andreas Kupries <andreask@activestate.com> - - * 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] - -2006-03-14 Andreas Kupries <andreask@activestate.com> - - * 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. - -2006-03-14 Andreas Kupries <andreask@activestate.com> - - * library/tm.tcl (::tcl::tm::Defaults): Fixed handling of environment - variable TCLX.y_TM_PATH, bad variable reference. Thanks to Julian - Noble. [Bug 1448251] - -2006-03-14 Vince Darley <vincentdarley@sourceforge.net> - - * 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 - -2006-03-13 Don Porter <dgp@users.sourceforge.net> - - * generic/tclEncoding.c: Report error when an escape encoding is - missing one of its sub-encodings. [Bug 506653] - - * 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. - -2006-03-10 Miguel Sofer <msofer@users.sf.net> - - * generic/tclProc.c (ObjInterpProcEx): - * tests/apply.test (apply-5.1): Fix [apply] error messages so that - they quote the lambda expression. [Bug 1447355] - -2006-03-10 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - - -- Summary of changes fixing [Bug 1437595] -- - - * generic/tclEvent.c: Cosmetic touches and identation - * generic/tclInt.h: Added TclpFinalizeSockets() call. - - * generic/tclIO.c: Calls TclpFinalizeSockets() as part of the - TclFinalizeIOSubsystem(). - - * unix/tclUnixSock.c: Added no-op TclpFinalizeSockets(). - - * 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. - -2006-03-10 Vince Darley <vincentdarley@sourceforge.net> - - * win/tclWinFile.c: previous patch breaks tests, so removed. - -2006-03-09 Vince Darley <vincentdarley@sourceforge.net> - - * 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. - -2006-03-08 Don Porter <dgp@users.sourceforge.net> - - * generic/tclExecute.c: Complete missing bit of TIP 215 implementation - * tests/incr.test: - -2006-03-07 Joe English <jenglish@users.sourceforge.net> - - * unix/tcl.m4: Set SHLIB_LD_FLAGS='${LIBS}' on NetBSD, as per the - other *BSD variants. [Bug 1334613] - * unix/configure: Regenerated. - -2006-03-07 Don Porter <dgp@users.sourceforge.net> - - * changes: Update in prep. for 8.5a4 release. - - * 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. - -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-03 Don Porter <dgp@users.sourceforge.net> - - * generic/tclPathObj.c: Revised yesterday's fix for [Bug 1379287] to - work on Windows. - - * generic/tclObj.c: Compatibility support for existing code that - calls Tcl_GetObjType("boolean"). - -2006-03-02 Don Porter <dgp@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] - -2006-03-01 Reinhard Max <max@suse.de> - - * 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. - -2006-02-28 Don Porter <dgp@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] - -2006-02-22 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] - -2006-02-17 Don Porter <dgp@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] - -2006-02-16 Don Porter <dgp@users.sourceforge.net> - - * generic/tclIndexObj.c: Disallow the "ambiguous" error message - * tests/indexObj.test: when TCL_EXACT matching is requested. - * tests/ioCmd.test: - -2006-02-15 Don Porter <dgp@users.sourceforge.net> - - * generic/tclIO.c: Made several routines tolerant of - * generic/tclIORChan.c: interp == NULL arguments. [Bug 1380662] - * generic/tclIOUtil.c: - -2006-02-09 Don Porter <dgp@users.sourceforge.net> - - TIP#215 IMPLEMENTATION - - * 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: - - * generic/tclDecls.h: make genstubs - * generic/tclIntDecls.h: - * generic/tclStubInit.c: - -2006-02-01 Miguel Sofer <msofer@users.sf.net> - - * generic/tclProc.c: minor improvements to [apply] - * tests/apply.test: new tests; apply-5.1 currently fails to indicate - missing work in error reporting - -2006-02-01 Don Porter <dgp@users.sourceforge.net> - - TIP#194 IMPLEMENTATION - - * 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: - - TIP#181 IMPLEMENTATION - - * 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: - - * generic/tclDecls.h: make genstubs - * generic/tclStubInit.c: - - TIP#250 IMPLEMENTATION - - * doc/namespace.n: New command [namespace upvar]. [Patch 1275435] - * generic/tclInt.h: - * generic/tclNamesp.c: - * generic/tclVar.c: - * tests/namespace.test: - * tests/upvar.test: - -2006-01-26 Donal K. Fellows <dkf@users.sf.net> - - * doc/dict.n: Fixed silly bug in example. Thanks to Heiner Marxen - <heiner.marxen@unsel.de> for catching this! [Bug 1415725] - -2006-01-26 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * 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. - -2006-01-25 Donal K. Fellows <dkf@users.sf.net> +2009-01-09 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixInit.c (TclpInitPlatform): Improved conditions on when - to update the FP rounding mode on FreeBSD, taken from FreeBSD port. + * 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] -2006-01-23 Donal K. Fellows <dkf@users.sf.net> +2009-01-09 Donal K. Fellows <dkf@users.sf.net> - * tests/string.test (string-12.21): Added test for [Bug 1410553] based - on original bug report. + * generic/tclNamesp.c (NamespaceEnsembleCmd): Error out when someone + gives wrong # of args to [namespace ensemble create]. [Bug 1558654] -2006-01-23 Miguel Sofer <msofer@users.sf.net> +2009-01-08 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] + * generic/tclStringObj.c (STRING_UALLOC): Added missing parens + required to get correct results out of things like + STRING_UALLOC(num + append). [Bug 2494093] - * generic/tclProc.c: fixed args handling for precompiled bodies [Bug - 1412695]; thanks to Uwe Traum. +2009-01-08 Donal K. Fellows <dkf@users.sf.net> -2006-01-16 Reinhard Max <max@suse.de> + * generic/tclDictObj.c, generic/tclIndexObj.c, generic/tclListObj.c, + * generic/tclObj.c, generic/tclStrToD.c, generic/tclUtil.c, + * generic/tclVar.c: Generate errorcodes for the error cases which + approximate to "I can't interpret that string as one of those" and + "You gave me the wrong number of arguments". - * generic/tclPipe.c (FileForRedirect): Prevent nameString from being - freed without having been initialized. - * tests/exec.test: Added a test for the above. +2009-01-07 Donal K. Fellows <dkf@users.sf.net> -2006-01-12 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * doc/dict.n: Added more examples. [Tk Bug 2491235] - * generic/tclPathObj.c (Tcl_FSGetInternalRep): backported patch from - core-8-4-branch. A freed pointer has been overwritten causing all - sorts of coredumps. + * tests/oo.test (oo-22.1): Adjusted test to be less dependent on the + specifics of how [info frame] reports general frame information, and + instead to focus on what methods add to it; that's really what the + test is about anyway. -2006-01-12 Vince Darley <vincentdarley@sourceforge.net> +2009-01-06 Don Porter <dgp@users.sourceforge.net> - * win/tclWinFile.c: fix to sharing violation [Bug 1366227] + * tests/stringObj.test: Revise tests that demand a NULL Tcl_ObjType + in certain values to construct those values with [testdstring] so + there's no lack of robustness depending on the shimmer history of + shared literals. -2006-01-11 Don Porter <dgp@users.sourceforge.net> +2009-01-06 Donal K. Fellows <dkf@users.sf.net> - * 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] + * generic/tclDictObj.c (DictIncrCmd): Corrected twiddling in internals + of dictionaries so that literals can't get destroyed. -2006-01-10 Daniel Steffen <das@users.sourceforge.net> + * tests/expr.test: Eliminate non-ASCII char. [Bug 2006879] - * 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. + * generic/tclOOInfo.c (InfoObjectMethodsCmd,InfoClassMethodsCmd): Only + delete pointers that were actually allocated! [Bug 2489836] -2006-01-09 Don Porter <dgp@users.sourceforge.net> + * generic/tclOO.c (TclNRNewObjectInstance, Tcl_NewObjectInstance): + Perform search for existing commands in right context. [Bug 2481109] - * generic/tclNamesp.c (NamespaceInscopeCmd): [namespace inscope] - * tests/namespace.test: commands were not reported by [info level]. - [Bug 1400572] +2009-01-05 Donal K. Fellows <dkf@users.sf.net> -2006-01-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclCmdMZ.c (TclNRSourceObjCmd): Make implementation of the + * generic/tclIOUtil.c (TclNREvalFile): [source] command be NRE + enabled so that [yield] inside a script sourced in a coroutine can + work. [Bug 2412068] - * generic/tclTrace.c: Stop exporting the guts of the trace command; - nothing outside this file needs to see it. [Bug 971336] +2009-01-04 Donal K. Fellows <dkf@users.sf.net> -2006-01-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclCmdAH.c: Tidy up spacing and code style. - * unix/tcl.m4 (TCL_CONFIG_SYSTEM): Factor out the code to determine - the operating system version number, as it was replicated in several - places. +2009-01-03 Kevin B. Kenny <kennykb@acm.org> -2006-01-04 David Gravereaux <davygrvy@pobox.com> + * 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/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. +2009-01-02 Donal K. Fellows <dkf@users.sf.net> + + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Force the use of the compatibility + version of mkstemp() on IRIX. [Bug 878333] + * unix/configure.in, unix/Makefile.in (mkstemp.o): + * compat/mkstemp.c (new file): Added a compatibility implementation of + the mkstemp() function, which is apparently needed on some platforms. + [Bug 741967] + + ****************************************************************** + *** CHANGELOG ENTRIES FOR 2008 IN "ChangeLog.2008" *** + *** CHANGELOG ENTRIES FOR 2006-2007 IN "ChangeLog.2007" *** + *** 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" *** + ****************************************************************** - ****************************************************************** - *** 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" *** - ****************************************************************** |