diff options
Diffstat (limited to 'ChangeLog.2005')
-rw-r--r-- | ChangeLog.2005 | 3822 |
1 files changed, 3822 insertions, 0 deletions
diff --git a/ChangeLog.2005 b/ChangeLog.2005 new file mode 100644 index 0000000..0d1d7cf --- /dev/null +++ b/ChangeLog.2005 @@ -0,0 +1,3822 @@ +2005-12-30 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclStubLib.c: Corrected a typo in "missing Stubs table + pointer." + +2005-12-27 Kevin B. Kenny <kennykb@acm.org> + + * generic/tcl.decls: Destubbed TclTomMathInitializeStubs - it is in + * generic/tcl.h: the stub library, not the main shared + * generic/tclBasic.c: library. Exported Tcl_InitBignumFromDouble. + * generic/tclExecute.c: + * generic/tclInt.h: + * generic/tclStrToD.c: + + * generic/tclDecls.h: + * generic/tclStubLib.c: + * generic/tclStubInit.c: Regenerated. + + * generic/clock.tcl: Reverted to using the time zone abbreviation and + not its name to "stop the bleeding" on [Bug 1386377]. This is *not* a + good long-term solution, but there may not be one. + + * libtommath/bn_mp_sqrt.c: Improved the initial approximation to the + square root, roughly doubling the speed of the routine. (This is a + local change that needs to be communicated to Tom.) + + * win/Makefile.in: Corrected a bug where tommath_class.h and + tommath_superclass.h were not installed, making it impossible for + client code to compile against the tommath stubs. + + * library/tzdata: Updated to Olson's tzdata2005r. (Latest changes to + Daylight Saving Time in Canada, plus redefinition of the Posix-style + zones [e.g., EST5EDT] to be locale-independent.) + + * libtommath: Updated to Tom St.Denis's release 0.37. + +2005-12-20 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * generic/tclThreadAlloc.c (Tcl_GetMemoryInfo): Format values as longs + and not ints, so they are less likely to wrap on 64-bit machines. + +2005-12-19 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCmdMZ.c: Modified [string is double] to use + * tests/string.test: TclParseNumber() to parse trailing whitespace. + Ensures consistency, and makes it easier to cleanup after invalid + internal reps left behind by parsing [Bugs 1360532 1382287]. + + * generic/tclParseExpr.c: Added TCL_PARSE_NO_WHITESPACE to + * generic/tclScan.c: TclParseNumber() calls since [scan] and [expr] + * tests/scan.test: parsing don't want spaces in parsed numbers. + + * generic/tclInt.h: Added TCL_PARSE_NO_WHITESPACE flag to the + * generic/tclStrToD.c: TclParseNumber() interface. + +2005-12-19 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * doc/Tcl.n: Clarify what is going on in variable substitution + following thread on comp.lang.tcl. + +2005-12-18 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * generic/tclCompCmds.c (TclCompileDictCmd): Ensure that we only do an + 'endCatch' when there's a preceding 'beginCatch'. [Bug 1382528] Many + thanks to Anton Kovalenko for finding this and pointing out that it was + a catch stack handling problem! + +2005-12-14 Daniel Steffen <das@users.sourceforge.net> + + * generic/tclIOUtil.c: workaround gcc warning "comparison is always + * generic/tclTest.c: false due to limited range of data type". + + * macosx/Tcl.xcode/project.pbxproj: + * macosx/Tcl.xcodeproj/project.pbxproj: + * unix/Makefile.in: add new tclTomMath* files. + + * generic/tclBasic.c: replace panic with Tcl_Panic. + +2005-12-13 Kevin B. Kenny <kennykb@acm.org> + + * generic/tcl.decls: Added changes to export an additional stubs + * generic/tclBasic.c: table to represent the 'libtommath' routines + * generic/tclDecls.h: that Tcl uses and export them to callers. + * generic/tclInt.decls: Reran 'genstubs' + * generic/tclInt.h: + * generic/tclIntDecls.h: + * generic/tclIntPlatDecls.h: + * generic/tclStubInit.c: + * generic/tclStubLib.c: + * generic/tclTomMath.decls: + * generic/tclTomMath.h: + * generic/tclTomMathDecls.h: + * generic/tclTomMathInterface.c: + * generic/tommath.h: + * tools/fix_tommath_h.tcl: + * unix/Makefile.in: + * win/Makefile.in: + * win/makefile.vc: + + * generic/tclClock.c: Made changes to silence a number of compiler + * generic/tclIO.c: warnings when building with mingw. + * generic/tclIORChan.c: + * generic/tclLink.c: + * generic/tclListObj.c: + * generic/tclObj.c: + * generic/tclParseExpr.c: + * generic/tclProc.c: + * generic/tclTimer.c: + * win/tclWinChan.c: + * win/tclWinConsole.c: + * win/tclWinDde.c: + * win/tclWinFCmd.c: + * win/tclWinFile.c: + * win/tclWinReg.c: + * win/tclWinSock.c: + +2005-12-13 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * generic/tclExecute.c (TEBC:DICT_FIRST,DICT_DONE): Only decrease the + references to the dictionary once the iteration completes. Do this by + storing the dict in the iterator context variable. [Bug 1379349] Thanks + to Ulrich Ring and Tobias Hippler for finding this. + +2005-12-12 Jeff Hobbs <jeffh@ActiveState.com> + + * unix/tcl.m4, unix/configure: Fix sh quoting error reported in + bash-3.1+ [Bug 1377619] (schafer) + +2005-12-12 Kevin B. Kenny <kennykb@acm.org> + + * doc/mathfunc.n: Changed two examples from the incorrect 'tcl::math::' + to 'tcl::mathfunc::' [Bug 1378818] + +2005-12-09 Mo DeJong <mdejong@users.sourceforge.net> + + * win/configure: Regen. + * win/tcl.m4 (SC_CONFIG_CFLAGS): Define MACHINE for gcc builds. The + lack of a definition of this variable in the manifest file was causing + a runtime error in wish built with gcc. + +2005-12-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * 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] + +2005-12-08 Jeff Hobbs <jeffh@ActiveState.com> + + * win/Makefile.in, win/makefile.vc: Add Win x64 and CE build support + * win/tcl.m4, win/configure: CE still requires C code fixes. + + * generic/tcl.h: use struct __stat64 (not _stat64) for MSC_VER >= 1400 + (i.e. latest Platform SDK). + +2005-12-07 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * doc/socket.n: Cross-referenced the socket documentation better to the + fconfigure documentation on the topic of asynch sockets. + * doc/fconfigure.n: Added keyword to documentation of -blocking option + so that people looking for "asynch" can find it as well. + +2005-12-05 Daniel Steffen <das@users.sourceforge.net> + + * unix/tclUnixPort.h (Darwin): fix incorrect __DARWIN_UNIX03 configure + overrides that were originally copied from Darwin CVS (rdar://3693001) + +2005-12-05 Kevin B. Kenny <kennykb@acm.org> + + * tools/tclZIC.tcl: Updated to reflect changes in calling sequence when + GetJulianDateFromEraYearMonthDay moved to C. + * library/tzdata: Regenerated from Olson's tzdata2005p.tar.gz - the + 'systemv' changes appear not to affect Tcl's processing of the dates. + +2005-12-05 Daniel Steffen <das@users.sourceforge.net> + + * unix/configure.in: move check for fts API to configure.in and run it + * unix/tcl.m4: on all platforms, since Linux glibc2 and *BSDs + also have this; using fts is more efficient than a recursive + opendir/readdir. + * unix/tclUnixFCmd.c (TraverseUnixTree): add support to fts code for + platforms with stat64. + * unix/configure: + * unix/tclConfig.h.in: regen. + +2005-12-05 Jeff Hobbs <jeffh@ActiveState.com> + + * unix/configure: Use fts file API on Darwin if available. + * unix/tcl.m4: Addresses file delete issues in readdir noted + * unix/tclUnixFCmd.c: in [Bug 1034337]. (steffen) + Remove redundant stat call for each file in DoCopyFile. (steffen) + +2005-12-02 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclClock.c: Moved a tiny bit more of [clock format] from run + * library/clock.tcl: time to compile time, and fixed a l10n bug in the + process. [Bug 1371446]. Also, conditoned the call to SetupTimeZone to + speed the common case where TZData($timezone) already exists, and + achieved a puny speedup by making ::tcl::clock::getenv not throw + errors. + * unix/Makefile.in: Made some changes to support a 'make' command that + is present on some antiquated versions of Solaris. + +2005-12-01 Kevin B. Kenny <kennykb@acm.org> + + * library/clock.tcl: Continued rationalizing the code, eliminating + numerous redundant [mc] calls. Added another time boost by precompiling + a [::format] command to do the bulk of the work of [clock format]. + +2005-12-01 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * unix/Makefile.in: Add remaining dependency info. While automated + maintenance of this information would be good, having it at all is much + better than a poke in the eye with a sharp stick... + +2005-12-01 Daniel Steffen <das@users.sourceforge.net> + + * generic/tclClock.c: fix warning. + + * unix/tcl.m4 (Darwin): fix error when MACOSX_DEPLOYMENT_TARGET unset + * unix/configure: regen. + +2005-11-30 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * unix/Makefile.in: Add dependency information relating to tclCompile.h + since when the list of opcodes changes it is usually useful to rebuild + everything that depends on it (but which is nonetheless a small + fraction of the total set of Tcl source files). + + ***POTENTIAL INCOMPATIBILITY*** for bytecode savers/loaders. See below + + * generic/tclCompCmds.c (TclCompileSwitchCmd): Arrange for very simple + [switch] invokations to be compiled into hash lookups into jump tables; + only a very specific kind of [switch] can be safely compiled this way, + but that happens to be the most common kind. This makes around 5-10% + difference to the speed of execution of clock.test. + * generic/tclExecute.c (TEBC:INST_JUMP_TABLE): New instruction to allow + for jumps to locations looked up in a hashtable. Requires a new AuxData + type, tclJumptableInfoType (supported by the functions DupJumptableInfo + and FreeJumptableInfo in tclCompCmds.c) so anything that saves bytecode + containing this *must* be updated! + +2005-11-30 Kevin Kenny <kennykb@acm.org> + + * generic/tclClock.c: Fixed a bad refcount in previous commit that led + to a corrupted heap. Also silenced a warning that some compilers gave + about the excessively long constant for JULIAN_SEC_POSIX_EPOCH. Also + fixed a bug where [clock format] would fail in the :localtime zone for + times before the Posix Epoch. Thanks to Miguel Sofer for pointing out + all of these. Also rationalized the code a little bit by moving parts + of [clock scan] into C, eliminating some code that was duplicated in + the C and Tcl layers. + +2005-11-29 Kevin Kenny <kennykb@acm.org> + + * generic/tclBasic.c: Moved a big part of [clock format] down + * generic/tclClock.c: to the C level in order to make it go faster. + * generic/tclInt.h: Preliminary measurements suggest that it + * generic/clock.tcl: more than doubles in speed with this change. + +2005-11-29 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * 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] + +2005-11-28 Kevin Kenny <kennykb@acm.org> + + * tools/tclZIC.tcl (convertTimeOfDay): Corrected a typo that caused + wrong DST transitions in any time zone where the transition is + specified as local Standard Time (as opposed to wall-clock or UTC). + (Also updated the code to be bignum-safe.) + * tests/clock.test (clock-51.1): Added regression test for the above. + * library/tzdata: Updated to Olson's 'tzdata2005o' (changes for Cuba, + Nicaragua, Jordan, and Georgia) and regenerated. Thanks to Paul + Mackerras for reporting this problem. + +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. + + * 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 losing any linker + relevant flags in CFLAGS, in particular flags that cannot 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 + (dist): add new macosx files. + + * unix/tclLoadDyld.c (TclpDlopen): use NSADDIMAGE_OPTION_WITH_SEARCHING + on second NSAddImage only. [Bug 1204237] + (TclGuessPackageName): should not be MODULE_SCOPE. + (TclpLoadMemory): ppc64 and endian (i386) fixes, add support for + loading universal (fat) bundles from memory. + + * unix/tclUnixFCmd.c: + * macosx/tclMacOSXFCmd.c: ppc64 and endian (i386) fixes. + (TclMacOSXCopyFileAttributes): 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: + * unix/tclUnixPort.h: fix #include order to support compile time + 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: + * macosx/Tcl.xcode/default.pbxuser (new file): + * macosx/Tcl.xcode/project.pbxproj (new file): + * macosx/Tcl.xcodeproj/default.pbxuser (new file): + * macosx/Tcl.xcodeproj/project.pbxproj (new file): new/updated + projects for Xcode 2.2 on 10.4, Xcode 1.5 on 10.3 & ProjectBuilder on + 10.2, with native tcltest targets and support for universal (fat) + compiles. + + * macosx/README: clarification/cleanup, document new Xcode projects and + universal (fat) builds via CFLAGS (i.e. all of ppc ppc64 i386 at once). + + * unix/Makefile.in: + * unix/aclocal.m4: + * unix/configure.in: + * unix/dltest/Makefile.in: + * macosx/configure.ac (new file): add support for inclusion of + unix/configure.in by macosx/configure.ac, allows generation of a config + headers enabled configure script in macosx (required by Xcode + projects). + + * macosx/GNUmakefile: rename from Makefile to avoid overwriting by + configure run in tcl/macosx, add support for reusing configure cache, + build target fixes, remove GENERIC_FLAGS override now handled by + tcl.m4. + + * generic/tcl.decls: add Tcl_Main declaration as comment to avoid + 'checkstubs' target complaining about it missing from stubs. + + * generic/regex.h: + * generic/tclDate.c: + * generic/tclEnv.c: + * generic/tclGetDate.y: + * generic/tclIOUtil.c: + * generic/tclObj.c: + * generic/tclStubInit.c: + * generic/tclStubLib.c: + * generic/tclPathObj.c: + * generic/tclThreadAlloc.c: + * generic/tclThreadStorage.c: + * generic/tclTrace.c: + * generic/tclVar.c: + * generic/tommath.h: + * tools/fix_tommath_h.tcl: + * unix/tclUnixFCmd.c: ensure externally visible symbols not contained + in stubs table are declared as MODULE_SCOPE (or as static if not used + outside of own source file). These changes allow 'make checkstubs' to + complete without error on Darwin with gcc 4. + + * generic/rege_dfa.c (getvacant): + * generic/regexec.c (cfind): + * generic/tclCompExpr.c (CompileSubExpr): + * generic/tclNamesp.c (NamespaceEnsembleCmd): + * unix/tclUnixChan.c (TclUnixWaitForFile): initialise variables to + silence gcc 4 warnings. + + * generic/tclExecute.c (TclExecuteByteCode): fix unused variable + warning when NO_WIDE_TYPE is defined. + + * generic/regguts.h: only #define NDEBUG if not already #defined. + + * unix/tclUnixNotfy.c: + * macosx/tclMacOSXNotify.c: sync whitespace & comments. + + * unix/tclUnixPort.h: + * win/tclWinPort.h: remove declaration of obsolete&unused TclpMutex + API. + + * unix/configure: + * unix/tclConfig.h.in: regen. + +2005-11-21 Andreas Kupries <andreask@activestate.com> + + * unix/Makefile.in (install-libraries): Updated Makefile to new + * win/Makefile.in (install-libraries): version of the http package. + This fixes the ifneeded/provide mismatch reported when trying to + require http. Should we maybe try to automatically extract the version + number from the http code to prevent future breakage ? + + This follows the update of the version number by dgp on Nov 15 (No + entry found in the ChangeLog). + +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. + +2005-11-18 Kevin B. Kenny <kennykb@acm.org> + + * doc/clock.n: Restored several missing lines near the %w format group + so that %w and %W are documented with their actual behaviour. [Bug + 1359183] + +2005-11-18 Jeff Hobbs <jeffh@ActiveState.com> + + * generic/tclIO.c (TclFinalizeIOSubsystem): preserve statePtr until we + retrieve the next statePtr from it. + +2005-11-18 Miguel Sofer <msofer@users.sf.net> + + * generic/tclObj.c (GetBignumFromObj): replace NULL with + tclEmptyStringRep to stop memcpy from complaining in a debug build + (the corresponding branch is eliminated by the optimiser otherwise). + +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 Don Porter <dgp@users.sourceforge.net> + + * generic/tclListObj.c: Restored the SetListFromAny routine to the + * generic/tclObj.c: "list" Tcl_ObjType, and restored the + Tcl_RegisterObjType() call for "list". This addresses the needs of some + "bridge" extensions to examine whether the Tcl_ObjType of a Tcl_Obj is + that of the "list" Tcl_ObjType. + +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-17 Miguel Sofer <msofer@users.sf.net> + + * tests/namespace.test: fix comment + +2005-11-14 Don Porter <dgp@users.sourceforge.net> + + * generic/tclStrToD.c: More data in the "can't happen" Tcl_Panic to + aid debugging. + + * generic/tclBasic.c (CallCommandTraces): Save/restore the interp + result during traces to fix [Bug 1355342]. + +2005-11-13 Miguel Sofer <msofer@users.sf.net> + + * generic/tclInt.h: + * generic/tclNamesp.c: + * tests/namespace.test: fix for [Bug 1354540] and [Bug 1355942]. The + new tests 7.3-6 and the modified 51.13 fail due to the unrelated [Bug + 1355342] + + * tests/trace.test: added tests 20.13-16 for [Bug 1355342] + +2005-11-12 Miguel Sofer <msofer@users.sf.net> + + * generic/tclBasic.c (Tcl_DeleteCommandFromToken): + * generic/tclObj.c (Tcl_GetCommandFromObj): more partial fixes for + [Bug 1354540] - making sure that cached references to a command being + deleted cannot be made reusable by a delete trace. + +2005-11-12 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclNamesp.c (Tcl_FindCommand): Do not find commands in dead + namespaces on the path. Partial fix for [Bug 1354540]. + +2005-11-11 Don Porter <dgp@users.sourceforge.net> + + * generic/tclInt.h: Revised TclParseNumber interface to enable + * generic/tclScan.c: revision to the [scan] command implementation + * generic/tclStrToD.c: to permit tests scan-4.44,55 to pass again. + [Bug 1348067]. + +2005-11-11 Miguel Sofer <msofer@users.sf.net> + + * generic/tclBasic.c (Tcl_DeleteCommandFromToken): + * generic/tclObj.c (Tcl_GetCommandFromObj): bump the cmd epoch early + to insure that cached references to this command are invalidated. + Partial fix for [Bug 1352734] - at least insures that namespace-51.13 + does not cause a panic. The test is still marked as knownbug, pending + resolution of what is actually the correct return value ([Bug + 1354540]) + +2005-11-09 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclTimer.c: Changed [after] so that it behaves correctly + * tests/timer.test: with negative arguments [Bug 1350293] and + arguments that overflow a 32-bit word. [Bug 1350291] + +2005-11-08 Don Porter <dgp@users.sourceforge.net> + + * tests/compile.test: Updated tests with changed behavior + * tests/execute.test: due to addition of bignums. + * tests/expr-old.test: + * tests/expr.test: + * tests/parseExpr.test: + * tests/platform.test: + * tests/string.test: + +2005-11-08 Jeff Hobbs <jeffh@ActiveState.com> + + * unix/tclUnixFCmd.c (MAX_READDIR_UNLINK_THRESHOLD): reduce to 130 + based on errors seen on OS X 10.3 with lots of links in a dir. + [Bug 1034337 followup] + +2005-11-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * unix/Makefile.in (gdb-test): Added a new target to make it easier to + run the test suite inside a debugger. + +2005-11-08 Don Porter <dgp@users.sourceforge.net> + + * tests/compExpr-old.test: Updated tests with changed behavior due + to addition of bignums. + + * tests/expr.test: Portable tests expr-46.13-18 [Bug 1341368] + + * 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]. + +2005-11-08 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * generic/tclTrace.c (TraceVarEx): Factor out heart of Tcl_TraceVar2 + (TclTraceVariableObjCmd,TraceVarProc): Use the new internal API to + arrange for the clientData to be cleaned up at the same time as the + rest of the main trace record. This simplifies the code a bit at the + same time. + +2005-11-07 Miguel Sofer <msofer@users.sf.net> + + * tests/trace.test (trace-13.2-4): added tests to detect leak, see [Bug + 1348775]. The recently added trace-8.9 test is now 13.4. + +2005-11-07 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * tests/dict.test (dict-19.2): arrange for the stress testing code to + only stress test the dict code and not the trace code as well. [Bug + 1342858] + +2005-11-05 Miguel Sofer <msofer@users.sf.net> + + * tests/trace.test (trace-8.9): added test to detect leak, see [Bug + 1348775]. + +2005-11-04 Pat Thoyts <patthoyts@users.sourceforge.net> + + * win/tclWinPort.h: Applied [Patch 1267871] by Matt Newman for + * win/tclWinPipe.c: extended error code support on Windows. + * tests/exec.test: Tests for extended error codes. + * generic/tclPipe.c: Permit long codes (platform macros permitting). + +2005-11-04 Miguel Sofer <msofer@users.sf.net> + + * generic/tclBinary.c: + * generic/tclCmdAH.c: + * generic/tclCmdIL.c: + * generic/tclCmdMZ.c: + * generic/tclDictObj.c: + * generic/tclExecute.c: + * generic/tclIOCmd.c: + * generic/tclLink.c: + * generic/tclTest.c: + * generic/tclVar.c: fix for [Bug 1334947]. The functions TclPtrSetVar, + Tcl_ObjSetVar2 and Tcl_SetVar2Ex now always consume the newValuePtr + argument - i.e., they will free a 0-refCount object if they failed to + set the variable. Fixed all callers in the core. + +2005-11-04 Kevin Kenny <kennykb@acm.org> + + * generic/tclGetDate.y: Added abbreviations for the Korean + * library/clock.tcl: timezone. [Patch 1298737] + * generic/tclDate.c: Regenerated. + + * tools/findBadExternals.tcl: Added this script, which locates external + symbols that do not begin with 'Tcl' or 'tcl' and hence might be in + conflict with other link libraries. Thanks to George Peter Staplin for + the idea and the initial version of the script. [Bug 1263012] + + * unix/Makefile.in: Trimmed a bunch of fat out of the tommath/ + directory in 'make dist'. [RFE 1333318] + + * unix/tcl.m4: Added code to enable [load] on LynxOS. Thanks to + heidibr@users.sf.net for the patch. [Bug 1163896]. Removed the last + vestiges of GNU dld from the Unix build [RFE 1071992]. + + * unix/tclLoadDld.c: Removed. + * unix/configure: Regenerated. + +2005-11-04 Miguel Sofer <msofer@users.sf.net> + + * generic/tclInt.h: + * generic/tclNamesp.c: + * generic/tclVar.c: + * tests/trace.test: fix for [Bugs 1338280/1337229]; changed to use the + same approach as the 8.4 patch in the ticket (i.e., removed the patch + committed on 2005-31-10). + +2005-11-03 Pat Thoyts <patthoyts@users.sourceforge.net> + + * win/tclWin32Dll.c: Applied [Patch 1256872] to provide unicode + * win/tclWinConsole.c: support in the console on suitable systems. + * win/tclWinInt.h: Patch by Anton Kovalenko + +2005-11-02 Pat Thoyts <patthoyts@users.sourceforge.net> + + Applied [Patch 1096916] to support building with MSVC 8. + * generic/regerror.c: Avoid use of reserved word. + * generic/tcl.h: Select the right Tcl_Stat structure + * generic/tclDate.c: Casts to handle 64 bit time_t case. + * tests/env.test: Include essential envvar on Win32 + * win/nmakehlp.c: Handle new return codes. + * win/makefile.vc: Use the selected options. + * win/rules.vc: Check options are applicable + * win/tclWinPort.h: Disable deprecated function warnings + * win/tclWinSock.c: Provide default value to avoid warning. + * win/tclWinTime.c: Add casts to handle 64bit time_t type. + +2005-11-01 Don Porter <dgp@users.sourceforge.net> + + * generic/tclTrace.c (TclCheckExecutionTraces): Corrected mistaken + assumption that all command traces are set at the script level. + Report/fix from Jacques H. de Villiers. [Bug 1337941] + + * tests/unixNotfy.test (1.1,2): Update error message whitespace to + match changes in code. + + * tests/expr-old.test (expr-32.52): Use int(.) to restrict result of + left shift to the C long range. + + * expr.test (expr-46.13): Added test that illustrates shortcoming of + [Patch 1340260]. + +2005-10-31 Miguel Sofer <msofer@users.sf.net> + + * generic/tclNamesp.c: fix for [Bugs 1338280/1337229]. Thanks Don. + * tests/trace.test: fix duplicate test numbers + +2005-10-31 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * win/tclWinSerial.c (SerialSetOptionProc): Cleaned up option parsing + to produce more informative error messages and separate error and + non-error code paths better. + * tests/ioCmd.test (iocmd-8-19): Updated. + +2005-10-29 Miguel Sofer <msofer@users.sf.net> + + * generic/tclTrace.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 [Bug 1337229] and + [Bug 1338280]. + +2005-10-23 Vince Darley <vincentdarley@sourceforge.net> + + * generic/tclFileName.c: fix to memory leak in glob [Bug 1335006] Obj + leak detection and patch by Eric Melbardis. + + * tests/fCmd.test: + * win/tclWinFile.c: where appropriate windows API is available, try to + set 'nlink' and 'ino' stat fields (previously they were always 0). [Bug + 1325803] + +2005-10-22 Miguel Sofer <msofer@users.sf.net> + + * tests/foreach.test (foreach-8.1): added test for [Bug 1189274] + +2005-10-22 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c (INST_INCR_*): fixed [Bug 1334570]. Obj leak + detection and patch by Eric Melbardis. + +2005-10-21 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclStrToD.c (RefineApproximation): Plugged a memory leak + where two intermediate results were not freed on one return path. [Bug + 1334461]. Thanks to Eric Melbardis for the patch. + +2005-10-21 Donal K. Fellows <dkf@users.sf.net> + + * doc/binary.n: Clarify that virtually all code that uses the 'h' + format in [binary scan] should be using the 'H' format instead. It is + nearly always a bug to use the other! + +2005-10-20 Miguel Sofer <msofer@users.sf.net> + + * generic/tclListObj.c (TclLsetFlat): + * tests/lset.test (lset-10.3): fixed handling of unshared lists with + shared sublists, [Bug 1333036] reported by neuronstorm. + +2005-10-19 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclIORChan.c (PassReceivedError,PassReceivedErrorInterp): + Fix crash caused by passing -1 as the length to TclNewStringObj(). Only + Tcl_NewStringObj (the function call, not the macro) handles that sort + of thing correctly. This makes ioCmd.test pass again. + +2005-10-19 Don Porter <dgp@users.sourceforge.net> + + * generic/tclClock.c: Removed some dead code. + * generic/tclCmdIL.c: + * generic/tclCompCmds.c: + * generic/tclDictObj.c: + * generic/tclExecute.c: + * generic/tclLiteral.c: + * generic/tclParseExpr.c: + * generic/tclScan.c: + * generic/tclUtil.c: + * generic/tclVar.c: + +2005-10-19 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * generic/tclIORChan.c: General cleanup, removing checks that are + unnecessary due to the general contracts of other functions in the + core, converting to using ANSI declarations, etc. Note that nearly the + whole file has changed, but it is often just cosmetic. + +2005-10-19 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c (INST_DICT_APPEND, INST_DICT_LAPPEND): fixed + faulty peephole optimisation that can cause crashes, [Bug 1331475] + reported by Aric Bills. + +2005-10-18 Don Porter <dgp@users.sourceforge.net> + + * generic/tclExecute.c: Added optimization for I32L64 systems to avoid + using bignums to perform int multiplies. The improvement shows up most + dramatically in tclbench's matrix.bench. + +2005-10-15 Don Porter <dgp@users.sourceforge.net> + + * generic/tclExecute.c: Restored some optimizations of the + INST_INCR_SCALAR1_IMM opcode. + +2005-10-14 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + + * generic/tclIO.c (Tcl_ClearChannelHandlers): removed change dated + 2005-10-04 (see below). Look into [Bug 1323992] for detailed + discussion. + + * generic/tcl.h: Fixed bad definition of CRTEXPORT which should have + been CRTIMPORT rather. This broke compilation of generic/tclMain.c and + was probably introduced by mistake while applying the fix for [Bug + 1256937] below. + +2005-10-14 Kevin Kenny <kennykb@acm.org> + + * generic/tclExecute.c (TclIncrObj, TclExecuteByteCode): Tidied up a + couple of infelicitous do {...} while(0) constructs. + +2005-10-14 Pat Thoyts <patthoyts@users.sourceforge.net> + + * generic/tcl.h: Fix for [Bug 1256937] - correctly decorate + * generic/tclMain.c: imported functions from msvcrt in static builds. + +2005-10-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * tests/format.test: "Forward"-port of test updates relating to [Bug + 1284178]. The bug itself was fixed by TIP#237. + +2005-10-13 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + + * generic/tclIO.c (Tcl_ClearChannelHandlers): temporary ifdef + TCL_THREADS changes done to de-activate pending event processing when + channel is being closed/cutted. + +2005-10-13 Don Porter <dgp@users.sourceforge.net> + + * generic/tclExecute.c: Removed obsolete use of NO_ERRNO_H. + * tools/man2tcl.c: + * unix/tcl.m4: + * unix/tclConfig.h.in: + * win/configure.in: + + * unix/configure: autoconf-2.59 + * win/configure: + + * compat/tclErrno.h: Removed obsolete file. + + * generic/tclStrToD.c (TclParseNumber): Missing goto caused crash when + parsing "Na". [Bug 1325833] + +2005-10-12 Don Porter <dgp@users.sourceforge.net> + + * generic/tclExecute.c (GetNumberFromObj): Restored some lost + optimizations for empty string values. We avoid cost of a call to + TclParseNumber just to tell us an empty string isn't a number. + +2005-10-12 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclPathObj.c (SetFsPathFromAny): TclGetString macro must not + be combined with post-increment arguments. [Bug 1325099] + +2005-10-12 Kevin Kenny <kennykb@acm.org> + + * generic/tclExecute.c (Tcl_ExecuteByteCode, TclIncrObj): Several + common cases inlined in hopes of gaining a little performance in [incr] + +2005-10-10 Miguel Sofer <msofer@users.sf.net> + + * generic/tclCompCmds.c: New convenience macro CompileTokens(). + +2005-10-10 Don Porter <dgp@users.sourceforge.net> + + * generic/tclExecute.c: Corrections to the NO_WIDE_TYPE build. Also + added missing "break" to a switch that broke wide XOR operations. + +2005-10-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * generic/tclInterp.c (DeleteScriptLimitCallback) + (SetScriptLimitCallback): Improve the interlocking between the script + limit callback record and the hash table of current such records, to + prevent crashes in callbacks that create callbacks. + (Tcl_LimitSetTime): Reset the correct flag. Problem reported by + Nicolas Castagne <castagne@imag.fr> on comp.lang.tcl + +2005-10-10 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c: Fixing errors in last commit. (Two commits, the + second removes wrong comment). + +2005-10-09 Miguel Sofer <msofer@users.sf.net> + + * generic/tclBasic.c: + * generic/tclExecute.c: + * generic/tclStrToD.c: + * generic/tclStringObj.c: Initialise variables to avoid compiler + warnings ([Bug 1320818] among others). + +2005-10-08 Don Porter <dgp@users.sourceforge.net> + + TIP#237 IMPLEMENTATION + + [kennykb-numerics-branch] Resynchronized with the HEAD; at this + checkpoint [-rkennykb-numerics-branch-20051008], the HEAD and + kennykb-numerics-branch contain identical code. + + [kennykb-numerics-branch] Merge updates from HEAD + + * generic/tclExecute.c: More performance macros and special handling of + the wide integer type for performance on 32-bit systems. + +2005-10-07 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Macro GetNumberFromObj() is version of + TclGetNumberFromObj() that saves a function call for common uses. + + * generic/tclInt.h: Made #undef NO_WIDE_TYPE the default on 32-bit + systems. Being able to use 64-bit values without leaping to mp_int + should help with performance. + + * generic/tclObj.c: Bug fixes in the #undef NO_WIDE_TYPE + * generic/tclExecute.c: configuration. + + * generic/tclExecute.c: Improved performance of comparison opcodes and + bitwise operations and removed yet more dead code. + +2005-10-07 Jeff Hobbs <jeffh@ActiveState.com> + + * 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] + +2005-10-06 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Improved performance of INST_RSHIFT and + INST_LSHIFT. + +2005-10-05 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Improved performance of INST_MULT, INST_DIV, + INST_ADD, and INST_SUB and replaced a "goto... label" with a "break + from loop" in TclIncrObj() and removed some dead code. + +2005-10-05 Andreas Kupries <andreask@activestate.com> + + * generic/tclPipe.c (TclCreatePipeline): Fixed [Bug 1109294]. Applied + the patch provided by David Gravereaux. + + * doc/CrtChannel.3: Fixed [Bug 1104682], by application of David + Welton's patch for it, and added a note about wideSeekProc. + + * generic/tclIORChan.c (RcClose): Removed unreachable panic/return + statements. This fixes the remainder of [Bug 1286256]. + +2005-10-05 Jeff Hobbs <jeffh@ActiveState.com> + + * 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] + +2005-10-04 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + * generic/tclExecute.c: Updated TclIncrObj() to more efficiently add + native long integers. Also updated IllegalExprOperandType and the + INST_UMINUS, INST_UPLUS, INST_BITNOT, and INST_TRY_CVT_TO_NUMERIC + sections for performance. + + * generic/tclBasic.c: Updated more callers to make use of + TclGetNumberFromObj. Removed some dead code. + +2005-10-04 Jeff Hobbs <jeffh@ActiveState.com> + + * win/tclWinSerial.c (SerialSetOptionProc): free argv [Bug 1067708] + + * tests/http.test: do not URI encode -._~ according + * library/http/http.tcl (init): to RFC3986. [Bug 1182373] (aho) + + * unix/tclLoadShl.c (TclpDlopen): use DYNAMIC_PATH on second shl_load + only. [Bug 1204237] + + * doc/scan.n: scan %[] requires "one or more chars" [Bug 1277503] + + * tests/winFile.test (getuser): allow valid Windows usernames. [Bug + 1311285] + + * generic/tclParse.c (Tcl_ParseCommand): add code that recognizes {} in + addition to {expand} for word expansion (make with + -DALLOW_EMPTY_EXPAND). + +2005-10-04 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + + * generic/tclIO.c (Tcl_ClearChannelHandlers): now deletes any + outstanding timer for the channel. Also, prevents events still in the + event queue from triggering on the current channel. + + * generic/tclTimer.c (Tcl_DeleteTimerHandler): bail out early if passed + NULL argument. + +2005-10-03 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclBasic.c: Re-implemented ExprRoundFunc and + ExprEntierFunc to use TclGetNumberFromObj. + + * generic/tclInt.h: Added new routine TclGetNumberFromObj to + * generic/tclObj.c: provide efficient access to the actual + internal rep of a numeric Tcl_Obj without conversions. + +2005-10-03 Kevin Kenny <kennykb@acm.org> + + * tools/loadICU.tcl: Changed the file names of message catalogs to + lowercase. + * tools/makeTestCases.tcl: + * library/tzdata/*: Olson's tzdata2005n.tar.gz. Includes new DST + rules for USA and a number of changes to other locales. + * tests/clock.test: Regenerated for new US DST rules. + +2005-09-30 Don Porter <dgp@users.sourceforge.net> + + * generic/tclMain.c: Separate encoding conversion of command line + arguments from list formatting. [Bug 1306162]. + +2005-09-30 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclStringObj.c: Bug fix: Missing cast to large enough + integral size before << operations led to broken [format %llx] results. + Thanks to Robert Henry for reporting the bug. + +2005-09-29 Jeff Hobbs <jeffh@ActiveState.com> + + * doc/mathfunc.n: implementation for TIP #255, expr min/max + * library/init.tcl: + * tests/info.test, tests/expr-old.test: + +2005-09-27 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tcl.h: Changed name of the new Tcl_Obj intrep field + * generic/tclObj.c: from "bignumValue" to "ptrAndLongRep" as + * generic/tclProc.c: described in TIP 237, and more suitable for + other more general uses. + +2005-09-27 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * tests/binary.test (binary-14.18): Added test for [Bug 1116542] though + the bug itself was already fixed by unrelated changes. + +2005-09-26 Kevin Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Merge updates from HEAD. + +2005-09-26 Kevin Kenny <kennykb@acm.org> + + * libtommath/: Updated to release 0.36. + * generic/tommath.h: Regenerated. + * generic/tclTomMathInterface.h: Added ten missing aliases for mp_* + functions to avoid namespace pollution in Tcl's exported symbols. [Bug + 1263012] + +2005-09-23 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * unix/Makefile.in: Added -DMP_PREC=4 switch to all compiles so + * win/Makefile.in: that minimum memory requirements of mp_int's + * win/makefile.vc: will not be quite so large. [Bug 1299153]. + + * generic/tclStrToD.c: Fixed memory leak. [Bug 1299803]. + * generic/tclObj.c: + +2005-09-20 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Revise TclIncrObj() to call + Tcl_GetBignumAndClearObj. + + * generic/tcl.decls: Add Tcl_GetBignumAndClearObj. + * generic/tclObj.c: + + * generic/tclDecls.h: make genstubs + * generic/tclStubInit.c: + +2005-09-16 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclInt.h: Added TclBNInitBigNumFromWideInt() so + * generic/tclTomMathInterface.c: that every caller isn't required to + duplicate the sign logic to use the unsigned interface. + + * generic/tclBasic.c: Reduce the number of places where Tcl intrudes + * generic/tclExecute.c: into the internal format details of the mp_int + * generic/tclObj.c: struct. + * generic/tclStrToD.c: + * generic/tcLStringObj.c: + + * generic/tclTomMath.h: Added mp_cmp_d to routines from libtommath + * unix/Makefile.in: used by Tcl. + * win/Makefile.in: + * win/makefile.vc: + + * libtommath/bn_mp_add_d.c: Bug fix. For mp_add_d(&a, d, &c), when &a + has the value -d, then the value &c computed should be zero, but + mp_add_d was producing an inconsistent zero value with a sign field of + MP_NEG, something like a value of -0, which other routines in + libtommath can't handle. + + * generic/tclExecute.c: Dropped all creation of "bigOne" values and + just use tommath routines that accept the value "1" directly. + +2005-09-15 Miguel Sofer <msofer@users.sf.net> + + * doc/ParseCmd.3: copy/paste fix [Bug 1292427] + +2005-09-15 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Merge updates from HEAD. + + * generic/tclStringObj.c (TclAppendFormattedObjs): Revision to + eliminate one round of string copying. + + * generic/tclBasic.c: More callers of TclObjPrintf and + * generic/tclCkalloc.c: TclFormatToErrorInfo. + * generic/tclCmdMZ.c: + * generic/tclExecute.c: + * generic/tclIORChan.c: + * generic/tclMain.c: + * generic/tclProc.c: + * generic/tclTimer.c: + * generic/tclUtil.c: + * unix/tclUnixFCmd.c + + * unix/configure: autoconf-2.59 + +2005-09-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * unix/tcl.m4 (SC_TCL_EARLY_FLAGS): Added extra hack to allow Tcl to + transparently open large files on RHEL 3. [Bug 1287638] + +2005-09-14 Don Porter <dgp@users.sourceforge.net> + + * generic/tclStringObj.c: Bug fixes: ObjPrintfVA needed to + support "*" fields and needed to interpret precision limits on %s + conversions as a maximum number of bytes, not Tcl_UniChars, to take + from the (char *) argument. + + * generic/tclBasic.c: Updated several callers to use + * generic/tclCkalloc.c: TclFormatToErrorInfo() and/or + * generic/tclCmdAH.c: TclObjPrintf(). + * generic/tclCmdIL.c: + * generic/tclCmdMZ.c: + * generic/tclDictObj.c: + * generic/tclExecute.c: + * generic/tclIORChan.c: + * generic/tclIOUtil.c: + * generic/tclNamesp.c: + * generic/tclProc.c: + + * library/init.tcl: Keep [unknown] in sync with errorInfo + formatting rules. + +2005-09-13 Don Porter <dgp@users.sourceforge.net> + + * generic/tclBasic.c: First caller of TclFormatToErrorInfo. + + * generic/tclInt.h: Using stdarg.h conventions, add more + * generic/tclStringObj.c: fixed arguments to TclFormatObj() and + TclObjPrintf(). Added new routine TclFormatToErrorInfo(). + + * generic/tcl.h: Explicitly standardized on the use of stdarg.h + * generic/tclBasic.c: conventions for functions with variable number + * generic/tclInt.h: of arguments. Support for varargs.h has been + * generic/tclPanic.c: implicitly gone for some time now. All + * generic/tclResult.c: TCL_VARARGS* macros purged from Tcl sources, + * generic/tclStringObj.c: leaving only some deprecated #define's + * tools/genStubs.tcl: in tcl.h for the sake of older extensions. + + * generic/tclDecls.h: make genstubs + + * doc/AddErrInfo.3: Replaced all documented requirement for use of + * doc/Eval.3: TCL_VARARGS_START() with requirement for use of + * doc/Panic.3: va_start(). + * doc/SetResult.3: + * doc/StringObj.3: + +2005-09-12 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Merge updates from HEAD. + + * generic/tclCmdAH.c: Added support for the "ll" width + * generic/tclStringObj.c: specifier to [format]. + + * generic/tclStringObj.c (TclAppendFormattedObjs): Bug fix: make + sure %ld formats force the collection of a wide value, when the value + could be a different long. + +2005-09-09 Andreas Kupries <andreask@activestate.com> + + * generic/tclIORChan.c (RcDecodeEventMask): Added missing type + declaration for the parameter 'mask'. This fixes the [Bug 1286256]. The + other warning can be removed only by removing the panic/return code. + +2005-09-09 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Merge updates from HEAD. + +2005-09-09 Kevin Kenny <kennykb@acm.org> + + * generic/tclStringObj.c: Added two missing casts to silence messages + from MSVC6. + +2005-09-09 Don Porter <dgp@users.sourceforge.net> + + * generic/tclInt.h: New internal routine TclObjPrintf() + * generic/tclStringObj.c: is similar to TclFormatObj() but + accepts arguments in non-Tcl_Obj format. + + * generic/tclInt.h: New internal routines TclFormatObj() + * generic/tclStringObj.c: and TclAppendFormattedObjs() to offer + sprintf()-like means to append to Tcl_Obj. Work in progress toward + [RFE 572392]. + + * generic/tclCmdAH.c: Compiler directive NEW_FORMAT when #define'd + directs the [format] command to be implemented in terms of the new + TclAppendFormattedObjs() routine. + +2005-09-08 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + TIP#254 IMPLEMENTATION + + * generic/tclLink.c (LinkTraceProc,ObjValue): Added many new of C var + * generic/tcl.h: to link to, making it + * doc/LinkVar.3: easier to seamlessly + * generic/tclTest.c (TestlinkCmd): couple C code and Tcl + * tests/link.test: scripts in an + application. [Patch 1242844] + +2005-09-07 Don Porter <dgp@users.sourceforge.net> + + * 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]. + +2005-09-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * generic/tclInt.h (List): Added flag to keep track of whether a list + * generic/tclListObj.c: with a string rep is provably canonical. + * generic/tclUtil.c (Tcl_ConcatObj): Do efficient concatenation and + * generic/tclBasic.c (Tcl_EvalObjEx): evaluation when the list is + canonical, and not just when the list is pure. This should make the + "pure list" hacking introduced in 8.3 much more robust. + +2005-09-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * generic/tclObj.c (pendingObjDataKey): Added missing 'static' to stop + symbol from leaking outside the Tcl library. [Bug 1263012] + +2005-09-02 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclScan.c: Bug fix: The %o, %x, %i formats of [scan] must + not accept any 0b or 0o prefixes. [scan $s %o] must continue to work + even with KILL_OCTAL enabled. + + * generic/tclInt.h: Added TCL_PARSE_SCAN_PREFIXES to the flags + * generic/tclStrToD.c: accepted by TclParseNumber. + +2005-09-01 Andreas Kupries <andreask@activestate.com> + + * unix/tclUnixSock.c (InitializeHostName): Synchronized use of static + modifier in declaration and definition of function. + + * unix/tclUnixChan.c (FileTruncateProc): Synchronized use of static + modifier in declaration and definition of function. + + * generic/tclResult.c (ReleaseKeys): Synchronized use of static + modifier in declaration and definition of function. + + * generic/tclListObj.c (NewListIntRep): Synchronized use of static + modifier in declaration and definition of function. + + * generic/tclEncoding.c (InitializeEncodingSearchPath): Synchronized + use of static modifier in declaration and definition of function. + + * generic/tclEncoding.c (FillEncodingFileMap): Synchronized use of + static modifier in declaration and definition of function. + + * generic/tclIORChan.c (RcNewHandle): Synchronized use of static + modifier in declaration and definition of function. + +2005-09-01 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclObj.c: TclParseNumber calls meant to parse an integer + value now pass the TCL_PARSE_INTEGER_ONLY flag. + + * generic/tclScan.c: Extended [scan] to accept the %lld, %llo, %llx, + and %lli formats. Numeric scanning is now done via TclParseNumber calls + + * generic/tclInt.h: Extended TclParseNumber to accept new flag + * generic/tclStrToD.c: values TCL_PARSE_INTEGER_ONLY, + TCL_PARSE_OCTAL_ONLY, and TCL_PARSE_HEXIDECIMAL_ONLY, to give caller + more control over the parsing rules. + +2005-08-31 Vince Darley <vincentdarley@sourceforge.net> + + * doc/FileSystem.3: + * unix/tclUnixFile.c: + * windows/tclWinFile.c: clarify that Tcl_FSMatchInDirectory may be + called with a NULL interpreter, and fix the code so this is allowed. + Tcl's core itself (tclEncoding.c:FillEncodingFileMap()) calls this + with a NULL interpreter. + +2005-08-30 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclObj.c: Extended bignum support to include bignums so + large they will not pack into a Tcl_Obj. When they outgrow Tcl's string + rep length limits, a panic will result. + + * generic/tclTomMath.h: Added mp_sqrt to routines from + * unix/Makefile.in: libtommath used by Tcl. + * win/Makefile.in: + * win/makefile.vc: + + * generic/tclBasic.c: Extended sqrt(.) so that range covers the + entire double range, accepting as many bignums in the domain as that + will allow. + +2005-08-29 Andreas Kupries <andreask@activestate.com> + + * library/tm.tcl (::tcl::tm::roots): Accepted Don Porter's patch for + [Bug 1189657]. Syncs the implementation to the specification (TIP #189) + +2005-08-29 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Merge updates from HEAD. + + * generic/tclBasic.c: Restored round(.) to the Tcl 8.4 rules. + +2005-08-29 Kevin Kenny <kennykb@acm.org> + + * 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] + +2005-08-26 Andreas Kupries <andreask@activestate.com> + + * generic/tclIO.c: Moved Tcl_{Cut,Splice}Channel to + {Cut,Splice}Channel for internal use, and created new public functions + for Tcl_{Cut,Splice}Channel which walk the whole stack of + transformations and invoke the necessary thread actions. Added code to + Tcl_(Un)StackChannel to properly invoke the thread actions when pushing + and popping transformations on/from a channel. + +2005-08-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * generic/tclNamesp.c (NamespaceEnsembleCmd): Reset the result after + creating an ensemble to clear any result object sharing (potentially + caused by delete traces) so that we can safely return the name of the + ensemble. Previously, this caused crashes in Snit's test suite. + +2005-08-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * generic/tclListObj.c (UpdateStringOfList): Stop uncontrolled and + unsafe crashes from happening when working with very large string + representations. [Bug 1267380] + + * generic/tclExecute.c (TEBC:INST_DICT_LAPPEND): Stop dropping a + duplicated object on the floor, which was a memory leak (and a wrong + result too). Thanks to Andreas Kupries for reporting this. + +2005-08-25 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Merge updates from HEAD + + * generic/tclExecute.c: Bug fix. INST_RSHIFT: shift of negative values + produced incorrect results. + + * generic/tclExecute.c: Bug fix. INST_*SHIFT opcodes stack management. + [expr 0<<6] should be 0, not 6. + + * generic/tclBasic.c: Extended the domain of round(.) to all non-Inf, + non-NaN doubles, using bignums for the result as needed. + +2005-08-24 Andreas Kupries <andreask@activestate.com> + + TIP#219 IMPLEMENTATION + + * doc/SetChanErr.3: ** New File **. Documentation of the new channel + API functions. + * generic/tcl.decls: Stub declarations of the new channel API. + * generic/tclDecls.h: Regenerated + * generic/tclStubInit.c: + + * tclIORChan.c: ** New File **. Implementation of the reflected + channel. + * generic/tclInt.h: Integration of reflected channel and new error + * generic/tclIO.c: propagation into the generic I/O core. + * generic/tclIOCmd.c: + * generic/tclIO.h: + * library/init.tcl: + + * tests/io.test: Extended testsuite. + * tests/ioCmd.test: + * tests/chan.test: + * generic/tclTest.c: + * generic/tclThreadTest.c: + + * unix/Makefile.in: Integration into the build machinery. + * win/Makefile.in: + * win/Makefile.vc: + +2005-08-24 Kevin Kenny <kennykb@acm.org> + + * generic/tclStrToD.c (Tcl_DoubleDigits): Fixed the corner cases of + * tests/binary.test (binary-65.*) formatting floating point + numbers with the largest and smallest possible significands, and added + test cases for them. + +2005-08-24 Kevin Kenny <kennykb@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Corrected some TRACE bugs that prevented + compilation with --enable-symbols=all. + * generic/tclStrToD.c: Revised commentary to prepare for a renaming of + the file, removed some dead code, and fixed a bug where + TclBignumToDouble failed on huge negative numbers. + * tests/binary.test (binary-65.*): Added missing 'ieeeFloatingPoint' + to large/small significand tests. + * tests/expr.test (expr-45.*) Added missing braces around expressions. + +2005-08-24 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclBasic.c: Revised implementation of the ceil(.) and + * generic/tclInt.h: floor(.) math functions in light of the + * generic/tclStrToD.c: revised comparison operators, so that it is + always true that ($x <= ceil($x)) and ($x >= floor($x)). The simple + approach of "convert to double and call ceil() or floor()" could not + guarantee that. + + * generic/tclExecute.c: Bug fix: TclBignumToDouble return -Inf when + appropriate. Removed declarations of removed routines. + + * generic/tclExecute.c: Revised the type promotion rules of the + comparison operators so that they form proper equivalence classes over + the set of numeric strings. + +2005-08-23 Mo DeJong <mdejong@users.sourceforge.net> + + * unix/configure.in: + * win/configure: Regen. + * win/configure.in: Update minimum autoconf version to 2.59. + +2005-08-23 Kevin Kenny <kennykb@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclCmdMZ.c (Tcl_StringObjCmd): + * generic/tclInt.h: + * generic/tclObj.c (Tcl_GetBooleanFromObj, SetDoubleFromAny, + Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_GetBignumFromObj): + * generic/tclParseExpr.c (GetLexeme): + * generic/tclScan.c (Tcl_ScanObjCmd): + * generic/tclStrToD.c (TclParseNumber): + * tests/binary.test (binary-62.1-65.7): + * tests/expr.test (expr-40.1-42.1): + * scan.test (scan-14.1,14.2): + Modified Tcl_ParseNumber to accept an argument to force interpretation + as decimal, and modified [scan] to use it. Corrected a bug where Not a + Number with hexadecimal information bits returned consistently + incorrect values. #ifdef-ed out some code that is needed only for IBM + hexadecimal floating point. Fixed bugs in code to handle the corner + cases of smallest and largest significands. Added test cases to improve + test coverage in generic/tclStrToD.c. Added test cases for 0b notation + (TIP #114). Removed TclStrToD, and the static functions that it calls, + which are now dead code (TclParseNumber now does all input + floating-point conversions.) + +2005-08-23 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclStrToD.c: Bug fix: set shift magnitude properly whether + we're expanding to mp_int type or not. + + * generic/tclExecute.c: Bug fix: ACCEPT_NAN under INST_UMINUS. + + * generic/tclStrToD.c: New macros TIP_114_FORMATS and KILL_OCTAL to + configure acceptance of 0o and 0b numbers and rejection of "leading + zero as octal". + + * generic/tclBasic.c: Re-used the guts of int(.) and wide(.) math + functions to perform conversions in OldMathFuncProc. + + * generic/tclBasic.c: Support for ACCEPT_NAN. + * generic/tclExecute.c: + + * generic/tclInt.decls: Restored TclExprFloatError to internal stubs + * generic/tclBasic.c: table, and moved definition back to + * generic/tclExecute.c: tclExecute.c from tclBasic.c to handle #undef + ACCEPT_NAN. + + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclInt.h: New internal macros TclIsNaN and TclIsInfinite + * generic/tclBasic.c: replace the IS_NAN and IS_INF macros scattered + * generic/tclExecute.c: here and there. + * generic/tclObj.c: + * generic/tclStrToD.c: + * generic/tclUtil.c: + +2005-08-22 Daniel Steffen <das@users.sourceforge.net> + + * unix/tclConfig.h.in: autoheader-2.59. + +2005-08-22 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclInt.h: New ACCEPT_NAN macro to mark code that + * generic/tclCmdAH.c: supports or disables accepting of the NaN + * generic/tclExecute.c: value at various points. + * generic/tclLink.c: + + * generic/tclStrToD.c: Bug fix. Parsing of +/- Infinity was reversed. + + * generic/tclTestObj.c: Disabled unused [testconvertobj] command. + + * generic/tclBasic: Added [expr {entier(.)}]. Rewrote int(.) and + wide(.) to use the same guts, accepting all non-Inf doubles as + arguments. + + * generic/tclInt.h: New routine TclInitBignumFromDouble. + * generic/tclStrToD.c: Modified to return code and write error + message. + + * generic/tclInt.h: TCL_WIDE_INT_IS_LONG implies NO_WIDE_TYPE. + * generic/tclObj.c: Removed now unnecessary tests of the + * generic/tclStrToD.c: TCL_WIDE_INT_IS_LONG definition. + + * generic/tclInt.h: New internal routine TclSetBignumIntRep + * generic/tclObj.c: consolidates packing of bignum value into a + * generic/tclStrToD.c: Tcl_Obj within one source code file. + + * tests/expr.test: Corrected the wideIs64bit constraint. + * tests/format.test: + * tests/scan.test: + +2005-08-21 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclInt.h: Moved TclParseInteger to tclUtil.c and + * generic/tclParseExpr.c: made it static. + * generic/tclUtil.c: + + * generic/tclInt.decls: Moved TclExprFloatError to tclBasic.c and made + * generic/tclBasic.c: it static. + * generic/tclExecute.c: + + * generitc/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclExecute.c: errno, IS_NAN, IS_INF, LLD no longer called in + this file; dropped/disabled support for them. + + * generic/tclCompExpr.c: errno no longer used in these files; + * generic/tclParseExpr.c: dropped support "hack" for it. + + * generic/tclStrToD.c: Disabled out of date support "hack" for errno. + + * generic/tclBasic.c: Eliminated VerifyExprObjType. Initialize errno + to zero in OldMathFuncProc. + +2005-08-19 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclBasic.c: Updated OldMathFuncProc and ExprAbsFunc to do + less invasion into numeric Tcl_Obj internals. Made ExprDoubleFunc, + ExprIntFunc, ExprWideFunc, and ExprRoundFunc bignum-aware. Revised + ExprSrandFunc error message. + + * generic/tclProc.c: Wrapped a few tclWideIntType uses in + * generic/tclCmdMZ.c: #ifndef NO_WIDE_TYPE. + + * generic/tclInt.h: #define'd NO_WIDE_TYPE. + + * generic/tclVar.c: Replaced TclPtrIncrVar and TclPtrIncrWideVar + * generic/tclInt.h: with TclPtrIncrObjVar and replaced TclIncrVar2 + * generic/tclInt.decls: and TclIncrWideVar2 with TclIncrObjVar2. New + routines call on TclIncrObj to do the work. + + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclCmdIL.c: Rework Tcl_IncrObjCmd and the INST_*INCR* + * generic/tclExecute.c: opcodes to use the new routines. + +2005-08-18 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Fixed string rep invalidation bug in + * tests/dict.test (dict-11.17): INST_DICT_INCR_IMM rewrite. + + * generic/tclDictObj.c: DictIncrCmd rewrite to use TclIncrObj. + + * generic/tclInt.h: TclIncrObj static -> internal + * generic/tclExecute.c: + +2005-08-17 George Peter Staplin <GeorgePS@XMission.com> + + * generic/tclBasic.c: eliminate a namespace clash caused by + BuiltinFuncTable not being static. + + * generic/tclObj.c: fix a namespace clash caused by a missing + static for pendingObjData. + +2005-08-17 Kevin Kenny <kennykb@acm.org> + + * generic/tclEvent.c (Tcl_Finalize): Removed a copy-and-paste accident + that caused a (mostly harmless) double finalize of the load and + filesystem subsystems. + * tests/clock.test: Eliminated the bad test clock-43.1, and split + clock-50.1 into two tests, with a more permissive check on the error + message for an out-of-range value. + +2005-08-17 Kevin Kenny <kennykb@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclBasic.c (Tcl_Expr{Long,Double}{,Obj}): Updated to + * generic/tclTest.c: deal with + * tests/expr-old.test: bignums (well, + * tests/expr.test: mostly). + Added a missing "errno=0;" in ExprUnaryFunc so that spurious error + returns aren't detected. + Added test cases for Tcl_Expr* and Tcl_Expr*Obj because there was very + poor test coverage in those areas. + * generic/tclParseExpr.c: Reworked parsing of numbers to call + TclParseNumber rather than trying to do things locally. + * generic/tclStrToD.c: Corrected a comment. Changed so that *endPtrPtr + does not include any trailing whitespace. + +2005-08-17 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: New routine TclIncrObj to centralize the + increment operation needed in many places. Updated INST_DICT_INCR_IMM + to make use of it. + +2005-08-16 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Made bit shifting opcodes and INST_MOD + bignum-aware. + + * tests/scan.test: Making << bignum-aware means that repeated + * tests/string.test: left shifting cannot turn a positive into a + negative. Revised [int_range] and [largest_int] utility commands in the + test suite that relied on that happening. Without revision they became + infinite loops. + + * generic/tclExecute.c: Made binary bitwise opcodes bignum-aware. + + * generic/tclTomMath.h: Added mp_or and mp_xor to routines from + * unix/Makefile.in: libtommath used by Tcl. + * win/Makefile.in: + * win/makefile.vc: + +2005-08-15 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Updates from HEAD. + * generic/tclExecute.c: More revisions to IllegalExprOperandType. + Merged INST_BITNOT with INST_UMINUS and make it bignum-aware according + to the rule: ~a = -a - 1. Disabled unused code and noted more TODOs. + + * generic/tclInt.decls: Disabled TclLooksLikeInt() and all callers. + * generic/tclUtil.c: + * generic/tclCompCmds.c: + + * generic/tclBasic.c: Rewrite of VerifyExprObjType(). + + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * generic/tclExecute.c: Updated execution of comparison bytecodes to + be bignum-aware, routing string compares through INST_STR_CMP. + +2005-08-14 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Updated execution of arithmetic bytecodes to + be bignum-aware, and to allow calculations on NaN to produce a NaN + result. INST_UMINUS updated to call mp_neg. + + * generic/tclTomMath.h: Added mp_and, mp_expt_d, and mp_neg to + * unix/Makefile.in: routines from libtommath used by Tcl. + * win/Makefile.in: + * win/makefile.vc: + +2005-08-13 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclObj.c: Extended Bignum auto-narrowing to auto-narrow + to tclWideIntType when appropriate; this helps keep things working as + the bytecode execution code is migrated to supporting bignums. + + * generic/tclExecute.c: Major overhaul of IllegalExprOperandType. + Changed several TclNewFooObj() calls to more logically appropriate + ones. Added several TODO comments marking opportunies for future work. + Made more use of the eePtr->constants. Made INST_UMINUS bignum aware. + +2005-08-12 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Simplify doCondJump. Use eePtr->constants as + result of INST_DICT_NEXT, INST_LAND, and INST_LOR. Separate INST_LNOT + from INST_UMINUS and simplify. + +2005-08-12 Kevin Kenny <kennykb@acm.org> + + * generic/tclClock.c (MktimeObjCmd): + * library/clock.tcl (GetSystemTimeZone, LoadZoneinfoFile) + (ReadZoneinfoFile): + * tests/clock.test (clock-50.1): + Added functionality to read /etc/localtime if it exists, so that Tcl's + time can track system time on Linux even if TZ is not set. Changed + ::tcl::clock::Mktime to check for failure, and added a test case that + mimics failure but is really success. + +2005-08-11 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclExecute.c: Rewrite of INST_LAND/INST_LOR to take advantage + of loss of "pure double" issues. Merged INST_UPLUS with + INST_TRY_CVT_TO_NUMERIC and updated to use improved rules for impure + "double"s as well. + + * generic/tclStrToD.c: Restored conditional generation of + tclWideIntType values by TclParseNumber so that Tcl's not completely + broken while bignum calculation support is incomplete. The NO_WIDE_TYPE + macro can be used to disable this. + + * generic/tclBasic.c (ExprAbsFunc): First pass making [expr abs(.)] + bignum-aware. + +2005-08-11 Kevin Kenny <kennykb@acm.org> + + * generic/tclEvent.c: Eliminated the USE_THREAD_STORAGE option + * generic/tclInt.h: (which is on in every build generated by + * generic/tclThread.c: by the standard configurator). + * generic/tclThreadStorage.c: Eliminated the code for thread specific + * unix/configure: data without USE_THREAD_STORAGE and + * unix/tcl.m4: radically refactored the code for + * unix/tclConfig.h.in: USE_THREAD_STORAGE so that it has fewer + * unix/tclUnixThrd.c: dependencies on the order of + * win/configure: finalization. (Also, made 'make + * win/Makefile.in: distclean' on Windows clean just a little + * win/rules.vc: bit cleaner.) + * win/tcl.m4: + * win/tclWinThrd.c: + +2005-08-10 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclTomMath.h: Added mp_shrink, mp_to_unsigned_bin, + * unix/Makefile.in: mp_to_unsigned_bin_n, and mp_unsigned_bin_size + * win/Makefile.in: to routines from libtommath used by Tcl. + * win/makefile.vc: + + * generic/tommath.h: make gentommath_h + + * generic/tclObj.c: Substantial rewrite to make all number parsing + flow through TclParseNumber(). Also established the NO_WIDE_TYPE and + BIGNUM_AUTO_NARROW #ifdef's to help track the assumptions of different + portions of the code. + + * generic/tclInt.h: Added NO_WIDE_TYPE #ifdefs + +2005-08-10 Kevin Kenny <kennykb@acm.org> + + * generic/tclEvent.c (Tcl_Finalize): Pushed Tcl_FinalizeLoad and + Tcl_ResetFilesystem down after Tcl_FinalizeThreadAlloc because we can't + unload DLL's until after their TSD keys are finalized. (Note that we'll + still see aborts if an unloaded DLL has TSD - that still needs to be + fixed. + + * tests/compExpr-old.test (compExpr-3.8): Made tests conditional on + * tests/expr.test (expr-3.8): 'unix' because they get + stack overflows on Win32 threaded builds, + +2005-08-09 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclPathObj.c: fix to [file rootname] bug in optimized code + path reported on comp.lang.tcl. + +2005-08-08 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + + * generic/tclObj.c: Replaced some goto's with loops and started + use of BIGNUM_AUTO_NARROW and NO_WIDE_TYPE. + +2005-08-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * generic/tclThreadStorage.c: Stop exposing the guts of the thread + storage system through the internal stubs table. Client code should + always use the standard API. + +2005-08-05 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] + * generic/tclObj.c: Rewrote Tcl_GetDoubleFromObj(). + +2005-08-05 Donal K. Fellows <dkf@users.sf.net> + + * unix/tclUnixInit.c (localeTable): Solaris uses a non-standard name + for the cp1251 charset. Thanks to Victor Wagner for reporting this. + [Bug 1252475] + +2005-08-05 Kevin Kenny <kennykb@users.sourceforge.net> + + * win/makefile.vc: Removed unused file ldAout.tcl. + * win/makefile.bc: [Bug 1244361] + + * tests/binary.test: Cleaned up testing for scanning of NaN. [Bug + 1246264] + + * generic/tclBasic.c (ExprAbsFunc): Added code to handle the corner + * tests/expr.test (expr-38.1): case of applying 'abs' to the + smallest 32-bit integer. [Bug 1241572] + +2005-08-04 Andreas Kupries <andreask@activestate.com> + + * generic/tclIO.c (CloseChannel): Fixed comment nit, added apparently + missing word to complete a sentence. + + * generic/tclObj.c (Tcl_DbDecrRefCount): Fixed whitespace nit in panic + message. + +2005-08-04 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Updated from HEAD + + * generic/tclObj.c: Rewrote Tcl_GetBooleanFromObj() and supporting + routines to make use of TclParseNumber. This reduces the potential + number of times a string value must be scanned. + + * generic/tclObj.c: Simplified routines that manage the typeTable. + Deleted the UpdateStringOfBoolean() routine, that can never be called. + +2005-08-03 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCompExpr.c: Untangled some dependencies in the + * generic/tclEvent.c: order of finalization routines. + * generic/tclInt.h: [Bug 1251399] + * generic/tclObj.c: + +2005-08-02 Don Porter <dgp@users.sourceforge.net> + + [kennykb-numerics-branch] Updated from HEAD + +2005-07-30 Daniel Steffen <das@users.sourceforge.net> + + * unix/tclLoadDyld.c (TclpDlopen, TclpLoadMemory): workarounds for + bugs/changes in behaviour in Mac OS X 10.4 Tiger. + +2005-07-29 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclCmdIL.c (InfoGlobalsCmd): Even in high-speed mode, still + have to take care with non-existant variables. [Bug 1247135] + +2005-07-28 Mo DeJong <mdejong@users.sourceforge.net> + + * win/README: Update link to msys_mingw8.zip. + +2005-07-28 Don Porter <dgp@users.sourceforge.net> + + * tests/compExpr-old.test: Still more conversion of "nonPortable" + * tests/error.test: tests into tests with constraints that + * tests/expr-old.test: describe the limits of their + * tests/expr.test: portability. Also more consolidation + * tests/fileName.test: of constraint synonyms. + * tests/format.test: wideis64bit, 64bitInts => wideIs64bit + * tests/get.test: wideIntegerUnparsed => wideIs32bit + * tests/load.test: wideIntExpressions => wideBiggerThanInt + * tests/obj.test: + * tests/parseExpr.test: Dropped "roundOffBug" constraint that + * tests/string.test: protected from buggy sprintf. + +2005-07-28 Donal K. Fellows <dkf@users.sf.net> + + * 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] + +2005-07-27 Don Porter <dgp@users.sourceforge.net> + + * generic/tclUtil.c: Converted the $::tcl_precision value to be kept + per-thread to prevent different threads from stomping on each others' + formatting prescriptions. + + ***POTENTIAL INCOMPATIBILITY*** Multi-threaded programs that set the + value of ::tcl_precision will now have to set it in each thread. + + * tests/expr.test: Consolidated equivalent constraints into + * tests/fileName.test: single definitions and (more precise) names: + * tests/get.test: longis32bit, 32bit, !intsAre64bit => longIs32bit + * tests/listObj.test: empty => emptyTest; winOnly => win + * tests/obj.test: intsAre64bit => longIs64bit + Also updated some "nonPortable" tests to use constraints that mark + precisely what about them isn't portable, so the tests can run where + they work. + + * library/init.tcl ([unknown]): Corrected return code handling in the + portions of [unknown] that expand incomplete commands during + interactive operations. [Bug 1214462]. + +2005-07-26 Mo DeJong <mdejong@users.sourceforge.net> + + * 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] + +2005-07-26 Don Porter <dgp@users.sourceforge.net> + + * generic/tclBasic.c (Tcl_CallWhenDeleted): Converted to use + per-thread counter, rather than a process global one that required + mutex protection. [RFE 1077194] + + * generic/tclNamesp.c (TclTeardownNamespace): Re-ordering so that + * tests/trace.test (trace-34.4): command delete traces fire + while the command still exists. [Bug 1047286] + +2005-07-24 Mo DeJong <mdejong@users.sourceforge.net> + + * unix/configure: Regen. + * unix/tcl.m4 (SC_PROG_TCLSH, SC_BUILD_TCLSH): + * win/configure: Regen. + * 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] + +2005-07-23 Don Porter <dgp@users.sourceforge.net> + + * library/auto.tcl: Updates to the Tcl script library to make use + * library/history.tcl: of Tcl 8.4 features. Forward port of + * library/init.tcl: appropriate portions of [Patch 1237755]. + * library/package.tcl: + * library/safe.tcl: + * library/word.tcl: + +2005-07-23 Mo DeJong <mdejong@users.sourceforge.net> + + * tests/string.test: Add string is tests for functionality that was not + tested. + * win/README: Update msys + mingw URL. Remove old Cygwin + mingw info. + +2005-07-23 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c (INST_DICT_*): stop 2 compiler warnings for + uninitialised variables. + +2005-07-23 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclExecute.c (TEBC:INST_DICT_INCR_IMM): Fix the incrementor + to work correctly with wide values. + +2005-07-21 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclCompCmds.c (TclCompileDictCmd): First run at a compiler + * generic/tclExecute.c (TclExecuteByteCode): for dictionaries. Also + added an instruction to support 'finally'-like clauses, exposed more of + the dict guts to the rest of the core, and defined a few tests to + exercise more obscure parts of the compiler's operation that were bugs + during development. + +2005-07-21 Kevin B. Kenny <kennykb@acm.org> + + * library/ldAout.tcl (***REMOVED***): Removed support for ancient + * unix/configure: BSD's, IRIX 4, RISCos and + * unix/Makefile.in: Ultrix. Removed two files whose + * unix/tcl.m4: code is used only on those + * unix/tclLoadAout.c (***REMOVED***): antique platforms. + + ***POTENTIAL INCOMPATIBILITY*** if anyone actually uses those + platforms; it is to be noted though, that an error in the installer has + actually not caused a necessary file to be installed on those platforms + in several releases, and nobody's complained. + +2005-07-16 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclStrToD.c (RefineResult): Plugged a stupid memory leak in + RefineResult (called from Tcl_StrToD). [Tk Bug 1227781] + +2005-07-15 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclClock.c (TclClockLocaltimeObjCmd,ThreadSafeLocalTime): + * library/clock.tcl (GuessWindowsTimeZone, ClearCaches): + * tests/clock.test (clock-49.1, clock-49.2): + Handle correctly the case where localtime() returns NULL to report a + conversion error. Also handle the case where the Windows registry + contains timezone values that can be mapped to a tzdata file name but + the corresponding file does not exist or is corrupted, by falling back + on a Posix timezone string instead; this last case will avoid calls to + localtime() in starpacks on Windows. [Bug 1237907] + +2005-07-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * generic/tclCompile.c: Update to follow style guidelines. + (TclPrintInstruction): Reorganize to do better printing out of bytecode + with far fewer "special hacks" for particular opcodes. + * generic/tclCompile.h: Requires two new opcode types. + +2005-07-13 Don Porter <dgp@users.sourceforge.net> + + * unix/tclUnixSock.c: Use a ProcessGlobalValue to store the value + * win/tclWinSock.c: returned by Tcl_GetHostName() ([info + hostname]). Also re-order initialization of the value on Windows to + favor GetComputerName() over gethostname() as a source of the + information. + +2005-07-12 Kevin Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Updated from HEAD + + * generic/tclCmdMZ.c (Tcl_StringObjCmd): + * generic/tclInt.h: + * generic/tclObj.c (Tcl_GetDoubleFromObj, SetDoubleFromAny) + (Tcl_GetIntFromObj, SetIntOrWideFromAny): + * generic/tclStrToD.c (TclParseNumber, etc.): + * tclTomMathInterface.c (TclBNInitBignumFromWideUInt): + * tests/obj.test (obj-1.1, obj-2.2, obj-3.1, obj-3.2): + + Initial attempt at an implementation of TIP #249, comprising a unified + parser and modifications to the Tcl_Get*FromObj routines to use it. + Further integration of the parser is necessary and planned. + +2005-07-12 Donal K. Fellows <dkf@users.sf.net> + + * doc/lsearch.n: Clarify documentation of -exact option; wording was + open to misinterpretation by non-English speakers. + +2005-07-11 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclExecute.c: General style cleanup. + +2005-07-08 Mo DeJong <mdejong@users.sourceforge.net> + + * generic/tclExecute.c (TclExecuteByteCode): Reimplement long and wide + type integer division and modulus operations so that the smallest and + largest integer values are handled properly. The divide operation is + more efficient since it no longer does a modulus or negation and only + checks for a remainder when the quotient will be a negative number. + The modulus operation is now a bit more complex because of a number of + special cases dealing with the smallest and largest integers. + * tests/expr.test: Add test cases for division and modulus operations + on the smallest and largest integer values for 32 and 64 bit types. + [Patch 1230205] + +2005-07-06 Don Porter <dgp@users.sourceforge.net> + + * generic/tclLink.c: Simplified LinkTraceProc [Bug 1208108]. + +2005-07-05 Don Porter <dgp@users.sourceforge.net> + + * unix/Makefile.in: Purged use of TCLTESTARGS [RFE 1161550]. + + * generic/tclUtil.c: Converted TclFormatInt() into a macro. + * generic/tclInt.decls: [RFE 1194015] + * generic/tclInt.h: + + * generic/tclIntDecls.h: make genstubs + * generic/tclStubInit.c: + + * 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] + +2005-07-04 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclDictObj.c (DictForCmd, DictFilterCmd): Interlocking of + dictionary internal representations is now done in the core of the dict + iterator. Purge the last attempts at doing it at a higher level as they + didn't work and were no longer needed. + +2005-07-01 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + + * unix/tclUnixNotfy.c: protect against spurious wake-ups while waiting + on the condition variable when tearing down the notifier thread [Bug + 1222872]. + +2005-06-28 Mo DeJong <mdejong@users.sourceforge.net> + + * generic/tclExecute.c (TclExecuteByteCode): When parsing an integer + operand for a unary minus expression operator, check for a wide integer + that is actually LONG_MIN. If found, convert back to a long int type. + * tests/expr.test: Add constraint for 32bit long int type and 64bit + wide int type. Add tests that parse the smallest/largest long int and + wide int values. + +2005-06-24 Kevin Kenny <kennykb@acm.org> + + * 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 that Tcl_Preserve will + still work even from an exit handler. + +2005-06-24 Don Porter <dgp@users.sourceforge.net> + + * library/auto.tcl: Make file safe to re-[source] without + destroying registered auto_mkindex_parser hooks. + +2005-06-23 Kevin Kenny <kennykb@acm.org> + + * win/tclWinChan.c: More rewriting of __asm__ blocks that implement + * win/tclWinFCmd.c: 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] + +2005-06-23 Daniel Steffen <das@users.sourceforge.net> + + * tools/tcltk-man2html.tcl: fixed useversion glob pattern to accept + multi-digit patchlevels. + +2005-06-22 Don Porter <dgp@users.sourceforge.net> + + * win/tclWinFile.c: Potential buffer overflow. [Bug 1225571] Thanks to + Pat Thoyts for discovery and fix. + +2005-06-22 Kevin Kenny <kennykb@acm.org> + + * 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 all + * win/tclWinPipe.c (TclFinalizePipes): 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] Also corrected a potential read of + uninitialized memory in PipeClose2Proc [Bug 1225044] + +2005-06-21 Andreas Kupries <andreask@activestate.com> + + * 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. + +2005-06-21 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclFileName.c: Changed [file split] and [file join] to treat + Windows drive letters similarly to ~ syntax and make sure that they + appear with "./" in front when they are in intermediate components of + the path. [Bug 1194458] + * tests/fileName.test: Added test for the above bug. + +2005-06-21 Don Porter <dgp@users.sourceforge.net> + + * generic/tclBasic.c: Added missing walk of the list of active + * generic/tclTrace.c: traces to cleanup references to traces being + * generic/tclInt.h: deleted. [Bug 1201035] Made the walk of the + * tests/trace.test (trace-34.*): active trace list aware of the + direction of trace scanning, so the proper correction can be made. + [Bug 1224585] + +2005-06-21 Donal K. Fellows <dkf@users.sf.net> + + * unix/tcl.m4 (SC_ENABLE_SYMBOLS): Only enable the 'compile' special + debugging feature when requested in configure.in; removes irrelevant + junk from the configure files of extensions that use Tcl's tcl.m4. + +2005-06-20 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclCompile.h (INST_PUSH_RETURN_OPTIONS): New opcode to allow + * generic/tclCompCmds.c (TclCompileCatchCmd): compilation of + * generic/tclCompile.c: TIP#90 catch [Bug + * generic/tclExecute.c (TclExecuteByteCode): 1219112] + + * generic/tclCompCmds.c (TclCompileSwitchCmd): Ensure we spill to the + command form in all cases where it generates an error. + +2005-06-20 Mo DeJong <mdejong@users.sourceforge.net> + + * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): Generate an error if a mode + argument like -exact is passed more than once to the switch command. + The previous implementation silently accepted invalid switch + invocations like [switch -exact -glob $str ...]. + * tests/for.test: Check some error cases when invoking continue and + break inside a for loop next script. + * tests/switch.test: Add checks for shortened version of a mode + argument like -exact. Add test for more than one mode argument. Add + test for odd case of passing a variable as a body script. + +2005-06-18 Daniel Steffen <das@users.sourceforge.net> + + * 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. + + * unix/tcl.m4 (Darwin): add -headerpad_max_install_names to LDFLAGS to + ensure we can always relocate binaries with install_name_tool. + + * unix/configure: autoconf-2.59 + +2005-06-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * generic/tclCmdAH.c (Tcl_FormatObjCmd): Fix for [Bug 1154163]; only + * tests/format.test: insert 'l' modifier when it is needed. + +2005-06-17 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclTimer.c (AfterDelay): Split out the code to manage + synchronous-delay [after] commands. + * tests/interp.test (interp-34.10): Time limits and synch-delay [after] + did not mix well... [Bug 1221395] + +2005-06-14 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclBasic.c (Tcl_DeleteCommandFromToken): Only delete a + * tests/namespace.test (namespace-49.2): command from the hashtable on + reentrant processing if it has not been already deleted; at least three + deletes of the same command are possible. [Bug 1220058] + * generic/tclTrace.c (TraceCommandProc): Remove bogus error message + creation when traces trigger in situations where the command has + already been deleted. + +2005-06-13 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclFCmd.c: correct fix to file mkdir 2005-06-09 [Bug 1219176] + +2005-06-12 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclCompCmds.c: Factor out some common idioms into named forms + for greater clarity. + +2005-06-10 Donal K. Fellows <dkf@users.sf.net> + + * doc/chan.n: Fold in the descriptive parts of the documentation for + all the commands that [chan] builds on top of. + +2005-06-09 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclFCmd.c: fix to race condition in file mkdir [Bug 1217375] + * doc/glob.n: improve glob documentation [Bug 1190891] + +2005-06-09 Donal K. Fellows <dkf@users.sf.net> + + * doc/expr.n, doc/mathfunc.n: Fix minor typos [Bug 1211078] and add + mention of distinctly-relevant [namespace path] subcommand. + +2005-06-07 Don Porter <dgp@users.sourceforge.net> + + * generic/tclInt.h: Reduced the Tcl_ObjTypes "index", + * generic/tclIndexObj.c: "ensembleCmd", "localVarName", and + * generic/tclNamesp.c: "levelReference" to file static scope. + * generic/tclProc.c: + * generic/tclVar.c: + + * generic/tclObj.c: Restored registration of the "procbody" + Tcl_ObjType, as required by the tclcompiler application. + + * generic/tclDecls.h: make genstubs + * generic/tclStubInit.c: + +2005-06-07 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclIO.c (Tcl_ChannelTruncateProc): Stop proliferation of + * generic/tcl.h: channel type versions + * doc/CrtChannel.3: following advice from AKu + + Bump patchlevel to a4 to distinguish from a3 release. + + * generic/tclInt.h (INTERP_TRACE_IN_PROGRESS): Add flag so the error + * generic/tclIndexObj.c (Tcl_WrongNumArgs): messages from ensembles + * generic/tclIOCmd.c (Tcl_ReadObjCmd): can be correct. + + TIP#208 IMPLEMENTATION + + * library/init.tcl: Create the chan ensemble. + * tests/chan.test: Rudimentary test suite. + * doc/chan.n: General documentation. + + TRUNCATION API (part of TIP#208) + * generic/tcl.h, generic/tcl.decls: Declaration of the API. + * doc/CrtChannel.3, doc/OpenFileChnl.3: Documentation of the API. + * generic/tclBasic.c (Tcl_CreateInterp): Create the mapping into Tcl. + * generic/tclIOCmd.c (TclChanTruncateObjCmd): Implementation of + Tcl-level truncation API. + * generic/tclIO.c (Tcl_TruncateChannel): Generic C-level truncation API + implementation. + * unix/tclUnixChan.c (FileTruncateProc): Basic implementation of + truncating driver. + + * win/tclWinChan.c (FileTruncateProc): Added implementation of file + truncation for Windows. + * tests/chan.test (chan-15.2): Added real test of truncation. + +2005-06-06 Kevin B. Kenny <kennykb@acm.org> + + * win/tclWin32Dll.c: Corrected another buglet in the assembly code for + stack probing on Win32/gcc. [Bug 1213678] + * generic/tclObj,c: Added missing 'static' on definition of + UpdateStringOfBignum, and removed a 'switch' on a 'long long' operand + (which HP-UX native 'cc' seems unable to handle). [Bug 1215775] + +2005-06-04 Jeff Hobbs <jeffh@ActiveState.com> + + *** 8.5a3 TAGGED FOR RELEASE *** + + * unix/Makefile.in (dist): add libtommath + +2005-06-03 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * library/parray.tcl (parray): Only generate the sorted list of element + names once. Thanks to Andreas Leitgeb for spotting this. + +2005-06-03 Daniel Steffen <das@users.sourceforge.net> + + * macosx/Makefile: fixed 'embedded' target. + +2005-06-02 Jeff Hobbs <jeffh@ActiveState.com> + + * 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. + +2005-06-01 Don Porter <dgp@users.sourceforge.net> + + * generic/tclBasic.c: For compatibility with earlier Tcl releases, + * generic/tclResult.c: when a command procedure simply does a + * generic/tclTest.c: "return TCL_RETURN;" we must interpret that + * tests/result.test: the same as + "return Tcl_SetReturnOptions(interp, Tcl_NewObj());" [Bug 1209759]. + +2005-06-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * generic/tclCompCmds.c (TclCompileSwitchCmd): Allow compilation of + -nocase -glob [switch]es (only one we know how to compile). + + TIP#241 IMPLEMENTATION from Joe Mistachkin + + * generic/tclCmdIL.c (Tcl_LsearchObjCmd, Tcl_LsortObjCmd): + * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): Implementation of -nocase + option for [lsearch], [lsort] and [switch] commands. + * win/tclWinPort.h: Win uses nonstandard function names... + * tests/cmdIL.test, tests/lsearch.test, tests/switch.test: Tests + * doc/lsearch.n, doc/lsort.n, doc/switch.n: Docs + + * generic/tclCompCmds.c (TclCompileLindexCmd): Compile the most common + case of [lindex] more efficiently. + + * unix/tclUnixNotfy.c (Tcl_FinalizeNotifier): Pass the correct number + of arguments to Tcl_JoinThread. + +2005-05-31 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * unix/configure.in, unix/tcl.m4: Standardize generation of help + messages to always use AC_HELP_STRING and always (except for --with-tcl + and --with-tk, where the default is complex) say what the default is. + +2005-05-31 Zoran Vasiljevic <vasiljevic@users.sourceforge.net> + + * 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 the [Bug 1082283]. + +2005-05-30 Zoran Vasiljevic <vasiljevic@users.sf.net> + + * win/tclWinThrd.c: Fixed [Bug 1204064] + +2005-05-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + TIP #229 IMPLEMENTATION + + * generic/tclNamesp.c (Tcl_FindCommand, TclResetShadowedCmdRefs) + (NamespacePathCmd, SetNsPath, UnlinkNsPath, TclInvalidateNsPath): + Implementation of the [namespace path] command and the command name + resolution engine. + * doc/info.n, doc/namespace.n: Doc updates. + * tests/namespace.test (namespace-51.*): Test updates. + * generic/tclResolve.c (BumpCmdRefEpochs, Tcl_SetNamespaceResolvers): + * generic/tclBasic.c (Tcl_CreateCommand, Tcl_CreateObjCommand): Ensure + that people don't see stale paths. + * generic/tclInt.h (Namespace, NamespacePathEntry): Structure defs. + * generic/tclCmdIL.c (InfoCommandsCmd): Updates to [info commands]. + +2005-05-26 Daniel Steffen <das@users.sourceforge.net> + + * macosx/Makefile: moved & corrected EMBEDDED_BUILD check. + + * unix/configure.in: corrected framework finalization to softlink stub + library to Versions/8.x subdir instead of Versions/Current. + * unix/configure: autoconf-2.59 + +2005-05-25 Jeff Hobbs <jeffh@ActiveState.com> + + * generic/tclCmdMZ.c (Tcl_TimeObjCmd): add necessary cast + +2005-05-25 Don Porter <dgp@users.sourceforge.net> + + TIP#182 IMPLEMENTATION [Patch 1165062] + + * doc/mathfunc.n: New built-in math function bool(). + * generic/tclBasic.c: + * tests/expr.test: + * tests/info.test: + +2005-05-24 Don Porter <dgp@users.sourceforge.net> + + * library/init.tcl: Updated [unknown] to be sure the [return] + * tests/init.test: options from an auto-loaded command are seen + correctly by the caller. + +2005-05-24 Daniel Steffen <das@users.sourceforge.net> + + * tests/env.test: added DYLD_FRAMEWORK_PATH to the list of env vars + that need to be handled specially. + + * 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.59 + + * 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.59 + * unix/tclConfig.h.in: autoheader-2.59 + + * 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] + + * doc/expr.n: + * doc/string.n: fixed roff syntax complaints from 'make html'. + +2005-05-20 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]. + +2005-05-19 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclBasic.c (TclEvalObjvInternal): Rewrite for greater + clarity; although 'goto' is Bad, the contortions you have to go through + to avoid it can be worse... + +2005-05-19 Daniel Steffen <das@users.sourceforge.net> + + * 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. + +2005-05-18 Don Porter <dgp@users.sourceforge.net> + + * generic/tclBasic.c (Tcl_ExprBoolean): Rewrite as wrapper around + Tcl_ExprBooleanObj. + + * generic/tclCmdMZ.c ([string is boolean/true/false]): Rewrite dropping + string-based Tcl_GetBoolean call, so that internal reps are kept for + subsequent quick boolean operations. + + * generic/tclExecute.c: Dropped most special handling of the "boolean" + Tcl_ObjType, since that type should now be rarely encountered. + + * doc/BoolObj.3: Rewrite of documentation dropping many details + about the internals of Tcl_Objs. Shorter documentation focuses on the + function and use of the routines. + + * generic/tclInt.h: Revision to the "boolean" Tcl_ObjType, so that + * generic/tclObj.c: only string values like "yes" and "false" are + * tests/obj.test: kept as the "boolean" Tcl_ObjType. The string + values "0" and "1" are kept as "int" Tcl_ObjType, which also produce + quick calls to Tcl_GetBooleanFromObj(). Since this internal change + means a Tcl_ConvertToType to a "boolean" Tcl_ObjType might not produce + a Tcl_Obj of type "boolean", the registration of the "boolean" type is + also removed. + ***POTENTIAL INCOMPATIBILITY*** + For callers of Tcl_GetObjType on the type name "boolean". + +2005-05-17 Don Porter <dgp@users.sourceforge.net> + + * generic/tclObj.c (TclInitObjSubsystem): Removed the + * tests/listObj.test: registration of the Tcl_ObjType's "list", + * tests/obj.test: "procbody", "index", "ensembleCommand", + "localVarName", and "levelReference". The only reason to register a + Tcl_ObjType is to have it returned by Tcl_GetObjType, and the only + reason for that is to retrieve a (Tcl_ObjType *) to pass to + Tcl_ConvertToType(). None of the types above can support a + Tcl_ConvertToType() call; they panic. Better not to offer something + than to lead users into a panic. + ***POTENTIAL INCOMPATIBILITY*** + For callers of Tcl_GetObjType on the type names listed above. + +2005-05-15 Kevin Kenny <kennykb@users.sourceforge.net> + + * win/tclWin32Dll.c: conditioned definition of EXCEPTION_REGISTRATION + structures on HAVE_NO_SEH, to fix a bug in buildability on MSVC. + +2005-05-14 Daniel Steffen <das@users.sourceforge.net> + + * generic/tclInt.decls: + * generic/tclTest.c: + * generic/tclUtil.c: + * win/tclWin32Dll.c: fixed link error due to direct access by tclTest.c + to the MODULE_SCOPE tclPlatform global: renamed existing + TclWinGetPlatform() accessor to TclGetPlatform() and moved it to + generic code so that it can be used by on all platforms where + MODULE_SCOPE is enforced. + + * 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. + + * 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] + + * tests/unixNotfy.test: don't run unthreaded tests on Darwin since + notifier may be using threads even in unthreaded core. + + * unix/tclUnixPort.h: + * unix/tcl.m4 (Darwin): test for thread-unsafe realpath during + configure, as Darwin 7 and later realpath is threadsafe. + + * macosx/Makefile: enable configure caching. + + * unix/configure.in: wrap tclConfig.h header in #ifndef _TCLCONFIG so + that it can be included more than once without warnings from gcc4.0 (as + happens e.g. when including both tclInt.h and tclPort.h) + + * macosx/tclMacOSXBundle.c: + * unix/tclUnixChan.c: + * unix/tclLoadDyld.c: + * unix/tclUnixInit.c: fixed gcc 4.0 warnings. + + * unix/configure: autoconf-2.59 + * unix/tclConfig.h.in: autoheader-2.59 + + * generic/tclIntDecls.h: + * generic/tclIntPlatDecls.h: + * generic/tclStubInit.c: make genstubs + +2005-05-13 Kevin Kenny <kennykb@acm.org> + + * win/tclWin32Dll.c: Further rework of the SEH logic. All + EXCEPTION_REGISTRATION records are now in the activation record rather + than pushed on the stack. + +2005-05-13 Don Porter <dgp@users.sourceforge.net> + + * generic/tclBasic.c: Dropped the TCL_NO_MATH configuration. It's + * generic/tclBinary.c: believed this has not been working in a long + * generic/tclExecute.c: time. Tcl needs math.h. [RFE 1200680] + * unix/Makefile.in: + +2005-05-12 Kevin Kenny <kennykb@acm.org> + + * doc/mathfunc.n: Changed NAME line to match the name of the page. + +2005-05-11 Kevin Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Resynchronized with the HEAD; at this + checkpoint [-rkennykb-numerics-branch-20050511], the HEAD and + kennykb-numerics-branch contain identical code. + +2005-05-11 Kevin Kenny <kennykb@acm.org> + + * generic/tclStrToD.c (TclStrToD, RefineResult, ParseNaN): Changed the + code to cast 'char' to UCHAR explicitly when using ctype macros, to + silence complaints from the Solaris compiler. + +2005-05-10 Jeff Hobbs <jeffh@ActiveState.com> + + * unix/tclUnixFCmd.c: add lint attr to enum to satisfy strictly + compliant compilers that don't like trailing ,s. + + * 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. + +2005-05-10 Kevin Kenny <kennykb@acm.org> + + * generic/tclBinary.c (FormatNumber): Fixed a bug where NaN's resulted + in reads of uninitialized memory when using 'd', 'q', or 'Q' format. + * generic/tclStrToD.c (ParseNaN, TclFormatNaN): Added code to handle + the peculiarities of HP's PA_RISC, which uses a different 'quiet' bit + in NaN from everyone else. + * libtommath/tommath_superclass.h: Corrected C++-style comment. + +2005-05-10 Kevin Kenny <kennykb@acm.org> + + Merged all changes on kennykb-numerics-branch back into the HEAD. + TIP's 132 and 232 are now Final. + +2005-05-10 Kevin Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Merged changes from HEAD. + +2005-05-10 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c (ExponLong, ExponWide): + * tests/expr.test (expr-23.34/35): fixed special case 'i**0' for i>0 + [Bug 1198892] + +2005-05-09 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] + * win/tclWin32Dll.c (TclpCheckStackSpace, TclWinCPUID): Reworked + structured event handling to function even with -fomit-frame-pointers. + +2005-05-08 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] + * generic/tclStrToD.c: Made code more portable by finding a workaround + for MSVC's 'volatile' issue that does not require conditional + compilation. + * win/tclWin32Dll.c (TclWinCPUID): Removed structured event handling + from the GCC code since (a) bad code is generated by the instruction + scheduling with -O2, and (b) it's not needed on any reasonably modern + CPU. + +2005-05-07 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] + * generic/tclEvent.c: Moved initialization of tclStrToD.c's + * generic/tclInt.h: static constants into a procedure called + * generic/tclStrToD.c: from TclInitSubsystems to avoid double checked + locking protocol. Cleaned up an issue where MSVC ignored the + 'volatile' specifier, causing incorrect comparison of an underflowed + number against zero. + +2005-05-06 Jeff Hobbs <jeffh@ActiveState.com> + + * unix/tcl.m4, unix/configure: correct Solaris 10 (5.10) check and add + support for x86_64 Solaris cc builds. + +2005-05-05 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Merged with HEAD. + +2005-05-05 Kevin B. Kenny <kennykb@acm.org> + + * win/tclWinThrd.c: Corrected a compilation error on the + --enable-threads configuration. + +2005-05-05 Don Porter <dgp@users.sourceforge.net> + + * generic/tclInt.decls: Converted TclMatchIsTrivial to a macro. + * generic/tclInt.h: + * generic/tclUtil.c: + * generic/tclIntDecls.h: `make genstubs` + * generic/tclStubInit.c: + * generic/tclBasic.c: Added callers of TclMatchIsTrivial where a + * generic/tclCmdIL.c: search can be done more efficiently when it is + * generic/tclCompCmds.c:recognized that a pattern match is really an + * generic/tclDictObj.c: exact match. [Patch 1076088] + * generic/tclIO.c: + * generic/tclNamesp.c: + * generic/tclVar.c: + + * generic/tclCompCmds.c: Factored common efficiency trick into a + macro named CompileWord. + + * generic/tclCompCmds.c: Replaced all instance of + * generic/tclCompile.c: TCL_OUT_LINE_COMPILE with TCL_ERROR. + * generic/tclInt.h: Now that we've eradicated the mistaken + * tests/appendComp.test: notion of a "compile-time error", we + can use the TCL_ERROR return code to signal any failure to produce + bytecode. + +2005-05-03 Don Porter <dgp@users.sourceforge.net> + + * doc/DString.3: Eliminated use of identifier "string" in Tcl's + * doc/Environment.3: public C API to avoid conflict/confusion with + * doc/Eval.3: the std::string of C++. + * doc/ExprLong.3, doc/ExprLongObj.3, doc/GetInt.3, doc/GetOpnFl.3: + * doc/ParseCmd.3, doc/RegExp.3, doc/SetResult.3, doc/StrMatch.3: + * doc/Utf.3, generic/tcl.decls, generic/tclBasic.c, generic/tclEnv.c: + * generic/tclGet.c, generic/tclParse.c, generic/tclParseExpr.c: + * generic/tclRegexp.c, generic/tclResult.c, generic/tclUtf.c: + * generic/tclUtil.c, unix/tclUnixChan.c: + + * generic/tclDecls.h: `make genstubs` + +2005-05-02 Don Porter <dgp@users.sourceforge.net> + + * generic/tcl.decls: + * generic/tclBasic.c: Simplified implementation of Tcl_ExprString. + * tests/expr-old.test: + + * generic/tclDecls.h: `make genstubs` + +2005-04-30 Daniel Steffen <das@users.sourceforge.net> + + * unix/tclUnixNotfy.c: applied dkf's tkMacOSXNotify.c cleanup changes. + +2005-04-29 Don Porter <dgp@users.sourceforge.net> + + TIP#176 IMPLEMENTATION [Patch 1165695] + + * generic/tclUtil.c: Extended TclGetIntForIndex to recognize index + formats including end+integer and integer+/-integer. + + * generic/tclCmdMZ.c: Extended the -start switch of [regexp] and + [regsub] to accept all index formats known by TclGetIntForIndex. + + * doc/lindex.n: Updated docs to note new index formats. + * doc/linsert.n, doc/lrange.n, doc/lreplace.n, doc/lsearch.n: + * doc/lset.n, doc/lsort.n, doc/regexp.n, doc/regsub.n, doc/string.n: + + * tests/cmdIL.test: Updated tests. + * tests/compile.test, tests/lindex.test, tests/linsert.test: + * tests/lrange.test, tests/lreplace.test, tests/lsearch.test: + * tests/lset.test, tests/regexp.test, tests/regexpComp.test: + * tests/string.test, tests/stringComp.test, tests/util.test: + +2005-04-28 Don Porter <dgp@users.sourceforge.net> + + * tests/unixInit.test (7.1): Alternative fix for the 2004-11-11 commit. + +2005-04-27 Don Porter <dgp@users.sourceforge.net> + + * library/init.tcl: Corrected flaw in interactive command + * tests/main.test: auto-completion. [Bug 1191409]. + + TIP#183 IMPLEMENTATION [Patch 577093] + + * generic/tclIOUtil.c (TclGetOpenModeEx): New routine. + * generic/tclInt.h: + + * generic/tclIO.c (Tcl_OpenObjCmd): Support for "b" and + * doc/open.n: "BINARY" in "access" argument to [open]. + * tests/ioCmd.test: + +2005-04-26 Kevin B. Kenny <kennykb@users.sourceforge.net> + + * generic/tclBinary.c (FormatNumber): Dredge the NaN out of the + internal representation if Tcl_GetDoubleFromObj returns TCL_ERROR on a + NaN. + + * generic/tclObj.c (Tcl_GetDoubleFromObj): Restored silent + overflow/underflow behaviour that the merge of 2004-04-25 messed up. + Thanks to Don Porter for calling attention to this bug. Also removed an + uninitialised memory reference in this function that valgrind caught. + Also changed to return TCL_ERROR on a pure NaN. + + * generic/tclStrToD.c (RefineResult): Added a test for the initial + approximation being HUGE_VAL; this test avoids EDOM being returned from + ldexp on some platforms on input values exceeding the floating point + range. + + * tests/expr.test (expr-29.*, expr-30.*): Added further tests of + overflow/underflow on input conversions. + +2005-04-25 Kevin B. Kenny <kennykb@users.sourceforge.net> + + [kennykb-numerics-branch] Merged with HEAD. + + * doc/CrtMathFunc.n: Revised documentation for TIP 232 + +2005-04-25 Daniel Steffen <das@users.sourceforge.net> + + * compat/string.h: fixed memchr() protoype for __APPLE__ so that we + build on Mac OS X 10.1 again. + + * 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). + + * win/tclWinNotify.c (Tcl_WaitForEvent): + * unix/tclUnixNotfy.c (Tcl_WaitForEvent): don't call ScaleTimeProc for + zero wait times (as specified in TIP 233). + + * unix/Makefile.in: added @PLAT_SRCS@ to SRCS and split out NOTIFY_SRCS + from UNIX_SRCS for parity with UNIX_OBJS & NOTIFY_OBJS. + + * 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, defined MODULE_SCOPE to + __private_extern__. + (SC_MISSING_POSIX_HEADERS): added caching of dirent.h check. + + * unix/configure: autoconf-2.59 + +2005-04-25 Kevin B. Kenny <kennykb@users.sourceforge.net> + + * library/tzdata/America/Boise: + * library/tzdata/America/Chicago: + * library/tzdata/America/Denver + * library/tzdata/America/Indianapolis: + * library/tzdata/America/Los_Angeles: + * library/tzdata/America/Louisville: + * library/tzdata/America/Managua: + * library/tzdata/America/New_York: + * library/tzdata/America/Phoenix: + * library/tzdata/America/Port-au-Prince: + * library/tzdata/America/Indiana/Knox: + * library/tzdata/America/Indiana/Marengo: + * library/tzdata/America/Indiana/Vevay: + * library/tzdata/America/Kentucky/Monticello: + * library/tzdata/America/North_Dakota/Center: + * library/tzdata/Asia/Tehran: + Olson's tzdata2005i. Corrects exact time at which Standard Time was + adopted in the US (generally, noon, Standard Time, rather than noon, + Local Mean Time). Adopts new civil rules for Nicaragua and Iran. + +2005-04-25 Don Porter <dgp@users.sourceforge.net> + + * library/init.tcl: Use "ni" and "in" operators. + +2005-04-25 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c: fix for [Bug 1189274]. + +2005-04-24 Don Porter <dgp@users.sourceforge.net> + + * generic/tclLiteral.c: Silence compiler warnings. + * generic/tclObj.c: [Bug 1188863]. + +2005-04-22 Don Porter <dgp@users.sourceforge.net> + + The 2005-04-21 changes to Tcl_GetBooleanFromObj were done to bring it + into agreement with its docs. Further investigation reveals it was the + docs that were incorrect. + + * doc/BoolObj.3: Corrections to the documentation of + Tcl_GetBooleanFromObj to bring it into agreement with what this public + interface has always done, including noting the difference in function + between Tcl_GetBooleanFromObj and Tcl_GetBoolean. + + * generic/tclGet.c: Revised Tcl_GetBoolean to no longer be a + wrapper around Tcl_GetBooleanFromObj (different function!). + + * generic/tclObj.c: Removed TclGetTruthValueFromObj routine that + was added yesterday. Revisions so that only Tcl_GetBoolean-approved + values get the "boolean" Tcl_ObjType. This retains the fix for [Bug + 1187123]. + * tests/string.test: Test string-23.0 for Bug 1187123. + + * generic/tclInt.h: Revert most recent change. + * generic/tclBasic.c: + * generic/tclCompCmds.c: + * generic/tclDictObj.c: + * generic/tclExecute.c: + * tests/obj.test: + +2005-04-21 Don Porter <dgp@users.sourceforge.net> + + * doc/GetInt.3: Convert argument "string" to "str" to agree with code. + Also clarified a few details on int and double formats. + * generic/tclGet.c: Radical code simplification. Converted + Tcl_GetFoo() routines into wrappers around Tcl_GetFooFromObj(). Reduces + code duplication, and the resulting potential for inconsistency. + + * generic/tclObj.c: Several changes: + + - Re-ordered error detection code so all values with trailing garbage + receive a "not an integer" message instead of an "integer too large" + message. + - Removed inactive code meant to deal with strtoul* routines that fail + to parse leading signs. All of them do, and if any are detected that + do not, the correct fix is replacement with compat/strtoul*.c, not a + lot of special care by the callers. + - Tcl_GetDoubleFromObj now avoids shimmering away a "wideInt" intrep. + - Fixed Tcl_GetBooleanFromObj to agree with its documentation and with + Tcl_GetBoolean, accepting only "0" and "1" and not other numeric + strings. [Bug 1187123] + - Added new private routine TclGetTruthValueFromObj to perform the more + permissive conversion of numeric values to boolean that is needed by + the [expr] machinery. + + * generic/tclInt.h (TclGetTruthValueFromObj): New routine. + * generic/tclExecute.c: Updated callers to call new routine. + * generic/tclBasic.c: Updated callers to call new routine. + * generic/tclCompCmds.c: Updated callers to call new routine. + * generic/tclDictObj.c: Updated callers to call new routine. + * tests/obj.test: Corrected bad tests that actually expected + values like "47" and "0xac" to be accepted as booleans. + + * generic/tclLiteral.c: Disabled the code that forces some literals + into the "int" Tcl_ObjType during registration. We can re-enable it if + this change causes trouble, but it seems more sensible to let Tcl's + "on-demand" shimmering rule, and not try to pre-guess things. + +2005-04-20 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] + * doc/expr.n: + * doc/mathfunc.n (new file): Revised documentation for TIP 232 + +2005-04-20 Don Porter <dgp@users.sourceforge.net> + + * 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]. + +2005-04-20 Kevin B. Kenny <kennykb@acm.org> + + * generic/tclFileName.c: Silenced a compiler warning about '/*' within + a comment. + +2005-04-19 Don Porter <dgp@users.sourceforge.net> + + * generic/tclBasic.c: Added unsupported command + * generic/tclCmdAH.c: [::tcl::unsupported::EncodingDirs] to permit + * generic/tclInt.h: query/set of the encoding search path at + * generic/tclInterp.c: the script level. Updated init.tcl to make + * library/init.tcl: use of the new command. Also updated several + coding practices in init.tcl ("eq" for [string equal], etc.) + +2005-04-19 Kevin B. Kenny <kennykb@acm.org> + + * library/clock.tcl (Initialize): Put initialization code into a proc + to avoid inadvertently clobbering global variables. [Bug 1185933] + * tests/clock.test (clock-48.1): Added regression test for the above + bug. + Thanks to Ulrich Ring for reporting this bug. + +2005-04-16 Miguel Sofer <msofer@users.sf.net> + + * generic/Var.c (Tcl_ArrayObjCmd - ARRAY_NAMES): fix Tcl_Obj leak. [Bug + 1084111] + +2005-04-16 Zoran Vasiljevic <vasiljevic@users.sf.net> + + * generic/tclIOUtil.c: force clenaup of the interp result in + TclLoadFile(). Some implementations of TclpFindSymbol() will seed the + interp result with error message when unable to find the requested + symbol (this is not considered to be an error). + + 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. + + This fixes the [Bug 1178445] + + * generic/tclInt.h: added prototypes for TclpFreeAllocCache() and + TclFreeAllocCache() + + * generic/tclThreadAlloc.c: modified TclFinalizeThreadAlloc() to + explicitly call TclpFreeAllocCache with the NULL-ptr as argument + signalling cleanup of private tsd key used only by the threading + allocator. + + * unix/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. + + * 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. + +2005-04-13 Don Porter <dgp@users.sourceforge.net> + + * tests/unixInit.test: Disabled obsolete tests and removed code + * tests/encoding.test: that supported them. + * generic/tclInterp.c: + + * library/init.tcl: Use auto-loading to bring in Tcl Module support + * library/tclIndex: as needed. This reduces startup time by + * library/tm.tcl: delaying this initialization to a later time. + +2005-04-15 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c: missing semicolons caused failure to compile + with TCL_COMPILE_DEBUG. + +2005-04-13 David Gravereaux <davygrvy@pobox.com> + + * generic/tclIO.c (Tcl_SetChannelBufferSize): Lowest size limit + * tests/io.test: changed from ten bytes to one byte. Need for + * tests/iogt.test: this change was proven by Ross Cartlidge + <rossc@cisco.com> where [read stdin 1] was grabbing 10 bytes followed + by starting a child process that was intended to continue reading from + stdin. Even with -buffersize set to one, nine chars were getting lost + by the buffersize over reading for the native read() caused by [read]. + +2005-04-13 Don Porter <dgp@users.sourceforge.net> + + * unix/tclUnixInit.c (TclpGetEncodingNameFromEnvironment): Reversed + order of verifying candidate [encoding system] value, checking against + a table in memory first before calling Tcl_GetEncoding and potentially + scanning through the filesystem. Also ordered the table so that a + binary search could be used within it. Improves startup time a bit more + on some systems. + +2005-04-13 Kevin B. Kenny <kennykb@acm.org> + + * library/clock.n: Added a missing '--' on several [switch] commands to + improve performance of [clock format] and related operations. [FRQ + 1182459] + +2005-04-13 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * doc/fcopy.n: Improved documentation on copying binary files, added an + example and mentioned the use of [file copy]. + * doc/fconfigure.n: Improved documentation of -encoding binary option. + This is all following comments from Steve Manning <steve@manning.net> + on comp.lang.tcl that the current documentation was not clear. + +2005-04-13 Miguel Sofer <msofer@users.sf.net> + + * generic/tclCompile.c:Commented out the functions + TclPrintInstruction(), TclPrintObject() and TclPrintSource() when not + debugging the compiler, as they are never called in that case. + +2005-04-12 Don Porter <dgp@users.sourceforge.net> + + * generic/tclInterp.c: Corrected bad syntax of Tcl_Panic() call. + + * generic/tclUtil.c (TclGetProcessGlobalValue): More robust handling + of bad TclInitProcessGlobalValueProc behavior; an immediate panic + rather than a mysterious crash later. + + * generic/tclEncoding.c: Several changes to the way the + encodingFileMap cache is maintained. Previously, it was attempted to + keep the file map filled and up to date with changes in the encoding + search path. This contributed to slow startup times since it required + an expensive "glob" operation to fill the cache. Now the validity of + items in the cache are checked at the time they are used, so the cache + is permitted to fall out of sync with the encoding search path. Only + [encoding names] and Tcl_GetEncodingNames() now pay the full expense. + [Bug 1177363] + +2005-04-12 Kevin B. Kenny <kennykb@acm.org> + + * compat/strstr.c: Added default definition of NULL to accommodate + building on systems with badly broken headers. [Bug 1175161] + +2005-04-11 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * tools/tclZIC.tcl: Rewrote to take advantage of more features of Tcl + 8.5 (on which it was dependent anyway). Also added a [package require] + line to formalize the relationship. + +2005-04-11 Kevin Kenny <kennykb@users.sf.net> + + [kennykb-numerics-branch] Merged with HEAD. Updated to libtommath 0.35. + + * generic/tclBasic.c: Attempted to repeat changes that applied to + tclExecute.c in Miguel Sofer's commit of 2005-04-01, together with + (possibly) a few more uses of his new object creation macros. Also + plugged a memory leak in TclObjInvoke. [Bug 1180368] + +2005-04-10 Kevin Kenny <kennykb@acm.org> + + * library/tzdata/America/Montevideo: + * library/tzdata/Asia/Almaty: + * library/tzdata/Asia/Aqtau: + * library/tzdata/Asia/Aqtobe: + * library/tzdata/Asia/Baku: + * library/tzdata/Asia/Jerusalem: + * library/tzdata/Asia/Oral: + * library/tzdata/Asia/Qyzylorda: + * library/tzdata/Indian/Chagos: + * library/tzdata/Indian/Cocos: Olson's tzdata2005h + +2005-04-10 Don Porter <dgp@users.sourceforge.net> + + * generic/tclBasic.c (TclObjInvoke): Plug memory leak. [Bug 1180368] + +2005-04-09 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c: fix possible leak of expansion Tcl_Objs + +2005-04-09 Daniel Steffen <das@users.sourceforge.net> + + * macosx/README: updated requirements for OS & developer tool versions + and other small fixes/cleanup. + + * generic/tclListObj.c (Tcl_ListObjIndex): added missing NULL return + when getting index from an empty list. + + * unix/tcl.m4 (Darwin): added -single_module linker flag to + TCL_SHLIB_LD_EXTRAS and TK_SHLIB_LD_EXTRAS. + * unix/configure: autoconf-2.59 + +2005-04-08 Don Porter <dgp@users.sourceforge.net> + + * generic/tclInt.h (TclGetEncodingFromObj): New function to + * generic/tclEncoding.c (TclGetEncodingFromObj): retrieve a + Tcl_Encoding value, as well as cache it in the internal rep of a new + "encoding" Tcl_ObjType. + * generic/tclCmdAH.c (Tcl_EncodingObjCmd): Updated to call new + function so that Tcl_Encoding's used by [encoding convert*] routines + are not freed too quickly. [Bug 1077262] + +2005-04-08 Donal K. Fellows <dkf@users.sf.net> + + * generic/tclCompCmds.c (TclCompileSwitchCmd): Rewritten to be able to + handle the other form of [switch] and generate slightly simpler (but + longer) code. + +2005-04-06 Donal K. Fellows <dkf@users.sf.net> + + * doc/upvar.n, doc/unset.n, doc/tell.n, doc/tclvars.n, doc/subst.n: + * doc/seek.n, doc/scan.n, doc/regsub.n, doc/registry.n, doc/regexp.n: + * doc/read.n, doc/puts.n, doc/pkgMkIndex.n, doc/open.n, doc/lreplace.n: + * doc/lrange.n, doc/load.n, doc/llength.n, doc/linsert.n, doc/lindex.n: + * doc/lappend.n, doc/info.n, doc/gets.n, doc/format.n, doc/flush.n: + * doc/fileevent.n, doc/file.n, doc/fblocked.n, doc/close.n: + * doc/array.n, doc/Utf.3, doc/TraceVar.3, doc/StrMatch.3, doc/RegExp.3: + * doc/PrintDbl.3, doc/OpenTcp.3, doc/OpenFileChnl.3, doc/Object.3: + * doc/Notifier.3, doc/LinkVar.3, doc/IntObj.3, doc/Interp.3: + * doc/GetOpnFl.3, doc/GetIndex.3, doc/Eval.3, doc/CrtMathFnc.3: + * doc/CrtFileHdlr.3, doc/CrtCommand.3, doc/CrtChannel.3: + * doc/Backslash.3: Purge old .VS/.VE macro instances. + + * tools/man2html2.tcl (IPmacro): Rewrote to understand what .IP really + is (.IP and .TP are really just two ways of doing the same thing). + Change below made this relevant. + * doc/re_syntax.n: Change some uses of .TP to .IP to work around bugs + in various *roff implementations. Also reworded the atom descriptions + slightly. + +2005-04-05 Don Porter <dgp@users.sourceforge.net> + + * 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 1177219] + +2005-04-05 Miguel Sofer <msofer@users.sf.net> + + * generic/tclInt.h: + * generic/tclObj.c: Change in TclDecrRefCount and TclFreeObj, to speed + up the freeing of simple Tcl_Obj [Patch 1174551] + +2005-04-04 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c: small opts in obj handling + +2005-04-02 Miguel Sofer <msofer@users.sf.net> + + * generic/tclVar.c: converted a few function calls to macros. + +2005-04-01 Miguel Sofer <msofer@users.sf.net> + + * doc/ListObj.3: + * generic/tclBasic.c: + * generic/tclCmdIL.c: + * generic/tclConfig.c: + * generic/tclExecute.c: + * generic/tclInt.decls: + * generic/tclInt.h: + * generic/tclIntDecls.h: + * generic/tclListObj.c: + * generic/tclStubInit.c: + * generic/tclVar.c: Changed the internal representation of lists to + (a) reduce the malloc/free calls at list creation (from 2 to 1), (b) + reduce the cost of handling empty lists (we now never create a list + internal rep for them), (c) allow refcounting of the list internal rep. + The latter permits insuring that the pointers returned by + Tcl_ListObjGetElements remain valid even if the object shimmers away + from its original list type. This is [Patch 1158008] + + * generic/tclExecute.c: + * generic/tclInt.h: + * generic/tclObj.c: + * generic/tclStringObj.c: + (1) defined new internal macros for creating and setting frequently + used obj types (int,long, wideInt, double, string). Changed TEBC to use + eg 'TclNewIntObj(objPtr, i)' to avoid the function call in 'objPtr = + Tcl_NewIntObj(i)' + (2) ExecEnv now stores two Tcl_Obj* pointing to the constants "0" and + "1", for use by TEBC. + (3) slight reduction in cost of INST_START_CMD + +2005-03-31 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c (INST_JUMP_TRUE/FALSE): replaced "test and + branch" with "compute index into table" + +2005-03-30 Donal K. Fellows <donal.k.fellows@manchester.ac.uk> + + * doc/FileSystem.3: Defined loadHandle argument. [Bug 1172401] + +2005-03-29 Jeff Hobbs <jeffh@ActiveState.com> + + * win/tcl.m4, win/configure: do not require cygpath in macros to allow + msys alone as an alternative. + +2005-03-24 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCompile.h: Move the TclInterpReady() declaration from + * generic/tclInt.h: tclCompile.h to tclInt.h. Should have been done + as part of the 1115904 bug fix on 2005-03-18. + + * generic/tclThreadTest.c: Stop providing the phony package + "Thread 1.0" when the [::testthread] command is defined. It's never + used by anything, and conflicts with loading the real "Thread" package. + +2005-03-18 Don Porter <dgp@users.sourceforge.net> + + * 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] + + * generic/tclBasic.c (Tcl_EvalEx): Restored recursion limit + * generic/tclParse.c (TclSubstTokens): testing in nested command + * tests/basic.test (basic-46.4): substitutions within direct + * tests/parse.test (parse-19.*): script evaluation (Tcl_EvalEx) + that got lost in the parser reforms of Tcl 8.1. Added tests for correct + behavior. [Bug 1115904] + +2005-03-15 Vince Darley <vincentdarley@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. + +2005-03-15 Pat Thoyts <patthoyts@users.sourceforge.net> + + * unix/tcl.m4: Updated the OpenBSD configuration and regenerated + * unix/configure: the configure script. + +2005-03-15 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Merged with HEAD. + + * generic/tclBasic.c (many): + * generic/tclCompExpr.c (CompileMathFuncCall): + * generic/tclCompile.h: + * generic/tclExecute.c (many): + * generic/tclParseExpr.c (ParsePrimaryExpr): + * tests/compExpr-old.test: + * tests/compExpr.test: + * tests/compile.test: + * tests/expr-old.test: + * tests/expr.test: + * tests/for.test: + * tests/parseExpr.test: Initial implementation of TIP #232. + + * generic/tclObj.c (Tcl_DbNewBignumObj): Fixed typo that broke + --enable-symbols=mem build + * tests/binary.test (binary-40.3, binary-40.6): Corrected tests to + allow NaN(7ffffffffffff). + +2005-03-14 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c: fixed INST_PUSH1's debugging code (wrong obj + ref passed to TRACE_WITH_OBJ). + +2005-03-14 Miguel Sofer <msofer@users.sf.net> + + * generic/tclCompile.c: fixed INST_RETURN's stack effect in + tclInstructionTable (-1 instead of -2) + +2005-03-10 Miguel Sofer <msofer@users.sf.net> + + * generic/tclCompCmds.c: removed debugging line + +2005-03-10 Don Porter <dgp@users.sourceforge.net> + + * generic/tclTrace.c (TclCheckInterpTraces): Corrected mistaken cast + of ClientData to (TraceCommandInfo *) when not warranted. Thanks to + Yuri Victorovich for the report. [Bug 1153871] + * generic/tcl.h: Moved flag values TCL_TRACE_ENTER_EXEC and + * generic/tclInt.h: TCL_TRACE_LEAVE_EXEC from public interface into + private. Should be used only by internal workings of execution traces. + +2005-03-09 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Merged from HEAD. + + * doc/PrintDbl.3: + * doc/tclVars.n: Documented new semantics for tcl_precision. + * generic/tclExecute.c (Tcl_ExecuteByteCode): Removed the check for + division-by-zero on IEEE-754 machines. + * generic/tclUtil.c (Tcl_PrintDouble): Corrected bug where numbers in + the range [1e-4 .. 1.) were printed incorrectly. + * tests/compExpr-old.test (compExpr-old-11.13): Revised test case for + division by zero. + * tests/expr-old.test (expr-34.11, expr-34.12): Revised test cases for + overflow in pow() to deal with infinities. + * tests/expr.test (expr-11.13, expr-29.1, expr-29.2): Revised test case + for division by zero and for underflow on input conversions. + * tests/parseExpr.test (parseExpr-16.11): Revised test case for + overflow on input conversion. + * tests/string.test (string-6.38 deleted): Removed test case for + underflow on input conversion, which is no longer an error. + * tests/util.test (util-10.*): Added test case for the bug in tclUtil.c + +2005-03-08 Jeff Hobbs <jeffh@ActiveState.com> + + * win/makefile.vc: clarify necessary defined vars that can come from + MSVC or the Platform SDK. + +2005-03-07 Donal K. Fellows <dkf@users.sf.net> + + * doc/string.n: Minor typo. [Bug 1158247] + +2005-03-07 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c: new peephole optimisation for INST_PUSH1; fixed + the peephole opt in INST_POP so that it is not used when + TCL_COMPILE_DEBUG is defined. + +2005-03-04 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] + + * generic/tclCmdMZ.c: Changed [scan] to treat out-of-range floating + point values as infinities and zeroes. + * generic/tclExecute.c: Changed [expr] to be permissive about + infinities, allowing them to propagate. + * generic/tclGet.c: Changed Tcl_GetDouble to be permissive about + over/underflow. + * generic/tclObj.c: Changed SetDoubleFromAny to be permissive about + over/underflow. + * generic/tclParseExpr.c: Made [expr] permissive about input numbers + out of range. + +2005-03-03 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] + + * generic/tclInt.h: + * generic/tclStrToD.c (Tcl_DoubleDigits, TclFormatNaN): + * generic/tclUtil.c (Tcl_PrintDouble): Changed the signature of + TclDoubleDigits so that it accepts a pointer to the signum of the + argument, and returns the signum via that pointer. Added very hacky + code to handle IEEE signed zeroes in Tcl_DoubleDigits. (It can't be + done other than as a hack until C9x; C89 simply doesn't deal with the + concept of -0.0). Added output conversion of tagged NaN values. + * generic/tclBinary.c (FormatNumber): Changed to allow [binary format] + to handle NaN. + * tests/binary.test (binary-60.1): Added a quick-n-dirty test to make + sure that NaN's can be scanned and formatted. + * generic/tclParseExpr.c (GetLexeme, ParseMaxDoubleLength): Modified so + that tagged NaN (e.g., NaN(DEADBEEF)) can be recognized. + +2005-03-02 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Merged with HEAD as of 2005-02-23. + + * generic/tclExecute.c: Broadened test for NaN to work on Windows. + * generic/tclInt.h: + * generic/tclStrToD.c (Tcl_DoubleDigits): + * generic/tclUtil.c (Tcl_PrintDouble, TclPrecTraceProc): Added + Tcl_DoubleDigits to format 'double' numbers with the minimum number of + significant digits to yield correct rounding. Modified tcl_precision + to accept 0 as a precision (meaning "minimum digits"), and made 0 the + default. [TIP #132] + * generic/tclObj.c: Made NaN's throw an error in Tcl_GetDoubleFromObj. + * unix/Makefile.in: + * win/Makefile.in: + * win/makefile.vc: Added libtommath/bn_mp_init_set.c to the build. + * libtommath/tommath.h (mp_iseven): Fixed a bug that caused zero to + test 'odd'. + * generic/tommath.h: Regenerated. + * tests/binary.test: + * tests/expr-old.test: + * tests/expr.test: + * tests/scan.test: Corrected a number of tests that depended on + tcl_precision, and removed the {eformat} condition from tests that no + longer require it. + * tests/util.test: Corrected a number of tests that depended on + tcl_precision, and removed the {eformat} condition from tests that no + longer require it. Added a series of tests for correct rounding in + Tcl_PrintDouble. [TIP #132]. + +2005-03-01 David N. Welton <davidw@dedasys.com> + + * doc/CrtSlave.3: Changed to Tcl_Object to Tcl_Obj in the man page. + +2005-02-24 Don Porter <dgp@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/tcltest/pkgIndex.tcl: Bump to tcltest 2.2.8 + * unix/Makefile.in: + * win/Makefile.in: + +2005-02-23 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * doc/CrtChannel.3 (THREADACTIONPROC): Formatting fix. [Bug 1149605] + +2005-02-17 Jeff Hobbs <jeffh@ActiveState.com> + + * win/tclWinFCmd.c (TraverseWinTree): use wcslen on wchar, not + Tcl_UniCharLen. + +2005-02-16 Miguel Sofer <msofer@users.sf.net> + + * doc/variable.n: fix for [Bug 1124160], variables are detected by + [info vars] but not by [info locals]. + +2005-02-11 Jeff Hobbs <jeffh@ActiveState.com> + + * unix/Makefile.in: remove SHLIB_LD_FLAGS (only for AIX, inlined into + * unix/tcl.m4: SHLIB_LD). Combine AIX-* and AIX-5 branches in + * unix/configure: SC_CONFIG_CFLAGS. Correct gcc builds for AIX-4+ + and HP-UX-11. autoconf-2.59 gen'd. + +2005-02-11 Miguel Sofer <msofer@users.sf.net> + + * tests/basic.test (basic-26.3): new test + +2005-02-10 Miguel Sofer <msofer@users.sf.net> + + * 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. + +2005-02-10 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclFileName.c: fix for test failures introduced on 2005-01-17 + [Bug 1119092] + +2005-02-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * doc/binary.n: Made the documentation of sign bit masking and [binary + scan] consistent. [Bug 1117017] + +2005-02-08 David N. Welton <davidw@dedasys.com> + + * doc/CrtChannel.3: Typo: return->returns. + +2005-02-06 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] + + * generic/tclStrToD.c (TclStrToD, SafeLdExp): Added code to manage the + FPU precision on gcc+x86. Enabled fast conversion of floats with small + exponents now that precision is correct. + * tests/expr.test: Corrected test for the smallest representible value + to the right IEEE values. + +2005-02-06 David N. Welton <davidw@dedasys.com> + + * doc/Thread.3: One-word grammar fix. + +2005-02-05 David N. Welton <davidw@dedasys.com> + + * doc/Thread.3: Fixed sentence describing flags for Tcl_CreateThread. + + * doc/FileSystem.3: Cleaned up typo in Tcl_FSNewNativePath + documentation. + + * generic/tclPathObj.c: Cleaned up typo in comment. + +2005-02-03 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] + + * generic/tclStrToD.c (TclStrToD, RefineResult, SafeLdExp): Added code + to ensure that 'ldexp' is never called with a value that will underflow + * tests/expr.test: Added tests for the smallest representible value, + and rounding between it and zero. (The tests reflect current + behaviour; plan is to change the specification of Tcl so that input + conversion of doubles underflows silently.) + +2005-02-02 Mo DeJong <mdejong@users.sourceforge.net> + + * generic/tclProc.c (TclInitCompiledLocals): Add check for type of the + framePtr->procPtr->bodyPtr passed to TclInitCompiledLocals and panic if + it is not the correct type. If the body of the proc is not of the + compiled byte code type then the code will crash. This was discovered + while tracking down a crash in Itcl, that crash is fixed by Itcl patch + 1115085. + +2005-02-01 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Merged with HEAD as of today. + + * generic/tclInt.decls: Changed numbers of new stubs to resolve a + conflict. + * generic/tclInt.h: Added new TclStrToD routine that replaces the + native 'strtod' throughout Tcl. + * generic/tclCmdMZ (Tcl_StringObjCmd): + * generic/tclGet.c (Tcl_GetDouble): + * generic/tclObj.c (SetBooleanFromAny, SetDoubleFromAny): + * generic/tclParseExpr.c (GetLexeme): + * generic/tclScan.c (Tcl_ScanObjCmd): Replaced all uses of the native + 'strtod' with a TclStrToD routine that performs correct rounding and + handles denormals. + * generic/tclStrToD.c: (new file) + New scanning function for extracting 'double' from a string that rounds + correctly, and handles denormals and infinities. + * unix/Makefile.in: + * win/Makefile.in: + * win/makefile.vc: + Added tclStrToD.c and the tommath routines that support it. + + These changes represent a partial implementation of TIP #132. Output + conversion of floating point numbers, and proper handling of infinities + within expressions, still need to be addressed. + +2005-02-01 Don Porter <dgp@users.sourceforge.net> + + * generic/tclExecute.c (TclCompEvalObj): Removed stray statement left + behind in prior code reorganization. + +2005-01-31 Don Porter <dgp@users.sourceforge.net> + + * unix/configure: autoconf-2.57 + +2005-01-30 Joe English <jenglish@users.sourceforge.net> + + * unix/configure.in: Restored two double-evals that were removed in the + DBGX purge; these are still needed on some platforms to account for + TCL_TRIM_DOTS. [Bug 1112654] + + * unix/configure: NOT REGENERATED: only have autoconf 2.59 here, need + to find someone with autoconf 2.57. + +2005-01-28 Jeff Hobbs <jeffh@ActiveState.com> + + * unix/configure, unix/tcl.m4: add solaris 64-bit gcc build support. + [Bug 1021871] + +2005-01-28 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * tests/expr-old.test (expr-old-37.2): Added test for [Bug 1109484] + +2005-01-27 Jeff Hobbs <jeffh@ActiveState.com> + + * generic/tclBasic.c (Tcl_ExprBoolean, Tcl_ExprDouble) + (Tcl_ExprLong): Fix to recognize Tcl_WideInt type. [Bug 1109484] + +2005-01-26 Andreas Kupries <andreask@activestate.com> + + TIP#218 IMPLEMENTATION + + * generic/tclDecls.h: Regenerated from tcl.decls. + * generic/tclStubInit.c: + + * 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: + +2005-01-25 Don Porter <dgp@users.sourceforge.net> + + * library/auto.tcl: Updated [auto_reset] to clear auto-loaded + commands in namespaces other than :: and to clear auto-loaded commands + that do not happen to be procs. [Bug 1101670] + ***POTENTIAL INCOMPATIBILITY*** + +2005-01-25 Daniel Steffen <das@users.sourceforge.net> + + * unix/tcl.m4 (Darwin): fixed bug with static build linking to dynamic + library in /usr/lib etc instead of linking to static library earlier in + search path. [Bug 956908] Removed obsolete references to Rhapsody. + * unix/configure: autoconf-2.57 + +2005-01-21 Andreas Kupries <andreask@activestate.com> + + * generic/tclStubInit.c: Regenerated the stubs support code from the + * generic/tclDecls.h: modified tcl.decls (TIP #233, see below). + + * doc/GetTime.3: Implemented TIP #233, i.e. the + * generic/tcl.decls: 'Virtualization of Tcl's Sense of Time'. + * generic/tcl.h: Declared, implemented, and documented the + * generic/tclInt.h: specified new API functions. Moved the + * unix/tclUnixEvent.c: native (OS) access to time information + * unix/tclUnixNotfy.c: into standard handler functions. Inserted + * unix/tclUnixTime.c: hooks calling on the handlers where native + * win/tclWinNotify.c: access was done before, and where scaling + * win/tclWinTime.c: between domains (real/virtual) is required. + +2005-01-21 Andreas Kupries <andreask@activestate.com> + + * generic/tclThread.c: Typo police. Fixed some nits + * generic/tclCmdAH.c: in header comments of functions. + * generic/tclBasic.c: (Missing --). + * generic/tclFileName.c: + +2005-01-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * doc/FileSystem.3: Add missing ARGUMENTS section definitions for + arguments to Tcl_FSLink. [Bug 1106272] + +2005-01-21 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] + + * unix/Makefile.in: Updated Makefile to build libtommath on Unix as + well as Windows. [Bug 1106865] + + * generic/tclTestObj.c (TestbignumobjCmd): Silenced a compiler warning + about a mismatched 'const'. + +2005-01-20 Kevin B. Kenny <kennykb@acm.org> + + [kennykb-numerics-branch] Development checkpoint. + + * compat/strtoll.c: Reverted to HEAD. + * compat/strtoull.c: + * doc/Ensemble.3: + * generic/tclBasic.c: + * generic/tclCmdIL.c: + * generic/tclNamesp.c: + * generic/tclPathObj.c: + * generic/tclPort.h: + * unix/configure: + * unix/configure.in: + * unix/tcl.m4: + * win/configure: + * win/configure.in: + * win/rules.vc: + * win/tcl.m4: + + * generic/tcl.h: Added declarations for bignum types, and for a + 'bignumValue' in the Tcl_Obj structure. + * generic/tclInt.h: Added declarations of interface procedures for + memory allocation in libtommath. + + * generic/tcl.decls: Added new interface to bignum objects. + * generic/tclInt.decls: Added internal stubs for bignum routines used + by the test code in tclTestObj.c. + + * generic/tclDecls/h: Regen. + * generic/tclIntDecls.h: + * generic/tclStubInit.h: + + * tools/fix_tommath_h.tcl: (New file) Script to edit + libtommath/tommath.h and produce generic/tommath.h so that storage + classes, allocation routines, and data types conform to Tcl's + conventions. + * generic/tommath.h: (New file) Generated by the above. + + * generic/tclTomMath.h: (New file) Additional declarations to be + included in tommath.h when building Tcl. + + * generic/tclTomMathInterface.c: (New file) Small 'glue' routines + adapting tommath's API to Tcl. + + * libtommath/bn_fast_s_mp_mul_digs.c: + * libtommath/bn_mp_mul_d.c: + * libtommath/bn_mp_read_radix.c: + * libtommath/tommath.h: Applied suggested changes from Tom St Denis + that correct an off-by-one error in single-digit multiplication + (leading to a pointer smash if uncorrected) and change the string + argument to 'mp_read_radix' from 'char*' to 'const char*'. + + * libtommath/bn_mp_radix_size.c: Local patch to ensure that sufficient + memory is requested even if the number has a single digit. + + * libtommath/bn_mp_read_radix.c: Local patch to return MP_VAL if the + input string contains an invalid character. + + * generic/tclObj.c: Added accessor functions for bignums. + * generic/tclTestObj.c: Added a 'testbignumobj' command to exercise the + accessor functions for bignums. + + * win/Makefile.in: Added rules for making libtommath. + +2005-01-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + TIP#235 IMPLEMENTATION + + * doc/Ensemble.3: Documentation for the new public API. + * generic/tclNamesp.c (Tcl_CreateEnsemble,...): Rename of + * generic/tcl.decls: existing API into TIPped form. + +2005-01-19 Mo DeJong <mdejong@users.sourceforge.net> + + * 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 + I/O finalization stage. + +2005-01-18 Kevin Kenny <kennykb@acm.org> + + * library/tzdata/GMT+0: + * library/tzdata/GMT-0: + * library/tzdata/GMT0: + * library/tzdata/Greenwich: + * library/tzdata/Navajo: + * library/tzdata/Universal: + * library/tzdata/Zulu: + * library/tzdata/America/Asuncion: + * library/tzdata/America/Rosario: + * library/tzdata/Asia/Jerusalem: + * library/tzdata/Brazil/Acre: + Routine update per Olson's tzdata2005c. Removed links to links + (Greenwich in several aliases; Navajo; Acre). Updated Paraguayan DST + rules and "best guess" at this year's Israeli rules. + +2005-01-17 Vince Darley <vincentdarley@users.sourceforge.net> + + * generic/tclFileName.c: fix for glob failure on Windows shares [Bug + 1100542]. + + * doc/pkgMkIndex.n: added documentation that 'pkg_mkIndex -lazy' is not + a good idea. [Bug 1101678] + +2005-01-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * tests/compile.test (compile-17.1): Document known issue with binding + time of compiled command interpretations in [expr]. + + * generic/tclIOUtil.c (TclFSFileAttrIndex): New helper function so that + we don't need to hard-code attribute indexes. [Bug 1100671] + +2005-01-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * doc/string.n: Removed the term 'set' from the documentation of the + [string trim] commands, as it caused confusion. + +2005-01-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * unix/tcl.m4 (SC_PATH_{TCL,TK}CONFIG): Added code to detect the case + when the --with-tcl/--with-tk arguments point to the config scripts + themselves and not their directory. If this is the case, they now + complain but keep working. [FRQ 951247] + * unix/configure: autoconf-2.57 + +2005-01-10 Joe English <jenglish@users.sourceforge.net> + + * unix/Makefile.in, unix/configure.in, unix/tcl.m4, + * unix/tclConfig.sh.in, unix/dltest/Makefile.in: + Remove ${DBGX}, ${TCL_DBGX} from Tcl build system [Patch 1081595]. + * unix/configure: regenerated + +2005-01-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * unix/tclUnixFCmd.c (TclUnixCopyFile): Convert u_int to unsigned to + make clashes with types in standard C headers less of a problem. [Bug + 1098829] + +2005-01-09 Joe English <jenglish@users.sourceforge.net> + + * unix/tclUnixThrd.c, unix/tclUnixPort.h: Remove readdir_r() and + related #ifdeffery (see [Bug 1095909]). + * unix/tcl.m4, unix/tclConfig.h.in: Don't check for HAVE_READDIR_R. + * unix/configure: Regenerated. + +2005-01-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * 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] + +2005-01-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * doc/lsearch.n, doc/re_syntax.n: Convert to other form of emacs mode + control comment to prevent problems with old versions of man. [Bug + 1085127] + +2005-01-05 Pat Thoyts <patthoyts@users.sourceforge.net> + + * tests/winDde.test: Fixed broken test result. + +2005-01-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> + + * generic/tclInt.h, generic/tclPort.h: Move the #include of tclConfig.h + *first* before any reference to tcl.h so that the build configuration + is loaded before the first reference to any system headers. Issue + reported by Art Haas on tcl-core. + +2005-01-04 Don Porter <dgp@users.sourceforge.net> + + * tests/fCmd.test (fCmd-18.10): Added notNetworkFilesystem constraint. + [Bug 456665] + + ****************************************************************** + *** 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" *** + ****************************************************************** |