diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 16445 |
1 files changed, 8961 insertions, 7484 deletions
@@ -1,9 +1,16 @@ -2013-01-02 Miguel Sofer <msofer@users.sf.net> +2013-01-08 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclEnsemble.c: Remove stray calls to Tcl_Alloc and - * generic/tclExecute.c: friends: the core should only use ckalloc - * generic/tclIORTrans.c: to allow MEM_DEBUG to work properly - * generic/tclTomMathInterface.c: + * win/tclWinFile.c: [Bug 3092089]: [file normalize] can remove path + components. [Bug 3587096] win vista/7: "can't find init.tcl" when + called via junction. + +2013-01-07 Jan Nijtmans <nijtmans@users.sf.net> + + * generic/tcl.decls: Extend the public and private stub tables with + * generic/tclInt.decls: dummy NULL entries, up to the size of the + Tcl 8.6 stub tables. This makes it easier to debug extensions which + use Tcl 8.5/8.6 features but (erroneously) are attempted to be loaded + in Tcl 8.4. 2012-12-31 Donal K. Fellows <dkf@users.sf.net> @@ -18,7 +25,9 @@ 2012-12-21 Jan Nijtmans <nijtmans@users.sf.net> - * unix/dltest/pkgb.c: Make pkgb.so loadable in Tcl 8.4 as well. + * unix/dltest/pkgb.c: Turn pkgb.so into a Tcl9 interoperability test + library: Whatever Tcl9 looks like, loading pkgb.so in Tcl 9 should + either result in an error-message, either succeed, but never crash. * generic/tclStubLib.c: Eliminate unnessarcy static HasStubSupport() and isDigit() functions, just do the same inline. @@ -27,12 +36,6 @@ * generic/tcl.h: Fix Tcl_DecrRefCount macro such that it doesn't access its objPtr parameter twice any more. -2012-12-07 Jan Nijtmans <nijtmans@users.sf.net> - - * unix/dltest/pkgb.c: Turn pkgb.so into a Tcl9 interoperability test - library: Whatever Tcl9 looks like, loading pkgb.so in Tcl 9 should - either result in an error-message, either succeed, but never crash. - 2012-11-14 Donal K. Fellows <dkf@users.sf.net> * unix/tclUnixPipe.c (DefaultTempDir): [Bug 2933003]: Allow overriding @@ -41,231 +44,45 @@ the directory name (defaults to "/tmp" as that is the most common default). -2012-11-13 Joe Mistachkin <joe@mistachkin.com> - - * win/tclWinInit.c: also search for the library directory (init.tcl, - encodings, etc) relative to the build directory associated with the - source checkout. - -2012-11-09 Don Porter <dgp@users.sourceforge.net> - - *** 8.5.13 TAGGED FOR RELEASE *** - - * generic/tcl.h: Bump to 8.5.13 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: - -2012-11-07 Kevin B. Kenny <kennykb@acm.org> - - * library/tzdata/Africa/Casablanca: - * library/tzdata/America/Araguaina: - * library/tzdata/America/Bahia: - * library/tzdata/America/Havana: - * library/tzdata/Asia/Amman: - * library/tzdata/Asia/Gaza: - * library/tzdata/Asia/Hebron: - * library/tzdata/Asia/Jerusalem: - * library/tzdata/Pacific/Apia: - * library/tzdata/Pacific/Fakaofo: - * library/tzdata/Pacific/Fiji: Import tzdata2012i. - 2012-11-07 Don Porter <dgp@users.sourceforge.net> * win/tclWinSock.c: [Bug 3574493] Avoid hanging on exit due to use of synchronization calls in routines called by DllMain(). -2012-11-06 Donal K. Fellows <dkf@users.sf.net> - - * library/http/http.tcl (http::Finish): [Bug 3581754]: Ensure that - callbacks are done at most once to prevent problems with timeouts on a - keep-alive connection (combined with reentrant http package use) - causing excessive stack growth. Not a fix for the underlying problem, - but ensures that pain will be mostly kept away from users. - Bump http package to 2.7.10. - -2012-10-23 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclInt.h: Remove unused TclpLoadFile function. - * generic/tclIOUtil.c - -2012-10-14 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclDictObj.c: [Bug 3576509]: tcl::Bgerror crashes with invalid - * generic/tclEvent.c: arguments. Better fix, which helps for all - Tcl_DictObjGet() calls in Tcl's source code. - -2012-10-13 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclEvent.c: [Bug 3576509]: tcl::Bgerror crashes with invalid - arguments - 2012-10-03 Don Porter <dgp@users.sourceforge.net> * generic/tclIO.c: When checking for std channels being closed, compare the channel state, not the channel itself so that stacked channels do not cause trouble. -2012-09-07 Harald Oehlmann <oehhar@users.sf.net> - - IMPLEMENTATION OF TIP#404. - - * library/msgcat/msgcat.tcl: [FRQ 3544988]: (Backport from Tcl 8.6) - * library/msgcat/pkgIndex.tcl: New commands [mcflset] and [mcflmset] - * unix/Makefile.in: to set mc entries with implicit message - * win/Makefile.in: file locale. Bump to 1.5.0. - * tests/msgcat.test: - -2012-09-07 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - - * unix/tclUnixNotfy.c Backport of 2008-12-12 8.6 commit: Fix - missing CLOEXEC on internal pipes [2417695] - -2012-08-25 Donal K. Fellows <dkf@users.sf.net> - - * library/msgs/uk.msg: [Bug 3561330]: Use the correct full name of - March in Ukrainian. Thanks to Mikhail Teterin for reporting. - -2012-08-23 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclBinary.c: [Bug 3496014]: (Backport from Tcl 8.6) Protect - Tcl_SetByteArrayObj for invalid values. - -2012-08-20 Don Porter <dgp@users.sourceforge.net> - - * generic/tclPathObj.c: [Bug 3559678]: Fix bad filename normalization - when the last component is the empty string. - -2012-08-20 Jan Nijtmans <nijtmans@users.sf.net> - - * win/tclWinPort.h: Remove wrapper macro for ntohs(): unnecessary, - because it doesn't require an initialized winsock_2 library. See: - <http://msdn.microsoft.com/en-us/library/windows/desktop/ms740075%28v=vs.85%29.aspx> - * win/tclWinSock.c - * generic/tclStubInit.c - 2012-08-17 Jan Nijtmans <nijtmans@users.sf.net> * win/nmakehlp.c: Add "-V<num>" option, in order to be able to detect partial version numbers. -2012-08-15 Jan Nijtmans <nijtmans@users.sf.net> - - * win/buildall.vc.bat: Only build the threaded builds by default - * win/rules.vc: Backport some improvements from Tcl 8.6 - * win/makefile.vc: - -2010-08-13 Stuart Cassoff <stwo@users.sourceforge.net> - - * unix/tclUnixCompat.c: [Bug 3555454]: Rearrange a bit to quash - 'declared but never defined' compiler warnings. - -2012-08-08 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclfileName.c: [Bug #1536227]: Cygwin network pathname - * tests/fileName.test: support - -2012-08-07 Don Porter <dgp@users.sourceforge.net> - - * generic/tclIOUtil.c: [Bug 3554250]: Overlooked one field of cleanup - in the thread exit handler for the filesystem subsystem. - 2012-07-31 Jan Nijtmans <nijtmans@users.sf.net> * win/nmakehlp.c: Backport from Tcl 8.6, but add -Q option from sampleextension. -2012-07-28 Jan Nijtmans <nijtmans@users.sf.net> - - * tests/clock.test: [Bug 3549770]: Multiple test failures running - * tests/registry.test: tcltest outside build tree - * tests/winDde.test: - 2012-07-27 Jan Nijtmans <nijtmans@users.sf.net> * generic/tclUniData.c: Support Unicode 6.2 (Add Turkish lira sign) * generic/regc_locale.c: -2012-07-24 Don Porter <dgp@users.sourceforge.net> - - *** 8.5.12 TAGGED FOR RELEASE *** - - * generic/tcl.h: Bump to 8.5.12 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.12 release. - -2012-07-19 Joe Mistachkin <joe@mistachkin.com> - - * generic/tclTest.c: Fix several more missing mutex-locks in - TestasyncCmd. - -2012-07-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - - * generic/tclTest.c: [Bug 3544685]: Missing mutex-lock in - TestasyncCmd since 2011-08-19. Unbounded gratitude to Stuart - Cassoff for spotting it. - 2012-07-17 Jan Nijtmans <nijtmans@users.sf.net> * win/makefile.vc: [Bug 3544932]: Visual studio compiler check fails -2012-07-16 Donal K. Fellows <dkf@users.sf.net> - - * unix/tclUnixCompat.c (TclpGetPwNam, TclpGetPwUid, TclpGetGrNam) - (TclpGetGrGid): [Bug 3544683]: Use the elaborate memory management - scheme outlined on http://www.opengroup.org/austin/docs/austin_328.txt - to handle Tcl's use of standard reentrant versions of the passwd/group - access functions so that everything can work on all BSDs. Problem - identified by Stuart Cassoff. - -2012-07-11 Jan Nijtmans <nijtmans@users.sf.net> - - * win/tclWinReg.c: [Bug #3362446]: registry keys command fails - with 8.5/8.6. Follow Microsofts example better in order to prevent - problems when using HKEY_PERFORMANCE_DATA. - -2012-07-10 Jan Nijtmans <nijtmans@users.sf.net> - - * unix/tclUnixNotfy.c: [Bug 3541646]: Don't panic on triggerPipe - overrun. - -2012-07-10 Donal K. Fellows <dkf@users.sf.net> - - * win/tclWinSock.c (InitializeHostName): Corrected logic that - extracted the name of the computer from the gethostname call so that - it would use the name on success, not failure. Also ensured that the - buffer size is exactly that recommended by Microsoft. - 2012-07-05 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixPipe.c: [Bug 1189293]: Make "<<" binary safe. + * unix/tclUnixPipe.c: [Bug 1189293] Make "<<" binary safe. * win/tclWinPipe.c: 2012-06-29 Jan Nijtmans <nijtmans@users.sf.net> - * library/msgcat/msgcat.tcl: Add tn, ro_MO and ru_MO to msgcat. - -2012-06-29 Harald Oehlmann <harald.oehlmann@elmicron.de> - - * library/msgcat/msgcat.tcl: [Bug 3536888]: Locale guessing of - * library/msgcat/pkgIndex.tcl: msgcat fails on (some) Windows 7. Bump - * unix/Makefile.in: to 1.4.5 - * win/Makefile.in: + * library/msgcat/msgcat.tcl: Add tn, ro_MO and ru_MO to msgcat. Make it + * library/msgcat/pkgIndex.tcl: work on cygwin. Bump to 1.3.5 2012-06-29 Donal K. Fellows <dkf@users.sf.net> @@ -275,41 +92,14 @@ this rule correctly. This does not represent a functionality change, merely a clearer documentation of a long-standing constraint. -2012-06-25 Don Porter <dgp@users.sourceforge.net> - - * generic/tclFileSystem.h: [Bug 3024359]: Make sure that the - * generic/tclIOUtil.c: per-thread cache of the list of file systems - * generic/tclPathObj.c: currently registered is only updated at times - when no active loops are traversing it. Also reduce the amount of - epoch storing and checking to where it can make a difference. - -2012-06-25 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclCmdAH.c (EncodingDirsObjCmd): [Bug 3537605]: Do the right - thing when reporting errors with the number of arguments. - -2012-06-25 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclfileName.c: [Patch #1536227]: Cygwin network pathname - * tests/fileName.test: support - 2012-06-23 Jan Nijtmans <nijtmans@users.sf.net> * unix/tclUnixNotfy.c: [Bug 3508771]: Cygwin notifier for handling win32 events. -2012-06-21 Jan Nijtmans <nijtmans@users.sf.net> +2012-06-19 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinReg.c: [Bug #3362446]: registry keys command fails - * tests/registry.test: with 8.5/8.6 - * library/reg/pkgIndex.tcl: registry version to 1.2.2 - -2012-06-11 Don Porter <dgp@users.sourceforge.net> - - * generic/tclBasic.c: [Bug 3532959]: Make sure the lifetime - * generic/tclProc.c: management of entries in the linePBodyPtr - * tests/proc.test: hash table can tolerate either order of - teardown, interp first, or Proc first. + * win/tclWinReg.c: Plug memory leak, part of [Bug #3362446] 2012-06-08 Don Porter <dgp@users.sourceforge.net> @@ -317,36 +107,16 @@ * unix/tclUnixPort.h: Thanks Joe English. * unix/configure: autoconf 2.13 - * unix/tclUnixPort.h: [Bug 3530533]: Centralize #include <pthread.h> - * unix/tclUnixThrd.c: in the tclUnixPort.h header so that old unix - systems that need inclusion in all compilation units are supported. - 2012-06-06 Jan Nijtmans <nijtmans@users.sf.net> * unix/tclUnixInit.c: On Cygwin, use win32 API in stead of uname() to determine the tcl_platform variables. -2012-05-31 Donal K. Fellows <dkf@users.sf.net> - - * doc/safe.n: [Bug 1997845]: Corrected formatting so that generated - * tools/tcltk-man2html.tcl (cross-reference): HTML can link properly. - -2012-05-29 Donal K. Fellows <dkf@users.sf.net> - - * doc/expr.n, doc/mathop.n: [Bug 2931407]: Clarified semantics of - division and remainder operators. - -2012-05-25 Donal K. Fellows <dkf@users.sf.net> - - * doc/namespace.n, doc/Ensemble.3: [Bug 3528418]: Document what is - going on with respect to qualification of command prefixes in ensemble - subcommand maps. - 2012-05-25 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinDde.c: [Bug 473946]: special characters not correctly - * win/Makefile.in: sent, now for XTYP_EXECUTE as well as - XTYP_REQUEST. Fix "make genstubs" when cross-compiling on UNIX + * win/tclWinDde.c: [Bug 473946]: special characters not correctly sent, + now for XTYP_EXECUTE as well as XTYP_REQUEST. + * win/Makefile.in: Fix "make genstubs" when cross-compiling on UNIX 2012-05-24 Jan Nijtmans <nijtmans@users.sf.net> @@ -361,7 +131,7 @@ * tools/genStubs.tcl: Let cygwin share stub table with win32 * win/Makefile.in: Don't hardcode dde and reg dll version numbers * win/tclWinSock.c: implement TclpInetNtoa for win32 - * generic/tclInt.decls: Revert most of [fcc5957e59], since when + * generic/tclInt.decls: Revert most of [ae92de6078], since when we let cygwin share the win32 stub table this is no longer necessary * generic/tcl*Decls.h: re-generated @@ -375,82 +145,47 @@ 2012-05-17 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): [Bug 3106532]: Corrected - resulting indexes from -indexvar option to be usable with [string - range]; this was always the intention (and is consistent with [regexp - -indices] too). - ***POTENTIAL INCOMPATIBILITY*** - Uses of [switch -regexp -indexvar] that previously compensated for the - wrong offsets (by subtracting 1 from the end indices) now do not need - to do so as the value is correct. - - * library/safe.tcl (safe::InterpInit): Ensure that the module path is - constructed in the correct order. - (safe::AliasGlob): [Bug 2964715]: More extensive handling of what - globbing is required to support package loading. - * doc/expr.n: [Bug 3525462]: Corrected statement about what happens when comparing "0y" and "0x12"; the previously documented behavior was actually a subtle bug (now long-corrected). 2012-05-13 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinDde.c: Protect against receiving strings without - ending \0, as external applications (or Tcl with TIP #106) could - generate that. + * win/tclWinDde.c: Protect against receiving strings without ending \0, + as external applications (or Tcl with TIP #106) could generate that. 2012-05-10 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinDde.c: [Bug 473946]: Special characters not - * library/dde/pkgIndex.tcl: correctly sent. Bump to 1.3.3 + * win/tclWinDde.c: [Bug 473946]: special characters not correctly sent + * library/dde/pkgIndex.tcl Increase version to 1.2.5 2012-05-02 Jan Nijtmans <nijtmans@users.sf.net> - * generic/configure.in: Better detection and implementation for - * generic/configure: cpuid instruction on Intel-derived - * generic/tclUnixCompat.c: processors, both 32-bit and 64-bit. - * generic/tclTest.c: Move cpuid testcase from win-specific - * win/tclWinTest.c: to generic tests, as it should work on - * tests/platform.test: all Intel-related platforms now - -2012-04-27 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclPort.h: Move CYGWIN-specific stuff from tclPort.h to - * generic/tclEnv.c: tclUnixPort.h, where it belongs. - * unix/tclUnixPort.h: - * unix/tclUnixFile.c: + * generic/configure.in: Better detection and implementation for cpuid + * generic/configure: instruction on Intel-derived processors, both + * generic/tclUnixCompat.c: 32-bit and 64-bit. + * generic/tclTest.c: Move cpuid testcase from win-specific to generic + * win/tclWinTest.c: tests, as it should work on all Intel-related + * tests/platform.test: platforms now + * generic/tcl.decls: Simplify stub tables for functions which work on + * generic/tclInt.decls: both UNIX and windows, as in Tcl 8.5 and 8.6 + * generic/tcl*Decls.h: 2012-04-27 Donal K. Fellows <dkf@users.sf.net> * library/init.tcl (auto_execok): Allow shell builtins to be detected even if they are upper-cased. -2012-04-26 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclStubInit.c: get rid of _ANSI_ARGS_ - * generic/tclIntPlatDecls.h - * unix/tclUnixPort.h - * unix/tclAppInit.c - * win/tclAppInit.c - 2012-04-24 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclInt.decls: [Bug 3508771]: load tclreg.dll in - * generic/tclIntPlatDecls.h: cygwin tclsh. Implement - * generic/tclStubInit.c: TclWinGetSockOpt, TclWinGetServByName - * generic/tclUnixCompat.c: and TclWinCPUID for Cygwin. + * generic/tclInt.decls: [Bug 3508771] load tclreg.dll in cygwin tclsh + * generic/tclIntPlatDecls.h: Implement TclWinGetSockOpt, TclWinGetServByName + * generic/tclStubInit.c: and TclWinCPUID for Cygwin + * generic/tclUnixCompat.c: * unix/configure.in: * unix/configure: * unix/tclUnixCompat.c: -2012-04-18 Kevin B. Kenny <kennykb@acm.org> - - * library/tzdata/Africa/Casablanca: - * library/tzdata/America/Port-au-Prince: - * library/tzdata/Asia/Damascus: - * library/tzdata/Asia/Gaza: - * library/tzdata/Asia/Hebron: tzdata2012c - 2012-04-16 Donal K. Fellows <dkf@users.sf.net> * doc/FileSystem.3 (Tcl_FSOpenFileChannelProc): [Bug 3518244]: Fixed @@ -460,7 +195,7 @@ 2012-04-11 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinInit.c: [Bug 3448512]: [clock scan 1958-01-01] fails + * win/tclWinInit.c: [Bug 3448512]: clock scan "1958-01-01" fails only * win/tcl.m4: in debug compilation. * win/configure: * unix/tcl.m4: Use NDEBUG consistantly meaning: no debugging. @@ -468,131 +203,92 @@ 2012-04-04 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinSock.c: [Bug 510001]: TclSockMinimumBuffers needs - * generic/tclIOSock.c: platform implementation. + * win/tclWinSock.c: [Bug 510001]: TclSockMinimumBuffers needs plat imp + * generic/tclIOSock.c: * generic/tclInt.decls: * generic/tclIntDecls.h: - * generic/tclStubInit.c: + * generic/ttclStubInit.c: 2012-04-03 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclStubInit.c: Remove the TclpGetTZName implementation - * generic/tclIntDecls.h: for Cygwin (from previous commit) , - * generic/tclIntPlatDecls.h: re-generated - * generic/tcl.decls: cleanup unnecessary "generic" argument + * tools/genStubs.tcl: Let genStubs.tcl do the void -> VOID and + const -> CONST translations, so we cannot forget it in the *.decls file + * generic/tcl.decls: VOID -> void and CONST -> const, so depend + * generic/tclInt.decls: on genStubs.tcl to generate the correct form + form in the *Decls.h file. This brings tclInt.decls in the same form as + Tcl 8.5/8.6, so a diff can show us the real signature differences. + (Backported from Tcl 8.5, no change in any function signature) + * generic/tclStubInit.c Remove the TclpGetTZName implementation for + * generic/tclIntDecls.h: Cygwin (from previous commit) , re-generated + * generic/tclIntPlatDecls.h: + * generic/tclDecls.h 2012-03-30 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclInt.decls: [Bug 3508771]: load tclreg.dll in - * generic/tclIntPlatDecls.h: cygwin tclsh. Implement - * generic/tclStubInit.c: TclWinGetTclInstance, TclpGetTZName, - and various more win32-specific internal functions for Cygwin, so - win32 extensions using those can be loaded in the cygwin version of - tclsh. + * generic/tclInt.decls: [Bug 3508771] load tclreg.dll in cygwin tclsh + * generic/tclIntPlatDecls.h: Implement TclWinGetTclInstance, TclpGetTZName, + * generic/tclStubInit.c: and various more win32-specific internal functions for + Cygwin, so win32 extensions using those can be loaded in the cygwin version of tclsh. -2012-03-30 Jan Nijtmans <nijtmans@users.sf.net> +2012-03-29 Jan Nijtmans <nijtmans@users.sf.net> - * unix/tcl.m4: [Bug 3511806]: Compiler checks too early + * unix/tcl.m4: [Bug 3511806] Compiler checks too early * unix/configure.in: This change allows to build the cygwin - * unix/tclUnixPort.h: and mingw32 ports of Tcl/Tk to build + * unix/configure: and mingw32 ports of Tcl/Tk to build * win/tcl.m4: out-of-the-box using a native or cross- * win/configure.in: compiler. - * win/tclWinPort.h: (autoconf still to be run!) + * win/configure: 2012-03-27 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tcl.h: [Bug 3508771]: Wrong Tcl_StatBuf used on MinGW - * generic/tclFCmd.c: [Bug 2015723]: duplicate inodes from file stat - on windows (but now for cygwin as well) + * generic/tcl.h: [Bug 3508771] Wrong Tcl_StatBuf used on MinGW + * generic/tclFCmd.c: [Bug 2015723] duplicate inodes from file stat on windows -2012-03-25 Jan Nijtmans <nijtmans@users.sf.net> +2012-03-24 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclInt.decls: [Bug 3508771]: load tclreg.dll in - * generic/tclIntPlatDecls.h: cygwin tclsh. Implement - * generic/tclStubInit.c: TclWinConvertError, - * unix/Makefile.in: TclWinConvertWSAError, and various - * unix/tcl.m4: more win32-specific internal functions - * unix/configure: for Cygwin, so win32 extensions using - * win/tclWinError.c: those can be loaded in the cygwin - version of tclsh. - -2012-03-23 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclInt.decls: Revert some cygwin-related signature - * generic/tclIntPlatDecls.h: changes from [835f8e1e9d] (2010-02-01). - * win/tclWinError.c: They were an attempt to make the cygwin - port compile again, but since cygwin is based on unix this serves no - purpose any more. - - * unix/Makefile.in: Add tclWinError.c to the CYGWIN build. - * unix/tcl.m4: + * generic/tclInt.decls: [Bug 3508771] load tclreg.dll in cygwin tclsh + * generic/tclIntPlatDecls.h: Implement TclWinConvertError, TclWinConvertWSAError, + * generic/tclStubInit.c: and various more win32-specific internal functions for + * unix/Makefile.in: Cygwin, so win32 extensions using those can be + * unix/tcl.m4: loaded in the cygwin version of tclsh. * unix/configure: + * win/tclWinError.c: 2012-03-20 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tcl.decls: [Bug 3508771]: load tclreg.dll in - * generic/tclInt.decls: cygwin tclsh. Implement - * generic/tclIntPlatDecls.h: TclWinGetPlatformId,Tcl_WinUtfToTChar, - * generic/tclPlatDecls.h: Tcl_WinTCharToUtf (and a dummy - * generic/tclStubInit.c: TclWinCPUID) for Cygwin, so win32 - * unix/tclUnixCompat.c: extensions using those can be loaded - in the cygwin version of tclsh. - -2012-03-19 Venkat Iyer <venkat@comit.com> - - * library/tzdata/America/Atikokan: Update to tzdata2012b. - * library/tzdata/America/Blanc-Sablon - * library/tzdata/America/Dawson_Creek - * library/tzdata/America/Edmonton - * library/tzdata/America/Glace_Bay - * library/tzdata/America/Goose_Bay - * library/tzdata/America/Halifax - * library/tzdata/America/Havana - * library/tzdata/America/Moncton - * library/tzdata/America/Montreal - * library/tzdata/America/Nipigon - * library/tzdata/America/Rainy_River - * library/tzdata/America/Regina - * library/tzdata/America/Santiago - * library/tzdata/America/St_Johns - * library/tzdata/America/Swift_Current - * library/tzdata/America/Toronto - * library/tzdata/America/Vancouver - * library/tzdata/America/Winnipeg - * library/tzdata/Antarctica/Casey - * library/tzdata/Antarctica/Davis - * library/tzdata/Antarctica/Palmer - * library/tzdata/Asia/Yerevan - * library/tzdata/Atlantic/Stanley - * library/tzdata/Pacific/Easter - * library/tzdata/Pacific/Fakaofo - * library/tzdata/America/Creston: (new) - -2012-03-15 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tcl.h: [Bug 3288345]: Wrong Tcl_StatBuf used on Cygwin + * generic/tcl.h: [Bug 3288345] Wrong Tcl_StatBuf used on Cygwin * unix/tclUnixFile.c * unix/tclUnixPort.h - * win/cat.c: Remove cygwin stuff no longer needed - * win/tclWinFile.c + * win/tclWinFile.c Remove cygwin stuff no longer needed * win/tclWinPort.h + * generic/tcl.decls: [Bug 3508771] load tclreg.dll in cygwin tclsh + * generic/tclInt.decls: Implement TclWinGetPlatformId, Tcl_WinUtfToTChar, + * generic/tclIntPlatDecls.h: Tcl_WinTCharToUtf (and a dummy TclWinCPUID) for + * generic/tclPlatDecls.h: Cygwin, so win32 extensions using those can be + * generic/tclStubInit.c: loaded in the cygwin version of tclsh. + * unix/tclUnixCompat.c: + 2012-03-12 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinFile.c: [Bug 3388350]: mingw64 compiler warnings + * win/tclWinFile.c: [Bug 3388350] mingw64 compiler warnings 2012-03-07 Andreas Kupries <andreask@activestate.com> * library/http/http.tcl: [Bug 3498327]: Generate upper-case * library/http/pkgIndex.tcl: hexadecimal output for compliance - * tests/http.test: with RFC 3986. Bumped version to 2.7.9. - * unix/Makefile.in: - * win/Makefile.in: + * tests/http.test: with RFC 3986. Bumped version to 2.5.7. 2012-03-06 Jan Nijtmans <nijtmans@users.sf.net> * win/tclWinPort.h: Compatibility with older Visual Studio versions. +2012-03-04 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * unix/tclUnixChan.c: TclUnixWaitForFile(): use FD_* macros + * macosx/tclMacOSXNotify.c: to manipulate select masks (Cassoff). + [Bug 3486554]. Backport of das' checkin [e496f9ef50]. Allows + Tcl8.4 to have sane fileevents on x86_64 at last. + 2012-03-04 Jan Nijtmans <nijtmans@users.sf.net> * generic/tclLoad.c: Patch from the cygwin folks @@ -601,46 +297,24 @@ 2012-02-29 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclIOUtil.c: [Bug 3466099]: BOM in Unicode + * generic/tclIOUtil.c: [Bug 3466099] BOM in Unicode * generic/tclEncoding.c: * tests/source.test -2012-02-23 Donal K. Fellows <dkf@users.sf.net> - - * tests/reg.test (14.21-23): Add tests relating to bug 1115587. Actual - bug is characterised by test marked with 'knownBug'. - -2012-02-17 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tclIOUtil.c: [Bug 2233954]: AIX: compile error - * unix/tclUnixPort.h: - -2012-02-15 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclCompCmds.c (TclCompileDictForCmd): [Bug 3487626]: Fix - crash in compilation of [dict for] when its implementation command is - used directly rather than through the ensemble. - 2012-02-09 Don Porter <dgp@users.sourceforge.net> - * generic/tclStringObj.c: [Bug 3484402]: Correct Off-By-One + * generic/tclStringObj.c: [Bug 3484402] Correct Off-By-One error appending unicode. Thanks to Poor Yorick. Also corrected test for when growth is needed. 2012-02-06 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompCmds.c: [Bug 3485022]: TclCompileEnsemble() avoid - * tests/trace.test: compile when exec traces set. - -2012-02-06 Miguel Sofer <msofer@users.sf.net> - - * generic/tclTrace.c: Fix for [Bug 3484621]: insure that - * tests/trace.test: execution traces on bytecoded commands bump - the interp's compile epoch. + * generic/tclCmdMZ.c: [Bug 3484621] Invalidate bytecode when exec + * tests/trace.test: traces are added/removed from compiled cmd. 2012-02-02 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclUniData.c: [FRQ 3464401]: Support Unicode 6.1 + * generic/tclUniData.c: [Frq 3464401] Support Unicode 6.1 * generic/regc_locale.c: 2012-02-02 Don Porter <dgp@users.sourceforge.net> @@ -650,17 +324,8 @@ queries file permissions on Windows native filesystems. Meant to fix numerous bugs where [file writable|readable|executable] "lies" about what operations are possible, especially when the file resides - on a Samba share. Patch merged from the fix-win-native-access branch. - -2012-02-01 Donal K. Fellows <dkf@users.sf.net> - - * doc/AddErrInfo.3: [Bug 3482614]: Documentation nit. - -2012-01-26 Don Porter <dgp@users.sourceforge.net> - - * generic/tclPathObj.c: [Bug 3475569]: Add checks for unshared values - before calls demanding them. [Bug 3479689]: Stop memory corruption - when shimmering 0-refCount value to "path" type. + on a Samba share. Patch cherrypicked off the fix-win-native-access + branch. 2012-01-22 Jan Nijtmans <nijtmans@users.sf.net> @@ -670,38 +335,24 @@ * generic/tclUtf.c: Done in all branches in order to simplify * generic/regc_locale.c: merges for new Unicode versions (such as 6.1) -2012-01-22 Donal K. Fellows <dkf@users.sf.net> - - * generic/tclDictObj.c (DictExistsCmd): [Bug 3475264]: Ensure that - errors only ever happen when insufficient arguments are supplied, and - not when a path doesn't exist or a dictionary is poorly formatted (the - two cases can't be easily distinguished). +2012-01-19 Jan Nijtmans <nijtmans@users.sf.net> -2012-01-21 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/tcl.h: [Bug 3474726]: Eliminate detection of struct + * generic/tcl.h: [Bug-3474726]: Eliminate detection of struct * generic/tclWinPort.h: _stat32i64, just use _stati64 in combination * generic/tclFCmd.c: with _USE_32BIT_TIME_T, which is the same then. * generic/tclTest.c: Only keep _stat32i64 usage for cygwin, so it * win/configure.in: will not conflict with cygwin's own struct stat. * win/configure: -2012-01-21 Don Porter <dgp@users.sourceforge.net> +2012-01-19 Don Porter <dgp@users.sourceforge.net> - * generic/tclCmdMZ.c: [Bug 3475667]: Prevent buffer read overflow. + * generic/tclCmdMZ.c: [Bug 3475667] Prevent buffer read overflow. Thanks to "sebres" for the report and fix. -2012-01-17 Donal K. Fellows <dkf@users.sf.net> - - * doc/dict.n (dict with): [Bug 3474512]: Explain better what is going - on when a dictionary key and the dictionary variable collide. - 2012-01-17 Don Porter <dgp@users.sourceforge.net> - * library/http/http.tcl: Bump to version 2.7.8 + * library/http/http.tcl: Bump to 2.5.6. * library/http/pkgIndex.tcl: - * unix/Makefile.in: - * win/Makefile.in: 2012-01-13 Donal K. Fellows <dkf@users.sf.net> @@ -710,47 +361,25 @@ 2012-01-09 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclUtf.c: [Bug 3464428]: string is graph \u0120 is wrong + * generic/tclUtf.c: [Bug 3464428] string is graph \u0120 is wrong + * generic/regcomp.c: Remove some unused code * generic/regc_locale.c: Add table for Unicode [:cntrl:] class * tools/uniClass.tcl: Generate Unicode [:cntrl:] class table * tests/utf.test: - -2012-01-08 Kevin B. Kenny <kennykb@acm.org> - - * library/clock.tcl (ReadZoneinfoFile): Corrected a bug where loading - * tests/clock.test (clock-56.4): zoneinfo would fail if one - timezone abbreviation was a proper tail of another, and zic used the - same bytes of the file to represent both of them. Added a test case - for the bug, using the same data that caused the observed failure - "in the wild." [Bug 3470928] - -2011-12-30 Venkat Iyer <venkat@comit.com> - - * library/tzdata/America/Bahia : Update to Olson's tzdata2011n - * library/tzdata/America/Havana - * library/tzdata/Europe/Kiev - * library/tzdata/Europe/Simferopol - * library/tzdata/Europe/Uzhgorod - * library/tzdata/Europe/Zaporozhye - * library/tzdata/Pacific/Fiji + * doc/re_syntax: Fix [:print:] class description 2011-12-23 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclUtf.c: [Bug 3464428]: string is graph \u0120 is wrong + * generic/tclUtf.c: [Bug 3464428] string is graph \u0120 is wrong * generic/tclUniData.c: * generic/regc_locale.c: * tests/utf.test: * tools/uniParse.tcl: clean up some unused stuff, and be more robust against changes in UnicodeData.txt syntax -2011-12-11 Jan Nijtmans <nijtmans@users.sf.net> - - * generic/regc_locale.c: [Bug 3457031]: Some Unicode 6.0 chars not - * tests/utf.test: in [:print:] class - 2011-12-07 Jan Nijtmans <nijtmans@users.sf.net> - * tools/uniParse.tcl: [Bug 3444754]: string tolower \u01c5 is wrong + * tools/uniParse.tcl: [Bug 3444754] string tolower \u01c5 is wrong * generic/tclUniData.c: * tests/utf.test: @@ -758,253 +387,135 @@ * library/tcltest/tcltest.tcl: [Bug 967195]: Make tcltest work when tclsh is compiled without using the setargv() function on mingw. + (no need to incr the version, since 2.2.10 is never released) 2011-11-29 Jan Nijtmans <nijtmans@users.sf.net> * doc/tclsh.1: Use the same shebang comment everywhere. * tools/str2c * tools/tcltk-man2html.tcl - * win/Makefile.in: don't install tommath_(super)?class.h - * unix/Makefile.in: don't install directories like 8.2 and 8.3 2011-11-22 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinPort.h: [Bug 3354324]: Windows: file mtime - * win/tclWinFile.c: sets wrong time (VS2005+ only) - * generic/tclTest.c: - -2011-11-04 Don Porter <dgp@users.sourceforge.net> - - *** 8.5.11 TAGGED FOR RELEASE *** - - * generic/tcl.h: Bump to 8.5.11 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.11 release. - -2011-10-20 Don Porter <dgp@users.sourceforge.net> - - * library/http/http.tcl: Bump to version 2.7.7 - * library/http/pkgIndex.tcl: - * unix/Makefile.in: - * win/Makefile.in: - - * changes: Updates for 8.5.11 release. - -2011-10-18 Reinhard Max <max@suse.de> - - * library/clock.tcl (::tcl::clock::GetSystemTimeZone): Cache the - time zone only if it was detected by one of the expensive - methods. Otherwise after unsetting TCL_TZ or TZ the previous value - will still be used. - -2011-10-15 Venkat Iyer <venkat@comit.com> - * library/tzdata/America/Sitka : Update to Olson's tzdata2011l - * library/tzdata/Pacific/Fiji - * library/tzdata/Asia/Hebron (New) + * generic/tclCmdAH.c: [Bug 3354324] Windows: file mtime + * generic/tclIOUtil.c: sets wrong time 2011-10-11 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinFile.c: [Bug 2935503]: Incorrect mode field + * win/tclWinFile.c: [Bug 2935503] Incorrect mode field returned by file stat command 2011-10-07 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclIORChan.c: Fix gcc warning (discovered with latest - mingw, based on gcc 4.6.1) - * tests/env.test: Fix env.test running under wine 1.3 (partly - backported from Tcl 8.6) - -2011-10-03 Venkat Iyer <venkat@comit.com> - - * library/tzdata/Africa/Dar_es_Salaam: Update to Olson's tzdata2011k - * library/tzdata/Africa/Kampala - * library/tzdata/Africa/Nairobi - * library/tzdata/Asia/Gaza - * library/tzdata/Europe/Kaliningrad - * library/tzdata/Europe/Kiev - * library/tzdata/Europe/Minsk - * library/tzdata/Europe/Simferopol - * library/tzdata/Europe/Uzhgorod - * library/tzdata/Europe/Zaporozhye - * library/tzdata/Pacific/Apia + * win/tclWinChan.c: Fix various gcc warnings + * win/tclWinConsole.c: (discovered with latest + * win/tclWinNotify.c: mingw, based on gcc 4.6.1) + * win/tclWinReg.c: + * tests/env.test: Fix env.test, when running + under wine 1.3 (partly backported from Tcl 8.6) -2011-09-16 Donal K. Fellows <dkf@users.sf.net> +2011-09-26 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclProc.c (ProcWrongNumArgs): [Bugs 3400658,3408830]: - Corrected the handling of procedure error messages (found by TclOO). + * win/rules.vc: Support Visual Studio 11 2011-09-16 Jan Nijtmans <nijtmans@users.sf.net> * generic/tcl.h: Don't change Tcl_UniChar type when * generic/regcustom.h: TCL_UTF_MAX == 4 (not supported anyway) -2011-09-16 Donal K. Fellows <dkf@users.sf.net> - - * library/http/http.tcl (http::geturl): [Bug 3391977]: Ensure that the - -headers option overrides the -type option (important because -type - has a default that is not always appropriate, and the header must not - be duplicated). - 2011-09-13 Don Porter <dgp@users.sourceforge.net> - * generic/tclUtil.c: [Bug 3390638]: Workaround broken solaris + * generic/tclUtil.c: [Bug 3390638] Workaround broken solaris studio cc optimizer. Thanks to Wolfgang S. Kechel. - * generic/tclDTrace.d: [Bug 3405652]: Portability workaround for + * generic/tclDTrace.d: [Bug 3405652] Portability workaround for broken system DTrace support. Thanks to Dagobert Michelson. 2011-09-12 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinPort.h: [Bug 3407070]: tclPosixStr.c won't build with + * win/tclWinPort.h: [Bug 3407070] tclPosixStr.c won't build with EOVERFLOW==E2BIG -2011-09-07 Don Porter <dgp@users.sourceforge.net> - - * generic/tclCompExpr.c: [Bug 3401704]: Allow function names like - * tests/parseExpr.test: influence(), nanobot(), and 99bottles() - that have been parsed as missing operator syntax errors before - with the form NUMBER + FUNCTION. - ***POTENTIAL INCOMPATIBILITY*** +2011-09-06 Jan Nijtmans <nijtmans@users.sf.net> -2011-09-06 Venkat Iyer <venkat@comit.com> - - * library/tzdata/America/Goose_Bay: Update to Olson's tzdata2011i - * library/tzdata/America/Metlakatla: - * library/tzdata/America/Resolute: - * library/tzdata/America/St_Johns: - * library/tzdata/Europe/Kaliningrad: - * library/tzdata/Pacific/Apia: - * library/tzdata/Pacific/Honolulu: - * library/tzdata/Africa/Juba: (new) - -2011-09-01 Don Porter <dgp@users.sourceforge.net> - - * generic/tclStrToD.c: [Bug 3402540]: Corrections to TclParseNumber() - * tests/binary.test: to make it reject invalid Nan(Hex) strings. - - * tests/scan.test: [scan Inf %g] is portable; remove constraint. + * generic/tcl.decls: Tcl_HashStats does not return a CONST + * generic/tclDecls.h: (Backported from Tcl 8.5) + * generic/tclHash.c: + * generic/tclVar.c: + * unix/tcl.m4: Add --disable-rpath option to configure + * unix/configure: script (backported from Tcl 8.5) -2011-08-30 Donal K. Fellows <dkf@users.sf.net> +2011-08-30 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclInterp.c (SlaveCommandLimitCmd, SlaveTimeLimitCmd): - [Bug 3398794]: Ensure that low-level conditions in the limit API are - enforced at the script level through errors, not a Tcl_Panic. This - means that interpreters cannot read their own limits (writing already - did not work). + * unix/tcl.m4: Make SHLIB_LD_LIBS='${LIBS}' the default and + * unix/configure: set to "" on per-platform necessary basis. + Add Haiku support and better NetBSD/FreeBSD support. + All of this backported from TEA resp. Tcl8.5, but kept all + original platform code which was removed from TEA. -2011-08-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net> +2011-08-22 Andreas Kupries <andreask@activestate.com> - * generic/tclTest.c: [Bug 2981154]: async-4.3 segfault. - * tests/async.test: [Bug 1774689]: async-4.3 sometimes fails. + * win/tclWinDde.c (Tcl_DdeObjCmd): Fixed use of the C99 feature + (Variable declaration within statement block) rejected by + MSVC6. Moved the declaration to the beginning of the block. 2011-08-18 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclUniData.c: [Bug 3393714]: Overflow in toupper delta + * generic/tclUniData.c: [Bug 3393714] overflow in toupper delta * tools/uniParse.tcl * tests/utf.test -2011-08-17 Don Porter <dgp@users.sourceforge.net> - - * generic/tclGet.c: [Bug 3393150]: Overlooked free of intreps. - (It matters for bignums!) - 2011-08-16 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCmdAH.c: [Bug 3388350]: mingw64 compiler warnings + * generic/tclCmdAH.c: [Bug 3388350] mingw64 compiler warnings * generic/tclFCmd.c In mingw, sys/stat.h must be included * generic/tclFileName.c before winsock2.h, so make sure of that. * generic/tclIOUtil.c - * generic/tclBasic.c - * generic/tclBinary.c - * generic/tclHash.c * generic/tclTest.c + * win/tclWin32Dll.c * win/tclWinChan.c - * win/tclWinConsole.c * win/tclWinDde.c - * win/tclWinFile.c - * win/tclWinReg.c - * win/tclWinSerial.c - * win/tclWinSock.c - * win/tclWinThrd.c + * win/tclWinFCmd.c 2011-08-15 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c: [Bug 3390272]: Leak of [info script] value. + * generic/tclBasic.c: [Bug 3390272] Leak of [info script] value. 2011-08-15 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinPort.h: [Bug 3388350]: mingw64 compiler warnings - * win/tclWinPipe.c - * win/tclWinSock.c + * win/tcl.m4: [Bug 3388350] mingw64 compiler warnings * win/configure.in * win/configure - * generic/tclPosixStr.c - * generic/tclStrToD.c - -2011-08-12 Don Porter <dgp@users.sourceforge.net> - - * generic/tclPathObj.c: [Bug 3389764]: Eliminate possibility that dup - of a "path" value can create reference cycle. - -2011-08-09 Jan Nijtmans <nijtmans@users.sf.net> - - * win/tclWinConsole.c: [Bug 3388350]: mingw64 compiler warnings + * win/tclMtherr.c + * win/tclWinPort.h + * win/tclWinChan.c * win/tclWinDde.c + * win/tclWinFCmd.c * win/tclWinPipe.c + * win/tclWinReg.c * win/tclWinSerial.c - -2011-08-05 Kevin B. Kenny <kennykb@acm.org> - - * generic/tclStrToD.c: [Bug 3386975]: Plugged a memory leak in - double->string conversion. - -2011-07-28 Don Porter <dgp@users.sourceforge.net> - - * library/tzdata/Asia/Anadyr: Update to Olson's tzdata2011h - * library/tzdata/Asia/Irkutsk: - * library/tzdata/Asia/Kamchatka: - * library/tzdata/Asia/Krasnoyarsk: - * library/tzdata/Asia/Magadan: - * library/tzdata/Asia/Novokuznetsk: - * library/tzdata/Asia/Novosibirsk: - * library/tzdata/Asia/Omsk: - * library/tzdata/Asia/Sakhalin: - * library/tzdata/Asia/Vladivostok: - * library/tzdata/Asia/Yakutsk: - * library/tzdata/Asia/Yekaterinburg: - * library/tzdata/Europe/Kaliningrad: - * library/tzdata/Europe/Moscow: - * library/tzdata/Europe/Samara: - * library/tzdata/Europe/Volgograd: - * library/tzdata/America/Kralendijk: (new) - * library/tzdata/America/Lower_Princes: (new) + * win/tclWinSock.c + * win/tclWinTest.c + * win/tclWinTime.c + * generic/tclPosixStr.c + * unix/tcl.m4: Quoting and AC_DEFINE fixes (All backported from + * unix/configure Tcl 8.5 2011-07-21 Jan Nijtmans <nijtmans@users.sf.net> - * win/tclWinPort.h: [Bug 3372130]: Fix hypot math function with MSVC10 - -2011-07-19 Don Porter <dgp@users.sourceforge.net> - - * generic/tclUtil.c: [Bug 3371644]: Repair failure to properly handle - * tests/util.test: (length == -1) scanning in TclConvertElement(). + * win/tclWinPort.h: [Bug 3372130] Fix hypot math function with MSVC10 2011-07-15 Don Porter <dgp@users.sourceforge.net> * generic/tclCompile.c: Avoid segfaults when RecordByteCodeStats() is called in a deleted interp. -2011-07-08 Donal K. Fellows <dkf@users.sf.net> +2011-07-13 Don Porter <dgp@users.sourceforge.net> - * doc/http.n: [FRQ 3358415]: State what RFC defines HTTP/1.1. + * generic/tclProc.c: [Bug 3366265] Buffer for storing the command + * tests/indexObj.test: name formatted as a list element is allocated + * tests/proc.test: one byte too small, causing buffer overflow + when the proc with the empty name raises a "wrong num args" error. 2011-07-03 Donal K. Fellows <dkf@users.sf.net> @@ -1012,9539 +523,11505 @@ stat'; that was always the time of the last metadata change, not the time of creation. -2011-07-02 Kevin B. Kenny <kennykb@acm.org> +2011-06-22 Andreas Kupries <andreask@activestate.com> - * generic/tclStrToD.c: - * generic/tclTomMath.decls: - * generic/tclTomMathDecls.h: - * macosx/Tcl.xcode/project.pbxproj: - * macosx/Tcl.xcodeproj/project.pbxproj: - * tests/util.test: - * unix/Makefile.in: - * win/Makefile.in: - * win/Makefile.vc: - Fix a bug where bignum->double conversion is "round up" and - not "round to nearest" (causing expr double(1[string repeat 0 23]) - not to be 1e+23). [Bug 3349507] + * library/platform/pkgIndex.tcl: Updated to platform 1.0.10. Added + * library/platform/platform.tcl: handling of the DEB_HOST_MULTIARCH + location change for libc. -2011-06-30 Reinhard Max <max@suse.de> +2011-05-07 Miguel Sofer <msofer@users.sf.net> - * unix/configure.in: Add a volatile declaration to the test for - TCL_STACK_GROWS_UP to prevent gcc 4.6 from producing invalid - results due to aggressive optimisation. + * generic/tclInt.h: fix USE_TCLALLOC so that it can be enabled + * unix/Makefile.in: without editing the Makefile -2011-06-23 Don Porter <dgp@users.sourceforge.net> +2011-04-21 Don Porter <dgp@users.sourceforge.net> - *** 8.5.10 TAGGED FOR RELEASE *** + * generic/tclCompile.c: Make sure SetFooFromAny routines react + * generic/tclIndexObj.c: reasonably when passed a NULL interp. + * generic/tclNamesp.c: + * generic/tclObj.c: - * changes: Update for 8.5.10 release. +2011-04-21 Jan Nijtmans <nijtmans@users.sf.net> -2011-06-22 Andreas Kupries <andreask@activestate.com> + * generic/tcl.h: fix for [Bug 3288345]: Wrong Tcl_StatBuf + * generic/tclInt.h: used on MinGW. Make sure that all _WIN32 + * generic/tclIOUtil.c: compilers use exactly the same layout + * win/tclWinFile.c: for Tcl_StatBuf - the one used by MSVC6 - + * win/configure.in: in all situations. + * win/configure: - * library/platform/pkgIndex.tcl: Updated to platform 1.0.10. Added - * library/platform/platform.tcl: handling of the DEB_HOST_MULTIARCH - * unix/Makefile.in: location change for libc. - * win/Makefile.in: +2011-04-20 Andreas Kupries <andreask@activestate.com> - * generic/tclInt.h: Fixed the inadvertently committed disabling of - stack checks, see my 2010-11-15 commit. + * tests/info.test: Fixed the shift in line numbers used for + testing 'info frame' introduced by checkin [79367df0f0] + (Mar 2, 2011). -2011-06-21 Don Porter <dgp@users.sourceforge.net> +2011-04-13 Miguel Sofer <msofer@users.sf.net> - * changes: Update for 8.5.10 release. + * generic/tclVar.c: fix for [Bug 2662380], crash caused by + appending to a variable with a write trace that unsets it. - * library/tcltest/tcltest.tcl (loadIntoSlaveInterpreter): - * library/tcltest/pkgIndex.tcl: Backport tcltest 2.3.3 for release - * unix/Makefile.in: with Tcl 8.5.*. - * win/Makefile.in: +2011-04-04 Don Porter <dgp@users.sourceforge.net> - * tests/init.test: Update test files to use new command. - * tests/pkg.test: + * 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/tclLink.c: Prevent multiple links to a single Tcl - variable when calling Tcl_LinkVar(). [Bug 3317466] +2011-03-25 Jan Nijtmans <nijtmans@users.sf.net> -2011-06-13 Don Porter <dgp@users.sourceforge.net> + * generic/tclHash.c: [Bug 3007895]: Tcl_(Find|Create)HashEntry + stub entries can never be called. They still cannot be called + (no change in functionality), but at least they now do + exactly the same as the Tcl_(Find|Create)HashEntry macro's, + so the confusion addressed in this Bug report is gone. + Merged --cherrypick from Tcl8.5 (2010-12-31,e75735ef76) - * generic/tclStrToD.c: [Bug 3315098]: Mem leak fix from Gustaf - Neumann. +2011-03-24 Donal K. Fellows <dkf@users.sf.net> -2011-06-02 Don Porter <dgp@users.sourceforge.net> + * generic/tclFCmd.c (TclFileAttrsCmd): Ensure that any reference to + temporary index tables is squelched immediately rather than hanging + around to trip us up in the future. - * generic/tclBasic.c: Removed TclCleanupLiteralTable(), and old - * generic/tclInt.h: band-aid routine put in place while a fix - * generic/tclLiteral.c: for [Bug 994838] took shape. No longer needed. +2011-03-16 Jan Nijtmans <nijtmans@users.sf.net> -2011-06-02 Donal K. Fellows <dkf@users.sf.net> + * unix/configure, unix/tcl.m4: SHLIB_LD_LIBS='${LIBS}' for OSF1-V*. + Add /usr/lib64 to set of auto-search dirs. [Bug 1230554] + (SC_PATH_X): Correct syntax error when xincludes not found. + Backported from Tcl 8.5 + * generic/tclCkalloc.c: [Bug #3197864] pointer truncation on Win64 + TCL_MEM_DEBUG builds - * generic/tclInt.h (TclInvalidateNsCmdLookup): [Bug 3185407]: Extend - the set of epochs that are potentially bumped when a command is - created, for a slight performance drop (in some circumstances) and - improved semantics. +2010-03-11 Jan Nijtmans <nijtmans@users.sf.net> -2011-06-01 Jan Nijtmans <nijtmans@users.sf.net> + * win/tclWin32Dll.c: #ifdef protections to permit builds with + * win/tclWinChan.c: mingw on amd64 systems. Thanks to "mescalinum" + * win/tclWinFCmd.c: for reporting and testing. + Merged --cherrypick from Tcl8.5 (2010-09-08,48191d3979) - * generic/tclUtil.c: Fix for [Bug 3309871]: Valgrind finds: - invalid read in TclMaxListLength() +2011-03-11 Jan Nijtmans <nijtmans@users.sf.net> -2011-05-25 Don Porter <dgp@users.sourceforge.net> + * win/tcl.m4: handle --enable-64bit=ia64 for gcc. + * win/configure: (autoconf-2.13) + * win/tclWin32Dll.c: [Patch 3059922]: fixes for mingw64 - gcc4.5.1 + Merged --cherrypick from Tcl8.5 (2011-01-17, 6e410a115b) - * library/msgcat/msgcat.tcl: Backport improvements to msgcat - * library/msgcat/pkgIndex.tcl: package. Bump to 1.4.4 - * unix/Makefile.in - * win/Makefile.in +2011-03-08 Jan Nijtmans <nijtmans@users.sf.net> -2011-05-24 Venkat Iyer <venkat@comit.com> + * generic/tclBasic.c: Fix gcc warnings: variable set but not used - * library/tzdata/Africa/Cairo: Update to Olson tzdata2011g +2011-03-06 Don Porter <dgp@users.sourceforge.net> -2011-05-17 Andreas Kupries <andreask@activestate.com> + * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() calls + * generic/tclCmdMZ.c: with TclParseBackslash() where possible. + * generic/tclCompExpr.c: + * generic/tclCompile.c: + * generic/tclUtil.c (TclFindElement): Guard escape sequence scans + to not overrun the string end. [Bug 3192636] - * generic/tclCompile.c (TclFixupForwardJump): Tracked down and fixed - * generic/tclBasic.c (TclArgumentBCEnter): the cause of a violation - of my assertion that 'ePtr->nline == objc' in TclArgumentBCEnter. - When a bytecode was grown during jump fixup the pc -> command line - mapping was not updated. When things aligned just wrong the mapping - would direct command A to the data for command B, with a different - number of arguments. +2011-03-05 Don Porter <dgp@users.sourceforge.net> -2011-05-10 Don Porter <dgp@users.sourceforge.net> + * generic/tclParse.c (TclParseBackslash): Correct trunction checks in + * tests/parse.test: \x and \u substitutions. [Bug 3200987] - * generic/tclInt.h: New internal routines TclScanElement() and - * generic/tclUtil.c: TclConvertElement() are rewritten guts of - machinery to produce string rep of lists. The new routines avoid - and correct [Bug 3173086]. See comments for much more detail. +2011-01-25 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclDictObj.c: Update all callers. - * generic/tclIndexObj.c: - * generic/tclListObj.c: - * generic/tclUtil.c: - * tests/list.test: + * generic/tclCkalloc.c: [Bug 3129448]: Possible over-allocation on 64-bit + * generic/tclHash.c: platforms, part 2, backported strcpy->memcpy + * generic/tclProc.c change but not change in any struct. -2011-05-09 Don Porter <dgp@users.sourceforge.net> +2011-01-14 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclListObj.c: Revise empty string tests so that we avoid - potentially expensive string rep generations, especially for dicts. + * win/tclWinDde.c: Fix gcc-4.5.2 error: lvalue required as ... + * win/tclWinReg.c: (backported from 8.5/8.6) -2011-05-07 Miguel Sofer <msofer@users.sf.net> +2010-12-05 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclInt.h: fix USE_TCLALLOC so that it can be enabled - * unix/Makefile.in: without editing the Makefile + * generic/tclCmdMZ.c: [Bug 3127687] Triggers FORTIFY_SOURCE + buffer overflow detection -2011-05-05 Don Porter <dgp@users.sourceforge.net> +2010-11-03 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclListObj.c: Stop generating string rep of dict when - converting to list. Tolerate NULL interps more completely. + Backported from 8.6 (see 2010-08-04). + * win/tclWin32Dll.c (asciiProcs, unicodeProcs): + * win/tclWinLoad.c (TclpDlopen): 'load' use LoadLibraryEx with + * win/tclWinInt.h (TclWinProcs): LOAD_WITH_ALTERED_SEARCH_PATH to + prefer dependent DLLs in same dir as loaded DLL. -2011-05-03 Don Porter <dgp@users.sourceforge.net> +2010-10-31 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclUtil.c: Tighten Tcl_SplitList(). - * generic/tclListObj.c: Tighten SetListFromAny(). - * generic/tclDictObj.c: Tighten SetDictFromAny(). + * win/tcl.m4 Add -D_CRT_SECURE_NO_DEPRECATE and + -D_CRT_NONSTDC_NO_DEPRECATE, reducing the number of + deprecation warnings on later VC++ versions. + * win/rules.vc Better VCVERSION determination + * win/configure (regenerated with autoconf 2.13) + All changes backported from Tcl8.5/8.6 -2011-05-02 Don Porter <dgp@users.sourceforge.net> +2010-10-23 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCmdMZ.c: Revised TclFindElement() interface. The - * generic/tclDictObj.c: final argument had been bracePtr, the address - * generic/tclListObj.c: of a boolean var, where the caller can be told - * generic/tclParse.c: whether or not the parsed list element was - * generic/tclUtil.c: enclosed in braces. In practice, no callers - really care about that. What the callers really want to know is - whether the list element value exists as a literal substring of the - string being parsed, or whether a call to TclCopyAndCollpase() is - needed to produce the list element value. Now the final argument - is changed to do what callers actually need. This is a better fit - for the calls in tclParse.c, where now a good deal of post-processing - checking for "naked backslashes" is no longer necessary. - ***POTENTIAL INCOMPATIBILITY*** - For any callers calling in via the internal stubs table who really - do use the final argument explicitly to check for the enclosing brace - scenario. Simply looking for the braces where they must be is the - revision available to those callers, and it will backport cleanly. + * tools/uniParse.tcl: [Bug 3085863]: tclUniData 9 years old + * tools/uniClass.tcl: Upgrade everything to Unicode 6.0, except + * tests/utf.test: non-BMP characters > 0xFFFF + * generic/tclUniData.c: (re-generated) + * generic/regc_locale.c:(re-generated) + * generic/regcomp.c: fix comment/signatures referencing regc_locale + * win/rules.vc Update for VS10 - * tests/parse.test: Tests for expanded literals quoting detection. +2010-09-24 Andreas Kupries <andreask@activestate.com> - * generic/tclCompCmds.c: New TclFindElement() is also a better - fit for the [switch] compiler. + * 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/tclInt.h: Replace TclCountSpaceRuns() with - * generic/tclListObj.c: TclMaxListLength() which is the function we - * generic/tclUtil.c: actually want. - * generic/tclCompCmds.c: +2010-09-01 Andreas Kupries <andreask@activestate.com> - * generic/tclCompCmds.c: Rewrite of parts of the switch compiler to - better use the powers of TclFindElement() and do less parsing on - its own. + * generic/tclExecute.c: [Bug 3057639]. Applied patch by Jeff to + * generic/tclVar.c: make the behaviour of lappend in bytecompiled + * tests/append.test: mode consistent with direct-eval and 'append' + * tests/appendComp.test: generally. Added tests (append*-9.*) + showing the difference. -2011-04-28 Don Porter <dgp@users.sourceforge.net> +2010-07-25 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclInt.h: New utility routines: - * generic/tclParse.c: TclIsSpaceProc() and - * generic/tclUtil.c: TclCountSpaceRuns() + * 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. - * generic/tclCmdMZ.c: Use new routines to replace calls to - * generic/tclListObj.c: isspace() and their /* INTL */ risk. - * generic/tclStrToD.c: - * generic/tclUtf.c: - * unix/tclUnixFile.c: +2010-07-18 Jan Nijtmans <nijtmans@users.sf.net> -2011-04-27 Don Porter <dgp@users.sourceforge.net> + * generic/tcl.h: [Bug 3031278] fixed merge problem in previous + commit. - * generic/tclListObj.c: FreeListInternalRep() cleanup. +2010-07-17 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclBinary.c: Backport fix for [Bug 2857044]. - * generic/tclDictObj.c: All freeIntRepProcs set typePtr to NULL. - * generic/tclEncoding.c: - * generic/tclIndexObj.c: - * generic/tclListObj.c: - * generic/tclNamesp.c: - * generic/tclObj.c: - * generic/tclPathObj.c: - * generic/tclProc.c: - * generic/tclRegexp.c: - * generic/tclStringObj.c: - * generic/tclVar.c: + * generic/tcl.h: [Bug 3030870] make itcl 3.x built with pre-8.6 + * generic/tclInt.h: work in 8.6 -2011-04-21 Don Porter <dgp@users.sourceforge.net> +2010-07-16 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclInt.h: Use macro to set List intreps. - * generic/tclListObj.c: + * generic/tcl.h: (Backport) take over definitions of _WIN32, + DLLIMPORT, DLLEXPORT and TCL_LL_MODIFIER macros from Tcl8.5/8.6 - * generic/tclCmdIL.c: Limits on list length were too strict. - * generic/tclInt.h: Revised panics to errors where possible. - * generic/tclListObj.c: +2010-06-28 Jan Nijtmans <nijtmans@users.sf.net> - * generic/tclCompile.c: Make sure SetFooFromAny routines react - * generic/tclIO.c: reasonably when passed a NULL interp. - * generic/tclIndexObj.c: - * generic/tclListObj.c: - * generic/tclNamesp.c: - * generic/tclObj.c: - * generic/tclProc.c: - * macosx/tclMacOSXFCmd.c: + * generic/tclPosixStr.c: [Bug 3019634] errno.h and tclWinPort.h + have conflicting definitions. -2011-04-21 Jan Nijtmans <nijtmans@users.sf.net> +2010-06-09 Andreas Kupries <andreask@activestate.com> - * generic/tcl.h: fix for [Bug 3288345]: Wrong Tcl_StatBuf - * generic/tclInt.h: used on MinGW. Make sure that all _WIN32 - * win/tclWinFile.c: compilers use exactly the same layout - * win/configure.in: for Tcl_StatBuf - the one used by MSVC6 - - * win/configure: in all situations. + * library/platform/platform.tcl: Added OSX Intel 64bit + * library/platform/pkgIndex.tcl: Package updated to version 1.0.9. -2011-04-20 Andreas Kupries <andreask@activestate.com> +2010-05-07 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. + * library/platform/platform.tcl: Fix cpu name for Solaris/Intel 64bit. + * library/platform/pkgIndex.tcl: Package updated to version 1.0.8. -2011-04-19 Don Porter <dgp@users.sourceforge.net> +2010-04-29 Andreas Kupries <andreask@activestate.com> - * generic/tclConfig.c: Reduce internals access in the implementation - of [<foo>::pkgconfig list]. + * library/platform/platform.tcl: Another stab at getting the /lib, + * library/platform/pkgIndex.tcl: /lib64 difference right for + linux. Package updated to version 1.0.7. -2011-04-18 Don Porter <dgp@users.sourceforge.net> +2010-04-18 Donal K. Fellows <dkf@users.sf.net> - * generic/tclCmdIL.c: Use ListRepPtr(.) and other cleanup. - * generic/tclConfig.c: - * generic/tclListObj.c: + * doc/unset.n: [Bug 2988940]: Fix typo. - * generic/tclInt.h: Define and use macros that test whether - * generic/tclBasic.c: a Tcl list value is canonical. - * generic/tclUtil.c: +2010-04-14 Andreas Kupries <andreask@activestate.com> -2011-04-16 Donal K. Fellows <dkf@users.sf.net> + * library/platform/platform.tcl: Linux platform identification: + * library/platform/pkgIndex.tcl: Check /lib64 for existence of + files matching libc* before accepting it as base directory. This + can happen on weirdly installed 32bit systems which have an empty + or partially filled /lib64 without an actual libc. Bumped to + version 1.0.6. - * 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. +2010-04-06 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> -2011-04-13 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): fixed object leak. - * generic/tclUtil.c: [Bug 3285375]: Rewrite of Tcl_Concat*() - routines to prevent segfaults on buffer overflow. Build them out of - existing primitives already coded to handle overflow properly. Uses - the new TclTrim*() routines. +2010-04-02 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * generic/tclCmdMZ.c: New internal utility routines TclTrimLeft() - * generic/tclInt.h: and TclTrimRight(). Refactor the - * generic/tclUtil.c: [string trim*] implementations to use them. + * generic/tclStringObj.c: (SetStringFromAny): avoid trampling + over the tclEmptyStringRep->bytes as it is thread-shared + (thx to Gustaf Neumann for the (hard) work of locating this one). -2011-04-13 Miguel Sofer <msofer@users.sf.net> +2010-03-01 Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * generic/tclVar.c: [Bug 2662380]: Fix crash caused by appending to a - variable with a write trace that unsets it. + * unix/tclUnixChan.c: [backported] Refrain from a possibly lengthy + reverse-DNS lookup on 0.0.0.0 when calling [fconfigure -sockname] + on an universally-bound (default) server socket. -2011-04-12 Don Porter <dgp@users.sourceforge.net> +2010-02-22 Jan Nijtmans <nijtmans@users.sf.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. + * generic/tclExecute.c: Fix [Bug 2954959] expr abs(-0.0) is -0.0 + * tests/expr.test Added some test cases, backported from 8.5 -2011-04-12 Venkat Iyer <venkat@comit.com> +2010-02-11 Andreas Kupries <andreask@activestate.com> - * library/tzdata/Atlantic/Stanley: Update to Olson tzdata2011f + * generic/tclCompile.c: [Bug 2949302]: Fixed leak of support + structures for [info frame] which occured when bytecode + compilation fails. -2011-04-06 Miguel Sofer <msofer@users.sf.net> +2010-02-01 Donal K. Fellows <dkf@users.sf.net> - * generic/tclExecute.c (TclCompEvalObj): Earlier return if Tip280 - gymnastics not needed. + * generic/regexec.c (ccondissect, crevdissect): [Bug 2942697]: Rework + these functions so that certain pathological patterns are matched much + more rapidly. Many thanks to Tom Lane for dianosing this issue and + providing an initial patch. -2011-04-05 Venkat Iyer <venkat@comit.com> +2009-11-16 Alexandre Ferrieux <ferrieux@users.sourceforge.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) + * generic/tclEncoding.c: (Backport) Fix [Bug 2891556] and improve + * tests/econding.test: test to detect similar manifestations in the + future. -2011-04-04 Don Porter <dgp@users.sourceforge.net> +2009-11-12 Andreas Kupries <andreask@activestate.com> - * 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/tclIO.c (CopyData): [Bug 2895565]. Dropped bogosity + * tests/io.test: which used the number of _written_ bytes or + character to update the counters for the read bytes/characters. + New test io-53.11. This is a backward port from the 8.5 branch. -2011-04-02 Kevin B. Kenny <kennykb@acm.org> +2009-11-10 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclStrToD.c (QuickConversion): Replaced another couple of - 'double' declarations with 'volatile double' to work around - misrounding issues in mingw-gcc 3.4.5. + * tests/fCmd.test: Fixed a number of issues for Vista + * tests/registry.test: and Win7 that are due to restricted + * tests/tcltest.test: permissions under UAC. + * tests/winFCmd.test: -2011-03-24 Donal K. Fellows <dkf@users.sf.net> +2009-11-10 Stuart Cassoff <stwo@users.sf.net> - * generic/tclFCmd.c (TclFileAttrsCmd): Ensure that any reference to - temporary index tables is squelched immediately rather than hanging - around to trip us up in the future. + * win/README: [bug 2459744]: Removed outdated Msys + Mingw info. -2011-03-21 Jan Nijtmans <nijtmans@users.sf.net> +2009-11-10 Andreas Kupries <andreask@activestate.com> - * unix/tclLoadDl.c: [Bug #3216070]: Loading extension libraries - * unix/tclLoadDyld.c: from embedded Tcl applications. - ***POTENTIAL INCOMPATIBILITY*** - For extensions which rely on symbols from other extensions being - present in the global symbol table. For an example and some discussion - of workarounds, see http://stackoverflow.com/q/8330614/301832 + * generic/tclObj.c: Plug memory leak in TclContinuationsEnter(). + [Bug 2895323]. Backport from Tcl 8.5 branch, change by Don Porter. -2011-03-16 Jan Nijtmans <nijtmans@users.sf.net> +2009-11-09 Andreas Kupries <andreask@activestate.com> - * generic/tclCkalloc.c: [Bug #3197864]: pointer truncation on Win64 - TCL_MEM_DEBUG builds + * generic/tclBasic.c (TclEvalObjEx): Moved the #280 decrement of + refCount for the file path out of the branch after the whole + conditional, closing a memory leak. Added clause on structure type + to prevent seg.faulting. Backport from valgrinding the Tcl 8.5 + branch. -2011-03-16 Don Porter <dgp@users.sourceforge.net> + * tests/info.test: Resolve ambiguous resolution of variable + "res". Backport from 8.5 - * generic/tclBasic.c: Some rewrites to eliminate calls to - * generic/tclParse.c: isspace() and their /* INTL */ risk. - * generic/tclProc.c: +2009-10-23 Andreas Kupries <andreask@activestate.com> -2011-03-16 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclCompCmds.c: [Bug 2881263] (TclCompileForeachCmd, + TclCompileLindexCmd): Fixed. Moved the use of + DefineLineInformation after all regular variable declarations, so + that an empty statement (-UTIP_280) doesn't confuse c89 compilers. - * 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. + * library/platform/pkgIndex.tcl: Backported the platform packages + * library/platform/platform.tcl: from head and8.5 into the 8.4 + * library/platform/shell.tcl: branch. Updated makefiles to install + * unix/Makfile.in: the packages. + * win/Makefile.in: -2011-03-14 Kevin B. Kenny <kennykb@acm.org> + * 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>. - * tools/tclZIC.tcl (onDayOfMonth): Allow for leading zeroes - in month and day so that tzdata2011d parses correctly. - * library/tzdata/America/Havana: - * library/tzdata/America/Juneau: - * library/tzdata/America/Santiago: - * library/tzdata/Europe/Istanbul: - * library/tzdata/Pacific/Apia: - * library/tzdata/Pacific/Easter: - * library/tzdata/Pacific/Honolulu: tzdata2011d +2009-10-21 Donal K. Fellows <dkf@users.sf.net> + * generic/tclPosixStr.c: [Bug 2882561]: Work around oddity on Haiku OS + where SIGSEGV and SIGBUS are the same value. - * unix/configure.in: [Bug 3205320]: stack space detection defeated by inlining - * unix/configure: (autoconf-2.59) +2009-10-18 Joe Mistachkin <joe@mistachkin.com> -2011-03-09 Don Porter <dgp@users.sourceforge.net> + * tests/thread.test (thread-4.[345]): [Bug 1565466]: Correct tests to + save their error state before the final call to threadReap just in case + it triggers an "invalid thread id" error. This error can occur if one + or more of the target threads has exited prior to the attempt to send + it an asynchronous exit command. - * generic/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] +2009-10-04 Daniel Steffen <das@users.sourceforge.net> - * doc/tclvars.n: Formatting fix. Thanks to Pat Thotys. + * macosx/tclMacOSXBundle.c: Workaround CF memory managment bug in + * unix/tclUnixInit.c: Mac OS X 10.4 & earlier. [Bug 2569449] -2011-03-08 Jan Nijtmans <nijtmans@users.sf.net> +2009-09-28 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c: Fix gcc warnings: variable set but not used + * generic/tclAlloc.c: Cleaned up various routines in the + * generic/tclCkalloc.c: call stacks for memory allocation to + * generic/tclParse.c: guarantee that any size values computed + * generic/tclThreadAlloc.c: are within the domains of the routines + they get passed to. [Bugs 2557696 and 2557796]. -2011-03-08 Don Porter <dgp@users.sourceforge.net> +2009-09-18 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/tclCmdMZ.c (Tcl_SubstObj): Pass 'length' values to + recursive parsing calls to convert O(N^2) operations of [subst] + to O(N). - * generic/tclResult.c (ResetObjResult): Correct failure to clear - invalid intrep. Thanks to Colin McDonald. [Bug 3202905] +2009-08-25 Andreas Kupries <andreask@activestate.com> -2011-03-06 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard, + (EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations, + (TclEvalObjEx): + * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, ListLines): + * generic/tclCompCmds.c (*): + * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv, + (TclFreeCompileEnv, TclCompileScript): + * generic/tclCompile.h (CompileEnv): + * generic/tclInt.h (ContLineLoc, Interp): + * generic/tclObj.c (ThreadSpecificData, ContLineLocFree, + (TclThreadFinalizeObjects, TclInitObjSubsystem, + (TclContinuationsEnter, TclContinuationsEnterDerived, + (TclContinuationsCopy, TclContinuationsGet, TclFreeObj): + * generic/tclProc.c (TclCreateProc): + * generic/tclVar.c (TclPtrSetVar): + * tests/info.test (info-30.0-22): - * generic/tclBasic.c: More replacements of Tcl_UtfBackslash() calls - * generic/tclCompile.c: with TclParseBackslash() where possible. - * generic/tclParse.c: - * generic/tclUtil.c: + Extended parser, compiler, and execution with code and attendant + data structures tracking the positions of continuation lines which + are not visible in script's, to properly account for them while + counting lines for #280, during direct and compiled execution. - * generic/tclUtil.c (TclFindElement): Guard escape sequence scans - to not overrun the string end. [Bug 3192636] +2009-08-17 Don Porter <dgp@users.sourceforge.net> -2011-03-05 Don Porter <dgp@users.sourceforge.net> + * generic/tclFileName.c: Correct result from [glob */test] when * + * tests/fileName.test: matches something like ~foo. [Bug 2837800] - * generic/tclParse.c (TclParseBackslash): Correct trunction checks in - * tests/parse.test: \x and \u substitutions. [Bug 3200987] +2009-07-23 Joe Mistachkin <joe@mistachkin.com> -2011-01-26 Donal K. Fellows <dkf@users.sf.net> + * generic/tclNotify.c: Fix for [Bug 2820349]. - * doc/RegExp.3: [Bug 3165108]: Corrected documentation of description - of subexpression info in Tcl_RegExpInfo structure. +2009-07-14 Andreas Kupries <andreask@activestate.com> -2011-01-25 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): - * 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. + Backport of some changes made to the Tcl head, to handle literal + sharing better. The code here is much simpler (trimmed down) + compared to the head as the 8.4 branch is not bytecode compiling + whole files, and doesn't compile eval'd code either. -2011-01-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + Reworked the handling of literal command arguments in bytecode to + be saved (compiler) and used (execution) per command (See the + TCL_INVOKE_STK* instructions), and not per the whole bytecode. + This removes the problems with location data caused by literal + sharing in proc bodies. Simplified the associated datastructures + (ExtIndex is gone, as is the function EnterCmdWordIndex). - * 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). +2009-06-13 Don Porter <dgp@users.sourceforge.net> -2011-01-19 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]. - * 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. +2009-04-28 Jeff Hobbs <jeffh@ActiveState.com> -2011-01-18 Jan Nijtmans <nijtmans@users.sf.net> + * unix/tcl.m4, unix/configure (SC_CONFIG_CFLAGS): harden the check + to add _r to CC on AIX with threads. - * generic/tclBasic.c: Various mismatches between Tcl_Panic - * generic/tclCompCmds.c: format string and its arguments, - * generic/tclCompExpr.c: discovered thanks to [Bug 3159920] - * generic/tclPreserve.c: (Backported) - * generic/tclTest.c: +2009-04-27 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2011-01-17 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclInt.h: Backport fix for [Bug 1028264]: WSACleanup() too + * generic/tclEvent.c: early. The fix introduces "late exit handlers" + * win/tclWinSock.c: for similar late process-wide cleanups. - * 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 +2009-04-27 Alexandre Ferrieux <ferrieux@users.sourceforge.net> -2011-01-15 Kevin B. Kenny <kennykb@users.sf.net> + * win/tclWinSock.c: Backport fix for [Bug 2446662]: resync Win + behavior on RST with that of unix (EOF). - * 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] +2009-04-22 Andreas Kupries <andreask@activestate.com> -2011-01-13 Miguel Sofer <msofer@users.sf.net> + * generic/tclStringObj.c (UpdateStringOfString): Added cast to fix + signed/unsigned mismatch breaking win32 symbol/debug build. - * 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. +2009-04-15 Don Porter <dgp@users.sourceforge.net> -2011-01-03 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclStringObj.c: AppendUnicodeToUnicodeRep failed + to set stringPtr->allocated to 0, leading to crashes. - * tools/genStubs.tcl: Fix "make genstubs", which was broken - since 2010-11-30, the TclDoubleDigits backport. +2009-04-14 Stuart Cassoff <stwo@users.sourceforge.net> -2010-12-31 Jan Nijtmans <nijtmans@users.sf.net> + * unix/tcl.m4: Removed -Wno-implicit-int from CFLAGS_WARNING. - * 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) +2009-04-08 Don Porter <dgp@users.sourceforge.net> -2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> + * library/tcltest/tcltest.tcl: Fixed unsafe [eval]s in the tcltest + * library/tcltest/pkgIndex.tcl: package. [Bug 2570363] - * unix/Makefile.in: Remove unwanted/obsolete 'ddd' target. +2009-04-07 Don Porter <dgp@users.sourceforge.net> -2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> + * generic/tclStringObj.c: Completed backports of fixes for + [Bug 2494093] and [Bug 2553906]. - * unix/Makefile.in: [Bug 2446711]: Remove 'allpatch' target. +2009-03-30 Don Porter <dgp@users.sourceforge.net> -2010-12-17 Stuart Cassoff <stwo@users.sourceforge.net> + * doc/Alloc.3: Size argument is "unsigned int". [Bug 2556263] - * unix/Makefile.in: Use 'rpmbuild', not 'rpm' [Bug 2537626]. + * 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-12-13 Jan Nijtmans <nijtmans@users.sf.net> +2009-03-27 Don Porter <dgp@users.sourceforge.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) + * tests/fileName.test: Tests for [Bug 2710920] to guard against + its appearance. -2010-12-12 Stuart Cassoff <stwo@users.sourceforge.net> +2009-03-20 Don Porter <dgp@users.sourceforge.net> - * unix/tcl.m4: Better building on OpenBSD. - * unix/configure: (autoconf-2.59) + * 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] -2010-12-10 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * generic/tclExecute.c (INST_CONCAT1): Panic when appends overflow + the max length of a Tcl value. [Bug 2669109] - * generic/tclIO.c: [backport] Make sure [fcopy -size ... -command ...] always - * tests/io.test: calls the callback asynchronously, even for size zero. +2009-03-18 Don Porter <dgp@users.sourceforge.net> -2010-12-03 Jeff Hobbs <jeffh@ActiveState.com> + * win/tclWinFile.c (TclpObjNormalizePath): Corrected Tcl_Obj leak. + Thanks to Joe Mistachkin for detection and patch. [Bug 2688184]. - * 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. +2009-02-20 Don Porter <dgp@users.sourceforge.net> -2010-12-01 Kevin B. Kenny <kennykb@acm.org> + * 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]. - * 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] +2008-02-06 Daniel Steffen <das@users.sourceforge.net> -2010-11-30 Andreas Kupries <andreask@activestate.com> + * generic/tcl.h (Darwin): workaround conflict between deprecated tcl + panic macro and panic() function declaration in <mach/mach.h> header. - * 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. +2009-02-05 Don Porter <dgp@users.sourceforge.net> - * generic/tclIntDecls.h: - * generic/tclStubInit.c: - * generic/tclTomMathDecls.h: Regenerated. + * 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] -2010-11-30 Jeff Hobbs <jeffh@ActiveState.com> +2009-02-04 Don Porter <dgp@users.sourceforge.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). + * 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. -2010-11-23 Andreas Kupries <andreask@activestate.com> +2009-01-09 Don Porter <dgp@users.sourceforge.net> - * generic/tclVar.c (VarHashInvalidateEntry): Removed obsolete - patch for AIX defining this macro as function. This is not - necessary anymore. See ChangeLog entry 2010-07-28 (Bug 3037525) - for the actual bug and fix the patch was a workaround for. + * generic/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-11-19 Jan Nijtmans <nijtmans@users.sf.net> +2009-01-08 Don Porter <dgp@users.sourceforge.net> - * generic/tclInterp.c: fix gcc warning: passing argument 3 of - 'Tcl_GetIndexFromObj' discards qualifiers from pointer target type - * generic/tclWinInit.c: fix gcc warning: dereferencing pointer - 'oemId' does break strict-aliasing rules - * win/tclWin32Dll.c: fix gcc warnings: unused variable 'registration' - * win/tclWinChan.c: - * win/tclWinFCmd.c: - * win/configure.in: Allow cross-compilation by default. (backported) - * win/tcl.m4: Use -pipe for gcc on win32 (backported) - * win/configure: (regenerated) + * generic/tclStringObj.c (STRING_UALLOC): Added missing parens + required to get correct results out of things like + STRING_UALLOC(num + append). [Bug 2494093]. -2010-11-18 Donal K. Fellows <dkf@users.sf.net> +2008-12-04 Don Porter <dgp@users.sourceforge.net> - * doc/file.n: [Bug 3111298]: Typofix. + * generic/tclIOUtil.c (Tcl_FSGetNormalizedPath): Added another + flag value TCLPATH_NEEDNORM to mark those intreps which need more + complete normalization attention for correct results. [Bug 2385549] -2010-11-16 Jan Nijtmans <nijtmans@users.sf.net> +2008-12-03 Don Porter <dgp@users.sourceforge.net> - * generic/tclPlatDecls.h: [Bug 3110161]: Extensions using TCHAR don't - compile on VS2005 SP1 + * generic/tclFileName.c (TclDoGlob): One of the + Tcl_FSMatchInDirectory() calls did not have its return code + checked. Some VFS drivers can return TCL_ERROR, and when that's + not checked, the error message gets converted into a list of + matching files returned by [glob], with ridiculous results. -2010-11-15 Andreas Kupries <andreask@activestate.com> +2008-12-01 Don Porter <dgp@users.sourceforge.net> - * doc/interp.n: [Bug 3081184]: TIP #378 backport. - * doc/tclvars.n: Performance fix for TIP #280. - * generic/tclBasic.c: - * generic/tclExecute.c: - * generic/tclInt.h: - * generic/tclInterp.c: - * tests/info.test: - * tests/interp.test: + * generic/tclIO.c (TclFinalizeIOSubsystem): Revised latest commit to + something that doesn't crash the test suite. -2010-11-03 Kevin B. Kenny <kennykb@acm.org> +2008-11-25 Andreas Kupries <andreask@activestate.com> - * 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/tclIO.c (TclFinalizeIOSubsystem): Applied backport of + Alexandre Ferrieux's patch for [Bug 2270477] to prevent infinite + looping during finalization of channels not bound to + interpreters. -2010-11-01 Stuart Cassoff <stwo@users.sourceforge.net> +2008-11-23 Andreas Kupries <andreask@activestate.com> - * library/safe.tcl: Improved handling of non-standard module - * tests/safe.test: path lists, empty path lists in particular. + * generic/tclIO.c: Backport of fix for [Bug 2333466]. -2010-11-01 Kevin B. Kenny <kennykb@acm.org> +2008-11-04 Jeff Hobbs <jeffh@ActiveState.com> - * library/tzdata/Asia/Hong_Kong: - * library/tzdata/Pacific/Apia: - * library/tzdata/Pacific/Fiji: Olson's tzdata2010o. + * generic/tclPort.h: remove the ../{win,unix}/ header dirs as the + build system already has it, and it confuses builds when used with + private headers installed. -2010-10-23 Jan Nijtmans <nijtmans@users.sf.net> +2008-09-25 Don Porter <dgp@users.sourceforge.net> - * tools/uniParse.tcl: [Bug 3085863]: tclUniData 9 years old - * tools/uniClass.tcl: Upgrade everything to Unicode 6.0, except - * tests/utf.test: non-BMP characters > 0xFFFF - * generic/tclUniData.c: (re-generated) - * generic/regc_locale.c:(re-generated) - * generic/regcomp.c: fix comment - * win/rules.vc Update for VS10 + * doc/global.n: Correct false claim about [info locals]. -2010-10-09 Miguel Sofer <msofer@users.sf.net> +2008-08-14 Don Porter <dgp@users.sourceforge.net> - * generic/tclExecute.c: fix overallocation of exec stack in TEBC - (mixing numwords and numbytes) + * tests/fileName.test: Revise new tests for portability to case + insensitive filesystems. -2010-10-01 Jeff Hobbs <jeffh@ActiveState.com> +2008-08-14 Daniel Steffen <das@users.sourceforge.net> - * 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: + * 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). -2010-09-24 Andreas Kupries <andreask@activestate.com> + * 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] - * 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. + * unix/tcl.m4 (SC_PATH_X): check for libX11.dylib in addition to + libX11.so et al. -2010-09-23 Don Porter <dgp@users.sourceforge.net> + * unix/configure: autoconf-2.13 - * generic/tclCmdAH.c: Fix cases where value returned by - * generic/tclEvent.c: Tcl_GetReturnOptions() was leaked. - * generic/tclMain.c: Thanks to Jeff Hobbs for discovery of the - anti-pattern to seek and destroy. +2008-08-13 Don Porter <dgp@users.sourceforge.net> -2010-09-19 Donal K. Fellows <dkf@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. - * doc/file.n (file readlink): [Bug 3070580]: Typofix. +2008-08-11 Andreas Kupries <andreask@activestate.com> -2010-09-10 Donal K. Fellows <dkf@users.sf.net> + * generic/tclProc.c (Tcl_ProcObjCmd): Fixed memory leak triggered + * tests/proc.test: by procbody::test::proc. See [Bug 2043636]. + Added a test case demonstrating the leak before the fix. Fixed a + few spelling errors in test descriptions as well. - * 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. +2008-07-28 Andreas Kupries <andreask@activestate.com> -2010-09-08 Andreas Kupries <andreask@activestate.com> + * generic/tclBasic.c: Added missing release of extended command + word index when deleting an interpreter (DeleteInterpProc). Added + missing ref count when creating an empty string as path (EvalEx). - *** 8.5.9 TAGGED FOR RELEASE *** + * generic/tclCompile.c (TclInitCompileEnv): Made same change to + control flow as in TclEvalObjEx. Not needed while uplevel and + siblings go through the eval-direct code path, however if that + changes (like it did in 8.5+) better to have this in place instead + of re-searching why certain places are without absolute locations. - * 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. + * tests/info.test: Added tests 38.*, exactly testing the tracking + of location for uplevel scripts, and made the testsuite fully + usable with and without -singleproc 1. -2010-09-08 Don Porter <dgp@users.sourceforge.net> +2008-07-25 Daniel Steffen <das@users.sourceforge.net> - * changes: Update for 8.5.9 release. + * tests/info.test: Add !singleTestInterp constraint to various tests; + (info-22.8, info-23.0): switch to glob matching to avoid sensitivity + to tcltest.tcl line number changes. [Bug 1605269] - * 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. +2008-07-24 Andreas Kupries <andreask@activestate.com> -2010-09-06 Stuart Cassoff <stwo@users.sourceforge.net> + * tests/info.test: Tests 38.* added, exactly testing the tracking + of location for uplevel scripts. - * 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 +2008-07-23 Andreas Kupries <andreask@activestate.com> -2010-09-02 Andreas Kupries <andreask@activestate.com> + * 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. - * doc/glob.n: Fixed documentation ambiguity regarding the handling - of -join. +2008-07-22 Andreas Kupries <andreask@activestate.com> - * 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. + * generic/tclBasic.c: Added missing function comments. -2010-09-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> + * generic/tclCompile.c: Made the new TclEnterCmdWordIndex + * generic/tclCompile.h: static. - * 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, + * generic/tclBasic.c: Reworked the handling of bytecode literals + * generic/tclCompile.c: for #280 to fix the abysmal performance + * generic/tclCompile.h: for deep recursion, replaced the linear + * generic/tclExecute.c: search through the whole stack with + * generic/tclInt.h: another hashtable and simplified the data + structure used by the compiler (array instead of hashtable). + Incidentially this also fixes the memory leak reported via [Bug + 2024937]. -2010-09-01 Don Porter <dgp@users.sourceforge.net> +2008-07-21 Andreas Kupries <andreask@activestate.com> - * changes: Update for 8.5.9 release. + * 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-09-01 Andreas Kupries <andreask@activestate.com> +2008-07-07 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*** + * generic/tclCmdIL.c (InfoFrameCmd): Fixed unsafe idiom of setting + the interp result found by Don Porter. + +2008-07-04 Joe English <jenglish@users.sourceforge.net> + + * generic/tclEncoding.c(UtfToUtfProc): Avoid unwanted sign extension + when converting incomplete UTF-8 sequences. See [Bug 1908443] for + details. + +2008-07-03 Don Porter <dgp@users.sourceforge.net> -2010-09-01 Donal K. Fellows <dkf@users.sf.net> + * 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] - * tools/tcltk-man2html.tcl: Improve handling of cross-links for - options between Ttk manual pages. +2008-06-28 Don Porter <dgp@users.sourceforge.net> - * doc/Tcl.n: Avoid nroff hazards when generating documentation. + * generic/tclIOUtil.c: Plug memory leak in latest commit. Thanks + Rolf Ade for detecting and Dan Steffen for the fix [Bug 2004654]. -2010-08-31 Andreas Kupries <andreask@activestate.com> +2008-06-23 Don Porter <dgp@users.sourceforge.net> - * win/tcl.m4: Applied patch by Jeff fixing issues with the - manifest handling on Win64. - * win/configure: Regenerated. + * generic/tclIOUtil.c: Fixed bug in Tcl_GetTranslatedPath() when + operating on the "Special path" variant of the "path" Tcl_ObjType + intrep. A full normalization was getting done, in particular, coercing + relative paths to absolute, contrary to what the function of + producing the "translated path" is supposed to do. [Bug 1972879]. -2010-08-29 Donal K. Fellows <dkf@users.sf.net> +2008-06-20 Don Porter <dgp@users.sourceforge.net> - * doc/dict.n: [Bug 3046999]: Corrected cross reference to array - manpage to refer to (correct) existing subcommand. + * tests/binary.test: Corrected flawed tests revealed by a -debug 1 + * tests/io.test: -singleproc 1 test suite run. -2010-08-26 Jeff Hobbs <jeffh@ActiveState.com> +2008-06-18 Don Porter <dgp@users.sourceforge.net> - * unix/configure, unix/tcl.m4: SHLIB_LD_LIBS='${LIBS}' for OSF1-V*. - Add /usr/lib64 to set of auto-search dirs. [Bug 1230554] - (SC_PATH_X): Correct syntax error when xincludes not found. + * generic/tclParseExpr.c: Disabled attempts to support [expr] + functions named eq(...) or ne(...). Any attempts to use such + functions were panicking. [Bug 1971879]. - * win/Makefile.in (VC_MANIFEST_EMBED_DLL VC_MANIFEST_EMBED_EXE): - * win/configure, win/configure.in, win/tcl.m4: SC_EMBED_MANIFEST - macro and --enable-embedded-manifest configure arg added to - support manifest embedding where we know the magic. Help prevents - DLL hell with MSVC8+. +2008-06-16 Andreas Kupries <andreask@activestate.com> -2010-08-24 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdIL.c (InfoFrameCmd): Backport of fix made on the + * tests/info.test: head branch :: Moved the code looking up the + information for key 'proc' out of the TCL_LOCATION_BC branch to + after the switch, this is common to all frame types. Updated the + testsuite to match. This was exposed by the 2008-06-08 commit + (Miguel), switching uplevel from direct eval to compilation. Fixes + [Bug 1987851]. - * changes: Update for 8.5.9 release. +2008-06-12 Andreas Kupries <andreask@activestate.com> -2010-08-23 Kevin B. Kenny <kennykb@acm.org> + * generic/tclCmdIL.c (InfoFrameCmd): TIP #280 conditional + feature. Added checks to validate HashEntry and HashTable + information gotten from Command structures. This seems to be + needed to handle structures managed by Itcl. - * library/tzdata/Africa/Cairo: - * library/tzdata/Asia/Gaza: Olson's tzdata2010l. +2008-06-12 Daniel Steffen <das@users.sourceforge.net> -2010-08-19 Donal K. Fellows <dkf@users.sf.net> + * unix/Makefile.in: add complete deps on tclDTrace.h. - * 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. + * unix/Makefile.in: clean generated tclDTrace.h file. + * unix/configure.in (SunOS): fix static DTrace-enabled build. -2010-08-15 Donal K. Fellows <dkf@users.sf.net> + * unix/tcl.m4 (SunOS-5.11): fix 64bit amd64 support with gcc & Sun cc. + * unix/configure: autoconf-2.13 - * generic/tclProc.c (ProcWrongNumArgs): [Bug 3045010]: Make the - handling of passing the wrong number of arguments to [apply] somewhat - less verbose when a lambda term is present. +2008-05-26 Jeff Hobbs <jeffh@ActiveState.com> -2010-08-12 Donal K. Fellows <dkf@users.sf.net> + * tests/io.test (io-53.9): need to close chan before removing file. - * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): [Bug 2826551, Patch 2948425]: - Backport of updates to make handling of RE line anchors correct. +2008-05-23 Andreas Kupries <andreask@activestate.com> -2010-08-11 Jeff Hobbs <jeffh@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. - * 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/tclIO.c (Tcl_SetChannelBufferSize): Accepted a patch by + * tests/io.test: Alexandre Ferrieux <ferrieux@users.sourceforge.net> + to fix the [Bug 1969953]. Buffersize outside of the supported + range are now clipped to nearest boundary instead of ignored. -2010-08-10 Jeff Hobbs <jeffh@ActiveState.com> +2008-04-26 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * generic/tclUtil.c (TclByteArrayMatch): Patterns may not be - null-terminated, so account for that. + * 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. -2010-08-05 Don Porter <dgp@users.sourceforge.net> + 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. - * changes: Update for 8.5.9 release. +2008-04-17 Andreas Kupries <andreask@activestate.com> -2010-08-04 Jeff Hobbs <jeffh@ActiveState.com> + *** 8.4.19 TAGGED FOR RELEASE *** - * unix/tclUnixFCmd.c: Adjust license header as per - ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change + * generic/tclCompExpr.c (CompileMathFuncCall): Added + * tests/compExpr.test (compExpr-5.10): Tcl_ResetResult before + appending error message, to clear out possible sharing. Added test + case demonstrating the crash (abort on shared object) without the + fix. - * license.terms: Fix DFARs note for number-adjusted rights clause +2008-04-15 Andreas Kupries <andreask@activestate.com> - * win/tclWin32Dll.c (asciiProcs, unicodeProcs): - * win/tclWinLoad.c (TclpDlopen): 'load' use LoadLibraryEx with - * win/tclWinInt.h (TclWinProcs): LOAD_WITH_ALTERED_SEARCH_PATH to - prefer dependent DLLs in same dir as loaded DLL. - ***POTENTIAL INCOMPATIBILITY*** + * generic/tclIO.c (CopyData): Applied another patch by Alexandre + * io.test (io-53.8a): Ferrieux <ferrieux@users.sourceforge.net>, + to shift EOF handling to the async part of the command if a + callback is specified, should the channel be at EOF already when + fcopy is called. Testcase by myself. - * win/Makefile.in (%.${OBJEXT}): better implicit rules support +2008-04-14 Kevin B. Kenny <kennykb@acm.org> -2010-08-04 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixTime.c (TclpGetClicks, Tcl_GetTime): Removed + obsolete use of 'struct timezone' in the call to 'gettimeofday'. + [Bug 1942197]. - * generic/tcl.h: Bump to 8.5.9 for release. - * library/init.tcl: +2008-04-14 Don Porter <dgp@users.sourceforge.net> + + * generic/tclExecute.c: Plug memory leak introduced in the + 2008-03-07 commit. [Bug 1940433] + +2008-04-11 Don Porter <dgp@users.sourceforge.net> + + * README: Bump version number to 8.4.19 + * generic/tcl.h: * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: + * win/README.binary: * win/configure.in: - * README: - * unix/configure: autoconf-2.59 + * unix/configure: autoconf-2.13 * win/configure: - * changes: Update for 8.5.9 release. + * changes: updates for 8.4.19 release. -2010-08-04 Andreas Kupries <andreask@activestate.com> +2008-04-10 Andreas Kupries <andreask@activestate.com> - * generic/tclIORChan.c: [Bug 3034840]: Fixed reference counting - * tests/ioCmd.test: in InvokeTclMethod and callers. + * 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). -2010-08-03 Andreas Kupries <andreask@activestate.com> + * tests/iocmd.test (iocmd-15.{12,13}): Removed. - * tests/var.test (var-19.1): [Bug 3037525]: Added test demonstrating - the local hashtable deletion crash and fix. + * tests/io.test (io-52.5{,a,b}): Reverted last change, added + comment regarding the meaning of -1, added two more testcases for + other negative values, and input wrapped to negative. - * 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. +2008-04-09 Andreas Kupries <andreask@activestate.com> -2010-08-03 Don Porter <dgp@users.sourceforge.net> + * tests/io.test (io-52.5): Removed '-size -1' from test, does not + seem to have any bearing, and was an illegal value. Test case is + not affected by the value of -size, test flag restoration and that + everything was properly copied. - * changes: Update for 8.5.9 release. + * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Added checking of -size + * tests/ioCmd.test (iocmd-15.{13,14}): value to reject negative + values, and values overflowing 32-bit signed. [Bug 1557855]. Basic + patch by Alexandre Ferrieux <ferrieux@users.sourceforge.net>, with + modifications from me to separate overflow from true negative + value. Extended testsuite. -2010-08-02 Kevin B. Kenny <kennykb@users.sf.net> +2008-04-08 Andreas Kupries <andreask@activestate.com> - * 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. + * tests/io.test (io-53.8,53.9,53.10): Backported das' fix of typo + and quoting for spaces in builddir path. -2010-07-28 Miguel Sofer <msofer@users.sf.net> +2008-04-07 Andreas Kupries <andreask@activestate.com> - * generic/tclVar.c: [Bug 3037525]: lose fickle optimisation in - TclDeleteVars (used for runtime-created locals) that caused crashes. + * tests/io.test (io-53.10): Testcase for bi-directionaly fcopy. + * generic/tclIO.c: Additional changes to data structures for fcopy + * generic/tclIO.h: and channels to perform proper cleanup in case + of a channel having two background copy operations running as is + now possible. -2010-07-25 Jan Nijtmans <nijtmans@users.sf.net> + * 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. - * 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. + * tests/io.test (io-53.9): Made test cleanup robust against the + possibility of slow process shutdown on Windows. Backported from + Kevin Kenny's change to the same test on the 8.5 and head + branches. -2010-07-17 Jan Nijtmans <nijtmans@users.sf.net> +2008-04-04 Andreas Kupries <andreask@activestate.com> - * generic/tcl.h: [Bug 3030870]: Make itcl 3.x built with pre-8.6 - * generic/tclInt.h: work in 8.6 + * tests/io.test (io-53.9): Added testcase for [Bug 780533], based + on Alexandre's test script. Also fixed problem with timer in + preceding test, was not canceled properly in the ok case. -2010-07-02 Donal K. Fellows <dkf@users.sf.net> +2008-04-03 Andreas Kupries <andreask@activestate.com> - * 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/tclIO.c (CopyData): Applied patch [Bug 1932639] to + * tests/io.test: prevent fcopy from calling -command synchronously + the first time. Thanks to Alexandre Ferrieux + <ferrieux@users.sourceforge.net> for report and patch. -2010-07-02 Jan Nijtmans <nijtmans@users.sf.net> +2008-04-02 Andreas Kupries <andreask@activestate.com> - * generic/tclIntDecls.h: [Bug 803489]: Tcl_FindNamespace problem in - the Stubs table. + * 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-07-01 Donal K. Fellows <dkf@users.sf.net> +2008-03-27 Daniel Steffen <das@users.sourceforge.net> - * doc/mathop.n: [Bug 3023165]: Fix typo that was preventing proper - rendering of the exclusive-or operator. + * unix/tcl.m4 (SunOS-5.1x): fix 64bit support for Sun cc. [Bug 1921166] -2010-06-28 Jan Nijtmans <nijtmans@users.sf.net> + * unix/dltest/Makefile.in: support use of LDFLAGS in SHLIB_LD. - * generic/tclPosixStr.c: [Bug 3019634]: errno.h and tclWinPort.h have - conflicting definitions. + * unix/configure: autoconf-2.13 -2010-06-22 Donal K. Fellows <dkf@users.sf.net> +2008-03-24 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclCmdIL.c (Tcl_LsetObjCmd): [Bug 3019351]: Corrected wrong - args message. + * generic/tclBinary.c: bug #1923966 - crash in binary format + * tests/binary.test: Added tests for the above crash condition. -2010-06-18 Donal K. Fellows <dkf@users.sf.net> +2008-03-11 Daniel Steffen <das@users.sourceforge.net> - * library/init.tcl (auto_execok): [Bug 3017997]: Add .cmd to the - default list of extensions that we can execute interactively. + * macosx/tclMacOSXNotify.c: avoid using CoreFoundation after fork() on + Darwin 9 even when TclpCreateProcess() uses vfork(). -2010-06-16 Jan Nijtmans <nijtmans@users.sf.net> +2008-03-07 Don Porter <dgp@users.sourceforge.net> - * tools/loadICU.tcl: [Bug 3016135]: Traceback using clock format - * library/msgs/he.msg: with locale of he_IL + * 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]. -2010-06-09 Andreas Kupries <andreask@activestate.com> + * generic/tclTest.c: Backport the [testexprlongobj] testing command. - * 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: + * tests/execute.test (execute-6.8): Added tests checking that + bytecode is invalidates in the right situations. -2010-05-26 Donal K. Fellows <dkf@users.sf.net> +2008-03-03 Reinhard Max <max@suse.de> - * doc/socket.n: [Bug 3007442]: Server sockets never took a host - argument, so the list of options must precede the port argument. + * unix/tclUnixChan.c: Fix mark and space parity on Linux, which + uses CMSPAR instead of PAREXT. -2010-05-25 Jan Nijtmans <nijtmans@users.sf.net> +2008-02-27 Pat Thoyts <patthoyts@users.sourceforge.net> - * unix/tclUnixPort.h: [Bug 2991415]: tclport.h #included before - * win/tclWinPort.h: limits.h - * generic/tclInt.h: + * library/http/pkgIndex.tcl: Backported 2.5.5 changes from + * library/http/http.tcl: 8.5 version. + * doc/http.n: Document the meta accessor. -2010-05-21 Jan Nijtmans <nijtmans@users.sf.net> +2008-02-26 Jeff Hobbs <jeffh@ActiveState.com> - * 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 + * generic/tclIOCmd.c (Tcl_GetsObjCmd): do not reuse resultObj as + it may be shared (crash condition). -2010-05-19 Alexandre Ferrieux <ferrieux@users.sourceforge.net> +2008-02-22 Pat Thoyts <patthoyts@users.sourceforge.net> - * generic/tclDictObj.c: Backport of fix for [Bug 3004007], EIAS - * tests/dict.test: violation in list-dict conversions. + * library/http/pkgIndex.tcl: Set version 2.5.4 + * library/http/http.tcl: Fix for bug #1818565. Always check that + the state array exists in the http::status command. -2010-05-07 Andreas Kupries <andreask@activestate.com> +2008-02-06 Don Porter <dgp@users.sourceforge.net> - * library/platform/platform.tcl: Fix cpu name for Solaris/Intel 64bit. - * library/platform/pkgIndex.tcl: Package updated to version 1.0.8. - * unix/Makefile.in: - * win/Makefile.in: + *** 8.4.18 TAGGED FOR RELEASE *** -2010-04-30 Don Porter <dgp@users.sourceforge.net> + * README: Bump version number to 8.4.18 + * generic/tcl.h: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/README.binary: + * win/configure.in: - * generic/tclBinary.c (UpdateStringOfByteArray): [Bug 2994924]: Add - panic when the generated string representation would grow beyond Tcl's - size limits. + * unix/configure: autoconf-2.13 + * win/configure: -2010-04-29 Andreas Kupries <andreask@activestate.com> + * changes: updates for 8.4.18 release. - * 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-02-02 Daniel Steffen <das@users.sourceforge.net> -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 + * unix/configure.in (Darwin): correct Info.plist year substitution in + non-framework builds. -2010-04-18 Donal K. Fellows <dkf@users.sf.net> + * unix/configure: autoconf-2.13 - * doc/unset.n: [Bug 2988940]: Fix typo. +2008-01-30 Miguel Sofer <msofer@users.sf.net> -2010-04-14 Andreas Kupries <andreask@activestate.com> + * generic/tclInterp.c (Tcl_GetAlias): fix for [Bug 1882373] - * 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. +2008-01-13 Jeff Hobbs <jeffh@ActiveState.com> -2010-04-03 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * win/tclWinSerial.c (SerialCloseProc, TclWinOpenSerialChannel): + use critical section for read & write side. [Bug 1353846] (newman) - * generic/tclStringObj.c: (SetStringFromAny): avoid trampling - over the tclEmptyStringRep as it is thread-shared. +2007-12-31 Don Porter <dgp@users.sourceforge.net> - * 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. + *** 8.4.17 TAGGED FOR RELEASE *** - Thanks to Gustaf Neumann for the (hard) work. + * changes: updates for 8.4.17 release. + * doc/filename.n: Typo -2010-03-31 Donal K. Fellows <dkf@users.sf.net> +2007-12-18 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * doc/package.n: [Bug 2980210]: Document the arguments taken by - the [package present] command correctly. + * generic/regguts.h, generic/regc_color.c, generic/regc_nfa.c: + Fixes for problems created when processing regular expressions that + generate very large automata. An enormous number of thanks to Will + Drewry <wad@google.com>, Tavis Ormandy <taviso@google.com>, and Tom + Lane <tgl@sss.pgh.pa.us> from the Postgresql crowd for their help in + tracking these problems down. [Bug 1810264] -2010-03-30 Andreas Kupries <andreask@activestate.com> +2007-12-14 Jeff Hobbs <jeffh@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. + * win/README: updated notes -2010-03-30 Don Porter <dgp@users.sourceforge.net> +2007-12-14 Zoran Vasiljevic <vasiljevic@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. + * unix/tclUnixCompat.c (TclpGetHostByName): Really applied + the change noted on 2007-11-13 by dkf below. -2010-03-29 Don Porter <dgp@users.sourceforge.net> +2007-12-13 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclStringObj.c: Fix array overrun in test format-1.12 - caught by valgrind testing. + * generic/tclIOUtil.c (TclGetOpenMode): Only set the O_APPEND flag + * tests/ioUtil.test (ioUtil-4.1): on a channel for the 'a' + mode and not for 'a+'. [Bug 1773127] (backport from HEAD) -2010-03-25 Donal K. Fellows <dkf@users.sf.net> +2007-12-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * unix/tclUnixFCmd.c (TclUnixCopyFile): [Bug 2976504]: Corrected - number of arguments to fstatfs() call. + * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Prevent shimmering crash + when -exact and -integer/-real are mixed. [Bug 1844789] -2010-03-24 Don Porter <dgp@users.sourceforge.net> +2007-11-28 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclResult.c: [Bug 2383005]: Revise [return -errorcode] so - * tests/result.test: that it rejects illegal non-list values. + * win/tclWinSock.c (Tcl_GetHostName): update to previous fix to + set hostname length appropriately, clean up check overall. -2010-03-20 Donal K. Fellows <dkf@users.sf.net> +2007-11-27 Don Porter <dgp@users.sourceforge.net> - * generic/tclIO.c (CopyData): Allow the total number of bytes copied - by [fcopy] to exceed 2GB. Can happen when no -size parameter given. + * win/tclWinSock.c: Add missing encoding conversion of the + [info hostname] value from the system encoding to Tcl's internal + encoding. This is important now that ICANN no longer limits host + names to ASCII. [Bug 1823552] -2010-03-18 Don Porter <dgp@users.sourceforge.net> +2007-11-26 Zoran Vasiljevic <vasiljevic@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/tclThread.c: Back-port locking changes from Tcl8.5 + in Tcl_Mutex/ConditionFinlize. Now we properly master-lock + the finalization of sync primitives. -2010-03-12 Jan Nijtmans <nijtmans@users.sf.net> +2007-11-15 Don Porter <dgp@users.sourceforge.net> - * win/makefile.vc: Fix [Bug 2967340]: Static build failure - * win/.cvsignore + * generic/regc_nfa.c: Fixed infinite loop in the regexp compiler + * generic/regcomp.c: [Bug 1810038]. Corrected looping logic in + * tests/regexp.test: fixempties() to avoid wasting time walking a + list of dead states [Bug 1832612]. Convert optst() from expensive + no-op to a cheap no-op. Improve newline usage in debug output. -2010-03-09 Andreas Kupries <andreask@activestate.com> +2007-11-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * 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. + * unix/tclUnixCompat.c (TclpGetHostByName): The six-argument form of + getaddressbyname_r() uses the fifth argument to indicate whether the + lookup succeeded or not on at least one platform. [Bug 1618235] -2010-03-09 Don Porter <dgp@users.sourceforge.net> +2007-10-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * 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/regc_lex.c (lexescape): Ensure that backreference numbers + can't overflow a signed int in a way that breaks things. [Bug 1810264] -2010-03-01 Alexandre Ferrieux <ferrieux@users.sourceforge.net> +2007-10-15 Miguel Sofer <msofer@users.sf.net> - * 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/tclParse.c (Tcl_ParseBraces): fix for possible read + after the end of buffer, [Bug 1813528] (Joe Mistachkin). -2010-02-27 Donal K. Fellows <dkf@users.sf.net> +2007-10-03 Miguel Sofer <msofer@users.sf.net> - * 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). + * generic/tclObj.c (Tcl_FindCommandFromObj): fix finding a deleted + command; cannot trigger this from Tcl itself, but crash reported + on xotcl. This check is new to 8.4 but exists in 8.5, so this is a + backport or something. Thanks Gustaf Neumann. -2010-02-21 Jan Nijtmans <nijtmans@users.sf.net> +2007-10-02 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclBasic.c: Fix [Bug 2954959] expr abs(0.0) is -0.0 - * tests/expr.test + * generic/tcl.h (Tcl_DecrRefCount): Update change from 2006-05-29 + to make macro more warning-robust in unbraced if code. -2010-02-19 Stuart Cassoff <stwo@users.sourceforge.net> +2007-10-02 Don Porter <dgp@users.sourceforge.net> - * tcl.m4: Correct compiler/linker flags for threaded builds on OpenBSD - * configure: (regenerated). + * README: Bump version number to 8.4.17 + * generic/tcl.h: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/README.binary: + * win/configure.in: -2010-02-19 Donal K. Fellows <dkf@users.sf.net> + * unix/configure: autoconf-2.13 + * 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-09-20 Don Porter <dgp@users.sourceforge.net> -2010-02-11 Donal K. Fellows <dkf@users.sf.net> + *** 8.4.16 TAGGED FOR RELEASE *** - * generic/tclIOCmd.c (Tcl_OpenObjCmd): [Bug 2949740]: Make sure that - we do not try to put a NULL pipeline channel into binary mode. + * doc/load.n: Backport corrected example. -2010-02-07 Jan Nijtmans <nijtmans@users.sf.net> +2007-09-19 Don Porter <dgp@users.sourceforge.net> - * 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!) + * unix/Makefile.in: Update `make dist` so that tclDTrace.d is + included in the source code distribution. -2010-02-03 Donal K. Fellows <dkf@users.sf.net> + * generic/tclPkg.c: Backport fix for [1573844] to the + * tests/pkg.test: TCL_TIP268 sections. - * generic/tclVar.c (Tcl_ArrayObjCmd): More corrections for the 'unset' - subcommand. +2007-09-18 Don Porter <dgp@users.sourceforge.net> -2010-02-02 Andreas Kupries <andreask@activestate.com> + * changes: updates for 8.4.16 release. - * 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. +2007-09-15 Daniel Steffen <das@users.sourceforge.net> -2010-02-02 Donal K. Fellows <dkf@users.sf.net> + * unix/tcl.m4 (SunOS-5.1x): replace direct use of '/usr/ccs/bin/ld' + in SHLIB_LD by 'cc' compiler driver. + * unix/configure: autoconf-2.13 - * 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-09-14 Daniel Steffen <das@users.sourceforge.net> -2010-02-01 Donal K. Fellows <dkf@users.sf.net> + * generic/tclDTrace.d (new file): add DTrace provider for Tcl; allows + * generic/tclCompile.h: tracing of proc and command entry & + * generic/tclBasic.c: return, bytecode execution, object + * generic/tclExecute.c: allocation and more; with essentially + * generic/tclInt.h: zero cost when tracing is inactive; + * generic/tclObj.c: enable with --enable-dtrace configure + * generic/tclProc.c: arg (disabled by default, will only + * unix/Makefile.in: enable if DTrace is present). + * unix/configure.in: [Patch 1793984] - * 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. + * macosx/Makefile: enable DTrace support. -2010-02-01 Jan Nijtmans <nijtmans@users.sf.net> + * unix/configure: autoconf-2.13 - * 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: +2007-09-11 Don Porter <dgp@users.sourceforge.net> -2010-01-29 Jan Nijtmans <nijtmans@users.sf.net> + * library/tcltest/tcltest.tcl: Accept underscores and colons in + * library/tcltest/pkgIndex.tcl: constraint names. Properly handle + constraint expressions that return non-numeric boolean results like + "false". Bump to tcltest 2.2.9. [Bug 1772989; RFE 1071322] - * 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: +2007-09-11 Pat Thoyts <patthoyts@users.sourceforge.net> -2010-01-19 Donal K. Fellows <dkf@users.sf.net> + * win/makefile.vc: AMD64 target fixes for symbols builds. + * win/rules.vc: - * doc/dict.n: [Bug 2929546]: Clarify just what [dict with] and [dict - update] are doing with variables. +2007-09-10 Jeff Hobbs <jeffh@ActiveState.com> -2010-01-18 Andreas Kupries <andreask@activestate.com> + * generic/tclLink.c (Tcl_UpdateLinkedVar): guard against var being + unlinked. [Bug 1740631] (maros) - * generic/tclIO.c (CreateScriptRecord): [Bug 2918110]: Initialize - the EventScriptRecord (esPtr) fully before handing it to - Tcl_CreateChannelHandler for registration. Otherwise a reflected - channel calling 'chan postevent' (== Tcl_NotifyChannel) in its - 'watchProc' will cause the function 'TclChannelEventScriptInvoker' - to be run on an uninitialized structure. +2007-08-25 Kevin Kenny <kennykb@acm.org> -2010-01-18 Donal K. Fellows <dkf@users.sf.net> + * generic/tclClock.c (FormatClock): Claimed additional space for + the %c format code to avoid a buffer overrun when formatting + (for example) a Friday in February in the Portuguese locale. + [Bug 1751117] - * generic/tclStringObj.c (Tcl_AppendFormatToObj): [Bug 2932421]: Stop - the [format] command from causing argument objects to change their - internal representation when not needed. Thanks to Alexandre Ferrieux - for this fix. +2007-08-24 Miguel Sofer <msofer@users.sf.net> -2010-01-06 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclCompile.c: replaced copy loop that tripped some + compilers with memmove [Bug 1780870] - * 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: +2007-08-14 Don Porter <dgp@users.sourceforge.net> -2010-01-05 Don Porter <dgp@users.sourceforge.net> + * tests/trace.test: Backport some tests. - * generic/tclPathObj.c (TclPathPart): [Bug 2918610]: Correct - * tests/fileName.test (filename-14.31): inconsistency between the - string rep and the intrep of a path value created by [file rootname]. - Thanks to Vitaly Magerya for reporting. +2007-08-14 Daniel Steffen <das@users.sourceforge.net> -2010-01-03 Donal K. Fellows <dkf@users.sf.net> + * unix/tclLoadDyld.c: use dlfcn API on Mac OS X 10.4 and later; fix + issues with loading from memory on intel and 64bit; add debug messages. - * unix/tcl.m4 (SC_CONFIG_CFLAGS): [Bug 1636685]: Use the configuration - for modern FreeBSD suggested by the FreeBSD porter. + * tests/load.test: add test load-10.1 for loading from vfs. -2009-12-30 Donal K. Fellows <dkf@users.sf.net> +2007-08-07 Daniel Steffen <das@users.sourceforge.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. + * generic/tclEnv.c: improve environ handling on Mac OS X (adapted + * unix/tclUnixPort.h: from Apple changes in Darwin tcl-64). -2009-12-29 Donal K. Fellows <dkf@users.sf.net> + * unix/Makefile.in: add support for compile flags specific to + object files linked directly into executables. - * generic/tclInterp.c (Tcl_MakeSafe): [Bug 2895741]: Make sure that - the min() and max() functions are supported in safe interpreters. + * unix/configure.in (Darwin): only use -seg1addr flag when prebinding; + use -mdynamic-no-pic flag for object files linked directly into exes; + support overriding TCL_PACKAGE_PATH in environment. -2009-12-28 Donal K. Fellows <dkf@users.sf.net> + * unix/configure: autoconf-2.13 - * 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): +2007-07-19 Don Porter <dgp@users.sourceforge.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/tclParse.c: In contexts where interp and parsePtr->interp + might be different, be sure to use the latter for error reporting. -2009-12-27 Donal K. Fellows <dkf@users.sf.net> +2007-07-05 Don Porter <dgp@users.sourceforge.net> - * doc/namespace.n (SCOPED SCRIPTS): [Bug 2921538]: Updated example to - not be quite so ancient. + * library/init.tcl (unknown): Corrected inconsistent error message + in interactive [unknown] when empty command is invoked. [Bug 1743676] -2009-12-23 Donal K. Fellows <dkf@users.sf.net> +2007-06-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * library/safe.tcl (AliasSource, AliasExeName): [Bug 2913625]: Stop - information about paths from leaking through [info script] and [info - nameofexecutable]. + * generic/tclBinary.c (Tcl_BinaryObjCmd): De-fang an instance of the + shared-result anti-pattern. [Bug 1716704] -2009-12-16 Donal K. Fellows <dkf@users.sf.net> +2007-06-30 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * library/safe.tcl (::safe::AliasGlob): Upgrade to correctly support a - larger fraction of [glob] functionality, while being stricter about - directory management. + * 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/tm.n: [Bug 1911342]: Formatting rewrite to avoid bogus crosslink - to the list manpage when generating HTML. +2007-06-29 Daniel Steffen <das@users.sourceforge.net> - * library/msgcat/msgcat.tcl (Init): [Bug 2913616]: Do not use platform - tests that are not needed and which don't work in safe interpreters. + * 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). -2009-12-12 Donal K. Fellows <dkf@users.sf.net> +2007-06-27 Don Porter <dgp@users.sourceforge.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/tclCmdMZ.c: Corrected broken trace reversal logic in + * generic/tclTest.c: TclCheckInterpTraces that led to infinite loop + * tests/basic.test: when multiple Tcl_CreateTrace traces were set + and one of them did not fire due to level restrictions. [Bug 1743941]. -2009-12-10 Andreas Kupries <andreask@activestate.com> +2007-06-23 Daniel Steffen <das@users.sourceforge.net> - * generic/tclObj.c (TclContinuationsEnter): [Bug 2895323]: Updated - comments to describe when the function can be entered for the same - Tcl_Obj* multiple times. This is a continuation of the 2009-11-10 - entry where a memory leak was plugged, but where not sure if that was - just a band-aid to paper over some other error. It isn't, this is a - legal situation. + * macosx/tclMacOSXNotify.c (AtForkChild): don't call CoreFoundation + APIs after fork() on systems where that would lead to an abort(). -2009-12-09 Andreas Kupries <andreask@activestate.com> +2007-06-10 Jeff Hobbs <jeffh@ActiveState.com> - * 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). + * README: updated links. [Bug 1715081] -2009-12-07 Don Porter <dgp@users.sourceforge.net> +2007-06-06 Daniel Steffen <das@users.sourceforge.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. + * unix/configure.in (Darwin): add plist for tclsh; link the + * unix/Makefile.in (Darwin): Tcl and tclsh plists into their + * macosx/Tclsh-Info.plist.in (new): binaries in all cases. -2009-12-02 Jan Nijtmans <nijtmans@users.sf.net> + * unix/tcl.m4 (Darwin): fix CF checks in fat 32&64bit builds. + * unix/configure: autoconf-2.13 - * tools/genStubs.tcl: Add support for win32 CALLBACK functions (needed - for Tk bugfix). +2007-06-05 Don Porter <dgp@users.sourceforge.net> -2009-11-30 Donal K. Fellows <dkf@users.sf.net> + * tests/result.test (result-6.2): Add test for [Bug 1649062] so that + 8.4 and 8.5 both test the same outcome and we verify compatibility. - * doc/Tcl.n: [Bug 2901433]: Improved description of expansion to - mention that it is using list syntax. +2007-05-30 Don Porter <dgp@users.sourceforge.net> -2009-11-27 Donal K. Fellows <dkf@users.sf.net> + * README: Bump version number to 8.4.16 + * generic/tcl.h: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/README.binary: + * win/configure.in: - * doc/BoolObj.3, doc/CrtChannel.3, doc/DictObj.3, doc/DoubleObj.3: - * doc/Ensemble.3, doc/Environment.3, doc/FileSystem.3, doc/Hash.3: - * doc/IntObj.3, doc/Limit.3, doc/ObjectType.3, doc/PkgRequire.3: - * doc/SetChanErr.3, doc/SetResult.3: [Patch 2903921]: Many small - spelling fixes from Larry Virden. + * unix/configure: autoconf-2.13 + * win/configure: -2009-11-25 Stuart Cassoff <stwo@users.sf.net> +2007-05-29 Jeff Hobbs <jeffh@ActiveState.com> - * unix/configure.in: [Patch 2892871]: Remove unneeded - * unix/tcl.m4: AC_STRUCT_TIMEZONE and use - * unix/tclConfig.h.in: AC_CHECK_MEMBERS([struct stat.st_blksize]) - * unix/tclUnixFCmd.c: instead of AC_STRUCT_ST_BLKSIZE. - * unix/configure: Regenerated with autoconf-2.59. + * unix/tclUnixThrd.c (Tcl_JoinThread): fix for 64-bit handling of + pthread_join exit return code storage. [Bug 1712723] -2009-11-16 Alexandre Ferrieux <ferrieux@users.sourceforge.net> +2007-05-24 Don Porter <dgp@users.sourceforge.net> - * generic/tclEncoding.c: Fix [Bug 2891556] and improve test to detect - * tests/decoding.test: similar manifestations in the future. + *** 8.4.15 TAGGED FOR RELEASE *** -2009-11-12 Don Porter <dgp@users.sourceforge.net> + * generic/tclIO.c: Backport memleak fix in TclFinalizeIOSubsystem. - *** 8.5.8 TAGGED FOR RELEASE *** +2007-05-17 Don Porter <dgp@users.sourceforge.net> - * changes: Update for 8.5.8 release. + * tests/fCmd.test: Backport the notNetworkFilesystem constraint. - * generic/tclClock.c (TclClockInit): Do not create [clock] support - commands in safe interps. +2007-05-15 Don Porter <dgp@users.sourceforge.net> - * tests/io.test: New test io-53.11 to test for [Bug 2895565]. + * generic/tclNamesp.c: Plugged memory leak related to + [namespace delete ::]. [Bug 1716782] -2009-11-12 Andreas Kupries <andreask@activestate.com> + * changes: updates for 8.4.15 release. - * 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. + * win/tclWinReg.c: Bump to registry 1.1.5 to account + * library/reg/pkgIndex.tcl: for [Bug 1682211] fix. -2009-11-11 Pat Thoyts <patthoyts@users.sourceforge.net> +2007-05-10 Don Porter <dgp@users.sourceforge.net> - * tests/fCmd.test: Fixed a number of issues for Vista and Win7 - * tests/registry.test: that are due to restricted permissions. - * tests/winFCmd.test: + * generic/tclInt.h: TclFinalizeThreadAlloc() is always defined, + so make sure it is also always declared. -2009-11-11 Don Porter <dgp@users.sourceforge.net> + [Tcl Bug 1706140] - * library/http/http.tcl: [Bug 2891171]: Update the URL syntax - check to RFC 3986 compliance on the subject of non-encoded question - mark characters. + * generic/tclCmdMZ.c (Trace*Proc): Update Tcl_VarTraceProcs so + * generic/tclLink.c (LinkTraceProc): that they call + * generic/tclUtil.c (TclPrecTraceProc): Tcl_InterpDeleted() for + themselves, and do not rely on (frequently buggy) setting of the + TCL_INTERP_DESTROYED flag by the trace core. - * 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. + * generic/tclVar.c: Update callers of CallVarTraces to not + pass in the TCL_INTERP_DESTROYED flag. Also apply filters so that + public routines only pass documented flag values down to lower level + routines. -2009-11-11 Alexandre Ferrieux <ferrieux@users.sourceforge.net> + * generic/tclVar.c (CallVarTraces): The setting of the + TCL_INTERP_DESTROYED flag is now done entirely within the + CallVarTraces routine, the only place it can be done right. - * generic/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. +2007-04-30 Daniel Steffen <das@users.sourceforge.net> -2009-11-10 Don Porter <dgp@users.sourceforge.net> + * unix/Makefile.in: add 'tclsh' dependency to install targets that rely + on tclsh, fixes parallel 'make install' from empty build dir. - * generic/tclBasic.c: Plug another leak in TCL_EVAL_DIRECT - evaluation. +2007-04-29 Daniel Steffen <das@users.sourceforge.net> - * generic/tclObj.c: Plug memory leak in TclContinuationsEnter(). - [Bug 2895323] + * unix/tclUnixFCmd.c: add workaround for crashing bug in fts_open() + * unix/tclUnixInit.c: without FTS_NOSTAT on 64bit Darwin 8 or earlier. -2009-11-09 Stuart Cassoff <stwo@users.sf.net> + * unix/tclLoadDyld.c (TclpLoadMemory): fix (void*) arithmetic. - * win/README: [bug 2459744]: Removed outdated Msys + Mingw info. + * macosx/tclMacOSXNotify.c: fix warnings. -2009-11-09 Don Porter <dgp@users.sourceforge.net> + * macosx/README: sync whitespace/formatting with HEAD. + * macosx/tclMacOSXBundle.c: + * macosx/tclMacOSXNotify.c: + * unix/tclLoadDyld.c: - * generic/tclBasic.c (TclEvalObjEx): Plug memory leak in - TCL_EVAL_DIRECT evaluation. + * macosx/Makefile: fix/add copyright and license refs. + * macosx/tclMacOSXBundle.c: + * macosx/Tcl-Info.plist.in: - * tests/info.test: Resolve ambiguous resolution of variable "res". + * unix/Makefile.in (dist): copy license.terms to dist macosx dir. + * unix/configure.in: install license.terms into Tcl.framework. + * unix/configure: autoconf-2.13 -2009-11-03 Don Porter <dgp@users.sourceforge.net> +2007-04-21 Kevin B. Kenny <kennyb@acm.org> - * 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: + * generic/tclClock.c: Restored Cygwin buildability [Bug 1387154] + * generic/tclInt.decls: Yet another round of attempting + * generic/tclInt.h: to get the correct type signature + * unix/tclUnixPort.h: for TclpLocaltime and TclpGmtime. + * unix/tclUnixTime.c: CONST TclpTime_t is a 'time_t *CONST' + * win/tclWinTime.c: and not a 'CONST time_t*' [Bug 1677275] + * generic/tclIntDecls.h: + * generic/tclIntPlatDecls.h: Regenerated. - * unix/configure: autoconf-2.59 - * win/configure: +2007-03-24 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * changes: Update for 8.5.8 release. + * 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. -2009-11-03 Andreas Kupries <andreask@activestate.com> +2007-03-19 Don Porter <dgp@users.sourceforge.net> - * library/safe.tcl (::safe::InterpSetConfig): [Bug 2854929]: Added - code to recursively find deeper paths which may contain modules. - Required to handle modules with names like 'platform::shell', which - translate into 'platform/shell-X.tm', i.e arbitrarily deep - subdirectories. + * generic/tclEvent.c (Tcl_CreateThread): Replaced some calls to + * generic/tclPkg.c (CheckVersion): Tcl_Alloc() with calls to + * unix/tclUnixTime.c (SetTZIfNecessary): ckalloc(), which better + * win/tclAppInit.c (setargv): supports memory debugging. -2009-11-03 Kevin B. Kenny <kennykb@acm.org> +2007-03-17 Kevin 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. + * 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. -2009-11-03 Pat Thoyts <patthoyts@users.sourceforge.net> +2007-03-13 Don Porter <dgp@users.sourceforge.net> - * tests/tcltest.test: Backport permissions fix for Win7. + * generic/tclExecute.c (INST_FOREACH_STEP4): Re-fetch pointers for + * tests/foreach.test (foreach-10.1): the value list each iteration + of the loop as defense against shimmers. [Bug 1671087] -2009-10-31 Donal K. Fellows <dkf@users.sf.net> + * generic/tclVar.c (TclArraySet): Re-fetch pointers for the list + * tests/var.test (var-17.1): argument of [array set] each time + through the loop as defense against possible shimmer issues. + [Bug 1669489]. - * generic/tclBasic.c (ExprRoundFunc): [Bug 2889593]: Correctly report - the expected number of arguments when generating an error for round(). +2007-03-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2009-10-29 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdIL.c (Tcl_LsortObjCmd): Handle tricky case with loss + * tests/cmdIL.test (cmdIL-1.29):of list rep during sorting due + to shimmering. [Bug 1675116] - * 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. +2007-03-07 Daniel Steffen <das@users.sourceforge.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. - -2009-10-29 Kevin B. Kenny <kennykb@acm.org> - - * library/clock.tcl (LocalizeFormat): - * tests/clock.test (clock-67.1): [Bug 2819334]: - Corrected a problem where '%%' followed by a letter in a format group - could expand recursively: %%R would turn into %%H:%M:%S. - -2009-10-28 Don Porter <dgp@users.sourceforge.net> - - * generic/tclLiteral.c: Backport fix for [Bug 2888044]. - -2009-10-28 Kevin B. Kenny <kennykb@acm.org> - - * tests/fileName.test (fileName-20.[78]): Corrected poor test - hygiene (failure to save and restore the working directory) that - caused these two tests to fail on Windows (and [Bug 2806250] to be - reopened). - -2009-10-27 Don Porter <dgp@users.sourceforge.net> - - * generic/tclPathObj.c: [Bug 2884203]: Missing refcount on cached - normalized path caused crashes. - -2009-10-27 Kevin B. Kenny <kennykb@acm.org> - - * library/clock.tcl (ParseClockScanFormat): [Bug 2886852]: - Corrected a problem where [clock scan] didn't load the timezone soon - enough when processing a time format that lacked a complete date. - * tests/clock.test (clock-66.1): - Added a test case for the above bug. - * library/tzdata/America/Argentina/Buenos_Aires: - * library/tzdata/America/Argentina/Cordoba: - * library/tzdata/America/Argentina/San_Luis: - * library/tzdata/America/Argentina/Tucuman: - New DST rules for Argentina. (Olson's tzdata2009p.) - -2009-10-24 Kevin B. Kenny <kennykb@acm.org> - - * library/clock.tcl (ProcessPosixTimeZone): - Corrected a regression in the fix to [Bug 2207436] that caused [clock] - to apply EU daylight saving time rules in the US. Thanks to Karl - Lehenbauer for reporting this regression. - * tests/clock.test (clock-52.4): - Added a regression test for the above regression. - * library/tzdata/Asia/Dhaka: - * library/tzdata/Asia/Karachi: - New DST rules for Bangladesh and Pakistan. (Olson's tzdata2009o.) + * macosx/tclMacOSXNotify.c: add spinlock debugging and sanity checks. -2009-10-23 Andreas Kupries <andreask@activestate.com> + * unix/tcl.m4 (Darwin): s/CFLAGS/CPPFLAGS/ in macosx-version-min check. + * unix/configure: autoconf-2.13 - * 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>. +2007-03-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2009-10-21 Donal K. Fellows <dkf@users.sf.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/tclPosixStr.c: [Bug 2882561]: Work around oddity on Haiku OS - where SIGSEGV and SIGBUS are the same value. +2007-02-22 Andreas Kupries <andreask@activestate.com> -2009-10-19 Don Porter <dgp@users.sourceforge.net> + * tests/pkg.test: Added tests for the case of an alpha package + satisfying a require for the regular package, demonstrating a + corner case specified in TIP#280. More notes in the comments to + the test. - * 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. +2007-02-20 Don Porter <dgp@users.sourceforge.net> -2009-10-18 Joe Mistachkin <joe@mistachkin.com> + * doc/tcltest.n: Typo fix. [Bug 1663539] - * 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. +2007-02-19 Jeff Hobbs <jeffh@ActiveState.com> - * doc/memory.n: [Bug 988703]: Add mechanism for finding what Tcl_Objs - * generic/tclCkalloc.c (MemoryCmd): are allocated when built for - * generic/tclInt.decls: memory debugging. This was previously - * generic/tclInt.h: backported from Tcl 8.6 with the corrections to - * generic/tclObj.c (ObjData, TclFinalizeThreadObjects): fix [Bug - 2871908]. However, there were key elements missing. These changes make - things consistent between branches. + * generic/tclIOUtil.c (Tcl_FSEvalFile): safe incr of objPtr ref. -2009-10-17 Donal K. Fellows <dkf@users.sf.net> + * unix/tcl.m4: use SHLIB_SUFFIX=".so" on HP-UX ia64 arch. + * unix/configure: autoconf-2.13 - * 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. +2007-02-12 Andreas Kupries <andreask@activestate.com> -2009-10-08 Donal K. Fellows <dkf@users.sf.net> + * generic/tclEncoding.c (EscapeFromUtfProc): Applied patch + supplied by Mo DeJong to fix [Bug 1516109]. Backport from Tcl + 8.5. Mo's description: Clear the TCL_ENCODING_END flag when end + bytes are written. This fix keep this method from writing escape + bytes for an encoding like iso2022-jp multiple times when the + escape byte overlap with the end of the IO buffer. + * tests/io.test: Add test case for escape byte overlap case. - * 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. +2007-02-04 Daniel Steffen <das@users.sourceforge.net> -2009-10-07 Andreas Kupries <andreask@activestate.com> + * unix/configure.in: add caching to -pipe check. + * unix/configure: autoconf-2.13 - * 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>. +2007-01-30 Jeff Hobbs <jeffh@ActiveState.com> - * 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. + * win/Makefile.in (install-private-headers): added target -2009-10-06 Don Porter <dgp@users.sourceforge.net> +2007-01-29 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]. + * doc/fcopy.n: Typo fix. [Bug 1630627] -2009-10-05 Don Porter <dgp@users.sourceforge.net> +2007-01-25 Daniel Steffen <das@users.sourceforge.net> - * changes: Update for 8.5.8 release. + * unix/tcl.m4: integrate CPPFLAGS into CFLAGS as late as possible + * unix/configure.in: and move (rather than duplicate) -isysroot flags + from CFLAGS to CPPFLAGS to avoid errors about multiple -isysroot flags + from some older gcc builds. -2009-10-04 Daniel Steffen <das@users.sourceforge.net> + * unix/configure: autoconf-2.13 - * macosx/tclMacOSXBundle.c: Workaround CF memory managment bug in - * unix/tclUnixInit.c: Mac OS X 10.4 & earlier. [Bug 2569449] +2007-01-22 Andreas Kupries <andreask@activestate.com> -2009-10-02 Kevin B. Kenny <kennykb@acm.org> + * compat/memcmp.c (memcmp): Fixed the VOID / CONST typo introduced + by the last checkin. - * library/tzdata/Africa/Cairo: - * library/tzdata/Asia/Gaza: - * library/tzdata/Asia/Karachi: - * library/tzdata/Pacific/Apia: Olson's tzdata2009n. +2007-01-22 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2009-09-29 Don Porter <dgp@users.sourceforge.net> + * compat/memcmp.c (memcmp): Reworked so that arithmetic is never + performed upon void pointers, since that is illegal. [Bug 1631017] - * 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]. +2006-01-19 Daniel Steffen <das@users.sourceforge.net> -2009-09-11 Don Porter <dgp@users.sourceforge.net> + * macosx/tclMacOSXNotify.c: accommodate changes to prototypes of + OSSpinLock(Un)Lock API. - * library/http/http.tcl: Bump to http 2.7.4 to account for - * library/http/pkgIndex.tcl: [Bug 2849860] fix. - * unix/Makefile.in: - * win/Makefile.in: + * tests/env.test: add extra system env vars that need to be preserved + on some Mac OS X versions for testsuite to work. -2009-09-10 Donal K. Fellows <dkf@users.sf.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. - * library/http/http.tcl (http::Event): [Bug 2849860]: Handle charset - names in double quotes; some servers like generating them like that. + * unix/configure: autoconf-2.13 -2009-09-01 Don Porter <dgp@users.sourceforge.net> +2006-12-19 Daniel Steffen <das@users.sourceforge.net> - * library/tcltest/tcltest.tcl: Bump to tcltest 2.3.2 after revision - * library/tcltest/pkgIndex.tcl: to verbose error message. - * unix/Makefile.in: - * win/Makefile.in: + * unix/tclUnixThrd.c (TclpInetNtoa): fix for 64 bit. -2009-08-27 Don Porter <dgp@users.sourceforge.net> + * unix/tcl.m4 (Darwin): --enable-64bit: verify linking with 64bit -arch + flag succeeds before enabling 64bit build. + * unix/configure: autoconf-2.13 - * generic/tclStringObj.c: [Bug 2845535]: A few more string - overflow cases in [format]. +2006-12-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2009-08-25 Andreas Kupries <andreask@activestate.com> + * doc/string.n: Fix example. [Bug 1615277] - * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard) - (EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations) - (TclEvalObjEx): - * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines): - * generic/tclCompCmds.c (*): - * generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv) - (TclFreeCompileEnv, TclCompileScript): - * generic/tclCompile.h (CompileEnv): - * generic/tclInt.h (ContLineLoc, Interp): - * generic/tclObj.c (ThreadSpecificData, ContLineLocFree) - (TclThreadFinalizeObjects, TclInitObjSubsystem, TclContinuationsEnter) - (TclContinuationsEnterDerived, TclContinuationsCopy) - (TclContinuationsGet, TclFreeObj): - * generic/tclParse.c (TclSubstTokens, Tcl_SubstObj): - * generic/tclProc.c (TclCreateProc): - * generic/tclVar.c (TclPtrSetVar): - * tests/info.test (info-30.0-24): +2006-12-05 Andreas Kupries <andreask@activestate.com> - Extended parser, compiler, and execution with code and attendant data - structures tracking the positions of continuation lines which are not - visible in script Tcl_Obj*'s, to properly account for them while - counting lines for #280. + * tests/pkg.test: Backport to 8.4 (Don Porter's work): + * generic/tclPkg.c: When no requirements are supplied to a [package + require $pkg] and [package unknown] is invoked to find a satisfying + package, pass the requirement argument "0-" (which means all versions + are acceptable). This permits a registered [package unknown] command + to call [package vsatisfies $testVersion {*}$args] without any special + handling of the empty $args case. This fixes/avoids a bug in + [::tcl::tm::UnknownHandler] that was causing old TM versions to be + provided in preference to newer TM versions. Thanks to Julian Noble + for discovering the issue. -2009-08-24 Daniel Steffen <das@users.sourceforge.net> +2006-12-04 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * 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) + * doc/file.n: Fix confusing wording for [file pathtype]. [Bug 1606454] -2009-08-21 Don Porter <dgp@users.sourceforge.net> +2006-11-28 Andreas Kupries <andreask@activestate.com> - * generic/tclFileName.c: Correct regression in [Bug 2837800] fix. - * tests/fileName.test: + * generic/tclBasic.c: TIP #280 implementation, conditional on the + * generic/tclCmdAH.c: define TCL_TIP280. + * generic/tclCmdIL.c: + * generic/tclCmdMZ.c: + * generic/tclCompCmds.c: + * generic/tclCompExpr.c: + * generic/tclCompile.c: + * generic/tclCompile.h: + * generic/tclExecute.c: + * generic/tclIOUtil.c: + * generic/tclInt.h: + * generic/tclInterp.c: + * generic/tclNamesp.c: + * generic/tclObj.c: + * generic/tclProc.c: + * tests/compile.test: + * tests/info.test: + * tests/platform.test: + * tests/safe.test: -2009-08-20 Don Porter <dgp@users.sourceforge.net> +2006-11-27 Kevin Kenny <kennykb@acm.org> - * generic/tclFileName.c: [Bug 2837800]: Get the correct result from - [glob */test] when * matches something like ~foo. + * 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] - * 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. +2006-11-26 Daniel Steffen <das@users.sourceforge.net> -2009-08-20 Donal K. Fellows <dkf@users.sf.net> + * unix/tcl.m4 (Linux): --enable-64bit support. [Patch 1597389] + * unix/configure: autoconf-2.13 [Bug 1230558] - * generic/tclCmdIL.c (Tcl_LsortObjCmd): Plug memory leak. +2006-11-07 Andreas Kupries <andreask@activestate.com> -2009-08-18 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixFCmd.c (CopyFile): Added code to fall back to a + hardwired default block size should the filesystem report a bogus + value. [Bug 1586470] - * generic/tclPathObj.c: [Bug 2837800]: Added NULL check to prevent - * tests/fileName.test: crashes during [glob]. +2006-11-03 Miguel Sofer <msofer@users.sf.net> -2009-08-06 Andreas Kupries <andreask@activestate.com> + * generic/tclBasic.c (TEOVI): fix for possible leak of a Command in + the presence of execution traces that delete it. - * 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}). + * generic/tclBasic.c (TEOVI): + * tests/trace.test (trace-21.11): fix for [Bug 1590232], execution + traces may cause a second command resolution in the wrong + namespace. -2009-08-02 Donal K. Fellows <dkf@users.sf.net> +2006-11-01 Daniel Steffen <das@users.sourceforge.net> - * 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/tclEnv.c (Darwin): mark _environ symbol as unexported. -2009-07-31 Don Porter <dgp@users.sourceforge.net> +2006-10-31 Pat Thoyts <patthoyts@users.sourceforge.net> - * 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. + * rules.vc: Fix [Bug 1582769] build with VC2003 and correct i386 arch -2009-07-24 Andreas Kupries <andreask@activestate.com> +2006-10-23 Don Porter <dgp@users.sourceforge.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. + * README: Bump version number to 8.4.15 + * generic/tcl.h: + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/README.binary: + * win/configure.in: -2009-07-23 Joe Mistachkin <joe@mistachkin.com> + * unix/configure: autoconf-2.13 + * win/configure: - * generic/tclNotify.c: [Bug 2820349]: Ensure that queued events are - freed once processed. +2006-10-18 Pat Thoyts <patthoyts@users.sourceforge.net> -2009-07-21 Kevin B. Kenny <kennykb@acm.org> + *** 8.4.14 TAGGED FOR RELEASE *** - * library/tzdata/Asia/Dhaka: - * library/tzdata/Indian/Mauritius: Olson's tzdata2009k. + * win/nmakehlp.c: Ensure builds with VC6 without Platform SDK. + * win/rules.vc: Pickup MACHINE from environment. -2009-07-20 Donal K. Fellows <dkf@users.sf.net> +2006-10-17 Don Porter <dgp@users.sourceforge.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/tclIOUtil.c: Cleaned up some code flagged by a + * generic/tclInt.h: `make checkexports` test. + * win/tclWin32Dll.c: + * win/tclWinFile.c: -2009-07-16 Don Porter <dgp@users.sourceforge.net> +2006-10-16 Daniel Steffen <das@users.sourceforge.net> - * generic/tclCmdIL.c: Removed unused variables. - * generic/tclCompile.c: - * generic/tclVar.c: - * unix/tclUnixChan.c: + * changes: updates for 8.4.14 release. - * generic/tclScan.c: Typo in ACCEPT_NAN configuration. + * macosx/Makefile: don't redo prebinding of non-prebound binaires. - * generic/tclStrToD.c: [Bug 2819200]: Set floating point control - register on MIPS systems so that the gradual underflow expected by Tcl - is in effect. +2006-10-11 Andreas Kupries <andreask@activestate.com> -2009-07-14 Andreas Kupries <andreask@activestate.com> + * generic/tclPkg.c (Tcl_PkgRequireEx): Corrected crash when argument + version==NULL passed in. Backport of the fix for the same problem in + 8.5. - * 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): +2006-10-10 Don Porter <dgp@users.sourceforge.net> - 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. + * changes: changes updated for 8.4.14 release. - 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). +2006-10-06 Jeff Hobbs <jeffh@ActiveState.com> -2009-07-01 Pat Thoyts <patthoyts@users.sourceforge.net> + * tests/http.test: update tests to handle strictness change. - * 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. +2006-10-06 Pat Thoyts <patthoyts@users.sourceforge.net> -2009-06-15 Don Porter <dgp@users.sourceforge.net> + * win/rules.vc: avoid /RTCc flag with MSVC8. [Bug 1571954] - * generic/tclStringObj.c: sprintf() -> Tcl_ObjPrintf() conversion. +2006-10-05 Jeff Hobbs <jeffh@ActiveState.com> -2009-06-13 Don Porter <dgp@users.sourceforge.net> + * library/http/http.tcl (http::geturl): only do geturl url rfc 3986 + validity checking if $::http::strict is true (default false for 8.4). + [Bug 1560506] - * generic/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/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] -2009-06-10 Don Porter <dgp@users.sourceforge.net> +2006-10-05 Miguel Sofer <msofer@users.sf.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] + * 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-06-09 Kevin B. Kenny <kennykb@acm.org> +2006-10-02 Don Porter <dgp@users.sourceforge.net> - * generic/tclGetDate.y: Fixed a thread safety bug in the generated - * library/clock.tcl: Bison parser (needed a %pure-parser - * tests/clock.test: declaration to avoid static variables). - Discovered that the %pure-parser declaration - allowed for returning the Bison error message - to the Tcl caller in the event of a syntax - error, so did so. - * generic/tclDate.c: bison 2.3 + * generic/tclFileName.c (TclGlob): Prevent doubling of directory + separators by [glob]. [Bug 1569042] -2006-06-08 Kevin B. Kenny <kennykb@acm.org> +2006-10-01 Pat Thoyts <patthoyts@users.sourceforge.net> - * library/tzdata/Asia/Dhaka: New DST rule for Bangladesh. - (Olson's tzdata2009i.) + * win/tclWinFile.c: Handle possible missing define. + * win/tclWinFile.c: Backported fix for [Bug 1420432] (cannot set + * tests/cmdAH.test: mtime for directories on windows). -2009-06-02 Don Porter <dgp@users.sourceforge.net> +2006-09-30 Miguel Sofer <msofer@users.sf.net> - * 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. + * generic/tclUtil.c (Tcl_SplitList): optimisation, [Patch 1344747] + by dgp. - * generic/tclExecute.c: Corrected implementations and selection - logic of the INST_EXPON instruction to fix [Bug 2798543]. +2006-09-26 Pat Thoyts <patthoyts@users.sourceforge.net> -2009-06-01 Don Porter <dgp@users.sourceforge.net> + * win/makefile.vc: Updated MSVC build to properly deal with + * win/nmakehlp.c: MSVC8 and AMD64 target. Backport from 8.5 + * win/rules.vc: + * generic/tcl.h: Fixed stat definition for MSVC8 AMD64. + * win/tclWinSock.c: Casting type police. + * win/tclWinTime.c: - * tests/expr.test: Added many tests demonstrating the broken - cases of [Bug 2798543]. +2006-09-26 Don Porter <dgp@users.sourceforge.net> -2009-05-30 Kevin B. Kenny <kennykb@acm.org> + * 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. - * library/tzdata/Africa/Cairo: - * library/tzdata/Asia/Amman: Olson's tzdata2009h. +2006-09-25 Andreas Kupries <andreask@activestate.com> -2009-05-29 Andreas Kupries <andreask@activestate.com> + * generic/tclIO.c (Tcl_StackChannel): Fixed [SF Tcl Bug 1564642], aka + coverity #51. Extended loop condition, added checking for NULL to + prevent seg.fault. - * library/platform/platform.tcl: Fixed handling of cpu ia64, - * library/platform/pkgIndex.tcl: taking ia64_32 into account - * unix/Makefile.in: now. Bumped version to 1.0.5. Updated the - * win/Makefile.in: installation commands. +2006-09-25 Andreas Kupries <andreask@activestate.com> -2009-05-07 Miguel Sofer <msofer@users.sf.net> + * generic/tclBasic.c: Reverted exposure of patchlevel in registered + core version when TIP#268 features are activated. Better compatibility + with existing packages. Like Tk. - * generic/tclObj.c (Tcl_GetCommandFromObj): fix for bug [2785893], - insure that a command in a deleted namespace cannot be found - through a cached name. +2006-09-24 Miguel Sofer <msofer@users.sf.net> -2009-05-06 Don Porter <dgp@users.sourceforge.net> + * generic/tclParse.c (Tcl_ParseCommand): also return an error if + start==NULL and numBytes<0. This is coverity's bug #20 - * generic/tclCmdMZ.c: Improve overflow error message from - [string repeat]. [Bug 2582327] + * generic/tclStringObj.c (STRING_SIZE): fix allocation for 0-length + strings. This is coverity's bugs #54-5 -2009-04-28 Jeff Hobbs <jeffh@ActiveState.com> +2006-09-22 Andreas Kupries <andreask@activestate.com> - * unix/tcl.m4, unix/configure (SC_CONFIG_CFLAGS): harden the check - to add _r to CC on AIX with threads. + * generic/tclInt.h: Moved TIP#268's field 'packagePrefer' to the end + of the structure, for better backward compatibility. -2009-04-27 Alexandre Ferrieux <ferrieux@users.sourceforge.net> +2006-09-22 Andreas Kupries <andreask@activestate.com> - * 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. + * generic/tclPkg.c (Tcl_PkgRequireEx): Changes handling of the return + information from 'Tcl_PkgRequireProc'. Keep the interpreter result + empty. Backport of fix for problem found while testing #268 under 8.5. + More details in the comments. -2009-04-27 Alexandre Ferrieux <ferrieux@users.sourceforge.net> +2006-09-22 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * win/tclWinSock.c: Backport fix for [Bug 2446662]: resync Win - behavior on RST with that of unix (EOF). + * 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] -2009-04-27 Donal K. Fellows <dkf@users.sf.net> +2006-09-21 Andreas Kupries <andreask@activestate.com> - * 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/tcl.decls: Implemented TIP #268, conditionally. + * generic/tclBasic.c: Define TCL_TIP268 to activate the new + * generic/tclDecls.h: features. + * generic/tclInt.h: + * generic/tclPkg.c: + * generic/tclStubInit.c: + * generic/tclTest.c: + * library/init.tcl + * library/package.tcl: + * tests/pkg.test: + * tests/platform.test: + * tests/safe.test: + * doc/PkgRequire.3: -2009-04-24 Stuart Cassoff <stwo@users.sf.net> +2006-09-15 Jeff Hobbs <jeffh@ActiveState.com> - * unix/Makefile.in: [Patch 2769530]: Don't chmod/exec installManPage. + * library/http/http.tcl: Change " " -> "+" url encoding mapping + * library/http/pkgIndex.tcl: to " " -> "%20" as per RFC 3986. + * tests/http.test (http-5.1): bump http to 2.5.3 for 8.4.14 -2009-04-15 Don Porter <dgp@users.sourceforge.net> +2006-09-12 Andreas Kupries <andreask@activestate.com> - *** 8.5.7 TAGGED FOR RELEASE *** + * unix/configure.in (HAVE_MTSAFE_GETHOST*): Modified to recognize + HP-UX 11.00 and beyond as having mt-safe implementations of the + gethost functions. + * unix/configure: Regenerated, using autoconf 2.13 - * generic/tclStringObj.c: AppendUnicodeToUnicodeRep failed - to set stringPtr->allocated to 0, leading to crashes. + * 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. - * changes: Update for 8.5.7 release. +2006-09-11 Andreas Kupries <andreask@activestate.com> -2009-04-14 Stuart Cassoff <stwo@users.sourceforge.net> + * tests/msgcat.test: Bumped version in auxiliary files as well. + * doc/msgcat.n: - * unix/tcl.m4: Removed -Wno-implicit-int from CFLAGS_WARNING. +2006-09-11 Daniel Steffen <das@users.sourceforge.net> -2008-04-14 Kevin B. Kenny <kennykb@acm.org> + * unix/tclUnixCompat.c: make compatLock static and only declare it + when it will actually be used; #ifdef parts of TSD that are not always + needed; adjust #ifdefs to cover all possible cases; fix whitespace. - * library/tzdata/Asia/Karachi: Updated rules for Pakistan Summer - Time (Olson's tzdata2009f) +2006-09-10 Don Porter <dgp@users.sourceforge.net> -2009-04-10 Don Porter <dgp@users.sourceforge.net> + * library/msgcat/msgcat.tcl: Bump to version msgcat 1.3.4 to account + * library/msgcat/pkgIndex.tcl: for modifications. - * changes: Update for 8.5.7 release. +2006-09-10 Daniel Steffen <das@users.sourceforge.net> - * generic/tcl.h: Bump to 8.5.7 for release. - * library/init.tcl: - * tools/tcl.wse.in: + * 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). + + * unix/tcl.m4: add caching to new SC_TCL_* macros for MT-safe wrappers + * unix/configure: autoconf-2.13 + +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-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.13 + +2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + + * unix/tclUnixFCmd.c: Removed some false tests added (and left by + mistake) by fixing [Bug 999544] + + * unix/tclUnixCompat.c: Added fallback to MT-unsafe library calls if + TCL_THREADS is not defined. Fixed alignment of arrays copied by + CopyArrayi() to be on the sizeof(char *) boundary. + +2006-09-07 Andreas Kupries <andreask@activestate.com> + + * unix/configure: Regenerated using autoconf 2.13. + +2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + + * unix/tclUnixChan.c Rewritten MT-safe wrappers to + * unix/tclUnixCompat.c return ptrs to TSD storage + * unix/tclUnixFCmd.c making them all look like their + * unix/tclUnixPort.h MT-unsafe pendants API-wise. + * unix/tclUnixSock.c + +2006-09-06 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + + * unix/tclUnixChan.c: Added TCL_THREADS ifdef'ed usage + * unix/tclUnixFCmd.c: of MT-safe calls like: + * unix/tclUnixSock.c: getpwuid, getpwnam, getgrgid, getgrnam, + * unix/tclUnixPort.h: gethostbyname and gethostbyaddr. + * unix/Makefile.in: See Tcl Bug: 999544 * unix/configure.in: - * unix/tcl.spec: - * win/configure.in: - * README: + * unix/tcl.m4: + * unix/configure: Regenerated. - * unix/configure: autoconf-2.59 - * win/configure: + * unix/tclUnixCompat.c: New file containing MT-safe implementation of + some library calls. - * generic/tclStringObj.c (UpdateStringOfString): Fix bug detected - by compiler warning about undefined "dst". +2006-09-04 Don Porter <dgp@users.sourceforge.net> - * tests/httpd: Backport new tests for http 2.7.3. - * tests/http.tcl: + * tests/main.text (Tcl_Main-4.4): Test corrected to not be + timing sensitive to the Bug 1481986 fix. [Bug 1550858] -2009-04-10 Daniel Steffen <das@users.sourceforge.net> +2006-09-04 Jeff Hobbs <jeffh@ActiveState.com> - * unix/tclUnixChan.c: TclUnixWaitForFile(): use FD_* macros - * macosx/tclMacOSXNotify.c: to manipulate select masks (Cassoff). - [Freq 1960647] [Bug 3486554] + * doc/package.n: correct package example - * unix/tclLoadDyld.c: use RTLD_GLOBAL instead of RTLD_LOCAL. - [Bug 1961211] +2006-08-30 Jeff Hobbs <jeffh@ActiveState.com> - * 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). + * win/tclWinChan.c: [Bug 819667] Improve logic for identifying COM + ports. - * 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. + * win/tclWinFCmd.c: [Bug 1548263] Added test for NULL return + * generic/tclIOUtil.c: from Tcl_FSGetNormalizedPath which was + causing segv's - * unix/tclUnixNotify.c: simplify, sync with tclMacOSXNotify.c. + * generic/tclFileName.c (TclDoGlob): match incr with existing decr. - * generic/tclInt.decls: add TclMacOSXNotifierAddRunLoopMode() - * generic/tclIntPlatDecls.h: internal API, regen. - * generic/tclStubInit.c: + * unix/Makefile.in: add valgrindshell target and update default + VALGRINDARGS. User can override, or add to it with VALGRIND_OPTS env + var. - * unix/configure.in (Darwin): use Darwin SUSv3 extensions if - available; remove /Network locations - from default tcl package search path - (NFS mounted locations and thus slow). - * unix/configure: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 + * generic/tclBasic.c (Tcl_CreateInterp): init iPtr->threadId - * macosx/tclMacOSXBundle.c: on Mac OS X 10.4 and later, replace - deprecated NSModule API by dlfcn API. + * generic/tclIOGT.c (ExecuteCallback): + * generic/tclPkg.c (Tcl_PkgRequireEx): replace Tcl_GlobalEval(Obj) + with more efficient Tcl_Eval(Obj)Ex -2009-04-09 Kevin B. Kenny <kennykb@acm.org> +2006-08-22 Andreas Kupries <andreask@activestate.com> - * tools/tclZIC.tcl: Always emit Unix-style line terminators. - * library/tzdata: Olson's tzdata2009e. + * unix/tclUnixNotfy.c (Tcl_WaitForEvent): Fixed broken if syntax + committed 2006-08-21 by Daniel. The broken syntax is visible to all + unix platforms, but not on OSX for machines which HAVE_COREFOUNDATION. -2009-04-09 Don Porter <dgp@users.sourceforge.net> +2006-08-21 Don Porter <dgp@users.sourceforge.net> - * library/http/http.tcl: Backport http 2.7.3 from HEAD for - * library/http/pkgIndex.tcl: bundling with the Tcl 8.5.7 release. - * unix/Makefile.in: - * win/Makefile.in: + * generic/tclIOUtil.c: Revisions to complete the thread finalization + of the cwdPathPtr. [Bug 1536142] -2009-04-08 Andreas Kupries <andreask@activestate.com> +2006-08-21 Daniel Steffen <das@users.sourceforge.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. + * macosx/tclMacOSXNotify.c (Tcl_WaitForEvent): if the run loop is + already running (e.g. if Tcl_WaitForEvent was called recursively), + re-run it in a custom run loop mode containing only the source for the + notifier thread, otherwise wakeups from other sources added to the + common run loop modes might get lost; sync panic msg changes from + HEAD. -2009-04-08 Don Porter <dgp@users.sourceforge.net> + * 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] - * 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: + * 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] -2009-04-07 Don Porter <dgp@users.sourceforge.net> +2006-08-18 Daniel Steffen <das@users.sourceforge.net> - * generic/tclStringObj.c: Completed backports of fixes for - [Bug 2494093] and [Bug 2553906]. + * unix/tcl.m4 (Darwin): add support for --enable-64bit on x86_64, for + universal builds including x86_64, for 64-bit CoreFoundation on + Leopard and for use of -mmacosx-version-min instead of + MACOSX_DEPLOYMENT_TARGET. + * unix/configure: autoconf-2.13 -2009-03-30 Don Porter <dgp@users.sourceforge.net> + * generic/tcl.h: add fixes for building on Leopard and support + * unix/tclUnixPort.h: for 64-bit CoreFoundation on Leopard. - * doc/Alloc.3: Size argument is "unsigned int". [Bug 2556263] + * unix/tclUnixPort.h: on Darwin x86_64, disable use of vfork as it + causes execve to fail intermittently. (rdar://4685553) - * 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] + * macosx/README: updates for x86_64 support and Xcode 2.4. -2009-03-27 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixChan.c (TclUnixWaitForFile): with timeout < 0, if + select() returns early (e.g. due to a signal), call it again instead + of returning a timeout result. Fixes intermittent event-13.8 failures. - * generic/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] +2006-08-09 Don Porter <dgp@users.sourceforge.net> -2009-03-20 Don Porter <dgp@users.sourceforge.net> + * generic/tclEncoding.c: Replace buffer copy in for loop with + call to memcpy(). Thanks to afredd. [Patch 1530262] - * generic/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] +2006-08-03 Daniel Steffen <das@users.sourceforge.net> - * generic/tclExecute.c (INST_CONCAT1): Panic when appends overflow - the max length of a Tcl value. [Bug 2669109] + * 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. -2009-03-18 Don Porter <dgp@users.sourceforge.net> +2006-07-30 Kevin Kenny <kennykb@acm.org> - * win/tclWinFile.c (TclpObjNormalizePath): Corrected Tcl_Obj leak. - Thanks to Joe Mistachkin for detection and patch. [Bug 2688184]. + * tests/clock.test: Allowed UTC as a synonym for GMT in two tests that + indirectly invoke 'strftime' with the result of 'gmtime' to fix a + bogus test failure on FreeBSD systems. [Bug 1513489] -2009-03-15 Donal K. Fellows <dkf@users.sf.net> +2006-07-30 Joe English <jenglish@users.sourceforge.net> - * generic/tclPosixStr.c (Tcl_SignalId,Tcl_SignalMsg): [Patch 1513655]: - Added support for SIGINFO, which is present on BSD platforms. + * doc/AppInit.3: Fix typo [Bug 1496886] -2009-02-20 Don Porter <dgp@users.sourceforge.net> +2006-07-20 Daniel Steffen <das@users.sourceforge.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]. + * macosx/tclMacOSXNotify.c (Tcl_InitNotifier, Tcl_WaitForEvent): + create notifier thread lazily upon first call to Tcl_WaitForEvent() + rather than in Tcl_InitNotifier(). Allows calling exeve() in processes + where the event loop has not yet been run (Darwin's execve() fails in + processes with more than one thread), in particular allows embedders + to call fork() followed by execve(), previously the pthread_atfork() + child handler's call to Tcl_InitNotifier() would immediately recreate + the notifier thread in the child after a fork. -2009-02-17 Jeff Hobbs <jeffh@ActiveState.com> + * macosx/tclMacOSXNotify.c (Tcl_InitNotifier): add support for + * unix/tclUnixFCmd.c (DoRenameFile, CopyFileAtts): weakly importing + * unix/tclUnixInit.c (TclpSetInitialEncodings): symbols not + available on OSX 10.2 or 10.3, enables binaires built on later OSX + versions to run on earlier ones. + * macosx/README: document how to enable weak-linking; cleanup. + * unix/tclUnixPort.h: add support for weak-linking; conditionalize + AvailabilityMacros.h inclusion; only disable realpath on 10.2 or + earlier when threads are enabled. + * unix/tclLoadDyld.c (TclpLoadMemoryGetBuffer): change runtime Darwin + * unix/tclUnixInit.c (TclpInitPlatform): release check to use + global initialized once + * unix/tclUnixFCmd.c (DoRenameFile, TclpObjNormalizePath): add runtime + Darwin release check to determine if realpath is threadsafe. + * unix/configure.in: add check on Darwin for compiler support of weak + * unix/tcl.m4: import and for AvailabilityMacros.h header; move + Darwin specific checks & defines that are only relevant to the tcl + build out of tcl.m4; restrict framework option to Darwin; cleanup + quoting. + * unix/configure: autoconf-2.13 - * 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. + * unix/tclLoadDyld.c (TclpLoadMemory): + * unix/tclUnixPipe.c (TclpCreateProcess): fix signed-with-unsigned + comparison and other warnings from gcc4 -Wextra. -2009-02-05 Don Porter <dgp@users.sourceforge.net> +2006-07-13 Andreas Kupries <andreask@activestate.com> - * 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] + * 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. -2009-02-04 Don Porter <dgp@users.sourceforge.net> +2006-07-11 Zoran Vasiljevic <vasiljevic@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. + * generic/tclAsync.c: Made Tcl_AsyncDelete() more tolerant when called + after all thread TSD has been garbage-collected. - * generic/tclCmdMZ.c: Prevent crashes due to int overflow of the - length of the result of [string repeat]. [Bug 2561746] +2006-07-10 Jeff Hobbs <jeffh@ActiveState.com> -2009-01-29 Donal K. Fellows <dkf@users.sf.net> + * generic/tclIO.c (Tcl_CreateChannel): allow Tcl std channel + inheritance to be #defined out (default remains in). - * generic/tclNamesp.c (Tcl_FindCommand): [Bug 2519474]: Ensure that - the path is not searched when the TCL_NAMESPACE_ONLY flag is given. +2006-06-15 Don Porter <dgp@users.sourceforge.net> -2009-01-22 Kevin B. Kenny <kennykb@acm.org> + * changes: changes to start prep for an 8.4.14 release. - * unix/tcl.m4: Corrected a typo ($(SHLIB_VERSION) should be - ${SHLIB_VERSION}). - * unix/configure: Autoconf 2.59 +2006-06-14 Daniel Steffen <das@users.sourceforge.net> -2009-01-21 Andreas Kupries <andreask@activestate.com> + * unix/tclUnixPort.h (Darwin): support for MAC_OS_X_VERSION_MAX_ALLOWED + define from AvailabilityMacros.h: override configure detection and only + use API available in the indicated OS version or earlier. - * generic/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. +2006-06-14 Pat Thoyts <patthoyts@users.sourceforge.net> -2009-01-19 Kevin B. Kenny <kennykb@acm.org> + * generic/regerror.c: Enable building Tcl with Microsoft's latest + * generic/tcl.h: compiler offering (VS2005). We have to handle + * generic/tclDate.c: a number of oddities as they have deprecated + * tests/env.test: most of the standard C library and now + * win/makefile.vc: generate manifest files to be linked into the + * win/nmakehlp.c: binaries. [Bug 1424909] + * win/rules.vc: + * win/tclWinTime.c: - * unix/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-06-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2009-01-09 Don Porter <dgp@users.sourceforge.net> + * unix/tclLoadDl.c (TclpDlopen): Workaround for a compiler bug in Sun + Forte 6. [Bug 1503729] - * 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-06-06 Don Porter <dgp@users.sourceforge.net> -2009-01-08 Don Porter <dgp@users.sourceforge.net> + * doc/GetStdChan.3: Added recommendation that each call to + Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel(). - * generic/tclStringObj.c (STRING_UALLOC): Added missing parens - required to get correct results out of things like - STRING_UALLOC(num + append). [Bug 2494093]. +2006-05-31 Jeff Hobbs <jeffh@ActiveState.com> -2009-01-06 Donal K. Fellows <dkf@users.sf.net> + * generic/tclNamesp.c (NamespaceInscopeCmd): revert [Bug 1400572] + fix of 2006-01-09 for [namespace inscope] as it seems to mess with + itcl scope decoding. Leaving namespace-29.6 test failure until final + cause it determined. - * generic/tclDictObj.c (DictIncrCmd): Corrected twiddling in internals - of dictionaries so that literals can't get destroyed. +2006-05-29 Jeff Hobbs <jeffh@ActiveState.com> - * tests/expr.test, tests/string.test: Eliminate non-ASCII characters. - [Bugs 2006884, 2006879] + * generic/tcl.h (Tcl_DecrRefCount): use if/else construct to allow + placement in unbraced outer if/else conditions. (jcw) -2009-01-03 Kevin B. Kenny <kennykb@acm.org>: +2006-05-27 Daniel Steffen <das@users.sourceforge.net> - * library/clock.tcl (tcl::clock::add): Fixed error message formatting - in the case where [clock add] is presented with a bad switch. - * tests/clock.test (clock-65.1) Added a test case for the above - problem [Bug 2481670]. + * macosx/tclMacOSXNotify.c: implemented pthread_atfork() handler that + * unix/tcl.m4 (Darwin): recreates CoreFoundation state and notifier + thread in the child after a fork(). Note that pthread_atfork() is + available starting with Tiger only. Because vfork() is used by the core + on Darwin, [exec]/[open] are not affected by this fix, only extensions + or embedders that call fork() directly (such as TclX). However, this + only makes fork() safe from corefoundation tcl with --disable-threads; + as on all platforms, forked children may deadlock in threaded tcl due + to the potential for stale locked mutexes in the child. [Patch 923072] + * unix/configure: autoconf-2.59 -2008-12-21 Don Porter <dgp@users.sourceforge.net> +2006-05-24 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - *** 8.5.6 TAGGED FOR RELEASE *** + * 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] - * generic/tcl.h: Bump to 8.5.6 for release. - * library/init.tcl: +2006-05-13 Don Porter <dgp@users.sourceforge.net> + + * generic/tclFileName.c (TclDoGlob): Disabled the partial + normalization done by the recursive glob routine, since changing the + precise string of the pathname broke [glob] on some Tcl_Filesystems. + [Bug 943995] + + * 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. + +2006-05-05 Don Porter <dgp@users.sourceforge.net> + + * 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] + +2006-05-04 Don Porter <dgp@users.sourceforge.net> + + * README: Bump version number to 8.4.14 + * generic/tcl.h: * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: + * win/README.binary: * win/configure.in: - * README: - * unix/configure: autoconf-2.59 + * unix/configure: autoconf-2.13 * win/configure: - * changes: Update for 8.5.6 release. + * generic/tclExecute.c (ExprSrandFunc): Restore acceptance of wide + * tests/expr-old.test: integer values by srand() [Bug 1480509] - * library/tclIndex: Removed reference to no-longer-extant procedure - 'tclLdAout'. - * doc/library.n: Corrected mention of 'auto_exec' to 'auto_execok'. - [Patch 2114900] thanks to Stu Cassoff <stwo@users.sf.net> - Backport of 2008-11-26 commit from Kevin Kenny. +2006-04-12 Don Porter <dgp@users.sourceforge.net> - * win/tclWinThrd.c (TclpThreadCreate): We need to initialize the - thread id variable to 0 as on 64 bit windows this is a pointer sized - field while windows only fills it with a 32 bit value. The result is - an inability to join the threads as the ids cannot be matched. - Backport of 2008-10-13 commit from Pat Thoyts. + *** 8.4.13 TAGGED FOR RELEASE *** -2008-12-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * changes: updates for another RC. - * generic/tclExecute.c (TEBC:INST_DICT_GET): Make sure that the result - is empty when generating an error message. [Bug 2431847] +2006-04-11 Don Porter <dgp@users.sourceforge.net> -2008-12-12 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclCmdMZ.c: Stop some interference between enter traces + * tests/trace.test: and enterstep traces. [Bug 1458266] - * library/clock.tcl (ProcessPosixTimeZone): Fix time change in Eastern - Europe (not 3:00 but 4:00 local time) [Bug 2207436] +2006-04-10 Don Porter <dgp@users.sourceforge.net> -2008-12-11 Andreas Kupries <andreask@activestate.com> + * changes: updates for another RC. - * 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] +2006-04-06 Jeff Hobbs <jeffh@ActiveState.com> -2008-12-11 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclRegexp.c (FinalizeRegexp): full reset data to indicate + readiness for reinitialization. - * library/clock.tcl (ProcessPosixTimeZone): Fallback to European time - zone DST rules, when the timezone is between 0 and -12. [Bug 2207436] - * tests/clock.test (clock-52.[23]): Test cases. +2006-04-06 Don Porter <dgp@users.sourceforge.net> -2008-12-10 Kevin B. Kenny <kennykb@acm.org> + * 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] - * library/tzdata/*: Update from Olson's tzdata2008i. +2006-04-06 Daniel Steffen <das@users.sourceforge.net> -2008-12-04 Don Porter <dgp@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.13 - * 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] +2006-04-05 Don Porter <dgp@users.sourceforge.net> -2008-12-03 Don Porter <dgp@users.sourceforge.net> + * library/reg/pkgIndex.tcl: Long overlooked bump to registry + * win/tclWinReg.c: package version 1.1.4 (should have + been done for the Tcl 8.4.8 release!) - * 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. + * library/dde/pkgIndex.tcl: Long overlooked bump to dde package + * win/tclWinDde.c: version 1.2.4 (should have been done + for the Tcl 8.4.8 release!) -2008-12-02 Andreas Kupries <andreask@activestate.com> +2006-04-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclIO.c (TclFinalizeIOSubsystem): Replaced Alexandre - Ferrieux's first patch for [Bug 2270477] with a gentler version, also - supplied by him. + * 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] -2008-12-01 Don Porter <dgp@users.sourceforge.net> +2006-04-04 Don Porter <dgp@users.sourceforge.net> - * generic/tclParse.c: Backport fix for [Bug 2251175]. + * generic/tclPkg.c: Revised Bug 1162286 fix from 2005-11-08 to be + * tests/pkg.test: even more forgiving of package version + mismatch errors in [package ifneeded] commands, not even logging any + warning messages. This further reduces the + ***POTENTIAL INCOMPATIBILITY*** noted for that change. -2008-11-30 Kevin B. Kenny <kennykb@acm.org> +2006-04-03 Andreas Kupries <andreask@activestate.com> - * 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. + * 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. -2008-11-25 Andreas Kupries <andreask@activestate.com> + * 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/tclIO.c (TclFinalizeIOSubsystem): Applied Alexandre - Ferrieux's patch for [Bug 2270477] to prevent infinite looping during - finalization of channels not bound to interpreters. + * 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]. -2008-08-23 Andreas Kupries <andreask@activestate.com> +2006-03-28 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclIO.c: Backport of fix for [Bug 2333466]. + * win/configure, win/tcl.m4: define MACHINE for gcc builds as well. + Needed by Tk for manifest generation. -2008-11-18 Jan Nijtmans <nijtmans@users.sf.net> + * win/tclWinConsole.c: revert 2005-11-03 [Patch 1256872] change to add + win32 unicode console support as it broke the ability to modify the + encoding to the console. - * 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: +2006-03-28 Daniel Steffen <das@users.sourceforge.net> -2008-11-13 Jan Nijtmans <nijtmans@users.sf.net> + * unix/tclUnixFCmd.c (TclpObjNormalizePath): deal with *BSD/Darwin + realpath() converting relative paths into absolute paths. [Bug 1064247] - * generic/tclInt.h: Rename static function FSUnloadTempFile to - * generic/tclIOUtil.c: TclFSUnloadTempFile, needed in tclLoad.c +2006-03-28 Vince Darley <vincentdarley@sourceforge.net> - * generic/tclLoad.c: Fixed [Bug 2269431]: load of shared - objects leaves temporary files on windows + * generic/tclIOUtil.c: fix to nativeFilesystemRecord comparisons + (lesser part of [Bug 1064247]) -2008-11-10 Andreas Kupries <andreask@activestate.com> +2006-03-27 Pat Thoyts <patthoyts@users.sourceforge.net> - * doc/platform_shell.n: Fixed [Bug 2255235], reported by Ulrich - * library/platform/pkgIndex.tcl: Ring <uring@users.sourceforge.net>. - * library/platform/shell.tcl: Updated the LOCATE command in the - * library/tm.tcl: package 'platform::shell' to handle the new form - * unix/Makefile.in: of 'provide' commands generated by tm.tcl. Bumped - * win/Makefile.in: package to version 1.1.4. Added cross-references - to the relevant parts of the code to avoid future desynchronization. + * win/tclWinTest.c: Fixes for [Bug 1456373] (mingw-gcc issue) -2008-11-04 Jeff Hobbs <jeffh@ActiveState.com> +2006-03-23 Don Porter <dgp@users.sourceforge.net> - * 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. + * tests/expr.test: Nan self-inquality test silenced. [Bug 761471] -2008-10-24 Pat Thoyts <patthoyts@users.sourceforge.net> +2006-03-22 Don Porter <dgp@users.sourceforge.net> - * 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 + * changes: updates for another RC. -2008-10-23 Don Porter <dgp@users.sourceforge.net> +2006-03-18 Vince Darley <vincentdarley@sourceforge.net> - * 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 + * generic/tclTest.c: + * win/tclWinFile.c: + * win/tclWinTest.c: + * tests/fCmd.test: + * tests/winFCmd.test: + * tests/tcltest.test: Backport of [file writable] fixes for Windows + from HEAD. [Bug 1193497] - * unix/configure: autoconf (2.59) - * win/configure: +2006-03-16 Andreas Kupries <andreask@activestate.com> -2008-10-19 Don Porter <dgp@users.sourceforge.net> + * doc/open.n: Documented the changed behaviour of 'a'ppend mode. - * generic/tclProc.c: Reset -level and -code values to defaults - after they are used. [Bug 2152286] + * tests/io.test (io-43.1 io-44.[1234]): Rewritten to be + self-contained with regard to setup and cleanup. [Bug 681793] -2008-10-16 Don Porter <dgp@users.sourceforge.net> + * 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'. - * 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] +2006-03-15 Andreas Kupries <andreask@activestate.com> -2008-10-10 Don Porter <dgp@users.sourceforge.net> + * 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] - *** 8.5.5 TAGGED FOR RELEASE *** +2006-03-14 Andreas Kupries <andreask@activestate.com> - * generic/tcl.h: Bump to 8.5.5 for release. - * library/init.tcl: + * 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> + + * win/tclWinPipe.c (Tcl_WaitPid): Backport of fix made to the head by + David Gravereaux in 2004. See ChangeLog entry 2004-01-19. [Bug 1381436] + + Fixed a thread-safety problem with the process list. The delayed cut + operation after the wait was going stale by being outside the list + lock. It now cuts within the lock and does a locked splice for when it + needs to instead. [Bug 859820] + +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.13. + +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: Added no-op TclpFinalizeSockets(). + + * mac/tclMacSock.c: + * win/tclWinPipe.c + * win/tclWinSock.c: Finalization of the sockets/pipes is now solely + done in TclpFinalizeSockets() and TclpFinalizePipes() and not over the + thread-exit handler, because the order of actions the Tcl generic core + will impose may result in cores/hangs if the thread exit handler tears + down corresponding subsystem(s) too early. + +2006-03-10 Vince Darley <vincentdarley@sourceforge.net> + + * win/tclWin32Dll.c: + * win/tclWinInt.h: + * win/tclWinFile.c: backported some fixes from HEAD relating to 'file + readable' and 'file writable', but main 'file writable' bug still + outstanding. + +2006-03-07 Don Porter <dgp@users.sourceforge.net> + + * README: Bump version number to 8.4.13 and update + * changes: changes to start prep for an 8.4.13 release. + * generic/tcl.h: * tools/tcl.wse.in: - * unix/configure.in: + * unix/configure{.in}: * unix/tcl.spec: - * win/configure.in: + * win/README.binary: + * win/configure{.in}: - * unix/configure: autoconf-2.59 - * win/configure: + * tests/parse.test: Missing constraint - * changes: Update for 8.5.5 release. +2006-03-06 Don Porter <dgp@users.sourceforge.net> -2008-10-08 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] - * generic/tclTrace.c: Corrected handling of errors returned by - variable traces so that the errorInfo value contains the original - error message. [Bug 2151707] +2006-03-02 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclVar.c: Revised implementation of TclObjVarErrMsg so - that error message construction does not disturb an existing - iPtr->errorInfo that may be in progress. + * win/Makefile.in: convert _NATIVE paths to use / to avoid ".\" + path-as-escape issue. -2008-10-06 Jan Nijtmans <nijtmans@users.sf.net> + * unix/tcl.m4, win/tcl.m4: []-quote ac_defun functions. - * 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] +2006-03-02 Pat Thoyts <patthoyts@users.sourceforge.net> -2008-10-06 Joe Mistachkin <joe@mistachkin.com> + * unix/tcl.m4: Fix for [Tk Bug 1334613] to sort out shared library + * unix/configure: issues on NetBSD. Regenerated configure script. - * tools/man2tcl.c: Added missing line from patch by Harald Oehlmann. - [Bug 1934200] +2006-02-28 Don Porter <dgp@users.sourceforge.net> -2008-10-05 Kevin B. Kenny <kennykb@acm.org> + * generic/tclBasic.c: Corrections to be sure that TCL_EVAL_GLOBAL + * tests/parse.test: evaluations act the same as [uplevel #0] + * tests/trace.test: evaluations, even when execution traces or + invocations of [::unknown] are present. [Bug 1439836] - * 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. +2006-02-16 Don Porter <dgp@users.sourceforge.net> -2008-10-02 Joe Mistachkin <joe@mistachkin.com> + * generic/tclIndexObj.c: Disallow the "ambiguous" error message + * tests/indexObj.test: when TCL_EXACT matching is requested. - * tools/man2help2.tcl: Integrated patches from Harald Oehlmann. - * tools/man2tcl.c: [Bug 1934200, 1934272] +2006-02-15 Don Porter <dgp@users.sourceforge.net> -2008-09-27 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclIO.c: Made several routines tolerant of + * generic/tclIOUtil.c: interp == NULL arguments. [Bug 1380662] - * 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] +2006-02-09 Don Porter <dgp@users.sourceforge.net> -2008-09-25 Don Porter <dgp@users.sourceforge.net> + * tests/main.test (Tcl_Main-6.7): Improved robustness of command + auto-completion test. [Bug 1422736] - * doc/global.n: Correct false claim about [info locals]. +2006-01-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2008-09-17 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/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. +2006-01-23 Miguel Sofer <msofer@users.sf.net> -2008-09-17 Miguel Sofer <msofer@users.sf.net> + * generic/tclStringObj.c (Tcl_GetRange): + * tests/stringTest (string-12.21):fixed incorrect handling of internal + rep in Tcl_GetRange. Thanks to twylite and Peter Spjuth. [Bug 1410553] - * library/init.tcl: export min and max commands from the mathfunc - namespace [Bug 2116053] +2006-01-16 Reinhard Max <max@suse.de> -2008-09-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclPipe.c (FileForRedirect): Prevent nameString from being + freed without having been initialized. + * tests/exec.test: Added a test for the above. - * 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. +2006-01-12 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> -2008-09-07 Miguel Sofer <msofer@users.sf.net> + * generic/tclIOUtil.c (Tcl_FSGetInternalRep): fixed potential + overwriting of already freed memory which caused all kinds of (rare + but reproducible) coredumps all over the place. - * doc/namespace.n: fix [Bug 2098441] +2006-01-11 Don Porter <dgp@users.sourceforge.net> -2008-08-28 Don Porter <dgp@users.sourceforge.net> + * tests/error.test (error-7.0): Test the timing of write traces on + ::errorInfo. [Bug 1397843] - * 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 +2006-01-10 Daniel Steffen <das@users.sourceforge.net> - * unix/configure: autoconf (2.59) - * win/configure: + * unix/configure: add caching, use AC_CACHE_CHECK instead of + * unix/configure.in: AC_CACHE_VAL where possible, consistent message + * unix/tcl.m4: quoting, sync relevant tclconfig/tcl.m4 and HEAD + changes and gratuitous formatting differences, fix SC_CONFIG_MANPAGES + with default argument, Darwin improvements to SC_LOAD_*CONFIG. -2008-08-22 Don Porter <dgp@users.sourceforge.net> +2006-01-09 Don Porter <dgp@users.sourceforge.net> - * 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. + * generic/tclNamesp.c (NamespaceInscopeCmd): [namespace inscope] + * tests/namespace.test: commands were not reported by [info level]. + [Bug 1400572] -2008-08-21 Jeff Hobbs <jeffh@ActiveState.com> +2005-12-20 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * tests/regexp.test, tests/regexpComp.test: correct re2glob ***= - * generic/tclUtil.c (TclReToGlob): translation from exact - to anywhere-in-string match. [Bug 2065115] + * generic/tclThreadAlloc.c (Tcl_GetMemoryInfo): Format values as longs + and not ints, so they are less likely to wrap on 64-bit machines. -2008-08-20 Daniel Steffen <das@users.sourceforge.net> +2005-12-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclTest.c (TestconcatobjCmd): fix use of internal-only - TclInvalidateStringRep macro. - [Bug 2057479] + * doc/Tcl.n: Clarify what is going on in variable substitution + following thread on comp.lang.tcl. -2008-08-17 Miguel Sofer <msofer@users.sf.net> +2005-12-14 Daniel Steffen <das@users.sourceforge.net> - * 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! + * generic/tclIOUtil.c: workaround gcc warning "comparison is always + * generic/tclTest.c: false due to limited range of data type". - *** NASTY BUG FIXED *** + * unix/configure.in: run check for fts API on all platforms, since + Linux glibc2 and *BSDs also have this and using fts is more efficient + than recursive opendir/readdir (sync with HEAD). + * unix/configure: regen. -2008-08-14 Don Porter <dgp@users.sourceforge.net> +2005-12-12 Jeff Hobbs <jeffh@ActiveState.com> - *** 8.5.4 TAGGED FOR RELEASE *** + * unix/tcl.m4, unix/configure: Fix sh quoting error reported in + bash-3.1+ [Bug 1377619] (schafer) - * tests/fileName.test: Revise new tests for portability to case - insensitive filesystems. +2005-12-12 Reinhard Max <max@suse.de> -2008-08-14 Daniel Steffen <das@users.sourceforge.net> + * generic/tclExecute.c (ExprAbsFunc): fixed the abs(MIN_INT) case so + that it doesn't break on compilers that don't assume integers to wrap + around (e.g. gcc-4.1.0). - * 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). +2005-12-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - * generic/tclCmdIL.c (TclInfoFrame): Check fPtr->line before - dereferencing as line info may - not exists when TclInfoFrame() - is called from a DTrace probe. + * tests/lsearch.test (lsearch-10.8..10): If the -start is off the end, + * generic/tclCmdIL.c (Tcl_LsearchObjCmd): searching should find + nothing at all. [Bug 1374778] - * tests/msgcat.test: Fix for ::tcl::mac::locale with - @modifier (HEAD backport 2008-06-01). +2005-12-05 Daniel Steffen <das@users.sourceforge.net> - * tests/fCmd.test (fCmd-6.23): Made result matching robust when test - workdir and /tmp are not on same FS. + *** 8.4.12 TAGGED FOR RELEASE *** - * 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] + * unix/tclUnixPort.h (Darwin): fix incorrect __DARWIN_UNIX03 configure + overrides that were originally copied from Darwin CVS (rdar://3693001). - * unix/tcl.m4 (SC_PATH_X): Check for libX11.dylib in addition to - libX11.so et al. +2005-12-05 Don Porter <dgp@users.sourceforge.net> - * unix/configure: autoconf-2.59 + * unix/configure.in: Revised fix for [Bug 1034337] from Daniel + * unix/tclUnixFCmd.c: Steffen. Uses fts_*() routines. + * unix/configure: autoconf-2.13 + * changes: Update changes for 8.4.12 release -2008-08-13 Don Porter <dgp@users.sourceforge.net> +2005-12-04 Daniel Steffen <das@users.sourceforge.net> - * generic/tclFileName.c: Fix for errors handling -types {} - * tests/fileName.test: option to [glob]. [Bug 1750300] - Thanks to Matthias Kraft and George Peter Staplin. + * README: refer to macosx/README instead of mac/README. + * mac/README: add note that mac classic port is no longer supported. -2008-08-12 Don Porter <dgp@users.sourceforge.net> +2005-12-03 Jeff Hobbs <jeffh@ActiveState.com> - * changes: Update for 8.5.4 release. + * README: correct 2 urls -2008-08-11 Pat Thoyts <patthoyts@users.sourceforge.net> +2005-12-01 Don Porter <dgp@users.sourceforge.net> - * library/http/http.tcl: Remove 8.5 requirement. - * library/http/pkgIndex.tcl: - * unix/Makefile.in: - * win/Makefile.in: - * win/makefile.vc: + * changes: Update changes for 8.4.12 release -2008-08-11 Andreas Kupries <andreask@activestate.com> +2005-12-01 Daniel Steffen <das@users.sourceforge.net> - * 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. + * unix/tcl.m4 (Darwin): fixed error when MACOSX_DEPLOYMENT_TARGET unset + * unix/configure: regen. - * 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. +2005-11-29 Jeff Hobbs <jeffh@ActiveState.com> -2008-08-11 Don Porter <dgp@users.sourceforge.net> + * win/tcl.m4: Add build support for Windows-x64 builds. + * win/configure: --enable-64bit now accepts =amd64|ia64 for + * win/Makefile.in: Windows 64-bit build variants (default: amd64) + * win/makefile.vc: [Bug 1369597] - * 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. +2005-11-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2008-08-11 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclObj.c (Tcl_GetWideIntFromObj): Add more efficient + conversion to wides from normal ints. [Bug 1310081] - * library/http/http.tcl: crc field from zlib data should be treated as - unsigned for 64bit support [Bug 2046846] + * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Allow [lsearch -regexp] to + process REs that contain backreferences. This expensive mode of + operation is only used if the RE would otherwise cause a compilation + failure. [Bug 1366683] -2008-08-08 Don Porter <dgp@users.sourceforge.net> +2005-11-28 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tcl.h: Bump to 8.5.4 for release. - * library/init.tcl: + * win/tclWinSock.c (CreateSocket): Applied [Patch 1353853] to prevent + reads of uninitialized variables during cleanup. + +2005-11-27 Daniel Steffen <das@users.sourceforge.net> + + * unix/tcl.m4 (Darwin): add 64bit support, check for Tiger copyfile(), + add CFLAGS to SHLIB_LD to support passing -isysroot in env(CFLAGS) to + configure (flag can't be present twice, so can't be in both CFLAGS and + LDFLAGS during configure), don't use -prebind when deploying on 10.4, + define TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING (rdar://3171542). + (SC_ENABLE_LANGINFO, SC_TIME_HANDLER): add/fix caching, fix obsolete + autoconf macros. Sync with tk/unix/tcl.m4, sync whitespace with HEAD. + + * unix/configure.in: fix obsolete autoconf macros, sync gratuitous + formatting/ordering differences with tk/unix/configure.in. + + * unix/Makefile.in: add CFLAGS to tclsh/tcltest link to make + executable linking the same as during configure (needed to avoid + loosing any linker relevant flags in CFLAGS, in particular flags that + can't be in LDFLAGS). Avoid concurrent linking of tclsh and compiling + of tclTestInit.o or xtTestInit.o during parallel make. + (checkstubs, checkdoc, checkexports): dependency and Darwin fixes + + * unix/tclLoadDyld.c (TclpDlopen): [Bug 1204237] use + NSADDIMAGE_OPTION_WITH_SEARCHING on second NSAddImage only. + (TclGuessPackageName): should not be MODULE_SCOPE. + (TclpLoadMemory): ppc64 and endian (i386) fixes, add support for + loading universal (fat) bundles from memory. + + * unix/tclUnixPort.h: + * unix/tclUnixFCmd.c: add support for new Tiger copyfile() API to + enable copying of xattrs & ACLs by [file copy]. + + * generic/tcl.h: add Darwin specifc configure overrides for TCL_WIDE + defines to support fat compiles of ppc and ppc64 at the same time, + (replaces Darwin CVS fix by emoy, rdar://3693001). + add/correct location of version numbers in macosx files. + + * generic/tclInt.h: clarify fat compile comment. + + * unix/tclUnixPort.h: add Darwin specifc configure overrides to + support fat compiles, where configure runs only once for multiple + architectures (replaces Darwin CVS fix by emoy, rdar://3693001). + + * macosx/tclMacOSXBundle.c: + * macosx/tclMacOSXNotify.c: + * unix/tclUnixNotfy.c: fix #include order to support compile time + * unix/tclUnixPort.h: override of HAVE_COREFOUNDATION in + tclUnixPort.h when building for ppc64 + + * macosx/Tcl.pbproj/default.pbxuser (new file): + * macosx/Tcl.pbproj/jingham.pbxuser: + * macosx/Tcl.pbproj/project.pbxproj: sync with HEAD. + + * macosx/README: clarification/cleanup, sync with HEAD, document + universal (fat) builds via CFLAGS (i.e. all of ppc ppc64 i386 at once). + + * macosx/Makefile: add support for reusing configure cache, build + target fixes, remove GENERIC_FLAGS override now handled by tcl.m4. + + * generic/tclIOUtil.c: + * generic/tclRegexp.c: + * generic/tclVar.c: declare globals used only in own file as static + (sync with HEAD). + + * generic/rege_dfa.c (getvacant): + * generic/regexec.c (cfind): + * generic/tclCompExpr.c (CompileSubExpr): + * unix/tclUnixChan.c (TclUnixWaitForFile): initialise variables to + silence gcc 4 warnings. + + * generic/regguts.h: only #define NDEBUG if not already #defined. + + * macosx/tclMacOSXNotify.c: sync whitespace & comments with HEAD + + * unix/configure: regen. + +2005-11-20 Joe English <jenglish@users.sourceforge.net> + + * generic/tclStubLib.c: Don't set tclStubsPtr to 0 when + Tcl_PkgRequireEx() fails [Fix for [Bug 1091431] "Tcl_InitStubs failure + crashes wish"] + +2005-11-18 Miguel Sofer <msofer@users.sf.net> + + * tests/trace.test (trace-34.5): [Bug 1047286], added a second test + illustrating the role of "ns in callStack" in the ns's visibility + during deletion traces. + + * generic/tclBasic.c (Tcl_DeleteCommandFromToken): + * generic/tclCmdMZ.c (TraceCommandProc): + * generic/tclInt.h (NS_KILLED): + * generic/tclNamesp.c (Tcl_DeleteNamespace + * tests/namespace.test (namespace-7.3-6): + * tests/trace.test (trace-20.13-16): fix [Bugs 1355942/1355342]. + +2005-11-18 Jeff Hobbs <jeffh@ActiveState.com> + + * generic/tclIO.c (TclFinalizeIOSubsystem): preserve statePtr until we + netrieve next statePtr from it. + +2005-11-18 Don Porter <dgp@users.sourceforge.net> + + * generic/tclPkg.c: Revised Bug 1162286 fix from 2005-11-08 to be + * tests/pkg.test: more forgiving of package version mismatch + errors in [package ifneeded] commands. This reduces the + ***POTENTIAL INCOMPATIBILITY*** noted for that change. + +2005-11-18 Andreas Kupries <andreask@activestate.com> + + * generic/tclIO.c (TclFinalizeIOSubsystem): Applied Pat Thoyts' patch + for [Bug 1359094]. This moves the retrieval of the next channel state + to the end of the loop, as the called closeproc may close other + channels, i.e., modify the list we are iterating, invalidating any + pointer retrieved earlier. + +2005-11-18 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * library/http/http.tcl (http::geturl): Improved syntactic validation + of URLs, and better error messages in some cases. [Bug 1358369] + +2005-11-16 Don Porter <dgp@users.sourceforge.net> + + * README: Bump version number to 8.4.12 + * generic/tcl.h: * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: + * win/README.binary: * win/configure.in: - * unix/configure: autoconf-2.59 + * unix/configure: autoconf-2.13 * win/configure: - * changes: Update for 8.5.4 release. +2005-11-15 Don Porter <dgp@users.sourceforge.net> -2008-08-08 Kevin Kenny <kennykb@acm.org> + * changes: Update changes for 8.4.12 release - * 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. +2005-11-15 Kevin B. Kenny <kennykb@acm.org> -2008-08-06 Don Porter <dgp@users.sourceforge.net> + * tests/cmdAH.test: Backported the fix for [Bug 926016] because of + * win/tclWinFile.c: a repeated bug report in 8.4 [Bug 1353840]. + Windows [file mtime] will now return seconds from the Posix epoch + correctly (except for FAT32 file systems after a DST change without a + reboot - for which there is no help). A side effect is that file times + will appear different in Tcl from the way they do in Windows Explorer + or a 'dir' listing, because the Microsoft tools get the DST state + wrong in the listings. - * 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. +2005-11-09 Kevin B. Kenny <kennykb@acm.org> -2008-08-04 Don Porter <dgp@users.sourceforge.net> + * generic/tclTimer.c: Changed [after] so that it behaves correctly + * tests/timer.test: with negative arguments. [Bug 1350293] - * generic/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] +2005-11-08 Jeff Hobbs <jeffh@ActiveState.com> -2008-07-30 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixFCmd.c (MAX_READDIR_UNLINK_THRESHOLD): reduce to 130 + based on errors seen on OS X 10.3 with lots of links in a dir. [Bug + 1034337 followup] - * generic/tclBasic.c: Corrected the timing of when the flag - TCL_ALLOW_EXCEPTIONS is tested. +2005-11-08 Don Porter <dgp@users.sourceforge.net> -2008-07-29 Miguel Sofer <msofer@users.sf.net> + * tests/expr.test: Portable tests expr-46.13-18 [Bug 1341368] - * generic/tclExecute.c: fix [Bug 2030670] that cause - TclStackRealloc to panic on rare corner cases. Thx ajpasadyn for - diagnose and patch. + * generic/tclPkg.c: Corrected inconsistencies in the value returned + * tests/pkg.test: by Tcl_PkgRequire(Ex) so that the returned + values will always agree with what is stored in the package database. + This way repeated calls to Tcl_PkgRequire(Ex) have the same results. + Thanks to Hemang Lavana. [Bug 1162286] + ***POTENTIAL INCOMPATIBILITY***: Incompatible with those existing + packages that are accustomed to the [package] command forgiving + their bugs. -2008-07-28 Andreas Kupries <andreask@activestate.com> + * tests/namespace.test (25.7,8): Backport test of knownBug. - * generic/tclBasic.c: Added missing ref count when creating an empty - string as path (TclEvalEx). In 8.4 the missing code caused panics in - the testsuite. It doesn't in 8.5. I am guessing that the code path - with the missing the incr-refcount is not invoked any longer. Because - the bug in itself is certainly the same. +2005-11-08 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2008-07-25 Daniel Steffen <das@users.sourceforge.net> + * generic/tclCmdMZ.c (TclTraceVariableObjCmd, TraceVarProc): Applied + Miguel's fix for [Bug 1348775]. It is not quite as elegant as the one + applied to the HEAD, but it is easier to use it rather than fully + backporting. - * tests/info.test (info-37.0): Add !singleTestInterp constraint; - (info-22.8, info-23.0): switch to glob matching to avoid sensitivity - to tcltest.tcl line number changes, remove knownBug constraint, fix - expected result. [Bug 1605269] +2005-11-07 Miguel Sofer <msofer@users.sf.net> -2008-07-25 Andreas Kupries <andreask@activestate.com> + * tests/trace.test (trace-13.2-4): added tests to detect leak, see + [Bug 1348775]. - * tests/info.test: Tests 38.* added, exactly testing the tracking of - location for uplevel scripts. +2005-11-04 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompile.c (TclInitCompileEnv): Reorganized the - initialization of the #280 location information to match the flow in - TclEvalObjEx to get more absolute contexts. + * unix/tcl.m4: Added code to enable [load] on LynxOS. Thanks to + heidibr@users.sf.net for the patch. [Bug 1163896] - * generic/tclBasic.c (TclEvalObjEx): Moved the pure-list optimization - out of the eval-direct code path to be done always, i.e. even when a - compile is requested. This way we do not loose the association between - #280 location information and the list elements, if any. + * unix/configure: autoconf-2.13. -2008-07-23 Andreas Kupries <andreask@activestate.com> +2005-11-04 Pat Thoyts <patthoyts@users.sourceforge.net> - * tests/info.test: Reordered the tests to have monotonously - increasing numbers. + * win/tclWinPipe.c: Applied [Patch 1267871] by Matt Newman which + * win/tclWinPort.h: provides extended error code support. + * tests/exec.test: Wrote some tests for this feature. - * 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. +2005-11-04 Kevin Kenny <kennykb@acm.org> -2008-07-22 Andreas Kupries <andreask@activestate.com> + * generic/tclGetDate.y: Added abbreviations for the Korean timezone. + * generic/tclDate.c: Regenerated. - * generic/tclBasic.c: Added missing function comments. + * compat/strftime.c: Fixed a problem where the name of the time zone + was double-converted from system encoding to UTF-8. Thanks to the + anonymous submitter of [Bug 1317477] for the report and the patch. - * generic/tclCompile.c: Made the new TclEnterCmdWordIndex - * generic/tclCompile.h: static, and ansified. +2005-11-04 Miguel Sofer <msofer@users.sf.net> - * generic/tclBasic.c: Reworked the handling of bytecode literals - * generic/tclCompile.c: for #280 to fix the abysmal performance - * generic/tclCompile.h: for deep recursion, replaced the linear - * generic/tclExecute.c: search through the whole stack with another - * generic/tclInt.h: hashtable and simplified the data structure used - by the compiler (array instead of hashtable). Incidentially this also - fixes the memory leak reported via [Bug 2024937]. + * generic/tclInt.h: + * generic/tclNamesp.c: + * generic/tclVar.c: fix for [Bugs 1338280/1337229]. Thanks Don. -2008-07-21 Don Porter <dgp@users.sourceforge.net> + * tests/trace.test: fix duplicate test numbers - * tests/encoding.test: Make failing tests pass again. [Bug 1972867] +2005-11-03 Don Porter <dgp@users.sourceforge.net> -2008-07-21 Andreas Kupries <andreask@activestate.com> + * generic/tclUnixInit.c (TclpSetInitialEncodings): Modified so + that multiple calls can continue to atttempt to properly set the + system encoding. Needed for Tclkit to properly support non-default + encodings. Thanks to Yaroslav Schekin. [Bug 1201171] - * 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: +2005-11-03 Pat Thoyts <patthoyts@users.sourceforge.net> -2008-07-21 Pat Thoyts <patthoyts@users.sourceforge.net> + * win/tclWin32Dll.c: Backported Anton Kovalenko's [Patch 1256872] + * win/tclWinConsole.c: to give unicode console support on + * win/tclWinInt.h: suitable systems (eg: NT/XP) - * generic/tclFCmd.c: Inodes on windows are unreliable [Bug 2015723] +2005-11-01 Don Porter <dgp@users.sourceforge.net> -2008-07-20 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclCmdMZ.c (TclCheckExecutionTraces): Corrected mistaken + assumption that all command traces are set at the script level. + Report/fix from Jacques H. de Villiers. [Bug 1337941] - * 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. + * tests/expr-old.test (expr-32.52): Use int(.) to restrict result + of left shift to the C long range. -2008-07-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2005-10-29 Mo DeJong <mdejong@users.sourceforge.net> - * doc/DictObj.3: Fix error in example. [Bug 2016740] + * tests/expr.test: Fix problems in new round() tests that lead to + correct result only on 32 bit long systems. [Bug 1341368] -2008-07-08 Don Porter <dgp@users.sourceforge.net> +2005-10-29 Miguel Sofer <msofer@users.sf.net> - * generic/tclGet.c: Corrected out of date comments. + * generic/tclCmdMZ.c (TraceVarProc): [Bug 1337229], partial fix. + Ensure that a second call with TCL_TRACE_DESTROYED does not lead to a + second call to Tcl_EventuallyFree(). It is still true that that second + call should not happen, so the bug is not completely fixed. + * tests/trace.test (test-18.3-4): added tests for [Bugs 1337229 and + 1338280]. -2008-07-07 Andreas Kupries <andreask@activestate.com> +2005-10-27 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclCmdIL.c (InfoFrameCmd): Fixed unsafe idiom of setting the - interp result found by Don Porter. + * generic/tclExecute.c (ExprRoundFunc): Fix typo where number before + rounding is compared with smallest integer instead of number after + rounding. This fix does not change the results of any tests. + * tests/expr.test: Add round() tests for cases near the min and max + int values. + * tests/util.test: Remove pointless warning code about testobj command -2008-07-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2005-10-23 Miguel Sofer <msofer@users.sf.net> - * doc/regexp.n, doc/regsub.n: Correct examples. [Bug 1982642] + * generic/tclBasic.c: + * generic/tclBinary.c: + * generic/tclCmdAH.c: + * generic/tclCmdIL.c: + * generic/tclCmdMZ.c: + * generic/tclExecute.c: + * generic/tclLink.c: + * generic/tclMain.c: + * generic/tclProc.c: + * generic/tclScan.c: + * generic/tclTest.c: + * generic/tclVar.c: + * mac/tclMacInit.c: + * unix/tclUnixInit.c: + * win/tclWinInit.c: Ensure that the core never calls TclPtrSetVar, + Tcl_SetVar2Ex, Tcl_ObjSetVar2 or Tcl_SetObjErrorCode with a 0-ref new + value. It is not possible to handle error returns correctly in that + case [Bug 1334947], one has the choice of leaking the object in some + cases, or else risk crashing in some others. -2008-07-04 Joe English <jenglish@users.sourceforge.net> +2005-10-22 Miguel Sofer <msofer@users.sf.net> - * generic/tclEncoding.c(UtfToUtfProc): Avoid unwanted sign extension - when converting incomplete UTF-8 sequences. See [Bug 1908443] for - details. + * generic/tclExecute.c (INST_CONCAT): disable the optimisation for + wide integers. [Bug 1251791] -2008-07-03 Andreas Kupries <andreask@activestate.com> +2005-10-14 Zoran Vasiljevic <vasiljevic@users.sourceforge.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. + * generic/tclIO.c (Tcl_ClearChannelHandlers): removed change dated + 2005-10-04 below. Look into [Bug 1323992] for detailed discussion. -2008-07-03 Don Porter <dgp@users.sourceforge.net> +2005-10-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * 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] + * generic/tclCmdAH.c (Tcl_FormatObjCmd): Stop [format] from seeing + the difference between ints and wides. [Bug 1284178] -2008-06-29 Don Porter <dgp@users.sourceforge.net> +2005-10-13 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - *** 8.5.3 TAGGED FOR RELEASE *** + * generic/tclIO.c (Tcl_ClearChannelHandlers): temporary + ifdef TCL_THREADS changes done to de-activate pending + event processing when channel is being closed/cutted. - * generic/tcl.h: Bump to 8.5.3 for release. - * library/init.tcl: - * tools/tcl.wse.in: - * unix/configure.in: - * unix/tcl.spec: - * win/configure.in: +2005-10-10 Jeff Hobbs <jeffh@ActiveState.com> - * unix/configure: autoconf-2.59 - * win/configure: + * generic/tclInt.h: ensure MODULE_SCOPE decl - * doc/ObjectType.3: Updated documentation of the Tcl_ObjType - struct to match expectations of Tcl 8.5 [Bug 1917650]. +2005-10-07 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclPathObj.c: Plug memory leak in [Bug 1999176] fix. Thanks - Rolf Ade for detecting. + * unix/tclUnixFCmd.c (TraverseUnixTree): Adjust 2004-11-11 change to + * tests/fCmd.test (fCmd-20.2): account for NFS special + files with a readdir rewind threshold. [Bug 1034337] -2008-06-28 Don Porter <dgp@users.sourceforge.net> +2005-10-05 Andreas Kupries <andreask@activestate.com> - * generic/tclPathObj.c: Plug memory leak in [Bug 1972879] fix. Thanks - Rolf Ade for detecting and Dan Steffen for the fix [Bug 2004654]. + * generic/tclPipe.c (TclCreatePipeline): Fixed [Bug 1109294]. Applied + the patch provided by David Gravereaux. -2008-06-26 Andreas Kupries <andreask@activestate.com> + * doc/CrtChannel.3: Fixed [Bug 1104682], by application of David + Welton's patch for it, and added a note about wideSeekProc. - * 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. +2005-10-05 Jeff Hobbs <jeffh@ActiveState.com> -2008-06-25 Don Porter <dgp@users.sourceforge.net> + * tests/env.test (env-6.1): + * win/tclWinPort.h: define USE_PUTENV_FOR_UNSET 1 + * generic/tclEnv.c (TclSetEnv, TclUnsetEnv): add + USE_PUTENV_FOR_UNSET to existing USE_PUTENV define to account for + various systems that have putenv(), but can't unset env vars with it. + Note difference between Windows and Linux for actually unsetting the + env var (use of '='). + Correct the resizing of the environ array. We assume that we are in + full ownership, but that's not correct. [Bug 979640] - * changes: Update for 8.5.3 release. +2005-10-04 Jeff Hobbs <jeffh@ActiveState.com> -2008-06-25 Andreas Kupries <andreask@activestate.com> + * win/tclWinSerial.c (SerialSetOptionProc): free argv [Bug 1067708] - * 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]. + * tests/http.test: Do not URI encode -._~ according to + * library/http/http.tcl (init): RFC3986. [Bug 1182373] (aho) -2008-06-25 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclIOUtil.c (TclFSNormalizeAbsolutePath): make static + * generic/tclEncoding.c (TclFindEncodings): make static - * win/rules.vc: Backported fix for dde/registry versions and - * win/makefile.vc: the staticpkg build option + * unix/tclLoadShl.c (TclpDlopen): use DYNAMIC_PATH on second + shl_load only. [Bug 1204237] -2008-06-24 Don Porter <dgp@users.sourceforge.net> +2005-10-04 Zoran Vasiljevic <vasiljevic@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]. + * generic/tclIO.c (Tcl_ClearChannelHandlers): now deletes any + outstanding timer for the channel. Also, prevents events still + in the event queue from triggering on the current channel. -2008-06-23 Don Porter <dgp@users.sourceforge.net> + * generic/tclTimer.c (Tcl_DeleteTimerHandler): bail out early + if passed NULL argument. - * 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] +2005-09-30 Don Porter <dgp@users.sourceforge.net> -2008-06-19 Don Porter <dgp@users.sourceforge.net> + * generic/tclMain.c: Separate encoding conversion of command line + arguments from list formatting. [Bug 1306162] - * changes: Update for 8.5.3 release. +2005-09-27 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * 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] + * generic/tclBinary.c (FormatNumber): Factorize out copying of double + values to a helper to work around ugly broken compiler problems. [Bug + 1116542] - * tests/chanio.test: Corrected flawed tests revealed by a -debug 1 - * tests/event.test: -singleproc 1 test suite run. - * tests/io.test: +2005-09-15 Miguel Sofer <msofer@users.sf.net> -2008-06-19 Don Porter <dgp@users.sourceforge.net> + * doc/ParseCmd.3: copy/paste fix [Bug 1292427] - * changes: Updates for 8.5.3 release. +2005-09-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2008-06-17 Andreas Kupries <andreask@activestate.com> + * unix/tcl.m4 (SC_TCL_EARLY_FLAGS): Added extra hack to allow Tcl to + transparently open large files on RHEL 3. [Bug 1287638] - * generic/tclClock.c (ClockConvertlocaltoutcObjCmd): Removed left - over debug output. + * unix/configure: autoconf-2.13 -2008-06-17 Andreas Kupries <andreask@activestate.com> +2005-09-07 Don Porter <dgp@users.sourceforge.net> - * 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]. + * generic/tclUtf.c (Tcl_UniCharToUtf): Corrected handling of negative + * tests/utf.test (utf-1.5): Tcl_UniChar input value. Incorrect + handling was producing byte sequences outside of Tcl's legal internal + encoding. [Bug 1283976] -2008-06-17 Kevin Kenny <kennykb@acm.org> +2005-08-29 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. + * generic/tclBasic.c (ExprMathFunc): Restored "round away from zero" + * tests/expr.test (expr-46.*): behaviour to the "round" + function. Added test cases for the behavior, including the awkward + case of a number whose fractional part is 1/2-1/2ulp. [Bug 1275043] -2008-06-16 Andreas Kupries <andreask@activestate.com> +2005-08-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclCmdIL.c (TclInfoFrame): Backport of fix made on the - * tests/info.test: head branch :: Moved the code looking up the - information for key 'proc' out of the TCL_LOCATION_BC branch to - after the switch, this is common to all frame types. Updated the - testsuite to match. This was exposed by the 2008-06-08 commit - (Miguel), switching uplevel from direct eval to compilation. Fixes - [Bug 1987851]. + * generic/tclListObj.c (UpdateStringOfList): Stop uncontrolled and + unsafe crashes from happening when working with very large string + representations. [Bug 1267380] -2008-06-12 Daniel Steffen <das@users.sourceforge.net> +2005-08-17 Jeff Hobbs <jeffh@ActiveState.com> - * unix/Makefile.in: add complete deps on tclDTrace.h. + * generic/tclFCmd.c (TclFileMakeDirsCmd): fix to race condition in + file mkdir (backport from head 2005-06-13) [Bug 1217375] - * unix/Makefile.in: clean generated tclDTrace.h file. - * unix/configure.in (SunOS): fix static DTrace-enabled build. +2005-08-16 Kevin Kenny <kennykb@acm.org> - * unix/tcl.m4 (SunOS-5.11): fix 64bit amd64 support with gcc & Sun cc. - * unix/configure: autoconf-2.59 + * generic/tclEvent.c (Tcl_Finalize): Pushed Tcl_FinalizeLoad and + Tcl_ResetFilesystem down after Tcl_FinalizeThreadAlloc because + unloading DLLs can't happen while they still own TSD keys. + (This is a backport of changes made in the HEAD on 2005-08-10.) - * macosx/Tcl.xcodeproj/project.pbxproj: add debug configs with gcov, - and with corefoundation disabled; updates and cleanup for Xcode 3.1 and - for Leopard. - * macosx/Tcl.xcode/project.pbxproj: sync Tcl.xcodeproj changes. - * macosx/README: document new build configs. +2005-08-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2008-05-26 Jeff Hobbs <jeffh@ActiveState.com> + * unix/tclUnixInit.c (localeTable): Solaris uses a non-standard name + for the cp1251 charset. Thanks to Victor Wagner for reporting this. + [Bug 1252475] - * tests/io.test (io-53.9): need to close chan before removing file. +2005-08-05 Kevin Kenny <kennykb@users.sourceforge.net> -2008-05-23 Andreas Kupries <andreask@activestate.com> + * generic/tclExecute.c (TclExecuteByteCode): Fixed a corner case + * tests/expr.test (expr-38.1): where applying abs to + MIN_INT failed to promote the result to a wide integer. [Bug 1241572] - * win/tclWinChan.c (FileWideSeekProc): Accepted a patch by - Alexandre Ferrieux <ferrieux@users.sourceforge.net> to fix the - [Bug 1965787]. 'tell' now works for locations > 2 GB as well - instead of going negative. +2005-08-04 Don Porter <dgp@users.sourceforge.net> - * generic/tclIO.c (Tcl_SetChannelBufferSize): Accepted a patch by - * tests/io.test: Alexandre Ferrieux <ferrieux@users.sourceforge.net> - * tests/chanio.test: to fix the [Bug 1969953]. Buffersize outside - of the supported range are now clipped to nearest boundary instead - of ignored. + * generic/tclObj.c: Simplified routines that manage the typeTable. -2008-05-22 Don Porter <dgp@users.sourceforge.net> +2005-08-03 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]. + * generic/tclCompExpr.c: Untangled some dependencies in the + * generic/tclEvent.c: order of finalization routines. + * generic/tclInt.h: [Bug 1251399] + * generic/tclObj.c: -2008-05-21 Don Porter <dgp@users.sourceforge.net> +2005-07-30 Daniel Steffen <das@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] + * unix/configure, unix/tcl.m4: revert 2005-07-28 change. -2008-05-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * unix/tclLoadDyld.c (TclpDlopen, TclpLoadMemory): workarounds for + bugs/changes in behaviour in Mac OS X 10.4 Tiger, sync formatting + changes from HEAD. - * generic/tclNamesp.c (Tcl_SetNamespaceUnknownHandler): Corrected odd - logic for handling installation of namespace unknown handlers which - could lead too very strange things happening in the error case. +2005-07-29 Donal K. Fellows <dkf@users.sf.net> -2008-05-16 Miguel Sofer <msofer@users.sf.net> + * generic/tclCmdIL.c (InfoGlobalsCmd): Even in high-speed mode, still + have to take care with non-existant variables. [Bug 1247135] - * generic/tclCompile.c: Fix crash with tcl_traceExec. Found and - fixed by Alexander Pasadyn [Bug 1964803]. +2005-07-28 Mo DeJong <mdejong@users.sourceforge.net> -2008-05-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * win/README: Update link to msys_mingw8.zip. Remove old Cygwin + + Mingw info, people should just build with the msys + mingw + configuration. - * generic/tclCompCmds.c (TclCompileDictAppendCmd): Fix silly - off-by-one error that caused a crash every time a compiled 'dict - append' with more than one value argument was used. Found by Colin - McCormack. +2005-07-28 Jeff Hobbs <jeffh@ActiveState.com> -2008-04-26 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * unix/configure, unix/tcl.m4: defined TCL_LOAD_FROM_MEMORY on Darwin + only for SHARED_BUILD - * 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. +2005-07-28 Donal K. Fellows <dkf@users.sf.net> - 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. + * generic/tclPipe.c (TclCreatePipeline): Arrange for POSIX systems to + * unix/tclUnixPipe.c (TclpOpenFile): use the O_APPEND flag for + * tests/exec.test (exec-19.1): files opened in a pipeline + like ">>this". Note that Windows cannot support such access; there is + no equivalent flag on the handle that can be set at the kernel-call + level. The test is unix-specific in every way. [Bug 1245953] -2008-04-24 Andreas Kupries <andreask@activestate.com> +2005-07-26 Mo DeJong <mdejong@users.sourceforge.net> - * 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.) + * unix/configure: Regen. + * unix/configure.in: Check for a $prefix/share directory and add it + the the package if found. This will check for Tcl packages in + /usr/local/share when Tcl is configured with the default dist install. + [Patch 1231015] - * generic/tclIORChan.c: Fixed the bugs exposed by the new testcases, - redone most of the cleanup and exit handling. +2005-07-26 Don Porter <dgp@users.sourceforge.net> -2008-04-15 Andreas Kupries <andreask@activestate.com> + * doc/tclvars.n: Improved $errorCode documentation. [RFE 776921] - * 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. + * generic/tclBasic.c (Tcl_CallWhenDeleted): Converted to use + per-thread counter, rather than a process global one that required + mutex protection. [RFE 1077194] -2008-04-14 Kevin B. Kenny <kennykb@acm.org> + * generic/tclNamesp.c (TclTeardownNamespace): Re-ordering so that + * tests/trace.test (trace-34.4): command delete traces fire + while the command still exists. [Bug 1047286] - * 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. +2005-07-24 Mo DeJong <mdejong@users.sourceforge.net> -2008-04-11 Don Porter <dgp@users.sourceforge.net> + * unix/tcl.m4 (SC_PROG_TCLSH, SC_BUILD_TCLSH): + * win/tcl.m4 (SC_PROG_TCLSH, SC_BUILD_TCLSH): + Split confused search for tclsh on PATH and build and install + locations into two macros. SC_PROG_TCLSH searches just the PATH. + SC_BUILD_TCLSH determines the name of the tclsh executable in the Tcl + build directory. [Bug 1160114], [Patch 1244153] - * 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 +2005-07-22 Don Porter <dgp@users.sourceforge.net> - * unix/configure: autoconf (2.59) - * win/configure: + * library/auto.tcl: Updates to the Tcl script library to make + * library/history.tcl: use of Tcl 8.4 feautures. Thanks to + * library/init.tcl: Patrick Fradin for prompting on this. + * library/package.tcl: [Patch 1237755] + * library/safe.tcl: + * library/word.tcl: -2008-04-10 Andreas Kupries <andreask@activestate.com> +2005-07-07 Jeff Hobbs <jeffh@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). + * unix/tcl.m4, unix/configure: Backported [Bug 1095909], removing + * unix/tclUnixPort.h: any use of readdir_r as it is not + * unix/tclUnixThrd.c: necessary and just confuses things. - * tests/iocmd.test (iocmd-15.{12,13}): Removed. +2005-07-05 Don Porter <dgp@users.sourceforge.net> - * 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. + * generic/tclCmdAH.c: New "encoding" Tcl_ObjType (not registered) + * generic/tclEncoding.c: that permits longer lifetimes of the + * generic/tclInt.h: Tcl_Encoding values kept as intreps of + Tcl_Obj's. Reduces the need for repeated reading of encoding + definition files from the filesystem. [Bug 1077262] -2008-04-09 Andreas Kupries <andreask@activestate.com> + * generic/tclNamesp.c: Allow for [namespace import] of a command + * tests/namespace.test: over a previous [namespace import] of itself + without throwing an error. [RFE 1230597] - * tests/chanio.test (chan-io-52.5): Removed '-size -1' from test, - * tests/io.test (io-52.5): does not seem to have any bearing, and - was an illegal value. +2005-07-01 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Added checking of -size - * tests/ioCmd.test (iocmd-15.{13,14}): value to reject negative - values, and values overflowing 32-bit signed. [Bug 1557855]. Basic - patch by Alexandre Ferrieux <ferrieux@users.sourceforge.net>, with - modifications from me to separate overflow from true negative - value. Extended testsuite. + * unix/tclUnixNotfy.c: protect against spurious wake-ups while waiting + on the condition variable when tearing down the notifier thread. [Bug + 1222872] -2008-04-08 Andreas Kupries <andreask@activestate.com> +2005-06-27 Don Porter <dgp@users.sourceforge.net> - * tests/io.test (io-53.8): Fixed ordering of vwait and after - cancel. cancel has to be done after the vwait completes. + *** 8.4.11 TAGGED FOR RELEASE *** -2008-04-09 Daniel Steffen <das@users.sourceforge.net> + * library/auto.tcl: Reverted to Revision 1.12.2.3 (Tcl 8.4.9). + Restores the (buggy) behavior of [auto_reset] that fails to clear + away auto-loaded commands from non-global namespaces. Fixing this + bug exposed an unknown number of buggy files out there (including at + least portions of the Tk script library) that cannot tolerate double + [source]-ing. The burden of fixing these exposed bugs will not be + forced on package/extension/application authors until Tcl 8.5. - * 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 +2005-06-24 Kevin Kenny <kennykb@acm.org> -2008-04-07 Andreas Kupries <andreask@activestate.com> + * generic/tclEvent.c (Tcl_Finalize): + * generic/tclInt.h: + * generic/tclPreserve.c (TclFinalizePreserve): Changed the + finalization logic so that Tcl_Preserve finalizes after exit + handlers run; a lot of code called from Tk's exit handlers + presumes tha Tcl_Preserve will still work even from an exit + handler. Also, made the assertion check that no exit handlers + are created in Tcl_Finalize conditional on TCL_MEM_DEBUG to + avoid spurious panics in the "stable" release. - * 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. +2005-06-24 Don Porter <dgp@users.sourceforge.net> - * 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. + * library/auto.tcl: Make file safe to re-[source] without + destroying registered auto_mkindex_parser hooks. -2008-04-07 Andreas Kupries <andreask@activestate.com> +2005-06-23 Daniel Steffen <das@users.sourceforge.net> - * 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. + * tools/tcltk-man2html.tcl: fixed useversion glob pattern to accept + multi-digit patchlevels. -2008-04-07 Reinhard Max <max@suse.de> +2005-06-23 Kevin Kenny <kennykb@acm.org> - * 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'. + * win/tclWinChan.c: More rewriting of __asm__ blocks that + * win/tclWinFCmd.c: implement SEH in GCC, because mingw's + gcc 3.4.2 is not as forgiving of violations committed by + the old code and caused panics. [Bug 1225957] -2008-04-05 Kevin B. Kenny <kennykb@acm.org> +2005-06-23 Daniel Steffen <das@users.sourceforge.net> - * 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. + * unix/Makefile.in (install-private-headers): rewrite tclPort.h when + installing private headers to remove ../unix relative #include path to + tclUnixPort.h (which is incorrect at the installed location). -2008-04-04 Andreas Kupries <andreask@activestate.com> +2005-06-22 Kevin Kenny <kennykb@acm.org> - * tests/io.test (io-53.9): Added testcase for [Bug 780533], based - * tests/chanio.test: on Alexandre's test script. Also fixed - problem with timer in preceding test, was not canceled properly in - the ok case. + * generic/tclInt.h: Changed the finalization + * generic/tclEvent.c (Tcl_Finalize): logic to defer the + * generic/tclIO.c (TclFinalizeIOSubsystem): shutdown of the pipe + * unix/tclUnixPipe.c (TclFinalizePipes): management until after + * win/tclWinPipe.c (TclFinalizePipes): all channels have been + closed, in order to avoid a situation where the Windows + PipeCloseProc2 would re-establish the exit handler after exit + handlers had already run, corrupting the heap. [Bug 1225727] + Corrected a read of uninitialized memory in PipeCloseProc2, which (at + least on certain configurations) caused a great number of tests to + either fail or hang. [Bug 1225044] -2008-04-04 Andreas Kupries <andreask@activestate.com> +2005-06-22 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'. + * generic/tclInt.h: Followup to change made on 2005-06-18 by Daniel + Steffen. There are compilers (*) who error out on the redefinition of + WORDS_BIGENDIAN. We have to undef the previous definition (on the + command line) first to make this acceptable. (*): AIX native. - * tests/ioCmd.test (iocmd-24.6): Testcase updated for changed - message. +2005-06-22 Don Porter <dgp@users.sourceforge.net> - * generic/tclIORChan.c (ReflectClose): Added missing removal of - the now closed channel from the reflection map. Before we could - crash the system by invoking 'chan postevent' on a closed - reflected channel, dereferencing the dangling pointer in the map. + * win/tclWinFile.c: Potential buffer overflow. [Bug 1225571] + Thanks to Pat Thoyts for discovery and fix. - * tests/ioCmd.test (iocmd-31.8): Testcase for the above. + * tests/safe.test: Backport performance improvement from + reduced $::auto_path. -2008-04-03 Andreas Kupries <andreask@activestate.com> +2005-06-21 Pat Thoyts <patthoyts@users.sourceforge.net> - * 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. + * tests/winDde.test: Added some waits to the dde server script to + let event processing run after we create the dde server and before + we exit the server process. This avoids 'server did not respond' + errors. -2008-04-02 Andreas Kupries <andreask@activestate.com> +2005-06-21 Kevin Kenny <kennykb@acm.org> - * 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. + * generic/tclFileName.c: Corrected a problem where a directory name + containing a colon can crash the process on Windows [Bug 1194458] + * tests/fileName.test: Added test for [file split] and [file join] + with a name containing a colon. + * win/tclWinPipe.c: Reverted davygrvy's changes of 2005-04-19; + they cause multiple failures in io.test. [Bug 1225044, still open] -2008-04-01 Andreas Kupries <andreask@activestate.com> +2005-06-21 Don Porter <dgp@users.sourceforge.net> - * 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: Made the walk of the active trace list aware + * generic/tclCmdMZ.c: of the direction of trace scanning, so the + * generic/tclInt.h: proper correction can be made. [Bug 1224585] + * tests/trace.test (trace-34.2,3): -2008-04-01 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c (Tcl_DeleteTrace): Added missing walk of the + * tests/trace.test (trace-34.1): list of active traces to + cleanup references to traces being deleted. [Bug 1201035] - * generic/tclStubLib.c (Tcl_InitStubs): Added missing error message. - * generic/tclPkg.c (Tcl_PkgInitStubsCheck): +2005-06-20 Don Porter <dgp@users.sourceforge.net> -2008-03-30 Kevin Kenny <kennykb@acm.org> + * doc/FileSystem.3: added missing Tcl_GlobTypeData documentation [Bug + 935853] - * 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. +2005-06-18 Daniel Steffen <das@users.sourceforge.net> - * unix/configure: autoconf-2.61 + * generic/tclInt.h: ensure WORDS_BIGENDIAN is defined correctly with + fat compiles on Darwin (i.e. ppc and i386 at the same time), the + configure AC_C_BIGENDIAN check is not sufficient in this case because + a single run of the compiler builds for two architectures with + different endianness. - * 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] + * unix/tcl.m4 (Darwin): add -headerpad_max_install_names to LDFLAGS to + ensure we can always relocate binaries with install_name_tool. -2008-03-26 Don Porter <dgp@users.sourceforge.net> + * unix/configure: autoconf-2.13 - *** 8.5.2 TAGGED FOR RELEASE *** +2005-06-18 Don Porter <dgp@users.sourceforge.net> - * generic/tcl.h: Bump to 8.5.2 for release. - * library/init.tcl: + * changes: Update changes for 8.4.11 release + + * README: Bump version number to 8.4.11 + * generic/tcl.h: * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: + * win/README.binary: * win/configure.in: - * unix/configure: autoconf-2.59 + * unix/configure: autoconf * win/configure: - * changes: Updated for 8.5.2 release. - -2008-03-28 Donal K. Fellows <dkf@users.sf.net> - - * tests/fCmd.test: Substantial rewrite to use many more tcltest - features. Great reduction in quantity of [catch] gymnastics. Several - buggy tests fixed, including one where the result of the previous test - was being checked! - -2008-03-27 Kevin B. Kenny <kennykb@acm.org> - - * library/tzdata/America/Marigot: - * library/tztata/America/St_Barthelemy: - * library/tzdata/America/Argentina/San_Luis: - * library/tzdata/Asia/Ho_Chi_Minh: - * library/tzdata/Asia/Kolkata: (new files) - * library/tzdata/America/Caracas: - * library/tzdata/America/Havana: - * library/tzdata/America/Santiago: - * library/tzdata/America/Argentina/Buenos_Aires: - * library/tzdata/America/Argentina/Catamarca: - * library/tzdata/America/Argentina/Cordoba: - * library/tzdata/America/Argentina/Jujuy: - * library/tzdata/America/Argentina/La_Rioja: - * library/tzdata/America/Argentina/Mendoza: - * library/tzdata/America/Argentina/Rio_Gallegos: - * library/tzdata/America/Argentina/San_Juan: - * library/tzdata/America/Argentina/Tucuman: - * library/tzdata/America/Argentina/Ushuaia: - * library/tzdata/Asia/Baghdad: - * library/tzdata/Asia/Calcutta: - * library/tzdata/Asia/Damascus: - * library/tzdata/Asia/Saigon: - * library/tzdata/Pacific/Easter: - Changes up to and including Olson's tzdata2008b. +2005-06-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2008-03-27 Daniel Steffen <das@users.sourceforge.net> + * generic/tclCmdAH.c (Tcl_FormatObjCmd): Fix for [Bug 1154163]; only + * tests/format.test: insert 'l' modifier when it is needed. - * unix/tcl.m4 (SunOS-5.1x): fix 64bit support for Sun cc. [Bug 1921166] +2005-06-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * unix/configure: autoconf-2.59 + * unix/tclUnixNotfy.c (Tcl_FinalizeNotifier): Add dummy variable + so threaded build compiles. -2008-03-26 Don Porter <dgp@users.sourceforge.net> +2005-06-06 Kevin B. Kenny <kennykb@acm.org> - * changes: Updated for 8.5.2 release. + * win/tclWin32Dll.c: Corrected another buglet in the assembly code for + stack probing on Win32/gcc. [Bug 1213678] -2008-03-24 Pat Thoyts <patthoyts@users.sourceforge.net> +2005-06-03 Daniel Steffen <das@users.sourceforge.net> - * generic/tclBinary.c: [Bug 1923966] - crash in binary format - * tests/binary.test: Added tests for the above crash condition. + *** 8.4.10 TAGGED FOR RELEASE *** -2008-03-21 Donal K. Fellows <dkf@users.sf.net> + * unix/tclLoadDyld.c: fixed header conflict when building this file + with USE_TCL_STUBS. - * doc/switch.n: Clarified documentation in respect of two-argument - invokation. [Bug 1899962] + * macosx/Makefile: fixed 'embedded' target. - * tests/switch.test: Added more tests of regexp-mode compilation of - the [switch] command. [Bug 1854435] +2005-06-02 Jeff Hobbs <jeffh@ActiveState.com> -2008-03-20 Donal K. Fellows <dkf@users.sf.net> + * unix/Makefile.in (html): add BUILD_HTML_FLAGS optional var + * tools/tcltk-man2html.tcl: add a --useversion to prevent + confusion when multiple Tcl source dirs exist. - * 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. + * changes: updated for 8.4.10 release (porter) -2008-03-19 Donal K. Fellows <dkf@users.sf.net> +2005-05-31 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * generic/tcl.h, generic/tclThreadAlloc.c (Tcl_GetMemoryInfo): Make - sure this function is available when direct linking. [Bug 1868171] + * unix/tclUnixNotfy.c: the notifier thread is now created as + joinable thread and it is properly joined in Tcl_FinalizeNotifier. + This is an attempt to fix [Bug 1082283] - * tests/reg.test (reg-33.14): Marked nonPortable because some - environments have small default stack sizes. [Bug 1905562] +2005-05-29 Jeff Hobbs <jeffh@ActiveState.com> -2008-03-18 Andreas Kupries <andreask@activestate.com> + * win/tclWinThrd.c (TclpFinalizeThreadData): move tlsKey defn + to top of file and clarify name (was 'key'). [Bug 1204064] - * 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. +2005-05-27 Jeff Hobbs <jeffh@ActiveState.com> - ***INCOMPATIBILITY*** for all Tcl Modules already written in non-utf-8 - compatible encodings. + * README: Bumped patchlevel to 8.4.10 + * generic/tcl.h: + * tools/tcl.wse.in: + * unix/tcl.spec, unix/configure, unix/configure.in: + * win/configure, win/configure.in: -2008-03-18 Don Porter <dgp@users.sourceforge.net> +2005-05-26 Daniel Steffen <das@users.sourceforge.net> - * generic/tclExecute.c: Patch from Miguel Sofer to correct the - alignment of memory allocated by GrowEvaluationStack(). [Bug 1914503] + * macosx/Makefile: moved & corrected EMBEDDED_BUILD check. -2008-03-18 Andreas Kupries <andreask@activestate.com> + * unix/configure.in: corrected framework finalization to softlink + stub library to Versions/8.x subdir instead of Versions/Current. + * unix/configure: autoconf-2.13 - * library/tm.tcl (::tcl::tm::Defaults): Modified handling of - environment variables. See [Bug 1914604]. Solution slightly different - than proposed in the report. Using the underscored form TCLX_y_TM_PATH - even if TCLX.y_TM_PATH exists. Also using a loop to cut prevent code - replication. +2005-05-25 Jeff Hobbs <jeffh@ActiveState.com> -2008-03-16 Donal K. Fellows <dkf@users.sf.net> + * generic/tclCmdMZ.c (Tcl_TimeObjCmd): add necessary cast - * 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] + * unix/configure, unix/configure.in: ensure false Tcl.framework is + only created with --enable-framework - * doc/lreplace.n: Clarified documentation of what happens with - negative indices. [Bug 1905809] Added example, tidied up formatting. +2005-05-24 Daniel Steffen <das@users.sourceforge.net> -2008-03-14 Don Porter <dgp@users.sourceforge.net> + * tests/env.test: added DYLD_FRAMEWORK_PATH to the list of env vars + that need to be handled specially. - * generic/tclBasic.c (OldMathFuncProc): Same workaround protection - from bad TclStackAlloc() alignment. Thanks George Peter Staplin. + * macosx/Makefile: + * macosx/README: + * macosx/Tcl-Info.plist.in (new file): + * unix/Makefile.in: + * unix/configure.in: + * unix/tcl.m4: + * unix/tclUnixInit.c: moved all Darwin framework build support from + macosx/Makefile into the standard unix configure/make buildsystem, the + macosx/Makefile is no longer required to build Tcl.framework (but its + functionality is still available for backwards compatibility). + * unix/configure: autoconf-2.13 - * generic/tclCmdIL.c (Tcl_LsortObjCmd): Use ckalloc() to allocate - SortElement arrays instead of TclStackAlloc() which isn't getting - alignment right. Workaround for [Bug 1914503]. + * generic/tclIOUtil.c (TclLoadFile): + * generic/tclInt.h: + * unix/tcl.m4: + * unix/tclLoadDyld.c: added support for [load]ing .bundle binaries in + addition to .dylib's: .bundle's can be [unload]ed (unlike .dylib's), + and can be [load]ed from memory, e.g. directly from VFS without + needing to be written out to a temporary location first. [Bug 1202209] + * unix/configure: autoconf-2.13 -2008-03-14 Reinhard Max <max@suse.de> + * generic/tclCmdMZ.c (Tcl_TimeObjCmd): change [time] called with a + count > 1 to return a string with a float value instead of a rounded + off integer. [Bug 1202178] - * generic/tclTest.c: Ignore the return value of write() when we are - * unix/tclUnixPipe.c: about to exit anyways. +2005-05-20 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> -2008-03-13 Daniel Steffen <das@users.sourceforge.net> + * generic/tclParseExpr.c: removed unreferenced stack variable "errMsg" + probably included by fixing [Bug 1201589] (see below). - * 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 +2005-05-20 Don Porter <dgp@users.sourceforge.net> -2008-03-13 Don Porter <dgp@users.sourceforge.net> + * generic/tclParseExpr.c: Corrected parser to recognize all + boolean literals accepted by Tcl_GetBoolean, including prefixes like + "y" and "f", and to allow "eq" and "ne" as function names in the + proper context. [Bug 1201589] - * changes: Updated for 8.5.2 release. +2005-05-19 Daniel Steffen <das@users.sourceforge.net> - * generic/tclStrToD.c: Resolve identifier conflict over "pow10" with - libm in Cygwin and DJGPP. Thanks to Gordon Schumacher and Philip - Moore. [Patch 1800636] + * macosx/tclMacOSXNotify.c (Tcl_InitNotifier): fixed crashing + CFRelease of runLoopSource in Tcl_InitNotifier (reported by Zoran): + CFRunLoopAddSource doesn't CFRetain, so can only CFRelease the + runLoopSource in Tcl_FinalizeNotifier. -2008-03-12 Daniel Steffen <das@users.sourceforge.net> +2005-05-14 Daniel Steffen <das@users.sourceforge.net> - * 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'. + * macosx/tclMacOSXBundle.c: + * unix/tclUnixInit.c: + * unix/tcl.m4 (Darwin): made use of CoreFoundation API configurable + and added test of CoreFoundation availablility to allow building on + ppc64, replaced HAVE_CFBUNDLE by HAVE_COREFOUNDATION; test for + availability of Tiger or later OSSpinLockLock API. -2008-03-12 Andreas Kupries <andreask@activestate.com> + * unix/tclUnixNotfy.c: + * unix/Makefile.in: + * macosx/tclMacOSXNotify.c (new file): when CoreFoundation is + available, use new CFRunLoop based notifier: allows easy integration + with other event loops on Mac OS X, in particular the TkAqua Carbon + event loop is now integrated via a standard tcl event source (instead + of TkAqua upon loading having to finalize the exsting notifier and + replace it with its custom version). [Patch 1202052] - * doc/info.n: Replaced {expand} with {*}. + * tests/unixNotfy.test: don't run unthreaded tests on Darwin since + notifier may be using threads even in unthreaded core. -2008-03-12 Jeff Hobbs <jeffh@ActiveState.com> + * unix/tclUnixPort.h: + * unix/tcl.m4 (Darwin): test for thread-unsafe realpath durning + configure, as Darwin 7 and later realpath is threadsafe. - * 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] + * macosx/tclMacOSXBundle.c: + * unix/tclLoadDyld.c: + * unix/tclUnixInit.c: fixed gcc 4.0 warnings. -2008-03-11 Jeff Hobbs <jeffh@ActiveState.com> + * unix/configure: autoconf-2.13 - * 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] +2005-05-10 Jeff Hobbs <jeffh@ActiveState.com> - * library/http/http.tcl: Whitespace changes, code cleanup. Allow http - to be re-sourced without overwriting http state. + * tests/string.test: string-10.[21-30] + * generic/tclCmdMZ.c (Tcl_StringObjCmd): add extra checks to + prevent possible UMR in unichar cmp function for string map. -2008-03-11 Daniel Steffen <das@users.sourceforge.net> +2005-05-06 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclEncoding.c (LoadEscapeEncoding): Avoid leaking escape - sub-encodings, fixes encoding-11.1 failing after iso2022-jp loaded. - [Bug 1893053] + * unix/tcl.m4, unix/configure: correct Solaris 10 (5.10) check and + add support for x86_64 Solaris cc builds. - * macosx/tclMacOSXNotify.c: Avoid using CoreFoundation after fork() on - Darwin 9 even when TclpCreateProcess() uses vfork(). +2005-04-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * 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. + * doc/FileSystem.3: Backport of doc fix. [Bug 1172401] - * unix/tclUnixPort.h: Workaround vfork() problems - in llvm-gcc-4.2.1 -O4 build. +2005-04-27 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixPort.h: Move MODULE_SCOPE compat define - to top [Bug 1911102]. + * library/init.tcl: Corrected flaw in interactive command + * tests/main.test: auto-completion. [Bug 1191409] - * 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: + * tests/unixInit.test (7.1): Alternative fix for the + 2005-04-22 commit. - * unix/configure: autoconf-2.59 +2005-04-25 Daniel Steffen <das@users.sourceforge.net> - * unix/Makefile.in (install-strip): Strip non-global symbols from - dynamic library. + * compat/string.h: fixed memchr() protoype for __APPLE__ so that we + build on Mac OS X 10.1 again. - * unix/tclUnixNotfy.c: Fix warning. + * generic/tclNotify.c (TclFinalizeNotifier): fixed notifier not being + finalized in unthreaded core (was testing for notifier initialization + in current thread by checking thread id != 0 but thread id is always 0 + in untreaded core). - * tests/exec.test (exec-9.7): Reduce timing sensitivity - * tests/socket.test (socket-2.11): (esp. on multi-proc machines). + * unix/tclUnixNotfy.c (Tcl_WaitForEvent): sync with HEAD: only declare + and use timeout var in unthreaded core. - * tests/fCmd.test (fCmd-9.4): Skip on Darwin 9 (xfail). + * unix/Makefile.in: added @PLAT_SRCS@ to SRCS and split out + NOTIFY_SRCS from UNIX_SRCS for parity with UNIX_OBJS & NOTIFY_OBJS. -2008-03-11 Miguel Sofer <msofer@users.sf.net> + * unix/configure.in: only run check for broken strstr implementation + if AC_REPLACE_FUNCS(strstr) hasn't already determined that strstr is + unavailable, otherwise compat/strstr.o will be used twice (resulting + in duplicate symbol link errors on Mac OS X 10.1) - * 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] + * unix/tcl.m4 (Darwin): added configure checks for recently added + linker flags -single_module and -search_paths_first to allow building + with older tools (and on Mac OS X 10.1), use -single_module in + SHLIB_LD and not just T{CL,K}_SHLIB_LD_EXTRAS, added unexporting from + Tk of symbols from libtclstub to avoid duplicate symbol warnings, + added PLAT_SRCS definition for Mac OS X. + (SC_MISSING_POSIX_HEADERS): added caching of dirent.h check. + (SC_TCL_64BIT_FLAGS): fixed 'checking for off64_t' message output. -2008-03-10 Don Porter <dgp@users.sourceforge.net> + * unix/configure: autoconf-2.13 - * changes: Updated for 8.5.2 release. +2005-04-22 Don Porter <dgp@users.sourceforge.net> - * doc/http.n: Revised to indicate that [package require http 2.5.5] - is needed to get all the documented commands ([http::meta]). + * generic/tclCmdMZ.c: Corrected intrep-dependence of + * tests/string.test: [string is boolean] [Bug 1187123] - * generic/tclEvent.c (TclDefaultBgErrorHandlerObjCmd): Added error - * tests/event.test (event-5.*): checking to protect against callers - passing invalid return options dictionaries. [Bug 1901113] +2005-04-22 Daniel Steffen <das@users.sourceforge.net> - * 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] + * tests/unixInit.test (7.1): fixed failure when running tests with + -tmpdir arg not set to working dir. -2008-03-07 Andreas Kupries <andreask@activestate.com> +2005-04-20 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/tclGet.c (Tcl_GetInt): Corrected error that did not + * generic/tclObj.c (Tcl_GetIntFromObj): permit 0x80000000 to be + recognized as an integer on TCL_WIDE_INT_IS_LONG systems [Bug 1090869] -2008-03-07 Don Porter <dgp@users.sourceforge.net> +2005-04-19 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclExecute.c (Tcl_ExprObj): Revised expression bytecode - compiling so that bytecodes invalid due to changing context or due to - the difference between expressions and scripts are not reused. [Bug - 1899164] + * tests/winPipe.test (winpipe-6.2): remove -blocking 1 as this one + can truly block. - * generic/tclCmdAH.c: Revised direct evaluation implementation of - [expr] so that [expr $e] caches compiled bytecodes for the expression - as the intrep of $e. +2005-04-19 David Gravereaux <davygrvy@pobox.com> - * tests/execute.test (execute-6.*): More tests checking that - script bytecode is invalidated in the right situations. + * win/tclWinPipe.c: The pipe channel driver now respects the -blocking + option when closing. The windows pipe driver now has the same behavior + as the UNIX side. This change is to avoid a hung shell when exiting + due to open pipes that refuse to close in a graceful manner. + * doc/open.n: Added a note about -blocking 0 and lack of exit status + as it had never been documented. [Bug 947693] -2008-03-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> + ***POTENTIAL INCOMPATIBILITY*** - * win/configure.in: Add AC_HEADER_STDC to support msys/win64. + Scripts that use async pipes on windows, must (like the UNIX side) set + -blocking to 1 before calling [close] to receive the exit status. -2008-03-06 Donal K. Fellows <dkf@users.sf.net> + * tests/winPipe.test (winpipe-6.1/2): added 'fconfigure $f -blocking + 1' so the exit status can be acquired. - * doc/namespace.n: Minor tidying up. [Bug 1909019] +2005-04-13 David Gravereaux <davygrvy@pobox.com> -2008-03-04 Don Porter <dgp@users.sourceforge.net> + * generic/tclIO.c (Tcl_SetChannelBufferSize): Lowest size limit + * tests/io.test: changed from ten bytes to one byte. Need for + * tests/iogt.test: this change was proven by Ross Cartlidge + <rossc@cisco.com> where [read stdin 1] was grabbing 10 bytes followed + by starting a child process that was intended to continue reading from + stdin. Even with -buffersize set to one, nine chars were getting lost + by the buffersize over reading for the native read() caused by [read]. - * tests/execute.test (6.3,4): Added tests for [Bug 1899164]. +2005-04-12 Kevin B. Kenny <kennykb@acm.org> -2008-03-03 Reinhard Max <max@suse.de> + * compat/strstr.c: Added default definition of NULL to accommodate + building on systems with badly broken headers. [Bug 1175161] - * unix/tclUnixChan.c: Fix mark and space parity on Linux, which uses - CMSPAR instead of PAREXT. +2005-04-09 Daniel Steffen <das@users.sourceforge.net> -2008-03-02 Miguel Sofer <msofer@users.sf.net> + * macosx/README: updated requirements for OS & developer tool versions + + other small fixes/cleanup. - * generic/tclNamesp.c (GetNamespaceFromObj): - * tests/interp.test (interp-28.2): Spoil the intrep of an nsNameType - obj when the reference crosses interpreter boundaries. + * unix/tcl.m4 (Darwin): added -single_module linker flag to + TCL_SHLIB_LD_EXTRAS and TK_SHLIB_LD_EXTRAS. + * unix/configure: autoconf-2.13 -2008-02-29 Don Porter <dgp@users.sourceforge.net> +2005-04-05 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> - * 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(). + Set of changes correcting huge memory waste (not a leak) when a thread + exits. This has been introduced in 8.4.7 within an attempt to + correctly cleanup after ourselves when Tcl library is being unloaded + with the Tcl_Finalize() call. - * 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(). + This fixes the [Bug 1178445]. -2008-02-28 Joe English <jenglish@users.sourceforge.net> + * generic/tclInt.h: added prototypes for TclpFreeAllocCache() and + TclFreeAllocCache() - * unix/tclPort.h, unix/tclCompat.h, unix/tclUnixChan.h: Reduce scope - of <sys/filio.h> and <sys/ioctl.h> #includes. [Patch 1903339] + * generic/tclThreadAlloc.c: modified TclFinalizeThreadAlloc() to + explicitly call TclpFreeAllocCache with the NULL-ptr as argument + signalling cleanup of private tsd key used only by the threading + allocator. -2008-02-28 Joe English <jenglish@users.sourceforge.net> + * unix/tclUnixThrd.c: fixed TclpFreeAllocCache() to recognize when + being called with NULL argument. This is a signal for it to clean up + the tsd key associated with the threading allocator. - * 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]. + * win/tclWinThrd.c: renamed TclWinFreeAllocCache to TclpFreeAllocCache + and fixed to recognize when being called with NULL argument. This is a + signal for it to clean up the tsd key associated with the threading + allocator. -2008-02-28 Don Porter <dgp@users.sourceforge.net> +2005-04-05 Don Porter <dgp@users.sourceforge.net> - * 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. + * generic/tclExecute.c (ExprSrandFunc): Replaced incursions into the + * generic/tclUtil.c (TclGetIntForIndex): intreps of numeric types with + simpler calls of Tcl_GetIntFromObj and Tcl_GetLongFromObj, now that + those routines are better behaved wrt shimmering. [Patch 1177129] - * generic/tclCompExpr.c (ParseExpr): Plug memory leak in error - message generation. +2005-03-29 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclStringObj.c (Tcl_AppendFormatToObj): [format %llx $big] - leaked an mp_int. + * win/tcl.m4, win/configure: do not require cygpath in macros to + allow msys alone as an alternative. - * 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. + * win/tclWinTime.c (TclpGetDate): use time_t for 'time' [Bug 1163422] -2008-02-27 Pat Thoyts <patthoyts@users.sourceforge.net> +2005-03-18 Don Porter <dgp@users.sourceforge.net> - * library/http/http.tcl: [Bug 705956] - fix inverted logic when - cleaning up socket error in geturl. + * generic/tclCompCmds.c (TclCompileIncrCmd): Corrected checks for + immediate operand usage to permit leading space and sign characters. + Restores more efficient bytecode for [incr x -1] that got lost in the + CONST string reforms of Tcl 8.4. [Bug 1165671] -2008-02-27 Kevin B. Kenny <kennykb@acm.org> + * generic/tclBasic.c (Tcl_EvalEx,TclEvalTokensStandard): + * generic/tclCmdMZ.c (Tcl_SubstObj): + * tests/basic.test (basic-46.4): Restored recursion limit + * tests/parse.test (parse-19.*): testing in nested command + substitutions within direct script evaluation (Tcl_EvalEx) that got + lost in the parser reforms of Tcl 8.1. Added tests for correct + behavior. [Bug 1115904] - * 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]. +2005-03-15 Vince Darley <vincentdarley@users.sourceforge.net> -2008-02-26 Joe English <jenglish@users.sourceforge.net> + * generic/tclFileName.c: + * win/tclWinFile.c: + * tests/winFCMd.test: fix to 'file pathtype' and 'file norm' failures + on reserved filenames like 'COM1:', etc. - * generic/tclIOUtil.c, unix/tclUnixPort.h, unix/tclUnixChan.c: - Remove dead/unused portability-related #defines and unused conditional - code. See [Patch 1901828] for discussion. +2005-03-15 Kevin B. Kenny <kennykb@acm.org> -2008-02-26 Joe English <jenglish@users.sourceforge.net> + * generic/tclClock.c: + * generic/tclDate.c: + * generic/tclGetDate.y: + * generic/tclInt.decls: + * unix/tclUnixTime.c: + * win/tclWinTime.c: Replaced 'unsigned long' variable holding + times with 'Tcl_WideInt', to cope with systems on which a time_t is + wider than a long (Win64) [Bug 1163422] + * generic/tclIntDecls.h: Regen - * generic/tclIORChan.c (enum MethodName), - * generic/tclCompExpr.c (enum Marks): More stray trailing ","s +2005-03-15 Pat Thoyts <patthoyts@users.sourceforge.net> -2008-02-26 Joe English <jenglish@users.sourceforge.net> + * unix/tcl.m4: Make it work on OpenBSD again. Imported patch + from the OpenBSD ports tree. - * 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. +2005-03-10 Don Porter <dgp@users.sourceforge.net> -2008-02-26 Joe English <jenglish@users.sourceforge.net> + * generic/tclCmdMZ.c (TclCheckInterpTraces): Corrected mistaken + cast of ClientData to (TraceCommandInfo *) when not warranted. Thanks + to Yuri Victorovich for the report. [Bug 1153871] - * generic/tclCompile.h: Remove stray trailing "," from enum - InstOperandType definition (C99ism). +2005-03-08 Jeff Hobbs <jeffh@ActiveState.com> -2008-02-26 Jeff Hobbs <jeffh@ActiveState.com> + * win/makefile.vc: clarify necessary defined vars that can come + from MSVC or the Platform SDK. - * generic/tclUtil.c (TclReToGlob): Fix the handling of the last star - * tests/regexpComp.test: possibly being escaped in - determining right anchor. [Bug 1902436] +2005-02-24 Don Porter <dgp@users.sourceforge.net> -2008-02-26 Pat Thoyts <patthoyts@users.sourceforge.net> + * library/tcltest/tcltest.tcl: Better use of [glob -types] to avoid + * tests/tcltest.test: failed attempts to [source] a directory, and + similar matters. Thanks to "mpettigr". [Bug 1119798] - * 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] + * library/tcltest/pkgIndex.tcl: Bump to tcltest 2.2.8 -2008-02-22 Pat Thoyts <patthoyts@users.sourceforge.net> +2005-02-23 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * 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] + * doc/CrtChannel.3 (THREADACTIONPROC): Formatting fix. [Bug 1149605] -2008-02-13 Don Porter <dgp@users.sourceforge.net> +2005-02-17 Jeff Hobbs <jeffh@ActiveState.com> - * 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 + * win/tclWinFCmd.c (TraverseWinTree): use wcslen on wchar, not + Tcl_UniCharLen. - * unix/configure: autoconf (2.59) - * win/configure: +2005-02-16 Miguel Sofer <msofer@users.sf.net> -2008-02-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * doc/variable.n: fix for [Bug 1124160], variables are detected by + [info vars] but not by [info locals]. - * 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] +2005-02-10 Jeff Hobbs <jeffh@ActiveState.com> - * unix/README: Documented missing configure flags. [Bug 1799011] + * unix/Makefile.in: remove SHLIB_LD_FLAGS (only for AIX, inlined + * unix/tcl.m4: into SHLIB_LD). Combine AIX-* and AIX-5 + * unix/configure: branches in SC_CONFIG_CFLAGS. + Correct gcc builds for AIX-4+ and HP-UX-11. -2008-02-06 Kevin B. Kenny <kennykb@acm.org> +2005-02-10 Miguel Sofer <msofer@users.sf.net> - * doc/clock.n (%N): Corrected an error in the explanation of the %N - format group. - * generic/tclClock.c (ClockParseformatargsObjCmd): - * library/clock.tcl (::tcl::clock::format): - * tests/clock.test (clock-1.0, clock-1.4): - Performance enhancements in [clock format] (moving the analysis of - $args into C code, holding on to Tcl_Objs with resolved command names, - [lassign] in place of [foreach], avoiding [namespace which] for - command resolution). + * generic/tclBasic.c (Tcl_EvalObjEx): + * tests/basic.test (basic-26.2): preserve the arguments passed to TEOV + in the pure-list branch, in case the list shimmers away. Fix for [Bug + 1119369], reported by Peter MacDonald. -2008-02-04 Don Porter <dgp@users.sourceforge.net> +2005-02-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> - *** 8.5.1 TAGGED FOR RELEASE *** + * doc/binary.n: Made the documentation of sign bit masking and + [binary scan] consistent. [Bug 1117017] - * changes: Updated for 8.5.1 release. +2005-02-01 Don Porter <dgp@users.sourceforge.net> - * 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: + * generic/tclExecute.c (TclCompEvalObj): Removed stray statement + left behind in prior code reorganization. - * unix/configure: autoconf-2.59 - * win/configure: +2005-01-28 Jeff Hobbs <jeffh@ActiveState.com> -2008-02-04 Miguel Sofer <msofer@users.sf.net> + * unix/configure, unix/tcl.m4: add solaris 64-bit gcc build + support. [Bug 1021871] - * generic/tclExecute.c (INST_CONCAT1): Fix optimisation for in-place - concatenation (was going over String type) +2005-01-27 Jeff Hobbs <jeffh@ActiveState.com> -2008-02-02 Daniel Steffen <das@users.sourceforge.net> + * generic/tclBasic.c (Tcl_ExprBoolean, Tcl_ExprDouble) + (Tcl_ExprLong): Fix to recognize Tcl_WideInt type. [Bug 1109484] - * unix/configure.in (Darwin): Correct Info.plist year substitution in - non-framework builds. +2005-01-27 Andreas Kupries <andreask@activestate.com> - * unix/configure: autoconf-2.59 + TIP#218 IMPLEMENTATION -2008-01-30 Miguel Sofer <msofer@users.sf.net> + * generic/tclDecls.h: Regenerated from tcl.decls. + * generic/tclStubInit.c: - * generic/tclInterp.c (Tcl_GetAlias): Fix for [Bug 1882373], thanks go - to an00na. + * doc/CrtChannel.3: Documentation of extended API, + * generic/tcl.decls: extended testsuite, and + * generic/tcl.h: implementation. Removal of old + * generic/tclIO.c: driver-specific TclpCut/Splice + * generic/tclInt.h: functions. Replaced with generic + * tests/io.test: thread-action calls through the + * unix/tclUnixChan.c: new hooks. Update of all builtin + * unix/tclUnixPipe.c: channel drivers to version 4. + * unix/tclUnixSock.c: Windows drivers extended to + * win/tclWinChan.c: manage thread state in a thread + * win/tclWinConsole.c: action handler. + * win/tclWinPipe.c: + * win/tclWinSerial.c: + * win/tclWinSock.c: + * mac/tclMacChan.c: -2008-01-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2005-01-25 Don Porter <dgp@users.sourceforge.net> - * tools/tcltk-man2html.tcl: Reworked manual page scraper to do a - proper job of handling references to Ttk options. [Tk Bug 1876493] + * library/auto.tcl: Updated [auto_reset] to clear auto-loaded + procs in namespaces other than :: [Bug 1101670]. -2008-01-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2005-01-25 Daniel Steffen <das@users.sourceforge.net> - * 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] + * unix/tcl.m4 (Darwin): fixed bug with static build linking to dynamic + library in /usr/lib etc instead of linking to static library earlier + in search path. [Bug 956908] + Removed obsolete references to Rhapsody. + * unix/configure: autoconf-2.13 -2008-01-25 Don Porter <dgp@users.sourceforge.net> +2005-01-19 Mo DeJong <mdejong@users.sourceforge.net> - * changes: Updated for 8.5.1 release. + * win/tclWinChan.c (FileCloseProc): Invoke TclpCutFileChannel() to + remove a FileInfo from the thread local list before deallocating it. + This should have been done via an earlier call to Tcl_CutChannel, but + I was running into a crash in the next call to Tcl_CutChannel during + the IO finalization stage. -2008-01-23 Don Porter <dgp@users.sourceforge.net> +2005-01-17 Vince Darley <vincentdarley@users.sourceforge.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. + * tests/winFCmd.test: made test independent of current drive. [Bug + 1066528] - * generic/tclCompile.h: Demote TclCompEvalObj() from internal stubs to - * generic/tclInt.decls: a MODULE_SCOPE routine declared in - tclCompile.h. +2005-01-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclIntDecls.h: make genstubs - * generic/tclStubInit.c: + * unix/tclUnixFCmd.c (CopyFile): Convert u_int to unsigned to make + clashes with types in standard C headers less of a problem. [Bug + 1098829] -2008-01-22 Don Porter <dgp@users.sourceforge.net> +2005-01-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclTimer.c (AfterProc): Replace Tcl_EvalEx() with - Tcl_EvalObjEx() to evaluate [after] callbacks. Part of trend to favor - compiled execution over direct evaluation. + * library/http/http.tcl (http::mapReply): Significant performance + enhancement by using [string map] instead of [regsub]/[subst], and + update version requirement to Tcl8.4. [Bug 1020491] -2008-01-22 Miguel Sofer <msofer@users.sf.net> +2005-01-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclCmdIl.c (Tcl_LreverseObjCmd): - * tests/cmdIL.test (cmdIL-7.7): Fix crash on reversing an empty list. - [Bug 1876793] + * unix/tclUnixInit.c (localeTable): Add encoding mappings for some + Chinese locales. [Bug 1084595] -2008-01-20 Jeff Hobbs <jeffh@ActiveState.com> + * doc/lsearch.n: Convert to other form of emacs mode control + comment to prevent problems with old versions of man. [Bug 1085127] - * unix/README: Minor typo fixes [Bug 1853072] +2004-12-29 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclIO.c (TclGetsObjBinary): Operate on topmost channel. - [Bug 1869405] (Ficicchia) + * win/tcl.m4, win/configure: update MSVC CFLAGS_OPT to -O2, remove + -Gs (included in -O2) and -GD (outdated). Use "link -lib" instead + of "lib" binary and remove -YX for MSVC7 portability. Add + -fomit-frame-pointer for gcc OPT compiles. [Bug 1092952, 1091967] -2008-01-17 Don Porter <dgp@users.sourceforge.net> +2004-12-13 Kevin B. Kenny <kennykb@acm.org> - * generic/tclCompExpr.c: Revision to preserve parsed intreps of - numeric and boolean literals when compiling expressions with (optimize - == 1). + * doc/clock.n: Clarify that the [clock scan] command does not accept + the full range of ISO8601 point-in-time formats. [Bug 1075433] -2008-01-15 Miguel Sofer <msofer@users.sf.net> +2004-12-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * 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: + * doc/Async.3: Reword for better grammar, better nroff and get the + flag name right. (Reported by David Welton.) - * generic/tclCompExpr.c: Fix literal leak in exprs [Bug 1869989] (dgp) - * generic/tclExecute.c: - * tests/compExpr.test: +2004-12-06 Jeff Hobbs <jeffh@ActiveState.com> - * doc/proc.n: Changed wording for access to non-local variables; added - mention to [namespace upvar]. Lame attempt at dealing with - documentation. [Bug 1872708] + *** 8.4.9 TAGGED FOR RELEASE *** -2008-01-15 Miguel Sofer <msofer@users.sf.net> + * unix/tclUnixNotfy.c (NotifierThreadProc): init numFdBits [Bug + 1079286] - * generic/tclBasic.c: Replacing 'operator' by 'op' in the def of - * generic/tclCompExpr.c: struct TclOpCmdClientData to accommodate C++ - * generic/tclCompile.h: compilers. [Bug 1855644] +2004-12-02 Jeff Hobbs <jeffh@ActiveState.com> -2008-01-13 Jeff Hobbs <jeffh@ActiveState.com> + * changes: updated for 8.4.9 release - * win/tclWinSerial.c (SerialCloseProc, TclWinOpenSerialChannel): Use - critical section for read & write side. [Bug 1353846] (newman) +2004-12-02 Vince Darley <vincentdarley@users.sourceforge.net> -2008-01-11 Miguel Sofer <msofer@users.sf.net> + * generic/tclIOUtil.c: fix and new tests for [Bug 1074671] to + * tests/fileSystem.test: ensure tilde paths are not returned specially + by 'glob'. - * unix/tclUnixThrd.c (TclpThreadGetStackSize): Restore stack checking - functionality in freebsd. [Bug 1850424] +2004-12-01 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixThrd.c (TclpThreadGetStackSize): Fix for crash in - freebsd. [Bug 1860425] + * library/auto.tcl (tcl_findLibrary): Disabled use of [file normalize] + that caused trouble with freewrap. [Bug 1072136] -2008-01-10 Don Porter <dgp@users.sourceforge.net> +2004-11-26 Don Porter <dgp@users.sourceforge.net> - * 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] + * tests/reg.test (reg-32.*): Added missing testregexp constraints. -2008-01-09 George Peter Staplin <georgeps@xmission.com> + * library/auto.tcl (tcl_findLibrary): Made sure the uniquifying + operations on the search path does not also normalize. [Bug 1072136] - * doc/vwait.n: Add a missing be to fix a typo. +2004-11-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2008-01-04 Jeff Hobbs <jeffh@ActiveState.com> + * doc/dde.n: Resynchonized the documentation with itself and fixed + some formatting errors. - * tools/tcltk-man2html.tcl (make-man-pages): Make man page title use - more specific info on lhs to improve tabbed browser view titles. +2004-11-25 Zoran Vasiljevic <vasiljevic@users.sf.net> -2008-01-02 Donal K. Fellows <dkf@users.sf.net> + * doc/Notify.3: + * doc/Thread.3: Added doc fixes and hints from [Bug 1068077]. - * doc/binary.n: Fixed documentation bug reported on tcl-core, and - reordered documentation to discourage people from using the hex - formatter that is hardly ever useful. +2004-11-25 Reinhard Max <max@suse.de> -2008-01-02 Don Porter <dgp@users.sourceforge.net> + * tests/tcltest.test: The order in which [glob] returns the file names + * tests/fCmd.test: is undefined, so tests should not depend on it. - * 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 +2004-11-24 Don Porter <dgp@users.sourceforge.net> - * unix/configure: autoconf (2.59) - * win/configure: + * unix/tcl.m4 (SC_ENABLE_THREADS): Corrected failure to determine + the number of arguments for readdir_r on SunOS systems. [Bug 1071701] -2007-12-31 Donal K. Fellows <dkf@users.sf.net> + * unix/configure: autoconf-2.13 - * doc/dict.n: Clarified meaning of dictionary values following - discussion on comp.lang.tcl. +2004-11-24 Jeff Hobbs <jeffh@ActiveState.com> -2007-12-26 Miguel Sofer <msofer@users.sf.net> + * README: Bumped patchlevel to 8.4.9 + * generic/tcl.h: + * tools/tcl.wse.in: + * unix/tcl.spec, unix/configure, unix/configure.in: + * win/configure, win/configure.in: - * generic/tclCmdIL.c: More [lsort] data handling streamlines. The - function MergeSort is gone, essentially inlined into Tcl_LsortObjCmd. - It is not a straight inlining, two loops over all lists elements where - merged in the process: the linked list elements are now built and - merged into the temporary sublists in the same pass. +2004-11-24 Kevin B. Kenny <kennykb@acm.org> -2007-12-25 Miguel Sofer <msofer@users.sf.net> + * unix/tcl.m4 (SC_ENABLE_THREADS): Corrected bad check for 3-argument + readdir_r(). [Bug 1001325] + * unix/configure: Regenerated. + * unix/tclUnixNotfy.c: Corrected all uses of 'select' to manage their + masks using the FD_CLR, FD_ISSET, FD_SET, and FD_ZERO macros rather + than bit-whacking that failed under Solaris-Sparc-64. [Bug 1071807] - * generic/tclCmdIL.c: More [lsort] data handling streamlines. Extra - mem reqs of latest patches removed, restored to previous mem profile. - Improved -unique handling, now eliminating repeated elems immediately - instead of marking them to avoid reinsertion at the end. +2004-11-23 Don Porter <dgp@users.sourceforge.net> -2007-12-23 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclCmdIL.c (InfoVarsCmd): Corrected segfault in new + * tests/info.test (info-19.6): trivial matching branch [Bug 1072654] - * generic/tclCompCmds.c (TclCompileRegexpCmd): TCL_REG_NOSUB cannot - * tests/regexp.test (regexp-22.2): be used because it - * tests/regexpComp.test: [Bug 1857126] disallows backrefs. +2004-11-23 Vince Darley <vincentdarley@users.sourceforge.net> -2007-12-21 Miguel Sofer <msofer@users.sf.net> + * generic/tclPathObj.c: fix and new test for [Bug 1043129] in + * tests/fileSystem.test: the treatment of backslashes in file join on + Windows. - * generic/tclCmdIL.c: Speed patch for lsort [Patch 1856994]. +2004-11-22 Mo DeJong <mdejong@users.sourceforge.net> -2007-12-21 Miguel Sofer <msofer@users.sf.net> + * unix/configure: Regen. + * unix/tcl.m4 (SC_TCL_64BIT_FLAGS): Define HAVE_TYPE_OFF64_T only when + off64_t, open64(), and lseek64() are defined. IRIX 5.3 is known to not + include an open64 function. [Bug 1030465] - * generic/tclCmdIL.c (Tcl_LsortObjCmd, Tcl_LsearchObjCmd): Avoid - calling SelectObjFromSublist when there are no sublists. +2004-11-22 Mo DeJong <mdejong@users.sourceforge.net> -2007-12-21 Miguel Sofer <msofer@users.sf.net> + * unix/configure: Regen. + * unix/tcl.m4 (SC_ENABLE_THREADS): Check for a 2 argument version of + readdir_r that is known to exists under IRIX 5.3. + * unix/tclUnixThrd.c (TclpReaddir): Use either 2 arg or 3 arg version + of readdir_r. [Bug 1001325] - * generic/tclCmdIL.c (Tcl_LsortObjCmd): Preallocate a listObj of - sufficient length for the sorted list instead of growing it. Second - commit replaces calls to Tcl_ListObjAppenElement with direct access to - the internal rep. +2004-11-19 Reinhard Max <max@suse.de> -2007-12-19 Don Porter <dgp@users.sourceforge.net> + *** 8.4.8 TAGGED FOR RELEASE *** - *** 8.5.0 TAGGED FOR RELEASE *** + * unix/installManPage: Classic sed doesn't support | in REs. - * changes: Updated for 8.5.0 release. +2004-11-19 Daniel Steffen <das@users.sourceforge.net> -2007-12-19 Jeff Hobbs <jeffh@ActiveState.com> + * macosx/Makefile: + * unix/configure.in: + * unix/tclUnixInit.c (MacOSXGetLibraryPath): changed detection of tcl + framework build when determining tclLibPath from overloaded + TCL_LIBRARY to configuration define TCL_FRAMEWORK. [Bug 1068088] - * 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] + * unix/configure: autoconf-2.13 -2007-12-18 Don Porter <dgp@users.sourceforge.net> + * tests/unixInit.test (7.1): fixed failure when running tests + with -tmpdir arg not set to working dir. - * changes: Updated for 8.5.0 release. +2004-11-18 Don Porter <dgp@users.sourceforge.net> -2007-12-18 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * changes: Final updates for Tcl 8.4.8 release. - * generic/regguts.h, generic/regc_color.c, generic/regc_nfa.c: - Fixes for problems created when processing regular expressions that - generate very large automata. An enormous number of thanks to Will - Drewry <wad_at_google.com>, Tavis Ormandy <taviso_at_google.com>, - and Tom Lane <tgl_at_sss.pgh.pa.us> from the Postgresql crowd for - their help in tracking these problems down. [Bug 1810264] +2004-11-18 Reinhard Max <max@suse.de> -2007-12-17 Don Porter <dgp@users.sourceforge.net> + * unix/tcl.m4 (SC_CONFIG_MANPAGES): Applied an improved version of + * unix/configure.in: [Patch 996085], that introduces + * unix/Makefile.in: --enable-man-suffix. - * changes: Updated for 8.5.0 release. + * unix/installManPage: added + * unix/mkLinks.tcl: removed + * unix/mkLinks: removed -2007-12-17 Miguel Sofer <msofer@users.sf.net> +2004-11-16 Jeff Hobbs <jeffh@ActiveState.com> - * 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] + * unix/tclUnixChan.c (TtySetOptionProc): fixed crash configuring + -ttycontrol on a channel. [Bug 1067708] -2007-12-14 Jeff Hobbs <jeffh@ActiveState.com> +2004-11-16 Andreas Kupries <andreask@activestate.com> - * generic/tclIOUtil.c (FsAddMountsToGlobResult): fix the tail - conversion of vfs mounts. [Bug 1602539] + * win/makefile.vc: Fixed bug in installation of http 2.5. + * win/makefile.bc: Was installed into directory http2.4. + * win/Makefile.in: This has been corrected. + * unix/Makefile.in: + * tools/tcl.wse.in: + * tools/tclmin.wse: - * win/README: updated notes +2004-11-16 Don Porter <dgp@users.sourceforge.net> -2007-12-14 Pat Thoyts <patthoyts@users.sourceforge.net> + * library/auto.tcl: Updated [tcl_findLibrary] search path to + include the $::auto_path. [RFE 695441] - * tests/winFile.test: Fixed tests for win2k with long machine name +2004-11-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2007-12-14 Pat Thoyts <patthoyts@users.sourceforge.net> + * doc/tclvars.n: Mention global variables set by tclsh and wish so + they are easier to find. [Patch 1065732] - * win/nmakehlp.c: Support compilation with MSVC9 for AMD64. - * win/makefile.vc: +2004-11-15 Don Porter <dgp@users.sourceforge.net> -2007-12-13 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclCmdMZ.c (Tcl_TraceObjCmd): Fixed Bug 1065378 which failed + * tests/trace.test (trace-33.1): to permit a variable trace + created with [trace variable] to be destroyed with [trace remove]. + Thanks to Keith Vetter for the report. - * doc/trace.n: Clarified documentation of enterstep and leavestep - traces, including adding example. [Bug 614282, 1701540, 1755984] +2004-11-12 Don Porter <dgp@users.sourceforge.net> -2007-12-12 Don Porter <dgp@users.sourceforge.net> + * library/init.tcl: Made [unknown] robust in the case that either + of the variables ::errorInfo or ::errorCode gets unset. [Bug 1063707] - * doc/IntObj.3: Update docs for the Tcl_GetBignumAndClearObj() -> - Tcl_TakeBignumFromObj() revision [TIP 298]. Added docs for the - Tcl_InitBignumFromDouble() routine. [Bug 1446971]. +2004-11-12 Jeff Hobbs <jeffh@ActiveState.com> - * changes: Updated for 8.5.0 release. + * generic/tclEncoding.c (TableFromUtfProc): correct crash + condition when TCL_UTF_MAX == 6. [Bug 1004065] -2007-12-10 Jeff Hobbs <jeffh@ActiveState.com> +2004-11-12 Daniel Steffen <das@users.sourceforge.net> - * generic/tclUtil.c (TclReToGlob): reduce escapes in conversion - when not necessary + * doc/clock.n: + * doc/registry.n: + * doc/upvar.n: fixed *roff errors uncovered by running 'make html'. - * 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 + * tools/tcltk-man2html.tcl: added faked support for bullet point + lists, i.e. *nroff ".IP \(bu" syntax. + Synced other changes from HEAD. -2007-12-10 Joe English <jenglish@users.sourceforge.net> +2004-11-11 Daniel Steffen <das@users.sourceforge.net> - * doc/string.n, doc/UniCharIsAlpha.3: Fix markup errors. - * doc/CrtCommand.3, doc/CrtMathFnc.3, doc/FileSystem.3, - * doc/GetStdChan.3, doc/OpenFileChnl.3, doc/SetChanErr.3, - * doc/eval.n, doc/filename.n: Consistency: Move "KEYWORDS" section - after "SEE ALSO". + * tests/fCmd.test: + * unix/tclUnixFCmd.c (TraverseUnixTree): added option to rewind() the + readdir() loop whenever the source hierarchy has been modified by + traverseProc (e.g. by deleting files); this is required to ensure + complete traversal of the source hierarchy on certain filesystems like + HFS+. Added test for failing recursive delete on Mac OS X that was due + to this. [Bug 1034337] -2007-12-10 Daniel Steffen <das@users.sourceforge.net> + * generic/tclListObj.c (Tcl_ListObjReplace): use memmove() instead of + manual copy loop to shift list elements. Decreases time spent in + Tcl_ListObjReplace() from 5.2% to 1.7% of overall runtime of tclbench + on a ppc 7455 (i.e. 200% speed increase). [Patch 1064243] - * 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/tclHash.c: hoisted some constant pointer dereferences out of + loops to eliminate redundant loads that the gcc optimizer didn't deal + with. Decreases time spend in Tcl_FindHashEntry() by 10% over a full + run of the tcl testuite on a ppc 7455. [Patch 1064243] - * generic/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. + * tests/fileName.test: + * tests/fileSystem.test: + * tests/io.test: + * tests/tcltest.test: fixed bugs causing failures when running tests + with -tmpdir arg not set to working dir. - * generic/tclDecls.h: regen with new genStubs.tcl. - * generic/tclIntDecls.h: [Bug 1834288] - * generic/tclIntPlatDecls.h: - * generic/tclPlatDecls.h: - * generic/tclStubInit.c: + * macosx/Makefile: corrected path to html help inside framework. + Prevent parallel make from building several targets at the same time. -2007-12-09 Jeff Hobbs <jeffh@ActiveState.com> +2004-11-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * 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] + * doc/catch.n: Clarify documentation on return codes. [Bug 1062647] -2007-12-08 Donal K. Fellows <dkf@users.sf.net> +2004-11-02 Don Porter <dgp@users.sourceforge.net> - * doc/expr.n, doc/mathop.n: Improved the documentation of the - operators. [Bug 1823622] + * changes: Updates for Tcl 8.4.8 release. - * 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] +2004-11-02 Don Porter <dgp@users.sourceforge.net> -2007-12-07 Jeff Hobbs <jeffh@ActiveState.com> + * library/tcltest/tcltest.tcl: Corrected some misleading + * tests/tcltest.test (tcltest-26.1,2): displays of ::errorInfo and + ::errorCode information when the -setup, -body, and/or -cleanup scripts + return an unexpected return code. Thanks to Robert Seeger for the + fix. [RFE 1017151] - * generic/tclExecute.c (TclExecuteByteCode INST_REGEXP): - * generic/tclCompCmds.c (TclCompileRegexpCmd): Pass correct RE - compile flags at compile time, and use TCL_REG_NOSUB. +2004-11-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclIOCmd.c (FinalizeIOCmdTSD, Tcl_PutsObjCmd): cache - stdout channel object for [puts $str] calls. + * generic/tclExecute.c (TclExecuteByteCode): NaN-equality fix from + Miguel Sofer. [Bug 761471] -2007-12-06 Don Porter <dgp@users.sourceforge.net> + * doc/CrtChannel.3 (Tcl_GetChannelMode): Add synopsis. [Bug 1058446] - * README: Remove mention of dead comp.lang.tcl.announce - newsgroup. [Bug 1846433]. +2004-10-31 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * unix/README: Mention the stub library created by `make` and warn - about the effect of embedded paths in the installed binaries. - Thanks to Larry Virden. [Bug 1794084] + * generic/tclCmdIL.c (InfoGlobalsCmd): + * tests/info.test (info-8.4): Strip leading global-namespace + specifiers from the pattern argument. [Bug 1057461] - * doc/AddErrInfo.3: Documentation for the new routines in TIP 270. - * doc/Interp.3: - * doc/StringObj.3: +2004-10-30 Miguel Sofer <msofer@users.sf.net> -2007-12-06 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdAH.c (Tcl_CatchObjCmd): removed erroneous comment [Bug + 1029518] - * doc/namespace.n: Documentation for zero-argument form of - [namespace import] (TIP 261) [Bug 1596416] +2004-10-29 Don Porter <dgp@users.sourceforge.net> -2007-12-06 Jeff Hobbs <jeffh@ActiveState.com> + * library/tcltest/tcltest.tcl: Correct reaction to errors in the + obsolete processCmdLineArgsHook. [Bug 1055673] + * library/tcltest/pkgIndex.tcl: Bump to tcltest 2.2.7 - * generic/tclInt.h: add TclGetChannelFromObj decl - (TclMatchIsTrivial): simplify TclMatchIsTrivial to remove ] check. +2004-10-28 Andreas Kupries <andreask@activestate.com> -2007-12-06 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclAlloc.c: Fixed [Bug 1030548], a threaded debug + * generic/tclThreadAlloc.c: build on Windows now works again. Had to + * win/tclWinThrd.c: touch Unix as well. Basic patch by Kevin, + * unix/tclUnixThrd.c: with modifications by myself. +2004-10-28 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c (Tcl_CreateInterp): Simplify the setting up of - * generic/tclIOCmd.c (TclInitChanCmd): the [chan] ensemble. This - * library/init.tcl: gets rid of quite a bit of - code and makes it possible to understand the whole with less effort. + * README: Bumped patch level to 8.4.8 to prepare for + * generic/tcl.h: next patch release. + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/README.binary: + * win/configure.in: - * generic/tclCompCmds.c (TclCompileEnsemble): Ensure that the right - number of tokens are copied. [Bug 1845320] + * unix/configure: autoconf (2.13) + * win/configure: - * generic/tclNamesp.c (TclMakeEnsemble): Added missing release of a - DString. [Bug 1845397] +2004-10-28 Kevin B. Kenny <kennykb@acm.org> -2007-12-05 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclInt.decls: + * unix/tclUnixTime.c (TclpGmtime, TclpLocaltime): + * win/tclWinTime.c (TclpGmtime, TclpLocaltime): Changed type + signatures of TclpGmtime and TclpLocaltime to accept CONST TclpTime_t + throughout, to avoid any possible confusion in pedantic compilers. + [Bug 1001319] + * generic/tclIntDecls.h: + * generic/tclIntPlatDecls.h: Regenerated. - * 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] +2004-10-27 Don Porter <dgp@users.sourceforge.net> -2007-12-05 Miguel Sofer <msofer@users.sf.net> + * generic/tclCmdAH.c (Tcl_FormatObjCmd): Restored missing line + from yesterday's 868489 backport that caused failed alloc's on LP64 + systems. - * tests/stack.test: made the tests for stack overflow not care - about which mechanism caused the error (interp's recursion limit - or C-stack depth detector). + * tests/appendComp.test: Backport test suite fixes of errors + * tests/autoMkindex.test: revealed by -singleproc 1 -debug 1 + * tests/exec.test: options to make test. + * tests/execute.test: + * tests/interp.test: + * tests/io.test: + * tests/namespace.test: + * tests/regexpComp.test: + * tests/stringComp.test: + * tests/unixInit.test: + * tests/winPipe.test: -2007-12-05 Jeff Hobbs <jeffh@ActiveState.com> +2004-10-26 Kevin B. Kenny <kennykb@acm.org> - * win/configure, win/tcl.m4 (LIBS_GUI): mingw needs -lole32 - -loleaut32 but not msvc for Tk's [send]. [Bug 1844749] + * generic/tclCmdAH.c (Tcl_FormatObjCmd): Backport a missing bit of the + [Bug 868489] fix. + * generic/tclObj.c (SetBooleanFromAny): Backport fix for [Bug 1026125] + * tests/format.test (format-19.1): Additional regression test for + [Bug 868489]. -2007-12-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2004-10-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Prevent shimmering crash - when -exact and -integer/-real are mixed. [Bug 1844789] + * doc/*.n: Backporting of documentation updates. -2007-12-03 Donal K. Fellows <dkf@users.sf.net> +2004-10-26 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixChan.c (CreateSocketAddress): Add extra #ifdef-fery to - make code compile on BSD 5. [Bug 1618235, again] + * tests/subst.test (subst-12.3-5): More tests for [Bug 1036649] -2007-12-03 Don Porter <dgp@users.sourceforge.net> + * tests/compile.test (compile-12.4): Backport test for [Bug 1001997] + * tests/timer.test (timer-10.1): Backport test for [Bug 1016167] + * tests/tcltest.test (tcltest-12.3,4): Backport setup corrections. + * tests/error.test (error-6.3,4,7,9): Backport of some tests. + * tests/basic.test (basic-49.*): + * tests/namespace.test (namespace-8.7): + * tests/init.test (init-2.8): Updated to not rely on http package. - * library/tcltest/tcltest.tcl: Bump tcltest to version 2.3.0 so that - * library/tcltest/pkgIndex.tcl: we release a stable tcltest with a - * unix/Makefile.in: stable Tcl. - * win/Makefile.in: + * generic/tclThreadTest.c (ThreadEventProc): Corrected subtle bug + where the returned (char *) from Tcl_GetStringResult(interp) continued + to be used without copying or refcounting, while activity on the + interp continued. -2007-12-03 Jeff Hobbs <jeffh@ActiveState.com> +2004-10-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * win/configure, win/tcl.m4 (LIBS_GUI): remove ole32.lib oleaut32.lib + * generic/tclUtil.c (TclMatchIsTrivial): Detect degenerate cases of + glob matching that let us avoid scanning through hash tables. + * generic/tclCmdIL.c (InfoCommandsCmd, InfoGlobalsCmd, InfoProcsCmd): + (InfoVarsCmd): Use this to speed up some [info] subcommands. -2007-12-03 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2004-10-08 Jeff Hobbs <jeffh@ActiveState.com> - * 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] + * win/tclWinFile.c (NativeIsExec): correct result of 'file executable' + to not be case sensitive. [Bug 954263] -2007-11-29 Jeff Hobbs <jeffh@ActiveState.com> +2004-10-05 Don Porter <dgp@users.sourceforge.net> - * 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. + * generic/tclNamesp.c (Tcl_PopCallFrame): Removed Bug 1038021 + workaround. That bug is now fixed. -2007-11-29 Don Porter <dgp@users.sourceforge.net> +2004-09-30 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. + * generic/tclNamespace.c (TclTeardownNamespace): Tcl_Obj-ified the + * tests/namespace.test (namespace-8.5,6): save/restore of + ::errorInfo and ::errorCode during global namespace teardown. Revised + the comment to clarify why this is done, and added tests that will + fail if this is not done. -2007-11-28 Don Porter <dgp@users.sourceforge.net> + * generic/tclResult.c (TclTransferResult): Added safety checks so + that unexpected undefined ::errorInfo or ::errorCode will not lead to + a segfault. - * 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/tclVar.c (CallVarTraces): Save/restore the flag values + * tests/var.test (var-16.1): that define part of the interpreter + state during variable traces. [Bug 1038021] - * generic/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] +2004-09-30 Miguel Sofer <msofer@users.sf.net> - * generic/tclIO.c: Simplify test and improve accuracy of error - message in latest changes. + * tests/subst.test (12.2): test correction. -2007-11-28 Pat Thoyts <patthoyts@users.sourceforge.net> +2004-09-29 Miguel Sofer <msofer@users.sf.net> - * generic/tclIO.c: -eofchar must support no eofchar. + * generic/tclBasic.c (Tcl_EvalEx): + * tests/subst.test (12.1-2): fix for buffer overflow in [subst], [Bug + 1036649] -2007-11-27 Miguel Sofer <msofer@users.sf.net> +2004-09-23 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclBasic.c: remove unneeded call in Tcl_CreateInterp, add - comments. + * unix/dltest/Makefile.in (clean): Fixup make clean rule so that it + does not delete all files when SHLIB_SUFFIX is set to the empty string + in a static build. [Bug 1016726] -2007-11-27 Don Porter <dgp@users.sourceforge.net> +2004-09-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * win/tclWinSock.c: Add mising encoding conversion of the [info - hostname] value from the system encoding to Tcl's internal encoding. + * generic/tclExecute.c (TEBC-INST_LSHIFT,INST_RSHIFT): Ensure that + large shifts end up shifting correctly. [Bug 868467] - * doc/chan.n: "Fix" the limitation on channel -eofchar - * doc/fconfigure.n: values to single byte characters by documenting - * generic/tclIO.c: it and making it fail loudly. Thanks to Stuart - * tests/chan.test: Cassoff for contributing the fix. [Bug 800753] +2004-09-15 Daniel Steffen <das@users.sourceforge.net> -2007-11-26 Miguel Sofer <msofer@users.sf.net> + * tests/load.test (load-2.3): adopted fix for failure on darwin from + HEAD. - * 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. +2004-09-14 Don Porter <dgp@users.sourceforge.net> -2007-11-24 Donal K. Fellows <dkf@users.sf.net> + * generic/tclObj.c (Tcl_GetIntFromObj): Corrected flaw in returning + the int value of a wideInteger. [Bug 1027690] - * generic/tclCompCmds.c (TclCompileDictAppendCmd): Fix bug in [dict - append] compiler which caused strange stack corruption. [Bug 1837392] +2004-09-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2007-11-23 Andreas Kupries <andreask@activestate.com> + * generic/tclObj.c (SetIntOrWideFromAny): Rewritten integral value + parsing code so that values do not flip so easily between numeric + representations. Thanks to KBK for this! [Bug 868489] - * generic/tclIORChan.c: Fixed a problem with reflected channels. 'chan - postevent' is defined to work only from within the interpreter - containing the handler command. Sensible, we want only handler - commands to use it. It identifies the channel by handle. The channel - moves to a different interpreter or thread. The interpreter containing - the handler command doesn't know the channel any longer. 'chan - postevent' fails, not finding the channel any longer. Uhm. + * generic/tclIO.c (Tcl_Seek): Make sure wide seeks do not fail to set + ::errorCode on error. [Bug 1025359] - Fixed by creating a second per-interpreter channel table, just for - reflected channels, where each interpreter remembers for which - reflected channels it has the handler command. This info does not move - with the channel itself. The table is updated by 'chan create', and - used by 'chan postevent'. +2004-09-10 Andreas Kupries <andreask@activestate.com> - * tests/ioCmd.test: Updated the testsuite. + * generic/tcl.h: Micro formatting fixes. + * generic/tclIOGT.c: Channel version fixed, must be 3, to have + wideseekProc. Thanks to David Graveraux <davygrvy@pobox.com>. -2007-11-23 Jeff Hobbs <jeffh@ActiveState.com> +2004-09-11 Don Porter <dgp@users.sourceforge.net> - * generic/tclVar.c (Tcl_ArrayObjCmd): handle the right data for - * tests/var.test (var-14.2): [array names $var -glob $ptn] + * generic/tclNamespace.c (TclGetNamespaceForQualName): Resolved + longstanding inconsistency in the treatment of the TCL_NAMESPACE_ONLY + flag revealed by testing the 2004-09-09 commits against Itcl. + TCL_NAMESPACE_ONLY now acts as specified in the pre-function + comment, forcing resolution in the passed in context namespace. It has + been incorrectly forcing resolution in the interp's current namespace. -2007-11-23 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2004-09-10 Miguel Sofer <msofer@users.sf.net> - * generic/tclCmdMZ.c (String*Cmd, TclInitStringCmd): Rebuilt [string] - * generic/tclCompCmds.c (TclCompileString*Cmd): as an ensemble. + * generic/tclExecute.c (INST_CONCAT1): added a peephole optimisation + for concatting an empty string. This enables replacing the idiom 'K $x + [set x {}]' by '$x[set x {}]' for fastest execution. -2007-11-22 Donal K. Fellows <dkf@users.sf.net> +2004-09-09 Don Porter <dgp@users.sourceforge.net> - * generic/tclDictObj.c (Dict*Cmd,TclInitDictCmd): Rebuilt the [dict] - * generic/tclCompCmds.c (TclCompileDict*Cmd): command as an ensemble. + * generic/tclNamesp.c (Tcl_ForgetImport): Corrected faulty logic that + * tests/namespace.test: relied exclusively on string matching and + failed in the presence of [rename]s. [Bug 560297] + Also corrected faulty prevention of [namespace import] cycles. [Bug + 1017299] -2007-11-22 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2004-09-08 Kevin B. Kenny <kennykb@acm.org> - * generic/tclCmdMZ.c (Tcl_StringObjCmd): Rewrote the [string] and - * generic/tclDictObj.c (Tcl_DictObjCmd): [dict] implementations to be - ready for conversion to ensembles. + * compat/strftime.c (_conv): Corrected a problem where hour 0 would + format as a blank format group with %k. + * tests/clock.test (clock-41.1): Added regression test case for %k at + the zero hour. - * tests/string.test (string-12.22): Flag shimmering bug found in - [string range]. +2004-09-07 Kevin B. Kenny <kennykb@acm.org> -2007-11-21 Donal K. Fellows <dkf@users.sf.net> + * generic/tclTimer.c: Removed a premature optimisation that attempted + to store the assoc data in the client data; the optimisation caused a + bug that [after] would overwrite its imports. [Bug 1016167] - * 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). +2004-09-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2007-11-21 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * doc/lsearch.n: Clarified meaning of -dictionary. [Bug 759545] - * 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. +2004-09-01 Jeff Hobbs <jeffh@ActiveState.com> - * generic/various: Start to return more useful Error codes, currently - mainly on assorted lookup failures. + * win/tclWinReg.c (BroadcastValue): WIN64 cast corrections -2007-11-20 Donal K. Fellows <dkf@users.sf.net> + * win/tclWinDde.c (DdeClientWindowProc): + (DdeServicesOnAck, DdeEnumWindowsCallback): WIN64 corrections - * 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. + * win/tclWin32Dll.c (TclWinCPUID): need _asm for WIN64 (Itanium), + until we have it, just return unknown. [Bug 1020445] - ***POTENTIAL INCOMPATIBILITY*** - For any code that depended on the (strange) old iteration order. +2004-08-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclConfig.c (QueryConfigObjCmd): Correct usage of - Tcl_WrongNumArgs. + * generic/tclCmdMZ.c (Tcl_StringObjCmd): Stop [string map] from + crashing when its map and input string are the same object. -2007-11-19 Don Porter <dgp@users.sourceforge.net> +2004-08-27 Daniel Steffen <das@users.sourceforge.net> - *** 8.5b3 TAGGED FOR RELEASE *** + * tests/env.test: macosx fixes. - * 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: +2004-08-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * unix/configure: autoconf (2.59) - * win/configure: + * generic/tclScan.c (Tcl_ScanObjCmd, ValidateFormat): Ensure that the + %ld conversion works correctly on 64-bit platforms. [Bug 1011860] - * changes: Updated for 8.5b3 release. +2004-08-16 Miguel Sofer <msofer@users.sf.net> -2007-11-19 Kevin Kenny <kennykb@users.sourceforge.net> + * doc/SetVar.3: + * generic/tclTest.c (TestseterrorcodeCmd): + * generic/tclVar.c (TclPtrSetVar): + * tests/result.test (result-4.*, result-5.*): [Bug 1008314] + detected and fixed by dgp. - * 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. +2004-08-13 Don Porter <dgp@users.sourceforge.net> -2007-11-18 Daniel Steffen <das@users.sourceforge.net> + * library/msgcat/msgcat.tcl: Added checks to prevent [mclocale] + * tests/msgcat.test: from registering filesystem paths to possibly + malicious code to be evaluated by a later [mcload]. + * library/msgcat/pkgIndex.tcl: Bump to msgcat 1.3.3 - * generic/tclExecute.c (TclExecuteByteCode:INST_EXIST_*): Fix read - traces not firing on non-existent array elements. [Bug 1833522] +2004-08-10 Zoran Vasiljevic <vasiljevic@users.sf.net> -2007-11-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * unix/tclUnixThrd.c (TclpThreadCreate): changed handling of the + returned thread ID since broken on 64-bit systems (Cray). Thanks to + Rob Ratcliff for reporting the bug. - * generic/tclCmdIL.c (TclInitInfoCmd): Rename the implementation - commands for [info] to be something more "expected". +2004-07-30 Don Porter <dgp@users.sourceforge.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. + * generic/tclEvent.c (Tcl_Finalize): Re-organized Tcl_Finalize so + that Tcl_ExitProc's that call Tcl_Finalize recursively do not cause + deadlock. [Patch 999084, fixes Tk Bug 714956] - * generic/tclInt.h (ENSEMBLE_COMPILE): Added flag to allow for cleaner - turning on and off of ensemble bytecode compilation. +2004-07-30 Daniel Steffen <das@users.sourceforge.net> - * generic/tclCompile.c (TclCompileScript): Add the cmdPtr to the list - of arguments passed to command compilers. + * unix/configure: + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Darwin: instead of setting PLAT_OBJS + to explict object files in tcl.m4, refer to MAC_OSX_OBJS makefile var. + * unix/Makefile.in: added MAC_OSX_OBJS variable. -2007-11-15 Don Porter <dgp@users.sourceforge.net> +2004-07-28 Don Porter <dgp@users.sourceforge.net> - * generic/regc_nfa.c: Fixed infinite loop in the regexp compiler. - [Bug 1810038] + * generic/tclMain.c (Tcl_Main, StdinProc): Append newline only to + * tests/basic.test (basic-46.1): incomplete scripts as part + of multi-line script construction. Do not add an extra trailing + newline to the complete script. [Bug 833150] - * generic/regc_nfa.c: Corrected looping logic in fixempties() to - avoid wasting time walking a list of dead states. [Bug 1832612] +2004-07-26 Jeff Hobbs <jeffh@ActiveState.com> -2007-11-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> + *** 8.4.7 TAGGED FOR RELEASE *** - * generic/tclNamesp.c (NamespaceEnsembleCmd): Must pass a non-NULL - interp to Tcl_SetEnsemble* functions. + * tests/io.test (io-61.1): create file in binary mode for x-plat. - * doc/re_syntax.n: Try to make this easier to read. It's still a very - difficult manual page! +2004-07-25 Pat Thoyts <patthoyts@users.sourceforge.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]. + * generic/tclThreadAlloc.c: Moved the tclInt.h include to provide + Tcl_Panic which is now required for non-threaded build. -2007-11-15 Pat Thoyts <patthoyts@users.sourceforge.net> +2004-07-22 Don Porter <dgp@users.sourceforge.net> - * win/tclWin32Dll.c: Prefer UINT_PTR to DWORD_PTR when casting pointers - to integer types for greater portability. [Bug 1831253] + * tests/eofchar.data (removed): Test io-61.1 now generates its own + * tests/io.test: file of test data as needed. -2007-11-15 Daniel Steffen <das@users.sourceforge.net> +2004-07-21 Don Porter <dgp@users.sourceforge.net> + * win/tclWinDde.c: Bump to dde 1.2.3 to cover changes + * library/dde/pkgIndex.tcl: committed on 2004-06-14. - * macosx/Tcl.xcodeproj/project.pbxproj: add new chanio.test. - * macosx/Tcl.xcode/project.pbxproj: + * changes: Updated for Tcl 8.4.7 release. -2007-11-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2004-07-20 Jeff Hobbs <jeffh@ActiveState.com> - * 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. + * generic/tclEvent.c: Correct threaded obj allocator to + * generic/tclInt.h: fully cleanup on exit and allow for + * generic/tclThreadAlloc.c: reinitialization. [Bug 736426] + * unix/tclUnixThrd.c: (mistachkin, kenny) + * win/tclWinThrd.c: - * 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. +2004-07-20 Daniel Steffen <das@users.sourceforge.net> - * generic/tclCompCmds.c (TclCompileInfoCmd): Simple compiler for the - [info] command that only handles [info exists]. + * unix/tcl.m4: fixed Darwin autoconf breakage caused by recent CFLAGS + reordering. + * unix/configure: regen - * generic/tclExecute.c (TclExecuteByteCode:INST_EXIST_*): New - instructions to allow the testing of whether a variable exists. + * unix/tclConfig.sh.in: replaced EXTRA_CFLAGS with CFLAGS. + * unix/dltest/Makefile.in: replaced EXTRA_CFLAGS with DEFS. -2007-11-14 Andreas Kupries <andreask@activestate.com> + * macosx/tclMacOSXBundle.c: dynamically acquire address for + CFBundleOpenBundleResourceMap symbol, since it is only present in + full CoreFoundation on Mac OS X and not in CFLite on pure Darwin. - * 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. +2004-07-19 Jeff Hobbs <jeffh@ActiveState.com> -2007-11-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * unix/Makefile.in, unix/tcl.m4: move (C|LD)FLAGS after their + * unix/configure.in, unix/configure: _DEFAULT to allow for env setting + to override m4 switches. + Consolidate header checks to limit redundancy in configure. + (CFLAGS_WARNING): Remove -Wconversion, add -fno-strict-aliasing for + gcc builds (need to suppress 3.x type puning warnings). + (SC_ENABLE_THREADS): Set m4 to force threaded build when built against + a threaded Tcl core. + Reorder configure.in for better 64-bit build configuration, replacing + EXTRA_CFLAGS with CFLAGS. [Bug 874058] - * 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] +2004-07-19 Zoran Vasiljevic <vasiljevic@users.sf.net> -2007-11-13 Jeff Hobbs <jeffh@ActiveState.com> + * win/tclwinThrd.c: redefined MASTER_LOCK to call TclpMasterLock. + Fixes [Bug 987967] - * generic/tclCompCmds.c (TclCompileRegexpCmd): clean up comments, only - free dstring on OK from TclReToGlob. - (TclCompileSwitchCmd): simplify TclReToGlob usage. +2004-07-16 Andreas Kupries <andreask@activestate.com> -2007-11-14 Donal K. Fellows <dkf@users.sf.net> + * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Corrected a typo in the + generation of error messages and simplified by reusing data in a + variable instead of retrieving the string again. Fixes [Bug 835289] - * generic/regc*.c: #ifdef/comment out the code that deals with - multi-character collating elements, which have never been supported. - Cuts the memory consumption of the RE compiler. [Bug 1831425] + * doc/OpenFileChnl.3: Added description of the behaviour of + Tcl_ReadChars when its 'charsToRead' argument is set to -1. Fixes [Bug + 934511] -2007-11-13 Donal K. Fellows <dkf@users.sf.net> + * doc/CrtCommand.3: Added note that the arguments given to the command + proc of a Tcl_CreateCommand are in utf8 since Tcl 8.1. Closing [Patch + 414778] - * 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. + * doc/ChnlStack.3: Removed the declaration that the interp argument to + Tcl_(un)StackChannel can be NULL. This fixes [Bug 881220], reported by + Marco Maggi <marcomaggi@users.sourceforge.net>. - * doc/mathop.n: Clarify definitions of some operations. + * tests/socket.test: Accepted two new testcases by Stuart Casoff + <stwo@users.sourceforge.net> checking that -server and -async don't go + together [Bug 796534] -2007-11-13 Miguel Sofer <msofer@users.sf.net> + * unix/tclUnixNotfy.c (NotifierThreadProc): Accepted Joe Mistachkin's + patch for [Bug 990500], properly closing the notifier thread when its + exits. - * unix/tclUnixInit.c: the TCL_NO_STACK_CHECK was being incorrectly - undefined here; this should be set (or not) in the compile options, it - is used elsewhere and needs to be consistent. +2004-07-15 Andreas Kupries <andreask@activestate.com> -2007-11-13 Pat Thoyts <patthoyts@users.sourceforge.net> + * unix/tclUnixThrd.c (TclpFinalizeMutex): Accepted Joe Mistachkin's + patch for [Bug 990453], closing leakage of mutexes. They were not + destroyed properly upon finalization. - * unix/tcl.m4: Added autoconf goo to detect and make use of - * unix/configure.in: getaddrinfo and friends. - * unix/configure: (regenerated) +2004-07-15 Zoran Vasiljevic <vasiljevic@users.sf.net> -2007-11-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclEvent.c (NewThreadProc): Backout of changes to fix [Bug + 770053]. See SF bugreport for more info. - * 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] + * generic/tclNotify.c (TclFinalizeNotifier): Added conditional + notifier finalization based on the fact that an TclInitNotifier has + been called for the current thread. This fixes [Bug 770053] again. + Hopefully this time w/o unwanted side-effects. -2007-11-13 Don Porter <dgp@users.sourceforge.net> +2004-07-14 Andreas Kupries <andreask@activestate.com> - * generic/regcomp.c: Convert optst() from expensive no-op to a - cheap no-op. + * generic/tclIO.h (CHANNEL_INCLOSE): New flag. Set in Tcl_Close + * generic/tclIO.c (Tcl_UnregisterChannel): while the close callbacks + * generic/tclIO.c (Tcl_Close): are run. Checked in + Tcl_Close and Tcl_Unregister to prevent recursive call of [close] in + the close-callbacks. This is a possible error made by implementors of + virtual filesystems based on 'tclvfs', thinking that they have to + close the channel in the close handler for the filesystem. -2007-11-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2004-07-14 Andreas Kupries <andreask@activestate.com> - * 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]. + * generic/tclIO.c: + * generic/tclIO.h: + Not reverting, but #ifdef'ing the changes from May 19, 2004 out of the + core. This removes the ***POTENTIAL INCOMPATIBILITY*** for channel + drivers it introduced. This has become possible due to Expect gaining + a BlockModeProc and now handling blockingg and non-blocking modes + correctly. Thus [Bug 943274] is still fixed if a recent enough version + of Expect is used. -2007-11-12 Jeff Hobbs <jeffh@ActiveState.com> + * doc/CrtChannel.3: Added warning about usage of a channel without a + BlockModeProc. - * generic/tclGet.c (Tcl_Get, Tcl_GetInt): revert use of TclGet* macros - due to compiler warning. These cases won't save time either. +2004-07-15 Andreas Kupries <andreask@pliers.activestate.com> - * generic/tclUtil.c (TclReToGlob): add more comments, set interp result - if specified on error. + * generic/tclIOCmd.c (Tcl_PutsObjCmd): Added length check to the old + depreceated newline syntax, to ensure that only "nonewline" is + accepted. [Bug 985869] (mistachkin) -2007-11-12 Miguel Sofer <msofer@users.sf.net> +2004-07-13 Jeff Hobbs <jeffh@ActiveState.com> - * 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: + * README, generic/tcl.h, tools/tcl.wse.in: bumped to + * unix/configure, unix/configure.in, unix/tcl.spec: patchlevel + * win/README.binary, win/configure, win/configure.in: 8.4.7 - THIS PATCH WAS REVERTED: initial (mis)measurements overstated the - perfomance wins, which turn out to be tiny. Not worth the complication. +2004-07-13 Zoran Vasiljevic <vasiljevic@users.sf.net> -2007-11-11 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclEvent.c (NewThreadProc): Fixed broken build on Windows + caused by missing TCL_THREAD_CREATE_RETURN. This is backported from + HEAD. Thnx to Kevin Kenny for spotting this. - * generic/tclCompCmds.c, generic/tclCompile.c, generic/tclCompile.h: - * generic/tclExecute.c, generic/tclInt.decls, generic/tclIntDecls.h: - * generic/tclRegexp.c, generic/tclRegexp.h: Add INST_REGEXP and fully - * generic/tclStubInit.c, generic/tclUtil.c: compiled [regexp] for the - * tests/regexpComp.test: [Bug 1830166] simple cases. Also added - TclReToGlob function to convert RE to glob patterns and use these in - the possible cases. +2004-07-03 Miguel Sofer <msofer@users.sf.net> -2007-11-11 Miguel Sofer <msofer@users.sf.net> + * generic/tclExecute.c (ExprRoundFunc): + * tests/expr-old.test (39.1): added support for wide integers to + round(); [Bug 908375], reported by Hemang Lavana. - * generic/tclResult.c (ResetObjResult): clarify the logic. +2004-07-02 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclBasic.c: Increased usage of macros to detect - * generic/tclBinary.c: and take advantage of objTypes. Added - * generic/tclClock.c: macros TclGet(Int|Long)FromObj, - * generic/tclCmdAH.c: TclGetIntForIndexM & TclListObjLength, - * generic/tclCmdIL.c: modified TclListObjGetElements. - * generic/tclCmdMZ.c: - * generic/tclCompCmds.c: The TclGetInt* macros are only a - * generic/tclCompExpr.c: shortcut on platforms where 'long' is - * generic/tclCompile.c: 'int'; it may be worthwhile to extend - * generic/tclDictObj.c: their functionality to other cases. - * generic/tclExecute.c: - * generic/tclGet.c: As this patch touches many files it has - * generic/tclIO.c: been recorded as [Patch 1830038] in - * generic/tclIOCmd.c: order to facilitate reviewing. - * generic/tclIOGT.c: - * generic/tclIndexObj.c: + * generic/regcomp.c (stid): correct minor pointer size error + + * generic/tclPipe.c (TclCreatePipeline): Add 2>@1 as a special + * tests/exec.test: case redir of stderr to the result output. + +2004-07-02 Vince Darley <vincentdarley@users.sourceforge.net> + + * tests/fileSystem.test: new tests backported + * win/tclWin32Dll.c: compilation fix for VC++5.2 + +2004-06-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * library/safe.tcl: Make sure that the temporary variable is + local to the namespace and not inadvertently global. [Bug 981733] + +2004-06-22 Zoran Vasiljevic <vasiljevic@users.sf.net> + + * generic/tclEvent.c: * generic/tclInt.h: - * generic/tclInterp.c: - * generic/tclListObj.c: - * generic/tclLiteral.c: - * generic/tclNamesp.c: - * generic/tclObj.c: - * generic/tclParse.c: - * generic/tclProc.c: - * generic/tclRegexp.c: - * generic/tclResult.c: - * generic/tclScan.c: - * generic/tclStringObj.c: - * generic/tclUtil.c: - * generic/tclVar.c: + * unix/tclUnixNotfy.c: + * unix/tclUnixThrd.c: + * win/tclWinThrd.c: See bug report for more information about what it + does. [Bug 770053] + + * tests/unixNotfy.test: rewritten to use tcltest::threadReap to + gracefully wait for the test thread to exit. Otherwise we got a race + condition with main thread exiting before the test thread. This + exposed the long-standing Tcl lib issue with resource + garbage-collection on application exit. + +2004-06-21 Mo DeJong <mdejong@users.sourceforge.net> + + * win/tclWin32Dll.c (DllMain, _except_dllmain_detach_handler) + (TclpCheckStackSpace, _except_checkstackspace_handler, TclWinCPUID) + (_except_TclWinCPUID_detach_handler): + * win/tclWinChan.c (Tcl_MakeFileChannel) + (_except_makefilechannel_handler): + * win/tclWinFCmd.c (DoRenameFile, _except_dorenamefile_handler) + (DoCopyFile, _except_docopyfile_handler): + Rework pushing of exception handler function pointer so that compiling + with gcc -O3 works. Remove empty function call to avoid compiler + warning. Mark the DllMain function as noinline to avoid compiler error + from duplicated asm labels in generated code. + +2004-06-14 Pat Thoyts <patthoyts@users.sourceforge.net> + + * tests/winDde.test: Fixed -async test + * win/tclWinDde.c: Backported the fix from 8.5 to avoid hanging in the + presence of applications that do not process Window messages. + +2004-06-10 Andreas Kupries <andreask@activestate.com> + + * generic/tclDecls.h: Regenerated on a unix box. The Win/DOS + * generic/tclIntDecls.h: EOLs from the last regen screwed up + * generic/tclIntPlatDecls.h: compilation with an older gcc. + * generic/tclPlatDecls.h: + * generic/tclStubInit.c: -2007-11-11 Daniel Steffen <das@users.sourceforge.net> +2004-06-10 Zoran Vasiljevic <vasiljevic@users.sf.net> - * unix/tclUnixTime.c (TclpWideClicksToNanoseconds): Fix issues with - * generic/tclInt.h: int64_t overflow. + * generic/tclIOUtil.c: partially corrected [Bug 932314]. Also, + corrected return values of Tcl_FSChdir() to reflect those of the + underlying platform-specific call. Originally, return codes were mixed + with those of Tcl. - * generic/tclBasic.c: Fix stack check failure case if stack grows up - * unix/tclUnixInit.c: Simplify non-crosscompiled case. +2004-06-08 Miguel Sofer <msofer@users.sf.net> - * unix/configure: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 + * generic/tclCompile.c: handle warning [Bug 969066] -2007-11-10 Miguel Sofer <msofer@users.sf.net> +2004-06-05 Kevin B. Kenny <kennykb@acm.org> - * generic/tclExecute.c: Fast path for INST_LIST_INDEX when the index is - not a list. + * generic/tcl.h: Corrected Tcl_WideInt declarations so that the mingw + build works again. + * generic/tclDecls.h: Changes to the tests for + * generic/tclInt.decls: clock frequency in Tcl_WinTime + * generic/tclIntDecls.h: so that any clock frequency is + * generic/tclIntPlatDecls.h: accepted provided that all + * generic/tclPlatDecls.h: CPU's in the system share a + * generic/tclStubInit.c: common chip, and hence, + * tests/platform.test (platform-1.3): presumably, a common clock. + * win/tclWin32Dll.c (TclWinCPUID): This change necessitated a + * win/tclWinTest.c (TestwincpuidCmd) small burst of assembly code + * win/tclWinTime.c (Tcl_GetTime): to read CPU ID information, + which was added as TclWinCPUID in the internal Stubs. To test this + code in the common case of a single-processor machine, a + 'testwincpuid' command was added to tclWinTest.c, and a test case in + platform.test. Thanks to Jeff Godfrey and Richard Suchenwirth for + reporting this bug. [Bug 976722] - * generic/tclBasic.c: - * unix/configure.in: - * unix/tclUnixInit.c: Detect stack grwoth direction at compile time, - only fall to runtime detection when crosscompiling. +2004-05-27 Kevin B. Kenny <kennykb@acm.org> - * unix/configure: autoconf 2.61 + * tests/clock.test: Added a single test for the presence of %G in + [clock format], and conditioned out the clock-10.x series if they're + all going to fail because of a broken strftime() call. [Bug 961714] - * 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). +2004-05-27 Reinhard Max <max@suse.de> -2007-11-10 Kevin Kenny <kennykb@acm.org> + * generic/tclEncoding.c: + * tests/encoding.test: added support and tests for translating + embedded null characters between real nullbytes and the internal + representation on input/output. [Bug 949905] - * 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. +2004-05-26 Don Porter <dgp@users.sourceforge.net> -2007-11-10 Miguel Sofer <msofer@users.sf.net> + * library/tcltest/tcltest.tcl: Correction to debug prints and testing + * library/tcltest/pkgIndex.tcl: if TCLTEST_OPTIONS value. Corrected + * tests/tcltest.test: double increment of numTestFiles in + -singleproc 1 configurations. Updated tcltest-19.1 to tcltest 2.1 + behavior. Corrected tcltest-25.3 to not falsely report a failure in + tcltest.test. Bumped to tcltest 2.2.6. [Bugs 960560, 960926] - * generic/tclBasic.c: - * generic/tclInt.h: - * unix/tclUnixInit.c: +2004-05-25 Jeff Hobbs <jeffh@ActiveState.com> + + * doc/http.n (http::config): add -urlencoding option (default utf-8) + * library/http/http.tcl: that specifies encoding conversion of + * library/http/pkgIndex.tcl: args for http::formatQuery. Previously + * tests/http.test: undefined, RFC 2718 says it should be + utf-8. 'http::config -urlencoding {}' returns previous behavior, + which will throw errors processing non-latin-1 chars. Bumped http + package to 2.5.0. + +2004-05-25 Kevin Kenny <kennykb@acm.org> + + * tests/winFCmd.test: Correct test for the presence of a CD-ROM so + that it doesn't misdetect some other sort of filesystem with a + write-protected root as being a CD-ROM drive. [Bug 918267] + +2004-05-24 Jeff Hobbs <jeffh@ActiveState.com> + + * generic/tclExecute.c (VerifyExprObjType): use GET_WIDE_OR_INT to + properly have tclIntType used for smaller values. This corrects TclX + bug 896727 and any other 3rd party extension that created math + functions but was not yet WIDE_INT aware in them. + +2004-05-24 Miguel Sofer <msofer@users.sf.net> + + * doc/set.n: accurate description of name resolution process, + referring to namespace.n for details [Bug 959180] + +2004-05-22 Miguel Sofer <msofer@users.sf.net> + + * generic/tclVar.c (TclObjUnsetVar2): backported fix [Bug 735335] and + new (in tcl8.4) exteriorisations of [Bug 736729] due to the use of + tclNsVarNameType obj types. The consequences of [Bug 736729] should be + the same as in tcl8.3 and previous versions. The use of + tclNsVarNameType objs is still disabled, pending a decision by the + release manager. + +2004-05-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * win/tclWinFile.c (TclpMatchInDirectory): fix for an issue where + there was a sneak path from Tcl_DStringFree to SetErrorCode(0). The + result was that the error code could be reset between a call to + FindFirstFile and the check of its status return, leading to a bizarre + error return of {POSIX unknown {No error}}. (Found in unplanned test - + no incident logged at SourceForge.) + +2004-05-19 Andreas Kupries <andreask@activestate.com> + + * generic/tclIO.c: Fixed [SF Tcl Bug 943274]. This is the same problem + * generic/tclIO.h: as [SF Tcl Bug 462317], see ChangeLog entry + 2001-09-26. The fix done at that time is incomplete. It is possible to + get around it if the actual read operation is defered and not executed + in the event handler itself. Instead of tracking if we are in an read + caused by a synthesized fileevent we now track if the OS has delivered + a true event = actual data and bypass the driver if a read finds that + there is no actual data waiting. The flag is cleared by a short or + full read. [[this bug amended 2004-07-14]] + +2004-05-18 Kevin B. Kenny <kennykb@acm.org> + + * compat/strftime.c (_fmt, ISO8601Week): + * doc/clock.n: + * tests/clock.test: Major rework to the handling of ISO8601 week + numbers. Now passes all the %G and %V test cases on Windows, Linux and + Solaris [Bugs 500285, 500389, and 852944] + +2004-05-17 Kevin B. Kenny <kennykb.@acm.org> + + * generic/tclInt.decls: Restored TclpTime_t kludge to all places + * generic/tclIntPlatDecls.h: where it appeared before the changes of + * unix/tclUnixPort.h 14 May, because use of native time_t in + * unix/tclUnixTime.h its place requires the 8.5 header + * win/tclWinTime.h: reforms. [Bug 955146] + +2004-05-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * doc/OpenFileChnl.3: Documented type of 'offset' argument to Tcl_Seek + was wrong. [Bug 953374] + +2004-05-14 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclInt.decls: Promoted TclpLocaltime and TclpGmtime + * generic/tclIntDecls.h: from Unix-specific stubs to the generic + * generic/tclIntPlatDecls.h: internal Stubs table. Reran 'genstubs' + * generic/tclStubInit.c: * unix/tclUnixPort.h: - * 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. -2007-11-09 Miguel Sofer <msofer@users.sf.net> + * generic/tclClock.c: Changed a buggy 'GMT' timezone specification to + the correct 'GMT0'. [Bug 922848] - * generic/tclResult.c (ResetObjResult): new shortcut. + * unix/tclUnixThrd.c: Moved TclpGmtime and TclpLocaltime to + unix/tclUnixTime.c where they belong. + + * unix/tclUnixTime.c (TclpGmtime, TclpLocaltime, TclpGetTimeZone, + (ThreadSafeGMTime[removed], ThreadSafeLocalTime[removed], + (SetTZIfNecessary, CleanupMemory): Restructured to make sure that the + same mutex protects all calls to localtime, gmtime, and tzset. Added a + check in front of those calls to make sure that the TZ env var hasn't + changed since the last call to tzset, and repeat tzset if necessary. + [Bug 940278] Removed a buggy test of the Daylight Saving Time + information in 'gettimeofday' in favor of applying 'localtime' to a + known value. [Bug 922848] + + * tests/clock.test (clock-3.14): Added test to make sure that changes + to $env(TZ) take effect immediately. + + * win/tclWinTime.c (TclpLocaltime, TclpGmtime): Added porting layer + for 'localtime' and 'gmtime' calls. + +2004-05-10 David Gravereaux <davygrvy@pobox.com> + + * win/tclWinPipe.c (BuildCommandLine): Append a space when the path + got primed. + (TclpCreateProcess): When under NT, with no console, and executing a + DOS application, the path priming does not need an ending space as + BuildCommandLine() will append one for us. + +2004-05-07 Miguel Sofer <msofer@users.sf.net> + + * doc/unset.n: added upvar.n to the "see also" list + +2004-05-05 David Gravereaux <davygrvy@pobox.com> + + * generic/tclEvent.c: TclSetLibraryPath's use of caching the stringrep + of the pathPtr object to TclGetLibraryPath called from another thread + was ineffective if the original's stringrep had been invalidated as + what happens when it gets muted to a list. + + * generic/tclEncoding.c: Added FreeEncoding(systemEncoding) in + TclFinalizeEncodingSubsystem because its ref count was incremented in + TclInitEncodingSubsystem. + + * win/tclWin32Dll.c: Structured Exception Handling added around + Tcl_Finalize called from DllMain's DLL_PROCESS_DETACH. We can't be + 100% assured that Tcl is being unloaded by the OS in a stable + condition and we need to protect the exit handlers should the stack be + in a hosed state. AT&T style assembly for SEH under MinGW included, + too. [Patch 858493] + + Also added DisableThreadLibraryCalls() for the DLL_PROCESS_ATTACH + case. We're not interested in knowing about DLL_THREAD_ATTACH, so + disable the notices. - * generic/tclAsync.c: - * generic/tclBasic.c: - * generic/tclExecute.c: * generic/tclInt.h: - * generic/tclUnixInit.c: - * generic/tclUnixPort.h: New fields in interp (ekeko!) to cache TSD - data that is accessed at each command invocation, access macros to - replace Tcl_AsyncReady and TclpCheckStackSpace by much faster variants. - [Patch 1829248] + * generic/tclThread.c: + * generic/tclEvent.c: + * unix/tclUnixThrd.c: + * win/tclWinThrd.c: Provisions made so masterLock, initLock, + allocLock and joinLock mutexes can be recovered during Tcl_Finalize. -2007-11-09 Jeff Hobbs <jeffh@ActiveState.com> + * win/tclWinSock.c: + (SocketThreadExitHandler): Don't call TerminateThread when + WaitForSingleObject returns a timeout. Tcl_Finalize called from + DllMain will pause all threads. Trust that the thread will get the + close notice at a later time if it does ever wake up before being + cleaned up by the system anyway. + (SocketEventProc): connect errors should fire both the readable and + writable handlers because this is how it works on UNIX. [Bug 794839] - * generic/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. + * win/coffbase.txt: Added the tls extension to the list of preferred + load addresses. - * generic/tclBinary.c (Tcl_GetByteArrayFromObj): check type before - func jump (perf). +2004-05-05 Don Porter <dgp@users.sourceforge.net> -2007-11-07 Jeff Hobbs <jeffh@ActiveState.com> + * tests/unixInit.test (unixInit-2.10): Test correction for Mac OSX. + Be sure to consistently compare normalized path names. Thanks to + Steven Abner (tauvan). [Bug 948177] - * generic/tclStubInit.c: Added TclByteArrayMatch - * generic/tclInt.decls: for efficient glob - * generic/tclIntDecls.h: matching of ByteArray - * generic/tclUtil.c (TclByteArrayMatch): Tcl_Objs, used in - * generic/tclExecute.c (TclExecuteByteCode): INST_STR_MATCH. [Bug - 1827996] +2004-05-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * generic/tclIO.c (TclGetsObjBinary): Add an efficient binary path for - [gets]. - (DoWriteChars): Special case for 1-byte channel write. + * doc/CrtObjCmd.3: Remove reference to Tcl_RenameCommand; there is no + such API. [Bug 848440] -2007-11-06 Miguel Sofer <msofer@users.sf.net> +2004-05-04 Jeff Hobbs <jeffh@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/tclIOUtil.c (Tcl_FSChdir): Work-around crash condition + * tests/winFCmd.test (winFCmd-16.12): triggered when $HOME is + volumerelative (ie 'C:'). -2007-11-05 Andreas Kupries <andreask@activestate.com> + * tests/fileName.test (filename-12.9): use C:/ instead of the first + item in file volumes - that's usually A:/, which for most will have + nothing in it. - * generic/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. +2004-05-04 Don Porter <dgp@users.sourceforge.net> - * 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. + * tests/tcltest.test: Test corrections for Mac OSX. Thanks to Steven + Abner (tauvan). [Bug 947440] -2007-11-03 Miguel Sofer <msofer@users.sf.net> +2004-05-03 Andreas Kupries <andreask@activestate.com> - * 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). + Applied [SF Tcl Patch 868853], fixing a mem leak in TtySetOptionProc. + Report and Patch provided by Stuart Cassoff <stwo@users.sf.net>. -2007-11-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2004-05-03 Kevin Kenny <kennykb@acm.org> - * tools/tcltk-man2html.tcl (output-directive): Convert .DS/.DE pairs - into tables since that is now all that they are used for. + * win/tclWin32Dll.c (TclpCheckStackSpace): + * tests/stack.test (stack-3.1): Fix for undetected stack overflow in + TclReExec on Windows. [Bug 947070] - * doc/RegExp.3: Clarified documentation of RE flags. [Bug 1167840] +2004-05-03 Don Porter <dgp@users.sourceforge.net> - * doc/refchan.n: Adjust internal name to be consistent with the file - name for reduced user confusion. After comment by Dan Steffen. + * library/init.tcl: Corrected unique prefix matching of + interactive command completion in [unknown]. [Bug 946952] - * generic/tclCmdMZ.c (Tcl_StringObjCmd, UniCharIsAscii): Remember, the - NUL character is in ASCII too. [Bug 1808258] +2004-05-02 Miguel Sofer <msofer@users.sf.net> - * doc/file.n: Clarified use of [file normalize]. [Bug 1185154] + * generic/tclProc.c (TclObjInvokeProc): + * tests/proc.test (proc-3.6): fix for bad quoting of multi-word proc + names in error messages [Bug 942757] -2007-10-30 Don Porter <dgp@users.sourceforge.net> +2004-04-23 Andreas Kupries <andreask@activestate.com> - * 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: + * generic/tclIO.c (Tcl_SetChannelOption): Fixed [Bug 930851]. When + changing the eofchar we have to zap the related flags to prevent them + from prematurely aborting the next read. + +2004-04-07 Jeff Hobbs <jeffh@ActiveState.com> - * unix/configure: autoconf (2.59) * win/configure: + * win/configure.in: define TCL_LIB_FLAG, TCL_BUILD_LIB_SPEC, + TCL_LIB_SPEC and TCL_PACKAGE_PATH in tclConfig.sh. -2007-10-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2004-04-06 Don Porter <dgp@users.sourceforge.net> - * doc/expr.n, doc/mathfunc.n: Improve documentation to try to make - clearer what is going on. + * tests/unixInit.test (unixInit-3.1): Default encoding on Darwin + systems is utf-8. Thanks to Steven Abner (tauvan). [Bug 928808] - * doc/interp.n: Shorten the basic descriptive text for some interp - subcommands so Solaris nroff doesn't truncate them. [Bug 1822268] +2004-04-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2007-10-30 Donal K. Fellows <dkf@users.sf.net> + * tests/cmdAH.test (cmdAH-18.2): Added constraint because + access(...,X_OK) is defined to be permitted to be meaningless when + running as root, and OSX exhibits this. [Bug 929892] - * tools/tcltk-man2html.tcl (output-widget-options): Enhance the HTML - generator so that it can produce multi-line option descriptions. +2004-04-02 Don Porter <dgp@users.sourceforge.net> -2007-10-28 Miguel Sofer <msofer@users.sf.net> + * tests/tcltest.test: Corrected constraint typos: "nonRoot" -> + "notRoot". Thanks to Steven Abner (tauvan). [Bug 928353] - * generic/tclUtil.c (Tcl_ConcatObj): optimise for some of the - concatenees being empty objs. [Bug 1447328] +2004-03-31 Don Porter <dgp@users.sourceforge.net> -2007-10-28 Donal K. Fellows <dkf@users.sf.net> + * doc/msgcat.n: Clarified message catalog file encodings. [Bug 811457] + * library/msgcat/msgcat.tcl ([mcset], [ConvertLocale], [Init]): + Corrected [mcset] to be able to successfully set a translation to + the empty string. [mcset $loc $src {}] was incorrectly set the $loc + translation of $src back to $src. Also changed [ConvertLocale] to + minimally require a non-empty "language" part in the locale value. If + not, an error raised prompts [Init] to keep looking for a valid locale + value, or ultimately fall back on the "C" locale. [Bug 811461] + * library/msgcat/pkgIndex.tcl: Bump to msgcat 1.3.2. - * 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. +2004-03-31 Donal K. Fellows <donal.k.fellows@man.ac.uk> -2007-10-27 Donal K. Fellows <dkf@users.sf.net> + * generic/tclObj.c (HashObjKey): Make sure this hashes the whole + string rep of the object, instead of missing the last character. - * generic/regc_lex.c (lexescape): Close off one of the problems - mentioned in [Bug 1810264]. +2004-03-29 Jeff Hobbs <jeffh@ActiveState.com> -2007-10-27 Miguel Sofer <msofer@users.sf.net> + * generic/tclInt.h: + * generic/tclEncoding.c (TclFindEncodings, Tcl_FindExecutable): + * mac/tclMacInit.c (TclpInitLibraryPath): Correct handling of UTF + * unix/tclUnixInit.c (TclpInitLibraryPath): data that is actually + * win/tclWinFile.c (TclpFindExecutable): "clean", allowing the + * win/tclWinInit.c (TclpInitLibraryPath): loading of Tcl from paths + that contain multi-byte chars on Windows [Bug 920667] - * 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] +2004-03-28 Miguel Sofer <msofer@users.sf.net> - * doc/apply.n: fixed example [Bug 1811791] - * doc/namespace.n: improved example [Bug 1788984] - * doc/AddErrInfo.3: typo [Bug 1715087] - * doc/CrtMathFnc.3: fixed Tcl_ListMathFuncs entry [Bug 1672219] + * generic/tclCompile.c (TclCompileScript): corrected possible segfault + when a compilation returns TCL_OUTLINE_COMPILE after having grown the + compile environment. [Bug 925121] - * 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). +2004-03-21 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclVar.c: try to preserve Tcl_Objs when doing variable - lookups by name, partially addressing [Bug 1793601]. + * win/tclWinInt.h: define VER_PLATFORM_WIN32_CE if not already set. + * win/tclWinInit.c (TclpSetInitialEncodings): recognize WIN32_CE + as a unicode (WCHAR) platform. -2007-10-27 Donal K. Fellows <dkf@users.sf.net> +2004-03-15 Miguel Sofer <msofer@users.sf.net> - * tools/tcltk-man2html.tcl (make-man-pages, htmlize-text) - (process-text): Make the man->HTML scraper work better. + * generic/tclCompile.c (TclCompileScript): + * tests/compile.test (compile-3.5): corrected wrong test and behaviour + in the earlier fix for [Bug 705406]; Don Porter reported this as [Bug + 735055], and provided the solution. Fixed in HEAD on 2003-05-09, but + backport to 8-4-branch was wrongly omitted; re-reported as [Bug + 916795] by Roy Terry, diagnosed by dgp. -2007-10-26 Don Porter <dgp@users.sourceforge.net> +2004-03-08 Vince Darley <vincentdarley@users.sourceforge.net> - *** 8.5b2 TAGGED FOR RELEASE *** + * generic/tclFileName.c: Fix to 'glob -path' near the root + * tests/fileName.test: of the filesystem. [Bug 910525] - * changes: Updated for 8.5b2 release. +2004-03-01 Don Porter <dgp@users.sourceforge.net> - * doc/*.1: Revert doc changes that broke - * doc/*.3: `make html` so we can get the release - * doc/*.n: out the door. + *** 8.4.6 TAGGED FOR RELEASE *** - * README: Bump version number to 8.5b2. + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Allow 64-bit enabling on + IRIX64-6.5* systems. [Bug 218561] + * unix/configure: autoconf-2.13 + + * generic/tclCmdMZ.c (TclCheckInterpTraces): The TIP 62 + * generic/tclTest.c (TestcmdtraceCmd): implementation introduced a + * tests/basic.test (basic-39.10): bug by testing the CallFrame + level instead of the iPtr->numLevels level when deciding what traces + created by Tcl_Create(Obj)Trace to call. Added test to expose the + error, and made fix. [Request 462580] + +2004-02-26 Daniel Steffen <das@users.sourceforge.net> + + * macosx/Makefile: fixed copyright year in Tcl.framework Info.plist + +2004-02-25 Don Porter <dgp@users.sourceforge.net> + + * tests/basic.test: Made several tests more robust to the + * tests/cmdMZ.test: list-quoting of path names that might + * tests/exec.test: contain Tcl-special chars like { or [. + * tests/io.test: Should help us sort out Tcl Bug 554068. + * tests/pid.test: + * tests/socket.test: + * tests/source.test: + * tests/unixInit.test: + +2004-02-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * unix/tclUnixChan.c (TcpGetOptionProc): Stop memory leak with very + long hostnames. [Bug 888777] + +2004-02-25 David Gravereaux <davygrvy@pobox.com> + + * tests/winPipe.test: + * win/tclWinPipe.c: backport of BuildCommandLine changes to mirror + msvcrt's parse_cmdline() rules of quoting. + +2004-02-19 Mo DeJong <mdejong@users.sourceforge.net> + + * win/tclWinInit.c (AppendEnvironment): Use the tail component of the + passed in lib path instead of just blindly using lib+4. That worked + when lib was "lib/..." but fails for other values. Thanks go to + Patrick Samson for pointing this out. + +2004-02-17 Don Porter <dgp@users.sourceforge.net> + + * doc/tcltest.n: + * library/tcltest/tcltest.tcl: Changed -verbose default value to + {body error} so that detailed information on unexpected errors in + tests is provided by default, even after the fix for [Bug 725253] + +2004-02-17 Jeff Hobbs <jeffh@ActiveState.com> + + (reverted due to test failures on Solaris, but not Win/Lin :/) + * generic/tclIOUtil.c: backport of rewrite of generic file + normalization code to cope with links followed by '..'. [Bug 849514], + and parts of [859251] + + * tests/unixInit.test: unixInit-7.1 + * unix/tclUnixInit.c (TclpInitPlatform): ensure the std fds exist to + prevent crash condition [Bug 772288] + +2004-02-16 Jeff Hobbs <jeffh@ActiveState.com> + + * generic/tclCmdMZ.c (TclTraceExecutionObjCmd) + (TclTraceCommandObjCmd): fix possible mem leak in trace info. + +2004-02-12 Jeff Hobbs <jeffh@ActiveState.com> + + * README: update patchlevel to 8.4.6 * generic/tcl.h: - * library/init.tcl: * tools/tcl.wse.in: - * unix/configure.in: + * unix/configure, unix/configure.in, unix/tcl.spec: + * win/README.binary, win/configure, win/configure.in: + + * unix/tcl.m4: update HP-11 build libs setup + +2004-02-06 Don Porter <dgp@users.sourceforge.net> + + * doc/clock.n: Removed reference to non-existent [file ctime]. + +2004-02-04 Don Porter <dgp@users.sourceforge.net> + + * library/tcltest/tcltest.tcl: Corrected references to + non-existent $name variable in [cleanupTests]. [Bug 833637] + +2004-02-03 Don Porter <dgp@users.sourceforge.net> + + * library/tcltest/tcltest.tcl: Corrected parsing of single + command line argument (option with missing value) [Bug 833910] + * library/tcltest/pkgIndex.tcl: Bump to version 2.2.5. + +2004-02-02 David Gravereaux <davygrvy@pobox.com> + + * generic/tclIO.c (Tcl_Ungets): fixes improper filling of the channel + buffer. [Bug 405995] + +2004-01-13 Don Porter <dgp@users.sourceforge.net> + + * generic/tclFileName.c (Tcl_GlobObjCmd): Latest changes to + management of the interp result by Tcl_GetIndexFromObj() exposed + improper interp result management in the [glob] command procedure. + Corrected by adopting the Tcl_SetObjResult(Tcl_NewStringObj) pattern. + This stopped a segfault in test filename-11.36. + +2004-01-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct, Tcl_WrongNumArgs): + Create fresh objects instead of using the one currently in the + interpreter, which isn't guaranteed to be fresh and unshared. The + cost for the core will be minimal because of the object cache, and + this fixes. [Bug 875395] + +2004-01-09 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclIOUtil.c: fix to infinite loop in TclFinalizeFilesystem. + [Bug 873311] + +2003-12-17 Daniel Steffen <das@users.sourceforge.net> + + * generic/tclBinary.c (DeleteScanNumberCache): fixed crashing bug when + numeric scan-value cache contains NULL value. + +2003-12-17 Zoran Vasiljevic <zv@archiware.com> + + * generic/tclIOUtil.c: fixed 2 memory (object) leaks. This fixes [Bug + 839519] + +2003-12-12 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclCmdAH.c: fix to normalization of non-existent user name + ('file normalize ~nobody') [Bug 858937] + +2003-12-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * unix/tclUnixPort.h: #ifdef'd out declarations of errno which + * tools/man2tcl.c: are known to cause problems with recent + glibc. [Bug 852369] + +2003-12-03 Don Porter <dgp@users.sourceforge.net> + + * generic/tcl.h: Bumped patch level to 8.4.5.1 to distinguish + * unix/configure.in: CVS snapshots from 8.4.5 release. * unix/tcl.spec: * win/configure.in: - * unix/configure: autoconf (2.59) + * unix/configure: autoconf (2.13) * win/configure: -2007-10-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2003-12-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> - * 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. + * generic/tclBinary.c (DeleteScanNumberCache, ScanNumber): Made + the numeric scan-value cache have proper references to the objects + within it so strange patterns of writes won't cause references to + freed objects. Thanks to Paul Obermeier for the report. [Bug 851747] -2007-10-25 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> +2003-12-01 Miguel Sofer <msofer@users.sf.net> - * 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] + * doc/lset.n: fix typo [Bug 852224] -2007-10-24 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2003-11-21 Don Porter <dgp@users.sourceforge.net> - * tools/man2html2.tcl (macro): Added support for converting the new - macros into HTML. + *** 8.4.5 TAGGED FOR RELEASE *** - * 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. + * tests/windFCmd.test (winFCmd-16.10): Corrected failure to + initialize variable $dd that caused test suite failure. -2007-10-20 Miguel Sofer <msofer@users.sf.net> +2003-11-20 Miguel Sofer <msofer@users.sf.net> - * generic/tclCompile.c: Fix comments. - * generic/tclExecute.c: + * generic/tclVar.c: fix flag bit collision between LOOKUP_FOR_UPVAR + and TCL_PARSE_PART1 (deprecated) [Bug 835020] -2007-10-18 David Gravereaux <davygrvy@pobox.com> +2003-11-20 Vince Darley <vincentdarley@users.sourceforge.net> - * tools/mkdepend.tcl: sort the dep list for a more humanly readable - output. + * generic/tclIOUtil.c: + * tests/winFCmd.test: fix to [Bug 845778] - Infinite recursion on [cd] + (Windows only bug). -2007-10-18 Don Porter <dgp@users.sourceforge.net> +2003-11-18 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclResult.c (TclMergeReturnOptions): Make sure any -code - values get pulled out of the dictionary, even if they are integer - valued. + * changes: updated for 8.4.5 release - * generic/tclCompCmds.c (TclCompileReturnCmd): Added code to more - optimally compile [return -level 0 $x] to "push $x". [RFE 1794073] +2003-11-17 Don Porter <dgp@users.sourceforge.net> - * compat/tmpnam.c (removed): The routine tmpnam() is no longer - * unix/Makefile.in: called by Tcl source code. Remove autogoo the - * unix/configure.in: supplied a replacement version on systems - * win/tcl.dsp: where the routine was not available. [RFE - 1811848] + * generic/regcomp.c: Backported regexp bug fixes and tests. Thanks + * generic/tclTest.c: to Pavel Goran and Vince Darley. + * tests/reg.test: [Bugs 230589, 504785, 505048, 703709, 840258] - * unix/configure: autoconf-2.59 +2003-11-12 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tcl.h: Remove TCL_LL_MODIFIER_SIZE. [RFE 1811837] + * tests/cmdMZ.test (cmdMZ-1.4): change to nonPortable as more + systems are using permissions caching, and this isn't really a Tcl + controlled issue. -2007-10-17 David Gravereaux <davygrvy@pobox.com> +2003-11-11 Jeff Hobbs <jeffh@ActiveState.com> - * tools/mkdepend.tcl: Improved defense from malformed object list - infile. + * unix/configure: + * unix/tcl.m4: improve AIX --enable-64bit handling -2007-10-17 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2003-11-10 Don Porter <dgp@users.sourceforge.net> - * tools/man2html2.tcl: Convert .DS/.DE into HTML tables, not - preformatted text. + * tests/unixInit.test (unixInit-2.10): re-enabled. + * unix/tclUnixInit.c (TclpInitLibraryPath): Alternative fix + * win/tclWinInit.c (TclpInitLibraryPath): for [Bug 832657] + that should not run afoul of startup constraints. -2007-10-17 Kevin B. Kenny <kennykb@acm.org> + * library/dde/pkgIndex.tcl: Added safeguards so that registry + * library/reg/pkgIndex.tcl: and dde packages are not offered + * win/tclWinDde.c: on non-Windows platforms. Bumped to + * win/tclWinReg.c: registry 1.1.3 and dde 1.2.2. - * 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'. +2003-11-06 Jeff Hobbs <jeffh@ActiveState.com> -2007-10-16 David Gravereaux <davygrvy@pobox.com> + * tests/unixInit.test (unixInit-2.10): mark as knownBug + * generic/tclEncoding.c (TclFindEncodings): revert patch from + 2003-11-05. It wasn't valid in the sensitive startup init phase + and broke Windows from working at all. - * win/makefile.vc: removed old dependency cruft that is no longer - needed. +2003-11-07 Daniel Steffen <das@users.sourceforge.net> -2007-10-15 Don Porter <dgp@users.sourceforge.net> + * macosx/Makefile: optimized builds define NDEBUG to turn off + ThreadAlloc range checking. - * 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. +2003-11-05 Don Porter <dgp@users.sourceforge.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/tclEncoding.c (TclFindEncodings): Normalize the path + of the executable before passing to TclpInitLibraryPath() to avoid + buggy handling of paths containing "..". [Bug 832657] + * tests/unixInit.test (unixInit-2.10): New test for fixed bug. - * generic/tclCompExpr.c: Corrections to code that produces - * generic/tclUtil.c: extended "bad octal" error messages. +2003-11-04 Daniel Steffen <das@users.sourceforge.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: - * tests/io.test: - * tests/lindex.test: - * tests/link.test: - * tests/mathop.test: - * tests/parseExpr.test: - * tests/set.test: - * tests/string.test: - * tests/stringComp.test: + * macosx/Makefile: added 'test' target. -2007-10-15 David Gravereaux <davygrvy@pobox.com> +2003-10-31 Vince Darley <vincentdarley@users.sourceforge.net> - * 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. + * generic/tclTest.c: fix test suite memory leak (backport error) + * unix/tclUnixFile.c: ensure translated path (required for correct + error messages) is freed in both code paths. -2007-10-15 Miguel Sofer <msofer@users.sf.net> +2003-10-23 Andreas Kupries <andreask@activestate.com> - * generic/tclParse.c (Tcl_ParseBraces): fix for possible read after - the end of buffer. [Bug 1813528] (Joe Mistachkin) + * unix/tclUnixChan.c (Tcl_MakeFileChannel): Applied [Patch 813606] + fixing [Bug 813087]. Detection of sockets was off for Mac OS X which + implements pipes as local sockets. The new code ensures that only IP + sockets are detected as such. -2007-10-14 David Gravereaux <davygrvy@pobox.com> +2003-10-22 Andreas Kupries <andreask@activestate.com> - * tools/mkdepend.tcl (new): Initial stab at generating automatic - * win/makefile.vc: dependencies. + * win/tclWinSock.c (TcpWatchProc): Watch for FD_CLOSE too when asked + for writable events by the generic layer. + (SocketEventProc): Generate a writable event too when a close is + detected. -2007-10-12 Pat Thoyts <patthoyts@users.sourceforge.net> + Together the changes fix [Bug 599468]. - * 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. +2003-10-22 Andreas Kupries <andreask@activestate.com> -2007-10-11 David Gravereaux <davygrvy@pobox.com> + * generic/tclIOUtil.c (FsListMounts, FsAddMountsToGlobResult): New + functions. See below for context. + (Tcl_FSMatchInDirectory): Modified to call on the new functions + (above) to handle the mountpoints in the glob'bed directory correctly. + Part of the patch by Vincent Darley to solve the [Bug 800106] for the + 8.4.x series. - * win/makefile.vc: Fixed my bad spelling mistakes from years back. - Dedependency, duh! Rather funny. + * generic/tcl.h (TCL_GLOB_TYPE_MOUNT): New definition. Part of the + patch by Vincent Darley to solve [Bug 800106] for the 8.4.x series. -2007-10-11 Don Porter <dgp@users.sourceforge.net> +2003-10-22 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclCmdMZ.c: Correct [string is (wide)integer] failure - * tests/string.test: to report correct failindex values for - non-decimal integer strings. [Bug 1805887] + * generic/tclCmdAH.c (Tcl_FileObjCmd): Changed FILE_ prefix for option + enumeration to FCMD_ to prevent collision with symbols defined by + Cygwin/Mingw32 on NT. [Bug 822528] - * compat/strtoll.c (removed): The routines strtoll() and strtoull() - * compat/strtoull.c (removed): are no longer called by the Tcl source - * generic/tcl.h: code. (Their functionality has been replaced - * unix/Makefile.in: by TclParseNumber().) Remove outdated comments - * unix/configure.in: and mountains of configury autogoo that - * unix/tclUnixPort.h: allegedly support the mythical systems where - * win/Makefile.in: these routines might not have been available. - * win/makefile.bc: - * win/makefile.vc: - * win/tclWinPort.h: +2003-10-21 Daniel Steffen <das@users.sourceforge.net> - * unix/configure: autoconf-2.59 + * tools/tcltk-man2html.tcl: fixed incorrect html generated for .IP/.TP + lists, now use <DL><DT>...<DD>...<P><DT>...<DD>...</DL> instead of + illegal <DL><P><DT>...<DD>...<P><DT>...<DD>...</DL>. Added skipping of + directives directly after .TP to avoid them being used as item + descriptions, e.g. .TP\n.VS in clock.n. -2007-10-11 Miguel Sofer <msofer@users.sf.net> +2003-10-21 Andreas Kupries <andreask@activestate.com> - * generic/tclObj.c: remove superfluous #include of tclCompile.h + * win/tclWinPipe.c (BuildCommandLine): Applied the patch coming with + [Bug 805605] to the code, fixing the incorrect use of ispace noted by + Ronald Dauster <ronaldd@users.sourceforge.net>. -2007-10-08 George Peter Staplin <georgeps@xmission.com> +2003-10-14 David Gravereaux <davygrvy@pobox.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. + * win/tclAppInit.c (sigHandler): Punt gracefully if exitToken has + already been destroyed. -2007-10-02 Jeff Hobbs <jeffh@ActiveState.com> +2003-10-13 Vince Darley <vincentdarley@users.sourceforge.net> - * generic/tcl.h (Tcl_DecrRefCount): Update change from 2006-05-29 to - make macro more warning-robust in unbraced if code. + * generic/tclCmdMZ.c: + * tests/regexp.test: fix to [Bug 823524] in regsub; added three new + tests. -2007-10-02 Don Porter <dgp@users.sourceforge.net> +2003-10-12 Jeff Hobbs <jeffh@ActiveState.com> - [core-stabilizer-branch] + * unix/tclUnixTest.c (TestalarmCmd): don't bother checking return + value of alarm. [Bug 664755] (english) - * README: Bump version number to 8.5.0 - * generic/tcl.h: - * library/init.tcl: +2003-10-08 Don Porter <dgp@users.sourceforge.net> + + * generic/tclBasic.c: Save and restore the iPtr->flag bits that + control the state of errorCode and errorInfo management when calling + "leave" execution traces, so that all error information of the traced + command is still available whether traced or not. Thanks to Yahalom + Emet. [Bug 760947] + +2003-10-08 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + * generic/tclTest.c (TestNumUtfCharsCmd): Command to allow finer + access to Tcl_NumUtfChars for testing. + * generic/tclUtf.c (Tcl_NumUtfChars): Corrected string length + determining when the length parameter is negative; the terminator is a + zero byte, not (necessarily) a \u0000 character. [Bug 769812] + +2003-10-07 Don Porter <dgp@users.sourceforge.net> + + * tests/exec.test: Corrected temporary file management + * tests/fileSystem.test: issues uncovered by -debug 1 test + * tests/io.test: operations. Also backported some + * tests/ioCmd.test: other fixes from the HEAD. + * tests/pid.test: [Bugs 675605, 675655, 675659] + * tests/socket.test: + * tests/source.test: + + * tests/fCmd.test: Run tests with the [temporaryDirectory] as + the current directory, so that tests can depend on ability to write + files. [Bug 575837] + + * doc/OpenFileChnl.3: Updated Tcl_Tell and Tcl_Seek documentation + to reflect that they now return Tcl_WideInt (TIP 72) [Bug 787537] + + * tests/io.test: Corrected several tests that failed when paths + * tests/ioCmd.test: included regexp-special chars. [Bug 775394] + +2003-10-06 Don Porter <dgp@users.sourceforge.net> + + * tests/regexp.test: Matched [makeFile] with [removeFile]. + * tests/regexpComp.test: [Bug 675652] + + * tests/fCmd.test (fCmd-8.2): Test only that tilde-substitution + happens, not for any particular result. [Bug 685991] + + * unix/tcl.m4 (SC_PATH_TCLCONFIG): Corrected search path so + that alpha and beta releases of Tcl are not favored. [Bug 608698] + + * tests/reg.test: Corrected duplicate test names. + * tests/resource.test: [Bugs 710370, 710358] + + * tests/cmdMZ.test: Updated [package require tcltest] lines to + * tests/fileSystem.test: indiciate that these test files + * tests/notify.test: use features of tcltest 2. [Bug 706114] + * tests/parseExpr.test: + * tests/unixNotfy.test: + +2003-10-06 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclFileName.c: + * generic/tclIOUtil.c: backport of volumerelative file normalization + and 'file join' inconsistency fixes [Bug 767834, 813273]. + +2003-10-04 Chengye Mao <chengye.geo@yahoo.com> + + * win/tclWinPipe.c: fixed a bug in BuildCommandLine. + This bug built a command line with a missing space between + tclpipe.dll and the following arguments. It caused error + in Windows 98 when exec command.com (e.g. dir) [Bug 789040] + +2003-10-03 Don Porter <dgp@users.sourceforge.net> + + * generic/tclBasic.c: Fixed error in ref count management of command + * generic/tclCmdMZ.c: and execution traces that caused access to + freed memory in trace-32.1. [Bug 811483] + +2003-10-03 Vince Darley <vincentdarley@users.sourceforge.net> + + * tests/fileName.test: + * tests/winFCmd.test: + * doc/FileSystem.3: backported various test and documentation changes + from HEAD. Backport of actual code fixes to follow. + +2003-10-02 Don Porter <dgp@users.sourceforge.net> + + * README: Bumped patch level to 8.4.5 to prepare + * generic/tcl.h: for next patch release. * tools/tcl.wse.in: * unix/configure.in: * unix/tcl.spec: + * win/README.binary: * win/configure.in: - * unix/configure: autoconf (2.59) + * unix/configure: autoconf (2.13) * win/configure: -2007-10-02 Andreas Kupries <andreask@activestate.com> + * library/http/http.tcl: Bumped to http 2.4.5 + * library/http/pkgIndex.tcl: - * library/tclIndex: Added 'tcl::tm::path' to the tclIndex. This fixes - [Bug 1806422] reported by Don Porter. +2003-10-01 Daniel Steffen <das@users.sourceforge.net> -2007-09-25 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * macosx/Makefile: fixed redo prebinding bug when DESTDIR="". + * mac/tclMacResource.c: fixed possible NULL dereference (bdesgraupes). - * 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. +2003-09-29 Don Porter <dgp@users.sourceforge.net> -2007-09-20 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c (CallCommandTraces): Added safety bit + * tests/trace.test: masking to prevent any of the bit values + TCL_TRACE_*_EXEC from leaking into the flags field of any Command + struct. This does not fix [Bug 811483] but helps to contain some of + its worst symptoms. Also backported the corrections to test trace-28.4 + from Vince Darley. - *** 8.5b1 TAGGED FOR RELEASE *** +2003-09-29 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * changes: updates for 8.5b1 release. + * library/http/http.tcl (geturl): Correctly check the type of + boolean-valued options. [Bug 811170] -2007-09-19 Don Porter <dgp@users.sourceforge.net> + * unix/tcl.m4 (SC_ENABLE_FRAMEWORK): Added note to make it clearer + that this is an OSX feature, not a general Unix feature. [Bug 619440] - * 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: +2003-09-28 David Gravereaux <davygrvy@pobox.com> -2007-09-19 Pat Thoyts <patthoyts@users.sourceforge.net> + * win/tclWinPipe.c: The windows port of expect can call + TclWinAddProcess before any of the other pipe functions. Added a + missing PipeInit() call to make sure the initialization happens. - * generic/tclStubLib.: Replaced isdigit with internal implementation. +2003-09-25 Daniel Steffen <das@users.sourceforge.net> -2007-09-18 Don Porter <dgp@users.sourceforge.net> + * macosx/Makefile: ensure SYMROOT exists if OBJROOT is overridden on + command line. Replaced explict use of /usr/bin by ${BINDIR}. - * 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. +2003-09-23 Don Porter <dgp@users.sourceforge.net> -2007-09-17 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclCmdMZ.c: Fixed [Bug 807243] where + * tests/trace.test (trace-31,32.*): the introspection results + of both [trace info command] and [trace info execution] were getting + co-mingled. Thanks to Mark Saye for the report. - * win/makefile.vc: Add crt flags for tclStubLib now it uses C-library - functions. + * library/init.tcl (auto_load, auto_import): Expanded Eric Melski's + 2000-01-28 fix for [Bug 218871] to all potentially troubled uses of + [info commands] on input data, where glob-special characters could + cause problems. -2007-09-17 Joe English <jenglish@users.sourceforge.net> +2003-09-19 Miguel Sofer <msofer@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). + * generic/tclExecute.c: adding (DE)CACHE_STACK_INFO() pairs to protect + all calls that may cause traces on ::errorInfo or ::errorCode to + corrupt the stack [Bug 804681] -2007-09-17 Don Porter <dgp@users.sourceforge.net> +2003-09-10 Don Porter <dgp@users.sourceforge.net> - * unix/Makefile.in: Update `make dist` so that tclDTrace.d is - included in the source code distribution. + * library/opt/optparse.tcl: Overlooked dependence of opt 0.4.4 + * library/opt/pkgIndex.tcl: on Tcl 8.2. Bumped to opt 0.4.4.1. - * 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] +2003-09-01 Zoran Vasiljevic <zoran@archiware.com> -2007-09-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclIOUtil.c: backported fix from HEAD [Bug 788780] - * 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. +2003-08-27 Don Porter <dgp@users.sourceforge.net> -2007-09-15 Daniel Steffen <das@users.sourceforge.net> + * generic/tclUtil.c: Corrected [Bug 411825] and other bugs in + TclNeedSpace() where non-breaking space (\u00A0) and backslash-escaped + spaces were handled incorrectly. + * tests/util.test: Added new tests util-8.[2-6]. - * 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 +2003-08-06 Jeff Hobbs <jeffh@ActiveState.com> -2007-09-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * win/tclWinInit.c: recognize amd64 and ia32_on_win64 cpus and + Windows CE platform. - * generic/tclBasic.c (Tcl_CreateObjCommand): Only invalidate along the - namespace path once; that is enough. [Bug 1519940] +2003-08-06 Don Porter <dgp@users.sourceforge.net> -2007-09-14 Daniel Steffen <das@users.sourceforge.net> + * library/msgcat/msgcat.tcl: Added escape so that non-Windows + * library/msgcat/pkgIndex.tcl: platforms do not try to use the + registry package. This can save a costly and pointless package + search. Bumped to 1.3.1. Thanks to Dave Bodenstab. [Bug 781609] - * generic/tclDTrace.d (new file): Add DTrace provider for Tcl; allows - * generic/tclCompile.h: tracing of proc and command entry & - * generic/tclBasic.c: return, bytecode execution, object - * generic/tclExecute.c: allocation and more; with - * generic/tclInt.h: essentially zero cost when tracing - * generic/tclObj.c: is inactive; enable with - * generic/tclProc.c: --enable-dtrace configure arg - * unix/Makefile.in: (disabled by default, will only - * unix/configure.in: enable if DTrace is present). [Patch - 1793984] - - * macosx/GNUmakefile: Enable DTrace support. - * macosx/Tcl-Common.xcconfig: - * macosx/Tcl.xcodeproj/project.pbxproj: - - * generic/tclCmdIL.c: Factor out core of InfoFrameCmd() into - internal TclInfoFrame() for use by DTrace - probes. +2003-08-05 Miguel Sofer <msofer@users.sf.net> - * unix/configure: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 + * generic/tclExecute.c (INST_INVOKE, INST_EVAL, INST_PUSH_RESULT): + added a Tcl_ResetResult(interp) at each point where the interp's + result is pushed onto the stack, to avoid keeping an extra reference + that may cause costly Tcl_Obj duplication. Detected by Franco Violi, + analyzed by Peter Spjuth and Donal Fellows. [Bug 781585] -2007-09-12 Don Porter <dgp@users.sourceforge.net> +2003-07-24 Reinhard Max <max@suse.de> - * 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. + * library/package.tcl: Fixed a typo that broke pkg_mkIndex -verbose. -2007-09-12 Pat Thoyts <patthoyts@users.sourceforge.net> + * tests/pkgMkIndex.test: Added a test for [pkg_mkIndex -verbose]. - * win/makefile.vc, win/rules.vc, win/nmakehlp.c: Use nmakehlp to - substitute values for tclConfig.sh (helps cross-compiling). +2003-07-23 Daniel Steffen <das@users.sourceforge.net> -2007-09-11 Don Porter <dgp@users.sourceforge.net> + * unix/Makefile.in: changes to html-tcl & html-tk targets for + compatibility with non-gnu makes. - * 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. + * unix/Makefile.in: added macosx/README to dist target. - * 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] +2003-07-23 Pat Thoyts <patthoyts@users.sourceforge.net> -2007-09-11 Miguel Sofer <msofer@users.sf.net> + * win/tclWinReg.c (OpenSubKey): Backported fix for [Bug 775976] which + causes the registry set command to fail when built with VC7. + * library/reg/pkgIndex.tcl: Incremented the version to 1.1.2. - * 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] +2003-07-21 Jeff Hobbs <jeffh@ActiveState.com> - ***POTENTIAL INCOMPATIBILITY*** - Scripts that were precompiled on earlier versions of 8.5 and use [dict - update] will crash. Workaround: recompile. + *** 8.4.4 TAGGED FOR RELEASE *** -2007-09-11 Kevin B. Kenny <kennykb@acm.org> + * changes: updated for 8.4.4 release - * 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] +2003-07-18 Daniel Steffen <das@users.sourceforge.net> -2007-09-10 Jeff Hobbs <jeffh@ActiveState.com> + * macosx/Makefile: added option to allow installing manpages in + addition to default html help. - * generic/tclLink.c (Tcl_UpdateLinkedVar): guard against var being - unlinked. [Bug 1740631] (maros) +2003-07-18 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-09-10 Miguel Sofer <msofer@users.sf.net> + * doc/Utf.3: Tightened up documentation of Tcl_UtfNext and Tcl_UtfPrev + to better match the behaviour. [Bug 769895] - * generic/tclCompile.c: fix tclInstructionTable entry for - dictUpdateEnd +2003-07-18 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclExecute.c: remove unneeded setting of 'cleanup' variable - before jumping to checkForCatch. + * generic/tclIOUtil.c: correct MT-safety issues with filesystem + records. [Bug 753315] (vasiljevic) -2007-09-10 Don Porter <dgp@users.sourceforge.net> + * library/http/pkgIndex.tcl: merged to v2.4.4 from head + * library/http/http.tcl: add support for user:pass info in URL. + * tests/http.test: [Bug 759888] (shiobara) - * doc/package.n: Restored the document parallel syntax of the - * generic/tclPkg.c: [package present] and [package require] - * tests/pkg.test: commands. [Bug 1723675] +2003-07-18 Don Porter <dgp@users.sourceforge.net> -2007-09-09 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: Corrected several instances of unsafe + * generic/tclCompile.c: truncation of UTF-8 strings that might break + * generic/tclProc.c: apart a multi-byte character. [Bug 760872] + * library/init.tcl: + * tests/init.test: + + * doc/tcltest.n: Restored the [Eval] proc to replace + * library/tcltest/tcltest.tcl: the [::puts] command when either the + -output or -error option for [test] is in use, in order to capture + data written to the output or error channels for comparison against + what is expected. This is easier to document and agrees better with + most user expectations than the previous attempt to replace [puts] + only in the caller's namespace. Documentation made more precise on the + subject. [Bug 706359] + + * doc/AddErrInfo.3: Improved consistency of documentation by using + * doc/CrtTrace.3: "null" everywhere to refer to the character + * doc/Encoding.3: '\0', and using "NULL" everywhere to refer to + * doc/Eval.3: the value of a pointer that points to nowhere. + * doc/GetIndex.3: Also dropped references to ASCII that are no + * doc/Hash.3: longer true, and standardized on the + * doc/LinkVar.3: hyphenated spelling of "null-terminated". + * doc/Macintosh.3: + * doc/OpenFileChnl.3: + * doc/SetVar.3: + * doc/StringObj.3: + * doc/Utf.3: - * 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] + * doc/CrtSlave.3 (Tcl_MakeSafe): Removed warning about possible + deprecation (no TIP on that). - ***POTENTIAL INCOMPATIBILITY*** - For callers of Tcl_GetObjType() on the name "nsName". +2003-07-17 Daniel Steffen <das@users.sourceforge.net> - * generic/tclExecute.c: Update TclGetNamespaceFromObj() callers. - * generic/tclProc.c: + * macosx/Makefile: added var to allow overriding of tclsh used during + html help building (Landon Fuller). - * 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: +2003-07-16 Mumit Khan <khan@nanotech.wisc.edu> - * generic/tclCompCmds.c: Use the new INST_REVERSE instruction - * tests/mathop.test: to correct the compiled versions of math - operator commands. [Bug 1724437] + * generic/tclIOUtil.c (SetFsPathFromAny): Add Cygwin specific code to + convert POSIX filename to native format. + * generic/tclFileName.c (Tcl_TranslateFileName): And remove from here. + (TclDoGlob): Adjust for cygwin and append / for dirs instead of \ + * win/tclWinFile.c (TclpObjChdir): Use chdir on Cygwin. [Patch 679315] - * generic/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. +2003-07-16 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclCompCmds.c (TclCompilePowOpCmd): Make a separate - routine to compile ** to account for its different associativity. + * library/safe.tcl (FileInAccessPath): normalize paths before + comparison. [Bug 759607] (myers) -2007-09-08 Miguel Sofer <msofer@users.sf.net> + * unix/tclUnixNotfy.c (NotifierThreadProc): correct size of found and + word vars from int to long. [Bug 767578] (hgo) - * generic/tclVar.c (Tcl_SetVar2, TclPtrSetVar): [Bug 1710710] fixed - correctly, reverted fix of 2007-05-01. +2003-07-16 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-09-08 Donal K. Fellows <dkf@users.sf.net> + * doc/CrtSlave.3 (Tcl_MakeSafe): Updated documentation to strongly + discourage use. IMHO code outside the core that uses this function is + a bug... [Bug 655300] - * 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] +2003-07-16 Jeff Hobbs <jeffh@ActiveState.com> -2007-09-07 Don Porter <dgp@users.sourceforge.net> + * generic/tcl.h: Add recognition of -DTCL_UTF_MAX=6 on the + * generic/regcustom.h: make line to support UCS-4 mode. No config arg + at this time, as it is not the recommended build mode. - * 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] + * generic/tclPreserve.c: In Result and Preserve'd routines, do not + * generic/tclUtil.c: assume that ckfree == free, as that is not + * generic/tclResult.c: always true. [Bug 756791] (fuller) -2007-09-07 Miguel Sofer <msofer@users.sf.net> +2003-07-16 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclProc.c (TclInitCompiledLocals): the refCount of resolved - variables was being managed without checking if they were Var or - VarInHash: itcl [Bug 1790184] + * win/Makefile.in: Don't define TCL_DBGX symbol for every compile. + Instead, define TCL_PIPE_DLL only when compiling tclWinPipe.c. This + will break other build systems, so they will need to remove the + TCL_DBGX define and replace it with a define for TCL_PIPE_DLL. + * win/makefile.vc: Ditto. + * win/tclWinPipe.c (TclpCreateProcess): Remove PREFIX_IDENT and + DEBUG_IDENT from top of file. Use TCL_PIPE_DLL passed in from build + env instead of trying to construct the dll name from already defined + symbols. This approach is more flexible and better in the long run. -2007-09-06 Don Porter <dgp@users.sourceforge.net> +2003-07-16 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. + * generic/tclFileName.c (Tcl_GlobObjCmd): [Bug 771840] + * generic/tclIOUtil.c (Tcl_FSConvertToPathType):[Bug 771947] + * unix/tclUnixFCmd.c (GetModeFromPermString): [Bug 771949] + Silence compiler warnings about unreached lines. -2007-09-06 Don Porter <dgp@users.sourceforge.net> + * library/tcltest/tcltest.tcl (ProcessFlags): Corrected broken call + * library/tcltest/pkgIndex.tcl: to [lrange]. Bumped to + version 2.2.4. [Bug 772333] - * 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. +2003-07-15 Mo DeJong <mdejong@users.sourceforge.net> - * 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. + * unix/dltest/pkga.c (Pkga_EqObjCmd): Fix typo that was causing a + crash in load.test. - * generic/tclInterp.c: Convert Tcl_BackgroundError() callers to call - * generic/tclIO.c: TclBackgroundException(). - * generic/tclIOCmd.c: - * generic/tclTimer.c: +2003-07-15 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclIntDecls.h: make genstubs - * generic/tclStubInit.c: + * doc/array.n: Added some examples from David Welton [Patch 763312] -2007-09-06 Daniel Steffen <das@users.sourceforge.net> +2003-07-15 Don Porter <dgp@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). + * doc/http.n: Updated SYNOPSIS to match actual syntax of commands. + [Bug 756112] - * 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: + * unix/dltest/pkga.c: Updated to not use Tcl_UtfNcmp and counted + strings instead of strcmp (not defined in any #include'd header) and + presumed NULL-terminated strings. - * macosx/README: document project changes. + * README: Bumped patch level to 8.4.4 in anticipation + * generic/tcl.h: of another patch release. + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/README.binary: + * win/configure.in: -2007-09-05 Don Porter <dgp@users.sourceforge.net> + * unix/configure: autoconf (2.13) + * win/configure: - * generic/tclBasic.c: Removed support for the unmaintained - * generic/tclExecute.c: -DTCL_GENERIC_ONLY configuration. [Bug - * unix/Makefile.in: 1264623] + * generic/tclCompCmds.c (TclCompileIfCmd): Prior fix of Bug 711371 + on 2003-04-07 introduced a buffer overflow. Corrected. [Bug 771613] -2007-09-04 Don Porter <dgp@users.sourceforge.net> +2003-07-15 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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. + * generic/tclCmdIL.c (SortCompare): Cleared up confusing error + message. [Bug 771539] - * unix/Makefile.in: Corrections to `make dist` dependencies to be - sure that macosx/configure gets generated whenever it does not exist. +2003-07-15 Daniel Steffen <das@users.sourceforge.net> -2007-09-03 Kevin B, Kenny <kennykb@acm.org> + * macosx/Makefile: Rewrote buildsystem for Mac OS X framework build to + be purely make driven; in order to become independent of Apple's + closed-source IDE and build tool. The changes are intended to be + transparent to the Makefile user, all existing make targets and cmd + line variable overrides should continue to work. Changed build to only + include tcl specific html help in Tcl.framework, the tk specific html + help is now included in Tk.framework. - * 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. + * macosx/Tcl.pbproj/project.pbxproj: + * macosx/Tcl.pbproj/jingham.pbxuser: Changed to purely call through to + the make driven buildsystem; Tcl.framework is no longer assembled by + ProjectBuilder. Set default SYMROOT in target options to simplify + setting up PB (manually setting common build folder for tcl & tk no + longer needed). - * 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. + * tools/tcltk-man2html.tcl: Added options to allow building only the + tcl or tk html help files; the default behaviour with none of the new + options is to build both, as before. -2007-09-03 Daniel Steffen <das@users.sourceforge.net> + * unix/Makefile.in: Added targets for building only the tcl or tk help. - * 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. + * macosx/README (new): Tcl specific excerpts of tk/macosx/README. -2007-09-02 Donal K. Fellows <dkf@users.sf.net> + * generic/tcl.h: Updated reminder comment about editing + macosx/Tcl.pbproj/project.pbxproj when version number changes. - * 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. +2003-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-08-30 Don Porter <dgp@users.sourceforge.net> + * tests/binary.test (binary-46.*): Tests to help enforce the current + behaviour. + * doc/binary.n: Documented that [binary format a] and [binary scan a] + do encoding conversion by dropping high bytes, unlike the rest of + the core. [Bug 735364] - * 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. +2003-07-11 Don Porter <dgp@users.sourceforge.net> -2007-08-28 Don Porter <dgp@users.sourceforge.net> + * library/package.tcl: Corrected [pkg_mkIndex] bug reported on + comp.lang.tcl. The indexer was searching for newly indexed packages + instead of newly provided packages. - * generic/tclCompExpr.c: Use a table lookup in ParseLexeme() to - determine lexemes with single-byte representations. +2003-07-04 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclBasic.c: Used unions to better clarify overloading of - * generic/tclCompExpr.c: the fields of the OpCmdInfo and - * generic/tclCompile.h: TclOpCmdClientData structs. + * doc/expr.n: Tighten up the wording of some operations. [Bug 758488] -2007-08-27 Don Porter <dgp@users.sourceforge.net> + * tests/cmdAH.test: Made tests of [file mtime] work better on FAT + filesystems. [Patch 760768] Also a little general cleanup. - * 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: +2003-06-25 Mo DeJong <mdejong@users.sourceforge.net> - * 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. + * unix/configure: Regen. + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Add -ieee when compiling with cc and + add -mieee when compiling with gcc under OSF1-V5 "Tru64" systems. [Bug + 748957] - * generic/tclCompile.c: Move the deallocation of local LiteralTable - * generic/tclCompExpr.c: entries into TclFreeCompileEnv(). - * generic/tclExecute.c: Update callers. +2003-06-24 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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. + * doc/encoding.n: Corrected the docs to say that [source] uses the + system encoding, which it always did anyway (since 8.1) [Bug 742100] -2007-08-25 Kevin B. Kenny <kennykb@acm.org> +2003-06-23 Vince Darley <vincentdarley@users.sourceforge.net> - * 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] + * generic/tclFCmd.c: fix to bad error message when trying to do 'file + copy foo ""'. [Bug 756951] + * tests/fCmd.test: added two new tests for the bug. - * library/clock.tcl (ParseClockScanFormat): Modified code to allow - * tests/clock.test (clock-60.*): case-insensitive matching - of time zone and month names. [Bug 1781282] + * doc/FileSystem.3: documentation fix [Bug 720634] -2007-08-24 Don Porter <dgp@users.sourceforge.net> +2003-06-18 Miguel Sofer <msofer@users.sf.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. + * generic/tclNamesp.c (Tcl_Export): removed erroneous comments [Bug + 756744] -2007-08-24 Miguel Sofer <msofer@users.sf.net> +2003-06-17 Vince Darley <vincentdarley@users.sourceforge.net> - * generic/tclCompile.c: replaced copy loop that tripped some compilers - with memmove. [Bug 1780870] + * generic/tclCmdMZ.c: + * tests/regexp.test: fixing of bugs related to regexp and regsub + matching of empty strings. Addition of a number of new tests. -2007-08-23 Don Porter <dgp@users.sourceforge.net> +2003-06-10 Miguel Sofer <msofer@users.sf.net> - * library/init.tcl ([auto_load_index]): Delete stray "]" that created - an expr syntax error (masked by a [catch]). + * generic/tclBasic.c: + * generic/tclExecute.c: let TclEvalObjvInternal call TclInterpReady + instead of relying on its callers to do so; fix for the part of [Bug + 495830] that is new in 8.4. + * tests/interp.test: Added tests 18.9 (knownbug) and 18.10 - * 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(). +2003-06-09 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompExpr.c: Suppress the attempt to convert to - numeric when pre-compiling a constant expresion indicates an error. + * tests/string.test (string-4.15): Added test for [string first] bug + reported in Tcl 8.3, where test for all-single-byte-encoded strings + was not reliable. -2007-08-22 Miguel Sofer <msofer@users.sf.net> +2003-06-04 Joe Mistachkin <joe@mistachkin.com> - * generic/tclExecute.c (TEBC): disable the new shortcut to frequent - INSTs for debug builds. REVERTED (collision with alternative fix) + * tools/man2help.tcl: Added duplicate help section checking and + * tools/index.tcl: corrected a comment typo for the getTopics proc + in index.tcl. [Bug 748700] -2007-08-21 Don Porter <dgp@users.sourceforge.net> +2003-05-23 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] + * generic/tclObj.c (tclCmdNameType): Converted internal rep + management of the cmdName Tcl_ObjType the opposite way, to always use + the twoPtrValue instead of always using the otherValuePtr. Previous + fix on 2003-05-12 broke several extensions that wanted to poke around + with the twoPtrValue.ptr2 value of a cmdName Tcl_Obj, like TclBlend + and e4graph. [Bug 726018] Thanks to George Petasis for the bug report + and Jacob Levy for testing assistance. -2007-08-21 Pat Thoyts <patthoyts@users.sourceforge.net> +2003-05-22 Daniel Steffen <das@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. + *** 8.4.3 TAGGED FOR RELEASE *** -2007-08-20 Miguel Sofer <msofer@users.sf.net> + * macosx/tclMacOSXBundle.c: fixed a problem that caused only the first + call to Tcl_MacOSXOpenVersionedBundleResources() for a given bundle + identifier to succeed. This caused the tcl runtime library not to be + found in all interps created after the inital one. - * generic/tclExecute.c (INST_SUB): fix usage of the new macro for - overflow detection in sums, adapt to subtraction. Lengthy comment - added. +2003-05-20 Jeff Hobbs <jeffh@ActiveState.com> -2007-08-19 Donal K. Fellows <dkf@users.sf.net> + * changes: updated for 8.4.3 - * generic/tclExecute.c (Overflowing, TclIncrObj, TclExecuteByteCode): - Encapsulate Miguel's last change in a more mnemonic macro. + * unix/Makefile.in: do not run autoconf during 'make dist' as the + configure is now a CVS-maintained file and should be up-to-date. -2007-08-19 Miguel Sofer <msofer@users.sf.net> +2003-05-19 Daniel Steffen <das@users.sourceforge.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". + * macosx/Tcl.pbproj/project.pbxproj: changed tclConfig.sh location in + versioned framework subdirectories to be identical to location in + framework toplevel; fixed stub library symbolic links to be Tcl + version specific. -2007-08-19 Donal K. Fellows <dkf@users.sf.net> +2003-05-16 Daniel Steffen <das@users.sourceforge.net> - * doc/interp.n (RESOURCE LIMITS): Added text to better explain why - time limits are described using absolute times. [Bug 1752148] + * macosx/Tcl.pbproj/project.pbxproj: updated copyright year. -2007-08-16 Miguel Sofer <msofer@users.sf.net> +2003-05-15 Jeff Hobbs <jeffh@ActiveState.com> - * 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. + * win/tclWinFile.c (TclpMatchInDirectory): revert glob code to r1.44 + as 2003-04-14 optimizations broke Windows98 glob'ing. - * generic/tclExecute.c: check the two most frequent instructions - before the switch. Reduces both runtime and obj size a tiny bit. + * README: bumped version to 8.4.3 + * generic/tcl.h: + * macosx/Tcl.pbproj/project.pbxproj: + * tools/tcl.wse.in: + * unix/configure: + * unix/configure.in: + * unix/tcl.spec: + * win/README.binary: + * win/configure: + * win/configure.in: -2007-08-16 Don Porter <dgp@users.sourceforge.net> + * doc/socket.n: nroff font handling correction. - * 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]. + * library/encoding/gb2312-raw.enc (new): This is the original + gb2312.enc renamed to allow for it to still be used. This is needed by + Tk (unix) because X fonts with gb2312* charsets really do want the + original gb2312 encoding. [Bug 557030] -2007-08-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2003-05-14 Donal K. Fellows <fellowsd@cs.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] + * generic/tclCmdAH.c (Tcl_FormatObjCmd): Values which can't be + anything but wide shouldn't be demoted to long. [consequence of HEAD + fixes for Bug 699060] -2007-08-14 Miguel Sofer <msofer@users.sf.net> +2003-05-14 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclExecute.c (INST_INVOKE*): peephole opt, do not get the - interp's result if it will be pushed/popped. + * library/encoding/gb2312.enc: copy euc-cn.enc over original + gb2312.enc. gb2312.enc appeared to not work as expected, and most uses + of gb2312 really mean euc-cn (which may be the cause of the problem). + [Bug 557030] -2007-08-14 Don Porter <dgp@users.sourceforge.net> + * generic/tclEnv.c (TclUnsetEnv): Another putenv() copy behavior + problem repaired when compiling on windows and using microsoft's + runtime. [Bug 736421] (gravereaux) - * 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. +2003-05-13 Jeff Hobbs <jeffh@ActiveState.com> -2007-08-14 Daniel Steffen <das@users.sourceforge.net> + * generic/tclIOUtil.c: add decl for FsThrExitProc to suppress warnings - * 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 +2003-05-13 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * tests/load.test: add test load-10.1 for loading from vfs. + * generic/tclEvent.c (Tcl_Finalize): Removed unused variable to reduce + compiler warnings. [Bug 664745] - * 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: +2003-05-13 Joe Mistachkin <joe@mistachkin.com> -2007-08-13 Don Porter <dgp@users.sourceforge.net> + * generic/tcl.decls: Changed Tcl_JoinThread parameter name from "id" + * generic/tclDecls.h: to "threadId". [Bug 732477] + * unix/tclUnixThrd.c: + * win/tclWinThrd.c: + * mac/tclMacThrd.c: - * generic/tclExecute.c: Provide DECACHE/CACHE protection to the - * tests/trace.test: Tcl_LogCommandInfo() call. [Bug 1773040] +2003-05-13 Daniel Steffen <das@users.sourceforge.net> -2007-08-12 Miguel Sofer <msofer@users.sf.net> + * generic/tcl.decls: + * macosx/tclMacOSXBundle.c: added extended version of the + Tcl_MacOSXOpenBundleResources() API taking an extra version number + argument: Tcl_MacOSXOpenVersionedBundleResources(). This is needed to + be able to access bundle resources in versioned frameworks such as Tcl + and Tk, otherwise if multiple versions were installed, only the latest + version's resources could be accessed. [Bug 736774] - * generic/tclCmdMZ.c (Tcl_SplitObjCmd): use TclNewStringObj macro - instead of calling the function. + * unix/tclUnixInit.c (Tcl_MacOSXGetLibraryPath): use new versioned + bundle resource API to get tcl runtime library for TCL_VERSION. + [Bug 736774] - * generic/tcl_Obj.c (TclAllocateFreeObjects): remove unneeded memset - to 0 of all allocated objects. + * generic/tclPlatDecls.h: + * generic/tclStubInit.c: regen. -2007-08-10 Miguel Sofer <msofer@users.sf.net> + * unix/tclUnixPort.h: worked around the issue of realpath() not being + thread-safe on Mac OS X by defining NO_REALPATH for threaded builds on + Mac OS X. [Bug 711232] - * generic/tclInt.h: remove redundant ops in TclNewStringObj macro. +2003-05-12 Don Porter <dgp@users.sourceforge.net> -2007-08-10 Miguel Sofer <msofer@users.sf.net> + * generic/tclInterp.c: (AliasObjCmd): Added refCounting of the words + * tests/interp.test (interp-33.1): of the target of an interp + alias during its execution. Also added test. [Bug 730244]. - * generic/tclInt.h: fix the TclSetVarNamespaceVar macro, was causing a - leak. + * generic/tclBasic.c (TclInvokeObjectCommand): objv[argc] is no + longer set to NULL (Tcl_CreateObjCommand docs already say that it + should not be accessed). -2007-08-10 Don Porter <dgp@users.sourceforge.net> + * generic/tclObj.c (tclCmdNameType): Corrected variable use of the + otherValuePtr or the twoPtrValue.ptr1 fields to store a + (ResolvedCmdName *) as the internal rep. [Bug 726018]. - * 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. + * doc/Eval.3: Corrected prototype for Tcl_GlobalEvalObj [Bug 727622]. -2007-08-09 Miguel Sofer <msofer@users.sf.net> +2003-05-12 Miguel Sofer <msofer@users.sf.net> - * generic/tclProc.c (TclCreateProc): better comments on the required - varflag values when loading precompiled procs. + * generic/tclVar.c (TclObjLookupVar): [Bug 735335] temporary fix, + disabling usage of tclNsVarNameType. + * tests/var.test (var-15.1): test for [Bug 735335] - * 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] +2003-05-10 Zoran Vasiljevic <zoran@archiware.com> -2007-08-08 Jeff Hobbs <jeffh@ActiveState.com> + * unix/tclUnixThrd.c: corrected [Bug 723502] - * generic/tclProc.c (InitLocalCache): reference firstLocalPtr via - procPtr. codePtr->procPtr == NULL exposed by tbcload. +2003-05-10 Jeff Hobbs <jeffh@ActiveState.com> -2007-08-08 Don Porter <dgp@users.sourceforge.net> + * generic/tclIOUtil.c: ensure cd is thread-safe. + [Bug 710642] (vasiljevic) - * generic/tclExecute.c: Corrected failure to compile/link in the - -DNO_WIDE_TYPE configuration. + * win/tclWinSerial.c (SerialCloseProc): correct mem leak on closing a + Windows serial port [Bug 718002] (schroedter) - * generic/tclExecute.c: Corrected improper use of bignum arguments to - * tests/expr.test: *SHIFT operations. [Bug 1770224] + * generic/tclCmdMZ.c (Tcl_StringObjCmd): prevent string repeat crash + when overflow sizes were given (throws error). [Bug 714106] -2007-08-07 Miguel Sofer <msofer@users.sf.net> +2003-05-09 Joe Mistachkin <joe@mistachkin.com> - * 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/tclThreadAlloc.c (TclFreeAllocCache): Fixed memory leak + caused by treating cachePtr as a TLS index [Bug 731754]. - * generic/tclInt.decls: Exporting via stubs to help xotcl adapt to - * generic/tclInt.h: VarReform. - * generic/tclIntDecls.h: - * generic/tclStubInit.c: + * win/tclAppInit.c (Tcl_AppInit): Fixed memory leaks caused by not + freeing the memory allocated by setargv and the async handler created + by Tcl_AppInit. An exit handler has been created that takes care of + both leaks. In addition, Tcl_AppInit now uses ckalloc instead of + Tcl_Alloc to allow for easier leak tracking and to be more consistent + with the rest of the Tcl core [Bugs 733156, 733221]. -2007-08-07 Daniel Steffen <das@users.sourceforge.net> + * tools/encoding/txt2enc.c (main): Fixed memory leak caused by failing + to free the memory used by the toUnicode array of strings [Bug 733221] - * generic/tclEnv.c: improve environ handling on Mac OS X (adapted - * unix/tclUnixPort.h: from Apple changes in Darwin tcl-64). +2003-05-05 Don Porter <dgp@users.sourceforge.net> - * unix/Makefile.in: add support for compile flags specific to - object files linked directly into executables. + * library/tcltest/tcltest.tcl: The -returnCodes option to [test] + failed to recognize the symbolic name "ok" for return code 0. - * 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. +2003-05-05 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * unix/configure: autoconf-2.59 + * generic/tclBasic.c (Tcl_HideCommand): Fixed error message grammar + and spelling. -2007-08-06 Don Porter <dgp@users.sourceforge.net> +2003-04-29 Vince Darley <vincentdarley@users.sourceforge.net> - * tests/parseExpr.test: Update source file name of expr parser code. + * generic/tclFileName.c: fix to bug reported privately by Jeff where, + for example, 'glob -path {[tcl]} *' gets confused by the leading + special character (which is escaped internally), and instead lists + files in '/'. Bug only occurs on Windows where '\' is also a + directory separator. (Bug has been around at least since Tcl 8.3.) + * tests/fileName.test: added test for the above bug. - * generic/tclCompExpr.c: Added a "mark" field to the OpNode - struct, which is used to guide tree traversal. This field costs - nothing since alignement requirements used the memory already. - Rewrote ConvertTreeToTokens() to use the new field, which permitted - consolidation of utility routines CopyTokens() and - GenerateTokensForLiteral(). +2003-04-25 Don Porter <dgp@users.sourceforge.net> -2007-08-06 Kevin B. Kenny <kennykb@users.sf.net> + * generic/tclBasic.c: Tcl_EvalObjv() failed to honor the + TCL_EVAL_GLOBAL flag when resolving command names. Tcl_EvalEx passed a + string rep including leading whitespace and comments to + TclEvalObjvInternal(). - * generic/tclGetDate.y: Added a cast to the definition of YYFREE to - silence compiler warnings. - * generic/tclDate.c: Regenerated - * win/tclWinTest.c: Added a cast to GetSecurityDescriptorDacl call - to silence compiler warnings. +2003-04-25 Andreas Kupries <andreask@activestate.com> -2007-08-04 Miguel Sofer <msofer@users.sf.net> + * win/tclWinThrd.c: Applied [Patch 727271]. This patch changes the + code to catch any errors returned by the windows functions handling + TLS ASAP instead of waiting to get some mysterious crash later on due + to bogus pointers. Patch provided by Joe Mistachkin. - * 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: + This is a stop-gap measure to deal with the low number of ?TLS slots + provided by some of the variants of Windows (60-80). -2007-08-01 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2003-04-21 Don Porter <dgp@users.sourceforge.net> - * library/word.tcl: Rewrote for greater efficiency. [Bug 1764318] + * library/tcltest/tcltest.tcl: When the return code of a test does + not meet expectations, report that as the reason for test failure, + and do not attempt to check the test result for correctness. [Bug + 725253] -2007-08-01 Pat Thoyts <patthoyts@users.sourceforge.net> +2003-04-18 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclInt.h: Added a TclOffset macro ala Tk_Offset to - * generic/tclVar.c: abstract out 'offsetof' which may not be - * generic/tclExceute.c: defined (eg: msvc6). + * generic/tclExecute.c (ExprCallMathFunc): remove incorrect + extraneous cast from Tcl_WideAsDouble. -2007-08-01 Miguel Sofer <msofer@users.sf.net> +2003-04-18 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclVar.c (TclCleanupVar): fix [Bug 1765225], thx Larry - Virden. + * doc/open.n: Moved serial port options from [fconfigure] + * doc/fconfigure.n: to [open] as it is up to the creator of a + channel to describe the channel's special + config options. [Bug 679010] -2007-07-31 Miguel Sofer <msofer@users.sf.net> +2003-04-16 Don Porter <dgp@users.sourceforge.net> - * doc/Hash.3: - * generic/tclHash.c: - * generic/tclObj.c: - * generic/tclThreadStorage.c: (changes part of the patch below) - Stop Tcl_CreateHashVar from resetting hPtr->clientData to NULL after - calling the allocEntryProc for a custom table. + * generic/tcl.h Made changes so that the "wideInt" Tcl_ObjType + * generic/tclObj.c is defined on all platforms, even those where + * generic/tclPort.h TCL_WIDE_INT_IS_LONG is defined. Also made + the Tcl_Value struct have a wideValue field on all platforms. This is + a ***POTENTIAL INCOMPATIBILITY*** for TCL_WIDE_INT_IS_LONG platforms + because that struct changes size. This is the same TIP 72 + incompatibility that was seen on other platforms at the 8.4.0 release, + when this change should have happened as well. [Bug 713562] - * generic/tcl.h: - * generic/tclBasic.c: - * generic/tclCmdIL.c: - * generic/tclCompCmds.c: - * generic/tclCompile.c: - * generic/tclCompile.h: - * generic/tclExecute.c: - * generic/tclHash.c: - * generic/tclInt.decls: - * generic/tclInt.h: - * generic/tclIntDecls.h: - * generic/tclLiteral.c: - * generic/tclNamesp.c: - * generic/tclObj.c: - * generic/tclProc.c: - * generic/tclThreadStorage.c: - * generic/tclTrace.c: - * generic/tclVar.c: VarReform [Patch 1750051] - - *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h) - Extensions that access internals defined in tclInt.h and/or - tclCompile.h may lose both binary and source compatibility. The - relevant changes are: - 1. 'struct Var' is completely changed, all acceses to its internals - (either direct or via the TclSetVar* and TclIsVar* macros) will - malfunction. Var flag values and semantics changed too. - 2. 'struct Bytecode' has an additional field that has to be - initialised to NULL - 3. 'struct Namespace' is larger, as the varTable is now one pointer - larger than a Tcl_HashTable. Direct access to its fields will - malfunction. - 4. 'struct CallFrame' grew one more field (the second such growth with - respect to Tcl8.4). - 5. API change for the functions TclFindCompiledLocal, TclDeleteVars - and many internal functions in tclVar.c - - Additionally, direct access to variable hash tables via the standard - Tcl_Hash* interface is to be considered as deprecated. It still works - in the present version, but will be broken by further specialisation - of these hash tables. This concerns especially the table of array - elements in an array, as well as the varTable field in the Namespace - struct. - -2007-07-31 Miguel Sofer <msofer@users.sf.net> - - * unix/configure.in: allow use of 'inline' in Tcl sources. [Patch - * win/configure.in: 1754128] - * win/makefile.vc: Regen with autoconf 2.61 - -2007-07-31 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * unix/tclUnixInit.c (TclpSetVariables): Use the thread-safe getpwuid - replacement to fill the tcl_platform(user) field as it is not subject - to spoofing. [Bug 681877] - - * unix/tclUnixCompat.c: Simplify the #ifdef logic. - - * unix/tclUnixChan.c (FileWatchProc): Fix test failures. - -2007-07-30 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * unix/tclUnixChan.c (SET_BITS, CLEAR_BITS): Added macros to make this - file clearer. - -2007-07-24 Miguel Sofer <msofer@users.sf.net> - - * generic/tclBasic.c (TEOvI, GetCommandSource): - * generic/tclExecute.c (TEBC, TclGetSrcInfoForCmd): - * generic/tclInt.h: - * generic/tclTrace.c (TclCheck(Interp|Execution)Traces): - Removed the need for TEBC to inspect the command before calling TEOvI, - leveraging the TIP 280 infrastructure. Moved the generation of a - correct nul-terminated command string away from the trace code, back - into TEOvI/GetCommandSource. + * generic/tclInt.h: New internal macros TclGetWide() and + TclGetLongFromWide() to deal with both forms of the "wideInt" + Tcl_ObjType, so that conditional TCL_WIDE_INT_IS_LONG code + is confined to the header file. -2007-07-20 Andreas Kupries <andreask@activestate.com> + * generic/tclCmdAH.c: Replaced most coding that was conditional + * generic/tclCmdIL.c: on TCL_WIDE_INT_IS_LONG with code that + * generic/tclExecute.c: works across platforms, sometimes using + * generic/tclTest.c: the new macros above to do it. + * generic/tclUtil.c: + * generic/tclVar.c: - * 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. +2003-04-17 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-07-19 Don Porter <dgp@users.sourceforge.net> + * doc/socket.n: Added a paragraph to remind people to specify + their encodings when using sockets. [Bug 630621] - * 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. +2003-04-16 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-07-18 Don Porter <dgp@users.sourceforge.net> + * doc/CrtMathFnc.3: Functions also have to deal with wide ints, + but this was not documented. [Bug 709720] - * generic/tclCompExpr.c: Removed unused arguments and variables +2003-04-15 Kevin Kenny <kennykb@acm.org> -2007-07-17 Don Porter <dgp@users.sourceforge.net> + * win/tclWinTime.c: Corrected use of types to make compilation + compatible with VC++5. - * 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. +2003-04-14 Kevin Kenny <kennykb@acm.org> -2007-07-15 Don Porter <dgp@users.sourceforge.net> + * win/tclWinFile.c: added conditionals to restore compilation on + VC++6, which was broken by recent changes. - * 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. +2003-04-14 Vince Darley <vincentdarley@users.sourceforge.net> -2007-07-12 Don Porter <dgp@users.sourceforge.net> + Merged various bug fixes from current cvs head: - * generic/tclCompExpr.c: Factored out, corrected, and commented - common code for reporting syntax errors in LEAF elements. + * tests/cmdAH.test: better fix to test suite problem if /home is a + symlink [Bug 703264] -2007-07-11 Miguel Sofer <msofer@users.sf.net> + * generic/tclIOUtil.c: fix bad error message with 'cd ""' [Bug 704917] + * win/tclWinFile.c: + * win/tclWin32Dll.c: + * win/tclWinInt.h: allow Tcl to differentiate between reparse points + which are symlinks and mounted volumes, and correctly handle the + latter. This involves some elaborate code to find the actual drive + letter (if possible) corresponding to a mounted volume. [Bug 697862] + * tests/fileSystem.test: add constraints to stop tests running in + ordinary tcl interpreter. [Bug 705675] + * generic/tclIOUtil.c: Some re-arrangement of code to bring it closer + to CVS HEAD. No functional changes. - * 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> + * tests/fCmd.test: + * win/tclWinFile.c: added some filesystem optimisation to the + 'glob' implementation, and some new tests. - * library/init.tcl (unknown): Corrected inconsistent error message - in interactive [unknown] when empty command is invoked. [Bug 1743676] + * tests/winFile.test: + * tests/ioUtil.test: + * tests/unixFCmd.test: renumbered tests with duplicate numbers. [Bug + 710361] -2007-07-05 Miguel Sofer <msofer@users.sf.net> +2003-04-12 Kevin Kenny <kennykb@acm.org> - * generic/tclNamesp.c (SetNsNameFromAny): - * generic/tclObj.c (SetCmdNameFromAny): Avoid unnecessary - ckfree/ckalloc when the old structs can be reused. + * tests/clock.test: Renumbered test cases to avoid duplicates [Bug + 710310]. + * tests/winTime.test: + * win/tclWinTest.c (TestwinclockCmd, TestwinsleepCmd): + * win/tclWinTime.c (Tcl_WinTime, UpdateTimeEachSecond, + (ResetCounterSamples, AccumulateSample, SAMPLES, TimeInfo): Made + substantial changes to the phase-locked loop (replaced an IIR filter + with an FIR one) in a quest for improved loop stability (Bug not + logged at SF, but cited in private communication from Jeff Hobbs). -2007-07-04 Miguel Sofer <msofer@users.sf.net> +2003-04-11 Don Porter <dgp@users.sourceforge.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] + * generic/tclCmdMZ.c (Tcl_StringObjCmd,STR_IS_INT): Corrected + inconsistent results of [string is integer] observed on systems + where sizeof(long) != sizeof(int). [Bug 718878] + * tests/string.test: Added tests for Bug 718878. + * doc/string.n: Clarified that [string is integer] accepts + 32-bit integers. -2007-07-03 Don Porter <dgp@users.sourceforge.net> +2003-04-11 Andreas Kupries <andreask@activestate.com> - * generic/tclCompExpr.c: Revised #define values so that there - is now more expansion room to define more BINARY operators. + * generic/tclIO.c (UpdateInterest): When dropping interest in + TCL_READABLE now dropping interest in TCL_EXCEPTION too. This fixes a + bug where Expect detects eof on a file prematurely on Solaris 2.6 and + higher. A much more complete explanation is in the code itself (40 + lines of comments for a one-line change :) -2007-07-02 Donal K. Fellows <dkf@users.sf.net> +2003-04-10 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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] + * doc/binary.n: Fixed typo in [binary format w] desc. [Bug 718543] -2007-07-02 Don Porter <dgp@users.sourceforge.net> +2003-04-08 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tcl.h: Removed TCL_PRESERVE_BINARY_COMPATIBILITY and - * generic/tclHash.c: any code enabled when it is set to 0. We will - * generic/tclStubInit.c: always want to preserve binary compat - of the structs that appear in the interface through the 8.* series of - releases, so it's pointless to drag around this never-enabled - alternative. + * generic/tclCmdAH.c (Tcl_ErrorObjCmd): Strings are only empty if they + have zero length, not if their first byte is zero, so fix test + guarding Tcl_AddObjErrorInfo to take this into account. [Bug reported + by Don Porter; no bug-id.] - * generic/tclIO.c: Removed dead code. - * unix/tclUnixChan.c: +2003-04-07 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompExpr.c: Removed dead code, old implementations - * generic/tclEvent.c: of expr parsing and compiling, including the - * generic/tclInt.h: routine TclFinalizeCompilation(). + * generic/tclCompCmds.c (TclCompileIfCmd): Corrected string limits of + arguments interpolated in error messages. [Bug 711371] -2007-06-30 Donal K. Fellows <dkf@users.sf.net> + * generic/tclCmdMZ.c (TraceExecutionProc): Added missing + Tcl_DiscardResult() call to avoid memory leak. - * generic/tclCmdIL.c (Tcl_LsortObjCmd): Plug a memory leak caused by a - missing Tcl_DecrRefCount on an error path. [Bug 1717186] +2003-04-07 Donal K. Fellows <zzcgudf@ernie.mvc.mcc.ac.uk> -2007-06-30 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclObj.c (tclWideIntType, TclInitObjSubsystem): + (SetBooleanFromAny): Make sure that tclWideIntType is defined and + somewhat sensible everywhere. [Bug 713562] - * 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. +2003-04-02 Mo DeJong <mdejong@users.sourceforge.net> -2007-06-29 Donal K. Fellows <dkf@users.sf.net> + * win/configure: Regen. + * win/configure.in: Set stub lib flag based on new LIBFLAGSUFFIX + variable. + * win/tcl.m4 (SC_CONFIG_CFLAGS): Set new LIBFLAGSUFFIX that works like + LIBSUFFIX, it is used when creating library names. The previous + implementation would generate -ltclstub85 instead of -ltclstub85s when + configured with --disable-shared. - * doc/DictObj.3 (Tcl_DictObjDone): Improved documentation of this - function to make it clearer how to use it. [Bug 1710795] +2003-04-01 Don Porter <dgp@users.sourceforge.net> -2007-06-29 Daniel Steffen <das@users.sourceforge.net> + * tests/README: Direct [source] of *.test files is no longer + recommended. The tests/*.test files should only be evaluated under the + control of the [runAllTests] command in tests/all.tcl. - * generic/tclAlloc.c: on Darwin, ensure memory allocated by - * generic/tclThreadAlloc.c: the custom TclpAlloc()s is aligned to - 16 byte boundaries (as is the case with the Darwin system malloc). +2003-03-27 Miguel Sofer <msofer@users.sf.net> - * generic/tclGetDate.y: use ckalloc/ckfree instead of malloc/free. - * generic/tclDate.c: bison 1.875e + * tests/encoding.test: + * tests/proc-old.test: + * tests/set-old.test: Altered test numers to eliminate duplicates, + [Bugs 710313, 710320, 710352] - * generic/tclBasic.c (TclEvalEx): fix warnings. +2003-03-27 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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. + * tests/parseOld.test: Altered test numers to eliminate duplicates. + * tests/parse.test: [Bugs 710365, 710369] + * tests/expr-old.test: + * tests/expr.test: - * macosx/README: document Tcl.xcodeproj changes. + * tests/utf.test: Altered test numers to eliminate duplicates. + * tests/trace.test: [Bugs 710322, 710327, 710349, 710363] + * tests/lsearch.test: + * tests/list.test: + * tests/info.test: + * tests/incr-old.test: + * tests/if-old.test: + * tests/format.test: + * tests/foreach.test: -2007-06-28 Don Porter <dgp@users.sourceforge.net> +2003-03-26 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c: Removed dead code, including the - * generic/tclExecute.c: entire file tclMathOp.c. - * generic/tclInt.h: - * generic/tclMathOp.c (removed): - * generic/tclTestObj.c: - * win/tclWinFile.c: + * doc/tcltest.n: + * library/tcltest/tcltest.tcl: Added reporting during [configure + -debug 1] operations to warn about multiple uses of the same test + name. [FR 576693] Replaced [regexp] and [regsub] with [string map] + where possible. Thanks to David Welton. [Bugs 667456,667558] + * library/tcltest/pkgIndex.tcl: Bumped to tcltest 2.2.3 - * unix/Makefile.in: Updated to reflect deletion of tclMathOp.c. - * win/Makefile.in: - * win/makefile.bc: - * win/makefile.vc: + * tests/msgcat.test (msgcat-2.2.1): changed test name to avoid + duplication. [Bug 710356] -2007-06-28 Pat Thoyts <patthoyts@users.sourceforge.net> + * unix/dltest/pkg?.c: Changed all Tcl_InitStubs calls to pass argument + exact = 0, so that rebuilds are not required when Tcl bumps to a new + version. [Bug 701926] - * generic/tclBasic.c: Silence constness warnings for TclStackFree - * generic/tclCompCmds.c: when building with msvc. - * generic/tclFCmd.c: - * generic/tclIOCmd.c: - * generic/tclTrace.c: +2003-03-24 Miguel Sofer <msofer@users.sf.net> -2007-06-28 Miguel Sofer <msofer@users.sf.net> + * generic/tclVar.c: + * tests/var.test: fixing ObjMakeUpvar's lookup algorithm for the + created local variable, [Bugs 631741] (Chris Darroch) and [696893] + (David Hilker). - * generic/tclVar.c (UnsetVarStruct): fix possible segfault. +2003-03-22 Kevin Kenny <kennykb@acm.org> -2007-06-27 Don Porter <dgp@users.sourceforge.net> + * library/dde/pkgIndex.tcl: + * library/reg/pkgIndex.tcl: Fixed a bug where [package require dde] or + [package require registry] attempted to load the release version of + the DLL into a debug build. [Bug 708218] Thanks to Joe Mistachkin for + the patch. + * win/makefile.vc: Added quoting around the script name in the 'test' + target; Joe Mistachkin insists that he has a configuration that fails + to launch tcltest without it, and it appears harmless otherwise. + +2003-03-20 Don Porter <dgp@users.sourceforge.net> + + * generic/tclInt.h (tclOriginalNotifier): + * generic/tclStubInit.c (tclOriginalNotifier): + * mac/tclMacNotify.c (Tcl_SetTimer,Tcl_WaitForEvent): + * unix/tclUnixNotfy.c (Tcl_SetTimer,Tcl_WaitForEvent, + (Tcl_CreateFileHandler,Tcl_DeleteFileHandler): + * win/tclWinNotify.c (Tcl_SetTimer,Tcl_WaitForEvent): Some linkers + apparently use a different representation for a pointer to a function + within the same compilation unit and a pointer to a function in a + different compilation unit. This causes checks like those in the + original notifier procedures to fall into infinite loops. The fix is + to store pointers to the original notifier procedures in a struct + defined in the same compilation unit as the stubs tables, and compare + against those values. [Bug 707174] + + * generic/tclInt.h: Removed definition of ParseValue struct that is no + longer used. + +2003-03-19 Miguel Sofer <msofer@users.sf.net> - * 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] + * generic/tclCompile.c: + * tests/compile.test: bad command count on TCL_OUT_LINE_COMPILE + [Bug 705406] (Don Porter). -2007-06-26 Don Porter <dgp@users.sourceforge.net> +2003-03-19 Don Porter <dgp@users.sourceforge.net> - * generic/tclBasic.c (TclEvalEx): Moved some arrays from the C - stack to the Tcl stack. + * doc/Eval.3 (Tcl_EvalObjEx): Corrected CONST and + * doc/ParseCmd.3 (Tcl_EvalTokensStandard): return type errors in + documentation. [Bug 683994] -2007-06-26 Miguel Sofer <msofer@users.sf.net> +2003-03-18 Kevin Kenny <kennykb@users.sourceforge.net> - * generic/tclVar.c (UnsetVarStruct): more streamlining. + * tests/registry.test: Changed the conditionals to avoid an abort if + [testlocale] is missing, as when running the test in tclsh rather than + tcltest. [Bug 705677] -2007-06-25 Don Porter <dgp@users.sourceforge.net> +2003-03-18 Daniel Steffen <das@users.sourceforge.net> - * generic/tclExecute.c: Safety checks to avoid crashes in the - TclStack* routines when called with an incompletely initialized - interp. [Bug 1743302] + * tools/tcltk-man2html.tcl: added support for building 'make html' + from inside distribution directories named with 8.x.x version numbers. + tcltk-man2html now uses the latest tcl8.x.x resp. tk8.x.x directories + found inside its --srcdir argument. -2007-06-25 Miguel Sofer <msofer@users.sf.net> +2003-03-18 Vince Darley <vincentdarley@users.sourceforge.net> - * generic/tclVar.c (UnsetVarStruct): fixing incomplete change, more - streamlining. + * tests/cmdAH.test: fix test suite problem if /home is a symlink + * generic/tclIOUtil.c: fix bad error message with 'cd ""' + * win/tclWinFile.c: allow Tcl to differentiate between reparse points + which are symlinks and mounted drives. -2007-06-24 Miguel Sofer <msofer@users.sf.net> + These changes fix [Bugs 703264, 704917, 697862] respectively. - * generic/tclVar.c (TclDeleteCompiledLocalVars): removed inlining that - ended up not really optimising (limited benchmarks). Now calling - UnsetVarStruct (streamlined old code is #ifdef'ed out, in case better - benchmarks do show a difference). +2003-03-17 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclVar.c (UnsetVarStruct): fixed a leak introduced in last - commit. + * doc/lsearch.n: Altered documentation of -ascii options so + * doc/lsort.n: they don't specify that they operate on + ASCII strings, which they never did + anyway. [Bug 703807] -2007-06-23 Miguel Sofer <msofer@users.sf.net> +2003-03-14 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclVar.c (UnsetVarStruct, TclDeleteVars): made the logic - slightly clearer, eliminated some duplicated code. + * generic/tclCmdAH.c (Tcl_FileObjCmd): Remove assumption that file + times and longs are the same size. [Bug 698146] + (Tcl_FormatObjCmd): Stop surprising type conversions from + happening when working with integer and wide values. [Bug 699060] - *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and Var struct users) - The core never builds VAR_LINK variable to have traces. Such a - "monster", should one exist, will now have its unset traces called - *before* it is unlinked. + * generic/tclCmdAH.c (Tcl_FormatObjCmd): Only add the modifier that + indicates we've got a wide int when we're formatting in an integer + style. Stops some libc's from going mad. [Bug 702622] + Also tidied whitespace. -2007-06-23 Daniel Steffen <das@users.sourceforge.net> +2003-03-13 Kevin Kenny <kennykb@users.sourceforge.net> - * macosx/tclMacOSXNotify.c (AtForkChild): don't call CoreFoundation - APIs after fork() on systems where that would lead to an abort(). + * win/makefile.vc: Backed the version to 8.4 on the 8.4 branch. (I + just loathe sticky tags). -2007-06-22 Don Porter <dgp@users.sourceforge.net> +2003-03-12 Don Porter <dgp@users.sourceforge.net> - * generic/tclExecute.c: Revised TclStackRealloc() signature to better - * generic/tclInt.h: parallel (and fall back on) Tcl_Realloc. + * generic/tcl.h: Removed TCL_PREFIX_IDENT and TCL_DEBUG_IDENT + * win/tclWinPipe.c: from tcl.h -- they are not part of Tcl's + public interface. Put them in win/tclWinPipe.c where they are used. - * generic/tclNamesp.c (TclResetShadowesCmdRefs): Replaced - ckrealloc based allocations with TclStackRealloc allocations. + * generic/tclCmdMZ.c (Tcl_SubstObj): Corrected and added test for + * tests/subst.test (subst-2.4): Tcl_SubstObj's incorrect + halting of substitution at the first \x00 byte. [Bug 685106] - * generic/tclCmdIL.c: More conversions to use TclStackAlloc. - * generic/tclScan.c: + * generic/tclInterp.c (Tcl_InterpObjCmd): Corrected and added + * tests/interp.test (interp-2.13): test for option + parsing beyond objc for [interp create --]. Thanks to Marco Maggi. + [Bug 702383] -2007-06-21 Don Porter <dgp@users.sourceforge.net> +2003-03-11 Kevin Kenny <kennykb@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: + * win/makefile.vc: Added two missing uses of $(DBGX) so that + tclpip8x.dll loads without panicking on Win9x. -2007-06-21 Miguel Sofer <msofer@users.sf.net> +2003-03-08 Don Porter <dgp@users.sourceforge.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. + * doc/tcltest.n: Added missing "-body" to example. Thanks to + Helmut Giese. [Bug 700011] -2007-06-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2003-03-06 Don Porter <dgp@users.sourceforge.net> - * generic/tcl.h, generic/tclCompile.h, generic/tclCompile.c: Remove - references in comments to obsolete {expand} notation. [Bug 1740859] + * generic/TclUtf.c (Tcl_UniCharNcasecmp): Corrected failure to + * tests/utf.test (utf-25.*): properly compare Unicode strings of + different case in a case insensitive manner. [Bug 699042] -2007-06-20 Miguel Sofer <msofer@users.sf.net> +2003-03-03 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclVar.c: streamline namespace vars deletion: only compute - the variable's full name if the variable is traced. + *** 8.4.2 TAGGED FOR RELEASE *** -2007-06-20 Don Porter <dgp@users.sourceforge.net> +2003-03-03 Daniel Steffen <das@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. + Mac OS Classic specific fixes: + * generic/tclIOUtil.c (TclNewFSPathObj): on TCL_PLATFORM_MAC, + skip potential directory separator at the beginning of addStrRep. + * mac/tclMacChan.c (OpenFileChannel, CommonWatch): followup + fixes to cut and splice implementation for file channels. + * mac/tclMacFile.c (TclpUtime): pass native path to utime(). + * mac/tclMacFile.c (TclpObjLink): correctly implemented creation + of alias files via new static proc CreateAliasFile(). + * mac/tclMacPort.h: define S_ISLNK macro to fix stat'ing of links. + * mac/tclMacUtil.c (FSpLocationFromPathAlias): fix to enable + stat'ing of broken links. - * generic/tclIntDecls.h: make genstubs +2003-03-03 Kevin Kenny <kennykb@users.sourceforge.net> - * 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: + * win/Makefile.vc: corrected bug introduced by 'g' for debug builds. -2007-06-20 Jeff Hobbs <jeffh@ActiveState.com> +2003-03-03 Don Porter <dgp@users.sourceforge.net> - * tools/tcltk-man2html.tcl: revamp of html doc output to use CSS, - standardized headers, subheaders, dictionary sorting of names. + * library/dde/pkgIndex.tcl: dde bumped to version 1.2.1 for + * win/tclWinDde.c: bundled release with Tcl 8.4.2 -2007-06-18 Jeff Hobbs <jeffh@ActiveState.com> + * library/reg/pkgIndex.tcl: registry bumped to version 1.1.1 for + * win/tclWinReg.c: bundled release with Tcl 8.4.2 - * tools/tcltk-man2html.tcl: clean up copyright merging and output. - clean up coding constructs. + * library/opt/pkgIndex.tcl: updated package index to version 0.4.4 -2007-06-18 Miguel Sofer <msofer@users.sf.net> +2003-02-28 Jeff Hobbs <jeffh@ActiveState.com> - * 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. + * win/configure: + * win/configure.in: check for 'g' for debug build type, not 'd'. + * win/rules.vc (DBGX): correct to use 'g' for nmake win makefile + to match the cygwin makefile for debug builds. [Bug 635107] - * generic/tclExecute.c (TEBC): Moved the CmdFrame off the C stack and - onto the Tcl stack, between the catch and the execution stacks +2003-02-28 Vince Darley <vincentdarley@users.sourceforge.net> -2007-06-18 Don Porter <dgp@users.sourceforge.net> + * doc/file.n: subcommand is 'file volumes' not 'file volume' - * generic/tclBasic.c (TclEvalEx,TclEvalObjEx): Moved the CmdFrame off - the C stack and onto the Tcl stack. +2003-02-27 Jeff Hobbs <jeffh@ActiveState.com> -2007-06-17 Donal K. Fellows <dkf@users.sf.net> + * generic/tclIOUtil.c (MakeFsPathFromRelative): removed dead code + check of typePtr (darley). - * generic/tclProc.c (TclObjInterpProcCore): Minor fixes to make - * generic/tclExecute.c (TclExecuteByteCode): compilation debugging - builds work again. [Bug 1738542] + * tests/winTime.test: added note about PCI hardware dependency + issues with high performance clock. -2007-06-16 Donal K. Fellows <dkf@users.sf.net> +2003-02-27 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclProc.c (TclObjInterpProcCore): Use switch instead of a - chain of if's for a modest performance gain and a little more clarity. + * tests/lsearch.test (lsearch-10.7): + * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Stopped -start option from + causing an option when used with an empty list. [Bug 694232] -2007-06-15 Miguel Sofer <msofer@users.sf.net> +2003-02-26 Chengye Mao <chengye.geo@yahoo.com> - * generic/tclCompCmds.c: Simplified [variable] compiler and executor. - * generic/tclExecute.c: Missed updates to "there is always a valid - frame". + * win/tclWinInit.c: fixed a bug in TclpSetVariables by initializing + dwUserNameLen with the sizeof(szUserName) before calling GetUserName. + Don't know if this bug has been recorded: it caused crash in starting + Tcl or wish in Windows. - * generic/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. +2003-02-26 Jeff Hobbs <jeffh@ActiveState.com> - * 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/tclCmdMZ.c (TraceCommandProc): Fix mem leak when + deleting a command that had trace on it. [Bug 693564] (sofer) -2007-06-14 Miguel Sofer <msofer@users.sf.net> +2003-02-25 Don Porter <dgp@users.sourceforge.net> - * generic/tclInt.decls: Modif to the internals of TclObjInterpProc - * generic/tclInt.h: to reduce stack consumption and improve task - * generic/tclIntDecls.h: separation. Changes the interface of - * generic/tclProc.c: TclObjInterpProcCore (patching TclOO - simultaneously). + * doc/pkgMkIndex.n: Modified [pkg_mkIndex] to use -nocase matching + * library/package.tcl: of -load patterns, to better accomodate + common user errors due to confusion between [package names] names + and [info loaded] names. - * generic/tclProc.c (TclObjInterpProcCore): simplified obj management - in wrongNumArgs calls. +2003-02-25 Andreas Kupries <andreask@activestate.com> -2007-06-14 Don Porter <dgp@users.sourceforge.net> + * tests/pid.test: See below [Bug 678412]. + * tests/io.test: Made more robust against spaces in paths [Bug 678400] - * 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. +2003-02-25 Miguel Sofer <msofer@users.sf.net> -2007-06-13 Miguel Sofer <msofer@users.sf.net> + * tests/execute.test: cleaning up testobj's at the end, to avoid leak + warning by valgrind. - * generic/tclExecute.c (TclCompEvalObj): missed update to "there is - always a valid frame". +2003-02-22 Zoran Vasiljevic <zoran@archiwrae.com> - * 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/tclEvent.c (Tcl_FinalizeThread): Fix [Bug 571002] -2007-06-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2003-02-21 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclBasic.c (Tcl_CreateInterp): Turn the [info] command into - * generic/tclCmdIL.c (TclInitInfoCmd): an ensemble, making it easier - for third-party code to plug into. + * tests/binary.test (binary-44.[34]): + * generic/tclBinary.c (ScanNumber): Fixed problem with unwanted + sign-bit propagation when scanning wide ints. [Bug 690774] - * 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. +2003-02-21 Daniel Steffen <das@users.sourceforge.net> -2007-06-11 Miguel Sofer <msofer@users.sf.net> + * mac/tclMacChan.c (TclpCutFileChannel, TclpSpliceFileChannel): + Implemented missing cut and splice procs for file channels. - * generic/tclExecute.c: comments added to explain iPtr->numLevels - management. +2003-02-21 Don Porter <dgp@users.sourceforge.net> - * 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. + * library/package.tcl (tclPkgUnknown): Minor performance tweaks to + reduce the number of [file] invocations. Meant to improve startup + times, at least a little bit. [Patch 687906] -2007-06-10 Miguel Sofer <msofer@users.sf.net> +2003-02-20 Daniel Steffen <das@users.sourceforge.net> - * generic/tclBasic.c: Further TEOvI split, creating a new - * generic/tclCompile.h: TclEvalObjvKnownCommand() function to handle - * generic/tclExecute.c: commands that are already known and are not - traced. INST_INVOKE now calls into this function instead of inlining - parts of TEOvI. Same perf, better isolation. + * unix/tcl.m4: + * unix/tclUnixPipe.c: (macosx) use vfork() instead of fork() to create + new processes, as recommended by Apple (vfork can be up to 100 times + faster thank fork on macosx). + * unix/configure: regen. - ***POTENTIAL INCOMPAT*** There is a subtle issue with the timing of - execution traces that is changed here - first change appeared in my - commit of 2007-04-03 [Patch 1693802], which caused some divergence - between compiled and non-compiled code. - ***THIS CHANGE IS UNDER REVIEW*** +2003-02-20 Jeff Hobbs <jeffh@ActiveState.com> -2007-06-10 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclEncoding.c (LoadTableEncoding): + * library/encoding/cp932.enc: Correct jis round-trip encoding + * library/encoding/euc-jp.enc: by adding 'R' type to .enc files. + * library/encoding/iso2022-jp.enc: [Patch 689341] (koboyasi, taguchi) + * library/encoding/jis0208.enc: + * library/encoding/shiftjis.enc: + * tests/encoding.test: - * README: updated links. [Bug 1715081] + * unix/tclUnixChan.c (Tcl_MakeTcpClientChannel): add + MakeTcpClientChannelMode that takes actual mode flags to avoid + hang on OS X (may be OS X bug, but patch works x-plat). + [Bug 689835] (steffen) - * 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] +2003-02-20 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-06-10 Miguel Sofer <msofer@users.sf.net> + * doc/regsub.n: Typo fix [Bug 688943] - * 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: +2003-02-19 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclInt.h: New TclCleanupCommandMacro for core usage. - * generic/tclBasic.c: - * generic/tclExecute.c: - * generic/tclObj.c: + * unix/tclUnixThrd.c (TclpReaddir): + * unix/tclUnixPort.h: update to Bug 689100 patch to ensure that + there is a defined value of MAXNAMLEN (aka NAME_MAX in POSIX) and + that we have some buffer allocated. -2007-06-09 Daniel Steffen <das@users.sourceforge.net> +2003-02-19 Daniel Steffen <das@users.sourceforge.net> - * macosx/Tcl.xcodeproj/project.pbxproj: add new Tclsh-Info.plist.in. + * generic/tclStringObj.c: restored Tcl_SetObjLength() side-effect of + always invalidating unicode rep (if the obj has a string rep). Added + hasUnicode flag to String struct, allows decoupling of validity of + unicode rep from buffer size allocated to it (improves memory + allocation efficiency). [Bugs 686782, 671138, 635200] -2007-06-08 Donal K. Fellows <dkf@users.sf.net> + * macosx/Tcl.pbproj/project.pbxproj: + * macosx/Makefile: reworked embedded build to no longer require + relinking but to use install_name_tool instead to change the + install_names for embedded frameworks. [Bug 644510] - * generic/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... + * macosx/Tcl.pbproj/project.pbxproj: preserve mod dates when running + 'make install' to build framework (avoids bogus rebuilds of dependent + frameworks because tcl headers appear changed). -2007-06-06 Miguel Sofer <msofer@users.sf.net> + * tests/ioCmd.test (iocmd-1.8): fix failure when system encoding is + utf-8: use iso8859-1 encoding explicitly. - * generic/tclParse.c: fix for uninit read. [Bug 1732414] +2003-02-18 Miguel Sofer <msofer@users.sf.net> -2007-06-06 Daniel Steffen <das@users.sourceforge.net> + * generic/tclCompile.c (TclCompileExprWords): remove unused variable + "range" [Bug 664743] + * generic/tclExecute.c (ExprSrandFunc): remove unused variable + "result" [Bug 664743] + * generic/tclStringObj.c (UpdateStringOfString): remove unused + variable "length" [Bug 664751] + * tests/execute.test (execute-7.30): fix for [Bug 664775] - * macosx/Tcl.xcodeproj/project.pbxproj: add settings for Fix&Continue. +2003-02-18 Andreas Kupries <andreask@activestate.com> - * 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: [Bug 651811] Added definition of _XOPEN_SOURCE and + linkage of 'xnet' library to HP 11 branch. This kills a lot of + socket-related failures in the testsuite when Tcl was compiled in 64 + bit mode (both PA-RISC 2.0W, and IA 64). - * unix/tcl.m4 (Darwin): fix CF checks in fat 32&64bit builds. - * unix/configure: autoconf-2.59 + * unix/configure: Regenerated. -2007-06-05 Don Porter <dgp@users.sourceforge.net> +2003-02-18 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclBasic.c: Added interp flag value ERR_LEGACY_COPY to - * generic/tclInt.h: control the timing with which the global - * generic/tclNamesp.c: variables ::errorCode and ::errorInfo get - * generic/tclProc.c: updated after an error. This keeps more - * generic/tclResult.c: precise compatibility with Tcl 8.4. - * tests/result.test (result-6.2): [Bug 1649062] + * generic/tclIO.c (HaveVersion): correctly decl static -2007-06-05 Miguel Sofer <msofer@users.sf.net> + * unix/tclUnixThrd.c (TclpReaddir): reduce size of name string in + tsd to NAME_MAX instead of PATH_MAX. [Bug 689100] (waters) - * generic/tclInt.h: - * generic/tclExecute.c: Tcl-stack reform, [Patch 1701202] +2003-02-18 Mo DeJong <mdejong@users.sourceforge.net> -2007-06-03 Daniel Steffen <das@users.sourceforge.net> + * unix/configure: Regen. + * unix/tcl.m4 (SC_ENABLE_THREADS): Make sure -lpthread gets passed on + the link line when checking for the pthread_attr_setstacksize symbol. - * unix/Makefile.in: add datarootdir to silence autoconf-2.6x warning. +2003-02-18 Vince Darley <vincentdarley@users.sourceforge.net> -2007-05-30 Don Porter <dgp@users.sourceforge.net> + * generic/tclTest.c: cleanup of new 'simplefs' test code, and better + documentation. - * 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. +2003-02-17 Miguel Sofer <msofer@users.sf.net> - * 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] + * generic/tclBasic.c (TclRenameCommand): fixing error in previous + commit. -2007-05-29 Jeff Hobbs <jeffh@ActiveState.com> +2003-02-17 Jeff Hobbs <jeffh@ActiveState.com> - * unix/tclUnixThrd.c (Tcl_JoinThread): fix for 64-bit handling of - pthread_join exit return code storage. [Bug 1712723] + * generic/tclExecute.c (TclExecuteByteCode INST_STR_MATCH): + * generic/tclCmdMZ.c (Tcl_StringObjCmd STR_MATCH): + * generic/tclUtf.c (TclUniCharMatch): + * generic/tclInt.decls: add private TclUniCharMatch function that + * generic/tclIntDecls.h: does string match on counted unicode + * generic/tclStubInit.c: strings. Tcl_UniCharCaseMatch has the + * tests/string.test: failing that it can't handle strings or + * tests/stringComp.test: patterns with embedded NULLs. Added + tests that actually try strings/pats with NULLs. TclUniCharMatch + should be TIPed and made public in the next minor version rev. -2007-05-22 Don Porter <dgp@users.sourceforge.net> +2003-02-17 Miguel Sofer <msofer@users.sf.net> - [core-stabilizer-branch] + * generic/tclBasic.c (TclRenameCommand): 'oldFullName' object was not + being freed on all function exits, causing a memory leak. [Bug 684756] - * unix/configure: autoconf-2.59 (FC6 fork) - * win/configure: +2003-02-17 Mo DeJong <mdejong@users.sourceforge.net> - * 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: + * generic/tclIO.c (Tcl_GetsObj): Minor change so that eol is only + assigned at the top of the TCL_TRANSLATE_AUTO case block. The other + cases assign eol so this does not change any functionality. -2007-05-18 Don Porter <dgp@users.sourceforge.net> +2003-02-17 Kevin Kenny <kennykb@users.sourceforge.net> - * unix/configure: autoconf-2.59 (FC6 fork) - * win/configure: + * tests/notify.test: Removed Windows line terminators. [Bug 687913]. + +2003-02-15 Miguel Sofer <msofer@users.sf.net> - * README: Bump version number to 8.5a7 + * generic/tclBasic.c (Tcl_EvalEx): + * generic/tclCompExpr.c (CompileSubExpr): + * generic/tclCompile.c (TclCompileScript): + * generic/tclParse.c (Tcl_ParseCommand, ParseTokens): + * generic/tclParseExpr.c (ParsePrimaryExpr): + * tests/basic.test (47.1): + * tests/main.test (3.4): + * tests/misc.test (1.2): + * tests/parse.test (6.18): + * tests/parseExpr.test (15.35): + * tests/subst.test (8.6): Don Porter's fix for bad parsing of + nested scripts [Bug 681841]. + +2003-02-15 Kevin Kenny <kennykb@users.sourceforge.net> + + * tests/notify.test (new-file): + * generic/tclTest.c (TclTest_Init, EventtestObjCmd, EventtestProc, + (EventTestDeleteProc): + * generic/tclNotify.c (Tcl_DeleteEvents): Fixed Tcl_DeleteEvents + not to get a pointer smash when deleting the last event in the + queue. Added test code in 'tcltest' and a new file of test cases + 'notify.test' to exercise this functionality; several of the new + test cases fail for the original code and pass for the corrected + code. [Bug 673714] + + * unix/tclUnixTest.c (TestfilehandlerCmd): Corrected a couple + of typos in error messages. [Bug 596027] + +2003-02-14 Jeff Hobbs <jeffh@ActiveState.com> + + * README: Bumped to version 8.4.2. * generic/tcl.h: - * library/init.tcl: * tools/tcl.wse.in: + * unix/configure: * unix/configure.in: + * unix/tcl.m4: * unix/tcl.spec: + * win/README.binary: + * win/configure: * win/configure.in: + * macosx/Tcl.pbproj/project.pbxproj: - * generic/tclParse.c: Disable and remove the ALLOW_EXPAND sections - * tests/info.test: that continued to support the deprecated - * tests/mathop.test: {expand} syntax. Updated the few remaining - users of that syntax in the test suite. + * generic/tclStringObj.c (Tcl_GetCharLength): perf tweak -2007-05-17 Donal K. Fellows <dkf@users.sf.net> + * unix/tcl.m4: correct HP-UX ia64 --enable-64bit build flags - * 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. +2003-02-14 Kevin Kenny <kennykb@users.sourceforge.net> -2007-05-17 Daniel Steffen <das@users.sourceforge.net> + * win/tclWinTime.c: Added code to test and compensate for forward + leaps of the performance counter. See the MSDN Knowledge Base article + Q274323 for the hardware problem that makes this necessary on certain + machines. + * tests/winTime.test: Revised winTime-2.1 - it had a tolerance of + thousands of seconds, rather than milliseconds. (What's six orders of + magnitude among friends? - * generic/tcl.decls: workaround 'make checkstubs' failures from - tclStubLib.c MODULE_SCOPE revert. [Bug 1716117] + Both the above changes are triggered by a problem reported at + http://aspn.activestate.com/ASPN/Mail/Message/ActiveTcl/1536811 + although the developers find it difficult to believe that it accounts + for the observed behavior and suspect a fault in the RTC chip. -2007-05-16 Joe English <jenglish@users.sourceforge.net> +2003-02-13 Kevin Kenny <kennykb@users.sourceforge.net> - * generic/tclStubLib.c: Change Tcl_InitStubs(), tclStubsPtr, and the - auxilliary stubs table pointers back to public visibility. + * win/tclWinInit.c: Added conversion from the system encoding to + tcl_platform(user), so that it works with non-ASCII7 user names. [Bug + 685926] - 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] + * doc/tclsh.1: Added language to describe the handling of the + end-of-file character \u001a embedded in a script file. [Bug 685485] -2007-05-15 Don Porter <dgp@users.sourceforge.net> +2003-02-11 Vince Darley <vincentdarley@users.sourceforge.net> - * win/configure: autoconf-2.59 (FC6 fork) + * tests/fileName.test: + * unix/tclUnixFile.c: fix for [Bug 685445] when using 'glob -l' on + broken symbolic links. Added two new tests for this bug. - * 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: +2003-02-11 Kevin Kenny <kennykb@users.sourceforge.net> -2007-05-11 Pat Thoyts <patthoyts@users.sourceforge.net> + * tests/http.test: Corrected a problem where http-4.14 would fail when + run in an environment with a proxy server. Replaced references to + scriptics.com by tcl.tk. - * generic/tclInt.h: Removed TclEvalObjEx and TclGetSrcInfoForPc from - tclInt.h now they are in the internal stubs table. +2003-02-11 Jeff Hobbs <jeffh@ActiveState.com> -2007-05-09 Don Porter <dgp@users.sourceforge.net> + * tests/lsearch.test: + * generic/tclCmdIL.c (Tcl_LsearchObjCmd): protect against the case + that lsearch -regepx list and pattern objects are equal. - * generic/tclInt.h: TclFinalizeThreadAlloc() is always defined, so - make sure it is also always declared (with MODULE_SCOPE). + * tests/stringObj.test: + * generic/tclStringObj.c (Tcl_GetCharLength): correct ascii char + opt of 2002-11-11 to not stop early on \x00. [Bug 684699] -2007-05-09 Daniel Steffen <das@users.sourceforge.net> + * tests.parse.test: remove excess EOF whitespace - * generic/tclInt.h: fix warning when building threaded with -DPURIFY. + * generic/tclParse.c (CommandComplete): more paranoid check to + break on (p >= end) instead of just (p == end). - * macosx/Tcl.xcodeproj/project.pbxproj: add 'DebugUnthreaded' & - * macosx/Tcl.xcodeproj/default.pbxuser: 'DebugLeaks' configs and env - var settings needed to run the 'leaks' tool. +2003-02-11 Miguel Sofer <msofer@users.sf.net> -2007-05-07 Don Porter <dgp@users.sourceforge.net> + * generic/tclParse.c (CommandComplete): + * tests/parse.test: fix for [Bug 684744], by Don Porter. - [Tcl Bug 1706140] +2003-02-11 Jeff Hobbs <jeffh@ActiveState.com> - * 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/tclIOUtil.c (Tcl_FSJoinPath, Tcl_FSGetNormalizedPath): + (UpdateStringOfFsPath): revert the cwdLen == 0 check and instead + follow a different code path in Tcl_FSJoinPath. + (Tcl_FSConvertToPathType, Tcl_FSGetNormalizedPath): + (Tcl_FSGetFileSystemForPath): Update string rep of path objects + before freeing the internal object. (darley) - * 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 + * tests/fileSystem.test: added test 8.3 + * generic/tclIOUtil.c (Tcl_FSGetNormalizedPath): + (UpdateStringOfFsPath): handle the cwdLen == 0 case - * 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. + * unix/tclUnixFile.c (TclpMatchInDirectory): simplify the hidden + file match check. -2007-05-06 Donal K. Fellows <dkf@users.sf.net> +2003-02-10 Mo DeJong <mdejong@users.sourceforge.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). + * win/configure: + * win/configure.in: Generate error when attempting to build under + Cygwin. The Cygwin port of Tcl/Tk does not build and people are filing + bug reports under the mistaken impression that someone is actually + maintaining the Cygwin port. A post to comp.lang.tcl asking someone to + volunteer as an area maintainer has generated no results. Closing + [Bugs 680840, 630199, 634772] and marking as "Won't fix". - * generic/tclInt.decls (TclEvalObjEx, TclGetSrcInfoForPc): Expose - these two functions through the internal stubs table, necessary for - extensions that need to integrate deeply with TIP#280. +2003-02-10 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-05-05 Donal K. Fellows <dkf@users.sf.net> + * doc/append.n: Return value was not documented. [Bug 683188] - * 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. +2003-02-10 Vince Darley <vincentdarley@users.sourceforge.net> -2007-05-04 Kevin B. Kenny <kennykb@acm.org> + * doc/FileSystem.3: + * generic/tclIOUtil.c: + * generic/tclInt.h: + * tests/fileSystem.test: + * unix/tclUnixFCmd.c: + * unix/tclUnixFile.c: + * win/tclWinFile.c: further filesystem optimization, applying + [Patch 682500]. In particular, these code examples are faster now: + foreach f $flist { if {[file exists $f]} {file stat $f arr;...}} + foreach f [glob -dir $dir *] { # action and/or recursion on $f } + cd $dir + foreach f [glob *] { # action and/or recursion on $f } + cd .. - * generic/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. + * generic/tclTest.c: Fix for [Bug 683181] where test suite left files + in 'tmp'. -2007-05-02 Kevin B. Kenny <kennykb@acm.org> +2003-02-08 Jeff Hobbs <jeffh@ActiveState.com> - * 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. + * library/safe.tcl: code cleanup of eval and string comp use. -2007-05-01 Miguel Sofer <msofer@users.sf.net> +2003-02-07 Vince Darley <vincentdarley@users.sourceforge.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] + * win/tclWinFCmd.c: cleanup long lines + * win/tclWinFile.c: sped up pure 'glob' by a factor of 2.5 ('foreach f + [glob *] { file exists $f }' is still slow) + * tests/fileSystem.text: + * tests/fileName.test: added new tests to ensure correct behaviour in + optimized filesystem code. -2007-05-01 Kevin B. Kenny <kennykb@acm.org> +2003-02-07 Vince Darley <vincentdarley@users.sourceforge.net> - * 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. + * generic/tclTest.c: + * tests/fileSystem.text: fixed test 7.2 to avoid a possible crash, and + not change the pwd. -2007-05-01 Don Porter <dgp@users.sourceforge.net> + * tests/http.text: added comment to test 4.15, that it may fail if you + use a proxy server. - * generic/tclCmdMZ.c (STR_MAP): When [string map] has a pure dict map, - a missing Tcl_DictObjDone() call led to a memleak. [Bug 1710709] +2003-02-06 Mo DeJong <mdejong@users.sourceforge.net> -2007-04-30 Daniel Steffen <das@users.sourceforge.net> + * generic/tclCompCmds.c (TclCompileIncrCmd): + * tests/incr.test: Don't include the text "(increment expression)" in + the errorInfo generated by the compiled version of the incr command + since it does not match the message generated by the non-compiled + version of incr. It is also not possible to match this error output + under Jacl, which does not support a compiler. - * unix/Makefile.in: add 'tclsh' dependency to install targets that - rely on tclsh, fixes parallel 'make install' from empty build dir. +2003-02-06 Mo DeJong <mdejong@users.sourceforge.net> -2007-04-30 Andreas Kupries <andreask@gactivestate.com> + * generic/tclExecute.c (TclExecuteByteCode): When an error is + encountered reading the increment value during a compiled call to + incr, add a "(reading increment)" error string to the errorInfo + variable. This makes the errorInfo variable set by the compiled incr + command match the value set by the non-compiled version. + * tests/incr-old.test: Change errorInfo result for the compiled incr + command case to match the modified implementation. + * tests/incr.test: Add tests to make sure the compiled and + non-compiled errorInfo messages are the same. - * 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] +2003-02-06 Don Porter <dgp@users.sourceforge.net> -2007-04-30 Kevin B. Kenny <kennykb@acm.org> + * library/tcltest/tcltest.tcl: Filename arguments to [outputChannel] + and [errorChannel] (also -outfile and -errfile) were [open]ed but + never [closed]. Also, [cleanupTests] could remove output or error + files. [Bug 676978]. + * library/tcltest/pkgIndex.tcl: Bumped to version 2.2.2. - * 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] +2003-02-05 Mo DeJong <mdejong@users.sourceforge.net> -2007-04-25 Donal K. Fellows <dkf@users.sf.net> + * tests/interp.test: + * tests/set-old.test: Run test cases that depend on hash order through + lsort so that the tests also pass under Jacl. Does not change test + results under Tcl. - *** 8.5a6 TAGGED FOR RELEASE *** +2003-02-04 Vince Darley <vincentdarley@users.sourceforge.net> - * generic/tclProc.c (TclObjInterpProcCore): Only allocate objects for - error message generation when associated with argument names that are - really used. [Bug 1705778, leak K15] + * generic/tclIOUtil.c: + * generic/tclEvent.c: + * generic/tclInt.h: + * mac/tclMacFCmd.c: + * unix/tclUnixFCmd.c: + * win/tclWin32Dll.c: + * win/tclWinFCmd.c: + * win/tclWinInit.c: + * win/tclWinInt.h: + * tests/fileSystem.test: fix to finalization/unloading/encoding issues + to make filesystem much less dependent on encodings for its cleanup, + and therefore allow it to be finalized later in the exit process. This + fixes fileSystem.test-7.1. Also fixed one more bug in setting of + modification dates of files which have undergone cross-platform + copies. [Patch 676271] + + * tests/basic.test: + * tests/exec.test: + * tests/fileName.test: + * tests/io.test: fixed some test failures when tests are run from a + directory containing spaces. -2007-04-25 Kevin B. Kenny <kennykb@acm.org> + * tests/fileSystem.test: + * generic/tclTest.c: added regression test for the modification + date setting of cross-platform file copies. - * 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] +2003-02-03 Kevin Kenny <kennykb@users.sourceforge.net> -2007-04-25 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: Changed [trace add command] so that 'rename' + callbacks get fully qualified names of the command. [Bug 651271]. + ***POTENTIAL INCOMPATIBILITY*** + * tests/trace.test: Modified the test cases for [trace add command] to + expect fully qualified names on the 'rename' callbacks. Added a case + for renaming a proc within a namespace. + * doc/trace.n: Added language about use of fully qualified names in + trace callbacks. + +2003-02-01 Kevin Kenny <kennykb@users.sourceforge.net> + + * generic/tclCompCmds.c: Removed an unused variable that caused + compiler warnings on SGI. [Bug 664379] - * generic/tclCompExpr.c (ParseExpr): Revised to be sure that an - error return doesn't prevent all literals getting placed on the - litList to be returned to the caller for freeing. Corrects some - memleaks. [Bug 1705778, leak K23] + * generic/tclLoad.c: Changed the code so that if Tcl_StaticPackage is + called to report the same package as being loaded in two interps, it + shows up in [info loaded {}] in both of them (previously, it didn't + appear in the static package list in the second. + + * tests/load.test Added regression test for the above bug. [Bug + 670042] + + * generic/tclClock.c: Fixed a bug that incorrectly allowed [clock + clicks {}] and [clock clicks -] to be accepted as if they were [clock + clicks -milliseconds]. + + * tests/clock.test: Added regression tests for the above bug. [Bug + 675356] + + * tests/unixNotfy.test: Added cleanup of working files [Bug 675609] + + * doc/Tcl.n: Added headings to the eleven paragraphs, to improve + formatting in the tools that attempt to extract tables of contents + from the manual pages. [Bug 627455] + + * generic/tclClock.c: Expanded mutex protection around the setting of + env(TZ) and the thread-unsafe call to tzset(). [Bug 656660] + +2003-01-31 Don Porter <dgp@users.sourceforge.net> + + * tests/tcltest.test: Cleaned up management of file/directory + creation/deletion to improve "-debug 1" output. [Bug 675614] The + utility [slave] command failed to properly [list]-quote a constructed + [open] command, causing failure when the pathname contained + whitespace. [Bug 678415] + + * tests/main.test: Stopped main.test from deleting existing file. + Test suite should not delete files that already exist. [Bug 675660] + +2003-01-28 Don Porter <dgp@users.sourceforge.net> + + * tests/main.test: Constrain tests that do not work on Windows. [Bug + 674387] + +2003-01-28 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclIOUtil.c: fix to setting modification date in + TclCrossFilesystemCopy. Also added 'panic' in + Tcl_FSGetFileSystemForPath under illegal calling circumstances which + lead to hard-to-track-down bugs. + + * generic/tclTest.c: added test suite code to allow exercising a + vfs-crash-on-exit bug in Tcl's finalization caused by the encodings + being cleaned up before unloading occurs. + * tests/fileSystem.test: added new 'knownBug' test 7.1 to demonstrate + the crash on exit. + +2003-01-28 Mo DeJong <mdejong@users.sourceforge.net> + + * generic/tcl.h: Add TCL_PREFIX_IDENT and TCL_DEBUG_IDENT, used only + by TclpCreateProcess. + * unix/Makefile.in: Define TCL_DBGX. + * win/Makefile.in: Define TCL_DBGX. + * win/tclWinPipe.c (TclpCreateProcess): Check that the Tcl pipe dll + actually exists in the Tcl bin directory and panic if it is not + found. Incorporate TCL_DBGX into the Tcl pipe dll name. This fixes a + really mysterious error that would show up when exec'ing a 16 bit + application under Win95 or Win98 when Tcl was compiled with symbols. + The error seemed to indicate that the executable could not be found, + but it was actually the Tcl pipe dll that could not be found. + +2003-01-26 Mo DeJong <mdejong@users.sourceforge.net> + + * win/README: Update msys+mingw URL to release 6. This version bundles + gcc 3. + +2003-01-26 Mo DeJong <mdejong@users.sourceforge.net> + + * win/configure: Regen. + * win/configure.in: Add test that checks to see if the compiler can + cast to a union type. + * win/tclWinTime.c: Squelch compiler warning about union initializer + by casting to union type when compiling with gcc. + +2003-01-25 Mo DeJong <mdejong@users.sourceforge.net> + + * generic/tclIO.c (Tcl_CutChannel, Tcl_SpliceChannel): Invoke + TclpCutFileChannel and TclpSpliceFileChannel. + * generic/tclInt.h: Declare TclpCutFileChannel and + TclpSpliceFileChannel. + * unix/tclUnixChan.c (FileCloseProc, TclpOpenFileChannel, + (Tcl_MakeFileChannel, TclpCutFileChannel, + (TclpSpliceFileChannel): Implement thread load data cut and splice for + file channels. This avoids an invalid memory ref when compiled with + -DDEPRECATED. + * win/tclWinChan.c (FileCloseProc, TclpCutFileChannel, + (TclpSpliceFileChannel): Implement thread load data cut and splice for + file channels. This avoids an invalid memory ref that was showing up + in the thread extension. -2007-04-25 Daniel Steffen <das@users.sourceforge.net> +2003-01-25 Mo DeJong <mdejong@users.sourceforge.net> + + * win/tclWin32Dll.c (TclpCheckStackSpace, squelch_warnings): + * win/tclWinChan.c (Tcl_MakeFileChannel, squelch_warnings): + * win/tclWinFCmd.c (DoRenameFile, DoCopyFile, squelch_warnings): + Re-implement inline ASM SEH handlers for gcc. The esp and ebp + registers are now saved on the stack instead of in global variables so + that the code is thread safe. Add additional checks when TCL_MEM_DEBUG + is defined to be sure the values were recovered from the stack + properly. Remove squelch_warnings functions and add a dummy call in + the handler methods to squelch compiler warnings. - * unix/Makefile.in (dist): add macosx/*.xcconfig files to src dist; - copy license.terms to dist macosx dir; fix autoheader bits. +2003-01-25 Mo DeJong <mdejong@users.sourceforge.net> -2007-04-24 Miguel Sofer <msofer@users.sf.net> + * win/configure: + * win/configure.in: Define HAVE_ALLOCA_GCC_INLINE when we detect that + no alloca function is found in malloc.h and we are compiling with + GCC. Remove HAVE_NO_ALLOC_DECL define. + * win/tclWin32Dll.c (TclpCheckStackSpace): Don't define alloca as a + cdecl function. Doing this caused a tricky runtime bug because the + _alloca function expects the size argument to be passed in a register + and not on the stack. To fix this problem, we use inline ASM when + compiling with gcc to invoke _alloca with the size argument loaded + into a register. - * generic/tclListObj.c: reverting [Patch 738900] (committed on - 2007-04-20). Causes some Tk test breakage of unknown importance, but - the impact of the patch itself is likely to be so small that it does - not warrant investigation at this time. +2003-01-24 Jeff Hobbs <jeffh@ActiveState.com> -2007-04-24 Donal K. Fellows <dkf@users.sf.net> + * win/tclWinDde.c (Dde_Init): clarified use of tsdPtr. + (DdeServerProc): better refcount handling of returnPackagePtr. - * 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/tclEvent.c (Tcl_Finalize): revert finalize change on + 2002-12-04 to correct the issue with extensions that have TSD needing + to finalize that before they are unloaded. This issue needs further + clarification. -2007-04-24 Kevin B. Kenny <kennykb@acm.org> + * tests/unixFCmd.test: only do groups check on unix - * 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] +2003-01-24 Vince Darley <vincentdarley@users.sourceforge.net> -2007-04-24 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclStringObj.c: proper fixes for Tcl_SetObjLength and + Tcl_AttemptSetObjectLength dealing with string objects with both + pure-unicode and normal internal representations. Previous fix didn't + handle all cases correctly. + * generic/tclIO.c: Add 'Tcl_GetString()' to ensure the object has a + valid 'objPtr->bytes' field before manipulating it directly. - * unix/Makefile.in (dist): add platform library package to src dist + This fixes [Bug 635200] and [Bug 671138], but may reduce performance + of Unicode string handling in some cases. A further patch will be + applied to address this, once the code is known to be correct. -2007-04-24 Don Porter <dgp@users.sourceforge.net> +2003-01-24 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclCompExpr.c (ParseExpr): Memory leak in error case; the - literal Tcl_Obj was not getting freed. [Bug 1705778, leak #1 (new)] + * win/configure: Regen. + * win/configure.in: Add test to see if alloca is undefined in + malloc.h. + * win/tclWin32Dll.c (TclpCheckStackSpace): Rework the SEH exception + handler logic to avoid using the stack since alloca will modify the + stack. This was causing a nasty bug that would set the exception + handler to 0 because it tried to pop the previous exception handler + off the top of the stack. - * 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] +2003-01-23 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-04-24 Kevin B. Kenny <kennykb@acm.org> + * doc/lset.n: Fixed fault in return values from lset in documentation + examples [Bug 658463] and tidied up a bit at the same time. - * generic/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]) +2003-01-21 Joe English <jenglish@users.sourceforge.net> + * doc/namespace.n (namespace inscope): Clarified documentation + [Patch 670110] -2007-04-23 Daniel Steffen <das@users.sourceforge.net> +2003-01-21 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclCkalloc.c: fix warnings from gcc build configured with - * generic/tclCompile.c: --enable-64bit --enable-symbols=all. - * generic/tclExecute.c: + * win/configure: Regen. + * win/tcl.m4 (SC_CONFIG_CFLAGS): Set SHLIB_SUFFIX so that + TCL_SHLIB_SUFFIX will be set to a useful value in the generated + tclConfig.sh. Set SHLIB_LD_LIBS to "" or '${LIBS}' based on the + --enable-shared flag. This matches the UNIX implementation. - * unix/tclUnixFCmd.c: add workaround for crashing bug in fts_open() - * unix/tclUnixInit.c: without FTS_NOSTAT on 64bit Darwin 8 or earlier. +2003-01-18 Jeff Hobbs <jeffh@ActiveState.com> - * unix/tclLoadDyld.c (TclpLoadMemory): fix (void*) arithmetic. + * generic/tclCkalloc.c: change %ud to %u as appropriate. - * macosx/Tcl-Common.xcconfig: enable more warnings. +2003-01-17 Mo DeJong <mdejong@users.sourceforge.net> - * 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. + * win/tclWinDde.c (DdeServerProc): Deallocate the Tcl_Obj returned by + ExecuteRemoteObject if it was not saved in a connection object. - * macosx/tclMacOSXNotify.c: fix warnings. +2003-01-17 Mo DeJong <mdejong@users.sourceforge.net> - * macosx/tclMacOSXFCmd.c: const fixes. + * generic/tcl.h: Revert earlier change that defined TCL_WIDE_INT_TYPE + as long long and TCL_LL_MODIFIER as L when compiling with mingw. This + change ended up causing some test case failures when compiling with + mingw. + * generic/tclObj.c (UpdateStringOfWideInt): Describe the warning + generated by mingw and why it needs to be ignored so that someone is + not tempted to "fix" this problem again in the future. - * macosx/Tcl-Common.xcconfig: fix whitespace. - * macosx/Tcl-Debug.xcconfig: - * macosx/Tcl-Release.xcconfig: - * macosx/README: +2003-01-16 Vince Darley <vincentdarley@users.sourceforge.net> - * 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: + * generic/tclStringObj.c: Tcl_SetObjLength fix for when the object has + a unicode string rep. Fixes [Bug 635200] + * tests/stringObj.test: removed 'knownBug' constraint from test 14.1 + now that this bug is fixed. - * unix/configure.in: install license.terms into Tcl.framework. - * unix/configure: autoconf-2.59 + * generic/tclInt.h: + * generic/tclBasic.c: + * generic/tclCmdMZ.z: + * tests/trace.test: execution and command tracing bug fixes and + cleanup. In particular fixed [Bugs 655645, 615043, 571385] + - fixed some subtle cleanup problems with tracing. This required + replacing Tcl_Preserve/Tcl_Release with a more robust refCount + approach. Solves at least one known crash caused by memory + corruption. + - fixed some confusion in the code between new style traces (Tcl + 8.4) and the very limited 'Tcl_CreateTrace' which existed before. + - made behaviour consistent with documentation (several tests even + contradicted the documentation before). + - fixed some minor error message details + - added a number of new tests + +2003-01-16 Jeff Hobbs <jeffh@ActiveState.com> + + * win/tclWinSerial.c (SerialOutputProc): add casts for bytesWritten to + allow strict compilation (no warnings). -2007-04-23 Don Porter <dgp@users.sourceforge.net> - - * generic/tclVar.c (UnsetVarStruct): Make sure the - TCL_INTERP_DESTROYED flags gets passed to unset trace routines so they - can respond appropriately. [Bug 1705778, leak #9] - -2007-04-23 Miguel Sofer <msofer@users.sf.net> - - * generic/tclCompile.c (TclFreeCompileEnv): Tip 280's new field - extCmdMapPtr was not being freed. [Bug 1705778, leak #1] - -2007-04-23 Kevin B. Kenny <kennykb@acm.org> - - * generic/tclCompCmds.c (TclCompileUpvarCmd): Plugged a memory leak in - 'upvar' when compiling (a) upvar outside a proc, (b) upvar with a - syntax error, or (c) upvar where the frame index is not known at - compile time. - * generic/tclCompExpr.c (ParseExpr): Plugged a memory leak when - parsing expressions that contain syntax errors. - * generic/tclEnv.c (ReplaceString): Clear memory correctly when - growing the cache to avoid reads of uninitialised data. - * generic/tclIORChan.c (TclChanCreateObjCmd, FreeReflectedChannel): - Plugged two memory leaks. - * generic/tclStrToD.c (AccumulateDecimalDigit): Fixed a mistake where - we'd run beyond the end of the 'pow10_wide' array if a number begins - with a string of more than 'maxpow10_wide' zeroes. - * generic/tclTest.c (Testregexpobjcmd): Removed an invalid access - beyond the end of 'objv' in 'testregexp -about'. - All of these issues reported under [Bug 1705778] - detected with the - existing test suite, no new regression tests required. - -2007-04-22 Miguel Sofer <msofer@users.sf.net> - - * generic/tclVar.c (TclDeleteNamespaceVars): fixed access to freed - memory detected by valgrind: Tcl_GetCurrentNamespace was being - called after freeing root CallFrame (on interp deletion). - -2007-04-20 Miguel Sofer <msofer@users.sf.net> - - * generic/tclListObj.c (SetListFromAny): avoid discarding internal - reps of objects converted to singleton lists. [Patch 738900] - -2007-04-20 Kevin B. Kenny <kennykb@acm.org> - - * doc/clock.n: Corrected a silly error (transposed 'uppercase' and - 'lowercase' in clock.n. [Bug 1656002] - Clarified that [clock scan] does not recognize a locale's alternative - calendar. - Deleted an entirely superfluous (and also incorrect) remark about the - effect of Daylight Saving Time on relative times in [clock scan]. [Bug - 1582951] - * library/clock.tcl: Corrected an error in skipping over the %Ey field - on input. - * library/msgs/ja.msg: - * tools/loadICU.tcl: Corrected several localisation faults in the - Japanese locale (most notably, incorrect dates for the Emperors' - eras). [Bug 1637471]. Many thanks to SourceForge user 'nyademo' for - pointing this out and developing a fix. - * generic/tclPathObj.c: Corrected a 'const'ness fault that caused - bitter complaints from MSVC. - * tests/clock.test (clock-40.1, clock-58.1, clock-59.1): Corrected a - test case that depended on ":localtime" being able to handle dates - prior to the Posix epoch. [Bug 1618445] Added a test case for the - dates of the Japanese emperors. [Bug 1637471] Added a regression test - for military time zone input conversion. [Bug 1586828] - * generic/tclGetDate.y (MilitaryTable): Fixed an ancient bug where the - military NZA time zones had the signs reversed. [Bug 1586828] - * generic/tclDate.c: Regenerated. - * doc/Notifier.3: Documented Tcl_SetNotifier and Tcl_ServiceModeHook. - Quite against my better judgment. [Bug 414933] - * generic/tclBasic.c, generic/tclCkalloc.c, generic/tclClock.c: - * generic/tclCmdIL.c, generic/tclCmdMZ.c, generic/tclFCmd.c: - * generic/tclFileName.c, generic/tclInterp.c, generic/tclIO.c: - * generic/tclIOUtil.c, generic/tclNamesp.c, generic/tclObj.c: - * generic/tclPathObj.c, generic/tclPipe.c, generic/tclPkg.c: - * generic/tclResult.c, generic/tclTest.c, generic/tclTestObj.c: - * generic/tclVar.c, unix/tclUnixChan.c, unix/tclUnixTest.c: - * win/tclWinLoad.c, win/tclWinSerial.c: Replaced commas in varargs - with string concatenation where possible. [Patch 1515234] - * library/tzdata/America/Tegucigalpa: - * library/tzdata/Asia/Damascus: Olson's tzdata 2007e. - -2007-04-19 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> - - * generic/regcomp.c, generic/regc_cvec.c, generic/regc_lex.c, - * generic/regc_locale.c: Improve the const-correctness of the RE - compiler. + * tests/winDde.test: + * win/tclWinDde.c (Tcl_DdeObjCmd): Prevent crash when empty service + name is passed to 'dde eval' and goto errorNoResult in request and + poke error cases to free up any allocated data. + +2003-01-16 Mo DeJong <mdejong@users.sourceforge.net> + + * win/tclWin32Dll.c (squelch_warnings): Squelch compiler warnings from + SEH ASM code. + * win/tclWinChan.c (squelch_warnings): Squelch compiler warnings from + SEH ASM code. + * win/tclWinDde.c: Add casts to avoid compiler warnings. Pass pointer + to DWORD instead of int to avoid compiler warnings. + * win/tclWinFCmd.c (squelch_warnings): Add casts and fixup decls to + avoid compiler warnings. Squelch compiler warnings from SEH ASM code. + * win/tclWinFile.c: Add casts and fixup decls to avoid compiler + warnings. Remove unused variable. + * win/tclWinNotify.c: Declare as DWORD instead of int to avoid + compiler warning. + * win/tclWinReg.c: Add casts to avoid compiler warning. Fix assignment + in if expression bug. + * win/tclWinSerial.c: Add casts to avoid compiler warnings. Remove + unused variable. + * win/tclWinSock.c: Add casts and fixup decls to avoid compiler + warnings. + +2003-01-14 Jeff Hobbs <jeffh@ActiveState.com> + + * generic/tclClock.c (FormatClock): corrected typo that incorrectly + conditionally defined savedTZEnv and savedTimeZone. + +2003-01-13 Mo DeJong <mdejong@users.sourceforge.net> + + Fix mingw build problems and compiler warnings. + + * generic/tcl.h: Add if defined(__MINGW32__) check to code that sets + the TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER. + * generic/tclClock.c (FormatClock): Don't define savedTimeZone and + savedTZEnv if we are not going to use them. + * generic/tclEnv.c: Add cast to avoid warning. + * win/tclWinChan.c: Use DWORD instead of int to avoid compiler warning + * win/tclWinThrd.c: Only define allocLock, allocLockPtr, and dataKey + when TCL_THREADS is defined. This avoid a compiler warning about + unused variables. + +2003-01-12 Mo DeJong <mdejong@users.sourceforge.net> + + * win/README: Update msys + mingw URL, the new release includes the + released 1.0.8 version of msys which includes a number of bug fixes. + +2003-01-12 Mo DeJong <mdejong@users.sourceforge.net> + + * win/configure: Regen. + * win/tcl.m4 (SC_CONFIG_CFLAGS): Pull in addition of shell32.lib to + LIBS_GUI that was added to the Tk tcl.m4 but never made it back into + the Tcl version. + +2003-01-12 Mo DeJong <mdejong@users.sourceforge.net> + + * generic/tcl.h: Skip Tcl's define of CHAR, SHORT, and LONG when + HAVE_WINNT_IGNORE_VOID is defined. This avoids a bunch of compiler + warnings when building with Cygwin or Mingw. + * win/configure: Regen. + * win/configure.in: Define HAVE_WINNT_IGNORE_VOID when we detect a + winnt.h that still defines CHAR, SHORT, and LONG when VOID has already + been defined. + * win/tcl.m4 (SC_LOAD_TCLCONFIG): Subst the TCL_DEFS loaded from + tclConfig.sh so that Tcl defines can make it into the Tk Makefile. + +2003-01-12 Mo DeJong <mdejong@users.sourceforge.net> + + * win/configure: Regen. + * win/configure.in: Check for typedefs like LPFN_ACCEPT in winsock2.h + and define HAVE_NO_LPFN_DECLS if not found. + * win/tclWinSock.c: Define LPFN_* typedefs if HAVE_NO_LPFN_DECLS is + defined. This fixes the build under Mingw and Cygwin, it was broken by + the changes made on 2002-11-26. + +2003-01-10 Vince Darley <vincentdarley@users.sourceforge.net> -2007-04-18 Miguel Sofer <msofer@users.sf.net> + * generic/tclIOUtil.c: + * win/tclWinInt.h: + * win/tclWinInit.c: fix to new WinTcl crash on exit with vfs, + introduced on 2002-12-06. Encodings must be cleaned up after the + filesystem. - * generic/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. + * win/makefile.vc: fix to minor VC++ 5.2 syntax problem - * 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) +2003-01-09 Don Porter <dgp@users.sourceforge.net> - * generic/tclExecute.c: slight changes in Tcl_Obj management. + * generic/tclCompCmds.c (TclCompilerReturnCmd): Corrected off-by-one + problem with recent commit. [Bug 633204] -2007-04-17 Kevin B. Kenny <kennykb@acm.org> +2003-01-09 Vince Darley <vincentdarley@users.sourceforge.net> - * 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] + * generic/tclFileName.c: remove unused variable 'macSpecialCase' [Bug + 664749] -2007-04-17 Miguel Sofer <msofer@users.sf.net> + * generic/tclIOUtil.c: + * generic/tclInt.h: + * unix/tclUnixFile.c: + * mac/tclMacFile.c: + * win/tclWinFile.c: + * win/tclWinInt.h: + * win/tclWin32Dll.c: + * tests/cmdAH.test: fix to non-ascii chars in paths when setting mtime + and atime through 'file (a|m)time $path $time'. [Bug 634151] - * generic/tclExecute.c: fixed checkInterp logic [Bug 1702212] +2003-01-08 Don Porter <dgp@users.sourceforge.net> -2007-04-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tclExecute.c (TclExprFloatError): Use the IS_NAN macro for + greater clarity of code. - * various (including generic/tclTest.c): Complete the purge of K&R - function definitions from manually-written code. +2003-01-07 Don Porter <dgp@users.sourceforge.net> -2007-04-15 Kevin B. Kenny <kennykb@acm.org> + * generic/tclCompCmds.c (TclCompileReturnCmd): + * tests/compile.test: Corrects failure of bytecompiled [catch + {return}] to have result TCL_RETURN (not TCL_OK) [Bug 633204]. This + patch is a workaround for 8.4.X. A new opcode INST_RETURN is a better + long term solution for 8.5 and later. - * generic/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. +2003-01-04 David Gravereaux <davygrvy@pobox.com> -2007-04-14 Miguel Sofer <msofer@users.sf.net> + * win/makefile.vc: + * win/rules.vc: Fixed INSTALLDIR macro problem that blanked itself by + accident causing the install target to put the tree at the root of the + drive built on. Whoops.. - * generic/tclExecute.c: removed some code at INST_EXPAND_SKTOP that - duplicates functionality already present at checkForCatch. + Renamed the 'linkexten' option to be 'staticpkg'. Added 'thrdalloc' to + allow the switching _on_ of the thread allocator. Under testing, I + found it not to be benificial under windows for the purpose of the + application I was using it for. It was more important for this app + that resources for tcl threads be returned to the system rather than + saved/moved to the global recycler. Be extra clean or extra fast for + the default threaded build? Let's move to clean and allow it to be + switched on for users who find it benificial for their use of threads. -2007-04-12 Miguel Sofer <msofer@users.sf.net> +2002-12-18 David Gravereaux <davygrvy@pobox.com> - * 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). + * win/makefile.vc: some uses of xcopy swapped to the @$(CPY) macro. + Reported by Joe Mistachkin <joe@mistachkin.com>. -2007-04-11 Miguel Sofer <msofer@users.sf.net> +2002-12-17 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclCompCmds.c: moved all exceptDepth management to the - macros - the decreasing half was managed by hand. + * generic/tclNotify.c (TclFinalizeNotifier, Tcl_SetServiceMode): + (Tcl_ThreadAlert): Check that the stub functions are non-NULL before + calling them. They could be set to NULL by Tcl_SetNotifier. -2007-04-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2002-12-16 David Gravereaux <davygrvy@pobox.com> - * 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). + * generic/tclPipe.c (TclCleanupChildren): + * tests/winPipe.test: + * win/tclWinPipe.c (Tcl_WaitPid): + * win/tclWinTest.c: Gave Tcl_WaitPid the ability to return a Win32 + exception code translated into a posix style SIG*. This allows [close] + to report "CHILDKILLED" without the meaning getting lost in a + truncated exit code. In TclCleanupChildren(), TclpGetPid() had to get + moved to before Tcl_WaitPid() as the the handle is removed from the + list taking away the ability to get the process id after the wait is + done. This shouldn't effect the unix implimentaion unless waitpid is + called with a pid of zero, meaning "any". I don't think it is.. -2007-04-08 Miguel Sofer <msofer@users.sf.net> +2002-12-13 Don Porter <dgp@users.sourceforge.net> - * generic/tclCompile (tclInstructionTable): Fixed bugs in description - of dict instructions. + * unix/configure.in: Updated configure of CVS snapshots to reflect + * win/configure.in: the 8.4.1.1 patchlevel. -2007-04-07 Miguel Sofer <msofer@users.sf.net> + * unix/configure: autoconf + * win/configure autoconf - * generic/tclCompile (tclInstructionTable): Fixed bug in description - of INST_START_COMMAND. +2002-12-11 Don Porter <dgp@users.sourceforge.net> - * generic/tclExecute.c (TEBC): Small code reduction. + * generic/tclProc.c (ProcessProcResultCode): Fix failure to propagate + negative return codes up the call stack. [Bug 647307] + * tests/proc.test (proc-6.1): Test for Bug 647307 -2007-04-06 Miguel Sofer <msofer@users.sf.net> + * generic/tclParseExpr.c (TclParseInteger): Return 1 for the + string "0x" (recognize leading "0" as an integer). [Bug 648441]. + * tests/parseExpr.test (parseExpr-19.1): Test for Bug 648441. - * 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). +2002-12-09 Jeff Hobbs <jeffh@ActiveState.com> -2007-04-03 Miguel Sofer <msofer@users.sf.net> + * win/tclWinThrd.c (TclpMasterUnlock): + * generic/tclThread.c (TclFinalizeThreadData): TclpMasterUnlock must + exist and be called unconditional of TCL_THREADS. [Bug 651139] - * generic/tclExecute.c: INST_INVOKE optimisation. [Patch 1693802] +2002-12-08 David Gravereaux <davygrvy@pobox.com> -2007-04-03 Don Porter <dgp@users.sourceforge.net> + * win/tclWinSock.c (SocketThreadExitHandler, InitSockets): Check that + the tsdPtr is valid before dereferencing as we call it from the exit + handler, too [Bug 650353]. Another WSAStartup() loaded version + comparison byte swap issue fixed. Although 0x0101 byte swapped is + still 0x0101, properly claiming which is major/minor is more correct. - * generic/tclNamesp.c: Revised ErrorCodeRead and ErrorInfoRead trace - routines so they guarantee the ::errorCode and ::errorInfo variable - always appear to exist. [Bug 1693252] +2002-12-06 Jeff Hobbs <jeffh@ActiveState.com> -2007-04-03 Miguel Sofer <msofer@users.sf.net> + * generic/tclStubInit.c: regen + * generic/tclIntPlatDecls.h: regen + * generic/tclInt.decls: added TclWinResetInterface - * generic/tclInt.decls: Moved TclGetNamespaceFromObj() to the - * generic/tclInt.h: internal stubs table; regen. - * generic/tclIntDecls.h: - * generic/tclStubInit.c: + * win/tclWin32Dll.c (TclWinResetInterfaces): + * win/tclWinInit.c (TclpSetInitialEncodings, WinEncodingsCleanup): + add exit handler that resets the encoding information to a state where + we can reuse Tcl. Following these changes, it is possible to reuse Tcl + (following Tcl_FindExecutable or Tcl_CreateInterp) following a + Tcl_Finalize. -2007-04-02 Miguel Sofer <msofer@users.sf.net> + * generic/tclIOUtil.c (TclFinalizeFilesystem): reset statics to their + original values on finalize to allow reuse of the library. - * generic/tclBasic.c: Added bytecode compilers for the variable - * generic/tclCompCmds.c: linking commands: 'global', 'variable', - * generic/tclCompile.h: 'upvar', 'namespace upvar' [Patch 1688593] - * generic/tclExecute.c: - * generic/tclInt.h: - * generic/tclVar.c: +2002-12-04 David Gravereaux <davygrvy@pobox.com> -2007-04-02 Don Porter <dgp@users.sourceforge.net> + * win/tclWinPipe.c: reverted back to -r1.27 due to numerous test + failures that need to be resolved first. The idea was good, but the + details aren't. - * generic/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: +2002-12-04 David Gravereaux <davygrvy@pobox.com> -2007-04-01 Donal K. Fellows <dkf@users.sf.net> + * win/tclWinPipe.c (Tcl_WaitPid): When a process exits with an + exception, pass this notice on to the caller with a SIG* code rather + than truncating the exit code and missing the meaning. This allows + TclCleanupChildren() to report "CHILDKILLED". - * 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.) + This has a different behavior than unix in that closing the read pipe + to a process sends the SIGPIPE signal which is returned as a SIGPIPE + exit status. On windows, we send the process a CTRL_BREAK_EVENT and + get back a CONTROL_C_EXIT which is documented to mean a SIGINT which + seems wrong as a system, but is the correct exit status. -2007-03-30 Don Porter <dgp@users.sourceforge.net> +2002-12-04 Vince Darley <vincentdarley@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/tclIOUtil.c: fix to redirected 'load' in virtual filesystem + for some Unix systems. - * generic/tclCmdMZ.c: Revised [string to* $s $first $last] - implementation to reduce number of allocs/copies. + * generic/tclEvent.c: the filesystem must be cleaned up before the + encoding subsystem because it needs access to encodings. Fixes crash + on exit observed in embedded applications. - * tests/string.test: More [string reverse] tests. + * generic/tclTestObj.c: patch omitted from previous change of + 2002-11-13 -2007-03-30 Miguel Sofer <msofer@users.sf.net> +2002-12-03 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclExecute.c: optimise the lookup of elements of indexed - arrays. + * generic/tclStubLib.c (Tcl_InitStubs): prevent the cached check of + tclStubsPtr to allow for repeated load/unload of the Tcl dll by + hosting apps. [Bug 615304] -2007-03-29 Miguel Sofer <msofer@users.sf.net> +2002-12-03 David Gravereaux <davygrvy@pobox.com> - * 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. + * win/tclAppInit.c (sigHandler): Protect from trying to close a NULL + handle. -2007-03-28 Don Porter <dgp@users.sourceforge.net> + * win/tclWinPipe.c (PipeClose2Proc, TclpCreateProcess): Send a real + Win32 signal (CTRL_C_EVENT) when the read channel is brought down to + alert the child to close on its side. Start the process with + CREATE_NEW_PROCESS_GROUP to allow the ability to send these signals. + The following test case now brings down the child without the use of + an external [kill] command. - * generic/tclCmdMZ.c (STR_REVERSE): Implement the actual [string - reverse] command in terms of the new TclStringObjReverse() routine. + % set p [open "|[info name]" w+] + file8d5380 + % pid $p + 2876 + % close $p <- now doesn't block in Tcl_WaitPid() + % - * 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. + * win/tclWinPipe.c (PipeClose2Proc): Changed CTRL_C_EVENT to + CTRL_BREAK_EVENT as it can't be ignored by the child and proved to + work on [open "|netstat 1" w+] where CTRL_C_EVENT didn't. -2007-03-27 Don Porter <dgp@users.sourceforge.net> +2002-11-27 David Gravereaux <davygrvy@pobox.com> - * generic/tclCmdMZ.c (STR_MAP): Replace ckalloc calls with - TclStackAlloc calls. + * win/tclWinPort.h: Don't turn off winsock prototypes! TclX didn't + like it. Even though the core doesn't use the prototypes, do offer + them. -2007-03-24 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * win/tclWinSock.c: Removed shutdown() from the function table as it + wasn't referenced anywhere and cleaned-up some casting that that + wasn't needed. - * 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. + * win/tclWinSock.c: WSAStartup() loaded version comparison error which + resulted in 2.0 looking less than 1.1. -2007-03-23 Miguel Sofer <msofer@users.sf.net> + * win/tclWinChan.c (Tcl_MakeFileChannel): return of DuplicateHandle() + incorrectly used [Bug 618852]. - * generic/tclBasic.c (DeleteInterpProc): pop the root frame pointer - before deleting the global namespace [Bug 1658572] +2002-11-26 Jeff Hobbs <jeffh@ActiveState.com> -2007-03-23 Kevin B. Kenny <kennykb@acm.org> + * generic/tclEncoding.c (TclFinalizeEncodingSubsystem): properly + cleanup all encodings by using Tcl_FirstHashEntry in the while loop. - * win/Makefile.in: Added code to keep a Cygwin path name from leaking - into LIBRARY_DIR when doing 'make test' or 'make runtest'. + * unix/Makefile.in (valgrind): add simple valgrind target -2007-03-22 Don Porter <dgp@users.sourceforge.net> + * tests/exec.test: unset path var to allow singleproc testing - * 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/tclInterp.c (AliasCreate): preserve/release interps to + prevent possible FMR error in bad alias cases. - * 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. +2002-11-26 David Gravereaux <davygrvy@pobox.com> -2007-03-21 Don Porter <dgp@users.sourceforge.net> + * win/tclWinPort.h: + * win/tclWinSock.c: This patch does two things: - * 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: + 1) Cleans-up the winsock typedefs by using the typedefs provided by + winsock2.h. This has no effect on how winsock is initialized; just + makes the source code easier to read. [Patch 561305, 561301] -2007-03-20 Don Porter <dgp@users.sourceforge.net> + 2) Revamps how the socket message handler thread is brought up and + down to allow for cleaner exits without the use of TerminateThread(). + TerminateThread is evil. No attempt has been made to resolve [Bug + 593810] which may need a new channel driver version for adding a + registering function within the transfered thread to init the handler + thread. IOW, initialization of the TSD structure is getting bypassed + through the thread extension's [thread::transfer] command. - * generic/tclEnv.c: Some more ckalloc -> ckrealloc replacements. - * generic/tclLink.c: +2002-11-26 David Gravereaux <davygrvy@pobox.com> -2007-03-20 Kevin B. Kenny <kennykb@acm.org> + * win/tclWinConsole.c: + * win/tclWinPipe.c: + * win/tclWinSerial.c: + * win/tclWinSock.c: + * win/tclWinThrd.c: + * win/tclWinTime.c: General cleanup of all worker threads used by the + channel drivers. Eliminates the normal case where the worker thread is + terminated ('cept the winsock one). Instead, use kernel events to + signal a clean exit. Only when the worker thread is blocked on an I/O + call is the thread terminated. Essentially, this makes all other + channel worker threads behave like the PipeReaderThread() function for + it's cleaner exit behavior. This appears to fix [Bug 597924] but needs + 3rd party confirmation to close the issue. - * 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." +2002-11-26 Mo DeJong <mdejong@users.sourceforge.net> - * 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. + * win/README: Update msys build env URL. This release #4 build both + tcl and tk without problems. - * 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] +2002-11-22 Jeff Hobbs <jeffh@ActiveState.com> -2007-03-19 Don Porter <dgp@users.sourceforge.net> + * library/init.tcl: code cleanup to reduce use of + * library/opt/optparse.tcl: string compare - * generic/tclCompile.c: Revise the various expansion routines for - CompileEnv fields to use ckrealloc() where appropriate. + * tests/interp.test: interp-14.4 + * generic/tclInterp.c (TclPreventAliasLoop): prevent seg fault when + creating an alias command over the interp name. [Bug 641195] - * generic/tclBinary.c (Tcl_SetByteArrayLength): Replaced ckalloc() / - memcpy() sequence with ckrealloc() call. +2002-11-18 Jeff Hobbs <jeffh@ActiveState.com> - * 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. + * generic/tclUtil.c (SetEndOffsetFromAny): handle integer offset + after the "end-" prefix. -2007-03-19 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/get.test: + * generic/string.test: + * generic/tclObj.c (SetIntFromAny, SetWideIntFromAny): + * generic/tclGet.c (TclGetLong, Tcl_GetInt): simplify sign handling + before calling strtoul(l). [Bug 634856] - * 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. +2002-11-18 David Gravereaux <davygrvy@pobox.com> -2007-03-17 Kevin B. Kenny <kennykb@acm.org> + * win/tclWinThrd.c (Tcl_CreateThread/TclpThreadExit): Fixed improper + compiler macros that missed the VC++ compiler. This resulted in VC++ + builds using CreateThread()/ExitThread() in place of the proper + _beginthreadex()/_endthreadex(). This was a large error and am + surprised I missed seeing it earlier. - * 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. +2002-11-13 Jeff Hobbs <jeffh@ActiveState.com> -2007-03-15 Mo DeJong <mdejong@users.sourceforge.net> + * generic/regexpComp.test: added tests 22.* + * generic/tclCompCmds.c (TclCompileRegexpCmd): add left and right + anchoring (^ and $) recognition and check starting or ending .* to + extend the number of REs that can be compiled to string match or + string equal. - * 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. +2002-11-13 Vince Darley <vincentdarley@users.sourceforge.net> -2007-03-15 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclCmdMZ.c: + * tests/trace.test: applied patch from Hemang Levana to fix [Bug + 615043] in execution traces with 'return -code error'. - * win/Makefile.in: Fully qualify LIBRARY_DIR so that `make test` does - not depend on working dir. + * generic/tclTestObj.c: + * tests/stringObj.test: added 'knownBug' test for [Bug 635200] + * generic/tclStringObj.c: corrected typos in comments -2007-03-15 Mo DeJong <mdejong@users.sourceforge.net> + * generic/tclFileName.c: + * tests/fileName.test: applied patch for bug reported against tclvfs + concerning handling of Windows serial ports like 'com1', 'lpt3' by the + virtual filesystem code. - * tests/parse.test: Add two backslash newline parse tests. + * doc/RegExp.3: clarification of the 'extendMatch' return values. -2007-03-12 Don Porter <dgp@users.sourceforge.net> +2002-11-11 Jeff Hobbs <jeffh@ActiveState.com> - * 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] + * generic/tclUtil.c (Tcl_Backslash): use TclUtfToUniChar. + (Tcl_StringCaseMatch): use TclUtfToUniChar and add further + optimizations for the one-byte/char case. - * 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] + * generic/tclUtf.c: make use of TclUtfToUniChar macro throughout the + functions, and add extra optimization to Tcl_NumUtfChars for + one-byte/char case. - * 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] + * generic/tclVar.c (DisposeTraceResult, CallVarTraces): add proper + static declarations. - * 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] + * generic/tclStringObj.c (Tcl_GetCharLength): optimize for the ascii + char case. + (Tcl_GetUniChar): remove unnecessary use of Tcl_UtfToUniChar. + (FillUnicodeRep): Use TclUtfToUniChar. -2007-03-12 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclHash.c (HashStringKey): move string++ lower to save an + instruction. - * generic/tclCmdIL.c (Tcl_LsortObjCmd): Fix problems with declaration - positioning and memory leaks. [Bug 1679072] + * generic/tclExecute.c (TclExecuteByteCode): improve INST_STR_CMP to + use memcmp in the one-byte/char case, also use direct index for + INST_STR_INDEX in that case. -2007-03-11 Donal K. Fellows <dkf@users.sf.net> + * generic/tclEncoding.c (UtfToUtfProc, UtfToUnicodeProc): + (TableFromUtfProc, EscapeFromUtfProc): Use TclUtfToUniChar. + (UnicodeToUtfProc, TableToUtfProc): add 1-byte char optimizations + for Tcl_UniCharToUtf call. These improve encoded channel conversion + speeds by up to 20%. - * 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] + * tests/split.test: added 1-char string split tests + * generic/tclCmdMZ.c (Tcl_SplitObjCmd): Use TclUtfToUniChar. Also + added a special case for single-ascii-char splits. + (Tcl_StringObjCmd): Use TclUtfToUniChar. For STR_RANGE, support + getting ranges of ByteArrays (reverts change from 2000-05-26). + (TraceExecutionProc) add proper static declaration. -2007-03-10 Miguel Sofer <msofer@users.sf.net> + * generic/tclInt.h: add macro version of Tcl_UtfToUniChar + (TclUtfToUniChar) that does the one-byte utf-char check without + calling Tcl_UtfToUniChar, for use by the core. This brings notable + speedups for primarily ascii string handling. - * generic/tclCmdIL (Tcl_LsortObjCmd): changed fix to [Bug 1675116] to - use the cheaper TclListObjCopy() instead of Tcl_DuplicateObj(). + * generic/tcl.h (TCL_PATCH_LEVEL): bump to 8.4.1.1 for patchlevel + only. This interim number will only be reflected by [info patchlevel] -2007-03-09 Andreas Kupries <andreask@activestate.com> +2002-11-11 Kevin Kenny <kennykb@acm.org> - * 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. + * doc/Tcl.n: Corrected indentation of the new language. Oops. -2007-03-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2002-11-10 Kevin Kenny <kennykb@acm.org> - * 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] + * doc/Tcl.n: Added language to the Endekalogue to make it clear that + substitutions always take place from left to right. [Bug 635644] -2007-03-09 Kevin B. Kenny <kennykb@acm.org> +2002-11-06 Mo DeJong <mdejong@users.sourceforge.net> - * 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. + * changes: Note TclInExit TclInThreadExit changes. + * generic/tclEvent.c (TclInExit, TclInThreadExit): + Split out functionality of TclInExit to make it clear which one should + be called in each situation. + * generic/tclInt.decls: Declare TclInThreadExit. + * generic/tclIntDecls.h: Regen. + * generic/tclStubInit.c: Regen. + * mac/tclMacChan.c (StdIOClose): + * unix/tclUnixChan.c (FileCloseProc): + * win/tclWinChan.c (FileCloseProc): + * win/tclWinConsole.c (ConsoleCloseProc): + * win/tclWinPipe.c (TclpCloseFile): + * win/tclWinSerial.c (SerialCloseProc): Invoke the new TclInThreadExit + method instead of TclInExit. -2007-03-08 Don Porter <dgp@users.sourceforge.net> +2002-11-06 Mo DeJong <mdejong@users.sourceforge.net> - * 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. + * unix/configure: Regen. + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Generate a fatal configure error if + no ar program can be found on the path. [Bug 582039] + * win/configure: Regen. + * win/configure.in: Check that AR, RANLIB, and RC are found on the + path when building with gcc. -2007-03-08 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2002-11-03 David Gravereaux <davygrvy@pobox.com> - * 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. + * win/tclAppInit.c: Calls Registry_Init() and Dde_Init() when + STATIC_BUILD and TCL_USE_STATIC_PACKAGES macros are set. -2007-03-08 Kevin B. Kenny <kennykb@acm.org> + * win/makefile.vc: + * win/rules.vc: linkexten option now sets the TCL_USE_STATIC_PACKAGES + macro which also adds the registry and dde object files to the link + of the shell. [Patch 479697] Also factored some additional macros + that will be helpful for extension authors. Version grepping of tcl.h + will need to be added to complete this. - * 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. + * win/buildall.vc.bat: Added more descriptive commentary. -2007-03-07 Daniel Steffen <das@users.sourceforge.net> +2002-11-01 David Gravereaux <davygrvy@pobox.com> - * macosx/tclMacOSXNotify.c: add spinlock debugging and sanity checks. + * win/tclWinReg.c: Changed the Tcl_PkgProvide() line to declare the + registry extension at version 1.1 from 1.0. - * 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. +2002-10-31 Andreas Kupries <andreask@activestate.com> - * unix/tcl.m4 (Darwin): s/CFLAGS/CPPFLAGS/ in macosx-version-min check - * unix/configure: autoconf-2.59 + * library/word.tcl: Changed $tcl_platform to $::tcl_platform to avoid + possible scope trouble. -2007-03-07 Don Porter <dgp@users.sourceforge.net> +2002-10-29 Vince Darley <vincentdarley@users.sourceforge.net> - * generic/tclCmdIL.c (TclLindex*): Rewrites to make efficient - private copies of the list and indexlist arguments, so we can operate - on the list elements directly with no fear of shimmering effects. - Replaces defensive coding schemes that are otherwise required. End - result is that TclLindexList is entirely a wrapper around - TclLindexFlat, which is now the core engine of all [lindex] - operations. + * win/tclWinInt.h: + * win/tclWin32Dll.c: added comments about certain NULL function + pointers which will be filled in when Tcl_FindExecutable is called, so + that users don't report invalid bugs on this topic. (No code changes + at all). - * generic/tclObj.c (Tcl_AppendAllObjTypes): Converted to simpler - list validity test. +2002-10-29 Daniel Steffen <das@users.sourceforge.net> -2007-03-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * unix/tclLoadDyld.c (TclpFindSymbol): pass all dyld error messages + upstream [Bug 627546]. - * generic/tclRegexp.c (TclRegAbout): Generate information about a - regexp as a Tcl_Obj instead of as a string, which is more efficient. +2002-10-28 Andreas Kupries <andreask@activestate.com> -2007-03-07 Kevin B. Kenny <kennykb@acm.org> + * library/dde/pkgIndex.tcl: + * library/reg/pkgIndex.tcl: Changed the hardwired debug suffix (d) to + the correct suffix (g). - * library/clock.tcl: Adjusted Windows time zone table to handle new US - DST rules by locale rather than as Posix time zone spec. - * tests/clock.test (clock-39.6, clock-49.2, testclock::registry): - Adjusted tests to simulate new US rules. - * library/tzdata/America/Indiana/Winamac: - * library/tzdata/Europe/Istanbul: - * library/tzdata/Pacific/Easter: - Olson's tzdata2007c. +2002-10-28 Don Porter <dgp@users.sourceforge.net> -2007-03-05 Andreas Kupries <andreask@activestate.com> + * library/auto.tcl: Converted the Mac-specific [package unknown] + * library/init.tcl: behavior to use a chaining mechanism to extend + * library/package.tcl: the default [tclPkgUnknown]. [Bug 627660] + * library/tclIndex: [Patch 624509] (steffen) - * 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. +2002-10-26 David Gravereaux <davygrvy@pobox.com> -2007-03-03 Donal K. Fellows <dkf@users.sf.net> + * win/makefile.vc: xcopy on NT 4.0 doesn't support the /Y switch + (overwrite). Added logic to handle this. [Bug 618019] - * generic/tclLink.c (LinkedVar): Added macro to conceal at least some - of the pointer hackery. +2002-10-23 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-03-02 Don Porter <dgp@users.sourceforge.net> + * generic/tclInt.h: Removed definitions of obsolete HistoryEvent and + HistoryRev structures (the history mechanism has been written in Tcl + for some time now). - * generic/tclCmdIL.c (Tcl_LreverseObjCmd): Added missing - TclInvalidateStringRep() call when we directly manipulate the intrep - of an unshared "list" Tcl_Obj. [Bug 1672585] +2002-10-22 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclCmdIL.c (Tcl_JoinObjCmd): Revised [join] implementation - to append Tcl_Obj's instead of strings. [RFE 1669420] + *** 8.4.1 TAGGED FOR RELEASE *** - * generic/tclCmdIL.c (Info*Cmd): Code simplifications and - optimizations. + * changes: updated for 8.4.1 release -2007-03-02 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * win/Makefile.in: removed @MEM_DEBUG_FLAGS@ subst. + * win/configure: regen + * win/configure.in: removed SC_ENABLE_MEMDEBUG call + * win/tcl.m4: replaced SC_ENABLE_MEMDEBUG with a more intelligent + SC_ENABLE_SYMBOLS that takes yes|no|mem|compile|all as options now. - * generic/tclCompile.c (TclPrintInstruction): Added a scheme to allow - * generic/tclCompile.h (AuxDataPrintProc): aux-data to be printed - * generic/tclCompCmds.c (Print*Info): out for debugging. For - this to work, immediate operands referring to aux-data must be - identified as such in the instruction descriptor table using - OPERAND_AUX4 (all are always 4 bytes). +2002-10-22 Daniel Steffen <das@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] + * library/auto.tcl (tcl_findLibrary): + * library/package.tcl (tclPkgUnknown): on macosx, search inside the + Resources/Scripts subdirectory of any potential package directory + * macosx/Tcl.pbproj/project.pbxproj: add standard Frameworks dirs to + TCL_PACKAGE_PATH make argument. + * unix/tclUnixInit.c (TclpSetVariables): on macosx, add embedded + framework dirs to tcl_pkgPath: @executable_path/../Frameworks and + @executable_path/../PrivateFrameworks (if they exist), as well as the + dirs in DYLD_FRAMEWORK_PATH (if set). [Patch 624509] use standard + MAXPATHLEN instead of literal 1024 -2007-03-01 Don Porter <dgp@users.sourceforge.net> +2002-10-22 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclCmdIL.c (Tcl_LinsertObjCmd): Code simplifications - and optimizations. + * doc/StringObj.3, doc/Object.3: Documented that Tcl_Obj's + standard string form is a modified UTF-8; apparently, this was not + mentioned anywhere in the main docs, and lead to [Bug 624919]. - * generic/tclCmdIL.c (Tcl_LreplaceObjCmd): Code simplifications - and optimizations. +2002-10-21 Daniel Steffen <das@users.sourceforge.net> - * generic/tclCmdIL.c (Tcl_LrangeObjCmd): Rewrite in the same - spirit; avoid shimmer effects rather than react to them. + * macosx/Tcl.pbproj/project.pbxproj: bumped version to 8.4.1 + * generic/tcl.h: Added reminder comment to edit + macosx/Tcl.pbproj/project.pbxproj when version number changes. - * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Stop throwing away - * tests/foreach.test (foreach-1.14): useful error information when - loop variable sets fail. +2002-10-18 Jeff Hobbs <jeffh@ActiveState.com> - * 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. + * library/reg/pkgIndex.tcl: + * win/configure: + * win/configure.in: + * win/Makefile.in: + * win/makefile.vc: + * win/makefile.bc: Updated to reg1.1 - * 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/registry.n: Added support for broadcasting changes to the + * tests/registry.test: registry Environment. Noted proper code in ths + * win/tclWinReg.c: docs. [Patch 625453] -2007-03-01 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * unix/Makefile.in (dist): add any mac/tcl*.sea.hqx files - * 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] +2002-10-17 Don Porter <dgp@users.sourceforge.net> -2007-02-26 Andreas Kupries <andreask@activestate.com> + * generic/tclVar.c: Fixed code that check for proper # of args to + * tests/var.test: [array names]. Added test. [Bug 624755] - * generic/tclIORChan.c (FreeReflectedChannel): Added the missing - refcount release between NewRC and FreeRC for the channel handle - object, spotted by Don Porter. [Bug 1667990] +2002-10-16 Jeff Hobbs <jeffh@ActiveState.com> -2007-02-26 Don Porter <dgp@users.sourceforge.net> + * win/configure: add workaround for cygwin windres + * win/tcl.m4 (SC_CONFIG_CFLAGS): problem. [Patch 624010] (howell) - * 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. +2002-10-15 Jeff Hobbs <jeffh@ActiveState.com> -2007-02-24 Don Porter <dgp@users.sourceforge.net> + * README: added archives.tcl.tk note - * 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. + * unix/configure: + * unix/tcl.m4: Correct AIX-5 ppc build flags. Correct HP 11 64-bit gcc + building. [Patch 601051] (martin) - * 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. +2002-10-15 Vince Darley <vincentdarley@users.sourceforge.net> -2007-02-22 Andreas Kupries <andreask@activestate.com> + * generic/tclCmdMZ.c: + * tests/trace.test: applied patch from Hemang Levana to fix [Bug + 615043] in execution traces with idle tasks firing. - * 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. +2002-10-14 Jeff Hobbs <jeffh@ActiveState.com> -2007-02-20 Jan Nijtmans <nijtmans@users.sf.net> + * generic/tclEnv.c (Tcl_PutEnv): correct possible mem leak. + [Patch 623269] (brouwers) - * 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. +2002-10-11 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-02-20 Don Porter <dgp@users.sourceforge.net> + * generic/tcl.h: Need a different strategy through the maze of + #defines to let people building with Cygwin build correctly. Also + made some comments less misleading... - * doc/tcltest.n: Typo fix. [Bug 1663539] +2002-10-10 Jeff Hobbs <jeffh@ActiveState.com> -2007-02-20 Pat Thoyts <patthoyts@users.sourceforge.net> + * README: fixed minor nits [Bug 607776] (virden) - * 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. + * win/configure: + * win/tcl.m4: enable USE_THREAD_ALLOC (new threaded allocator) by + default in cygwin configure on Windows. -2007-02-19 Jeff Hobbs <jeffh@ActiveState.com> +2002-10-10 Don Porter <dgp@users.sourceforge.net> - * unix/tcl.m4: use SHLIB_SUFFIX=".so" on HP-UX ia64 arch. - * unix/configure: autoconf-2.59 + * doc/Tcl.n: Clarified that namespace separators are legal in + the variable names during $-subtitution. [Bug 615139] - * generic/tclIOUtil.c (Tcl_FSEvalFileEx): safe incr of objPtr ref. + * doc/regexp.n: Typo correction. Thanks Ronnie Brunner. [Bug 606826] -2007-02-18 Donal K. Fellows <dkf@users.sf.net> +2002-10-10 Vince Darley <vincentdarley@users.sourceforge.net> - * 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. + * unix/tclLoadAout.c + * unix/tclLoadDl.c + * unix/tclLoadDld.c + * unix/tclLoadDyld.c + * unix/tclLoadNext.c + * unix/tclLoadOSF.c + * unix/tclLoadShl.c + * win/tclWinLoad.c: allow either full paths or simply dll names to be + specified when loading files (the latter will be looked up by the OS + on your PATH/LD_LIBRARY_PATH as appropriate). Fixes [Bug 611108] - * 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. +2002-10-09 Jeff Hobbs <jeffh@ActiveState.com> -2007-02-13 Kevin B. Kenny <kennykb@acm.org> + * unix/README: doc'ed --enable-symbols options. + * unix/Makefile.in: removed @MEM_DEBUG_FLAGS@ subst. + * unix/configure: regen + * unix/configure.in: removed SC_ENABLE_MEMDEBUG call + * unix/tcl.m4: replaced SC_ENABLE_MEMDEBUG with a more intelligent + SC_ENABLE_SYMBOLS that takes yes|no|mem|compile|all as options now. - * 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. +2002-10-09 Kevin B. Kenny <kennykb@acm.org> -2007-02-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * win/tclWinTime.c: Added code to set an exit handler that terminates + the thread that calibrates the performance counter, so that the thread + won't outlive unloading the Tcl DLL. [Bug 620735]. - * doc/re_syntax.n: Corrected description of 'print' class [Bug - 1614687] and enhanced description of 'graph' class. +2002-10-09 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-02-12 Kevin B. Kenny <kennykb@acm.org> + * doc/binary.n: More clarification of [binary scan]'s behaviour. - * 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. +2002-10-09 Daniel Steffen <das@users.sourceforge.net> -2007-02-09 Joe Mistachkin <joe@mistachkin.com> + * generic/tclIntDecls.h: fixed botched regen. - * win/nmakehlp.c: Properly cleanup after nmakehlp, including the - * win/makefile.vc: vcX0.pch file. +2002-10-09 Daniel Steffen <das@users.sourceforge.net> -2007-02-08 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclInt.decls: made TclSetPreInitScript() declaration + generic as it is used on mac & aqua as well. + * generic/tclIntDecls.h: + * generic/tclStubInit.c: regen. + * generic/tclCompile.h: added prototype for TclCompileVariableCmd. - * unix/tclUnixInit.c (TclpCheckStackSpace): do stack size checks with - unsigned size_t to correctly validate stackSize in the 2^31+ range. - [Bug 1654104] + * mac/tclMacPort.h: removed incorrect <fcntl.h> definitions and + obsolete <stat.h> definitions. + * mac/tclMacChan.c: removed obsolete GetOpenMode() and replaced + associated constants with the <fcntl.h> analogues (they existing defs + were inconsistent with <fcntl.h> which was causing havoc when + Tcl_GetOpenMode was used instead of private GetOpenMode). -2007-02-08 Don Porter <dgp@users.sourceforge.net> + * mac/tclMacFCmd.c: removed GenerateUniqueName(), use equivalent (and + identically named) routine from MoreFiles instead. - * 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] + * mac/tclMacLoad.c: CONSTification, fixes to Vince's last changes. -2007-02-06 Don Porter <dgp@users.sourceforge.net> + * mac/tclMacFile.c: + * mac/tclMacTest.c: + * mac/tclMacUnix.c: CONSTification. - * generic/tclNamesp.c: Corrected broken implementation of the - * tests/namespace.test: TclMatchIsTrivial optimization on [namespace - children $namespace $pattern]. + * mac/tclMacOSA.c: CONSTification, sprintf fixes, UH 3.4.x changes; + fix for missing autoname token from TclOSACompileCmd. (bdesgraupes) + * mac/AppleScript.html(AppleScript delete): doc fix. (bdesgraupes) -2007-02-04 Daniel Steffen <das@users.sourceforge.net> + * mac/tcltkMacBuildSupport.sea.hqx: updated MoreFiles to 1.5.3, + updated build instructions for 8.4. + * mac/tclMacProjects.sea.hqx: rebuilt archive. - * 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 +2002-10-09 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-02-03 Joe Mistachkin <joe@mistachkin.com> + * doc/Alloc.3: Added a note to mention that attempting to allocate a + zero-length block can return NULL. [Tk Bug 619544] - * win/rules.vc: Fix platform specific file copy macros for downlevel - Windows. +2002-10-04 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2007-01-29 Don Porter <dgp@users.sourceforge.net> + * doc/binary.n: Doc improvements [Patch 616480] - * 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] + * tests/fCmd.test, tests/winFCmd.test: + * tools/eolFix.tcl, tools/genStubs.tcl: [file exist] -> [file exists] + Thanks to David Welton. - * generic/tclLink.c: Broken linked float logic corrected. Thanks to - Andy Goth. [Bug 1602538] +2002-10-03 Don Porter <dgp@users.sourceforge.net> - * doc/fcopy.n: Typo fix. [Bug 1630627] + * doc/tcltest.n: fixed typo [Bug 618018]. Thanks to "JJM". -2007-01-28 Daniel Steffen <das@users.sourceforge.net> +2002-10-03 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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. + * tools/man2help2.tcl: + * tests/http.test, tests/httpd, tests/httpold.test: + * tests/env.test, tests/binary.test, tests/autoMkindex.test: + * library/init.tcl, library/http/http.tcl: [info exist] should really + be [info exists]. [Bug 602566] - * macosx/README: document new Tcl.xcodeproj configurations; other - minor updates/corrections. + * doc/lsearch.n: Better specification of what happens when -sorted is + mixed with other options. [Bug 617816] - * generic/tcl.h: update location of version numbers in macosx files. +2002-10-01 Jeff Hobbs <jeffh@ActiveState.com> - * macosx/Tcl.xcode/project.pbxproj: restore 'tcltest' target to - * macosx/Tcl.xcode/default.pbxuser: working order by replicating - applicable changes to Tcl.xcodeproj since 2006-07-20. + * generic/tclProc.c (TclCreateProc): mask out VAR_UNDEFINED for + precompiled locals to support 8.3 precompiled code. + (Tcl_ProcObjCmd): correct 2002-09-26 fix to look for tclProcBodyType. -2007-01-25 Daniel Steffen <das@users.sourceforge.net> +2002-10-01 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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. + * doc/socket.n: Mentioned that ports may be specified as serivce names + as well as integers. [Bug 616843] - * unix/configure: autoconf-2.59 +2002-09-30 Jeff Hobbs <jeffh@ActiveState.com> -2007-01-22 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclCompCmds.c (TclCompileRegexpCmd): correct the checking + for bad re's that didn't terminate the re string. Resultant compiles + were correct, but much slower than necessary. - * compat/memcmp.c (memcmp): Reworked so that arithmetic is never - performed upon void pointers, since that is illegal. [Bug 1631017] +2002-09-29 David Gravereaux <davygrvy@pobox.com> -2007-01-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * win/tclAppInit.c: Added proper exiting conditions using Win32 + console signals. This handles the existing lack of a Ctrl+C exit to + call exit handlers when built for thread support. Also, properly + handles exits from other conditions such as CTRL_CLOSE_EVENT, + CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT signals. In all cases, exit + handlers will be called. [Bug 219355] - * 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. + * win/makefile.vc: Added missing tclThreadAlloc.c to the build rules + and defines USE_THREAD_ALLOC when TCL_THREADS is defined to get the + new behavior by default. -2007-01-19 Joe Mistachkin <joe@mistachkin.com> +2002-09-27 Don Porter <dgp@users.sourceforge.net> - * 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. + * README: Bumped to version 8.4.1 to avoid confusion + * generic/tcl.h: of CVS snapshots with the actual 8.4.0 + * tools/tcl.wse.in: release. + * unix/configure.in: + * unix/tcl.spec: + * win/configure.in: -2007-01-19 Daniel Steffen <das@users.sourceforge.net> + * unix/configure: autoconf + * win/configure: - * 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. +2002-09-26 Jeff Hobbs <jeffh@ActiveState.com> - * macosx/tclMacOSXNotify.c: accommodate changes to prototypes of - OSSpinLock(Un)Lock API. + * unix/configure: regen. + * unix/tcl.m4: improve AIX-4/5 64bit compilation support. - * macosx/Tcl.xcodeproj/project.pbxproj: ensure HOME and USER env vars - * macosx/Tcl.xcodeproj/default.pbxuser: are defined when running - testsuite from Xcode. + * generic/tclProc.c (Tcl_ProcObjCmd): correct overeager optimization + of noop proc to handle the precompiled case. (sofer) - * tests/env.test: add extra system env vars that need to be preserved - on some Mac OS X versions for testsuite to work. + * unix/ldAix (nmopts): add -X32_64 to make it work for 32 or 64bit + mode compilation. - * unix/Makefile.in: Move libtommath defines into configure.in to - * unix/configure.in: avoid replicating them across multiple - * macosx/Tcl.xcodeproj/project.pbxproj: buildsystems. + * library/encoding/koi8-u.enc: removed extraneous spaces that confused + encoding reader. [Bug 615115] - * 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. + * unix/Makefile.in: generate source dists with -src designator and do + not generate .Z anymore (just .gz and .zip). - * unix/configure: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 +2002-09-18 Mumit Khan <khan@nanotech.wisc.edu> -2007-01-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> + Added basic Cygwin support. - * 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] + * win/tcl.m4 (SC_PATH_TCLCONFIG): Support one-tree build. + (SC_PATH_TKCONFIG): Likewise. + (SC_PROG_TCLSH): Likewise. + (SC_CONFIG_CFLAGS): Assume real Cygwin port and remove -mno-cygwin + flags. Add -mwin32 to extra_cflags and extra_ldflags. Remove ``-e + _WinMain@16'' from LDFLAGS_WINDOW. + * win/configure.in: Allow Cygwin build. + (SEH test): Define to be 1 instead of empty value. + (EXCEPTION_DISPOSITION): Add test. + * win/configure: Regenerate. -2007-01-17 Donal K. Fellows <dkf@users.sf.net> + * generic/tcl.h: Don't explicitly define __WIN32__ for Cygwin, let the + user decide whether to use Windows or POSIX personality. + (TCL_WIDE_INT_TYPE, TCL_LL_MODIFIER, struct Tcl_StatBuf): Define for + Cygwin. + * generic/tclEnv.c (Tcl_CygwinPutenv): putenv replacement for Cygwin. + * generic/tclFileName.c (Tcl_TranslateFileName): Convert POSIX to + native format. + (TclDoGlob): Likewise. + * generic/tclPlatDecls.h (TCHAR): Define for Cygwin. + * win/tclWinPort.h (putenv, TclpSysAlloc, TclpSysFree) + (TclpSysRealloc): Define for Cygwin. - * generic/tclIO.c: Added macros to make usage of ChannelBuffers - clearer. +2002-09-26 Daniel Steffen <das@users.sourceforge.net> -2007-01-11 Joe English <jenglish@users.sourceforge.net> + * macosx/Makefile: preserve environment value of INSTALL_ROOT. When + embedding only use deployment build. Force relink before embedded + build to ensure new linker flags are picked up. - * win/tcl.m4(CFLAGS_WARNING): Remove "-Wconversion". This was removed - from unix/tcl.m4 2004-07-16 but not from here. - * win/configure: Regenerated. + * macosx/Tcl.pbproj/project.pbxproj: add symbolic links to debug lib, + stub libs and tclConfig.sh in framework toplevel. Configure target + dependency fix. Fix to 'clean' action. Added private tcl headers to + framework. Install tclsh symbolic link. Html doc build works when no + installed tclsh available. Made html doc structure in framework more + like in Apple frameworks. -2007-01-11 Pat Thoyts <patthoyts@users.sourceforge.net> +2002-09-24 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * win/makefile.vc: Fixes to work better on Win98. Read version numbers - * win/nmakehlp.c: from package index file to avoid keeping numbers in - * win/rules.vc: the makefile where they may become de-synchronized. + * unix/tcl.m4 (SC_TCL_64BIT_FLAGS): Yet more robust 64-bit value + detection to close [Bug 613117] on more systems. -2007-01-10 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclCompile.c (TclPrintSource): More CONSTifying. + * generic/tclExecute.c (EvalStatsCmd): Object-ify to reduce warnings. + Thanks to 'CoderX2' on the chat for bringing this to my attention... - * generic/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... + * unix/tcl.m4: Forgot to define TCL_WIDE_INT_IS_LONG at the + appropriate moment. I believe this is the cause of [Bug 613117] -2007-01-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * doc/lset.n: Changed 'list' to 'varName' for consistency with lappend + documentation. Thanks to Glenn Jackman [Bug 611719] - * 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] +2002-09-22 Don Porter <dgp@users.sourceforge.net> -2007-01-03 Kevin B. Kenny <kennykb@acm.org> + * library/tcltest/tcltest.tcl: Corrected [puts -nonewline] within + test bodies. Thanks to Harald Kirsch. [Bug 612786, Patch 612788] Also + corrected reporting of body return code. Thanks to David Taback [Bug + 611922] + * library/tcltest/pkgIndex.tcl: Bump to version 2.2.1. + * tests/tcltest.test: added tests for these bugs. - * generic/tclDate.c: Regenerated to recover a lost fix from patthoyts. - [Bug 1618523] +2002-09-15 Mo DeJong <mdejong@users.sourceforge.net> -2006-12-26 Mo DeJong <mdejong@users.sourceforge.net> + * unix/configure: Regen. + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Add PEEK_XCLOSEIM define under + Linux. This is used by Tk to double check that an X input context is + cleaned up before it is closed. - * generic/tclIO.c (Tcl_GetsObj): Avoid checking for for the LF in a - possible CRLF sequence when EOF has already been found. +2002-09-12 David Gravereaux <davygrvy@pobox.com> -2006-12-26 Mo DeJong <mdejong@users.sourceforge.net> + * win/coffbase.txt: Added BLT to the virtual base address listings + table should BLT's build tools decide to use it. - * 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. +2002-09-12 Daniel Steffen <das@users.sourceforge.net> -2006-12-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> + * generic/tcl.h: + * mac/tclMacApplication.r: + * mac/tclMacLibrary.r: + * mac/tclMacResource.r: unified use of the two equivalent resource + compiler header inclusion defines RC_INVOKED and RESOURCE_INCLUDED, + now use RC_INVOKED throughout. - * unix/tclUnixThrd.c (Tcl_GetAllocMutex, TclpNewAllocMutex): Add - intermediate variables to shut up unwanted warnings. [Bug 1618838] +2002-09-10 Mo DeJong <mdejong@users.sourceforge.net> -2006-12-19 Daniel Steffen <das@users.sourceforge.net> + * unix/README: Add note about building extensions with the same + compiler Tcl was built with. [Tk Bug 592096] - * unix/tclUnixThrd.c (TclpInetNtoa): fix for 64 bit. +2002-09-10 Daniel Steffen <das@users.sourceforge.net> - * unix/tcl.m4 (Darwin): --enable-64bit: verify linking with 64bit - -arch flag succeeds before enabling 64bit build. - * unix/configure: autoconf-2.59 + * macosx/Tcl.pbproj/project.pbxproj: disabled building html + documentation during embedded build. -2006-12-17 Daniel Steffen <das@users.sourceforge.net> - - * tests/macOSXLoad.test (new file): add testing of .bundle loading and - * tests/load.test: unloading on Darwin (in addition - * tests/unload.test: to existing tests of .dylib - loading). - * macosx/Tcl.xcodeproj/project.pbxproj: add building of dltest - binaries so that testsuite run from Xcode can use them; fix testsuite - run script - * unix/configure.in: add support for building dltest binaries as - * unix/dltest/Makefile.in: .bundle (in addition to .dylib) on Darwin. - * unix/Makefile.in: add stub lib dependency to dltest target. - * unix/configure: autoconf-2.59 +2002-09-10 Daniel Steffen <das@users.sourceforge.net> - * tests/append.test: fix cleanup failure when all tests are skipped. + * unix/Makefile.in: added DYLIB_INSTALL_DIR variable for macosx and + set it to default value ${LIB_RUNTIME_DIR} + * unix/tcl.m4 (Darwin): use DYLIB_INSTALL_DIR instead of + LIB_RUNTIME_DIR in the -install_name argument to ld. + * unix/configure: regen. - * tests/chan.test (chan-16.9): cleanup chan event handler to avoid - causing error in event.test when running testsuite with -singleproc 1. + * macosx/Tcl.pbproj/project.pbxproj: + * macosx/Makefile: added support for building Tcl as an embedded + framework, i.e. using an dyld install_name containing + @executable_path/../Frameworks via the new DYLIB_INSTALL_DIR + unix/Makefile variable. - * tests/info.test: add !singleTestInterp constraint to tests that fail - when running testsuite with -singleproc 1. [Bug 1605269] +2002-09-10 Jeff Hobbs <jeffh@ActiveState.com> -2006-12-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + *** 8.4.0 TAGGED FOR RELEASE *** - * doc/string.n: Fix example. [Bug 1615277] +2002-09-06 Don Porter <dgp@users.sourceforge.net> -2006-12-12 Don Porter <dgp@users.sourceforge.net> + * doc/file.n: Format correction, and clarified [file normalize] + returns an absolute path. - * 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. + * doc/tcltest.n: Added examples section, as long promised. - * 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. +2002-09-06 Reinhard Max <max@suse.de> -2006-12-11 Don Porter <dgp@users.sourceforge.net> + * tests/tcltest.test: Added nonRoot flag to tests 8.3, 8.4, and 8.12. - * generic/tclBasic.c: Another step with all sorting operator - * generic/tclCompExpr.c: commands now routing through TEBC via - * generic/tclCompile.h: TclSortingOpCmd(). +2002-09-05 Don Porter <dgp@users.sourceforge.net> -2006-12-08 Don Porter <dgp@users.sourceforge.net> + * doc/tcltest.n: Clarified phrasing. - * 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. + * generic/tclBasic.c (TclRenameCommand,CallCommandTraces): + * tests/trace.test (trace-27.1): Corrected memory leak when a rename + trace deleted the command being traced. Test added. Thanks to Hemang + Lavana for the fix. [Bug 604609] - * 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/tclVar.c (TclDeleteVars): Corrected logic for setting the + TCL_INTERP_DESTROYED flag when calling variable traces. [Tk Bug 605121] - * generic/tclCompile.h: Change TclExecuteByteCode() from static to - * generic/tclExecute.c: MODULE_SCOPE so all files including - tclCompile.h may call it. +2002-09-04 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclMathOp.c: More revisions to make tests pass. - * tests/mathop.test: + * generic/tclVar.c (DeleteArray): leak plug [Bug 604239]. Thanks to + dkf and dgp for the long and difficult discussion in the chat. -2006-12-08 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2002-09-03 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclNamesp.c (TclTeardownNamespace): Ensure that dying - namespaces unstitch themselves from their referents. [Bug 1571056] - (NsEnsembleImplementationCmd): Silence GCC warning. + * generic/tclVar.c (Tcl_UpVar2): code cleanup to not use goto - * tests/mathop.test: Full tests for & | and ^ operators + * unix/configure: remove -pthread from LIBS on FreeBSD in thread + * unix/tcl.m4: enabled build. [Bug 602849] -2006-12-08 Daniel Steffen <das@users.sourceforge.net> +2002-09-03 Miguel Sofer <msofer@users.sourceforge.net> - * library/tcltest/tcltest.tcl: use [info frame] for "-verbose line". + * generic/tclInterp.c (AliasCreate): a Tcl_Obj was leaked on error + return from TclPreventAliasLoop. -2006-12-07 Don Porter <dgp@users.sourceforge.net> +2002-09-03 Daniel Steffen <das@users.sourceforge.net> - * generic/tclCompCmds.c: Additional commits correct most - * generic/tclExecute.c: failing tests illustrating bugs - * generic/tclMathOp.c: uncovered in [Patch 1578137]. + * macosx/Tcl.pbproj/project.pbxproj: Bumped version number to 8.4.0 + and updated copyright info. - * generic/tclBasic.c: Biggest source of TIP 174 failures was that - the commands were not [namespace export]ed from the ::tcl::mathop - namespace. More bits from [Patch 1578137] correct that. +2002-09-03 Miguel Sofer <msofer@users.sourceforge.net> - * tests/mathop.test: Commmitted several new tests from Peter Spjuth - found in [Patch 1578137]. Many failures now demonstrate issues to fix - in the TIP 174 implementation. + * generic/tclVar.c (Tcl_UpVar2): a Tcl_Obj was being leaked on error + return from TclGetFrame. -2006-12-07 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2002-09-03 Don Porter <dgp@users.sourceforge.net> - * tests/mathop.test: Added tests for ! ~ eq operators. - * generic/tclMathOp.c (TclInvertOpCmd): Add in check for non-integral - numeric values. - * generic/tclCompCmds.c (CompileCompareOpCmd): Factor out the code - generation for the chained comparison operators. + * changes: Updated changes for 8.4.0 release. -2006-12-07 Pat Thoyts <patthoyts@users.sourceforge.net> +2002-09-02 Jeff Hobbs <jeffh@ActiveState.com> - * tests/exec.test: Fixed line endings (caused win32 problems). + * unix/tclUnixFile.c (TclpObjLink): removed unnecessary/unfreed + extra native char*. -2006-12-06 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixChan.c (Tcl_MakeTcpClientChannel): make sure to init + flags field of TcpState ptr to 0. - * 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. + * unix/configure: + * unix/tcl.m4: added 64-bit gcc compilation support on HP-11. + [Patch 601051] (martin) -2006-12-06 Kevin B. Kenny <kennykb@acm.org> + * README: Bumped version number to 8.4.0 + * generic/tcl.h: + * tools/tcl.wse.in: + * unix/configure: + * unix/configure.in: + * unix/tcl.spec: + * win/README.binary: + * win/configure: + * win/configure.in: - * tests/expr.test (expr-47.12): Improved error reporting in hopes of - having more information to pursue [Bug 1609936]. + * generic/tclInterp.c (SlaveCreate): make sure that the memory and + checkmem commands are initialized in non-safe slave interpreters when + TCL_MEM_DEBUG is used. [Bug 583445] -2006-12-05 Andreas Kupries <andreask@activestate.com> + * win/tclWinConsole.c (ConsoleCloseProc): only wait on writable pipe + if there was something to write. This may prevent infinite wait on + exit. - TIP#291 IMPLEMENTATION + * tests/exec.test: marked exec-18.1 unixOnly until the Windows + incompatability (in the test, not the core) can be resolved. - * generic/tclBasic.c: Define tcl_platform element for pointerSize. - * doc/tclvars.n: + * tests/http.test (http-3.11): added close $fp that was causing an + error on Windows because the file was not closed before deleting. + + * unix/tclUnixInit.c (Tcl_MacOSXGetLibraryPath): made this static + function only appear when HAVE_CFBUNDLE is defined. + +2002-08-31 Daniel Steffen <das@users.sourceforge.net> + + * unix/tcl.m4: added TK_SHLIB_LD_EXTRAS analogue of existing + TCL_SHLIB_LD_EXTRAS for linker settings only used when linking Tk. + + * unix/configure: regen + +2002-08-31 Daniel Steffen <das@users.sourceforge.net> + + *** macosx-8-4-branch merged into the mainline [Patch 602770] *** + + * generic/tcl.decls: added new macosx specific entry to stubs table. + + * tools/genStubs.tcl: added generation of platform guards for macosx. + This is a little more complex than it seems, because MacOS X IS "unix" + plus a little bit, for the purposes of Tcl. BUT unfortunately, Tk uses + "unix" to mean X11. So added platform keys for macosx (the little + added to "unix"), "aqua" and "x11" to distinguish these for Tk. + + * generic/tcl.h: added a #ifnded RESOURCE_INCLUDED so that tcl.h can + be passed to the resource compiler. + + * generic/tcl.h: + * generic/tclNotify.c: added a few Notifier procs, to be able to + modify more bits of the Tcl notifier dynamically. Required to get Mac + OS X Tk to live on top of the Tcl Unix threaded notifier. Changes the + size of the Tcl_NotifierProcs structure, but doesn't move any elements + around. + + * unix/tclUnixNotfy.c: moved the call to Tcl_ConditionNotify till + AFTER we are done mucking with the pointer swap. Fixes cases where the + thread waiting on the condition wakes & accesses the waitingListPtr + before it gets reset, causing a hang. + + * library/auto.tcl (tcl_findLibrary): added checking the directories + in the tcl_pkgPath for library files on macosx to enable support of + the standard Mac OSX library locations - * win/Makefile.in: Added installation instructions for the platform - * win/makefile.vc: package. Added the platform package. - * win/makefile.bc: * unix/Makefile.in: + * unix/configure.in: + * unix/tcl.m4: added MAC_OSX_DIR. Added PLAT_OBJS to the OBJS: there + are some MacOS X specific files now for Tcl, and when I get he + resource & applescript stuff ported over, and restore support for + FindFiles, etc, there will be a few more. Added LD_LIBRARY_PATH_VAR + configure variable to avoid having to set all possible LD_LIBRARY_PATH + analogues on all platforms. LD_LIBRARY_PATH_VAR is "LD_LIBRARY_PATH" + by default, "LIBPATH" on AIX, "SHLIB_PATH" on HPUX and + "DYLD_LIBRARY_PATH" on Mac OSX. Added configure option to package Tcl + as a framework on Mac OSX. - * tests/platform.test: - * tests/safe.test: + * macosx/tclMacOSXBundle.c (new): support for finding Tcl extension + packaged as 'bundles' in the standard Mac OSX library locations. - * library/platform/platform.tcl: - * library/platform/shell.tcl: - * library/platform/pkgIndex.tcl: + * unix/tclUnixInit.c: added support for findig the tcl script library + inside Tcl packaged as a framework on Mac OSX. - * doc/platform.n: - * doc/platform_shell.n: + * macosx/Tcl.pbproj/jingham.pbxuser (new): + * macosx/Tcl.pbproj/project.pbxproj (new): project for Apple's + ProjectBuilder IDE. -2006-12-05 Don Porter <dgp@users.sourceforge.net> + * macosx/Makefile (new): simple makefile for building the project from + the command line via the ProjectBuilder tool 'pbxbuild'. - * generic/tclPkg.c: When no requirements are supplied to a - * tests/pkg.test: [package require $pkg] and [package unknown] - is invoked to find a satisfying package, pass the requirement argument - "0-" (which means all versions are acceptable). This permits a - registered [package unknown] command to call [package vsatisfies - $testVersion {*}$args] without any special handling of the empty $args - case. This fixes/avoids a bug in [::tcl::tm::UnknownHandler] that was - causing old TM versions to be provided in preference to newer TM - versions. Thanks to Julian Noble for discovering the issue. + * unix/configure: + * generic/tclStubInit.c: + * generic/tclPlatDecls.h: regen -2006-12-04 Donal K. Fellows <dkf@users.sf.net> +2002-08-29 Andreas Kupries <andreas_kupries@users.sourceforge.net> - TIP#267 IMPLEMENTATION + * win/tclWinThrd.c (TclpFinalizeThreadData, TclWinFreeAllocCache): + Applied patch for [Bug 599428] (sofer) - * generic/tclIOCmd.c (Tcl_ExecObjCmd): Added -ignorestderr option, - * tests/exec.test, doc/exec.n: loosely from [Patch 1476191] +2002-08-28 David Gravereaux <davygrvy@pobox.com> -2006-12-04 Don Porter <dgp@users.sourceforge.net> + * generic/tclEnv.c: + * unix/configure.in: + * win/tclWinPort.h: putenv() on some systems copies the buffer rather + than taking reference to it. This causes memory leaks and is know to + effect mswindows (msvcrt) and NetBSD 1.5.2. This patch tests for this + behavior and turns on -DHAVE_PUTENV_THAT_COPIES=1 when approriate. + Thanks to David Welton for assistance. [Bug 414910] - * 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. + * unix/configure: regen'd -2006-12-03 Don Porter <dgp@users.sourceforge.net> +2002-08-28 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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. + * doc/eval.n: Added mention of list command and corrected "SEE ALSO". -2006-12-02 Donal K. Fellows <dkf@users.sf.net> + * unix/configure.in: Cache handling of ac_cv_type_socklen_t was wrong. + [Bug 600931] reported by John Ellson. Fixed by putting the brackets + where they belong. - * doc/file.n: Clarification of [file pathtype] docs. [Bug 1606454] +2002-08-26 Miguel Sofer <msofer@users.sourceforge.net> -2006-12-01 Kevin B. Kenny <kennykb@acm.org> + * generic/tclCompCmds.c: fix for [Bug 599788] (error in element name + causing segfault), reported by Tom Wilkason. Fixed by copying the + tokens instead of the source string. - * 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. +2002-08-26 Miguel Sofer <msofer@users.sourceforge.net> - TIP#299 IMPLEMENTATION + * generic/tclThreadAlloc.c: small optimisation, reducing the new + allocator's overhead. - * 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. +2002-08-23 Miguel Sofer <msofer@users.sourceforge.net> -2006-12-01 Don Porter <dgp@users.sourceforge.net> + * generic/tclObj.c (USE_THREAD_ALLOC): fixed leak [Bug 597936]. Thanks + to Zoran Vasiljevic. - * tests/chan.test: Correct timing sensitivity in new test. [Bug - 1606860] +2002-08-23 Miguel Sofer <msofer@users.sourceforge.net> - TIP#287 IMPLEMENTATION + * generic/tclThreadAlloc.c (USE_THREAD_ALLOC): moving objects between + caches as a block, instead of one-by-one. - * 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: +2002-08-22 Miguel Sofer <msofer@users.sourceforge.net> - TIP#298 IMPLEMENTATION + * generic/tclBasic.c: + * generic/tclCmdMZ.c: fix for freed memory r/w in delete traces [Bug + 589863], patch by Hemang Lavana. - * generic/tcl.decls: Tcl_GetBignumAndClearObj -> Tcl_TakeBignumFromObj - * generic/tclObj.c: +2002-08-20 Andreas Kupries <andreas_kupries@users.sourceforge.net> - * generic/tclDecls.h: make genstubs - * generic/tclStubInit.c: + * win/Makefile.in (CFLAGS): + * unix/Makefile.in (MEM_DEBUG_FLAGS): Added usage of @MEM_DEBUG_FLAGS@. + * win/configure.in: + * unix/configure.in: Added usage of SC_ENABLE_MEMDEBUG. + * win/tcl.m4: + * unix/tcl.m4: Added macro SC_ENABLE_MEMDEBUG. Allows a user of + configure to (de)activate memory validation and debugging + (TCL_MEM_DEBUG). No need to modify the makefile anymore. - * generic/tclExecute.c: Update callers. - * generic/tclMathOp.c: +2002-08-20 Don Porter <dgp@users.sourceforge.net> -2006-11-30 Kevin B. Kenny <kennykb@acm.org> + * generic/tclCkalloc.c: CONSTified MemoryCmd and CheckmemCmd. - * 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. + * README: Bumped version number to 8.4b3 to distinguish + * generic/tcl.h: HEAD from the 8.4b2 release. + * tools/tcl.wse.in: + * unix/configure.in: + * unix/tcl.spec: + * win/README.binary: + * win/configure.in: -2006-11-29 Don Porter <dgp@users.sourceforge.net> + * unix/configure: autoconf + * win/configure: - * 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. + * library/http/http.tcl: Corrected installation directory of + * library/msgcat/msgcat.tcl: the package tcltest 2.2. Added + * library/opt/optparse.tcl: comments in other packages to remind + * library/tcltest/tcltest.tcl: that installation directories need + * unix/Makefile.in: updates to match increasing version + * win/Makefile.in: numbers. [Bug 597450] + * win/makefile.bc: + * win/makefile.vc: -2006-11-28 Andreas Kupries <andreask@activestate.com> +2002-08-19 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * unix/tclUnixTest.c (TestfilehandlerCmd): Changed + readable/writable to the more common readable|writable. + Fixes [Bug 596034] (lvirden) + +2002-08-16 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + * tests/fCmd.test: Added test to make sure that the cause of the + problem is detectable with an unpatched Tcl. + * doc/ObjectType.3: Added note on the root cause of this problem to + the documentation, since it is possible for user code to trigger this + sort of behaviour too. + * generic/tclIOUtil.c (SetFsPathFromAny): Objects should only have + their old representation deleted when we know that we are about to + install a new one. This stops a weird TclX bug under Linux with + certain kinds of memory debugging enabled which essentally came down + to a double-free of a string. + +2002-08-14 Miguel Sofer <msofer@users.sourceforge.net> + + * generic/tclInt.h: + * generic/tclObj.c: (code cleanup) factored the parts in the macros + TclNewObj() / TclDecrRefCount() into a common part for all memory + allocators and two new macros TclAllocObjStorage() / + TclFreeObjStorage() that are specific to each allocator and fully + describe the differences. Removed allocator-specific code from + tclObj.c by using the macros. + +2002-08-12 Miguel Sofer <msofer@users.sourceforge.net> + + * generic/tclCmdMZ.c: fixing UMR in delete traces, [Bug 589863]. + +2002-08-08 David Gravereaux <davygrvy@pobox.com> + + * tools/man2help.tcl: Fixed $argv handling bug where if -bitmap wasn't + specified $argc was off by one. + +2002-08-08 Miguel Sofer <msofer@users.sourceforge.net> + + * tests/uplevel.test: added 6.1 to test [uplevel] with shadowed + commands [Bug 524383] + + * tests/subst.test: added 5.8-10 as further tests for [Bug 495207] + +2002-08-08 Don Porter <dgp@users.sourceforge.net> + + * tests/README: Noted removal of defs.tcl. + +2002-08-08 Jeff Hobbs <jeffh@ActiveState.com> + + * doc/lsearch.n: corrected lsearch docs to use -inline in examples. + + *** 8.4b2 TAGGED FOR RELEASE *** + + * tests/fCmd.test: + * tests/unixFCmd.test: updated tests for new link copy behavior. + * generic/tclFCmd.c (CopyRenameOneFile): changed the behavior to + follow links to endpoints and copy that file/directory instead of just + copying the surface link. This means that trying to copy a link that + has no endpoint (danling link) is an error. [Patch 591647] (darley) + (CopyRenameOneFile): this is currently disabled by default until + further issues with such behavior (like relative links) can be handled + correctly. + + * tests/README: slight wording improvements + +2002-08-07 Miguel Sofer <msofer@users.sourceforge.net> + + * docs/BoolObj.3: added description of valid string reps for a boolean + object [Bug 584794] + * generic/tclObj.c: optimised Tcl_GetBooleanFromObj and + SetBooleanFromAny to avoid parsing the string rep when it can be + avoided [Bugs 584650, 472576] + +2002-08-07 Miguel Sofer <msofer@users.sourceforge.net> - * 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/tclObj.c: making tclCmdNameType static [Bug 584567] (dgp) + +2002-08-07 Miguel Sofer <msofer@users.sourceforge.net> + + * generic/tclObj.c (Tcl_NewObj): added conditional code for + USE_THREAD_ALLOC; objects allocated through Tcl_NewObj() were + otherwise being leaked. [Bug 587488] reported by Sven Sass. + +2002-08-06 Daniel Steffen <das@users.sourceforge.net> + + * generic/tclInt.decls: + * unix/tclUnixThrd.c: Added stubs and implementations for non-threaded + build for the tclUnixThrd.c procs TclpReaddir, TclpLocaltime, + TclpGmtime and TclpInetNtoa. Fixes link errors in stubbed & threaded + extensions that include tclUnixPort.h and use any of the procs + readdir, localtime, gmtime or inet_ntoa (e.g. TclX 8.4) [Bug 589526] + * generic/tclIntPlatDecls.h: + * generic/tclStubInit.c: Regen. + +2002-08-05 Don Porter <dgp@users.sourceforge.net> + + * library/tcltest/tcltest.tcl: The setup and cleanup scripts are now + * library/tcltest/pkgIndex.tcl: skipped when a test is skipped, fixing + * tests/tcltest.test: [Bug 589859]. Test for bug added, and + corrected tcltest package bumped to version 2.2. + + * generic/tcl.decls: Restored Tcl_Concat to return (char *). Like + * generic/tclDecls.h: Tcl_Merge, it transfers ownership of a dynamic + * generic/tclUtil.c: allocated string to the caller. + +2002-08-04 Don Porter <dgp@users.sourceforge.net> + + * doc/CmdCmplt.3: Applied Patch 585105 to fully CONST-ify + * doc/Concat.3: all remaining public interfaces of Tcl. + * doc/CrtCommand.3: Notably, the parser no longer writes on + * doc/CrtSlave.3: the string it is parsing, so it is no + * doc/CrtTrace.3: longer necessary for Tcl_Eval() to be + * doc/Eval.3: given a writable string. Also, the + * doc/ExprLong.3: refactoring of the Tcl_*Var* routines + * doc/LinkVar.3: by Miguel Sofer is included, so that the + * doc/ParseCmd.3: "part1" argument for them no longer needs + * doc/SetVar.3: to be writable either. + * doc/TraceVar.3: + * doc/UpVar.3: Compatibility support has been enhanced so + * generic/tcl.decls: that a #define of USE_NON_CONST will remove + * generic/tcl.h: all possible source incompatibilities with + * generic/tclBasic.c: the 8.3 version of the header file(s). + * generic/tclCmdMZ.c: The new #define of USE_COMPAT_CONST now does + * generic/tclCompCmds.c:what USE_NON_CONST used to do -- disable + * generic/tclCompExpr.c:only those new CONST's that introduce + * generic/tclCompile.c: irreconcilable incompatibilities. + * generic/tclCompile.h: + * generic/tclDecls.h: Several bugs are also fixed by this patch. + * generic/tclEnv.c: [Bugs 584051,580433] [Patches 585105,582429] + * generic/tclEvent.c: + * generic/tclInt.decls: * generic/tclInt.h: + * generic/tclIntDecls.h: * generic/tclInterp.c: - * generic/tclNamesp.c: + * generic/tclLink.c: * generic/tclObj.c: + * generic/tclParse.c: + * generic/tclParseExpr.c: * generic/tclProc.c: - * tests/compile.test: - * tests/info.test: - * tests/platform.test: - * tests/safe.test: + * generic/tclTest.c: + * generic/tclUtf.c: + * generic/tclUtil.c: + * generic/tclVar.c: + * mac/tclMacTest.c: + * tests/expr-old.test: + * tests/parseExpr.test: + * unix/tclUnixTest.c: + * unix/tclXtTest.c: + * win/tclWinTest.c: -2006-11-27 Kevin B. Kenny <kennykb@acm.org> +2002-08-01 Miguel Sofer <msofer@users.sourceforge.net> - * unix/tclUnixChan.c (TclUnixWaitForFile): - * tests/event.test (event-14.*): Corrected a bug where - TclUnixWaitForFile would present select() with the wrong mask on an - LP64 machine if a fd number exceeds 32. Thanks to Jean-Luc Fontaine - for reporting and diagnosing [Bug 1602208]. + * generic/tclExecute.c: bugfix (reading freed memory). Testsuite + passed on linux/i386, compile-13.1 hung on linux/alpha. -2006-11-27 Don Porter <dgp@users.sourceforge.net> +2002-08-01 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclExecute.c (TclIncrObj): Correct failure to detect - floating-point increment values. Thanks to William Coleda [Bug - 1602991] + * generic/tclExecute.c: added a reference count for the complete + execution stack, instead of Tcl_Preserve/Tcl_Release. -2006-11-26 Donal K. Fellows <dkf@users.sf.net> +2002-08-01 Mo DeJong <mdejong@users.sourceforge.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. + * generic/tclCkalloc.c (TclFinalizeMemorySubsystem): Don't lock the + ckalloc mutex before invoking the Tcl_DumpActiveMemory function since + it also locks the same mutex. This code is only executed when "memory + onexit filename" has been executed and Tcl is compiled with + -DTCL_MEM_DEBUG. -2006-11-26 Daniel Steffen <das@users.sourceforge.net> +2002-08-01 Reinhard Max <max@suse.de> - * unix/tcl.m4 (Linux): --enable-64bit support. [Patch 1597389] - * unix/configure: autoconf-2.59 [Bug 1230558] + * win/tclWinPort.h: The windows headers don't provide socklen_t, so we + have to do it. -2006-11-25 Donal K. Fellows <dkf@users.sf.net> +2002-07-31 Miguel Sofer <msofer@users.sourceforge.net> - TIP#174 IMPLEMENTATION + * generic/tclInt.h (USE_THREAD_ALLOC): for unshared objects, + TclDecrRefCount now frees the internal rep before the string rep - + just like the non-macro Tcl_DecrRefCount/TclFreeObj [Bug 524802]. For + the other allocators the fix was done on 2002-03-06. - * 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. +2002-07-31 Miguel Sofer <msofer@users.sourceforge.net> -2006-11-23 Donal K. Fellows <dkf@users.sf.net> + * generic/tclInterp.c: signed/unsigned comparison warning fixed + (Vince Darley). - * 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. +2002-07-31 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2006-11-22 Donal K. Fellows <dkf@users.sf.net> + * unix/tcl.m4 (SC_BUGGY_STRTOD): Enabled caching of test results. - TIP#269 IMPLEMENTATION + * unix/tcl.m4 (SC_BUGGY_STRTOD): Solaris 2.8 still has a buggy + strtod() implementation; make sure we detect it. - * 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. + * tests/expr.test (expr-22.*): Marked as non-portable because it seems + that these tests have an annoying tendency to fail in unexpected ways. + [Bugs 584825, 584950, 585986] -2006-11-22 Don Porter <dgp@users.sourceforge.net> +2002-07-30 Andreas Kupries <andreas_kupries@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 + * tests/io.test: + * generic/tclIO.c (WriteChars): Added flag to break out of loop if + nothing of the input is consumed at all, to prevent infinite looping + of called with a non-UTF-8 string. Fixes [Bug 584603] partially. + Added new test "io-60.1". Might need additional changes to Tcl_Main so + that unprintable results are printed as binary data. - * 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] +2002-07-29 Mo DeJong <mdejong@users.sourceforge.net> -2006-11-20 Donal K. Fellows <dkf@users.sf.net> + * unix/Makefile.in: Use CC_SEARCH_FLAGS instead of LD_SEARCH_FLAGS + when linking with ${CC}. + * unix/configure: Regen. + * unix/configure.in: Don't subst CC_SEARCH_FLAGS or LD_SEARCH_FLAGS + since this is now done in tcl.m4. + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Document and set CC_SEARCH_FLAGS + whenever LD_SEARCH_FLAGS is set. [Patch 588290] - * generic/tclBasic.c (Tcl_CreateInterp, TclHideUnsafeCommands): - * library/init.tcl: Refactored the [chan] command's guts so that it - does not use aliases to global commands, making the code more robust. +2002-07-29 Reinhard Max <max@suse.de> -2006-11-17 Don Porter <dgp@users.sourceforge.net> + * unix/tcl.m4 (SC_SERIAL_PORT): Fixed detection for cases when + configure's stdin is not a tty. - * generic/tclExecute.c (INST_EXPON): Corrected crash on - [expr 2**(1<<63)]. Was operating on cleared bignum Tcl_Obj. + * unix/tclUnixPort.h: + * generic/tclIOSock.c: Changed size_t to socklen_t in + socket-related function calls. -2006-11-16 Donal K. Fellows <dkf@users.sf.net> + * unix/configure.in: Added test and fallback definition + for socklen_t. - * doc/apply.n, doc/chan.n: Added examples. + * unix/configure: generated. -2006-11-15 Don Porter <dgp@users.sourceforge.net> +2002-07-29 Miguel Sofer <msofer@users.sourceforge.net> - TIP#270 IMPLEMENTATION + * generic/tclObj.c: fixed a comment - * 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/tcl.h: + * generic/tclBasic.c: + * generic/tclInterp.c: added the new flag TCL_EVAL_INVOKE to the + interface of the Tcl_Eval* functions, removing the + TCL_EVAL_NO_TRACEBACK added yesterday: alias invocations not only + require no tracebacks, but also look up the command name in the global + scope - see new test interp-9.4 + * tests/interp.test: added 9.3 to test for safety of aliases to hidden + commands, 9.4 to test for correct command lookup scope. + +2002-07-29 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + * generic/regc_locale.c (cclass): [[:xdigit:]] is only a defined + concept on western characters, so should not allow any unicode digit, + and hence number of ranges in [[:xdigit:]] is fixed. + * tests/reg.test: Added test to detect the bug. + * generic/regc_cvec.c (newcvec): Corrected initial size value in + character vector structure. [Bug 578363] Many thanks to + pvgoran@users.sf.net for tracking this down. + +2002-07-28 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclDecls.h: make genstubs - * generic/tclStubInit.c: + * generic/tcl.h: + * generic/tclBasic.c: added the new flag TCL_EVAL_NO_TRACEBACK to the + interface of the Tcl_Eval* functions. Modified the error message for + too many nested evaluations. + * generic/tclInterp.h: changed the Alias struct to be of variable + length and store the prefix arguments directly (instead of a pointer + to a Tcl_Obj list). Made AliasObjCmd call Tcl_EvalObjv instead of + TclObjInvoke - thus making aliases trigger execution traces. [Bug + 582522] + * tests/interp.test: + * tests/stack.test: adapted to the new error message. + * tests/trace.test: added tests for aliases firing the exec traces. - * generic/tclBasic.c: Updated callers. - * generic/tclCkalloc.c: - * generic/tclCmdAH.c: - * generic/tclCmdIL.c: - * generic/tclCmdMZ.c: - * generic/tclCompExpr.c: - * generic/tclCompile.c: - * generic/tclDictObj.c: - * generic/tclExecute.c: - * generic/tclIORChan.c: - * generic/tclIOUtil.c: - * generic/tclMain.c: - * generic/tclNamesp.c: - * generic/tclObj.c: - * generic/tclPkg.c: - * generic/tclProc.c: - * generic/tclStrToD.c: - * generic/tclTimer.c: - * generic/tclUtil.c: - * unix/tclUnixFCmd.c: +2002-07-27 Mo DeJong <mdejong@users.sourceforge.net> - * 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. + * unix/Makefile.in: Revert fix for Tcl bug 529801 since it was + incorrect and broke the build on other systems. Fix [Bug 587299]. Add + MAJOR_VERSION, MINOR_VERSION, PATCH_LEVEL, SHLIB_LD_FLAGS, + SHLIB_LD_LIBS, CC_SEARCH_FLAGS, LD_SEARCH_FLAGS, and LIB_FILE + variables to support more generic library build/install rules. + * unix/configure: Regen. + * unix/configure.in: Move AC_PROG_RANLIB into tcl.m4. Move shared + build test and setting of MAKE_LIB and MAKE_STUB_LIB into tcl.m4. Move + subst of a number of variables into tcl.m4 where they are defined. + * unix/tcl.m4 (SC_ENABLE_SYMBOLS, SC_CONFIG_CFLAGS): + Subst vars where they are defined. Add MAKE_LIB, MAKE_STUB_LIB, + INSTALL_LIB, and INSTALL_STUB_LIB rules to deal with the ugly details + of running ranlib on static libs at build and install time. Replace + TCL_SHLIB_LD_EXTRAS with SHLIB_LD_FLAGS and use it when building a + shared library. + * unix/tclConfig.sh.in: Add TCL_CC_SEARCH_FLAGS. - * generic/tclDecls.h: make genstubs - * generic/tclIntDecls.h: - * generic/tclIntPlatDecls.h: - * generic/tclPlatDecls.h: - * generic/tclTomMathDecls.h: +2002-07-26 Miguel Sofer <msofer@users.sourceforge.net> -2006-11-15 Donal K. Fellows <dkf@users.sf.net> + * generic/tclExecute.c: fixed Tcl_Obj leak in code corresponding to + the macro NEXT_INST_V(x, 0, 1). [Bug 587495] - * 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. +2002-07-26 Miguel Sofer <msofer@users.sourceforge.net> -2006-11-14 Don Porter <dgp@users.sourceforge.net> + * generic/tclVar.c (TclObjLookupVar): leak fix and improved comments. - TIP#261 IMPLEMENTATION +2002-07-26 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclNamesp.c: [namespace import] with 0 arguments - introspects the list of imported commands. + * generic/tclVar.c (TclLookupVar): removed early returns that + prevented the parens from being restored. also removed goto label as + it was not necessary. -2006-11-13 Kevin B. Kenny <kennykb@users.sourceforge.net> +2002-07-24 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclThreadStorage.c (Tcl_InitThreadStorage): - (Tcl_FinalizeThreadStorage): Silence a compiler warning about - presenting a volatile pointer to 'memset'. + * generic/tclExecute.c: + * tests/expr-old.test: fix for erroneous error messages in [expr], + [Bug 587140] reported by Martin Lemburg. -2006-11-13 Don Porter <dgp@users.sourceforge.net> +2002-07-25 Joe English <jenglish@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. + * generic/tclProc.c: fix for [Tk Bug 219218] "error handling with + bgerror in Tk" -2006-11-13 Daniel Steffen <das@users.sourceforge.net> +2002-07-24 Miguel Sofer <msofer@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: + * generic/tclExecute.c: restoring full TCL_COMPILE_DEBUG + functionality. - * unix/configure: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 +2002-07-24 Don Porter <dgp@users.sourceforge.net> -2006-11-12 Donal K. Fellows <dkf@users.sf.net> + * tests/unixInit.test: relaxed unixInit-3.1 to accept iso8859-15 as a + valid C encoding. [Bug 575336] - * generic/tclInt.h, generic/tclInt.decls: Transfer TclPtrMakeUpvar and - TclObjLookupVar to the internal stubs table. +2002-07-24 Miguel Sofer <msofer@users.sourceforge.net> -2006-11-10 Daniel Steffen <das@users.sourceforge.net> + * generic/tclExecute.c: restoring the tcl_traceCompile functionality + while I repair tcl_traceExec. The core now compiles and runs also + under TCL_COMPILE_DEBUG, but execution in the bytecode engine can + still not be traced. - * tests/fCmd.test (fCmd-6.26): fix failure when env(HOME) path - contains symlinks. +2002-07-24 Daniel Steffen <das@users.sourceforge.net> - * 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/Makefile.in: + * unix/configure.in: corrected fix for [Bug 529801]: ranlib only + needed for static builds on Mac OS X. + * unix/configure: Regen. + * unix/tclLoadDyld.c: fixed small bugs introduced by Vince, + implemented library unloading correctly (needs OS X 10.2). - * 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 +2002-07-23 Joe English <jenglish@users.sourceforge.net> -2006-11-09 Don Porter <dgp@users.sourceforge.net> + * doc/OpenFileChnl.3: (Updates from Larry Virden) + * doc/open.n: + * doc/tclsh.1: Fix section numbers in Unix man page references. + * doc/lset.n: In EXAMPLES section, include command to set the initial + value used in subsequent examples. + * doc/http.n: Package version updated to 2.4. - * 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: +2002-07-23 Mo DeJong <mdejong@users.sourceforge.net> -2006-11-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * unix/configure: Regen. + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Enable 64 bit compilation when using + the native compiler on a 64 bit version of IRIX. [Bug 219220] - TIP#272 IMPLEMENTATION +2002-07-23 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclCmdMZ.c (Tcl_StringObjCmd): Implementation of the - * tests/string.test, tests/stringComp.test: [string reverse] command - * doc/string.n: from TIP#272. + * unix/Makefile.in: Combine ranlib tests and avoid printing unless + ranlib is actually run. - * generic/tclCmdIL.c (Tcl_LreverseObjCmd): Implementation of the - * generic/tclBasic.c, generic/tclInt.h: [lreverse] command from - * tests/cmdIL.test (cmdIL-7.*): TIP#272. - * doc/lreverse.n: +2002-07-23 Mo DeJong <mdejong@users.sourceforge.net> -2006-11-08 Donal K. Fellows <dkf@users.sf.net> + * unix/tcl.m4 (SC_PATH_X): Set XINCLUDES to "" instead of "# no + special path needed" or "# no include files found" when x headers + cannot be located. - * generic/tclIO.c, generic/tclPkg.c: Style & clarity rewrites. +2002-07-22 Vince Darley <vincentdarley@users.sourceforge.net> -2006-11-07 Andreas Kupries <andreask@activestate.com> + * generic/tclIOUtil.c: made tclNativeFilesystem static (since 07-19 + changes removed its usage elsewhere), and added comments about its + usage. + * generic/tclLoad.c: + * generic/tcl.h: + * generic/tcl.decls: + * doc/FileSystem.3: converted last load-related ClientData parameter + to Tcl_LoadHandle opaque structure, removing a couple of casts in the + process. - * unix/tclUnixFCmd.c (CopyFile): Added code to fall back to a - hardwired default block size should the filesystem report a bogus - value. [Bug 1586470] + * generic/tclInt.h: removed tclNativeFilesystem declaration since it + is now static again. -2006-11-04 Don Porter <dgp@users.sourceforge.net> +2002-07-22 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclStringObj.c: Changed Tcl_ObjPrintf() response to an - invalid format specifier string. No longer panics; now produces an - error message as output. + * tests/expr.test (expr-22.*): Added tests to help detect the + corrected handling. + * generic/tclExecute.c (IllegalExprOperandType): Improved error + message generated when attempting to manipulate Inf and NaN values. + * generic/tclParseExpr.c (GetLexeme): Allowed parser to recognise + 'Inf' as a floating-point number. [Bug 218000] - TIP#274 IMPLEMENTATION +2002-07-21 Don Porter <dgp@users.sourceforge.net> - * generic/tclParseExpr.c: Exponentiation operator is now right - * tests/expr.test: associative. [Patch 1556802] + * tclIOUtil.c: Silence compiler warning. [Bug 584408]. -2006-11-03 Miguel Sofer <msofer@users.sf.net> +2002-07-19 Vince Darley <vincentdarley@users.sourceforge.net> - * generic/tclBasic.c (TEOVI): fix por possible leak of a Command in - the presence of execution traces that delete it. + * generic/tclIOUtil.c: fix to GetFilesystemRecord + * win/tclWinFile.c: + * unix/tclUnixFile.c: fix to subtle problem with links shown up by + latest tclkit builds. - * generic/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: +2002-07-19 Mo DeJong <mdejong@users.sourceforge.net> -2006-11-02 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * unix/configure: + * unix/configure.in: + * win/configure: + * win/configure.in: Add AC_PREREQ(2.13) in an attempt to make it more + clear that the configure scripts must be generated with autoconf + version 2.13. [Bug 583573] - * tests/winPipe.test (winpipe-4.[2345]): Made robust when run in - directory with spaces in its name. +2002-07-19 Vince Darley <vincentdarley@users.sourceforge.net> - * generic/tclCmdAH.c: Clean up uses of cast NULLs. + * unix/Makefile.in: fix to build on MacOS X [Bug 529801], bug report + and fix from jcw. - * generic/tclInterp.c (AliasObjCmd): Added more explanatory comments. +2002-07-19 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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. + * win/tclWinSerial.c (no_timeout): Made this variable static. -2006-11-01 Daniel Steffen <das@users.sourceforge.net> + * generic/tclExecute.c, generic/tclCompile.c, generic/tclBasic.c: + * generic/tclCompile.h (builtinFuncTable, instructionTable): Added + prefix to these symbols because they are visible outside the Tcl + library. + + * generic/tclCompExpr.c (operatorTable): + * unix/tclUnixTime.c (tmKey): + * generic/tclIOUtil.c (theFilesystemEpoch, filesystemWantToModify, + (filesystemIteratorsInProgress, filesystemOkToModify): Made these + variables static. - * unix/tclUnixPort.h: ensure MODULE_SCOPE is defined before use, so - that tclPort.h can once again be included without tclInt.h. + * unix/tclUnixFile.c: Renamed nativeFilesystem to + * win/tclWinFile.c: tclNativeFilesystem and declared + * generic/tclIOUtil.c: it properly in tclInt.h + * generic/tclInt.h: - * generic/tclEnv.c (Darwin): mark _environ symbol as unexported even - when MODULE_SCOPE != __private_extern__. + * generic/tclUtf.c (totalBytes): Made this array static and const. -2006-10-31 Don Porter <dgp@users.sourceforge.net> + * generic/tclParse.c (typeTable): Made this array static and const. + (Tcl_ParseBraces): Simplified error handling case so that scans are + only performed when needed, and flags are simpler too. + + * license.terms: Added AS to list of copyright holders; it's only fair + for the current gatekeepers to be listed here! + + * tests/cmdMZ.test: Renamed constraint for clarity. [Bug 583427] + Added tests for the [time] command, which was previously only + indirectly tested! + +2002-07-18 Vince Darley <vincentdarley@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/tclStringObj.c: - * generic/tclTimer.c: - * generic/tclUtil.c: - * unix/tclUnixFCmd.c: + * generic/tcl.h: + * */*Load*.c: added comments on changes of 07/17 and replaced + clientData with Tcl_LoadHandle in all locations. -2006-10-31 Miguel Sofer <msofer@users.sf.net> + * generic/tclFCmd.c: + * tests/fileSystem.test: fixed a 'knownBug' with 'file + attributes ""' + * tests/winFCmd.test: + * tests/winPipe.test: + * tests/fCmd.test: + * tessts/winFile.test: added 'pcOnly' constraint to some tests to make + for more useful 'tests skipped' log from running all tests on + non-Windows platforms. - * generic/tclBasic.c, generic/tcl.h, generic/tclInterp.c: - * generic/tclNamesp.c: removing the flag bit TCL_EVAL_NOREWRITE, the - last remnant of the callObjc/v fiasco. It is not needed, as it is now - always set and checked or'ed with TCL_EVAL_INVOKE. +2002-07-17 Miguel Sofer <msofer@users.sourceforge.net> -2006-10-31 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclBasic.c (CallCommandTraces): delete traces now receive + the FQ old name of the command. [Bug 582532] (Don Porter) - * win/rules.vc: Fix for [Bug 1582769] - options conflict with VC2003. +2002-07-18 Vince Darley <vincentdarley@users.sourceforge.net> -2006-10-31 Donal K. Fellows <dkf@users.sf.net> + * tests/ioUtil.test: added constraints to 1.4,2.4 so they don't run + outside of tcltest. [Bugs 583276,583277] - * generic/tclBasic.c, generic/tclNamesp.c, generic/tclProc.c: - * generic/tclInt.h: Removed the callObjc and callObjv fields from the - Interp structure. They did not function correctly and made other parts - of the core amazingly complex, resulting in a substantive change to - [info level] behaviour. [Bug 1587618] - * library/clock.tcl: Removed use of [info level 0] for calculating the - command name as used by the user and replace with a literal. What's - there now is sucky, but at least appears to be right to most users. - * tests/namespace.test (namespace-42.7,namespace-47.1): Reverted - changes to these tests. - * tests/info.test (info-9.11,info-9.12): Added knownBug constraint - since these tests require a different behaviour of [info level] than - is possible because of other dependencies. +2002-07-17 Miguel Sofer <msofer@users.sourceforge.net> -2006-10-30 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclVar.c (DupParsedVarName): nasty bug fixed, reported by + Vince Darley. - * tools/tcltk-man2html.tcl (option-toc): handle any kind of options - defined toc section (needed for ttk docs) +2002-07-17 Miguel Sofer <msofer@users.sourceforge.net> -2006-10-30 Miguel Sofer <msofer@users.sf.net> + * generic/tclVar.c (TclPtrIncrVar): missing CONST in declarations, + inconsistent with tclInt.h. Thanks to Vince Darley for reporting, boo + to gcc for not complaining. - * generic/tclBasic.c (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. +2002-07-17 Vince Darley <vincentdarley@users.sourceforge.net> -2006-10-30 Don Porter <dgp@users.sourceforge.net> + * generic/tclInt.h: + * generic/tclIOUtil.c: + * generic/tclLoadNone.c: + * unix/tclLoadAout.c: + * unix/tclLoadDl.c: + * unix/tclLoadDld.c: + * unix/tclLoadDyld.c: + * unix/tclLoadNext.c: + * unix/tclLoadOSF.c: + * unix/tclLoadShl.c: + * mac/tclMacLoad.c: + * win/tclWinLoad.c: modified to move more functionality to the generic + code and avoid duplication. Partial replacement of internal uses of + clientData with opaque Tcl_LoadHandle. A little further work still + needed, but significant changes are done. + +2002-07-17 D. Richard Hipp <drh@hwaci.com> + + * library/msgcat/msgcat.tcl: fix a comment that was causing problems + for programs (ex: mktclapp) that embed the initialization scripts in + strings. + +2002-07-17 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclExecute.c (INST_MOD): Corrected improper testing of the - * tests/expr.test: sign of bignums when applying Tcl's - division rules. Thanks to Peter Spjuth. [Bug 1585704] + * generic/tclInt.decls: + * generic/tclIntDecls.h: + * generic/tclStubInit.c: + * generic/tclVar.c: removing the now redundant functions to access + indexed variables: Tcl(Get|Set|Incr)IndexedScalar() and + Tcl(Get|Set|Incr)ElementOfIndexedArray(). -2006-10-29 Miguel Sofer <msofer@users.sf.net> +2002-07-17 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclNamesp.c (EnsembleImplementationCmd): - * tests/namespace.test (47.7-8): reverted a wrong "optimisation" that - completely broke snit; added two tests. + * generic/tclExecute.c (TclExecuteByteCode): Minor fixes to make this + file compile with SunPro CC... -2006-10-28 Donal K. Fellows <dkf@users.sf.net> +2002-07-17 Miguel Sofer <msofer@users.sourceforge.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. + * generic/tclExecute.c: modified to do variable lookup explicitly, and + then either inlining the variable access or else calling the new + TclPtr(Set|Get|Incr)Var functions in tclVar.c + * generic/tclInt.h: declare some functions previously local to + tclVar.c for usage by TEBC. + * generic/tclVar.c: removed local declarations; moved all special + accessor functions for indexed variables to the end of the file - they + are unused and ready for removal, but left there for the time being as + they are in the internal stubs table. -2006-10-27 Donal K. Fellows <dkf@users.sf.net> + ** WARNING FOR BYTECODE MAINTAINERS ** + TCL_COMPILE_DEBUG is currently not functional; will be fixed ASAP. - * generic/tclVar.c (HasLocalVars): New macro to make various bits and - pieces cleaner. +2002-07-16 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclNamesp.c (TclSetNsPath): Expose SetNsPath() through - internal stubs table with semi-external name. + * unix/Makefile.in: + * win/Makefile.in: Add a more descriptive warning in the event `make + genstubs` needs to be rerun. - * generic/tclInt.h (CallFrame): Add a field for handling context data - for extensions (like object systems) that should be tied to a call - frame (and not a command or interpreter). +2002-07-16 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclBasic.c (TclRenameCommand): Change to take CONST args; - they were only ever used in a constant way anyway, so this appears to - be a spot that was missed during TIP#27 work. + * unix/Makefile.in: Use dltest.marker file to keep track of when the + dltest package is up to date. This fixes [Bug 575768] since tcltest is + no longer linked every time. + * unix/dltest/Makefile.in: Create ../dltest.marker after a successful + `make all` run in dltest. -2006-10-26 Miguel Sofer <msofer@users.sf.net> +2002-07-16 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclProc.c (SetLambdaFromAny): minor change, eliminate - redundant call to Tcl_GetString (thanks aku). + * unix/configure: Regen. + * unix/configure.in: Remove useless subst of TCL_BIN_DIR. - * generic/tclInterp.c (ApplyObjCmd): - * generic/tclNamesp.c (EnsembleImplementationCmd): replaced ckalloc - (heap) with TclStackAlloc (execution stack). +2002-07-15 Miguel Sofer <msofer@users.sourceforge.net> -2006-10-24 Miguel Sofer <msofer@users.sf.net> + * generic/tclVar.c: inaccurate comment fixed - * tests/info.test (info-9.11-12): tests for [Bug 1577492] - * tests/apply.test (apply-4.3-5): tests for [Bug 1574835] +2002-07-15 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclProc.c (ObjInterpProcEx): disable itcl hacks for calls - from ApplyObjCmd (islambda==1), as they mess apply's error messages - [Bug 1583266] + * generic/tclBasic.c (Tcl_AddObjErrorInfo): + * generic/tclExecute.c (TclUpdateReturnInfo): + * generic/tclInt.h: + * generic/tclProc.c: + Added two Tcl_Obj to the ExecEnv structure to hold the fully qualified + names "::errorInfo" and "::errorCode" to cache the addresses of the + corresponding variables. The two most frequent setters of these + variables now profit from the new variable name caching. -2006-10-23 Miguel Sofer <msofer@users.sf.net> +2002-07-15 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclProc.c (ApplyObjCmd): fix wrong#args for apply by using - the ensemble rewrite engine. [Bug 1574835] - * generic/tclInterp.c (AliasObjCmd): previous commit missed usage of - TCL_EVAL_NOREWRITE for aliases. + * generic/tclVar.c: refactorisation to reuse already looked-up Var + pointers; definition of three new Tcl_Obj types to cache variable name + parsing and lookup for later reuse; modification of internal functions + to profit from the caching. - * generic/tclBasic.c (TclEvalObjvInternal): removed redundant check - for ensembles. [Bug 1577628] + * generic/tclInt.decls: + * generic/tclInt.h: + * generic/tclIntDecls.h: + * generic/tclNamesp.c: adding CONST qualifiers to variable names + passed to Tcl_FindNamespaceVar and to variable resolvers; adding CONST + qualifier to the 'msg' argument to TclLookupVar. Needed to avoid code + duplication in the new tclVar.c code. - * library/clock.tcl (format, scan): corrected wrong # args messages to - * tests/clock.test (3.1, 34.1): make use of the new rewrite - capabilities of [info level] + * tests/set-old.test: + * tests/var.test: slight modification of error messages due to the + modifications in the tclVar.c code. - * generic/tcl.h: Lets TEOV update the iPtr->callObj[cv] new - * generic/tclBasic.c: fields, except when the flag bit - * generic/tclInt.h: TCL_EVAL_NOREWRITE is present. These values - * generic/tclNamesp.c: are used by Tcl_PushCallFrame to initialise - * generic/tclProc.c: the frame's obj[cv] fields, and allows - * tests/namespace.test: [info level] to know and use ensemble - rewrites. [Bug 1577492] +2002-07-15 Don Porter <dgp@users.sourceforge.net> - ***POTENTIAL INCOMPATIBILITY*** - The return value from [info level 0] on interp alias calls is changed: - previously returned the target command (including curried values), now - returns the source - what was actually called. - -2006-10-23 Miguel Sofer <msofer@users.sf.net> - - * generic/tcl.h: Modified the Tcl call stack so there is - * generic/tclBasic.c: always a valid CallFrame, even at level 0 - * generic/tclCmdIL.c: [Patch 1577278]. Most of the changes - * generic/tclInt.h: involve removing tests for a NULL - * generic/tclNamesp.c: iPtr->(var)framePtr. There is now a - * generic/tclObj.c: CallFrame pushed at interp creation with a - * generic/tclProc.c: pointer to it stored in iPtr->rootFramePtr. - * generic/tclTrace.c: A second unused field in Interp is - * generic/tclVar.c: hijacked to enable further functionality, - currently unused (but with several FRQs depending on it). + * tests/unixInit.test: Improved constraints to protect /tmp. [Bug + 581403] - ***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). +2002-07-15 Vince Darley <vincentdarley@users.sourceforge.net> -2006-10-23 Don Porter <dgp@users.sourceforge.net> + * tests/winFCmd.test: renamed 'win2000' and 'notWin2000' to more + appropriate constraint names. + * win/tclWinFile.c: updated comments to reflect 07-11 changes. + * win/tclWinFCmd.c: made ConvertFileNameFormat static again, since no + longer used in tclWinFile.c + * mac/tclMacFile.c: completed TclpObjLink implementation which was + previously lacking. + * generic/tclIOUtil.c: comment cleanup and code speedup. - * README: Bump version number to 8.5a6 - * generic/tcl.h: +2002-07-14 Don Porter <dgp@users.sourceforge.net> + + * generic/tclInt.h: Removed declarations that duplicated entries + in the (internal) stub table. + + * library/tcltest/tcltest.tcl: Corrected errors in handling of + configuration options -constraints and -limitconstraints. + + * README: Bumped HEAD to version 8.4b2 so we can + * generic/tcl.h: distinguish it from the 8.4b1 release. * tools/tcl.wse.in: - * unix/configure.in: + * unix/configure*: * unix/tcl.spec: * win/README.binary: - * win/configure.in: + * win/configure*: - * unix/configure: autoconf-2.59 - * win/configure: +2002-07-11 Vince Darley <vincentdarley@users.sourceforge.net> -2006-10-21 Miguel Sofer <msofer@users.sf.net> + * doc/file.n: + * win/tclWinFile.c: on Win 95/98/ME the long form of the path is used + as a normalized form. This is required because short forms are not a + robust representation. The file normalization function has been sped + up, but more performance gains might be possible, if speed is still an + issue on these platforms. - * 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). +2002-07-11 Don Porter <dgp@users.sourceforge.net> -2006-10-20 Reinhard Max <max@tclers.tk> + * library/tcltest/tcltest.tcl: Corrected reaction to existing but + false ::tcl_interactive. - * unix/configure.in: Added autodetection for OS-supplied timezone - * unix/Makefile.in: files and configure switches to override the - * unix/configure: detected default. + * doc/Hash.3: Overlooked CONST documentation update. -2006-10-20 Daniel Steffen <das@users.sourceforge.net> +2002-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk> - *** 8.5a5 TAGGED FOR RELEASE *** + * generic/tclCkalloc.c: ckalloc() and friends take the block size as + an unsigned, so we should use %ud when reporting it in fprintf() and + panic(). - * tools/tcltk-man2html.tcl: add support for alpha & beta versions to - useversion glob pattern. [Bug 1579941] +2002-07-11 Miguel Sofer <msofer@users.sourceforge.net> -2006-10-18 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompile.c: now setting local vars undefined at compile + time, instead of waiting until the proc is initialized. + * generic/tclProc.c: use macro TclSetVarUndefined instead of directly + setting the flag. - * changes: 8.5a5 release date set +2002-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * doc/Encoding.3: Missing doc updates (mostly Table of - * doc/Ensemble.3: Contents) exposed by `make checkdoc` - * doc/FileSystem.3: - * doc/GetTime.3: - * doc/PkgRequire.3: + * tests/cmdAH.test: [file attr -perm] is Unix-only, so add [catch] + when not inside a suitably-protected test. -2006-10-17 Miguel Sofer <msofer@users.sf.net> +2002-07-10 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclInterp.c (ApplyObjCmd): fixed bad error in 2006-10-12 - commit: interp released too early. Spotted by mistachkin. + * tests/unixFCmd.test, tests/fileName.test: + * tests/fCmd.test: Removed [exec] of Unix utilities that have + equivalents in standard Tcl. [Bug 579268] Also simplified some of + unixFCmd.test while I was at it. -2006-10-16 Miguel Sofer <msofer@users.sf.net> +2002-07-10 Don Porter <dgp@users.sourceforge.net> - * tclProc.c (SetLambdaFromAny): - * tests/apply.test (9.1-9.2): plugged intrep leak [Bug 1578454], - found by mjanssen. + * tests/tcltest.test: Greatly reduced the number of [exec]s, using + slave interps instead. + * library/tcltest/tcltest.tcl: Fixed bug uncovered in the conversion + where a message was written to stdout instead of [outputChannel]. -2006-10-16 Andreas Kupries <andreask@activestate.com> + * tests/basic.test: Cleaned up, constrained, and reduced the + * tests/compile.test: amount of [exec] usage in the test suite. + * tests/encoding.test: + * tests/env.test: + * tests/event.test: + * tests/exec.test: + * tests/io.test: + * tests/ioCmd.test: + * tests/regexp.test: + * tests/regexpComp.test: + * tests/socket.test: + * tests/tcltest.test: + * tests/unixInit.test: + * tests/winDde.test: + * tests/winPipe.test: - * generic/tclBasic.c: Moved TIP#219 cleanup to DeleteInterpProc. +2002-07-10 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2006-10-16 Daniel Steffen <das@users.sourceforge.net> + * tests/cmdAH.test: Removed [exec] of Unix utilities. [Bug 579211] - * changes: updates for 8.5a5 release. + * tests/expr.test: Added tests to make sure that this works. + * generic/tclExecute.c (ExprCallMathFunc): Functions should also be + able to return wide-ints. [Bug 579284] - * unix/tclUnixThrd.c (TclpThreadGetStackSize): Darwin: fix for main - thread, where pthread_get_stacksize_np() returns incorrect info. +2002-07-08 Andreas Kupries <andreas_kupries@users.sourceforge.net> - * macosx/GNUmakefile: don't redo prebinding of non-prebound binaires. + * tests/socket.test: Fixed [Bug 578164]. The original reason for the + was a DNS outage while running the testsuite. Changed [info hostname] + to 127.0.0.1 to bypass DNS, knowing that we operate on the local + host. -2006-10-16 Don Porter <dgp@users.sourceforge.net> +2002-07-08 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] + * doc/tcltest.n: Fixed incompatibility in [viewFile]. + * library/tcltest/tcltest.tcl: Corrected docs. Bumped to 2.2.1. + * library/tcltest/pkgIndex.tcl: [Bug 578163] - * 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 +2002-07-08 Vince Darley <vincentdarley@users.sourceforge.net> -2006-10-13 Colin McCormack <coldstore@users.sf.net> + * tests/cmdAH.test: + * tests/fCmd.test: + * tests/fileName.test: tests which rely on 'file link' need a + constraint so they don't run on older Windows OS. [Bug 578158] + * generic/tclIOUtil.c: + * generic/tcl.h: + * generic/tclInt.h: + * generic/tclTest.c: + * mac/tclMacChan.c: + * unix/tclUnixChan.c: + * win/tclWinChan.c: + * doc/FileSystem.3: cleaned up internal handling of + Tcl_FSOpenFileChannel to remove duplicate code, and make writing + external vfs's clearer and easier. No functionality change. Also + clarify that objects with refCount zero should not be passed in to the + Tcl_FS API, and prevent segfaults from occuring on such user errors. + [Bug 578617] + +2002-07-06 Don Porter <dgp@users.sourceforge.net> + + * tests/pkgMkIndex.test: Constrained tests of [load] package indexing + to those platforms where the testing shared libraries have been built. + [Bug 578166]. + +2002-07-05 Don Porter <dgp@users.sourceforge.net> + + * changes: added recent changes + +2002-07-05 Reinhard Max <max@suse.de> + + * generic/tclClock.c (FormatClock): Convert the format string to + UTF8 before calling TclpStrftime, so that non-ASCII characters don't + get mangled when the result string is being converted back. + * tests/clock.test: Added a test for that. + +2002-07-05 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + * unix/Makefile.in (ro-test,ddd,GDB,DDD): Created new targets to allow + running the test suite with a read-only current directory, running + under ddd instead of gdb, and factored out some executable names for + broken sites (like mine) where gdb and ddd are installed with + non-standard names... + + * tests/httpold.test: Altered test names to httpold-* to avoid clashes + with http.test, and stopped tests from failing when the current + directory is not writable... + + * tests/event.test: Stop these tests from failing + * tests/ioUtil.test: when the current directory is + * tests/regexp.test: not writable... + * tests/regexpComp.test: + * tests/source.test: + * tests/unixFile.test: + * tests/unixNotfy.test: + + * tests/unixFCmd.test: Trying to make these test-files + * tests/macFCmd.test: not bomb out with an error when + * tests/http.test: the current directory is not + * tests/fileName.test: writable... + * tests/env.test: - * win/tclWinFile.c: corrected erroneous attempt to protect against - NULL return from Tcl_FSGetNormalizedPath per [Bug 1548263] causing - [Bug 1575837]. - * win/tclWinFile.c: alfredd supplied patch to fix [Bug 1575837] +2002-07-05 Jeff Hobbs <jeffh@ActiveState.com> -2006-10-13 Daniel Steffen <das@users.sourceforge.net> + *** 8.4b1 TAGGED FOR RELEASE *** - * 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 +2002-07-04 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2006-10-12 Miguel Sofer <msofer@users.sf.net> + * tests/cmdMZ.test (cmdMZ-1.4): + * tests/cmdAH.test: More fixing of writable-current-dir assumption. + [Bug 575824] - * 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] +2002-07-04 Miguel Sofer <msofer@users.sourceforge.net> -2006-10-12 David Gravereaux <davygrvy@pobox.com> + * tests/basic.test: Same issue as below; fixed [Bug 575817] - * win/nmakehlp.c: Replaced all wnsprintf() calls with snprintf(). - wnsprintf was not in my shwlapi header file (VC++6) +2002-07-04 Andreas Kupries <andreas_kupries@users.sourceforge.net> -2006-10-11 Don Porter <dgp@users.sourceforge.net> + * tests/socket.test: + * tests/winPipe.test: + * tests/pid.test: Fixed [Bug 575848]. See below for a description the + general problem. - * generic/tclPkg.c (Tcl_PackageRequireEx): Corrected crash when - argument version=NULL passed in. + All the bugs below are instances of the same problem: The testsuite + assumes [pwd] = [temporaryDirectory] and writable. -2006-10-10 Don Porter <dgp@users.sourceforge.net> + * tests/iogt.test: Fixed [Bug 575860] + * tests/io.test: Fixed [Bug 575862] + * tests/exec.test: + * tests/ioCmd.test: Fixed [Bug 575836] - * changes: Updates for 8.5a5 release. +2002-07-03 Don Porter <dgp@users.sourceforge.net> - * generic/tclNamespace.c (TclTeardownNamespace): After the - commandPathSourceList of a namespace is cleared, set the - commandPathSourceList to NULL so we don't try to walk the list a - second time, possibly after it is freed. [Bug 1566526] - * tests/namespace.test (namespace-51.16): Added test. + * tests/pkg1/direct1.tcl: removed + * tests/pkg1/pkgIndex.tcl: removed + * tests/pkgMkIndex.test: Imported auxilliary files from tests/pkg1 + into the test file pkgMkIndex.test itself. Formatting fixes. -2006-10-09 Miguel Sofer <msofer@users.sf.net> + * unix/Makefile.in: removed tests/pkg/* from `make dist` - * 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] + * tests/pkg/circ1.tcl: removed + * tests/pkg/circ2.tcl: removed + * tests/pkg/circ3.tcl: removed + * tests/pkg/global.tcl: removed + * tests/pkg/import.tcl: removed + * tests/pkg/pkg1.tcl: removed + * tests/pkg/pkg2_a.tcl: removed + * tests/pkg/pkg2_b.tcl: removed + * tests/pkg/pkg3.tcl: removed + * tests/pkg/pkg4.tcl: removed + * tests/pkg/pkg5.tcl: removed + * tests/pkg/pkga.tcl: removed + * tests/pkg/samename.tcl: removed + * tests/pkg/simple.tcl: removed + * tests/pkg/spacename.tcl: removed + * tests/pkg/std.tcl: removed + * tests/pkgMkIndex.test: Fixed [Bug 575857] where this test file + expected to be able to write to [file join [testsDirectory] pkg]. Part + of the fix was to import several auxilliary files into the test file + itself. -2006-10-09 Miguel Sofer <msofer@users.sf.net> + * tests/main.test: Cheap fix for [Bugs 575851, 575858]. Avoid + * tests/tcltest.test: non-writable . by [cd [temporaryDirectory]]. - * 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. + * library/auto.tcl: Fix [tcl_findLibrary] to be sure it sets $varName + only if a successful library script is found. [Bug 577033] - The modified testfiles are: apply.test, basic.test, case.test, - cmdIL.test, cmdMZ.test, compExpr-old.test, error.test, eval.test, - event.test, expr.test, fileSystem.test, for.test, http.test, if.test, - incr-old.test, incr.test, interp.test, io.test, ioCmd.test, load.test, - misc.test, namespace.test, parse.test, parseOld.test, pkg.test, - proc-old.test, set.test, switch.test, tcltest.test, thread.test, - var.test, while-old.test, while.test. +2002-07-03 Miguel Sofer <msofer@users.sourceforge.net> -2006-10-06 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclCompCmds.c (TclCompileCatchCmd): return + TCL_OUT_LINE_COMPILE instead of TCL_ERROR: let the failure happen at + runtime so that it can be caught [Bug 577015]. - * win/rules.vc: [Bug 1571954] avoid /RTCc flag with MSVC8 +2002-07-02 Joe English <jenglish@users.sourceforge.net> -2006-10-06 Pat Thoyts <patthoyts@users.sourceforge.net> + * doc/tcltest.n: Markup fixes, spellcheck. - * doc/binary.n: TIP #275: Support unsigned values in binary - * generic/tclBinary.c: command. Tests and documentation updated. - * tests/binary.test: +2002-07-02 Don Porter <dgp@users.sourceforge.net> -2006-10-05 Andreas Kupries <andreask@activestate.com> + * doc/tcltest.n: more refinements of the documentation. - * library/tm.tcl: Fixed bug in TIP #189 implementation, now allowing - '_' in module names. + * library/tcltest/tcltest.tcl: Added trace to be sure the stdio + constraint is updated whenever the [interpreter] changes. -2006-10-05 Jeff Hobbs <jeffh@ActiveState.com> + * doc/tcltest.n: Reverted [makeFile] and [viewFile] to + * library/tcltest/tcltest.tcl: their former behavior, and documented + * tests/cmdAH.test: it. Corrected misspelling of hook + * tests/event.test: procedure. Restored tests. + * tests/http.test: + * tests/io.test: - * 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] + * library/tcltest/tcltest.tcl: Simplified logic of [GetMatchingFiles] + and [GetMatchingDirectories], removing special case processing. - * 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] + * doc/tcltest.n: More documentation updates. Reference sections are + complete. Only examples need adding. -2006-10-05 Miguel Sofer <msofer@users.sf.net> +2002-07-02 Vince Darley <vincentdarley@users.sourceforge.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 + * tests/fCmd.test: + * generic/tclCmdAH.c: clearer error msgs for 'file link', as per the + man page. -2006-10-04 Kevin B. Kenny <kennykb@acm.org> +2002-07-01 Joe English <jenglish@users.sourceforge.net> - * tzdata/: Olson's tzdata2006m. + * doc/Access.3: + * doc/AddErrInfo.3: + * doc/Alloc.3: + * doc/Backslash.3: + * doc/CrtChannel.3: + * doc/CrtSlave.3: + * doc/Encoding.3: + * doc/Eval.3: + * doc/FileSystem.3: + * doc/Notifier.3: + * doc/OpenFileChnl.3: + * doc/ParseCmd.3: + * doc/RegExp.3: + * doc/Tcl_Main.3: + * doc/Thread.3: + * doc/TraceCmd.3: + * doc/Utf.3: + * doc/WrongNumArgs.3: + * doc/binary.n: + * doc/clock.n: + * doc/expr.n: + * doc/fconfigure.n: + * doc/glob.n: + * doc/http.n: + * doc/interp.n: + * doc/lsearch.n: + * doc/lset.n: + * doc/msgcat.n: + * doc/packagens.n: + * doc/pkgMkIndex.n: + * doc/registry.n: + * doc/resource.n: + * doc/safe.n: + * doc/scan.n: + * doc/tclvars.n: Spell-check, fixed typos (Updates from Larry Virden) -2006-10-01 Kevin B. Kenny <kennykb@acm.org> +2002-07-01 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * tests/clock.test (clock-49.2): Removed a locale dependency that - caused a spurious failure in the German locale. [Bug 1567956] + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Made Solaris use gcc for linking + when building with gcc to resolve problems with undefined symbols + being present when tcl library used with non-gcc linker at later + stage. Symbols were compiler-generated, so it is the compiler's + business to define them. [Bug 541181] -2006-10-01 Miguel Sofer <msofer@users.sf.net> +2002-07-01 Don Porter <dgp@users.sourceforge.net> - * doc/Eval.3 (TclEvalObjv): added note on refCount management for the - elements of objv. [Bug 730244] + * doc/tcltest.n: more work in progress updating tcltest docs. -2006-10-01 Pat Thoyts <patthoyts@users.sourceforge.net> + * library/tcltest/tcltest.tcl: Change [configure -match] to stop + treating an empty list as a list of the single pattern "*". Changed + the default value to [list *] so default operation remains the same. - * win/tclWinFile.c: Handle possible missing define. + * tests/pkg/samename.tcl: restored. Needed by pkgMkIndex.test. - * win/tclWinFile.c (TclpUtime): [Bug 1420432] file mtime fails for - * tests/cmdAH.test: directories on windows + * library/tcltest/tcltest.tcl: restored writeability testing of + -tmpdir, augmented by a special exception for the deafault value. - * tests/winFile.test: Handle Msys environment a little differently in - getuser function. [Bug 1567956] +2002-07-01 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2006-09-30 Miguel Sofer <msofer@users.sf.net> + * doc/concat.n: Documented the *real* behaviour of [concat]! - * generic/tclUtil.c (Tcl_SplitList): optimisation, [Patch 1344747] by - dgp. +2002-06-30 Don Porter <dgp@users.sourceforge.net> - * 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] + * doc/tcltest.n: more work in progress updating tcltest docs. - * 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 + * tests/README: Updated the instructions on running and + * tests/cmdMZ.test: adding to the test suite. Also updated + * tests/encoding.test: several tests, mostly to correctly create + * tests/fCmd.test: and destroy any temporary files in the + * tests/info.test: [temporaryDirectory] of tcltest. + * tests/interp.test: -2006-09-28 Andreas Kupries <andreask@activestate.com> + * library/tcltest/tcltest.tcl: Stopped checking for writeability of + -tmpdir value because no default directory can be guaranteed to be + writeable. - * 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] + * tests/autoMkindex.tcl: removed. + * tests/pkg/samename.tcl: removed. + * tests/pkg/magicchar.tcl: removed. + * tests/pkg/magicchar2.tcl: removed. + * tests/autoMkindex.test: Updated auto_mkIndex tests to use [makeFile] + and [removeFile] so tests are done in [temporaryDirecotry] where write + access is guaranteed. -2006-09-28 Miguel Sofer <msofer@users.sf.net> + * library/tcltest/tcltest.tcl: Fixed [makeFile] and [viewFile] to + * tests/cmdAH.test: accurately reflect a file's contents. + * tests/event.test: Updated tests that depended on buggy + * tests/http.test: behavior. Also added warning messages + * tests/io.test: to "-debug 1" operations to debug test + * tests/iogt.test: calls to (make|remove)(File|Directory). - * generic/tclIO.c (Tcl_GetsObj): added two test'n'panic guards for - possible NULL derefs, [Bug 1566382] and coverity #33. + * unix/mkLinks: `make mklinks` on 6-27 commits. -2006-09-27 Don Porter <dgp@users.sourceforge.net> +2002-06-28 Miguel Sofer <msofer@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/tclCompile.h: modified the macro TclEmitPush to not call its + first argument repeatedly or pass it to other macros, [Bug 575194] + reported by Peter Spjuth. - * generic/tclPkg.c (CompareVersion): Flatten strcmp() results to - {-1, 0, 1} to match expectations of CompareVersion() callers. +2002-06-28 Don Porter <dgp@users.sourceforge.net> -2006-09-27 Miguel Sofer <msofer@users.sf.net> + * docs/tcltest.n: Doc revisions in progress. + * library/tcltest/tcltest.tcl: Corrected -testdir default value. Was + not reliable, and disagreed with docs! Thanks to Hemang Lavana. [Bug + 575150] - * generic/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 +2002-06-28 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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. + * unix/tclUnixThrd.c: Renamed the Tcl_Platform* #defines to + * unix/tclUnixPipe.c: TclOS* because they are only used + * unix/tclUnixFile.c: internally. Also stopped double-#def + * unix/tclUnixFCmd.c: of TclOSlstat [Bug 566099, post-rename] + * unix/tclUnixChan.c: + * unix/tclUnixPort.h: -2006-09-27 Andreas Kupries <andreask@activestate.com> + * doc/string.n: Improved documentation for [string last] along lines + described in [Bug 574799] so it indicates that the supplied index + marks the end of the search space. - * tests/pkg.test: Added test for version comparison at the 32bit - boundary. [Bug 1563836] +2002-06-27 Don Porter <dgp@users.sourceforge.net> - * 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] + * doc/dde.n: Work in progress updating the documentation + * doc/http.n: of the packages that come bundled with + * doc/msgcat.n: the Tcl source distribution, notably tcltest. + * doc/registry.n: + * doc/tcltest.n: -2006-09-27 Miguel Sofer <msofer@users.sf.net> + * library/tcltest/tcltest.tcl: Made sure that the TCLTEST_OPTIONS + environment variablle configures tcltest at package load time. - * generic/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. +2002-06-26 Vince Darley <vincentdarley@users.sourceforge.net> -2006-09-26 Kevin B. Kenny <kennykb@acm.org> + * tests/fileSystem.test: + * generic/tclIOUtil.c: fix to handling of empty paths "" which are not + claimed by any filesystem [Bug 573758]. Ensure good error messages are + given in all cases. + * tests/cmdAH.test: + * unix/tclUnixFCmd.c: fix to bug reported as part of [Patch 566669]. + Thanks to Taguchi, Takeshi for the report. - * doc/Encoding.3: Added covariant 'const' qualifier for the - * generic/tcl.decls: Tcl_EncodingType argument to - * generic/tclEncoding.c: Tcl_CreateEncoding. [Further TIP#27 work.] - * generic/tclDecls.h: Reran 'make genstubs'. +2002-06-26 Reinhard Max <max@suse.de> -2006-09-26 Pat Thoyts <patthoyts@users.sourceforge.net> + * unix/tclUnixTime.c: Make [clock format] respect locale settings. + * tests/clock.test: [Bug 565880]. ***POTENTIAL INCOMPATIBILITY*** - * win/makefile.vc: Additional compiler flags and amd64 support. - * win/nmakehlp.c: - * win/rules.vc: +2002-06-26 Miguel Sofer <msofer@users.sourceforge.net> -2006-09-26 Don Porter <dgp@users.sourceforge.net> + * doc/CrtInterp.3: + * doc/StringObj.3: clarifications by Don Porter, [Bugs 493995, 500930] - * generic/tcl.h: As 2006-09-22 commit from Donal K. Fellows - demonstrates, "#define NULL 0" is just wrong, and as a quotable chat - figure observed, "If NULL isn't defined, we're not using a C compiler" - Improper fallback definition of NULL removed. +2002-06-24 Don Porter <dgp@users.sourceforge.net> -2006-09-25 Pat Thoyts <patthoyts@users.sourceforge.net> + * library/tcltest/tcltest.tcl: Corrected suppression of -verbose skip + * tests/tcltest.test: and start by [test -output]. Also + corrected test suite errors exposed by corrected code. [Bug 564656] - * 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. +2002-06-25 Reinhard Max <max@suse.de> -2006-09-25 Andreas Kupries <andreask@activestate.com> + * unix/tcl.m4: New macro SC_CONFIG_MANPAGES. + * unix/configure.in: Added support for symlinks and compression + * unix/Makefile.in: when installing the manpages. [Patch 518052] + * unix/mkLinks.tcl: Default is still hardlinks and no compression. - * generic/tclIO.c (Tcl_StackChannel): Fixed [Bug 1564642], aka - coverity #51. Extended loop condition, added checking for NULL to - prevent seg.fault. + * unix/mkLinks: generated + * unix/configure: -2006-09-25 Andreas Kupries <andreask@activestate.com> + * unix/README: Added documentation for the new features. - * doc/package.n: Fixed nits reported by Daniel Steffen in the TIP#268 - changes. + * unix/tcl.m4 (SC_PATH_TCLCONFIG): Replaced ${exec_prefix}/lib by + ${libdir}. -2006-09-25 Kevin B. Kenny <kennykb@acm.org> +2002-06-25 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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. + * generic/tclUtil.c (TclGetIntForIndex): Fix of critical [Bug 533364] + generated when the index is bad and the result is a shared object. The + T_ASTO(T_GOR, ...) idiom likely exists elsewhere though. Also removed + some cruft that just complicated things to no advantage. + (SetEndOffsetFromAny): Same fix, though this wasn't on the path + excited by the bug. -2006-09-25 Donal K. Fellows <dkf@users.sf.net> +2002-06-24 Don Porter <dgp@users.sourceforge.net> - * generic/tclNotify.c (Tcl_DeleteEvents): Make it clear what happens - when the event queue is mismanaged. [Bug 1564677], coverity bug #10. + * library/tcltest/tcltest.tcl: Implementation of TIP 101. Adds + * tests/parseOld.test: and exports a [configure] command + * tests/tcltest.test: from tcltest. -2006-09-24 Miguel Sofer <msofer@users.sf.net> +2002-06-22 Don Porter <dgp@users.sourceforge.net> - * generic/tclParse.c (Tcl_ParseCommand): also return an error if - start==NULL and numBytes<0. This is coverity's bug #20 + * changes: updated changes file for 8.4b1 release. - * generic/tclStringObj.c (STRING_SIZE): fix allocation for 0-length - strings. This is coverity's bugs #54-5 + * library/tcltest/tcltest.tcl: Corrections to tcltest and the + * tests/basic.test: Tcl test suite so that a test + * tests/cmdInfo.test: with options -constraints knownBug + * tests/compile.test: -limitConstraints 1 only tests the + * tests/encoding.test: knownBug tests. Mostly involves + * tests/env.test: replacing direct access to the + * tests/event.test: testConstraints array with calls + * tests/exec.test: to the testConstraint command + * tests/execute.test: (which requires tcltest version 2) + * tests/fCmd.test: + * tests/format.test: + * tests/http.test: + * tests/httpold.test: + * tests/ioUtil.test: + * tests/link.test: + * tests/load.test: + * tests/namespace.test: + * tests/pkgMkIndex.test: + * tests/reg.test: + * tests/result.test: + * tests/scan.test: + * tests/stack.test: -2006-09-22 Andreas Kupries <andreask@activestate.com> +2002-06-22 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclInt.h: Moved TIP#268's field 'packagePrefer' to the end - of the structure, for better backward compatibility. + * tools/tcl.wse.in (Disk Label), unix/tcl.spec (version): + * win/README.binary, README, win/configure.in, unix/configure.in: + * generic/tcl.h (TCL_RELEASE_*, TCL_PATCH_LEVEL): Bump to beta1. -2006-09-22 Andreas Kupries <andreask@activestate.com> +2002-06-21 Joe English <jenglish@users.sourceforge.net> - TIP#268 IMPLEMENTATION + * generic/tclCompExpr.c: + * generic/tclParseExpr.c: LogSyntaxError() should reset the + interpreter result [Bug 550142 "Tcl_ExprObj -> abort"] - * generic/tclDecls.h: Regenerated from tcl.decls. - * generic/tclStubInit.c: +2002-06-21 Don Porter <dgp@users.sourceforge.net> - * doc/PkgRequire.3: Documentation of extended API, extended testsuite. - * doc/package.n: - * tests/pkg.test: + * unix/Makefile.in: Updated all package install directories to + * win/Makefile.in: match current Major.minor versions of the + * win/makefile.bc: packages. Added tcltest package to + * win/makefile.vc: installation on Windows. - * 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: + * library/init.tcl: Corrected comments and namespace style issues. + Thanks to Bruce Stephens. [Bug 572025] -2006-09-22 Donal K. Fellows <donal.k.fellows@man.ac.uk> +2002-06-21 Vince Darley <vincentdarley@users.sourceforge.net> - * generic/tclThreadTest.c (TclCreateThread): Use NULL instead of 0 as - end-of-strings marker to Tcl_AppendResult; the difference matters on - 64-bit machines. [Bug 1562528] + * tests/cmdAH.test: Added TIP#99 implementation of 'file + * tests/fCmd.test: link'. Supports creation of symbolic and + * tests/fileName.test: hard links in the native filesystems and + * tests/fileSystem.test: in vfs's, when the individual filesystem + * generic/tclTest.c: supports the concept. + * generic/tclCmdAH.c: + * generic/tclIOUtil.c: + * generic/tcl.h: + * generic/tcl.decls: + * doc/FileSystem.3: + * doc/file.n: + * mac/tclMacFile.c: + * unix/tclUnixFile.c: + * win/tclWinFile.c: Also enhanced speed of 'file normalize' on Windows -2006-09-21 Don Porter <dgp@users.sourceforge.net> +2002-06-20 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclUtil.c: Dropped ParseInteger() routine. TclParseNumber - covers the task just fine. + * generic/tclBasic.c (TclEvalObjvInternal): fix for [Bug 571385] in + the implementation of TIP#62 (command tracing). Vince Darley, Hemang + Lavana & Don Porter: thanks. -2006-09-19 Donal K. Fellows <dkf@users.sf.net> +2002-06-20 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclEvent.c (Tcl_VwaitObjCmd): Rewrite so that an exceeded - limit trapped in a vwait cannot cause a dangerous dangling trace. + * generic/tclExecute.c (TclCompEvalObj): clarified and simplified the + logic for compilation/recompilation. -2006-09-19 Don Porter <dgp@users.sourceforge.net> +2002-06-19 Joe English <jenglish@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] + * doc/file.n: Fixed indentation. No substantive changes. -2006-09-15 Jeff Hobbs <jeffh@ActiveState.com> +2002-06-19 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: + * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): get the resultPtr again as + the Tcl_ObjSetVar2 may cause the result to change. + [Patch 558324] (watson) -2006-09-12 Andreas Kupries <andreask@activestate.com> +2002-06-19 Miguel Sofer <msofer@users.sourceforge.net> - * unix/configure.in (HAVE_MTSAFE_GETHOST*): Modified to recognize - HP-UX 11.00 and beyond as having mt-safe implementations of the - gethost functions. - * unix/configure: Regenerated, using autoconf 2.59 + * generic/tclExecute.c (TEBC): removing unused "for(;;)" loop; + improved comments; re-indentation. - * unix/tclUnixCompat.c (PadBuffer): Fixed bug in calculation of the - increment needed to align the pointer, and added documentation - explaining why the macro is implemented as it is. +2002-06-18 Miguel Sofer <msofer@users.sourceforge.net> -2006-09-11 Pat Thoyts <patthoyts@users.sourceforge.net> + * generic/tclExecute.c (TEBC): + - elimination of duplicated code in the non-immediate INST_INCR + instructions. + - elimination of 103 (!) TclDecrRefCount macros. The different + instructions now jump back to a common "DecrRefCount zone" at the + top of the loop. The macro "ADJUST_PC" was replaced by two macros + "NEXT_INST_F" and "NEXT_INST_V" that take three params + (pcAdjustment, # of stack objects to discard, resultObjPtr handling + flag). The only instructions that retain a TclDecrRefCount are + INST_POP (for speed), the common code for the non-immediate + INST_INCR, INST_FOREACH_STEP and the two INST_LSET. - * 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. + The object size of tclExecute.o was reduced by approx 20% since the + start of the consolidation drive, while making room for some peep-hole + optimisation at runtime. -2006-09-11 Andreas Kupries <andreask@activestate.com> +2002-06-18 Miguel Sofer <msofer@users.sourceforge.net> - * unix/Makefile.in (install-libraries): Fixed typo tcltest 2.3.9 -> - 2.3.0. + * generic/tclExecute.c (TEBC, INST_DONE): small bug in the panic code + for tcl-stack corruption. -2006-09-11 Daniel Steffen <das@users.sourceforge.net> +2002-06-17 David Gravereaux <davygrvy@pobox.com> - * 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. + Trims to support the removal of RESOURCE_INCLUDED from rc scripts from + [FRQ 565088]. -2006-09-11 Andreas Kupries <andreask@activestate.com> + * generic/tcl.h: moved the #ifndef RC_INVOKED start block up in the + file. rc scripts don't need to know thread mutexes. - * tests/msgcat.test: Bumped version in auxiliary files as well. - * doc/msgcat.n: + * win/tcl.rc: + * win/tclsh.rc: removed the #define RESOURCE_INCLUDED to let the + built-in -DRC_INVOKED to the work. -2006-09-11 Kevin B. Kenny <kennykb@acm.org> +2002-06-17 Jeff Hobbs <jeffh@ActiveState.com> - * unix/Makefile.in: Bumped msgcat version to 1.4.2 to be - * win/Makefile.in: consistent with dgp's commits of 2006-09-10. + * doc/CrtTrace.3: Added TIP#62 implementation of command + * doc/trace.n: execution tracing [FRQ 462580] (lavana). + * generic/tcl.h: This includes enter/leave tracing as well + * generic/tclBasic.c: as inter-procedure stepping. + * generic/tclCmdMZ.c: + * generic/tclCompile.c: + * generic/tclExecute.c: + * generic/tclInt.decls: + * generic/tclInt.h: + * generic/tclIntDecls.h: + * generic/tclStubInit.c: + * generic/tclVar.c: + * tests/trace.test: -2006-09-11 Don Porter <dgp@users.sourceforge.net> +2002-06-17 Andreas Kupries <andreas_kupries@users.sourceforge.net> - * library/msgcat/msgcat.tcl: Removed some unneeded [uplevel]s. + * win/tclWinPipe.c (BuildCommandLine): Fixed [bug 554068] ([exec] on + windows did not treat { in filenames well.). Bug reported by Vince + Darley <vincentdarley@users.sourceforge.net>, patch provided by Vince + too. -2006-09-10 Don Porter <dgp@users.sourceforge.net> +2002-06-17 Joe English <jenglish@users.sourceforge.net> - * generic/tclExecute.c: Corrected INST_EXPON flaw that treated - * tests/expr.test: $x**1 as $x**3. [Bug 1555371] + * generic/tcl.h: #ifdef logic for K&R C backwards compatibility + changed to assume modern C by default. See [FRQ 565088] for full + details. - * 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: +2002-06-17 Don Porter <dgp@users.sourceforge.net> - * library/msgcat/msgcat.tcl: Bump to version msgcat 1.4.2 to - * library/msgcat/pkgIndex.tcl: account for modifications. + * doc/msgcat.n: Corrected en_UK references to en_GB. UK is not a + country designation recognized in ISO 3166. -2006-09-10 Daniel Steffen <das@users.sourceforge.net> + * library/msgcat/msgcat.tcl: More Windows Registry locale codes from + Bruno Haible. - * 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). + * doc/msgcat.n: + * library/msgcat/msgcat.tcl: + * library/msgcat/pkgIndex.tcl: + * tests/msgcat.test: Revised locale initialization to interpret + environment variable locale values according to XPG4, and to recognize + the LC_ALL and LC_MESSAGES values over that of LANG. Also added many + Windows Registry locale values to those recognized by msgcat. Revised + tests and docs. Bumped to version 1.3. Thanks to Bruno Haible for the + report and assistance crafting the solution. [Bug 525522, 525525] - * library/tcltest/tcltest.tcl: add 'line' verbose level: prints source - * doc/tcltest.n: file line information of failing tests. +2002-06-16 Miguel Sofer <msofer@users.sourceforge.net> - * macosx/Tcl.xcodeproj/project.pbxproj: add new tclUnixCompat.c file; - revise tests target to use new tcltest 'line' verbose level. + * generic/tclCompile.c (TclCompileTokens): a better algorithm for the + previous bug fix. - * 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 +2002-06-16 Miguel Sofer <msofer@users.sourceforge.net> -2006-09-08 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclCompile.c (TclCompileTokens): + * tests/compile.test: [Bug 569438] in the processing of dollar + variables; report by Georgios Petasis. - * 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). +2002-06-16 Miguel Sofer <msofer@users.sourceforge.net> - * unix/configure.in: Assume gethostbyname() and gethostbyaddr() are - MT-safe starting with Darwin 6 (Mac OSX 10.2). + * generic/tclExecute.c: bug in the consolidation of the INCR_..._STK + instructions; the bug could not be exercised as the (faulty) + instruction INST_INCR_ARRAY_STK was never compiled-in (related to [Bug + 569438]). - * unix/configure: Regenerated with autoconf V2.59 +2002-06-14 Miguel Sofer <msofer@users.sourceforge.net> -2006-09-08 Andreas Kupries <andreask@activestate.com> + * generic/tclExecute.c (TclExecuteByteCode): runtime peep-hole + optimisation of variables (INST_STORE, INST_INCR) and commands + (INST_INVOKE); faster check for the existence of a catch. + (TclExecuteByteCode): runtime peep-hole optimisation of comparisons. + (TclExecuteByteCode): runtime peep-hole optimisation of INST_FOREACH - + relies on peculiarities of the code produced by the bytecode compiler. - * unix/tclUnixCompat.c: Fixed conditions for CopyArray/CopyString, and - CopyHostent. Also fixed bad var names in TclpGetHostByName. +2002-06-14 David Gravereaux <davygrvy@pobox.com> -2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * win/rules.vc: The test for compiler optimizations was in error. + Thanks goes to Roy Terry <royterry@earthlink.net> for his assistance + with this. - * unix/tclUnixCompat.c: Added fallback to MT-unsafe library calls if - TCL_THREADS is not defined. - Fixed alignment of arrays copied by CopyArray() to be on the - sizeof(char *) boundary. +2002-06-14 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * doc/trace.n, tests/trace.test: + * generic/tclCmdMZ.c (Tcl_TraceObjCmd,TclTraceCommandObjCmd) + (TclTraceVariableObjCmd): Changed references to "trace list" to "trace + info" as mandated by TIP#102. - * unix/tclUnixChan.c: Rewritten MT-safe wrappers to return ptrs to - * unix/tclUnixCompat.c: TSD storage making them all look like their - * unix/tclUnixFCmd.c: MT-unsafe pendants API-wise. - * unix/tclUnixPort.h: - * unix/tclUnixSock.c: +2002-06-13 Miguel Sofer <msofer@users.sourceforge.net> -2006-09-06 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tclExecute.c (TclExecuteByteCode): consolidated code for the + conditional branch instructions. - * unix/tclUnixChan.c: Added TCL_THREADS ifdef'ed usage of MT-safe - * unix/tclUnixFCmd.c: calls like: getpwuid, getpwnam, getgrgid, - * unix/tclUnixSock.c: getgrnam, gethostbyname and gethostbyaddr. - * unix/tclUnixPort.h: See [Bug 999544] - * unix/Makefile.in: - * unix/configure.in: - * unix/tcl.m4: - * unix/configure: Regenerated. +2002-06-13 Miguel Sofer <msofer@users.sourceforge.net> - * unix/tclUnixCompat.c: New file containing MT-safe implementation of - some library calls. + * generic/tclExecute.c (TclExecuteByteCode): fixed the previous + patch - wouldn't compile with TCL_COMPILE_DEBUG set. -2006-09-04 Don Porter <dgp@users.sourceforge.net> +2002-06-13 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclCompExpr.c: Removed much complexity that is no - longer needed. + * generic/tclExecute.c (TclExecuteByteCode): consolidated the handling + of exception returns to INST_INVOKE and INST_EVAL, as well as most of + the code for INST_CONTINUE and INST_BREAK, in the new jump target + "processExceptionReturn". - * tests/main.text (Tcl_Main-4.4): Test corrected to not be - timing sensitive to the Bug 1481986 fix. [Bug 1550858] +2002-06-13 Miguel Sofer <msofer@users.sourceforge.net> -2006-09-04 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclExecute.c (TclExecuteByteCode): consolidated variable + handling opcodes, replaced redundant code with some 'goto'. All + store/append/lappend opcodes on the same data type now share the main + code; same with incr opcodes. + * generic/tclVar.c: added the bit TCL_TRACE_READS to the possible + flags to Tcl_SetVar2Ex - it causes read traces to be fired prior to + setting the variable. This is used in the core for [lappend]. - * doc/package.n: correct package example + ***NOTE*** the usage of TCL_TRACE_READS in Tcl_(Obj)?GetVar.* is not + documented; there, it causes the call to create the variable if it + does not exist. The new usage in Tcl_(Obj)?SetVar.* remains + undocumented too ... -2006-08-31 Don Porter <dgp@users.sourceforge.net> +2002-06-13 Vince Darley <vincentdarley@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/fCmd.test: + * tests/winFile.test: + * tests/fileSystem.test: + * generic/tclTest.c: + * generic/tclCmdAH.c: + * generic/tclIOUtil.c: + * doc/FileSystem.3: + * mac/tclMacFile.c: + * unix/tclUnixFile.c: + * win/tclWinFile.c: fixed up further so both compiles and actually + works with VC++ 5 or 6. + * win/tclWinInt.h: + * win/tclWin32Dll.c: cleaned up code and vfs tests and added tests for + the internal changes of 2002-06-12, to see whether WinTcl on NTFS can + coexist peacefully with links in the filesystem. Added new test + command 'testfilelink' to enable the newer code to be tested. + * tests/fCmd.test: (made certain tests of 'testfilelink' not run on + unix). - * tests/expr-old.test: The remaining failing tests reported in - * tests/expr.test: [Bug 1381715] are all new in Tcl 8.5, so - there's really no issue of compatibility with Tcl 8.4 result to deal - with. Fixed by updating tests to expect 8.5 results. +2002-06-12 Miguel Sofer <msofer@users.sourceforge.net> -2006-08-29 Don Porter <dgp@users.sourceforge.net> + * tclBasic.c (Tcl_DeleteTrace): fixed [Bug 568123] (thanks to + Hemang Lavana) - * generic/tclParseExpr.c: Dropped the old expr parser. +2002-06-12 Jeff Hobbs <jeffh@ActiveState.com> -2006-08-30 Jeff Hobbs <jeffh@ActiveState.com> + * win/tclWinFile.c: corrected the symbolic link handling code to + allow it to compile. Added real definition of REPARSE_DATA_BUFFER + (found in winnt.h). Most of the added definitions appear to have + correct, cross-Win-version equivalents in winnt.h and should be + removed, but just making things "work" for now. - * generic/tclBasic.c (Tcl_CreateInterp): init iPtr->threadId +2002-06-12 Vince Darley <vincentdarley@users.sourceforge.net> - * win/tclWinChan.c [Bug 819667] Improve logic for identifying COM - ports. + * generic/tclIOUtil.c: + * generic/tcl.decls: + * generic/tclDecls.h: made code for Tcl_FSNewNativePath agree with man + pages. - * generic/tclIOGT.c (ExecuteCallback): - * generic/tclPkg.c (Tcl_PkgRequireEx): replace Tcl_GlobalEval(Obj) - with more efficient Tcl_Eval(Obj)Ex + * doc/FileSystem.3: clarified the circumstances under which certain + functions are called in the presence of symlinks. - * unix/Makefile.in (valgrindshell): add valgrindshell target and - update default VALGRINDARGS. User can override, or add to it with - VALGRIND_OPTS env var. + * win/tclWinFile.c: + * win/tclWinPort.h: + * win/tclWinInt.h: + * win/tclWinFCmd.c: Fix for Windows to allow 'file lstat', 'file + type', 'glob -type l', 'file copy', 'file delete', 'file normalize', + and all VFS code to work correctly in the presence of symlinks + (previously Tcl's behaviour was not very well defined). This also + fixes possible serious problems in all versions of WinTcl where 'file + delete' on a NTFS symlink could delete the original, not the symlink. + Note: symlinks cannot yet be created in pure Tcl. - * generic/tclFileName.c (DoGlob): match incrs with decrs. +2002-06-11 Miguel Sofer <msofer@users.sourceforge.net> -2006-08-29 Don Porter <dgp@users.sourceforge.net> + * generic/tclBasic.c: + * generic/tclCompCmds.c: + * generic/tclInt.h: reverted the new compilation functions; replaced + by a more general approach described below. - * generic/tclParseExpr.c: Use the "parent" field of orphan - ExprNodes to store the closure of left pointers. This lets us avoid - repeated re-scanning leftward for the left boundary of subexpressions, - which in worst case led to near O(N^2) runtime. + * generic/tclCompCmds.c: + * generic/tclCompile.c: made *all* compiled variable access attempts + create an indexed variable - even get or incr without previous set. + This allows indexed access to local variables that are created and set + at runtime, for example by [global], [upvar], [variable], [regexp], + [regsub]. -2006-08-29 Joe Mistachkin <joe@mistachkin.com> +2002-06-11 Miguel Sofer <msofer@users.sourceforge.net> - * 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). + * doc/global.n: + * doc/info.n: + * test/info.test: + * generic/tclCmdIL.c: fix for [Bug 567386], [info locals] was + reporting some linked variables. -2006-08-29 Colin McCormack <coldstore@users.sourceforge.net> + * generic/tclBasic.c: + * generic/tclCompCmds.c: + * generic/tclInt.h: added compile functions for [global], [variable] + and [upvar]. They just declare the new local variables, the commands + themselves are not compiled-in. This gives a notably faster read + access to these linked variables. - * generic/tclIOUtil.c: Added test for NULL return from - * generic/tclPathObj.c: Tcl_FSGetNormalizedPath which was causing - * unix/tclUnixFile.c: segv's per [Bug 1548263] - * win/tclWinFCmd.c: - * win/tclWinFile.c: +2002-06-11 Miguel Sofer <msofer@users.sourceforge.net> -2006-08-28 Kevin B. Kenny <kennykb@acm.org> + * generic/tclExecute.c: optimised algorithm for exception range + lookup; part of [Patch 453709]. - * library/tzdata/America/Havana: Regenerated from Olson's - * library/tzdata/America/Tegucigalpa: tzdata2006k. - * library/tzdata/Asia/Gaza: +2002-06-10 Vince Darley <vincentdarley@users.sourceforge.net> -2006-08-28 Don Porter <dgp@users.sourceforge.net> + * unix/tclUnixFCmd.c: fixed [Bug 566669] + * generic/tclIOUtil.c: improved and sped up handling of native paths + (duplication and conversion to normalized paths), particularly on + Windows. + * modified part of above commit, due to problems on Linux. Will + re-examine bug report and evaluate more closely. - * generic/tclStringObj.c: Revised ObjPrintfVA to take care to - * generic/tclParseExpr.c: copy only whole characters when doing - %s formatting. This relieves callers of TclObjPrintf() and - TclFormatToErrorInfo() from needing to fix arguments to character - boundaries. Tcl_ParseExpr() simplified by taking advantage. [Bug - 1547786] +2002-06-07 Don Porter <dgp@users.sourceforge.net> - * generic/tclStringObj.c: Corrected TclFormatObj's failure to - count up the number of arguments required by examining the format - string. [Bug 1547681] + * tests/tcltest.test: More corrections to test suite so that tests of + failing [test]s don't show up themselves as failing tests. -2006-08-27 Joe Mistachkin <joe@mistachkin.com> +2002-06-07 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclClock.c (ClockClicksObjCmd): Fix nested macro breakage - with TCL_MEM_DEBUG enabled. [Bug 1547662] + * generic/tclExecute.c: Tidied up headers in relation to float.h to + cut the cruft and ensure DBL_MAX is defined since doubles seem to be + the same size everywhere; if the assumption isn't true, the variant + platforms had better have run configure... -2006-08-26 Miguel Sofer <msofer@users.sf.net> + * unix/tclUnixPort.h (EOVERFLOW): Added code to define it if it wasn't + previously defined. Also some other general tidying and adding of + comments. [Bugs 563122, 564595] + * compat/tclErrno.h: Added definition for EOVERFLOW copied from + Solaris headers; I've been unable to find any uses of EFTYPE, which + was the error code previously occupying the slot, in Tcl, or any + definition of it in the Solaris headers. - * 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. +2002-06-06 Mo DeJong <mdejong@users.sourceforge.net> -2006-08-24 Kevin B. Kenny <kennykb@acm.org> + * unix/dltest/Makefile.in: Remove hard coded CFLAGS=-g and add + CFLAGS_DEBUG, CFLAGS_OPTIMIZE, and CFLAGS_DEFAULT varaibles. [Bug + 565488] - * 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. +2002-06-06 Don Porter <dgp@users.sourceforge.net> -2006-08-23 Don Porter <dgp@users.sourceforge.net> + * tests/tcltest.test: Corrections to test suite so that tests of + failing [test]s don't show up themselves as failing tests. - * 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. + * tests/io.test: Fixed up namespace variable resolution issues + revealed by running test suite with "-singleproc 1". -2006-08-21 Don Porter <dgp@users.sourceforge.net> + * doc/tcltest.n: + * library/tcltest/tcltest.tcl: + * tests/tcltest.test: Several updates to tcltest. + 1) changed to lazy initialization of test constraints + 2) deprecated [initConstraintsHook] + 3) repaired badly broken [limitConstraints]. + 4) deprecated [threadReap] and [mainThread] + [Patch 512214, Bug 558742, Bug 461000, Bug 534903] - * generic/tclIOUtil.c: Revisions to complete the thread finalization - of the cwdPathPtr. [Bug 1536142] +2002-06-06 Daniel Steffen <das@users.sourceforge.net> - * generic/tclParseExpr.c: Revised mistaken call to - TclCheckBadOctal(), so both [expr 08] and [expr 08z] have same - additional info in error message. + * unix/tclUnixThrd.c (TclpReaddir, TclpLocaltime, TclpGmtime): + added mutex wrapped calls to readdir, localtime & gmtime in case their + thread-safe *_r counterparts are not available. + * unix/tcl.m4: added configure check for readdir_r + * unix/tcl.m4 (Darwin): set TCL_DEFAULT_ENCODING to utf-8 on MacOSX + (where posix file apis expect utf-8, not iso8859-1). + * unix/configure: regen + * unix/Makefile.in: set DYLD_LIBRARY_PATH in parallel to + LD_LIBRARY_PATH for MacOSX dynamic linker. + * generic/tclEnv.c (TclSetEnv): fix env var setting on MacOSX. Adapted + from [Patch 524352] (jkbonfield). - * 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: +2002-06-05 Don Porter <dgp@users.sourceforge.net> -2006-08-21 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * doc/Tcl_Main.3: Documented $tcl_rcFileName and added more + clarifications about the intended use of Tcl_Main(). [Bug 505651] - * win/Makefile.in (gdb): Make this target work so that debugging an - msys build is possible. +2002-06-05 Daniel Steffen <das@users.sourceforge.net> -2006-08-21 Daniel Steffen <das@users.sourceforge.net> + * generic/tclFileName.c (TclGlob): mac specific fix to recent changes + in 'glob -tails' handling. + * mac/tclMacPort.h: + * mac/tclMacChan.c: fixed TIP#91 bustage. + * mac/tclMacResource.c (Tcl_MacConvertTextResource): added utf + conversion of text resource contents. + * tests/macFCmd.test (macFCmd-1.2): allow CWIE creator. - * 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. +2002-06-04 Don Porter <dgp@users.sourceforge.net> - * 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] + * library/tcltest/tcltest.tcl: + * tests/init.test: + * tests/tcltest.test: Added more TIP 85 tests from Arjen Markus. + Converted tcltest.test to use a private namespace. Fixed bugs in + [tcltest::Eval] revealed by calling [tcltest::test] from a non-global + namespace, and namespace errors in init.test. - * 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 +2002-06-04 Mo DeJong <mdejong@users.sourceforge.net> - * 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] + * win/README: Update msys+mingw URL. -2006-08-18 Daniel Steffen <das@users.sourceforge.net> +2002-06-03 Don Porter <dgp@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 + * doc/tcltest.n: + * library/tcltest/tcltest.tcl: + * library/tcltest/pkgIndex.tcl: + * tests/tcltest.test: Implementation of TIP 85. Allows tcltest users + to add new legal values of the -match option to [test], associating + each with a Tcl command that does the matching of expected results + with actual results of tests. Thanks to Arjen Markus. => tcltest 2.1 + [Patch 521362] - * generic/tcl.h: add fixes for building on Leopard and - * unix/tclUnixPort.h: support for 64-bit CoreFoundation on Leopard - * macosx/tclMacOSXFCmd.c: +2002-06-03 Miguel Sofer <msofer@users.sourceforge.net> - * unix/tclUnixPort.h: on Darwin x86_64, disable use of vfork as it - causes execve to fail intermittently. (rdar://4685553) + * doc/namespace.n: added description of [namepace forget] behaviour + for unqualified patterns [Bug 559268] - * 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) +2002-06-03 Miguel Sofer <msofer@users.sourceforge.net> - * macosx/Tcl.xcodeproj/project.pbxproj: add x86_64 to universal build, - switch native release targets to use DWARF with dSYM, Xcode 3.0 - changes - * macosx/README: updates for x86_64 and Xcode 2.4. + * generic/tclExecute.c: reverting an accidental modification in the + last commit. - * macosx/Tcl.xcodeproj/default.pbxuser: add test suite target that - * macosx/Tcl.xcodeproj/project.pbxproj: runs the tcl test suite at - build time and shows clickable test suite errors in the GUI build - window. +2002-06-03 Miguel Sofer <msofer@users.sourceforge.net> - * tests/macOSXFCmd.test: fix use of deprecated resource fork paths. + * doc/Tcl.n: clarify the empty variable name issue ([Bug 549285] + reported by Tom Krehbiel, patch by Don Porter). - * unix/tclUnixInit.c (TclpInitLibraryPath): move code that is only - needed when TCL_LIBRARY is defined to run only in that case. +2002-05-31 Don Porter <dgp@users.sourceforge.net> - * generic/tclLink.c (LinkTraceProc): fix 64-bit signed-with-unsigned - comparison warning from gcc4 -Wextra. + * library/package.tcl: Fixed leak of slave interp in [pkg_mkIndex]. + Thanks to Helmut for report. [Bug 550534] - * 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. + * tests/io.test: + * tests/main.test: Use the "stdio" constraint to control whether an + [open "|[interpreter]"] is attempted. + + * generic/tclExecute.c (TclMathInProgress,TclExecuteByteCode + (ExprCallMathFunc): + * generic/tclInt.h (TclMathInProgress): + * unix/Makefile.in (tclMtherr.*): + * unix/configure.in (NEED_MATHERR): + * unix/tclAppInit.c (matherr): + * unix/tclMtherr.c (removed file): + * win/tclWinMtherr.c (_matherr): Removed internal routine + TclMathInProgress and Unix implementation of matherr(). These are now + obsolete, dealing with very old versions of the C math library. + Windows version is retained in case Borland compilers require it, but + it is inactive. Thanks to Joe English. [Bug 474335, Patch 555635] + * unix/configure: regen + +2002-05-30 Miguel Sofer <msofer@users.sourceforge.net> -2006-08-17 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompExpr.c: + * generic/tclCompile.c: + * generic/tclCompile.h: removed exprIsJustVarRef and + exprIsComparison from the ExprInfo and CompileEnv structs. These were + set, but not used since dec 1999 [Bug 562383]. - * generic/tclCompile.c: Revised the new set of expression - * generic/tclParseExpr.c: parse error messages. +2002-05-30 Vince Darley <vincentdarley@users.sourceforge.net> -2006-08-16 Don Porter <dgp@users.sourceforge.net> + * generic/tclFileName.c (TclGlob): fix to longstanding 'knownBug' in + fileName tests 15.2-15.4, and fix to a new Tcl 8.4 bug in certain uses + of 'glob -tails'. + * tests/fileName.test: removed 'knownBug' flag from some tests, added + some new tests for above bugs. - * generic/tclParseExpr.c: Replace PrecedenceOf() function with - prec[] static array. +2002-05-29 Jeff Hobbs <jeffh@ActiveState.com> -2006-08-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * unix/configure: regen'ed + * unix/configure.in: replaced bigendian check with autoconf standard + AC_C_BIG_ENDIAN, which defined WORDS_BIGENDIAN on bigendian systems. + * generic/tclUtf.c (Tcl_UniCharNcmp): + * generic/tclInt.h (TclUniCharNcmp): use WORDS_BIGENDIAN instead of + TCL_OPTIMIZE_UNICODE_COMPARE to enable memcmp alternative. - * library/clock.tcl (::tcl::clock::add): Added missing braces to - clockval validation code. Pointed out on comp.lang.tcl. + * generic/tclExecute.c (TclExecuteByteCode INST_STR_CMP): + * generic/tclCmdMZ.c (Tcl_StringObjCmd): changed the case for choosing + the Tcl_UniCharNcmp compare to when both objs are of StringType, as + benchmarks show that is the optimal check (both bigendian and + littleendian systems). -2006-08-11 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2002-05-29 Don Porter <dgp@users.sourceforge.net> - * generic/tclNamesp.c: Improvements in buffer management to make - namespace creation faster. Plus selected other minor improvements to - code quality. [Patch 1352382] + * generic/tclMain.c: Removed "dummy" reference to Tcl_LinkVar. It is + no longer needed since Tcl_Main() now actually calls Tcl_LinkVar(). + Thanks to Joe English for pointing that out. -2006-08-10 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2002-05-29 Donal K. Fellows <fellowsd@cs.man.ac.uk> - 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. + * generic/tclExecute.c (TclExecuteByteCode): + * generic/tclCmdMZ.c (Tcl_StringObjCmd): Use the macro version. + * generic/tclInt.h (TclUniCharNcmp): Optimised still further with a + macro for use in sensitive places like tclExecute.c -2006-08-09 Don Porter <dgp@users.sourceforge.net> + * generic/tclUtf.c (Tcl_UniCharNcmp): Use new flag to figure out when + we can use an optimal comparison scheme, and default to the old scheme + in other cases which is at least safe. + * unix/configure.in (TCL_OPTIMIZE_UNICODE_COMPARE): New optional flag + that indicates when we can use memcmp() to compare Unicode strings + (i.e. when the high-byte of a Tcl_UniChar precedes the low-byte.) - * generic/tclEncoding.c: Replace buffer copy in for loop with - call to memcpy(). Thanks to afredd. [Patch 1530262] +2002-05-29 Jeff Hobbs <jeffh@ActiveState.com> -2006-08-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclInt.decls: + * generic/tclIntDecls.h: + * generic/tclStubInit.c: + * generic/tclUtf.c: added TclpUtfNcmp2 private command that mirrors + Tcl_UtfNcmp, but takes n in bytes, not utf-8 chars. This provides a + faster alternative for comparing utf strings internally. + (Tcl_UniCharNcmp, Tcl_UniCharNcasecmp): removed the explicit end of + string check as it wasn't correct for the function (by doc and logic). + + * generic/tclCmdMZ.c (Tcl_StringObjCmd): reworked the string equal + comparison code to use TclpUtfNcmp2 as well as short-circuit for equal + objects or unequal length strings in the equal case. Removed the use + of goto and streamlined the other parts. + + * generic/tclExecute.c (TclExecuteByteCode): added check for object + equality in the comparison instructions. Added short-circuit for != + length strings in INST_EQ, INST_NEQ and INST_STR_CMP. Reworked + INST_STR_CMP to use TclpUtfNcmp2 where appropriate, and only use + Tcl_UniCharNcmp when at least one of the objects is a Unicode obj with + no utf bytes. + + * generic/tclCompCmds.c (TclCompileStringCmd): removed error creation + in code that no longer throws an error. - * generic/tclCmdIL.c (Tcl_LassignObjCmd): Make the wrong#args message - a bit more consistent with those used elsewhere. [Bug 1534628] + * tests/string.test: + * tests/stringComp.test: added more string comparison checks. - * generic/tclDictObj.c (DictForCmd): Stop crash when attempting to - iterate over an invalid dictionary. [Bug 1531184] + * tests/clock.test: better qualified 9.1 constraint check for %s. - * 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] +2002-05-28 Jeff Hobbs <jeffh@ActiveState.com> -2006-08-03 Daniel Steffen <das@users.sourceforge.net> + * generic/tclThreadAlloc.c (TclpRealloc, TclpFree): protect against + the case when NULL is based. - * unix/tclUnixPipe.c (TclpCreateProcess): for USE_VFORK: ensure - standard channels are initialized before vfork() so that the child - doesn't potentially corrupt global state in the parent's address space - - * tests/compExpr-old.test: add 'oldExprParser' constraint to all tests - * tests/compExpr.test: that depend on the exact format of the - * tests/compile.test: error messages of the pre-2006-07-05 - * tests/expr-old.test: expression parser. The constraint is on by - * tests/expr.test: default (i.e those tests still fail), but - * tests/for.test: can be turned off by passing '-constraints - * tests/if.test: newExprParser' to tcltest, which will skip - * tests/parseExpr.test: the 196 failing tests in the testsuite that - * tests/while.test: are caused by the new expression parser - error messages. + * tests/clock.test: added clock-9.1 + * compat/strftime.c: + * generic/tclClock.c: + * generic/tclInt.decls: + * generic/tclIntDecls.h: + * unix/tclUnixTime.c: fix for Windows msvcrt mem leak caused by using + an env(TZ) setting trick for in clock format -gmt 1. This also makes + %s seem to work correctly with -gmt 1 as well as making it a lot + faster by avoid the env(TZ) hack. TclpStrftime now takes useGMT as an + arg. [Bug 559376] + +2002-05-28 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclIOUtil.c: fixes to Tcl_FSLoadFile when called on a file + inside a vfs. This should avoid leaving temporary files sitting around + on exit. [Bug 545579] + +2002-05-27 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + * win/tclWinError.c: Added comment on conversion of + ERROR_NEGATIVE_SEEK because that is a mapping that really belongs, and + not a catch-all case. + * win/tclWinPort.h (EOVERFLOW): Should be either EFBIG or EINVAL + * generic/tclPosixStr.c (Tcl_ErrnoId, Tcl_ErrnoMsg): EOVERFLOW can + potentially be a synonym for EINVAL. + +2002-05-24 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + === Changes due to TIP#91 === + + * win/tclWinPort.h: Added declaration of EOVERFLOW. + * doc/CrtChannel.3: Added documentation of wideSeekProc. + * generic/tclIOGT.c (TransformSeekProc, TransformWideSeekProc): + Adapted to use the new channel mechanism. + * unix/tclUnixChan.c (FileSeekProc, FileWideSeekProc): Renamed + FileSeekProc to FileWideSeekProc and created new FileSeekProc which + has the old-style interface and which errors out with EOVERFLOW when + the returned file position can't fit into the return type (int for + historical reasons.) + * win/tclWinChan.c (FileSeekProc, FileWideSeekProc): Renamed + FileSeekProc to FileWideSeekProc and created new FileSeekProc which + has the old-style interface and which errors out with EOVERFLOW when + the returned file position can't fit into the return type (int for + historical reasons.) + * mac/tclMacChan.c (FileSeek): Reverted to old interface; Macs lack + large-file support because I can't see how to add it. + * generic/tclIO.c (Tcl_Seek, Tcl_Tell): Given these functions + knowledge of the new arrangement of channel types. + (Tcl_ChannelVersion): Added recognition of new version code. + (HaveVersion): New function to do version checking. + (Tcl_ChannelBlockModeProc, Tcl_ChannelFlushProc) + (Tcl_ChannelHandlerProc): Made these functions use HaveVersion for + ease of future maintainability. + (Tcl_ChannelBlockModeProc): Obvious lookup function. + * generic/tcl.h (Tcl_ChannelType): New wideSeekProc field, and + seekProc type restored to old interpretation. + (TCL_CHANNEL_VERSION_3): New channel version. + +2002-05-24 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tests/winPipe.test: Applied patch for [Bug 549617]. Patch and bug + report by Kevin Kenny <kennykb@users.sourceforge.net>. + + * win/tclWinSock.c (TcpWatchProc): Fixed [Bug 557878]. We are not + allowed to mess with the watch mask if the socket is a server socket. + I believe that the original reporter is George Peter Staplin. + +2002-05-21 Mo DeJong <mdejong@users.sourceforge.net> + + * unix/configure: Regen. + * unix/configure.in: Invoke SC_ENABLE_SHARED before calling + SC_CONFIG_CFLAGS so that the SHARED_BUILD variable can be checked + inside SC_CONFIG_CFLAGS. + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Pass -non_shared instead of -shared + to ld when configured with --disable-shared under OSF. [Bug 540390] + +2002-05-20 Daniel Steffen <das@users.sourceforge.net> + + * generic/tclInt.h: added prototype for TclpFilesystemPathType(). + * mac/tclMacChan.c: use MSL provided creator type if available instead + of the default 'MPW '. + +2002-05-16 Joe English <jenglish@users.sf.net> + + * doc/CrtObjCmd.3: Added Tcl_GetCommandFromObj, Tcl_GetCommandFullName + [Bugs 547987, 414921] + +2002-05-14 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + * unix/tclUnixChan.c (TtyOutputProc): #if/#endif-ed this function out + to stop compiler warnings. Also much general tidying of comments in + this file and removal of whitespace from blank lines. + +2002-05-13 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + * unix/tclUnixChan.c (SETBREAK): Solaris thinks ioctl() takes a signed + second argument, and Linux thinks ioctl() takes an unsigned second + argument. So need a longer definition of this macro to get neither to + spew warnings... + +2002-05-13 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclEvent.c: + * generic/tclIOUtil.c: + * generic/tclInt.h: clean up all memory allocated by the filesystem, + via introduction of 'TclFinalizeFilesystem'. Move TclFinalizeLoad into + TclFinalizeFilesystem so we can be sure it is called at just the right + time. Fix bad comment also. [Bug 555078 and 'fs' part of 543549] + * win/tclWinChan.c: fix comment referring to wrong function. -2006-07-31 Kevin B. Kenny <kennykb@acm.org> +2002-05-10 Don Porter <dgp@users.sourceforge.net> - * generic/tclClock.c (ConvertLocalToUTCUsingC): Corrected a regression - that caused dates before 1969 to be one day off in the :localtime time - zone if TZ is not set. [Bug 1531530] + * tests/load.test: + * tests/safe.test: + * tests/tcltest.test: Corrected some list-quoting issues and other + matters that cause tests to fail when the patch includes special + characters. Report from Vince Darley. [Bug 554068]. -2006-07-30 Kevin B. Kenny <kennykb@acm.org> +2002-05-08 David Gravereaux <davygrvy@pobox.com> - * generic/tclClock.c (GetJulianDayFromEraYearMonthDay): Corrected - several errors in converting dates before the Common Era [Bug 1426279] - * library/clock.tcl: Corrected syntax errors in generated code for %EC - %Ey, and %W format groups [Bug 1505383]. Corrected a bug in cache - management for format strings containing [glob] metacharacters [Bug - 1494664]. Corrected several errors in formatting/scanning of years - prior to the Common Era, and added the missing %EE format group to - indicate the era. - * tools/makeTestCases.tcl: Added code to make sure that %U and %V - format groups are included in the tests. (The code depends on %U and - %V formatting working correctly when 'makeTestCases.tcl' is run, - rather than making a completely independent check.) Added tests for - [glob] metacharacters in strings. Added tests for years prior to the - Common Era. - * tests/clock.test: Rebuilt with new test cases for all the above. + * doc/file.n: + * tools/man2tcl.c: + * tools/man2help2.tcl: Thanks to Peter Spjuth <peter.spjuth@space.se>, + again. My prior fix for single-quote macro mis-understanding was + wrong. Reverted to reimpliment the 'macro2' proc which handles + single-quote macros and restored file.n text arrangement to avoid + single-quotes on the first line. Sorry for all the confusion. -2006-07-30 Joe English <jenglish@users.sourceforge.net> +2002-05-08 David Gravereaux <davygrvy@pobox.com> - * doc/AppInit.3: Fix typo [Bug 1496886] + * tools/man2tcl.c: + * tools/man2help2.tcl: Proper source of macro error mis-understanding + single-quote as the leading macro command found and repaired. -2006-07-26 Don Porter <dgp@users.sourceforge.net> + * doc/file.n: Reverted to prior state before I messed with it. - * 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]. +2002-05-08 Don Porter <dgp@users.sourceforge.net> -2006-07-24 Don Porter <dgp@users.sourceforge.net> + * library/tcltest/tcltest.tcl: Corrected [uplevel] quoting when + [source]-ing test script in subdirectories. + * tests/fileName.test: + * tests/load.test: + * tests/main.test: + * tests/tcltest.test: + * tests/unixInit.test: Fixes to test suite when there's a space in the + working path. Thanks to Kevin Kenny. + +2002-05-07 David Gravereaux <davygrvy@pobox.com> + + -- Changes from Peter Spjuth <peter.spjuth@space.se> + * tools/man2tcl.c: Increased line buffer size and a bail-out if that + should ever be over-run. + * tools/man2help.tcl: Include Courier New font in rtf header. + * tools/man2help2.tcl: Improved handling of CS/CE fields. Use Courier + New for code samples and indent better. + + * doc/file.n: + * doc/TraceCmd.3: winhelp conversion tools where understanding a ' as + the first character on a line to be an unknown macro. Not knowing how + to repair tools/man2tcl.c, I decided to rearrange the text in the docs + instead. + +2002-05-07 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclFileName.c: fix to similar segfault when using + 'glob -types nonsense -dir dirname -join * *'. [Bug 553320] + + * doc/FileSystem.3: further documentation on vfs. + * tests/cmdAH.test: + * tests/fileSystem.test: + * tests/pkgMkindex.test: Fix to testsuite bugs when running out of + directory whose name contains '{' or '['. + +2002-05-07 Miguel Sofer <msofer@users.sourceforge.net> + + * tests/basic.test: Fix for [Bug 549607] + * tests/encoding.test: Fix for [Bug 549610] + These are testsuite bugs that caused failures when the filename + contained spaces. Report & fix by Kevin Kenny. + +2002-05-02 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclFileName.c: fix to freeing a bad object (i.e. segfault) + when using 'glob -types nonsense -dir dirname'. + * generic/tclWinFile.c: fix to [Bug 551306], also wrapped some long + lines. + * tests/fileName.test: added several tests for the above bugs. + * doc/FileSystem.3: clarified documentation on refCount requirements + of the object returned by the path type function. + * generic/tclIOUtil.c: + * win/tclWinFile.c: + * unix/tclUnixFile.c: + * mac/tclMacFile.c: moved TclpFilesystemPathType to the platform + specific directories, so we can add missing platform-specific + implementations. On Windows, 'file system' now returns useful results + like "native NTFS", "native FAT" for that system. Unix and MacOS still + only return "native". + * doc/file.n: clarified documentation. + * tests/winFile.test: test for 'file system' returning correct values. + * tests/fileSystem.test: test for 'file system' returning correct + values. Clean up after failed previous test run. + +2002-04-26 Jeff Hobbs <jeffh@ActiveState.com> - * win/tclWinSock.c: Correct un-initialized Tcl_DString. Thanks to - afredd. [Bug 1518166] + * unix/configure: + * unix/tcl.m4: change HP-11 SHLIB_LD_LIBS from "" to ${LIBS} so that + the .sl knows its dependent libs. -2006-07-21 Miguel Sofer <msofer@users.sf.net> +2002-04-26 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclExecute.c: - * tests/execute.test (execute-9.1): dgp's fix for [Bug 1522803]. + * tests/obj.test (obj-11.[56]): Test conversion to boolean more + thoroughly. + * generic/tclObj.c (SetBooleanFromAny): Was not calling an integer + parsing function on native 64-bit platforms! [Bug 548686] -2006-07-20 Daniel Steffen <das@users.sourceforge.net> +2002-04-24 Jeff Hobbs <jeffh@ActiveState.com> - * macosx/tclMacOSXNotify.c (Tcl_InitNotifier, Tcl_WaitForEvent): - create notifier thread lazily upon first call to Tcl_WaitForEvent() - rather than in Tcl_InitNotifier(). Allows calling exeve() in processes - where the event loop has not yet been run (Darwin's execve() fails in - processes with more than one thread), in particular allows embedders - to call fork() followed by execve(), previously the pthread_atfork() - child handler's call to Tcl_InitNotifier() would immediately recreate - the notifier thread in the child after a fork. + * generic/tclInt.h: corrected TclRememberJoinableThread decl to use + VOID instead of void. + * generic/tclThreadJoin.c: noted that this code isn't needed on Unix. - * 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 +2002-04-23 Jeff Hobbs <jeffh@ActiveState.com> - * 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. + * doc/exec.n: + * doc/tclvars.n: doc updates [Patch 509426] (gravereaux) -2006-07-13 Andreas Kupries <andreask@activestate.com> +2002-04-24 Daniel Steffen <das@users.sourceforge.net> - * unix/tclUnixPort.h: Added the inclusion of <AvailabilityMacros.h>. - The missing header caused the upcoming #if conditions to wrongly - exclude realpath, causing file normalize to ignore symbolic links in - the path. + * mac/tclMacResource.r: added check of TCLTK_NO_LIBRARY_TEXT_RESOURCES + #define to allow disabling the inclusion of the tcl library code in + the resource fork of Tcl executables and shared libraries. -2006-07-11 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> +2002-04-23 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclAsync.c: Made Tcl_AsyncDelete() more tolerant when called - after all thread TSD has been garbage-collected. + * doc/TraceCmd.3: New file that documents Tcl_CommandTraceInfo, + Tcl_TraceCommand and Tcl_UntraceCommand [Bug 414927] -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: +2002-04-22 Jeff Hobbs <jeffh@ActiveState.com> -2006-06-20 Don Porter <dgp@users.sourceforge.net> + * generic/tclAlloc.c: + * generic/tclInt.h: + * generic/tclThreadAlloc.c (new): + * unix/Makefile.in: + * unix/tclUnixThrd.c: + * win/Makefile.in: + * win/tclWinInt.h: + * win/tclWinThrd.c: added new threaded allocator contributed by AOL + that significantly reduces lock contention when multiple threads are + in use. Only Windows and Unix implementations are ready, and the + Windows one may need work. It is only used by default on Unix for now, + and requires that USE_THREAD_ALLOC be defined (--enable-threads on + Unix will define this). - * 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/tclIOUtil.c (Tcl_FSRegister, Tcl_FSUnregister): corrected + calling of Tcl_ConditionWait to ensure that there would be a condition + to wait upon. - * generic/tclIntDecls.h: make genstubs - * generic/tclStubInit.c: + * generic/tclCmdAH.c (Tcl_FileObjCmd): added cast in FILE_SIZE. - * generic/tclStrToD.c: Removed dead code that permitted disabling of - recognition of the new 0b and 0o numeric formats. + * win/tclWinFCmd.c (DoDeleteFile): check return of setattr API calls + in file deletion for correct Win32 API handling. - * 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 + * win/Makefile.in: correct dependencies for shell, gdb, runtest + targets. - * generic/tclCmdAH.c: Removed dead code that was old implementation - of [format]. + * doc/clock.n: + * compat/strftime.c (_fmt): change strftime to correctly handle + localized %c, %x and %X on Windows. Added some notes about how the + other values could be further localized. -2006-06-14 Daniel Steffen <das@users.sourceforge.net> +2002-04-19 Don Porter <dgp@users.sourceforge.net> - * unix/tclUnixPort.h (Darwin): support MAC_OS_X_VERSION_MAX_ALLOWED - define from AvailabilityMacros.h: override configure detection and - only use API available in the indicated OS version or earlier. + * generic/tclMain.c (Tcl_Main): Free the memory allocated for the + startup script path. [Bug 543549] -2006-06-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * library/msgcat/msgcat.tcl: [mcmax] wasn't using the caller's + namespace when determining the max translated length. Also made + revisions for better use of namespace variables and more efficient + [uplevel]s. - * doc/format.n, doc/scan.n: Added examples for converting between - characters and their numeric interpretations following user prompting. + * doc/msgcat.n: + * library/msgcat/msgcat.tcl: + * library/msgcat/pkgIndex.tcl: Added [mcload] to the export list of + msgcat; bumped to 1.2.3. [Bug 544727] -2006-06-13 Donal K. Fellows <dkf@users.sf.net> +2002-04-20 Daniel Steffen <das@users.sourceforge.net> - * unix/tclLoadDl.c (TclpDlopen): Workaround for a compiler bug in Sun - Forte 6. [Bug 1503729] + * generic/tclInt.decls: + * generic/tclIntPlatDecls.h: + * generic/tclStubInit.c: + * mac/tclMacFCmd.c: + * mac/tclMacFile.c: + * mac/tclMacUtil.c: Modified TclpObjNormalizePath to be alias file + aware, and replaced various calls to FSpLocationFrom*Path by calls to + new alias file aware versions FSpLLocationFrom*Path. The alias file + aware routines don't resolve the last component of a path if it is an + alias. This allows [file copy/delete] etc. to act correctly on alias + files. (c.f. discussion in [Bug 511666]) -2006-06-06 Don Porter <dgp@users.sourceforge.net> +2002-04-19 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * doc/GetStdChan.3: Added recommendation that each call to - Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel(). + * tests/lindex.test (lindex-3.7): + * generic/tclUtil.c (TclGetIntForIndex): Stopped indexes from hitting + wide ints. [Bug 526717] -2006-06-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2002-04-18 Miguel Sofer <msofer@users.sourceforge.net> - * 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. + * generic/tclNamesp.c: + * tests/info.test: [Bug 545325] info level didn't report namespace + eval, bug report by Richard Suchenwirth. -2006-05-29 Jeff Hobbs <jeffh@ActiveState.com> +2002-04-18 Don Porter <dgp@users.sourceforge.net> - * generic/tcl.h (Tcl_DecrRefCount): use if/else construct to allow - placement in unbraced outer if/else conditions. (jcw) + * doc/subst.n: Clarified documentation on handling unusual return + codes during substitution, and on variable substitutions implied by + command substitution, and vice versa. [Bug 536838] -2006-05-27 Daniel Steffen <das@users.sourceforge.net> +2002-04-18 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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] + * generic/tclCmdIL.c (InfoBodyCmd): + * tests/info.test (info-2.6): Proc bodies without string reps would + report as empty [Bug 545644] - * unix/configure: autoconf-2.59 - * unix/tclConfig.h.in: autoheader-2.59 + * generic/tclCmdMZ.c (Tcl_SubstObj): More clarification for comment on + behaviour when substitutions are not well-formed, prompted by [Bug + 536831]; alas, removing the ill-defined behaviour is a lot of work. -2006-05-24 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2002-04-18 Miguel Sofer <msofer@users.sourceforge.net> - * 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] + * generic/tclExecute.c: + * tests/expr-old.test: fix for [Bug 542588] (Phil Ehrens), where "too + large integers" were reported as "floating-point value" in [expr] + error messages. -2006-05-23 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2002-04-17 Jeff Hobbs <jeffh@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/tclEncoding.c (EscapeFromUtfProc): + * generic/tclIO.c (WriteChars, Tcl_Close): corrected the handling of + outputting end escapes for escape-based encodings. + [Bug 526524] (yamamoto) -2006-05-13 Don Porter <dgp@users.sourceforge.net> +2002-04-17 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. + * doc/tcltest.n: Removed [saveState] and [restoreState] from tcltest + 2 documentation, effectively deprecating them. [Bug 495660] + * library/tcltest/tcltest.tcl: Made separate export for commands kept + only for tcltest 1 compatibility. -2006-05-13 Daniel Steffen <das@users.sourceforge.net> + * tests/iogt.test: Revised to run tests in a namespace, rather than + use the useless and buggy [saveState] and [restoreState] commands of + tcltest. Updated to use tcltest 2 as well. [Patch 544911] - * generic/tclEvent.c (HandleBgErrors): fix leak. [Coverity issue 86] +2002-04-16 Don Porter <dgp@users.sourceforge.net> -2006-05-05 Don Porter <dgp@users.sourceforge.net> + * tests/io.test: Revised to run tests in a namespace, rather than use + the useless and buggy [saveState] and [restoreState] commands of + tcltest. Updated to use tcltest 2 as well. [Patch 544546] - * generic/tclMain.c (Tcl_Main): Corrected flaw that required - * tests/main.test: (Tcl_Main-4.5): processing of one interactive - command before passing control to the loop routine registered with - Tcl_SetMainLoop(). [Bug 1481986] +2002-04-15 Miguel Sofer <msofer@users.sourceforge.net> -2006-05-04 Don Porter <dgp@users.sourceforge.net> + * generic/tclProc.c: + * tests/proc-old.test: Improved stack trace for TCL_BREAK and + TCL_CONTINUE returns from procs. [Bug 536955] (dgp) - * 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/tclExecute.c: + * tests/compile.test: made bytecodes check for a catch before + returning; the compiled [return] is otherwise non-catchable. [Bug + 542142] reported by Andreas Kupries. + +2002-04-15 Don Porter <dgp@users.sourceforge.net> + + * tests/socket.test: Increased timeout values so that tests have time + to successfully complete even on slow/busy machines. [Bug 523470] + + * doc/tcltest.n: + * library/tcltest/tcltest.tcl: + * tests/tcltest.test: Revised [tcltest::test] to return errors when + called with invalid syntax and to accept exactly two arguments as + documented. Improved error messages. [Bug 497446, Patch 513983] + ***POTENTIAL INCOMPATIBILITY***: Incompatible with previous + tcltest 2.* releases, found only in alpha releases of Tcl 8.4. + +2002-04-11 Jeff Hobbs <jeffh@ActiveState.com> + + * generic/tclNotify.c (TclFinalizeNotifier): remove remaining + unserviced events on finalization. + + * win/tcl.m4: Enabled COFF as well as CV style debug info with + --enable-symbols to allow Dr. Watson users to see function info. More + info on debugging levels can be obtained at: + http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp - * unix/configure: autoconf-2.59 - * win/configure: + * tests/ioCmd.test: fixed iocmd-8.15 to have mac and unixPc variants. + + * generic/tclParse.c (Tcl_ParseVar): conditionally incr obj refcount + to prevent possible mem leak. + +2002-04-08 Daniel Steffen <das@users.sourceforge.net> + + * generic/tcl.h: no <sys/types.h> on mac. + * mac/tclMacFile.c: minor fixes to Vince's changes from 03-24. + * mac/tclMacOSA.c: + * mac/tclMacResource.c: added missing Tcl_UtfToExternalDString + conversions of resource file names. + * mac/tclMacSock.c (TcpGetOptionProc): fixed bug introduced by Andreas + on 02-25; changed strcmp's to strncmp's so that option comparison + behaves like on other platforms. + * mac/tcltkMacBuildSupport.sea.hqx (CW Pro6 changes): added support to + allow Tk to hookup C library stderr/stdout to TkConsole. + * tests/basic.test: + * tests/cmdAH.test: + * tests/encoding.test: + * tests/fileSystem.test: + * tests/ioCmd.test: fixed tests failing on mac: check for existence of + [exec], changed some result strings. + +2002-04-06 Jeff Hobbs <jeffh@ActiveState.com> + + * unix/tclUnixFCmd.c (Realpath): added a little extra code to + initialize a realpath arg when compiling in PURIFY mode in order to + prevent spurious purify warnings. We should really create our own + realpath implementation, but this will at least quiet purify for now. + +2002-04-05 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCmdMZ.c (Tcl_SubstObj): + * tests/subst.test: Corrected [subst] so that return codes TCL_BREAK + and TCL_CONTINUE returned by variable substitution have the same + effect as when those codes are returned by command substitution. [Bug + 536879] + +2002-04-03 Jeff Hobbs <jeffh@ActiveState.com> + + * library/tcltest/tcltest.tcl: added getMatchingFiles back (alias + to GetMatchingFiles), which was a public function in tcltest 1.0. + +2002-04-01 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclEnv.c: + * generic/tclIOUtil.c: invalidate filesystem cache when the user + changes env(HOME). Fixes [Bug 535621]. Also cleaned up some of the + documentation. + * tests/fileSystem.test: added test for bug just fixed. + +2002-04-01 Kevin Kenny <kennykb@acm.org> + + * win/tclWinTime.c (Tcl_GetTime): made the checks of clock frequency + more permissive to cope with the fact that Win98SE is observed to + return 1.19318 in place of 1.193182 for the performance counter + frequency. + +2002-03-29 Jeff Hobbs <jeffh@ActiveState.com> + + * generic/tclCmdMZ.c (Tcl_TraceObjCmd, TraceVarProc) + (TraceCommandProc, TclTraceCommandObjCmd): corrected potential + double-free of traces on variables by flagging in Trace*Proc that it + will free the var in case the eval wants to delete the var trace as + well. [Bug 536937] + Also converted Tcl_UntraceVar -> Tcl_UntraceVar2 and Tcl_Eval to + Tcl_EvalEx in Trace*Proc for slight efficiency improvement. + +2002-03-29 Don Porter <dgp@users.sourceforge.net> + + * doc/AllowExc.3: + * generic/tclBasic.c (Tcl_EvalObjv,Tcl_EvalEx,Tcl_EvalObjEx): + * generic/tclCompile.h (TclCompEvalObj): + * generic/tclExecute.c (TclCompEvalObj,TclExecuteByteCode): + * tests/basic.test: Corrected problems with Tcl_AllowExceptions having + influence over the wrong scope of Tcl_*Eval* calls. Patch from Miguel + Sofer. Report from Jean-Claude Wippler. [Bug 219181] + +2002-03-28 Don Porter <dgp@users.sourceforge.net> + + * generic/tclVar.c: Refactored CallTraces to collect repeated handling + of its returned value into CallTraces itself. + +2002-03-28 David Gravereaux <davygrvy@pobox.com> + + * tools/feather.bmp: + * tools/man2help.tcl: + * tools/man2help2.tcl: + * win/makefile.vc: More winhelp target fixups. Added a feather bitmap + to the non-scrollable area and changed the color to be yellow from a + plain white. The colors can be whatever we want them to be, but + thought I would start with something bold. [Bug 527941] + + * doc/SetVar.3: + * doc/TraceVar.3: + * doc/UpVar.3: .AP macro syntax repair. + +2002-03-27 David Gravereaux <davygrvy@pobox.com> + + * tools/man2help.tcl: + * win/makefile.vc: winhelp target now copies all needed files from + tools/ to a workarea under $(OUT_DIR) and builds it from there. No + build cruft is left in tools/ anymore. All paths used in man2help.tcl + are now relative to where the script is. [Bug 527941] + +2002-03-27 David Gravereaux <davygrvy@pobox.com> + + * win/.cvsignore: + * win/buildall.vc.bat: + * win/coffbase.txt: + * win/makefile.vc: + * win/nmakehlp.c (new): + * win/rules.vc: First draft fix for [Bug 527941]. More changes need to + done to the makehelp target to get to stop leaving build files in the + tools/ directory. This does not address the syntax errors in the man + files. Having the contents of tcl.hpj(.in) inside makefile.vc allows + for version numbers to be replaced with macros. - * generic/tclBasic.c (ExprSrandFunc): Restore acceptance of wide/big - * doc/mathfunc.n: integer values by srand(). [Bug 1480509] + The new nmakehlp.c is built by rules.vc in preprocessing and removes + the need to use tricky shell syntax that wasn't compatible on Win9x + systems. Clean targets made Win9x complient. This is a first draft + repair for [Bug 533862]. -2006-04-26 Don Porter <dgp@users.sourceforge.net> +2002-03-28 Miguel Sofer <msofer@users.sourceforge.net> - *** 8.5a4 TAGGED FOR RELEASE *** + * generic/tclBasic.c (Tcl_EvalEx): passing the correct commandSize + to TclEvalObjvInternal. [Bug 219362], fix by David Knoll. - * changes: Updates for another RC. +2002-03-28 Miguel Sofer <msofer@users.sourceforge.net> - * 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. + * generic/tclBasic.c (Tcl_EvalEx): + * tests/basic.test: avoid exceptional returns at level 0 + [Bug 219181] -2006-04-25 Don Porter <dgp@users.sourceforge.net> +2002-03-27 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: + * doc/tcltest.n ([mainThread]): + * library/tcltest/tcltest.tcl: + * tests/tcltest.test: Major code cleanup to deal with whitespace, + coding conventions, and namespace issues, with several minor bugs + fixed in the process. - * generic/tclScan.c: [scan $s %u] is documented to accept only - * tests/scan.test: decimal formatted integers. Fixed to match. + * tests/main.test: Added missing [after cancel]s. -2006-04-19 Kevin B. Kenny <kennykb@acm.org> +2002-03-25 Don Porter <dgp@users.sourceforge.net> - * generic/tclStrToD.c: Added code to support the "middle endian" - floating point format used in the Nokia N770's software-based floating - point. Thanks to Bruce Johnson for reporting this bug, originally on - http://wiki.tcl.tk/15408. - * library/clock.tcl: Fixed a bug with Daylight Saving Time and Posix - time zone specifiers reported by Martin Lemburg in - http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/9a8b15a4dfc0b7a0 - (and not at SourceForge). - * tests/clock.test: Added test case for the above bug. + * tests/main.test: Removed workarounds for Bug 495977. -2006-04-18 Donal K. Fellows <dkf@users.sf.net> + * library/tcltest/tcltest.tcl: Keep the value of $::auto_path + unchanged, so that the tcltest package can test code that depends + on auto-loading. If a testing application needs $::auto_path pruned, + it should do that itself. [Bug 495726] + Improve the processing of the -constraints option to [test] so that + constraint lists can have arbitrary whitespace, and non-lists don't + blow things up. [Bug 495977] + Corrected faulty variable initialization. [Bug 534845] - * doc/IntObj.3: Minor review fixes, including better documentation of - the behaviour of Tcl_GetBignumAndClearObj. +2002-03-25 Miguel Sofer <msofer@users.sourceforge.net> -2006-04-17 Don Porter <dgp@users.sourceforge.net> + * doc/CrtTrace.3: small doc correction + * generic/tclBasic.c (Tcl_DeleteTrace): Allow NULL callback on + trace deletions [Bug 534728] (Hemang Lavana). - * doc/IntObj.3: Documentation changes to account for TIP 237 changes. - * doc/Object.3: [Bug 1446971] +2002-03-24 Miguel Sofer <msofer@users.sourceforge.net> -2006-04-12 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * generic/tclBasic.c (Tcl_EvalObjv): replaced obscure, incorrect + code as described in [Bug 533907] (Don Porter). - * generic/regc_locale.c (cclass): Redefined the meaning of [:print:] - to be exactly UNICODE letters, numbers, punctuation, symbols and - spaces (*not* whitespace). [Bug 1376892] +2002-03-24 Don Porter <dgp@users.sourceforge.net> -2006-04-11 Don Porter <dgp@users.sourceforge.net> + * library/tcltest/tcltest.tcl: Use [interpreter] to set/query the + executable currently running the tcltest package. [Bug 454050] - * generic/tclTrace.c: Stop some interference between enter traces - * tests/trace.test: and enterstep traces. [Bug 1458266] + * library/tcltest/tcltest.tcl: Allow non-proc commands to be used + as the customization hooks. [Bug 495662] -2006-04-07 Don Porter <dgp@users.sourceforge.net> +2002-03-24 Vince Darley <vincentdarley@users.sourceforge.net> - * generic/tclPathObj.c: Yet another revised fix for the [Bug 1379287] - * tests/fileSystem.test: family of path normalization bugs. + * generic/tclFilename.c: + * generic/tclFCmd.c: + * generic/tclTest.c: + * generic/tcl.h: + * generic/tclIOUtil.c: + * win/tclWinFile.c: + * win/tclWinFCmd.c: + * win/tclWinPipe.c: + * unix/tclUnixFile.c: + * unix/tclUnixFCmd.c: + * mac/tclMacFile.c: + * doc/FileSystem.3: + * doc/file.n: + * tests/cmdAH.test: + * tests/fileName.test: + * tests/fileSystem.test: (new file) + * tests/winFCmd.test: fix [Bug 511666] and [Bug 511658], and improved + documentation of some aspects of the filesystem, particularly + 'Tcl_FSMatchInDirectory' which now might match a single file/directory + only, and 'file normalize' which wasn't very clear before. Removed + inconsistency betweens docs and the Tcl_Filesystem structure. Also + fixed [Bug 523217] and corrected file normalization on Unix so that it + expands symbolic links. Added some new tests of the filesystem code + (in the new file 'fileSystem.test'), and some extra tests for correct + handling of symbolic links. Fix to [Bug 530960] which shows up on + Win98. Made comparison with ".com" case insensitive in tclWinPipe.c + + ***POTENTIAL INCOMPATIBILITY***: But only between alpha releases + (users of the new Tcl_Filesystem lookup table in Tcl 8.4a4 need to + handle the new way in which Tcl may call Tcl_FSMatchInDirectory, and + 'file normalize' on unix now behaves correctly). Only known impact is + with the 'tclvfs' extension. + +2002-03-22 Miguel Sofer <msofer@users.sourceforge.net> + + * tests/basic.test (basic-46.1): adding test for [Bug 533758], fixed + earlier today. + +2002-03-22 Jeff Hobbs <jeffh@ActiveState.com> + + * win/tclWinInt.h: moved undef of TCL_STORAGE_CLASS. [Bug 478579] + +2002-03-22 Miguel Sofer <msofer@users.sourceforge.net> + + * generic/tclBasic.c (Tcl_EvalObjEx): + * generic/tclExecute.c (TclCompEvalObj): fixed the errorInfo for + return codes other than (TCL_OK, TCL_ERROR) to runLevel 0 [Bug + 533758]. Removed the static RecordTracebackInfo(), as its + functionality is easily replicated by Tcl_LogCommandInfo. Bug and + redundancy noted by Don Porter. + +2002-03-21 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + * doc/expr.n: Improved documentation for ceil and floor [Bug 530535] + +2002-03-20 Don Porter <dgp@users.sourceforge.net> + + * doc/SetVar.3: + * doc/TraceVar.3: + * doc/UpVar.3: + * generic/tcl.h (Tcl_VarTraceProc): + * generic/tcl.decls (Tcl_GetVar2, Tcl_SetVar2, Tcl_TraceVar2) + (Tcl_UnsetVar2, Tcl_UntraceVar2, Tcl_UpVar2, Tcl_VarTraceInfo2) + (Tcl_GetVar2Ex, TclSetVar2Ex): + * generic/tclCmdMZ.c (TraceVarProc): + * generic/tclEnv.c (EnvTraceProc): + * generic/tclEvent.c (VwaitVarProc): + * generic/tclInt.decls (TclLookupVar,TclPrecTraceProc): + * generic/tclLink.c (LinkTraceProc): + * generic/tclUtil.c (TclPrecTraceProc): + * generic/tclVar.c (CallTraces, MakeUpvar, VarErrMsg, TclLookupVar, + (Tcl_GetVar2, Tcl_SetVar2, Tcl_TraceVar2, Tcl_UnsetVar2) + (Tcl_UntraceVar2, Tcl_UpVar2, Tcl_VarTraceInfo2, Tcl_GetVar2Ex) + (TclSetVar2Ex): Updated interfaces of generic/tclVar.c according to + TIP 27. In particular, the "part2" arguments were CONSTified. + [Patch 532642] + * generic/tclDecls.h: + * generic/tclIntDecls.h: make genstubs + +2002-03-15 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + * tests/compile.test (compile-12.3): Test to detect bug 530320. + * generic/tclCompile.c (TclCompileTokens): Fixed buffer overrun + reported in bug 530320. + +2002-03-14 Mo DeJong <mdejong@users.sourceforge.net> + + * win/configure: Regen. + * win/configure.in: Add configure time test for SEH support in the + compiler. + * win/tclWin32Dll.c (ESP, EBP, TclpCheckStackSpace, + (_except_checkstackspace_handler): + * win/tclWinChan.c (ESP, EBP, Tcl_MakeFileChannel, + (_except_makefilechannel_handler): + * win/tclWinFCmd.c (ESP, EBP, DoRenameFile, DoCopyFile, + (_except_dorenamefile_handler, _except_docopyfile_handler): Implement + SEH support under gcc using inline asm. Tcl and Tk should now compile + with Mingw 1.1. [Patch 525746] -2006-04-06 Jeff Hobbs <jeffh@ActiveState.com> +2002-03-14 Mo DeJong <mdejong@users.sourceforge.net> - * generic/tclRegexp.c (FinalizeRegexp): full reset data to indicate - readiness for reinitialization. + * win/tclWinFCmd.c (DoRenameFile, DoCopyFile): Handle an SEH exception + with EXCEPTION_EXECUTE_HANDLER instead of restarting the faulting + instruction with EXCEPTION_CONTINUE_EXECUTION. Bug 466102 provides an + example of how restarting could send Tcl into an infinite loop. [Patch + 525746] -2006-04-06 Don Porter <dgp@users.sourceforge.net> +2002-03-11 Mo DeJong <mdejong@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] + * win/tclWinFCmd.c (DoRenameFile, DoCopyFile, DoDeleteFile, + (DoRemoveJustDirectory): Make sure we don't pass NULL or "" as a path + name to Win32 API functions since this was crashing under Windows 98. - * 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: +2002-03-11 Don Porter <dgp@users.sourceforge.net> - * tests/indexObj.test: Corrected other test errors revealed by - * tests/upvar.test: testing outside the tcltest application. + * library/tcltest/tcltest.tcl: + * library/tcltest/pkgIndex.tcl: Bumped tcltest package to 2.0.2. - * generic/tclPathObj.c: Revised fix for the [Bug 1379287] family of - path normalization bugs. +2002-03-11 Mo DeJong <mdejong@users.sourceforge.net> -2006-04-06 Daniel Steffen <das@users.sourceforge.net> + * library/tcltest/tcltest.tcl (getMatchingFiles): Pass a proper list + to foreach to avoid munging a Windows patch like D:\Foo\Bar into + D:FooBar before the glob. - * 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 +2002-03-11 Mo DeJong <mdejong@users.sourceforge.net> -2006-04-05 Don Porter <dgp@users.sourceforge.net> + * generic/tclEncoding.c: Fix typo in comment. + * generic/tclIO.c (DoReadChars, ReadBytes, ReadChars): Use NULL value + instead of pointer set to NULL to make things more clear. Reorder + arguments so that they match the function signatures. Cleanup little + typos and add more descriptive comment. - * 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: +2002-03-08 Mo DeJong <mdejong@users.sourceforge.net> - * 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/README: Update to indicate that Mingw 1.1 is required to build + Tcl. Add section describing new msys based build process. Update + Cygwin build instructions so users know where to find Mingw 1.1. - * win/configure.in: Bump package version numbers. - * win/configure: autoconf 2.59 +2002-03-08 Jeff Hobbs <jeffh@ActiveState.com> -2006-04-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * win/tclWinFCmd.c (DoCopyFile): correctly set retval to TCL_OK. - * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Allow empty - strings to be matched by the Tcl_GetIndexFromObj machinery, in the - same manner as any other key. [Bug 1464039] +2002-03-07 Mo DeJong <mdejong@users.sourceforge.net> -2006-04-03 Andreas Kupries <andreask@activestate.com> + * win/tclWin32Dll.c (TclpCheckStackSpace): + * win/tclWinFCmd.c (DoRenameFile, DoCopyFile): Replace hard coded + constants with Win32 symbolic names. Move control flow statements out + of __try blocks since the documentation indicates it is frowned upon. - * 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. +2002-03-07 Don Porter <dgp@users.sourceforge.net> - * generic/tclIO.c (ReadChars): Temporarily suppress the use of - TCL_ENCODING_END set when EOF was reached while the buffer we are - converting is not truly the last buffer in the queue. Together with - the Utf bug below it was possible to completely wreck the buffer data - structures, eventually crashing Tcl. [Bug 1462248] + * doc/interp.n: + * generic/tclInterp.c (Tcl_InterpObjCmd,SlaveObjCmd, + (SlaveRecursionLimit): + * generic/tclTest.c: + * tests/interp.test: Added the [interp recursionlimit] command to + set/query the recursion limit of an interpreter. Proposal and + implementation from Stephen Trier. [TIP 87, Patch 522849] - * generic/tclEncoding.c (UtfToUtfProc): Stop accessing memory beyond - the end of the input buffer when TCL_ENCODING_END is set and the last - bytes of the buffer start a multi-byte sequence. This bug contributed - to [Bug 1462248]. +2002-03-06 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2006-03-30 Miguel Sofer <msofer@users.sf.net> + * generic/tcl.h, tools/tcl.wse.in, unix/configure.in, + * unix/tcl.spec, win/README.binary, win/configure.in, README: + Bumped patchlevel; this might need to change in the future, but it + will help us distinguish between the CVS version and the most + recent released version. - * generic/tclExecute.c: remove unused var and silence gcc warning +2002-03-06 Miguel Sofer <msofer@users.sourceforge.net> -2006-03-29 Jeff Hobbs <jeffh@ActiveState.com> + * generic/tclInt.h: for unshared objects, TclDecrRefCount now frees + the internal rep before the string rep - just like the non-macro + Tcl_DecrRefCount/TclFreeObj [Bug 524802]. - * win/Makefile.in: convert _NATIVE paths to use / to avoid ".\" - path-as-escape issue. +2002-03-06 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2006-03-29 Don Porter <dgp@users.sourceforge.net> + * doc/lsearch.n: Documentation of new features, plus examples. + * tests/lsearch.test: Tests of new features. + * generic/tclCmdIL.c (Tcl_LsearchObjCmd): TIP#80 support. See + http://purl.org/tcl/tip/80 for details. - * changes: Updates for another RC. +2002-03-05 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclPathObj.c: More fixes for path normalization when /../ - * tests/fileSystem.test: tries to go beyond root.[Bug 1379287] + *** 8.4a4 TAGGED FOR RELEASE *** - * generic/tclExecute.c: Revised INST_MOD implementation to do - calculations in native types as much as possible, moving to mp_ints - only when necessary. + * unix/tclUnixChan.c: initial remedy for [Bug 525783] flush problem + introduced by TIP #35. This may not satisfy true serial channels, but + it restores the correct flushing of std* channels on exit. -2006-03-28 Jeff Hobbs <jeffh@ActiveState.com> + * unix/README: added --enable-langinfo doc. - * win/tclWinPipe.c (TclpCreateProcess): change panics to Tcl errors - and do proper refcounting of noe objPtr. [Bug 1194429] + * unix/tcl.spec: + * tools/tcl.wse.in: fixed URL refs to use www.tcl.tk or SF. - * unix/tcl.m4, win/tcl.m4: []-quote AC_DEFUN functions. +2002-03-04 Jeff Hobbs <jeffh@ActiveState.com> -2006-03-28 Daniel Steffen <das@users.sourceforge.net> + * README: + * mac/README: + * unix/Makefile.in: + * unix/README: + * win/README: + * win/README.binary: updated to use www.tcl.tk URL. - * macosx/Tcl.xcode/default.pbxuser: add '-singleproc 1' cli arg to - * macosx/Tcl.xcodeproj/default.pbxuser: tcltest to ease test debugging + * unix/Makefile.in: added older ChangeLogs to dist target. - * 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. + * tests/io.test: + * tests/encoding.test: corrected iso2022 encoding results. + added encoding-24.* + * generic/tclEncoding.c (EscapeFromUtfProc): corrected output of + escape codes as per RFC 1468. [Patch 474358] (taguchi) + (TclFinalizeEncodingSubsystem): corrected potential double-free + when encodings were finalized on exit. [Bug 219314, 524674] - * unix/tclUnixFCmd.c (TclpObjNormalizePath): deal with *BSD/Darwin - realpath() converting relative paths into absolute paths [Bug 1064247] +2002-03-01 Jeff Hobbs <jeffh@ActiveState.com> -2006-03-28 Vince Darley <vincentdarley@sourceforge.net> + * library/encoding/iso2022-jp.enc: + * library/encoding/iso2022.enc: + * tools/encoding/iso2022-jp.esc: + * tools/encoding/iso2022.esc: gave <ESC>$B precedence over <ESC>$@, + based on comments (point 1) in [Bug 219283] (RFC 1468) - * generic/tclIOUtil.c: fix to nativeFilesystemRecord comparisons - (lesser part of [Bug 1064247]) + * tests/encoding.test: added encoding-23.* tests + * generic/tclIO.c (FilterInputBytes): reset the TCL_ENCODING_START + flags in the ChannelState when using 'gets'. [Bug 523988] + Also reduced the value of ENCODING_LINESIZE from 30 to 20 as this + seems to improve the performance of 'gets' according to tclbench. -2006-03-27 Pat Thoyts <patthoyts@users.sourceforge.net> +2002-02-28 Jeff Hobbs <jeffh@ActiveState.com> - * win/tclWinTest.c: Fixes for [Bug 1456373] (mingw-gcc issue) + * generic/tclCmdMZ.c (TraceCommandProc): ensure that TraceCommandInfo + structure was also deleted when a command was deleted to prevent a + mem leak. -2006-03-27 Andreas Kupries <andreask@activestate.com> + * generic/tclBasic.c (Tcl_CreateObjTrace): set tracePtr->flags + correctly. - * 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: + * generic/tclTimer.c (TimerExitProc): remove remaining events in + tls on thread exit. -2006-03-27 Don Porter <dgp@users.sourceforge.net> +2002-02-28 Miguel Sofer <msofer@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. + * generic/tclNamesp.c: allow cached fully-qualified namespace names to + be usable from different namespaces within the same interpreter + without forcing a new lookup [Patch 458872]. - * changes: Updates for another RC. +2002-02-28 Miguel Sofer <msofer@users.sourceforge.net> -2006-03-25 Don Porter <dgp@users.sourceforge.net> + * generic/tclExecute.c: Replaced a few direct stack accesses with the + POP_OBJECT() macro [Bug 507181] (Don Porter). - * generic/tclExecute.c: Corrections to INST_EXPON detection of - overflow to use mp_int calculations. +2002-02-27 Don Porter <dgp@users.sourceforge.net> -2006-03-24 Kevin B. Kenny <kennykb@acm.org> + * doc/GetIndex.3: + * generic/tcl.decls (Tcl_GetIndexFromObjStruct): + * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Revised the + prototype of the Tcl_GetIndexFromObjStruct to take its struct + table as a (CONST VOID *) argument, better describing what it is, + maintaining source compatibility, and adding CONST correctness + according to TIP 27. Thanks to Joe English for an elegant + solution. [Bug 520304] - * generic/tclExecute.c (TclExecuteByteCode): Added a couple of missing - casts to 'int' that were affecting compilablity on VC6. + * generic/tclDecls.h: make genstubs -2006-03-24 Don Porter <dgp@users.sourceforge.net> + * generic/tclMain.c (Tcl_Main,StdinProc): Corrected some reference + count management errors on the interactive command Tcl_Obj found by + Purify. Thanks to Jeff Hobbs for the report and assistance. - * generic/tclEncoding.c: Reverted latest change [Bug 506653] since it - reportedly killed test performance on Windows. +2002-02-27 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclExecute.c: Revised INST_EXPON implementation to do - calculations in native types as much as possible, moving to mp_ints - only when necessary. + * generic/tclBasic.c (Tcl_EvalTokensStandard): corrected mem leak + in error case. -2006-03-23 Don Porter <dgp@users.sourceforge.net> + * generic/tclTest.c (TestStatProc[123]): correct harmless UMRs. - * generic/tclExecute.c: Merged INST_EXPON handling in with the other - binary operators that operate on all number types (INST_ADD, etc.). + * generic/tclLink.c (Tcl_LinkVar): correct mem leak in error case. - * tests/env.test: With case preserved (see 2006-03-21 commit) be sure - to do case-insensitive filtering. [Bug 1457065] +2002-02-27 Andreas Kupries <andreas_kupries@users.sourceforge.net> -2006-03-23 Reinhard Max <max@suse.de> + * tests/socket.test (2.7): Accepted and applied patch for [Bug 523470] + provided by Don Porter <dgp@users.sourceforge.net> to avoid timing + problems in that test. - * 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>" + * unix/tclUnixChan.c (TclpOpenFileChannel): Added code to regonize + "/dev/tty" (by name) and to not handle it as tty / serial line. This + is the controlling terminal and is special. Setting it into raw mode + as is done for other tty's is a bad idea. This is a hackish fix for + expect [Bug 520624]. The fix has limitation: Tcl_MakeFileChannel + handles tty's specially too, but is unable to recognize /dev/tty as it + only gets a file descriptor, and no name for it. -2006-03-22 Reinhard Max <max@suse.de> +2002-02-26 Jeff Hobbs <jeffh@ActiveState.com> - * 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. + * generic/tclCmdAH.c (StoreStatData): corrected mem leak. -2006-03-21 Don Porter <dgp@users.sourceforge.net> + * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): prevent obj leak in remedial + regsub case. - * changes: Updates for another RC. + * generic/tclFileName.c (Tcl_TranslateFileName): decr refcount for + error case to prevent mem leak. - * generic/tclStrToD.c: One of the branches of AccumulateDecimalDigit - * tests/parseExpr.test: did not. [Bug 1451233] + * generic/tclVar.c (Tcl_ArrayObjCmd): removed extra obj allocation. - * tests/env.test: Preserve case of saved env vars. [Bug 1409272] + * unix/tclUnixSock.c (Tcl_GetHostName): added an extra gethostbyname + check to guard against failure with truncated names returned by uname. -2006-03-21 Daniel Steffen <das@users.sourceforge.net> + * unix/configure: + * unix/tcl.m4 (SC_SERIAL_PORT): added sys/modem.h check and defined + _XOPEN_SOURCE_EXTENDED for HP-11 to get updated header decls. - * 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 + * unix/tclUnixChan.c: added Unix implementation of TIP #35, serial + port support. [Patch 438509] (schroedter) -2006-03-20 Andreas Kupries <andreask@activestate.com> +2002-02-26 Miguel Sofer <msofer@users.sourceforge.net> - * 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. + * generic/tclCmpCmds.c: (bugfix to the bugfix, hopefully the last) + Bugfix to the new [for] compiling code: was setting a exceptArray + parameter using another param which wasn't yet initialised, thus + filling it with noise. - * 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. +2002-02-25 Andreas Kupries <andreas_kupries@users.sourceforge.net> -2006-03-20 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * mac/tclMacSock.c (TcpGetOptionProc): Changed to recognize the option + "-error". Essentially ignores the option, always returning an empty + string. - * tests/cmdAH.test, tests/fCmd.test, tests/unixFCmd.test: - * tests/winFCmd.test: Cleanup of some test constraint handling, and a - few other minor issues. +2002-02-25 Jeff Hobbs <jeffh@ActiveState.com> -2006-03-18 Vince Darley <vincentdarley@sourceforge.net> + * doc/Alloc.3: + * doc/LinkVar.3: + * doc/ObjectType.3: + * doc/PkgRequire.3: + * doc/Preserve.3: + * doc/TCL_MEM_DEBUG.3: Updated documentation to describe the ckalloc, + ckfree, ckrealloc, attemptckalloc, and attemptckrealloc macros, and + to accurately describe when and how they are used. [Bug 497459] (dgp) - * generic/tclFileName.c: - * doc/FileSystem.3: - * tests/fileName.test: Fix to [Bug 1084705] so that 'glob -nocomplain' - finally agrees with its documentation and doesn't swallow genuine - errors. + * generic/tclHash.c (AllocArrayEntry, AllocStringEntry): Before + invoking ckalloc when creating a Tcl_HashEntry, check that the amount + of memory being allocated is at least as large as + sizeof(Tcl_HashEntry). The previous code was allocating memory regions + that were one or two bytes short. [Bug 521950] (dejong) - ***POTENTIAL INCOMPATIBILITY*** for scripts that assumed '-nocomplain' - removes the need for 'catch' to deal with non-understood path names. +2002-02-25 Miguel Sofer <msofer@users.sourceforge.net> - Small optimisation to implementation of pattern==NULL case of TclGlob, - and clarification to the documentation. [Tclvfs bug 1405317] + * generic/tclBasic.c (Tcl_EvalEx): avoiding a buffer overrun reported + by Joe English, and restoring tcl7.6 behaviour for [subst]: badly + terminated nested scripts will raise an error and not be evaluated. + [Bug 495207] -2006-03-18 Vince Darley <vincentdarley@sourceforge.net> +2002-02-25 Don Porter <dgp@users.sourceforge.net> - * tests/fCmd.test: added knownBug test case for [Bug 1394972] + * unix/tclUnixPort.h: corrected strtoll prototype mismatch on Tru64. + * compat/strtod.c (strtod): simplified #includes + * compat/strtol.c (strtol): gather result in a long before returning + as a long: necessary on platforms where sizeof(int) != sizeof(long). - * tests/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] +2002-02-25 Daniel Steffen <das@users.sourceforge.net> -2006-03-17 Andreas Kupries <andreask@activestate.com> + * unix/tclLoadDyld.c: updated to use Mac OS X 10.1 dyld APIs that have + more libdl-like semantics. [Bug 514392] - * doc/chan.n: Updated with documentation for the commands 'chan - create' and 'chan postevent' (TIP #219). +2002-02-25 Miguel Sofer <msofer@users.sourceforge.net> - * doc/refchan.n: New file. Documentation of the command handler API - for reflected channels (TIP #219). + * generic/tclCompCmds: fixing a bug in patch dated 2002-02-22, in the + code for [for] and [while]. Under certain conditions, for long bodies, + the exception range parameters were badly computed. Tests forthcoming: + I still can't reproduce the conditions in the testsuite (!), although + the bug (with assorted segfault or panic!) can be triggered from the + console or with the new parse.bench in tclbench. -2006-03-17 Joe Mistachkin <joe@mistachkin.com> +2002-02-25 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * unix/tclUnixPort.h: Include pthread.h prior to pthread_np.h [Bug - 1444692] + * compat/strtoul.c, compat/strtol.c, compat/strtod.c: Added UCHAR, + CONST and #includes to clean up GCC output. - * win/tclWinTest.c: Corrected typo of 'initializeMutex' that prevented - successful compilation. +2002-02-23 Don Porter <dgp@users.sourceforge.net> -2006-03-16 Andreas Kupries <andreask@activestate.com> + * compat/strtoull.c (strtoull): + * compat/strtoll.c (strtoll): + * compat/strtoul.c (strtoul): Fixed failure to handle leading sign + symbols '+' and '-' and '0X' and raise overflow errors. [Bug 440916] + Also corrects prototype and errno problems. - * doc/open.n: Documented the changed behaviour of 'a'ppend mode. +2002-02-23 Mo DeJong <mdejong@users.sourceforge.net> - * tests/io.test (io-43.1 io-44.[1234]): Rewritten to be self-contained - with regard to setup and cleanup. [Bug 681793] + * configure: Regen. + * unix/tcl.m4 (SC_CONFIG_CFLAGS): Link with -n32 instead of -32 when + building on IRIX64-6.* system. [Bug 521707] - * generic/tclIOUtil.c (TclGetOpenMode): Added the flag O_APPEND to the - list of POSIX modes used when opening a file for 'a'ppend. This - enables the proper automatic seek-to-end-on-write by the OS. See [Bug - 680143] for longer discussion. +2002-02-22 Don Porter <dgp@users.sourceforge.net> - * tests/ioCmd.test (iocmd-13.7.*): Extended the testsuite to check the - new handling of 'a'. + * generic/tclInt.h: + * generic/tclObj.c: renamed global variable emptyString -> + tclEmptyString because it is no longer static. + * generic/tclPkg.c: Fix for panic when library is loaded on a + platform without backlinking without proper use of stubs. [Bug 476537] -2006-03-15 Andreas Kupries <andreask@activestate.com> +2002-02-22 Jeff Hobbs <jeffh@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] + * tests/regexpComp.test: updated regexp-11.[1-4] to match changes + in regexp.test for new regsub syntax -2006-03-15 Vince Darley <vincentdarley@sourceforge.net> + * unix/configure: + * unix/tcl.m4: added --enable-64bit support for AIX-4 (using -q64 + flag) when using IBM's xlc compiler. - * win/fCmd.test: add proper test constraints so the new tests don't - run on Unix. + * tests/safe.test: updated safe-8.5 and safe-8.7 + * library/safe.tcl (CheckFileName): removed the limit on + sourceable file names (was only *.tcl or tclIndex files with no + more than one dot and 14 chars). There is enough internal + protection in a safe interpreter already. Fixes [Tk Bug 521560]. -2006-03-14 Andreas Kupries <andreask@activestate.com> +2002-02-22 Miguel Sofer <msofer@users.sourceforge.net> - * generic/tclPipe.c (TclCreatePipeline): Modified the processing of - pipebars to fail if the last bar is followed only by redirections. - [Bug 768659] + * generic/tclCompCmds: [FR 465811]. Optimising [if], [for] and + [while] for constant conditions; in addition, [for] and [while] are + now compiled with the "loop rotation" optimisation (thanks to Kevin + Kenny). -2006-03-14 Andreas Kupries <andreask@activestate.com> +2002-02-22 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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] + --- TIP#76 CHANGES --- + * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): Final-argument-less + [regsub] returns the modified string. + * doc/regsub.n: Updated docs. + * tests/regexp.test: Updated and added tests. -2006-03-14 Andreas Kupries <andreask@activestate.com> + * compat/strtoll.c (strtoll): + * compat/strtoull.c (strtoull): + * unix/tclUnixPort.h: + * win/tclWinPort.h: Const-ing 64-bit compatability declarations. + Note that the return pointer is non-const because it is entirely + legal for the functions to be called from somewhere that owns the + string being passed. Fixes problem reported by Larry Virden. - * doc/clock.n: Removed double-quotes around section title NAME; not - needed. - * unix/installManpage: Reverted part to handle double-quotes in - section NAME, chokes older sed installations. +2002-02-21 David Gravereaux <davygrvy@pobox.com> -2006-03-14 Andreas Kupries <andreask@activestate.com> + * win/mkd.bat (removed): + * win/coffbase.txt (new): + * win/makefile.bc: + * win/makefile.vc: Changed the 'setup' target to stop using the + mkd.bat file and just make the directory right in the rule. Same + change to makefile.bc. configure.in nor Makefile.in use it. - * library/tm.tcl (::tcl::tm::Defaults): Fixed handling of environment - variable TCLX.y_TM_PATH, bad variable reference. Thanks to Julian - Noble. [Bug 1448251] + coffbase.txt will be the master list for our "prefered base addresses" + set by the linker. This should improve load-time (NT only) by avoiding + relocations. Submissions to the list by extension authors are + encouraged. -2006-03-14 Vince Darley <vincentdarley@sourceforge.net> + Added a 'tidy' target to compliment 'clean' and 'hose' to remove just + the outputs. Also removed the $(winlibs) macro as it wasn't being + used. - * 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 + Stuff left to do: + 1) get the winhelp target to stop building in the tools/ directory. + 2) stop using rmd.bat + 3) add more dependacy rules. -2006-03-13 Don Porter <dgp@users.sourceforge.net> + * win/tclAppInit.c: Reverted back to -r1.6, as the header file change + to tclPort.h won't allow for easy embedded support outside of the + source dist. Thanks to Don Porter for pointing this out to me. - * generic/tclEncoding.c: Report error when an escape encoding is - missing one of its sub-encodings. [Bug 506653] +2002-02-21 David Gravereaux <davygrvy@pobox.com> - * 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. + * win/makefile.vc: + * win/rules.vc: Added a new "loimpact" option that sets the + -ws:aggressive linker option. Off by default. It's said to keep the + heap use low at the expense of alloc speed. -2006-03-10 Miguel Sofer <msofer@users.sf.net> + * win/tclAppInit.c: Changed #include "tcl.h" to be tclPort.h to remove + the raw windows.h include. tclPort.h brings in windows.h already and + lessens the pre-compiled-header mush and the randomly useless #pragma + comment (lib,...) references throughout the big windows.h tree (as + observed at high linker warning levels). - * generic/tclProc.c (ObjInterpProcEx): - * tests/apply.test (apply-5.1): Fix [apply] error messages so that - they quote the lambda expression. [Bug 1447355] +2002-02-21 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2006-03-10 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + * generic/tcl.h: Better guessing of LP64/ILP32 architecture, but + now sensitive to presence of (suitable) <limits.h> - -- Summary of changes fixing [Bug 1437595] -- +2002-02-20 Don Porter <dgp@users.sourceforge.net> - * generic/tclEvent.c: Cosmetic touches and identation - * generic/tclInt.h: Added TclpFinalizeSockets() call. + * generic/tcl.decls (Tcl_RegExpRange,Tcl_GetIndexFromObjStruct): + Overlooked a few source incompatibilities. Now using CONST84. + * generic/tclDecls.h: make genstubs + * generic/tcl.h (Tcl_CmdObjTraceProc): silence warning from Sun + Workshop compiler. - * generic/tclIO.c: Calls TclpFinalizeSockets() as part of the - TclFinalizeIOSubsystem(). +2002-02-20 David Gravereaux <davygrvy@pobox.com> - * unix/tclUnixSock.c: Added no-op TclpFinalizeSockets(). + * win/buildall.vc.bat: + * win/makefile.vc: + * win/rules.vc: General clean-ups. Added compiler and linker tests for + a) the pentium 0x0F errata, b) optimizing (not all have this), and c) + linker v6 section alignment confusion. All these are tested first to + make sure any D4002 or LNK1117 warnings aren't displayed. The pentium + 0x0F errata is a recommended switch. The v5 linker's section alignment + default is 512, but the v6 linker was changed to 4096 in an attempt to + speed loading on Win98. I changed the default to always be 512 across + both linkers, unless linking statically, then 4096 is used for the + claimed speed effect. Using a 512 alignment saves 12k bytes of dead + space in the DLL. - * 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. + Added IA64 B-stepping errata switch when the compiler supports it. -2006-03-10 Vince Darley <vincentdarley@sourceforge.net> + Added profiling to $(lflags) when requested and also removed the + explict -entry option as the default works fine as is. - * win/tclWinFile.c: previous patch breaks tests, so removed. + Removed win/tclWinInit.c from the special case section to let it use + the common implicit rule as the $(EXTFLAGS) macro it had was never + referenced anywhere. -2006-03-09 Vince Darley <vincentdarley@sourceforge.net> +2002-02-20 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * 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. + * generic/tcl.h: Added code to guess the correct settings for + TCL_WIDE_INT_IS_LONG and TCL_WIDE_INT_TYPE when configure doesn't tell + us them, as can happen with extensions. -2006-03-08 Don Porter <dgp@users.sourceforge.net> +2002-02-19 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclExecute.c: Complete missing bit of TIP 215 implementation - * tests/incr.test: + * doc/format.n: Updated docs to list the specification. + * generic/tclCmdAH.c (Tcl_FormatObjCmd): Made behaviour on 64-bit + platforms correctly meet the specification, that %d works with the + native word-sized integer, instead of trying to guess (wrongly) from + the value being passed. -2006-03-07 Joe English <jenglish@users.sourceforge.net> +2002-02-19 Don Porter <dgp@users.sourceforge.net> - * unix/tcl.m4: Set SHLIB_LD_FLAGS='${LIBS}' on NetBSD, as per the - other *BSD variants. [Bug 1334613] - * unix/configure: Regenerated. + * changes: First draft of updated changes for 8.4a4 release. -2006-03-07 Don Porter <dgp@users.sourceforge.net> +2002-02-15 Jeff Hobbs <jeffh@ActiveState.com> - * changes: Update in prep. for 8.5a4 release. + * unix/tclUnixPort.h: add strtoll/strtoull declarations for platforms + that do not define them. - * 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. + * generic/tclIndexObj.c (STRING_AT): removed ptrdiff_t cast and use of + VOID* in default case (GNU-ism). -2006-03-06 Don Porter <dgp@users.sourceforge.net> +2002-02-15 Kevin Kenny <kennykb@acm.org> - * 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] + * compat/strtoll.c: + * compat/strtoul.c: + * compat/strtoull.c: + * generic/tclIOUtil.c: + * generic/tclPosixStr.c: + * generic/tclTest.c: + * generic/tclTestObj.c: + * tests/get.test: + * win/Makefile.vc: Further tweaks to the TIP 72 patch to make it + compile under VC++. + +2002-02-15 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tclExecute.c: + * tclIOGT.c: + * tclIndexObj.c: Touchups to the TIP 72 patch to make it compileable + under Windows again. The changes are not complete, there is one nasty + regarding _stati64 + +2002-02-15 Donal K. Fellows <fellowsd@cs.man.ac.uk> + + +----------------------+ + | TIP #72 IMPLEMENTED. | + +----------------------+ + + There are a lot of changes from this TIP, so please see + http://tip.tcl.tk/72.html for discussion of backward-compatability + issues, but the main ones modifications are in: + + * generic/tcl.h: New types. + * generic/tcl.decls: New public functions. + * generic/tclExecute.c: 64-bit aware bytecode engine. + * generic/tclBinary.c: 64-bit handling in [binary] command. + * generic/tclScan.c: 64-bit handling in [scan] command. + * generic/tclCmdAH.c: 64-bit handling in [file] and [format] + commands. + * generic/tclBasic.c: New "wordSize" entry in ::tcl_platform. + * generic/tclFCmd.c: Large-file support (with many consequences.) + * generic/tclIO.c: Large-file support (with many consequences.) + * compat/strtoll.c, compat/strtoull.c: New support functions. + * unix/tcl.m4, unix/configure: 64-bit support and greatly enhanced + cacheing. + + Most other changes, including all those in doc/* and test/* as well as + the majority in the platform directories, follow on from these. + + Also coming out of the woodwork: + * generic/tclIndex.c: Better support for Cray PVP. + * win/tclWinMtherr.c: Better Borland support. + + Note that, in a number of places through the Unix part of the platform + support, there are Tcl_Platform* references. These are expanded into + the correct way to call that particular underlying function, i.e. with + or without a '64' suffix, and should be used by people working on the + core in preference to the API functions they overlay so that the code + remains portable depending on the presence or absence of 64-bit + support on the underlying platform. + + ***POTENTIAL INCOMPATIBILITY***: Extracted from the TIP + + SUMMARY OF INCOMPATIBILITIES AND FIXES + ====================================== + + The behaviour of expressions containing constants that appear positive + but which have a negative internal representation will change, as + these will now usually be interpreted as wide integers. This is always + fixable by replacing the constant with int(constant). + + Extensions creating new channel types will need to be altered as + different types are now in use in those areas. The change to the + declaration of Tcl_FSStat and Tcl_FSLstat (which are the new preferred + API in any case) are less serious as no non-alpha releases have been + made yet with those API functions. + + Scripts that are lax about the use of the l modifier in format and + scan will probably need to be rewritten. This should be very uncommon + though as previously it had absolutely no effect. + + Extensions that create new math functions that take more than one + argument will need to be recompiled (the size of Tcl_Value changes), + and functions that accept arguments of any type (TCL_EITHER) will need + to be rewritten to handle wide integer values. (I do not expect this + to affect many extensions at all.) + +2002-02-14 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * generic/tclIOCmd.c (Tcl_GetsObjCmd): Trivial fix for [Bug 517503], a + memory leak reported by Miguel Sofer <msofer@users.sourceforge.net>. + The leak happens if an error occurs for "set var [gets $chan]" and + leak one empty object. + +2002-02-12 David Gravereaux <davygrvy@pobox.com> + + * djgpp/ (new directory) + * djgpp/Makefile (new): + * unix/tclAppInit.c: + * unix/tclMtherr.c: + * unix/tclUnixFCmd.c: + * unix/tclUnixFile.c: + * unix/tclUnixInit.c: + * unix/tclUnixPort.h: Early stage of DJGPP support for building Tcl + on DOS. Dynamic loading isn't working, yet. Requires watt32 for the + TCP/IP stack. No autoconf, yet. Barely tested, but makes a working exe + that runs Tcl in protected-mode, flat memory. [exec] and pipes will + need the most work as multi-tasking on DOS has to be carefully. -2006-03-03 Don Porter <dgp@users.sourceforge.net> +2002-02-10 Kevin Kenny <kennykb@acm.org> - * generic/tclPathObj.c: Revised yesterday's fix for [Bug 1379287] to - work on Windows. + * doc/CrtObjCmd.3: + * doc/CrtTrace.3: + * generic/tcl.decls: + * generic/tcl.h: + * generic/tclBasic.c: + * generic/tclInt.h: + * generic/tclTest.c: + * tests/basic.test: Added Tcl_CreateObjTrace, + Tcl_GetCommandInfoFromToken and Tcl_SetCommandInfoFromToken. + (TIPs #32 and #79.) - * generic/tclObj.c: Compatibility support for existing code that - calls Tcl_GetObjType("boolean"). + * generic/tclDecls.h: + * generic/tclStubInit.c: Regenerated Stubs tables. -2006-03-02 Don Porter <dgp@users.sourceforge.net> +2002-02-08 Jeff Hobbs <jeffh@ActiveState.com> - * 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] + * unix/configure: + * unix/tcl.m4: added -pthread for FreeBSD to EXTRA_CFLAGS and + LDFLAGS. Also triggered nodots only for FreeBSD-3. + Added AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) for Solaris. -2006-03-01 Reinhard Max <max@suse.de> + * unix/tclUnixPort.h: + * unix/tclUnixThrd.c: added thread-safe versions of readdir, + localtime, gmtime and inet_ntoa for threaded build. (jgdavidson) - * unix/installManPage: Fix the script for manpages that have quotes - around the .SH arguments, as doctools produces them. [Bug 1292145] - Some minor cleanups and improvements. + * generic/tclScan.c (Tcl_ScanObjCmd): prevented ckfree being + called on a pointer to NULL. -2006-02-28 Don Porter <dgp@users.sourceforge.net> +2002-02-07 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] + * doc/DString.3: + * doc/Encoding.3: + * doc/GetCwd.3: + * doc/SplitPath.3: + * doc/Translate.3: + * doc/Utf.3: + * generic/tcl.decls: + * generic/tcl.h: + * generic/tclEncoding.c: + * generic/tclEnv.c: + * generic/tclFileName.c: + * generic/tclIOUtil.c: + * generic/tclUtf.c: + * generic/tclUtil.c: + * mac/tclMacInit.c: + * unix/tclUnixFile.c: + * unix/tclUnixInit.c: + * unix/tclUnixPipe.c: + * win/tclWin32Dll.c: + * win/tclWinFCmd.c: + * win/tclWinFile.c: + * win/tclWinInit.c: Partial TIP 27 rollback. Following routines + restored to return (char *): Tcl_DStringAppend, + Tcl_DStringAppendElement, Tcl_JoinPath, Tcl_TranslateFileName, + Tcl_ExternalToUtfDString, Tcl_UtfToExternalDString, + Tcl_UniCharToUtfDString, Tcl_GetCwd, Tcl_WinTCharToUtf. Also + restored Tcl_WinUtfToTChar to return (TCHAR *) and + Tcl_UtfToUniCharDString to return (Tcl_UniChar *). Modified + some callers. This change recognizes that Tcl_DStrings are + de-facto white-box objects. -2006-02-22 Don Porter <dgp@users.sourceforge.net> + * generic/tclDecls.h: + * generic/tclPlatDecls.h: make genstubs - * generic/tclBasic.c: Corrected a few bugs in how [namespace - * tests/namespace.test: unknown] interacts with TCL_EVAL_* flags. - [Patch 958222] + * generic/tclCmdMZ.c: corrected use of C++-style comment. -2006-02-17 Don Porter <dgp@users.sourceforge.net> +2002-02-06 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclIORChan.c: Revised error message generation and handling - * tests/ioCmd.test: of exceptional return codes in the channel - reflection layer. [Bug 1372348] + * tests/scan.test: + * generic/tclScan.c (Tcl_ScanObjCmd): corrected scan 0x... %x handling + that didn't accept the 0x as a prelude to a base 16 number. [Bug + 495213] -2006-02-16 Don Porter <dgp@users.sourceforge.net> + * generic/tclCompCmds.c (TclCompileRegexpCmd): made early check + for bad RE to stop checking further. - * generic/tclIndexObj.c: Disallow the "ambiguous" error message - * tests/indexObj.test: when TCL_EXACT matching is requested. - * tests/ioCmd.test: + * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): added special case to + search for simple 'string map' style regsub calls. + Delayed creation of resultPtr object until an initial match is + made, as the input string object can then be reused for no matches. + (Tcl_StringObjCmd): optimization improvements to the STR_MAP + algorithm for zero-length and nocase cases. -2006-02-15 Don Porter <dgp@users.sourceforge.net> + * tests/regexp.test: + * tests/regexpComp.test: extra code coverage tests. - * generic/tclIO.c: Made several routines tolerant of - * generic/tclIORChan.c: interp == NULL arguments. [Bug 1380662] - * generic/tclIOUtil.c: + * tests/string.test: added 10.18 and 10.19 extra tests. -2006-02-09 Don Porter <dgp@users.sourceforge.net> + * generic/regc_locale.c (casecmp): slight performance improvement. - TIP#215 IMPLEMENTATION +2002-02-05 Don Porter <dgp@users.sourceforge.net> - * 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: + * library/http/http.tcl: + * library/http/pkgIndex.tcl: Corrected use of http::error when + ::error was intended. Bump to http 2.4.2. - * generic/tclDecls.h: make genstubs - * generic/tclIntDecls.h: - * generic/tclStubInit.c: +2002-02-04 Andreas Kupries <andreas_kupries@users.sourceforge.net> -2006-02-01 Miguel Sofer <msofer@users.sf.net> + * unix/tclUnixChan.c (FileOutputProc): Fixed [bug 465765] reported by + Dale Talcott <daletalcott@users.sourceforge.net>. Avoid writing + nothing into a file as STREAM based implementations will consider this + a EOF (if the file is a pipe). Not done in the generic layer as this + type of writing is actually useful to check the state of a socket. - * generic/tclProc.c: minor improvements to [apply] - * tests/apply.test: new tests; apply-5.1 currently fails to indicate - missing work in error reporting + * doc/open.n: Fixed [Bug 511540], added cross-reference to 'pid' as + the command to use to retrieve the pid of a command pipeline created + via 'open'. -2006-02-01 Don Porter <dgp@users.sourceforge.net> +2002-02-01 Jeff Hobbs <jeffh@ActiveState.com> - TIP#194 IMPLEMENTATION + * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): handle quirky about case + earlier to avoid shimmering problem. - * 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: +2002-02-01 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * tests/io.test: io-39.22 split into two tests, one platform + dependent, the other not. -eofchar is not empty on the windows + platform. + +2002-02-01 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclTest.c: fix to picky windows compiler problem with the + 'MainLoop' function declaration. - TIP#181 IMPLEMENTATION +2002-01-31 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * win/tclWinFCmd.c: TIP 27: Applied patch fixing CONST warnings on + behalf of Don Porter <dgp@users.sourceforge.net>. + +2002-01-30 Don Porter <dgp@users.sourceforge.net> - * doc/Namespace.3: New command [namespace unknown]. New public C - * doc/namespace.n: routines Tcl_(Get|Set)NamespaceUnknownHandler. - * doc/unknown.n: [Patch 958222] * generic/tcl.decls: - * generic/tclBasic.c: - * generic/tclInt.h: - * generic/tclNamesp.c: - * tests/namespace.test: + * generic/tcl.h: + * generic/tclInt.h: For each interface identified in the TIP 27 + changes below as a POTENTIAL INCOMPATIBILITY, the source of the + incompatibility has been parameterized so that it can be removed. When + compiling extension code against the Tcl header files, use the + compiler flag -DUSE_NON_CONST to remove the irresolvable source + incompatibilities introduced by the TIP 27 changes. Resolvable changes + are left for extension authors to resolve. + * generic/tclDecls.h: make genstubs - * generic/tclDecls.h: make genstubs - * generic/tclStubInit.c: +2002-01-30 Vince Darley <vincentdarley@users.sourceforge.net> + + * doc/FileSystem.3: added documentation for 3 public functions which + had been overlooked. Fixes [Bug 507701] + * unix/mkLinks: make mklinks + +2002-01-29 Jeff Hobbs <jeffh@ActiveState.com> + + * tests/regexpComp.test: + * generic/tclCompCmds.c (TclCompileRegexpCmd): enhanced to support + -nocase and -- options. - TIP#250 IMPLEMENTATION +2002-01-28 Mo DeJong <mdejong@users.sourceforge.net> - * doc/namespace.n: New command [namespace upvar]. [Patch 1275435] + * unix/tcl.m4 (SC_LOAD_TCLCONFIG): + * win/tcl.m4 (SC_LOAD_TCLCONFIG): Set TCL_LIB_SPEC, TCL_STUB_LIB_SPEC, + and TCL_STUB_LIB_PATH to the values of TCL_BUILD_LIB_SPEC, + TCL_BUILD_STUB_LIB_SPEC, and TCL_BUILD_STUB_LIB_PATH when tclConfig.sh + is loaded from the build directory. A Tcl extension should make use of + the non-build versions of these variables since they will work in both + cases. This modification was described in TIP #34. + +2002-01-28 Jeff Hobbs <jeffh@ActiveState.com> + + * win/tclWinReg.c (regConnectRegistryProc,RecursiveDeleteKey) + (DeleteKey,GetKeyNames,GetType,GetValue,OpenSubKey,SetValue): + redid the CONSTification as previous changes caused failing tests. + + * tests/regexpComp.test (new): * generic/tclInt.h: - * generic/tclNamesp.c: - * generic/tclVar.c: - * tests/namespace.test: - * tests/upvar.test: + * generic/tclBasic.c: added TclCompileRegexpCmd entry + * generic/tclCompCmds.c (TclCompileStringCmd): corrected to return + TCL_OUT_LINE_COMPILE instead of TCL_ERROR for parsing errors, so + it only throws the error for runtime compile, in case the user + modifies 'string'. + (TclCompileRegexpCmd): first try at a byte-compiled regexp + command. It handles static strings and ^$ bounded static strings. + (TclCompileAppendCmd): made TclPushVarName call always use + TCL_CREATE_VAR as numWords is always > 2 at that point. -2006-01-26 Donal K. Fellows <dkf@users.sf.net> + * generic/tclExecute.c (TclExecuteByteCode:INST_LIST): correct + possibly dangerous decr in macro call. - * doc/dict.n: Fixed silly bug in example. Thanks to Heiner Marxen - <heiner.marxen@unsel.de> for catching this! [Bug 1415725] + * win/tclWinInit.c (TclpFindVariable): CONSTification touch-up -2006-01-26 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * win/tclWinReg.c (OpenSubKey): corrected bug introduced in + CONSTification that dropped pointer reference. - * 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. + * ChangeLog.2000 (new file): + * ChangeLog: broke changes from 2000 into ChangeLog.2000 to reduce + size of the main ChangeLog. -2006-01-25 Donal K. Fellows <dkf@users.sf.net> +2002-01-28 David Gravereaux <davygrvy@pobox.com> - * unix/tclUnixInit.c (TclpInitPlatform): Improved conditions on when - to update the FP rounding mode on FreeBSD, taken from FreeBSD port. + * generic/tclPlatDecls.h: Added preprocessor logic to force a typedef + of TCHAR when __STDC__ is defined when using the uncommon -Za compiler + switch with the microsoft compiler. -2006-01-23 Donal K. Fellows <dkf@users.sf.net> +2002-01-27 Don Porter <dgp@users.sourceforge.net> - * tests/string.test (string-12.21): Added test for [Bug 1410553] based - on original bug report. + * doc/package.n: Documented global namespace context for script + evaluation by [package require]. -2006-01-23 Miguel Sofer <msofer@users.sf.net> +2002-01-27 Daniel Steffen <das@users.sourceforge.net> - * generic/tclStringObj.c: fixed incorrect handling of internal rep in - Tcl_GetRange. Thanks to twylite and Peter Spjuth. [Bug 1410553] + * generic/tclInt.decls: + * generic/tclIntPlatDecls.h: + * mac/tclMacChan.c: + * mac/tclMacFCmd.c: + * mac/tclMacFile.c: + * mac/tclMacInit.c: + * mac/tclMacLoad.c: + * mac/tclMacResource.c: + * mac/tclMacSock.c: TIP 27 CONSTification induced changes + + * tests/event.test: + * tests/main.test: added catches/constraints to test that use features + that don't exist on the mac. + +2002-01-25 Mo DeJong <mdejong@users.sourceforge.net> + + Make -eofchar and -translation options read only for server sockets. + [Bug 496733] + + * generic/tclIO.c (Tcl_GetChannelOption, Tcl_SetChannelOption): + Instead of returning nothing for the -translation option on a server + socket, always return "auto". Return the empty string enclosed in + quotes for the -eofchar option on a server socket. Fixup -eofchar + usage message so that it matches the implementation. + * tests/io.test: Add -eofchar tests and -translation tests to ensure + options are read only on server sockets. + * tests/socket.test: Update tests to account for -eofchar and + -translation option changes. + +2002-01-25 Don Porter <dgp@users.sourceforge.net> + + * compat/strstr.c (strstr): + * generic/tclCmdAH.c (Tcl_FormatObjCmd): + * generic/tclCmdIL.c (InfoNameOfExecutableCmd): + * generic/tclEnv.c (ReplaceString): + * generic/tclFileName.c (ExtractWinRoot): + * generic/tclIO.c (FlushChannel,Tcl_BadChannelOption): + * generic/tclStringObj.c (AppendUnicodeToUtfRep): + * generic/tclThreadTest.c (TclCreateThread): + * generic/tclUtf.c (Tcl_UtfPrev): + * mac/tclMacFCmd.c (TclpObjListVolumes): + * mac/tclMacResource.c (TclMacRegisterResourceFork) + (BuildResourceForkList): + * win/tclWinInit.c (AppendEnvironment): Sought out and eliminated + instances of CONST-casting that are no longer needed after the + TIP 27 effort. + + * Following is [Patch 501006] + * generic/tclInt.decls (Tcl_AddInterpResolvers, Tcl_Export) + (Tcl_FindNamespace, Tcl_GetInterpResolvers, Tcl_ForgetImport) + (Tcl_Import, Tcl_RemoveInterpResolvers): + * generic/tclNamesp.c (Tcl_Export, Tcl_Import, Tcl_ForgetImport) + (Tcl_FindNamespace): + * generic/tclResolve.c (Tcl_AddInterpResolvers,Tcl_GetInterpResolvers, + (Tcl_RemoveInterpResolvers): Updated APIs in generic/tclResolve.c and + generic/tclNamesp.c according to the guidelines of TIP 27. + * generic/tclIntDecls.h: make genstubs + + * Following is [Patch 505630] + * doc/AddErrorInfo.3: + * generic/tcl.decls (Tcl_LogCommandInfo): + * generic/tclBasic.c (Tcl_LogCommandInfo): Updated interfaces + of generic/tclBasic.cc according to TIP 27. + * generic/tclDecls.h: make genstubs + + * Following is [Patch 506818] + * doc/Hash.3: + * generic/tcl.decls (Tcl_HashStats): + * generic/tclHash.c (Tcl_HashStats): Updated APIs of generic/tclHash.c + according to guidelines of TIP 27. + * generic/tclDecls.h: make genstubs + * generic/tclVar.c (Tcl_ArrayObjCmd): Updated callers. + + * Following is [Patch 506807] + * doc/ObjectType.3: + * generic/tcl.decls (Tcl_GetObjType): + * generic/tclObj.c (Tcl_GetObjType): Updated APIs of generic/tclObj.c + according to guidelines of TIP 27. + * generic/tclDecls.h: make genstubs + + * Following is [Patch 507304] + * doc/Encoding.3: + * generic/tcl.decls (Tcl_WinUtfToTChar,Tcl_WinTCharToUtf): + * win/tclWin32Dll.c (Tcl_WinUtfToTChar,Tcl_WinTCharToUtf): + Updated interfaces in win/tclWin32Dll.c according to TIP 27. + * generic/tclPlatDecls.h: make genstubs + * generic/tclIOUtil.c (TclpNativeToNormalized): + * win/tclWinFCmd.c (TclpObjNormalizePath): + * win/tclWinFile.c (TclpFindExecutable,TclpMatchInDirectory) + (NativeIsExec,NativeStat): + * win/tclWinLoad.c (TclpLoadFile): + * win/tclWinPipe.c (TclpOpenFile,ApplicationType): + * win/tclWinReg.c (regConnectRegistryProc,RecursiveDeleteKey,DeleteKey) + (GetKeyNames,GetType,GetValue,OpenSubKey,SetValue): + * win/tclWinSerial.c (SerialSetOptionProc): Update callers. + + * Following is [Patch 505072] + * doc/Concat.3: + * doc/Encoding.3: + * doc/Filesystem.3: + * doc/Macintosh.3: + * doc/OpenFileChnl.3 + * doc/SetResult.3: + * doc/SetVar.3: + * doc/SplitList.3: + * doc/SplitPath.3: + * doc/Translate.3: + * generic/tcl.h (Tcl_FSMatchInDirectoryProc): + * generic/tclInt.h (TclpMatchInDirectory): + * generic/tcl.decls (Tcl_Concat,Tcl_GetStringResult,Tcl_GetVar, + (Tcl_GetVar2,Tcl_JoinPath,Tcl_Merge,Tcl_OpenCommandChannel,Tcl_SetVar) + (Tcl_SetVar2,Tcl_SplitList,Tcl_SplitPath,Tcl_TranslateFileName) + (Tcl_ExternalToUtfDString,Tcl_GetEncodingName,Tcl_UtfToExternalDString) + (Tcl_GetDefaultEncodingDir,Tcl_SetDefaultEncodingDir) + (Tcl_FSMatchInDirectory,Tcl_MacEvalResource,Tcl_MacFindResource): + * generic/tclInt.decls (TclCreatePipeline,TclGetEnv,TclpGetCwd, + (TclpCreateProcess): + * mac/tclMacFile.c (TclpGetCwd): + * generic/tclEncoding.c (Tcl_GetDefaultEncodingDir) + (Tcl_SetDefaultEncodingDir,Tcl_GetEncodingName) + (Tcl_ExternalToUtfDString,Tcl_UtfToExternalDString, OpenEncodingFile) + (LoadEscapeEncoding): + * generic/tclFileName.c (DoTildeSubst,Tcl_JoinPath,Tcl_SplitPath, + (Tcl_TranslateFileName): + * generic/tclIOUtil.c (Tcl_FSMatchInDirectory): + * generic/tclPipe.c (FileForRedirect,TclCreatePipeline) + (Tcl_OpenCommandChannel): + * generic/tclResult.c (Tcl_GetStringResult): + * generic/tclUtil.c (Tcl_Concat,Tcl_SplitList,Tcl_Merge): + * generic/tclVar.c (Tcl_GetVar,Tcl_GetVar2,Tcl_SetVar,Tcl_SetVar2): + * mac/tclMacResource.c (Tcl_MacEvalResource,Tcl_MacFindResource): + Updated interfaces of generic/tclEncoding, generic/tclFilename.c, + generic/tclIOUtil.c, generic/tclPipe.c, generic/tclResult.c, + generic/tclUtil.c, generic/tclVar.c and mac/tclMacResource.c according + to TIP 27. Tcl_TranslateFileName rewritten as wrapper around + VFS-aware version. + ***POTENTIAL INCOMPATIBILITY*** + Includes source incompatibilities: argv arguments of Tcl_Concat, + Tcl_JoinPath, Tcl_OpenCommandChannel, Tcl_Merge; argvPtr arguments of + Tcl_SplitList and Tcl_SplitPath. + * generic/tclDecls.h: + * generic/tclIntDecls.h: make genstubs + + * generic/tclCkalloc.c (MemoryCmd): + * generic/tclClock.c (FormatClock): + * generic/tclCmdAH.c (Tcl_CaseObjCmd,Tcl_EncodingObjCmd,Tcl_FileObjCmd): + * generic/tclCmdIL.c (InfoLibraryCmd,InfoPatchLevelCmd, + (InfoTclVersionCmd): + * generic/tclCompCmds.c (TclCompileForeachCmd): + * generic/tclCompCmds.h (TclCompileForeachCmd): + * generic/tclCompile.c (TclFindCompiledLocal): + * generic/tclEnv.c (TclSetupEnv,TclSetEnv,Tcl_PutEnv,TclGetEnv, + (EnvTraceProc): + * generic/tclEvent.c (Tcl_BackgroundError): + * generic/tclIO.c (Tcl_BadChannelOption,Tcl_SetChannelOption): + * generic/tclIOCmd.c (Tcl_ExecObjCmd,Tcl_OpenObjCmd): + * generic/tclIOSock.c (TclSockGetPort): + * generic/tclIOUtil.c (SetFsPathFromAny): + * generic/tclLink.c (LinkTraceProc): + * generic/tclMain.c (Tcl_Main): + * generic/tclNamesp.c (TclTeardownNamespace): + * generic/tclProc.c (TclCreateProc): + * generic/tclTest.c (TestregexpObjCmd,TesttranslatefilenameCmd, + (TestchmodCmd,GetTimesCmd,TestsetCmd,TestOpenFileChannelProc1, + (TestOpenFileChannelProc2,TestOpenFileChannelProc3,AsyncHandlerProc, + (TestpanicCmd): + * generic/tclThreadTest.c (ThreadErrorProc,ThreadEventProc): + * generic/tclUtil.c (TclPrecTraceProc): + * mac/tclMacFCmd.c (GetFileSpecs): + * mac/tclMacFile.c (TclpMatchInDirectory): + * mac/tclMacInit.c (TclpInitLibraryPath,Tcl_SourceRCFile): + * mac/tclMacOSA.c (tclOSAStore,tclOSALoad): + * mac/tclMacResource.c (Tcl_MacEvalResource): + * unix/tclUnixFCmd.c (TclpObjNormalizePath): + * unix/tclUnixFile.c (TclpMatchInDirectory,TclpGetUserHome,TclpGetCwd, + (TclpReadLink): + * unix/tclUnixInit.c (TclpInitLibraryPath,TclpSetVariables, + (Tcl_SourceRCFile): + * unix/tclUnixPipe.c (TclpOpenFile,TclpCreateTempFile, + (TclpCreateProcess): + * win/tclWinFile.c (TclpGetCwd,TclpMatchInDirectory): + * win/tclWinInit.c (TclpInitLibraryPath,Tcl_SourceRCFile, + (TclpSetVariables): + * win/tclWinPipe.c (TclpCreateProcess): Updated callers. + +2002-01-24 Don Porter <dgp@users.sourceforge.net> + + * generic/tclIOUtil.c (SetFsPathFromAny): Corrected tilde-substitution + of pathnames where > 1 separator follows the ~. [Bug 504950] + +2002-01-24 Jeff Hobbs <jeffh@ActiveState.com> - * generic/tclProc.c: fixed args handling for precompiled bodies [Bug - 1412695]; thanks to Uwe Traum. + * library/http/pkgIndex.tcl: + * library/http/http.tcl: don't add port in default case to handle + broken servers. http bumped to 2.4.1 [Bug 504508] + +2002-01-23 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * unix/mkLinks: Regenerated. + * doc/CrtChannel.3: + * doc/ChnlStack.3: Moved documentation for 'Tcl_GetTopChannel' from + 'CrtChannel' to 'ChnlStack'. Added documentation of + 'Tcl_GetStackedChannel'. [Bug 506147] reported by Mark Patton + <msp@users.sourceforge.net> + +2002-01-23 Don Porter <dgp@users.sourceforge.net> + + * win/tclWinFile.c (NativeAccess,NativeStat,NativeIsExec, + (TclpGetUserHome): + * win/tclWinPort.h (TclWinSerialReopen): + * win/tclWinSerial.c (TclWinSerialReopen): + * win/tclWinSock.c (Tcl_OpenTcpServer): Corrections to earlier TIP + #27 changes. Thanks to Andreas Kupries for the feedback. + * generic/tclPlatDecls.h: make genstubs + + * doc/GetHostName.3: + * doc/GetOpnFl.3: + * doc/OpenTcp.3: + * tcl.decls (Tcl_GetHostName,Tcl_GetOpenFile,Tcl_OpenTcpClient, + (Tcl_OpenTclServer): + * mac/tclMacSock.c (CreateSocket,Tcl_OpenTcpClient,Tcl_OpenTcpServer, + (Tcl_GetHostName,GetHostFromString): + * unix/tclUnixChan.c (CreateSocket,CreateSocketAddress, + (Tcl_OpenTcpClient,Tcl_OpenTcpServer,Tcl_GetOpenFile): + * unix/tclUnixSock.c (Tcl_GetHostName): + * win/tclWinSock.c (CreateSocket,CreateSocketAddress, + (Tcl_OpenTcpClient,Tcl_OpenTcpServer,Tcl_GetHostName): + Updated socket interfaces according to TIP 27. + * generic/tclCmdIL.c (InfoHostnameCmd): Updated callers. + * generic/tclDecls.h: make genstubs + +2002-01-21 David Gravereaux <davygrvy@pobox.com> + + * generic/tclLoadNone.c: TclpLoadFile() didn't match proto of typedef + Tcl_FSLoadFileProc. OK'd by vincentdarley. [Patch 502488] + +2002-01-21 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * generic/tclIO.c (WriteChars): Fix for [Bug 506297], reported by + Martin Forssen <ruric@users.sourceforge.net>. The encoding chosen in + the script exposing the bug writes out three intro characters when + TCL_ENCODING_START is set, but does not consume any input as + TCL_ENCODING_END is cleared. As some output was generated the + enclosing loop calls UtfToExternal again, again with START set. Three + more characters in the out and still no use of input ... To break this + infinite loop we remove TCL_ENCODING_START from the set of flags after + the first call (no condition is required, the later calls remove an + unset flag, which is a no-op). This causes the subsequent calls to + UtfToExternal to consume and convert the actual input. + +2002-01-21 Don Porter <dgp@users.sourceforge.net> + + * generic/tclTest.c: Converted declarations of TestReport file system + to more portable form. [Bug 501417]. + + * generic/tcl.decls (Tcl_TraceCommand,Tcl_UntraceCommand, + (Tcl_CommandTraceInfo): + * generic/tclCmdMZ.c (Tcl_TraceCommand,Tcl_UntraceCommand, + (Tcl_CommandTraceInfo): Updated APIs in generic/tclCmdMZ.c + according to the guidelines of TIP 27. + * generic/tclDecls.h: make genstubs + +2002-01-18 Don Porter <dgp@users.sourceforge.net> -2006-01-16 Reinhard Max <max@suse.de> + * win/tclWinChan.c: + * win/tclWinFCmd.c: + * win/tclWinFile.c: Overlooked callers of Tcl_FSGetNativePath - * generic/tclPipe.c (FileForRedirect): Prevent nameString from being - freed without having been initialized. - * tests/exec.test: Added a test for the above. + * win/tclWinDde.c: + * win/tclWinReg.c: Overlooked callers of Tcl_GetIndexFromObj -2006-01-12 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> +2002-01-18 Daniel Steffen <das@users.sourceforge.net> - * generic/tclPathObj.c (Tcl_FSGetInternalRep): backported patch from - core-8-4-branch. A freed pointer has been overwritten causing all - sorts of coredumps. + * generic/tclThreadTest.c: + * mac/tclMacChan.c: + * mac/tclMacFCmd.c: + * mac/tclMacFile.c: + * mac/tclMacLoad.c: + * mac/tclMacResource.c: TIP 27 CONSTification broke the mac build in a + number of places. -2006-01-12 Vince Darley <vincentdarley@sourceforge.net> +2002-01-17 Andreas Kupries <andreas_kupries@users.sourceforge.net> - * win/tclWinFile.c: fix to sharing violation [Bug 1366227] + * generic/tclIOCmd.c (Tcl_GetsObjCmd): Fixed [Bug 504642] as reported + by Brian Griffin <bgriffin@users.sourceforge.net>, using his patch. + Before the patch the generic I/O layer held an unannounced reference + to the interp result to store the read line into. This unfortunately + has disastrous results if the channel driver executes a Tcl script to + perform its operation, this freeing the interp result. In that case we + are dereferencing essentially a dangling reference. It is not truly + dangling because the object is in the free list, but this only causes + us to smash the free list and have the error occur later somewhere + else. The patch simply creates a new object for the line and later + sets it into the interp result when we are done with reading. -2006-01-11 Don Porter <dgp@users.sourceforge.net> +2002-01-16 Mo DeJong <mdejong@users.sourceforge.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] + * unix/tcl.m4 (SC_LOAD_TCLCONFIG): + * win/tcl.m4 (SC_LOAD_TCLCONFIG): Subst TCL_DBGX into + TCL_STUB_LIB_FILE and TCL_STUB_LIB_FLAG variables so that an extension + does not need to subst TCL_DBGX into its makefile. [Tk Bug 504356] -2006-01-10 Daniel Steffen <das@users.sourceforge.net> +2002-01-16 Don Porter <dgp@users.sourceforge.net> - * unix/configure: add caching, use AC_CACHE_CHECK instead of - * unix/configure.in: AC_CACHE_VAL where possible, consistent message - * unix/tcl.m4: quoting, sync relevant tclconfig/tcl.m4 changes - and gratuitous formatting differences, fix SC_CONFIG_MANPAGES with - default argument, Darwin improvements to SC_LOAD_*CONFIG. + * doc/FileSystem.3: + * doc/GetCwd.3: + * doc/GetIndex.3: + * generic/tcl.decls (Tcl_GetIndexFromObj, Tcl_GetIndexFromObjStruct, + (Tcl_GetCwd, Tcl_FSFileAttrStrings, Tcl_FSGetNativePath, + (Tcl_FSGetTranslatedStringPath): + * generic/tcl.h (Tcl_FSFileAttrStringsProc): + * generic/tclFCmd.c (TclFileAttrsCmd): + * generic/tclIOUtil.c (Tcl_GetCwd,NativeFileAttrStrings, + (Tcl_FSFileAttrStrings,Tcl_FSGetTranslatedStringPath, + (Tcl_FSGetNativePath): + * generic/tclIndexObj.c (Tcl_GetIndexFromObj,Tcl_GetIndexFromObjStruct): + More TIP 27 updates in tclIOUtil.c and tclIndexObj.c that were + overlooked before. [Patch 504671] + ***POTENTIAL INCOMPATIBILITY*** + Includes a source incompatibility in the tablePtr arguments of the + Tcl_GetIndexFromObj* routines. + * generic/tclDecls.h: make genstubs + + * generic/tclBinary.c (Tcl_BinaryObjCmd): + * generic/tclClock.c (Tcl_ClockObjCmd): + * generic/tclCmdAH.c (Tcl_EncodingObjCmd, Tcl_FileObjCmd): + * generic/tclCmdIL.c (Tcl_InfoObjCmd,Tcl_LsearchObjCmd,Tcl_LsortObjCmd): + * generic/tclCmdMZ.c (Tcl_TraceObjCmd,Tcl_RegexpObjCmd,Tcl_RegsubObjCmd, + (Tcl_StringObjCmd,Tcl_SubstObjCmd,Tcl_SwitchObjCmd, + (TclTraceCommandObjCmd,TclTraceVariableObjCmd): + * generic/tclCompCmds.c (TclCompileStringCmd): + * generic/tclEvent.c (Tcl_UpdateObjCmd): + * generic/tclFileName.c (Tcl_GlobObjCmd): + * generic/tclIO.c (Tcl_FileEventObjCmd): + * generic/tclIOCmd.c (Tcl_SeekObjCmd,Tcl_ExecObjCmd,Tcl_SocketObjCmd, + (Tcl_FcopyObjCmd): + * generic/tclInterp.c (Tcl_InterpObjCmd,SlaveObjCmd): + * generic/tclNamesp.c (Tcl_NamespaceObjCmd): + * generic/tclPkg.c (Tcl_PackageObjCmd): + * generic/tclTest.c (Tcltest_Init,TestencodingObjCmd,TestgetplatformCmd, + (TestlocaleCmd,TestregexpObjCmd,TestsaveresultCmd, + (TestGetIndexFromObjStructObjCmd,TestReportFileAttrStrings): + * generic/tclTestObj.c (TestindexObjCmd,TeststringObjCmd): + * generic/tclTimer.c (Tcl_AfterObjCmd): + * generic/tclVar.c (Tcl_ArrayObjCmd): + * mac/tclMacFCmd.c (SetFileFinderAttributes): + * unix/tclUnixChan.c (TclpOpenFileChannel): + * unix/tclUnixFCmd.c (tclpFileAttrStrings): + * unix/tclUnixFile.c (TclpObjAccess,TclpObjChdir,TclpObjStat, + (TclpObjLstat): + * win/tclWinFCmd.c (tclpFileAttrStrings): Updated callers. + + * doc/RegExp.3: + * doc/Utf.3: + * generic/tcl.decls: + * generic/tclInt.decls: + * generic/tclRegexp.c: + * generic/tclUtf.c: Updated APIs in generic/tclUtf.c and + generic/tclRegexp.c according to the guidelines of TIP 27. + [Patch 471509] + + * generic/regc_locale.c (element,cclass): + * generic/tclCmdMZ.c (Tcl_StringObjCmd): + * generic/tclFileName.c (TclpGetNativePathType,SplitMacPath): + * generic/tclIO.c (ReadChars): + * mac/tclMacLoad.c (TclpLoadFile): + * win/tclWinFile.c (TclpGetUserHome): Updated callers. + + * generic/tclDecls.h: + * generic/tclIntDecls.h: make genstubs + + * doc/ParseCmd.3 (Tcl_ParseVar): + * generic/tcl.decls (Tcl_ParseVar): + * generic/tclParse.c (Tcl_ParseVar): + * generic/tclTest.c (TestparsevarObjCmd): Updated APIs in + generic/tclParse.c according to the guidelines of TIP 27. Updated + callers. [Patch 501046] + * generic/tclDecls.h: make genstubs + + * generic/tcl.decls (Tcl_RecordAndEval): + * generic/tclDecls.h: make genstubs + * generic/tclHistory.c (Tcl_RecordAndEval): Updated APIs in + generic/tclHistory.c according to the guidelines of TIP 27. + [Patch 504091] + + * doc/CrtSlave.3: + * generic/tcl.decls (Tcl_CreateAlias, Tcl_CreateAliasObj, + (Tcl_CreateSlave, Tcl_GetAlias, Tcl_GetAliasObj, Tcl_GetSlave): + * generic/tclInterp.c (Tcl_CreateAlias, Tcl_CreateAliasObj, + (Tcl_CreateSlave, Tcl_GetAlias, Tcl_GetAliasObj, Tcl_GetSlave): + Updated APIs in the file generic/tclInterp.c according to the + guidelines of TIP 27. [Patch 501371] + ***POTENTIAL INCOMPATIBILITY*** + Includes a source incompatibility in the targetCmdPtr arguments of + the Tcl_GetAlias* routines. + + * generic/tclDecls.h: make genstubs + +2002-01-15 Don Porter <dgp@users.sourceforge.net> + + * doc/SetErrno.3 (Tcl_ErrnoMsg): Corrected documentation for + Tcl_ErrnoMsg; it takes an integer argument. Thanks to Georgios + Petasis. [Bug 468183] + + * doc/AddErrInfo.3 (Tcl_PosixError): + * doc/Eval.3 (Tcl_EvalFile): + * doc/FileSystem.c (Tcl_FSOpenFileChannel,Tcl_FSOpenFileChannelProc): + * doc/OpenFileChnl.3 (Tcl_OpenFileChannel): + * doc/SetErrno.3 (Tcl_ErrnoId,Tcl_ErrnoMsg): + * doc/Signal.3 (Tcl_SignalId,Tcl_SignalMsg): + * generic/tcl.decls (Tcl_ErrnoId,TclErrnoMsg,Tcl_EvalFile, + (Tcl_OpenFileChannel,Tcl_PosixError,Tcl_SignalId,Tcl_SignalMsg, + (Tcl_FSOpenFileChannel): + * generic/tcl.h (Tcl_FSOpenFileChannelProc): + * generic/tclIO.c (FlushChannel): + * generic/tclIOUtil.c (Tcl_OpenFileChannel,Tcl_EvalFile,TclGetOpenMode, + (Tcl_PosixError,Tcl_FSOpenFileChannel): + * generic/tclInt.decls (TclGetOpenMode): + * generic/tclInt.h (TclOpenFileChannelProc_,TclGetOpenMode, + (TclpOpenFileChannel): + * generic/tclPipe.c (TclCleanupChildren): + * generic/tclPosixStr.c (Tcl_ErrnoId,Tcl_ErrnoMsg,Tcl_SignalId, + (Tcl_SignalMsg): + * generic.tclTest.c (PretendTclpOpenFileChannel, + (TestOpenFileChannelProc1,TestOpenFileChannelProc2, + (TestOpenFileChannelProc3,TestReportOpenFileChannel): + * mac/tclMacChan.c (TclpOpenFileChannel): + * unix/tclUnixChan.c (TclpOpenFileChannel): + * win/tclWinChan.c (TclpOpenFileChannel): Updated APIs in + generic/tclIOUtil.c and generic/tclPosixStr.c according to the + guidelines of TIP 27. Updated callers. [Patch 499196] + + * generic/tclDecls.h: + * generic/tclIntDecls.h: make genstubs + + * doc/CrtChannel.3: + * doc/OpenFileChnl.3: + * generic/tcl.decls: + * generic/tclIO.h: + * generic/tclIO.c (DoWrite, Tcl_RegisterChannel, Tcl_GetChannel, + (Tcl_CreateChannel, Tcl_GetChannelName, CloseChannel, Tcl_Write, + (Tcl_WriteRaw, Tcl_Ungets, Tcl_BadChannelOption, Tcl_GetChannelOption, + (Tcl_SetChannelOption, Tcl_GetChannelNamesEx, Tcl_ChannelName): + Updated APIs in the file generic/tclIO.c according to the guidelines + of TIP 27. Several minor documentation corrections as well. [Patch + 503565] + * generic/tclDecls.h: make genstubs + + * generic/tcl.h (Tcl_DriverOutputProc, Tcl_DriverGetOptionProc, + (Tcl_DriverSetOptionProc): + * generic/tclIOGT.c (TransformOutputProc, TransformGetOptionProc, + (TransformSetOptionProc): + * mac/tclMacChan.c (FileOutput, StdIOOutput): + * man/tclMacSock.c (TcpGetOptionProc, TcpOutput): + * unix/tclUnixChan.c (FileOutputProc, TcpGetOptionProc, TcpOutputProc, + (TtyGetOptionProc, TtySetOptionProc): + * unix/tclUnixPipe.c (PipeOuputProc): + * win/tclWinChan.c (FileOutputProc): + * win/tclWinConsole.c (ConsleOutputProc): + * win/tclWinPipe.c (PipeOuputProc): + * win/tclWinSerial.c (SerialOutputProc, SerialGetOptionProc, + (SerialSetOptionProc): + * win/tclWinSock.c (TcpGetOptionProc, TcpOutput): Updated channel + driver interface according to the guidelines of TIP 27. See also [Bug + 500348]. + + * doc/CrtChannel.3: + * generic/tcl.h: + * generic/tclIO.c: + * generic/tclIO.h: + * generic/tclInt.h: + * tools/checkLibraryDoc.tcl: + Moved Tcl_EolTranslation enum declaration from generic/tcl.h to + generic/tclInt.h (renamed to TclEolTranslation). It is not used + anywhere in Tcl's public interface. -2006-01-09 Don Porter <dgp@users.sourceforge.net> +2002-01-14 Don Porter <dgp@users.sourceforge.net> - * generic/tclNamesp.c (NamespaceInscopeCmd): [namespace inscope] - * tests/namespace.test: commands were not reported by [info level]. - [Bug 1400572] + * doc/GetIndex.3: + * doc/WrongNumArgs.3: + * generic/tcl.decls (Tcl_GetIndexFromObj, Tcl_GetIndexFromObjStruct, + (Tcl_WrongNumArgs): + * generic/tclIndexObj.c (Tcl_GetIndexFromObj, Tcl_GetIndexFromObjStruct, + (Tcl_WrongNumArgs): Updated APIs in the file generic/tclIndexObj.c + according to the guidelines of TIP 27. [Patch 501491] + * generic/tclDecls.h: make genstubs + +2002-01-11 Mo DeJong <mdejong@users.sourceforge.net> + + * unix/configure: Regen. + * unix/configure.in: + * win/configure: Regen. + * win/configure.in: Use ${libdir} instead of ${exec_prefix}/lib + to properly support the --libdir option to configure. [Bug 489370] + +2002-01-11 Andreas Kupries <andreas_kupries@users.sourceforge.net> + + * win/tclWinSerial.c (SerialSetOptionProc): Applied patch for [Bug + 500348] supplied by Rolf Schroedter <schroedter@users.sf.net>. The + function modified the contents of the the 'value' string and now does + not do this anymore. This is a followup to the change made on + 2001-12-17. + +2002-01-11 David Gravereaux <davygrvy@pobox.com> + + * win/makefile.vc: Removed -GD compiler option. It was intended for + future use, but MS is again changing the future at their whim. The + D4002 warning was harmless though, but someone using VC .NET logged it + as a concern. [Bug 501565] + +2002-01-11 Mo DeJong <mdejong@users.sourceforge.net> + + * unix/Makefile.in: Burn Tcl build directory into tcltest executable + to avoid crashes caused by ld loading a previously installed version + of the tcl shared library. [Bug 218110] + +2002-01-10 Don Porter <dgp@users.sourceforge.net>, + Kevin Kenny <kennykb@users.sourceforge.net> + + * unix/tclLoadDld.c (TclpLoadFile): syntax error: unbalanced parens. + Kevin notes that it's far from clear that this file is ever included + in an actual build; Linux without dlopen appears to be a nonexistent + configuration. + +2002-01-08 Don Porter <dgp@users.sourceforge.net>, + Kevin Kenny <kennykb@users.sourceforge.net> + + * doc/StaticPkg.3 (Tcl_StaticPackage): + * generic/tcl.decls (Tcl_StaticPackage): + * generic/tclDecls.h (Tcl_StaticPackage): + * generic/tclInt.decls (TclGuessPackageName): + * generic/tclInt.h (TclGuessPackageName): + * generic/tclLoad.c (Tcl_StaticPackage): + * generic/tclLoadNone.c (TclGuessPackageName): + * mac/tclMacLoad.c (TclGuessPackageName): + * unix/tclLoadAout.c (TclGuessPackageName): + * unix/tclLoadDl.c (TclGuessPackageName): + * unix/tclLoadDld.c (TclGuessPackageName): + * unix/tclLoadDyld.c (TclGuessPackageName): + * unix/tclLoadNext.c (TclGuessPackageName): + * unix/tclLoadOSF.c (TclGuessPackageName): + * unix/tclLoadShl.c (TclGuessPackageName): + * win/tclWinLoad.c (TclGuessPackageName): Updated APIs in the files + */tcl*Load*.c according to the guidelines of TIP 27. [Patch 501096] + +2002-01-09 Don Porter <dgp@users.sourceforge.net> + + * generic/tclTest.c (MainLoop): + * tests/main.test (Tcl_Main-1.{3,4,5,6}): Corrected some non-portable + tests from the new Tcl_Main changes. Thanks to Kevin Kenny. + +2002-01-07 Don Porter <dgp@users.sourceforge.net> + + * generic/tclEvent.c (TclInExit): + * generic/tclIOUtil.c (SetFsPathFromAbsoluteNormalized, + (SetFsPathFromAny,Tcl_FSNewNativePath,DupFsPathInternalRep): + * generic/tclListObj.c (TclLsetList,TclLsetFlat): Added some type + casts to satisfy picky compilers. + + * generic/tclMain.c: Bug fix: neglected the NULL case in + TclGetStartupScriptFileName(). Broke Tk/wish. + +2002-01-05 Don Porter <dgp@users.sourceforge.net> + + * doc/Tcl_Main.3: + * generic/tclMain.c: Substantial rewrite and expanded documentation + of Tcl_Main to correct a number of bugs and flaws: + + * Interactive Tcl_Main can now enter a main loop, exit that + loop and continue interactive operations. The loop may even + exit in the midst of interactive command typing without loss + of the partial command. [Bugs 486453, 474131] + * Tcl_Main now gracefully handles deletion of its master + interpreter. + * Interactive Tcl_Main can now operate with non-blocking stdin + * Interactive Tcl_Main can now detect EOF on stdin even in + mid-command. [Bug 491341] + * Added VFS-aware internal routines for managing the startup + script selection. + * Tcl variable 'tcl_interactive' is now linked to C variable + 'tty' so that one can disable/enable interactive prompts at + the script level when there is no startup script. This is + meant for use by the test suite. + * Consistent use of the Tcl libraries standard channels as + returned by Tcl_GetStdChannel(); as opposed to the channels + named 'stdin', 'stdout', and 'stderr' in the master interp, + which can be different or unavailable. + * Tcl_Main now calls Tcl_Exit() if evaluation of [exit] in the + master interpreter returns, assuring Tcl_Main does not + return. + * Documented Tcl_Main's absence from public stub table + * Documented that Tcl_Main does not return. + * Documented Tcl variables set by Tcl_Main. + * All prompts are done from a single procedure, Prompt. + * Use of Tcl_Obj-enabled interfaces everywhere. + + * generic/tclInt.decls (TclGetStartupScriptPath, + (TclSetStartupScriptPath): New internal VFS-aware routines for + managing the startup script of Tcl_Main. + * generic/tclIntDecls.h: + * generic/tclStubInit.c: make genstubs + + * generic/tclTest.c (TestsetmainloopCmd,TestexitmainloopCmd, + (Tcltest_Init,TestinterpdeleteCmd): + * tests/main.test (new): Added new file to test suite that thoroughly + tests generic/tclMain.c; added some new test commands for testing + Tcl_SetMainLoop(). + +2002-01-04 Don Porter <dgp@users.sourceforge.net> + + * doc/Alloc.3: + * doc/Concat.3: + * doc/CrtMathFnc.3: + * doc/Hash.3: + * doc/Interp.3: + * doc/LinkVar.3: + * doc/ObjectType.3: + * doc/PkgRequire.3: + * doc/Preserve.3: + * doc/SetResult.3: + * doc/SplitList.3: + * doc/SplitPath.3: + * doc/TCL_MEM_DEBUG.3: Updated documentation to describe the ckalloc, + ckfree, ckrealloc, attemptckalloc, and attemptckrealloc macros, and to + accurately describe when and how they are used. [Bug 497459] + + * generic/tclThreadJoin.c (TclRememberJoinableThread,TclJoinThread): + Replaced Tcl_Alloc and Tcl_Free calls with ckalloc and ckfree so that + memory debugging is supported. + +2002-01-04 Daniel Steffen <das@users.sourceforge.net> + + * mac/tclMacTime.c (TclpGetTZName): fix for daylight savings TZName + bug + +2002-01-03 Don Porter <dgp@users.sourceforge.net> + + * doc/FileSystem.3: + * generic/tclIOUtil.c: Updated some old uses of "fileName" to new VFS + terminology, "pathPtr". -2006-01-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> +2002-01-03 Donal K. Fellows <fellowsd@cs.man.ac.uk> - * generic/tclTrace.c: Stop exporting the guts of the trace command; - nothing outside this file needs to see it. [Bug 971336] + * tests/basic.test (basic-39.4): Greatly simplified test while still + leaving it so that it crashes when run without the fix to the + [foreach] implementation. + * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Stopped [Bug 494348] from + happening by not trying to be so clever with cacheing; if nothing + untoward is happening anyway, the less efficient technique will only + add a few instruction cycles (one function call and a few + derefs/assigns per list per iteration, with no change in the number of + tests) and if something odd *is* going on, the code is now far more + robust. -2006-01-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + * tests/basic.test (basic-39.4): Reproducable script from [Bug 494348] - * unix/tcl.m4 (TCL_CONFIG_SYSTEM): Factor out the code to determine - the operating system version number, as it was replicated in several - places. +2002-01-02 Donal K. Fellows <fellowsd@cs.man.ac.uk> -2006-01-04 David Gravereaux <davygrvy@pobox.com> + * tests/util.test (Wrapper_Tcl_StringMatch,util-5.*): Rewrote so the + test is performed with the right internal function since [string + match] no longer uses Tcl_StringCaseMatch internally. - * 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. + * tests/string.test (string-11.51): + * generic/tclUtf.c (Tcl_UniCharCaseMatch): + * generic/tclUtil.c (Tcl_StringCaseMatch): Fault with matching + case-insensitive non-ASCII patterns containing upper case characters. + [Bug 233257] ****************************************************************** - *** 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" *** |