summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2006-09-25 00:09:34 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2006-09-25 00:09:34 (GMT)
commit73f443f8404d853e80aaf0143c028ead42fdd19f (patch)
tree15ddd2e478403cde84aa083e6a3222c00afc7977
parentee372e0ed9868f69a64753ccad5555936df09fd3 (diff)
downloadtcl-73f443f8404d853e80aaf0143c028ead42fdd19f.zip
tcl-73f443f8404d853e80aaf0143c028ead42fdd19f.tar.gz
tcl-73f443f8404d853e80aaf0143c028ead42fdd19f.tar.bz2
Fix [Bug 1564677]
-rw-r--r--ChangeLog10421
-rw-r--r--generic/tclNotify.c2250
2 files changed, 6340 insertions, 6331 deletions
diff --git a/ChangeLog b/ChangeLog
index 98d98ad..d91ec0d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5208 +1,5213 @@
-2006-09-24 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclParse.c (Tcl_ParseCommand): also return an error if
- start==NULL and numBytes<0. This is coverity's bug #20
-
- * generic/tclStringObj.c (STRING_SIZE): fix allocation for
- 0-length strings. This is coverity's bugs #54-5
-
-2006-09-22 Andreas Kupries <andreask@activestate.com>
-
- * generic/tclInt.h: Moved TIP#268's field 'packagePrefer' to the
- end of the structure, for better backward compatibility.
-
-2006-09-22 Andreas Kupries <andreask@activestate.com>
-
- TIP#268 IMPLEMENTATION
-
- * generic/tclDecls.h: Regenerated from tcl.decls.
- * generic/tclStubInit.c:
-
- * doc/PkgRequire.3: Documentation of extended API,
- * doc/package.n: extended testsuite.
- * tests/pkg.test:
-
- * generic/tcl.decls: Implementation.
- * generic/tclBasic.c:
- * generic/tclConfig.c:
- * generic/tclInt.h:
- * generic/tclPkg.c:
- * generic/tclTest.c:
- * generic/tclTomMathInterface.c:
- * library/init.tcl:
- * library/package.tcl:
- * library/tm.tcl:
-
-2006-09-22 Donal K. Fellows <donal.k.fellows@man.ac.uk>
-
- * generic/tclThreadTest.c (TclCreateThread): Use NULL instead of 0 as
- end-of-strings marker to Tcl_AppendResult; the difference matters on
- 64-bit machines. [Bug 1562528]
-
-2006-09-21 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclUtil.c: Dropped ParseInteger() routine.
- TclParseNumber covers the task just fine.
-
-2006-09-19 Donal K. Fellows <dkf@users.sf.net>
-
- * generic/tclEvent.c (Tcl_VwaitObjCmd): Rewrite so that an exceeded
- limit trapped in a vwait cannot cause a dangerous dangling trace.
-
-2006-09-19 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclExecute.c (INST_EXPON): Native type overflow detection
- * tests/expr.test: was completely broken. Falling back on use of
- bignums for all non-trivial ** calculations until
- native-type-constrained special cases can be done carefully and
- correctly. [Bug 1561260].
-
-2006-09-15 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/http/http.tcl: Change " " -> "+" url encoding mapping
- * library/http/pkgIndex.tcl: to " " -> "%20" as per RFC 3986.
- * tests/http.test (http-5.1): bump http to 2.5.3
- * unix/Makefile.in:
- * win/Makefile.in:
-
-2006-09-12 Andreas Kupries <andreask@activestate.com>
-
- * unix/configure.in (HAVE_MTSAFE_GETHOST*): Modified to recognize
- HP-UX 11.00 and beyond as having mt-safe implementations of the
- gethost functions.
- * unix/configure: Regenerated, using autoconf 2.59
-
- * unix/tclUnixCompat.c (PadBuffer): Fixed bug in calculation of
- the increment needed to align the pointer, and added
- documentation explaining why the macro is implemented as it is.
-
-2006-09-11 Pat Thoyts <patthoyts@users.sourceforge.net>
-
- * win/rules.vc: Updated to install http, tcltest and msgcat as
- * win/makefile.vc: Tcl Modules (as per Makefile.in).
- * win/makefile.vc: Added tommath_(super)class headers.
-
-2006-09-11 Andreas Kupries <andreask@activestate.com>
-
- * unix/Makefile.in (install-libraries): Fixed typo tcltest 2.3.9 -> 2.3.0.
-
-2006-09-11 Daniel Steffen <das@users.sourceforge.net>
-
- * unix/tclUnixCompat.c: make compatLock static and only declare it when
- it will actually be used; #ifdef parts of TSD that are not always
- needed; adjust #ifdefs to cover all possible cases; fix whitespace.
-
-2006-09-11 Andreas Kupries <andreask@activestate.com>
-
- * tests/msgcat.test: Bumped version in auxiliary files as well.
- * doc/msgcat.n:
-
-2006-09-11 Kevin Kenny <kennykb@acm.org>
-
- * unix/Makefile.in: Bumped msgcat version to 1.4.2 to be
- * win/Makefile.in: consistent with dgp's commits of 2006-09-10.
-
-2006-09-11 Don Porter <dgp@users.sourceforge.net>
-
- * library/msgcat/msgcat.tcl: Removed some unneeded [uplevel]s.
-
-2006-09-10 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclExecute.c: Corrected INST_EXPON flaw that treated
- * tests/expr.test: $x**1 as $x**3. [Bug 1555371]
-
- * doc/tcltest.n: Bump to version tcltest 2.3.0 to account
- * library/tcltest/pkgIndex.tcl: for new "-verbose line" feature.
- * library/tcltest/tcltest.tcl:
- * unix/Makefile.in:
- * win/Makefile.in:
- * win/makefile.bc:
- * win/makefile.vc:
-
- * library/msgcat/msgcat.tcl: Bump to version msgcat 1.4.2 to account
- * library/msgcat/pkgIndex.tcl: for modifications.
-
-2006-09-10 Daniel Steffen <das@users.sourceforge.net>
-
- * library/msgcat/msgcat.tcl (msgcat::Init): on Darwin, add fallback of
- * tests/msgcat.test: default msgcat locale to
- * unix/tclUnixInit.c (TclpSetVariables): current CFLocale identifier
- if available (via private ::tcl::mac::locale global, set at interp init
- when on Mac OS X 10.3 or later with CoreFoundation).
-
- * library/tcltest/tcltest.tcl: add 'line' verbose level: prints source
- * doc/tcltest.n: file line information of failing tests.
-
- * macosx/Tcl.xcodeproj/project.pbxproj: add new tclUnixCompat.c file;
- revise tests target to use new tcltest 'line' verbose level.
-
- * unix/configure.in: add descriptions to new AC_DEFINEs for MT-safe.
- * unix/tcl.m4: add caching to new SC_TCL_* macros for MT-safe wrappers.
- * unix/configure: autoconf-2.59
- * unix/tclConfig.h.in: autoheader-2.59
-
-2006-09-08 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
-
- * unix/tclUnixCompat.c: Added fallback to gethostbyname()
- and gethostbyaddr() if the implementation is known to be
- MT-safe (currently for Darwin 6 or later only).
-
- * unix/configure.in: Assume gethostbyname() and gethostbyaddr()
- are MT-safe starting with Darwin 6 (Mac OSX 10.2).
-
- * unix/configure: Regenerated with autoconf V2.59
-
-2006-09-08 Andreas Kupries <andreask@activestate.com>
-
- * unix/tclUnixCompat.c: Fixed conditions for CopyArray/CopyString,
- and CopyHostent. Also fixed bad var names in TclpGetHostByName.
-
-2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
-
- * unix/tclUnixCompat.c: Added fallback to MT-unsafe
- library calls if TCL_THREADS is not defined.
- Fixed alignment of arrays copied by CopyArrayi() to be
- on the sizeof(char *) boundary.
-
-2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
-
- * unix/tclUnixChan.c Rewritten MT-safe wrappers to
- * unix/tclUnixCompat.c return ptrs to TSD storage
- * unix/tclUnixFCmd.c making them all look like their
- * unix/tclUnixPort.h MT-unsafe pendants API-wise.
- * unix/tclUnixSock.c
-
-2006-09-06 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
-
- * unix/tclUnixChan.c: Added TCL_THREADS ifdef'ed usage
- * unix/tclUnixFCmd.c: of MT-safe calls like:
- * unix/tclUnixSock.c: getpwuid, getpwnam, getgrgid, getgrnam,
- * unix/tclUnixPort.h: gethostbyname and gethostbyaddr.
- * unix/Makefile.in: See Tcl Bug: 999544
- * unix/configure.in:
- * unix/tcl.m4:
- * unix/configure: Regenerated.
-
- * unix/tclUnixCompat.c: New file containing MT-safe implementation
- of some library calls.
-
-2006-09-04 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclCompExpr.c: Removed much complexity that is
- no longer needed.
-
- * tests/main.text (Tcl_Main-4.4): Test corrected to not be
- timing sensitive to the Bug 1481986 fix. [Bug 1550858]
-
-2006-09-04 Jeff Hobbs <jeffh@ActiveState.com>
-
- * doc/package.n: correct package example
-
-2006-08-31 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclCompExpr.c: Corrected flawed logic for
- disabling the INST_TRY_CVT_TO_NUMERIC instruction at the end
- of an expression when function arguments contain operators.
- [Bug 1541274]
-
- * tests/expr-old.test: The remaining failing tests reported in
- * tests/expr.test: [Bug 1381715] are all new in Tcl 8.5, so
- there's really no issue of compatibility with Tcl 8.4 result to
- deal with. Fixed by updating tests to expect 8.5 results.
-
-2006-08-29 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclParseExpr.c: Dropped the old expr parser.
-
-2006-08-30 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tclBasic.c (Tcl_CreateInterp): init iPtr->threadId
-
- * win/tclWinChan.c [Bug 819667] Improve logic for identifying COM
- ports.
-
- * generic/tclIOGT.c (ExecuteCallback):
- * generic/tclPkg.c (Tcl_PkgRequireEx): replace Tcl_GlobalEval(Obj)
- with more efficient Tcl_Eval(Obj)Ex
-
- * unix/Makefile.in (valgrindshell): add valgrindshell target and
- update default VALGRINDARGS. User can override, or add to it with
- VALGRIND_OPTS env var.
-
- * generic/tclFileName.c (DoGlob): match incrs with decrs.
-
-2006-08-29 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclParseExpr.c: Use the "parent" field of
- orphan ExprNodes to store the closure of left pointers. This
- lets us avoid repeated re-scanning leftward for the left
- boundary of subexpressions, which in worst case led to near
- O(N^2) runtime.
-
-2006-08-29 Joe Mistachkin <joe@mistachkin.com>
-
- * unix/tclUnixInit.c: Fixed the issue (typo) that was causing
- * unix/tclUnixThrd.c (TclpThreadGetStackSize): stack.test to
- fail on FreeBSD (and possibly other Unix platforms).
-
-2006-08-29 Colin McCormack <coldstore@users.sourceforge.net>
-
- * generic/tclIOUtil.c: Added test for NULL return
- * generic/tclPathObj.c: from Tcl_FSGetNormalizedPath
- * unix/tclUnixFile.c: which was causing segv's per
- * win/tclWinFCmd.c: Bug 1548263
- * win/tclWinFile.c:
-
-2006-08-28 Kevin Kenny <kennykb@acm.org>
-
- * library/tzdata/America/Havana: Regenerated from Olson's
- * library/tzdata/America/Tegucigalpa: tzdata2006k.
- * library/tzdata/Asia/Gaza:
-
-2006-08-28 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclStringObj.c: Revised ObjPrintfVA to take care
- * generic/tclParseExpr.c: to copy only whole characters when
- doing %s formatting. This relieves callers of TclObjPrintf() and
- TclFormatToErrorInfo() from needing to fix arguments to character
- boundaries. Tcl_ParseExpr() simplified by taking advantage.
- [Bug 1547786]
-
- * generic/tclStringObj.c: Corrected TclFormatObj's failure
- to count up the number of arguments required by examining the
- format string. [Bug 1547681]
-
-2006-08-27 Joe Mistachkin <joe@mistachkin.com>
-
- * generic/tclClock.c (ClockClicksObjCmd): Fix nested macro breakage
- with TCL_MEM_DEBUG enabled. [Bug 1547662]
-
-2006-08-26 Miguel Sofer <msofer@users.sf.net>
-
- * doc/namespace.n:
- * generic/tclNamesp.c:
- * tests/upvar.test: bugfix, docs clarification and new tests for
- [namespace upvar] as follow up to [Bug 1546833], reported by Will
- Duquette.
-
-2006-08-24 Kevin Kenny <kennykb@acm.org>
-
- * library/tzdata: Regenerated, including several new files,
- from Olson's tzdata2006j.
- * library/clock.tcl:
- * tests/clock.test: Removed an early testing hack that allowed
- loading 'registry' from the build tree rather than an installed
- one. This is a workaround for [Bug 15232730], which remains open
- because it's a symptom of a deeper underlying problem.
-
-2006-08-23 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclParseExpr.c: Minimal collection of new tests
- * tests/parseExpr.test: testing the error messages of the
- new expr parser. Several bug fixes and code simplifications that
- appeared during that effort.
-
-2006-08-21 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclIOUtil.c: Revisions to complete the thread finalization
- of the cwdPathPtr. [Bug 1536142]
-
- * generic/tclParseExpr.c: Revised mistaken call to
- TclCheckBadOctal(), so both [expr 08] and [expr 08z] have same
- additional info in error message.
-
- * tests/compExpr-old.test: Update existing tests to not fail
- * tests/compExpr.test: with the new expr parser.
- * tests/compile.test:
- * tests/expr-old.test:
- * tests/expr.test:
- * tests/for.test:
- * tests/if.test:
- * tests/parseExpr.test:
- * tests/while.test:
-
-2006-08-21 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * win/Makefile.in (gdb): Make this target work so that debugging an
- msys build is possible.
-
-2006-08-21 Daniel Steffen <das@users.sourceforge.net>
-
- * macosx/tclMacOSXNotify.c (Tcl_WaitForEvent): if the run loop is
- already running (e.g. if Tcl_WaitForEvent was called recursively),
- re-run it in a custom run loop mode containing only the source for the
- notifier thread, otherwise wakeups from other sources added to the
- common run loop modes might get lost.
-
- * unix/tclUnixNotfy.c (Tcl_WaitForEvent): on 64-bit Darwin,
- pthread_cond_timedwait() appears to have a bug that causes it to wait
- forever when passed an absolute time which has already been exceeded by
- the system time; as a workaround, when given a very brief timeout, just
- do a poll on that platform. [Bug 1457797]
-
- * generic/tclClock.c (ClockClicksObjCmd): add support for Darwin
- * generic/tclCmdMZ.c (Tcl_TimeObjCmd): nanosecond resolution timer
- * generic/tclInt.h: to [clock clicks] and [time]
- * unix/configure.in (Darwin): when TCL_WIDE_CLICKS defined.
- * unix/tclUnixTime.c (TclpGetWideClicks, TclpWideClicksToNanoseconds):
- * unix/configure: autoconf-2.59
- * unix/tclConfig.h.in: autoheader-2.59
-
- * unix/tclUnixPort.h (Darwin): override potentially faulty configure
- detection of termios availability in all cases, since termios is known
- to be present on all Mac OS X releases since 10.0. [Bug 497147]
-
-2006-08-18 Daniel Steffen <das@users.sourceforge.net>
-
- * unix/tcl.m4 (Darwin): add support for --enable-64bit on x86_64, for
- universal builds including x86_64, for 64-bit CoreFoundation on Leopard
- and for use of -mmacosx-version-min instead of MACOSX_DEPLOYMENT_TARGET
- * unix/configure: autoconf-2.59
- * unix/tclConfig.h.in: autoheader-2.59
-
- * generic/tcl.h: add fixes for building on Leopard and support
- * unix/tclUnixPort.h: for 64-bit CoreFoundation on Leopard.
- * macosx/tclMacOSXFCmd.c:
-
- * unix/tclUnixPort.h: on Darwin x86_64, disable use of vfork as it
- causes execve to fail intermittently. (rdar://4685553)
-
- * generic/tclTomMath.h: on Darwin 64-bit, for now disable use of
- 128-bit arithmetic through __attribute__ ((mode(TI))), as it leads to
- link errors due to missing fallbacks. (rdar://4685527)
-
- * macosx/Tcl.xcodeproj/project.pbxproj: add x86_64 to universal build,
- switch native release targets to use DWARF with dSYM, Xcode 3.0 changes
- * macosx/README: updates for x86_64 and Xcode 2.4.
-
- * macosx/Tcl.xcodeproj/default.pbxuser: add test suite target that runs
- * macosx/Tcl.xcodeproj/project.pbxproj: the tcl test suite at build
- time and shows clickable test suite errors in the GUI build window.
-
- * tests/macOSXFCmd.test: fix use of deprecated resource fork paths.
-
- * unix/tclUnixInit.c (TclpInitLibraryPath): move code that is only
- needed when TCL_LIBRARY is defined to run only in that case.
-
- * generic/tclLink.c (LinkTraceProc): fix 64-bit signed-with-unsigned
- comparison warning from gcc4 -Wextra.
-
- * unix/tclUnixChan.c (TclUnixWaitForFile): with timeout < 0, if
- select() returns early (e.g. due to a signal), call it again instead of
- returning a timeout result. Fixes intermittent event-13.8 failures.
-
-2006-08-17 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclCompile.c: Revised the new set of expression parse
- * generic/tclParseExpr.c: error messages.
-
-2006-08-16 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclParseExpr.c: Replace PrecedenceOf() function with
- prec[] static array.
-
-2006-08-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * library/clock.tcl (::tcl::clock::add): Added missing braces to
- clockval validation code. Pointed out on comp.lang.tcl.
-
-2006-08-11 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * generic/tclNamesp.c: Improvements in buffer management to make
- namespace creation faster. Plus selected other minor improvements to
- code quality. [Patch 1352382]
-
-2006-08-10 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- Misc patches to make code more efficient. [Bug 1530474] (afredd)
- * generic/*.c, macosx/tclMacOSXNotify.c, unix/tclUnixNotfy.c,
- * win/tclWinThrd.c: Tidy up invokations of Tcl_Panic() to promote
- string constant sharing and consistent style.
- * generic/tclBasic.c (Tcl_CreateInterp): More efficient handling of
- * generic/tclClock.c (TclClockInit): registration of commands not
- in global namespace.
- * generic/tclVar.c (Tcl_UnsetObjCmd): Remove unreachable clause.
-
-2006-08-09 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclEncoding.c: Replace buffer copy in for loop
- with call to memcpy(). Thanks to afredd. [Patch 1530262]
-
-2006-08-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * generic/tclCmdIL.c (Tcl_LassignObjCmd): Make the wrong#args message a
- bit more consistent with those used elsewhere. [Bug 1534628]
-
- * generic/tclDictObj.c (DictForCmd): Stop crash when attempting to
- iterate over an invalid dictionary. [Bug 1531184]
-
- * doc/ParseCmd.3, doc/expr.n, doc/set.n, doc/subst.n, doc/switch.n:
- * doc/tclvars.n: Ensure that uses of [expr] in documentation examples
- are also good style (with braces) unless otherwise necessary. [Bug
- 1526581]
-
-2006-08-03 Daniel Steffen <das@users.sourceforge.net>
-
- * unix/tclUnixPipe.c (TclpCreateProcess): for USE_VFORK: ensure
- standard channels are initialized before vfork() so that the child
- doesn't potentially corrupt global state in the parent's address space.
-
- * tests/compExpr-old.test: add 'oldExprParser' constraint to all tests
- * tests/compExpr.test: that depend on the exact format of the error
- * tests/compile.test: messages of the pre-2006-07-05 expression
- * tests/expr-old.test: parser. The constraint is on by default (i.e
- * tests/expr.test: those tests still fail), but can be turned
- * tests/for.test: off by passing '-constraints newExprParser'
- * tests/if.test: to tcltest, which will skip the 196 failing
- * tests/parseExpr.test: tests in the testsuite that are caused by
- * tests/while.test: the new expression parser error messages.
-
-2006-07-31 Kevin Kenny <kennykb@acm.org>
-
- * generic/tclClock.c (ConvertLocalToUTCUsingC): Corrected a regression
- that caused dates before 1969 to be one day off in the :localtime time
- zone if TZ is not set. [Bug 1531530]
-
-2006-07-30 Kevin Kenny <kennykb@acm.org>
-
- * generic/tclClock.c (GetJulianDayFromEraYearMonthDay): Corrected
- several errors in converting dates before the Common Era. [Bug 1426279]
- * library/clock.tcl: Corrected syntax errors in generated code for %EC,
- %Ey, and %W format groups [Bug 1505383]. Corrected a bug in cache
- management for format strings containing [glob] metacharacters [Bug
- 1494664]. Corrected several errors in formatting/scanning of years
- prior to the Common Era, and added the missing %EE format group to
- indicate the era.
- * tools/makeTestCases.tcl: Added code to make sure that %U and %V
- format groups are included in the tests. (The code depends on %U and %V
- formatting working correctly when 'makeTestCases.tcl' is run, rather
- than making a completely independent check.) Added tests for [glob]
- metacharacters in strings. Added tests for years prior to the Common
- Era.
- * tests/clock.test: Rebuilt with new test cases for all the above.
-
-2006-07-30 Joe English <jenglish@users.sourceforge.net>
-
- * doc/AppInit.3: Fix typo [Bug 1496886]
-
-2006-07-26 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclExecute.c: Corrected flawed overflow detection in
- * tests/expr.test: INST_EXPON that caused [expr 2**64] to return 0
- instead of the same value as [expr 1<<64].
-
-2006-07-24 Don Porter <dgp@users.sourceforge.net>
-
- * win/tclWinSock.c: Correct un-initialized Tcl_DString. Thanks to
- afredd. [Bug 1518166]
-
-2006-07-21 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclExecute.c:
- * tests/execute.test (execute-9.1): dgp's fix for [Bug 1522803].
-
-2006-07-20 Daniel Steffen <das@users.sourceforge.net>
-
- * macosx/tclMacOSXNotify.c (Tcl_InitNotifier, Tcl_WaitForEvent): create
- notifier thread lazily upon first call to Tcl_WaitForEvent() rather
- than in Tcl_InitNotifier(). Allows calling exeve() in processes where
- the event loop has not yet been run (Darwin's execve() fails in
- processes with more than one thread), in particular allows embedders to
- call fork() followed by execve(), previously the pthread_atfork() child
- handler's call to Tcl_InitNotifier() would immediately recreate the
- notifier thread in the child after a fork.
-
- * macosx/tclMacOSXFCmd.c (TclMacOSXCopyFileAttributes): add support
- * macosx/tclMacOSXNotify.c (Tcl_InitNotifier): for weakly
- * unix/tclUnixInit.c (Tcl_GetEncodingNameFromEnvironment): importing
- symbols not available on OSX 10.2 or 10.3, enables binaires built on
- later OSX versions to run on earlier ones.
- * macosx/Tcl.xcodeproj/project.pbxproj: enable weak-linking; turn on
- extra warnings.
- * macosx/README: document how to enable weak-linking; cleanup.
- * unix/tclUnixPort.h: add support for weak-linking; conditionalize
- AvailabilityMacros.h inclusion; only disable realpath on 10.2 or earlier
- when threads are enabled.
- * unix/tclLoadDyld.c (TclpLoadMemoryGetBuffer): change runtime Darwin
- * unix/tclUnixInit.c (TclpInitPlatform): release check to use
- global initialized once.
- * unix/tclUnixFCmd.c (DoRenameFile, TclpObjNormalizePath): add runtime
- Darwin release check to determine if realpath is threadsafe.
- * unix/configure.in: add check on Darwin for compiler support of weak
- * unix/tcl.m4: import and for AvailabilityMacros.h header;
- move Darwin specific checks & defines that are only relevant to the tcl
- build out of tcl.m4; restrict framework option to Darwin; cleanup
- quoting and help messages.
- * unix/configure: autoconf-2.59
- * unix/tclConfig.h.in: autoheader-2.59
-
- * generic/regc_locale.c (cclass):
- * generic/tclExecute.c (TclExecuteByteCode):
- * generic/tclIOCmd.c (Tcl_ExecObjCmd):
- * generic/tclListObj.c (NewListIntRep):
- * generic/tclObj.c (Tcl_GetLongFromObj, Tcl_GetWideIntFromObj,
- FreeBignum, Tcl_SetBignumObj):
- * generic/tclParseExpr.c (Tcl_ParseExpr):
- * generic/tclStrToD.c (TclParseNumber):
- * generic/tclStringObj.c (TclAppendFormattedObjs):
- * unix/tclLoadDyld.c (TclpLoadMemory):
- * unix/tclUnixPipe.c (TclpCreateProcess): fix signed-with-unsigned
- comparison and other warnings from gcc4 -Wextra.
-
-2006-07-13 Andreas Kupries <andreask@activestate.com>
-
- * unix/tclUnixPort.h: Added the inclusion of <AvailabilityMacros.h>.
- The missing header caused the upcoming #if conditions to wrongly
- exclude realpath, causing file normalize to ignore symbolic links in
- the path.
-
-2006-07-11 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
-
- * generic/tclAsync.c: Made Tcl_AsyncDelete() more tolerant when called
- after all thread TSD has been garbage-collected.
-
-2006-07-05 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclParseExpr.c: Completely new expression parser that
- builds a parse tree instead of operating with deep recursion. This
- corrects reports of stack-blowing crashes parsing long expressions [Bug
- 906201] and replaces a fundamentally O(N^2) algorithm with an O(N) one
- [RFE 903765]. The new parser is better able to generate error messages
- that clearly report both the nature and context of the syntax error
- [Bugs 1029267, 1381715]. For now, the code for the old parser is still
- present and can be activated with a "#define OLD_EXPR_PARSER 1". This
- is for the sake of a clean implementation patch, and for ease of
- benchmarking. The new parser is non-recursive, so much lighter in stack
- consumption, but it does use more heap, so there may be cases where
- parsing of long expressions that succeeded with the old parser will
- lead to out of memory panics with the new one. There are still more
- improvements possible on that point, though significant progress may
- require changes to the Tcl_Token specifications documented for the
- public Tcl_Parse*() routines.
- ***POTENTIAL INCOMPATIBILITY*** for any callers that rely on the exact
- (usually terrible) error messages generated by the old parser. This
- includes a large number of tests in the test suite.
-
- * generic/tclInt.h: Replaced TclParseWhiteSpace() with
- * generic/tclParse.c: TclParseAllWhiteSpace() which is what
- * generic/tclParseExpr.c: all the callers really needed. Breaking
- whitespace runs at newlines is useful only to the command parsing
- function, and it can call the file scoped routine ParseWhiteSpace() to
- do that.
-
- * tests/expr-old.test: Removed knownBug constraints that masked
- * tests/expr.test: failures due to revised error messages.
- * tests/parseExpr.test:
-
-2006-06-20 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclIOUtil.c: Changed default configuration to
- * generic/tclInt.decls: #undef USE_OBSOLETE_FS_HOOKS which disables
- * generic/tclTest.c: access to the Tcl 8.3 internal routines for
- hooking into filesystem operations. Everyone ought to have migrated to
- Tcl_Filesystems by now.
- ***POTENTIAL INCOMPATIBILITY*** for any code still stuck in the
- pre-Tcl_Filesystem era.
-
- * generic/tclIntDecls.h: make genstubs
- * generic/tclStubInit.c:
-
- * generic/tclStrToD.c: Removed dead code that permitted disabling of
- recognition of the new 0b and 0o numeric formats.
-
- * generic/tclExecute.c: Removed dead code that implemented alternative
- * generic/tclObj.c: design where numeric values did not
- automatically narrow to the smallest Tcl_ObjType required to hold them.
-
- * generic/tclCmdAH.c: Removed dead code that was old implementation
- of [format].
-
-2006-06-14 Daniel Steffen <das@users.sourceforge.net>
-
- * unix/tclUnixPort.h (Darwin): support for MAC_OS_X_VERSION_MAX_ALLOWED
- define from AvailabilityMacros.h: override configure detection and only
- use API available in the indicated OS version or earlier.
-
-2006-06-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * doc/format.n, doc/scan.n: Added examples for converting between
- characters and their numeric interpretations following user prompting.
-
-2006-06-13 Donal K. Fellows <dkf@users.sf.net>
-
- * unix/tclLoadDl.c (TclpDlopen): Workaround for a compiler bug in Sun
- Forte 6. [Bug 1503729]
-
-2006-06-06 Don Porter <dgp@users.sourceforge.net>
-
- * doc/GetStdChan.3: Added recommendation that each call to
- Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel().
-
-2006-06-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * doc/Alloc.3: Added documentation of promise that Tcl_Realloc(NULL,x)
- is the same as Tcl_Alloc(x), as discussed in comp.lang.tcl. Also fixed
- nonsense sentence to say something meaningful.
-
-2006-05-29 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tcl.h (Tcl_DecrRefCount): use if/else construct to allow
- placement in unbraced outer if/else conditions. (jcw)
-
-2006-05-27 Daniel Steffen <das@users.sourceforge.net>
-
- * macosx/tclMacOSXNotify.c: implemented pthread_atfork() handler that
- * unix/tcl.m4 (Darwin): recreates CoreFoundation state and notifier
- thread in the child after a fork(). Note that pthread_atfork is
- available starting with Tiger only. Because vfork() is used by the core
- on Darwin, [exec]/[open] are not affected by this fix, only extensions
- or embedders that call fork() directly (such as TclX). However, this
- only makes fork() safe from corefoundation tcl with --disable-threads;
- as on all platforms, forked children may deadlock in threaded tcl due
- to the potential for stale locked mutexes in the child. [Patch 923072]
-
- * unix/configure: autoconf-2.59
- * unix/tclConfig.h.in: autoheader-2.59
-
-2006-05-24 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * unix/tcl.m4 (SC_CONFIG_SYSTEM): Fixed quoting of command script to
- awk; it was a rarely used branch, but it was wrong. [Bug 1494160]
-
-2006-05-23 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * doc/chan.n, doc/refchan.n: Tighten up the documentation to follow a
- slightly more consistent style with regard to argument capitalization.
-
-2006-05-13 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclProc.c (ProcCompileProc): When a bump of the compile epoch
- forces the re-compile of a proc body, take care not to overwrite any
- Proc struct that may be referred to on the active call stack. This
- fixes [Bug 1482718]. Note that the fix will not be effective for code
- that calls the private routine TclProcCompileProc() directly.
-
-2006-05-13 Daniel Steffen <das@users.sourceforge.net>
-
- * generic/tclEvent.c (HandleBgErrors): fix leak. [Coverity issue 86]
-
-2006-05-05 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclMain.c (Tcl_Main): Corrected flaw that required
- * tests/main.test: (Tcl_Main-4.5): processing of one interactive
- command before passing control to the loop routine registered with
- Tcl_SetMainLoop() [Bug 1481986].
-
-2006-05-04 Don Porter <dgp@users.sourceforge.net>
-
- * README: Bump version number to 8.5a5
- * generic/tcl.h:
- * tools/tcl.wse.in:
- * unix/configure.in:
- * unix/tcl.spec:
- * win/README.binary:
- * win/configure.in:
-
- * unix/configure: autoconf-2.59
- * win/configure:
-
- * generic/tclBasic.c (ExprSrandFunc): Restore acceptance of wide/big
- * doc/mathfunc.n: integer values by srand() [Bug 1480509].
-
-2006-04-26 Don Porter <dgp@users.sourceforge.net>
-
- *** 8.5a4 TAGGED FOR RELEASE ***
-
- * changes: Updates for another RC.
-
- * generic/tclBinary.c: Revised the handling of the Q and q format
- * generic/tclInt.h: specifiers for [binary] to account for the
- * generic/tclStrToD.c: "middle endian" floating point format used in
- Nokia N770.
-
-2006-04-25 Don Porter <dgp@users.sourceforge.net>
-
- * doc/DoubleObj.3: More doc updates for TIP 237.
- * doc/expr.n:
- * doc/format.n:
- * doc/mathfunc.n:
- * doc/scan.n:
- * doc/string.n:
-
- * generic/tclScan.c: [scan $s %u] is documented to accept only
- * tests/scan.test: decimal formatted integers. Fixed to match.
-
-2006-04-19 Kevin B. Kenny <kennykb@acm.org>
-
- * generic/tclStrToD.c: Added code to support the "middle endian"
- floating point format used in the Nokia N770's software-based floating
- point. Thanks to Bruce Johnson for reporting this bug, originally on
- http://wiki.tcl.tk/15408.
- * library/clock.tcl: Fixed a bug with Daylight Saving Time and Posix
- time zone specifiers reported by Martin Lemburg in
- http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/9a8b15a4dfc0b7a0
- (and not at SourceForge).
- * tests/clock.test: Added test case for the above bug.
-
-2006-04-18 Donal K. Fellows <dkf@users.sf.net>
-
- * doc/IntObj.3: Minor review fixes, including better documentation of
- the behaviour of Tcl_GetBignumAndClearObj.
-
-2006-04-17 Don Porter <dgp@users.sourceforge.net>
-
- * doc/IntObj.3: Documentation changes to account for TIP 237 changes.
- * doc/Object.3: [Bug 1446971]
-
-2006-04-12 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * generic/regc_locale.c (cclass): Redefined the meaning of [:print:] to
- be exactly UNICODE letters, numbers, punctuation, symbols and spaces
- (*not* whitespace). [Bug 1376892]
-
-2006-04-11 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclTrace.c: Stop some interference between enter traces
- * tests/trace.test: and enterstep traces. [Bug 1458266]
-
-2006-04-07 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclPathObj.c: Yet another revised fix for the [Bug 1379287]
- * tests/fileSystem.test: family of path normalization bugs.
-
-2006-04-06 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tclRegexp.c (FinalizeRegexp): full reset data to indicate
- readiness for reinitialization.
-
-2006-04-06 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): It seems there
- * tests/indexObj.test: are extensions that rely on the prior behavior
- * doc/GetIndex.3: that the empty string cannot succeed as a
- unique prefix matcher, so I'm restoring Donal Fellows's solution. Added
- mention of this detail to the documentation. [Bug 1464039]
-
- * tests/compExpr-old.test: Updated testmathfunctions constraint
- * tests/compExpr.test: to post-TIP-232 world.
- * tests/expr-old.test:
- * tests/expr.test:
- * tests/info.test:
-
- * tests/indexObj.test: Corrected other test errors revealed by
- * tests/upvar.test: testing outside the tcltest application.
-
- * generic/tclPathObj.c: Revised fix for the [Bug 1379287] family of
- path normalization bugs.
-
-2006-04-06 Daniel Steffen <das@users.sourceforge.net>
-
- * unix/tcl.m4: removed TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING
- define on Darwin. [Bug 1457515]
- * unix/configure: autoconf-2.59
- * unix/tclConfig.h.in: autoheader-2.59
-
-2006-04-05 Don Porter <dgp@users.sourceforge.net>
-
- * win/tclWinInit.c: More careful calls to Tcl_DStringSetLength()
- * win/tclWinSock.c: to avoid creating invalid DString states.
- * win/tclWinDde.c: Bump to version 1.3.2. [RFE 1366195]
- * library/dde/pkgIndex.tcl:
-
- * library/reg/pkgIndex.tcl: Bump to registry 1.2 because
- * win/tclWinReg.c: Registry_Unload() is a new public routine
- * win/Makefile.in: compared to the 1.1.* releases.
-
- * win/configure.in: Bump package version numbers.
- * win/configure: autoconf 2.59
-
-2006-04-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Allow empty
- strings to be matched by the Tcl_GetIndexFromObj machinery, in the
- same manner as any other key. [Bug 1464039]
-
-2006-04-03 Andreas Kupries <andreask@activestate.com>
-
- * generic/tclIO.c (ReadChars): Added check, panic and commentary to a
- piece of code which relies on BUFFER_PADDING to create enough space at
- the beginning of each buffer for the insertion of partial multibyte
- data at the beginning of a buffer. Commentary explains why this code is
- OK, and the panic is as a precaution if someone twiddled the
- BUFFER_PADDING into uselessness.
-
- * generic/tclIO.c (ReadChars): [Bug 1462248]. Temporarily suppress the
- use of TCL_ENCODING_END set when EOF was reached while the buffer we
- are converting is not truly the last buffer in the queue. Together with
- the Utf bug below it was possible to completely wreck the buffer data
- structures, eventually crashing Tcl.
-
- * generic/tclEncoding.c (UtfToUtfProc): Stop accessing memory beyond
- the end of the input buffer when TCL_ENCODING_END is set and the last
- bytes of the buffer start a multi-byte sequence. This bug contributed
- to [Bug 1462248].
-
-2006-03-30 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclExecute.c: remove unused var and silence gcc warning
-
-2006-03-29 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/Makefile.in: convert _NATIVE paths to use / to avoid ".\"
- path-as-escape issue.
-
-2006-03-29 Don Porter <dgp@users.sourceforge.net>
-
- * changes: Updates for another RC.
-
- * generic/tclPathObj.c: More fixes for path normalization when /../
- * tests/fileSystem.test: tries to go beyond root.[Bug 1379287]
-
- * generic/tclExecute.c: Revised INST_MOD implementation to do
- calculations in native types as much as possible, moving to mp_ints
- only when necessary.
-
-2006-03-28 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tclWinPipe.c (TclpCreateProcess): change panics to Tcl errors and
- do proper refcounting of noe objPtr. [bug 1194429]
-
- * unix/tcl.m4, win/tcl.m4: []-quote AC_DEFUN functions.
-
-2006-03-28 Daniel Steffen <das@users.sourceforge.net>
-
- * macosx/Tcl.xcode/default.pbxuser: add '-singleproc 1' cli arg to
- * macosx/Tcl.xcodeproj/default.pbxuser: tcltest to ease test debugging
-
- * macosx/Tcl.xcode/project.pbxproj: removed $prefix/share from
- * macosx/Tcl.xcodeproj/project.pbxproj: TCL_PACKAGE_PATH as per change
- to unix/configure.in of 2006-03-13.
-
- * unix/tclUnixFCmd.c (TclpObjNormalizePath): deal with *BSD/Darwin
- realpath() converting relative paths into absolute paths. [Bug 1064247]
-
-2006-03-28 Vince Darley <vincentdarley@sourceforge.net>
-
- * generic/tclIOUtil.c: fix to nativeFilesystemRecord comparisons
- (lesser part of [Bug 1064247])
-
-2006-03-27 Pat Thoyts <patthoyts@users.sourceforge.net>
-
- * win/tclWinTest.c: Fixes for [Bug 1456373] (mingw-gcc issue)
-
-2006-03-27 Andreas Kupries <andreask@activestate.com>
-
- * doc/CrtChannel.3: Added TCL_CHANNEL_VERSION_5, made it the version
- * generic/tcl.h: where the "truncateProc" is defined at, and
- * generic/tclIO.c: moved all channel drivers of Tcl to v5.
- * generic/tclIOGT.c, generic/tclIORChan.c, unix/tclUnixChan.c:
- * unix/tclUnixPipe.c, win/tclWinChan.c, win/tclWinConsole.c:
- * win/tclWinPipe.c, win/tclWinSerial.c, win/tclWinSock.c:
-
-2006-03-27 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclExecute.c: Merge INST_MOD computation in with the
- INST_?SHIFT instructions, which also operate only on two integral
- values. Also corrected flaw that made INST_BITNOT of wide values
- require mp_int calculations. Also corrected type that missed optimized
- handling of the tclBooleanType by the TclGetBooleanFromObj macro.
-
- * changes: Updates for another RC.
-
-2006-03-25 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclExecute.c: Corrections to INST_EXPON detection of overflow
- to use mp_int calculations.
-
-2006-03-24 Kevin Kenny <kennykb@acm.org>
-
- * generic/tclExecute.c (TclExecuteByteCode): Added a couple of missing
- casts to 'int' that were affecting compilablity on VC6.
-
-2006-03-24 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclEncoding.c: Reverted latest change [Bug 506653] since it
- reportedly killed test performance on Windows.
-
- * generic/tclExecute.c: Revised INST_EXPON implementation to do
- calculations in native types as much as possible, moving to mp_ints
- only when necessary.
-
-2006-03-23 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclExecute.c: Merged INST_EXPON handling in with the other
- binary operators that operate on all number types (INST_ADD, etc.).
-
- * tests/env.test: With case preserved (see 2006-03-21 commit) be sure
- to do case-insensitive filtering. [Bug 1457065]
-
-2006-03-23 Reinhard Max <max@suse.de>
-
- * unix/tcl.spec: Cleaned up and completed the spec file. An RPM can now
- be built from the tcl source distribution with "rpmbuild -tb <tarball>"
-
-2006-03-22 Reinhard Max <max@suse.de>
-
- * tests/stack.test: Run the stack tests in subshells, so that they are
- reported as failed tests rather than bugs in the test suite if the
- recursion causes a segfault.
-
-2006-03-21 Don Porter <dgp@users.sourceforge.net>
-
- * changes: Updates for another RC.
-
- * generic/tclStrToD.c: One of the branches of AccumulateDecimalDigit
- * tests/parseExpr.test: did not. [Bug 1451233]
-
- * tests/env.test: Preserve case of saved env vars. [Bug 1409272]
-
-2006-03-21 Daniel Steffen <das@users.sourceforge.net>
-
- * generic/tclInt.decls: implement globbing for HFS creator & type
- * macosx/tclMacOSXFCmd.c:codes and 'hidden' flag, as documented in
- * tests/macOSXFCmd.test: glob.n; objectified OSType handling in [glob]
- * unix/tclUnixFile.c: and [file attributes]; fix globbing for
- hidden files with pattern==NULL arg. [Bug 823329]
- * generic/tclIntPlatDecls.h:
- * generic/tclStubInit.c: make genstubs
-
-2006-03-20 Andreas Kupries <andreask@activestate.com>
-
- * win/Makefile.in (install-libraries): Generate tcl8/8.4 directory
- under Windows as well (cygwin Makefile). Related entry: 2006-03-07,
- dgp. This moved the installation of http from 8.2 to 8.4, partially. A
- fix of the required directory creation was done for unix on Mar 10,
- without entry in the Changelog. This entry is for the fix of the
- directory creation under Windows.
-
- * unix/installManPage: There is always one even more broken "sed".
- Moved the # comment starting character in the sed script to the
- beginning of their respective lines. The AIX sed will not recognize
- them as comments otherwise :( The actual text stays indented for better
- association with the commands they belong to.
-
-2006-03-20 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * tests/cmdAH.test, tests/fCmd.test, tests/unixFCmd.test:
- * tests/winFCmd.test: Cleanup of some test constraint handling, and a
- few other minor issues.
-
-2006-03-18 Vince Darley <vincentdarley@sourceforge.net>
-
- * generic/tclFileName.c:
- * doc/FileSystem.3:
- * tests/fileName.test: Fix to [Bug 1084705] so that 'glob -nocomplain'
- finally agrees with its documentation and doesn't swallow genuine
- errors.
-
- ***POTENTIAL INCOMPATIBILITY*** for scripts that assumed '-nocomplain'
- removes the need for 'catch' to deal with non-understood path names.
-
- Small optimisation to implementation of pattern==NULL case of TclGlob,
- and clarification to the documentation. [Tclvfs bug 1405317]
-
-2006-03-18 Vince Darley <vincentdarley@sourceforge.net>
-
- * tests/fCmd.test: added knownBug test case for [Bug 1394972]
-
- * tests/winFCmd.test:
- * tests/tcltest.test: corrected tests to better account for behaviour
- of writable/non-writable directories on Windows 2000/XP. This, with the
- previous patches, closes [Bug 1193497]
-
-2006-03-17 Andreas Kupries <andreask@activestate.com>
-
- * doc/chan.n: Updated with documentation for the commands 'chan create'
- and 'chan postevent' (TIP #219).
-
- * doc/refchan.n: New file. Documentation of the command handler API for
- reflected channels (TIP #219).
-
-2006-03-17 Joe Mistachkin <joe@mistachkin.com>
-
- * unix/tclUnixPort.h: Include pthread.h prior to pthread_np.h [Bug
- 1444692]
-
- * win/tclWinTest.c: Corrected typo of 'initializeMutex' that prevented
- successful compilation.
-
-2006-03-16 Andreas Kupries <andreask@activestate.com>
-
- * doc/open.n: Documented the changed behaviour of 'a'ppend mode.
-
- * tests/io.test (io-43.1 io-44.[1234]): Rewritten to be self-contained
- with regard to setup and cleanup. [Bug 681793].
-
- * generic/tclIOUtil.c (TclGetOpenMode): Added the flag O_APPEND to the
- list of POSIX modes used when opening a file for 'a'ppend. This
- enables the proper automatic seek-to-end-on-write by the OS. See [Bug
- 680143] for longer discussion.
-
- * tests/ioCmd.test (iocmd-13.7.*): Extended the testsuite to check the
- new handling of 'a'.
-
-2006-03-15 Andreas Kupries <andreask@activestate.com>
-
- * tests/socket.test: Extended the timeout in socket-11.11 from 10 to 40
- seconds to allow for really slow machines. Also extended
- actual/expected results with value of variable 'done' to make it
- clearer when a test fails due to a timeout. [Bug 792159].
-
-2006-03-15 Vince Darley <vincentdarley@sourceforge.net>
-
- * win/fCmd.test: add proper test constraints so the new tests don't run
- on Unix.
-
-2006-03-14 Andreas Kupries <andreask@activestate.com>
-
- * generic/tclPipe.c (TclCreatePipeline): Modified the processing of
- pipebars to fail if the last bar is followed only by redirections. [Bug
- 768659]
-
-2006-03-14 Andreas Kupries <andreask@activestate.com>
-
- * doc/fconfigure.n: Clarified that -translation is binary is reported
- as lf when queried, because it is identical to lf, except for the
- special additional behaviour when setting it. [Bug 666770].
-
-2006-03-14 Andreas Kupries <andreask@activestate.com>
-
- * doc/clock.n: Removed double-quotes around section title NAME; not
- needed.
- * unix/installManpage: Reverted part to handle double-quotes in section
- NAME, chokes older sed installations.
-
-2006-03-14 Andreas Kupries <andreask@activestate.com>
-
- * library/tm.tcl (::tcl::tm::Defaults): Fixed handling of environment
- variable TCLX.y_TM_PATH, bad variable reference. [Bug 1448251]. Thanks
- to Julian Noble.
-
-2006-03-14 Vince Darley <vincentdarley@sourceforge.net>
-
- * win/tclWinFile.c: updated patch to deal with 'file writable' issues
- on Windows XP/2000.
- * generic/tclTest.c:
- * unix/tclUnixTest.c:
- * win/tclWinTest.c:
- * tests/fCmd.test: updated test suite to deal with correct permissions
- setting and differences between XP/2000 and 95/98 3 tests still fail;
- to be dealt with shortly
-
-2006-03-13 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclEncoding.c: Report error when an escape encoding is
- missing one of its sub-encodings [Bug 506653].
-
- * unix/configure.in: Revert change from 2005-07-26 that sometimes
- * unix/configure: added $prefix/share to the tcl_pkgPath. See
- [Patch 1231015]. autoconf-2.59.
-
-2006-03-10 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclProc.c (ObjInterpProcEx):
- * tests/apply.test (apply-5.1): Fix [apply] error messages so that they
- quote the lambda expression [Bug 1447355].
-
-2006-03-10 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
-
- -- Summary of changes fixing [Bug 1437595] --
-
- * generic/tclEvent.c: Cosmetic touches and identation
- * generic/tclInt.h: Added TclpFinalizeSockets() call.
-
- * generic/tclIO.c: Calls TclpFinalizeSockets() as part of the
- TclFinalizeIOSubsystem().
-
- * unix/tclUnixSock.c: Added no-op TclpFinalizeSockets().
-
- * win/tclWinPipe.c, win/tclWinSock.c: Finalization of sockets/pipes is
- now solely done in TclpFinalizeSockets() and TclpFinalizePipes() and
- not over the thread-exit handler, because the order of actions the Tcl
- generic core will impose may result in cores/hangs if the thread exit
- handler tears down corresponding subsystem(s) too early.
-
-2006-03-10 Vince Darley <vincentdarley@sourceforge.net>
-
- * win/tclWinFile.c: previous patch breaks tests, so removed.
-
-2006-03-09 Vince Darley <vincentdarley@sourceforge.net>
-
- * win/tclWinFile.c: fix to 'file writable' in certain XP directories.
- Thanks to fvogel and jfg. [Patch 1344540] Modified patch to make use of
- existing use of getSecurityProc.
-
-2006-03-08 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclExecute.c: Complete missing bit of TIP 215 implementation
- * tests/incr.test:
-
-2006-03-07 Joe English <jenglish@users.sourceforge.net>
-
- * unix/tcl.m4: Set SHLIB_LD_FLAGS='${LIBS}' on NetBSD, as per the other
- *BSD variants [Bug 1334613].
- * unix/configure: Regenerated.
-
-2006-03-07 Don Porter <dgp@users.sourceforge.net>
-
- * changes: Update in prep. for 8.5a4 release.
-
- * unix/Makefile.in: Package http 2.5.2 requires Tcl 8.4, so the
- * win/Makefile.in: *.tm installation has to be placed in an "8.4"
- directory, not an "8.2" directory.
-
-2006-03-06 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclBasic.c: Revised handling of TCL_EVAL_* flags to
- * tests/parse.test: simplify TclEvalObjvInternal and to correct the
- auto-loading of alias targets (parse-8.12). [Bug 1444291]
-
-2006-03-03 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclPathObj.c: Revised yesterday's fix for [Bug 1379287] to
- work on Windows.
-
- * generic/tclObj.c: Compatibility support for existing code that
- calls Tcl_GetObjType("boolean").
-
-2006-03-02 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclPathObj.c: Fix for failed normalization of paths
- * tests/fileSystem.test: with /../ that lead back to the root of
- the filesystem, like /foo/.. [Bug 1379287]
-
-2006-03-01 Reinhard Max <max@suse.de>
-
- * unix/installManPage: Fix the script for manpages that have quotes
- around the .SH arguments, as doctools produces them [Bug 1292145]. Some
- minor cleanups and improvements.
-
-2006-02-28 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclBasic.c: Corrections to be sure that TCL_EVAL_GLOBAL
- * tests/namespace.test: evaluations act the same as [uplevel #0]
- * tests/parse.test: evaluations, even when execution traces or
- * tests/trace.test: invocations of [::unknown] are present.
- [Bug 1439836].
-
-2006-02-22 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclBasic.c: Corrected a few bugs in how [namespace
- * tests/namespace.test: unknown] interacts with TCL_EVAL_* flags.
- [Patch 958222]
-
-2006-02-17 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclIORChan.c: Revised error message generation and handling
- * tests/ioCmd.test: of exceptional return codes in the channel
- reflection layer. [Bug 1372348]
-
-2006-02-16 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclIndexObj.c: Disallow the "ambiguous" error message
- * tests/indexObj.test: when TCL_EXACT matching is requested.
- * tests/ioCmd.test:
-
-2006-02-15 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclIO.c: Made several routines tolerant of
- * generic/tclIORChan.c: interp == NULL arguments. [Bug 1380662]
- * generic/tclIOUtil.c:
-
-2006-02-09 Don Porter <dgp@users.sourceforge.net>
-
- TIP#215 IMPLEMENTATION
-
- * doc/incr.n: Revised [incr] to auto-initialize when varName
- * generic/tclExecute.c: argument is unset. [Patch 1413115].
- * generic/tclVar.c:
- * tests/compile.test:
- * tests/incr-old.test:
- * tests/incr.test:
- * tests/set.test:
-
- * tests/main.test (Tcl_Main-6.7): Improved robustness of
- command auto-completion test. [Bug 1422736].
-
-2006-02-08 Donal K. Fellows <dkf@users.sf.net>
-
- * doc/Encoding.3, doc/encoding.n: Updates due to review at request of
- Don Porter. Mostly minor changes.
-
-2006-02-08 Don Porter <dgp@users.sourceforge.net>
-
- TIP#258 IMPLEMENTATION
-
- * doc/Encoding.3: New subcommand [encoding dirs].
- * doc/encoding.n: New routine Tcl_GetEncodingNameFromEnvironment
- * generic/tcl.decls: Made public:
- * generic/tclBasic.c: TclGetEncodingFromObj
- * generic/tclCmdAH.c: -> Tcl_GetEncodingFromObj
- * generic/tclEncoding.c:TclGetEncodingSearchPath
- * generic/tclInt.decls: -> Tcl_GetEncodingSearchPath
- * generic/tclInt.h: TclSetEncodingSearchPath
- * generic/tclTest.c: -> Tcl_SetEncodingSearchPath
- * library/init.tcl: Removed commands:
- * tests/cmdAH.test: [tcl::unsupported::EncodingDirs]
- * tests/encoding.test: [testencoding path] (Tcltest)
- * unix/tclUnixInit.c: [Patch 1413934].
- * win/tclWinInit.c:
-
- * generic/tclDecls.h: make genstubs
- * generic/tclIntDecls.h:
- * generic/tclStubInit.c:
-
-2006-02-01 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclProc.c: minor improvements to [apply]
- * tests/apply.test: new tests; apply-5.1 currently fails to indicate
- missing work in error reporting
-
-2006-02-01 Don Porter <dgp@users.sourceforge.net>
-
- TIP#194 IMPLEMENTATION
-
- * doc/apply.n: (New file) New command [apply]. [Patch 944803].
- * doc/uplevel.n:
- * generic/tclBasic.c:
- * generic/tclInt.h:
- * generic/tclProc.c:
- * tests/apply.test: (New file)
- * tests/proc-old.test:
- * tests/proc.test:
-
- TIP#181 IMPLEMENTATION
-
- * doc/Namespace.3: New command [namespace unknown]. New public C
- * doc/namespace.n: routines Tcl_(Get|Set)NamespaceUnknownHandler.
- * doc/unknown.n: [Patch 958222].
- * generic/tcl.decls:
- * generic/tclBasic.c:
- * generic/tclInt.h:
- * generic/tclNamesp.c:
- * tests/namespace.test:
-
- * generic/tclDecls.h: make genstubs
- * generic/tclStubInit.c:
-
- TIP#250 IMPLEMENTATION
-
- * doc/namespace.n: New command [namespace upvar]. [Patch 1275435]
- * generic/tclInt.h:
- * generic/tclNamesp.c:
- * generic/tclVar.c:
- * tests/namespace.test:
- * tests/upvar.test:
-
-2006-01-26 Donal K. Fellows <dkf@users.sf.net>
-
- * doc/dict.n: Fixed silly bug in example. Thanks to Heiner Marxen
- <heiner.marxen@unsel.de> for catching this! [Bug 1415725]
-
-2006-01-26 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * unix/tclUnixChan.c (TclpOpenFileChannel): Tidy up and comment the
- mess to do with setting up serial channels. This (deliberately) breaks
- a broken FreeBSD port, indicates what we're really doing, and reduces
- the amount of conditional compilation sections for better maintenance.
-
-2006-01-25 Donal K. Fellows <dkf@users.sf.net>
-
- * unix/tclUnixInit.c (TclpInitPlatform): Improved conditions on when to
- update the FP rounding mode on FreeBSD, taken from FreeBSD port.
-
-2006-01-23 Donal K. Fellows <dkf@users.sf.net>
-
- * tests/string.test (string-12.21): Added test for [Bug 1410553] based
- on original bug report.
-
-2006-01-23 Miguel Sofer <msofer@users.sf.net>
-
- * generic/tclStringObj.c: fixed incorrect handling of internal rep in
- Tcl_GetRange [Bug 1410553]. Thanks to twylite and Peter Spjuth.
-
- * generic/tclProc.c: fixed args handling for precompiled bodies [Bug
- 1412695]; thanks to Uwe Traum.
-
-2006-01-16 Reinhard Max <max@suse.de>
-
- * generic/tclPipe.c (FileForRedirect): Prevent nameString from being
- freed without having been initialized.
- * tests/exec.test: Added a test for the above.
-
-2006-01-12 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
-
- * generic/tclPathObj.c (Tcl_FSGetInternalRep): backported patch from
- core-8-4-branch. A freed pointer has been overwritten causing all sorts
- of coredumps.
-
-2006-01-12 Vince Darley <vincentdarley@sourceforge.net>
-
- * win/tclWinFile.c: fix to sharing violation [Bug 1366227]
-
-2006-01-11 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclBasic.c: Moved Tcl_LogCommandInfo from tclBasic.c to
- * generic/tclNamesp.c: tclNamesp.c to get access to identifier with
- * tests/error.test (error-7.0): file scope. Added check for traces on
- ::errorInfo, and when present fall back to contruction of the stack
- trace in the variable so that write trace notification timings are
- compatible with earlier Tcl releases. This reduces, but does not
- completely eliminate the ***POTENTIAL INCOMPATIBILITY*** created by the
- 2004-10-15 commit. [Bug 1397843].
-
-2006-01-10 Daniel Steffen <das@users.sourceforge.net>
-
- * unix/configure: add caching, use AC_CACHE_CHECK instead of
- * unix/configure.in: AC_CACHE_VAL where possible, consistent message
- * unix/tcl.m4: quoting, sync relevant tclconfig/tcl.m4 changes
- and gratuitous formatting differences, fix SC_CONFIG_MANPAGES with
- default argument, Darwin improvements to SC_LOAD_*CONFIG.
-
-2006-01-09 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tclNamesp.c (NamespaceInscopeCmd): [namespace inscope]
- * tests/namespace.test: commands were not reported by [info level]
- [Bug 1400572].
-
-2006-01-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * generic/tclTrace.c: Stop exporting the guts of the trace command;
- nothing outside this file needs to see it. [Bug 971336]
-
-2006-01-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
-
- * unix/tcl.m4 (TCL_CONFIG_SYSTEM): Factor out the code to determine
- the operating system version number, as it was replicated in several
- places.
-
-2006-01-04 David Gravereaux <davygrvy@pobox.com>
-
- * win/tclAppInit.c: WIN32 native console signal handler removed. This
- was found to be interfering with TWAPI extension one. IMO, special
- services such as signal handlers should best be done with extensions to
- the core after discussions on c.l.t. about Roy Terry's tclsh children
- of a real windows service shell.
-
-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" ***
- ******************************************************************
+2006-09-25 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclNotify.c (Tcl_DeleteEvents): Make it clear what happens
+ when the event queue is mismanaged. [Bug 1564677], coverity bug #10.
+
+2006-09-24 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclParse.c (Tcl_ParseCommand): also return an error if
+ start==NULL and numBytes<0. This is coverity's bug #20
+
+ * generic/tclStringObj.c (STRING_SIZE): fix allocation for 0-length
+ strings. This is coverity's bugs #54-5
+
+2006-09-22 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclInt.h: Moved TIP#268's field 'packagePrefer' to the end
+ of the structure, for better backward compatibility.
+
+2006-09-22 Andreas Kupries <andreask@activestate.com>
+
+ TIP#268 IMPLEMENTATION
+
+ * generic/tclDecls.h: Regenerated from tcl.decls.
+ * generic/tclStubInit.c:
+
+ * doc/PkgRequire.3: Documentation of extended API,
+ * doc/package.n: extended testsuite.
+ * tests/pkg.test:
+
+ * generic/tcl.decls: Implementation.
+ * generic/tclBasic.c:
+ * generic/tclConfig.c:
+ * generic/tclInt.h:
+ * generic/tclPkg.c:
+ * generic/tclTest.c:
+ * generic/tclTomMathInterface.c:
+ * library/init.tcl:
+ * library/package.tcl:
+ * library/tm.tcl:
+
+2006-09-22 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+
+ * generic/tclThreadTest.c (TclCreateThread): Use NULL instead of 0 as
+ end-of-strings marker to Tcl_AppendResult; the difference matters on
+ 64-bit machines. [Bug 1562528]
+
+2006-09-21 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclUtil.c: Dropped ParseInteger() routine.
+ TclParseNumber covers the task just fine.
+
+2006-09-19 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclEvent.c (Tcl_VwaitObjCmd): Rewrite so that an exceeded
+ limit trapped in a vwait cannot cause a dangerous dangling trace.
+
+2006-09-19 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclExecute.c (INST_EXPON): Native type overflow detection
+ * tests/expr.test: was completely broken. Falling back on use of
+ bignums for all non-trivial ** calculations until
+ native-type-constrained special cases can be done carefully and
+ correctly. [Bug 1561260].
+
+2006-09-15 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * library/http/http.tcl: Change " " -> "+" url encoding mapping
+ * library/http/pkgIndex.tcl: to " " -> "%20" as per RFC 3986.
+ * tests/http.test (http-5.1): bump http to 2.5.3
+ * unix/Makefile.in:
+ * win/Makefile.in:
+
+2006-09-12 Andreas Kupries <andreask@activestate.com>
+
+ * unix/configure.in (HAVE_MTSAFE_GETHOST*): Modified to recognize
+ HP-UX 11.00 and beyond as having mt-safe implementations of the
+ gethost functions.
+ * unix/configure: Regenerated, using autoconf 2.59
+
+ * unix/tclUnixCompat.c (PadBuffer): Fixed bug in calculation of
+ the increment needed to align the pointer, and added
+ documentation explaining why the macro is implemented as it is.
+
+2006-09-11 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * win/rules.vc: Updated to install http, tcltest and msgcat as
+ * win/makefile.vc: Tcl Modules (as per Makefile.in).
+ * win/makefile.vc: Added tommath_(super)class headers.
+
+2006-09-11 Andreas Kupries <andreask@activestate.com>
+
+ * unix/Makefile.in (install-libraries): Fixed typo tcltest 2.3.9 -> 2.3.0.
+
+2006-09-11 Daniel Steffen <das@users.sourceforge.net>
+
+ * unix/tclUnixCompat.c: make compatLock static and only declare it when
+ it will actually be used; #ifdef parts of TSD that are not always
+ needed; adjust #ifdefs to cover all possible cases; fix whitespace.
+
+2006-09-11 Andreas Kupries <andreask@activestate.com>
+
+ * tests/msgcat.test: Bumped version in auxiliary files as well.
+ * doc/msgcat.n:
+
+2006-09-11 Kevin Kenny <kennykb@acm.org>
+
+ * unix/Makefile.in: Bumped msgcat version to 1.4.2 to be
+ * win/Makefile.in: consistent with dgp's commits of 2006-09-10.
+
+2006-09-11 Don Porter <dgp@users.sourceforge.net>
+
+ * library/msgcat/msgcat.tcl: Removed some unneeded [uplevel]s.
+
+2006-09-10 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclExecute.c: Corrected INST_EXPON flaw that treated
+ * tests/expr.test: $x**1 as $x**3. [Bug 1555371]
+
+ * doc/tcltest.n: Bump to version tcltest 2.3.0 to account
+ * library/tcltest/pkgIndex.tcl: for new "-verbose line" feature.
+ * library/tcltest/tcltest.tcl:
+ * unix/Makefile.in:
+ * win/Makefile.in:
+ * win/makefile.bc:
+ * win/makefile.vc:
+
+ * library/msgcat/msgcat.tcl: Bump to version msgcat 1.4.2 to account
+ * library/msgcat/pkgIndex.tcl: for modifications.
+
+2006-09-10 Daniel Steffen <das@users.sourceforge.net>
+
+ * library/msgcat/msgcat.tcl (msgcat::Init): on Darwin, add fallback of
+ * tests/msgcat.test: default msgcat locale to
+ * unix/tclUnixInit.c (TclpSetVariables): current CFLocale identifier
+ if available (via private ::tcl::mac::locale global, set at interp init
+ when on Mac OS X 10.3 or later with CoreFoundation).
+
+ * library/tcltest/tcltest.tcl: add 'line' verbose level: prints source
+ * doc/tcltest.n: file line information of failing tests.
+
+ * macosx/Tcl.xcodeproj/project.pbxproj: add new tclUnixCompat.c file;
+ revise tests target to use new tcltest 'line' verbose level.
+
+ * unix/configure.in: add descriptions to new AC_DEFINEs for MT-safe.
+ * unix/tcl.m4: add caching to new SC_TCL_* macros for MT-safe wrappers.
+ * unix/configure: autoconf-2.59
+ * unix/tclConfig.h.in: autoheader-2.59
+
+2006-09-08 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
+
+ * unix/tclUnixCompat.c: Added fallback to gethostbyname()
+ and gethostbyaddr() if the implementation is known to be
+ MT-safe (currently for Darwin 6 or later only).
+
+ * unix/configure.in: Assume gethostbyname() and gethostbyaddr()
+ are MT-safe starting with Darwin 6 (Mac OSX 10.2).
+
+ * unix/configure: Regenerated with autoconf V2.59
+
+2006-09-08 Andreas Kupries <andreask@activestate.com>
+
+ * unix/tclUnixCompat.c: Fixed conditions for CopyArray/CopyString,
+ and CopyHostent. Also fixed bad var names in TclpGetHostByName.
+
+2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
+
+ * unix/tclUnixCompat.c: Added fallback to MT-unsafe
+ library calls if TCL_THREADS is not defined.
+ Fixed alignment of arrays copied by CopyArrayi() to be
+ on the sizeof(char *) boundary.
+
+2006-09-07 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
+
+ * unix/tclUnixChan.c Rewritten MT-safe wrappers to
+ * unix/tclUnixCompat.c return ptrs to TSD storage
+ * unix/tclUnixFCmd.c making them all look like their
+ * unix/tclUnixPort.h MT-unsafe pendants API-wise.
+ * unix/tclUnixSock.c
+
+2006-09-06 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
+
+ * unix/tclUnixChan.c: Added TCL_THREADS ifdef'ed usage
+ * unix/tclUnixFCmd.c: of MT-safe calls like:
+ * unix/tclUnixSock.c: getpwuid, getpwnam, getgrgid, getgrnam,
+ * unix/tclUnixPort.h: gethostbyname and gethostbyaddr.
+ * unix/Makefile.in: See Tcl Bug: 999544
+ * unix/configure.in:
+ * unix/tcl.m4:
+ * unix/configure: Regenerated.
+
+ * unix/tclUnixCompat.c: New file containing MT-safe implementation
+ of some library calls.
+
+2006-09-04 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCompExpr.c: Removed much complexity that is
+ no longer needed.
+
+ * tests/main.text (Tcl_Main-4.4): Test corrected to not be
+ timing sensitive to the Bug 1481986 fix. [Bug 1550858]
+
+2006-09-04 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * doc/package.n: correct package example
+
+2006-08-31 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCompExpr.c: Corrected flawed logic for
+ disabling the INST_TRY_CVT_TO_NUMERIC instruction at the end
+ of an expression when function arguments contain operators.
+ [Bug 1541274]
+
+ * tests/expr-old.test: The remaining failing tests reported in
+ * tests/expr.test: [Bug 1381715] are all new in Tcl 8.5, so
+ there's really no issue of compatibility with Tcl 8.4 result to
+ deal with. Fixed by updating tests to expect 8.5 results.
+
+2006-08-29 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclParseExpr.c: Dropped the old expr parser.
+
+2006-08-30 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * generic/tclBasic.c (Tcl_CreateInterp): init iPtr->threadId
+
+ * win/tclWinChan.c [Bug 819667] Improve logic for identifying COM
+ ports.
+
+ * generic/tclIOGT.c (ExecuteCallback):
+ * generic/tclPkg.c (Tcl_PkgRequireEx): replace Tcl_GlobalEval(Obj)
+ with more efficient Tcl_Eval(Obj)Ex
+
+ * unix/Makefile.in (valgrindshell): add valgrindshell target and
+ update default VALGRINDARGS. User can override, or add to it with
+ VALGRIND_OPTS env var.
+
+ * generic/tclFileName.c (DoGlob): match incrs with decrs.
+
+2006-08-29 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclParseExpr.c: Use the "parent" field of
+ orphan ExprNodes to store the closure of left pointers. This
+ lets us avoid repeated re-scanning leftward for the left
+ boundary of subexpressions, which in worst case led to near
+ O(N^2) runtime.
+
+2006-08-29 Joe Mistachkin <joe@mistachkin.com>
+
+ * unix/tclUnixInit.c: Fixed the issue (typo) that was causing
+ * unix/tclUnixThrd.c (TclpThreadGetStackSize): stack.test to
+ fail on FreeBSD (and possibly other Unix platforms).
+
+2006-08-29 Colin McCormack <coldstore@users.sourceforge.net>
+
+ * generic/tclIOUtil.c: Added test for NULL return
+ * generic/tclPathObj.c: from Tcl_FSGetNormalizedPath
+ * unix/tclUnixFile.c: which was causing segv's per
+ * win/tclWinFCmd.c: Bug 1548263
+ * win/tclWinFile.c:
+
+2006-08-28 Kevin Kenny <kennykb@acm.org>
+
+ * library/tzdata/America/Havana: Regenerated from Olson's
+ * library/tzdata/America/Tegucigalpa: tzdata2006k.
+ * library/tzdata/Asia/Gaza:
+
+2006-08-28 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclStringObj.c: Revised ObjPrintfVA to take care
+ * generic/tclParseExpr.c: to copy only whole characters when
+ doing %s formatting. This relieves callers of TclObjPrintf() and
+ TclFormatToErrorInfo() from needing to fix arguments to character
+ boundaries. Tcl_ParseExpr() simplified by taking advantage.
+ [Bug 1547786]
+
+ * generic/tclStringObj.c: Corrected TclFormatObj's failure
+ to count up the number of arguments required by examining the
+ format string. [Bug 1547681]
+
+2006-08-27 Joe Mistachkin <joe@mistachkin.com>
+
+ * generic/tclClock.c (ClockClicksObjCmd): Fix nested macro breakage
+ with TCL_MEM_DEBUG enabled. [Bug 1547662]
+
+2006-08-26 Miguel Sofer <msofer@users.sf.net>
+
+ * doc/namespace.n:
+ * generic/tclNamesp.c:
+ * tests/upvar.test: bugfix, docs clarification and new tests for
+ [namespace upvar] as follow up to [Bug 1546833], reported by Will
+ Duquette.
+
+2006-08-24 Kevin Kenny <kennykb@acm.org>
+
+ * library/tzdata: Regenerated, including several new files,
+ from Olson's tzdata2006j.
+ * library/clock.tcl:
+ * tests/clock.test: Removed an early testing hack that allowed
+ loading 'registry' from the build tree rather than an installed
+ one. This is a workaround for [Bug 15232730], which remains open
+ because it's a symptom of a deeper underlying problem.
+
+2006-08-23 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclParseExpr.c: Minimal collection of new tests
+ * tests/parseExpr.test: testing the error messages of the
+ new expr parser. Several bug fixes and code simplifications that
+ appeared during that effort.
+
+2006-08-21 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIOUtil.c: Revisions to complete the thread finalization
+ of the cwdPathPtr. [Bug 1536142]
+
+ * generic/tclParseExpr.c: Revised mistaken call to
+ TclCheckBadOctal(), so both [expr 08] and [expr 08z] have same
+ additional info in error message.
+
+ * tests/compExpr-old.test: Update existing tests to not fail
+ * tests/compExpr.test: with the new expr parser.
+ * tests/compile.test:
+ * tests/expr-old.test:
+ * tests/expr.test:
+ * tests/for.test:
+ * tests/if.test:
+ * tests/parseExpr.test:
+ * tests/while.test:
+
+2006-08-21 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * win/Makefile.in (gdb): Make this target work so that debugging an
+ msys build is possible.
+
+2006-08-21 Daniel Steffen <das@users.sourceforge.net>
+
+ * macosx/tclMacOSXNotify.c (Tcl_WaitForEvent): if the run loop is
+ already running (e.g. if Tcl_WaitForEvent was called recursively),
+ re-run it in a custom run loop mode containing only the source for the
+ notifier thread, otherwise wakeups from other sources added to the
+ common run loop modes might get lost.
+
+ * unix/tclUnixNotfy.c (Tcl_WaitForEvent): on 64-bit Darwin,
+ pthread_cond_timedwait() appears to have a bug that causes it to wait
+ forever when passed an absolute time which has already been exceeded by
+ the system time; as a workaround, when given a very brief timeout, just
+ do a poll on that platform. [Bug 1457797]
+
+ * generic/tclClock.c (ClockClicksObjCmd): add support for Darwin
+ * generic/tclCmdMZ.c (Tcl_TimeObjCmd): nanosecond resolution timer
+ * generic/tclInt.h: to [clock clicks] and [time]
+ * unix/configure.in (Darwin): when TCL_WIDE_CLICKS defined.
+ * unix/tclUnixTime.c (TclpGetWideClicks, TclpWideClicksToNanoseconds):
+ * unix/configure: autoconf-2.59
+ * unix/tclConfig.h.in: autoheader-2.59
+
+ * unix/tclUnixPort.h (Darwin): override potentially faulty configure
+ detection of termios availability in all cases, since termios is known
+ to be present on all Mac OS X releases since 10.0. [Bug 497147]
+
+2006-08-18 Daniel Steffen <das@users.sourceforge.net>
+
+ * unix/tcl.m4 (Darwin): add support for --enable-64bit on x86_64, for
+ universal builds including x86_64, for 64-bit CoreFoundation on Leopard
+ and for use of -mmacosx-version-min instead of MACOSX_DEPLOYMENT_TARGET
+ * unix/configure: autoconf-2.59
+ * unix/tclConfig.h.in: autoheader-2.59
+
+ * generic/tcl.h: add fixes for building on Leopard and support
+ * unix/tclUnixPort.h: for 64-bit CoreFoundation on Leopard.
+ * macosx/tclMacOSXFCmd.c:
+
+ * unix/tclUnixPort.h: on Darwin x86_64, disable use of vfork as it
+ causes execve to fail intermittently. (rdar://4685553)
+
+ * generic/tclTomMath.h: on Darwin 64-bit, for now disable use of
+ 128-bit arithmetic through __attribute__ ((mode(TI))), as it leads to
+ link errors due to missing fallbacks. (rdar://4685527)
+
+ * macosx/Tcl.xcodeproj/project.pbxproj: add x86_64 to universal build,
+ switch native release targets to use DWARF with dSYM, Xcode 3.0 changes
+ * macosx/README: updates for x86_64 and Xcode 2.4.
+
+ * macosx/Tcl.xcodeproj/default.pbxuser: add test suite target that runs
+ * macosx/Tcl.xcodeproj/project.pbxproj: the tcl test suite at build
+ time and shows clickable test suite errors in the GUI build window.
+
+ * tests/macOSXFCmd.test: fix use of deprecated resource fork paths.
+
+ * unix/tclUnixInit.c (TclpInitLibraryPath): move code that is only
+ needed when TCL_LIBRARY is defined to run only in that case.
+
+ * generic/tclLink.c (LinkTraceProc): fix 64-bit signed-with-unsigned
+ comparison warning from gcc4 -Wextra.
+
+ * unix/tclUnixChan.c (TclUnixWaitForFile): with timeout < 0, if
+ select() returns early (e.g. due to a signal), call it again instead of
+ returning a timeout result. Fixes intermittent event-13.8 failures.
+
+2006-08-17 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCompile.c: Revised the new set of expression parse
+ * generic/tclParseExpr.c: error messages.
+
+2006-08-16 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclParseExpr.c: Replace PrecedenceOf() function with
+ prec[] static array.
+
+2006-08-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * library/clock.tcl (::tcl::clock::add): Added missing braces to
+ clockval validation code. Pointed out on comp.lang.tcl.
+
+2006-08-11 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * generic/tclNamesp.c: Improvements in buffer management to make
+ namespace creation faster. Plus selected other minor improvements to
+ code quality. [Patch 1352382]
+
+2006-08-10 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ Misc patches to make code more efficient. [Bug 1530474] (afredd)
+ * generic/*.c, macosx/tclMacOSXNotify.c, unix/tclUnixNotfy.c,
+ * win/tclWinThrd.c: Tidy up invokations of Tcl_Panic() to promote
+ string constant sharing and consistent style.
+ * generic/tclBasic.c (Tcl_CreateInterp): More efficient handling of
+ * generic/tclClock.c (TclClockInit): registration of commands not
+ in global namespace.
+ * generic/tclVar.c (Tcl_UnsetObjCmd): Remove unreachable clause.
+
+2006-08-09 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclEncoding.c: Replace buffer copy in for loop
+ with call to memcpy(). Thanks to afredd. [Patch 1530262]
+
+2006-08-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * generic/tclCmdIL.c (Tcl_LassignObjCmd): Make the wrong#args message a
+ bit more consistent with those used elsewhere. [Bug 1534628]
+
+ * generic/tclDictObj.c (DictForCmd): Stop crash when attempting to
+ iterate over an invalid dictionary. [Bug 1531184]
+
+ * doc/ParseCmd.3, doc/expr.n, doc/set.n, doc/subst.n, doc/switch.n:
+ * doc/tclvars.n: Ensure that uses of [expr] in documentation examples
+ are also good style (with braces) unless otherwise necessary. [Bug
+ 1526581]
+
+2006-08-03 Daniel Steffen <das@users.sourceforge.net>
+
+ * unix/tclUnixPipe.c (TclpCreateProcess): for USE_VFORK: ensure
+ standard channels are initialized before vfork() so that the child
+ doesn't potentially corrupt global state in the parent's address space.
+
+ * tests/compExpr-old.test: add 'oldExprParser' constraint to all tests
+ * tests/compExpr.test: that depend on the exact format of the error
+ * tests/compile.test: messages of the pre-2006-07-05 expression
+ * tests/expr-old.test: parser. The constraint is on by default (i.e
+ * tests/expr.test: those tests still fail), but can be turned
+ * tests/for.test: off by passing '-constraints newExprParser'
+ * tests/if.test: to tcltest, which will skip the 196 failing
+ * tests/parseExpr.test: tests in the testsuite that are caused by
+ * tests/while.test: the new expression parser error messages.
+
+2006-07-31 Kevin Kenny <kennykb@acm.org>
+
+ * generic/tclClock.c (ConvertLocalToUTCUsingC): Corrected a regression
+ that caused dates before 1969 to be one day off in the :localtime time
+ zone if TZ is not set. [Bug 1531530]
+
+2006-07-30 Kevin Kenny <kennykb@acm.org>
+
+ * generic/tclClock.c (GetJulianDayFromEraYearMonthDay): Corrected
+ several errors in converting dates before the Common Era. [Bug 1426279]
+ * library/clock.tcl: Corrected syntax errors in generated code for %EC,
+ %Ey, and %W format groups [Bug 1505383]. Corrected a bug in cache
+ management for format strings containing [glob] metacharacters [Bug
+ 1494664]. Corrected several errors in formatting/scanning of years
+ prior to the Common Era, and added the missing %EE format group to
+ indicate the era.
+ * tools/makeTestCases.tcl: Added code to make sure that %U and %V
+ format groups are included in the tests. (The code depends on %U and %V
+ formatting working correctly when 'makeTestCases.tcl' is run, rather
+ than making a completely independent check.) Added tests for [glob]
+ metacharacters in strings. Added tests for years prior to the Common
+ Era.
+ * tests/clock.test: Rebuilt with new test cases for all the above.
+
+2006-07-30 Joe English <jenglish@users.sourceforge.net>
+
+ * doc/AppInit.3: Fix typo [Bug 1496886]
+
+2006-07-26 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclExecute.c: Corrected flawed overflow detection in
+ * tests/expr.test: INST_EXPON that caused [expr 2**64] to return 0
+ instead of the same value as [expr 1<<64].
+
+2006-07-24 Don Porter <dgp@users.sourceforge.net>
+
+ * win/tclWinSock.c: Correct un-initialized Tcl_DString. Thanks to
+ afredd. [Bug 1518166]
+
+2006-07-21 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclExecute.c:
+ * tests/execute.test (execute-9.1): dgp's fix for [Bug 1522803].
+
+2006-07-20 Daniel Steffen <das@users.sourceforge.net>
+
+ * macosx/tclMacOSXNotify.c (Tcl_InitNotifier, Tcl_WaitForEvent): create
+ notifier thread lazily upon first call to Tcl_WaitForEvent() rather
+ than in Tcl_InitNotifier(). Allows calling exeve() in processes where
+ the event loop has not yet been run (Darwin's execve() fails in
+ processes with more than one thread), in particular allows embedders to
+ call fork() followed by execve(), previously the pthread_atfork() child
+ handler's call to Tcl_InitNotifier() would immediately recreate the
+ notifier thread in the child after a fork.
+
+ * macosx/tclMacOSXFCmd.c (TclMacOSXCopyFileAttributes): add support
+ * macosx/tclMacOSXNotify.c (Tcl_InitNotifier): for weakly
+ * unix/tclUnixInit.c (Tcl_GetEncodingNameFromEnvironment): importing
+ symbols not available on OSX 10.2 or 10.3, enables binaires built on
+ later OSX versions to run on earlier ones.
+ * macosx/Tcl.xcodeproj/project.pbxproj: enable weak-linking; turn on
+ extra warnings.
+ * macosx/README: document how to enable weak-linking; cleanup.
+ * unix/tclUnixPort.h: add support for weak-linking; conditionalize
+ AvailabilityMacros.h inclusion; only disable realpath on 10.2 or earlier
+ when threads are enabled.
+ * unix/tclLoadDyld.c (TclpLoadMemoryGetBuffer): change runtime Darwin
+ * unix/tclUnixInit.c (TclpInitPlatform): release check to use
+ global initialized once.
+ * unix/tclUnixFCmd.c (DoRenameFile, TclpObjNormalizePath): add runtime
+ Darwin release check to determine if realpath is threadsafe.
+ * unix/configure.in: add check on Darwin for compiler support of weak
+ * unix/tcl.m4: import and for AvailabilityMacros.h header;
+ move Darwin specific checks & defines that are only relevant to the tcl
+ build out of tcl.m4; restrict framework option to Darwin; cleanup
+ quoting and help messages.
+ * unix/configure: autoconf-2.59
+ * unix/tclConfig.h.in: autoheader-2.59
+
+ * generic/regc_locale.c (cclass):
+ * generic/tclExecute.c (TclExecuteByteCode):
+ * generic/tclIOCmd.c (Tcl_ExecObjCmd):
+ * generic/tclListObj.c (NewListIntRep):
+ * generic/tclObj.c (Tcl_GetLongFromObj, Tcl_GetWideIntFromObj,
+ FreeBignum, Tcl_SetBignumObj):
+ * generic/tclParseExpr.c (Tcl_ParseExpr):
+ * generic/tclStrToD.c (TclParseNumber):
+ * generic/tclStringObj.c (TclAppendFormattedObjs):
+ * unix/tclLoadDyld.c (TclpLoadMemory):
+ * unix/tclUnixPipe.c (TclpCreateProcess): fix signed-with-unsigned
+ comparison and other warnings from gcc4 -Wextra.
+
+2006-07-13 Andreas Kupries <andreask@activestate.com>
+
+ * unix/tclUnixPort.h: Added the inclusion of <AvailabilityMacros.h>.
+ The missing header caused the upcoming #if conditions to wrongly
+ exclude realpath, causing file normalize to ignore symbolic links in
+ the path.
+
+2006-07-11 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
+
+ * generic/tclAsync.c: Made Tcl_AsyncDelete() more tolerant when called
+ after all thread TSD has been garbage-collected.
+
+2006-07-05 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclParseExpr.c: Completely new expression parser that
+ builds a parse tree instead of operating with deep recursion. This
+ corrects reports of stack-blowing crashes parsing long expressions [Bug
+ 906201] and replaces a fundamentally O(N^2) algorithm with an O(N) one
+ [RFE 903765]. The new parser is better able to generate error messages
+ that clearly report both the nature and context of the syntax error
+ [Bugs 1029267, 1381715]. For now, the code for the old parser is still
+ present and can be activated with a "#define OLD_EXPR_PARSER 1". This
+ is for the sake of a clean implementation patch, and for ease of
+ benchmarking. The new parser is non-recursive, so much lighter in stack
+ consumption, but it does use more heap, so there may be cases where
+ parsing of long expressions that succeeded with the old parser will
+ lead to out of memory panics with the new one. There are still more
+ improvements possible on that point, though significant progress may
+ require changes to the Tcl_Token specifications documented for the
+ public Tcl_Parse*() routines.
+ ***POTENTIAL INCOMPATIBILITY*** for any callers that rely on the exact
+ (usually terrible) error messages generated by the old parser. This
+ includes a large number of tests in the test suite.
+
+ * generic/tclInt.h: Replaced TclParseWhiteSpace() with
+ * generic/tclParse.c: TclParseAllWhiteSpace() which is what
+ * generic/tclParseExpr.c: all the callers really needed. Breaking
+ whitespace runs at newlines is useful only to the command parsing
+ function, and it can call the file scoped routine ParseWhiteSpace() to
+ do that.
+
+ * tests/expr-old.test: Removed knownBug constraints that masked
+ * tests/expr.test: failures due to revised error messages.
+ * tests/parseExpr.test:
+
+2006-06-20 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIOUtil.c: Changed default configuration to
+ * generic/tclInt.decls: #undef USE_OBSOLETE_FS_HOOKS which disables
+ * generic/tclTest.c: access to the Tcl 8.3 internal routines for
+ hooking into filesystem operations. Everyone ought to have migrated to
+ Tcl_Filesystems by now.
+ ***POTENTIAL INCOMPATIBILITY*** for any code still stuck in the
+ pre-Tcl_Filesystem era.
+
+ * generic/tclIntDecls.h: make genstubs
+ * generic/tclStubInit.c:
+
+ * generic/tclStrToD.c: Removed dead code that permitted disabling of
+ recognition of the new 0b and 0o numeric formats.
+
+ * generic/tclExecute.c: Removed dead code that implemented alternative
+ * generic/tclObj.c: design where numeric values did not
+ automatically narrow to the smallest Tcl_ObjType required to hold them.
+
+ * generic/tclCmdAH.c: Removed dead code that was old implementation
+ of [format].
+
+2006-06-14 Daniel Steffen <das@users.sourceforge.net>
+
+ * unix/tclUnixPort.h (Darwin): support for MAC_OS_X_VERSION_MAX_ALLOWED
+ define from AvailabilityMacros.h: override configure detection and only
+ use API available in the indicated OS version or earlier.
+
+2006-06-14 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * doc/format.n, doc/scan.n: Added examples for converting between
+ characters and their numeric interpretations following user prompting.
+
+2006-06-13 Donal K. Fellows <dkf@users.sf.net>
+
+ * unix/tclLoadDl.c (TclpDlopen): Workaround for a compiler bug in Sun
+ Forte 6. [Bug 1503729]
+
+2006-06-06 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/GetStdChan.3: Added recommendation that each call to
+ Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel().
+
+2006-06-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * doc/Alloc.3: Added documentation of promise that Tcl_Realloc(NULL,x)
+ is the same as Tcl_Alloc(x), as discussed in comp.lang.tcl. Also fixed
+ nonsense sentence to say something meaningful.
+
+2006-05-29 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * generic/tcl.h (Tcl_DecrRefCount): use if/else construct to allow
+ placement in unbraced outer if/else conditions. (jcw)
+
+2006-05-27 Daniel Steffen <das@users.sourceforge.net>
+
+ * macosx/tclMacOSXNotify.c: implemented pthread_atfork() handler that
+ * unix/tcl.m4 (Darwin): recreates CoreFoundation state and notifier
+ thread in the child after a fork(). Note that pthread_atfork is
+ available starting with Tiger only. Because vfork() is used by the core
+ on Darwin, [exec]/[open] are not affected by this fix, only extensions
+ or embedders that call fork() directly (such as TclX). However, this
+ only makes fork() safe from corefoundation tcl with --disable-threads;
+ as on all platforms, forked children may deadlock in threaded tcl due
+ to the potential for stale locked mutexes in the child. [Patch 923072]
+
+ * unix/configure: autoconf-2.59
+ * unix/tclConfig.h.in: autoheader-2.59
+
+2006-05-24 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * unix/tcl.m4 (SC_CONFIG_SYSTEM): Fixed quoting of command script to
+ awk; it was a rarely used branch, but it was wrong. [Bug 1494160]
+
+2006-05-23 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * doc/chan.n, doc/refchan.n: Tighten up the documentation to follow a
+ slightly more consistent style with regard to argument capitalization.
+
+2006-05-13 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclProc.c (ProcCompileProc): When a bump of the compile epoch
+ forces the re-compile of a proc body, take care not to overwrite any
+ Proc struct that may be referred to on the active call stack. This
+ fixes [Bug 1482718]. Note that the fix will not be effective for code
+ that calls the private routine TclProcCompileProc() directly.
+
+2006-05-13 Daniel Steffen <das@users.sourceforge.net>
+
+ * generic/tclEvent.c (HandleBgErrors): fix leak. [Coverity issue 86]
+
+2006-05-05 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclMain.c (Tcl_Main): Corrected flaw that required
+ * tests/main.test: (Tcl_Main-4.5): processing of one interactive
+ command before passing control to the loop routine registered with
+ Tcl_SetMainLoop() [Bug 1481986].
+
+2006-05-04 Don Porter <dgp@users.sourceforge.net>
+
+ * README: Bump version number to 8.5a5
+ * generic/tcl.h:
+ * tools/tcl.wse.in:
+ * unix/configure.in:
+ * unix/tcl.spec:
+ * win/README.binary:
+ * win/configure.in:
+
+ * unix/configure: autoconf-2.59
+ * win/configure:
+
+ * generic/tclBasic.c (ExprSrandFunc): Restore acceptance of wide/big
+ * doc/mathfunc.n: integer values by srand() [Bug 1480509].
+
+2006-04-26 Don Porter <dgp@users.sourceforge.net>
+
+ *** 8.5a4 TAGGED FOR RELEASE ***
+
+ * changes: Updates for another RC.
+
+ * generic/tclBinary.c: Revised the handling of the Q and q format
+ * generic/tclInt.h: specifiers for [binary] to account for the
+ * generic/tclStrToD.c: "middle endian" floating point format used in
+ Nokia N770.
+
+2006-04-25 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/DoubleObj.3: More doc updates for TIP 237.
+ * doc/expr.n:
+ * doc/format.n:
+ * doc/mathfunc.n:
+ * doc/scan.n:
+ * doc/string.n:
+
+ * generic/tclScan.c: [scan $s %u] is documented to accept only
+ * tests/scan.test: decimal formatted integers. Fixed to match.
+
+2006-04-19 Kevin B. Kenny <kennykb@acm.org>
+
+ * generic/tclStrToD.c: Added code to support the "middle endian"
+ floating point format used in the Nokia N770's software-based floating
+ point. Thanks to Bruce Johnson for reporting this bug, originally on
+ http://wiki.tcl.tk/15408.
+ * library/clock.tcl: Fixed a bug with Daylight Saving Time and Posix
+ time zone specifiers reported by Martin Lemburg in
+ http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/9a8b15a4dfc0b7a0
+ (and not at SourceForge).
+ * tests/clock.test: Added test case for the above bug.
+
+2006-04-18 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/IntObj.3: Minor review fixes, including better documentation of
+ the behaviour of Tcl_GetBignumAndClearObj.
+
+2006-04-17 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/IntObj.3: Documentation changes to account for TIP 237 changes.
+ * doc/Object.3: [Bug 1446971]
+
+2006-04-12 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * generic/regc_locale.c (cclass): Redefined the meaning of [:print:] to
+ be exactly UNICODE letters, numbers, punctuation, symbols and spaces
+ (*not* whitespace). [Bug 1376892]
+
+2006-04-11 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclTrace.c: Stop some interference between enter traces
+ * tests/trace.test: and enterstep traces. [Bug 1458266]
+
+2006-04-07 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclPathObj.c: Yet another revised fix for the [Bug 1379287]
+ * tests/fileSystem.test: family of path normalization bugs.
+
+2006-04-06 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * generic/tclRegexp.c (FinalizeRegexp): full reset data to indicate
+ readiness for reinitialization.
+
+2006-04-06 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): It seems there
+ * tests/indexObj.test: are extensions that rely on the prior behavior
+ * doc/GetIndex.3: that the empty string cannot succeed as a
+ unique prefix matcher, so I'm restoring Donal Fellows's solution. Added
+ mention of this detail to the documentation. [Bug 1464039]
+
+ * tests/compExpr-old.test: Updated testmathfunctions constraint
+ * tests/compExpr.test: to post-TIP-232 world.
+ * tests/expr-old.test:
+ * tests/expr.test:
+ * tests/info.test:
+
+ * tests/indexObj.test: Corrected other test errors revealed by
+ * tests/upvar.test: testing outside the tcltest application.
+
+ * generic/tclPathObj.c: Revised fix for the [Bug 1379287] family of
+ path normalization bugs.
+
+2006-04-06 Daniel Steffen <das@users.sourceforge.net>
+
+ * unix/tcl.m4: removed TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING
+ define on Darwin. [Bug 1457515]
+ * unix/configure: autoconf-2.59
+ * unix/tclConfig.h.in: autoheader-2.59
+
+2006-04-05 Don Porter <dgp@users.sourceforge.net>
+
+ * win/tclWinInit.c: More careful calls to Tcl_DStringSetLength()
+ * win/tclWinSock.c: to avoid creating invalid DString states.
+ * win/tclWinDde.c: Bump to version 1.3.2. [RFE 1366195]
+ * library/dde/pkgIndex.tcl:
+
+ * library/reg/pkgIndex.tcl: Bump to registry 1.2 because
+ * win/tclWinReg.c: Registry_Unload() is a new public routine
+ * win/Makefile.in: compared to the 1.1.* releases.
+
+ * win/configure.in: Bump package version numbers.
+ * win/configure: autoconf 2.59
+
+2006-04-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Allow empty
+ strings to be matched by the Tcl_GetIndexFromObj machinery, in the
+ same manner as any other key. [Bug 1464039]
+
+2006-04-03 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclIO.c (ReadChars): Added check, panic and commentary to a
+ piece of code which relies on BUFFER_PADDING to create enough space at
+ the beginning of each buffer for the insertion of partial multibyte
+ data at the beginning of a buffer. Commentary explains why this code is
+ OK, and the panic is as a precaution if someone twiddled the
+ BUFFER_PADDING into uselessness.
+
+ * generic/tclIO.c (ReadChars): [Bug 1462248]. Temporarily suppress the
+ use of TCL_ENCODING_END set when EOF was reached while the buffer we
+ are converting is not truly the last buffer in the queue. Together with
+ the Utf bug below it was possible to completely wreck the buffer data
+ structures, eventually crashing Tcl.
+
+ * generic/tclEncoding.c (UtfToUtfProc): Stop accessing memory beyond
+ the end of the input buffer when TCL_ENCODING_END is set and the last
+ bytes of the buffer start a multi-byte sequence. This bug contributed
+ to [Bug 1462248].
+
+2006-03-30 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclExecute.c: remove unused var and silence gcc warning
+
+2006-03-29 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * win/Makefile.in: convert _NATIVE paths to use / to avoid ".\"
+ path-as-escape issue.
+
+2006-03-29 Don Porter <dgp@users.sourceforge.net>
+
+ * changes: Updates for another RC.
+
+ * generic/tclPathObj.c: More fixes for path normalization when /../
+ * tests/fileSystem.test: tries to go beyond root.[Bug 1379287]
+
+ * generic/tclExecute.c: Revised INST_MOD implementation to do
+ calculations in native types as much as possible, moving to mp_ints
+ only when necessary.
+
+2006-03-28 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * win/tclWinPipe.c (TclpCreateProcess): change panics to Tcl errors and
+ do proper refcounting of noe objPtr. [bug 1194429]
+
+ * unix/tcl.m4, win/tcl.m4: []-quote AC_DEFUN functions.
+
+2006-03-28 Daniel Steffen <das@users.sourceforge.net>
+
+ * macosx/Tcl.xcode/default.pbxuser: add '-singleproc 1' cli arg to
+ * macosx/Tcl.xcodeproj/default.pbxuser: tcltest to ease test debugging
+
+ * macosx/Tcl.xcode/project.pbxproj: removed $prefix/share from
+ * macosx/Tcl.xcodeproj/project.pbxproj: TCL_PACKAGE_PATH as per change
+ to unix/configure.in of 2006-03-13.
+
+ * unix/tclUnixFCmd.c (TclpObjNormalizePath): deal with *BSD/Darwin
+ realpath() converting relative paths into absolute paths. [Bug 1064247]
+
+2006-03-28 Vince Darley <vincentdarley@sourceforge.net>
+
+ * generic/tclIOUtil.c: fix to nativeFilesystemRecord comparisons
+ (lesser part of [Bug 1064247])
+
+2006-03-27 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * win/tclWinTest.c: Fixes for [Bug 1456373] (mingw-gcc issue)
+
+2006-03-27 Andreas Kupries <andreask@activestate.com>
+
+ * doc/CrtChannel.3: Added TCL_CHANNEL_VERSION_5, made it the version
+ * generic/tcl.h: where the "truncateProc" is defined at, and
+ * generic/tclIO.c: moved all channel drivers of Tcl to v5.
+ * generic/tclIOGT.c, generic/tclIORChan.c, unix/tclUnixChan.c:
+ * unix/tclUnixPipe.c, win/tclWinChan.c, win/tclWinConsole.c:
+ * win/tclWinPipe.c, win/tclWinSerial.c, win/tclWinSock.c:
+
+2006-03-27 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclExecute.c: Merge INST_MOD computation in with the
+ INST_?SHIFT instructions, which also operate only on two integral
+ values. Also corrected flaw that made INST_BITNOT of wide values
+ require mp_int calculations. Also corrected type that missed optimized
+ handling of the tclBooleanType by the TclGetBooleanFromObj macro.
+
+ * changes: Updates for another RC.
+
+2006-03-25 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclExecute.c: Corrections to INST_EXPON detection of overflow
+ to use mp_int calculations.
+
+2006-03-24 Kevin Kenny <kennykb@acm.org>
+
+ * generic/tclExecute.c (TclExecuteByteCode): Added a couple of missing
+ casts to 'int' that were affecting compilablity on VC6.
+
+2006-03-24 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclEncoding.c: Reverted latest change [Bug 506653] since it
+ reportedly killed test performance on Windows.
+
+ * generic/tclExecute.c: Revised INST_EXPON implementation to do
+ calculations in native types as much as possible, moving to mp_ints
+ only when necessary.
+
+2006-03-23 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclExecute.c: Merged INST_EXPON handling in with the other
+ binary operators that operate on all number types (INST_ADD, etc.).
+
+ * tests/env.test: With case preserved (see 2006-03-21 commit) be sure
+ to do case-insensitive filtering. [Bug 1457065]
+
+2006-03-23 Reinhard Max <max@suse.de>
+
+ * unix/tcl.spec: Cleaned up and completed the spec file. An RPM can now
+ be built from the tcl source distribution with "rpmbuild -tb <tarball>"
+
+2006-03-22 Reinhard Max <max@suse.de>
+
+ * tests/stack.test: Run the stack tests in subshells, so that they are
+ reported as failed tests rather than bugs in the test suite if the
+ recursion causes a segfault.
+
+2006-03-21 Don Porter <dgp@users.sourceforge.net>
+
+ * changes: Updates for another RC.
+
+ * generic/tclStrToD.c: One of the branches of AccumulateDecimalDigit
+ * tests/parseExpr.test: did not. [Bug 1451233]
+
+ * tests/env.test: Preserve case of saved env vars. [Bug 1409272]
+
+2006-03-21 Daniel Steffen <das@users.sourceforge.net>
+
+ * generic/tclInt.decls: implement globbing for HFS creator & type
+ * macosx/tclMacOSXFCmd.c:codes and 'hidden' flag, as documented in
+ * tests/macOSXFCmd.test: glob.n; objectified OSType handling in [glob]
+ * unix/tclUnixFile.c: and [file attributes]; fix globbing for
+ hidden files with pattern==NULL arg. [Bug 823329]
+ * generic/tclIntPlatDecls.h:
+ * generic/tclStubInit.c: make genstubs
+
+2006-03-20 Andreas Kupries <andreask@activestate.com>
+
+ * win/Makefile.in (install-libraries): Generate tcl8/8.4 directory
+ under Windows as well (cygwin Makefile). Related entry: 2006-03-07,
+ dgp. This moved the installation of http from 8.2 to 8.4, partially. A
+ fix of the required directory creation was done for unix on Mar 10,
+ without entry in the Changelog. This entry is for the fix of the
+ directory creation under Windows.
+
+ * unix/installManPage: There is always one even more broken "sed".
+ Moved the # comment starting character in the sed script to the
+ beginning of their respective lines. The AIX sed will not recognize
+ them as comments otherwise :( The actual text stays indented for better
+ association with the commands they belong to.
+
+2006-03-20 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * tests/cmdAH.test, tests/fCmd.test, tests/unixFCmd.test:
+ * tests/winFCmd.test: Cleanup of some test constraint handling, and a
+ few other minor issues.
+
+2006-03-18 Vince Darley <vincentdarley@sourceforge.net>
+
+ * generic/tclFileName.c:
+ * doc/FileSystem.3:
+ * tests/fileName.test: Fix to [Bug 1084705] so that 'glob -nocomplain'
+ finally agrees with its documentation and doesn't swallow genuine
+ errors.
+
+ ***POTENTIAL INCOMPATIBILITY*** for scripts that assumed '-nocomplain'
+ removes the need for 'catch' to deal with non-understood path names.
+
+ Small optimisation to implementation of pattern==NULL case of TclGlob,
+ and clarification to the documentation. [Tclvfs bug 1405317]
+
+2006-03-18 Vince Darley <vincentdarley@sourceforge.net>
+
+ * tests/fCmd.test: added knownBug test case for [Bug 1394972]
+
+ * tests/winFCmd.test:
+ * tests/tcltest.test: corrected tests to better account for behaviour
+ of writable/non-writable directories on Windows 2000/XP. This, with the
+ previous patches, closes [Bug 1193497]
+
+2006-03-17 Andreas Kupries <andreask@activestate.com>
+
+ * doc/chan.n: Updated with documentation for the commands 'chan create'
+ and 'chan postevent' (TIP #219).
+
+ * doc/refchan.n: New file. Documentation of the command handler API for
+ reflected channels (TIP #219).
+
+2006-03-17 Joe Mistachkin <joe@mistachkin.com>
+
+ * unix/tclUnixPort.h: Include pthread.h prior to pthread_np.h [Bug
+ 1444692]
+
+ * win/tclWinTest.c: Corrected typo of 'initializeMutex' that prevented
+ successful compilation.
+
+2006-03-16 Andreas Kupries <andreask@activestate.com>
+
+ * doc/open.n: Documented the changed behaviour of 'a'ppend mode.
+
+ * tests/io.test (io-43.1 io-44.[1234]): Rewritten to be self-contained
+ with regard to setup and cleanup. [Bug 681793].
+
+ * generic/tclIOUtil.c (TclGetOpenMode): Added the flag O_APPEND to the
+ list of POSIX modes used when opening a file for 'a'ppend. This
+ enables the proper automatic seek-to-end-on-write by the OS. See [Bug
+ 680143] for longer discussion.
+
+ * tests/ioCmd.test (iocmd-13.7.*): Extended the testsuite to check the
+ new handling of 'a'.
+
+2006-03-15 Andreas Kupries <andreask@activestate.com>
+
+ * tests/socket.test: Extended the timeout in socket-11.11 from 10 to 40
+ seconds to allow for really slow machines. Also extended
+ actual/expected results with value of variable 'done' to make it
+ clearer when a test fails due to a timeout. [Bug 792159].
+
+2006-03-15 Vince Darley <vincentdarley@sourceforge.net>
+
+ * win/fCmd.test: add proper test constraints so the new tests don't run
+ on Unix.
+
+2006-03-14 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclPipe.c (TclCreatePipeline): Modified the processing of
+ pipebars to fail if the last bar is followed only by redirections. [Bug
+ 768659]
+
+2006-03-14 Andreas Kupries <andreask@activestate.com>
+
+ * doc/fconfigure.n: Clarified that -translation is binary is reported
+ as lf when queried, because it is identical to lf, except for the
+ special additional behaviour when setting it. [Bug 666770].
+
+2006-03-14 Andreas Kupries <andreask@activestate.com>
+
+ * doc/clock.n: Removed double-quotes around section title NAME; not
+ needed.
+ * unix/installManpage: Reverted part to handle double-quotes in section
+ NAME, chokes older sed installations.
+
+2006-03-14 Andreas Kupries <andreask@activestate.com>
+
+ * library/tm.tcl (::tcl::tm::Defaults): Fixed handling of environment
+ variable TCLX.y_TM_PATH, bad variable reference. [Bug 1448251]. Thanks
+ to Julian Noble.
+
+2006-03-14 Vince Darley <vincentdarley@sourceforge.net>
+
+ * win/tclWinFile.c: updated patch to deal with 'file writable' issues
+ on Windows XP/2000.
+ * generic/tclTest.c:
+ * unix/tclUnixTest.c:
+ * win/tclWinTest.c:
+ * tests/fCmd.test: updated test suite to deal with correct permissions
+ setting and differences between XP/2000 and 95/98 3 tests still fail;
+ to be dealt with shortly
+
+2006-03-13 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclEncoding.c: Report error when an escape encoding is
+ missing one of its sub-encodings [Bug 506653].
+
+ * unix/configure.in: Revert change from 2005-07-26 that sometimes
+ * unix/configure: added $prefix/share to the tcl_pkgPath. See
+ [Patch 1231015]. autoconf-2.59.
+
+2006-03-10 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclProc.c (ObjInterpProcEx):
+ * tests/apply.test (apply-5.1): Fix [apply] error messages so that they
+ quote the lambda expression [Bug 1447355].
+
+2006-03-10 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
+
+ -- Summary of changes fixing [Bug 1437595] --
+
+ * generic/tclEvent.c: Cosmetic touches and identation
+ * generic/tclInt.h: Added TclpFinalizeSockets() call.
+
+ * generic/tclIO.c: Calls TclpFinalizeSockets() as part of the
+ TclFinalizeIOSubsystem().
+
+ * unix/tclUnixSock.c: Added no-op TclpFinalizeSockets().
+
+ * win/tclWinPipe.c, win/tclWinSock.c: Finalization of sockets/pipes is
+ now solely done in TclpFinalizeSockets() and TclpFinalizePipes() and
+ not over the thread-exit handler, because the order of actions the Tcl
+ generic core will impose may result in cores/hangs if the thread exit
+ handler tears down corresponding subsystem(s) too early.
+
+2006-03-10 Vince Darley <vincentdarley@sourceforge.net>
+
+ * win/tclWinFile.c: previous patch breaks tests, so removed.
+
+2006-03-09 Vince Darley <vincentdarley@sourceforge.net>
+
+ * win/tclWinFile.c: fix to 'file writable' in certain XP directories.
+ Thanks to fvogel and jfg. [Patch 1344540] Modified patch to make use of
+ existing use of getSecurityProc.
+
+2006-03-08 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclExecute.c: Complete missing bit of TIP 215 implementation
+ * tests/incr.test:
+
+2006-03-07 Joe English <jenglish@users.sourceforge.net>
+
+ * unix/tcl.m4: Set SHLIB_LD_FLAGS='${LIBS}' on NetBSD, as per the other
+ *BSD variants [Bug 1334613].
+ * unix/configure: Regenerated.
+
+2006-03-07 Don Porter <dgp@users.sourceforge.net>
+
+ * changes: Update in prep. for 8.5a4 release.
+
+ * unix/Makefile.in: Package http 2.5.2 requires Tcl 8.4, so the
+ * win/Makefile.in: *.tm installation has to be placed in an "8.4"
+ directory, not an "8.2" directory.
+
+2006-03-06 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclBasic.c: Revised handling of TCL_EVAL_* flags to
+ * tests/parse.test: simplify TclEvalObjvInternal and to correct the
+ auto-loading of alias targets (parse-8.12). [Bug 1444291]
+
+2006-03-03 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclPathObj.c: Revised yesterday's fix for [Bug 1379287] to
+ work on Windows.
+
+ * generic/tclObj.c: Compatibility support for existing code that
+ calls Tcl_GetObjType("boolean").
+
+2006-03-02 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclPathObj.c: Fix for failed normalization of paths
+ * tests/fileSystem.test: with /../ that lead back to the root of
+ the filesystem, like /foo/.. [Bug 1379287]
+
+2006-03-01 Reinhard Max <max@suse.de>
+
+ * unix/installManPage: Fix the script for manpages that have quotes
+ around the .SH arguments, as doctools produces them [Bug 1292145]. Some
+ minor cleanups and improvements.
+
+2006-02-28 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclBasic.c: Corrections to be sure that TCL_EVAL_GLOBAL
+ * tests/namespace.test: evaluations act the same as [uplevel #0]
+ * tests/parse.test: evaluations, even when execution traces or
+ * tests/trace.test: invocations of [::unknown] are present.
+ [Bug 1439836].
+
+2006-02-22 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclBasic.c: Corrected a few bugs in how [namespace
+ * tests/namespace.test: unknown] interacts with TCL_EVAL_* flags.
+ [Patch 958222]
+
+2006-02-17 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIORChan.c: Revised error message generation and handling
+ * tests/ioCmd.test: of exceptional return codes in the channel
+ reflection layer. [Bug 1372348]
+
+2006-02-16 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIndexObj.c: Disallow the "ambiguous" error message
+ * tests/indexObj.test: when TCL_EXACT matching is requested.
+ * tests/ioCmd.test:
+
+2006-02-15 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIO.c: Made several routines tolerant of
+ * generic/tclIORChan.c: interp == NULL arguments. [Bug 1380662]
+ * generic/tclIOUtil.c:
+
+2006-02-09 Don Porter <dgp@users.sourceforge.net>
+
+ TIP#215 IMPLEMENTATION
+
+ * doc/incr.n: Revised [incr] to auto-initialize when varName
+ * generic/tclExecute.c: argument is unset. [Patch 1413115].
+ * generic/tclVar.c:
+ * tests/compile.test:
+ * tests/incr-old.test:
+ * tests/incr.test:
+ * tests/set.test:
+
+ * tests/main.test (Tcl_Main-6.7): Improved robustness of
+ command auto-completion test. [Bug 1422736].
+
+2006-02-08 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/Encoding.3, doc/encoding.n: Updates due to review at request of
+ Don Porter. Mostly minor changes.
+
+2006-02-08 Don Porter <dgp@users.sourceforge.net>
+
+ TIP#258 IMPLEMENTATION
+
+ * doc/Encoding.3: New subcommand [encoding dirs].
+ * doc/encoding.n: New routine Tcl_GetEncodingNameFromEnvironment
+ * generic/tcl.decls: Made public:
+ * generic/tclBasic.c: TclGetEncodingFromObj
+ * generic/tclCmdAH.c: -> Tcl_GetEncodingFromObj
+ * generic/tclEncoding.c:TclGetEncodingSearchPath
+ * generic/tclInt.decls: -> Tcl_GetEncodingSearchPath
+ * generic/tclInt.h: TclSetEncodingSearchPath
+ * generic/tclTest.c: -> Tcl_SetEncodingSearchPath
+ * library/init.tcl: Removed commands:
+ * tests/cmdAH.test: [tcl::unsupported::EncodingDirs]
+ * tests/encoding.test: [testencoding path] (Tcltest)
+ * unix/tclUnixInit.c: [Patch 1413934].
+ * win/tclWinInit.c:
+
+ * generic/tclDecls.h: make genstubs
+ * generic/tclIntDecls.h:
+ * generic/tclStubInit.c:
+
+2006-02-01 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclProc.c: minor improvements to [apply]
+ * tests/apply.test: new tests; apply-5.1 currently fails to indicate
+ missing work in error reporting
+
+2006-02-01 Don Porter <dgp@users.sourceforge.net>
+
+ TIP#194 IMPLEMENTATION
+
+ * doc/apply.n: (New file) New command [apply]. [Patch 944803].
+ * doc/uplevel.n:
+ * generic/tclBasic.c:
+ * generic/tclInt.h:
+ * generic/tclProc.c:
+ * tests/apply.test: (New file)
+ * tests/proc-old.test:
+ * tests/proc.test:
+
+ TIP#181 IMPLEMENTATION
+
+ * doc/Namespace.3: New command [namespace unknown]. New public C
+ * doc/namespace.n: routines Tcl_(Get|Set)NamespaceUnknownHandler.
+ * doc/unknown.n: [Patch 958222].
+ * generic/tcl.decls:
+ * generic/tclBasic.c:
+ * generic/tclInt.h:
+ * generic/tclNamesp.c:
+ * tests/namespace.test:
+
+ * generic/tclDecls.h: make genstubs
+ * generic/tclStubInit.c:
+
+ TIP#250 IMPLEMENTATION
+
+ * doc/namespace.n: New command [namespace upvar]. [Patch 1275435]
+ * generic/tclInt.h:
+ * generic/tclNamesp.c:
+ * generic/tclVar.c:
+ * tests/namespace.test:
+ * tests/upvar.test:
+
+2006-01-26 Donal K. Fellows <dkf@users.sf.net>
+
+ * doc/dict.n: Fixed silly bug in example. Thanks to Heiner Marxen
+ <heiner.marxen@unsel.de> for catching this! [Bug 1415725]
+
+2006-01-26 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * unix/tclUnixChan.c (TclpOpenFileChannel): Tidy up and comment the
+ mess to do with setting up serial channels. This (deliberately) breaks
+ a broken FreeBSD port, indicates what we're really doing, and reduces
+ the amount of conditional compilation sections for better maintenance.
+
+2006-01-25 Donal K. Fellows <dkf@users.sf.net>
+
+ * unix/tclUnixInit.c (TclpInitPlatform): Improved conditions on when to
+ update the FP rounding mode on FreeBSD, taken from FreeBSD port.
+
+2006-01-23 Donal K. Fellows <dkf@users.sf.net>
+
+ * tests/string.test (string-12.21): Added test for [Bug 1410553] based
+ on original bug report.
+
+2006-01-23 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclStringObj.c: fixed incorrect handling of internal rep in
+ Tcl_GetRange [Bug 1410553]. Thanks to twylite and Peter Spjuth.
+
+ * generic/tclProc.c: fixed args handling for precompiled bodies [Bug
+ 1412695]; thanks to Uwe Traum.
+
+2006-01-16 Reinhard Max <max@suse.de>
+
+ * generic/tclPipe.c (FileForRedirect): Prevent nameString from being
+ freed without having been initialized.
+ * tests/exec.test: Added a test for the above.
+
+2006-01-12 Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
+
+ * generic/tclPathObj.c (Tcl_FSGetInternalRep): backported patch from
+ core-8-4-branch. A freed pointer has been overwritten causing all sorts
+ of coredumps.
+
+2006-01-12 Vince Darley <vincentdarley@sourceforge.net>
+
+ * win/tclWinFile.c: fix to sharing violation [Bug 1366227]
+
+2006-01-11 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclBasic.c: Moved Tcl_LogCommandInfo from tclBasic.c to
+ * generic/tclNamesp.c: tclNamesp.c to get access to identifier with
+ * tests/error.test (error-7.0): file scope. Added check for traces on
+ ::errorInfo, and when present fall back to contruction of the stack
+ trace in the variable so that write trace notification timings are
+ compatible with earlier Tcl releases. This reduces, but does not
+ completely eliminate the ***POTENTIAL INCOMPATIBILITY*** created by the
+ 2004-10-15 commit. [Bug 1397843].
+
+2006-01-10 Daniel Steffen <das@users.sourceforge.net>
+
+ * unix/configure: add caching, use AC_CACHE_CHECK instead of
+ * unix/configure.in: AC_CACHE_VAL where possible, consistent message
+ * unix/tcl.m4: quoting, sync relevant tclconfig/tcl.m4 changes
+ and gratuitous formatting differences, fix SC_CONFIG_MANPAGES with
+ default argument, Darwin improvements to SC_LOAD_*CONFIG.
+
+2006-01-09 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclNamesp.c (NamespaceInscopeCmd): [namespace inscope]
+ * tests/namespace.test: commands were not reported by [info level]
+ [Bug 1400572].
+
+2006-01-09 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * generic/tclTrace.c: Stop exporting the guts of the trace command;
+ nothing outside this file needs to see it. [Bug 971336]
+
+2006-01-05 Donal K. Fellows <donal.k.fellows@manchester.ac.uk>
+
+ * unix/tcl.m4 (TCL_CONFIG_SYSTEM): Factor out the code to determine
+ the operating system version number, as it was replicated in several
+ places.
+
+2006-01-04 David Gravereaux <davygrvy@pobox.com>
+
+ * win/tclAppInit.c: WIN32 native console signal handler removed. This
+ was found to be interfering with TWAPI extension one. IMO, special
+ services such as signal handlers should best be done with extensions to
+ the core after discussions on c.l.t. about Roy Terry's tclsh children
+ of a real windows service shell.
+
+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" ***
+ ******************************************************************
diff --git a/generic/tclNotify.c b/generic/tclNotify.c
index d8de8d8..c5a0c3a 100644
--- a/generic/tclNotify.c
+++ b/generic/tclNotify.c
@@ -1,1123 +1,1127 @@
-/*
- * tclNotify.c --
- *
- * This file implements the generic portion of the Tcl notifier. The
- * notifier is lowest-level part of the event system. It manages an event
- * queue that holds Tcl_Event structures. The platform specific portion
- * of the notifier is defined in the tcl*Notify.c files in each platform
- * directory.
- *
- * Copyright (c) 1995-1997 Sun Microsystems, Inc.
- * Copyright (c) 1998 by Scriptics Corporation.
- * Copyright (c) 2003 by Kevin B. Kenny. All rights reserved.
- *
- * See the file "license.terms" for information on usage and redistribution of
- * this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tclNotify.c,v 1.20 2005/11/02 00:55:06 dkf Exp $
- */
-
-#include "tclInt.h"
-
-extern TclStubs tclStubs;
-
-/*
- * For each event source (created with Tcl_CreateEventSource) there is a
- * structure of the following type:
- */
-
-typedef struct EventSource {
- Tcl_EventSetupProc *setupProc;
- Tcl_EventCheckProc *checkProc;
- ClientData clientData;
- struct EventSource *nextPtr;
-} EventSource;
-
-/*
- * The following structure keeps track of the state of the notifier on a
- * per-thread basis. The first three elements keep track of the event queue.
- * In addition to the first (next to be serviced) and last events in the
- * queue, we keep track of a "marker" event. This provides a simple priority
- * mechanism whereby events can be inserted at the front of the queue but
- * behind all other high-priority events already in the queue (this is used
- * for things like a sequence of Enter and Leave events generated during a
- * grab in Tk). These elements are protected by the queueMutex so that any
- * thread can queue an event on any notifier. Note that all of the values in
- * this structure will be initialized to 0.
- */
-
-typedef struct ThreadSpecificData {
- Tcl_Event *firstEventPtr; /* First pending event, or NULL if none. */
- Tcl_Event *lastEventPtr; /* Last pending event, or NULL if none. */
- Tcl_Event *markerEventPtr; /* Last high-priority event in queue, or NULL
- * if none. */
- Tcl_Mutex queueMutex; /* Mutex to protect access to the previous
- * three fields. */
- int serviceMode; /* One of TCL_SERVICE_NONE or
- * TCL_SERVICE_ALL. */
- int blockTimeSet; /* 0 means there is no maximum block time:
- * block forever. */
- Tcl_Time blockTime; /* If blockTimeSet is 1, gives the maximum
- * elapsed time for the next block. */
- int inTraversal; /* 1 if Tcl_SetMaxBlockTime is being called
- * during an event source traversal. */
- EventSource *firstEventSourcePtr;
- /* Pointer to first event source in list of
- * event sources for this thread. */
- Tcl_ThreadId threadId; /* Thread that owns this notifier instance. */
- ClientData clientData; /* Opaque handle for platform specific
- * notifier. */
- int initialized; /* 1 if notifier has been initialized. */
- struct ThreadSpecificData *nextPtr;
- /* Next notifier in global list of notifiers.
- * Access is controlled by the listLock global
- * mutex. */
-} ThreadSpecificData;
-
-static Tcl_ThreadDataKey dataKey;
-
-/*
- * Global list of notifiers. Access to this list is controlled by the listLock
- * mutex. If this becomes a performance bottleneck, this could be replaced
- * with a hashtable.
- */
-
-static ThreadSpecificData *firstNotifierPtr = NULL;
-TCL_DECLARE_MUTEX(listLock)
-
-/*
- * Declarations for routines used only in this file.
- */
-
-static void QueueEvent(ThreadSpecificData *tsdPtr,
- Tcl_Event* evPtr, Tcl_QueuePosition position);
-
-/*
- *----------------------------------------------------------------------
- *
- * TclInitNotifier --
- *
- * Initialize the thread local data structures for the notifier
- * subsystem.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Adds the current thread to the global list of notifiers.
- *
- *----------------------------------------------------------------------
- */
-
-void
-TclInitNotifier(void)
-{
- ThreadSpecificData *tsdPtr;
- Tcl_ThreadId threadId = Tcl_GetCurrentThread();
-
- Tcl_MutexLock(&listLock);
- for (tsdPtr = firstNotifierPtr; tsdPtr && tsdPtr->threadId != threadId;
- tsdPtr = tsdPtr->nextPtr) {
- /* Empty loop body. */
- }
-
- if (NULL == tsdPtr) {
- /*
- * Notifier not yet initialized in this thread.
- */
-
- tsdPtr = TCL_TSD_INIT(&dataKey);
- tsdPtr->threadId = threadId;
- tsdPtr->clientData = tclStubs.tcl_InitNotifier();
- tsdPtr->initialized = 1;
- tsdPtr->nextPtr = firstNotifierPtr;
- firstNotifierPtr = tsdPtr;
- }
- Tcl_MutexUnlock(&listLock);
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * TclFinalizeNotifier --
- *
- * Finalize the thread local data structures for the notifier subsystem.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Removes the notifier associated with the current thread from the
- * global notifier list. This is done only if the notifier was
- * initialized for this thread by call to TclInitNotifier(). This is
- * always true for threads which have been seeded with an Tcl
- * interpreter, since the call to Tcl_CreateInterp will, among other
- * things, call TclInitializeSubsystems() and this one will, in turn,
- * call the TclInitNotifier() for the thread. For threads created without
- * the Tcl interpreter, though, nobody is explicitly nor implicitly
- * calling the TclInitNotifier hence, TclFinalizeNotifier should not be
- * performed at all.
- *
- *----------------------------------------------------------------------
- */
-
-void
-TclFinalizeNotifier(void)
-{
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
- ThreadSpecificData **prevPtrPtr;
- Tcl_Event *evPtr, *hold;
-
- if (!tsdPtr->initialized) {
- return; /* Notifier not initialized for the current thread */
- }
-
- Tcl_MutexLock(&(tsdPtr->queueMutex));
- for (evPtr = tsdPtr->firstEventPtr; evPtr != NULL; ) {
- hold = evPtr;
- evPtr = evPtr->nextPtr;
- ckfree((char *) hold);
- }
- tsdPtr->firstEventPtr = NULL;
- tsdPtr->lastEventPtr = NULL;
- Tcl_MutexUnlock(&(tsdPtr->queueMutex));
-
- Tcl_MutexLock(&listLock);
-
- if (tclStubs.tcl_FinalizeNotifier) {
- tclStubs.tcl_FinalizeNotifier(tsdPtr->clientData);
- }
- Tcl_MutexFinalize(&(tsdPtr->queueMutex));
- for (prevPtrPtr = &firstNotifierPtr; *prevPtrPtr != NULL;
- prevPtrPtr = &((*prevPtrPtr)->nextPtr)) {
- if (*prevPtrPtr == tsdPtr) {
- *prevPtrPtr = tsdPtr->nextPtr;
- break;
- }
- }
- tsdPtr->initialized = 0;
-
- Tcl_MutexUnlock(&listLock);
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_SetNotifier --
- *
- * Install a set of alternate functions for use with the notifier. In
- * particular, this can be used to install the Xt-based notifier for use
- * with the Browser plugin.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Overstomps part of the stub vector. This relies on hooks added to the
- * default functions in case those are called directly (i.e., not through
- * the stub table.)
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_SetNotifier(
- Tcl_NotifierProcs *notifierProcPtr)
-{
-#if !defined(__WIN32__) /* UNIX */
- tclStubs.tcl_CreateFileHandler = notifierProcPtr->createFileHandlerProc;
- tclStubs.tcl_DeleteFileHandler = notifierProcPtr->deleteFileHandlerProc;
-#endif
- tclStubs.tcl_SetTimer = notifierProcPtr->setTimerProc;
- tclStubs.tcl_WaitForEvent = notifierProcPtr->waitForEventProc;
- tclStubs.tcl_InitNotifier = notifierProcPtr->initNotifierProc;
- tclStubs.tcl_FinalizeNotifier = notifierProcPtr->finalizeNotifierProc;
- tclStubs.tcl_AlertNotifier = notifierProcPtr->alertNotifierProc;
- tclStubs.tcl_ServiceModeHook = notifierProcPtr->serviceModeHookProc;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_CreateEventSource --
- *
- * This function is invoked to create a new source of events. The source
- * is identified by a function that gets invoked during Tcl_DoOneEvent to
- * check for events on that source and queue them.
- *
- *
- * Results:
- * None.
- *
- * Side effects:
- * SetupProc and checkProc will be invoked each time that Tcl_DoOneEvent
- * runs out of things to do. SetupProc will be invoked before
- * Tcl_DoOneEvent calls select or whatever else it uses to wait for
- * events. SetupProc typically calls functions like Tcl_SetMaxBlockTime
- * to indicate what to wait for.
- *
- * CheckProc is called after select or whatever operation was actually
- * used to wait. It figures out whether anything interesting actually
- * happened (e.g. by calling Tcl_AsyncReady), and then calls
- * Tcl_QueueEvent to queue any events that are ready.
- *
- * Each of these functions is passed two arguments, e.g.
- * (*checkProc)(ClientData clientData, int flags));
- * ClientData is the same as the clientData argument here, and flags is a
- * combination of things like TCL_FILE_EVENTS that indicates what events
- * are of interest: setupProc and checkProc use flags to figure out
- * whether their events are relevant or not.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_CreateEventSource(
- Tcl_EventSetupProc *setupProc,
- /* Function to invoke to figure out what to
- * wait for. */
- Tcl_EventCheckProc *checkProc,
- /* Function to call after waiting to see what
- * happened. */
- ClientData clientData) /* One-word argument to pass to setupProc and
- * checkProc. */
-{
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
- EventSource *sourcePtr = (EventSource *) ckalloc(sizeof(EventSource));
-
- sourcePtr->setupProc = setupProc;
- sourcePtr->checkProc = checkProc;
- sourcePtr->clientData = clientData;
- sourcePtr->nextPtr = tsdPtr->firstEventSourcePtr;
- tsdPtr->firstEventSourcePtr = sourcePtr;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_DeleteEventSource --
- *
- * This function is invoked to delete the source of events given by proc
- * and clientData.
- *
- * Results:
- * None.
- *
- * Side effects:
- * The given event source is cancelled, so its function will never again
- * be called. If no such source exists, nothing happens.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_DeleteEventSource(
- Tcl_EventSetupProc *setupProc,
- /* Function to invoke to figure out what to
- * wait for. */
- Tcl_EventCheckProc *checkProc,
- /* Function to call after waiting to see what
- * happened. */
- ClientData clientData) /* One-word argument to pass to setupProc and
- * checkProc. */
-{
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
- EventSource *sourcePtr, *prevPtr;
-
- for (sourcePtr = tsdPtr->firstEventSourcePtr, prevPtr = NULL;
- sourcePtr != NULL;
- prevPtr = sourcePtr, sourcePtr = sourcePtr->nextPtr) {
- if ((sourcePtr->setupProc != setupProc)
- || (sourcePtr->checkProc != checkProc)
- || (sourcePtr->clientData != clientData)) {
- continue;
- }
- if (prevPtr == NULL) {
- tsdPtr->firstEventSourcePtr = sourcePtr->nextPtr;
- } else {
- prevPtr->nextPtr = sourcePtr->nextPtr;
- }
- ckfree((char *) sourcePtr);
- return;
- }
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_QueueEvent --
- *
- * Queue an event on the event queue associated with the current thread.
- *
- * Results:
- * None.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_QueueEvent(
- Tcl_Event* evPtr, /* Event to add to queue. The storage space
- * must have been allocated the caller with
- * malloc (ckalloc), and it becomes the
- * property of the event queue. It will be
- * freed after the event has been handled. */
- Tcl_QueuePosition position) /* One of TCL_QUEUE_TAIL, TCL_QUEUE_HEAD,
- * TCL_QUEUE_MARK. */
-{
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
- QueueEvent(tsdPtr, evPtr, position);
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_ThreadQueueEvent --
- *
- * Queue an event on the specified thread's event queue.
- *
- * Results:
- * None.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_ThreadQueueEvent(
- Tcl_ThreadId threadId, /* Identifier for thread to use. */
- Tcl_Event *evPtr, /* Event to add to queue. The storage space
- * must have been allocated the caller with
- * malloc (ckalloc), and it becomes the
- * property of the event queue. It will be
- * freed after the event has been handled. */
- Tcl_QueuePosition position) /* One of TCL_QUEUE_TAIL, TCL_QUEUE_HEAD,
- * TCL_QUEUE_MARK. */
-{
- ThreadSpecificData *tsdPtr;
-
- /*
- * Find the notifier associated with the specified thread.
- */
-
- Tcl_MutexLock(&listLock);
- for (tsdPtr = firstNotifierPtr; tsdPtr && tsdPtr->threadId != threadId;
- tsdPtr = tsdPtr->nextPtr) {
- /* Empty loop body. */
- }
-
- /*
- * Queue the event if there was a notifier associated with the thread.
- */
-
- if (tsdPtr) {
- QueueEvent(tsdPtr, evPtr, position);
- }
- Tcl_MutexUnlock(&listLock);
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * QueueEvent --
- *
- * Insert an event into the specified thread's event queue at one of
- * three positions: the head, the tail, or before a floating marker.
- * Events inserted before the marker will be processed in first-in-
- * first-out order, but before any events inserted at the tail of the
- * queue. Events inserted at the head of the queue will be processed in
- * last-in-first-out order.
- *
- * Results:
- * None.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-static void
-QueueEvent(
- ThreadSpecificData *tsdPtr, /* Handle to thread local data that indicates
- * which event queue to use. */
- Tcl_Event *evPtr, /* Event to add to queue. The storage space
- * must have been allocated the caller with
- * malloc (ckalloc), and it becomes the
- * property of the event queue. It will be
- * freed after the event has been handled. */
- Tcl_QueuePosition position) /* One of TCL_QUEUE_TAIL, TCL_QUEUE_HEAD,
- * TCL_QUEUE_MARK. */
-{
- Tcl_MutexLock(&(tsdPtr->queueMutex));
- if (position == TCL_QUEUE_TAIL) {
- /*
- * Append the event on the end of the queue.
- */
-
- evPtr->nextPtr = NULL;
- if (tsdPtr->firstEventPtr == NULL) {
- tsdPtr->firstEventPtr = evPtr;
- } else {
- tsdPtr->lastEventPtr->nextPtr = evPtr;
- }
- tsdPtr->lastEventPtr = evPtr;
- } else if (position == TCL_QUEUE_HEAD) {
- /*
- * Push the event on the head of the queue.
- */
-
- evPtr->nextPtr = tsdPtr->firstEventPtr;
- if (tsdPtr->firstEventPtr == NULL) {
- tsdPtr->lastEventPtr = evPtr;
- }
- tsdPtr->firstEventPtr = evPtr;
- } else if (position == TCL_QUEUE_MARK) {
- /*
- * Insert the event after the current marker event and advance the
- * marker to the new event.
- */
-
- if (tsdPtr->markerEventPtr == NULL) {
- evPtr->nextPtr = tsdPtr->firstEventPtr;
- tsdPtr->firstEventPtr = evPtr;
- } else {
- evPtr->nextPtr = tsdPtr->markerEventPtr->nextPtr;
- tsdPtr->markerEventPtr->nextPtr = evPtr;
- }
- tsdPtr->markerEventPtr = evPtr;
- if (evPtr->nextPtr == NULL) {
- tsdPtr->lastEventPtr = evPtr;
- }
- }
- Tcl_MutexUnlock(&(tsdPtr->queueMutex));
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_DeleteEvents --
- *
- * Calls a function for each event in the queue and deletes those for
- * which the function returns 1. Events for which the function returns 0
- * are left in the queue. Operates on the queue associated with the
- * current thread.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Potentially removes one or more events from the event queue.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_DeleteEvents(
- Tcl_EventDeleteProc *proc, /* The function to call. */
- ClientData clientData) /* The type-specific data. */
-{
- Tcl_Event *evPtr, *prevPtr, *hold;
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
-
- Tcl_MutexLock(&(tsdPtr->queueMutex));
- for (prevPtr=NULL, evPtr=tsdPtr->firstEventPtr; evPtr!=NULL; ) {
- if ((*proc) (evPtr, clientData) == 1) {
- if (tsdPtr->firstEventPtr == evPtr) {
- tsdPtr->firstEventPtr = evPtr->nextPtr;
- } else {
- prevPtr->nextPtr = evPtr->nextPtr;
- }
- if (evPtr->nextPtr == NULL) {
- tsdPtr->lastEventPtr = prevPtr;
- }
- if (tsdPtr->markerEventPtr == evPtr) {
- tsdPtr->markerEventPtr = prevPtr;
- }
- hold = evPtr;
- evPtr = evPtr->nextPtr;
- ckfree((char *) hold);
- } else {
- prevPtr = evPtr;
- evPtr = evPtr->nextPtr;
- }
- }
- Tcl_MutexUnlock(&(tsdPtr->queueMutex));
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_ServiceEvent --
- *
- * Process one event from the event queue, or invoke an asynchronous
- * event handler. Operates on event queue for current thread.
- *
- * Results:
- * The return value is 1 if the function actually found an event to
- * process. If no processing occurred, then 0 is returned.
- *
- * Side effects:
- * Invokes all of the event handlers for the highest priority event in
- * the event queue. May collapse some events into a single event or
- * discard stale events.
- *
- *----------------------------------------------------------------------
- */
-
-int
-Tcl_ServiceEvent(
- int flags) /* Indicates what events should be processed.
- * May be any combination of TCL_WINDOW_EVENTS
- * TCL_FILE_EVENTS, TCL_TIMER_EVENTS, or other
- * flags defined elsewhere. Events not
- * matching this will be skipped for
- * processing later. */
-{
- Tcl_Event *evPtr, *prevPtr;
- Tcl_EventProc *proc;
- int result;
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
-
- /*
- * Asynchronous event handlers are considered to be the highest priority
- * events, and so must be invoked before we process events on the event
- * queue.
- */
-
- if (Tcl_AsyncReady()) {
- (void) Tcl_AsyncInvoke(NULL, 0);
- return 1;
- }
-
- /*
- * No event flags is equivalent to TCL_ALL_EVENTS.
- */
-
- if ((flags & TCL_ALL_EVENTS) == 0) {
- flags |= TCL_ALL_EVENTS;
- }
-
- /*
- * Loop through all the events in the queue until we find one that can
- * actually be handled.
- */
-
- Tcl_MutexLock(&(tsdPtr->queueMutex));
- for (evPtr = tsdPtr->firstEventPtr; evPtr != NULL;
- evPtr = evPtr->nextPtr) {
- /*
- * Call the handler for the event. If it actually handles the event
- * then free the storage for the event. There are two tricky things
- * here, both stemming from the fact that the event code may be
- * re-entered while servicing the event:
- *
- * 1. Set the "proc" field to NULL. This is a signal to ourselves
- * that we shouldn't reexecute the handler if the event loop is
- * re-entered.
- * 2. When freeing the event, must search the queue again from the
- * front to find it. This is because the event queue could change
- * almost arbitrarily while handling the event, so we can't depend
- * on pointers found now still being valid when the handler
- * returns.
- */
-
- proc = evPtr->proc;
- if (proc == NULL) {
- continue;
- }
- evPtr->proc = NULL;
-
- /*
- * Release the lock before calling the event function. This allows
- * other threads to post events if we enter a recursive event loop in
- * this thread. Note that we are making the assumption that if the
- * proc returns 0, the event is still in the list.
- */
-
- Tcl_MutexUnlock(&(tsdPtr->queueMutex));
- result = (*proc)(evPtr, flags);
- Tcl_MutexLock(&(tsdPtr->queueMutex));
-
- if (result) {
- /*
- * The event was processed, so remove it from the queue.
- */
-
- if (tsdPtr->firstEventPtr == evPtr) {
- tsdPtr->firstEventPtr = evPtr->nextPtr;
- if (evPtr->nextPtr == NULL) {
- tsdPtr->lastEventPtr = NULL;
- }
- if (tsdPtr->markerEventPtr == evPtr) {
- tsdPtr->markerEventPtr = NULL;
- }
- } else {
- for (prevPtr = tsdPtr->firstEventPtr;
- prevPtr && prevPtr->nextPtr != evPtr;
- prevPtr = prevPtr->nextPtr) {
- /* Empty loop body. */
- }
- if (prevPtr) {
- prevPtr->nextPtr = evPtr->nextPtr;
- if (evPtr->nextPtr == NULL) {
- tsdPtr->lastEventPtr = prevPtr;
- }
- if (tsdPtr->markerEventPtr == evPtr) {
- tsdPtr->markerEventPtr = prevPtr;
- }
- } else {
- evPtr = NULL;
- }
- }
- if (evPtr) {
- ckfree((char *) evPtr);
- }
- Tcl_MutexUnlock(&(tsdPtr->queueMutex));
- return 1;
- } else {
- /*
- * The event wasn't actually handled, so we have to restore the
- * proc field to allow the event to be attempted again.
- */
-
- evPtr->proc = proc;
- }
- }
- Tcl_MutexUnlock(&(tsdPtr->queueMutex));
- return 0;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_GetServiceMode --
- *
- * This routine returns the current service mode of the notifier.
- *
- * Results:
- * Returns either TCL_SERVICE_ALL or TCL_SERVICE_NONE.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-int
-Tcl_GetServiceMode(void)
-{
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
-
- return tsdPtr->serviceMode;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_SetServiceMode --
- *
- * This routine sets the current service mode of the tsdPtr->
- *
- * Results:
- * Returns the previous service mode.
- *
- * Side effects:
- * Invokes the notifier service mode hook function.
- *
- *----------------------------------------------------------------------
- */
-
-int
-Tcl_SetServiceMode(
- int mode) /* New service mode: TCL_SERVICE_ALL or
- * TCL_SERVICE_NONE */
-{
- int oldMode;
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
-
- oldMode = tsdPtr->serviceMode;
- tsdPtr->serviceMode = mode;
- if (tclStubs.tcl_ServiceModeHook) {
- tclStubs.tcl_ServiceModeHook(mode);
- }
- return oldMode;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_SetMaxBlockTime --
- *
- * This function is invoked by event sources to tell the notifier how
- * long it may block the next time it blocks. The timePtr argument gives
- * a maximum time; the actual time may be less if some other event source
- * requested a smaller time.
- *
- * Results:
- * None.
- *
- * Side effects:
- * May reduce the length of the next sleep in the tsdPtr->
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_SetMaxBlockTime(
- Tcl_Time *timePtr) /* Specifies a maximum elapsed time for the
- * next blocking operation in the event
- * tsdPtr-> */
-{
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
-
- if (!tsdPtr->blockTimeSet || (timePtr->sec < tsdPtr->blockTime.sec)
- || ((timePtr->sec == tsdPtr->blockTime.sec)
- && (timePtr->usec < tsdPtr->blockTime.usec))) {
- tsdPtr->blockTime = *timePtr;
- tsdPtr->blockTimeSet = 1;
- }
-
- /*
- * If we are called outside an event source traversal, set the timeout
- * immediately.
- */
-
- if (!tsdPtr->inTraversal) {
- if (tsdPtr->blockTimeSet) {
- Tcl_SetTimer(&tsdPtr->blockTime);
- } else {
- Tcl_SetTimer(NULL);
- }
- }
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_DoOneEvent --
- *
- * Process a single event of some sort. If there's no work to do, wait
- * for an event to occur, then process it.
- *
- * Results:
- * The return value is 1 if the function actually found an event to
- * process. If no processing occurred, then 0 is returned (this can
- * happen if the TCL_DONT_WAIT flag is set or if there are no event
- * handlers to wait for in the set specified by flags).
- *
- * Side effects:
- * May delay execution of process while waiting for an event, unless
- * TCL_DONT_WAIT is set in the flags argument. Event sources are invoked
- * to check for and queue events. Event handlers may produce arbitrary
- * side effects.
- *
- *----------------------------------------------------------------------
- */
-
-int
-Tcl_DoOneEvent(
- int flags) /* Miscellaneous flag values: may be any
- * combination of TCL_DONT_WAIT,
- * TCL_WINDOW_EVENTS, TCL_FILE_EVENTS,
- * TCL_TIMER_EVENTS, TCL_IDLE_EVENTS, or
- * others defined by event sources. */
-{
- int result = 0, oldMode;
- EventSource *sourcePtr;
- Tcl_Time *timePtr;
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
-
- /*
- * The first thing we do is to service any asynchronous event handlers.
- */
-
- if (Tcl_AsyncReady()) {
- (void) Tcl_AsyncInvoke(NULL, 0);
- return 1;
- }
-
- /*
- * No event flags is equivalent to TCL_ALL_EVENTS.
- */
-
- if ((flags & TCL_ALL_EVENTS) == 0) {
- flags |= TCL_ALL_EVENTS;
- }
-
- /*
- * Set the service mode to none so notifier event routines won't try to
- * service events recursively.
- */
-
- oldMode = tsdPtr->serviceMode;
- tsdPtr->serviceMode = TCL_SERVICE_NONE;
-
- /*
- * The core of this function is an infinite loop, even though we only
- * service one event. The reason for this is that we may be processing
- * events that don't do anything inside of Tcl.
- */
-
- while (1) {
- /*
- * If idle events are the only things to service, skip the main part
- * of the loop and go directly to handle idle events (i.e. don't wait
- * even if TCL_DONT_WAIT isn't set).
- */
-
- if ((flags & TCL_ALL_EVENTS) == TCL_IDLE_EVENTS) {
- flags = TCL_IDLE_EVENTS | TCL_DONT_WAIT;
- goto idleEvents;
- }
-
- /*
- * Ask Tcl to service a queued event, if there are any.
- */
-
- if (Tcl_ServiceEvent(flags)) {
- result = 1;
- break;
- }
-
- /*
- * If TCL_DONT_WAIT is set, be sure to poll rather than blocking,
- * otherwise reset the block time to infinity.
- */
-
- if (flags & TCL_DONT_WAIT) {
- tsdPtr->blockTime.sec = 0;
- tsdPtr->blockTime.usec = 0;
- tsdPtr->blockTimeSet = 1;
- } else {
- tsdPtr->blockTimeSet = 0;
- }
-
- /*
- * Set up all the event sources for new events. This will cause the
- * block time to be updated if necessary.
- */
-
- tsdPtr->inTraversal = 1;
- for (sourcePtr = tsdPtr->firstEventSourcePtr; sourcePtr != NULL;
- sourcePtr = sourcePtr->nextPtr) {
- if (sourcePtr->setupProc) {
- (sourcePtr->setupProc)(sourcePtr->clientData, flags);
- }
- }
- tsdPtr->inTraversal = 0;
-
- if ((flags & TCL_DONT_WAIT) || tsdPtr->blockTimeSet) {
- timePtr = &tsdPtr->blockTime;
- } else {
- timePtr = NULL;
- }
-
- /*
- * Wait for a new event or a timeout. If Tcl_WaitForEvent returns -1,
- * we should abort Tcl_DoOneEvent.
- */
-
- result = Tcl_WaitForEvent(timePtr);
- if (result < 0) {
- result = 0;
- break;
- }
-
- /*
- * Check all the event sources for new events.
- */
-
- for (sourcePtr = tsdPtr->firstEventSourcePtr; sourcePtr != NULL;
- sourcePtr = sourcePtr->nextPtr) {
- if (sourcePtr->checkProc) {
- (sourcePtr->checkProc)(sourcePtr->clientData, flags);
- }
- }
-
- /*
- * Check for events queued by the notifier or event sources.
- */
-
- if (Tcl_ServiceEvent(flags)) {
- result = 1;
- break;
- }
-
- /*
- * We've tried everything at this point, but nobody we know about had
- * anything to do. Check for idle events. If none, either quit or go
- * back to the top and try again.
- */
-
- idleEvents:
- if (flags & TCL_IDLE_EVENTS) {
- if (TclServiceIdle()) {
- result = 1;
- break;
- }
- }
- if (flags & TCL_DONT_WAIT) {
- break;
- }
-
- /*
- * If Tcl_WaitForEvent has returned 1, indicating that one system
- * event has been dispatched (and thus that some Tcl code might have
- * been indirectly executed), we break out of the loop. We do this to
- * give VwaitCmd for instance a chance to check if that system event
- * had the side effect of changing the variable (so the vwait can
- * return and unwind properly).
- *
- * NB: We will process idle events if any first, because otherwise we
- * might never do the idle events if the notifier always gets
- * system events.
- */
-
- if (result) {
- break;
- }
- }
-
- tsdPtr->serviceMode = oldMode;
- return result;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_ServiceAll --
- *
- * This routine checks all of the event sources, processes events that
- * are on the Tcl event queue, and then calls the any idle handlers.
- * Platform specific notifier callbacks that generate events should call
- * this routine before returning to the system in order to ensure that
- * Tcl gets a chance to process the new events.
- *
- * Results:
- * Returns 1 if an event or idle handler was invoked, else 0.
- *
- * Side effects:
- * Anything that an event or idle handler may do.
- *
- *----------------------------------------------------------------------
- */
-
-int
-Tcl_ServiceAll(void)
-{
- int result = 0;
- EventSource *sourcePtr;
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
-
- if (tsdPtr->serviceMode == TCL_SERVICE_NONE) {
- return result;
- }
-
- /*
- * We need to turn off event servicing like we to in Tcl_DoOneEvent, to
- * avoid recursive calls.
- */
-
- tsdPtr->serviceMode = TCL_SERVICE_NONE;
-
- /*
- * Check async handlers first.
- */
-
- if (Tcl_AsyncReady()) {
- (void) Tcl_AsyncInvoke(NULL, 0);
- }
-
- /*
- * Make a single pass through all event sources, queued events, and idle
- * handlers. Note that we wait to update the notifier timer until the end
- * so we can avoid multiple changes.
- */
-
- tsdPtr->inTraversal = 1;
- tsdPtr->blockTimeSet = 0;
-
- for (sourcePtr = tsdPtr->firstEventSourcePtr; sourcePtr != NULL;
- sourcePtr = sourcePtr->nextPtr) {
- if (sourcePtr->setupProc) {
- (sourcePtr->setupProc)(sourcePtr->clientData, TCL_ALL_EVENTS);
- }
- }
- for (sourcePtr = tsdPtr->firstEventSourcePtr; sourcePtr != NULL;
- sourcePtr = sourcePtr->nextPtr) {
- if (sourcePtr->checkProc) {
- (sourcePtr->checkProc)(sourcePtr->clientData, TCL_ALL_EVENTS);
- }
- }
-
- while (Tcl_ServiceEvent(0)) {
- result = 1;
- }
- if (TclServiceIdle()) {
- result = 1;
- }
-
- if (!tsdPtr->blockTimeSet) {
- Tcl_SetTimer(NULL);
- } else {
- Tcl_SetTimer(&tsdPtr->blockTime);
- }
- tsdPtr->inTraversal = 0;
- tsdPtr->serviceMode = TCL_SERVICE_ALL;
- return result;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_ThreadAlert --
- *
- * This function wakes up the notifier associated with the specified
- * thread (if there is one).
- *
- * Results:
- * None.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_ThreadAlert(
- Tcl_ThreadId threadId) /* Identifier for thread to use. */
-{
- ThreadSpecificData *tsdPtr;
-
- /*
- * Find the notifier associated with the specified thread. Note that we
- * need to hold the listLock while calling Tcl_AlertNotifier to avoid a
- * race condition where the specified thread might destroy its notifier.
- */
-
- Tcl_MutexLock(&listLock);
- for (tsdPtr = firstNotifierPtr; tsdPtr; tsdPtr = tsdPtr->nextPtr) {
- if (tsdPtr->threadId == threadId) {
- if (tclStubs.tcl_AlertNotifier) {
- tclStubs.tcl_AlertNotifier(tsdPtr->clientData);
- }
- break;
- }
- }
- Tcl_MutexUnlock(&listLock);
-}
-
-/*
- * Local Variables:
- * mode: c
- * c-basic-offset: 4
- * fill-column: 78
- * End:
- */
+/*
+ * tclNotify.c --
+ *
+ * This file implements the generic portion of the Tcl notifier. The
+ * notifier is lowest-level part of the event system. It manages an event
+ * queue that holds Tcl_Event structures. The platform specific portion
+ * of the notifier is defined in the tcl*Notify.c files in each platform
+ * directory.
+ *
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc.
+ * Copyright (c) 1998 by Scriptics Corporation.
+ * Copyright (c) 2003 by Kevin B. Kenny. All rights reserved.
+ *
+ * See the file "license.terms" for information on usage and redistribution of
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: @(#) $Id: tclNotify.c,v 1.21 2006/09/25 00:09:34 dkf Exp $
+ */
+
+#include "tclInt.h"
+
+extern TclStubs tclStubs;
+
+/*
+ * For each event source (created with Tcl_CreateEventSource) there is a
+ * structure of the following type:
+ */
+
+typedef struct EventSource {
+ Tcl_EventSetupProc *setupProc;
+ Tcl_EventCheckProc *checkProc;
+ ClientData clientData;
+ struct EventSource *nextPtr;
+} EventSource;
+
+/*
+ * The following structure keeps track of the state of the notifier on a
+ * per-thread basis. The first three elements keep track of the event queue.
+ * In addition to the first (next to be serviced) and last events in the
+ * queue, we keep track of a "marker" event. This provides a simple priority
+ * mechanism whereby events can be inserted at the front of the queue but
+ * behind all other high-priority events already in the queue (this is used
+ * for things like a sequence of Enter and Leave events generated during a
+ * grab in Tk). These elements are protected by the queueMutex so that any
+ * thread can queue an event on any notifier. Note that all of the values in
+ * this structure will be initialized to 0.
+ */
+
+typedef struct ThreadSpecificData {
+ Tcl_Event *firstEventPtr; /* First pending event, or NULL if none. */
+ Tcl_Event *lastEventPtr; /* Last pending event, or NULL if none. */
+ Tcl_Event *markerEventPtr; /* Last high-priority event in queue, or NULL
+ * if none. */
+ Tcl_Mutex queueMutex; /* Mutex to protect access to the previous
+ * three fields. */
+ int serviceMode; /* One of TCL_SERVICE_NONE or
+ * TCL_SERVICE_ALL. */
+ int blockTimeSet; /* 0 means there is no maximum block time:
+ * block forever. */
+ Tcl_Time blockTime; /* If blockTimeSet is 1, gives the maximum
+ * elapsed time for the next block. */
+ int inTraversal; /* 1 if Tcl_SetMaxBlockTime is being called
+ * during an event source traversal. */
+ EventSource *firstEventSourcePtr;
+ /* Pointer to first event source in list of
+ * event sources for this thread. */
+ Tcl_ThreadId threadId; /* Thread that owns this notifier instance. */
+ ClientData clientData; /* Opaque handle for platform specific
+ * notifier. */
+ int initialized; /* 1 if notifier has been initialized. */
+ struct ThreadSpecificData *nextPtr;
+ /* Next notifier in global list of notifiers.
+ * Access is controlled by the listLock global
+ * mutex. */
+} ThreadSpecificData;
+
+static Tcl_ThreadDataKey dataKey;
+
+/*
+ * Global list of notifiers. Access to this list is controlled by the listLock
+ * mutex. If this becomes a performance bottleneck, this could be replaced
+ * with a hashtable.
+ */
+
+static ThreadSpecificData *firstNotifierPtr = NULL;
+TCL_DECLARE_MUTEX(listLock)
+
+/*
+ * Declarations for routines used only in this file.
+ */
+
+static void QueueEvent(ThreadSpecificData *tsdPtr,
+ Tcl_Event* evPtr, Tcl_QueuePosition position);
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclInitNotifier --
+ *
+ * Initialize the thread local data structures for the notifier
+ * subsystem.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Adds the current thread to the global list of notifiers.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+TclInitNotifier(void)
+{
+ ThreadSpecificData *tsdPtr;
+ Tcl_ThreadId threadId = Tcl_GetCurrentThread();
+
+ Tcl_MutexLock(&listLock);
+ for (tsdPtr = firstNotifierPtr; tsdPtr && tsdPtr->threadId != threadId;
+ tsdPtr = tsdPtr->nextPtr) {
+ /* Empty loop body. */
+ }
+
+ if (NULL == tsdPtr) {
+ /*
+ * Notifier not yet initialized in this thread.
+ */
+
+ tsdPtr = TCL_TSD_INIT(&dataKey);
+ tsdPtr->threadId = threadId;
+ tsdPtr->clientData = tclStubs.tcl_InitNotifier();
+ tsdPtr->initialized = 1;
+ tsdPtr->nextPtr = firstNotifierPtr;
+ firstNotifierPtr = tsdPtr;
+ }
+ Tcl_MutexUnlock(&listLock);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclFinalizeNotifier --
+ *
+ * Finalize the thread local data structures for the notifier subsystem.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Removes the notifier associated with the current thread from the
+ * global notifier list. This is done only if the notifier was
+ * initialized for this thread by call to TclInitNotifier(). This is
+ * always true for threads which have been seeded with an Tcl
+ * interpreter, since the call to Tcl_CreateInterp will, among other
+ * things, call TclInitializeSubsystems() and this one will, in turn,
+ * call the TclInitNotifier() for the thread. For threads created without
+ * the Tcl interpreter, though, nobody is explicitly nor implicitly
+ * calling the TclInitNotifier hence, TclFinalizeNotifier should not be
+ * performed at all.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+TclFinalizeNotifier(void)
+{
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+ ThreadSpecificData **prevPtrPtr;
+ Tcl_Event *evPtr, *hold;
+
+ if (!tsdPtr->initialized) {
+ return; /* Notifier not initialized for the current thread */
+ }
+
+ Tcl_MutexLock(&(tsdPtr->queueMutex));
+ for (evPtr = tsdPtr->firstEventPtr; evPtr != NULL; ) {
+ hold = evPtr;
+ evPtr = evPtr->nextPtr;
+ ckfree((char *) hold);
+ }
+ tsdPtr->firstEventPtr = NULL;
+ tsdPtr->lastEventPtr = NULL;
+ Tcl_MutexUnlock(&(tsdPtr->queueMutex));
+
+ Tcl_MutexLock(&listLock);
+
+ if (tclStubs.tcl_FinalizeNotifier) {
+ tclStubs.tcl_FinalizeNotifier(tsdPtr->clientData);
+ }
+ Tcl_MutexFinalize(&(tsdPtr->queueMutex));
+ for (prevPtrPtr = &firstNotifierPtr; *prevPtrPtr != NULL;
+ prevPtrPtr = &((*prevPtrPtr)->nextPtr)) {
+ if (*prevPtrPtr == tsdPtr) {
+ *prevPtrPtr = tsdPtr->nextPtr;
+ break;
+ }
+ }
+ tsdPtr->initialized = 0;
+
+ Tcl_MutexUnlock(&listLock);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_SetNotifier --
+ *
+ * Install a set of alternate functions for use with the notifier. In
+ * particular, this can be used to install the Xt-based notifier for use
+ * with the Browser plugin.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Overstomps part of the stub vector. This relies on hooks added to the
+ * default functions in case those are called directly (i.e., not through
+ * the stub table.)
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_SetNotifier(
+ Tcl_NotifierProcs *notifierProcPtr)
+{
+#if !defined(__WIN32__) /* UNIX */
+ tclStubs.tcl_CreateFileHandler = notifierProcPtr->createFileHandlerProc;
+ tclStubs.tcl_DeleteFileHandler = notifierProcPtr->deleteFileHandlerProc;
+#endif
+ tclStubs.tcl_SetTimer = notifierProcPtr->setTimerProc;
+ tclStubs.tcl_WaitForEvent = notifierProcPtr->waitForEventProc;
+ tclStubs.tcl_InitNotifier = notifierProcPtr->initNotifierProc;
+ tclStubs.tcl_FinalizeNotifier = notifierProcPtr->finalizeNotifierProc;
+ tclStubs.tcl_AlertNotifier = notifierProcPtr->alertNotifierProc;
+ tclStubs.tcl_ServiceModeHook = notifierProcPtr->serviceModeHookProc;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_CreateEventSource --
+ *
+ * This function is invoked to create a new source of events. The source
+ * is identified by a function that gets invoked during Tcl_DoOneEvent to
+ * check for events on that source and queue them.
+ *
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * SetupProc and checkProc will be invoked each time that Tcl_DoOneEvent
+ * runs out of things to do. SetupProc will be invoked before
+ * Tcl_DoOneEvent calls select or whatever else it uses to wait for
+ * events. SetupProc typically calls functions like Tcl_SetMaxBlockTime
+ * to indicate what to wait for.
+ *
+ * CheckProc is called after select or whatever operation was actually
+ * used to wait. It figures out whether anything interesting actually
+ * happened (e.g. by calling Tcl_AsyncReady), and then calls
+ * Tcl_QueueEvent to queue any events that are ready.
+ *
+ * Each of these functions is passed two arguments, e.g.
+ * (*checkProc)(ClientData clientData, int flags));
+ * ClientData is the same as the clientData argument here, and flags is a
+ * combination of things like TCL_FILE_EVENTS that indicates what events
+ * are of interest: setupProc and checkProc use flags to figure out
+ * whether their events are relevant or not.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_CreateEventSource(
+ Tcl_EventSetupProc *setupProc,
+ /* Function to invoke to figure out what to
+ * wait for. */
+ Tcl_EventCheckProc *checkProc,
+ /* Function to call after waiting to see what
+ * happened. */
+ ClientData clientData) /* One-word argument to pass to setupProc and
+ * checkProc. */
+{
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+ EventSource *sourcePtr = (EventSource *) ckalloc(sizeof(EventSource));
+
+ sourcePtr->setupProc = setupProc;
+ sourcePtr->checkProc = checkProc;
+ sourcePtr->clientData = clientData;
+ sourcePtr->nextPtr = tsdPtr->firstEventSourcePtr;
+ tsdPtr->firstEventSourcePtr = sourcePtr;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_DeleteEventSource --
+ *
+ * This function is invoked to delete the source of events given by proc
+ * and clientData.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * The given event source is cancelled, so its function will never again
+ * be called. If no such source exists, nothing happens.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_DeleteEventSource(
+ Tcl_EventSetupProc *setupProc,
+ /* Function to invoke to figure out what to
+ * wait for. */
+ Tcl_EventCheckProc *checkProc,
+ /* Function to call after waiting to see what
+ * happened. */
+ ClientData clientData) /* One-word argument to pass to setupProc and
+ * checkProc. */
+{
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+ EventSource *sourcePtr, *prevPtr;
+
+ for (sourcePtr = tsdPtr->firstEventSourcePtr, prevPtr = NULL;
+ sourcePtr != NULL;
+ prevPtr = sourcePtr, sourcePtr = sourcePtr->nextPtr) {
+ if ((sourcePtr->setupProc != setupProc)
+ || (sourcePtr->checkProc != checkProc)
+ || (sourcePtr->clientData != clientData)) {
+ continue;
+ }
+ if (prevPtr == NULL) {
+ tsdPtr->firstEventSourcePtr = sourcePtr->nextPtr;
+ } else {
+ prevPtr->nextPtr = sourcePtr->nextPtr;
+ }
+ ckfree((char *) sourcePtr);
+ return;
+ }
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_QueueEvent --
+ *
+ * Queue an event on the event queue associated with the current thread.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_QueueEvent(
+ Tcl_Event* evPtr, /* Event to add to queue. The storage space
+ * must have been allocated the caller with
+ * malloc (ckalloc), and it becomes the
+ * property of the event queue. It will be
+ * freed after the event has been handled. */
+ Tcl_QueuePosition position) /* One of TCL_QUEUE_TAIL, TCL_QUEUE_HEAD,
+ * TCL_QUEUE_MARK. */
+{
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+ QueueEvent(tsdPtr, evPtr, position);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_ThreadQueueEvent --
+ *
+ * Queue an event on the specified thread's event queue.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_ThreadQueueEvent(
+ Tcl_ThreadId threadId, /* Identifier for thread to use. */
+ Tcl_Event *evPtr, /* Event to add to queue. The storage space
+ * must have been allocated the caller with
+ * malloc (ckalloc), and it becomes the
+ * property of the event queue. It will be
+ * freed after the event has been handled. */
+ Tcl_QueuePosition position) /* One of TCL_QUEUE_TAIL, TCL_QUEUE_HEAD,
+ * TCL_QUEUE_MARK. */
+{
+ ThreadSpecificData *tsdPtr;
+
+ /*
+ * Find the notifier associated with the specified thread.
+ */
+
+ Tcl_MutexLock(&listLock);
+ for (tsdPtr = firstNotifierPtr; tsdPtr && tsdPtr->threadId != threadId;
+ tsdPtr = tsdPtr->nextPtr) {
+ /* Empty loop body. */
+ }
+
+ /*
+ * Queue the event if there was a notifier associated with the thread.
+ */
+
+ if (tsdPtr) {
+ QueueEvent(tsdPtr, evPtr, position);
+ }
+ Tcl_MutexUnlock(&listLock);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * QueueEvent --
+ *
+ * Insert an event into the specified thread's event queue at one of
+ * three positions: the head, the tail, or before a floating marker.
+ * Events inserted before the marker will be processed in first-in-
+ * first-out order, but before any events inserted at the tail of the
+ * queue. Events inserted at the head of the queue will be processed in
+ * last-in-first-out order.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+static void
+QueueEvent(
+ ThreadSpecificData *tsdPtr, /* Handle to thread local data that indicates
+ * which event queue to use. */
+ Tcl_Event *evPtr, /* Event to add to queue. The storage space
+ * must have been allocated the caller with
+ * malloc (ckalloc), and it becomes the
+ * property of the event queue. It will be
+ * freed after the event has been handled. */
+ Tcl_QueuePosition position) /* One of TCL_QUEUE_TAIL, TCL_QUEUE_HEAD,
+ * TCL_QUEUE_MARK. */
+{
+ Tcl_MutexLock(&(tsdPtr->queueMutex));
+ if (position == TCL_QUEUE_TAIL) {
+ /*
+ * Append the event on the end of the queue.
+ */
+
+ evPtr->nextPtr = NULL;
+ if (tsdPtr->firstEventPtr == NULL) {
+ tsdPtr->firstEventPtr = evPtr;
+ } else {
+ tsdPtr->lastEventPtr->nextPtr = evPtr;
+ }
+ tsdPtr->lastEventPtr = evPtr;
+ } else if (position == TCL_QUEUE_HEAD) {
+ /*
+ * Push the event on the head of the queue.
+ */
+
+ evPtr->nextPtr = tsdPtr->firstEventPtr;
+ if (tsdPtr->firstEventPtr == NULL) {
+ tsdPtr->lastEventPtr = evPtr;
+ }
+ tsdPtr->firstEventPtr = evPtr;
+ } else if (position == TCL_QUEUE_MARK) {
+ /*
+ * Insert the event after the current marker event and advance the
+ * marker to the new event.
+ */
+
+ if (tsdPtr->markerEventPtr == NULL) {
+ evPtr->nextPtr = tsdPtr->firstEventPtr;
+ tsdPtr->firstEventPtr = evPtr;
+ } else {
+ evPtr->nextPtr = tsdPtr->markerEventPtr->nextPtr;
+ tsdPtr->markerEventPtr->nextPtr = evPtr;
+ }
+ tsdPtr->markerEventPtr = evPtr;
+ if (evPtr->nextPtr == NULL) {
+ tsdPtr->lastEventPtr = evPtr;
+ }
+ }
+ Tcl_MutexUnlock(&(tsdPtr->queueMutex));
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_DeleteEvents --
+ *
+ * Calls a function for each event in the queue and deletes those for
+ * which the function returns 1. Events for which the function returns 0
+ * are left in the queue. Operates on the queue associated with the
+ * current thread.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Potentially removes one or more events from the event queue.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_DeleteEvents(
+ Tcl_EventDeleteProc *proc, /* The function to call. */
+ ClientData clientData) /* The type-specific data. */
+{
+ Tcl_Event *evPtr, *prevPtr, *hold;
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ Tcl_MutexLock(&(tsdPtr->queueMutex));
+ for (prevPtr=NULL, evPtr=tsdPtr->firstEventPtr; evPtr!=NULL; ) {
+ if ((*proc) (evPtr, clientData) == 1) {
+ if (tsdPtr->firstEventPtr == evPtr) {
+ tsdPtr->firstEventPtr = evPtr->nextPtr;
+ } else {
+ if (prevPtr == NULL) {
+ Tcl_Panic("badly connected event list");
+ } else {
+ prevPtr->nextPtr = evPtr->nextPtr;
+ }
+ }
+ if (evPtr->nextPtr == NULL) {
+ tsdPtr->lastEventPtr = prevPtr;
+ }
+ if (tsdPtr->markerEventPtr == evPtr) {
+ tsdPtr->markerEventPtr = prevPtr;
+ }
+ hold = evPtr;
+ evPtr = evPtr->nextPtr;
+ ckfree((char *) hold);
+ } else {
+ prevPtr = evPtr;
+ evPtr = evPtr->nextPtr;
+ }
+ }
+ Tcl_MutexUnlock(&(tsdPtr->queueMutex));
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_ServiceEvent --
+ *
+ * Process one event from the event queue, or invoke an asynchronous
+ * event handler. Operates on event queue for current thread.
+ *
+ * Results:
+ * The return value is 1 if the function actually found an event to
+ * process. If no processing occurred, then 0 is returned.
+ *
+ * Side effects:
+ * Invokes all of the event handlers for the highest priority event in
+ * the event queue. May collapse some events into a single event or
+ * discard stale events.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Tcl_ServiceEvent(
+ int flags) /* Indicates what events should be processed.
+ * May be any combination of TCL_WINDOW_EVENTS
+ * TCL_FILE_EVENTS, TCL_TIMER_EVENTS, or other
+ * flags defined elsewhere. Events not
+ * matching this will be skipped for
+ * processing later. */
+{
+ Tcl_Event *evPtr, *prevPtr;
+ Tcl_EventProc *proc;
+ int result;
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ /*
+ * Asynchronous event handlers are considered to be the highest priority
+ * events, and so must be invoked before we process events on the event
+ * queue.
+ */
+
+ if (Tcl_AsyncReady()) {
+ (void) Tcl_AsyncInvoke(NULL, 0);
+ return 1;
+ }
+
+ /*
+ * No event flags is equivalent to TCL_ALL_EVENTS.
+ */
+
+ if ((flags & TCL_ALL_EVENTS) == 0) {
+ flags |= TCL_ALL_EVENTS;
+ }
+
+ /*
+ * Loop through all the events in the queue until we find one that can
+ * actually be handled.
+ */
+
+ Tcl_MutexLock(&(tsdPtr->queueMutex));
+ for (evPtr = tsdPtr->firstEventPtr; evPtr != NULL;
+ evPtr = evPtr->nextPtr) {
+ /*
+ * Call the handler for the event. If it actually handles the event
+ * then free the storage for the event. There are two tricky things
+ * here, both stemming from the fact that the event code may be
+ * re-entered while servicing the event:
+ *
+ * 1. Set the "proc" field to NULL. This is a signal to ourselves
+ * that we shouldn't reexecute the handler if the event loop is
+ * re-entered.
+ * 2. When freeing the event, must search the queue again from the
+ * front to find it. This is because the event queue could change
+ * almost arbitrarily while handling the event, so we can't depend
+ * on pointers found now still being valid when the handler
+ * returns.
+ */
+
+ proc = evPtr->proc;
+ if (proc == NULL) {
+ continue;
+ }
+ evPtr->proc = NULL;
+
+ /*
+ * Release the lock before calling the event function. This allows
+ * other threads to post events if we enter a recursive event loop in
+ * this thread. Note that we are making the assumption that if the
+ * proc returns 0, the event is still in the list.
+ */
+
+ Tcl_MutexUnlock(&(tsdPtr->queueMutex));
+ result = (*proc)(evPtr, flags);
+ Tcl_MutexLock(&(tsdPtr->queueMutex));
+
+ if (result) {
+ /*
+ * The event was processed, so remove it from the queue.
+ */
+
+ if (tsdPtr->firstEventPtr == evPtr) {
+ tsdPtr->firstEventPtr = evPtr->nextPtr;
+ if (evPtr->nextPtr == NULL) {
+ tsdPtr->lastEventPtr = NULL;
+ }
+ if (tsdPtr->markerEventPtr == evPtr) {
+ tsdPtr->markerEventPtr = NULL;
+ }
+ } else {
+ for (prevPtr = tsdPtr->firstEventPtr;
+ prevPtr && prevPtr->nextPtr != evPtr;
+ prevPtr = prevPtr->nextPtr) {
+ /* Empty loop body. */
+ }
+ if (prevPtr) {
+ prevPtr->nextPtr = evPtr->nextPtr;
+ if (evPtr->nextPtr == NULL) {
+ tsdPtr->lastEventPtr = prevPtr;
+ }
+ if (tsdPtr->markerEventPtr == evPtr) {
+ tsdPtr->markerEventPtr = prevPtr;
+ }
+ } else {
+ evPtr = NULL;
+ }
+ }
+ if (evPtr) {
+ ckfree((char *) evPtr);
+ }
+ Tcl_MutexUnlock(&(tsdPtr->queueMutex));
+ return 1;
+ } else {
+ /*
+ * The event wasn't actually handled, so we have to restore the
+ * proc field to allow the event to be attempted again.
+ */
+
+ evPtr->proc = proc;
+ }
+ }
+ Tcl_MutexUnlock(&(tsdPtr->queueMutex));
+ return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_GetServiceMode --
+ *
+ * This routine returns the current service mode of the notifier.
+ *
+ * Results:
+ * Returns either TCL_SERVICE_ALL or TCL_SERVICE_NONE.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Tcl_GetServiceMode(void)
+{
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ return tsdPtr->serviceMode;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_SetServiceMode --
+ *
+ * This routine sets the current service mode of the tsdPtr->
+ *
+ * Results:
+ * Returns the previous service mode.
+ *
+ * Side effects:
+ * Invokes the notifier service mode hook function.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Tcl_SetServiceMode(
+ int mode) /* New service mode: TCL_SERVICE_ALL or
+ * TCL_SERVICE_NONE */
+{
+ int oldMode;
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ oldMode = tsdPtr->serviceMode;
+ tsdPtr->serviceMode = mode;
+ if (tclStubs.tcl_ServiceModeHook) {
+ tclStubs.tcl_ServiceModeHook(mode);
+ }
+ return oldMode;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_SetMaxBlockTime --
+ *
+ * This function is invoked by event sources to tell the notifier how
+ * long it may block the next time it blocks. The timePtr argument gives
+ * a maximum time; the actual time may be less if some other event source
+ * requested a smaller time.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * May reduce the length of the next sleep in the tsdPtr->
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_SetMaxBlockTime(
+ Tcl_Time *timePtr) /* Specifies a maximum elapsed time for the
+ * next blocking operation in the event
+ * tsdPtr-> */
+{
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ if (!tsdPtr->blockTimeSet || (timePtr->sec < tsdPtr->blockTime.sec)
+ || ((timePtr->sec == tsdPtr->blockTime.sec)
+ && (timePtr->usec < tsdPtr->blockTime.usec))) {
+ tsdPtr->blockTime = *timePtr;
+ tsdPtr->blockTimeSet = 1;
+ }
+
+ /*
+ * If we are called outside an event source traversal, set the timeout
+ * immediately.
+ */
+
+ if (!tsdPtr->inTraversal) {
+ if (tsdPtr->blockTimeSet) {
+ Tcl_SetTimer(&tsdPtr->blockTime);
+ } else {
+ Tcl_SetTimer(NULL);
+ }
+ }
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_DoOneEvent --
+ *
+ * Process a single event of some sort. If there's no work to do, wait
+ * for an event to occur, then process it.
+ *
+ * Results:
+ * The return value is 1 if the function actually found an event to
+ * process. If no processing occurred, then 0 is returned (this can
+ * happen if the TCL_DONT_WAIT flag is set or if there are no event
+ * handlers to wait for in the set specified by flags).
+ *
+ * Side effects:
+ * May delay execution of process while waiting for an event, unless
+ * TCL_DONT_WAIT is set in the flags argument. Event sources are invoked
+ * to check for and queue events. Event handlers may produce arbitrary
+ * side effects.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Tcl_DoOneEvent(
+ int flags) /* Miscellaneous flag values: may be any
+ * combination of TCL_DONT_WAIT,
+ * TCL_WINDOW_EVENTS, TCL_FILE_EVENTS,
+ * TCL_TIMER_EVENTS, TCL_IDLE_EVENTS, or
+ * others defined by event sources. */
+{
+ int result = 0, oldMode;
+ EventSource *sourcePtr;
+ Tcl_Time *timePtr;
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ /*
+ * The first thing we do is to service any asynchronous event handlers.
+ */
+
+ if (Tcl_AsyncReady()) {
+ (void) Tcl_AsyncInvoke(NULL, 0);
+ return 1;
+ }
+
+ /*
+ * No event flags is equivalent to TCL_ALL_EVENTS.
+ */
+
+ if ((flags & TCL_ALL_EVENTS) == 0) {
+ flags |= TCL_ALL_EVENTS;
+ }
+
+ /*
+ * Set the service mode to none so notifier event routines won't try to
+ * service events recursively.
+ */
+
+ oldMode = tsdPtr->serviceMode;
+ tsdPtr->serviceMode = TCL_SERVICE_NONE;
+
+ /*
+ * The core of this function is an infinite loop, even though we only
+ * service one event. The reason for this is that we may be processing
+ * events that don't do anything inside of Tcl.
+ */
+
+ while (1) {
+ /*
+ * If idle events are the only things to service, skip the main part
+ * of the loop and go directly to handle idle events (i.e. don't wait
+ * even if TCL_DONT_WAIT isn't set).
+ */
+
+ if ((flags & TCL_ALL_EVENTS) == TCL_IDLE_EVENTS) {
+ flags = TCL_IDLE_EVENTS | TCL_DONT_WAIT;
+ goto idleEvents;
+ }
+
+ /*
+ * Ask Tcl to service a queued event, if there are any.
+ */
+
+ if (Tcl_ServiceEvent(flags)) {
+ result = 1;
+ break;
+ }
+
+ /*
+ * If TCL_DONT_WAIT is set, be sure to poll rather than blocking,
+ * otherwise reset the block time to infinity.
+ */
+
+ if (flags & TCL_DONT_WAIT) {
+ tsdPtr->blockTime.sec = 0;
+ tsdPtr->blockTime.usec = 0;
+ tsdPtr->blockTimeSet = 1;
+ } else {
+ tsdPtr->blockTimeSet = 0;
+ }
+
+ /*
+ * Set up all the event sources for new events. This will cause the
+ * block time to be updated if necessary.
+ */
+
+ tsdPtr->inTraversal = 1;
+ for (sourcePtr = tsdPtr->firstEventSourcePtr; sourcePtr != NULL;
+ sourcePtr = sourcePtr->nextPtr) {
+ if (sourcePtr->setupProc) {
+ (sourcePtr->setupProc)(sourcePtr->clientData, flags);
+ }
+ }
+ tsdPtr->inTraversal = 0;
+
+ if ((flags & TCL_DONT_WAIT) || tsdPtr->blockTimeSet) {
+ timePtr = &tsdPtr->blockTime;
+ } else {
+ timePtr = NULL;
+ }
+
+ /*
+ * Wait for a new event or a timeout. If Tcl_WaitForEvent returns -1,
+ * we should abort Tcl_DoOneEvent.
+ */
+
+ result = Tcl_WaitForEvent(timePtr);
+ if (result < 0) {
+ result = 0;
+ break;
+ }
+
+ /*
+ * Check all the event sources for new events.
+ */
+
+ for (sourcePtr = tsdPtr->firstEventSourcePtr; sourcePtr != NULL;
+ sourcePtr = sourcePtr->nextPtr) {
+ if (sourcePtr->checkProc) {
+ (sourcePtr->checkProc)(sourcePtr->clientData, flags);
+ }
+ }
+
+ /*
+ * Check for events queued by the notifier or event sources.
+ */
+
+ if (Tcl_ServiceEvent(flags)) {
+ result = 1;
+ break;
+ }
+
+ /*
+ * We've tried everything at this point, but nobody we know about had
+ * anything to do. Check for idle events. If none, either quit or go
+ * back to the top and try again.
+ */
+
+ idleEvents:
+ if (flags & TCL_IDLE_EVENTS) {
+ if (TclServiceIdle()) {
+ result = 1;
+ break;
+ }
+ }
+ if (flags & TCL_DONT_WAIT) {
+ break;
+ }
+
+ /*
+ * If Tcl_WaitForEvent has returned 1, indicating that one system
+ * event has been dispatched (and thus that some Tcl code might have
+ * been indirectly executed), we break out of the loop. We do this to
+ * give VwaitCmd for instance a chance to check if that system event
+ * had the side effect of changing the variable (so the vwait can
+ * return and unwind properly).
+ *
+ * NB: We will process idle events if any first, because otherwise we
+ * might never do the idle events if the notifier always gets
+ * system events.
+ */
+
+ if (result) {
+ break;
+ }
+ }
+
+ tsdPtr->serviceMode = oldMode;
+ return result;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_ServiceAll --
+ *
+ * This routine checks all of the event sources, processes events that
+ * are on the Tcl event queue, and then calls the any idle handlers.
+ * Platform specific notifier callbacks that generate events should call
+ * this routine before returning to the system in order to ensure that
+ * Tcl gets a chance to process the new events.
+ *
+ * Results:
+ * Returns 1 if an event or idle handler was invoked, else 0.
+ *
+ * Side effects:
+ * Anything that an event or idle handler may do.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Tcl_ServiceAll(void)
+{
+ int result = 0;
+ EventSource *sourcePtr;
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ if (tsdPtr->serviceMode == TCL_SERVICE_NONE) {
+ return result;
+ }
+
+ /*
+ * We need to turn off event servicing like we to in Tcl_DoOneEvent, to
+ * avoid recursive calls.
+ */
+
+ tsdPtr->serviceMode = TCL_SERVICE_NONE;
+
+ /*
+ * Check async handlers first.
+ */
+
+ if (Tcl_AsyncReady()) {
+ (void) Tcl_AsyncInvoke(NULL, 0);
+ }
+
+ /*
+ * Make a single pass through all event sources, queued events, and idle
+ * handlers. Note that we wait to update the notifier timer until the end
+ * so we can avoid multiple changes.
+ */
+
+ tsdPtr->inTraversal = 1;
+ tsdPtr->blockTimeSet = 0;
+
+ for (sourcePtr = tsdPtr->firstEventSourcePtr; sourcePtr != NULL;
+ sourcePtr = sourcePtr->nextPtr) {
+ if (sourcePtr->setupProc) {
+ (sourcePtr->setupProc)(sourcePtr->clientData, TCL_ALL_EVENTS);
+ }
+ }
+ for (sourcePtr = tsdPtr->firstEventSourcePtr; sourcePtr != NULL;
+ sourcePtr = sourcePtr->nextPtr) {
+ if (sourcePtr->checkProc) {
+ (sourcePtr->checkProc)(sourcePtr->clientData, TCL_ALL_EVENTS);
+ }
+ }
+
+ while (Tcl_ServiceEvent(0)) {
+ result = 1;
+ }
+ if (TclServiceIdle()) {
+ result = 1;
+ }
+
+ if (!tsdPtr->blockTimeSet) {
+ Tcl_SetTimer(NULL);
+ } else {
+ Tcl_SetTimer(&tsdPtr->blockTime);
+ }
+ tsdPtr->inTraversal = 0;
+ tsdPtr->serviceMode = TCL_SERVICE_ALL;
+ return result;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_ThreadAlert --
+ *
+ * This function wakes up the notifier associated with the specified
+ * thread (if there is one).
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+Tcl_ThreadAlert(
+ Tcl_ThreadId threadId) /* Identifier for thread to use. */
+{
+ ThreadSpecificData *tsdPtr;
+
+ /*
+ * Find the notifier associated with the specified thread. Note that we
+ * need to hold the listLock while calling Tcl_AlertNotifier to avoid a
+ * race condition where the specified thread might destroy its notifier.
+ */
+
+ Tcl_MutexLock(&listLock);
+ for (tsdPtr = firstNotifierPtr; tsdPtr; tsdPtr = tsdPtr->nextPtr) {
+ if (tsdPtr->threadId == threadId) {
+ if (tclStubs.tcl_AlertNotifier) {
+ tclStubs.tcl_AlertNotifier(tsdPtr->clientData);
+ }
+ break;
+ }
+ }
+ Tcl_MutexUnlock(&listLock);
+}
+
+/*
+ * Local Variables:
+ * mode: c
+ * c-basic-offset: 4
+ * fill-column: 78
+ * End:
+ */