12004-12-29 Jeff Hobbs <jeffh@ActiveState.com> 2 3 * win/tcl.m4, win/configure: update MSVC CFLAGS_OPT to -O2, remove -Gs 4 (included in -O2) and -GD (outdated). Use "link -lib" instead of "lib" 5 binary and remove -YX for MSVC7 portability. Add -fomit-frame-pointer 6 for gcc OPT compiles. [Bug 1092952, 1091967] Align LIBS_GUI with Tk 7 head needs. 8 92004-12-29 Kevin B. Kenny <kennykb@acm.org> 10 11 * generic/tclDate.c: Regen 12 * generic/tclGetDate.y (TclDatelex): Fixed a problem where a 13 four-digit group with >=2 leading zeroes appeared to be a two-digit 14 group, leading to misinterpreting the time 0012 as 1200. [Bug 1090413] 15 * library/clock.tcl: Added code to interpret correctly months outside 16 the range 01-12 as reduced modulo 12 with a corresponding adjustment 17 to the year. [Bug 1092789] 18 * tests/clock.test: Added regression test cases for the above two bugs 19 * unix/Makefile.in: Added --no-lines to the 'bison' command line to 20 * win/Makefile.in: help constrain the number of diffs in a cvs checkin 21 222004-12-24 Miguel Sofer <msofer@users.sf.net> 23 24 * generic/tclCompile.c: 25 * generic/tclCompile.h: 26 * generic/tclExecute.c: 27 * generic/tclInt.h: 28 * generic/tclLiteral.c: 29 * generic/tclProc.c: 30 Avoid sharing cmdName literals accross namespaces, and generalise 31 usage of the TclRegisterNewLiteral macro. [Patch 1090905] 32 332004-12-20 Miguel Sofer <msofer@users.sf.net> 34 35 * generic/tclCompile.c: moved TclInitCompiledLocals to tclProc.c 36 * generic/tclProc.c: new static InitCompiledLocals to allow for a 37 single pass over the proc's arguments at proc load time (instead of 38 two as previously). TclObjInterpProc() now allocates the 39 compiledLocals on the tcl execution stack, using the new 40 TclStackAlloc/Free functions. 41 422004-12-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> 43 44 * generic/tclInterp.c (Tcl_LimitSetTime, TimeLimitCallback): 45 (TclLimitRemoveAllHandlers, TclInitLimitSupport): Set a timer event to 46 trigger when the time limit runs out. All the time limit actually does 47 is check to see if the time limit has been exceeded, but this is 48 enough to fix [Bug 1085023]. 49 * generic/tclInt.h (struct Interp): Added a field to hold the token 50 for the timer event handler associated with the current time limit. 51 * generic/tclEvent.c (Tcl_UpdateObjCmd, Tcl_VwaitObjCmd): Add error 52 message when limit exceeded. 53 * tests/interp.test (interp-34.[89]): Check that time limits handle 54 the two cases reported in [Bug 1085023] 55 56 * generic/tclTimer.c (TclCreateAbsoluteTimerHandler): New internal 57 function that allows setting a timer handler that will be triggered at 58 (or after) a specific time instead of at some number of milliseconds 59 in the future. This is a candidate for future exposure via a TIP. 60 612004-12-15 Miguel Sofer <msofer@users.sf.net> 62 63 * generic/tclBasic.c: 64 * generic/tclExecute.c: 65 * generic/tclInt.decls: 66 * generic/tclIntDecls.h: 67 * generic/tclNamesp.c: 68 * generic/tclProc.c: 69 * generic/tclStubInit.c: 70 * generic/tclTest.c: Added two new functions to allocate memory from 71 the execution stack (TclStackAlloc, TclStackFree). Added functions 72 TclPushStackFrame and TclPopStackFrame that do the work of 73 Tcl_PushCallFrame and Tcl_PopCallFrame, but using frames allocated in 74 the execution stack - i.e., heap instead of C-stack. The core uses 75 these two new functions exclusively; the old ones remain for backwards 76 compat, as at least two popular extensions (itcl, xotcl) are known to 77 use them. 78 792004-12-14 Miguel Sofer <msofer@users.sf.net> 80 81 * generic/tclCmdIL.c: 82 * generic/tclInt.h: 83 * generic/tclProc.c: 84 * generic/tclVar.c: changing the isProcCallFrame field of the 85 CallFrame struct from a 0/1 field to flags. Should be perfectly 86 backwards compatible. 87 882004-12-14 Don Porter <dgp@users.sourceforge.net> 89 90 * unix/configure.in: Added special processing to remove "$U" from 91 libraries in the LIBOBJS value. This is an auto-make-ism we need to 92 avoid. [Bug 1081541] 93 94 * unix/configure: autoconf-2.57 95 962004-12-13 Don Porter <dgp@users.sourceforge.net> 97 98 * generic/tcl.h: Restored extern "C" guards so that C++ code sees 99 function pointer typedef linkage consistent with earlier Tcl releases. 100 [Bug 1082349] 101 102 * generic/tclEncoding.c: Plugged some memory leaks. Thanks to Rolf Ade 103 * generic/tclUtil.c: for reports and testing [Bug 1083082] 104 1052004-12-13 Kevin B. Kenny <kennykb@acm.org> 106 107 * doc/clock.n: Clarify that the [clock scan] command does not accept 108 the full range of ISO8601 point-in-time formats. [Bug 1075433] 109 1102004-12-12 Miguel Sofer <msofer@users.sf.net> 111 112 * generic/tclVar.c (TclArrayObjCmd - ARRAY_NAMES): leaking an object 113 [Bug 1084111] - thanks to Rolf Ade. 114 1152004-12-12 Miguel Sofer <msofer@users.sf.net> 116 117 * generic/tclObj.c (TclSetCmdNameObj): special handling for fully 118 qualified command names (as in fix [Patch 456668]). 119 1202004-12-11 Miguel Sofer <msofer@users.sf.net> 121 122 * generic/tclInt.h: 123 * generic/tclNamesp.c: converting the static function 124 GetNamespaceFromObj() to MODULE_SCOPE TclGetNamespaceFromObj(). 125 1262004-12-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> 127 128 * tools/tcl.wse.in, unix/tcl.spec, win/README.binary, README: 129 * win/configure.in, unix/configure.in, generic/tcl.h: 130 Bumped version number to 8.5a3 to distinguish HEAD of CVS development 131 from the recent 8.5a2 release. 132 1332004-12-10 Miguel Sofer <msofer@users.sf.net> 134 135 * generic/tclCompile.c (TclInitCompiledLocals): 136 * generic/tclCompile.h: 137 * generic/tclInt.h: 138 * generic/tclProc.c (TclObjInterpProc, TclCreateProc): optimised 139 loops that initialise a proc's arguments and compiled local 140 variables, removing tests from inner loops. 141 1422004-12-10 Donal K. Fellows <dkf@users.sf.net> 143 144 * generic/tclInt.h: Move ensemble API decls here from tclNamesp.c 145 1462004-12-09 Donal K. Fellows <donal.k.fellows@man.ac.uk> 147 148 * generic/tclNamesp.c (TclMakeEnsembleCmd, TclSetEnsemble*) 149 (TclSetEnsemble*, TclFindEnsemble): Build an internal API for creating 150 and manipulating ensembles; they can be deleted using the normal 151 command-deletion API. 152 153 * doc/Async.3: Reword for better grammar, better nroff and get the 154 flag name right. (Reported by David Welton.) 155 1562004-12-07 Don Porter <dgp@users.sourceforge.net> 157 158 * tests/unixInit.test (2.1-4): Added constraints so that when a value 159 of TCL_LIBRARY is required for process initialization, we skip the 160 tests that mess with that value. 161 1622004-12-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> 163 164 *** 8.5a2 TAGGED FOR RELEASE *** 165 166 * unix/Makefile.in: add library/{tzdata,msgs} to dist target (kbk) 167 168 * doc/foreach.n: Adjust tabs to be friendlier to some HTML 169 converters. [Bug 1078760] 170 1712004-12-06 Jeff Hobbs <jeffh@ActiveState.com> 172 173 * unix/tclUnixNotfy.c (NotifierThreadProc): init numFdBits 174 [Bug 1079286] 175 176 * doc/error.n, doc/SaveResult.3, doc/Thread.3: minor nroff typos 177 1782004-12-06 Don Porter <dgp@users.sourceforge.net> 179 180 * tests/safe.test: Trim auto_path to improve performance [1080039] 181 182 * tests/msgcat.test: makeFile/removeFile cleanup [1079117] 183 1842004-12-04 Don Porter <dgp@users.sourceforge.net> 185 186 * generic/tclEncoding.c: Different fix for [Bug 1077005]. 187 * generic/tclEvent.c: Broke apart TclpSetInitialEncodings() on 188 * generic/tclInt.h: Windows into TclpSetInterfaces(), that is 189 * unix/tclUnixInit.c: fundamentally essential, and the initialization 190 * win/tclWinInit.c: of the system encoding, which is not. Made 191 the TclpSetInterfaces call part of TclInitSubsystems so it cannot be 192 overlooked. 193 1942004-12-03 Jeff Hobbs <jeffh@ActiveState.com> 195 196 * changes: updated for 8.5a2 release 197 1982004-12-02 Don Porter <dgp@users.sourceforge.net> 199 200 * generic/tclUtil.c (TclSetProcessGlobalValue): Handle the case where 201 a ProcessGlobalValue might be assigned to itself. 202 203 * generic/tclEncoding.c (MakeFileMap): Correct refcounting errors 204 managing values returned by TclPathPart (with refCount of 1!) that led 205 to a memory leak. [Bug 1077474]. 206 2072004-12-02 Vince Darley <vincentdarley@users.sourceforge.net> 208 209 * generic/tclPathObj.c: fix and new tests for [Bug 1074671] to ensure 210 * tests/fileSystem.test: tilde paths are not returned specially by 211 'glob'. 212 2132004-12-02 Kevin B. Kenny <kennykb@acm.org> 214 215 * win/Makefile.in: Added a 'sed' in the setting of ROOT_DIR_NATIVE to 216 compensate for a bug in cygpath (at least version 1.36) that leaves a 217 trailing backslash on the end of the converted path. 218 2192004-12-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> 220 221 * generic/tclInterp.c (Alias,Target,Master): Rewrote these so that the 222 aliases that refer to an interpreter are stored in a list and not a 223 hashtable (which was only ever a convenience, and forced the use of a 224 global mutex to generate keys!) [FRQ 1077210] 225 * generic/tclNamesp.c (numNsCreated): Moved into thread-local storage 226 to remove a global mutex. [FRQ 1077210] 227 2282004-12-01 Don Porter <dgp@users.sourceforge.net> 229 230 * generic/tclUtil.c (TclGetProcessGlobalValue): Narrowed the scope of 231 mutex locks. 232 233 * generic/tclUtil.c: Updated Tcl_GetNameOfExecutable() to 234 * generic/tclEncoding.c: make use of a ProcessGlobalValue for 235 * generic/tclEvent.c: storing the executable name. Added 236 internal routines Tcl(Get|Set)ObjNameOfExecutable() to access that 237 storage in Tcl_Obj, rather than string format. 238 239 * unix/tclUnixFile.c: Rewrote TclpFindExecutable() to use 240 * win/tclWinFile.c: TclSetObjNameOfExecutable to store the 241 executable name it computes. 242 243 * generic/tclInt.h: Added internal stub entries for 244 * generic/tclInt.decls: TclpFindExecutable and 245 Tcl(Get|Set)ObjNameOfExecutable. 246 247 * generic/tclIntDecls.h: make genstubs 248 * generic/tclStubInit.c: 249 250 * generic/tclCmdIL.c: Retrieve executable name in Tcl_Obj form 251 * win/tclWinPipe.c: instead of string form. 252 253 * unix/tclUnixTest.c: Update [testfindexecutable] command to use new 254 internal interfaces. 255 256 * generic/tclEncoding.c: Moved TclpSetInitialEncodings() call 257 from Tcl_FindExecutable() into TclInitEncodingSubsystem(). This is 258 important on Windows where it establishes whether the "ascii" or 259 "unicode" set of system routines will be used, and that needs to be 260 done earlier to support filesystem operations. [Bug 1077005] 261 2622004-12-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> 263 264 * tests/winDde.test: Rewritten to use tcltest2 features more 265 thoroughly (reducing the [catch] count!) and fix the problem with 266 winDde-6.1 being out of synch with the implementation. 267 2682004-11-30 Don Porter <dgp@users.sourceforge.net> 269 270 * library/init.tcl ([unknown]): Restored the save/restore of the 271 variables ::errorCode and ::errorInfo. This is needed when the 272 [::bgerror] command is auto-loaded (as it is by Tk). 273 274 Patch 976520 reworks several of the details involved with 275 startup/initialization of the Tcl library, focused on the activities 276 of Tcl_FindExecutable(). 277 278 * generic/tclIO.c: Removed bogus claim in comment that encoding 279 "iso8859-1" is "built-in" to Tcl. 280 281 * generic/tclInt.h: Created a new struct ProcessGlobalValue, 282 * generic/tclUtil.c: routines Tcl(Get|Set)ProcessGlobalValue, and 283 function type TclInitProcessGlobalValueProc. Together, these take care 284 of the housekeeping for "values" (things that can be held in a 285 Tcl_Obj) that are global across a whole process. That is, they are 286 shared among multiple threads, and epoch and mutex protection must 287 govern the validity of cached copies maintained in each thread. 288 289 * generic/tclNotify.c: Modified TclInitNotifier() to tolerate being 290 called multiple times in the same thread. 291 * generic/tclEvent.c: Dropped the unused argv0 argument to 292 TclInitSubsystems(). Removed machinery to unsure only one 293 TclInitNotifier() call per thread, now that that is safe. Converted 294 Tcl(Get|Set)LibraryPath to use a ProcessGlobalValue, and moved them to 295 tclEncoding.c. 296 * generic/tclBasic.c: Updated caller. 297 298 * generic/tclInt.h: TclpFindExecutable now returns void. 299 * unix/tclUnixFile.c: 300 * win/tclWinFile.c: 301 * win/tclWinPipe.c: 302 303 * generic/tclEncoding.c: Built new encoding search initialization on a 304 foundation of ProcessGlobalValues, exposing new routines 305 Tcl(Get|Set)EncodingSearchPath. A cache of a map from encoding name to 306 directory pathname keeps track of where encodings are available for 307 loading. Tcl_FindExecutable greatly simplified into just three 308 function calls. The "library path" is now misnamed, as its only 309 remaining purpose is as a foundation for the default encoding search 310 path. 311 312 * generic/tclInterp.c: Inlined the initScript that is evaluated by 313 Tcl_Init(). Added verification after initScript evaluation that Tcl 314 can find its installed *.enc files, and that it has initialized 315 [encoding system] in agreement with what the environment expects. 316 [tclInit] no longer driven by the value of $::tcl_libPath; it largely 317 constructs its own search path now, rather than attempt to share one 318 with the encoding system. 319 320 * unix/tclUnixInit.c: TclpSetInitialEncodings factored so that a new 321 * win/tclWinInit.c: routine TclpGetEncodingNameFromEnvironment can 322 reveal that Tcl thinks the [encoding system] should be, even when an 323 incomplete encoding search path, or a missing *.enc file won't allow 324 that initialization to succeed. TclpInitLibraryPath reworked as an 325 initializer of a ProcessGlobalValue. 326 327 * unix/tclUnixTest.c: Update implementations of [testfindexecutable], 328 [testgetdefenc], and [testsetdefenc]. 329 330 * tests/unixInit.test: Corrected tests to operate properly even when 331 a value of TCL_LIBRARY is required to find encodings. 332 333 * generic/tclInt.decls: New internal stubs: TclGetEncodingSearchPath, 334 TclSetEncodingSearchPath, TclpGetEncodingNameFromEnvironment. These 335 are candidates for public exposure by future TIPs. 336 337 * generic/tclIntDecls.h: make genstubs 338 * generic/tclStubInit.c: 339 340 * generic/tclTest.c: Updated [testencoding] to use 341 * tests/encoding.test: Tcl(Get|Set)EncodingSearchPath. Updated tests. 342 3432004-11-30 Kevin B. Kenny <kennykb@acm.org> 344 345 * library/clock.tcl: Corrected the regular expressions that match a 346 time zone to allow for time zones specified as +HH or -HH. 347 * tests/clock.test: Added regression test case for the above issue. 348 Thanks to Rolf Ade for reporting this issue [http://wiki.tcl.tk/13094] 349 * win/tclWinDde.c (Tcl_DdeObjCmd): Corrected a typo that caused a 350 compilation failure on VC++. 351 3522004-11-29 Andreas Kupries <andreask@activestate.com> 353 354 * win/Makefile.in (install-libraries): Brought entry '2004-10-26 Don 355 Porter (Tcl Modules)' into the windows world, actually the 356 win/configure buildsystem. The other windows buildsystems (.vc, .bc) 357 still have to be updated as well. 358 3592004-11-26 Andreas Kupries <andreask@activestate.com> 360 361 * win/tclWinDde.c (ExecuteRemoteObject): Removed bogus semicolon found 362 at the end of the header for the function definition, terminating it 363 early and preventing a compile. This is likely a fix for '2004-11-25 364 Donal'. I have to conclude that it is also unknown if the other 365 changes to this file actually pass the testsuite. Running testsuite 366 ... They don't. winDde-6.1 fails. This is only a message discrepance, 367 i.e. not too bad. Leaving resolution of that to Pat and Donal. 368 3692004-11-26 Don Porter <dgp@users.sourceforge.net> 370 371 * library/auto.tcl (tcl_findLibrary): Made sure the uniquifying 372 operations on the search path does not also normalize. [Bug 1072136] 373 3742004-11-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> 375 376 * unix/configure.in: Simplify the code to check for correctness of 377 strstr, strtoul and strtod. 378 * unix/tcl.m4 (SC_TCL_CHECK_BROKEN_FUNC): Split a complex stanza out 379 of configure.in into its own function. Also force it to do the right 380 thing with cacheing of results of AC_TRY_RUN to deal with issue raised 381 in [Patch 1073524] 382 383 * doc/foreach.n: Added simple example. [FRQ 1073334] 384 3852004-11-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> 386 387 * generic/tclProc.c (TclObjInterpProc): Make it so that only 388 * generic/tclIndexObj.c (Tcl_WrongNumArgs): [proc] instances do 389 * tests/indexObj.test (indexObj-5.7): quoting of their first 390 arguments, so keeping [Bug 942757] fixed and making [Bug 1066837] be 391 fixed as well. Done with a load of #ifdef-ery because this hack is so 392 ugly nobody should keep it around once Itcl's fixed. 393 3942004-11-25 Reinhard Max <max@suse.de> 395 396 * tests/tcltest.test: The order in which [glob] returns the file names 397 is undefined, so tests should not depend on it. 398 3992004-11-25 Zoran Vasiljevic <vasiljevic@users.sf.net> 400 401 * doc/Thread.3: 402 * doc/Notifier.3: Added changes from the core-8-4-branch 403 4042004-11-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> 405 406 * doc/dde.n: Synchronized the documentation of the commands with the 407 header of the docs and what the package actually does. Thanks to 408 Andreas Kupries for spotting this. 409 * win/tclWinDde.c (Tcl_DdeObjCmd): Much cleanup of argument parsing 410 code. 411 4122004-11-24 David Gravereaux <davygrvy@pobox.com> 413 414 * generic/tclPort.h: Relative include of tclWinPort.h returned as it 415 was requiring me set -I$(tcl_root)/win for my extensions that need to 416 include tclInt.h and doesn't appear to serve any purpose for windows 417 builds. 418 4192004-11-24 Kevin B. Kenny <kennykb@acm.org> 420 421 * unix/tcl.m4 (SC_ENABLE_THREADS): Corrected bad check for 3-argument 422 readdir_r [Bug 1001325]. 423 * unix/configure: Regenerated. 424 * unix/tclUnixNotfy.c: Corrected all uses of 'select' to manage their 425 masks using the FD_CLR, FD_ISSET, FD_SET, and FD_ZERO macros rather 426 than bit-whacking that failed under Solaris-Sparc-64. [Bug 1071807] 427 * win/tclWinInit.c (TclpInitLibraryPath): Removed unused vars 'pathc' 428 and 'pathv' that caused compilation problems on VC++ with 429 --enable-symbols. 430 4312004-11-24 Don Porter <dgp@users.sourceforge.net> 432 433 * unix/tcl.m4 (SC_ENABLE_THREADS): Corrected failure to determine the 434 number of arguments for readdir_r on SunOS systems. [Bug 1071701] 435 436 * unix/configure: autoconf-2.57 437 438 * generic/tclCmdIL.c (InfoVarsCmd): Corrected segfault in new 439 * tests/info.test (info-19.6): trivial matching branch [Bug 1072654] 440 4412004-11-24 Donal K. Fellows <donal.k.fellows@man.ac.uk> 442 443 * tools/man2html.tcl, tools/man2html1.tcl: Update to use Tcl 8.4. 444 * tools/man2html2.tcl: Fix broken .SS handling. 445 4462004-11-23 Donal K. Fellows <donal.k.fellows@man.ac.uk> 447 448 * unix/Makefile.in: Add (commented-out) code to integrate tclConfig.h 449 into the dependency tree and 'make distclean'. [Bug 1068171] 450 451 * generic/tclResult.c (Tcl_AppendResultVA): Remove call to 452 Tcl_GetStringResult to speed up repeated calls to Tcl_AppendResult 453 with the side effect that code that wants to access interp->result 454 should always call Tcl_GetStringResult first. See [Patch 1041072] 455 discussion for more details. 456 4572004-11-22 Mo DeJong <mdejong@users.sourceforge.net> 458 459 * unix/configure: Regen. 460 * unix/tcl.m4 (SC_TCL_64BIT_FLAGS): Define HAVE_TYPE_OFF64_T only when 461 off64_t, open64(), and lseek64() are defined. IRIX 5.3 is known to not 462 include an open64 function. [Bug 1030465] 463 4642004-11-22 Mo DeJong <mdejong@users.sourceforge.net> 465 466 * unix/configure: Regen. 467 * unix/tcl.m4 (SC_ENABLE_THREADS): Check for a 2 argument version of 468 readdir_r that is known to exists under IRIX 5.3. 469 * unix/tclUnixThrd.c (TclpReaddir): Use either 2 arg or 3 arg version 470 of readdir_r. [Bug 1001325] 471 4722004-11-22 Don Porter <dgp@users.sourceforge.net> 473 474 * unix/tclUnixInit.c (TclpInitLibraryPath): Purged dead code that used 475 * win/tclWinInit.c (TclpInitLibraryPath): to extend the "library 476 path". Search path construction for init.tcl is now done within the 477 [tclInit] proc. 478 * generic/tclInterp.c: Restored several directories to the search 479 * tests/unixInit.test: path used to locate init.tcl within [tclInit]. 480 This change does not restore any directories to the encoding search 481 path, so should still avoid the price of an unreasonably large number 482 of filesystem accesses during encoding initialization at startup 483 [Bug 976438] 484 4852004-11-22 Vince Darley <vincentdarley@users.sourceforge.net> 486 487 * generic/tclPathObj.c: fix and new test for [Bug 1043129] in the 488 * tests/fileSystem.test: treatment of backslashes in file join on 489 Windows. 490 4912004-11-21 Don Porter <dgp@users.sourceforge.net> 492 493 * doc/AddErrInfo.3: Typo corrections (Thanks Daniel South). 494 * doc/interp.n: 495 4962004-11-19 Don Porter <dgp@users.sourceforge.net> 497 498 * doc/AddErrInfo.3: Docs for Tcl_(Get|Set)ReturnOptions. [TIP 227] 499 500 * doc/AddErrInfo.3: 501 * doc/Async.3: Documentation updates to replace references 502 * doc/BackgdErr.3: to global variable ::errorInfo and ::errorCode 503 * doc/SaveResult.3: and to the ::bgerror command with references 504 * doc/after.n: to their preferred replacements, the 505 * doc/bgerror.n: -errorinfo and -errorcode return options, 506 * doc/error.n: the Tcl_*InterpState routines, and the 507 * doc/exec.n: [interp bgerror] command. 508 * doc/exit.n: 509 * doc/fileevent.n: 510 * doc/interp.n: 511 * doc/return.n: 512 * doc/tclvars.n: 513 * doc/update.n: 514 515 * tests/unixInit.test: Removed "knownBug" constraints to prompt bug 516 fixing before 8.5a2 release. 517 5182004-11-19 Daniel Steffen <das@users.sourceforge.net> 519 520 * macosx/Makefile: 521 * unix/configure.in: 522 * unix/tclUnixInit.c (MacOSXGetLibraryPath): changed detection of tcl 523 framework build when determining tclLibPath from overloaded 524 TCL_LIBRARY to configuration define TCL_FRAMEWORK. [Bug 1068088] 525 526 * unix/configure: autoconf-2.57 527 * unix/tclConfig.h.in: autoheader-2.57 528 5292004-11-18 Don Porter <dgp@users.sourceforge.net> 530 531 * doc/SaveResult.3: Documentation for Tcl_*InterpState (TIP 226). 532 533 * generic/tclEvent.c (HandleBgErrors): Simplified program flow. 534 535 * tests/basic.test: Updated functional (not testing) uses of 536 * tests/io.test: [bgerror] to make use of [interp bgerror]. 537 * tests/socket.test: 538 * tests/timer.test: 539 540 * tests/interp.test (interp-36.*): [interp bgerror] tests. 541 542 * generic/tclInterp.c: Corrected [interp bgerror] error messages. 543 5442004-11-18 Reinhard Max <max@suse.de> 545 546 * unix/tcl.m4 (SC_CONFIG_MANPAGES): Applied an improved version of 547 * unix/configure.in: [Patch 996085], that introduces 548 * unix/Makefile.in: --enable-man-suffix. 549 550 * unix/installManPage: added 551 * unix/mkLinks.tcl: removed 552 * unix/mkLinks: removed 553 * unix/configure: generated 554 555 * unix/Makefile.in: Don't install tclConfig.h . 556 5572004-11-17 Don Porter <dgp@users.sourceforge.net> 558 559 * unix/configure.in: The change below reveals that the public data 560 type Tcl_StatBuf relies on config information. For now, disabled the 561 use of the tclConfig.h file until its full impact on Tcl's interface 562 can be assessed. 563 564 * unix/configure: autoconf-2.57 565 566 * generic/tcl.h: Moved the #include "tclConfig.h" out of 567 * generic/tclInt.h: tcl.h. The config settings are not part of 568 * generic/tclPort.: the public interface, and having it there 569 breaks compiled against uninstalled Tcl and extensions using 570 autoconf-2.5*. 571 5722004-11-16 Jeff Hobbs <jeffh@ActiveState.com> 573 574 * unix/tclUnixChan.c (TtySetOptionProc): fixed crash configuring 575 -ttycontrol on a channel. [Bug 1067708] 576 5772004-11-16 Don Porter <dgp@users.sourceforge.net> 578 579 * generic/tclIOUtil.c (TclFSEpochOk): There were two code paths via 580 which the thread copy of filesystemEpoch could be synched with the 581 master copy, but only one kept the filesystem list cache up to date. 582 Fix routes everything through a single code path. [Bug 1035775]. 583 5842004-11-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> 585 586 * unix/tcl.m4 (SC_CONFIG_CFLAGS): Stop architecture flags to 'ld' from 587 getting lost when [load] is disabled. [Bug 1016796] 588 5892004-11-16 Daniel Steffen <das@users.sourceforge.net> 590 591 * generic/tcl.h: 592 * unix/configure.in: changed HAVE_CONFIG_H to HAVE_TCL_CONFIG_H. 593 594 * unix/configure: autoconf-2.57 595 5962004-11-15 Don Porter <dgp@users.sourceforge.net> 597 598 * generic/tclInt.h: Added comment warning that the old ERR_IN_PROGRESS 599 and ERROR_CODE_SET flag values should not be re-used for the sake of 600 those extensions that have accessed them. 601 602 * generic/tclCmdMZ.c (Tcl_TraceObjCmd): Fixed Bug 1065378 which failed 603 * tests/trace.test (trace-33.1): to permit a variable trace 604 created with [trace variable] to be destroyed with [trace remove]. 605 Thanks to Keith Vetter for the report. 606 6072004-11-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> 608 609 * doc/tclvars.n: Added section to documentation on global variables 610 that are specific to tclsh and wish. [Patch 1065732] 611 6122004-11-12 Jeff Hobbs <jeffh@ActiveState.com> 613 614 * generic/tclEncoding.c (TableFromUtfProc): correct crash condition 615 when TCL_UTF_MAX == 6. [Bug 1004065] 616 6172004-11-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> 618 619 * doc/interp.n: Basic documentation of the TIP#221 API. 620 6212004-11-12 Don Porter <dgp@users.sourceforge.net> 622 623 TIP #221 IMPLEMENTATION 624 * generic/tclBasic.c: Define [::tcl::Bgerror] in new interps. 625 * generic/tclEvent.c: Update Tcl_BackgroundError to make use of the 626 registered [interp bgerror] command. 627 * generic/tclInterp.c: New [interp bgerror] subcommand. 628 * tests/interp.test: syntax tests updated. 629 630 TIP #226 IMPLEMENTATION 631 * generic/tcl.decls: Stubs for Tcl_(Save|Restore|Discard)InterpState 632 * generic/tcl.h: New public opaque type, Tcl_InterpState. 633 * generic/tclInt.h: Drop old private declarations. Add 634 Tcl(Get|Set)BgErrorHandler 635 * generic/tclResult.c: Tcl_*InterpState implementations. 636 * generic/tclDictObj.c: Update callers. 637 * generic/tclIOGT.c: 638 * generic/tclTrace.c: 639 640 TIP #227 IMPLEMENTATION 641 * generic/tcl.decls: Stubs for Tcl_(Get|Set)ReturnOptions. 642 * generic/tclInt.h: Drop old private declarations. 643 * generic/tclResult.c: Tcl_*ReturnOptions implementations. 644 * generic/tclCmdAH.c: Update callers. 645 * generic/tclMain.c: 646 647 * generic/tclDecls.h: make genstubs 648 * generic/tclStubInit.c: 649 650 * unix/tclAppInit.c: Removed tclConfig.h #include, now that tcl.h 651 takes care of it for us. 652 653 * generic/tclInt.h: Moved verification of ptrdiff_t typedef from 654 * generic/tclExecute.c: multiple .c files into one common header where 655 * generic/tclVar.c: it is verifiably after tclConfig.h inclusion. 656 6572004-11-12 Daniel Steffen <das@users.sourceforge.net> 658 659 * generic/tcl.h: 660 * generic/tclInt.h: 661 * unix/Makefile.in: include tclConfig.h from tcl.h and install it as a 662 public header. Normalized compiler include path order to 663 -I${BUILD_DIR} -I${UNIX_DIR} -I${GENERIC_DIR}. 664 665 * unix/dltest/Makefile.in: add ${BUILD_DIR}/.. to include path to pick 666 up tclConfig.h. 667 668 * unix/tclUnixInit.c: moved check for HAVE_CFBUNDLE define after 669 #include "tclInt.h" to ensure tclConfig.h has been included. 670 6712004-11-12 Reinhard Max <max@suse.de> 672 673 * unix/config.h.in: 674 * unix/tclConfig.h.in: renamed 675 676 * unix/Makefile.in: Completed support for config header, 677 * unix/configure.in: fixed building outside of the unix dir, 678 * unix/tclAppinit.c: and reflected the name change of config.h. 679 * generic/tclInt.h: 680 681 * unix/configure: generated 682 6832004-11-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> 684 685 * unix/config.h.in: Allow configure to put all the C #defs into 686 * unix/configure.in: a file (called config.h) so that Unix builds 687 * unix/tcl.m4: now take far fewer lines of scrollback to 688 * unix/Makefile.in: proceed (making it less likely that any errors 689 * generic/tclInt.h: or warnings will get missed). 690 * unix/tclAppInit.c: Part of the TIP#34 upgrades. 691 692 * unix/tcl.m4, unix/tclUnixPort.h: Check for pthread_attr_get_np in 693 <pthread.h> before forcing the use of <pthread_np.h> to make things 694 work on NetBSD 2.0. [Bug 1064882] 695 696 * doc/binary.n, doc/upvar.n: More minor fixes. 697 6982004-11-12 Daniel Steffen <das@users.sourceforge.net> 699 700 * doc/CrtChannel.3: 701 * doc/Interp.3: 702 * doc/Limit.3: 703 * doc/binary.n: 704 * doc/dict.n: 705 * doc/tm.n: 706 * doc/upvar.n: fixed *roff errors uncovered by running 'make html'. 707 708 * tools/tcltk-man2html.tcl: added faked support for bullet point 709 lists, i.e. *nroff ".IP \(bu" syntax. 710 7112004-11-11 Daniel Steffen <das@users.sourceforge.net> 712 713 * tests/fCmd.test: 714 * unix/tclUnixFCmd.c (TraverseUnixTree): added option to rewind() the 715 readdir() loop whenever the source hierarchy has been modified by 716 traverseProc (e.g. by deleting files); this is required to ensure 717 complete traversal of the source hierarchy on certain filesystems like 718 HFS+. Added test for failing recursive delete on Mac OS X that was due 719 to this. [Bug 1034337] 720 721 * generic/tclListObj.c (Tcl_ListObjReplace): use memmove() instead of 722 manual copy loop to shift list elements. Decreases time spent in 723 Tcl_ListObjReplace() from 5.2% to 1.7% of overall runtime of tclbench 724 on a ppc 7455 (i.e. 200% speed increase). [Patch 1064243] 725 726 * generic/tclHash.c: hoisted some constant pointer dereferences out of 727 loops to eliminate redundant loads that the gcc optimizer didn't deal 728 with. Decreases time spend in Tcl_FindHashEntry() by 10% over a full 729 run of the tcl testuite on a ppc 7455. [Patch 1064243] 730 731 * tests/fileName.test: 732 * tests/fileSystem.test: 733 * tests/io.test: 734 * tests/msgcat.test: 735 * tests/tcltest.test: 736 * tests/unixInit.test: fixed bugs causing failures when running tests 737 with -tmpdir arg not set to working dir. 738 739 * macosx/Makefile: corrected path to html help inside framework. 740 Prevent parallel make from building several targets at the same time. 741 742 * macosx/tclMacOSXFCmd.c (struct fileinfobuf): force struct to be 743 packed to prevent failures when builing with -malign=natural. 744 7452004-11-10 Andreas Kupries <andreask@activestate.com> 746 747 * unix/tclUnixChan.c: [Bug 727786]. Exterminated the code marked 748 DEPRECATED. This code has not been used in over a year now, and we 749 have no complaints. 750 7512004-11-08 David Gravereaux <davygrvy@pobox.com> 752 753 * win/tclWinPipe.c: The pipe channel driver now respects the -blocking 754 option when closing is the same way the UNIX side works. This is to 755 avoid a hung shell when exiting due to open pipes that refuse to close 756 in a graceful manner. 757 * doc/open.n: Added a note about -blocking 0 and lack of exit status 758 as it had never been documented. [Bug 947693] 759 760 ***POTENTIAL INCOMPATIBILITY*** 761 762 Scripts that use async pipes on windows, must (like the UNIX side) set 763 -blocking to 1 before calling [close] to receive the exit status. 764 7652004-11-07 David Gravereaux <davygrvy@pobox.com> 766 767 * tests/winFile.test: added contraint to winFile-4.0 to prevent it 768 being run on NT4 [Bug 981829] 769 7702004-11-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> 771 772 * tests/reg.test: Major reorganization so that this file is much 773 easier for a normal Tcl maintainer to comprehend. The test flags are 774 still very cryptic, but they appear to have to be that way. The number 775 of skipped tests has increased, but now the skipped tests have much 776 more meaningful content. 777 778 * tests/tm.test (genpaths): Add a [file normalize] so we pick up 779 Windows drive letters, etc. [Bug 1053568] 780 7812004-11-04 Don Porter <dgp@users.sourceforge.net> 782 783 * changes: Updates toward an 8.5a2 release. 784 7852004-11-03 Kevin B. Kenny <kennykb@acm.org> 786 787 * library/clock.tcl (FreeScan): Fixed a bug where scanning "Monday" 788 with a base time other than midnight incorrectly carried the base time 789 forward. 790 791 * test/clock.test (clock-33.{5,5a}): Made the test failure more 792 informative. 793 794 * tests/clock.test (clock-34.{28,44,45,46}): Removed 'knownBug' 795 constraints from tests that no longer fail. 796 797 Thanks to Don Porter for reporting these. 798 7992004-11-03 David Gravereaux <davygrvy@pobox.com> 800 801 * generic/tcl.h: Moved the preprocessor logic 802 * generic/tclDecls.h: from tclInt.h of setting the 803 * generic/tclInt.h: TCL_STORAGE_CLASS macro to the 804 * generic/tclIntDecls.h: tcl*Decls.h files now that no 805 * generic/tclIntPlatDecls.h: use of EXTERN is left in tclInt.h. 806 * generic/tclPlatDecls.h: Proto for Tcl_Main moved in tcl.h 807 * win/tclWinPort.h: to prior the inclusion of the Stubs 808 headers as they are now resetting TCL_STORAGE_CLASS. Removed 809 extraineous reset from tclWinPort.h. [Patch 1055668] 810 811 * generic/tclCompile.h: Removed extrainious reset of TCL_STORAGE_CLASS 812 missed in my last edit. 813 8142004-11-03 Don Porter <dgp@users.sourceforge.net> 815 816 * library/init.tcl ([unknown]): Corrections to the 2004-10-25 mods to 817 Aunt ??? in [unknown]. Flaws revealed by Itcl test suite, which still 818 apparently relies on this brokenness. Also added comment suggesting 819 the error message that any code using this hack *ought* to receive in 820 reply. 821 822 * generic/tclTrace.c (TclCallVarTraces): Improved ability to debug 823 * tests/incr-old.test (incr-old-2.6): errors during variable 824 * tests/incr.test (incr-{1,2}.28): traces by preserving the 825 * tests/set.test (set-{2,4}.4): -errorinfo data. 826 * tests/trace.test (trace-33.1): [Bug 527164] 827 8282004-11-02 David Gravereaux <davygrvy@pobox.com> 829 830 * generic/tclInt.h: added a check for #ifdef __cplusplus around the 831 #define of MODULE_SCOPE. About the only time it would be problem is 832 when someone is statically linking to Tcl and accessing internals from 833 a C++ file and has name mangling issues from the lack of "C" after 834 'extern' [Patch 1055668]. 835 * generic/tclCompile.h: Exchanged use of the EXTERN macro to the new 836 MODULE_SCOPE macro. Lowered exported internals count by 35. [Patch 837 1055668] 838 * win/tclWinInt.h: 839 * win/tclWinPort.h: exported internals dropped by a count of 14. 840 * generic/tclFileSystem.h: Added use of MODULE_SCOPE on protos. 841 * generic/tclRegexp.h: manipulating TCL_STORAGE_CLASS unnecessary. 842 8432004-11-02 Don Porter <dgp@users.sourceforge.net> 844 845 * library/tcltest/tcltest.tcl: Corrected some misleading 846 * tests/tcltest.test (tcltest-26.1,2): displays of ::errorInfo and 847 ::errorCode information when the -setup, -body, and/or -cleanup scripts 848 return an unexpected return code. Thanks to Robert Seeger for the fix. 849 [RFE 1017151]. 850 8512004-11-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> 852 853 * generic/tclExecute.c (TclExecuteByteCode): Improved version of the 854 NaN fix from Miguel Sofer. [Bug 761471] 855 8562004-11-02 Kevin Kenny <kennykb@acm.org> 857 858 * library/tzdata/America/Cuiaba: Change to DST rules for 859 * library/tzdata/America/Havana: autumn of 2004. 860 [ftp://elsie.nci.nih.gov/pub/tzdata2004g.tar.gz] 861 862 * tools/tclZIC.tcl: Updated to be compatible with recent changes in 863 library/clock.tcl. 864 8652004-11-02 Vince Darley <vincentdarley@users.sourceforge.net> 866 867 * win/tclWinFile.c: Simplify TclpUtime to use Tcl_FSGetNativePath, and 868 add comments. 869 8702004-11-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> 871 872 * generic/tclInt.h: Change uses of EXTERN to MODULE_SCOPE (defined in 873 this file too to be 'extern' if not overridden) as nothing declared in 874 tclInt.h is supposed to be visible outside the Tcl core. If there *is* 875 anything that extensions are actually using, we can open this up later 876 on. [Patch 1055668] 877 878 * doc/CrtChannel.3 (Tcl_GetChannelMode): Add synopsis. [Bug 1058446] 879 8802004-11-01 Kevin B. Kenny <kennykb@acm.org> 881 882 * win/tclWinFile.c (FromCTime, TclpUtime): Replaced a call to the 883 Posix 'utime' function with calls to Windows-API equivalents, to avoid 884 a bug where the VC++ versions misconvert times across a Daylight 885 Saving Time boundary. [Bug 926106] 886 * win/tclWinInt.h (TclWinProcs): 887 * win/tclWin32Dll.c (asciiProcs, unicodeProcs): Removed now-unused 888 reference to 'utime'. 889 * tests/cmdAH.test (cmdAH-24.12): Added test case for the above bug. 890 8912004-11-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> 892 893 * generic/tclExecute.c (TclExecuteByteCode): Make INST_EQ and friends 894 handle NaN correctly in all cases. [Bug 761471] 895 896 * generic/tclNamesp.c (NamespaceInscopeCmd): Make the error message 897 generation the same as in NamespaceEvalCmd(). 898 (Tcl_Import): Rationalized to use Tcl_EvalObjv(). 899 9002004-10-31 Donal K. Fellows <donal.k.fellows@man.ac.uk> 901 902 * tests/io.test (io-40.3): Convert umask2 test constraint into a form 903 that most people will be able to satisfy. 904 905 * tests/cmdAH.test (cmdAH-8.45): Removed broken test constraint. It 906 didn't do what it was intended to do, and it implied the other correct 907 constraint. [Bug 1053908] 908 909 * generic/tclCmdIL.c (InfoGlobalsCmd): 910 * tests/info.test (info-8.4): Strip leading global-namespace 911 specifiers from the pattern argument. [Bug 1057461] 912 9132004-10-30 Kevin Kenny <kennykb@acm.org> 914 915 * generic/clock.c: Replaced WIN32 macro with __WIN32__. [Bug 1054357]. 916 Thanks to David Gravereaux for the patch. 917 * win/tclWinFile.c: Removed a long-standing bug that causes incorrect 918 conversion between file time and UTC time if the file time is recorded 919 in a different Daylight Saving Time status than the current one. [Bug 920 926106] 921 9222004-10-29 Don Porter <dgp@users.sourceforge.net> 923 924 * library/tcltest/tcltest.tcl: Correct reaction to errors in the 925 obsolete processCmdLineArgsHook. [Bug 1055673] 926 * library/tcltest/pkgIndex.tcl: Bump to tcltest 2.2.7 927 * unix/Makefile.in: 928 * tests/all.tcl: Update to use [tcltest::configure]. 929 9302004-10-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> 931 932 * library/tm.tcl (::tcl::tm::*): Use the core proc engine to generate 933 the wrong-num-args error messages for the path ensemble. 934 935 Ensembles can now (sometimes) rewrite the error messages of their 936 subcommands so they appear more like the arguments that the user 937 passed to the ensemble. Below is a description of changes involved in 938 doing this. 939 940 * tests/namespace.test (namespace-50.*): Tests of ensemble subcommand 941 error message rewriting. 942 * generic/tclProc.c (TclObjInterpProc): Make procedures implement 943 their wrong-num-args message using Tcl_WrongNumArgs instead of 944 something baked-at-home. 945 * generic/tclNamesp.c (TclIsEnsemble, NsEnsembleImplementationCmd): 946 Added test of ensemble-hood (available to rest of core) and made 947 ensembles set up the rewriting for Tcl_WrongNumArgs to take advantage 948 of. 949 * generic/tclInt.h (Interp.ensembleRewrite): Extra fields. 950 * generic/tclIndexObj.c (Tcl_WrongNumArgs): Add knowledge of what is 951 going on in ensembles' command rewriting so this command can generate 952 the right error message itself. 953 * generic/tclBasic.c (Tcl_CreateInterp, TclEvalObjvInternal): Added 954 code to initialize (as empty) the rewriting fields and reset them when 955 we leak outside an ensemble implementation. 956 9572004-10-28 Miguel Sofer <msofer@users.sf.net> 958 959 * generic/tclExecute.c (INST_START_CMD): 960 * tests/execute.test (execute-8.3): fix for execution stack corruption 961 [Bug 1055676]. Credit dgp for detective work and fix. 962 9632004-10-27 Don Porter <dgp@users.sourceforge.net> 964 965 * tests/socket.test (socket-13.1): Balanced [makeFile] and 966 [removeFile] commands. 967 968 * tests/clock.test: Correct duplicate test names. 969 * tests/namespace.test: 970 * tests/string.test: 971 * tests/io.test (io-50.4): Use namespace variables. 972 9732004-10-27 David Gravereaux <davygrvy@pobox.com> 974 975 * generic/tclInt.decls: The following 9 functions were moved from 976 * generic/tclInt.h: tclInt.h to the private/int Stubs table for 977 * generic/tclIntDecls.h: use by the test suite. As tclTest.obj is 978 * generic/tclStubInit.c: linked to the shell, these functions need 979 "blessed" status so as to always be exported from the library. Being 980 placed in the Stubs table guarantees this [Bug 1054748]: 981 TclpObjRemoveDirectory, TclpObjCopyDirectory, 982 TclpObjCreateDirectory, TclpObjDeleteFile, 983 TclpObjCopyFile, TclpObjRenameFile, 984 TclpObjStat, TclpObjAccess, 985 TclpOpenFileChannel 986 987 * tests/registry.test: Fixed test files to load the correct 988 * tests/winDde.test: registry and dde packages by using the info 989 * win/Makefile.in: from makefiles to tell tcltest where to load 990 * win/makefile.vc: them from. This avoids grabbing the wrong 991 package from $auto_path which might be the install point rather than 992 the dev location. Kudos to Jennifer Hom for adding -load and 993 -loadfile to the tcltest package. [Bug 926088] 994 995 * win/tclWinThrd.c (TclFinalizeLock): release the critical section 996 before deleting it. [Bug 731778] 997 998 * generic/tcl.h: Removed the file level 'extern "C" {' and the 999 coresponding closing block as it serves no purpose given that all the 1000 function prototypes have the proper extern usage already. 1001 1002 * unix/tclAppInit.c: When built as tcltest, TclThread_Init was 1003 * win/tclAppInit.c: getting called twice. First by Tcltest_Init, 1004 then again in Tcl_AppInit. The call from Tcl_AppInit is now removed. 1005 10062004-10-27 Andreas Kupries <andreask@activestate.com> 1007 1008 * tests/tm.test: Expanded on the testsuite entered by Donal. 1009 * library/tm.tcl: Even found bugs, these have been corrected. 1010 10112004-10-26 Kevin Kenny <kennykb@acm.org> 1012 1013 * tests/format.test (format-19.1): Additional regression test for [Bug 1014 868489]. 1015 10162004-10-27 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1017 1018 * doc/*.n: Many small general documentation fixes. 1019 10202004-10-26 David Gravereaux <davygrvy@pobox.com> 1021 1022 * generic/tclPipe.c (TclCleanupChildren): bad cast of resolvedPid 1023 caused PIDs on win95 to go negative. winpipe-4.2 brought this to the 1024 surface. Fixed with sprintf in place of TclFormatInt. Thanks to hgiese 1025 [Patch 767676] 1026 10272004-10-26 Andreas Kupries <andreask@activestate.com> 1028 1029 * library/tm.tcl (::tcl::tm::Defaults): Added a second [file dirname] 1030 around the location of the executable. This fixes [Bug 1038705]. 1031 Instable of a bogus "foo/bin/lib" we now have the correct "foo/lib" as 1032 a base path for modules. 1033 10342004-10-26 Don Porter <dgp@users.sourceforge.net> 1035 1036 * generic/tclParse.c (Tcl_SubstObj): Fix for failed subst-12.3 test 1037 * tests/subst.test (subst-12.3-5): More tests for Bug 1036649. 1038 1039 * unix/Makefile.in (install-libraries): Updated the installation of 1040 the http, msgcat, and tcltest packages to install as Tcl Modules on 1041 Unix systems. Other platform Makefiles still need updating. [Patch 1042 1054370] 1043 1044 * tests/basic.test: Added missing constraints. 1045 * tests/compile.test: 1046 * tests/fileSystem.test: 1047 1048 * tests/init.test (init-2.8): Updated to not rely on http package. 1049 10502004-10-26 Miguel Sofer <msofer@users.sf.net> 1051 1052 * generic/tclInt.h: 1053 * generic/tclVar.c: removed more direct references to the VAR flags, 1054 replaced with access macros. 1055 10562004-10-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1057 1058 * doc/expr.n: Clarified that non-num/non-bool literals require 1059 quoting. [Bug 1027849]. Also listed booleans as acceptable values. 1060 10612004-10-26 Kevin B. Kenny <kennykb@acm.org> 1062 1063 * library/clock.tcl (FreeScan): Fixed a bug that caused relative days 1064 of the week in free-form [clock scan] to be evaluated in the wrong 1065 time zone. 1066 * tests/clock.test (clock-31.[456]): Made sure that there isn't an 1067 env(TZ) or env(TCL_TZ) lying around that will override the time zone 1068 that we're trying to establish with the simulated registry. 1069 Both problems reported as [Bug 1054101]. 1070 10712004-10-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1072 1073 * doc/string.n (map): Rewrote to clarify that we don't just map single 1074 characters. [Bug 1048005] 1075 * doc/info.n (procs): Clarified that the pattern argument may have 1076 namespace separators in it. [Bug 1047928] 1077 1078 * tests/cmdAH.test (cmdAH-8.45): Simplify in the hope that the reasons 1079 for [Bug 1053908] will become clearer. 1080 10812004-10-25 Don Porter <dgp@users.sourceforge.net> 1082 1083 * generic/tclExecute.c (IllegalExprOperandType,TclExecuteByteCode): 1084 Removed several DECACHE_INFO/CACHE_INFO pairs that are no longer 1085 needed for protection because routines like Tcl_SetErrorCode() and 1086 Tcl_AddErrorInfo() can no longer re-enter bytecode execution. 1087 1088 * generic/tclResult.c (TclProcessReturn): Bug fix. Be sure that a 1089 missing -errorinfo option when code == TCL_ERROR causes the errorInfo 1090 field to get reset. 1091 1092 * tests/thread.test (thread-4.4): Test depended on a ::errorInfo value 1093 initialized to "". Added code to test to setup that requirement. 1094 1095 * library/auto.tcl: Purged Tcl's script library of all 1096 * library/clock.tcl: remaining references to global vars 1097 * library/init.tcl: ::errorInfo and ::errorCode. 1098 1099 * generic/tclMain.c (Tcl_Main): Updated to make use of 1100 TclGetReturnOptions instead of ::errorInfo variable. 1101 1102 * generic/tclInterp.c (tclInit): Bug fix. Access dict variables with 1103 [dict get], not array syntax. 1104 11052004-10-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1106 1107 * tests/tm.test: Rewrote the tests to actually perform syntax checks 1108 on the public API. Added a new test (currently failing) to indicate 1109 that the test suite is not complete yet. 1110 * library/tm.tcl (path): Rewrote to turn this command into an ensemble 1111 to make it faster and simpler. 1112 11132004-10-24 Miguel Sofer <msofer@users.sf.net> 1114 1115 * generic/tclCmdIL.c: 1116 * generic/tclExecute.c: 1117 * generic/tclInt.h: 1118 * generic/tclTrace.c: defined new macros to get/set the flags of 1119 variables. The only files that still access the flag values directly 1120 are tclCompCmds.c, tclCompile.c, tclProc.c and tclVar.c 1121 11222004-10-24 Don Porter <dgp@users.sourceforge.net> 1123 1124 * generic/tclBasic.c (Tcl_LogCommandInfo,Tcl_AddObjErrorInfo): Shift 1125 the initialization of errorCode to NONE to more central location. 1126 1127 * generic/tclEvent.c (BgError,Tcl_BackgroundError,HandleBgErrors): 1128 Rewrite to build on the new TclGet/SetReturnOptions routines. 1129 1130 * generic/tclResult.c (TclGetReturnOptions): Add call to 1131 Tcl_AddObjErrorInfo to be sure error fields are initialized. 1132 1133 * generic/tclResult.c (TclTransferResult): Rewrite to build on the new 1134 TclGet/SetReturnOptions routines. 1135 11362004-10-22 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1137 1138 * doc/tm.n: Tightened up the documentation. 1139 * tests/tm.test: Created (with partially dummy content) so TIP#189 can 1140 be marked Final. 1141 1142 * generic/tclNamesp.c (NsEnsembleImplementationCmd): Make ensembles 1143 cut their implementations out of error traces. This is the right thing 1144 to do more often than not. 1145 11462004-10-22 Kevin B. Kenny <kennykb@acm.org> 1147 1148 * library/clock.tcl: Fixed a typo where the fallback time zone became 1149 ::localtime instead of :localtime. Fixed a bug where time zone names 1150 containing hyphens could not be loaded. 1151 * tests/clock.test: Added regression test cases that covers both bugs. 1152 Thanks to Todd M. Helfter <tmh@jumpgate.itsp.purdue.edu> for finding 1153 these bugs. 1154 11552004-10-22 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1156 1157 * generic/tclExecute.c (TclCompEvalObj, Tcl_ExprObj): 1158 * generic/tclProc.c (TclProcCompileProc): Always call object 1159 freeIntRepProc's in the same way. 1160 11612004-10-22 Miguel Sofer <msofer@users.sf.net> 1162 1163 * generic/tclVar.c: fixed bug in commit of 2004-07-23, which was 1164 causing a leak of Proc structures and failure of compile-12.1. Two 1165 lines were 'zombies' from the previous way localVarNames worked. 1166 Credit dgp for finding this. 1167 11682004-10-21 Don Porter <dgp@users.sourceforge.net> 1169 1170 * generic/tclInt.h (Interp): 1171 * generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp): 1172 * generic/tclResult.c (GetKeys,ReleaseKeys,etc.): Moved the key values 1173 of the return options dictionary out of private fields of the Interp 1174 struct and into thread-static values managed in tclResult.c. 1175 1176 * generic/tclCmdAH.c (Tcl_CatchObjCmd, Tcl_ErrorObjCmd): Updated to 1177 call the new TclGet/SetReturnOptions routines to do much of their 1178 work. 1179 1180 * generic/tclInt.h (TclGetReturnOptions,TclSetReturnOptions): 1181 * generic/tclResult.c (TclGetReturnOptions,TclSetReturnOptions): New 1182 utility routines to get/set the return options of an interp. Intent is 1183 that these routines will be converted to public routines after TIP 1184 approval. 1185 1186 * generic/tclCmdMZ.c (TclProcessReturn,TclMergeReturnOptions): 1187 * generic/tclResult.c (TclProcessReturn,TclMergeReturnOptions): Move 1188 internal utility routines from tclCmdMZ.c to tclResult.c. 1189 1190 * generic/tclBasic.c (Tcl_CreateInterp, Tcl_DeleteInterp): 1191 * generic/tclResult.c (TclTransferResult): Rework so that 1192 iPtr->returnOpts can be NULL when there are no special options. 1193 1194 * generic/tclResult.c (TclRestoreInterpState): Plug potential memory 1195 leak. 1196 11972004-10-21 Kevin B. Kenny <kennykb@acm.org> 1198 1199 * generic/tclBasic.c: Various changes to [clock format] that, 1200 * generic/tclClock.c: together, make it roughly twice as fast 1201 * generic/tclInt.h: while all tests in the test suite 1202 * library/clock.tcl: continue to pass. 1203 12042004-10-20 Andreas Kupries <andreask@activestate.com> 1205 1206 * win/Makefile.in (install-msgs): Fixed a problem with the 1207 * win/Makefile.in (install-tzdata): installation of timezone data and 1208 message catalogs. They used the installed tcl library directory, not 1209 the source library. Before it was installed. Switched to source lib 1210 dir. Thanks to Kevin for the help in figuring this out. 1211 12122004-10-20 Don Porter <dgp@users.sourceforge.net> 1213 1214 * generic/tclThreadTest.c (ThreadEventProc): Corrected subtle bug 1215 where the returned (char *) from Tcl_GetStringResult(interp) continued 1216 to be used without copying or refcounting, while activity on the 1217 interp continued. That's not safe, and recent changes demonstrated the 1218 lack of safety with failing tests thread-4.3 and thread-4.5. 1219 12202004-10-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1221 1222 * generic/tclDictObj.c (DictWithCmd): Make sure all paths (that are 1223 not themselves error paths) do not lose the result code. 1224 12252004-10-19 Don Porter <dgp@users.sourceforge.net> 1226 1227 * generic/tclInt.h (Tcl*InterpState): New internal routines 1228 * generic/tclResult.c (Tcl*InterpState): TclSaveInterpState, 1229 TclRestoreInterpState, and TclDiscardInterpState are superior 1230 replacements for Tcl_(Save|Restore|Discard)Result. Intent is that 1231 these routines will be converted to public routines after TIP 1232 approval. Interfaces for these routines were shamelessly stolen from 1233 Itcl. 1234 1235 * generic/tclBasic.c (TclEvalObjvInternal): 1236 * generic/tclDictObj.c (DictUpdateCmd, DictWithCmd): 1237 * generic/tclIOGT.c (ExecuteCallback): 1238 * generic/tclTrace.c (Trace*Proc,TclCheck*Traces,TclCallVarTraces): 1239 Callers of Tcl_*Result updated to call the new routines. The calls 1240 were relocated in several cases to perform save/restore operations 1241 only when needed. 1242 1243 * generic/tclEvent.c (HandleBgErrors): 1244 * generic/tclFCmd.c (CopyRenameOneFile): Calls to Tcl_*Result that 1245 were eliminated because they appeared to serve no useful purpose, 1246 typically saving/restoring an error message, only to throw it away. 1247 12482004-10-18 Don Porter <dgp@users.sourceforge.net> 1249 1250 * generic/tclBasic.c (Tcl_CreateInterp,Tcl_DeleteInterp): 1251 * generic/tclCmdAH.c (Tcl_CatchObjCmd): 1252 * generic/tclCmdMZ.c (TclMergeReturnOptions,TclProcessReturn): 1253 * generic/tclCompCmds.c (TclCompileReturnCmd): 1254 * generic/tclExecute.c (TclCompEvalObj): 1255 * generic/tclInt.h (Interp): 1256 * generic/tclProc.c (TclUpdateReturnInfo): Place primary storage of 1257 the -level and -code information in private fields of the Interp 1258 struct, rather than in a DictObj. This should significantly improve 1259 performance of TclUpdateReturnInfo. 1260 12612004-10-17 Miguel Sofer <msofer@users.sf.net> 1262 1263 * generic/tclResult.c: removed unused variable [Bug 1048588]. Thanks 1264 to Daniel South. 1265 12662004-10-15 Don Porter <dgp@users.sourceforge.net> 1267 1268 * generic/tclCmdMZ.c (TclProcessReturn): Now that primary 1269 * generic/tclProc.c (TclUpdateReturnInfo): storage for the 1270 errorInfo and errorCode values are internal fields, we can set them at 1271 the time of the [return] command, and not have to wait until the 1272 specified number of "-level"s have popped. 1273 1274 * generic/tclBasic.c (Tcl_CreateInterp, Tcl_DeleteInterp) 1275 (TclEvalObjvInternal, Tcl_LogCommandInfo, TclAddObjErrorInfo): 1276 * generic/tclCmdAH.c (Tcl_CatchObjCmd): 1277 * generic/tclEvent.c (BgError, ErrAssocData, Tcl_BackgroundError) 1278 (HandleBgErrors, BgErrorDeleteProc): 1279 * generic/tclExecute.c (TclCreateExecEnv, TclDeleteExecEnv): 1280 * generic/tclIOUtil.c (comments only): 1281 * generic/tclInt.h (ExecEnv,Interp, ERR_IN_PROGRESS): 1282 * generic/tclInterp.c ([tclInit]): 1283 * generic/tclMain.c (comments only): 1284 * generic/tclNamesp.c (Tcl_CreateNamespace, Tcl_DeleteNamespace) 1285 (TclTeardownNamespace): 1286 * generic/tclProc.c (TclUpdateReturnInfo): 1287 * generic/tclResult.c (Tcl_ResetResult, TclTransferResult): 1288 * generic/tclTrace.c (CallVarTraces): 1289 Reworked management of the "errorInfo" data of an interp. That 1290 information is now primarily stored in a new private (Tcl_Obj *) field 1291 of the Interp struct, rather than using a global variable ::errorInfo 1292 as the primary storage. The ERR_IN_PROGRESS flag bit value is no 1293 longer required to manage the value in its new location, and is 1294 removed. Variable traces are established to support compatibility for 1295 any code expecting the ::errorInfo variable to hold the information. 1296 1297 ***POTENTIAL INCOMPATIBILITY*** 1298 Code that sets traces on the ::errorInfo variable may notice a 1299 difference in timing of the firing of those traces. Code that uses the 1300 value ERR_IN_PROGRESS. 1301 13022004-10-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1303 1304 TIP#217 IMPLEMENTATION 1305 1306 * generic/tclCmdIL.c (Tcl_LsortObjCmd): Add -indices option from James 1307 Salsman. [Patch 1017532] 1308 1309 * generic/tclUtil.c (TclMatchIsTrivial): Detect degenerate cases of 1310 glob matching that let us avoid scanning through hash tables. 1311 * generic/tclCmdIL.c (InfoCommandsCmd, InfoGlobalsCmd, InfoProcsCmd): 1312 (InfoVarsCmd): Use this to speed up some [info] subcommands. 1313 13142004-10-12 Kevin B. Kenny <kennykb@acm.org> 1315 1316 * library/tzdata/America/Campo_Grande: 1317 * library/tzdata/America/Cuiaba: 1318 * library/tzdata/America/Sao_Paulo 1319 * library/tzdata/America/Argentina/Mendoza: 1320 * library/tzdata/America/Argentina/San_Juan: 1321 Synchronized to Olson's 'tzdata2004e'. 1322 13232004-10-08 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1324 1325 TIP#201 AND TIP#212 IMPLEMENTATIONS 1326 1327 * doc/dict.n, doc/expr.n: Documentation for new functionality. 1328 * tests/expr.test: Basic tests of 'in' and 'ni' behaviour. 1329 * tests/dict.test (dict-21.*,dict-22.*): Tests for [dict update] and 1330 [dict with]. 1331 * generic/tclExecute.c (TclExecuteByteCode): Implementation of the 1332 INST_LIST_IN and INST_LIST_NOT_IN bytecodes. 1333 * generic/tclParseExpr.c (GetLexeme): Parse the 'in' and 'ni' 1334 operators for TIP#201. 1335 * generic/tclDictObj.c (DictUpdateCmd,DictWithCmd): Core of 1336 implementation of TIP#212; docs and tests still to do... 1337 13382004-10-07 Don Porter <dgp@users.sourceforge.net> 1339 1340 * generic/tclTest.c (TestsetobjerrorcodeCmd): Simplified. 1341 13422004-10-07 Vince Darley <vincentdarley@users.sourceforge.net> 1343 1344 * generic/tclFileName.c: 1345 * generic/tclFileSystem.h: 1346 * generic/tclIOUtil.c: 1347 * generic/tclPathObj.c: 1348 * unix/tclUnixFile.c: 1349 * win/tclWinFile.c: 1350 * tests/fileName.test: 1351 * tests/winFCmd.test: code reorganization for better generic/platform 1352 code splitting [Bug 925620] removing the need for several #ifdef's, 1353 and tests and fix for an unreported Windows glob problem ('glob -dir 1354 C: -tails *'). 1355 13562004-10-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1357 1358 * *.3: Convert CONST to const and VOID to void so we document how 1359 people should actually use the Tcl API and not the compatability hacks 1360 that it has to have. 1361 1362 * doc/man.macros, *.3: Update .AS macro so it can know how wide to 1363 make the third column of the argument list. Update documentation for C 1364 API (only users) to take advantage of this. 1365 1366 * doc/FileSystem.3: Formatting fixes for greater documentation 1367 clarity. 1368 13692004-10-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1370 1371 * generic/tclFileName.c (DoGlob, TclGlob): Stop messy sharing of 1372 interpreter result and instead use a private object for collecting the 1373 result of the glob. This simplifies TclGlob quite a lot. 1374 * generic/tclIOUtil.c (Tcl_FSMatchInDirectory): Simplify by removing 1375 some nesting. Also standardize variable names. 1376 (FsAddMountsToGlobResult): Force updates to the list to be done 1377 in-place, putting a side-condition of non-shared-ness on the resultPtr 1378 argument to Tcl_FSMatchInDirectory, but everything would have broken 1379 before if that was shared *anyway*. 1380 1381 * generic/tclEncoding.c (LoadTableEncoding): Removed reference to Tcl 1382 interpreter; it wasn't needed as direct object use is more efficient. 1383 1384 * generic/tclPathObj.c: Made this file follow the style rules in the 1385 Engineering Manual more closely, and also take advantage of the 1386 internal object manipulation macros more. 1387 1388 * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): Reorganized to have fewer 1389 magic flag variables and to separate the code that scans for a match 1390 from the code that processes a match body. 1391 13922004-10-06 Don Porter <dgp@users.sourceforge.net> 1393 1394 * generic/tclBasic.c: 1395 * generic/tclBinary.c: 1396 * generic/tclCmdAH.c: 1397 * generic/tclCmdIL.c: 1398 * generic/tclCmdMZ.c: 1399 * generic/tclCompExpr.c: 1400 * generic/tclDictObj.c: 1401 * generic/tclEncoding.c: 1402 * generic/tclExecute.c: 1403 * generic/tclFCmd.c: 1404 * generic/tclHistory.c: 1405 * generic/tclIndexObj.c: 1406 * generic/tclInterp.c: 1407 * generic/tclIO.c: 1408 * generic/tclIOCmd.c: 1409 * generic/tclNamesp.c: 1410 * generic/tclObj.c: 1411 * generic/tclPkg.c: 1412 * generic/tclResult.c: 1413 * generic/tclScan.c: 1414 * generic/tclTimer.c: 1415 * generic/tclTrace.c: 1416 * generic/tclUtil.c: 1417 * generic/tclVar.c: 1418 * unix/tclUnixFCmd.c: 1419 * unix/tclUnixPipe.c: 1420 * win/tclWinDde.c: 1421 * win/tclWinFCmd.c: 1422 * win/tclWinPipe.c: 1423 * win/tclWinReg.c: 1424 It is a poor practice to directly set or append to the value of the 1425 objResult of an interp, because that value might be shared, and in 1426 that circumstance a Tcl_Panic() will be the result. Searched for 1427 example of this practice and replaced with safer alternatives, often 1428 using the Tcl_AppendResult() routine that dkf just rehabilitated. 1429 * library/dde/pkgIndex.tcl: Bump to dde 1.3.1 1430 * library/reg/pkgIndex.tcl: Bump to registry 1.1.5 1431 14322004-10-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1433 1434 * doc/SetResult.3: Made Tcl_AppendResult non-deprecated; better that 1435 people use it than most of the common alternatives! 1436 * generic/tclResult.c (Tcl_AppendResultVA): Make this work better with 1437 Tcl_Objs. [Patch 1041072] 1438 (Tcl_SetResult, Tcl_AppendElement): Change string to stringPtr to 1439 avoid C++ keywords. 1440 14412004-10-05 Don Porter <dgp@users.sourceforge.net> 1442 1443 * generic/tclBasic.c (TclObjInvoke): More simplification of the 1444 TclObjInvoke routine toward unification with the rest of the 1445 evaluation stack. 1446 1447 * generic/tclBasic.c (Tcl_CreateInterp, Tcl_DeleteInterp) 1448 (TclEvalObjvInternal, Tcl_LogCommandInfo): 1449 * generic/tclCmdAH.c (Tcl_CatchObjCmd): 1450 * generic/tclEvent.c (BgError, Tcl_BackgroundError, HandleBgErrors): 1451 * generic/tclInt.h (Interp, ERROR_CODE_SET): 1452 * generic/tclNamesp.c (Tcl_CreateNamespace, Tcl_DeleteNamespace) 1453 (TclTeardownNamespace): 1454 * generic/tclResult.c (Tcl_ResetResult, Tcl_SetObjErrorCode) 1455 (TclTransferResult): 1456 * generic/tclTrace.c (CallVarTraces): 1457 Reworked management of the "errorCode" data of an interp. That 1458 information is now primarily stored in a new private (Tcl_Obj *) field 1459 of the Interp struct, rather than using a global variable ::errorCode 1460 as the primary storage. The ERROR_CODE_SET flag bit value is no longer 1461 required to manage the value in its new location, and is removed. 1462 Variable traces are established to support compatibility for any code 1463 expecting the ::errorCode variable to hold the information. 1464 1465 ***POTENTIAL INCOMPATIBILITY*** 1466 Code that sets traces on the ::errorCode variable may notice a 1467 difference in timing of the firing of those traces. 1468 1469 * generic/tclNamesp.c (Tcl_PopCallFrame): Removed Bug 1038021 1470 workaround. That bug is now fixed. 1471 14722004-10-04 Kevin B. Kenny <kennykb@acm.org> 1473 1474 * tests/clock.test (clock-34.*): Removed an antibug that forced 1475 comparison of [clock scan] results with the :localtime time zone. Now 1476 that [clock scan] uses the current time zone instead, the antibug 1477 caused several tests to fail. [Bug 1038554] 1478 14792004-10-04 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1480 1481 * generic/tclParseExpr.c (GetLexeme): Ensure that the 'eq' and 'ne' 1482 operators are followed by non-alphabetic characters so lexemes can't 1483 run together. [Bug 884830] 1484 1485 * doc/DictObj.3, doc/dict.n: Clarified that a dictionary is not 1486 order-preserving. [Bug 1032243] Also added another example to show off 1487 more ways of using a dictionary and a few other formatting 1488 improvements. 1489 14902004-10-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1491 1492 * generic/tclDictObj.c (TraceDictPath, Tcl_DictObjPutKeyList): Add 1493 support for automatic creation of dictionary paths since that is what 1494 everyone seems to actually expect of the API! [Bug 1037235] 1495 (Tcl_DictObjNext): Make calling this after Tcl_DictObjDone non-fatal 1496 as that simplifies a number of internal APIs. This doesn't break any 1497 existing working code as it is a case which previously caused a panic. 1498 14992004-10-02 Don Porter <dgp@users.sourceforge.net> 1500 1501 * tests/namespace.test (namespace-8.7): Another test for save/restore 1502 of ::errorInfo and ::errorCode during global namespace teardown. 1503 15042004-10-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1505 1506 * generic/tclProc.c (TclObjGetFrame, Tcl_UplevelObjCmd): 1507 * generic/tclVar.c (Tcl_UpvarObjCmd): Cache stackframe level 1508 references in the level object for speed. 1509 15102004-09-30 Don Porter <dgp@users.sourceforge.net> 1511 1512 * generic/tclBasic.c (Tcl_CreateInterp): 1513 * generic/tclInt.h (Interp): Removed the flag bit value 1514 EXPR_INITIALIZED. It was set during interp creation and never tested. 1515 Whatever purpose it had is in the past. 1516 1517 * generic/tclBasic.c (Tcl_EvalObjEx): Removed the flag bit value 1518 * generic/tclInt.h (Interp): USE_EVAL_DIRECT. It was used 1519 * generic/tcLTest.c (TestevalexObjCmd): only in the testing command 1520 * tests/parser.test (parse-9.2): [testevalex] and nothing in 1521 the test suite made use of the capability it enabled. 1522 1523 * generic/tclBasic.c (Tcl_AddObjErrorInfo): More re-organization 1524 * generic/tclCmdAH.c (Tcl_ErrorObjCmd): of the management of 1525 * generic/tclCmdMZ.c (TclProcessReturn): the errorCode value. 1526 * tests/error.test (error-6.4-9): 1527 1528 * generic/tclNamespace.c (TclTeardownNamespace): Tcl_Obj-ified 1529 * tests/namespace.test (namespace-8.5,6): the save/restore of 1530 ::errorInfo and ::errorCode during global namespace teardown. Revised 1531 the comment to clarify why this is done, and added tests that will 1532 fail if this is not done. 1533 1534 * generic/tclResult.c (TclTransferResult): Added safety checks so that 1535 unexpected undefined ::errorInfo or ::errorCode will not lead to a 1536 segfault. 1537 1538 * generic/tclTrace.c (TclCallVarTraces): Save/restore the flag values 1539 * tests/var.test (var-16.1): that define part of the 1540 interpreter state during variable traces. [Bug 1038021]. 1541 15422004-09-30 Miguel Sofer <msofer@users.sf.net> 1543 1544 * tests/subst.test (12.1-2): added tests for [Bug 1036649] 1545 15462004-09-29 Don Porter <dgp@users.sourceforge.net> 1547 1548 * tests/basic.test (49.*): New tests for TCL_EVAL_GLOBAL. 1549 15502004-09-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1551 1552 * generic/tclVar.c (TclObjLookupVar, TclObjLookupVar): 1553 (TclObjUnsetVar2, SetArraySearchObj): 1554 * generic/tclUtil.c (SetEndOffsetFromAny): 1555 * generic/tclStringObj.c (Tcl_SetStringObj): 1556 (Tcl_SetUnicodeObj, SetStringFromAny): 1557 * generic/tclResult.c (ResetObjResult): 1558 * generic/tclRegexp.c (Tcl_GetRegExpFromObj): 1559 * generic/tclPathObj.c (TclFSMakePathRelative, SetFsPathFromAny): 1560 (TclFSMakePathFromNormalized, Tcl_FSNewNativePath): 1561 * generic/tclObj.c (TclFreeObj, Tcl_SetBooleanObj, SetBooleanFromAny): 1562 (Tcl_SetDoubleObj, SetDoubleFromAny, Tcl_SetIntObj): 1563 (SetIntOrWideFromAny, Tcl_SetLongObj, SetWideIntFromAny): 1564 (Tcl_SetWideIntObj, TclSetCmdNameObj, SetCmdNameFromAny): 1565 * generic/tclNamesp.c (SetNsNameFromAny, MakeCachedEnsembleCommand): 1566 * generic/tclListObj.c (Tcl_SetListObj, SetListFromAny): 1567 * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): 1568 * generic/tclDictObj.c (SetDictFromAny): 1569 * generic/tclCompile.c (TclInitByteCodeObj): 1570 * generic/tclBinary.c (Tcl_SetByteArrayObj, SetByteArrayFromAny): 1571 * generic/tclInt.h (TclFreeIntRep): Factorize out deletion of object 1572 internal representation to a shared macro, so simplifying much code. 1573 15742004-09-27 Miguel Sofer <msofer@users.sf.net> 1575 1576 * generic/tclBasic.c (TclObjInvoke): fix for bogus gcc warning about 1577 uninitialised variable. 1578 15792004-09-27 Don Porter <dgp@users.sourceforge.net> 1580 1581 * generic/tclBasic.c: Removed internal routines TclInvoke, 1582 * generic/tclInt.decls: TclGlobalInvoke, TclObjInvokeGlobal and the 1583 * tests/basic.test: portion of TclObjInvoke that handles calls 1584 without TCL_INVOKE_HIDDEN enabled. None of this code is called any 1585 longer within the core, and the superior public interface, 1586 Tcl_EvalObjv, is available for any external callers. 1587 1588 * generic/tclIntDecls.h: make genstubs 1589 * generic/tclStubInit.c: 1590 1591 * generic/tclEvent.c (HandleBgErrors): Updated [bgerror] invocations 1592 to make use of Tcl_Obj based routines, dropping the calls to 1593 TclGlobalInvoke() 1594 15952004-09-27 Vince Darley <vincentdarley@users.sourceforge.net> 1596 1597 * generic/tclFileName.c: 1598 * generic/tclFileSystem.h: 1599 * generic/tclIOUtil.c: 1600 * generic/tclPathObj.c: 1601 * tests/cmdAH.test: 1602 * tests/fileSystem.test: 1603 * tests/winFCmd.test: fix to bad error message with 'cd' on windows, 1604 when permissions are inadequate [Bug 1035462] and to treatment of a 1605 volume-relative pwd on Windows [Bug 1018980]. 1606 1607 * doc/FileSystem.3: added missing Tcl_GlobTypeData documentation [Bug 1608 935853] 1609 16102004-09-27 Kevin Kenny <kennykb@acm.org> 1611 1612 * compat/strftime.c (Removed): 1613 * generic/tclClock.c (removed TclClockOldscanObjCmd): 1614 * generic/tclDate.c (Regenerated): 1615 * generic/tclGetDate.y: 1616 * generic/tclInt.decls (removed TclGetDate and TclpStrftime): 1617 * generic/tclInt.h (removed TclGetDateInfo): 1618 * generic/tclIntDecls.h (Regenerated): 1619 * generic/tclStubInit.c (Regenerated): 1620 * library/clock.tcl: 1621 * unix/tclUnixTime.c (removed TclpStrftime): 1622 * win/Makefile.in: 1623 * win/makefile.bc: 1624 * win/makefile.bc: 1625 * win/tcl.dsp: 1626 Continued refactoring of [clock] for TIP 173 changes. Broke the 1627 free-form parser apart so that the Bison parser is responsible for 1628 only parsing, while clock.tcl handles relative times like "next 1629 Thursday", "next January". This change is needed to make timezones 1630 other than :localtime and :Etc/UTC work with free-form scanning. This 1631 change closes out the issue identified as being "for another day" in 1632 my log message of 2004-09-08. The refactored code also eliminates the 1633 last known references to TclpStrftime and TclGetDate, so those 1634 routines (including compat/strftime.c) have been removed. The 1635 refactoring also has the benefit that all storage in the Bison parser 1636 is now on the C stack, eliminating any need for mutex protection 1637 around [clock scan]. Also, changed the Makefiles so that 'make 1638 gendate' is available on Windows as well as Unix. 1639 1640 * generic/tclCmdAH.c (Tcl_FormatObjCmd): Removed some grubby 1641 * generic/tclObj.c (SetBooleanFromAny): work-around code that was 1642 needed only because of Bug 868489. 1643 1644 * generic/tclBasic.c (TclObjInvoke): Removed three unused variables to 1645 silence a compiler warning in VC++. 1646 16472004-09-27 Vince Darley <vincentdarley@users.sourceforge.net> 1648 1649 * doc/FileSystem.3: fix to small typo. 1650 16512004-09-26 Miguel Sofer <msofer@users.sf.net> 1652 1653 * generic/tclCompCmds.c: 1654 * generic/tclCompExpr.c: 1655 * generic/tclCompile.c: 1656 * generic/tclCompile.h: 1657 * generic/tclInt.h: 1658 * generic/tclProc.c: 1659 * tests/compExpr-old.test: 1660 * tests/compExpr.test: 1661 * tests/expr.test: 1662 * tests/for.test: 1663 * tests/if.test: 1664 * tests/incr.test: 1665 * tests/while.test: 1666 Report compilation errors at runtime, [Patch 1033689] by dgp. 1667 16682004-09-23 Mo DeJong <mdejong@users.sourceforge.net> 1669 1670 * unix/dltest/Makefile.in (clean): Fixup make clean rule so that it 1671 does not delete all files when SHLIB_SUFFIX is set to the empty string 1672 in a static build. [Bug 1016726] 1673 16742004-09-23 Don Porter <dgp@users.sourceforge.net> 1675 1676 * generic/tclBasic.c: Corrections to the 2004-09-21 commit 1677 * generic/tclExecute.c: regarding ERR_ALREADY_LOGGED. That commit 1678 * generic/tclNamesp.c: caused Tk test send-10.7 to fail. Added 1679 * tests/namespace.test (25.7,8): tests in the Tcl test suite 1680 * tests/pkg.test (2.25,26): to catch this error without the aid 1681 of Tk in the future. 1682 1683 * generic/tclCmdAH.c (Tcl_ExprObjCmd): Simplified the TclObjCmdProc 1684 of [expr] with a call to Tcl_ConcatObj. 1685 16862004-09-22 Don Porter <dgp@users.sourceforge.net> 1687 1688 * generic/tclCmdMZ.c (TclProcessReturn): Support the -errorline 1689 * generic/tclCompile.c (TclCompileScript): option to [return]. 1690 * tests/compile.test (16.23.*): Use that capability to defer reporting 1691 * tests/misc.test (1.2): of parse errors until runtime. Updated 1692 tests to reflect change. [Bug 1032805] 1693 16942004-09-22 Miguel Sofer <msofer@users.sf.net> 1695 1696 * generic/tclExecute.c (INST_START_CMD): 1697 * tests/proc.test (7.2-3): fix for [Bug 729692] was incorrect whenever 1698 a loop exception was returned. 1699 17002004-09-22 Kevin B. Kenny <kennykb@acm.org> 1701 1702 * library/tzdata/America/Montevideo: Updated to reflect 1703 ftp://elsie.nci.nih.gov/pub/tzdata2004d.tar.gz. (Changes to 1704 Asia/Jerusalem were in the comments only.) [Routine maintenance - no 1705 bug] Spanish-language description of the change at 1706 http://www.presidencia.gub.uy/decretos/2004091502.htm 1707 17082004-09-21 Don Porter <dgp@users.sourceforge.net> 1709 1710 * generic/tclCompCmds.c: Tolerate [append] syntax errors 1711 * tests/appendComp.test (8.1): at compile time, and allow runtime to 1712 raise the error (or succeed if a redefined [append] allows). 1713 1714 * generic/tclBasic.c: Reworked management of the interp flag 1715 * generic/tclCompile.c: ERR_ALREADY_LOGGED, to reduce its exposure. 1716 * generic/tclExecute.c: Still left several referebces that are just 1717 * generic/tclNamesp.c: too nice on performace to do away with. These 1718 changes also resolve an inconsistency in the ::errorInfo values 1719 produced by [namespace eval x error foo bar] and [namespace eval x 1720 {error foo bar}]. 1721 1722 * generic/tclExecute.c (TclCompEvalObj): Simplified the 1723 TclCompEvalObj routine. Much housekeeping now reliably happens 1724 elsewhere. [Patch 1031949] 1725 17262004-09-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1727 1728 * doc/interp.n: Tighten up wording on how [interp eval] and [interp 1729 invokehidden] operate w.r.t. stack frames. [Bug 926590] 1730 17312004-09-20 Don Porter <dgp@users.sourceforge.net> 1732 1733 * tests/error.test (error-6.2,3): Added more tests to verify 1734 ::errorCode setting by/after a [catch]. 1735 17362004-09-19 Miguel Sofer <msofer@users.sf.net> 1737 1738 * generic/tclCmdAH.c: removed outdated comment [Bug 1029518]. 1739 17402004-09-18 David Gravereaux <davygrvy@pobox.com> 1741 1742 * win/tclAppInit.c: Dde package can load into a safe interp. Claim 1743 this fact for the Tcl_StaticPackage() call when the shell is built 1744 with the TCL_USE_STATIC_PACKAGES option. 1745 17462004-09-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1747 1748 * generic/tclExecute.c (TEBC-INST_LSHIFT,INST_RSHIFT): Ensure that 1749 large shifts end up shifting correctly. [Bug 868467] 1750 1751 * doc/FileSystem.3, doc/OpenFileChnl.3: More documentation fixes from 1752 Mikhail Kolesnitchenko. [Patch 1022527] 1753 * doc/*: Standardize highlighting of symbols defined in tcl.h 1754 17552004-09-17 Don Porter <dgp@users.sourceforge.net> 1756 1757 * generic/tclBasic.c (Tcl_AddObjErrorInfo, Tcl_LogCommandInfo): 1758 * generic/tclCmdAH.c ([catch], [error]): 1759 * generic/tclCmdMZ.c ([return]): 1760 * generic/tclProc.c (TclUpdateReturnInfo): 1761 * generic/tclResult.c (Tcl_SetErrorCodeVA, Tcl_SetObjErrorCode) 1762 (TclTransferResult): Refactored so that all errorCode setting flows 1763 through Tcl_SetObjErrorCode(). This greatly reduces the number of 1764 different places in the code that need to know details about an 1765 internal bitflag field of the Interp struct. Also places errorCode 1766 setting in one place for easier future mods. 1767 17682004-09-17 Kevin B.Kenny <kennykb@acm.org> 1769 1770 * generic/tclDate.c: Revised tclGetDate.y to use bison instead of 1771 * generic/tclGetDate.y: yacc to build the parser, eliminating all the 1772 * generic/tclInt.h: complicated hackery involving 'sed' 1773 * unix/Makefile.in: postprocessing. Rebuilt the parser. 1774 17752004-09-14 Kevin B. Kenny <kennykb@acm.org> 1776 1777 * generic/tclClock.c (ClockOldscanObjCmd): Silenced a compiler warning 1778 (long passed as a param where unsigend long was expected). 'Unsigned 1779 long' is wrong, but the fix is really to change the signature of 1780 TclGetDate to return a structure of its 'yy' variables and then do the 1781 remaining work inside clock.tcl. But, as I said on 2004-09-08, that's 1782 a job for another day. [Bug 1027993] 1783 17842004-09-10 Miguel Sofer <msofer@users.sf.net> 1785 1786 * doc/interp.n: 1787 * generic/tclInterp.c (TclPreventAliasLoop, AliasCreate): 1788 * tests/interp.test (17.4-6, 19.3-4): fixing problems with renaming of 1789 aliases [Bugs 707104 1026493]. Fix designed by dgp. 1790 17912004-09-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1792 1793 * generic/tclNamesp.c (NsEnsembleImplementationCmd): Add token field 1794 to internal rep of EnsembleCmdRep structure so that we can check it to 1795 see if the subcommand object is really being used with the same 1796 ensemble. [Bug 1026903] 1797 17982004-09-11 Kevin B. Kenny <kennykb@acm.org> 1799 1800 * generic/tclClock.c (TclMktimeObjCmd): Corrected a bad check for 1801 error return from 'mktime'. 1802 * generic/tclObj.c (Tcl_GetIntFromObj): Corrected a problem where 1803 demoting a wide to an int failed on a big-endian machine. [Bug 1804 1026125]. 1805 * tests/clock.test (clock-43.1): Added regression test for error 1806 return from 'mktime'. 1807 18082004-09-11 Miguel Sofer <msofer@users.sf.net> 1809 1810 * generic/tclExecute.c (INST_CONCAT1): fix for [Bug 1025834]; avoid 1811 unnecessary string copies. 1812 18132004-09-10 David Gravereaux <davyrgvy@pobox.com> 1814 1815 * tests/tcltest.test: tcltest-12.3-4 needed to have 1816 ::tcltest::loadScript set to empty in their -setup 1817 18182004-09-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1819 1820 * generic/tclObj.c (SetIntOrWideFromAny): Rewritten integral value 1821 parsing code so that values do not flip so easily between numeric 1822 representations. Thanks to KBK for this! [Bug 868489] 1823 1824 * generic/tclIO.c (Tcl_Seek): Make sure wide seeks do not fail to set 1825 ::errorCode on error. [Bug 1025359] 1826 18272004-09-10 Andreas Kupries <andreask@activestate.com> 1828 1829 * generic/tcl.h: Micro formatting fixes. 1830 * generic/tclIOGT.c: Channel version fixed, must be 3, to have 1831 wideseekProc. Thanks to David Graveraux <davygrvy@pobox.com>. 1832 18332004-09-11 Don Porter <dgp@users.sourceforge.net> 1834 1835 * generic/tclNamespace.c (TclGetNamespaceForQualName): Resolved 1836 longstanding inconsistency in the treatment of the TCL_NAMESPACE_ONLY 1837 flag revealed by testing the 2004-09-09 commits against Itcl. 1838 TCL_NAMESPACE_ONLY now acts as specified in the pre-function comment, 1839 forcing resolution in the passed in context namespace. It has been 1840 incorrectly forcing resolution in the interp's current namespace. 1841 18422004-09-10 Kevin Kenny <kennykb@acm.org> 1843 1844 * library/clock.tcl: Fixed a bug where %z always put a plus sign on 1845 the time zone in :localtime. 1846 * tests/clock.test: Added test case for the above bug. 1847 18482004-09-10 Miguel Sofer <msofer@users.sf.net> 1849 1850 * generic/tclExecute.c (INST_CONCAT1): added a peephole optimisation 1851 for concatting an empty string. This enables replacing the idiom 'K $x 1852 [set x {}]' by '$x[set x {}]' for fastest execution. 1853 18542004-09-09 David Gravereaux <davygrvy@pobox.com> 1855 1856 * win/tclWinConsole.c: Calls to WriteFile and WriteConsoleA changed to 1857 WriteConsole for simplicity. 1858 18592004-09-09 Don Porter <dgp@users.sourceforge.net> 1860 1861 * generic/tclNamesp.c (Tcl_ForgetImport): Corrected faulty 1862 1863 * tests/namespace.test: logic that relied exclusively on string 1864 matching and failed in the presence of [rename]s. [Bug 560297] Also 1865 corrected faulty prevention of [namespace import] cycles. [Bug 1017299] 1866 18672004-09-08 Don Porter <dgp@users.sourceforge.net> 1868 1869 * generic/tclBasic.c (Tcl_CreateInterp): Removed obsolete field 1870 for storing the string-based command procedure of built-in commands. 1871 We no longer have any string-based built-in commands! 1872 18732004-09-08 Kevin B. Kenny <kennykb@acm.org> 1874 1875 * compat/strftime.c (_conv): Corrected a problem where hour 0 would 1876 format as a blank format group with %k. 1877 * doc/clock.n: Corrected a buglet in the header information. [Bug 1878 1024058] 1879 * generic/tclClock.c (TclClockMktimeObjCmd): Fixed a bug where the 1880 month was scanned incorrectly in -timezone :localtime. 1881 * tests/clock.test (clock-34.*,clock-40.1, clock-41.1): Adjusted the 1882 clock-34.* test cases so that the consistency check is performed in 1883 :localtime rather than the current time zone. This change allows 1884 dealing with issues where the C library has a different idea of DST 1885 conversion than Tcl. (Real fix would be to break TclGetDate into 1886 separate parser and time converter, and do the time conversion in 1887 clock.tcl. That's for another day.) Added regression test case for the 1888 bug where month was scanned incorrectly in -timezone :localtime. [Bug 1889 1023779] Added regression test case for %k at the zero hour. 1890 18912004-09-07 David Gravereaux <davygrvy@pobox.com> 1892 1893 * win/makefile.vc: some quoting needed to be removed as it was 1894 breaking with VC7. [Bug 1023150] 1895 18962004-09-07 Kevin B. Kenny <kennykb@acm.org> 1897 1898 * doc/clock.n: Documented the default -format, and changed references 1899 to a (nonexistent) msgcat command to refer to the msgcat package. [Bug 1900 1023870] 1901 * generic/tclTimer.c: Removed a premature optimisation that attempted 1902 to store the assoc data in the client data; the optimisation caused a 1903 bug that [after] would overwrite its imports. [Bug 1016167] 1904 * library/clock.tcl (InitTZData, ClearCaches): Changed so that the 1905 in-memory time zone :UTC (and its aliases) always gets reinitialised, 1906 in case tzdata is absent. [Bug 1019537, 1023779] 1907 * library/tzdata/*: Regenerated. 1908 * tests/clock.test (clock-31.*, clock-39.1): Corrected a problem where 1909 the 'system' locale tests fail on a non-English Windows machine. [Bug 1910 1023761]. Added a test to make sure that alias time zones load 1911 correctly. [Bug 1023779]. 1912 * tests/timer.test (timer-1.1, timer-2.1): Changed to (one hopes!) be 1913 more resilient on an overloaded system, if [after 200] sleeps for 300 1914 ms or longer. 1915 * tools/tclZIC.tcl (writeLinks): Corrected a problem where alias time 1916 zone names were written incorrectly, causing them to fail to load at 1917 run time. [Bug 1023779]. 1918 * win/tclWinTime.c (Tcl_GetTime): Eliminated CPUID tests on Win64 - 1919 assuming that HAL vendors now do a better job of keeping the 1920 performance counters synchronized among CPU's. [Bug 1020445] 1921 19222004-09-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1923 1924 * doc/tclvars.n, doc/tcltest.n, doc/tclsh.1, doc/safe.n, doc/expr.n 1925 * doc/WrongNumArgs.3, doc/Utf.3, doc/TraceVar.3, doc/Thread.3 1926 * doc/TCL_MEM_DEBUG.3, doc/SubstObj.3, doc/StdChannels.3 1927 * doc/SetResult.3, doc/RegExp.3, doc/RegConfig.3, doc/RecEvalObj.3 1928 * doc/PrintDbl.3, doc/ParseCmd.3, doc/Panic.3, doc/ObjectType.3 1929 * doc/Object.3, doc/Namespace.3, doc/Interp.3, doc/IntObj.3 1930 * doc/Hash.3, doc/GetOpnFl.3, doc/GetIndex.3, doc/Eval.3 1931 * doc/Encoding.3, doc/DoubleObj.3, doc/DictObj.3, doc/CrtTimerHdlr.3 1932 * doc/CrtObjCmd.3, doc/CrtMathFnc.3, doc/CrtCommand.3, doc/CrtChannel.3 1933 * doc/ChnlStack.3, doc/ByteArrObj.3, doc/AssocData.3, doc/Alloc.3: 1934 More documentation fixes from Mikhail Kolesnitchenko. [Patch 1022527] 1935 19362004-09-03 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1937 1938 * unix/tclUnixFCmd.c: Stop NULL interp arguments from triggering a 1939 crash when an error happens. [Bug 1020538] 1940 19412004-09-02 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1942 1943 * doc/lsearch.n: Clarified meaning of -dictionary. [Bug 759545] 1944 19452004-09-02 Vince Darley <vincentdarley@users.sourceforge.net> 1946 1947 * win/makefile.vc: clock.tcl needs to be installed. 1948 19492004-09-01 Jeff Hobbs <jeffh@ActiveState.com> 1950 1951 * win/tclWinReg.c (BroadcastValue): WIN64 cast corrections 1952 1953 * win/tclWinDde.c (DdeClientWindowProc): 1954 (DdeServicesOnAck, DdeEnumWindowsCallback): WIN64 corrections 1955 1956 * win/tclWin32Dll.c (TclWinCPUID): need _asm for WIN64 (Itanium), 1957 until we have it, just return unknown. [Bug 1020445] 1958 19592004-09-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1960 1961 * doc/regsub.n, doc/RegConfig.3, doc/Environment.3: 1962 * doc/CrtChannel.3, doc/safe.n: Use correct abbreviations. 1963 19642004-08-31 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1965 1966 * doc/trace.n, doc/socket.n, doc/registry.n, doc/pid.n: 1967 * doc/namespace.n, doc/msgcat.n, doc/lsort.n, doc/lsearch.n: 1968 * doc/linsert.n, doc/info.n, doc/http.n, doc/history.n: 1969 * doc/format.n, doc/file.n, doc/exec.n, doc/dde.n, doc/clock.n: 1970 * doc/catch.n, doc/binary.n: More spelling and grammar fixes from 1971 Mikhail Kolesnitchenko. [Patch 1018486] 1972 19732004-08-31 Vince Darley <vincentdarley@users.sourceforge.net> 1974 1975 * doc/FileSystem.3: 1976 * generic/tclIOUtil.c: Clarified documentation regarding ability of a 1977 filesystem to say that it doesn't support a given operation using the 1978 EXDEV posix error code (copyFileProc, renameFileProc, etc), and 1979 updated one piece of code to ensure correct behaviour when an 1980 operation is not supported [Bug 1017072] 1981 1982 * tests/fCmd.test: fix to test suite problem [Bug 1002884] 1983 19842004-08-31 Daniel Steffen <das@users.sourceforge.net> 1985 1986 * unix/Makefile.in (install-libraries): portable sh fix. 1987 19882004-08-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1989 1990 * generic/tclCmdMZ.c (Tcl_StringObjCmd): Stop [string map] from 1991 crashing when its map and input string are the same object. 1992 19932004-08-27 Donal K. Fellows <donal.k.fellows@man.ac.uk> 1994 1995 * generic/tclNamesp.c (FindEnsemble): Factor out the code to convert a 1996 command name into an ensemble configuration and add support for 1997 ignoring [namespace import] link chains. [Bug 1017022] 1998 (NamespaceWhichCmd): Rework to use newer option parsing API. 1999 20002004-08-27 Daniel Steffen <das@users.sourceforge.net> 2001 2002 * unix/Makefile.in: added customization of default module path roots 2003 via TCL_MODULE_PATH makefile variable. 2004 * macosx/Makefile: add platform standard locations to default module 2005 path roots. [Patch 942881] 2006 2007 * tests/env.test: macosx fixes. 2008 20092004-08-25 Don Porter <dgp@users.sourceforge.net> 2010 2011 * tests/timer.test (timer-10.1): Test for Bug 1016167. 2012 * generic/tclTimer.c: Workaround for situation when a [namespace 2013 import] causes the objv[0] value to be something other than what 2014 Tcl_AfterObjCmd expects. [Bug 1016167]. 2015 20162004-08-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2017 2018 * generic/tclNamesp.c (NsEnsembleImplementationCmd): Use the ensemble 2019 command token to get the name of the ensemble for passing to the 2020 -unknown handler instead of relying on objv[0], which may contain 2021 useless info in the presence of [namespace import]. Problem found by 2022 Don Porter when investigating [Bug 1016167]. 2023 20242004-08-24 Don Porter <dgp@users.sourceforge.net> 2025 2026 * generic/tclProc.c: The routine TclProcInterpProc was a 2027 * generic/tclTestProcBodyObj.c: specific instance of the general 2028 service already provided by TclObjInvokeProc. Removed 2029 TclProcInterpProc and TclGetInterpProc from the code... 2030 2031 * generic/tclInt.decls: ...and from the internal stubs table. 2032 * generic/tclIntDecls.h 2033 * generic/tclStubInit.c 2034 20352004-08-24 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2036 2037 * doc/string.n: Added clarifying note. 2038 20392004-08-23 Don Porter <dgp@users.sourceforge.net> 2040 2041 * library/auto.tcl: Updated [tcl_findLibrary] search path to 2042 include any [<pkg>::pkgconfig get scriptdir,runtime] directory, as 2043 well as the $::auto_path. [RFE 695441] 2044 20452004-08-21 Kevin B. Kenny <kennykb@acm.org> 2046 2047 * tests/clock.test (clock-38.1): Changed TZ setting to specify CET in 2048 excruciating detail to deal with systems that lack the Posix defaults 2049 for DST changes (and to be formally correct with the change dates for 2050 CET). 2051 20522004-08-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2053 2054 * generic/tclScan.c (Tcl_ScanObjCmd, ValidateFormat): Ensure that the 2055 %ld conversion works correctly on 64-bit platforms. [Bug 1011860] 2056 20572004-08-19 Kevin Kenny <kennykb@acm.org> 2058 2059 * library/clock.tcl (format): Changed default timezone format from 2060 alphabetic to numeric to produce scannable times in more locales. 2061 * tests/clock.test (clock-37.1): Removed now-unused 'needPST' 2062 constraint and the comments that refer to it. 2063 20642004-08-18 Andreas Kupries <andreask@activestate.com> 2065 2066 * library/init.tcl: Integrated TIP #189. We source a separate file 2067 (see below), instead of inlining the contents of that file. This 2068 should beeasier to maintain, and easier to backport/install in 8.4 2069 installations. 2070 2071 Note: Usage of Tcl Modules is restricted to non-safe interps. It 2072 cannot be loaded into a safe interp. 2073 2074 * library/tm.tcl: New file, the v2 reference implementation for TIP 2075 #189, Tcl Modules. 2076 2077 * doc/tm.n: New file, documentation for Tcl Modules, based on the TIP. 2078 2079 * unix/mkLinks: Regenerated. 2080 * win/makefile.vc: Added tm.tcl to list of files to install. 2081 20822004-08-18 Kevin Kenny <kennykb@acm.org> 2083 2084 * tests/httpd (httpdRespond): Corrected an abuse of the [clock] 2085 command that caused test failures for some values of [clock clicks]. 2086 2087 * doc/clock.n 2088 * generic/tclBasic.c (Tcl_CreateInterp, Tcl_HideUnsafeCommands): 2089 * generic/tclClock.c (all): 2090 * generic/tclInt.h: 2091 * generic/tclInterp.c (CreateSlave): 2092 * library/clock.tcl: (new file) 2093 * library/init.tcl (clock): 2094 * library/msgs/*.msg:(new files) 2095 * library/tzdata/*: 2096 * library/tzdata/*/*: 2097 * library/tzdata/*/*/*: (new files) 2098 * tools/installData.tcl: (new file) 2099 * tools/loadICU.tcl: (new file) 2100 * tools/makeTestCases.tcl: (new file) 2101 * tools/tclZIC.tcl: (new file) 2102 * unix/Makefile.in: 2103 * unix/configure: (regenerated) 2104 * unix/tcl.m4: 2105 * tests/clock.test (all): 2106 * win/Makefile.in: 2107 * win/Makefile.vc: 2108 Implementation of TIPs #173 and #209. 2109 2110 The [clock] command is now a Tcl ensemble, with most of its 2111 functionality written in Tcl and callouts to C code only to access 2112 low-level functions such as localtime, mktime and tzset. 2113 2114 In addition to the functionality changes called out in the two TIPs, 2115 it is worth noting that the [clock] command in a safe slave 2116 interpreter is now an alias to the [clock] command in the master, and 2117 that [clock] is otherwise not expected to function entirely correctly 2118 in safe interps. C code that simply does Tcl_MakeSafe needs to be 2119 aware that [clock] may need special handling. (It appears unlikely 2120 that such code actually exists.) 2121 2122 One incompatibility of note is that if the time zone cannot be 2123 determined from the TZ, TCL_TZ environment variables, or from the 2124 Windows control panel, so that the C library must be used for date and 2125 time conversions, then times outside the range of time_t will fail; 2126 they used to return bad data silently. 2127 2128 Many thanks to all the many people who assisted with testing, 2129 debugging, criticism of the specification, and localisation. Deserving 2130 of particular mention are Joe English, Clif Flynt, Donal K. Fellows, 2131 Jeff Hobbs, Cameron Laird, Arjen Markus, Reinhard Max, Christopher 2132 Nelson, Steve Offutt, Donald G. Porter, Pascal Scheffers, Peter da 2133 Silva and Richard Suchenwirth-Bauersachs. 2134 2135 *** POTENTIAL INCOMPATIBILITY *** 2136 21372004-08-16 Miguel Sofer <msofer@users.sf.net> 2138 2139 * doc/SetVar.3: 2140 * generic/tclTest.c (TestseterrorcodeCmd): 2141 * generic/tclVar.c (TclPtrSetVar): 2142 * tests/result.test (result-4.*, result-5.*): [Bug 1008314] detected 2143 and fixed by dgp. 2144 21452004-08-13 Don Porter <dgp@users.sourceforge.net> 2146 2147 * library/msgcat/msgcat.tcl: Added checks to prevent [mclocale] 2148 * tests/msgcat.test: from registering filesystem paths to possibly 2149 malicious code to be evaluated by a later [mcload]. 2150 21512004-08-10 Zoran Vasiljevic <vasiljevic@users.sf.net> 2152 2153 * unix/tclUnixThrd.c (TclpThreadCreate): changed handling of the 2154 returned thread ID since broken on 64-bit systems (Cray). Thanks to 2155 Rob Ratcliff for reporting the bug. 2156 21572004-08-03 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2158 2159 * generic/tclNamesp.c (MakeCachedEnsembleCommand): Initialize the 2160 epoch field cached in the subcommand. [Bug 989298] 2161 (NsEnsembleImplementationCmd): Plug a leak (thanks to Miguel Sofer for 2162 spotting it with valgrind) and reduce the number of goto labels to 2163 make the code clearer. 2164 21652004-08-02 Don Porter <dgp@users.sourceforge.net> 2166 2167 * library/package.tcl (pkg_mkIndex): Updated [pkg_mkIndex] to make 2168 use of [glob -directory $dir -tails] and return options. 2169 2170 TIP#207 IMPLEMENTATION 2171 2172 * doc/interp.n: Added support for a -namespace option to the 2173 * generic/tclBasic.c: [interp invokehidden] command. Also added an 2174 * generic/tclInt.h: internal routine TclObjInvokeNamespace() and 2175 * generic/tclInterp.c: corrected the flag names TCL_FIND_ONLY_NS and 2176 * generic/tclNamesp.c: TCL_CREATE_NS_IF_UNKNOWN that are passed to the 2177 * generic/tclTrace.c: internal routine TclGetNamespaceForQualName(). 2178 * tests/interp.test: [Patch 981841] 2179 2180 * generic/tclLiteral.c (TclCleanupLiteralTable): Corrected 2181 * tests/compile.test (compile-12.4): flawed deletion of literal 2182 internal reps that could lead to accessing of freed memory. Thanks to 2183 Kevin Kenny for test case and fix [Bug 1001997]. 2184 21852004-07-30 Don Porter <dgp@users.sourceforge.net> 2186 2187 * tests/safe.test (safe-2.1): Disabled senseless test. [Bug 999612] 2188 2189 * library/auto.tcl (auto_reset): Removed "protected" list of commands 2190 from [auto_reset]. All entries in the auto_index can be re-loaded. 2191 * library/package.tcl: Updated comment to reflect 2004-07-28 commit. 2192 2193 * generic/tclEvent.c (Tcl_Finalize): Re-organized Tcl_Finalize so 2194 that Tcl_ExitProc's that call Tcl_Finalize recursively do not cause 2195 deadlock. [Patch 999084 fixes Tk Bug 714956] 2196 21972004-07-30 Daniel Steffen <das@users.sourceforge.net> 2198 2199 * unix/configure: 2200 * unix/tcl.m4 (SC_CONFIG_CFLAGS): Darwin: instead of setting PLAT_OBJS 2201 to explict object files in tcl.m4, refer to MAC_OSX_OBJS makefile var. 2202 * unix/Makefile.in: added MAC_OSX_OBJS variable. 2203 22042004-07-29 Don Porter <dgp@users.sourceforge.net> 2205 2206 * library/package.tcl: [::pkg::create] is now an alias. Test safe-2.1 2207 will now fail until Bug 999612 is corrected. 2208 22092004-07-28 Don Porter <dgp@users.sourceforge.net> 2210 2211 * library/package.tcl: Moved private command 2212 * library/tclIndex: [pkg_compareExtension] into ::tcl::Pkg. 2213 * tests/pkg_mkIndex.test: Also moved implementation of 2214 [::pkg::create] to [::tcl::Pkg::Create]. 2215 22162004-07-25 Pat Thoyts <patthoyts@users.sourceforge.net> 2217 2218 * tests/io.test: Make io-61.1 create file as binary to pass on Win32 2219 22202004-07-23 Miguel Sofer <msofer@users.sf.net> 2221 2222 * generic/tclVar.c: simplify tclLocalVarNameType, removing the 2223 reference to the corresponding proc. The reference is now seen as 2224 unnecessary, and it may cause leaking circular references under some 2225 circumstances (see for example [Bug 994838]). 2226 22272004-07-22 Don Porter <dgp@users.sourceforge.net> 2228 2229 * tests/eofchar.data (removed): Test io-61.1 now generates its own 2230 * tests/io.test: file of test data as needed. 2231 22322004-07-20 Jeff Hobbs <jeffh@ActiveState.com> 2233 2234 * generic/tclEvent.c: Correct threaded obj allocator to 2235 * generic/tclInt.h: fully cleanup on exit and allow for 2236 * generic/tclThreadAlloc.c: reinitialization. [Bug 736426] 2237 * unix/tclUnixThrd.c: (mistachkin, kenny) 2238 * win/tclWinThrd.c: 2239 22402004-07-21 Kevin Kenny <kennykb@acm.org> 2241 2242 * generic/tclBasic.c (DeleteInterpProc): 2243 * generic/tclLiteral.c (TclCleanupLiteralTable): 2244 * generic/tclInt.h: added a TclCleanupLiteralTable function, called 2245 from DeleteInterpProc, that frees internal representations of shared 2246 literals early when an interpreter is being deleted. This change 2247 corrects a number of memory mismanagement issues in the cases where 2248 the internal representation of one literal contains a reference to 2249 another, and avoids conditions such as resolved variable names 2250 referring to procedure and namespace contexts that no longer exist. 2251 [Bug 994838] 2252 22532004-07-20 Daniel Steffen <das@users.sourceforge.net> 2254 2255 * unix/Makefile.in: 2256 * win/Makefile.in: added 'install-private-headers' makefile target to 2257 allow optionally installing private tcl headers. [FR 922727] 2258 2259 * macosx/Makefile: use new 'install-private-headers' target to install 2260 private headers into framework. [FR 922727] 2261 2262 * unix/tclUnixFile.c (NativeMatchType): added support for readonly 2263 matching of user immutable files (where available). 2264 2265 * macosx/tclMacOSXBundle.c: dynamically acquire address for 2266 CFBundleOpenBundleResourceMap symbol, since it is only present in full 2267 CoreFoundation on Mac OS X and not in CFLite on pure Darwin. 2268 22692004-07-19 Zoran Vasiljevic <vasiljevic@users.sf.net> 2270 2271 * win/tclwinThrd.c: redefined MASTER_LOCK to call TclpMasterLock. 2272 Fixes [Bug 987967] 2273 22742004-07-17 Vince Darley <vincentdarley@users.sourceforge.net> 2275 2276 * generic/tclIOUtil.c: fix to rare 'cd' infinite loop in normalization 2277 with vfs [Bug 991420]. 2278 * tests/fileSystem.test: added test for above bug. 2279 2280 * doc/FileSystem.3: clarified documentation of posix error codes in 2281 'remove directory' FS proc - 'EEXIST' is used to signify a non-empty 2282 directory error (bug reported against tclvfs). 2283 22842004-07-16 Jeff Hobbs <jeffh@ActiveState.com> 2285 2286 * unix/Makefile.in, unix/tcl.m4: move (C|LD)FLAGS after their 2287 * unix/configure.in, unix/configure: _DEFAULT to allow for env setting 2288 to override m4 switches. Move SC_MISSING_POSIX_HEADERS up and 2289 consolidate calls to limit redundancy in configure. 2290 (CFLAGS_WARNING): Remove -Wconversion 2291 (SC_ENABLE_THREADS): Set m4 to force threaded build when built against 2292 a threaded Tcl core. 2293 22942004-07-16 Andreas Kupries <andreask@activestate.com> 2295 2296 * generic/tclIOCmd.c (Tcl_FcopyObjCmd): Corrected a typo in the 2297 generation of error messages and simplified by reusing data in a 2298 variable instead of retrieving the string again. Fixes [Bug 835289]. 2299 2300 * doc/OpenFileChnl.3: Added description of the behaviour of 2301 Tcl_ReadChars when its 'charsToRead' argument is set to -1. Fixes [Bug 2302 934511]. 2303 2304 * doc/CrtCommand.3: Added note that the arguments given to the command 2305 proc of a Tcl_CreateCommand are in utf8 since Tcl 8.1. Closing [Patch 2306 414778]. 2307 2308 * doc/ChnlStack.3: Removed the declaration that the interp argument to 2309 Tcl_(un)StackChannel can be NULL. This fixes [Bug 881220], reported by 2310 Marco Maggi <marcomaggi@users.sourceforge.net>. 2311 2312 * tests/socket.test: Accepted two new testcases by Stuart Casoff 2313 <stwo@users.sourceforge.net> checking that -server and -async don't go 2314 together [Bug 796534]. 2315 2316 * unix/tclUnixNotfy.c (NotifierThreadProc): Accepted Joe Mistachkin's 2317 patch for [Bug 990500], properly closing the notifier thread when its 2318 exits. 2319 23202004-07-15 Andreas Kupries <andreask@activestate.com> 2321 2322 * unix/tclUnixThrd.c (TclpFinalizeMutex): Accepted Joe Mistachkin's 2323 patch for [Bug 990453], closing leakage of mutexes. They were not 2324 destroyed properly upon finalization. 2325 23262004-07-15 Andreas Kupries <andreask@activestate.com> 2327 2328 * generic/tclIO.h (CHANNEL_INCLOSE): New flag. Set in 2329 * generic/tclIO.c (Tcl_UnregisterChannel): 'Tcl_Close' while the 2330 * generic/tclIO.c (Tcl_Close): close callbacks are 2331 run. Checked in 'Tcl_Close' and 'Tcl_Unregister' to prevent recursive 2332 call of 'close' in the close-callbacks. This is a possible error made 2333 by implementors of virtual filesystems based on 'tclvfs', thinking 2334 that they have to close the channel in the close handler for the 2335 filesystem. 2336 23372004-07-14 Andreas Kupries <andreask@activestate.com> 2338 2339 * generic/tclIO.c: 2340 * generic/tclIO.h: 2341 * Not reverting, but #ifdef'ing the changes from May 19, 2004 out of 2342 the core. This removes the ***POTENTIAL INCOMPATIBILITY*** for channel 2343 drivers it introduced. This has become possible due to Expect gaining 2344 a BlockModeProc and now handling blockingg and non-blocking modes 2345 correctly. Thus [SF Tcl Bug 943274] is still fixed if a recent enough 2346 version of Expect is used. 2347 2348 * doc/CrtChannel.3: Added warning about usage of a channel without a 2349 BlockModeProc. 2350 23512004-07-15 Andreas Kupries <andreask@pliers.activestate.com> 2352 2353 * generic/tclIOCmd.c (Tcl_PutsObjCmd): Added length check to the old 2354 depreceated newline syntax, to ensure that only "nonewline" is 2355 accepted. [Tcl SF Bug 985869], reported by Joe Mistachkin 2356 <mistachkin@users.sourceforge.net>. 2357 23582004-07-15 Zoran Vasiljevic <vasiljevic@users.sf.net> 2359 2360 * generic/tclEvent.c (Tcl_Finalize): stuffed memory leak incurred by 2361 re-initializing of TSD slots after the last call to 2362 TclFinalizeThreadData (done from within Tcl_FinalizeThread()). We 2363 basically just repeat the TclFinalizeThreadData() once more before 2364 tearing down TSD keys in TclFinalizeSynchronization(). There should be 2365 more elaborate mechanism in place for handling such issues, based on 2366 thread cleanup handlers registered on the OS level. Such change 2367 requires much more work and would also require TIP because some 2368 visible parts of Tcl API would have to be modified. In the meantime, 2369 this will do. 2370 2371 * generic/tclNotify.c (TclFinalizeNotifier): Added conditional 2372 notifier finalization based on the fact that an TclInitNotifier has 2373 been called for the current thread. This fixes the [Bug 770053] again. 2374 Hopefully this time w/o unwanted side-effects. 2375 23762004-07-15 Kevin Kenny <kennykb@acm.org> 2377 2378 * generic/tclLiteral.c (TclReleaseLiteral): Removed unused variable 2379 'codePtr' to silence a message from VC++. 2380 23812004-07-15 Miguel Sofer <msofer@users.sf.net> 2382 2383 * generic/tclCompile.c (TclCompileScript): 2384 * generic/tclLiteral.c (TclReleaseLiteral): fix for [Bug 467523], 2385 which resurfaced with the latest changes. The previous strategy was to 2386 have special code in TclReleaseLiteral to handle the self-references 2387 generated by empty scripts. The new approach avoids the self-reference 2388 altogether, by having empty scripts return an unshared literal. 2389 23902004-07-15 Zoran Vasiljevic <vasiljevic@users.sf.net> 2391 2392 * generic/tclEvent.c (NewThreadProc): Backout of changes to fix the 2393 [Bug 770053]. See SF bugreport for more info. 2394 23952004-07-11 Miguel Sofer <msofer@users.sf.net> 2396 2397 * generic/tclBasic.c (Tcl_EvalEx): leak fix by dgp, release 2398 objv[objectsUsed] on error. 2399 24002004-07-11 Miguel Sofer <msofer@users.sf.net> 2401 2402 * generic/tclParse.c (Tcl_SubstObj): leak fix by dgp, release result 2403 on error. 2404 24052004-07-11 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2406 2407 * generic/tclNamesp.c (BuildEnsembleConfig): Don't forget to clean out 2408 references when deleting the hash table. 2409 * generic/tclDictObj.c (Tcl_DictObjRemoveKeyList): Oops, forgot to 2410 delete value object when removing the hash entry. [Bug 989093 in part] 2411 24122004-07-11 Miguel Sofer <msofer@users.sf.net> 2413 2414 * generic/tclExecute.c (TEBC): fixed leak of expandNestList objs when 2415 there is an error while an expansion is in progress (code added at 2416 checkForCatch). 2417 24182004-07-11 Vince Darley <vincentdarley@users.sourceforge.net> 2419 2420 * generic/tclIOUtil.c: fix to 'cd' bug when vfs is active [tclvfs Bug 2421 986944] - this bug recently introduced by some threading fixes. Need 2422 to work out how to add tests for this. 2423 24242004-07-10 Kevin Kenny <kennykb@acm.org> 2425 2426 * tests/clock.test (clock-2.11): Changed the test so that it isn't an 2427 infinite loop when run under valgrind on a slow virtual machine. 2428 Thanks to Miguel Sofer for the bug report. Also put in code to restore 2429 env(LC_TIME) after tests complete, silencing a warning from 'make 2430 TESTFLAGS="-debug 1" test'. 2431 24322004-07-08 Miguel Sofer <msofer@users.sf.net> 2433 2434 * generic/tclBasic.c (DeleteInterpProc): reverted the modification of 2435 3 days ago, as the leak of [Bug 983660] is now handled by the change 2436 in TclCleanupByteCode. 2437 * generic/tclCompile.c (TclCleanupByteCode): let each bytecode remove 2438 its references to literals at interp deletion, without updating the 2439 dying literal table. 2440 * generic/tclLiteral.c (TclDeleteLiteralTable): with the above change 2441 to TclCleanupByteCode, this function now removes a single reference to 2442 the literal object and cleans up its own structures. 2443 24442004-07-08 Kevin Kenny <kennykb@acm.org> 2445 2446 * win/tclWinInit.c (AppendEnvironment): Silenced a compilation warning 2447 about a type mismatch. 2448 24492004-07-07 Miguel Sofer <msofer@users.sf.net> 2450 2451 * generic/tclCompile.c (TclCompileScript): fix for [Bug 458361]. 2452 Single-word scripts are compiled with an unshared cmdName to avoid 2453 shimmering between bytecode and cmdName reps. 2454 24552004-07-07 Don Porter <dgp@users.sourceforge.net> 2456 2457 * generic/tclCmdMZ.c (TclMergeReturnOptions): Simplified logic and 2458 removed potential memory leak. [Bug 986257]. 2459 24602004-07-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2461 2462 * tools/man2help2.tcl (setTabs, IPmacro): Added support for the more 2463 advanced *roff macros used in Tk's doc/bind.n 2464 2465 * generic/tclObj.c (TclInitObjSubsystem): Declare all current object 2466 types. 2467 24682004-07-06 Don Porter <dgp@users.sourceforge.net> 2469 2470 * tests/cmdMZ.test (cmdMZ-return-2.17): Added a test that a word 2471 containing backslash-quoted value is treated correctly. 2472 2473 * generic/tclCompile.c (TclWordKnownAtCompileTime): [Bug 986196] 2474 Corrected flaw above and the flaw that caused TCL_TOKEN_SIMPLE_WORDs 2475 to have their original word value copied ( "{a b}" ) rather than the 2476 actual value ( "a b" ). Thanks to Kevin Kenny for report and tests. 2477 24782004-07-06 Kevin B. Kenny <kennykb@acm.org> 2479 2480 * tests/cmdMZ.test (cmdMZ-return-2.15,cmdMZ-return-2.16): Added a test 2481 that a return code containing spaces is correctly returned. 2482 24832004-07-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2484 2485 * tools/man2html2.tcl (IPmacro, setTabs): Added support for the more 2486 advanced *roff macros used in Tk's doc/bind.n 2487 24882004-07-05 Miguel Sofer <msofer@users.sf.net> 2489 2490 * generic/tclBasic.c (DeleteInterpProc): fix for [Bug 983660], found 2491 by pspjuth. Tear down the global namespace before freeing the interp 2492 handle, to allow the bytecodes to free their non-shared literals. 2493 * generic/tclLiteral.c (TclReleaseLiteral): moved special code for 2494 self-ref so that it is also used for non-shared literals. Possible bug 2495 found by inspection. 2496 24972004-07-03 Miguel Sofer <msofer@users.sf.net> 2498 2499 * generic/tclExecute.c (ExprRoundFunc): 2500 * tests/expr-old.test (39.1): added support for wide integers to 2501 round(); [Bug 908375], reported by Hemang Lavana. 2502 25032004-07-03 Miguel Sofer <msofer@users.sf.net> 2504 2505 * generic/tclCompile.h: 2506 * generic/tclInt.decls: 2507 * generic/tclIntDecls.h: 2508 * generic/tclStubInit.c: Moved declaration of TclCompEvalObj() from 2509 tclCompile.h to the internal stubs table, for compiler 2510 experimentation. 2511 25122004-07-02 Jeff Hobbs <jeffh@ActiveState.com> 2513 2514 * generic/regcomp.c (stid): correct minor pointer size error 2515 2516 * generic/tclPipe.c (TclCreatePipeline): applied TIP #202 patch that 2517 * doc/exec.n, tests/exec.test: adds 2>@1 as a special case 2518 redirection of stderr to the result output. 2519 25202004-07-02 Kevin B. Kenny <kennykb@acm.org> 2521 2522 * tests/io.test: Changed several tests to run the event loop rather 2523 than just calling [update] periodically, avoiding intermittent 2524 failures (usually in io-29.32) that stemmed from unreaped processes on 2525 Windows. 2526 * tests/winPipe.test (winpipe-1.11): Fixed a bug that caused test to 2527 fail if the path name of the working directory contained whitespace 2528 [Bug 678430] 2529 25302004-07-01 Vince Darley <vincentdarley@users.sourceforge.net> 2531 2532 * tests/fileSystem.test: Added test for [Bug 970529] 2533 25342004-07-01 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2535 2536 * win/README.binary, win/README: Updated references to Tcl and Tk 8.4 2537 to point to 8.5 instead. Thanks to Theo Verelst for spotting this. 2538 * generic/tcl.h: Added note to help prevent those changes from getting 2539 missed in the future. 2540 2541 * doc/Namespace.3, doc/load.n, doc/Limit.3: Typo fixes and remove 2542 duplicate documentation. [Bug 983146] 2543 25442004-06-30 Don Porter <dgp@users.sourceforge.net> 2545 2546 * tests/fileSystem.test: Minor correction to new fileSystem-9.X tests 2547 so that they clean up temporary directories correctly. 2548 25492004-06-30 Vince Darley <vincentdarley@users.sourceforge.net> 2550 2551 * doc/filename.n: clarified behaviour concerning trailing slashes in 2552 filenames [Bug 971976] 2553 2554 * win/tclWinFile.c: 2555 * tests/fileSystem.test: fix and tests for [Bug 979879] 2556 25572004-06-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2558 2559 TIP#188 IMPLEMENTATION 2560 2561 * doc/string.n, tests/string.test: Add 'wideinteger' to things 2562 * generic/tclCmdMZ.c (Tcl_StringObjCmd): that can be tested for with 2563 the [string is] subcommand. [Patch 940915, by Kevin Kenny] 2564 25652004-06-29 Don Porter <dgp@users.sourceforge.net> 2566 2567 * win/tclWinInit.c: Corrected reference counting flaw in recent 2568 changes. Thanks to Pat Thoyts. [Bug 981893]. 2569 25702004-06-29 Vince Darley <vincentdarley@users.sourceforge.net> 2571 2572 * win/tclWin32Dll.c: fix to compilation with VC++ 5.2 2573 25742004-06-29 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2575 2576 * library/safe.tcl: Make sure that the temporary variable is local to 2577 the namespace and not inadvertently global. [Bug 981733] 2578 25792004-06-24 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2580 2581 * tests/unixNotfy.test: Modified constraints so that testing with a 2582 threaded tclsh (not tcltest) will not hang. 2583 25842004-06-23 Don Porter <dgp@users.sourceforge.net> 2585 2586 * generic/tclThreadStorage.c: Corrected type casting errors that led 2587 to calculation of a negative index value, thus accesses outside the 2588 threadStorageCache array, thus memory corruption. Crash observed on 2589 Mac OS X platform. 2590 25912004-06-23 Joe Mistachkin <joe@mistachkin.com> 2592 2593 * generic/tclThread.c: Implements platform independent thread storage 2594 * generic/tclThreadStorage.c: mechanism and fixes associated bugs on 2595 platforms where there is limited thread local storage space 2596 (Win98/WinNT4). [Patch 976496] 2597 2598 * generic/tclInt.decls: 2599 * generic/tclIntDecls.h: Added thread storage functions to the 2600 * generic/tclStubInit.c: internal stubs table. 2601 2602 * unix/Makefile.in: 2603 * unix/configure: 2604 * unix/tcl.m4: 2605 * win/makefile.vc: 2606 * win/rules.vc: 2607 * win/Makefile.in: Modified the unix, VC++, and Cygwin build systems 2608 * win/configure: to include the new "tclThreadStorage.c" and the new 2609 * win/tcl.m4: USE_THREAD_STORAGE define. 2610 26112004-06-23 Pat Thoyts <patthoyts@users.sourceforge.net> 2612 2613 * tests/io.test: Added -force to 18.1 and 18.2. This was failing on 2614 WinXP. 2615 2616 * tests/winFCmd.test: Added a cleanup to winFCmd-16.11 to avoid a 2617 failure in 16.12. 2618 2619 * tests/eofchar.data: Added -kb option to ensure a binary checkout to 2620 win32 systems. This fixes a failure in io-61.1 2621 2622 * win/makefile.vc: fix for [Bug 977369] about launching tclsh to 2623 generate a tclConfig.sh with the nmake build system 2624 26252004-06-23 Kevin B. Kenny <kennykb@acm.org> 2626 2627 * tests/winDde.test (createChildProcess): Added a 200-ms delay (with 2628 the event loop live) when shutting down the test DDE server process. 2629 With the delay in place, nuisance failures of tests winDde-4.2, -6.5, 2630 and -6.6 appear to be much less frequent. [Bug 957449] 2631 26322004-06-23 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2633 2634 * tests/*.test: Standardize use of platform constraints. 2635 2636 * unix/tclUnixInit.c (GetStackSize, TclpCheckStackSpace): 2637 * unix/tclUnixThrd.c (TclpThreadGetStackSize): Added code to check 2638 whether the C stack is about to be exceeded, from [Patch 746378] by 2639 Joe Mistachkin but with substantial revisions. 2640 26412004-06-22 Kevin Kenny <kennykb@acm.org> 2642 2643 * generic/tclEvent.c (NewThreadProc): Fixed broken build on Windows 2644 caused by missing TCL_THREAD_CREATE_RETURN. 2645 2646 * tests/stack.test (stack-3.1): Corrected nuisance error in threaded 2647 builds. 2648 26492004-06-22 Zoran Vasiljevic <vasiljevic@users.sf.net> 2650 2651 * generic/tclEvent.c: 2652 * generic/tclInt.h: 2653 * unix/tclUnixNotfy.c: 2654 * unix/tclUnixThrd.c: 2655 * win/tclWinThrd.c: [Bug 770053]. See bug report for more information 2656 about what it does. 2657 2658 * tests/unixNotfy.test: rewritten to use tcltest::threadReap to 2659 gracefully wait for the test thread to exit. Otherwise we got a race 2660 condition with main thread exiting before the test thread. This 2661 exposed the long-standing Tcl lib issue with resource 2662 garbage-collection on application exit. 2663 26642004-06-21 Mo DeJong <mdejong@users.sourceforge.net> 2665 2666 * win/tclWin32Dll.c (DllMain, _except_dllmain_detach_handler) 2667 (TclpCheckStackSpace, _except_checkstackspace_handler) 2668 (TclWinCPUID, _except_TclWinCPUID_detach_handler): 2669 * win/tclWinChan.c (Tcl_MakeFileChannel) 2670 (_except_makefilechannel_handler): 2671 * win/tclWinFCmd.c (DoRenameFile, _except_dorenamefile_handler) 2672 (DoCopyFile, _except_docopyfile_handler): 2673 Rework pushing of exception handler function pointer so that compiling 2674 with gcc -O3 works. Remove empty function call to avoid compiler 2675 warning. Mark the DllMain function as noinline to avoid compiler error 2676 from duplicated asm labels in generated code. 2677 26782004-06-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2679 2680 * generic/tclThreadAlloc.c (Ptr2Block): Rewrote so as to maximize the 2681 chance of detecting and reporting a memory inconsistency without 2682 relying on things being consistent. [Bug 975895] 2683 26842004-06-18 Don Porter <dgp@users.sourceforge.net> 2685 2686 * tests/load.test: Relaxed strictness of error message matching 2687 for test load-2.3 so that it will pass on Mac OSX. 2688 2689 * generic/tclEncoding.c: Static TclFindEncodings -> FindEncodings. 2690 * generic/tclInt.h: Updated TclpFindExecutable() so that failed 2691 * generic/tclUtil.c: attempts to find the executable are saved 2692 * unix/tclUnixFile.c: just as successful finds are. [Patch 966053] 2693 * unix/tclUnixTest.c: 2694 26952004-06-18 Kevin B. Kenny <kennykb@acm.org> 2696 2697 * tests/winFCmd.test (winFCmd-16.12): Changed test to compute the 2698 target directory, so as not to fail if the user's HOME isn't the root. 2699 27002004-06-19 Daniel Steffen <das@users.sourceforge.net> 2701 2702 * unix/tcl.m4: autoconf 2.5 fixes in Darwin section. 2703 * unix/configure: autoconf-2.57 2704 27052004-06-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2706 2707 * unix/tclUnixInit.c (localeTable): Added some more locale to encoding 2708 mapping info from Jim Huang <jserv@kaffe.org> 2709 2710 * generic/tclInt.h (PendingObjData,TclFreeObjMacro,etc): 2711 * generic/tclObj.c (TclFreeObj): Added scheme for making TclFreeObj() 2712 avoid blowing up the C stack when freeing up very large object trees. 2713 [Bug 886231] 2714 2715 * win/tclWinInit.c (SetDefaultLibraryDir): Fix logic, simplify and add 2716 comments. 2717 27182004-06-17 Don Porter <dgp@users.sourceforge.net> 2719 2720 * generic/tclObj.c: Added missing space in panic message. 2721 2722 * win/tclWinInit.c: Inform [tclInit] about the default library 2723 directory via the ::tclDefaultLibrary variable. This should correct a 2724 problem with my 2004-06-11 commit. Better solutions still in the 2725 works. Thanks to Joe Mistachkin for pointing out the breakage. 2726 27272004-06-16 Don Porter <dgp@users.sourceforge.net> 2728 2729 * doc/library.n: Moved variables ::auto_oldpath and 2730 * library/auto.tcl: ::unknown_pending into ::tcl namespace. 2731 * library/init.tcl: [Bugs 808319, 948794] 2732 27332004-06-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2734 2735 * doc/binary.n: Added some notes to the documentation of the 'a' 2736 format to address the point raised in [RFE 768852]. 2737 27382004-06-15 Jeff Hobbs <jeffh@ActiveState.com> 2739 2740 * unix/tclConfig.sh.in (TCL_EXTRA_CFLAGS): set to @CFLAGS@, which is 2741 the configure-time CFLAGS. Addendum to m4 change on 2004-05-26. 2742 27432004-06-14 Kevin Kenny <kennykb@acm.org> 2744 2745 * win/Makefile.in: Corrected compilation flags for tclPkgConfig.c so 2746 that it doesn't require Stubs. 2747 * generic/tclBasic.c (Tcl_CreateInterp): Removed comment stating that 2748 TclInitEmbeddedConfigurationInformation needs Stubs; with the change 2749 above, the comment is now erroneous. 2750 27512004-06-11 Don Porter <dgp@users.sourceforge.net> 2752 2753 * doc/Encoding.3: Removed bogus claims about tcl_libPath. 2754 2755 * generic/tclInterp.c (Tcl_Init): Stopped setting the 2756 tcl_libPath variable. [tclInit] can get all its directories without it. 2757 2758 * tests/unixInit.test: Modified test code that made use of 2759 tcl_libPath variable. 2760 2761 * unix/tclUnixInit.c: Stopped setting the tclDefaultLibrary variable, 2762 execept on the Mac OS X platform with HAVE_CFBUNDLE. In that 2763 configuration we should seek some way to make use of the TIP 59 2764 facilities and get rid of that usage of tclDefaultLibrary as well. 2765 2766 * generic/tclInterp.c: Updated [tclInit] to make $env(TCL_LIBRARY) an 2767 absolute path, and to include the scriptdir,runtime configuration value 2768 on the search path for init.tcl. 2769 2770 * unix/tclUnixInit.c: The routines Tcl_Init() and TclSourceRCFile() 2771 * win/tclWinInit.c: had identical implementations for both win and 2772 * generic/tclInterp.c: unix. Moved to a single generic implementation. 2773 * generic/tclMain.c: 2774 * library/init.tcl: 2775 * generic/tclInitScript.h (removed): 2776 * unix/Makefile.in: 2777 * win/tcl.dsp: 2778 2779 * unix/configure.in: Updated TCL_PACKAGE_PATH value to handle 2780 * win/configure.in: --libdir configuration. 2781 2782 * unix/configure.in: autoconf-2.57 2783 * win/configure.in: 2784 2785 * generic/tclBasic.c (Tcl_CreateInterp): Moved call to 2786 TclInitEmbeddedConfigurationInformation() earlier in 2787 Tcl_CreateInterp() so that other parts of interp creation and 2788 initialization may access and use the config values. 2789 27902004-06-11 Kevin Kenny <kennykb@acm.org> 2791 2792 * win/tclAppInit.c: Restored the 'setargv' procedure when compiling 2793 with mingw. Apparently, the command line parsing in mingw doesn't work 2794 as well as that in vc++, and the result was (1) that winPipe-8.19 2795 failed, and (2) that 'make test' would work at all only with 2796 TESTFLAGS='-singleproc 1'. [Bug 967195] 2797 27982004-06-10 Zoran Vasiljevic <vasiljevic@users.sf.net> 2799 2800 * generic/tclIOUtil.c: removed forceful setting of the private cached 2801 current working directory rep from within the Tcl_FSChdir(). We 2802 delegate this task to the Tcl_FSGetCwd() which does this task anyway. 2803 The relevant code is still present but disabled temporarily until the 2804 change proves correct. The Tcl test suite passes all test with the 2805 given change so I suppose it is good enough. 2806 28072004-06-10 Don Porter <dgp@users.sourceforge.net> 2808 2809 * unix/tclUnixInit.c (TclpInitLibraryPath): Disabled addition of 2810 * win/tclWinInit.c (TclpInitLibraryPath): relative-to-executable 2811 directories to the library search path. A first step in reform of 2812 Tcl's startup process. 2813 2814 ***POTENTIAL INCOMPATIBILITY*** 2815 Attempts to directly run ./tclsh or ./tcltest out of a build directory 2816 will either fail, or will make use of an installed script library in 2817 preference to the one in the source tree. Use `make shell` or `make 2818 runtest` instead. 2819 2820 * tests/unixInit.test: Modified tests to suit above changes. 2821 2822 * generic/tclPathObj.c: Corrected [file tail] results when operating 2823 on a path produced by TclNewFSPathObj(). [Bug 970529] 2824 28252004-06-09 Zoran Vasiljevic <vasiljevic@users.sf.net> 2826 2827 * generic/tclIOUtil.c: partially corrected [Bug 932314]. Also 2828 corrected return values of Tcl_FSChdir() to reflect those of the 2829 underlying platform-specific call. Originally, return codes were mixed 2830 with those of Tcl. 2831 28322004-06-08 Miguel Sofer <msofer@users.sf.net> 2833 2834 * generic/tclCompile.c: 2835 * generic/tclExecute.c: handle warning [Bug 969066] 2836 28372004-06-08 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2838 2839 * generic/tclHash.c (RebuildTable): Move declaration of variable so it 2840 is only declared when it is used. [Bug 969068] 2841 28422004-06-07 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2843 2844 * doc/lsearch.n: Added correct option to example. [Bug 968219] 2845 28462004-06-05 Kevin B. Kenny <kennykb@acm.org> 2847 2848 * generic/tcl.h: Corrected Tcl_WideInt declarations so that the mingw 2849 build works again. 2850 * generic/tclDecls.h: Changes to the tests for clock 2851 * generic/tclInt.decls: frequency in Tcl_WinTime so 2852 * generic/tclIntDecls.h: that any clock frequency is 2853 * generic/tclIntPlatDecls.h: accepted provided that all 2854 * generic/tclPlatDecls.h: CPU's in the system share a 2855 * generic/tclStubInit.c: common chip, and hence, 2856 * tests/platform.test (platform-1.3): presumably, a common clock. 2857 * win/tclWin32Dll.c (TclWinCPUID): This change necessitated a 2858 * win/tclWinTest.c (TestwincpuidCmd) small burst of assembly code 2859 * win/tclWinTime.c (Tcl_GetTime): to read CPU ID information, 2860 which was added as TclWinCPUID in the internal Stubs. To test this 2861 code in the common case of a single-processor machine, a 2862 'testwincpuid' command was added to tclWinTest.c, and a test case in 2863 platform.test. Thanks to Jeff Godfrey and Richard Suchenwirth for 2864 reporting this bug. [Bug 976722] 2865 28662004-06-04 Don Porter <dgp@users.sourceforge.net> 2867 2868 * generic/tcl.h: Restored #include <stdio.h> to tcl.h, 2869 rejecting the "fix" for "Bug" 945570. Tcl_FSSeek() needs the values of 2870 SEEK_SET, etc. and too many extensions rely on tcl.h providing stdio.h 2871 for them. 2872 28732004-06-02 Jeff Hobbs <jeffh@ActiveState.com> 2874 2875 * win/tclWinFile.c (TclpFindExecutable): when using GetModuleFileNameA 2876 (Win9x), convert from CP_ACP to WCHAR then convert back to utf8. 2877 Adjunct to 2004-04-07 fix. 2878 28792004-06-02 David Gravereaux <davygrvy@pobox.com> 2880 2881 * tests/winPipe.test (winpipe-6.1): blocking set to 1 before closing 2882 to ensure we get an exitcode. The windows pipe channel driver doesn't 2883 differentiate between a blocking and non-blocking close just yet, but 2884 will soon. Part of [Bug 947693] 2885 28862004-06-02 Vince Darley <vincentdarley@users.sourceforge.net> 2887 2888 * doc/file.n: fix to documentation of 'file volumes' (Bug 962435) 2889 28902004-06-01 David Gravereaux <davygrvy@pobox.com> 2891 2892 * win/makefile.vc: check for either MSDEVDIR or MSVCDIR being in the 2893 environment, for VC7. [Bug 942214] 2894 2895 * generic/tclIO.c (Tcl_SetChannelOption): -buffersize wasn't 2896 understanding hexidecimal notation nor was reporting number conversion 2897 errors. The behavior to silently ignore settings outside the 2898 acceptable range of Tcl_SetChannelBufferSize (<10 or >1M) is 2899 unchanged. This silent ignoring behavior might be up for review soon. 2900 29012004-05-30 David Gravereaux <davygrvy@pobox.com> 2902 2903 * win/tclWinPipe.c: 2904 * win/tclWinPort.h: Reworked the win implementation of Tcl_WaitPid to 2905 support exitcodes in the 'signed short' range. Even though this range 2906 is non-portable, it is valid on windows. Detection of exception codes 2907 are now more accurate. Previously, an application that exited with 2908 ExitProcess((DWORD)-1); was improperly reported as exiting with 2909 SIGABRT. 2910 29112004-05-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2912 2913 * generic/tclInterp.c: Added comments describing the purposes of each 2914 function in the limit implementation and rewrote the names of some 2915 non-public functions for greater clarity of purpose. 2916 * doc/interp.n: Added note about what happens when a limited 2917 interpreter creates a slave interpreter. 2918 * doc/Limit.3: Added manual page for the resource limit subsystem's C 2919 API. [Bug 953903] 2920 29212004-05-29 Joe English <jenglish@users.sourceforge.net> 2922 2923 * doc/global.n, doc/interp.n, doc/lrange.n: Fix minor markup errors. 2924 29252004-05-28 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2926 2927 * doc/*.n: Added examples to many (too many to list) more man pages. 2928 29292004-05-25 Miguel Sofer <msofer@users.sf.net> 2930 2931 * generic/tclExecute.c: 2932 * generic/tclVar.c: using (ptrdiff_t) instead of (int) casting to 2933 correct compiler warnings [Bug 961657], reported by Bob Techentin. 2934 29352004-05-27 Kevin B. Kenny <kennykb@acm.org> 2936 2937 * tests/clock.test: Added a single test for the presence of %G in 2938 [clock format], and conditioned out the clock-10.x series if they're 2939 all going to fail because of a broken strftime() call. [Bug 961714] 2940 29412004-05-27 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2942 2943 * generic/tclHash.c (CompareStringKeys): Added #ifdef to allow people 2944 to instruct this function to use strcmp(). [FRQ 951168] 2945 2946 * generic/tclVar.c: Moved declarations into #if guards so they only 2947 happen when required. 2948 * unix/tclUnixPort.h: Guard declaration of strtod() so it is only 2949 enabled when we don't have a declaration in stdlib.h 2950 * unix/tclUnixThrd.c (Tcl_CreateThread): Added declarations 2951 * unix/tclUnixTest.c (AlarmHandler): and casts so that 2952 * unix/tclUnixChan.c (TtyModemStatusStr): all functions are 2953 * generic/tclScan.c (Tcl_ScanObjCmd): defined before use 2954 * generic/tclDictObj.c (InvalidateDictChain): and no cross-type 2955 * generic/tclCmdMZ.c (Tcl_StringObjCmd): uses are performed. 2956 2957 The overall effect is to make building with gcc with the additional 2958 flags -Wstrict-prototypes -Wmissing-prototypes produce no increase in 2959 the total number of warnings (except for main(), which is undeclared 2960 for traditional reasons.) 2961 29622004-05-26 Jeff Hobbs <jeffh@ActiveState.com> 2963 2964 * unix/Makefile.in: Rework configure ordering to TCL_LINK_LIBS, 2965 * unix/tcl.m4: ENABLE_SHARED, CONFIG_CFLAGS, & ENABLE_SYMBOLS 2966 * unix/configure: before TCL_EARLY_FLAGS and TCL_64BIT_FLAGS 2967 * unix/configure.in: (about 400 lines earlier) in configure.in. This 2968 forces CFLAGS configuration to be done before many tests, which is 2969 needed for 64-bit builds and may affect other builds. Also make 2970 CONFIG_CFLAGS append to CFLAGS directly instead of using EXTRA_CFLAGS, 2971 and have LDFLAGS append to any existing value. [Bug 874058] 2972 * unix/dltest/Makefile.in: change EXTRA_CFLAGS to DEFS 2973 29742004-05-26 Don Porter <dgp@users.sourceforge.net> 2975 2976 * library/tcltest/tcltest.tcl: Correction to debug prints and testing 2977 * library/tcltest/pkgIndex.tcl: if TCLTEST_OPTIONS value. Corrected 2978 * tests/tcltest.test: double increment of numTestFiles in 2979 -singleproc 1 configurations. Updated tcltest-19.1 to tcltest 2.1 2980 behavior. Corrected tcltest-25.3 to not falsely report a failure in 2981 tcltest.test. Bumped to tcltest 2.2.6. [Bugs 960560, 960926] 2982 29832004-05-25 Jeff Hobbs <jeffh@ActiveState.com> 2984 2985 * doc/http.n (http::config): add -urlencoding option (default utf-8) 2986 * library/http/http.tcl: that specifies encoding conversion of 2987 * library/http/pkgIndex.tcl: args for http::formatQuery. Previously 2988 * tests/http.test: undefined, RFC 2718 says it should be 2989 utf-8. 'http::config -urlencoding {}' returns previous behavior, which 2990 will throw errors processing non-latin-1 chars. Bumped http package to 2991 2.5.0. 2992 29932004-05-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> 2994 2995 * generic/tclInterp.c (DeleteScriptLimitCallback): Move all deletion 2996 of script callback hash table entries to happen here so the entries 2997 are correctly removed at the right time. [Bug 960410] 2998 29992004-05-25 Miguel Sofer <msofer@users.sf.net> 3000 3001 * docs/global.n: added details for qualified variable names [Bug 3002 959831] 3003 30042004-05-25 Miguel Sofer <msofer@users.sf.net> 3005 3006 * generic/tclNamesp.c (Tcl_FindNamespaceVar): 3007 * tests/namespace.test (namespace-17.10-12): reverted commit of 3008 2004-05-23 and removed the tests, as it interferes with the varname 3009 resolver and there are apps that break (AlphaTk). A fix will have to 3010 wait for Tcl9. 3011 3012 * generic/tclVar.c: Caching of namespace variables disabled: no simple 3013 way was found to avoid interfering with the resolver's idea of 3014 variable existence. A cached varName may keep a variable's name in the 3015 namespace's hash table, which is the resolver's criterion for 3016 existence. 3017 3018 * tests/namespace.c (namespace-17.10): testing for interference 3019 between varname caching and name resolver. 3020 30212004-05-25 Kevin Kenny <kennykb@acm.org> 3022 3023 * tests/winFCmd.test: Correct test for the presence of a CD-ROM so 3024 that it doesn't misdetect some other sort of filesystem with a 3025 write-protected root as being a CD-ROM drive. [Bug 918267] 3026 30272004-05-25 Don Porter <dgp@users.sourceforge.net> 3028 3029 * tests/winPipe.test: Protect against path being set 3030 * tests/unixInit.test: Unset path when done. 3031 * tests/unload.test (unload-3.1): Verify [pkgb_sub] does not exist. 3032 Delete interps when done. 3033 * tests/stringComp.test: stop re-use of string.test test names 3034 * tests/regexpComp.test: stop re-use of regexp.test test names 3035 * tests/namespace.test (namespace-46.3): Verify [p] does not exist. 3036 * tests/http.test: Clear away the custom [bgerror] when done. 3037 * tests/io.test: Take care to use namespace variables. 3038 * tests/autoMkindex.test (autoMkindex-5.2): Use variable "result" 3039 that gets cleaned up. 3040 * tests/exec.test: Clean up the "path" array. 3041 * tests/interp.test (interp-9.3): Initialize res, so prior values 3042 cannot make the test fail. 3043 * tests/execute.test (execute-8.1): Updated to remove the trace set 3044 on ::errorInfo. When left in place, that trace can cause later tests 3045 to fail. 3046 30472004-05-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3048 3049 * generic/tclBasic.c: Removed references to Tcl_RenameCommand from 3050 * generic/tcl.h: comments. [Bug 848440, second part] 3051 3052 * tests/fCmd.test: Rewrote tests that failed consistently on NFS so 3053 they either succeed (through slightly more liberal matching of the 3054 results) or are constrained to not run. [Bug 931312] 3055 3056 * doc/bgerror.n: Use idiomatic open flags for working with log 3057 files. [Bug 959602] 3058 30592004-05-24 Jeff Hobbs <jeffh@ActiveState.com> 3060 3061 * generic/tclExecute.c (VerifyExprObjType): use GET_WIDE_OR_INT to 3062 properly have tclIntType used for smaller values. This corrects [TclX 3063 Bug 896727] and any other 3rd party extension that created math 3064 functions but was not yet WIDE_INT aware in them. 3065 30662004-05-24 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3067 3068 * generic/tclInterp.c (TclInitLimitSupport): Made limits work on 3069 platforms where sizeof(void*)!=sizeof(int). [Bug 959193] 3070 30712004-05-24 Miguel Sofer <msofer@users.sf.net> 3072 3073 * doc/set.n: accurate description of name resolution process, 3074 referring to namespace.n for details [Bug 959180] 3075 30762004-05-23 Miguel Sofer <msofer@users.sf.net> 3077 3078 * generic/tclNamesp.c (Tcl_FindNamespaceVar): [Bug 959052] fixed, 3079 insuring that no "zombie" variables are found. 3080 * generic/tclVar.c (TclLookupSimpleVar): comments re [Bug 736729] 3081 (predecessor of [Bug 959052]) removed. 3082 * tests/namespace.test: added tests 17.10-12 3083 3084 The patch modifies non-documented behaviour, and passes every test in 3085 the testsuite. However, scripts relying on the old behaviour may 3086 break. 3087 Note that the only behaviour change concerns the creative writing of 3088 unset variables. More precisely, which variable will be created when 3089 neither a namespace variable nor a global variable by that name 3090 exists, as defined by [info vars]. The new behaviour is that the 3091 namespace resolution process deems a variable to exist exactly when 3092 [info vars] finds it - ie, either it has value, or else it was "fixed" 3093 by a call to [variable]. 3094 Note: this patch was removed on 2002-05-25. 3095 30962004-05-22 Miguel Sofer <msofer@users.sf.net> 3097 3098 * generic/tclVar.c (TclObjLookupVar, TclObjUnsetVar2): fix for new (in 3099 tcl8.4) exteriorisations of [Bug 736729] due to the use of 3100 tclNsVarNameType obj types. Reenabling the use of this objType ("VAR 3101 ref absolute" benchmark down to 66 ms, from 230). Added comments in 3102 TclLookupSimpleVar explaining my current understanding of [Bug 3103 736729]. 3104 31052004-05-22 Miguel Sofer <msofer@users.sf.net> 3106 3107 * generic/tclVar.c: fix for [Bug 735335]. The use of tclNsVarNameType 3108 objs is still disabled, pending resolution of [Bug 736729]. 3109 31102004-05-21 Miguel Sofer <msofer@users.sf.net> 3111 3112 * tests/namespace.test (namespace-41.3): removed the {knownBug} 3113 constraint: [Bug 231259] is closed since nov 2001, and the fix of [Bug 3114 729692] (INST_START_CMD) makes the test succeed. 3115 31162004-05-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3117 3118 * generic/tclExecute.c (TclExecuteByteCode): Move a few declarations a 3119 short distance so pre-C99 compilers can cope. Also fix so 3120 TCL_COMPILE_DEBUG path compiles... 3121 31222004-05-21 Miguel Sofer <msofer@users.sf.net> 3123 3124 * generic/tclExecute.c (TclExecuteByteCode): reorganised TEBC 3125 automatic variables, defining them in tight blocks instead of at the 3126 function level. This has three purposes: 3127 - it simplifies the analysis of individual instructions 3128 - it is preliminary work to the non-recursive engine 3129 - it allows a better register allocation by the optimiser; under 3130 gcc3.3, this results in up to 10% runtime in some tests 3131 31322004-05-20 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3133 3134 * generic/tclInterp.c (TclLimitRemoveAllHandlers): 3135 * generic/tclBasic.c (DeleteInterpProc): 3136 * tests/interp.test (interp-34.7): Ensure that all limit callbacks are 3137 deleted when their interpreters are deleted. [Bug 956083] 3138 31392004-05-19 Kevin B. Kenny <kennykb@acm.org> 3140 3141 * win/tclWinFile.c (TclpMatchInDirectory): fix for an issue where 3142 there was a sneak path from Tcl_DStringFree to SetErrorCode(0). The 3143 result was that the error code could be reset between a call to 3144 FindFirstFileEx and the check of its status return, leading to a 3145 bizarre error return of {POSIX unknown {No error}}. (Found in 3146 unplanned test - no incident logged at SourceForge.) 3147 31482004-05-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3149 3150 * tests/interp.test (interp-34.3): Rewrite this test to see if a time 3151 limit can catch a tight bytecode loop, a maximally aggressive 3152 denial-of-service attack. 3153 * generic/tclInterp.c (Tcl_LimitCheck): Fix the sense of checks to see 3154 whether a time limit has been extended. 3155 3156 * tests/*.test: Many minor fixes, including ensuring that every test 3157 is run (so constraints control whether the test is doing anything) and 3158 making sure that constraints are always set using the API instead of 3159 poking around inside tcltest's internal datastructures. Also got rid 3160 of all trailing whitespace lines from the test suite! 3161 31622004-05-19 Andreas Kupries <andreask@activestate.com> 3163 3164 * generic/tclIO.c: Fixed [SF Tcl Bug 943274]. This is the same problem 3165 * generic/tclIO.h: as [SF Tcl Bug 462317], see ChangeLog entry 3166 2001-09-26. The fix done at that time is incomplete. It is possible to 3167 get around it if the actual read operation is defered and not executed 3168 in the event handler itself. Instead of tracking if we are in an read 3169 caused by a synthesized fileevent we now track if the OS has delivered 3170 a true event = actual data and bypass the driver if a read finds that 3171 there is no actual data waiting. The flag is cleared by a short or 3172 full read. 3173 3174 ***POTENTIAL INCOMPATIBILITY*** for channel drivers. 3175 31762004-05-17 Vince Darley <vincentdarley@users.sourceforge.net> 3177 3178 * generic/tclPathObj.c: fix to (Bug 956063) in 'file dirname'. 3179 * tests/cmdAH.test: added test for this bug. 3180 3181 * doc/FileSystem.3: better documentation of refCount requirements of 3182 some FS functions (Bug 956126) 3183 31842004-05-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3185 3186 * generic/tclTest.c (TestgetintCmd): Made the tests in get.test check 3187 * tests/get.test: Tcl_GetInt() since the core now 3188 avoids that function. 3189 31902004-05-18 Kevin B. Kenny <kennykb@acm.org> 3191 3192 * compat/strftime.c (_fmt, ISO8601Week): 3193 * doc/clock.n: 3194 * tests/clock.test: Major rework to the handling of ISO8601 week 3195 numbers. Now passes all the %G and %V test cases on Windows, Linux and 3196 Solaris [Bugs 500285, 500389, and 852944] 3197 31982004-05-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3199 3200 * doc/append.n, doc/upvar.n: Added example. 3201 32022004-05-18 David Gravereaux <davygrvy@pobox.com> 3203 3204 * win/makefile.vc: now generates a tclConfig.sh from Pat Thoyts [Patch 3205 909911] 3206 32072004-05-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3208 3209 * doc/lsearch.n: Improve clarity (based on [Patch 955361] by Peter 3210 Spjuth) 3211 3212 * tools/man2help2.tcl (macro,SHmacro): Added support for subsection 3213 (.SS) header macros. 3214 3215 * doc/interp.n: Added user documentation for the TIP#143 resource 3216 limits and some examples. 3217 3218 * generic/tclInterp.c (Tcl_LimitCheck, Tcl_LimitTypeReset): Reset the 3219 limit-exceeded flag when removing a limit. 3220 32212004-05-18 Miguel Sofer <msofer@users.sf.net> 3222 3223 * generic/tclExecute.c (TclExecuteByteCode): added comments to 3224 classify the variables according to their use in TEBC. 3225 32262004-05-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3227 3228 * doc/global.n, doc/uplevel.n: Added an example. 3229 3230 * tests/info.test (info-3.1): Corrected test result back to what it 3231 used to be in Tcl 7.* now that command counts are being correctly kept 3232 3233 * generic/tclExecute.c (TEBC:INST_START_CMD): Make sure that the 3234 command-count is always advanced. Allows TIP#143 limits to tell that 3235 work is being done. 3236 3237 * doc/list.n: Updated example to fit with the unified format. 3238 * doc/seek.n: Added some examples. 3239 32402004-05-17 Vince Darley <vincentdarley@users.sourceforge.net> 3241 3242 * win/tclWinFile.c: 3243 * tests/cmdAH.test: fix to (Bug 954263) where 'file executable' was 3244 case-sensitive. 3245 32462004-05-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3247 3248 * doc/OpenFileChnl.3: Documented type of 'offset' argument to Tcl_Seek 3249 was wrong. [Bug 953374] 3250 32512004-05-16 Miguel Sofer <msofer@users.sf.net> 3252 3253 * generic/tclExecute.c (TclExecuteByteCode): remove one level of 3254 indirection for compiledLocals addressing. 3255 32562004-05-16 Miguel Sofer <msofer@users.sf.net> 3257 3258 * generic/tclExecute.c (INST_CALL_FUNC1): bugfix; restored 3259 (DE)CACHE_STACK_INFO pair around the call - the user defined math 3260 function could cause a recursive call to TEBC. 3261 32622004-05-16 Miguel Sofer <msofer@users.sf.net> 3263 3264 * generic/tclBasic.c (Tcl_DeleteInterp): 3265 * generic/tclExecute.c (INST_START_CMD): interp deletion now modifies 3266 the compileEpoch, eliminating the need for the check for interp 3267 deletion in INST_START_CMD. 3268 32692004-05-16 Miguel Sofer <msofer@users.sf.net> 3270 3271 * generic/tclCompile.h: 3272 * generic/tclCompile.c: 3273 * generic/tclExecute.c: changed implementation of {expand}, last 3274 chance while in alpha as ... 3275 3276 ***POTENTIAL INCOMPATIBILITY*** 3277 Scripts precompiled with ProComp under previous tcl8.5a versions may 3278 malfunction due to changed instruction numbers for 3279 INST_LIST_INDEX_IMM, INST_LIST_RANGE_IMM and INST_START_CMD. 3280 32812004-05-14 Kevin B. Kenny <kennykb@acm.org> 3282 3283 * generic/tclInt.decls: Promoted TclpLocaltime and TclpGmtime 3284 * generic/tclIntDecls.h: from Unix-specific stubs to the generic 3285 * generic/tclIntPlatDecls.h: internal Stubs table. Reran 'genstubs' 3286 * generic/tclStubInit.c: 3287 * unix/tclUnixPort.h: 3288 3289 * generic/tclClock.c: Changed a buggy 'GMT' timezone specification 3290 to the correct 'GMT0'. [Bug 922848] 3291 3292 * unix/tclUnixThrd.c: Moved TclpGmtime and TclpLocaltime to 3293 unix/tclUnixTime.c where they belong. 3294 3295 * unix/tclUnixTime.c (TclpGmtime, TclpLocaltime, TclpGetTimeZone, 3296 ThreadSafeGMTime [removed], 3297 ThreadSafeLocalTime [removed], 3298 SetTZIfNecessary, CleanupMemory): 3299 Restructured to make sure that the same mutex protects all calls to 3300 localtime, gmtime, and tzset. Added a check in front of those calls to 3301 make sure that the TZ env var hasn't changed since the last call to 3302 tzset, and repeat tzset if necessary. [Bug 942078] Removed a buggy 3303 test of the Daylight Saving Time information in 'gettimeofday' in 3304 favor of applying 'localtime' to a known value. [Bug 922848] 3305 3306 * tests/clock.test (clock-3.14): Added test to make sure that changes 3307 to $env(TZ) take effect immediately. 3308 3309 * win/tclWinTime.c (TclpLocaltime, TclpGmtime): Added porting layer 3310 for 'localtime' and 'gmtime' calls. 3311 33122004-05-14 Miguel Sofer <msofer@users.sf.net> 3313 3314 * generic/tclExecute.c: 3315 * generic/tclCompile.h: the math functions receive a pointer to top of 3316 the stack (tosPtr) instead of the execution environment (eePtr). First 3317 step towards a change in the execution stack management - it is now 3318 only used within TEBC. 3319 33202004-05-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3321 3322 TIP#143 IMPLEMENTATION 3323 3324 * generic/tclExecute.c (TclCompEvalObj, TclExecuteByteCode): 3325 * generic/tclBasic.c (TclEvalObjvInternal): Enable limit checking. 3326 * generic/tclInterp.c (Tcl_Limit*): Public limit API. 3327 * generic/tcl.decls: 3328 * tests/interp.test: Basic tests of command limits. 3329 3330 * doc/binary.n: TIP#129 IMPLEMENTATION [Patch 858211] 3331 * generic/tclBinary.c: Note that the test suite probably has many more 3332 * tests/binary.test: failures now due to alterations in constraints. 3333 33342004-05-12 Miguel Sofer <msofer@users.sf.net> 3335 3336 Optimisations for INST_START_CMD [Bug 926164]. 3337 * generic/tclCompile.c (TclCompileScript): avoid emitting 3338 INST_START_CMD as the first instruction in a bytecoded Tcl_Obj. It is 3339 not needed, as the checks are done before calling TEBC. 3340 * generic/tclExecute.c (TclExecuteByteCode): runtime peephole 3341 optimisation: check at INST_POP if the next instruction is 3342 INST_START_CMD, in which case we fall through. 3343 33442004-05-11 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3345 3346 * doc/split.n, doc/join.n: Updated examples and added more. 3347 33482004-05-11 Vince Darley <vincentdarley@users.sourceforge.net> 3349 3350 * doc/glob.n: documented behaviour of symbolic links with 'glob -types 3351 d' (Bug 951489) 3352 33532004-05-11 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3354 3355 * doc/scan.n: Updated the examples to be clearer about their relevance 3356 to the scan command. 3357 33582004-05-10 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3359 3360 * doc/scan.n: Added examples. 3361 33622004-05-10 David Gravereaux <davygrvy@pobox.com> 3363 3364 * win/tclWinPipe.c (BuildCommandLine): Moved non-obvious appending 3365 logic to outside the loop and added commentary for its purpose. Also 3366 use the existence of contents in the linePtr rather than the scratch 3367 DString post the append, as this more clear. 3368 3369 (TclpCreateProcess): When under NT, with no console, and executing a 3370 DOS application, the path priming does not need an ending space as 3371 BuildCommandLine() will do this for us. 3372 33732004-05-08 Vince Darley <vincentdarley@users.sourceforge.net> 3374 3375 * generic/tclFileName.c: 3376 * generic/tclIOUtil.c: remove some compiler warnings on MacOS X. 3377 33782004-05-07 Chengye Mao <chengye.geo@yahoo.com> 3379 3380 * win/tclWinPipe.c: refixed bug 789040 re-entered in rev 1.41. Let's 3381 be careful and don't re-enter previously fixed bugs. 3382 33832004-05-08 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3384 3385 * doc/format.n: Added examples. 3386 33872004-05-07 Miguel Sofer <msofer@users.sf.net> 3388 3389 * doc/unset.n: added upvar.n to the "see also" list 3390 33912004-05-07 Reinhard Max <max@suse.de> 3392 3393 * generic/tclEncoding.c: 3394 * tests/encoding.test: added support and tests for translating 3395 embedded null characters between real nullbytes and the internal 3396 representation on input/output [Bug 949905]. 3397 33982004-05-07 Vince Darley <vincentdarley@users.sourceforge.net> 3399 3400 * generic/tclFileName.c: 3401 * generic/tclIOUtil.c: 3402 * generic/tclFileSystem.h: 3403 * tests/fileSystem.test: fix for [Bug 943995], in which vfs-registered 3404 root volumes were not handled correctly as glob patterns in all 3405 circumstances. 3406 34072004-05-06 Miguel Sofer <msofer@users.sf.net> 3408 3409 * generic/tclInt.h: 3410 * generic/tclObj.c (TclFreeObj): made TclFreeObj use the new macro 3411 TclFreeObjMacro(), so that the allocation and freeing of Tcl_Obj is 3412 defined in a single spot (the macros in tclInt.h), with the exception 3413 of the TCL_MEM_DEBUG case. 3414 The #ifdef logic for the corresponding macros has been reformulated to 3415 make it clearer. 3416 34172004-05-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3418 3419 * doc/break.n, doc/continue.n, doc/for.n, doc/while.n: More examples. 3420 34212004-05-05 Don Porter <dgp@users.sourceforge.net> 3422 3423 * tests/unixInit.test (unixInit-2.10): Test correction for Mac OSX. 3424 Be sure to consistently compare normalized path names. Thanks to 3425 Steven Abner (tauvan). [Bug 948177] 3426 34272004-05-05 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3428 3429 * doc/CrtObjCmd.3: Remove reference to Tcl_RenameCommand; there is no 3430 such API. [Bug 848440] 3431 34322004-05-05 David Gravereaux <davygrvy@pobox.com> 3433 3434 * win/tclWinSock.c (SocketEventProc) : connect errors should fire both 3435 the readable and writable handlers because this is how it works on 3436 UNIX [Bug 794839] 3437 3438 * generic/tclEncoding.c (TclFinalizeEncodingSubsystem): 3439 FreeEncoding(systemEncoding); moved to before the hash table iteration 3440 as it was causing a double free attempt under some conditions. 3441 3442 * win/coffbase.txt: Added the tls extension to the list of preferred 3443 load addresses. 3444 34452004-05-04 Jeff Hobbs <jeffh@ActiveState.com> 3446 3447 * tests/fileSystem.test (filesystem-1.39): replace 'file volumes' 3448 * tests/fileName.test (filename-12.9,10): lindex with direct C:/ 3449 hard-coded because A:/ was being used and that is empty for most. 3450 3451 * tests/winFCmd.test (winFCmd-16.12): test volumerelative $HOME 3452 34532004-05-04 Don Porter <dgp@users.sourceforge.net> 3454 3455 * generic/tclAlloc.c: Make sure Tclp*Alloc* routines get 3456 * generic/tclInt.h: declared in the TCL_MEM_DEBUG and 3457 * generic/tclThreadAlloc.c: TCL_THREADS configuration. [Bug 947564] 3458 3459 * tests/tcltest.test: Test corrections for Mac OSX. Thanks to Steven 3460 Abner (tauvan). [Bug 947440] 3461 34622004-05-04 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3463 3464 * generic/tclEvent.c (TclSetLibraryPath): Suppress a warning. 3465 34662004-05-03 Andreas Kupries <andreask@activestate.com> 3467 3468 * Applied [Patch 868853], fixing a mem leak in TtySetOptionProc. 3469 Report and Patch provided by Stuart Cassoff <stwo@users.sf.net>. 3470 34712004-05-03 Miguel Sofer <msofer@users.sf.net> 3472 3473 * generic/tclProc.c (TclCreateProc): comments corrected. 3474 34752004-05-03 Miguel Sofer <msofer@users.sf.net> 3476 3477 * generic/tclCompile.c (TclCompileScript): setting the compilation 3478 namespace outside of the loop. 3479 34802004-05-03 Miguel Sofer <msofer@users.sf.net> 3481 3482 * generic/tclCompile.c: 3483 * generic/tclInt.h: reverted fix for [Bug 926445] of 2004-04-02, 3484 restoring TCL_ALIGN to the header file. Todd Helfter reported that the 3485 macro is required by tbcload. 3486 34872004-05-03 Kevin Kenny <kennykb@acm.org> 3488 3489 * win/tclWin32Dll.c (TclpCheckStackSpace): 3490 * tests/stack.test (stack-3.1): Fix for undetected stack overflow in 3491 TclReExec on Windows. [Bug 947070] 3492 34932004-05-03 Don Porter <dgp@users.sourceforge.net> 3494 3495 * library/init.tcl: Corrected unique prefix matching of 3496 interactive command completion in [unknown]. [Bug 946952] 3497 34982004-05-02 Miguel Sofer <msofer@users.sf.net> 3499 3500 * generic/tclProc.c (TclObjInvokeProc): 3501 * tests/proc.test (proc-3.6): fix for bad quoting of multi-word proc 3502 names in error messages [Bug 942757] 3503 35042004-04-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3505 3506 * doc/glob.n, doc/incr.n, doc/set.n: More examples. 3507 * doc/if.n, doc/rename.n, doc/time.n: 3508 35092004-04-30 Don Porter <dgp@users.sourceforge.net> 3510 3511 * generic/tclInt.h: Replaced Kevin Kenny's temporary 3512 * generic/tclThreadAlloc.c: fix for Bug 945447 with a cleaner, 3513 more permanent replacement. 3514 35152004-04-30 Kevin B. Kenny <kennykb@acm.org> 3516 3517 * generic/tclThreadAlloc.c: Added a temporary (or so I hope!) 3518 inclusion of "tclWinInt.h" to avoid problems when compiling on 3519 Win32-VC++ with --enable-threads. [Bug 945447] 3520 35212004-04-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3522 3523 * doc/puts.n: Added a few examples. 3524 35252004-04-29 Don Porter <dgp@users.sourceforge.net> 3526 3527 * tests/execute.test (execute-8.2): Avoid crashes when there is 3528 limited system stack space (threads-enabled). 3529 35302004-04-28 Miguel Sofer <msofer@users.sf.net> 3531 3532 * doc/global.n: 3533 * doc/upvar.n: 3534 * generic/tclVar.c (ObjMakeUpvar): 3535 * tests/upvar.test (upvar-8.11): 3536 * tests/var.test (var-3.11): Avoid creation of unusable variables: 3537 [Bug 600812] [TIP 184]. 3538 35392004-04-28 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3540 3541 * doc/lsearch.n: Fixed fault in documentation of -index option [943448] 3542 35432004-04-26 Don Porter <dgp@users.sourceforge.net> 3544 3545 * unix/tclUnixFCmd.c (TclpObjNormalizePath): Corrected improper 3546 positioning of returned checkpoint. [Bug 941108] 3547 35482004-04-26 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3549 3550 * doc/open.n, doc/close.n: Updated (thanks to David Welton) to be 3551 clearer about pipeline errors and added example to open(n) that shows 3552 simple pipeline use. [Patches 941377,941380] 3553 3554 * doc/DictObj.3: Added warning about the use of Tcl_DictObjDone and an 3555 example of use of iteration. [Bug 940843] 3556 3557 * doc/Thread.3: Reworked to remove references to testing interfaces 3558 and instead promote the use of the Thread package. [Patch 932527] 3559 Also reworked and reordered the page for better readability. 3560 35612004-04-25 Don Porter <dgp@users.sourceforge.net> 3562 3563 * generic/tcl.h: Removed obsolete declarations and #include's. 3564 * generic/tclInt.h: [Bugs 926459, 926486] 3565 35662004-04-24 David Gravereaux <davygrvy@pobox.com> 3567 3568 * win/tclWin32Dll.c (DllMain): Added DisableThreadLibraryCalls() for 3569 the DLL_PROCESS_ATTACH case. We're not interested in knowing about 3570 DLL_THREAD_ATTACH, so disable the notices. 3571 35722004-04-24 Daniel Steffen <das@users.sourceforge.net> 3573 3574 * generic/tclPort.h: 3575 * macosx/Makefile: 3576 * unix/Makefile.in: followup on tcl header reform [FR 922727]: removed 3577 use of relative #include paths in tclPort.h to allow installation of 3578 private headers outside of tcl source tree; added 'unix' dir to 3579 compiler header search path; add newly required tcl private headers to 3580 Tcl.framework on Mac OSX. 3581 35822004-04-23 Andreas Kupries <andreask@activestate.com> 3583 3584 * generic/tclIO.c (Tcl_SetChannelOption): Fixed [SF Tcl Bug 930851]. 3585 When changing the eofchar we have to zap the related flags to prevent 3586 them from prematurely aborting the next read. 3587 35882004-04-25 Vince Darley <vincentdarley@users.sourceforge.net> 3589 3590 * generic/tclPathObj.c: fix to [Bug 940281]. Tcl_FSJoinPath will now 3591 always return a valid Tcl_Obj when the input is valid. 3592 * generic/tclIOUtil.c: fix to [Bug 931823] for a more consistent 3593 Tcl_FSPathSeparator() implementation which allows filesystems not to 3594 implement their Tcl_FSFilesystemSeparatorProc if they wish to use the 3595 default '/'. Also fixed associated memory leak seen with, e.g., tclvfs 3596 package. 3597 * doc/FileSystem.3: documented Tcl_FSJoinPath return values more 3598 clearly, and Tcl_FSFilesystemSeparatorProc requirements. 3599 36002004-04-23 David Gravereaux <davygrvy@pobox.com> 3601 3602 * win/tclWin32Dll.c: Removed my mistake from 4/19 of adding an exit 3603 handler to TclWinInit. TclWinEncodingsCleanup called from 3604 TclFinalizeFilesystem does the Tcl_FreeEncoding for us. 3605 3606 * win/tclWinChan.c (Tcl_MakeFileChannel): Case for CloseHandle 3607 returning zero and not throwing a 3608 RaiseException(EXCEPTION_INVALID_HANDLE) now being done. 3609 36102004-04-22 David Gravereaux <davygrvy@pobox.com> 3611 3612 * generic/tclEvent.c: TclSetLibraryPath's use of caching the stringrep 3613 of the pathPtr object to TclGetLibraryPath called from another thread 3614 was ineffective if the original's stringrep had been invalidated as 3615 what happens when it gets muted to a list. 3616 3617 * win/tclWinTime.c: If the Tcl_ExitProc (StopCalibration) is called 3618 from the stack frame of DllMain's PROCESS_DETACH, the wait operation 3619 should timeout and continue. 3620 3621 * generic/tclInt.h: 3622 * generic/tclThread.c: 3623 * generic/tclEvent.c: 3624 * unix/tclUnixThrd.c: 3625 * win/tclWinThrd.c: Provisions made so masterLock, initLock, allocLock 3626 and joinLock mutexes can be recovered during Tcl_Finalize. 3627 36282004-04-22 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3629 3630 * doc/switch.n: Reworked the examples to be more systematically named 3631 and to cover some TIP#75 capabilities. 3632 3633 * doc/cd.n: Documentation clarification from David Welton. 3634 3635 * doc/exec.n: Added some examples, Windows ones from Arjen Markus and 3636 Unix ones by myself. 3637 36382004-04-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3639 3640 * doc/Hash.3: Added note to Tcl_{First,Next}HashEntry docs that 3641 deleting the element they return is supported (and is in fact the only 3642 safe update you can do to the structure of a hashtable while an 3643 iteration is going over it.) 3644 3645 * doc/bgerror.n: Added example from David Welton. [Patch 939473] 3646 3647 * doc/after.n: Added examples from David Welton. [Patch 938820] 3648 36492004-04-19 David Gravereaux <davygrvy@pobox.com> 3650 3651 * win/tclWin32Dll.c: Added an exit handler in TclWinInit() so 3652 tclWinTCharEncoding could be freed during Tcl_Finalize(). 3653 3654 * generic/tclEncoding.c: Added FreeEncoding(systemEncoding) in 3655 TclFinalizeEncodingSubsystem because its ref count was incremented in 3656 TclInitEncodingSubsystem. 3657 36582004-04-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3659 3660 * doc/read.n: Added example from David Welton. [Patch 938056] 3661 36622004-04-19 Kevin B. Kenny <kennykb@acm.org> 3663 3664 * generic/tclObj.c (Tcl_GetDoubleFromObj) Corrected "short circuit" 3665 conversion of int to double. Reported by Jeff Hobbs on the Tcl'ers 3666 Chat. 3667 36682004-04-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3669 3670 * doc/lreplace.n, doc/lrange.n, doc/llength.n: More examples for 3671 * doc/linsert.n, doc/lappend.n: the documentation. 3672 36732004-04-16 Vince Darley <vincentdarley@users.sourceforge.net> 3674 3675 * doc/FileSystem.3: Corrected documentation of Tcl_FSUtime, and the 3676 corresponding filesystem driver Tcl_FSUtimeProc. [Bug 935838] 3677 36782004-04-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3679 3680 * doc/socket.n: Added example from [Patch 936245]. 3681 * doc/gets.n: Added example based on [Patch 935911]. 3682 36832004-04-15 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3684 3685 * generic/tclClock.c (Tcl_ClockObjCmd): Minor fault in a [clock 3686 clicks] error message. 3687 36882004-04-07 Jeff Hobbs <jeffh@ActiveState.com> 3689 3690 * win/tclWinInit.c (TclpSetInitialEncodings): note that WIN32_CE is 3691 also a unicode platform. 3692 * generic/tclEncoding.c (TclFindEncodings, Tcl_FindExecutable): 3693 * generic/tclInt.h: Correct handling of UTF 3694 * unix/tclUnixInit.c (TclpInitLibraryPath): data that is actually 3695 * win/tclWinFile.c (TclpFindExecutable): "clean", allowing the 3696 * win/tclWinInit.c (TclpInitLibraryPath): loading of Tcl from paths 3697 that contain multi-byte chars on Windows [Bug 920667] 3698 3699 * win/configure: define TCL_LIB_FLAG, TCL_BUILD_LIB_SPEC, 3700 * win/configure.in: TCL_LIB_SPEC, TCL_PACKAGE_PATH in tclConfig.sh. 3701 37022004-04-06 Don Porter <dgp@users.sourceforge.net> 3703 3704 Patch 922727 committed. Implements three changes: 3705 3706 * generic/tclInt.h: Reworked the Tcl header files into a clean 3707 * unix/tclUnixPort.h: hierarchy where tcl.h < tclPort.h < tclInt.h 3708 * win/tclWinInt.h: and every C source file should #include 3709 * win/tclWinPort.h: at most one of those files to satisfy its 3710 declaration needs. tclWinInt.h and tclWinPort.h also better organized 3711 so that tclWinPort.h includes the Windows implementation of 3712 cross-platform declarations, while tclWinInt.h makes declarations that 3713 are available on Windows only. 3714 3715 * generic/tclBinary.c (TCL_NO_MATH): Deleted the generic/tclMath.h 3716 * generic/tclMath.h (removed): header file. The internal Tcl 3717 * macosx/Makefile (PRIVATE_HEADERS): header, tclInt.h, has a 3718 * win/tcl.dsp: #include <math.h> directly, 3719 and file external to Tcl needing libm should do the same. 3720 3721 * win/Makefile.in (WIN_OBJS): Deleted the win/tclWinMtherr.c file. 3722 * win/makefile.bc (TCLOBJS): It's a vestige from matherr() days 3723 * win/makefile.vc (TCLOBJS): gone by. 3724 * win/tcl.dsp: 3725 * win/tclWinMtherr.c (removed): 3726 3727 End Patch 922727. 3728 3729 * tests/unixInit.test (unixInit-3.1): Default encoding on Darwin 3730 systems is utf-8. Thanks to Steven Abner (tauvan). [Bug 928808] 3731 37322004-04-06 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3733 3734 * tests/cmdAH.test (cmdAH-18.2): Added constraint because 3735 access(...,X_OK) is defined to be permitted to be meaningless when 3736 running as root, and OSX exhibits this. [Bug 929892] 3737 37382004-04-02 Miguel Sofer <msofer@users.sf.net> 3739 3740 * generic/tclCompile.c: 3741 * generic/tclInt.h: removed the macro TCL_ALIGN() from tclInt.h, 3742 replaced by the static macro ALIGN() in tclCompile.c [Bug 926445] 3743 37442004-04-02 Miguel Sofer <msofer@users.sf.net> 3745 3746 * generic/tclCompile.h: removed redundant #ifdef _TCLINT [Bug 928415], 3747 reported by tauvan. 3748 37492004-04-02 Don Porter <dgp@users.sourceforge.net> 3750 3751 * tests/tcltest.test: Corrected constraint typos: "nonRoot" -> 3752 "notRoot". Thanks to Steven Abner (tauvan). [Bug 928353] 3753 37542004-04-01 Don Porter <dgp@users.sourceforge.net> 3755 3756 * generic/tclInt.h: Removed obsolete tclBlockTime* declarations. [Bug 3757 926454] 3758 37592004-04-01 Vince Darley <vincentdarley@users.sourceforge.net> 3760 3761 * generic/tclIOUtil.c: Fix to privately reported vfs bug with 'glob 3762 -type d -dir . *' across a vfs boundary. No tests for this are 3763 currently possible without effectively moving tclvfs into Tcl's test 3764 suite. 3765 37662004-03-31 Don Porter <dgp@users.sourceforge.net> 3767 3768 * doc/msgcat.n: Clarified message catalog file encodings. [Bug 811457] 3769 * library/msgcat/msgcat.tcl: Updated internals to make use of [dict]s 3770 to store message catalog data and to use [source -encoding utf-8] to 3771 access catalog files. Thanks to Michael Sclenker. [Patch 875055, RFE 3772 811459] Corrected [mcset] to be able to successfully set a translation 3773 to the empty string. [mcset $loc $src {}] was incorrectly set the $loc 3774 translation of $src back to $src. Also changed [ConvertLocale] to 3775 minimally require a non-empty "language" part in the locale value. If 3776 not, an error raised prompts [Init] to keep looking for a valid locale 3777 value, or ultimately fall back on the "C" locale. [Bug 811461]. 3778 * library/msgcat/pkgIndex.tcl: Bump to msgcat 1.4.1. 3779 37802004-03-30 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3781 3782 * generic/tclHash.c (HashStringKey): Cleaned up. This function is not 3783 faster, but it is a little bit clearer. 3784 * generic/tclLiteral.c (HashString): Applied logic from HashObjKey. 3785 * generic/tclObj.c (HashObjKey): Rewrote to fix fault which hashed 3786 every single-character object to the same hash bucket. The new code is 3787 shorter, simpler, clearer, and (happily) faster. 3788 37892004-03-30 Miguel Sofer <msofer@users.sf.net> 3790 3791 * generic/tclExecute.c (TEBC): reverting to the previous method for 3792 async tests in TEBC, as the new method turned out to be too costly. 3793 Async tests now run every 64 instructions. 3794 37952004-03-30 Miguel Sofer <msofer@users.sf.net> 3796 3797 * generic/tclCompile.c: New instruction code INST_START_CMD that 3798 * generic/tclCompile.h: allows checking the bytecode's validity 3799 * generic/tclExecute.c: [Bug 729692] and the interp's readyness 3800 * tests/interp.test (18.9): [Bug 495830] before running the command. 3801 * tests/proc.test (7.1): It also changes the mechanics of the async 3802 * tests/rename.test (6.1): tests in TEBC, doing it now at command 3803 start instead of every 16 instructions. 3804 38052004-03-30 Vince Darley <vincentdarley@users.sourceforge.net> 3806 3807 * generic/tclFileName.c: Fix to Windows glob where the pattern is a 3808 * generic/tclIOUtil.c: volume relative path or a network share [Bug 3809 * tests/fileName.test: 898238]. On windows 'glob' will now return 3810 * tests/fileSystem.test: the results of 'glob /foo/bar' and 'glob 3811 \\foo\\bar' as 'C:/foo/bar', i.e. a correct absolute path (rather than 3812 a volume relative path). 3813 3814 Note that the test suite does not test commands like 3815 'glob //Machine/Shared/*' (on a network share). 3816 38172004-03-30 Vince Darley <vincentdarley@users.sourceforge.net> 3818 3819 * generic/tclPathObj.c: Fix to filename bugs recently 3820 * tests/fileName.test: introduced [Bug 918320]. 3821 38222004-03-29 Don Porter <dgp@users.sourceforge.net> 3823 3824 * generic/tclMain.c (Tcl_Main, StdinProc): Append newline only 3825 * tests/basic.test (basic-46.1): to incomplete scripts 3826 as part of multi-line script construction. Do not add an extra 3827 trailing newline to the complete script. [Bug 833150] 3828 38292004-03-28 Miguel Sofer <msofer@users.sf.net> 3830 3831 * generic/tclCompile.c (TclCompileScript): corrected possible segfault 3832 when a compilation returns TCL_OUTLINE_COMPILE after having grown the 3833 compile environment [Bug 925121]. 3834 38352004-03-27 Miguel Sofer <msofer@users.sf.net> 3836 3837 * doc/array.n: added documentation for trace-realted behaviour of 3838 'array get' [Bug 449893] 3839 38402004-03-26 Don Porter <dgp@users.sourceforge.net> 3841 3842 * README: Bumped version number to 8.5a2 to distinguish 3843 * tools/tcl.wse.in: HEAD of CVS development from the recent 8.5a1 3844 * unix/configure.in: release. 3845 * unix/tcl.spec: 3846 * win/README.binary: 3847 * win/configure.in: 3848 3849 * unix/configure: autoconf-2.57 3850 * win/configure: 3851 38522004-03-26 Vince Darley <vincentdarley@users.sourceforge.net> 3853 3854 * generic/tclPathObj.c: Fix to Windows-only volume relative path 3855 * tests/fileSystem.test: normalization. [Bug 923568]. Also fixed 3856 another volume relative bug found while testing. 3857 38582004-03-24 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3859 3860 * generic/tclNamesp.c (NsEnsembleImplementationCmd): Fix messed up 3861 handling of strncmp result which just happened to work in some libc 3862 implementations. [Bug 922752] 3863 38642004-03-23 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3865 3866 * doc/StringObj.3: Inverted the sense of the documentation of how the 3867 bytes parameter is documented to match behaviour. [Bug 921464] 3868 38692004-03-19 Kevin B. Kenny <kennykb@acm.org> 3870 3871 * compat/strtoll.c: 3872 * compat/strtoull.c: 3873 * generic/tclIntDecls.h: 3874 * generic/tclMain.c: 3875 * generic/tclObj.c: 3876 * win/tclWinDde.c: 3877 * win/tclWinReg.c: 3878 * win/tclWinTime.c: Made HEAD build on Windows VC++ again. 3879 38802004-03-19 Donal K. Fellows <donal.k.fellows@man.ac.uk> 3881 3882 * generic/tclIntDecls.h: Made HEAD build on Solaris again by applying 3883 fix recommended by Don Porter. 3884 38852004-03-18 Reinhard Max <max@suse.de> 3886 3887 * generic/tclIntDecls.h: Removed TclpTime_t. It wasn't really needed, 3888 * generic/tclInt.h: but caused warnings related to 3889 * generic/tclInt.decls: strict aliasing with GCC 3.3. 3890 * generic/tclClock.c: 3891 * generic/tclDate.c: 3892 * generic/tclGetDate.y: 3893 * win/tclWinTime.c: 3894 * unix/tclUnixTime.c: 3895 3896 * generic/tclNamesp.c: Added temporary pointer variables to work 3897 * generic/tclStubLib.c: around warnings related to 3898 * unix/tclUnixChan.c: strict aliasing with GCC 3.3. 3899 3900 * unix/tcl.m4: Removed -Wno-strict-aliasing. 3901 39022004-03-18 Daniel Steffen <das@users.sourceforge.net> 3903 3904 Removed support for Mac OS Classic platform [Patch 918142] 3905 3906 * README: 3907 * compat/string.h: 3908 * doc/Encoding.3: 3909 * doc/FileSystem.3: 3910 * doc/Init.3: 3911 * doc/Macintosh.3 (removed): 3912 * doc/OpenFileChnl.3: 3913 * doc/OpenTcp.3: 3914 * doc/SourceRCFile.3: 3915 * doc/Thread.3: 3916 * doc/clock.n: 3917 * doc/exec.n: 3918 * doc/fconfigure.n: 3919 * doc/file.n: 3920 * doc/filename.n: 3921 * doc/glob.n: 3922 * doc/open.n: 3923 * doc/puts.n: 3924 * doc/resource.n (removed): 3925 * doc/safe.n: 3926 * doc/source.n: 3927 * doc/tclvars.n: 3928 * doc/unload.n: 3929 * generic/README: 3930 * generic/tcl.decls: 3931 * generic/tcl.h: 3932 * generic/tclAlloc.c: 3933 * generic/tclBasic.c: 3934 * generic/tclCmdAH.c: 3935 * generic/tclDate.c: 3936 * generic/tclDecls.h: 3937 * generic/tclFCmd.c: 3938 * generic/tclFileName.c: 3939 * generic/tclGetDate.y: 3940 * generic/tclIOCmd.c: 3941 * generic/tclIOUtil.c: 3942 * generic/tclInitScript.h: 3943 * generic/tclInt.decls: 3944 * generic/tclInt.h: 3945 * generic/tclIntDecls.h: 3946 * generic/tclIntPlatDecls.h: 3947 * generic/tclMain.c: 3948 * generic/tclMath.h: 3949 * generic/tclNotify.c: 3950 * generic/tclPathObj.c: 3951 * generic/tclPlatDecls.h: 3952 * generic/tclPort.h: 3953 * generic/tclStubInit.c: 3954 * generic/tclTest.c: 3955 * generic/tclThreadJoin.c: 3956 * library/auto.tcl: 3957 * library/init.tcl: 3958 * library/package.tcl: 3959 * library/safe.tcl: 3960 * library/tclIndex: 3961 * mac/AppleScript.html (removed): 3962 * mac/Background.doc (removed): 3963 * mac/MW_TclAppleScriptHeader.h (removed): 3964 * mac/MW_TclAppleScriptHeader.pch (removed): 3965 * mac/MW_TclBuildLibHeader.h (removed): 3966 * mac/MW_TclBuildLibHeader.pch (removed): 3967 * mac/MW_TclHeader.h (removed): 3968 * mac/MW_TclHeader.pch (removed): 3969 * mac/MW_TclHeaderCommon.h (removed): 3970 * mac/MW_TclStaticHeader.h (removed): 3971 * mac/MW_TclStaticHeader.pch (removed): 3972 * mac/MW_TclTestHeader.h (removed): 3973 * mac/MW_TclTestHeader.pch (removed): 3974 * mac/README (removed): 3975 * mac/bugs.doc (removed): 3976 * mac/libmoto.doc (removed): 3977 * mac/morefiles.doc (removed): 3978 * mac/porting.notes (removed): 3979 * mac/tclMac.h (removed): 3980 * mac/tclMacAETE.r (removed): 3981 * mac/tclMacAlloc.c (removed): 3982 * mac/tclMacAppInit.c (removed): 3983 * mac/tclMacApplication.r (removed): 3984 * mac/tclMacBOAAppInit.c (removed): 3985 * mac/tclMacBOAMain.c (removed): 3986 * mac/tclMacChan.c (removed): 3987 * mac/tclMacCommonPch.h (removed): 3988 * mac/tclMacDNR.c (removed): 3989 * mac/tclMacEnv.c (removed): 3990 * mac/tclMacExit.c (removed): 3991 * mac/tclMacFCmd.c (removed): 3992 * mac/tclMacFile.c (removed): 3993 * mac/tclMacInit.c (removed): 3994 * mac/tclMacInt.h (removed): 3995 * mac/tclMacInterupt.c (removed): 3996 * mac/tclMacLibrary.c (removed): 3997 * mac/tclMacLibrary.r (removed): 3998 * mac/tclMacLoad.c (removed): 3999 * mac/tclMacMath.h (removed): 4000 * mac/tclMacNotify.c (removed): 4001 * mac/tclMacOSA.c (removed): 4002 * mac/tclMacOSA.r (removed): 4003 * mac/tclMacPanic.c (removed): 4004 * mac/tclMacPkgConfig.c (removed): 4005 * mac/tclMacPort.h (removed): 4006 * mac/tclMacProjects.sea.hqx (removed): 4007 * mac/tclMacResource.c (removed): 4008 * mac/tclMacResource.r (removed): 4009 * mac/tclMacSock.c (removed): 4010 * mac/tclMacTclCode.r (removed): 4011 * mac/tclMacTest.c (removed): 4012 * mac/tclMacThrd.c (removed): 4013 * mac/tclMacThrd.h (removed): 4014 * mac/tclMacTime.c (removed): 4015 * mac/tclMacUnix.c (removed): 4016 * mac/tclMacUtil.c (removed): 4017 * mac/tcltkMacBuildSupport.sea.hqx (removed): 4018 * tests/all.tcl: 4019 * tests/binary.test: 4020 * tests/cmdAH.test: 4021 * tests/cmdMZ.test: 4022 * tests/fCmd.test: 4023 * tests/fileName.test: 4024 * tests/fileSystem.test: 4025 * tests/interp.test: 4026 * tests/io.test: 4027 * tests/ioCmd.test: 4028 * tests/load.test: 4029 * tests/macFCmd.test (removed): 4030 * tests/osa.test (removed): 4031 * tests/resource.test (removed): 4032 * tests/socket.test: 4033 * tests/source.test: 4034 * tests/unload.test: 4035 * tools/cvtEOL.tcl (removed): 4036 * tools/genStubs.tcl: 4037 * unix/Makefile.in: 4038 * unix/README: 4039 * unix/mkLinks: 4040 * unix/tcl.spec: 4041 * win/README.binary: 4042 * win/tcl.dsp: 4043 40442004-03-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4045 4046 * doc/lsearch.n: Improved examples on the advanced capabilities of 4047 lsearch (with the right options, set element removal can be done) 4048 following discussion on tkchat. 4049 40502004-03-16 Don Porter <dgp@users.sourceforge.net> 4051 4052 * doc/catch.n: Compiled [catch] no longer fails to catch syntax 4053 errors. Removed the claims in the documentation that it does. 4054 * doc/return.n: Updated example to use [dict merge]. 4055 40562004-03-16 Jeff Hobbs <jeffh@ActiveState.com> 4057 4058 * unix/configure, unix/tcl.m4: add -Wno-strict-aliasing for GCC to 4059 suppress useless type puning warnings. 4060 40612004-03-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4062 4063 * doc/file.n: *roff formatting fix. [Bug 917171] 4064 40652004-03-15 David Gravereaux <davygrvy@pobox.com> 4066 4067 * win/tclWinNotify.c: Fixed a mistake where the return value of 4068 MsgWaitForMultipleObjectsEx for "a message is in the queue" wasn't 4069 accurate. I removed the check on the case result==(WAIT_OBJECT_0 + 1) 4070 This was having the error of falling into GetMessage and waiting there 4071 by accident, which wasn't alertable through Tcl_AlertNotifier. I'll do 4072 some more study on this and try to find-out why. 4073 40742004-03-12 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4075 4076 IMPLEMENTATION OF TIP#163 4077 * generic/tclDictObj.c (DictMergeCmd): This is based on work by Joe 4078 * tests/dict.test (dict-20.*): English in Tcl [FRQ 745851] 4079 * doc/dict.n: but not exactly. 4080 40812004-03-10 Kevin B. Kenny <kennykb@acm.org> 4082 4083 * generic/tclGetDate.y (TclGetDate): Fix so that [clock scan 4084 <timeOfDay> -gmt true] uses the GMT base date instead of the local 4085 one. [Bug 913513] 4086 * tests/clock.test: Added test cases for wrong ISO8601 week number 4087 [Bug 500285] and wrong GMT base date [Bug 913513]. Several tests still 4088 fail on Windows, and these are actual faults in [clock scan]. Fix is 4089 still pending. 4090 * generic/tclDate.c: Regenerated. 4091 40922004-03-08 Vince Darley <vincentdarley@users.sourceforge.net> 4093 4094 * generic/tclFileName.c: Fix to 'glob -path' near the root 4095 * tests/fileName.test: of the filesystem. [Bug 910525] 4096 40972004-03-08 Don Porter <dgp@users.sourceforge.net> 4098 4099 * generic/tclParse.c (TclParseInit): Modified TclParseInit so 4100 * generic/tclTest.c ([testexprparser]): that Tcl_Parse initialization 4101 conforms to documented promised about what fields will not be 4102 modified by what Tcl_Parse* routines. [Bug 910595] 4103 41042004-03-05 Mo DeJong <mdejong@users.sourceforge.net> 4105 4106 * win/configure: Regen. 4107 * win/configure.in: Check for define of MWMO_ALERTABLE in winuser.h. 4108 * win/tclWinPort.h: If MWMO_ALERTABLE is not defined in winuser.h then 4109 define it. This is needed for Mingw. 4110 41112004-03-05 Kevin B. Kenny <kennykb@acm.org> 4112 4113 * generic/tclTest.c: Modified TesteventObjCmd to use a 4114 Tcl_QueuePosition in place of an 'int' for the enumerated queue 4115 position, to avoid a compiler warning on SGI. [Bug 771960] 4116 41172004-03-05 Kevin B. Kenny <kennykb@acm.org> 4118 4119 * tests/registry.test: Applied fix from [Patch 910174] to make the test 4120 for an English-language system include any country code, rather than 4121 just English-United States.1252. Thanks to Pat Thoyts for the changes. 4122 41232004-03-04 Pat Thoyts <patthoyts@users.sourceforge.net> 4124 4125 * tests/registry.test: Applied fixed from [Bug 766159] to skip two 4126 tests on Win98 that depend on a Unicode registry (NT specific). 4127 41282004-03-04 Don Porter <dgp@users.sourceforge.net> 4129 4130 * generic/tclInt.h (TclParseInit): Factored the common code 4131 * generic/tclParse.c (TclParseInit): for initializing a Tcl_Parse 4132 * generic/tclParseExpr.c: struct into one routine. 4133 41342004-03-04 Pat Thoyts <patthoyts@users.sourceforge.net> 4135 4136 * library/reg/pkgIndex.tcl: Added TIP #100 support to the 4137 * win/tclWinReg.c: registry package [patch 903831] 4138 This provides a Windows test of the TIP #100 mechanism and a sample to 4139 show how unloading an extension can be done. 4140 41412004-03-04 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4142 4143 * unix/dltest/pkgua.c: Fix minor syntax problems. [Bug 909288] 4144 41452004-03-03 Jeff Hobbs <jeffh@ActiveState.com> 4146 4147 *** 8.5a1 TAGGED FOR RELEASE *** 4148 4149 * changes: updated for 8.5a1 4150 41512004-03-03 David Gravereaux <davygrvy@pobox.com> 4152 4153 * win/makefile.vc: default environment variable for VC++ is %MSDevDir% 4154 not %MSVCDir%, although vcvars32.bat sets both. 4155 4156 * win/tclWinNotify.c (Tcl_WaitForEvent) : Allows an idling notifier to 4157 service "Asynchronous Procedure Calls" from its wait state. Only 4158 useful for extension authors who decide they might want to try 4159 "completion routines" with WriteFileEx(), as an example. From 4160 experience, I recommend that "completion ports" should be used instead 4161 as the execution of the callbacks are more managable. 4162 41632004-03-01 Jeff Hobbs <jeffh@ActiveState.com> 4164 4165 * README: update patchlevel to 8.5a1 4166 * generic/tcl.h: 4167 * tools/tcl.wse.in, tools/tclSplash.bmp: 4168 * unix/configure, unix/configure.in, unix/tcl.spec: 4169 * win/README.binary, win/configure, win/configure.in: 4170 4171 * unix/tcl.m4: update HP-11 build libs setup 4172 41732004-03-01 Don Porter <dgp@users.sourceforge.net> 4174 4175 * unix/tcl.m4 (SC_CONFIG_CFLAGS): Allow 64-bit enabling on 4176 IRIX64-6.5* systems. [Bug 218561] 4177 * unix/configure: autoconf-2.57 4178 4179 * generic/tclTrace.c (TclCheckInterpTraces): The TIP 62 4180 * generic/tclTest.c (TestcmdtraceCmd): implementation introduced a 4181 * tests/trace.test (trace-29.10): bug by testing the CallFrame 4182 level instead of the iPtr->numLevels level when deciding what traces 4183 created by Tcl_Create(Obj)Trace to call. Added test to expose the 4184 error, and made fix. [FRQ 462580] 4185 41862004-02-28 Vince Darley <vincentdarley@users.sourceforge.net> 4187 4188 * tests/fileSystem.test: fix to Tcl Bug 905163. 4189 * tests/fileName.test: fix to Tcl Bug 904705. 4190 4191 * doc/{various}.n: removed 'the the' typos. 4192 41932004-02-26 Daniel Steffen <das@users.sourceforge.net> 4194 4195 * macosx/Makefile: fixed copyright year in Tcl.framework Info.plist 4196 41972004-02-25 Don Porter <dgp@users.sourceforge.net> 4198 4199 * tests/basic.test: Made several tests more robust to the 4200 * tests/cmdMZ.test: list-quoting of path names that might contain 4201 * tests/exec.test: Tcl-special chars like { or [. Should help us 4202 * tests/io.test: sort out [Bug 554068] 4203 * tests/pid.test: 4204 * tests/socket.test: 4205 * tests/source.test: 4206 * tests/unixInit.test: 4207 42082004-02-25 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4209 4210 * generic/tclLoad.c (Tcl_LoadObjCmd): Missing dereference caused 4211 segfault with non-loadable extension. [Bug 904307] 4212 4213 * unix/tclUnixChan.c (TcpGetOptionProc): Stop memory leak with very 4214 long hostnames. [Bug 888777] 4215 42162004-02-25 Pat Thoyts <patthoyts@users.sourceforge.net> 4217 4218 * win/tclWinDde.c: Removed some gcc warnings - except for the 4219 -Wconversion warning for GetGlobalAtomName. gcc is just wrong about 4220 this. 4221 42222004-02-24 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4223 4224 IMPLEMENTATION OF TIP#100 FROM GEORGIOS PETASIS 4225 * generic/tclLoad.c (Tcl_UnloadObjCmd): Implementation. 4226 * tests/unload.test: Test suite. 4227 * unix/dltest/pkgua.c: Helper for test suite. 4228 * doc/unload.n: Documentation. 4229 Also assorted changes (mostly small) to several other files. 4230 42312004-02-23 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4232 4233 * generic/regc_locale.c (cclass): Buffer was having its size reset 4234 instead of being released => memleak. [Bug 902562] 4235 42362004-02-21 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4237 4238 * generic/tclLoad.c (Tcl_LoadObjCmd): Fixed memory leak due to an 4239 improper error exit route. 4240 42412004-02-20 David Gravereaux <davygrvy@pobox.com> 4242 4243 * win/tclWinSock.c (SocketThreadExitHandler): Don't call 4244 TerminateThread when WaitForSingleObject returns a timeout. 4245 Tcl_Finalize called from DllMain will pause all threads. Trust that 4246 the thread will get the close notice at a later time if it does ever 4247 wake up before being cleaned up by the system anyway. 4248 42492004-02-17 Don Porter <dgp@users.sourceforge.net> 4250 4251 * doc/tcltest.n: 4252 * library/tcltest/tcltest.tcl: Changed -verbose default value to 4253 {body error} so that detailed information on unexpected errors in 4254 tests is provided by default, even after the fix for [Bug 725253] 4255 42562004-02-17 Jeff Hobbs <jeffh@ActiveState.com> 4257 4258 * tests/unixInit.test (unixInit-7.1): 4259 * unix/tclUnixInit.c (TclpInitPlatform): ensure the std fds exist to 4260 prevent crash condition [Bug 772288] 4261 42622004-02-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4263 4264 * generic/tclCompCmds.c (TclCompileSwitchCmd): Bozo mistake in memory 4265 releasing order when in an error case. [Bug 898910] 4266 42672004-02-16 Jeff Hobbs <jeffh@ActiveState.com> 4268 4269 * generic/tclTrace.c (TclTraceExecutionObjCmd) 4270 (TclTraceCommandObjCmd): fix possible mem leak in trace info. 4271 42722004-02-12 Mo DeJong <mdejong@users.sourceforge.net> 4273 4274 * win/tclWinInit.c (AppendEnvironment): Use the tail component of the 4275 passed in lib path instead of just blindly using lib+4. That worked 4276 when lib was "lib/..." but fails for other values. Thanks go to 4277 Patrick Samson for pointing this out. 4278 42792004-02-10 David Gravereaux <davygrvy@pobox.com> 4280 4281 * win/nmakehlp.c: better macro grepping logic. 4282 42832004-02-07 David Gravereaux <davygrvy@pobox.com> 4284 4285 * win/makefile.vc: 4286 * win/rules.vc: 4287 * win/tcl.rc: 4288 * win/tclsh.rc: Added an 'unchecked' option to the OPTS macro so a 4289 core built with symbols can be linked to the non-debug enabled C 4290 run-time. As per discussion with Kevin Kenny. Called like this: 4291 4292 nmake -af makefile.vc OPTS=unchecked,symbols 4293 4294 This clarifies the meaning of the 'g' naming suffix to mean only that 4295 the binary requires the debug enabled C run-time. Whether the binary 4296 contains symbols or not is a different condition. 4297 42982004-02-06 Don Porter <dgp@users.sourceforge.net> 4299 4300 * doc/clock.n: Removed reference to non-existent [file ctime]. 4301 43022004-02-05 David Gravereaux <davygrvy@pobox.com> 4303 4304 * docs/tclvars.n: Added clarification of the tcl_platform(debug) var 4305 that it only refers to the flavor of the C run-time, and not whether 4306 the core contains symbols. 4307 43082004-02-05 Don Porter <dgp@users.sourceforge.net> 4309 4310 * generic/tclFileName.c (SkipToChar): Corrected CONST and type-casting 4311 issues that caused compiler warnings. 4312 43132004-02-04 Don Porter <dgp@users.sourceforge.net> 4314 4315 * generic/tclCmdAH.c (StoreStatData): Removed improper refcount 4316 decrement of the varName parameter. This error was causing segfaults 4317 following test cmdAH-28.7. 4318 4319 * library/tcltest/tcltest.tcl: Corrected references to non-existent 4320 $name variable in [cleanupTests]. [Bug 833637] 4321 43222004-02-03 Don Porter <dgp@users.sourceforge.net> 4323 4324 * library/tcltest/tcltest.tcl: Corrected parsing of single command 4325 line argument (option with missing value) [Bug 833910] 4326 * library/tcltest/pkgIndex.tcl: Bump to version 2.2.5. 4327 43282004-02-02 David Gravereaux <davygrvy@pobox.com> 4329 4330 * generic/tclIO.c (Tcl_Ungets): Fixes improper filling of the channel 4331 buffer. This is the buffer before the splice. [Bug 405995] 4332 43332004-02-01 David Gravereaux <davygrvy@pobox.com> 4334 4335 * tests/winPipe.test: more pass-thru commandline verifications. 4336 * win/tclWinPipe.c (BuildCommandLine): Special case quoting for '{' 4337 not required by the c-runtimes's parse_cmdline(). 4338 * win/tclAppInit.c: Removed our custom setargv() in favor of the work 4339 provided by the c-runtime. [Bug 672938] 4340 4341 * win/nmakehlp.c: defensive techniques to avoid static buffer 4342 overflows and a couple envars upsetting invokations of cl.exe and 4343 link.exe. [Bug 885537] 4344 4345 * tests/winPipe.test: Added proof that BuildCommandLine() is not doing 4346 the "N backslashes followed a quote -> insert N * 2 + 1 backslashes 4347 then a quote" rule needed for the crt's parse_cmdline(). 4348 * win/tclWinPipe.c: Fixed BuildCommandLine() to pass the new cases. 4349 43502004-01-30 David Gravereaux <davygrvy@pobox.com> 4351 4352 * win/makefile.vc: Use the -GZ compiler switch when building for 4353 symbols. This is supposed to emulate the release build better to avoid 4354 hiding problems that only show themselves in a release build. 4355 43562004-01-29 Vince Darley <vincentdarley@users.sourceforge.net> 4357 4358 * generic/tclPathObj.c: fix to [Bug 883143] in file normalization 4359 43602004-01-29 Vince Darley <vincentdarley@users.sourceforge.net> 4361 4362 * doc/file.n: 4363 * generic/tclFCmd.c 4364 * generic/tclTest.c 4365 * library/init.tcl 4366 * mac/tclMacFile.c 4367 * tests/fileSystem.test: fix to [Bug 886352] where 'file copy -force' 4368 had inconsistent behaviour wrt target files with insufficient 4369 permissions, particular from vfs->native fs. Behaviour of '-force' is 4370 now always consistent (and now consistent with behaviour of 'file 4371 delete -force'). Added new tests and documentation and cleaned up the 4372 'simplefs' test filesystem. 4373 4374 * generic/tclIOUtil.c 4375 * unix/tclUnixFCmd.c 4376 * unix/tclUnixFile.c 4377 * win/tclWinFile.c: made native filesystems more robust to C code 4378 which asks for mount lists. 4379 4380 * generic/tclPathObj.c: fix to [Bug 886607] removing warning/error 4381 with some compilers. 4382 43832004-01-28 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4384 4385 * generic/tclObj.c (SetBooleanFromAny): Rewrite to do more efficient 4386 string->bool conversion. 4387 Many other minor whitespace/style fixes to this file too. 4388 43892004-01-27 David Gravereaux <davygrvy@pobox.com> 4390 4391 * win/nmakehlp.c: Use '.\nul' as the sourcefile name instead of 'nul' 4392 so VC 5.2 doesn't try searching the path for it and failing with a 4393 possible dialogbox popping up about having to add a CD to an empty 4394 drive. Also added a SetErrorMode() call to disable any dialogs that 4395 cl.exe or link.exe might create. [Bug 885537] 4396 43972004-01-22 Vince Darley <vincentdarley@users.sourceforge.net> 4398 4399 * doc/file.n: clarified documentation of 'file system' [Bug 883825] 4400 * tests/fCmd.test: improved test result in failure case. 4401 44022004-01-22 Vince Darley <vincentdarley@users.sourceforge.net> 4403 4404 * tests/fileSystem.test: 3 new tests 4405 * generic/tclPathObj.c: fix to [Bug 879555] in file normalization. 4406 * doc/filename.n: small clarification to Windows behaviour with 4407 filenames like '.....', 'a.....', '.....a'. 4408 4409 * generic/tclIOUtil.c: slight improvement to native cwd caching on 4410 Windows. 4411 44122004-01-21 David Gravereaux <davygrvy@pobox.com> 4413 4414 * doc/Panic.3: Mentions of 'panic' and 'panicVA' removed from the 4415 documentation. 4416 44172004-01-21 Vince Darley <vincentdarley@users.sourceforge.net> 4418 4419 * doc/FileSystem.3: 4420 * generic/tcl.decls: 4421 * generic/tclCmdAH.c 4422 * generic/tclDecls.h 4423 * generic/tclFCmd.c 4424 * generic/tclFileName.c 4425 * generic/tclFileSystem.h 4426 * generic/tclIOUtil.c 4427 * generic/tclInt.decls 4428 * generic/tclInt.h 4429 * generic/tclIntDecls.h 4430 * generic/tclPathObj.c 4431 * generic/tclStubInit.c 4432 * generic/tclTest.c 4433 * mac/tclMacFile.c 4434 * tests/fileName.test 4435 * tests/fileSystem.test 4436 * tests/winFCmd.test 4437 * unix/tclUnixFile.c 4438 * win/tclWin32Dll.c 4439 * win/tclWinFCmd.c 4440 * win/tclWinFile.c 4441 * win/tclWinInt.h 4442 4443 Three main issues accomplished: (1) cleaned up variable names in the 4444 filesystem code so that 'pathPtr' is used throughout. (2) applied a 4445 round of filesystem optimisation with better handling and caching of 4446 relative and absolute paths, requiring fewer conversions. (3) 4447 clarifications to the documentation, particularly regarding the 4448 acceptable refCounts of objects. Some new tests added. Tcl benchmarks 4449 show a significant improvement over 8.4.5, and on Windows typically a 4450 small improvement over 8.3.5 (Unix still appears to require 4451 optimisation). TCL_FILESYSTEM_VERSION_2 introduced, but for internal 4452 use only. There should be no public incompatibilities from these 4453 changes. Thanks to dgp for extensive testing. 4454 44552004-01-19 David Gravereaux <davygrvy@pobox.com> 4456 4457 * win/tclWinPipe.c (Tcl_WaitPid): Fixed a thread-safety problem with 4458 the process list. The delayed cut operation after the wait was going 4459 stale by being outside the list lock. It now cuts within the lock and 4460 does a locked splice for when it needs to instead. [Bug 859820] 4461 44622004-01-18 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4463 4464 * generic/tclCompile.c, generic/tclCompile.h: Two new opcodes, 4465 INST_LIST_INDEX_IMM and INST_LIST_RANGE_IMM, that have operand(s) of 4466 new type OPERAND_IDX4 which represents indexes into things like lists 4467 (and perhaps other things eventually.) 4468 * generic/tclExecute.c (TclExecuteByteCode): Implementation of the new 4469 opcodes. INST_LIST_INDEX_IMM does a simple [lindex] with either front- 4470 or end-based simple indexing. INST_LIST_RANGE_IMM does an [lrange] 4471 with front- or end-based simple indexing for both the reference to the 4472 first and last items in the range. 4473 * generic/tclCompCmds.c (TclCompileLassignCmd): Generate bytecode for 4474 the [lassign] command. 4475 44762004-01-17 David Gravereaux <davygrvy@pobox.com> 4477 4478 * win/tclWinInit.c: added #pragma comment(lib, "advapi32.lib") when 4479 compiling under VC++ so we don't need to specify it when linking. 4480 44812004-01-17 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4482 4483 * generic/tclCmdIL.c (Tcl_LassignObjCmd): Add more shimmering 4484 protection for when the list is also one of the variables. 4485 4486 BASIC IMPLEMENTATION OF TIP#57 4487 * generic/tclCmdIL.c (Tcl_LassignObjCmd): Implementation of the 4488 [lassign] command that takes full advantage of Tcl's object API. 4489 * doc/lassign.n: New file documenting the command. 4490 * tests/cmdIL.test (cmdIL-6.*): Test suite for the command. 4491 44922004-01-15 David Gravereaux <davygrvy@pobox.com> 4493 4494 * win/tclWinReg.c: Placed the requirement for advapi.lib into the 4495 object file itself with #pragma comment (lib, ...) when built with 4496 VC++. This will simplify linking for users of the static library. 4497 4498 * win/rules.vc: Added new 'fullwarn' to the CHECKS commandline macro; 4499 sets $(FULLWARNINGS). 4500 4501 * win/makefile.vc: Removed 'advapi.lib' from $(baselibs). Added new 4502 logic to crank-up the warning levels for both compile and link when 4503 $(FULLWARNINGS) is set. Some clean-up with how the resource files are 4504 built and how -DTCL_USE_STATIC_PACKAGES is sent when compiling the 4505 shells. 4506 4507 * win/tclAppInit.c: Small change in how TCL_USE_STATIC_PACKAGES is 4508 used. 4509 4510 * win/tcl.rc: 4511 * win/tclsh.rc: Some clean-up with how the resource files are built. 4512 Fixed 'OriginalFilename' problem that still thought a debug suffix was 4513 still 'd', now is 'g'. 4514 45152004-01-14 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4516 4517 * generic/tclDictObj.c (TraceDictPath, DictExistsCmd): Adjusted 4518 behaviour of [dict exists] so a failure to look up a dictionary along 4519 the path of dicts doesn't trigger an error. This is how it was 4520 documented to behave previously... [Bug 871387] 4521 4522 * generic/tclDictObj.c: Assorted dict fixes from Peter Spjuth relating 4523 to [Bug 876170]. 4524 (SetDictFromAny): Make sure that lists retain their ordering even when 4525 converted to dictionaries and back. 4526 (TraceDictPath): Correct object reference count handling! 4527 (DictReplaceCmd, DictRemoveCmd): Stop object leak. 4528 (DictIncrCmd,DictLappendCmd,DictAppendCmd,DictSetCmd,DictUnsetCmd): 4529 Simpler handling of reference counts when assigning to variables. 4530 * tests/dict.test (dict-19.2): Memory leak stress test 4531 45322004-01-13 Don Porter <dgp@users.sourceforge.net> 4533 4534 * generic/tclCmdMZ.c (Tcl_SwitchObjCmd): Silence compiler warnings. 4535 4536 Patch 876451: restores performance of [return]. Also allows forms such 4537 as [return -code error $msg] to be bytecompiled. 4538 4539 * generic/tclInt.h: Factored Tcl_ReturnObjCmd() into two pieces: 4540 * generic/tclCmdMZ.c: TclMergeReturnOptions(), which can parse the 4541 options to [return], check their validity, and create the 4542 corresponding return options dictionary, and TclProcessReturn(), which 4543 takes that return options dictionary and performs the [return] 4544 operation. 4545 4546 * generic/tclCompCmds.c: Rewrote TclCompileReturnCmd() to call 4547 TclMergeReturnOptions() at compile time so the return options 4548 dictionary is computed at compile time (when it is fully known). The 4549 dictionary is pushed on the stack along with the result, and the code 4550 and level values are included in the bytecode as operands. Also 4551 supports optimized compilation of un-[catch]ed [return]s from procs 4552 with default options into the INST_DONE instruction. 4553 4554 * generic/tclExecute.c: Rewrote INST_RETURN instruction to retrieve 4555 the code and level operands, pop the return options from the stack, 4556 and call TclProcessReturn() to perform the [return] operation. 4557 4558 * generic/tclCompile.h: New utilities include TclEmitInt4 macro 4559 * generic/tclCompile.c: and TclWordKnownAtCompileTime(). 4560 4561 End Patch 876451. 4562 4563 * generic/tclFileName.c (Tcl_GlobObjCmd): Latest changes to management 4564 of the interp result by Tcl_GetIndexFromObj() exposed improper interp 4565 result management in the [glob] command procedure. Corrected by 4566 adopting the Tcl_SetObjResult(Tcl_NewStringObj) pattern. This stopped 4567 a segfault in test filename-11.36. [Bug 877677] 4568 45692004-01-13 Donal K. Fellows <donal.k.fellows@man.ac.uk> 4570 4571 * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct, Tcl_WrongNumArgs): 4572 Create fresh objects instead of using the one currently in the 4573 interpreter, which isn't guaranteed to be fresh and unshared. The cost 4574 for the core will be minimal because of the object cache, and this 4575 fixes [Bug 875395]. 4576 45772004-01-12 Miguel Sofer <msofer@users.sf.net> 4578 4579 * generic/tclCompExpr.c (CompileLandOrLorExpr): cosmetic changes. 4580 45812004-01-12 Miguel Sofer <msofer@users.sf.net> 4582 4583 * generic/tclCompExpr.c (CompileLandOrLorExpr): new logic, fewer 4584 instructions. As a side effect, the instructions INST_LOR and 4585 INST_LAND are now never used. 4586 * generic/tclExecute.c (INST_JUMP*): small optimisation; fix a bug in 4587 debug code. 4588 45892004-01-11 David Gravereaux <davygrvy@pobox.com> 4590 4591 * win/tclWinThrd.c (Tcl_ConditionNotify): condPtr must be dereferenced 4592 to see if there are waiters else uninitialized datum is manipulated. 4593 [Bug 849007 789338 745068] 4594 45952004-01-09 David Gravereaux <davygrvy@pobox.com> 4596 4597 * generic/tcl.h: Renamed and deprecated #defines moved to within the 4598 #ifndef TCL_NO_DEPRECATED block. This allows us to build Tcl to check 4599 for deprecated functions in use, such as panic() and Tcl_Ckalloc(). By 4600 request from DKF. Extensions that build with -DTCL_NO_DEPRECATED now 4601 have these macros as restricted. 4602 ***POTENTIAL INCOMPATIBILITY*** 4603 4604 * win/makefile.vc: 4605 * win/rules.vc: Added -DTCL_NO_DEPRECATED usage to makefile.vc. 4606 Called like this: nmake -af makefile.vc CHECKS=nodep 4607 46082004-01-09 Vince Darley <vincentdarley@users.sourceforge.net> 4609 4610 * generic/tclIOUtil.c: fix to infinite loop in TclFinalizeFilesystem 4611 [Bug 873311] 4612 4613 ****************************************************************** 4614 *** CHANGELOG ENTRIES FOR 2003 IN "ChangeLog.2003" *** 4615 *** CHANGELOG ENTRIES FOR 2002 IN "ChangeLog.2002" *** 4616 *** CHANGELOG ENTRIES FOR 2001 IN "ChangeLog.2001" *** 4617 *** CHANGELOG ENTRIES FOR 2000 IN "ChangeLog.2000" *** 4618 *** CHANGELOG ENTRIES FOR 1999 AND EARLIER IN "ChangeLog.1999" *** 4619 ****************************************************************** 4620