From 78f62882e23aacc0a133fd786ab338dab74f52aa Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 17 Sep 2007 15:03:42 +0000 Subject: merge updates from HEAD --- ChangeLog | 1498 ++++++++++++++++++++++++++------------------------ generic/tcl.h | 7 +- generic/tclEvent.c | 7 +- generic/tclExecute.c | 29 +- generic/tclFCmd.c | 18 +- generic/tclIO.c | 42 +- generic/tclNamesp.c | 12 +- generic/tclPkg.c | 46 +- generic/tclStubLib.c | 22 +- generic/tclTrace.c | 70 ++- unix/configure | 63 ++- unix/tcl.m4 | 85 +-- unix/tclUnixChan.c | 17 +- unix/tclUnixFile.c | 8 +- win/makefile.vc | 8 +- win/tcl.dsp | 12 +- 16 files changed, 1029 insertions(+), 915 deletions(-) diff --git a/ChangeLog b/ChangeLog index bbb29a2..5b397c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2007-09-17 Don Porter + + * generic/tcl.h: Revised Tcl_InitStubs() to restore Tcl 8.4 + * generic/tclPkg.c: source compatibility with callers of + * generic/tclStubLib.c: Tcl_InitStubs(interp, TCL_VERSION, 1). + [Bug 1578344]. + +2007-09-17 Donal K. Fellows + + * generic/tclTrace.c (Tcl_TraceObjCmd, TraceExecutionObjCmd) + (TraceCommandObjCmd, TraceVariableObjCmd): Generate literal values + * generic/tclNamesp.c (NamespaceCodeCmd): more efficiently using + * generic/tclFCmd.c (CopyRenameOneFile): TclNewLiteralStringObj + * generic/tclEvent.c (TclSetBgErrorHandler): macro. + +2007-09-15 Daniel Steffen + + * unix/tcl.m4: replace all direct references to compiler by ${CC} to + enable CC overriding at configure & make time; run + check for visibility "hidden" with all compilers; + quoting fixes from TEA tcl.m4. + (SunOS-5.1x): replace direct use of '/usr/ccs/bin/ld' in SHLIB_LD by + 'cc' compiler driver. + * unix/configure: autoconf-2.59 + 2007-09-14 Donal K. Fellows * generic/tclBasic.c (Tcl_CreateObjCommand): Only invalidate along the @@ -7,65 +32,67 @@ * generic/tclDTrace.d (new file): add DTrace provider for Tcl; allows * generic/tclCompile.h: tracing of proc and command entry & - * generic/tclBasic.c: return, bytecode execution, object - * generic/tclExecute.c: allocation and more; with essentially - * generic/tclInt.h: zero cost when tracing is inactive; - * generic/tclObj.c: enable with --enable-dtrace configure - * generic/tclProc.c: arg (disabled by default, will only - * unix/Makefile.in: enable if DTrace is present). - * unix/configure.in: [Patch 1793984] + * generic/tclBasic.c: return, bytecode execution, object + * generic/tclExecute.c: allocation and more; with + * generic/tclInt.h: essentially zero cost when tracing + * generic/tclObj.c: is inactive; enable with + * generic/tclProc.c: --enable-dtrace configure arg + * unix/Makefile.in: (disabled by default, will only + * unix/configure.in: enable if DTrace is present). [Patch + 1793984] * macosx/GNUmakefile: enable DTrace support. * macosx/Tcl-Common.xcconfig: * macosx/Tcl.xcodeproj/project.pbxproj: - * generic/tclCmdIL.c: factor out core of InfoFrameCmd() into internal - TclInfoFrame() for use by DTrace probes. + * generic/tclCmdIL.c: factor out core of InfoFrameCmd() into + internal TclInfoFrame() for use by DTrace + probes. * unix/configure: autoconf-2.59 * unix/tclConfig.h.in: autoheader-2.59 -2007-09-12 Don Porter +2007-09-12 Don Porter * unix/Makefile.in: Perform missing updates of the tcltest Tcl * win/Makefile.in: Module installed filename that should have - been part of the bump to tcltest 2.3b1. Thanks Larry Virden. + been part of the bump to tcltest 2.3b1. Thanks Larry Virden. -2007-09-12 Pat Thoyts +2007-09-12 Pat Thoyts * win/makefile.vc, win/rules.vc, win/nmakehlp.c: Use nmakehlp to substitute values for tclConfig.sh (helps cross-compiling). -2007-09-11 Don Porter +2007-09-11 Don Porter - * library/tcltest/tcltest.tcl: Accept underscores and colons in - * library/tcltest/pkgIndex.tcl: constraint names. Properly handle + * library/tcltest/tcltest.tcl: Accept underscores and colons in + * library/tcltest/pkgIndex.tcl: constraint names. Properly handle constraint expressions that return non-numeric boolean results like - "false". Bump to tcltest 2.3b1. [Bug 1772989; RFE 1071322] + "false". Bump to tcltest 2.3b1. [Bug 1772989; RFE 1071322] * tests/info.test: Disable fragile tests. - * doc/package.n: Restored the functioning of - * generic/tclPkg.c: [package require -exact] to be compatible - * tests/pkg.test: with Tcl 8.4. [Bug 1578344]. + * doc/package.n: Restored the functioning of [package require + * generic/tclPkg.c: -exact] to be compatible with Tcl 8.4. [Bug + * tests/pkg.test: 1578344] 2007-09-11 Miguel Sofer * generic/tclCompCmds.c (TclCompileDictCmd-update): * generic/tclCompile.c (tclInstructionTable): - * generic/tclExecute.c (INST_DICT_UPDATE_END): fix stack - management in [dict update] [Bug 1786481]. + * generic/tclExecute.c (INST_DICT_UPDATE_END): fix stack management in + [dict update]. [Bug 1786481] ***POTENTIAL INCOMPATIBILITY*** - Scripts that were precompiled on earlier versions of 8.5 and use - [dict update] will crash. Workaround: recompile. - + Scripts that were precompiled on earlier versions of 8.5 and use [dict + update] will crash. Workaround: recompile. + 2007-09-11 Kevin B. Kenny - * generic/tclExecute.c: Corrected an off-by-one error in the - setting of MaxBaseWide for certain powers. [Bug 1767293 - - problem reported in comments when bug was reopened]. - -2007-09-10 Jeff Hobbs + * generic/tclExecute.c: Corrected an off-by-one error in the setting + of MaxBaseWide for certain powers. [Bug 1767293 - problem reported in + comments when bug was reopened] + +2007-09-10 Jeff Hobbs * generic/tclLink.c (Tcl_UpdateLinkedVar): guard against var being unlinked. [Bug 1740631] (maros) @@ -75,28 +102,28 @@ * generic/tclCompile.c: fix tclInstructionTable entry for dictUpdateEnd - * generic/tclExecute.c: remove unneeded setting of 'cleanup' - variable before jumping to checkForCatch. + * generic/tclExecute.c: remove unneeded setting of 'cleanup' variable + before jumping to checkForCatch. -2007-09-10 Don Porter +2007-09-10 Don Porter * doc/package.n: Restored the document parallel syntax of the * generic/tclPkg.c: [package present] and [package require] - * tests/pkg.test: commands. [Bug 1723675] + * tests/pkg.test: commands. [Bug 1723675] -2007-09-09 Don Porter +2007-09-09 Don Porter * generic/tclInt.h: Removed the "nsName" Tcl_ObjType from the - * generic/tclNamesp.c: registered set. Revised the management of - * generic/tclObj.c: the intrep of that Tcl_ObjType. Revised the + * generic/tclNamesp.c: registered set. Revised the management of the + * generic/tclObj.c: intrep of that Tcl_ObjType. Revised the * tests/obj.test: TclGetNamespaceFromObj() routine to return - TCL_ERROR and write a consistent error message when a namespace is - not found. [Bug 1588842. Patch 1686862] + TCL_ERROR and write a consistent error message when a namespace is not + found. [Bug 1588842. Patch 1686862] ***POTENTIAL INCOMPATIBILITY*** For callers of Tcl_GetObjType() on the name "nsName". - * generic/tclExecute.c: Update TclGetNamespaceFromObj() callers. + * generic/tclExecute.c: Update TclGetNamespaceFromObj() callers. * generic/tclProc.c: * tests/apply.test: Updated tests to expect new consistent @@ -106,11 +133,11 @@ * generic/tclCompCmds.c: Use the new INST_REVERSE instruction * tests/mathop.test: to correct the compiled versions of math - operator commands. [Bug 1724437]. + operator commands. [Bug 1724437] - * generic/tclCompile.c: New bytecode instruction INST_REVERSE to - * generic/tclCompile.h: reverse the order of N items at the top of - * generic/tclExecute.c: stack. + * generic/tclCompile.c: New bytecode instruction INST_REVERSE to + * generic/tclCompile.h: reverse the order of N items at the top of + * generic/tclExecute.c: stack. * generic/tclCompCmds.c (TclCompilePowOpCmd): Make a separate routine to compile ** to account for its different associativity. @@ -129,12 +156,12 @@ fundamental datatype assumptions and causing a stack crash when the dict was converted to a string. [Bug 1786481] -2007-09-07 Don Porter +2007-09-07 Don Porter * generic/tclEvent.c ([::tcl::Bgerror]): Corrections to Tcl's * tests/event.test: default [interp bgerror] handler so that when it falls back to a hidden [bgerror] in a safe interp, it gets the - right error context data. [Bug 1790274]. + right error context data. [Bug 1790274] 2007-09-07 Miguel Sofer @@ -142,7 +169,7 @@ variables was being managed without checking if they were Var or VarInHash: itcl [Bug 1790184] -2007-09-06 Don Porter +2007-09-06 Don Porter * generic/tclResult.c (Tcl_GetReturnOptions): Take care that a * tests/init.test: non-TCL_ERROR code doesn't cause existing @@ -151,13 +178,13 @@ complete ::errorInfo when calling [bgerror] after a non-TCL_ERROR background exception. -2007-09-06 Don Porter +2007-09-06 Don Porter * generic/tclInterp.c (Tcl_Init): Removed constraint on ability to define a custom [tclInit] before calling Tcl_Init(). Until now the custom command had to be a proc. Now it can be any command. - * generic/tclInt.decls: New internal routine TclBackgroundException() + * generic/tclInt.decls: New internal routine TclBackgroundException() * generic/tclEvent.c: that for the first time permits non-TCL_ERROR exceptions to trigger [interp bgerror] handling. Closes a gap in TIP 221. When falling back to [bgerror] (which is designed only to handle @@ -186,13 +213,13 @@ * macosx/README: document project changes. -2007-09-05 Don Porter +2007-09-05 Don Porter * generic/tclBasic.c: Removed support for the unmaintained - * generic/tclExecute.c: -DTCL_GENERIC_ONLY configuration. [Bug 1264623] - * unix/Makefile.in: + * generic/tclExecute.c: -DTCL_GENERIC_ONLY configuration. [Bug + * unix/Makefile.in: 1264623] -2007-09-04 Don Porter +2007-09-04 Don Porter * unix/Makefile.in: It's unreliable to count on the release manager to remember to `make genstubs` before `make dist`. Let the @@ -221,80 +248,79 @@ * library/tzdata/Pacific/Chatham: Olson's tzdata2007g. * generic/tclListObj.c (TclLindexFlat): - * tests/lindex.test (lindex-17.[01]): Added code to detect the error + * tests/lindex.test (lindex-17.[01]): Added code to detect the error when a script does [lindex {} end foo]; an overaggressive optimisation caused this call to return an empty object rather than an error. 2007-09-03 Daniel Steffen * generic/tclObj.c (TclInitObjSubsystem): restore registration of the - "wideInt" Tcl_ObjType for compatibility with 8.4 extensions that access - the tclWideIntType Tcl_ObjType; add setFromAnyProc for tclWideIntType. + "wideInt" Tcl_ObjType for compatibility with 8.4 extensions that + access the tclWideIntType Tcl_ObjType; add setFromAnyProc for + tclWideIntType. 2007-09-02 Donal K. Fellows * doc/lsearch.n: Added note that order of results with the -all option is that of the input list. It always was, but this makes it crystal. -2007-08-30 Don Porter +2007-08-30 Don Porter - * generic/tclCompile.c: Added fflush() calls following all callers of - * generic/tclExecute.c: TclPrintByteCodeObj() so that tcl_traceCompile + * generic/tclCompile.c: Added fflush() calls following all callers of + * generic/tclExecute.c: TclPrintByteCodeObj() so that tcl_traceCompile output is less likely to get mangled when writes to stdout interleave with other code. -2007-08-28 Don Porter +2007-08-28 Don Porter - * generic/tclCompExpr.c: Use a table lookup in ParseLexeme() - to determine lexemes with single-byte representations. + * generic/tclCompExpr.c: Use a table lookup in ParseLexeme() to + determine lexemes with single-byte representations. * generic/tclBasic.c: Used unions to better clarify overloading of * generic/tclCompExpr.c: the fields of the OpCmdInfo and * generic/tclCompile.h: TclOpCmdClientData structs. -2007-08-27 Don Porter +2007-08-27 Don Porter * generic/tclCompExpr.c: Call TclCompileSyntaxError() when - expression syntax errors are found when compiling expressions. With + expression syntax errors are found when compiling expressions. With this in place, convert TclCompileExpr to return void, since there's no longer any need to report TCL_ERROR. - * generic/tclCompile.c: Update callers. + * generic/tclCompile.c: Update callers. * generic/tclExecute.c: * generic/tclCompCmds.c: New routine TclCompileSyntaxError() - * generic/tclCompile.h: to directly compile bytecodes that report a - * generic/tclCompile.c: syntax error, rather than (ab)use a call to - TclCompileReturnCmd. Also, undo the most recent commit that papered - over some issues with that (ab)use. New routine produces a new - opcode INST_SYNTAX, which is a minor variation of INST_RETURN_IMM. - Also a bit of constification. - - * generic/tclCompile.c: Move the deallocation of local LiteralTable + * generic/tclCompile.h: to directly compile bytecodes that report a + * generic/tclCompile.c: syntax error, rather than (ab)use a call to + TclCompileReturnCmd. Also, undo the most recent commit that papered + over some issues with that (ab)use. New routine produces a new opcode + INST_SYNTAX, which is a minor variation of INST_RETURN_IMM. Also a bit + of constification. + + * generic/tclCompile.c: Move the deallocation of local LiteralTable * generic/tclCompExpr.c: entries into TclFreeCompileEnv(). - * generic/tclExecute.c: Update callers. + * generic/tclExecute.c: Update callers. - * generic/tclCompExpr.c: Force numeric and boolean literals - in expressions to register with their intreps intact, even if that - means overwriting existing intreps in already registered literals. + * generic/tclCompExpr.c: Force numeric and boolean literals in + expressions to register with their intreps intact, even if that means + overwriting existing intreps in already registered literals. 2007-08-25 Kevin B. Kenny * generic/tclExecute.c (TclExecuteByteCode): Added code to handle * tests/expr.test (expr-23.48-53) integer exponentiation - that results in 32- and 64-bit integer results, avoiding calls to - wide integer exponentiation routines in this common case. - [Bug 1767293] + that results in 32- and 64-bit integer results, avoiding calls to wide + integer exponentiation routines in this common case. [Bug 1767293] * library/clock.tcl (ParseClockScanFormat): Modified code to allow - * tests/clock.test (clock-60.*): case-insensitive - matching of time zone and month names. [Bug 1781282] - - -2007-08-24 Don Porter + * tests/clock.test (clock-60.*): case-insensitive matching + of time zone and month names. [Bug 1781282] + +2007-08-24 Don Porter * generic/tclCompExpr.c: Register literals found in expressions - * tests/compExpr.test: to restore literal sharing. Preserve numeric - intreps when literals are created for the first time. Correct memleak + * tests/compExpr.test: to restore literal sharing. Preserve numeric + intreps when literals are created for the first time. Correct memleak in ExecConstantExprTree() and add test for the leak. 2007-08-24 Miguel Sofer @@ -302,9 +328,9 @@ * generic/tclCompile.c: replaced copy loop that tripped some compilers with memmove [Bug 1780870] -2007-08-23 Don Porter +2007-08-23 Don Porter - * library/init.tcl ([auto_load_index]): Delete stray "]" that created + * library/init.tcl ([auto_load_index]): Delete stray "]" that created an expr syntax error (masked by a [catch]). * generic/tclCompCmds.c (TclCompileReturnCmd): Added crash protection @@ -319,22 +345,22 @@ * generic/tclExecute.c (TEBC): disable the new shortcut to frequent INSTs for debug builds. REVERTED (collision with alternative fix) -2007-08-21 Don Porter +2007-08-21 Don Porter * generic/tclMain.c: Corrected the logic of dropping the last * tests/main.test: newline from an interactively typed command. - [Bug 1775878]. + [Bug 1775878] -2007-08-21 Pat Thoyts +2007-08-21 Pat Thoyts - * tests/thread.test: thread-4.4: clear ::errorInfo in the thread as - a message is left here from init.tcl on windows due to no tcl_pkgPath. + * tests/thread.test: thread-4.4: clear ::errorInfo in the thread as a + message is left here from init.tcl on windows due to no tcl_pkgPath. 2007-08-20 Miguel Sofer * generic/tclExecute.c (INST_SUB): fix usage of the new macro for - overflow detection in sums, adapt to subtraction. Lenghty comment - added. + overflow detection in sums, adapt to subtraction. Lengthy comment + added. 2007-08-19 Donal K. Fellows @@ -367,14 +393,14 @@ * generic/tclExecute.c: check the two most frequent instructions before the switch. Reduces both runtime and obj size a tiny bit. -2007-08-16 Don Porter +2007-08-16 Don Porter * generic/tclCompExpr.c: Added a "constant" field to the OpNode struct (again "free" due to alignment requirements) to mark those - subexpressions that are completely known at compile time. Enhanced + subexpressions that are completely known at compile time. Enhanced CompileExprTree() and its callers to precompute these constant - subexpressions at compile time. This resolves the issue raised - in [Bug 1564517]. + subexpressions at compile time. This resolves the issue raised in [Bug + 1564517]. 2007-08-15 Donal K. Fellows @@ -384,10 +410,10 @@ 2007-08-14 Miguel Sofer - * generic/tclExecute.c (INST_INVOKE*): peephole opt, do not get - the interp's result if it will be pushed/popped. + * generic/tclExecute.c (INST_INVOKE*): peephole opt, do not get the + interp's result if it will be pushed/popped. -2007-08-14 Don Porter +2007-08-14 Don Porter * generic/tclBasic.c: Use fully qualified variable names for * tests/thread.test: ::errorInfo and ::errorCode so that string @@ -397,7 +423,7 @@ 2007-08-14 Daniel Steffen * unix/tclLoadDyld.c: use dlfcn API on Mac OS X 10.4 and later; fix - issues with loading from memory on intel and 64bit; add debug messages. + issues with loading from memory on intel and 64bit; add debug messages * tests/load.test: add test load-10.1 for loading from vfs. @@ -409,75 +435,74 @@ * unix/dltest/pkgua.c: * macosx/Tcl.xcodeproj/project.pbxproj: -2007-08-13 Don Porter +2007-08-13 Don Porter - * generic/tclExecute.c: Provide DECACHE/CACHE protection to the - * tests/trace.test: Tcl_LogCommandInfo() call. [Bug 1773040] + * generic/tclExecute.c: Provide DECACHE/CACHE protection to the + * tests/trace.test: Tcl_LogCommandInfo() call. [Bug 1773040] 2007-08-12 Miguel Sofer * generic/tclCmdMZ.c (Tcl_SplitObjCmd): use TclNewStringObj macro instead of calling the function. - - * generic/tcl_Obj.c (TclAllocateFreeObjects): remove unneeded - memset to 0 of all allocated objects. - + + * generic/tcl_Obj.c (TclAllocateFreeObjects): remove unneeded memset + to 0 of all allocated objects. + 2007-08-10 Miguel Sofer - * generic/tclInt.h: remove redundant ops in TclNewStringObj macro + * generic/tclInt.h: remove redundant ops in TclNewStringObj macro 2007-08-10 Miguel Sofer - * generic/tclInt.h: fix the TclSetVarNamespaceVar macro, was - causing a leak. + * generic/tclInt.h: fix the TclSetVarNamespaceVar macro, was causing a + leak. -2007-08-10 Don Porter +2007-08-10 Don Porter * generic/tclCompExpr.c: Revise CompileExprTree() to use the - OpNode mark field scheme of tree traversal. This eliminates the need + OpNode mark field scheme of tree traversal. This eliminates the need to use magic values in the left and right fields for that purpose. Also stop abusing the left field within ParseExpr() to store the - number of arguments in a parsed function call. CompileExprTree() now - determines that for itself at compile time. Then reorder code to + number of arguments in a parsed function call. CompileExprTree() now + determines that for itself at compile time. Then reorder code to eliminate duplication. 2007-08-09 Miguel Sofer - * generic/tclProc.c (TclCreateProc): better comments on the - required varflag values when loading precompiled procs. - + * generic/tclProc.c (TclCreateProc): better comments on the required + varflag values when loading precompiled procs. + * generic/tclExecute.c (INST_STORE_ARRAY): - * tests/trace.test (trace-2.6): whole array write traces on - compiled local variables were not firing [Bug 1770591] - -2007-08-08 Jeff Hobbs + * tests/trace.test (trace-2.6): whole array write traces on compiled + local variables were not firing. [Bug 1770591] + +2007-08-08 Jeff Hobbs * generic/tclProc.c (InitLocalCache): reference firstLocalPtr via - procPtr. codePtr->procPtr == NULL exposed by tbcload. + procPtr. codePtr->procPtr == NULL exposed by tbcload. -2007-08-08 Don Porter +2007-08-08 Don Porter - * generic/tclExecute.c: Corrected failure to compile/link - in the -DNO_WIDE_TYPE configuration. + * generic/tclExecute.c: Corrected failure to compile/link in the + -DNO_WIDE_TYPE configuration. - * generic/tclExecute.c: Corrected improper use of bignum arguments - * tests/expr.test: to *SHIFT operations. [Bug 1770224]. + * generic/tclExecute.c: Corrected improper use of bignum arguments to + * tests/expr.test: *SHIFT operations. [Bug 1770224] 2007-08-07 Miguel Sofer - * generic/tclInt.h: remove comments refering to VAR_SCALAR, as - that flag bit does not exist any longer. + * generic/tclInt.h: remove comments refering to VAR_SCALAR, as that + flag bit does not exist any longer. * generic/tclProc.c (InitCompiledLocals): removed optimisation for - non-resolved case, as the function is never called in that - case. Renamed the function to InitResolvedLocals to calrify the - point. + non-resolved case, as the function is never called in that case. + Renamed the function to InitResolvedLocals to calrify the point. 2007-08-07 Miguel Sofer - * generic/tclInt.decls: Exporting via stubs to help - * generic/tclInt.h: xotcl adapt to VarReform. - * generic/tclIntDecls.h: - * generic/tclStubInit.c: + * generic/tclInt.decls: Exporting via stubs to help + * generic/tclInt.h: xotcl adapt to VarReform. + * generic/tclIntDecls.h: + * generic/tclStubInit.c: 2007-08-07 Daniel Steffen @@ -493,12 +518,12 @@ * unix/configure: autoconf-2.59 -2007-08-06 Don Porter +2007-08-06 Don Porter - * tests/parseExpr.test: Update source file name of expr parser code. + * tests/parseExpr.test: Update source file name of expr parser code. * generic/tclCompExpr.c: Added a "mark" field to the OpNode - struct, which is used to guide tree traversal. This field costs + struct, which is used to guide tree traversal. This field costs nothing since alignement requirements used the memory already. Rewrote ConvertTreeToTokens() to use the new field, which permitted consolidation of utility routines CopyTokens() and @@ -509,27 +534,27 @@ * generic/tclGetDate.y: Added a cast to the definition of YYFREE to silence compiler warnings. * generic/tclDate.c: Regenerated - * win/tclWinTest.c: Added a cast to the call to + * win/tclWinTest.c: Added a cast to the call to GetSecurityDescriptorDacl to silence compiler warnings. - + 2007-08-04 Miguel Sofer - * generic/tclInt.decls: Exporting via stubs to help - * generic/tclInt.h: itcl adapt to VarReform. Added - * generic/tclIntDecls.h: localCache initialization to - * generic/tclProc.c: TclInitCompiledLocals (which - * generic/tclStubInit.c: only exists for itcl). + * generic/tclInt.decls: Exporting via stubs to help itcl adapt to + * generic/tclInt.h: VarReform. Added localCache initialization + * generic/tclIntDecls.h: to TclInitCompiledLocals (which only exists + * generic/tclProc.c: for itcl). + * generic/tclStubInit.c: * generic/tclVar.c: 2007-08-01 Donal K. Fellows * library/word.tcl: Rewrote for greater efficiency. [Bug 1764318] -2007-08-01 Pat Thoyts +2007-08-01 Pat Thoyts - * generic/tclInt.h: Added a TclOffset macro ala Tk_Offset to - * generic/tclVar.c: abstract out 'offsetof' which may not be + * generic/tclInt.h: Added a TclOffset macro ala Tk_Offset to + * generic/tclVar.c: abstract out 'offsetof' which may not be * generic/tclExceute.c: defined (eg: msvc6). 2007-08-01 Miguel Sofer @@ -563,24 +588,24 @@ * generic/tclProc.c: * generic/tclThreadStorage.c: * generic/tclTrace.c: - * generic/tclVar.c: VarReform [Patch 1750051] + * generic/tclVar.c: VarReform [Patch 1750051] *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h) Extensions that access internals defined in tclInt.h and/or tclCompile.h may lose both binary and source compatibility. The relevant changes are: 1. 'struct Var' is completely changed, all acceses to its internals - (either direct or via the TclSetVar* and TclIsVar* macros) will - malfunction. Var flag values and semantics changed too. + (either direct or via the TclSetVar* and TclIsVar* macros) will + malfunction. Var flag values and semantics changed too. 2. 'struct Bytecode' has an additional field that has to be - initialised to NULL + initialised to NULL 3. 'struct Namespace' is larger, as the varTable is now one pointer - larger than a Tcl_HashTable. Direct access to its fields will - malfunction. + larger than a Tcl_HashTable. Direct access to its fields will + malfunction. 4. 'struct CallFrame' grew one more field (the second such growth with - respect to Tcl8.4). - 5. api change for the functions TclFindCompiledLocal, TclDeleteVars - and many internal functions in tclVar.c + respect to Tcl8.4). + 5. API change for the functions TclFindCompiledLocal, TclDeleteVars + and many internal functions in tclVar.c Additionally, direct access to variable hash tables via the standard Tcl_Hash* interface is to be considered as deprecated. It still works @@ -591,8 +616,8 @@ 2007-07-31 Miguel Sofer - * unix/configure.in: allow use of 'inline' in Tcl sources - * win/configure.in: [Patch 1754128] + * unix/configure.in: allow use of 'inline' in Tcl sources. [Patch + * win/configure.in: 1754128] * win/makefile.vc: Regen with autoconf 2.61 2007-07-31 Donal K. Fellows @@ -631,32 +656,32 @@ * doc/platform_shell.n: updated documentation and Makefiles. Also fixed bad version info in the documentation of platform::shell. -2007-07-19 Don Porter +2007-07-19 Don Porter * generic/tclParse.c: In contexts where interp and parsePtr->interp might be different, be sure to use the latter for error reporting. Also pulled the interp argument back out of ParseTokens() since we already had a parsePtr->interp to work with. -2007-07-18 Don Porter +2007-07-18 Don Porter - * generic/tclCompExpr.c: Removed unused arguments and variables. + * generic/tclCompExpr.c: Removed unused arguments and variables -2007-07-17 Don Porter +2007-07-17 Don Porter * generic/tclCompExpr.c (ParseExpr): While adding comments to explain the operations of ParseExpr(), made significant revisions to the code so it would be easier to explain, and in the process made the code simpler and clearer as well. -2007-07-15 Don Porter +2007-07-15 Don Porter * generic/tclCompExpr.c: More commentary. * tests/parseExpr.test: Several tests of syntax error messages to check that when expression substrings are truncated they leave visible the context relevant to the reported error. -2007-07-12 Don Porter +2007-07-12 Don Porter * generic/tclCompExpr.c: Factored out, corrected, and commented common code for reporting syntax errors in LEAF elements. @@ -669,7 +694,7 @@ a script is within a loop (as produced by 'while 1'), so that the corresponding command is properly counted. [Bug 1752146] -2007-07-11 Don Porter +2007-07-11 Don Porter * generic/tclCompExpr.c: Added a "parseOnly" flag argument to ParseExpr() to indicate whether the caller is Tcl_ParseExpr(), with an @@ -677,11 +702,11 @@ parsed expression, or TclCompileExpr() with the goal of compiling and executing the expression. In the latter case, more aggressive conversion of QUOTED and BRACED lexeme to literals is done. In the - former case, all such conversion is avoided, since Tcl_Token production - would revert it anyway. This enables simplifications to the + former case, all such conversion is avoided, since Tcl_Token + production would revert it anyway. This enables simplifications to the GenerateTokensForLiteral() routine as well. -2007-07-10 Don Porter +2007-07-10 Don Porter * generic/tclCompExpr.c: Added a field for operator precedence to be stored directly in the parse tree. There's no memory cost to @@ -692,7 +717,7 @@ Removed some unused counter variables. Renamed some variables for clarity and replaced some cryptic logic with more readable macros. -2007-07-09 Don Porter +2007-07-09 Don Porter * generic/tclCompExpr.c: Revision so that the END lexeme never gets inserted into the parse tree. Later tree traversal never reaches @@ -703,9 +728,9 @@ * generic/tclCompExpr.c: Added missing creation and return of the Tcl_Parse fields that indicate error conditions. [Bug 1749987] -2007-07-05 Don Porter +2007-07-05 Don Porter - * library/init.tcl (unknown): Corrected inconsistent error message + * library/init.tcl (unknown): Corrected inconsistent error message in interactive [unknown] when empty command is invoked. [Bug 1743676] 2007-07-05 Miguel Sofer @@ -719,7 +744,7 @@ * generic/tclNamesp.c: Fix case where a FQ cmd or ns was being cached * generic/tclObj.c: in a different interp, tkcon. [Bug 1747512] -2007-07-03 Don Porter +2007-07-03 Don Porter * generic/tclCompExpr.c: Revised #define values so that there is now more expansion room to define more BINARY operators. @@ -731,10 +756,10 @@ identical (up to measurement limitations), and yet the code is simpler. [FRQ 951168] -2007-07-02 Don Porter +2007-07-02 Don Porter * generic/tcl.h: Removed TCL_PRESERVE_BINARY_COMPATIBILITY and - * generic/tclHash.c: any code enabled when it is set to 0. We will + * generic/tclHash.c: any code enabled when it is set to 0. We will * generic/tclStubInit.c: always want to preserve binary compat of the structs that appear in the interface through the 8.* series of releases, so it's pointless to drag around this never-enabled @@ -769,18 +794,18 @@ * generic/tclThreadAlloc.c: the custom TclpAlloc()s is aligned to 16 byte boundaries (as is the case with the Darwin system malloc). - * generic/tclGetDate.y: use ckalloc/ckfree instead of malloc/free. + * generic/tclGetDate.y: use ckalloc/ckfree instead of malloc/free. * generic/tclDate.c: bison 1.875e * generic/tclBasic.c (TclEvalEx): fix warnings. - * macosx/Tcl.xcodeproj/project.pbxproj: improve support for renamed tcl - * macosx/Tcl.xcodeproj/default.pbxuser: source dir; add 10.5 SDK build + * macosx/Tcl.xcodeproj/project.pbxproj: better support for renamed tcl + * macosx/Tcl.xcodeproj/default.pbxuser: source dir; add 10.5 SDK build * macosx/Tcl-Common.xcconfig: config; remove tclMathOp.c. * macosx/README: document Tcl.xcodeproj changes. -2007-06-28 Don Porter +2007-06-28 Don Porter * generic/tclBasic.c: Removed dead code, including the * generic/tclExecute.c: entire file tclMathOp.c. @@ -794,9 +819,9 @@ * win/makefile.bc: * win/makefile.vc: -2007-06-28 Pat Thoyts +2007-06-28 Pat Thoyts - * generic/tclBasic.c: Silence constness warnings for TclStackFree + * generic/tclBasic.c: Silence constness warnings for TclStackFree * generic/tclCompCmds.c: when building with msvc. * generic/tclFCmd.c: * generic/tclIOCmd.c: @@ -806,14 +831,14 @@ * generic/tclVar.c (UnsetVarStruct): fix possible segfault. -2007-06-27 Don Porter +2007-06-27 Don Porter - * generic/tclTrace.c: Corrected broken trace reversal logic in - * generic/tclTest.c: TclCheckInterpTraces that led to infinite loop - * tests/trace.test: when multiple Tcl_CreateTrace traces were set - and one of them did not fire due to level restrictions. [Bug 1743931]. + * generic/tclTrace.c: Corrected broken trace reversal logic in + * generic/tclTest.c: TclCheckInterpTraces that led to infinite loop + * tests/trace.test: when multiple Tcl_CreateTrace traces were set + and one of them did not fire due to level restrictions. [Bug 1743931] -2007-06-26 Don Porter +2007-06-26 Don Porter * generic/tclBasic.c (TclEvalEx): Moved some arrays from the C stack to the Tcl stack. @@ -822,9 +847,9 @@ * generic/tclVar.c (UnsetVarStruct): more streamlining. -2007-06-25 Don Porter +2007-06-25 Don Porter - * generic/tclExecute.c: Safety checks to avoid crashes in the + * generic/tclExecute.c: Safety checks to avoid crashes in the TclStack* routines when called with an incompletely initialized interp. [Bug 1743302] @@ -858,9 +883,9 @@ * macosx/tclMacOSXNotify.c (AtForkChild): don't call CoreFoundation APIs after fork() on systems where that would lead to an abort(). -2007-06-22 Don Porter +2007-06-22 Don Porter - * generic/tclExecute.c: Revised TclStackRealloc() signature to better + * generic/tclExecute.c: Revised TclStackRealloc() signature to better * generic/tclInt.h: parallel (and fall back on) Tcl_Realloc. * generic/tclNamesp.c (TclResetShadowesCmdRefs): Replaced @@ -869,7 +894,7 @@ * generic/tclCmdIL.c: More conversions to use TclStackAlloc. * generic/tclScan.c: -2007-06-21 Don Porter +2007-06-21 Don Porter * generic/tclBasic.c: Move most instances of the Tcl_Parse struct * generic/tclCompExpr.c: off the C stack and onto the Tcl stack. This @@ -878,9 +903,9 @@ 2007-06-21 Miguel Sofer - * generic/tclBasic.c (TEOvI): Made sure that leave traces - * generic/tclExecute.c (INST_INVOKE): that were created during - * tests/trace.test (trace-36.2): execution of an originally + * generic/tclBasic.c (TEOvI): Made sure that leave traces + * generic/tclExecute.c (INST_INVOKE): that were created during + * tests/trace.test (trace-36.2): execution of an originally untraced command do not fire [Bug 1740962], partial fix. 2007-06-21 Donal K. Fellows @@ -893,10 +918,10 @@ * generic/tclVar.c: streamline namespace vars deletion: only compute the variable's full name if the variable is traced. -2007-06-20 Don Porter +2007-06-20 Don Porter - * generic/tclInt.decls: Revised the interfaces of the routines - * generic/tclExecute.c: TclStackAlloc and TclStackFree to make them + * generic/tclInt.decls: Revised the interfaces of the routines + * generic/tclExecute.c: TclStackAlloc and TclStackFree to make them easier for callers to use (or more precisely, harder to misuse). TclStackFree now takes a (void *) argument which is the pointer intended to be freed. TclStackFree will panic if that's not actually @@ -922,12 +947,12 @@ * generic/tclTrace.c: * unix/tclUnixPipe.c: -2007-06-20 Jeff Hobbs +2007-06-20 Jeff Hobbs * tools/tcltk-man2html.tcl: revamp of html doc output to use CSS, standardized headers, subheaders, dictionary sorting of names. -2007-06-18 Jeff Hobbs +2007-06-18 Jeff Hobbs * tools/tcltk-man2html.tcl: clean up copyright merging and output. clean up coding constructs. @@ -943,7 +968,7 @@ * generic/tclExecute.c (TEBC): Moved the CmdFrame off the C stack and onto the Tcl stack, between the catch and the execution stacks -2007-06-18 Don Porter +2007-06-18 Don Porter * generic/tclBasic.c (TclEvalEx,TclEvalObjEx): Moved the CmdFrame off the C stack and onto the Tcl stack. @@ -962,12 +987,12 @@ 2007-06-15 Miguel Sofer * generic/tclCompCmds.c: Simplified [variable] compiler and executor. - * generic/tclExecute.c: Missed updates to "there is always a valid + * generic/tclExecute.c: Missed updates to "there is always a valid frame". * generic/tclCompile.c: reverted TclEvalObjvInternal and INST_INVOKE * generic/tclExecute.c: to essentially what they were previous to the - * generic/tclBasic.c: commit of 2007-04-03 [Patch 1693802] and the + * generic/tclBasic.c: commit of 2007-04-03 [Patch 1693802] and the subsequent optimisations, as they break the new trace tests described below. @@ -978,19 +1003,19 @@ 2007-06-14 Miguel Sofer - * generic/tclInt.decls: Modif to the internals of TclObjInterpProc - * generic/tclInt.h: to reduce stack consumption and improve task + * generic/tclInt.decls: Modif to the internals of TclObjInterpProc + * generic/tclInt.h: to reduce stack consumption and improve task * generic/tclIntDecls.h: separation. Changes the interface of - * generic/tclProc.c: TclObjInterpProcCore (patching TclOO + * generic/tclProc.c: TclObjInterpProcCore (patching TclOO simultaneously). * generic/tclProc.c (TclObjInterpProcCore): simplified obj management in wrongNumArgs calls. -2007-06-14 Don Porter +2007-06-14 Don Porter - * generic/tclCompile.c: SetByteCodeFromAny() can no longer return any - * generic/tclExecute.c: code other than TCL_OK, so remove code that + * generic/tclCompile.c: SetByteCodeFromAny() can no longer return any + * generic/tclExecute.c: code other than TCL_OK, so remove code that * generic/tclProc.c: formerly handled exceptional codes. 2007-06-13 Miguel Sofer @@ -1016,19 +1041,19 @@ 2007-06-11 Miguel Sofer - * generic/tclExecute.c: comments added to explain iPtr->numLevels + * generic/tclExecute.c: comments added to explain iPtr->numLevels management. - * generic/tclNamesp.c: tweaks to Tcl_GetCommandFromObj and - * generic/tclObj.c: TclGetNamespaceFromObj; modified the usage of + * generic/tclNamesp.c: tweaks to Tcl_GetCommandFromObj and + * generic/tclObj.c: TclGetNamespaceFromObj; modified the usage of structs ResolvedCmdName and ResolvedNsname so that the field refNsPtr is NULL for fully qualified names. 2007-06-10 Miguel Sofer - * generic/tclBasic.c: Further TEOvI split, creating a new - * generic/tclCompile.h: TclEvalObjvKnownCommand() function to handle - * generic/tclExecute.c: commands that are already known and are not + * generic/tclBasic.c: Further TEOvI split, creating a new + * generic/tclCompile.h: TclEvalObjvKnownCommand() function to handle + * generic/tclExecute.c: commands that are already known and are not traced. INST_INVOKE now calls into this function instead of inlining parts of TEOvI. Same perf, better isolation. @@ -1038,7 +1063,7 @@ between compiled and non-compiled code. ***THIS CHANGE IS UNDER REVIEW*** -2007-06-10 Jeff Hobbs +2007-06-10 Jeff Hobbs * README: updated links. [Bug 1715081] @@ -1064,13 +1089,13 @@ * generic/tclObj.c (Tcl_GetCommandFromObj): rewritten to make the logic clearer; slightly faster too. - * generic/tclBasic.c: Split TEOv in two, by separating a processor + * generic/tclBasic.c: Split TEOv in two, by separating a processor for non-TCL_OK returns. Also split TEOvI in a full version that handles non-existing and traced commands, and a separate shorter version for the regular case. - * generic/tclBasic.c: Moved the generation of command strings for - * generic/tclTrace.c: traces: previously in Tcl_EvalObjv(), now in + * generic/tclBasic.c: Moved the generation of command strings for + * generic/tclTrace.c: traces: previously in Tcl_EvalObjv(), now in TclCheck[Interp|Execution]Traces(). Also insured that the strings are properly NUL terminated at the correct length. [Bug 1693986] @@ -1082,12 +1107,12 @@ caller might as well not call them with a NULL string if he was expecting a noop. - * generic/tclBasic.c: Extend usage of TclLimitReady() and + * generic/tclBasic.c: Extend usage of TclLimitReady() and * generic/tclExecute.c: (new) TclLimitExceeded() macros. * generic/tclInt.h: * generic/tclInterp.c: - * generic/tclInt.h: New TclCleanupCommandMacro for core usage. + * generic/tclInt.h: New TclCleanupCommandMacro for core usage. * generic/tclBasic.c: * generic/tclExecute.c: * generic/tclObj.c: @@ -1105,26 +1130,26 @@ 2007-06-06 Miguel Sofer - * generic/tclParse.c: fix for uninit read [Bug 1732414]. + * generic/tclParse.c: fix for uninit read. [Bug 1732414] 2007-06-06 Daniel Steffen * macosx/Tcl.xcodeproj/project.pbxproj: add settings for Fix&Continue. * unix/configure.in (Darwin): add plist for tclsh; link the - * unix/Makefile.in (Darwin): Tcl and tclsh plists into their - * macosx/Tclsh-Info.plist.in (new): binaries in all cases. + * unix/Makefile.in (Darwin): Tcl and tclsh plists into + * macosx/Tclsh-Info.plist.in (new): their binaries in all cases. * macosx/Tcl-Common.xcconfig: * unix/tcl.m4 (Darwin): fix CF checks in fat 32&64bit builds. * unix/configure: autoconf-2.59 -2007-06-05 Don Porter +2007-06-05 Don Porter * generic/tclBasic.c: Added interp flag value ERR_LEGACY_COPY to * generic/tclInt.h: control the timing with which the global * generic/tclNamesp.c: variables ::errorCode and ::errorInfo get - * generic/tclProc.c: updated after an error. This keeps more + * generic/tclProc.c: updated after an error. This keeps more * generic/tclResult.c: precise compatibility with Tcl 8.4. * tests/result.test (result-6.2): [Bug 1649062] @@ -1137,11 +1162,11 @@ * unix/Makefile.in: add datarootdir to silence autoconf-2.6x warning. -2007-05-30 Don Porter +2007-05-30 Don Porter * generic/tclBasic.c: Removed code that dealt with - * generic/tclCompile.c: TCL_TOKEN_EXPAND_WORD tokens representing - * generic/tclCompile.h: expanded literal words. These sections were + * generic/tclCompile.c: TCL_TOKEN_EXPAND_WORD tokens representing + * generic/tclCompile.h: expanded literal words. These sections were mostly in place to enable [info frame] to discover line information in expanded literals. Since the parser now generates a token for each post-expansion word referring to the right location in the original @@ -1154,12 +1179,12 @@ tokens to represent the words that expansion of the literal string produces. [RFE 1725186] -2007-05-29 Jeff Hobbs +2007-05-29 Jeff Hobbs * unix/tclUnixThrd.c (Tcl_JoinThread): fix for 64-bit handling of pthread_join exit return code storage. [Bug 1712723] -2007-05-22 Don Porter +2007-05-22 Don Porter [core-stabilizer-branch] @@ -1174,7 +1199,7 @@ * unix/tcl.spec: * win/configure.in: -2007-05-18 Don Porter +2007-05-18 Don Porter * unix/configure: autoconf-2.59 (FC6 fork) * win/configure: @@ -1189,7 +1214,7 @@ * generic/tclParse.c: Disable and remove the ALLOW_EXPAND sections * tests/info.test: that continued to support the deprecated - * tests/mathop.test: {expand} syntax. Updated the few remaining + * tests/mathop.test: {expand} syntax. Updated the few remaining users of that syntax in the test suite. 2007-05-17 Donal K. Fellows @@ -1205,16 +1230,16 @@ * generic/tcl.decls: workaround 'make checkstubs' failures from tclStubLib.c MODULE_SCOPE revert. [Bug 1716117] -2007-05-16 Joe English +2007-05-16 Joe English - * generic/tclStubLib.c: Change Tcl_InitStubs(), tclStubsPtr, and the + * generic/tclStubLib.c: Change Tcl_InitStubs(), tclStubsPtr, and the auxilliary stubs table pointers back to public visibility. These symbols need to be exported so that stub-enabled extensions may be statically linked into an extended tclsh or Big Wish with a dynamically-linked libtcl. [Bug 1716117] -2007-05-15 Don Porter +2007-05-15 Don Porter * win/configure: autoconf-2.59 (FC6 fork) @@ -1223,12 +1248,12 @@ * win/makefile.bc: * win/tclWinReg.c: -2007-05-11 Pat Thoyts +2007-05-11 Pat Thoyts * generic/tclInt.h: Removed TclEvalObjEx and TclGetSrcInfoForPc from tclInt.h now they are in the internal stubs table. -2007-05-09 Don Porter +2007-05-09 Don Porter * generic/tclInt.h: TclFinalizeThreadAlloc() is always defined, so make sure it is also always declared (with MODULE_SCOPE). @@ -1241,15 +1266,15 @@ * macosx/Tcl.xcodeproj/default.pbxuser: 'DebugLeaks' targets and env var settings needed to run the 'leaks' tool. -2007-05-07 Don Porter +2007-05-07 Don Porter [Tcl Bug 1706140] * generic/tclLink.c (LinkTraceProc): Update Tcl_VarTraceProcs so * generic/tclNamesp.c (Error*Read): they call Tcl_InterpDeleted() - * generic/tclTrace.c (Trace*Proc): for themselves, and do not rely - * generic/tclUtil.c (TclPrecTraceProc): on (frequently buggy) setting - of the TCL_INTERP_DESTROYED flag by the trace core. + * generic/tclTrace.c (Trace*Proc): for themselves, and do not + * generic/tclUtil.c (TclPrecTraceProc): rely on (frequently buggy) + setting of the TCL_INTERP_DESTROYED flag by the trace core. * generic/tclVar.c: Update callers of TclCallVarTraces to not pass in the TCL_INTERP_DESTROYED flag. Also apply filters so that public @@ -1304,8 +1329,8 @@ 2007-05-01 Miguel Sofer * generic/tclVar.c (TclPtrSetVar): fixed leak whenever newvaluePtr had - refCount 0 and was used for appending (but not lappending). [Bug - 1710710], thanks to mistachkin and kbk. + refCount 0 and was used for appending (but not lappending). Thanks to + mistachkin and kbk. [Bug 1710710] 2007-05-01 Kevin B. Kenny @@ -1318,9 +1343,9 @@ after the 'testobj' extension to avoid spurious reports of memory leaks. -2007-05-01 Don Porter +2007-05-01 Don Porter - * generic/tclCmdMZ.c (STR_MAP): When [string map] has a pure dict map, + * generic/tclCmdMZ.c (STR_MAP): When [string map] has a pure dict map, a missing Tcl_DictObjDone() call led to a memleak. [Bug 1710709] 2007-04-30 Daniel Steffen @@ -1356,7 +1381,7 @@ before being stored as the current directory, to avoid a memory leak. [Bug 1705778, leak K01 among other manifestations] -2007-04-25 Don Porter +2007-04-25 Don Porter * generic/tclCompExpr.c (ParseExpr): Revised to be sure that an error return doesn't prevent all literals getting placed on the @@ -1387,15 +1412,15 @@ * generic/tclBinary.c: Addressed several code paths where the error return from the 'binary format' command leaked the result buffer. - * generic/tclListObj.c (TclLsetFlat): Fixed a bug where the new - list under construction was leaked in the error case.[Bug 1705778, - leaks K13 and K14] + * generic/tclListObj.c (TclLsetFlat): Fixed a bug where the new list + under construction was leaked in the error case. [Bug 1705778, leaks + K13 and K14] -2007-04-24 Jeff Hobbs +2007-04-24 Jeff Hobbs * unix/Makefile.in (dist): add platform library package to src dist -2007-04-24 Don Porter +2007-04-24 Don Porter * generic/tclCompExpr.c (ParseExpr): Memory leak in error case; the literal Tcl_Obj was not getting freed. [Bug 1705778, leak #1 (new)] @@ -1451,7 +1476,7 @@ * unix/configure.in: install license.terms into Tcl.framework. * unix/configure: autoconf-2.59 -2007-04-23 Don Porter +2007-04-23 Don Porter * generic/tclVar.c (UnsetVarStruct): Make sure the TCL_INTERP_DESTROYED flags gets passed to unset trace routines so they @@ -1460,7 +1485,7 @@ 2007-04-23 Miguel Sofer * generic/tclCompile.c (TclFreeCompileEnv): Tip 280's new field - extCmdMapPtr was not being freed [Bug 1705778, leak #1]. + extCmdMapPtr was not being freed. [Bug 1705778, leak #1] 2007-04-23 Kevin B. Kenny @@ -1517,7 +1542,7 @@ dates of the Japanese emperors. [Bug 1637471] Added a regression test for military time zone input conversion. [Bug 1586828] * generic/tclGetDate.y (MilitaryTable): Fixed an ancient bug where the - military NZA time zones had the signs reversed [Bug 1586828]. + military NZA time zones had the signs reversed. [Bug 1586828] * generic/tclDate.c: Regenerated. * doc/Notifier.3: Documented Tcl_SetNotifier and Tcl_ServiceModeHook. Quite against my better judgment. [Bug 414933] @@ -1629,7 +1654,7 @@ * generic/tclExecute.c: INST_INVOKE optimisation. [Patch 1693802] -2007-04-03 Don Porter +2007-04-03 Don Porter * generic/tclNamesp.c: Revised ErrorCodeRead and ErrorInfoRead trace routines so they guarantee the ::errorCode and ::errorInfo variable @@ -1637,24 +1662,24 @@ 2007-04-03 Miguel Sofer - * generic/tclInt.decls: Moved TclGetNamespaceFromObj() to the - * generic/tclInt.h: internal stubs table; regen. + * generic/tclInt.decls: Moved TclGetNamespaceFromObj() to the + * generic/tclInt.h: internal stubs table; regen. * generic/tclIntDecls.h: * generic/tclStubInit.c: 2007-04-02 Miguel Sofer - * generic/tclBasic.c: Added bytecode compilers for the variable + * generic/tclBasic.c: Added bytecode compilers for the variable * generic/tclCompCmds.c: linking commands: 'global', 'variable', - * generic/tclCompile.h: 'upvar', 'namespace upvar' [Patch 1688593] + * generic/tclCompile.h: 'upvar', 'namespace upvar' [Patch 1688593] * generic/tclExecute.c: * generic/tclInt.h: * generic/tclVar.c: -2007-04-02 Don Porter +2007-04-02 Don Porter * generic/tclBasic.c: Replace arrays on the C stack and ckalloc - * generic/tclExecute.c: calls with TclStackAlloc calls to use memory + * generic/tclExecute.c: calls with TclStackAlloc calls to use memory * generic/tclFCmd.c: on Tcl's evaluation stack. * generic/tclFileName.c: * generic/tclIOCmd.c: @@ -1673,7 +1698,7 @@ requiring a large number of instructions to be issued. (See my change from 2007-01-19 for what triggered this.) -2007-03-30 Don Porter +2007-03-30 Don Porter * generic/tclCompile.c: * generic/tclCompExpr.c: @@ -1698,18 +1723,18 @@ unneeded ref to lambdaPtr was being set and not released on an error return path. -2007-03-28 Don Porter +2007-03-28 Don Porter * generic/tclCmdMZ.c (STR_REVERSE): Implement the actual [string reverse] command in terms of the new TclStringObjReverse() routine. * generic/tclInt.h (TclStringObjReverse): New internal routine - * generic/tclStringObj.c (TclStringObjReverse): that implements the + * generic/tclStringObj.c (TclStringObjReverse): that implements the [string reverse] operation, making use of knowledge/surgery of the String intrep to minimize the number of allocs and copies needed to do the job. -2007-03-27 Don Porter +2007-03-27 Don Porter * generic/tclCmdMZ.c (STR_MAP): Replace ckalloc calls with TclStackAlloc calls. @@ -1731,7 +1756,7 @@ * win/Makefile.in: Added code to keep a Cygwin path name from leaking into LIBRARY_DIR when doing 'make test' or 'make runtest'. -2007-03-22 Don Porter +2007-03-22 Don Porter * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Replaced arrays on the C stack and ckalloc calls with TclStackAlloc calls to use memory on @@ -1742,9 +1767,9 @@ single reallocation / copy is the most that will ever be needed even when required growth is large. -2007-03-21 Don Porter +2007-03-21 Don Porter - * generic/tclExecute.c: More ckalloc -> ckrealloc conversions. + * generic/tclExecute.c: More ckalloc -> ckrealloc conversions. * generic/tclLiteral.c: * generic/tclNamesp.c: * generic/tclParse.c: @@ -1752,7 +1777,7 @@ * generic/tclStringObj.c: * generic/tclUtil.c: -2007-03-20 Don Porter +2007-03-20 Don Porter * generic/tclEnv.c: Some more ckalloc -> ckrealloc replacements. * generic/tclLink.c: @@ -1787,12 +1812,12 @@ for lists passed to the [lset] command. Thanks to Don Porter for fixing this issue. [Bug 1677512] -2007-03-19 Don Porter +2007-03-19 Don Porter - * generic/tclCompile.c: Revise the various expansion routines for + * generic/tclCompile.c: Revise the various expansion routines for CompileEnv fields to use ckrealloc() where appropriate. - * generic/tclBinary.c (Tcl_SetByteArrayLength): Replaced ckalloc() / + * generic/tclBinary.c (Tcl_SetByteArrayLength): Replaced ckalloc() / memcpy() sequence with ckrealloc() call. * generic/tclBasic.c (Tcl_CreateMathFunc): Replaced some calls to @@ -1830,7 +1855,7 @@ * tests/parse.test: Add two backslash newline parse tests. -2007-03-12 Don Porter +2007-03-12 Don Porter * generic/tclExecute.c (INST_FOREACH_STEP4): Make private copy of * tests/foreach.test (foreach-10.1): value list to be assigned to @@ -1838,7 +1863,7 @@ pointers. [Bug 1671087] * generic/tclEvent.c (HandleBgErrors): Make efficient private copy - * tests/event.test (event-5.3): of the command prefix for the interp's + * tests/event.test (event-5.3): of the command prefix for the interp's background error handling command to avoid panics due to pointers to memory invalid after shimmering. [Bug 1670155] @@ -1891,7 +1916,7 @@ 'loadTestedCommands' function of tcltest to bring in the correct path for the registry library. -2007-03-08 Don Porter +2007-03-08 Don Porter * generic/tclListObj.c (TclLsetList): Rewrite so that the routine itself does not do any direct intrep surgery. Better isolates those @@ -1925,7 +1950,7 @@ * unix/tcl.m4 (Darwin): s/CFLAGS/CPPFLAGS/ in macosx-version-min check * unix/configure: autoconf-2.59 -2007-03-07 Don Porter +2007-03-07 Don Porter * generic/tclCmdIL.c (TclLindex*): Rewrites to make efficient private copies of the list and indexlist arguments, so we can operate @@ -1967,11 +1992,11 @@ * generic/tclLink.c (LinkedVar): Added macro to conceal at least some of the pointer hackery. -2007-03-02 Don Porter +2007-03-02 Don Porter * generic/tclCmdIL.c (Tcl_LreverseObjCmd): Added missing TclInvalidateStringRep() call when we directly manipulate the intrep - of an unshared "list" Tcl_Obj. [Bug 1672585]. + of an unshared "list" Tcl_Obj. [Bug 1672585] * generic/tclCmdIL.c (Tcl_JoinObjCmd): Revised [join] implementation to append Tcl_Obj's instead of strings. [RFE 1669420] @@ -1994,7 +2019,7 @@ * tests/dict.test (dict-21.{14,15}): non-varying data in an aux-data value instead of a (shimmerable) literal. [Bug 1671001] -2007-03-01 Don Porter +2007-03-01 Don Porter * generic/tclCmdIL.c (Tcl_LinsertObjCmd): Code simplifications and optimizations. @@ -2030,20 +2055,20 @@ refcount release between NewRC and FreeRC for the channel handle object, spotted by Don Porter. [Bug 1667990] -2007-02-26 Don Porter +2007-02-26 Don Porter * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Removed surplus copying of the objv array that used to be a workaround for [Bug 404865]. That bug is long fixed. -2007-02-24 Don Porter +2007-02-24 Don Porter * generic/tclBasic.c: Use new interface in Tcl_EvalObjEx so that the recounting logic of the List internal rep need not be repeated there. Better encapsulation of internal details. * generic/tclInt.h: New internal routine TclListObjCopy() used - * generic/tclListObj.c: to efficiently do the equivalent of [lrange + * generic/tclListObj.c: to efficiently do the equivalent of [lrange $list 0 end]. After some experience with this, might be a good candidate for exposure as a public interface. It's useful for callers of Tcl_ListObjGetElements() who want to control the ongoing validity @@ -2065,18 +2090,18 @@ * win/tclWinPipe.c * win/tclWinSock.c: Added many "const" specifiers in implementation. -2007-02-20 Don Porter +2007-02-20 Don Porter - * doc/tcltest.n: Typo fix. [Bug 1663539] + * doc/tcltest.n: Typo fix. [Bug 1663539] -2007-02-20 Pat Thoyts +2007-02-20 Pat Thoyts - * generic/tclFileName.c: [Bug 1479814]. Handle extended paths - * generic/tclPathObj.c: on Windows NT and above. These have a - * win/tclWinFile.c: \\?\ prefix. - * tests/winFCmd.test: Tests for extended path handling. + * generic/tclFileName.c: Handle extended paths on Windows NT and + * generic/tclPathObj.c: above. These have a \\?\ prefix. [Bug + * win/tclWinFile.c: 1479814] + * tests/winFCmd.test: Tests for extended path handling. -2007-02-19 Jeff Hobbs +2007-02-19 Jeff Hobbs * unix/tcl.m4: use SHLIB_SUFFIX=".so" on HP-UX ia64 arch. * unix/configure: autoconf-2.59 @@ -2131,23 +2156,23 @@ * win/nmakehlp.c: Properly cleanup after nmakehlp, including the * win/makefile.vc: vcX0.pch file. -2007-02-08 Jeff Hobbs +2007-02-08 Jeff Hobbs * unix/tclUnixInit.c (TclpCheckStackSpace): do stack size checks with unsigned size_t to correctly validate stackSize in the 2^31+ range. [Bug 1654104] -2007-02-08 Don Porter +2007-02-08 Don Porter - * generic/tclNamesp.c: Corrected broken logic in Tcl_DeleteNamespace() - * tests/namespace.test: introduced in Patch 1577278 that caused + * generic/tclNamesp.c: Corrected broken logic in Tcl_DeleteNamespace + * tests/namespace.test: introduced in Patch 1577278 that caused [namespace delete ::] to be effective only at level #0. New test - namespace-7.7 should prevent similar error in the future. [Bug 1655305] + namespace-7.7 should prevent similar error in the future [Bug 1655305] -2007-02-06 Don Porter +2007-02-06 Don Porter * generic/tclNamesp.c: Corrected broken implementation of the - * tests/namespace.test: TclMatchIsTrivial optimization on [namespace + * tests/namespace.test: TclMatchIsTrivial optimization on [namespace children $namespace $pattern]. 2007-02-04 Daniel Steffen @@ -2163,11 +2188,11 @@ * win/rules.vc: Fix platform specific file copy macros for downlevel Windows. -2007-01-29 Don Porter +2007-01-29 Don Porter * generic/tclResult.c: Added optimization case to TclTransferResult to cover common case where there's big savings over the fully general - path. Thanks to Peter MacDonald. [Bug 1626518]. + path. Thanks to Peter MacDonald. [Bug 1626518] * generic/tclLink.c: Broken linked float logic corrected. Thanks to Andy Goth. [Bug 1602538] @@ -2176,23 +2201,23 @@ 2007-01-28 Daniel Steffen - * macosx/Tcl.xcodeproj/project.pbxproj: extract build settings that - * macosx/Tcl.xcodeproj/default.pbxuser: were common to multiple + * macosx/Tcl.xcodeproj/project.pbxproj: extract build settings that + * macosx/Tcl.xcodeproj/default.pbxuser: were common to multiple * macosx/Tcl-Common.xcconfig (new file): configurations into external - * macosx/Tcl-Debug.xcconfig (new file): xcconfig files; add extra + * macosx/Tcl-Debug.xcconfig (new file): xcconfig files; add extra * macosx/Tcl-Release.xcconfig (new file): configurations for building with SDKs and 64bit; convert legacy jam-based 'Tcl' target to native target with single script phase; correct syntax of build setting references to use $() throughout. - * macosx/README: document new Tcl.xcodeproj configurations; other minor - updates/corrections. + * macosx/README: document new Tcl.xcodeproj configurations; other + minor updates/corrections. * generic/tcl.h: update location of version numbers in macosx files. - * macosx/Tcl.xcode/project.pbxproj: restore 'tcltest' target to working - * macosx/Tcl.xcode/default.pbxuser: order by replicating applicable - changes to Tcl.xcodeproj since 2006-07-20. + * macosx/Tcl.xcode/project.pbxproj: restore 'tcltest' target to + * macosx/Tcl.xcode/default.pbxuser: working order by replicating + applicable changes to Tcl.xcodeproj since 2006-07-20. 2007-01-25 Daniel Steffen @@ -2234,7 +2259,7 @@ * macosx/Tcl.xcodeproj/project.pbxproj: ensure HOME and USER env vars * macosx/Tcl.xcodeproj/default.pbxuser: are defined when running - testsuite from Xcode. + testsuite from Xcode. * tests/env.test: add extra system env vars that need to be preserved on some Mac OS X versions for testsuite to work. @@ -2264,25 +2289,26 @@ * generic/tclIO.c: Added macros to make usage of ChannelBuffers clearer. -2007-01-11 Joe English +2007-01-11 Joe English * win/tcl.m4(CFLAGS_WARNING): Remove "-Wconversion". This was removed from unix/tcl.m4 2004-07-16 but not from here. * win/configure: Regenerated. -2007-01-11 Pat Thoyts +2007-01-11 Pat Thoyts * win/makefile.vc: Fixes to work better on Win98. Read version numbers * win/nmakehlp.c: from package index file to avoid keeping numbers in - * win/rules.vc: the makefile where they may become de-synchronized. + * win/rules.vc: the makefile where they may become de-synchronized. 2007-01-10 Donal K. Fellows * generic/regcomp.c (compile, freev): Define a strategy for - * generic/regexec.c (exec): managing the internal vars - * generic/regguts.h (AllocVars, FreeVars): of the RE engine to reduce - * generic/regcustom.h (AllocVars, FreeVars): C stack usage. This will - make Tcl as a whole much less likely to run out of stack space... + * generic/regexec.c (exec): managing the internal + * generic/regguts.h (AllocVars, FreeVars): vars of the RE engine to + * generic/regcustom.h (AllocVars, FreeVars): reduce C stack usage. + This will make Tcl as a whole much less likely to run out of stack + space... 2007-01-09 Donal K. Fellows @@ -2318,17 +2344,19 @@ * unix/tclUnixThrd.c (TclpInetNtoa): fix for 64 bit. - * unix/tcl.m4 (Darwin): --enable-64bit: verify linking with 64bit -arch - flag succeeds before enabling 64bit build. + * unix/tcl.m4 (Darwin): --enable-64bit: verify linking with 64bit + -arch flag succeeds before enabling 64bit build. * unix/configure: autoconf-2.59 2006-12-17 Daniel Steffen * tests/macOSXLoad.test (new file): add testing of .bundle loading and - * tests/load.test: unloading on Darwin (in addition to - * tests/unload.test: existing tests of .dylib loading). - * macosx/Tcl.xcodeproj/project.pbxproj: add building of dltest binaries - so that testsuite run from Xcode can use them; fix testsuite run script + * tests/load.test: unloading on Darwin (in addition + * tests/unload.test: to existing tests of .dylib + loading). + * macosx/Tcl.xcodeproj/project.pbxproj: add building of dltest + binaries so that testsuite run from Xcode can use them; fix testsuite + run script * unix/configure.in: add support for building dltest binaries as * unix/dltest/Makefile.in: .bundle (in addition to .dylib) on Darwin. * unix/Makefile.in: add stub lib dependency to dltest target. @@ -2346,7 +2374,7 @@ * doc/string.n: Fix example. [Bug 1615277] -2006-12-12 Don Porter +2006-12-12 Don Porter * generic/tclCompExpr.c: Now that the new internal structs are in use to support operator commands, might as well make them the @@ -2358,20 +2386,20 @@ * generic/tclBasic.c: Final step routing all direct evaluation forms * generic/tclCompExpr.c: of the operator commands through TEBC, - * generic/tclCompile.h: dropping all the routines in tclMathOp.c. + * generic/tclCompile.h: dropping all the routines in tclMathOp.c. * generic/tclMathOp.c: Still needs Engineering Manual attention. -2006-12-11 Don Porter +2006-12-11 Don Porter - * generic/tclBasic.c: Another step with all sorting operator commands - * generic/tclCompExpr.c: now routing through TEBC via - * generic/tclCompile.h: TclSortingOpCmd(). + * generic/tclBasic.c: Another step with all sorting operator + * generic/tclCompExpr.c: commands now routing through TEBC via + * generic/tclCompile.h: TclSortingOpCmd(). -2006-12-08 Don Porter +2006-12-08 Don Porter * generic/tclBasic.c: Another step down the path of re-using * generic/tclCompExpr.c: TclExecuteByteCode to implement the TIP 174 - * generic/tclCompile.h: commands instead of using a mass of code + * generic/tclCompile.h: commands instead of using a mass of code * generic/tclMathOp.c: duplication. Now all operator commands that * tests/mathop.test: demand exactly one operation are implemented via TclSingleOpCmd and a call to TEBC. @@ -2381,8 +2409,8 @@ This demonstrates a path toward avoiding mountains of code duplication in tclMathOp.c and tclExecute.c. - * generic/tclCompile.h: Change TclExecuteByteCode() from static to - * generic/tclExecute.c: MODULE_SCOPE so all files including + * generic/tclCompile.h: Change TclExecuteByteCode() from static to + * generic/tclExecute.c: MODULE_SCOPE so all files including tclCompile.h may call it. * generic/tclMathOp.c: More revisions to make tests pass. @@ -2400,7 +2428,7 @@ * library/tcltest/tcltest.tcl: use [info frame] for "-verbose line". -2006-12-07 Don Porter +2006-12-07 Don Porter * generic/tclCompCmds.c: Additional commits correct most * generic/tclExecute.c: failing tests illustrating bugs @@ -2422,11 +2450,11 @@ * generic/tclCompCmds.c (CompileCompareOpCmd): Factor out the code generation for the chained comparison operators. -2006-12-07 Pat Thoyts +2006-12-07 Pat Thoyts * tests/exec.test: Fixed line endings (caused win32 problems). -2006-12-06 Don Porter +2006-12-06 Don Porter * generic/tclCompCmds.c: Revised and consolidated into utility * tests/mathop.test: routines some of routines that compile @@ -2459,7 +2487,7 @@ * doc/platform.n: * doc/platform_shell.n: -2006-12-05 Don Porter +2006-12-05 Don Porter * generic/tclPkg.c: When no requirements are supplied to a * tests/pkg.test: [package require $pkg] and [package unknown] @@ -2478,7 +2506,7 @@ * generic/tclIOCmd.c (Tcl_ExecObjCmd): Added -ignorestderr option, * tests/exec.test, doc/exec.n: loosely from [Patch 1476191] -2006-12-04 Don Porter +2006-12-04 Don Porter * generic/tclCompExpr.c: Added implementation for the CompileExprTree() routine that can produce expression bytecode @@ -2486,7 +2514,7 @@ Tcl_Token array representation. Still disabled by default. #undef USE_EXPR_TOKENS to try it out. -2006-12-03 Don Porter +2006-12-03 Don Porter * generic/tclCompExpr.c: Added expr parsing routines that produce a different set of internal structures representing the parsed @@ -2514,7 +2542,7 @@ * tests/expr.test (expr-47.*): Added tests for isqrt() * tests/info.test (info-20.2): Added isqrt() to expected math funcs. -2006-12-01 Don Porter +2006-12-01 Don Porter * tests/chan.test: Correct timing sensitivity in new test. [Bug 1606860] @@ -2531,13 +2559,13 @@ TIP#298 IMPLEMENTATION - * generic/tcl.decls: Tcl_GetBignumAndClearObj -> Tcl_TakeBignumFromObj. + * generic/tcl.decls: Tcl_GetBignumAndClearObj -> Tcl_TakeBignumFromObj * generic/tclObj.c: * generic/tclDecls.h: make genstubs * generic/tclStubInit.c: - * generic/tclExecute.c: Update callers. + * generic/tclExecute.c: Update callers. * generic/tclMathOp.c: 2006-11-30 Kevin B. Kenny @@ -2547,7 +2575,7 @@ to the square root could be on the wrong side, causing failure of convergence. -2006-11-29 Don Porter +2006-11-29 Don Porter * generic/tclBasic.c (Tcl_AppendObjToErrorInfo): Added Tcl_DecrRefCount() on the objPtr argument to plug memory leaks. This @@ -2583,10 +2611,11 @@ LP64 machine if a fd number exceeds 32. Thanks to Jean-Luc Fontaine for reporting and diagnosing [Bug 1602208]. -2006-11-27 Don Porter +2006-11-27 Don Porter * generic/tclExecute.c (TclIncrObj): Correct failure to detect - floating-point increment values. Thanks to William Coleda [Bug 1602991] + floating-point increment values. Thanks to William Coleda [Bug + 1602991] 2006-11-26 Donal K. Fellows @@ -2621,16 +2650,16 @@ * doc/string.n: work by Joe Mistachkin, with enhancements by Donal Fellows for better failindex behaviour. -2006-11-22 Don Porter +2006-11-22 Don Porter * tools/genWinImage.tcl (removed): Removed two files used in * win/README.binary (removed): production of binary distributions - for Windows, a task we no longer perform. [Bug 1476980]. - * generic/tcl.h: Remove mention of win/README.binary in comment. + for Windows, a task we no longer perform. [Bug 1476980] + * generic/tcl.h: Remove mention of win/README.binary in comment * generic/tcl.h: Moved TCL_REG_BOSONLY #define from tcl.h to - * generic/tclInt.h: tclInt.h. Only know user is Expect, which - already #include's tclInt.h. No need to continue greater exposure. + * generic/tclInt.h: tclInt.h. Only know user is Expect, which + already #include's tclInt.h. No need to continue greater exposure. [Bug 926500] 2006-11-20 Donal K. Fellows @@ -2639,22 +2668,22 @@ * library/init.tcl: Refactored the [chan] command's guts so that it does not use aliases to global commands, making the code more robust. -2006-11-17 Don Porter +2006-11-17 Don Porter * generic/tclExecute.c (INST_EXPON): Corrected crash on - [expr 2**(1<<63)]. Was operating on cleared bignum Tcl_Obj. + [expr 2**(1<<63)]. Was operating on cleared bignum Tcl_Obj. 2006-11-16 Donal K. Fellows * doc/apply.n, doc/chan.n: Added examples. -2006-11-15 Don Porter +2006-11-15 Don Porter TIP#270 IMPLEMENTATION * generic/tcl.decls: New public routines Tcl_ObjPrintf, * generic/tclStringObj.c: Tcl_AppendObjToErrorInfo, Tcl_Format, - * generic/tclInt.h: Tcl_AppendLimitedToObj, + * generic/tclInt.h: Tcl_AppendLimitedToObj, Tcl_AppendFormatToObj and Tcl_AppendPrintfToObj. Former internal versions removed. @@ -2703,12 +2732,12 @@ * doc/lrepeat.n, doc/lreverse.n, doc/pkgMkIndex.n, doc/re_syntax.n: Convert \fP to \fR so that man-page scrapers have an easier time. -2006-11-14 Don Porter +2006-11-14 Don Porter TIP#261 IMPLEMENTATION - * generic/tclNamesp.c: [namespace import] with 0 arguments introspects - the list of imported commands. + * generic/tclNamesp.c: [namespace import] with 0 arguments + introspects the list of imported commands. 2006-11-13 Kevin B. Kenny @@ -2716,7 +2745,7 @@ (Tcl_FinalizeThreadStorage): Silence a compiler warning about presenting a volatile pointer to 'memset'. -2006-11-13 Don Porter +2006-11-13 Don Porter * generic/tclIO.c: When [gets] on a binary channel needs to use the "iso8859-1" encoding, save a copy of that encoding per-thread to @@ -2728,11 +2757,11 @@ * generic/tclCompExpr.c: Fix gcc warnings about 'cast to/from * generic/tclEncoding.c: pointer from/to integer of different - * generic/tclEvent.c: size' on 64-bit platforms by casting to - * generic/tclExecute.c: intermediate types intptr_t/uintptr_t - * generic/tclHash.c: via new PTR2INT(), INT2PTR(), - * generic/tclIO.c: PTR2UINT() and UINT2PTR() macros. - * generic/tclInt.h: [Patch 1592791] + * generic/tclEvent.c: size' on 64-bit platforms by casting + * generic/tclExecute.c: to intermediate types + * generic/tclHash.c: intptr_t/uintptr_t via new PTR2INT(), + * generic/tclIO.c: INT2PTR(), PTR2UINT() and UINT2PTR() + * generic/tclInt.h: macros. [Patch 1592791] * generic/tclProc.c: * generic/tclTest.c: * generic/tclThreadStorage.c: @@ -2768,7 +2797,7 @@ * unix/configure.in: whitespace. * unix/configure: autoconf-2.59 -2006-11-09 Don Porter +2006-11-09 Don Porter * generic/tclParseExpr.c (removed): Moved all the code of * generic/tclCompExpr.c: tclParseExpr.c into tclCompExpr.c. @@ -2801,7 +2830,7 @@ hardwired default block size should the filesystem report a bogus value. [Bug 1586470] -2006-11-04 Don Porter +2006-11-04 Don Porter * generic/tclStringObj.c: Changed Tcl_ObjPrintf() response to an invalid format specifier string. No longer panics; now produces an @@ -2835,7 +2864,7 @@ * macosx/Tcl.xcodeproj/project.pbxproj: check autoconf/autoheader exit status and stop build if they fail. -2006-11-02 Jeff Hobbs +2006-11-02 Jeff Hobbs * doc/ParseCmd.3, doc/Tcl.n, doc/eval.n, doc/exec.n: * doc/fconfigure.n, doc/interp.n, doc/unknown.n: @@ -2851,7 +2880,7 @@ * tests/upvar.test, tests/winConsole.test, tests/winFCmd.test: * tools/tclZIC.tcl: * generic/tclParse.c (Tcl_ParseCommand): Replace {expand} with {*} - officially (TIP #293). Leave -DALLOW_EXPAND=0|1 option to keep + officially (TIP #293). Leave -DALLOW_EXPAND=0|1 option to keep {expand} syntax for transition users. [Bug 1589629] 2006-11-02 Donal K. Fellows @@ -2860,7 +2889,7 @@ warnings from gcc over signed/unsigned and TclStackAlloc(). * generic/tclCmdMZ.c: Update to more compact and clearer coding style. -2006-11-02 Don Porter +2006-11-02 Don Porter * generic/tclCmdAH.c: Further revisions to produce the routines * generic/tclInt.h: TclFormat() and TclAppendFormatToObj() that @@ -2868,12 +2897,12 @@ * generic/tclStringObj.c: any varargs stuff. * generic/tclBasic.c: Further revised TclAppendPrintToObj() and - * generic/tclCkalloc.c: TclObjPrintf() routines to panic when unable - * generic/tclCmdAH.c: to complete their formatting operations, rather - * generic/tclCmdIL.c: than report an error message. This means an - * generic/tclCmdMZ.c: interp argument for error message recording is - * generic/tclDictObj.c: no longer needed, further simplifying the - * generic/tclExecute.c: interface for callers. + * generic/tclCkalloc.c: TclObjPrintf() routines to panic when unable + * generic/tclCmdAH.c: to complete their formatting operations, + * generic/tclCmdIL.c: rather than report an error message. This + * generic/tclCmdMZ.c: means an interp argument for error message + * generic/tclDictObj.c: recording is no longer needed, further + * generic/tclExecute.c: simplifying the interface for callers. * generic/tclIORChan.c: * generic/tclIOUtil.c: * generic/tclInt.h: @@ -2909,14 +2938,14 @@ * generic/tclEnv.c (Darwin): mark _environ symbol as unexported even when MODULE_SCOPE != __private_extern__. -2006-10-31 Don Porter +2006-10-31 Don Porter * generic/tclBasic.c: Refactored and renamed the routines - * generic/tclCkalloc.c: TclObjPrintf, TclFormatObj, and + * generic/tclCkalloc.c: TclObjPrintf, TclFormatObj, and * generic/tclCmdAH.c: TclFormatToErrorInfo to a new set of routines * generic/tclCmdIL.c: TclAppendPrintfToObj, TclAppendFormatToObj, * generic/tclCmdMZ.c: TclObjPrintf, and TclObjFormat, with the - * generic/tclDictObj.c: intent of making the latter list, plus + * generic/tclDictObj.c: intent of making the latter list, plus * generic/tclExecute.c: TclAppendLimitedToObj and * generic/tclIORChan.c: TclAppendObjToErrorInfo, public via a revised * generic/tclIOUtil.c: TIP 270. @@ -2938,7 +2967,7 @@ last remnant of the callObjc/v fiasco. It is not needed, as it is now always set and checked or'ed with TCL_EVAL_INVOKE. -2006-10-31 Pat Thoyts +2006-10-31 Pat Thoyts * win/rules.vc: Fix for [Bug 1582769] - options conflict with VC2003. @@ -2958,7 +2987,7 @@ since these tests require a different behaviour of [info level] than is possible because of other dependencies. -2006-10-30 Jeff Hobbs +2006-10-30 Jeff Hobbs * tools/tcltk-man2html.tcl (option-toc): handle any kind of options defined toc section (needed for ttk docs) @@ -2969,10 +2998,10 @@ fields are restored after traces run, as they be spoiled. This was causing a segfault in tcllib's profiler tests. -2006-10-30 Don Porter +2006-10-30 Don Porter * generic/tclExecute.c (INST_MOD): Corrected improper testing of the - * tests/expr.test: sign of bignums when applying Tcl's + * tests/expr.test: sign of bignums when applying Tcl's division rules. Thanks to Peter Spjuth. [Bug 1585704] 2006-10-29 Miguel Sofer @@ -3032,24 +3061,24 @@ 2006-10-23 Miguel Sofer * generic/tclProc.c (ApplyObjCmd): fix wrong#args for apply by using - the ensemble rewrite engine, [Bug 1574835]. + the ensemble rewrite engine. [Bug 1574835] * generic/tclInterp.c (AliasObjCmd): previous commit missed usage of TCL_EVAL_NOREWRITE for aliases. * generic/tclBasic.c (TclEvalObjvInternal): removed redundant check - for ensembles [Bug 1577628]. + for ensembles. [Bug 1577628] * library/clock.tcl (format, scan): corrected wrong # args messages to - * tests/clock.test (3.1, 34.1): make use of the new rewrite + * tests/clock.test (3.1, 34.1): make use of the new rewrite capabilities of [info level] - * generic/tcl.h: Lets TEOV update the iPtr->callObj[cv] new - * generic/tclBasic.c: fields, except when the flag bit - * generic/tclInt.h: TCL_EVAL_NOREWRITE is present. These values - * generic/tclNamesp.c: are used by Tcl_PushCallFrame to initialise - * generic/tclProc.c: the frame's obj[cv] fields, and allows - * tests/namespace.test: [info level] to know and use ensemble - rewrites [Bug 1577492]. + * generic/tcl.h: Lets TEOV update the iPtr->callObj[cv] new + * generic/tclBasic.c: fields, except when the flag bit + * generic/tclInt.h: TCL_EVAL_NOREWRITE is present. These values + * generic/tclNamesp.c: are used by Tcl_PushCallFrame to initialise + * generic/tclProc.c: the frame's obj[cv] fields, and allows + * tests/namespace.test: [info level] to know and use ensemble + rewrites. [Bug 1577492] ***POTENTIAL INCOMPATIBILITY*** The return value from [info level 0] on interp alias calls is changed: @@ -3058,15 +3087,15 @@ 2006-10-23 Miguel Sofer - * generic/tcl.h: Modified the Tcl call stack so there is - * generic/tclBasic.c: always a valid CallFrame, even at level 0 - * generic/tclCmdIL.c: [Patch 1577278]. Most of the changes - * generic/tclInt.h: involve removing tests for a NULL - * generic/tclNamesp.c: iPtr->(var)framePtr. There is now a - * generic/tclObj.c: CallFrame pushed at interp creation with a - * generic/tclProc.c: pointer to it stored in iPtr->rootFramePtr. - * generic/tclTrace.c: A second unused field in Interp is - * generic/tclVar.c: hijacked to enable further functionality, + * generic/tcl.h: Modified the Tcl call stack so there is + * generic/tclBasic.c: always a valid CallFrame, even at level 0 + * generic/tclCmdIL.c: [Patch 1577278]. Most of the changes + * generic/tclInt.h: involve removing tests for a NULL + * generic/tclNamesp.c: iPtr->(var)framePtr. There is now a + * generic/tclObj.c: CallFrame pushed at interp creation with a + * generic/tclProc.c: pointer to it stored in iPtr->rootFramePtr. + * generic/tclTrace.c: A second unused field in Interp is + * generic/tclVar.c: hijacked to enable further functionality, currently unused (but with several FRQs depending on it). ***POTENTIAL INCOMPATIBILITY*** @@ -3074,7 +3103,7 @@ running at level 0 should change (iPtr->varFramePtr == NULL) to (iPtr->varFramePtr == iPtr->rootFramePtr). -2006-10-23 Don Porter +2006-10-23 Don Porter * README: Bump version number to 8.5a6 * generic/tcl.h: @@ -3108,9 +3137,9 @@ * tools/tcltk-man2html.tcl: add support for alpha & beta versions to useversion glob pattern. [Bug 1579941] -2006-10-18 Don Porter +2006-10-18 Don Porter - * changes: 8.5a5 release date set + * changes: 8.5a5 release date set * doc/Encoding.3: Missing doc updates (mostly Table of * doc/Ensemble.3: Contents) exposed by `make checkdoc` @@ -3142,17 +3171,17 @@ * macosx/GNUmakefile: don't redo prebinding of non-prebound binaires. -2006-10-16 Don Porter +2006-10-16 Don Porter * generic/tclPkg.c (ExactRequirement): Plugged memory leak. Also changed Tcl_Alloc()/Tcl_Free() calls to ckalloc()/ckfree() for easier - memory debugging in the future. [Bug 1568373] + memory debugging in the future. [Bug 1568373] * library/tcltest/tcltest.tcl: Revise tcltest bump to 2.3a1. - * library/tcltest/pkgIndex.tcl: This permits more features to be - * unix/Makefile.in: added to tcltest before we reach version 2.3.0, + * library/tcltest/pkgIndex.tcl: This permits more features to be + * unix/Makefile.in: added to tcltest before we reach version 2.3.0 * win/Makefile.in: best timed to match the release of Tcl 8.5.0. - * win/makefile.vc: This also serves as a demo of TIP 268 features. + * win/makefile.vc: This also serves as a demo of TIP 268 features 2006-10-13 Colin McCormack @@ -3164,7 +3193,7 @@ 2006-10-13 Daniel Steffen * unix/tclUnixThrd.c (TclpThreadGetStackSize): on Darwin, use - * unix/tcl.m4: pthread_get_stacksize_np() API to get thread stack size. + * unix/tcl.m4: pthread_get_stacksize_np() API to get thread stack size * unix/configure: autoconf-2.59 * unix/tclConfig.h.in: autoheader-2.59 @@ -3180,12 +3209,12 @@ * win/nmakehlp.c: Replaced all wnsprintf() calls with snprintf(). wnsprintf was not in my shwlapi header file (VC++6) -2006-10-11 Don Porter +2006-10-11 Don Porter * generic/tclPkg.c (Tcl_PackageRequireEx): Corrected crash when argument version=NULL passed in. -2006-10-10 Don Porter +2006-10-10 Don Porter * changes: Updates for 8.5a5 release. @@ -3217,13 +3246,13 @@ proc-old.test, set.test, switch.test, tcltest.test, thread.test, var.test, while-old.test, while.test. -2006-10-06 Pat Thoyts +2006-10-06 Pat Thoyts * win/rules.vc: [Bug 1571954] avoid /RTCc flag with MSVC8 -2006-10-06 Pat Thoyts +2006-10-06 Pat Thoyts - * doc/binary.n: TIP #275: Support unsigned values in binary + * doc/binary.n: TIP #275: Support unsigned values in binary * generic/tclBinary.c: command. Tests and documentation updated. * tests/binary.test: @@ -3232,7 +3261,7 @@ * library/tm.tcl: Fixed bug in TIP #189 implementation, now allowing '_' in module names. -2006-10-05 Jeff Hobbs +2006-10-05 Jeff Hobbs * library/http/http.tcl (http::geturl): only do geturl url rfc 3986 validity checking if $::http::strict is true (default true for 8.5). @@ -3261,17 +3290,17 @@ 2006-10-01 Miguel Sofer * doc/Eval.3 (TclEvalObjv): added note on refCount management for the - elements of objv, [Bug 730244]. + elements of objv. [Bug 730244] -2006-10-01 Pat Thoyts +2006-10-01 Pat Thoyts * win/tclWinFile.c: Handle possible missing define. * win/tclWinFile.c (TclpUtime): [Bug 1420432] file mtime fails for - * tests/cmdAH.test: directories on windows + * tests/cmdAH.test: directories on windows * tests/winFile.test: Handle Msys environment a little differently in - getuser function. Fix for [Bug 1567956]. + getuser function. [Bug 1567956] 2006-09-30 Miguel Sofer @@ -3299,17 +3328,17 @@ * generic/tclPkg.c (CompareVersions): Bugfix. Check string lengths * tests/pkg.test: before comparison. The shorter string is the smaller number. Added testcases as well. Interestingly all existing test cases - for vcompare compared numbers of the same length with each other. See - [Bug 1563836]. + for vcompare compared numbers of the same length with each other. [Bug + 1563836] 2006-09-28 Miguel Sofer * generic/tclIO.c (Tcl_GetsObj): added two test'n'panic guards for possible NULL derefs, [Bug 1566382] and coverity #33. -2006-09-27 Don Porter +2006-09-27 Don Porter - * generic/tclExecute.c: Corrected error in INST_LSHIFT in the + * generic/tclExecute.c: Corrected error in INST_LSHIFT in the * tests/expr.test: calculation done to determine whether a shift in the (long int) type is possible. The calculation had literal value "1" where it needed a value "1L" to compute the correct result. Error @@ -3338,15 +3367,15 @@ 2006-09-27 Andreas Kupries * tests/pkg.test: Added test for version comparison at the 32bit - boundary. [Bug 1563836]. + boundary. [Bug 1563836] - * generic/tclPkg.c: [Bug 1563836]. Rewrote CompareVersion to perform - string comparison instead of numeric. This breaks through the 32bit - limit on version numbers. See code for details (handling of leading - zeros, signs, etc.). un-CONSTed some arguments of CompareVersions, + * generic/tclPkg.c: Rewrote CompareVersion to perform string + comparison instead of numeric. This breaks through the 32bit limit on + version numbers. See code for details (handling of leading zeros, + signs, etc.). un-CONSTed some arguments of CompareVersions, RequirementSatisfied, and AllRequirementsSatisfied. The new compare modifies the string (temporary string terminators). All callers use - heap-allocated ver-intreps, so we are good with that. + heap-allocated ver-intreps, so we are good with that. [Bug 1563836] 2006-09-27 Miguel Sofer @@ -3356,31 +3385,31 @@ 2006-09-26 Kevin B. Kenny - * doc/Encoding.3: Added covariant 'const' qualifier for the - * generic/tcl.decls: Tcl_EncodingType argument to + * doc/Encoding.3: Added covariant 'const' qualifier for the + * generic/tcl.decls: Tcl_EncodingType argument to * generic/tclEncoding.c: Tcl_CreateEncoding. [Further TIP#27 work.] - * generic/tclDecls.h: Reran 'make genstubs'. + * generic/tclDecls.h: Reran 'make genstubs'. -2006-09-26 Pat Thoyts +2006-09-26 Pat Thoyts * win/makefile.vc: Additional compiler flags and amd64 support. * win/nmakehlp.c: * win/rules.vc: -2006-09-26 Don Porter +2006-09-26 Don Porter - * generic/tcl.h: As 2006-09-22 commit from Donal K. Fellows - demonstrates, "#define NULL 0" is just wrong, and as a quotable chat - figure observed, "If NULL isn't defined, we're not using a C compiler." - Improper fallback definition of NULL removed. + * generic/tcl.h: As 2006-09-22 commit from Donal K. Fellows + demonstrates, "#define NULL 0" is just wrong, and as a quotable chat + figure observed, "If NULL isn't defined, we're not using a C compiler" + Improper fallback definition of NULL removed. -2006-09-25 Pat Thoyts +2006-09-25 Pat Thoyts - * generic/tcl.h: More fixing which struct stat to refer to. + * generic/tcl.h: More fixing which struct stat to refer to. * generic/tclGetDate.y: Some casts from time_t to int required. - * generic/tclTimer.c: Tcl_Time structure members are longs. - * win/makefile.vc: Support for varying compiler options - * win/rules.vc: and build to platform-specific subdirs. + * generic/tclTimer.c: Tcl_Time structure members are longs. + * win/makefile.vc: Support for varying compiler options + * win/rules.vc: and build to platform-specific subdirs. 2006-09-25 Andreas Kupries @@ -3421,7 +3450,7 @@ TIP#268 IMPLEMENTATION - * generic/tclDecls.h: Regenerated from tcl.decls. + * generic/tclDecls.h: Regenerated from tcl.decls. * generic/tclStubInit.c: * doc/PkgRequire.3: Documentation of extended API, extended testsuite. @@ -3445,7 +3474,7 @@ end-of-strings marker to Tcl_AppendResult; the difference matters on 64-bit machines. [Bug 1562528] -2006-09-21 Don Porter +2006-09-21 Don Porter * generic/tclUtil.c: Dropped ParseInteger() routine. TclParseNumber covers the task just fine. @@ -3455,15 +3484,15 @@ * 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 +2006-09-19 Don Porter * generic/tclExecute.c (INST_EXPON): Native type overflow detection - * tests/expr.test: was completely broken. Falling back on use of + * 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]. + correctly. [Bug 1561260] -2006-09-15 Jeff Hobbs +2006-09-15 Jeff Hobbs * library/http/http.tcl: Change " " -> "+" url encoding mapping * library/http/pkgIndex.tcl: to " " -> "%20" as per RFC 3986. @@ -3482,9 +3511,9 @@ increment needed to align the pointer, and added documentation explaining why the macro is implemented as it is. -2006-09-11 Pat Thoyts +2006-09-11 Pat Thoyts - * win/rules.vc: Updated to install http, tcltest and msgcat as + * 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. @@ -3495,8 +3524,8 @@ 2006-09-11 Daniel Steffen - * unix/tclUnixCompat.c: make compatLock static and only declare it when - it will actually be used; #ifdef parts of TSD that are not always + * 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 @@ -3509,42 +3538,42 @@ * 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 +2006-09-11 Don Porter * library/msgcat/msgcat.tcl: Removed some unneeded [uplevel]s. -2006-09-10 Don Porter +2006-09-10 Don Porter * generic/tclExecute.c: Corrected INST_EXPON flaw that treated - * tests/expr.test: $x**1 as $x**3. [Bug 1555371] + * tests/expr.test: $x**1 as $x**3. [Bug 1555371] * doc/tcltest.n: Bump to version tcltest 2.3.0 to - * library/tcltest/pkgIndex.tcl: account for new "-verbose line" - * library/tcltest/tcltest.tcl: feature. + * library/tcltest/pkgIndex.tcl: account for new "-verbose line" + * library/tcltest/tcltest.tcl: feature. * unix/Makefile.in: * win/Makefile.in: * win/makefile.bc: * win/makefile.vc: - * library/msgcat/msgcat.tcl: Bump to version msgcat 1.4.2 to account - * library/msgcat/pkgIndex.tcl: for modifications. + * library/msgcat/msgcat.tcl: Bump to version msgcat 1.4.2 to + * library/msgcat/pkgIndex.tcl: account for modifications. 2006-09-10 Daniel Steffen * 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). + * 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. + * 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/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 @@ -3573,9 +3602,9 @@ 2006-09-07 Zoran Vasiljevic - * unix/tclUnixChan.c: Rewritten MT-safe wrappers to return ptrs to + * unix/tclUnixChan.c: Rewritten MT-safe wrappers to return ptrs to * unix/tclUnixCompat.c: TSD storage making them all look like their - * unix/tclUnixFCmd.c: MT-unsafe pendants API-wise. + * unix/tclUnixFCmd.c: MT-unsafe pendants API-wise. * unix/tclUnixPort.h: * unix/tclUnixSock.c: @@ -3593,7 +3622,7 @@ * unix/tclUnixCompat.c: New file containing MT-safe implementation of some library calls. -2006-09-04 Don Porter +2006-09-04 Don Porter * generic/tclCompExpr.c: Removed much complexity that is no longer needed. @@ -3601,11 +3630,11 @@ * 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 +2006-09-04 Jeff Hobbs * doc/package.n: correct package example -2006-08-31 Don Porter +2006-08-31 Don Porter * generic/tclCompExpr.c: Corrected flawed logic for disabling the INST_TRY_CVT_TO_NUMERIC instruction at the end of an expression @@ -3616,11 +3645,11 @@ 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 +2006-08-29 Don Porter * generic/tclParseExpr.c: Dropped the old expr parser. -2006-08-30 Jeff Hobbs +2006-08-30 Jeff Hobbs * generic/tclBasic.c (Tcl_CreateInterp): init iPtr->threadId @@ -3637,7 +3666,7 @@ * generic/tclFileName.c (DoGlob): match incrs with decrs. -2006-08-29 Don Porter +2006-08-29 Don Porter * generic/tclParseExpr.c: Use the "parent" field of orphan ExprNodes to store the closure of left pointers. This lets us avoid @@ -3652,9 +3681,9 @@ 2006-08-29 Colin McCormack - * generic/tclIOUtil.c: Added test for NULL return from + * generic/tclIOUtil.c: Added test for NULL return from * generic/tclPathObj.c: Tcl_FSGetNormalizedPath which was causing - * unix/tclUnixFile.c: segv's per [Bug 1548263] + * unix/tclUnixFile.c: segv's per [Bug 1548263] * win/tclWinFCmd.c: * win/tclWinFile.c: @@ -3664,7 +3693,7 @@ * library/tzdata/America/Tegucigalpa: tzdata2006k. * library/tzdata/Asia/Gaza: -2006-08-28 Don Porter +2006-08-28 Don Porter * generic/tclStringObj.c: Revised ObjPrintfVA to take care to * generic/tclParseExpr.c: copy only whole characters when doing @@ -3692,32 +3721,32 @@ 2006-08-24 Kevin B. Kenny - * library/tzdata: Regenerated, including several new files, - from Olson's tzdata2006j. + * 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. + * 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 +2006-08-23 Don Porter * generic/tclParseExpr.c: Minimal collection of new tests - * tests/parseExpr.test: testing the error messages of the - new expr parser. Several bug fixes and code simplifications that - appeared during that effort. + * tests/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 +2006-08-21 Don Porter * generic/tclIOUtil.c: Revisions to complete the thread finalization - of the cwdPathPtr. [Bug 1536142] + 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/compExpr-old.test: Update existing tests to not fail with + * tests/compExpr.test: the new expr parser. * tests/compile.test: * tests/expr-old.test: * tests/expr.test: @@ -3741,14 +3770,14 @@ * 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] + 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. + * 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 @@ -3760,13 +3789,14 @@ 2006-08-18 Daniel Steffen * 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 + 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. + * generic/tcl.h: add fixes for building on Leopard and + * unix/tclUnixPort.h: support for 64-bit CoreFoundation on Leopard * macosx/tclMacOSXFCmd.c: * unix/tclUnixPort.h: on Darwin x86_64, disable use of vfork as it @@ -3777,12 +3807,14 @@ 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 + 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. + * macosx/Tcl.xcodeproj/default.pbxuser: add test suite target that + * macosx/Tcl.xcodeproj/project.pbxproj: runs the tcl test suite at + build time and shows clickable test suite errors in the GUI build + window. * tests/macOSXFCmd.test: fix use of deprecated resource fork paths. @@ -3793,15 +3825,15 @@ 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. + 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 +2006-08-17 Don Porter - * generic/tclCompile.c: Revised the new set of expression parse - * generic/tclParseExpr.c: error messages. + * generic/tclCompile.c: Revised the new set of expression + * generic/tclParseExpr.c: parse error messages. -2006-08-16 Don Porter +2006-08-16 Don Porter * generic/tclParseExpr.c: Replace PrecedenceOf() function with prec[] static array. @@ -3824,19 +3856,19 @@ * 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 + * generic/tclClock.c (TclClockInit): registration of commands not in global namespace. * generic/tclVar.c (Tcl_UnsetObjCmd): Remove unreachable clause. -2006-08-09 Don Porter +2006-08-09 Don Porter - * generic/tclEncoding.c: Replace buffer copy in for loop - with call to memcpy(). Thanks to afredd. [Patch 1530262] + * generic/tclEncoding.c: Replace buffer copy in for loop with + call to memcpy(). Thanks to afredd. [Patch 1530262] 2006-08-09 Donal K. Fellows - * generic/tclCmdIL.c (Tcl_LassignObjCmd): Make the wrong#args message a - bit more consistent with those used elsewhere. [Bug 1534628] + * 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] @@ -3850,17 +3882,18 @@ * 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. + 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. + * tests/compExpr.test: that depend on the exact format of the + * tests/compile.test: error messages of the pre-2006-07-05 + * tests/expr-old.test: expression parser. The constraint is on by + * tests/expr.test: default (i.e those tests still fail), but + * tests/for.test: can be turned off by passing '-constraints + * tests/if.test: newExprParser' to tcltest, which will skip + * tests/parseExpr.test: the 196 failing tests in the testsuite that + * tests/while.test: are caused by the new expression parser + error messages. 2006-07-31 Kevin B. Kenny @@ -3871,32 +3904,32 @@ 2006-07-30 Kevin B. Kenny * 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, + 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. + 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 +2006-07-30 Joe English * doc/AppInit.3: Fix typo [Bug 1496886] -2006-07-26 Don Porter +2006-07-26 Don Porter - * 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]. + * 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 +2006-07-24 Don Porter * win/tclWinSock.c: Correct un-initialized Tcl_DString. Thanks to afredd. [Bug 1518166] @@ -3908,33 +3941,34 @@ 2006-07-20 Daniel Steffen - * 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 + * 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. + 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/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 + * unix/tcl.m4: import and for AvailabilityMacros.h header; move Darwin specific checks & defines that are only relevant to the tcl build out of tcl.m4; restrict framework option to Darwin; clean up quoting and help messages. @@ -3966,23 +4000,23 @@ * generic/tclAsync.c: Made Tcl_AsyncDelete() more tolerant when called after all thread TSD has been garbage-collected. -2006-07-05 Don Porter +2006-07-05 Don Porter * 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 + 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 @@ -3990,19 +4024,19 @@ * 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. + * 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 +2006-06-20 Don Porter * generic/tclIOUtil.c: Changed default configuration to - * generic/tclInt.decls: #undef USE_OBSOLETE_FS_HOOKS which disables + * 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. @@ -4015,18 +4049,18 @@ * 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/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. + 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 - * 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. + * unix/tclUnixPort.h (Darwin): support MAC_OS_X_VERSION_MAX_ALLOWED + define from AvailabilityMacros.h: override configure detection and + only use API available in the indicated OS version or earlier. 2006-06-14 Donal K. Fellows @@ -4038,7 +4072,7 @@ * unix/tclLoadDl.c (TclpDlopen): Workaround for a compiler bug in Sun Forte 6. [Bug 1503729] -2006-06-06 Don Porter +2006-06-06 Don Porter * doc/GetStdChan.3: Added recommendation that each call to Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel(). @@ -4049,7 +4083,7 @@ 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 +2006-05-29 Jeff Hobbs * generic/tcl.h (Tcl_DecrRefCount): use if/else construct to allow placement in unbraced outer if/else conditions. (jcw) @@ -4057,14 +4091,15 @@ 2006-05-27 Daniel Steffen * 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/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 @@ -4079,11 +4114,11 @@ * 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 +2006-05-13 Don Porter - * 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 + * 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. @@ -4091,14 +4126,14 @@ * generic/tclEvent.c (HandleBgErrors): fix leak. [Coverity issue 86] -2006-05-05 Don Porter +2006-05-05 Don Porter * 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]. + Tcl_SetMainLoop(). [Bug 1481986] -2006-05-04 Don Porter +2006-05-04 Don Porter * README: Bump version number to 8.5a5 * generic/tcl.h: @@ -4112,9 +4147,9 @@ * win/configure: * generic/tclBasic.c (ExprSrandFunc): Restore acceptance of wide/big - * doc/mathfunc.n: integer values by srand() [Bug 1480509]. + * doc/mathfunc.n: integer values by srand(). [Bug 1480509] -2006-04-26 Don Porter +2006-04-26 Don Porter *** 8.5a4 TAGGED FOR RELEASE *** @@ -4125,7 +4160,7 @@ * generic/tclStrToD.c: "middle endian" floating point format used in Nokia N770. -2006-04-25 Don Porter +2006-04-25 Don Porter * doc/DoubleObj.3: More doc updates for TIP 237. * doc/expr.n: @@ -4154,39 +4189,39 @@ * doc/IntObj.3: Minor review fixes, including better documentation of the behaviour of Tcl_GetBignumAndClearObj. -2006-04-17 Don Porter +2006-04-17 Don Porter - * doc/IntObj.3: Documentation changes to account for TIP 237 changes. - * doc/Object.3: [Bug 1446971] + * doc/IntObj.3: Documentation changes to account for TIP 237 changes. + * doc/Object.3: [Bug 1446971] 2006-04-12 Donal K. Fellows - * generic/regc_locale.c (cclass): Redefined the meaning of [:print:] to - be exactly UNICODE letters, numbers, punctuation, symbols and spaces - (*not* whitespace). [Bug 1376892] + * 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 +2006-04-11 Don Porter - * generic/tclTrace.c: Stop some interference between enter traces - * tests/trace.test: and enterstep traces. [Bug 1458266] + * generic/tclTrace.c: Stop some interference between enter traces + * tests/trace.test: and enterstep traces. [Bug 1458266] -2006-04-07 Don Porter +2006-04-07 Don Porter - * generic/tclPathObj.c: Yet another revised fix for the [Bug 1379287] + * generic/tclPathObj.c: Yet another revised fix for the [Bug 1379287] * tests/fileSystem.test: family of path normalization bugs. -2006-04-06 Jeff Hobbs +2006-04-06 Jeff Hobbs * generic/tclRegexp.c (FinalizeRegexp): full reset data to indicate readiness for reinitialization. -2006-04-06 Don Porter +2006-04-06 Don Porter * 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] + 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. @@ -4207,11 +4242,11 @@ * unix/configure: autoconf-2.59 * unix/tclConfig.h.in: autoheader-2.59 -2006-04-05 Don Porter +2006-04-05 Don Porter * 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] + * win/tclWinSock.c: to avoid creating invalid DString states. Bump + * win/tclWinDde.c: to version 1.3.2. [RFE 1366195] * library/dde/pkgIndex.tcl: * library/reg/pkgIndex.tcl: Bump to registry 1.2 because @@ -4232,15 +4267,15 @@ * 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 + 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 + * generic/tclIO.c (ReadChars): Temporarily suppress the use of + TCL_ENCODING_END set when EOF was reached while the buffer we are + converting is not truly the last buffer in the queue. Together with the Utf bug below it was possible to completely wreck the buffer data - structures, eventually crashing Tcl. + structures, eventually crashing Tcl. [Bug 1462248] * generic/tclEncoding.c (UtfToUtfProc): Stop accessing memory beyond the end of the input buffer when TCL_ENCODING_END is set and the last @@ -4251,12 +4286,12 @@ * generic/tclExecute.c: remove unused var and silence gcc warning -2006-03-29 Jeff Hobbs +2006-03-29 Jeff Hobbs * win/Makefile.in: convert _NATIVE paths to use / to avoid ".\" path-as-escape issue. -2006-03-29 Don Porter +2006-03-29 Don Porter * changes: Updates for another RC. @@ -4267,44 +4302,44 @@ calculations in native types as much as possible, moving to mp_ints only when necessary. -2006-03-28 Jeff Hobbs +2006-03-28 Jeff Hobbs - * win/tclWinPipe.c (TclpCreateProcess): change panics to Tcl errors and - do proper refcounting of noe objPtr. [Bug 1194429] + * 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 - * macosx/Tcl.xcode/default.pbxuser: add '-singleproc 1' cli arg to + * 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.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] + realpath() converting relative paths into absolute paths [Bug 1064247] 2006-03-28 Vince Darley * generic/tclIOUtil.c: fix to nativeFilesystemRecord comparisons (lesser part of [Bug 1064247]) -2006-03-27 Pat Thoyts +2006-03-27 Pat Thoyts - * win/tclWinTest.c: Fixes for [Bug 1456373] (mingw-gcc issue) + * win/tclWinTest.c: Fixes for [Bug 1456373] (mingw-gcc issue) 2006-03-27 Andreas Kupries - * 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. + * doc/CrtChannel.3: Added TCL_CHANNEL_VERSION_5, made it the + * generic/tcl.h: version where the "truncateProc" is defined at, + * generic/tclIO.c: and moved all channel drivers of Tcl to v5. * generic/tclIOGT.c, generic/tclIORChan.c, unix/tclUnixChan.c: * unix/tclUnixPipe.c, win/tclWinChan.c, win/tclWinConsole.c: * win/tclWinPipe.c, win/tclWinSerial.c, win/tclWinSock.c: -2006-03-27 Don Porter +2006-03-27 Don Porter * generic/tclExecute.c: Merge INST_MOD computation in with the INST_?SHIFT instructions, which also operate only on two integral @@ -4314,17 +4349,17 @@ * changes: Updates for another RC. -2006-03-25 Don Porter +2006-03-25 Don Porter - * generic/tclExecute.c: Corrections to INST_EXPON detection of overflow - to use mp_int calculations. + * generic/tclExecute.c: Corrections to INST_EXPON detection of + overflow to use mp_int calculations. 2006-03-24 Kevin B. Kenny * generic/tclExecute.c (TclExecuteByteCode): Added a couple of missing casts to 'int' that were affecting compilablity on VC6. -2006-03-24 Don Porter +2006-03-24 Don Porter * generic/tclEncoding.c: Reverted latest change [Bug 506653] since it reportedly killed test performance on Windows. @@ -4333,7 +4368,7 @@ calculations in native types as much as possible, moving to mp_ints only when necessary. -2006-03-23 Don Porter +2006-03-23 Don Porter * generic/tclExecute.c: Merged INST_EXPON handling in with the other binary operators that operate on all number types (INST_ADD, etc.). @@ -4343,8 +4378,9 @@ 2006-03-23 Reinhard Max - * unix/tcl.spec: Cleaned up and completed the spec file. An RPM can now - be built from the tcl source distribution with "rpmbuild -tb " + * unix/tcl.spec: Cleaned up and completed the spec file. An RPM can + now be built from the tcl source distribution with "rpmbuild -tb + " 2006-03-22 Reinhard Max @@ -4352,21 +4388,21 @@ reported as failed tests rather than bugs in the test suite if the recursion causes a segfault. -2006-03-21 Don Porter +2006-03-21 Don Porter * changes: Updates for another RC. * generic/tclStrToD.c: One of the branches of AccumulateDecimalDigit - * tests/parseExpr.test: did not. [Bug 1451233] + * tests/parseExpr.test: did not. [Bug 1451233] * tests/env.test: Preserve case of saved env vars. [Bug 1409272] 2006-03-21 Daniel Steffen - * generic/tclInt.decls: implement globbing for HFS creator & type + * 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 + * 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 @@ -4383,8 +4419,8 @@ * 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. + them as comments otherwise :( The actual text stays indented for + better association with the commands they belong to. 2006-03-20 Donal K. Fellows @@ -4412,16 +4448,16 @@ * 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] + of writable/non-writable directories on Windows 2000/XP. This, with + the previous patches, closes [Bug 1193497] 2006-03-17 Andreas Kupries - * doc/chan.n: Updated with documentation for the commands 'chan create' - and 'chan postevent' (TIP #219). + * 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). + * doc/refchan.n: New file. Documentation of the command handler API + for reflected channels (TIP #219). 2006-03-17 Joe Mistachkin @@ -4436,7 +4472,7 @@ * 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]. + 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 @@ -4448,40 +4484,40 @@ 2006-03-15 Andreas Kupries - * tests/socket.test: Extended the timeout in socket-11.11 from 10 to 40 - seconds to allow for really slow machines. Also extended + * 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]. + clearer when a test fails due to a timeout. [Bug 792159] 2006-03-15 Vince Darley - * win/fCmd.test: add proper test constraints so the new tests don't run - on Unix. + * win/fCmd.test: add proper test constraints so the new tests don't + run on Unix. 2006-03-14 Andreas Kupries * generic/tclPipe.c (TclCreatePipeline): Modified the processing of - pipebars to fail if the last bar is followed only by redirections. [Bug - 768659] + pipebars to fail if the last bar is followed only by redirections. + [Bug 768659] 2006-03-14 Andreas Kupries * 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]. + special additional behaviour when setting it. [Bug 666770] 2006-03-14 Andreas Kupries * 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. + * unix/installManpage: Reverted part to handle double-quotes in + section NAME, chokes older sed installations. 2006-03-14 Andreas Kupries * library/tm.tcl (::tcl::tm::Defaults): Fixed handling of environment - variable TCLX.y_TM_PATH, bad variable reference. [Bug 1448251]. Thanks - to Julian Noble. + variable TCLX.y_TM_PATH, bad variable reference. Thanks to Julian + Noble. [Bug 1448251] 2006-03-14 Vince Darley @@ -4494,20 +4530,20 @@ setting and differences between XP/2000 and 95/98 3 tests still fail; to be dealt with shortly -2006-03-13 Don Porter +2006-03-13 Don Porter * generic/tclEncoding.c: Report error when an escape encoding is - missing one of its sub-encodings [Bug 506653]. + 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 + * 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 * generic/tclProc.c (ObjInterpProcEx): - * tests/apply.test (apply-5.1): Fix [apply] error messages so that they - quote the lambda expression [Bug 1447355]. + * tests/apply.test (apply-5.1): Fix [apply] error messages so that + they quote the lambda expression. [Bug 1447355] 2006-03-10 Zoran Vasiljevic @@ -4534,21 +4570,21 @@ 2006-03-09 Vince Darley * 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. + Thanks to fvogel and jfg. [Patch 1344540] Modified patch to make use + of existing use of getSecurityProc. -2006-03-08 Don Porter +2006-03-08 Don Porter - * generic/tclExecute.c: Complete missing bit of TIP 215 implementation + * generic/tclExecute.c: Complete missing bit of TIP 215 implementation * tests/incr.test: -2006-03-07 Joe English +2006-03-07 Joe English - * unix/tcl.m4: Set SHLIB_LD_FLAGS='${LIBS}' on NetBSD, as per the other - *BSD variants [Bug 1334613]. + * 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 +2006-03-07 Don Porter * changes: Update in prep. for 8.5a4 release. @@ -4556,13 +4592,13 @@ * win/Makefile.in: *.tm installation has to be placed in an "8.4" directory, not an "8.2" directory. -2006-03-06 Don Porter +2006-03-06 Don Porter - * generic/tclBasic.c: Revised handling of TCL_EVAL_* flags to - * tests/parse.test: simplify TclEvalObjvInternal and to correct the - auto-loading of alias targets (parse-8.12). [Bug 1444291] + * generic/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 +2006-03-03 Don Porter * generic/tclPathObj.c: Revised yesterday's fix for [Bug 1379287] to work on Windows. @@ -4570,56 +4606,56 @@ * generic/tclObj.c: Compatibility support for existing code that calls Tcl_GetObjType("boolean"). -2006-03-02 Don Porter +2006-03-02 Don Porter * generic/tclPathObj.c: Fix for failed normalization of paths - * tests/fileSystem.test: with /../ that lead back to the root of - the filesystem, like /foo/.. [Bug 1379287] + * tests/fileSystem.test: with /../ that lead back to the root + of the filesystem, like /foo/.. [Bug 1379287] 2006-03-01 Reinhard Max * 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. + around the .SH arguments, as doctools produces them. [Bug 1292145] + Some minor cleanups and improvements. -2006-02-28 Don Porter +2006-02-28 Don Porter * generic/tclBasic.c: Corrections to be sure that TCL_EVAL_GLOBAL - * tests/namespace.test: evaluations act the same as [uplevel #0] + * 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]. + * tests/trace.test: invocations of [::unknown] are present. [Bug + 1439836] -2006-02-22 Don Porter +2006-02-22 Don Porter * generic/tclBasic.c: Corrected a few bugs in how [namespace - * tests/namespace.test: unknown] interacts with TCL_EVAL_* flags. + * tests/namespace.test: unknown] interacts with TCL_EVAL_* flags. [Patch 958222] -2006-02-17 Don Porter +2006-02-17 Don Porter - * generic/tclIORChan.c: Revised error message generation and handling + * 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 +2006-02-16 Don Porter * 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 +2006-02-15 Don Porter * generic/tclIO.c: Made several routines tolerant of - * generic/tclIORChan.c: interp == NULL arguments. [Bug 1380662] + * generic/tclIORChan.c: interp == NULL arguments. [Bug 1380662] * generic/tclIOUtil.c: -2006-02-09 Don Porter +2006-02-09 Don Porter TIP#215 IMPLEMENTATION * doc/incr.n: Revised [incr] to auto-initialize when varName - * generic/tclExecute.c: argument is unset. [Patch 1413115]. + * generic/tclExecute.c: argument is unset. [Patch 1413115] * generic/tclVar.c: * tests/compile.test: * tests/incr-old.test: @@ -4627,14 +4663,14 @@ * tests/set.test: * tests/main.test (Tcl_Main-6.7): Improved robustness of - command auto-completion test. [Bug 1422736]. + command auto-completion test. [Bug 1422736] 2006-02-08 Donal K. Fellows * doc/Encoding.3, doc/encoding.n: Updates due to review at request of Don Porter. Mostly minor changes. -2006-02-08 Don Porter +2006-02-08 Don Porter TIP#258 IMPLEMENTATION @@ -4650,7 +4686,7 @@ * library/init.tcl: Removed commands: * tests/cmdAH.test: [tcl::unsupported::EncodingDirs] * tests/encoding.test: [testencoding path] (Tcltest) - * unix/tclUnixInit.c: [Patch 1413934]. + * unix/tclUnixInit.c: [Patch 1413934] * win/tclWinInit.c: * generic/tclDecls.h: make genstubs @@ -4663,11 +4699,11 @@ * tests/apply.test: new tests; apply-5.1 currently fails to indicate missing work in error reporting -2006-02-01 Don Porter +2006-02-01 Don Porter TIP#194 IMPLEMENTATION - * doc/apply.n: (New file) New command [apply]. [Patch 944803]. + * doc/apply.n: (New file) New command [apply]. [Patch 944803] * doc/uplevel.n: * generic/tclBasic.c: * generic/tclInt.h: @@ -4680,7 +4716,7 @@ * doc/Namespace.3: New command [namespace unknown]. New public C * doc/namespace.n: routines Tcl_(Get|Set)NamespaceUnknownHandler. - * doc/unknown.n: [Patch 958222]. + * doc/unknown.n: [Patch 958222] * generic/tcl.decls: * generic/tclBasic.c: * generic/tclInt.h: @@ -4713,8 +4749,8 @@ 2006-01-25 Donal K. Fellows - * unix/tclUnixInit.c (TclpInitPlatform): Improved conditions on when to - update the FP rounding mode on FreeBSD, taken from FreeBSD port. + * 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 @@ -4724,7 +4760,7 @@ 2006-01-23 Miguel Sofer * generic/tclStringObj.c: fixed incorrect handling of internal rep in - Tcl_GetRange [Bug 1410553]. Thanks to twylite and Peter Spjuth. + Tcl_GetRange. Thanks to twylite and Peter Spjuth. [Bug 1410553] * generic/tclProc.c: fixed args handling for precompiled bodies [Bug 1412695]; thanks to Uwe Traum. @@ -4738,14 +4774,14 @@ 2006-01-12 Zoran Vasiljevic * generic/tclPathObj.c (Tcl_FSGetInternalRep): backported patch from - core-8-4-branch. A freed pointer has been overwritten causing all sorts - of coredumps. + core-8-4-branch. A freed pointer has been overwritten causing all + sorts of coredumps. 2006-01-12 Vince Darley * win/tclWinFile.c: fix to sharing violation [Bug 1366227] -2006-01-11 Don Porter +2006-01-11 Don Porter * generic/tclBasic.c: Moved Tcl_LogCommandInfo from tclBasic.c to * generic/tclNamesp.c: tclNamesp.c to get access to identifier with @@ -4753,22 +4789,22 @@ ::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]. + completely eliminate the ***POTENTIAL INCOMPATIBILITY*** created by + the 2004-10-15 commit. [Bug 1397843] 2006-01-10 Daniel Steffen * 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 + * 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 +2006-01-09 Don Porter - * generic/tclNamesp.c (NamespaceInscopeCmd): [namespace inscope] - * tests/namespace.test: commands were not reported by [info level] - [Bug 1400572]. + * generic/tclNamesp.c (NamespaceInscopeCmd): [namespace inscope] + * tests/namespace.test: commands were not reported by [info level]. + [Bug 1400572] 2006-01-09 Donal K. Fellows @@ -4785,9 +4821,9 @@ * 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. + services such as signal handlers should best be done with extensions + to the core after discussions on c.l.t. about Roy Terry's tclsh + children of a real windows service shell. ****************************************************************** *** CHANGELOG ENTRIES FOR 2005 IN "ChangeLog.2005" *** diff --git a/generic/tcl.h b/generic/tcl.h index 1ceb974..0f54578 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tcl.h,v 1.231.2.4 2007/09/04 17:43:47 dgp Exp $ + * RCS: @(#) $Id: tcl.h,v 1.231.2.5 2007/09/17 15:03:44 dgp Exp $ */ #ifndef _TCL @@ -2216,7 +2216,7 @@ EXTERN CONST char* TclTomMathInitializeStubs(Tcl_Interp* interp, */ #define Tcl_InitStubs(interp, version, exact) \ - Tcl_PkgRequire(interp, "Tcl", version, exact) + Tcl_PkgInitStubsCheck(interp, version, exact) #endif @@ -2232,6 +2232,9 @@ EXTERN CONST char* TclTomMathInitializeStubs(Tcl_Interp* interp, EXTERN void Tcl_Main _ANSI_ARGS_((int argc, char **argv, Tcl_AppInitProc *appInitProc)); +EXTERN CONST char *Tcl_PkgInitStubsCheck _ANSI_ARGS_((Tcl_Interp *interp, + CONST char *version, int exact)); + /* * Include the public function declarations that are accessible via the stubs * table. diff --git a/generic/tclEvent.c b/generic/tclEvent.c index a98cec1..6ccf859 100644 --- a/generic/tclEvent.c +++ b/generic/tclEvent.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclEvent.c,v 1.72.2.3 2007/09/07 20:20:55 dgp Exp $ + * RCS: @(#) $Id: tclEvent.c,v 1.72.2.4 2007/09/17 15:03:44 dgp Exp $ */ #include "tclInt.h" @@ -521,7 +521,10 @@ TclGetBgErrorHandler( Tcl_GetAssocData(interp, "tclBgError", NULL); if (assocPtr == NULL) { - TclSetBgErrorHandler(interp, Tcl_NewStringObj("::tcl::Bgerror", -1)); + Tcl_Obj *bgerrorObj; + + TclNewLiteralStringObj(bgerrorObj, "::tcl::Bgerror"); + TclSetBgErrorHandler(interp, bgerrorObj); assocPtr = (ErrAssocData *) Tcl_GetAssocData(interp, "tclBgError", NULL); } diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 3f18007..dd05444 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclExecute.c,v 1.285.2.18 2007/09/14 16:28:33 dgp Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.285.2.19 2007/09/17 15:03:44 dgp Exp $ */ #include "tclInt.h" @@ -169,14 +169,18 @@ static BuiltinFunc tclBuiltinFuncTable[] = { ((Var *) ((char *)hPtr - TclOffset(VarInHash, entry))) static inline Var * -VarHashCreateVar(TclVarHashTable *tablePtr, Tcl_Obj *key, int *newPtr) +VarHashCreateVar( + TclVarHashTable *tablePtr, + Tcl_Obj *key, + int *newPtr) { - Tcl_HashEntry *hPtr = Tcl_CreateHashEntry((Tcl_HashTable *) tablePtr, (char *) key, newPtr); - if (hPtr) { - return VarHashGetValue(hPtr); - } else { + Tcl_HashEntry *hPtr = Tcl_CreateHashEntry((Tcl_HashTable *) tablePtr, + (char *) key, newPtr); + + if (!hPtr) { return NULL; } + return VarHashGetValue(hPtr); } #define VarHashFindVar(tablePtr, key) \ @@ -6814,8 +6818,7 @@ TclExecuteByteCode( divideByZero: Tcl_SetObjResult(interp, Tcl_NewStringObj("divide by zero", -1)); - Tcl_SetErrorCode(interp, "ARITH", "DIVZERO", "divide by zero", - (char *) NULL); + Tcl_SetErrorCode(interp, "ARITH", "DIVZERO", "divide by zero", NULL); result = TCL_ERROR; goto checkForCatch; @@ -6829,7 +6832,7 @@ TclExecuteByteCode( Tcl_SetObjResult(interp, Tcl_NewStringObj( "exponentiation of zero by negative power", -1)); Tcl_SetErrorCode(interp, "ARITH", "DOMAIN", - "exponentiation of zero by negative power", (char *) NULL); + "exponentiation of zero by negative power", NULL); result = TCL_ERROR; goto checkForCatch; @@ -7588,23 +7591,23 @@ TclExprFloatError( if ((errno == EDOM) || TclIsNaN(value)) { s = "domain error: argument not in valid range"; Tcl_SetObjResult(interp, Tcl_NewStringObj(s, -1)); - Tcl_SetErrorCode(interp, "ARITH", "DOMAIN", s, (char *) NULL); + Tcl_SetErrorCode(interp, "ARITH", "DOMAIN", s, NULL); } else if ((errno == ERANGE) || TclIsInfinite(value)) { if (value == 0.0) { s = "floating-point value too small to represent"; Tcl_SetObjResult(interp, Tcl_NewStringObj(s, -1)); - Tcl_SetErrorCode(interp, "ARITH", "UNDERFLOW", s, (char *) NULL); + Tcl_SetErrorCode(interp, "ARITH", "UNDERFLOW", s, NULL); } else { s = "floating-point value too large to represent"; Tcl_SetObjResult(interp, Tcl_NewStringObj(s, -1)); - Tcl_SetErrorCode(interp, "ARITH", "OVERFLOW", s, (char *) NULL); + Tcl_SetErrorCode(interp, "ARITH", "OVERFLOW", s, NULL); } } else { Tcl_Obj *objPtr = Tcl_ObjPrintf( "unknown floating-point error, errno = %d", errno); Tcl_SetErrorCode(interp, "ARITH", "UNKNOWN", - Tcl_GetString(objPtr), (char *) NULL); + Tcl_GetString(objPtr), NULL); Tcl_SetObjResult(interp, objPtr); } } diff --git a/generic/tclFCmd.c b/generic/tclFCmd.c index 53e611f..87a3a21 100644 --- a/generic/tclFCmd.c +++ b/generic/tclFCmd.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclFCmd.c,v 1.39.2.2 2007/07/01 17:31:24 dgp Exp $ + * RCS: @(#) $Id: tclFCmd.c,v 1.39.2.3 2007/09/17 15:03:44 dgp Exp $ */ #include "tclInt.h" @@ -694,20 +694,20 @@ CopyRenameOneFile( * cross-filesystem copy. We do this through our Tcl library. */ - Tcl_Obj *copyCommand = Tcl_NewListObj(0, NULL); + Tcl_Obj *copyCommand, *cmdObj, *opObj; - Tcl_IncrRefCount(copyCommand); - Tcl_ListObjAppendElement(interp, copyCommand, - Tcl_NewStringObj("::tcl::CopyDirectory",-1)); + TclNewObj(copyCommand); + TclNewLiteralStringObj(cmdObj, "::tcl::CopyDirectory"); + Tcl_ListObjAppendElement(interp, copyCommand, cmdObj); if (copyFlag) { - Tcl_ListObjAppendElement(interp, copyCommand, - Tcl_NewStringObj("copying",-1)); + TclNewLiteralStringObj(opObj, "copying"); } else { - Tcl_ListObjAppendElement(interp, copyCommand, - Tcl_NewStringObj("renaming",-1)); + TclNewLiteralStringObj(opObj, "renaming"); } + Tcl_ListObjAppendElement(interp, copyCommand, opObj); Tcl_ListObjAppendElement(interp, copyCommand, source); Tcl_ListObjAppendElement(interp, copyCommand, target); + Tcl_IncrRefCount(copyCommand); result = Tcl_EvalObjEx(interp, copyCommand, TCL_EVAL_GLOBAL | TCL_EVAL_DIRECT); Tcl_DecrRefCount(copyCommand); diff --git a/generic/tclIO.c b/generic/tclIO.c index 81a20e5..c9822e9 100644 --- a/generic/tclIO.c +++ b/generic/tclIO.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclIO.c,v 1.121.2.2 2007/09/06 18:20:30 dgp Exp $ + * RCS: @(#) $Id: tclIO.c,v 1.121.2.3 2007/09/17 15:03:44 dgp Exp $ */ #include "tclInt.h" @@ -8208,13 +8208,13 @@ CopyData( * Check for unreported background errors. */ - Tcl_GetChannelError (inChan, &msg); + Tcl_GetChannelError(inChan, &msg); if ((inStatePtr->unreportedError != 0) || (msg != NULL)) { Tcl_SetErrno(inStatePtr->unreportedError); inStatePtr->unreportedError = 0; goto readError; } - Tcl_GetChannelError (outChan, &msg); + Tcl_GetChannelError(outChan, &msg); if ((outStatePtr->unreportedError != 0) || (msg != NULL)) { Tcl_SetErrno(outStatePtr->unreportedError); outStatePtr->unreportedError = 0; @@ -8241,13 +8241,19 @@ CopyData( if (size < 0) { readError: - TclNewObj(errObj); - Tcl_AppendStringsToObj(errObj, "error reading \"", - Tcl_GetChannelName(inChan), "\": ", NULL); + if (interp) { + TclNewObj(errObj); + Tcl_AppendStringsToObj(errObj, "error reading \"", + Tcl_GetChannelName(inChan), "\": ", NULL); + if (msg != NULL) { + Tcl_AppendObjToObj(errObj, msg); + } else { + Tcl_AppendStringsToObj(errObj, Tcl_PosixError(interp), + NULL); + } + } if (msg != NULL) { - Tcl_AppendObjToObj(errObj,msg); - } else { - Tcl_AppendStringsToObj(errObj, Tcl_PosixError(interp), NULL); + Tcl_DecrRefCount(msg); } break; } else if (underflow) { @@ -8305,13 +8311,19 @@ CopyData( if (sizeb < 0) { writeError: - TclNewObj(errObj); - Tcl_AppendStringsToObj(errObj, "error writing \"", - Tcl_GetChannelName(outChan), "\": ", NULL); + if (interp) { + TclNewObj(errObj); + Tcl_AppendStringsToObj(errObj, "error writing \"", + Tcl_GetChannelName(outChan), "\": ", NULL); + if (msg != NULL) { + Tcl_AppendObjToObj(errObj, msg); + } else { + Tcl_AppendStringsToObj(errObj, Tcl_PosixError(interp), + NULL); + } + } if (msg != NULL) { - Tcl_AppendObjToObj(errObj,msg); - } else { - Tcl_AppendStringsToObj(errObj, Tcl_PosixError(interp), NULL); + Tcl_DecrRefCount(msg); } break; } diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c index e9db401..7eca2c5 100644 --- a/generic/tclNamesp.c +++ b/generic/tclNamesp.c @@ -23,7 +23,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclNamesp.c,v 1.134.2.7 2007/09/10 03:06:46 dgp Exp $ + * RCS: @(#) $Id: tclNamesp.c,v 1.134.2.8 2007/09/17 15:03:45 dgp Exp $ */ #include "tclInt.h" @@ -3026,11 +3026,11 @@ NamespaceCodeCmd( * "namespace inscope" command. */ - listPtr = Tcl_NewListObj(0, NULL); - Tcl_ListObjAppendElement(interp, listPtr, - Tcl_NewStringObj("::namespace", -1)); - Tcl_ListObjAppendElement(interp, listPtr, - Tcl_NewStringObj("inscope", -1)); + TclNewObj(listPtr); + TclNewLiteralStringObj(objPtr, "::namespace"); + Tcl_ListObjAppendElement(interp, listPtr, objPtr); + TclNewLiteralStringObj(objPtr, "inscope"); + Tcl_ListObjAppendElement(interp, listPtr, objPtr); currNsPtr = (Namespace *) TclGetCurrentNamespace(interp); if (currNsPtr == (Namespace *) TclGetGlobalNamespace(interp)) { diff --git a/generic/tclPkg.c b/generic/tclPkg.c index abd83b1..b44b228 100644 --- a/generic/tclPkg.c +++ b/generic/tclPkg.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclPkg.c,v 1.27.2.1 2007/09/11 17:58:25 dgp Exp $ + * RCS: @(#) $Id: tclPkg.c,v 1.27.2.2 2007/09/17 15:03:45 dgp Exp $ * * TIP #268. * Heavily rewritten to handle the extend version numbers, and extended @@ -1825,6 +1825,50 @@ RequirementSatisfied( } /* + *---------------------------------------------------------------------- + * + * Tcl_PkgInitStubsCheck -- + * + * This is a replacement routine for Tcl_InitStubs() that is called + * from code where -DUSE_TCL_STUBS has not been enabled. + * + * Results: + * Returns the version of a conforming stubs table, or NULL, if + * the table version doesn't satisfy the requested requirements, + * according to historical practice. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + +CONST char * +Tcl_PkgInitStubsCheck( + Tcl_Interp *interp, + CONST char * version, + int exact) +{ + CONST char *actualVersion = Tcl_PkgPresent(interp, "Tcl", version, 0); + + if (exact && actualVersion) { + CONST char *p = version; + int count = 0; + + while (*p) { + count += !isdigit(*p++); + } + if (count == 1) { + if (0 != strncmp(version, actualVersion, strlen(version))) { + return NULL; + } + } else { + return Tcl_PkgPresent(interp, "Tcl", version, 1); + } + } + return actualVersion; +} +/* * Local Variables: * mode: c * c-basic-offset: 4 diff --git a/generic/tclStubLib.c b/generic/tclStubLib.c index 5389cfc..4594997 100644 --- a/generic/tclStubLib.c +++ b/generic/tclStubLib.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclStubLib.c,v 1.15 2007/05/16 18:28:40 jenglish Exp $ + * RCS: @(#) $Id: tclStubLib.c,v 1.15.2.1 2007/09/17 15:03:45 dgp Exp $ */ /* @@ -95,10 +95,28 @@ Tcl_InitStubs( return NULL; } - actualVersion = Tcl_PkgRequireEx(interp, "Tcl", version, exact, &pkgData); + actualVersion = Tcl_PkgRequireEx(interp, "Tcl", version, 0, &pkgData); if (actualVersion == NULL) { return NULL; } + if (exact) { + CONST char *p = version; + int count = 0; + + while (*p) { + count += !isdigit(*p++); + } + if (count == 1) { + if (0 != strncmp(version, actualVersion, strlen(version))) { + return NULL; + } + } else { + actualVersion = Tcl_PkgRequireEx(interp, "Tcl", version, 1, NULL); + if (actualVersion == NULL) { + return NULL; + } + } + } tclStubsPtr = (TclStubs*)pkgData; if (tclStubsPtr->hooks) { diff --git a/generic/tclTrace.c b/generic/tclTrace.c index 713180f..1dffdf2 100644 --- a/generic/tclTrace.c +++ b/generic/tclTrace.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclTrace.c,v 1.37.2.5 2007/09/04 17:43:53 dgp Exp $ + * RCS: @(#) $Id: tclTrace.c,v 1.37.2.6 2007/09/17 15:03:45 dgp Exp $ */ #include "tclInt.h" @@ -270,30 +270,29 @@ Tcl_TraceObjCmd( goto badVarOps; } for (p = flagOps; *p != 0; p++) { + Tcl_Obj *opObj; + if (*p == 'r') { - Tcl_ListObjAppendElement(NULL, opsList, - Tcl_NewStringObj("read", -1)); + TclNewLiteralStringObj(opObj, "read"); } else if (*p == 'w') { - Tcl_ListObjAppendElement(NULL, opsList, - Tcl_NewStringObj("write", -1)); + TclNewLiteralStringObj(opObj, "write"); } else if (*p == 'u') { - Tcl_ListObjAppendElement(NULL, opsList, - Tcl_NewStringObj("unset", -1)); + TclNewLiteralStringObj(opObj, "unset"); } else if (*p == 'a') { - Tcl_ListObjAppendElement(NULL, opsList, - Tcl_NewStringObj("array", -1)); + TclNewLiteralStringObj(opObj, "array"); } else { Tcl_DecrRefCount(opsList); goto badVarOps; } + Tcl_ListObjAppendElement(NULL, opsList, opObj); } copyObjv[0] = NULL; memcpy(copyObjv+1, objv, objc*sizeof(Tcl_Obj *)); copyObjv[4] = opsList; if (optionIndex == TRACE_OLD_VARIABLE) { - code = (traceSubCmds[2])(interp,TRACE_ADD,objc+1,copyObjv); + code = (traceSubCmds[2])(interp, TRACE_ADD, objc+1, copyObjv); } else { - code = (traceSubCmds[2])(interp,TRACE_REMOVE,objc+1,copyObjv); + code = (traceSubCmds[2])(interp, TRACE_REMOVE, objc+1, copyObjv); } Tcl_DecrRefCount(opsList); return code; @@ -567,7 +566,7 @@ TraceExecutionObjCmd( while ((clientData = Tcl_CommandTraceInfo(interp, name, 0, TraceCommandProc, clientData)) != NULL) { int numOps = 0; - + Tcl_Obj *opObj; TraceCommandInfo *tcmdPtr = (TraceCommandInfo *) clientData; /* @@ -579,20 +578,20 @@ TraceExecutionObjCmd( elemObjPtr = Tcl_NewListObj(0, NULL); Tcl_IncrRefCount(elemObjPtr); if (tcmdPtr->flags & TCL_TRACE_ENTER_EXEC) { - Tcl_ListObjAppendElement(NULL, elemObjPtr, - Tcl_NewStringObj("enter",5)); + TclNewLiteralStringObj(opObj, "enter"); + Tcl_ListObjAppendElement(NULL, elemObjPtr, opObj); } if (tcmdPtr->flags & TCL_TRACE_LEAVE_EXEC) { - Tcl_ListObjAppendElement(NULL, elemObjPtr, - Tcl_NewStringObj("leave",5)); + TclNewLiteralStringObj(opObj, "leave"); + Tcl_ListObjAppendElement(NULL, elemObjPtr, opObj); } if (tcmdPtr->flags & TCL_TRACE_ENTER_DURING_EXEC) { - Tcl_ListObjAppendElement(NULL, elemObjPtr, - Tcl_NewStringObj("enterstep",9)); + TclNewLiteralStringObj(opObj, "enterstep"); + Tcl_ListObjAppendElement(NULL, elemObjPtr, opObj); } if (tcmdPtr->flags & TCL_TRACE_LEAVE_DURING_EXEC) { - Tcl_ListObjAppendElement(NULL, elemObjPtr, - Tcl_NewStringObj("leavestep",9)); + TclNewLiteralStringObj(opObj, "leavestep"); + Tcl_ListObjAppendElement(NULL, elemObjPtr, opObj); } Tcl_ListObjLength(NULL, elemObjPtr, &numOps); if (0 == numOps) { @@ -606,8 +605,7 @@ TraceExecutionObjCmd( Tcl_ListObjAppendElement(NULL, eachTraceObjPtr, Tcl_NewStringObj(tcmdPtr->command, -1)); - Tcl_ListObjAppendElement(interp, resultListPtr, - eachTraceObjPtr); + Tcl_ListObjAppendElement(interp, resultListPtr, eachTraceObjPtr); } Tcl_SetObjResult(interp, resultListPtr); break; @@ -775,7 +773,7 @@ TraceCommandObjCmd( while ((clientData = Tcl_CommandTraceInfo(interp, name, 0, TraceCommandProc, clientData)) != NULL) { int numOps = 0; - + Tcl_Obj *opObj; TraceCommandInfo *tcmdPtr = (TraceCommandInfo *) clientData; /* @@ -787,12 +785,12 @@ TraceCommandObjCmd( elemObjPtr = Tcl_NewListObj(0, NULL); Tcl_IncrRefCount(elemObjPtr); if (tcmdPtr->flags & TCL_TRACE_RENAME) { - Tcl_ListObjAppendElement(NULL, elemObjPtr, - Tcl_NewStringObj("rename",6)); + TclNewLiteralStringObj(opObj, "rename"); + Tcl_ListObjAppendElement(NULL, elemObjPtr, opObj); } if (tcmdPtr->flags & TCL_TRACE_DELETE) { - Tcl_ListObjAppendElement(NULL, elemObjPtr, - Tcl_NewStringObj("delete",6)); + TclNewLiteralStringObj(opObj, "delete"); + Tcl_ListObjAppendElement(NULL, elemObjPtr, opObj); } Tcl_ListObjLength(NULL, elemObjPtr, &numOps); if (0 == numOps) { @@ -961,7 +959,7 @@ TraceVariableObjCmd( name = Tcl_GetString(objv[3]); while ((clientData = Tcl_VarTraceInfo(interp, name, 0, TraceVarProc, clientData)) != 0) { - + Tcl_Obj *opObj; TraceVarInfo *tvarPtr = (TraceVarInfo *) clientData; /* @@ -972,20 +970,20 @@ TraceVariableObjCmd( elemObjPtr = Tcl_NewListObj(0, NULL); if (tvarPtr->flags & TCL_TRACE_ARRAY) { - Tcl_ListObjAppendElement(NULL, elemObjPtr, - Tcl_NewStringObj("array", 5)); + TclNewLiteralStringObj(opObj, "array"); + Tcl_ListObjAppendElement(NULL, elemObjPtr, opObj); } if (tvarPtr->flags & TCL_TRACE_READS) { - Tcl_ListObjAppendElement(NULL, elemObjPtr, - Tcl_NewStringObj("read", 4)); + TclNewLiteralStringObj(opObj, "read"); + Tcl_ListObjAppendElement(NULL, elemObjPtr, opObj); } if (tvarPtr->flags & TCL_TRACE_WRITES) { - Tcl_ListObjAppendElement(NULL, elemObjPtr, - Tcl_NewStringObj("write", 5)); + TclNewLiteralStringObj(opObj, "write"); + Tcl_ListObjAppendElement(NULL, elemObjPtr, opObj); } if (tvarPtr->flags & TCL_TRACE_UNSETS) { - Tcl_ListObjAppendElement(NULL, elemObjPtr, - Tcl_NewStringObj("unset", 5)); + TclNewLiteralStringObj(opObj, "unset"); + Tcl_ListObjAppendElement(NULL, elemObjPtr, opObj); } eachTraceObjPtr = Tcl_NewListObj(0, NULL); Tcl_ListObjAppendElement(NULL, eachTraceObjPtr, elemObjPtr); diff --git a/unix/configure b/unix/configure index b7a7fa5..81e04bd 100755 --- a/unix/configure +++ b/unix/configure @@ -6420,26 +6420,25 @@ echo "${ECHO_T}$do64bitVIS" >&6 do64bit=yes fi - # Step 0.c: Check if gcc visibility support is available. Do this here so + # Step 0.c: Check if visibility support is available. Do this here so # that platform specific alternatives can be used below if this fails. - if test "$GCC" = "yes" ; then - echo "$as_me:$LINENO: checking if gcc supports visibility \"hidden\"" >&5 -echo $ECHO_N "checking if gcc supports visibility \"hidden\"... $ECHO_C" >&6 + echo "$as_me:$LINENO: checking if compiler supports visibility \"hidden\"" >&5 +echo $ECHO_N "checking if compiler supports visibility \"hidden\"... $ECHO_C" >&6 if test "${tcl_cv_cc_visibility_hidden+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" - cat >conftest.$ac_ext <<_ACEOF + hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - extern __attribute__((__visibility__("hidden"))) void f(void); - void f(void) {} + extern __attribute__((__visibility__("hidden"))) void f(void); + void f(void) {} int main () { @@ -6479,17 +6478,16 @@ tcl_cv_cc_visibility_hidden=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - CFLAGS=$hold_cflags + CFLAGS=$hold_cflags fi echo "$as_me:$LINENO: result: $tcl_cv_cc_visibility_hidden" >&5 echo "${ECHO_T}$tcl_cv_cc_visibility_hidden" >&6 - if test $tcl_cv_cc_visibility_hidden = yes; then + if test $tcl_cv_cc_visibility_hidden = yes; then cat >>confdefs.h <<\_ACEOF #define MODULE_SCOPE extern __attribute__((__visibility__("hidden"))) _ACEOF - fi fi # Step 1: set the variable "system" to hold the name and version number @@ -6727,7 +6725,7 @@ echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' else if test "$GCC" = "yes" ; then - SHLIB_LD="gcc -shared" + SHLIB_LD='${CC} -shared' else SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry" fi @@ -6845,7 +6843,7 @@ _ACEOF ;; BeOS*) SHLIB_CFLAGS="-fPIC" - SHLIB_LD="${CC} -nostart" + SHLIB_LD='${CC} -nostart' SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -6937,7 +6935,7 @@ fi ;; BSD/OS-4.*) SHLIB_CFLAGS="-export-dynamic -fPIC" - SHLIB_LD="cc -shared" + SHLIB_LD='${CC} -shared' SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -6948,7 +6946,7 @@ fi ;; dgux*) SHLIB_CFLAGS="-K PIC" - SHLIB_LD="cc -G" + SHLIB_LD='${CC} -G' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -7057,7 +7055,7 @@ fi LD_LIBRARY_PATH_VAR="SHLIB_PATH" fi if test "$GCC" = "yes" ; then - SHLIB_LD="gcc -shared" + SHLIB_LD='${CC} -shared' SHLIB_LD_LIBS='${LIBS}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} fi @@ -7073,7 +7071,7 @@ fi hppa64*) # 64-bit gcc in use. Fix flags for GNU ld. do64bit_ok=yes - SHLIB_LD="${CC} -shared" + SHLIB_LD='${CC} -shared' SHLIB_LD_LIBS='${LIBS}' CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} @@ -7238,7 +7236,7 @@ echo "$as_me: WARNING: 64bit mode not supported by gcc" >&2;} SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" - CFLAGS_OPTIMIZE=-O2 + CFLAGS_OPTIMIZE="-O2" # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings # when you inline the string and math operations. Turn this off to # get rid of the warnings. @@ -7342,7 +7340,7 @@ _ACEOF SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" - SHLIB_LD="${CC} -shared" + SHLIB_LD='${CC} -shared' DL_OBJS="" DL_LIBS="-ldl" LDFLAGS="$LDFLAGS -Wl,--export-dynamic" @@ -7357,7 +7355,7 @@ _ACEOF SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" CFLAGS_OPTIMIZE=-02 - SHLIB_LD="${CC} -shared " + SHLIB_LD='${CC} -shared' DL_OBJS="tclLoadDl.o" DL_LIBS="-mshared -ldl" LD_FLAGS="-Wl,--export-dynamic" @@ -7366,7 +7364,7 @@ _ACEOF ;; MP-RAS-02*) SHLIB_CFLAGS="-K PIC" - SHLIB_LD="cc -G" + SHLIB_LD='${CC} -G' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -7376,7 +7374,7 @@ _ACEOF ;; MP-RAS-*) SHLIB_CFLAGS="-K PIC" - SHLIB_LD="cc -G" + SHLIB_LD='${CC} -G' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -7443,7 +7441,7 @@ echo "${ECHO_T}$tcl_cv_ld_elf" >&6 *) SHLIB_CFLAGS="-fpic";; esac - SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}" + SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}' SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -7978,7 +7976,7 @@ _ACEOF ;; NEXTSTEP-*) SHLIB_CFLAGS="" - SHLIB_LD="cc -nostdlib -r" + SHLIB_LD='${CC} -nostdlib -r' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadNext.o" @@ -8088,7 +8086,7 @@ _ACEOF ;; SINIX*5.4*) SHLIB_CFLAGS="-K PIC" - SHLIB_LD="cc -G" + SHLIB_LD='${CC} -G' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -8142,7 +8140,7 @@ _ACEOF DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" if test "$GCC" = "yes" ; then - SHLIB_LD="$CC -shared" + SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} else @@ -8173,7 +8171,7 @@ _ACEOF arch=`isainfo` if test "$arch" = "sparcv9 sparc" ; then if test "$GCC" = "yes" ; then - if test "`gcc -dumpversion | awk -F. '{print $1}'`" -lt "3" ; then + if test "`${CC} -dumpversion | awk -F. '{print $1}'`" -lt "3" ; then { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5 echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;} else @@ -8217,7 +8215,7 @@ echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;} DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" if test "$GCC" = "yes" ; then - SHLIB_LD="$CC -shared" + SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} if test "$do64bit_ok" = "yes" ; then @@ -8230,14 +8228,19 @@ echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;} #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" fi else - SHLIB_LD="/usr/ccs/bin/ld -G -z text" + case $system in + SunOS-5.[1-9][0-9]*) + SHLIB_LD='${CC} -G -z text';; + *) + SHLIB_LD='/usr/ccs/bin/ld -G -z text';; + esac CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' fi ;; UNIX_SV* | UnixWare-5*) SHLIB_CFLAGS="-KPIC" - SHLIB_LD="cc -G" + SHLIB_LD='${CC} -G' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" diff --git a/unix/tcl.m4 b/unix/tcl.m4 index 3b3dcad..6844843 100644 --- a/unix/tcl.m4 +++ b/unix/tcl.m4 @@ -297,7 +297,7 @@ AC_DEFUN([SC_LOAD_TCLCONFIG], [ # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC # instead of TCL_BUILD_LIB_SPEC since it will work with both an # installed and uninstalled version of Tcl. - if test -f ${TCL_BIN_DIR}/Makefile ; then + if test -f "${TCL_BIN_DIR}/Makefile" ; then TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC} TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC} TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH} @@ -307,7 +307,7 @@ AC_DEFUN([SC_LOAD_TCLCONFIG], [ # against Tcl.framework installed in an arbitary location. case ${TCL_DEFS} in *TCL_FRAMEWORK*) - if test -f ${TCL_BIN_DIR}/${TCL_LIB_FILE}; then + if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then for i in "`cd ${TCL_BIN_DIR}; pwd`" \ "`cd ${TCL_BIN_DIR}/../..; pwd`"; do if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then @@ -316,7 +316,7 @@ AC_DEFUN([SC_LOAD_TCLCONFIG], [ fi done fi - if test -f ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}; then + if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then TCL_STUB_LIB_SPEC="-L${TCL_BIN_DIR} ${TCL_STUB_LIB_FLAG}" TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}" fi @@ -365,7 +365,7 @@ AC_DEFUN([SC_LOAD_TKCONFIG], [ if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then AC_MSG_RESULT([loading]) - . ${TK_BIN_DIR}/tkConfig.sh + . "${TK_BIN_DIR}/tkConfig.sh" else AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh]) fi @@ -380,7 +380,7 @@ AC_DEFUN([SC_LOAD_TKCONFIG], [ # of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC # instead of TK_BUILD_LIB_SPEC since it will work with both an # installed and uninstalled version of Tcl. - if test -f ${TK_BIN_DIR}/Makefile ; then + if test -f "${TK_BIN_DIR}/Makefile" ; then TK_LIB_SPEC=${TK_BUILD_LIB_SPEC} TK_STUB_LIB_SPEC=${TK_BUILD_STUB_LIB_SPEC} TK_STUB_LIB_PATH=${TK_BUILD_STUB_LIB_PATH} @@ -390,7 +390,7 @@ AC_DEFUN([SC_LOAD_TKCONFIG], [ # against Tk.framework installed in an arbitary location. case ${TK_DEFS} in *TK_FRAMEWORK*) - if test -f ${TK_BIN_DIR}/${TK_LIB_FILE}; then + if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then for i in "`cd ${TK_BIN_DIR}; pwd`" \ "`cd ${TK_BIN_DIR}/../..; pwd`"; do if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then @@ -399,7 +399,7 @@ AC_DEFUN([SC_LOAD_TKCONFIG], [ fi done fi - if test -f ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}; then + if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then TK_STUB_LIB_SPEC="-L${TK_BIN_DIR} ${TK_STUB_LIB_FLAG}" TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}" fi @@ -1086,23 +1086,21 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ do64bit=yes fi - # Step 0.c: Check if gcc visibility support is available. Do this here so + # Step 0.c: Check if visibility support is available. Do this here so # that platform specific alternatives can be used below if this fails. - if test "$GCC" = "yes" ; then - AC_CACHE_CHECK([if gcc supports visibility "hidden"], - tcl_cv_cc_visibility_hidden, [ - hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" - AC_TRY_LINK([ - extern __attribute__((__visibility__("hidden"))) void f(void); - void f(void) {}], [f();], tcl_cv_cc_visibility_hidden=yes, - tcl_cv_cc_visibility_hidden=no) - CFLAGS=$hold_cflags]) - if test $tcl_cv_cc_visibility_hidden = yes; then - AC_DEFINE(MODULE_SCOPE, - [extern __attribute__((__visibility__("hidden")))], - [Compiler support for module scope symbols]) - fi + AC_CACHE_CHECK([if compiler supports visibility "hidden"], + tcl_cv_cc_visibility_hidden, [ + hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" + AC_TRY_LINK([ + extern __attribute__((__visibility__("hidden"))) void f(void); + void f(void) {}], [f();], tcl_cv_cc_visibility_hidden=yes, + tcl_cv_cc_visibility_hidden=no) + CFLAGS=$hold_cflags]) + if test $tcl_cv_cc_visibility_hidden = yes; then + AC_DEFINE(MODULE_SCOPE, + [extern __attribute__((__visibility__("hidden")))], + [Compiler support for module scope symbols]) fi # Step 1: set the variable "system" to hold the name and version number @@ -1203,7 +1201,7 @@ dnl AC_CHECK_TOOL(AR, ar) LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' else if test "$GCC" = "yes" ; then - SHLIB_LD="gcc -shared" + SHLIB_LD='${CC} -shared' else SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry" fi @@ -1241,7 +1239,7 @@ dnl AC_CHECK_TOOL(AR, ar) ;; BeOS*) SHLIB_CFLAGS="-fPIC" - SHLIB_LD="${CC} -nostart" + SHLIB_LD='${CC} -nostart' SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -1266,7 +1264,7 @@ dnl AC_CHECK_TOOL(AR, ar) ;; BSD/OS-4.*) SHLIB_CFLAGS="-export-dynamic -fPIC" - SHLIB_LD="cc -shared" + SHLIB_LD='${CC} -shared' SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -1277,7 +1275,7 @@ dnl AC_CHECK_TOOL(AR, ar) ;; dgux*) SHLIB_CFLAGS="-K PIC" - SHLIB_LD="cc -G" + SHLIB_LD='${CC} -G' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -1309,7 +1307,7 @@ dnl AC_CHECK_TOOL(AR, ar) LD_LIBRARY_PATH_VAR="SHLIB_PATH" fi if test "$GCC" = "yes" ; then - SHLIB_LD="gcc -shared" + SHLIB_LD='${CC} -shared' SHLIB_LD_LIBS='${LIBS}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} fi @@ -1325,7 +1323,7 @@ dnl AC_CHECK_TOOL(AR, ar) hppa64*) # 64-bit gcc in use. Fix flags for GNU ld. do64bit_ok=yes - SHLIB_LD="${CC} -shared" + SHLIB_LD='${CC} -shared' SHLIB_LD_LIBS='${LIBS}' CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} @@ -1419,7 +1417,7 @@ dnl AC_CHECK_TOOL(AR, ar) SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" - CFLAGS_OPTIMIZE=-O2 + CFLAGS_OPTIMIZE="-O2" # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings # when you inline the string and math operations. Turn this off to # get rid of the warnings. @@ -1466,7 +1464,7 @@ dnl AC_CHECK_TOOL(AR, ar) SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" - SHLIB_LD="${CC} -shared" + SHLIB_LD='${CC} -shared' DL_OBJS="" DL_LIBS="-ldl" LDFLAGS="$LDFLAGS -Wl,--export-dynamic" @@ -1481,7 +1479,7 @@ dnl AC_CHECK_TOOL(AR, ar) SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" CFLAGS_OPTIMIZE=-02 - SHLIB_LD="${CC} -shared " + SHLIB_LD='${CC} -shared' DL_OBJS="tclLoadDl.o" DL_LIBS="-mshared -ldl" LD_FLAGS="-Wl,--export-dynamic" @@ -1490,7 +1488,7 @@ dnl AC_CHECK_TOOL(AR, ar) ;; MP-RAS-02*) SHLIB_CFLAGS="-K PIC" - SHLIB_LD="cc -G" + SHLIB_LD='${CC} -G' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -1500,7 +1498,7 @@ dnl AC_CHECK_TOOL(AR, ar) ;; MP-RAS-*) SHLIB_CFLAGS="-K PIC" - SHLIB_LD="cc -G" + SHLIB_LD='${CC} -G' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -1544,7 +1542,7 @@ dnl AC_CHECK_TOOL(AR, ar) *) SHLIB_CFLAGS="-fpic";; esac - SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}" + SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}' SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -1727,7 +1725,7 @@ dnl AC_CHECK_TOOL(AR, ar) ;; NEXTSTEP-*) SHLIB_CFLAGS="" - SHLIB_LD="cc -nostdlib -r" + SHLIB_LD='${CC} -nostdlib -r' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadNext.o" @@ -1834,7 +1832,7 @@ dnl AC_CHECK_TOOL(AR, ar) ;; SINIX*5.4*) SHLIB_CFLAGS="-K PIC" - SHLIB_LD="cc -G" + SHLIB_LD='${CC} -G' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" @@ -1881,7 +1879,7 @@ dnl AC_CHECK_TOOL(AR, ar) DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" if test "$GCC" = "yes" ; then - SHLIB_LD="$CC -shared" + SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} else @@ -1905,7 +1903,7 @@ dnl AC_CHECK_TOOL(AR, ar) arch=`isainfo` if test "$arch" = "sparcv9 sparc" ; then if test "$GCC" = "yes" ; then - if test "`gcc -dumpversion | awk -F. '{print [$]1}'`" -lt "3" ; then + if test "`${CC} -dumpversion | awk -F. '{print [$]1}'`" -lt "3" ; then AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system]) else do64bit_ok=yes @@ -1946,7 +1944,7 @@ dnl AC_CHECK_TOOL(AR, ar) DL_OBJS="tclLoadDl.o" DL_LIBS="-ldl" if test "$GCC" = "yes" ; then - SHLIB_LD="$CC -shared" + SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} if test "$do64bit_ok" = "yes" ; then @@ -1959,14 +1957,19 @@ dnl AC_CHECK_TOOL(AR, ar) #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" fi else - SHLIB_LD="/usr/ccs/bin/ld -G -z text" + case $system in + SunOS-5.[[1-9]][[0-9]]*) + SHLIB_LD='${CC} -G -z text';; + *) + SHLIB_LD='/usr/ccs/bin/ld -G -z text';; + esac CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' fi ;; UNIX_SV* | UnixWare-5*) SHLIB_CFLAGS="-KPIC" - SHLIB_LD="cc -G" + SHLIB_LD='${CC} -G' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" DL_OBJS="tclLoadDl.o" diff --git a/unix/tclUnixChan.c b/unix/tclUnixChan.c index afa66ab..bb4c0b1 100644 --- a/unix/tclUnixChan.c +++ b/unix/tclUnixChan.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclUnixChan.c,v 1.77.2.2 2007/09/04 17:44:21 dgp Exp $ + * RCS: @(#) $Id: tclUnixChan.c,v 1.77.2.3 2007/09/17 15:03:47 dgp Exp $ */ #include "tclInt.h" /* Internal definitions for Tcl. */ @@ -2633,11 +2633,7 @@ CreateSocketAddress( Tcl_DString ds; const char *native; - if (host == NULL) { - native = NULL; - } else { - native = Tcl_UtfToExternalDString(NULL, host, -1, &ds); - } + native = Tcl_UtfToExternalDString(NULL, host, -1, &ds); addr.s_addr = inet_addr(native); /* INTL: Native. */ /* @@ -2655,18 +2651,13 @@ CreateSocketAddress( errno = ENXIO; #endif /* ENXIO */ #endif /* EHOSTUNREACH */ - if (native != NULL) { - Tcl_DStringFree(&ds); - } + Tcl_DStringFree(&ds); return 0; /* Error. */ } - memcpy(&addr, (void *) hostent->h_addr_list[0], (size_t) hostent->h_length); } - if (native != NULL) { - Tcl_DStringFree(&ds); - } + Tcl_DStringFree(&ds); } /* diff --git a/unix/tclUnixFile.c b/unix/tclUnixFile.c index e278eae..9e890c8 100644 --- a/unix/tclUnixFile.c +++ b/unix/tclUnixFile.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclUnixFile.c,v 1.50 2006/08/29 00:36:57 coldstore Exp $ + * RCS: @(#) $Id: tclUnixFile.c,v 1.50.6.1 2007/09/17 15:03:47 dgp Exp $ */ #include "tclInt.h" @@ -886,6 +886,9 @@ TclpObjLink( Tcl_DecrRefCount(dirPtr); } else { target = Tcl_FSGetNativePath(toPtr); + if (target == NULL) { + return NULL; + } if (access(target, F_OK) == -1) { /* * Target doesn't exist. @@ -894,9 +897,6 @@ TclpObjLink( errno = ENOENT; return NULL; } - if (target == NULL) { - return NULL; - } } if (access(src, F_OK) != -1) { diff --git a/win/makefile.vc b/win/makefile.vc index d22aee1..447ad0e 100644 --- a/win/makefile.vc +++ b/win/makefile.vc @@ -12,7 +12,7 @@ # Copyright (c) 2001-2004 David Gravereaux. # #------------------------------------------------------------------------------ -# RCS: @(#) $Id: makefile.vc,v 1.160.2.3 2007/09/14 16:28:39 dgp Exp $ +# RCS: @(#) $Id: makefile.vc,v 1.160.2.4 2007/09/17 15:03:48 dgp Exp $ #------------------------------------------------------------------------------ # Check to see we are configured to build with MSVC (MSDEVDIR or MSVCDIR) @@ -422,11 +422,11 @@ cdebug = -O2 $(OPTIMIZATIONS) !else cdebug = !endif -!else if "$(MACHINE)" == "IA64" +!else if "$(MACHINE)" == "IA64" || "$(MACHINE)" == "AMD64" ### Warnings are too many, can't support warnings into errors. -cdebug = -Z7 -Od $(DEBUGFLAGS) +cdebug = -Zi -Od $(DEBUGFLAGS) !else -cdebug = -Z7 -WX $(DEBUGFLAGS) +cdebug = -Zi -WX $(DEBUGFLAGS) !endif ### Declarations common to all compiler options diff --git a/win/tcl.dsp b/win/tcl.dsp index 193ef14..7f9f06c 100644 --- a/win/tcl.dsp +++ b/win/tcl.dsp @@ -43,9 +43,9 @@ CFG=tcl - Win32 Debug Static # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release\tcl_Dynamic" -# PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=none MSVCDIR=IDE" -# PROP Rebuild_Opt "-a" -# PROP Target_File "Release\tclsh85.exe" +# PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=threads MSVCDIR=IDE" +# PROP Rebuild_Opt "clean release" +# PROP Target_File "Release\tclsh85t.exe" # PROP Bsc_Name "" # PROP Target_Dir "" @@ -64,9 +64,9 @@ CFG=tcl - Win32 Debug Static # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug\tcl_Dynamic" -# PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=symbols MSVCDIR=IDE" -# PROP Rebuild_Opt "-a" -# PROP Target_File "Debug\tclsh85g.exe" +# PROP Cmd_Line "nmake -nologo -f makefile.vc OPTS=threads,symbols MSVCDIR=IDE" +# PROP Rebuild_Opt "clean release" +# PROP Target_File "Debug\tclsh85tg.exe" # PROP Bsc_Name "" # PROP Target_Dir "" -- cgit v0.12