12000-12-14 Don Porter <dgp@users.sourceforge.net> 2 3 * generic/tclExecute.c: 4 * tests/expr-old.test: Re-wrote Tcl's [expr rand()] and [expr 5 srand($seed)] implementations, fixing a range error on some 64-bit 6 platforms. Added tests that detect the bug. The rewrite changes the 7 seed -> sequence map on 64-bit platforms, only for seed >= 2^31, a 8 slight incompatibility. [Bug 121072, Patch 102781] 9 102000-12-10 Don Porter <dgp@users.sourceforge.net> 11 12 * library/init.tcl: 13 * library/msgcat/msgcat.tcl: 14 * library/msgcat/pkgIndex.tcl: 15 * library/opt/optparse.tcl: 16 * library/opt/pkgIndex.tcl: Where [uplevel] is used in a proc to 17 evaluate a Tcl built-in command in the caller's context, the built-in 18 commands are now fully namespace-qualified. This prevents problems 19 when the caller context is in a namespace where the built-in command 20 name has been used by a command in the namespace. (For example, 21 [::ns::set] might be called instead of the intended [::set]). [Bug 22 119422, Patch 102545] 23 242000-12-09 Jeff Hobbs <jhobbs@interwoven.com> 25 26 * win/tclWinTime.c (CalibrationThread): added lint return value to 27 prevent compiler warning. [Bug 125005] 28 29 * docs/scan.n: 30 * tests/scan.test: 31 * generic/tclScan.c (Tcl_ScanObjCmd): changed %o and %x to use strtoul 32 instead of strtol to correctly preserve scan<>format conversion of 33 large integers. [Patch 102663, Bug 124600] 34 35 * generic/tclExecute.c (TclExecuteByteCode): Commited patch fixing 36 handling of {!<boolean>} in expressions. [Patch 102702] 37 382000-12-08 Jeff Hobbs <jhobbs@interwoven.com> 39 40 * library/init.tcl: Added support for PATHEXT variable in auto_execok, 41 recognizing the proper set of executable extensions on Windows. [Patch 42 102719] 43 442000-12-08 Andreas Kupries <a.kupries@westend.com> 45 46 * generic/tclEncoding.c (LoadTableEncoding): Changed dangerous code to 47 something less critical. This fixes [Bug 119417], part A without 48 affecting the speed when loading encodings. 49 502000-12-08 Donal K. Fellows <fellowsd@cs.man.ac.uk> 51 52 * doc/open.n: Added xref to fconfigure and advice on the opening of 53 binary files. Should help prevent a recurrence of bugs like [Bug 54 124558] 55 562000-12-07 Jeff Hobbs <jhobbs@interwoven.com> 57 58 * generic/tcl.h: added note about need to updated 59 library/dde/pkgIndex.tcl with minor version increment. 60 61 * library/dde/pkgIndex.tcl: updated to use 84 version to reflect the 62 makefile. Should probably be updated to use its real version at some 63 point. [Patch 102560, Bug 119421] 64 652000-12-06 Eric Melski <ericm@ajubasolutions.com> 66 67 * generic/tcl.h (attemptckalloc): Fixed typo for #define of 68 attemptckalloc (was defined to Tcl_AttempDbCkalloc, should have been 69 Tcl_AttemptDbCkalloc). [Bug 124384] 70 71 * generic/tclCkalloc.c: Added TCL_MEM_DEBUG versions of 72 Tcl_AttemptDbCkrealloc and Tcl_AttemptDbCkalloc. [Bug 124384]. 73 742000-11-24 Donal K. Fellows <fellowsd@cs.man.ac.uk> 75 76 * generic/tclExecute.c (TclExecuteByteCode): Logical negation "!" can 77 now handle string booleans, provided those values are placed in 78 variables. 79 80 * tests/expr.test (expr-13.17): Check that [expr {!$var}] can negate 81 the string-versions of booleans "yes", "false", etc. 82 83 * library/tcltest/tcltest.tcl (getMatchingFiles, 84 (getMatchingDirectories): 85 * tools/man2html.tcl (doDir): 86 * tools/man2help.tcl (doDir): 87 * library/package.tcl (tclPkgUnknown,tclMacPkgSearch): 88 * library/safe.tcl (AddSubDirs): [glob] uses -directory instead of 89 unsafe [file join]. [Bug 123313] 90 91 * generic/tclIndexObj.c: 92 * generic/tclTestObj.c (TestindexobjCmd): Changed internal 93 representation of index objects to fix [Bug 119082]; fix shouldn't be 94 visible to outside world... 95 96 * generic/tclTest.c (TestGetIndexFromObjStructObjCmd): 97 * tests/indexObj.test: (indexObj-6.*) Added to test for presence of 98 [Bug 119082]. 99 1002000-11-23 Donal K. Fellows <fellowsd@cs.man.ac.uk> 101 102 * generic/tclCmdIL.c (Tcl_LsortObjCmd): Fixed memory leak from [Bug 103 119398] 104 105 * library/init.tcl (unknown): Added specific level parameters to 106 all uplevel invokations to boost performance; didn't dare touch 107 the "namespace inscope" stuff though, since it looks sensitive 108 to me! Should fix [Bug 123217], though testing is tricky... 109 1102000-11-21 Andreas Kupries <a.kupries@westend.com> 111 112 All of the changes below are described in TIP #7 ~ Specification and 113 result from the application of the patch contained therein. Creator of 114 the patch is Kevin Kenny <kennykb@crd.ge.com>. The patch used here is 115 actually a bit different. Two MS specific constant values (format 116 FOOui64) were replaced with a more portable formatting of the values 117 and an additional cast to LONGLONG. My cross-compiling gcc was unable 118 to process the original form. [Patch 102459] 119 120 * tclWinTime.c: Add to the static data a set of variables that manage 121 the phase-locked techniques, including a ''CRITICAL_SECTION'' to guard 122 them so that multi-threaded code is stable. 123 124 * tclWinTime.c: Modify ''TclpGetSeconds'' to call ''TclpGetTime'' and 125 return the 'seconds' portion of the result. This change is necessary 126 to make sure that the two times are consistent near the rollover from 127 one second to another. 128 129 * tclWinTime.c: Modify ''TclpGetClicks'' to use TclpGetTime to 130 determine the click count as a number of microseconds. 131 132 * tclWinTime.c: Modify ''TclpGetTime'' to return the time as M*Q+B, 133 where Q is the result of ''QueryPerformanceCounter'', and M and B are 134 variables maintained by the phase-locked loop to keep the result as 135 close as possible to the system clock. The ''TclpGetTime'' call will 136 also launch the phase-lock management in a separate thread the first 137 time that it is invoked. If the performance counter is unavailable, or 138 if its frequency is not one of the two common 8254-compatible rates, 139 then ''TclpGetTime'' will return the result of ''ftime'' as it does in 140 Tcl 8.3.2. 141 142 * tclWinTime.c: Add the clock calibration procedure. The calibration 143 is somewhat complex; to save space, the reader is referred to the 144 reference implementation for the details of how the time base and 145 frequency are maintained. 146 147 * tclWinNotify.c: Modify ''Tcl_Sleep'' to test that the process has, 148 in fact, slept for the requisite time by calling ''TclpGetTime'' and 149 comparing with the desired time. Otherwise, roundoff errors may cause 150 the process to awaken early. 151 152 * tclWinTest.c: Add a ''testwinclock'' command. This command returns a 153 four element list comprising the seconds and microseconds portions of 154 the system clock and the seconds and microseconds portions of the Tcl 155 clock. 156 157 * winTime.test: Add to the test suite a test that makes sure that the 158 Tcl clock stays within 1.1 ms of the system clock over the duration of 159 the test. 160 1612000-11-21 Donal K. Fellows <fellowsd@cs.man.ac.uk> 162 163 * doc/global.n: 164 * doc/upvar.n: 165 * doc/variable.n: Improved documentation to mention that variables so 166 created are listed in [info locals] and added a few more cross-links 167 between these commands. [Bug 119387] 168 1692000-11-17 Donal K. Fellows <fellowsd@cs.man.ac.uk> 170 171 * tests/safe.test: (safe-4.3): 172 * generic/tclVar.c (TclLookupVar): Changed again. Now passes all the 173 tests, though one needed modifying since it required the wrong answer. 174 (Why on earth do we have inline modification of argument strings? This 175 sort of thing is horrendous to debug and doesn't work well in a 176 multithreaded environment!) [Bug 119192] 177 178 * tests/var.test: (var-1.19) If my attempts to fix the problem aren't 179 right yet, my attempts to describe it look pretty good to me... 180 1812000-11-16 Andreas Kupries <a.kupries@westend.com> 182 183 * win/tclWinPort.h (line 69): Changed reference to winsock2.h into 184 winsock.h. This was a leftover from a foray into using winsock version 185 2 (History lesson from Scott Redman and Jeff Hobbs). This code was no 186 problem when compiling Tcl itself, but could trip extensions. [Bug 187 122568] 188 1892000-11-15 Jeff Hobbs <jeff.hobbs@acm.org> 190 191 * unix/Makefile.in: removed bp.c references (hasn't existed in a long 192 time). Corrected 'make dist' to make dist with unversioned library 193 directories (same as out of cvs), so make install works correctly with 194 either source tree. 195 1962000-11-15 Jeff Hobbs <jeff.hobbs@acm.org> 197 198 * generic/tclVar.c (TclLookupVar): reverted fix below as it broke all 199 other array unset error reporting. Bug 119192 is still open. 200 2012000-11-15 Donal K. Fellows <fellowsd@cs.man.ac.uk> 202 203 * generic/tclVar.c (TclLookupVar): Changed references to part2 to use 204 elName instead in various error message generating spots. [Bug 119192] 205 2062000-11-03 David Gravereaux <davygrvy@ajubasolutions.com> 207 208 * win/.cvsignore: Removed 'configure' from the glob list now that it's 209 included. 210 2112000-11-03 Jeff Hobbs <hobbs@ajubasolutions.com> 212 213 8.4a2 RELEASE 214 215 * unix/Makefile.in (install-libraries, dist): 216 * win/makefile.vc (install-libraries): 217 * win/Makefile.in (install-libraries): updated to install unversioned 218 library directories into versioned directories. 219 220 * tools/tcl.wse.in: updated for unversioning of library dirs 221 222 * unix/mkLinks: updated mkLinks with latest doc updates 223 224 * doc/Tcl_Main.3: added docs for Tcl_SetMainLoop 225 226 * generic/tclStubInit.c: 227 * generic/tclDecls.h: 228 * generic/tcl.decls: added Tcl_SetMainLoop proc that allows people to 229 set a main loop that will run for tclsh. 230 * generic/tcl.h: added Tcl_MainLoopProc typedef 231 * generic/tclMain.c (Tcl_SetMainLoop, StdinProc, Prompt): new 232 StdinProc and Prompt static procs and Tcl_SetMainLoop stubs proc. The 233 first two handle a fileevent based prompt (taken from tkMain.c). 234 Tcl_SetMainLoop enables the interactive setting of a main loop 235 procedure. This enables Tk to be a loadable package. 236 2372000-11-02 David Gravereaux <davygrvy@ajubasolutions.com> 238 239 * generic/tclEvent.c: tclLibraryPath Tcl_Obj didn't have a way to 240 share its data among threads. This caused Tcl_Init() to always fail in 241 threads. Added a way to pass the data around with a global char*. 242 [BUG: 5301] 243 2442000-11-02 Jeff Hobbs <hobbs@ajubasolutions.com> 245 246 * unix/configure: 247 * unix/dltest/configure: 248 * win/configure: 249 * tools/configure: checked in configure scripts so people doing CVS 250 checkouts aren't required to have autoconf. Changes to configure.in in 251 the future will require the corresponding configure script to also be 252 re-autoconf'ed and checked in. 253 254 * win/makefile.vc: 255 * win/tcl.m4: makefile fixes for Win64 support 256 257 * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): minor cast 258 changes. 259 2602000-11-01 Jeff Hobbs <hobbs@ajubasolutions.com> 261 262 * unix/tcl.m4: removed use of -lbsd and -ldl for AIX-5. 263 264 * tests/subst.test: added tests for non-zero return code handling by 265 subst. 266 * generic/tclParse.c (Tcl_EvalEx): corrected handling of non-zero, 267 non-error return code cases for subst. [Bug 119829] 268 269 * generic/tclVar.c (TclVarTraceExists): Corrected excessive mem use 270 when info exists was called on a non-existent array element. [Bug 271 119213, 119336] 272 2732000-10-30 David Gravereaux <davygrvy@ajubasolutions.com> 274 275 * win/configure.in: 276 * win/Makefile.in: 277 * win/makefile.vc: 278 * win/tcl.rc: 279 * win/tclsh.rc: Added logic to derive filenames better in the resource 280 scripts based on compile options. 281 2822000-10-30 Jeff Hobbs <hobbs@ajubasolutions.com> 283 284 * unix/tclUnixInit.c: added default encoding map from "ja_JP.eucJP" to 285 "euc-jp". (takahashi) 286 287 * tests/clock.test: corrected clock-2.* test numbering 288 289 * unix/configure.in (SC_TCL_LINK_LIBS): removed code that was 290 commented out (it had been moved to tcl.m4's SC_TCL_LINK_LIBS 291 already). 292 293 * unix/tcl.m4: consolidated gettimeofday check for AIX. 294 2952000-10-27 Jeff Hobbs <hobbs@ajubasolutions.com> 296 297 * unix/configure.in: 298 * unix/tcl.m4: added support for AIX-5. 299 300 * generic/tclIO.c (Tcl_NotifyChannel): removed #ifdef around code for 301 old channel structures, placed preserve/release around statePtr 302 * generic/tclIO.c (CloseChannel): the statePtr for a channel was not 303 being freed when the last channel in a stack was freed, causing a mem 304 leak. 305 306 * unix/tclUnixChan.c: updated channel types to strict 307 TCL_CHANNEL_VERSION_2 style to avoid compiler warnings. They work 308 either way, but this avoids compiler warnings (that worries people). 309 3102000-10-27 Jennifer Hom <jenn@ajubasolutions.com> 311 312 * library/tcltest1.0/tcltest.tcl: Removed a cd into the test directory 313 in runAllTests that screwed up the temporary directory setting, 314 effectively preventing users from running tests on multiple platforms 315 at the same time. 316 3172000-10-26 David Gravereaux <davygrvy@ajubasolutions.com> 318 319 * win/tclWinFile.c (TclpMatchFilesTypes): NULL was being set to "attr" 320 which was a DWORD. Changed NULL to zero because a 'void *' can't be 321 set to a DWORD to avoid the compiler warning. 322 3232000-10-24 Jennifer Hom <jenn@ajubasolutions.com> 324 325 * tests/all.tcl: Removed support for tcltest 1.0. 326 327 * tests/tcltest.test: 328 * library/tcltest1.0/tcltest.tcl: 329 * library/tcltest1.0/pkgIndex.tcl: 330 * docs/tcltest.n: Moved tcltest2 code so that it's the standard 331 version of tcltest. Removed all tcltest2 files (tests/tcltest2.test, 332 library/tcltest1.0/tcltest2.tcl, docs/tcltest2.n). 333 3342000-10-20 Jeff Hobbs <hobbs@ajubasolutions.com> 335 336 * win/tclWinFile.c (TclpMatchFilesTypes): made the stat call only 337 occur when necessary (for 'glob' command). Significantly speeds up 338 glob command from 8.3. [BUG: 6216] 339 3402000-10-19 Jennifer Hom <jenn@ajubasolutions.com> 341 342 * library/tcltest1.0/tcltest2.tcl: 343 * tests/tcltest2 344 * doc/tcltest2.n: Code and documentation cleanup. Modified -verbose to 345 take list of keywords as well as string of letters. Removed Tcl 346 version information from tcltest. Removed tcltest::grep from tcltest 347 package. Added optional 3rd directory argument to 348 makeFile/makeDirectory and removeFile/removeDirectory. 349 350 * tests/basic.test: Changed references to tcltest::tclVersion to 351 hardcoded numbers. 352 * generic/tcl.h: Changed reference to tcltest2.tcl and tcltest.tcl in 353 comments to tests/basic.test. 354 3552000-10-06 David Gravereaux <davygrvy@ajubasolutions.com> 356 357 * win/tclWinChan.c: moved Win2K bug case test with GetStdHandle() from 358 TclpGetDefaultStdChannel into Tcl_MakeFileChannel to enable a more 359 general method in detecting invalid OS handles rather than just a 360 specific known case. [BUG: 5971] 361 3622000-10-06 Jeff Hobbs <hobbs@ajubasolutions.com> 363 364 * tests/cmdAH.test: extra tests for 'file channels' that include 365 multiple interpreter tests and channel sharing 366 * generic/tclIO.c (Tcl_GetChannelNamesEx): corrected function (and 367 consequently 'file channels') to return channels that are actually 368 registered for this specific interp, rather than this thread. 369 370 * doc/CrtChannel.3: fixed spelling mistakes 371 3722000-09-29 Jennifer Hom <jenn@ajubasolutions.com> 373 374 * library/tcltest1.0/tcltest2.tcl: 375 * tests/tcltest2.test: 376 * doc/tcltest2.n: Modified the new form of the test command to accept 377 both attribute-value pairs and command line options. Updated the tests 378 and the documentation for this new format. Also changed the option 379 names for the test command. 380 3812000-09-29 Jeff Hobbs <hobbs@scriptics.com> 382 383 * win/tclWinSerial.c (SerialGetOptionProc): corrected reporting of 384 space parity on Windows (Eason) [Bug 6057]. 385 386 * win/Makefile.in: commented use of TESTFLAGS 387 * unix/Makefile.in: added TESTFLAGS to test target to conform with 388 Windows makefile and TEA style. 389 390 * tests/stack.test: prevented possible crash on systems with low 391 default stacksize (Tru64, AIX) in infinite recursion test. A solution 392 to check remaining stack space in the core is best, but hard to do in 393 a cross-platform manner. 394 395 * generic/tclIOGT.c (FLUSH_DELAY): renamed DELAY define to FLUSH_DELAY 396 to avoid defn conflict using Tru64's cc. 397 3982000-09-28 Jeff Hobbs <hobbs@ajubasolutions.com> 399 400 * tools/tcl.wse.in: added tclPlatDecls.h and tkPlatDecls.h to the 401 Windows .exe install. 402 403 * tests/fCmd.test (fCmd-6.20): corrected test to remove c:/tcl8975@ 404 after creating it. 405 406 * tests/fileName.test: cleaned up the testing of glob patterns for 407 c:/globTest (Windows) to directly create/remove directory. 408 4092000-09-27 Jeff Hobbs <hobbs@ajubasolutions.com> 410 411 * generic/tcl.decls: 412 * generic/tclIO.c: updated Tcl_IsChannelShared, 413 Tcl_IsChannelRegistered, Tcl_CutChannel, Tcl_SpliceChannel, 414 Tcl_IsChannelExisting, and Tcl_ClearChannelHandlers to conform to the 415 new stacked channel implementation. Their stub slots were also moved 416 to give preference to the new 8.3.2 stub functions. This will cause an 417 incompatibility with 8.4a1 only. 418 (StopCopy): fixed a bug introduced by a partial fix in 8.3.2 that 419 didn't set nonBlocking correctly when resetting the flags for the 420 write side. [Bug: 6261] 421 422 * doc/ChnlStack.3: 423 * doc/CrtChannel.3: 424 * generic/tcl.decls: 425 * generic/tcl.h: 426 * generic/tclDecls.h: 427 * generic/tclIO.c: 428 * generic/tclIO.h: 429 * generic/tclIOGT.c: 430 * generic/tclInt.decls: 431 * generic/tclIntDecls.h: 432 * generic/tclStubInit.c: 433 * generic/tclTest.c: 434 * tests/iogt.test: 435 * unix/Makefile.in: 436 * win/Makefile.in: 437 * win/makefile.vc: 438 * win/tclConfig.sh.in: 439 * win/tclWinChan.c: 440 * win/tclWinConsole.c: 441 * win/tclWinPipe.c: 442 * win/tclWinSerial.c: 443 * win/tclWinSock.c: Up-port of changes made in 8.3.2 to 8.4a2 code 444 base. Most of these changes relate to the rewrite of the stacked 445 channel implementation, with a few config related fixes. 446 447 Following is an asynchronous include of the applicable ChangeLog 448 entries from 8.3.2. 449 450 ******************************************************** 451 ** START OF ASYNCHRONOUS UP-PORT LOG (8.3.2 -> 8.4a2) ** 452 ******************************************************** 453 4542000-08-07 Jeff Hobbs <hobbs@scriptics.com> 455 456 * doc/ChnlStack.3: 457 * doc/CrtChannel.3: updated the docs to be aware of the 458 TCL_CHANNEL_VERSION_2 style of Tcl channels. 459 460 * generic/tclIO.c (Tcl_CreateChannel): added assertion to verify that 461 the new channel versioning will be binary compatible with older 462 channel drivers. 463 4642000-08-05 Jeff Hobbs <hobbs@scriptics.com> 465 466 * generic/tclIOGT.c (TclChannelTransform): fixed segfault that would 467 occur when transforming a channel with a proc that did not yet exist. 468 (Kupries) 469 470 * generic/tclTest.c (TestChannelCmd): added some lint init'ing of 471 statePtr and chan vars. 472 4732000-07-26 Jeff Hobbs <hobbs@scriptics.com> 474 475 Merged core-8-3-1-io-rewrite back into core-8-3-1-branch. The 476 core-8-3-1-io-rewrite branch should now be considered defunct. 477 478 * generic/tclStubInit.c: 479 * generic/tclDecls.h: 480 * generic/tcl.decls: 481 * generic/tcl.h: 482 * generic/tclIO.c: moved the Tcl_Channel* macros from tcl.h to tclIO.c 483 and made them proper stubbed functions. These are: Tcl_ChannelName, 484 Tcl_ChannelVersion, Tcl_ChannelBlockModeProc, Tcl_ChannelCloseProc, 485 Tcl_ChannelClose2Proc, Tcl_ChannelInputProc, Tcl_ChannelOutputProc, 486 Tcl_ChannelSeekProc, Tcl_ChannelSetOptionProc, 487 Tcl_ChannelGetOptionProc, Tcl_ChannelWatchProc, 488 Tcl_ChannelGetHandleProc, Tcl_ChannelFlushProc, and 489 Tcl_ChannelHandlerProc. These should be used to access the 490 Tcl_ChannelType structure instead of direct pointer dereferencing. 491 492 * tests/iogt.test: added RCS string, marked tests 2.* to be unixOnly 493 due to underlying system differences. 494 4952000-07-25 Andreas Kupries <a.kupries@westend.com> 496 497 * tests/iogt.test: (line 866f) New tests iogt-6.[01], highlighting 498 buffering trouble when stacking and unstacking transformations. 499 iogt-6.0 is solved, see the changes below. iogt-6.1 remains, for now, 500 due to the perceived complexity of solutions. 501 502 * generic/tclIO.h: (line 139f) struct Channel, added a buffer queue, 503 to hold data pushed back when stacking a transformation. 504 505 * generic/tclIO.c: 506 (line 91f, line 7434f) New internal function 'CopyBuffer'. Derived 507 from 'CopyAndTranslateBuffer', with translation removed. 508 (line 1025f, line 1212f): Initialization of new queue. 509 (line 1164f, Tcl_StackChannel): Pushback of input queue. 510 (line 1293f, Tcl_UnstackChannel): Discard input and pushback. 511 (line 3748f, Tcl_ReadRaw): Modified to use data in the push back area 512 before going to the driver. Uses 'CopyBuffer', s.a. 513 (line 4702f, GetInput): Modified to use data in the push back area 514 before going to the driver. 515 (line 4867f, Tcl_Seek): Modified to take pushback of the topmost 516 channel in a stack into account. 517 (line 5620f, Tcl_InputBuffered): See above. Added 518 'Tcl_ChannelBuffered'. Analog to 'Tcl_InputBuffered' but for the 519 buffer area in the channel. 520 521 * generic/tcl.decls: New public API 'Tcl_ChannelBuffered'. S.a. 522 5232000-07-17 Jeff Hobbs <hobbs@scriptics.com> 524 525 * unix/Makefile.in: 526 * win/Makefile.in: 527 * win/makefile.vc: added tclIOGT.c to objects list to compile. 528 529 * generic/tclStubInit.c: 530 * generic/tclIntDecls.h: 531 * generic/tclInt.decls: commented out internal decls for 532 TclTestChannelCmd and TclTestChannelEventCmd as they were moved to 533 tclTest.c. Added new decls for TclChannelEventScriptInvoker and 534 TclChannelTransform. 535 536 * generic/tclIO.c (CloseChannel): stopped masking out of the 537 TCL_READABLE|TCL_WRITABLE bits from the state flags in CloseChannel, 538 instead adding extra intelligence to CheckChannelErrors with a new 539 CHANNEL_RAW_MODE bit for special behavior when called from Raw channel 540 APIs. 541 5422000-07-13 Jeff Hobbs <hobbs@scriptics.com> 543 544 * generic/tclIO.c (StackSetBlockMode): moved set of chanPtr outside of 545 blockModeProc check to avoid infinite loop when blockModeProc was 546 NULL. Updated TransformSeekProc to not call Tcl_Seek directly 547 (Kupries). 548 549 * win/tclWinChan.c: updated fileChannelType to v2 channel struct 550 * win/tclWinConsole.c: updated consoleChannelType to v2 channel struct 551 * win/tclWinPipe.c: updated pipeChannelType to v2 channel struct 552 * win/tclWinSerial.c: updated serialChannelType to v2 channel struct 553 * win/tclWinSock.c: updated tcpChannelType to v2 channel struct 554 5552000-07-11 Brent Welch <welch@ajubasolutions.com> 556 557 * win/tclConfig.sh.in (TCL_LIBS): Cleaned up unix-specific autoconf 558 variables. 559 5602000-07-11 Jeff Hobbs <hobbs@scriptics.com> 561 562 * tests/iogt.test: made tests [345].0 not run by default as they were 563 failing in the new design, but I'm not convinced that the returned 564 result isn't correct. 565 566 * generic/tclDecls.h: 567 * generic/tclStubInit.c: 568 * generic/tcl.decls: added Tcl_GetTopChannel C API that returns the 569 current top channel of a channel stack. Tcl_GetChannel was changed 570 earlier to return the bottommost channel of a stack because that is 571 the one that is guaranteed to stay around the longest, and this was 572 needed to compensate for certain operations that want to look at the 573 state of the main channel. Most channel APIs already compensate for 574 grabbing the top, so it shouldn't be needed often. 575 576 * generic/tclIO.c (Tcl_StackChannel, Tcl_UnstackChannel): Added 577 flushing of buffers (Kupries), removed use of DownChannel macro, added 578 Tcl_GetTopChannel public API to get to the top channel of the channel 579 stack (necessary for TLS). Rewrote Tcl_NotifyChannel for new channel 580 design (Kupries). Did some code cleanup in the transform code. 581 tclIO.c must still be broken into bits (separate out test code and 582 giot code, create tclIO.h). 583 5842000-07-10 Andreas Kupries <a.kupries@westend.com> 585 586 * tests/iogt.test: Reverted some earlier changes as a fix by Jeff 587 revived the original and correct behaviour. IOW, the tests showed a 588 genuine error and I didn't see it :(. 589 590 * generic/tclIO.c (Tcl_Read|Write_Raw): Changed to directly use the 591 drivers and not DoRead|DoWrite. The latter use the buffering system, 592 encoding and eol-translation and this wreaks havoc with the data going 593 through the transformations. Both procedures use CheckForchannelErrors 594 and let it believe that there is no background copy in progress or 595 else stacked channels could not be used for that. 596 597 * generic/tclIO.c (TclCopyChannel, CopyData): Moved access to the 598 topmost channel from the first to the second procedure to make the 599 decision about that at the last possible time (Callbacks can change 600 the stacking). 601 602 test suite: failures of iogt-[345].0 603 6042000-07-06 Jeff Hobbs <hobbs@scriptics.com> 605 606 * tests/iogt.test: new tests for stacked channel stuff based off new 607 'testchannel transform|unstack' code (Kupries IOGT extension). 608 * generic/tcl.decls: 609 * generic/tcl.h: 610 * generic/tclDecls.h: 611 * generic/tclStubsInit.c: 612 * generic/tclIO.c: complete rewrite of Tcl Channel code for stacked 613 channels. Channels are now designed to work in a more stacked fashion 614 with a shared ChannelState data structure. 615 6162000-06-02 Jeff Hobbs <hobbs@scriptics.com> 617 618 * generic/tclIO.c (CloseChannel): removed the &ing out of 619 (TCL_READABLE|TCL_WRITABLE) from the flags, as CloseChannel does this 620 on the next pass through for the top channel, and it appeared to be 621 causing hangs by not allowing the final flush. 622 6232000-06-01 Jeff Hobbs <hobbs@scriptics.com> 624 625 * generic/tclIO.c (CloseChannel): Rewrote CloseChannel code to unstack 626 a channel during the close process. Fixed a refcount bug in 627 Tcl_UnstackChannel. [Bug: 5623] 628 (CloseChannel): further extended CloseChannel in the stacked case to 629 effect certain operations on the next channel that would have been 630 done in Tcl_Close. Also added CHANNEL_CLOSED and removed 631 (TCL_READABLE|TCL_WRITABLE) bits from chanPtr->flags. Changed final 632 reset of the WatchProc to check the chanDownPtr's (next) interestMask. 633 634 ****************************************************** 635 ** END OF ASYNCHRONOUS UP-PORT LOG (8.3.2 -> 8.4a2) ** 636 ****************************************************** 637 6382000-09-20 Jeff Hobbs <hobbs@scriptics.com> 639 640 * tests/socket.test: removed doTestsWithRemoteServer constraint from 641 socket-12.*. It requires 'exec', not a remote server. Cleaned up some 642 coding errors. 643 6442000-09-20 Jennifer Hom <jenn@ajubasolutions.com> 645 646 * library/tcltest1.0/pkgIndex.tcl: Updated to load tcltest 2.0. 647 * library/tcltest1.0/tcltest2.tcl: New version of tcltest. 648 Cleanup of command line parsing: allows users to specify command line 649 arguments through an environment variable named TCLTEST_OPTIONS [RFE: 650 3748], does not respond to incorrect arguments, and forces usage of 651 entire flag name when using command line arguments. Defines accessor 652 procs for all tcltest variables. Allows users to use 'return' in test 653 scripts. Allow users to specify whether test files should be sourced 654 or run in a separate process. 'all.tcl' code moved to tcltest package. 655 'test' proc modified to use attribute-value pairs. Allow users to 656 specify what return codes, output, and errors can be compared and 657 whether these values should be compared using regexp, glob, or exact 658 matching. makeDirectory & removeDirectory now operate with respect to 659 temporaryDirectory [Bug: 6001]. Test results from tests run in slave 660 interpreters are now included in test totals [Bug: 1493]. Test files 661 that return error values are now reported. 662 * tests/all.tcl: Added code to check for the tcltest version loaded; 663 modified to figure out which tests to run based on the tcltest version 664 loaded. 665 * tests/tcltest.test: Modified to explicitly load version 1.0 of 666 tcltest. 667 * tests/tcltest2.test: New test suite for tcltest; includes all of the 668 old tests plus new ones reflecting changes made for version 2.0. 669 * tests/cmdAH.test: Added singleTestInterp constraint to cmdAH-31.2; 670 this test does not run if tests aren't sourced into a single 671 interpreter. 672 * tests/socket.test: Fixed two tests that were referencing variables 673 outside of scope. 674 675 * tools/tcl.wse.in: Added code to install tcltest2.tcl. 676 677 * doc/tcltest2.n: New documentation for tcltest version 2.0. Removes 678 documentation for tcltest namespace variables. Adds documentation for 679 new tcltest procs. 680 681 * unix/mkLinks: Added code to link to tcltest2.n. 682 683 * generic/tcl.h: Added comment to modify tcltest2.tcl as well as 684 tcltest.tcl for version changes. 685 6862000-09-19 Eric Melski <ericm@ajubasolutions.com> 687 688 * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): When using -all, all attempts 689 after the first to match the regexp against the string should include 690 the TCL_REG_NOTBOL flag, to avoid erroneously matching ^ in the middle 691 of the string. Added code to set this flag after the first pass 692 through the matching loop. [Bug: 6284]. 693 6942000-09-19 David Gravereaux <davygrvy@ajubasolutions.com> 695 696 * doc/Eval.3: Added a note about the script argument to Tcl_Eval() 697 should be in UTF-8 or risk implied conversion errors when possible 698 combinations of upper ascii can be valid UTF-8 special codes. 699 7002000-09-17 Eric Melski <ericm@ajubasolutions.com> 701 702 * tests/cmdIL.test: Added a test for fix for [Bug: 6212]. 703 704 * generic/tclCmdIL.c (Tcl_LsortObjCmd): Applied patch from [Bug: 705 6212], which corrected an error in the handling of the -index option. 706 7072000-09-14 Eric Melski <ericm@ajubasolutions.com> 708 709 * doc/Alloc.3: Added entries for Tcl_AttemptAlloc, Tcl_AttempRealloc. 710 711 * doc/StringObj.3: Added entry for Tcl_AttemptSetObjLength. 712 713 * generic/tclDecls.h: 714 * generic/tclStubInit.c: Regen'ed stubs files from new tcl.decls. 715 716 * generic/tcl.decls: Added stubs for the Tcl_Attempt* memory 717 allocators and for Tcl_AttemptSetObjLength. 718 719 * generic/tcl.h: Added #define's for attemptckalloc, attemptckrealloc, 720 which map to the Tcl_Attempt* memory allocators. 721 722 * generic/tclCkalloc.c: Added non-panic'ing versions of Tcl_Alloc, 723 Tcl_Realloc, etc.; these are called Tcl_AttemptAlloc, 724 Tcl_AttemptRealloc, etc. These are used by Tcl_AttemptSetObjLength and 725 the string obj append functions. 726 727 * generic/tclStringObj.c: Modified string growth algorithm to use 728 doubling algorithm as long as possible, and only fall back when that 729 fails. Added Tcl_AttemptSetObjLength, and modified 730 AppendUnicodeToUnicodeRep, AppendUtfToUtfRep, and 731 Tcl_AppendStringsToObjVA to support this. 732 7332000-09-07 David Gravereaux <davygrvy@ajubasolutions.com> 734 735 * win/.cvsignore: changed the glob patterns a bit to exclude VC++ 736 project conversion backups. 737 738 * win/tclWinPipe.c: Stage-1 bug fix for TR#2460 "exec leaks memory". 739 Added more logic around the close-down of the pipe reader thread so as 740 to avoid, at all cost, a TerminateThread. Most cases with exec are 741 fixed, but I don't consider 2460 done yet. Closing down the read side 742 of a pipe before the child process, doesn't really fit the windows 743 model. [BUG: 2460] 744 7452000-09-07 Jeff Hobbs <hobbs@scriptics.com> 746 747 * doc/trace.n: minor doc cleanup 748 7492000-09-06 André Pönitz <poenitz@htwm.de> 750 751 * doc/*.n: added or changed "SEE ALSO:" section 752 7532000-09-06 Jeff Hobbs <hobbs@scriptics.com> 754 755 * win/tclWinLoad.c (TclpLoadFile): added special message for 756 ERROR_PROC_NOT_FOUND exception in loading a dll. 757 * win/tclWinError.c: changed ERROR_PROC_NOT_FOUND to map from ESRCH 758 (POSIX: no such process) to EINVAL because there is no good mapping 759 for "procedure not found". 760 761 * README: 762 * generic/tcl.h: 763 * library/tcltest1.0/tcltest.tcl: 764 * tools/tcl.wse.in: 765 * tools/tcltk-man2html.tcl: 766 * unix/configure.in: 767 * unix/tcl.spec: 768 * win/README.binary: 769 * win/configure.in: updated patchlevel to 8.4a2 770 771 * unix/tclUnixPipe.c (TclpCreateProcess): Removed WNOHANG from 772 Tcl_WaitPid call in error case of process creation on Unix, as it 773 would lead to defunct processes. [Bug: 6148] 774 775 * tests/string.test: extended string repeat tests 776 * generic/tclCmdMZ.c (Tcl_StringObjCmd): changed STR_REPEAT to 777 preallocate the full space of the final string, avoided repeated 778 appends. 779 780 * doc/source.n: 781 * doc/Eval.3: added extra note about how to safe use ^Z in code, as it 782 is now a cross-platform (was just Windows) EOF char. 783 7842000-09-05 Jeff Hobbs <hobbs@scriptics.com> 785 786 * generic/tclHash.c: fixed pedantic warning of incorrectly placed 787 #endif 788 789 * generic/tclExecute.c (TclExecuteByteCode): INST_STR_INDEX fixed 790 pedantic cast warning. 791 Corrected support for building with -DTCL_COMPILE_STATS. 792 Added efficiency check of object equality. 793 7942000-08-29 Eric Melski <ericm@ajubasolutions.com> 795 796 * generic/tclStringObj.c: Applied patch from Gerhard Hintermayer to 797 provide a more conservative string growth algorithm for strings larger 798 than one megabyte; this allows more efficient use of memory for very 799 large strings. 800 8012000-08-25 Eric Melski <ericm@ajubasolutions.com> 802 803 * tests/trace.test: Extended array tracing tests. 804 805 * doc/trace.n: Clarified information about when array traces will be 806 fired. 807 808 * generic/tclVar.c (Tcl_ArrayObjCmd): Corrected call to CallTraces 809 (for TCL_TRACE_ARRAY) to only be called when the variable is either an 810 array or is undefined, to ensure that array traces do not fire for 811 scalar variables. 812 8132000-08-24 Eric Melski <ericm@ajubasolutions.com> 814 815 * doc/man.macros: Tweaked tab settings for .SO (Standard Options) 816 sections, based on suggestion from Peter Spjuth. 817 8182000-08-24 Mo DeJong <mdejong@redhat.com> 819 820 * unix/README: Update to account for removal of --enable-gcc. 821 * unix/configure.in: 822 * unix/tcl.m4 (SC_ENABLE_GCC): Remove --enable-gcc option. 823 * win/README: Add note about building with Cygwin. 824 * win/configure.in: 825 * win/tcl.m4 (SC_ENABLE_GCC): Remove --enable-gcc option. Remove quick 826 hack that provided cross compile support for windows builds. 827 8282000-08-24 Eric Melski <ericm@ajubasolutions.com> 829 830 Overall change: Added support for command rename/delete traces and new 831 trace syntax, from patch from Vince Darley. Added support for array 832 traces for variables. [RFE: 5048, 5967]. 833 834 * doc/trace.n: Updated documentation for new syntax; flagged old 835 syntax as deprecated; added documentation for command rename/delete 836 traces and variable array traces. 837 838 * tests/trace.test: Updated tests for new trace syntax; new tests for 839 command rename/delete traces; new tests for array traces. 840 841 * generic/tclVar.c: Support for new trace syntax; support for 842 TCL_TRACE_ARRAY. 843 844 * generic/tclStubInit.c: 845 * generic/tclDecls.h: 846 * generic/tcl.decls: Stub functions for command rename/delete traces. 847 848 * generic/tcl.h: 849 * generic/tclInt.h: 850 * generic/tclBasic.c: Support for command traces. 851 852 * generic/tclCmdMZ.c (TclTraceVariableObjCmd): Patched to support new 853 [trace] syntax: 854 trace {add|remove|list} {variable|command} name ops command 855 Added support for command traces (rename, delete operations). 856 Added support for TCL_TRACE_ARRAY at Tcl level (array operation for 857 variable traces). 858 8592000-08-20 Eric Melski <ericm@ajubasolutions.com> 860 861 * generic/tclVar.c: Added check for non-arrays for [array statistics] 862 command (patch from Mark Patton). 863 8642000-08-19 David Gravereaux <davygrvy@ajubasolutions.com> 865 866 * generic/tclPlatDecls.h: without a previous '#include <windows.h>', 867 tclPlatDecls.h can't be parsed due to a missing definition of TCHAR. 868 Added a check to include it when not defined. 869 870 ***POSSIBLE OBSCURE BUG*** could be caused when the compile flags for 871 the core happen to be different than a project who uses these publics 872 regarding -D_MBCS and -D_UNICODE. This added check might have to be 873 revisited later with a better understanding of the reprocusions. I 874 think TCHAR should be replaced with it's expansion. 875 8762000-08-18 David Gravereaux <davygrvy@ajubasolutions.com> 877 878 * win/.cvsignore (added): provides a cleaner build environment with 879 graphical CVS clients. 880 8812000-08-15 Eric Melski <ericm@ajubasolutions.com> 882 883 * library/tcltest1.0/tcltest.tcl: Set debug level in 884 tcltest::restoreState to 2, for consistancy with the debug level in 885 tcltest::saveState [Bug: 4505]. 886 8872000-08-14 Eric Melski <ericm@ajubasolutions.com> 888 889 * win/makefile.vc: 890 * win/Makefile.in: 891 * unix/Makefile.in: Added tclPlatDecls.h to the list of installed 892 headers, for more complete stubs support. [Bug: 5241]. 893 894 * generic/tcl.h: Added #include "tclPlatDecls.h" to get 895 platform-specific stubs declarations (Tcl_WinTCharToUtf, etc) 896 [Bug: 5241]. 897 898 * README: Updated link for instructions on compiling Tcl from sources 899 to point to correct location (http://dev.scriptics.com/doc/... instead 900 of http://dev.scriptics.com/support/...). 901 9022000-08-11 Eric Melski <ericm@ajubasolutions.com> 903 904 * generic/tclEnv.c (TclUnsetEnv): Changed declaration of length 905 variable from "unsigned int" to "int", to match usage when passed to 906 TclpFindVariable [Bug: 6126]. 907 9082000-08-10 Eric Melski <ericm@ajubasolutions.com> 909 910 * library/msgcat1.0/pkgIndex.tcl: Bumped version number to 1.2 [Bug: 911 6100]. 912 913 * library/msgcat1.0/msgcat.tcl: Removed erroneous [package forget] in 914 msgcat namespace initializer. Bumped version number to 1.2 [Bug: 6100] 915 9162000-08-10 David Gravereaux <davygrvy@ajubasolutions.com> 917 918 * generic/tclObj.c: r1.15 accidentally changed a global mutex name 919 tclObjMutex to ObjMutex. Put the correct name back. 920 9212000-08-07 Eric Melski <ericm@ajubasolutions.com> 922 923 * tests/indexObj.test: Added tests using the [testwrongnumargs] 924 command to test Tcl_WrongNumArgs. 925 926 * generic/tclTest.c (TestWrongNumArgsObjCmd): Added test function for 927 the Tcl_WrongNumArgs function. 928 929 * generic/tclIndexObj.c (Tcl_WrongNumArgs): Corrected algorithm to not 930 insert a space before the message component when objc == 0 [Bug: 6078] 931 9322000-07-27 Mo DeJong <mdejong@redhat.com> 933 934 * win/configure.in: TCL_STUB_LIB_FLAG should not include ${TCL_DBGX} 935 in win/tclConfig.sh, fix that. 936 9372000-07-25 David Gravereaux <davygrvy@ajubasolutions.com> 938 939 * doc/Async.3: 940 * generic/tclAsync.c: 941 * generic/tclInt.decls: 942 * generic/tclIntPlatDecls.h: 943 * generic/tclStubInit.c: 944 * generic/tclTest.c: 945 * mac/tclMacPort.h: 946 * unix/tclUnixPort.h: 947 * win/tclWinInit.c: Thread-safe rewrite for tclAsync.c. Added notifier 948 alerting on all platforms as it was only working on Win before. 949 Removed older Win hacks that would end-up waking the wrong notifier in 950 the presence of a threaded build. All tests pass as before. New test 951 cases will be added soon for the new behavior. [BUG: 5791] 952 9532000-07-25 Eric Melski <ericm@ajubasolutions.com> 954 955 * generic/tclVar.c (CallTraces): Added check for VAR_TRACE_ACTIVE on 956 the array containing the variable before executing traces on that 957 array, to conform with normal variable traces and the documentation, 958 which states that while executing a trace, other traces on that 959 variable are disabled. [Bug: 6049]. 960 961 * win/tclWinPipe.c (BuildCommandLine): Added Tcl_DStringFree call to 962 prevent potential memory leaks [Bug: 6041]. 963 9642000-07-24 Eric Melski <ericm@ajubasolutions.com> 965 966 * doc/msgcat.n: Added documentation about the selection of the default 967 locale on Windows. 968 9692000-07-23 Joe English <jenglish@flightlab.com> 970 971 * doc/AddErrInfo.3: 972 * doc/ChnlStack.3: 973 * doc/Exit.3: 974 * doc/GetIndex.3: 975 * doc/Notifier.3: 976 * doc/Object.3: 977 * doc/RegExp.3: 978 * doc/SetResult.3: 979 * doc/SplitList.3: 980 * doc/Thread.3: Added missing entries to NAME section. 981 982 * doc/AddErrInfo.3: 983 * doc/CrtObjCmd.3: 984 * doc/RecEvalObj.3: Changed Tcl_EvalObj to Tcl_EvalObjEx 985 9862000-07-21 Eric Melski <ericm@ajubasolutions.com> 987 988 * generic/tclStubInit.c: 989 * generic/tclObj.c: 990 * generic/tclInt.h: 991 * generic/tclHash.c: 992 * generic/tclDecls.h: 993 * generic/tcl.h: 994 * generic/tcl.decls: 995 * doc/Hash.3: Reapplied patch from Paul Duffin to extend hash tables 996 to allow custom key types, such as Tcl_Obj *'s, and others. 997 998 * doc/binary.n: Noted that the example in the introduction assumes a 999 32-bit system [Bug: 6035]. 1000 10012000-07-21 Mo DeJong <mdejong@redhat.com> 1002 1003 * win/configure.in: Define ${prefix} and ${exec_prefix} like 1004 unix/configure.in. Fix or add TCL_SRC_DIR, TCL_STUB_LIB_FILE, 1005 TCL_STUB_LIB_FLAG, TCL_BUILD_STUB_LIB_SPEC, TCL_STUB_LIB_SPEC, 1006 TCL_BUILD_STUB_LIB_PATH, TCL_STUB_LIB_PATH. 1007 10082000-07-20 Eric Melski <ericm@ajubasolutions.com> 1009 1010 * generic/tclStubInit.c: 1011 * generic/tclObj.c: 1012 * generic/tclInt.h: 1013 * generic/tclHash.c: 1014 * generic/tclDecls.h: 1015 * generic/tcl.h: 1016 * generic/tcl.decls: 1017 * doc/Hash.3: Reverted patch from Paul Duffin to extend hash tables to 1018 allow custom key types, such as Tcl_Obj *'s, and others; it seems to 1019 break Tk. 1020 10212000-07-19 Eric Melski <ericm@ajubasolutions.com> 1022 1023 * generic/tclStubInit.c: 1024 * generic/tclObj.c: 1025 * generic/tclInt.h: 1026 * generic/tclHash.c: 1027 * generic/tclDecls.h: 1028 * generic/tcl.h: 1029 * generic/tcl.decls: 1030 * doc/Hash.3: Applied patch from Paul Duffin to extend hash tables to 1031 allow custom key types, such as Tcl_Obj *'s, and others. 1032 1033 * tests/pkgMkIndex.test: Added tests for pkg_compareExtension. 1034 1035 * library/package.tcl: Enhanced pkg_compareExtension to handle Unixes 1036 which tack the version number on to the end of library names (eg, 1037 foo.so.1.2); such filenames will be correctly matched. (Patch from 1038 Vince Darley). 1039 1040 * win/makefile.vc: Applied patch from Don Porter to provide better 1041 nmake support for NT/Alpha [RFE: 5938]. 1042 10432000-07-18 Mo DeJong <mdejong@redhat.com> 1044 1045 * unix/configure.in: 1046 * unix/tcl.m4: 1047 * win/tcl.m4: Properly quote arguments to m4 macros. This allows Tcl 1048 to work with the new version of autoconf. 1049 10502000-07-18 Eric Melski <ericm@ajubasolutions.com> 1051 1052 * tests/opt.test: Removed references to Lfirst, Lrest functions. 1053 1054 * library/opt0.4/optparse.tcl: Applied patch from Chris Nelson, which 1055 replaces the [Lfirst] function with an inline [lindex ... 0] and 1056 [Lrest] with [lrange ... 1 end], for better performance. [RFE: 6019] 1057 10582000-07-18 Eric Melski <ericm@scriptics.com> 1059 1060 * compat/string.h: Fixed function prototypes for strpbrk and strtok 1061 [Bug: 6020]. 1062 10632000-07-17 David Gravereaux <davygrvy@ajubasolutions.com> 1064 1065 * win/tclWinChan.c: Win2K OS bug with GetStdHandle(STD_OUTPUT_HANDLE) 1066 giving the wrong answer. This made TclpGetDefaultStdChannel grab what 1067 it thought was a valid native stdout handle. Added a new WriteFile() 1068 test to make sure it's really valid. This OS bug doesn't affect the 1069 shells. Only -subsystem:windows (aka WinMain) application that 1070 dynamically load tclXX.dll [BUG: 5971] 1071 10722000-07-17 Eric Melski <ericm@scriptics.com> 1073 1074 * library/msgcat1.0/msgcat.tcl: 1075 * doc/msgcat.n: 1076 * tests/msgcat.test: Applied patches from Chris Nelson, to provide the 1077 mcmset function, which allows the translator to set multiple string 1078 translations in a single function call, rather than requiring many 1079 calls to mcset. [RFE: 6000, 5993]. In addition, these patches correct 1080 mcload to use utf-8 encoding on when reading message catalog files, 1081 and provides for better default behavior for determining the locale on 1082 a Windows system. 1083 10842000-07-17 Mo DeJong <mdejong@redhat.com> 1085 1086 * unix/tcl.m4 (SC_ENABLE_GCC): Don't set CC=gcc before running 1087 AC_PROG_CC if CC is already set. 1088 10892000-07-13 André Pönitz <poenitz@mathematik.tu-chemnitz.de> 1090 1091 * doc/lappend.n: 1092 * doc/lindex.n: 1093 * doc/linsert.n: 1094 * doc/list.n: 1095 * doc/llength.n: 1096 * doc/lrange.n: 1097 * doc/lreplace.n: 1098 * doc/lsearch.n: 1099 * doc/lsort.n: Added SEE ALSO sections. 1100 11012000-07-07 Mo DeJong <mdejong@redhat.com> 1102 1103 * win/configure.in: Fix definition of TCL_SRC_DIR so that it matches 1104 the Unix version. 1105 * win/tclConfig.sh.in: Removed duplicate variables. 1106 11072000-07-06 Eric Melski <ericm@scriptics.com> 1108 1109 * tests/msgcat.test: 1110 * library/msgcat1.0/msgcat.tcl: Applied patch from Christian Krone, to 1111 provide extended args support for msgcat::unknown, which is used for 1112 strings without a known translation in the current locale [Bug: 5984]. 1113 11142000-06-29 Eric Melski <ericm@scriptics.com> 1115 1116 * doc/msgcat.n: Doc's for mcmax function. 1117 1118 * library/msgcat1.0/msgcat.tcl: Applied patches from Laurent Duperval, 1119 to add mcmax function, which computes the length of the longest of 1120 several translated strings. Bumped version number to 1.1. 1121 11222000-06-27 Eric Melski <ericm@scriptics.com> 1123 1124 * tests/stringObj.test: Tweaked tests to avoid hardcoded high-ASCII 1125 characters (which will fail in multibyte locales); instead used \uXXXX 1126 syntax. [Bug: 3842]. 1127 11282000-06-26 Eric Melski <ericm@scriptics.com> 1129 1130 * doc/package.n: Corrected information about [package forget] 1131 arguments [Bug: 5418]. 1132 11332000-06-23 Eric Melski <ericm@scriptics.com> 1134 1135 * doc/Hash.3: Added documentation patch for Tcl_Obj *'s as keys in Tcl 1136 hash tables [RFE: 5934]. 1137 1138 * generic/tcl.h: 1139 * generic/tclHash.c: Applied patch from [RFE: 5934], which extends Tcl 1140 hash tables to allow Tcl_Obj *'s as the key. 1141 11422000-06-20 Eric Melski <ericm@ajubasolutions.com> 1143 1144 * tests/opt.test: 1145 * library/opt0.4/optparse.tcl: Applied patch from [Bug: 5922], which 1146 corrected an incorrect use of [string match]. 1147 1148 * unix/tclConfig.sh.in: 1149 * win/tclConfig.sh.in: Applied patch from [Bug: 5921], which corrects a 1150 typo in the comments in these files. 1151 11522000-06-19 Eric Melski <ericm@scriptics.com> 1153 1154 * doc/RegExp.3: Replaced instances of "Tcl_GetRegExpInfo" with 1155 "Tcl_RegExpGetInfo", the correct name of the function [Bug: 5901]. 1156 11572000-06-13 Eric Melski <ericm@scriptics.com> 1158 1159 * win/tcl.m4: 1160 * win/configure.in: 1161 * win/Makefile.in: Applied patch from [RFE: 5844], to extend support 1162 for mingw compile environment on Windows. 1163 1164 * win/tclWinDde.c: 1165 * win/tclWinInit.c: 1166 * win/tclWinNotify.c: 1167 * win/tclWinPipe.c: 1168 * win/tclWinReg.c: 1169 * win/tclWinThrd.c: Applied patch from [Bug: 5794], to fix compiler 1170 warnings when using mingw on Windows. 1171 11722000-05-31 Jeff Hobbs <hobbs@scriptics.com> 1173 1174 * tests/set-old.test: 1175 * doc/unset.n: 1176 * generic/tclVar.c (Tcl_UnsetObjCmd): added -nocomplain and -- options 1177 to unset, to allow for a silent unset operation. 1178 11792000-05-31 Eric Melski <ericm@scriptics.com> 1180 1181 * generic/tclVar.c (Tcl_ArrayObjCmd): Added support for regexp and 1182 exact matching for [array names] command. [RFE: 3684]. 1183 1184 * doc/array.n: Added documentation for [array names 1185 -exact/-regexp/-glob] [RFE: 3684]. 1186 1187 * tests/set-old.test: Added tests for [array names 1188 -exact/-regexp/-glob] [RFE: 3684]. 1189 11902000-06-06 Jeff Hobbs <hobbs@scriptics.com> 1191 1192 8.4a1 RELEASE 1193 1194 * generic/tclExecute.c (TclExecuteByteCode INST_STR_CMP): added test 1195 of iResult return from memcmp, as memcmp isn't required to return only 1196 -1,0,1. 1197 11982000-06-03 Jeff Hobbs <hobbs@scriptics.com> 1199 1200 * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Corrected caching 1201 of the index ptr to account for offsets != sizeof(char *). [Bug: 5153] 1202 12032000-05-29 Sandeep Tamhankar <sandeep@scriptics.com> 1204 1205 * tests/http.test 1206 * doc/http.n 1207 * library/http2.3/http.tcl: Fixed bug 5741, where unsuccessful geturl 1208 calls sometimes leaked memory and resources (sockets). Also, switched 1209 around some of the logic so that http::wait never throws an exception. 1210 This is because in an asynchronous geturl, the command callback will 1211 probably end up doing all the error handling anyway, and in an 1212 asynchronous situation, the user expects to check the state when the 1213 transaction completes, as opposed to being thrown an exception. For 1214 the http package, this menas the user can check http::status for 1215 "error" and http::error for the error message after doing the 1216 http::wait. 1217 12182000-05-27 Jeff Hobbs <hobbs@scriptics.com> 1219 1220 * tests/info.test: 1221 * doc/info.n: 1222 * generic/tclIOUtil.c (Tcl_EvalFile): 1223 * generic/tclCmdIL.c (InfoScriptCmd): added ability to set the info 1224 script return value [info script ?newFileName?]. This will be 1225 beneficial for virtual file system programs. [Bug: 4225] 1226 12272000-05-26 Jeff Hobbs <hobbs@scriptics.com> 1228 1229 * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): reworked to operate in 1230 Unicode, tweaked for performance. 1231 (Tcl_StringObjCmd) changed STR_FIRST/STR_LAST error message to 1232 something more understandable, reworked STR_FIRST, STR_LAST, STR_MAP, 1233 STR_MATCH, STR_RANGE, STR_REPLACE to operate in Unicode. Removed 1234 inneffectual STR_RANGE "special" ByteArray support. Optimized STR_MAP 1235 algorithm, especially optimized for one-pair case. Fixed possible mem 1236 overrun in STR_INDEX bytearray case. 1237 1238 * generic/tclCompExpr.c: changed INST_STREQ -> INST_STR_EQ, 1239 INST_STRNEQ -> INST_STR_NEQ 1240 * generic/tclCompile.c: added streq, strneq, strcmp, strlen & 1241 strmatch to the compiled stats instructionTable 1242 * generic/tclCompile.h: added instructions INST_STR_CMP, 1243 INST_STR_INDEX, INST_STR_MATCH 1244 * generic/tclCompCmds.c: added byte compiler support for [string 1245 compare|match|index]. 1246 * generic/tclExecute.c: Changed INST_STR_(N)EQ to return an Int object 1247 and not bother trying to reuse the top stack object. Added 1248 INST_STR_CMP, INST_STR_INDEX, INST_STR_MATCH bytecode ops. Extended 1249 evalstats output info with Tcl_IsShared stat info. 1250 1251 * generic/tclInt.h: 1252 * generic/tclObj.c (Tcl_DbIsShared): added support for checking result 1253 of Tcl_IsShared in evalstats (TCL_COMPILE_STATS). 1254 1255 * generic/tclStringObj.c (Tcl_AppendUnicodeToObj): removed dead code. 1256 (AppendUnicodeToUnicodeRep) removed overallocation by extra 1257 sizeof(Tcl_UniChar) multiplier. 1258 1259 * tests/string.test: added string map tests for the one-pair case, 1260 corrected tests to reflect improved error messages in first/last. 1261 Added tests against mem overrun in string index bytearray case. 1262 12632000-05-23 Eric Melski <ericm@scriptics.com> 1264 1265 * generic/tclInt.h: Added function prototypes for TclCompileStringCmd 1266 and TclCompileReturnCmd. 1267 1268 * generic/tclCompile.h: Added definition of INST_STRLEN opcode and 1269 updated LAST_INST_OPCODE value. 1270 1271 * generic/tclBasic.c: Added information about TclCompileStringCmd and 1272 TclCompileReturnCmd to BuiltInCmds table. 1273 1274 * generic/tclExecute.c (TclExecuteByteCode): Added support for the 1275 INST_STRLEN opcode. 1276 1277 * generic/tclCompCmds.c (TclCompileStringCmd): Basic implementation of 1278 byte-compiled [string] command. Not all subcommands are implemented; 1279 those that are not an out-line compiled. 1280 1281 (TclCompileReturnCmd): Byte-compiled implementation of [return] 1282 command. Only "simple" returns are byte-compiled; in particular, if 1283 the -code, -errorinfo or -errorcode flags are used, the command is not 1284 byte-compiled. 1285 12862000-05-22 Jeff Hobbs <hobbs@scriptics.com> 1287 1288 * doc/scan.n: 1289 * doc/array.n: minor doc fixes [Bug: 5396] 1290 1291 * generic/tclEnv.c: cast cleanup [Bug: 5624] 1292 * win/tclWinConsole.c: cast and header cleanup [Bug: 5625] 1293 * win/tclWinSerial.c: cast cleanup [Bug: 5626] 1294 * win/tclWinFCmd.c: cast cleanup [Bug: 5627] 1295 12962000-05-19 Jeff Hobbs <hobbs@scriptics.com> 1297 1298 * generic/tclTest.c: 1299 * generic/tclIO.c: moved channel test commands from tclIO.c to 1300 tclTest.c. 1301 * generic/tclIO.h: new file, split out from tclIO.c to allow test 1302 commands to be moved to tclTest.c. 1303 1304 * generic/tclStubInit.c: 1305 * generic/tclIntDecls.h: 1306 * generic/tclInt.decls: removed TclTestChannel*Cmd from internal stubs 1307 table and added TclChannelEventScriptInvoker to the internal stubs 1308 table so it can be used from the test code. 1309 13102000-05-18 Eric Melski <ericm@scriptics.com> 1311 1312 * tests/clock.test: Added test for "2 days 2 hours ago" style 1313 specifications. 1314 1315 * generic/tclDate.c: Regenerated from tclGetDate.y. 1316 1317 * generic/tclGetDate.y: Tweaked grammar to properly handle the "ago" 1318 keyword when it follows multiple relative unit specifiers, as in "2 1319 days 2 hours ago". [Bug: 5497] 1320 13212000-05-18 Jeff Hobbs <hobbs@scriptics.com> 1322 1323 * win/{tcl.m4,Makefile.in,configure.in}: added support for mingw 1324 compile env and cross-compiling. [Bug: 5499] 1325 1326 * generic/tclClock.c (FormatClock): correct code to handle locale 1327 specific return values from strftime, if any. [Bug: 3345] 1328 1329 * unix/tclUnixInit.c (TclpSetInitialEncodings): attempt to correct 1330 setlocale calls for XIM support and locale issues. [BUG: 5422 3345 1331 4236 2522 2521] 1332 13332000-05-17 Jeff Hobbs <hobbs@scriptics.com> 1334 1335 * library/init.tcl (auto_import): added check to see if a valid 1336 pattern was coming in, to avoid simple error cases [Bug: 3326] 1337 1338 * doc/regsub.n: correct regsub docs [Bug: 5346] 1339 13402000-05-15 Eric Melski <ericm@scriptics.com> 1341 1342 * library/history.tcl: Corrected an off-by-one error in HistIndex, 1343 which was causing [history redo] to start its search at the wrong 1344 event index. [Bug: 1269]. 1345 13462000-05-10 Jeff Hobbs <hobbs@scriptics.com> 1347 1348 * generic/tclPosixStr.c (Tcl_SignalMsg): clarified #defines for Linux 1349 on Sparc to compile correctly. [Bug: 5364] 1350 1351 * doc/namespace.n: 1352 * tests/namespace.test: 1353 * generic/tclNamesp.c (Tcl_NamespaceObjCmd): added 'namespace exists' 1354 command. [Bug: 4665] 1355 1356 * doc/source.n: 1357 * doc/Eval.3: 1358 * tests/source.test: 1359 * generic/tclIOUtil.c (Tcl_EvalFile): added explicit \32 (^Z) eofchar 1360 (affects Tcl_EvalFile in C, "source" in Tcl). This was implicit on 1361 Windows already, and is now cross-platform to allow for scripted 1362 documents. 1363 13642000-05-09 Andreas Kupries <a.kupries@westend.com> 1365 operating as proxy for David Gravereaux <davygrvy@pobox.com> 1366 1367 * win/tclWinThrd.c (TclpInitLock, TclpMasterLock): Added missing 1368 initialization of joinLock. 1369 13702000-05-09 Eric Melski <ericm@scriptics.com> 1371 1372 * tests/lsearch.test: 1373 * doc/lsearch.n: 1374 * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Extended [lsearch] to 1375 support sorted list searching and typed list searching. [RFE: 4098]. 1376 13772000-05-08 Jeff Hobbs <hobbs@scriptics.com> 1378 1379 * doc/expr.n: 1380 * tests/expr.test: 1381 * tests/expr-old.test: added tests for 'eq' and 'ne' 1382 * generic/tclExecute.c: 1383 * generic/tclCompile.h: added INST_STREQ and INST_STRNEQ opcodes that 1384 do strict string comparisons. 1385 * generic/tclCompExpr.c: added 'eq' and 'ne' string comparison 1386 operators. 1387 * generic/tclParseExpr.c (GetLexeme): added 'eq' and 'ne' expr parse 1388 terms (string (in)equality check). 1389 1390 * generic/tclCmdIL.c (Tcl_LinsertObjCmd): made use of 1391 Tcl_DuplicateObj where code was otherwise duplicated. Made special 1392 case of inserting one element at the end work again (where index == 1393 len). 1394 (Tcl_LreplaceObjCmd): moved Tcl_DuplicateObj call lower and cleaned 1395 up use of other arguments. 1396 1397 * generic/tclObj.c (Tcl_DuplicateObj): simplified code to call 1398 TclInitStringRep, which the code was just duplicating in part. 1399 1400 * doc/Utf.3: 1401 * generic/tclStubInit.c: 1402 * generic/tcl.decls: 1403 * generic/tclDecls.h: 1404 * generic/tclUtf.c: Added new functions Tcl_UniCharNcasecmp and 1405 Tcl_UniCharCaseMatch (unicode parallel to Tcl_StringCaseMatch) 1406 * generic/tclUtil.c: rewrote Tcl_StringCaseMatch algorithm for 1407 optimization and made Tcl_StringMatch just call Tcl_StringCaseMatch 1408 * tests/string.test: extended string match tests 1409 14102000-05-08 Eric Melski <ericm@scriptics.com> 1411 1412 * tests/set-old.test: 1413 * doc/array.n: 1414 * generic/tclVar.c: Added [array statistics] command [RFE: 4557] 1415 14162000-05-06 Andreas Kupries <a.kupries@westend.com> 1417 operating as proxy for David Gravereaux <davygrvy@pobox.com> 1418 1419 * tclThreadJoin.c: Fixed several places with missing a & in arguments 1420 to calls of Tcl_Mutex(Un)lock and Tcl_ConditionNotify functions. 1421 14222000-05-02 Jeff Hobbs <hobbs@scriptics.com> 1423 1424 * README: 1425 * generic/tcl.h: 1426 * library/init.tcl: 1427 * library/reg1.0/pkgIndex.tcl: 1428 * library/tcltest1.0/tcltest.tcl: 1429 * mac/README: 1430 * tools/tcl.hpj.in: 1431 * tools/tcl.wse.in: 1432 * unix/README: 1433 * unix/configure.in: 1434 * unix/tcl.spec: 1435 * win/README: 1436 * win/README.binary: 1437 * win/configure.in: 1438 * win/makefile.vc: 1439 * win/tcl.m4: updated patchlevel to 8.4a1 1440 1441 * tests/compile.test: 1442 * tests/init.test: 1443 * tests/proc.test: 1444 * tests/proc-old.test: 1445 * tests/rename.test: 1446 * generic/tclProc.c: reworked error return for procedures with 1447 incorrect args to be like the C Tcl_WrongNumArgs, where a "wrong # 1448 args: ..." message is printed out with the args list. 1449 1450 * unix/Makefile.in: add tclsh.ico and tcl.spec to dist target 1451 14522000-05-02 Andreas Kupries <a.kupries@westend.com> 1453 1454 Overall changes: 1455 (1) Implementation of joinable threads for all platforms. 1456 (2) Additional API's for channels. Required to allow the thread 1457 extension to move channels between threads. 1458 1459 * generic/tcl.decls (lines 1360f): Added Tcl_JoinThread, 1460 Tcl_IsChannelShared, Tcl_IsChannelRegistered, Tcl_CutChannel, 1461 Tcl_SpliceChannel, Tcl_IsChannelExisting and Tcl_ClearChannelHandlers 1462 (slots 394 to 400). 1463 1464 * generic/tclIO.c: Implemented Tcl_IsChannelRegistered, 1465 Tcl_IsChannelShared, Tcl_CutChannel, Tcl_SpliceChannel, 1466 Tcl_IsChannelExisting and Tcl_ClearChannelHandlers. Tcl_CutChannel 1467 uses code from CloseChannel. Replaced this code by a call to 1468 Tcl_CutChannel. Replaced several code fragments adding channels to 1469 the channel list with calls to Tcl_SpliceChannel. Removed now unused 1470 variables from CloseChannel and Tcl_UnstackChannel. 1471 Tcl_ClearChannelHandlers uses code from Tcl_Close. Replaced this code 1472 by a call to Tcl_ClearChannelHandlers. Removed now unused variables 1473 from Tcl_Close. Added the subcommands 'cut', 'forgetch', 'splice' and 1474 'isshared' to the test code (TclTestChannelCmd). 1475 1476 * unix/tclUnixThread.c: Implemented Tcl_JoinThread using the 1477 pthread-functionality. 1478 1479 * win/tclWinThrd.c: Fixed several small typos in comments. 1480 Implemented Tcl_JoinThread using a platform independent emulation 1481 layer (see generic/tclThreadJoin.c below). Added 'joinLock' to 1482 serialize Tcl_CreateThread and TclpExitThread to prevent a race for 1483 joinable threads. 1484 1485 * mac/tclMacThrd.c: Implemented Tcl_JoinThread using a platform 1486 independent emulation layer (see generic/tclThreadJoin.c below). Due 1487 to the cooperative nature of threading on this platform the race 1488 mentioned above is not present. 1489 1490 * generic/tclThreadJoin.c: New file. Contains a platform independent 1491 emulation layer helping in the implementation of joinable threads for 1492 the win and mac platforms. 1493 1494 * generic/tclInt.h: Added declarations for TclJoinThread, 1495 TclRememberJoinableThread and TclSignalExitThread. These procedures 1496 define the API of the emulation layer for joinable threads (see 1497 generic/tclThreadJoin.c above). 1498 1499 * win/Makefile.in: 1500 * win/makefile.vc: Added generic/tclTheadJoin.o to the rules. 1501 1502 * mac/: I don't know to which file generic/tclTheadJoin.o has to be 1503 added to so that it compiles. Sorry. 1504 1505 * unix/tclUnixChan.c: #ifdef'd the thread-local list of file channels 1506 as it prevents us from transfering channels. To restore this we may 1507 need an extended interface to drivers in the future. Target: 1508 9.0. Found while testing the new transfer of channels. The information 1509 in this list for a channel was left behind and then crashed the system 1510 during finalization. 1511 1512 * generic/tclThreadTest.c: Added -joinable flag to 'testthread 1513 create'. Added subcommand 'testthread join'. 1514 1515 * doc/CrtChannel.3: Added documentation for Tcl_IsChannelRegistered, 1516 Tcl_IsChannelShared, Tcl_CutChannel, Tcl_SpliceChannel, 1517 Tcl_IsChannelExisting and Tcl_ClearChannelHandlers. 1518 1519 * doc/Thread.3: Added documentation for Tcl_JoinThread. 1520 1521 * tests/thread.test: Added tests for joining of threads. 1522 15232000-04-27 Eric Melski <ericm@scriptics.com> 1524 1525 * doc/library.n: Added entries for auto_qualify and auto_import 1526 [Bug: 1271]. 1527 1528 * doc/Init.3: Manual entry for Tcl_Init [Bug: 1820]. 1529 1530 * doc/expr.n: Added documentation for each of the math library 1531 functions that expr supports [Bug: 1054]. 1532 15332000-04-26 Eric Melski <ericm@scriptics.com> 1534 1535 * doc/memory.n: Man page for Tcl "memory" command, which is created 1536 when TCL_MEM_DEBUG is defined at compile time. 1537 1538 * doc/TCL_MEM_DEBUG.3: Man page with overall information about 1539 TCL_MEM_DEBUG usage. 1540 1541 * doc/DumpActiveMemory.3: Man page for Tcl_DumpActiveMemory, 1542 Tcl_InitMemory, and Tcl_ValidateAllMemory [Bug: 1816, 1835]. 1543 1544 * generic/tclCkalloc.c: Fixed some function headers. 1545 1546 * unix/mkLinks: Regen'd with new mkLinks.tcl. 1547 1548 * unix/mkLinks.tcl: Fixed indentation, made link setup more 1549 intelligent (only do one existance test per man page, instead of one 1550 per function). 1551 1552 * doc/library.n: Fixed .SH NAME macro to include each function 1553 documented on the page, so that mkLinks will know about the functions 1554 listed there, and so that the Windows help file index will get set up 1555 correctly [Bug: 1898, 5273]. 1556 15572000-04-26 Jeff Hobbs <hobbs@scriptics.com> 1558 1559 8.3.1 RELEASE 1560 1561 * README: 1562 * mac/README: 1563 * tools/tcl.wse.in: 1564 * unix/README: 1565 * unix/tcl.spec: 1566 * win/README: 1567 * win/README.binary: Updating URLs to reference dev.scriptics.com 1568 15692000-04-25 Jeff Hobbs <hobbs@scriptics.com> 1570 1571 * unix/Makefile.in: 1572 * win/Makefile.in: 1573 * win/makefile.vc: updated for http change and some cleanup 1574 * library/http2.[13]: moved dir http2.1 to http2.3 to match version 1575 1576 * doc/Utf.3: clarified docs for Tcl_(UniChar|Utf)AtIndex 1577 1578 * unix/tclUnixThrd.c: removed {}s around PTHREAD_MUTEX_INITIALIZER 1579 [Bug: 5254] 1580 1581 * unix/tclLoadDyld.c (TclpLoadFile): removed use of interp->result 1582 15832000-04-25 Eric Melski <ericm@scriptics.com> 1584 1585 * unix/mkLinks: 1586 * doc/AddErrInfo.3: Added information about Tcl_LogCommandInfo 1587 [Bug: 1818]. 1588 15892000-04-24 Eric Melski <ericm@scriptics.com> 1590 1591 * unix/mkLinks: 1592 * doc/OpenFileChnl.3: Added man entry for Tcl_Ungets [Bug: 1834]. 1593 1594 * unix/mkLinks: 1595 * doc/SourceRCFile.3: Man page for Tcl_SourceRCFile [Bug: 1833]. 1596 1597 * unix/mkLinks: 1598 * doc/ParseCmd.3: Added documentation for Tcl_ParseVar [Bug: 1828]. 1599 16002000-04-24 Jeff Hobbs <hobbs@scriptics.com> 1601 1602 * unix/tclUnixNotfy.c (Tcl_FinalizeNotifier, NotifierThreadProc): 1603 added write of 'q' into triggerPipe for notifier in threaded case, so 1604 that Tcl doesn't hang when children are still running [Bug: 4139] 1605 1606 * unix/tclUnixThrd.c (Tcl_MutexLock): minor comment fixes. 1607 16082000-04-23 Jim Ingham <jingham@cygnus.com> 1609 1610 These changes make some error handling marginally better for Mac 1611 sockets. It is still somewhat flakey, however. 1612 1613 * mac/tclMacSock.c (TcpClose): Add timeouts to the close - these don't 1614 seem to be honored, however. Use a separate PB for the release, since 1615 an async connect socket will still be using the original buffer. Make 1616 sure TCPRelease returns noErr before freeing the recvBuff. If the call 1617 returns an error, then the buffer is not right. 1618 * mac/tclMacSock.c (CreateSocket): Add timeouts to the async create. 1619 These don't seem to trigger, however. Sigh... 1620 * mac/tclMacSock.c (WaitForSocketEvent): If an TCP_ASYNC_CONNECT 1621 socket errors out, then return EWOULDBLOCK & error out. 1622 * mac/tclMacSock.c (NotifyRoutine): Added a NotifyRoutine for 1623 experimenting with MacTCP. 1624 16252000-04-22 Jim Ingham <jingham@cygnus.com> 1626 1627 * library/package.tcl (tclPkgUnknown): Fixed a typo in the Mac package 1628 search part of tclPkgUnknown. 1629 16302000-04-21 Sandeep Tamhankar <sandeep@scriptics.com> 1631 1632 * library/http2.1/http.tcl: Fixed a newly introduced bug where if 1633 there's a -command callback and something goes wrong, geturl threw an 1634 exception, called the callback, and unset the token. I changed it so 1635 that it will not call the callback when throwing an exception (so the 1636 caller only finds out about a given error from one place). Also, 1637 fixed http::ncode so that it actually gives you back the http return 1638 code (i.e. 200, 404, etc.) instead of the first digit of the version 1639 of HTTP being used (i.e. 1). 1640 16412000-04-21 Brent Welch <welch@scriptics.com> 1642 1643 * library/http2.1/http.tcl: More thrashing with the "server closes 1644 without reading post data" scenario. Reverted to the previous filevent 1645 configuratiuon, which seems to work better with small amounts of post 1646 data. 1647 16482000-04-20 Jeff Hobbs <hobbs@scriptics.com> 1649 1650 * generic/tclAlloc.c: wrapped caddr_t define to not be done on Unix 1651 * unix/tclUnixPort.h: added Tclp*Alloc defines to allow the use of 1652 USE_TCLALLOC on Unix. [Bug: 4731] 1653 16542000-04-19 Jeff Hobbs <hobbs@scriptics.com> 1655 1656 * library/dde1.1/pkgIndex.tcl: 1657 * library/reg1.0/pkgIndex.tcl: 1658 * win/tclWinChan.c: 1659 * win/tclWinThrd.c: converted CRLF to LF the */tcl.hpj.in files were 1660 not converted, as it confuses hcw locally. [Bug: 5096] 1661 1662 * win/Makefile.in: expanded cleanup target for help files 1663 1664 * doc/Thread.3: minor macro cleanup 1665 1666 * generic/tclFileName.c (SplitUnixPath): added support for QNX node 1667 ids. 1668 16692000-04-18 Jeff Hobbs <hobbs@scriptics.com> 1670 1671 * README: 1672 * generic/tcl.h: 1673 * tools/tcl.wse.in: 1674 * unix/configure.in: 1675 * unix/tcl.spec: 1676 * win/configure.in: 1677 * win/README.binary: bumped version to 8.3.1 1678 1679 * win/tcl.hpj.in: updated copyright date 1680 1681 * generic/tclEnv.c: environment support for Mac OS/X 1682 * unix/tclUnixPort.h: environment support for Mac OS/X 1683 * unix/tclLoadDyld.c: new file for Mac OS/X dl functions 1684 * unix/Makefile.in: added install-strip target; bindir, libdir, 1685 mandir, includedir vars; tclLoadDyld.c target [Bug: 2527] 1686 1687 * unix/tclUnixChan.c (CreateSocket): force a socket back into blocking 1688 mode (default state) after a -async connect succeeds. [Bug: 4388] 1689 1690 * generic/tclEvent.c (TclInitSubsystems): Moved tclLibraryPath to 1691 thread-local storage to prevent thread-related race condition. 1692 [Bug: 5033] 1693 * unix/tclAppInit.c (main): removed #ifdef TCL_TEST that sets the 1694 library path as it was unnecessary and conflicts with move of 1695 tclLibraryPath to thread-local storage. 1696 16972000-04-18 Scott Redman <redman@scriptics.com> 1698 1699 * win/Makefile.in: 1700 * win/tcl.rc: 1701 * win/tclsh.rc: 1702 * win/tclsh.ico: Modified copyright dates in Windows resource files. 1703 Added an icon for tclsh.exe. 1704 17052000-04-17 Brent Welch <welch@scriptics.com> 1706 1707 * generic/tcl.h, generic/tclThreadTest.c, unix/tclUnixThrd.c, 1708 * win/tclWinThread.c, mac/tclMacThread.c: Added Tcl_CreateThreadType 1709 and TCL_RETURN_THREAD_TYPE macros for declaring the NewThread callback 1710 proc. 1711 17122000-04-14 Jeff Hobbs <hobbs@scriptics.com> 1713 1714 * unix/tclUnixChan.c (TtyParseMode): Only allow setting mark/space 1715 parity on platforms that support it [Bug: 5089] 1716 1717 * generic/tclBasic.c (Tcl_GetVersion): adjusted use of major/minor to 1718 not conflict with global decl on some systems [Bug: 2882] 1719 1720 * doc/AppInit.3: 1721 * doc/Async.3: 1722 * doc/BackgdErr.3: 1723 * doc/CrtChannel.3: 1724 * doc/CrtInterp.3: 1725 * doc/CrtMathFnc.3: 1726 * doc/DString.3: 1727 * doc/Eval.3: 1728 * doc/ExprLong.3: 1729 * doc/GetInt.3: 1730 * doc/GetOpnFl.3: 1731 * doc/Interp.3: 1732 * doc/LinkVar.3: 1733 * doc/OpenFileChnl.3: 1734 * doc/OpenTcp.3: 1735 * doc/PkgRequire.3: 1736 * doc/RecordEval.3: 1737 * doc/SetResult.3: 1738 * doc/SplitList.3: 1739 * doc/StaticPkg.3: 1740 * doc/TraceVar.3: 1741 * doc/Translate.3: 1742 * doc/UpVar.3: 1743 * doc/load.n: removed or updated references to interp->result use. 1744 17452000-04-13 Jeff Hobbs <hobbs@scriptics.com> 1746 1747 * doc/regexp.n: doc clarification [Bug: 5037] 1748 * doc/update.n: typo fix [Bug: 4996] 1749 1750 * unix/tcl.m4 (SC_ENABLE_THREADS): enhanced the detection of 1751 pthread_mutex_init [Bug: 4359] and (SC_CONFIG_CFLAGS) added 1752 --enable-64bit-vis switch for Sparc VIS compilation [Bug: 4995] 1753 17542000-04-12 Jeff Hobbs <hobbs@scriptics.com> 1755 1756 * doc/dde.n: corrected dde poke docs. [Bug: 4991] 1757 17582000-04-11 Eric Melski <ericm@scriptics.com> 1759 1760 * win/tclWinPipe.c: Added "CONST" keyword to declaration of char 1761 *native in TclpCreateTempFile, to supress compiler warnings. 1762 17632000-04-10 Brent Welch <welch@scriptics.com> 1764 1765 * generic/tcl.h: Fixed Tcl_CreateThread declaration. 1766 * library/tcltest1.0/tcltest.tcl: Fixed the "mainThread" 1767 initialization to work with either testthread or the thread extension 1768 * unix/tclUnixThrd.c: Fixed compiler warning when compiling with 1769 -DTCL_THREADS 1770 17712000-04-10 Eric Melski <ericm@scriptics.com> 1772 1773 * win/tclWinPipe.c (TclpCreateTempFile): Added conversion of contents 1774 string from UTF to native encoding [Bug: 4030]. 1775 1776 * tests/regexp.test: Added tests for infinite looping in [regexp 1777 -all]. 1778 1779 * generic/tclCmdMZ.c: Fixed infinite loop bug with [regexp -all] 1780 [Bug: 4981]. 1781 1782 * tests/*.test: Changed all occurrences of "namespace import 1783 ::tcltest" to "namespace import -force ::tcltest" [Bug: 3948]. 1784 17852000-04-09 Brent Welch <welch@scriptics.com> 1786 1787 * lib/httpd2.1/http.tcl: Worked on the "server closes before reading 1788 post data" case, which unfortunately causes different error cases on 1789 Solaris, which can read the reply, and Linux and Windows, which cannot 1790 read anything. This is all in the loop-back case - client and server 1791 on the same host. Also unified the error handling so the "ioerror" 1792 status goes away and errors are reflected in a more uniform way. 1793 Updated the man page to document the behavior. 1794 17952000-04-09 Jeff Hobbs <hobbs@scriptics.com> 1796 1797 * tests/reg.test (matchexpected): corrected tests to use tcltest 1798 constraint types to skip certain tests. 1799 1800 * generic/tclBasic.c (Tcl_SetCommandInfo): comment fix 1801 1802 * unix/tclUnixThrd.c (Tcl_CreateThread): moved TCL_THREADS ifdef 1803 inside of func as it is declared for non-threads builds as well. In 1804 the non-threads case, it always returns TCL_ERROR (couldn't create 1805 thread). 1806 18072000-04-08 Andreas Kupries <a.kupries@westend.com> 1808 1809 * Overall change: Definition of a public API for the creation of 1810 new threads. 1811 1812 * generic/tclInt.h (line 1802f): Removed the definition of 1813 'TclpThreadCreate'. (line 793f) Removed the definition of 1814 'Tcl_ThreadCreateProc'. 1815 1816 * generic/tcl.h (line 388f): Readded the definition of 1817 'Tcl_ThreadCreateProc'. Added Win32 stuff send in by David Graveraux 1818 <davygrvy@bigfoot.com> to that too (__stdcall, ...). Added macros for 1819 the default stacksize and allowed flags. 1820 1821 * generic/tcl.decls (line 1356f): Added definition of 1822 'Tcl_CreateThread', slot 393 of the stub table. Two new arguments in 1823 the public API, for stacksize and flags. 1824 1825 * win/tclWinThrd.c: 1826 * mac/tclMacThrd.c: Renamed TclpThreadCreate to Tcl_CreateThread, 1827 added handling of the stacksize. Flags are currently ignored. 1828 1829 * unix/tclUnixThrd.c: See above, but handles joinable flag. Ignores 1830 the specified stacksize if the macro HAVE_PTHREAD_ATTR_SETSTACKSIZE is 1831 not defined. 1832 1833 * generic/tclThreadTest.c (line 363): See below. 1834 1835 * unix/tclUnixNotfy.c (line 210): Adapted to the changes above. Uses 1836 default stacksize and no flags now. 1837 1838 * unic/tcl.m4 (line 382f): Added a check for 1839 'pthread_attr_setstacksize' to detect platforms not implementing this 1840 feature of pthreads. If it is implemented, configure will define the 1841 macro HAVE_PTHREAD_ATTR_SETSTACKSIZE (See unix/tclUnixThrd.c too). 1842 1843 * doc/Thread.3: Added Tcl_CreateThread and its arguments to the list 1844 of described functions. Removed stuff about not providing a public 1845 C-API for thread-creation. 1846 18472000-04-07 Jeff Hobbs <hobbs@scriptics.com> 1848 1849 * doc/binary.n: clarified docs on sign extension in binary scan [Bug: 1850 3466] 1851 1852 * library/tcltest1.0/tcltest.tcl (initConstraints): removed win32s 1853 references (no longer supported) 1854 1855 * tests/fCmd.test: marked test 8.1 knownBug because it is dangerous on 1856 poorly configured systems [Bug: 3881] and added 8.2 to keep essence of 1857 8.1 tested. 1858 18592000-04-05 Andreas Kupries <a.kupries@westend.com> 1860 1861 * generic/tclIO.c (Tcl_UnstackChannel, line 1831): Forcing interest 1862 mask to the correct value after an unstack and re-initialization of 1863 the notifier via the watchProc. Without this the first fileevent after 1864 an unstack will come through and be processed, but no more. [Bug: ??]. 1865 18662000-03-04 Brent Welch <welch@scriptics.com> 1867 1868 * {win,unix}/Makefile.in: added dependency of tclStubInit.c on 1869 tcl.decls and tclInt.decls 1870 * generic/tclThread.c: Tweak so this compiles w/out TCL_THREADS 1871 * generic/{tcl.decls,tclStubInit.c}: Just touched the tcl.decls and 1872 regenerated the tclStubInit.c file 1873 18742000-03-29 Sandeep Tamhankar <sandeep@scriptics.com> 1875 1876 * library/http2.1/http.tcl: For the -querychannel option, fconfigure 1877 the socket to be binary so that we don't translate anything while 1878 reading the data. This is because we determine the content length of 1879 the data on the channel by using seek (to the end of the file) and 1880 tell on the file handle, and we need the content-length to match the 1881 amount of data actually sent, and translation can affect the number of 1882 bytes posted. 1883 18842000-04-03 Andreas Kupries <a.kupries@westend.com> 1885 1886 * Overall change: Definition of public API's for the finalization of 1887 conditions and mutexes. [Bug: 4199]. 1888 1889 * generic/tclInt.h: Removed definitions of TclFinalizeMutex and 1890 TclFinalizeCondition. 1891 1892 * generic/tcl.decls: Added declarations of Tcl_MutexFinalize and 1893 Tcl_ConditionFinalize. 1894 1895 * generic/tclThread.c: Renamed TclFinalizeMutex to Tcl_MutexFinalize. 1896 Renamed TclFinalizeCondition to Tcl_ConditionFinalize. 1897 1898 * generic/tclNotify.c: Changed usage of TclFinalizeMutex to 1899 Tcl_MutexFinalize. 1900 1901 * unix/tclUnixNotfy.c: 1902 * generic/tclThreadTest.c: Changed usages of TclFinalizeCondition to 1903 Tcl_ConditionFinalize. 1904 1905 * generic/tcl.h: Added empty macros for Tcl_MutexFinalize and 1906 Tcl_ConditionFinalize, to be used when the core is compiled without 1907 threads. 1908 1909 * doc/Thread.3: Added description the new API's. 1910 19112000-04-03 Jeff Hobbs <hobbs@scriptics.com> 1912 1913 * generic/tclCmdIL.c (InfoVarsCmd): checked for non-NULL procPtr to 1914 prevent itcl info override crash [Bug: 4064] 1915 1916 * tests/foreach.test: 1917 * tests/namespace.test: 1918 * tests/var.test: Added lsorts to avoid random sorted return 1919 problems. [Bug: 2682] 1920 1921 * tests/fileName.test: fixed 14.1 test fragility [Bug: 1482] 1922 1923 * tools/man2help2.tcl: fixed winhelp cross-linking error [Bug: 4156] 1924 improved translation to winhelp [Bug: 3679] 1925 1926 * unix/Makefile.in (MAN_INSTALL_DIR): patch to accept --mandir 1927 correctly [Bug: 4085] 1928 1929 * unix/dltest/pkg[a-e].c: Cleaned up test packages [Bug: 2293] 1930 19312000-04-03 Eric Melski <ericm@scriptics.com> 1932 1933 * unix/tclUnixFCmd.c (SetGroupAttribute): 1934 * unix/tclUnixFCmd.c (SetOwnerAttribute): Added (uid_t) and (gid_t) 1935 casts to avoid compiler warnings. 1936 19372000-03-31 Eric Melski <ericm@scriptics.com> 1938 1939 * generic/tclGet.c (Tcl_GetDouble): Added additional conditions to 1940 error test (previously only errno was checked, but the return value of 1941 strtod() should be checked as well). [Bug: 4118] 1942 1943 * tests/exec.test: Added test for proper conversion of UTF data when 1944 used with "<< $dataWithUTF" on exec's. 1945 1946 * unix/tclUnixPipe.c (TclpCreateTempFile): Added 1947 Tcl_UtfToExternalDString call, so that if there is UTF content in the 1948 string it will be properly converted to the system encoding before 1949 being written [Bug: 4030]. 1950 (TclpCreateTempFile): Added a check on the return value of tmpnam; 1951 some systems (Linux, for example) will start to return NULL after 1952 tmpnam has been called TMP_MAX times; not checking for this can have 1953 bad results (overwriting temp files, core dumps, etc.) 1954 19552000-03-30 Jeff Hobbs <hobbs@scriptics.com> 1956 1957 * generic/tclBasic.c (Tcl_DeleteCommandFromToken): Added comments 1958 noting the need to pair ckalloc with ckfree. [Bug: 4262] 1959 1960 * generic/tclInt.decls: 1961 * generic/tclIntPlatDecls.h: 1962 * generic/tclStubInit.c: 1963 * win/tclWin32Dll.c: removed TclWinSynchSpawn (vestige of Win32s 1964 support). 1965 1966 * win/tclWinReg.c: made use of TclWinGetPlatformId instead of getting 1967 info again 1968 1969 * win/tclWinPort.h: 1970 * win/Makefile.in: 1971 * win/configure.in: 1972 * win/tcl.m4: Added support for gcc/mingw on Windows [Bug: 4234] 1973 19742000-03-29 Jeff Hobbs <hobbs@scriptics.com> 1975 1976 * generic/tclCompile.c (TclCleanupByteCode): made ByteCode cleanup 1977 more aware of TCL_BYTECODE_PRECOMPILED flagged structs (gen'd by 1978 tbcload), to correctly clean them up. 1979 1980 * generic/tclClock.c (FormatClock): moved check for empty format 1981 earlier, commented 0 result return value 1982 19832000-03-29 Sandeep Tamhankar <sandeep@scriptics.com> 1984 1985 * library/http2.1/http.tcl: Removed an unnecessary fileevent statement 1986 from the error processing part of the Write method. Also, fixed two 1987 potential memory leaks in wait and reset, in which the state array 1988 wasn't being unset before throwing an exception. Prior to this 1989 version, Brent checked in a fix to catch a fileevent statement that 1990 was sometimes causing a stack trace when geturl was called with 1991 -timeout. I believe Brent's fix is necessary because TLS closes bad 1992 sockets for secure connections, and the fileevent was trying to act on 1993 a socket that no longer existed. 1994 19952000-03-27 Jeff Hobbs <hobbs@scriptics.com> 1996 1997 * tests/httpd: removed unnecessary 'puts stderr "Post Dispatch"' 1998 1999 * tests/namespace.test: 2000 * generic/tclNamesp.c (Tcl_Export): added a uniq'ing test to the 2001 export list so only one instance of each export pattern would exist in 2002 the list. 2003 2004 * generic/tclExecute.c (TclExecuteByteCode): optimized case for the 2005 empty string in ==/!= comparisons 2006 20072000-03-27 Eric Melski <ericm@scriptics.com> 2008 2009 * unix/tclUnixChan.c: Added (off_t) type casts in lseek() call [Bug: 2010 4409]. 2011 2012 * unix/tclLoadAout.c: 2013 * unix/tclUnixPipe.c: Added (off_t) type casts in lseek() calls [Bug: 2014 4410]. 2015 20162000-03-22 Sandeep Tamhankar <sandeep@scriptics.com> 2017 2018 * library/http2.1/http.tcl: Fixed a bug where string query data that 2019 was bigger than queryblocksize would get duplicate characters at block 2020 boundaries. 2021 20222000-03-22 Sandeep Tamhankar <sandeep@scriptics.com> 2023 2024 * library/http2.1/http.tcl: Fixed bug 4463, where we were getting a 2025 stack trace if we tried to publish a project to a good host but a port 2026 where there was no server listening. It turned out the problem was a 2027 stray fileevent that needed to be cleared. Also, fixed a bug where 2028 http::code could stack trace if called on a bad token (one which 2029 didn't represent a successful geturl) by adding an http element to the 2030 state array in geturl. 2031 20322000-03-21 Eric Melski <ericm@scriptics.com> 2033 2034 * tests/clock.test: Modified some tests that were not robust with 2035 respect to the time zone in which they were run and were thus failing. 2036 2037 * doc/clock.n: Clarified meaning of -gmt with respect to -base when 2038 used with [clock scan] (-gmt does not affect the interpretation of 2039 -base). 2040 20412000-03-19 Sandeep Tamhankar <sandeep@scriptics.com> 2042 2043 * library/http2.1/http.tcl: geturl used to throw an exception when the 2044 connection failed; I accidentally returned a token with the error 2045 info, breaking backwards compatibility. I changed it back to throwing 2046 an exception, but unsetting the state array first (thus still 2047 eliminating the original memory leak problem). 2048 20492000-03-19 Sandeep Tamhankar <sandeep@scriptics.com> 2050 2051 * library/http2.1/http.tcl: Added -querychannel option and altered 2052 some of Brent's modifications to allow asynchronous posts (via 2053 -command). Also modified -queryprogress so that it calls the query 2054 callback as <callback> <token> <total size> <current size> to be 2055 consistent with -progress. Added -queryblocksize option with default 2056 8192 bytes for post blocksize. Fixed a bunch of potential memory leaks 2057 for the case when geturl receives bad args or can't open a socket, 2058 etc. Overall, the package really rocks now. 2059 2060 * doc/http.n: Added -queryblocksize, -querychannel, and 2061 -queryprogress. Also, changed the description of -blocksize, which 2062 states that the -progress callback will be called for each block, to 2063 now qualify that with an "if -progress is specified". 2064 2065 * tests/http.test: Added a querychannel test for synchronous and 2066 asynchronous posts, altered the queryprogress test such that the 2067 callback conforms to the -progress format. Also, had to use the 2068 -queryblocksize option to do the post 16K at a time to match Brent's 2069 expected results (and to test that -queryblocksize works). 2070 20712000-03-15 Brent Welch <welch@scriptics.com> 2072 2073 * library/http2.1/http.tcl: Added -queryprogress callback to 2074 http::geturl and also changed it so that writing the post data is 2075 event driven if the queryprogress callback or a timeout is given. 2076 This allows a timeout to occur when writing lots of post data. The 2077 queryprogress callback is called after each block of query data is 2078 posted. It has the same signature as the -progress callback. 2079 20802000-03-06 Eric Melski <ericm@scriptics.com> 2081 2082 * library/package.tcl: Applied patch from Bug: 2570; rather than 2083 setting geometry of slave interp to 0x0 when Tk was loaded, it now 2084 does "wm withdraw .". Both remove the main window from the display, 2085 but the former caused some internal structures to get initialized to 2086 zero, which caused crashes with some extensions. 2087 20882000-03-02 Jeff Hobbs <hobbs@scriptics.com> 2089 2090 * library/package.tcl (tclPkgUnknown): extended to allow recognizes 2091 changes in the auto_path while sourcing in other pkgIndex.tcl files 2092 2093 * doc/FindExec.3: fixed doc for declaration of Tcl_FindExecutable 2094 [Bug: 4275] 2095 2096 * generic/tclFileName.c (Tcl_TranslateFileName): Applied patch from 2097 Newman to significantly speedup file split/join on Windows (replaces 2098 regexp with custom parser). [Bug: 2867] 2099 2100 * win/README.binary: change mailing lists from @consortium.org to 2101 @scriptics.com [Bug: 4173] 2102 21032000-02-28 Eric Melski <ericm@scriptics.com> 2104 2105 * tests/clock.test: Added test for ISO bases < 100000 2106 2107 * generic/tclDate.c: (generated on Solaris) 2108 * generic/tclGetDate.y: Changed condition for deciding if a number is 2109 an ISO 8601 base from number >= 100000 to numberOfDigits >= 6. 2110 Previously it would fail to recognize 000000 as an ISO base. 2111 21122000-02-14 Eric Melski <ericm@scriptics.com> 2113 2114 * unix/Makefile.in: Added rpm target to generate Tcl binary RPM. 2115 2116 * unix/tcl.spec: RPM specification file for a Tcl binary RPM for 2117 Linux. 2118 21192000-02-10 Jeff Hobbs <hobbs@scriptics.com> 2120 2121 8.3.0 RELEASE 2122 2123 * changes: updated for 8.3.0 release 2124 2125 * doc/load.n: added notes about dll load errors on Windows 2126 2127 * unix/README: 2128 * unix/Makefile.in (dist): removed porting.notes and porting.old from 2129 distribution and CVS. The information was very outdated. Now refer to 2130 http://dev.scriptics.com/services/support/platforms.html 2131 2132 * tests/unixInit.test: fixed japanese LANG encoding test [Bug: 3549] 2133 2134 * unix/configure.in: 2135 * unix/tcl.m4: correct CFLAG_WARNING setting, fixed gcc config for 2136 AIX, added -export-dynamic to LDFLAGS for FreeBSD-3+ [Bug: 2998] 2137 2138 * win/tclWinLoad.c (TclpLoadFile): improved error message for load 2139 failures, could perhaps be even more intelligent. 2140 21412000-02-09 Jim Ingham <jingham@cygnus.com> 2142 2143 * mac/tclMacSock.c: Don't panic when you get an error closing an async 2144 socket. This doesn't seem to hurt anything, and we return the error so 2145 the caller can do the right thing. 2146 2147 New Files: 2148 * mac/MW_TclHeader.h: 2149 * mac/MW_TclTestHeader.h: 2150 * mac/MW_TclTestHeader.pch: 2151 * mac/MW_TclAppleScriptHeader.h: More convenient to use .h prefix 2152 files in the preference panels... 2153 2154 The above are curtesy of Daniel Steffen (steffen@math.mq.edu.au) 2155 21562000-02-08 Eric Melski <ericm@scriptics.com> 2157 2158 * tests/clock.test: Added tests for "next monthname" constructs. 2159 * generic/tclDate.c: 2160 * generic/tclGetDate.y (Message): Added a grammar rule for "next 2161 monthname" so that we can handle "next january" and similar constructs 2162 (bug #4146). 2163 21642000-02-08 Jeff Hobbs <hobbs@scriptics.com> 2165 2166 * README: 2167 * tools/tcl.wse.in: 2168 * unix/configure.in: 2169 * win/configure.in: 2170 * win/README: 2171 * win/README.binary: 2172 * generic/tcl.h (TCL_RELEASE_SERIAL): Moved to 8.3.0 patchlevel 2173 2174 * doc/library.n: 2175 * library/auto.tcl: fixed crufty puts code and docs [Bug: 4122] 2176 2177 * library/tcltest1.0/tcltest.tcl: correctly protected searchDirectory 2178 list to allow dirnames with spaces 2179 2180 * unix/tcl.m4: changed all -fpic to -fPIC 2181 2182 * generic/tclDecls.h: 2183 * generic/tcl.decls: change Tcl_GetOpenFile to use decl of 'int 2184 forWriting' instead of 'int write' to avoid shadowing [Bug: 4121] 2185 2186 * tests/httpold.test: changed test script to source in the httpd 2187 server procs from httpd instead of having its own set. 2188 2189 * tests/httpd: improved query support in test httpd to handle fix in 2190 http.tcl. [Bug: 4089 change 2000-02-01] 2191 2192 * unix/README: fixed notes about --enable-shared and add note about 2193 --disable-shared. 2194 21952000-02-07 Eric Melski <ericm@scriptics.com> 2196 2197 * tests/package.test: 2198 * library/tclIndex: 2199 * library/package.tcl: Renamed ::package namespace to ::pkg. 2200 22012000-02-03 Eric Melski <ericm@scriptics.com> 2202 2203 * doc/Package.n: 2204 * doc/packagens.n: Renamed Package.n -> packagens.n because Windows 2205 can't deal with case-sensitive names. 2206 22072000-02-02 Jeff Hobbs <hobbs@scriptics.com> 2208 2209 * tests/regexp.test: added tests for -all and -inline switches 2210 * doc/regexp.n: added docs for -all and -inline switches 2211 * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): added extra comments for new 2212 -all and -inline switches to regexp command 2213 22142000-02-01 Eric Melski <ericm@scriptics.com> 2215 2216 * library/init.tcl: Applied patch from rfe 1734 regarding auto_load 2217 errors not setting error message and errorInfo properly. 2218 22192000-02-01 Jeff Hobbs <hobbs@scriptics.com> 2220 2221 * win/Makefile.in (install-*): reduced verbosity of install 2222 2223 * generic/tclFileName.c (Tcl_JoinPath): improved support for special 2224 QNX node id prefixes in pathnames [Bug: 4053] 2225 2226 * library/http1.0/http.tcl: 2227 * library/http2.1/http.tcl: The query data POSTed was newline 2228 terminated when it shouldn't be altered [Bug: 4089] 2229 22302000-01-31 Eric Melski <ericm@scriptics.com> 2231 2232 * tests/package.test: 2233 * library/tclIndex: 2234 * library/package.tcl: Added ::package namespace and ::package::create 2235 function. 2236 2237 * library/init.tcl: Fixed problem with auto_load and determining if 2238 commands were loaded. 2239 2240 * library/auto.tcl: "Fixed" issues with $ in files to be auto indexed. 2241 2242 * doc/Package.n: New man page for package::create function. 2243 2244 * doc/pkgMkIndex.n: Added additional information. 2245 2246 * doc/library.n: Added additional qualification regarding auto_mkindex. 2247 22482000-01-28 Eric Melski <ericm@scriptics.com> 2249 2250 * tests/pkg/magicchar2.tcl: 2251 * tests/autoMkindex.test: Test for auto loader fix (bug #2480). 2252 2253 * library/init.tcl: auto_load was using [info commands $name] to 2254 determine if a given command was available; if the command name had * 2255 or [] it, this would fail because info commands uses glob-style 2256 matching. This is fixed. (Bug #2480). 2257 2258 * tests/pkg/spacename.tcl: 2259 * tests/pkgMkIndex.test: Tests for fix for bug #2360. 2260 2261 * library/package.tcl: Fixed to extract only the first element of the 2262 list returned by auto_qualify (bug #2360). 2263 2264 * tests/pkg/magicchar.tcl: 2265 * tests/autoMkindex.test: Test for fix for bug #2611. 2266 2267 * library/auto.tcl: Fixed the regular expression that performs $ 2268 escaping before sourcing a file to index. It was erroneously adding \ 2269 escapes even to $'s that were already escaped, effectively 2270 "un-escaping" those $'s. (bug #2611). 2271 22722000-01-27 Eric Melski <ericm@scriptics.com> 2273 2274 * tests/autoMkindex.test: 2275 * library/auto.tcl: Applied patch (with slight modification) from bug 2276 #2701: auto_mkIndex uses platform dependent file paths. Added test for 2277 fix. 2278 22792000-01-27 Jennifer Hom <jenn@scriptics.com> 2280 2281 * library/tcltest1.0/tcltest.tcl: Changed NormalizePath to 2282 normalizePath and exported it as a public proc. This proc creates an 2283 absolute path given the name of the variable containing the path to 2284 modify. The path is modified in place. 2285 * library/tcltest1.0/pkgIndex.tcl: Added normalizePath. 2286 * tests/all.tcl: Changed code to use normalizePath. 2287 22882000-01-27 Eric Melski <ericm@scriptics.com> 2289 2290 * tests/pkg/samename.tcl: test file for bug #1983 2291 2292 * tests/pkgMkIndex.test: 2293 * doc/pkgMkIndex.n: 2294 * library/package.tcl: Per rfe #4097, optimized creation of direct 2295 load packages to bypass computing the list of commands added by the 2296 new package. Also made direct loading the default, and added a -lazy 2297 option. 2298 Fixed bug #1983, dealing with pkg_mkIndex incorrectly handling 2299 situations with two procs by the same name but in different namespaces 2300 (ie, foo::baz and bar::baz). 2301 23022000-01-26 Eric Melski <ericm@scriptics.com> 2303 2304 * generic/tclNamesp.c: Undid fix for #956, which broke backwards 2305 compatibility. 2306 2307 * doc/variable.n: 2308 * doc/trace.n: 2309 * doc/namespace.n: 2310 * doc/info.n: Added further information about differences between 2311 "namespace which" and "info exists". 2312 2313 * doc/SetErrno.3: Added descriptions of ErrnoId() and ErrnoMsg() 2314 functions. 2315 23162000-01-25 Jeff Hobbs <hobbs@scriptics.com> 2317 2318 * unix/tcl.m4: modified EXTRA_CFLAGS to add -DHAVE_TZSET for OSF1-V* 2319 and ULTRIX-4.* when not using gcc. Also added higher min stack size 2320 for OSF1-V* when building with threads. [Bug: 4063] 2321 2322 * generic/tclClock.c (FormatClock): inlined resultPtr, as it 2323 conflicted with var creation for HAVE_TZSET #def [Bug: 4063] 2324 2325 * generic/tclCmdIL.c (Tcl_LsortObjCmd): fixed potential leak when 2326 calling lsort -command with bad command [Bug: 4067] 2327 2328 * generic/tclFileName.c (Tcl_JoinPath): added support for special QNX 2329 node id prefixes in pathnames [Bug: 4053] 2330 2331 * doc/ListObj.3: clarified Tcl_ListObjGetElements docs [Bug: 4080] 2332 2333 * doc/glob.n: clarified Mac path separator determination docs. 2334 2335 * win/makefile.vc: added some support for building helpfile on Windows 2336 23372000-01-23 Jeff Hobbs <hobbs@scriptics.com> 2338 2339 * library/init.tcl (auto_execok): added 'start' to list of recognized 2340 built-in commands for COMSPEC on NT. [Bug: 2858] 2341 2342 * unix/tclUnixPort.h: moved include of <utime.h> lower since some 2343 systems (UTS) require sys/types.h to be included first [Bug: 4031] 2344 2345 * unix/tclUnixChan.c (CreateSocketAddress): changed comparison with -1 2346 to 0xFFFFFFFF, to ensure 32 bit comparison even on 64 bit systems. 2347 [Bug: 3878] 2348 2349 * generic/tclFileName.c: improved guessing of path separator for the 2350 Mac. (Darley) 2351 2352 * generic/tclInt.h: 2353 * generic/tcl.decls: moved Tcl_ProcObjCmd to stubs table [Bug: 3827] 2354 and removed 'register' from stub definition of 2355 Tcl_AppendUnicodeToObj [Bug: 4038] 2356 23572000-01-21 Eric Melski <ericm@scriptics.com> 2358 2359 * unix/mkLinks: 2360 * doc/GetHostName.3: Man page for Tcl_GetHostName (bug #1817). 2361 2362 * doc/lreplace.n: Corrected man page with respect to treatment of 2363 empty lists, and "prettied up" the page. (bug #1705). 2364 23652000-01-20 Eric Melski <ericm@scriptics.com> 2366 2367 * tests/namespace.test: Added test for undefined variables with 2368 namespace which (bug #956). 2369 2370 * generic/tclNamesp.c: Added check for undefined variables in 2371 NamespaceWhichCmd (bug #956). 2372 2373 * tests/var.test: Added tests for corrected variable behavior (bug 2374 #981). 2375 2376 * doc/upvar.n: Expanded explanation of upvar behavior with respect to 2377 variable traces. (bugs 3917 1433 2110). 2378 2379 * generic/tclVar.c: Changed behavior of variable command when name 2380 refers to an element in an array (ie, "variable foo(x)") to always 2381 return an error, regardless of existance of that element in the array 2382 (now behavior is consistant with docs too) (bug #981). 2383 23842000-01-20 Jeff Hobbs <hobbs@scriptics.com> 2385 2386 * generic/tclCmdIL.c (InfoBodyCmd): made [info body] return a string 2387 if the body has been bytecompiled. 2388 * generic/tclBasic.c (Tcl_EvalObjEx): added pedantic check for 2389 originating proc body of bytecompiled code, #def'd out as the change 2390 for [info body] should make it unnecessary 2391 2392 * unix/tclUnixNotfy.c (Tcl_InitNotifier): added cast for tsdPtr 2393 2394 * tests/set.test: added test for complex array elem name compiling 2395 * generic/tclCompCmds.c (TclCompileSetCmd): Fixed parsing of array 2396 elements during compiling, and slightly optimised same [Bug: 3889] 2397 2398 * doc/tclvars.n: added definitions for tcl_(non)wordchars 2399 2400 * doc/vwait.n: added notes about requirement for vwait var being 2401 globally scoped [Bug: 3329] 2402 2403 * library/word.tcl: changed tcl_(non)wordchars settings to use new 2404 unicode regexp char class escapes instead of char sequences 2405 24062000-01-14 Eric Melski <ericm@scriptics.com> 2407 2408 * tests/var.test: Added a test for the array multiple delete 2409 protection in Tcl_UnsetVar2. 2410 2411 * generic/tclVar.c: Added protection in Tcl_UnsetVar2 against attempts 2412 to multiply delete arrays when unsetting them (bug #3453). This could 2413 happen if there was an unset trace on an array element and the trace 2414 proc made a global or upvar link to the array, and then the array was 2415 unset at the global level. See the bug reference for more information. 2416 2417 * unix/tclUnixTime.c: New clock format format. 2418 2419 * compat/strftime.c: New clock format format. 2420 2421 * generic/tclGetDate.y: New clock scan format. 2422 24232000-01-13 Jeff Hobbs <hobbs@scriptics.com> 2424 2425 * changes: updated changes file to reflect 8.3b2 mods 2426 2427 * README: 2428 * generic/tcl.h: 2429 * tools/tcl.wse.in: 2430 * unix/configure.in: 2431 * unix/tcl.m4: 2432 * win/README.binary: 2433 * win/configure.in: updated to patchlevel 8.3b2 2434 2435 * generic/regexec.c: added var initialization to prevent compiler 2436 warning 2437 24382000-01-13 Eric Melski <ericm@scriptics.com> 2439 2440 * tests/cmdIL.test: Added tests for lsort -dictionary with characters 2441 that occur between Z and a in ASCII. 2442 2443 * generic/tclCmdIL.c: Modified DictionaryCompare function (used by 2444 lsort -dictionary) to do upper/lower case equivalency before doing 2445 character comparisons, instead of after. This fixes bug #1357, in 2446 which lsort -dictionary [list ` AA c CC] and lsort -dictionary [list 2447 AA c ` CC] gave different (and both wrong) results. 2448 24492000-01-12 Eric Melski <ericm@scriptics.com> 2450 2451 * tests/clock.test: Added tests for "next <day-of-week>" and 2452 "<day-of-week>" 2453 Added tests for "monday 1 week ago", etc, from RFE #3671. 2454 2455 * doc/tests/clock.test: Added numerous tests for clock scan. 2456 2457 * doc/generic/tclGetDate.y: Fixed some shift/reduce conflicts in clock 2458 grammar. 2459 2460 * doc/doc/clock.n: Added documentation for new supported clock scan 2461 formats and additional explanation of daylight savings time correction 2462 algorithm. 2463 24642000-01-12 Jeff Hobbs <hobbs@scriptics.com> 2465 2466 * doc/file.n: 2467 * tests/unixFCmd.test: 2468 * unix/tclUnixFCmd.c: added support for symbolic permissions setting 2469 in SetPermissionsAttribute (file attr $file -perm ...) [Bug: 3970] 2470 2471 * generic/tclClock.c: fixed support for 64bit handling of clock values 2472 [Bug: 1806] 2473 2474 * generic/tclThreadTest.c: upped a buffer size to hold double 2475 2476 * tests/info.test: 2477 * generic/tclCmdIL.c: fixed 'info procs ::namesp::*' behavior (Dejong) 2478 2479 * generic/tclNamesp.c: made imported commands also import their 2480 compile proc [Bug: 2100] 2481 2482 * tests/expr.test: 2483 * unix/Makefile.in: 2484 * unix/configure.in: 2485 * unix/tcl.m4: recognize strtod bug on Tru64 v5.0 [Bug: 3378] and 2486 added tests to prevent unnecessary chmod +x in sources while 2487 installing, as well as more intelligent setsockopt/gethostbyname 2488 checks [Bug: 3366, 3389] 2489 2490 * unix/tclUnixThrd.c: added compile time support (through use of the 2491 TCL_THREAD_STACK_MIN define) for increasing the default stack size for 2492 a thread. [Bug: 3797, 1966] 2493 24942000-01-11 Eric Melski <ericm@scriptics.com> 2495 2496 * generic/tclGetDate.y: Added comments for the Convert function. Added 2497 a fix for daylight savings time handling for relative time spans of 2498 days, weeks or fortnights. (bug 3441, 3868). 2499 2500 * generic/tclDate.c: Fixed compiler warning issues. 2501 25022000-01-10 Jeff Hobbs <hobbs@scriptics.com> 2503 2504 * compat/waitpid.c: use pid_t type instead of int [Bug: 3999] 2505 2506 * tests/utf.test: fixed test that allowed \8 as octal value 2507 * generic/tclUtf.c: changed Tcl_UtfBackslash to not allow non-octal 2508 digits (8,9) in \ooo substs. [Bug: 3975] 2509 2510 * generic/tcl.h: noted need to change win/tcl.m4 and 2511 tools/tclSplash.bmp for minor version changes 2512 2513 * library/http2.1/http.tcl: trim value for $state(meta) key 2514 2515 * unix/tclUnixFile.c: fixed signature style on functions 2516 2517 * unix/Makefile.in: made sure tcl.m4 would be installed with dist 2518 2519 * unix/tcl.m4: added ELF support for NetBSD [Bug: 3959] 2520 25212000-01-10 Eric Melski <ericm@scriptics.com> 2522 2523 * generic/tclGetDate.y: Added rules for ISO 8601 formats (BUG #847): 2524 CCYY-MM-DD 2525 CCYYMMDD 2526 YY-MM-DD 2527 YYMMDD 2528 CCYYMMDDTHHMMSS 2529 CCYYMMDD HHMMSS 2530 CCYYMMDDTHH:MM:SS 2531 Fixed "clock scan <number>" to scan the number as an hour for the 2532 current day, rather than a minute after 00:00 for the current day 2533 (bug #2732). 2534 25352000-01-07 Eric Melski <ericm@scriptics.com> 2536 2537 * generic/tclClock.c: Changed switch in Tcl_ClockObjCmd to use 2538 enumerated values instead of constants. (ie, COMMAND_SCAN instead of 2539 3). 2540