Tcl Source Code

Artifact Content
Login
Bounty program for improvements to Tcl and certain Tcl packages.

Artifact cf90816b84d5a1383d8f296a070ea81e3b7d85d5:


     1  Recent user-visible changes to Tcl:
     2  
     3  1. No more [command1] [command2] construct for grouping multiple
     4  commands on a single command line.
     5  
     6  2. Semi-colon now available for grouping commands on a line.
     7  
     8  3. For a command to span multiple lines, must now use backslash-return
     9  at the end of each line but the last.
    10  
11 4. "Var" command has been changed to "set".
12 13 5. Double-quotes now available as an argument grouping character. 14 15 6. "Return" may be used at top-level. 16 17 7. More backslash sequences available now. In particular, backslash-newline 18 may be used to join lines in command files. 19 20 8. New or modified built-in commands: case, return, for, glob, info, 21 print, return, set, source, string, uplevel. 22 23 9. After an error, the variable "errorInfo" is filled with a stack 24 trace showing what was being executed when the error occurred. 25 26 10. Command abbreviations are accepted when parsing commands, but 27 are not recommended except for purely-interactive commands. 28 29 11. $, set, and expr all complain now if a non-existent variable is 30 referenced. 31 32 12. History facilities exist now. See Tcl.man and Tcl_RecordAndEval.man. 33 34 13. Changed to distinguish between empty variables and those that don't 35 exist at all. Interfaces to Tcl_GetVar and Tcl_ParseVar have changed 36 (NULL return value is now possible). *** POTENTIAL INCOMPATIBILITY *** 37 38 14. Changed meaning of "level" argument to "uplevel" command (1 now means 39 "go up one level", not "go to level 1"; "#1" means "go to level 1"). 40 *** POTENTIAL INCOMPATIBILITY *** 41 42 15. 3/19/90 Added "info exists" option to see if variable exists. 43 44 16. 3/19/90 Added "noAbbrev" variable to prohibit command abbreviations. 45 46 17. 3/19/90 Added extra errorInfo option to "error" command. 47 48 18. 3/21/90 Double-quotes now only affect space: command, variable, 49 and backslash substitutions still occur inside double-quotes. 50 *** POTENTIAL INCOMPATIBILITY *** 51 52 19. 3/21/90 Added support for \r. 53 54 20. 3/21/90 List, concat, eval, and glob commands all expect at least 55 one argument now. *** POTENTIAL INCOMPATIBILITY *** 56 57 21. 3/22/90 Added "?:" operators to expressions. 58 59 22. 3/25/90 Fixed bug in Tcl_Result that caused memory to get trashed. 60 61 ------------------- Released version 3.1 --------------------- 62 63 23. 3/29/90 Fixed bug that caused "file a.b/c ext" to return ".b/c". 64 65 24. 3/29/90 Semi-colon is not treated specially when enclosed in 66 double-quotes. 67 68 ------------------- Released version 3.2 --------------------- 69 70 25. 4/16/90 Rewrote "exec" not to use select or signals anymore. 71 Should be more Sys-V compatible, and no slower in the normal case. 72 73 26. 4/18/90 Rewrote "glob" to eliminate GNU code (there's no GNU code 74 left in Tcl, now), and added Tcl_TildeSubst procedure. Added automatic 75 tilde-substitution in many commands, including "glob". 76 77 ------------------- Released version 3.3 --------------------- 78 79 27. 7/11/90 Added "Tcl_AppendResult" procedure. 80 81 28. 7/20/90 "History" with no options now defaults to "history info" 82 rather than to "history redo". Although this is a backward incompatibility, 83 it should only be used interactively and thus shouldn't present any 84 compatibility problems with scripts. 85 86 29. 7/20/90 Added "Tcl_GetInteger", "Tcl_GetDouble", and "Tcl_GetBoolean" 87 procedures. 88 89 30. 7/22/90 Removed "Tcl_WatchInterp" procedure: doesn't seem to be 90 necessary, since the same effect can be achieved with the deletion 91 callbacks on individual commands. *** POTENTIAL INCOMPATIBILITY *** 92 93 31. 7/23/90 Added variable tracing: Tcl_TraceVar, Tcl_UnTraceVar, 94 and Tcl_VarTraceInfo procedures, "trace" command. 95 96 32. 8/9/90 Mailed out list of all bug fixes since 3.3 release. 97 98 33. 8/29/90 Fixed bugs in Tcl_Merge relating to backslashes and 99 semi-colons. Mailed out patch. 100 101 34. 9/3/90 Fixed bug in tclBasic.c: quotes weren't quoting ]'s. 102 Mailed out patch. 103 104 35. 9/19/90 Rewrote exec to always use files both for input and 105 output to the process. The old pipe-based version didn't work if 106 the exec'ed process forked a child and then exited: Tcl waited 107 around for stdout to get closed, which didn't happen until the 108 grandchild exited. 109 110 36. 11/5/90 ERR_IN_PROGRESS flag wasn't being cleared soon enough 111 in Tcl_Eval, allowing error messages from different commands to 112 pile up in $errorInfo. Fixed by re-arranging code in Tcl_Eval that 113 re-initializes result and ERR_IN_PROGRESS flag. Didn't mail out 114 patch: changes too complicated to describe. 115 116 37. 12/19/90 Added Tcl_VarEval procedure as a convenience for 117 assembling and executing Tcl commands. 118 119 38. 1/29/91 Fixed core leak in Tcl_AddErrorInfo. Also changed procedure 120 and Tcl_Eval so that first call to Tcl_AddErrorInfo need not come from 121 Tcl_Eval. 122 123 ----------------- Released version 5.0 with Tk ------------------ 124 125 39. 4/3/91 Removed change bars from manual entries, leaving only those 126 that came after version 3.3 was released. 127 128 40. 5/17/91 Changed tests to conform to Mary Ann May-Pumphrey's approach. 129 130 41. 5/23/91 Massive revision to Tcl parser to simplify the implementation 131 of string and floating-point support in expressions. Newlines inside 132 [] are now treated as command separators rather than word separators 133 (this makes newline treatment consistent throughout Tcl). 134 *** POTENTIAL INCOMPATIBILITY *** 135 136 42. 5/23/91 Massive rewrite of expression code to support floating-point 137 values and simple string comparisons. The C interfaces to expression 138 routines have changed (Tcl_Expr is replaced by Tcl_ExprLong, Tcl_ExprDouble, 139 etc.), but all old Tcl expression strings should be accepted by the new 140 expression code. 141 *** POTENTIAL INCOMPATIBILITY *** 142 143 43. 5/23/91 Modified tclHistory.c to check for negative "keep" value. 144 145 44. 5/23/91 Modified Tcl_Backslash to handle backslash-newline. It now 146 returns 0 to indicate that a backslash sequence should be replaced by 147 no character at all. 148 *** POTENTIAL INCOMPATIBILITY *** 149 150 45. 5/29/91 Modified to use ANSI C function prototypes. Must set 151 "USE_ANSI" switch when compiling to get prototypes. 152 153 46. 5/29/91 Completed test suite by providing tests for all of the 154 built-in Tcl commands. 155 156 47. 5/29/91 Changed Tcl_Concat to eliminate leading and trailing 157 white-space in each of the things it concatenates and to ignore 158 elements that are empty or have only white space in them. This 159 produces cleaner output from the "concat" command. 160 *** POTENTIAL INCOMPATIBILITY *** 161 162 48. 5/31/91 Changed "set" command and Tcl_SetVar procedure to return 163 new value of variable. 164 165 49. 6/1/91 Added "while" and "cd" commands. 166 167 50. 6/1/91 Changed "exec" to delete the last character of program 168 output if it is a newline. In most cases this makes it easier to 169 process program-generated output. 170 *** POTENTIAL INCOMPATIBILITY *** 171 172 51. 6/1/91 Made sure that pointers are never used after freeing them. 173 174 52. 6/1/91 Fixed bug in TclWordEnd where it wasn't dealing with 175 [] inside quotes correctly. 176 177 53. 6/8/91 Fixed exec.test to accept return values of either 1 or 178 255 from "false" command. 179 180 54. 7/6/91 Massive overhaul of variable management. Associative 181 arrays now available, along with "unset" command (and Tcl_UnsetVar 182 procedure). Variable traces have been completely reworked: 183 interfaces different both from Tcl and C, and multiple traces may 184 exist on same variable. Can no longer redefine existing local 185 variable to be global. Calling sequences have changed slightly 186 for Tcl_GetVar and Tcl_SetVar ("global" is now "flags"). Tcl_SetVar 187 can fail and return a NULL result. New forms of variable-manipulation 188 procedures: Tcl_GetVar2, Tcl_SetVar2, etc. Syntax of variable 189 $-notation changed to support array indexing. 190 *** POTENTIAL INCOMPATIBILITY *** 191 192 55. 7/6/91 Added new list-manipulation procedures: Tcl_ScanElement, 193 Tcl_ConvertElement, Tcl_AppendElement. 194 195 56. 7/12/91 Created new procedure Tcl_EvalFile, which does most of the 196 work of the "source" command. 197 198 57. 7/20/91 Major reworking of "exec" command to allow pipelines, 199 more redirection, background. Added new procedures Tcl_Fork, 200 Tcl_WaitPids, Tcl_DetachPids, and Tcl_CreatePipeline. The old 201 "< input" notation has been replaced by "<< input" ("<" is for 202 redirection from a file). Also handles error returns and abnormal 203 terminations (e.g. signals) differently. 204 *** POTENTIAL INCOMPATIBILITY *** 205 206 58. 7/21/91 Added "append" and "lappend" commands. 207 208 59. 7/22/91 Reworked error messages and manual entries to use 209 ?x? as the notation for an optional argument x, instead of [x]. The 210 bracket notation was often confused with the use of brackets for 211 command substitution. Also modified error messages to be more 212 consistent. 213 214 60. 7/23/91 Tcl_DeleteCommand now returns an indication of whether 215 or not the command actually existed, and the "rename" command uses 216 this information to return an error if an attempt is made to delete 217 a non-existent command. 218 *** POTENTIAL INCOMPATIBILITY *** 219 220 61. 7/25/91 Added new "errorCode" mechanism, along with procedures 221 Tcl_SetErrorCode, Tcl_UnixError, and Tcl_ResetResult. Renamed 222 Tcl_Return to Tcl_SetResult, but left a #define for Tcl_Return to 223 avoid compatibility problems. 224 225 62. 7/26/91 Extended "case" command with alternate syntax where all 226 patterns and commands are together in a single list argument: makes 227 it easier to write multi-line case statements. 228 229 63. 7/27/91 Changed "print" command to perform tilde-substitution on 230 the file name. 231 232 64. 7/27/91 Added "tolower", "toupper", "trim", "trimleft", and "trimright" 233 options to "string" command. 234 235 65. 7/29/91 Added "atime", "mtime", "size", and "stat" options to "file" 236 command. 237 238 66. 8/1/91 Added "split" and "join" commands. 239 240 67. 8/11/91 Added commands for file I/O, including "open", "close", 241 "read", "gets", "puts", "flush", "eof", "seek", and "tell". 242 243 68. 8/14/91 Switched to use a hash table for command lookups. Command 244 abbreviations no longer have direct support in the Tcl interpreter, but 245 it should be possible to simulate them with the auto-load features 246 described below. The "noAbbrev" variable is no longer used by Tcl. 247 *** POTENTIAL INCOMPATIBILITY *** 248 249 68.5 8/15/91 Added support for "unknown" command, which can be used to 250 complete abbreviations, auto-load library files, auto-exec shell 251 commands, etc. 252 253 69. 8/15/91 Added -nocomplain switch to "glob" command. 254 255 70. 8/20/91 Added "info library" option and TCL_LIBRARY #define. Also 256 added "info script" option. 257 258 71. 8/20/91 Changed "file" command to take "option" argument as first 259 argument (before file name), for consistency with other Tcl commands. 260 *** POTENTIAL INCOMPATIBILITY *** 261 262 72. 8/20/91 Changed format of information in $errorInfo variable: 263 comments such as 264 ("while" body line 1) 265 are now on separate lines from commands being executed. 266 *** POTENTIAL INCOMPATIBILITY *** 267 268 73. 8/20/91 Changed Tcl_AppendResult so that it (eventually) frees 269 large buffers that it allocates. 270 271 74. 8/21/91 Added "linsert", "lreplace", "lsearch", and "lsort" 272 commands. 273 274 75. 8/28/91 Added "incr" and "exit" commands. 275 276 76. 8/30/91 Added "regexp" and "regsub" commands. 277 278 77. 9/4/91 Changed "dynamic" field in interpreters to "freeProc" (procedure 279 address). This allows for alternative storage managers. 280 *** POTENTIAL INCOMPATIBILITY *** 281 282 78. 9/6/91 Added "index", "length", and "range" options to "string" 283 command. Added "lindex", "llength", and "lrange" commands. 284 285 79. 9/8/91 Removed "index", "length", "print" and "range" commands. 286 "Print" is redundant with "puts", but less general, and the other 287 commands are replaced with the new commands described in change 78 288 above. 289 *** POTENTIAL INCOMPATIBILITY *** 290 291 80. 9/8/91 Changed history revision to occur even when history command 292 is nested; needed in order to allow "history" to be invoked from 293 "unknown" procedure. 294 295 81. 9/13/91 Changed "panic" not to use vfprintf (it's uglier and less 296 general now, but makes it easier to run Tcl on systems that don't 297 have vfprintf). Also changed "strerror" not to redeclare sys_errlist. 298 299 82. 9/19/91 Lots of changes to improve portability to different UNIX 300 systems, including addition of "config" script to adapt Tcl to the 301 configuration of the system it's being compiled on. 302 303 83. 9/22/91 Added "pwd" command. 304 305 84. 9/22/91 Renamed manual pages so that their filenames are no more 306 than 14 characters in length, moved to "doc" subdirectory. 307 308 85. 9/24/91 Redid manual entries so they contain the supplemental 309 macros that they need; can just print with "troff -man" or "man" 310 now. 311 312 86. 9/26/91 Created initial version of script library, including 313 a version of "unknown" that does auto-loading, auto-execution, and 314 abbreviation expansion. This library is used by tclTest 315 automatically. See the "library" manual entry for details. 316 317 ----------------- Released version 6.0, 9/26/91 ------------------ 318 319 87. 9/30/91 Made "string tolower" and "string toupper" check case 320 before converting: on some systems, "tolower" and "toupper" assume 321 that character already has particular case. 322 323 88. 9/30/91 Fixed bug in Tcl_SetResult: wasn't always setting freeProc 324 correctly when called with NULL value. This tended to cause memory 325 allocation errors later. 326 327 89. 10/3/91 Added "upvar" command. 328 329 90. 10/4/91 Changed "format" so that internally it converts %D to %ld, 330 %U to %lu, %O to %lo, and %F to %f. This eliminates some compatibility 331 problems on some machines without affecting behavior. 332 333 91. 10/10/91 Fixed bug in "regsub" that caused core dumps with the -all 334 option when the last match wasn't at the end of the string. 335 336 92. 10/17/91 Fixed problems with backslash sequences: \r support was 337 incomplete and \f and \v weren't supported at all. 338 339 93. 10/24/91 Added Tcl_InitHistory procedure. 340 341 94. 10/24/91 Changed "regexp" to store "-1 -1" in subMatchVars that 342 don't match, rather than returning an error. 343 344 95. 10/27/91 Modified "regexp" to return actual strings in matchVar 345 and subMatchVars instead of indices. Added "-indices" switch to cause 346 indices to be returned. 347 *** POTENTIAL INCOMPATIBILITY *** 348 349 96. 10/27/91 Fixed bug in "scan" where it used hardwired constants for 350 sizes of floats and doubles instead of using "sizeof". 351 352 97. 10/31/91 Fixed bug in tclParse.c where parse-related error messages 353 weren't being storage-managed correctly, causing spurious free's. 354 355 98. 10/31/91 Form feed and vertical tab characters are now considered 356 to be space characters by the parser. 357 358 99. 10/31/91 Added TCL_LEAVE_ERR_MSG flag to procedures like Tcl_SetVar. 359 360 100. 11/7/91 Fixed bug in "case" where "in" argument couldn't be omitted 361 if all case branches were embedded in a single list. 362 363 101. 11/7/91 Switched to use "pid_t" and "uid_t" and other official 364 POSIC types and function prototypes. 365 366 ----------------- Released version 6.1, 11/7/91 ------------------ 367 368 102. 12/2/91 Modified Tcl_ScanElement and Tcl_ConvertElement in several 369 ways. First, allowed caller to request that only backslashes be used 370 (no braces). Second, made Tcl_ConvertElement more aggressive in using 371 backslashes for braces and quotes. 372 373 103. 12/5/91 Added "type", "lstat", and "readlink" options to "file" 374 command, plus added new "type" element to output of "stat" and "lstat" 375 options. 376 377 104. 12/10/91 Manual entries had first lines that caused "man" program 378 to try weird preprocessor. Added blank comment lines to fix problem. 379 380 105. 12/16/91 Fixed a few bugs in auto_mkindex proc: wasn't handling 381 errors properly, and hadn't been upgraded for new "regexp" syntax. 382 383 106. 1/2/92 Fixed bug in "file" command where it didn't properly handle 384 a file names containing tildes where the indicated user doesn't exist. 385 386 107. 1/2/92 Fixed lots of cases in tclUnixStr.c where two different 387 errno symbols (e.g. EWOULDBLOCK and EAGAIN) have the same number; Tcl 388 will only use one of them. 389 390 108. 1/2/92 Lots of changes to configuration script to handle many more 391 systems more gracefully. E.g. should now detect the bogus strtoul that 392 comes with AIX and substitute Tcl's own version instead. 393 394 ----------------- Released version 6.2, 1/10/92 ------------------ 395 396 109. 1/20/92 Config didn't have code to actually use "uid_t" variable 397 to set TCL_UIT_T #define. 398 399 110. 2/10/92 Tcl_Eval didn't properly reset "numLevels" variable when 400 too-deep recursion occurred. 401 402 111. 2/29/92 Added "on" and "off" to keywords accepted by Tcl_GetBoolean. 403 404 112. 3/19/92 Config wasn't installing default version of strtod.c for 405 systems that don't have one in libc.a. 406 407 113. 3/23/92 Fixed bug in tclExpr.c where numbers with leading "."s, 408 like 0.75, couldn't be properly substituted into expressions with 409 variable or command substitution. 410 411 114. 3/25/92 Fixed bug in tclUnixAZ.c where "gets" command wasn't 412 checking to make sure that it was able to write the variable OK. 413 414 115. 4/16/92 Fixed bug in tclUnixAZ.c where "read" command didn't 415 compute file size right for device files. 416 417 116. 4/23/92 Fixed but in tclCmdMZ.c where "trace vinfo" was overwriting 418 the trace command. 419 420 ----------------- Released version 6.3, 5/1/92 ------------------ 421 422 117. 5/1/92 Added Tcl_GlobalEval. 423 424 118. 6/1/92 Changed auto-load facility to source files at global level. 425 426 119. 6/8/92 Tcl_ParseVar wasn't always setting termPtr after errors, which 427 sometimes caused core dumps. 428 429 120. 6/21/92 Fixed bug in initialization of regexp pattern cache. This 430 bug caused segmentation violations in regexp commands under some conditions. 431 432 121. 6/22/92 Changed implementation of "glob" command to eliminate 433 trailing slashes on directory names: they confuse some systems. There 434 shouldn't be any user-visible changes in functionality except for names 435 in error messages not having trailing slashes. 436 437 122. 7/2/92 Fixed bug that caused 'string match ** ""' to return 0. 438 439 123. 7/2/92 Fixed bug in Tcl_CreateCmdBuf where it wasn't initializing 440 the buffer to an empty string. 441 442 124. 7/6/92 Fixed bug in "case" command where it used NULL pattern string 443 after errors in the "default" clause. 444 445 125. 7/25/92 Speeded up auto_load procedure: don't reread all the index 446 files unless the path has changed. 447 448 126. 8/3/92 Changed tclUnix.h to define MAXPATHLEN from PATH_MAX, not 449 _POSIX_PATH_MAX. 450 451 ----------------- Released version 6.4, 8/7/92 ------------------ 452 453 127. 8/10/92 Changed tclBasic.c so that comment lines can be continued by 454 putting a backslash before the newline. 455 456 128. 8/21/92 Modified "unknown" to allow the source-ing of a file for 457 an auto-load to trigger other nested auto-loads, as long as there isn't 458 any recursion on the same command name. 459 460 129. 8/25/92 Modified "format" command to allow " " and "+" flags, and 461 allow flags in any order. 462 463 130. 9/14/92 Modified Tcl_ParseVar so that it doesn't actually attempt 464 to look up the variable if "noEval" mode is in effect in the interpreter 465 (it just parses the name). This avoids the errors that used to occur 466 in statements like "expr {[info exists foo] && $foo}". 467 468 131. 9/14/92 Fixed bug in "uplevel" command where it didn't output the 469 correct error message if a level was specified but no command. 470 471 132. 9/14/92 Renamed manual entries to have extensions like .3 and .n, 472 and added "install" target to Makefile. 473 474 133. 9/18/92 Modified "unknown" command to emulate !!, !<num>, and 475 ^<old>^<new> csh history substitutions. 476 477 134. 9/21/92 Made the config script cleverer about figuring out which 478 switches to pass to "nm". 479 480 135. 9/23/92 Fixed tclVar.c to be sure to copy flags when growing variables. 481 Used to forget about traces in progress and make extra recursive calls 482 on trace procs. 483 484 136. 9/28/92 Fixed bug in auto_reset where it was unsetting variables 485 that might not exist. 486 487 137. 10/7/92 Changed "parray" library procedure to print any array 488 accessible to caller, local or global. 489 490 138. 10/15/92 Fixed bug where propagation of new environment variable 491 values among interpreters took N! time if there exist N interpreters. 492 493 139. 10/16/92 Changed auto_reset procedure so that it also deletes any 494 existing procedures that are in the auto_load index (the assumption is 495 that they should be re-loaded to get the latest versions). 496 497 140. 10/21/92 Fixed bug that caused lists to be incorrectly generated 498 for elements that contained backslash-newline sequences. 499 500 141. 12/9/92 Added support for TCL_LIBRARY environment variable: use 501 it as library location if it's present. 502 503 142. 12/9/92 Added "info complete" command, Tcl_CommandComplete procedure. 504 505 143. 12/16/92 Changed the Makefile to check to make sure "config" has been 506 run (can't run config directly from the Makefile because it modifies the 507 Makefile; thus make has to be run again after running config). 508 509 ----------------- Released version 6.5, 12/17/92 ------------------ 510 511 144. 12/21/92 Changed config to look in several places for libc file. 512 513 145. 12/23/92 Added "elseif" support to if. Also, "then", "else", and 514 "elseif" may no longer be abbreviated. 515 *** POTENTIAL INCOMPATIBILITY *** 516 517 146. 12/28/92 Changed "puts" and "read" to support initial "-nonewline" 518 switch instead of additional "nonewline" argument. The old form is 519 still supported, but it is discouraged and is no longer documented. 520 Also changed "puts" to make the file argument default to stdout: e.g. 521 "puts foo" will print foo on standard output. 522 523 147. 1/6/93 Fixed bug whereby backslash-newline wasn't working when 524 typed interactively, or in "info complete". 525 526 148. 1/22/93 Fixed bugs in "lreplace" and "linsert" where close 527 quotes were being lost from last element before replacement or 528 insertion. 529 530 149. 1/29/93 Fixed bug in Tcl_AssembleCmd where it wasn't requiring 531 a newline at the end of a line before considering a command to be 532 complete. The bug caused some very long lines in script files to 533 be processed as multiple separate commands. 534 535 150. 1/29/93 Various changes in Makefile to add more configuration 536 options, simplify installation, fix bugs (e.g. don't use -f switch 537 for cp), etc. 538 539 151. 1/29/93 Changed "name1" and "name2" identifiers to "part1" and 540 "part2" to avoid name conflicts with stupid C++ implementations that 541 use "name1" and "name2" in a reserved way. 542 543 152. 2/1/93 Added "putenv" procedure to replace the standard system 544 version so that it will work correctly with Tcl's environment handling. 545 546 ----------------- Released version 6.6, 2/5/93 ------------------ 547 548 153. 2/10/93 Fixed bugs in config script: missing "endif" in libc loop, 549 and tried to use strncasecmp.c instead of strcasecmp.c. 550 551 154. 2/10/93 Makefile improvements: added RANLIB variable for easier 552 Sys-V configuration, added SHELL variable for SGI systems. 553 554 ----------------- Released version 6.7, 2/11/93 ------------------ 555 556 153. 2/6/93 Changes in backslash processing: 557 - \Cx, \Mx, \CMx, \e sequences no longer special 558 - \<newline> also eats up any space after the newline, replacing 559 the whole sequence with a single space character 560 - Hex sequences like \x24 are now supported, along with ANSI C's \a. 561 - "format" no longer does backslash processing on its format string 562 - there is no longer any special meaning to a 0 return value from 563 Tcl_Backslash 564 - unknown backslash sequences, like (e.g. \*), are replaced with 565 the following character (e.g. *), instead of just treating the 566 backslash as an ordinary character. 567 *** POTENTIAL INCOMPATIBILITY *** 568 569 154. 2/6/93 Updated all copyright notices. The meaning hasn't changed 570 at all but the wording does a better job of protecting U.C. from 571 liability (according to U.C. lawyers, anyway). 572 573 155. 2/6/93 Changed "regsub" so that it overwrites the result variable 574 in all cases, even if there is no match. 575 *** POTENTIAL INCOMPATIBILITY *** 576 577 156. 2/8/93 Added support for XPG3 %n$ conversion specifiers to "format" 578 command. 579 580 157. 2/17/93 Fixed bug in Tcl_Eval where errors due to infinite 581 recursion could result in core dumps. 582 583 158. 2/17/93 Improved the auto-load mechanism to deal gracefully (i.e. 584 return an error) with a situation where a library file that supposedly 585 defines a procedure doesn't actually define it. 586 587 159. 2/17/93 Renamed Tcl_UnixError procedure to Tcl_PosixError, and 588 changed errorCode variable usage to use POSIX as keyword instead of 589 UNIX. 590 *** POTENTIAL INCOMPATIBILITY *** 591 592 160. 2/19/93 Changes to exec and process control: 593 - Added support for >>, >&, >>&, |&, <@, >@, and >&@ forms of redirection. 594 - When exec puts processes into background, it returns a list of 595 their pids as result. 596 - Added support for <file, >file, etc. (i.e. no space between 597 ">" and file name. 598 - Added -keepnewline option. 599 - Deleted Tcl_Fork and Tcl_WaitPids procedures (just use fork and 600 waitpid instead). 601 - Added waitpid compatibility procedure for systems that don't have 602 it. 603 - Added Tcl_ReapDetachedProcs procedure. 604 - Changed "exec" to return an error if there is stderr output, even 605 if the command returns a 0 exit status (it's always been documented 606 this way, but the implementation wasn't correct). 607 - If a process returns a non-zero exit status but doesn't generate 608 any diagnostic output, then Tcl generates an error message for it. 609 *** POTENTIAL INCOMPATIBILITY *** 610 611 161. 2/25/93 Fixed two memory-management problems having to do with 612 managing the old result during variable trace callbacks. 613 614 162. 3/1/93 Added dynamic string library: Tcl_DStringInit, Tcl_DStringAppend, 615 Tcl_DStringFree, Tcl_DStringResult, etc. 616 617 163. 3/1/93 Modified glob command to only return the names of files that 618 exist, and to only return names ending in "/" if the file is a directory. 619 *** POTENTIAL INCOMPATIBILITY *** 620 621 164. 3/19/93 Modified not to use system calls like "read" directly, 622 but instead to use special Tcl procedures that retry automatically 623 if interrupted by signals. 624 625 165. 4/3/93 Eliminated "noSep" argument to Tcl_AppendElement, plus 626 TCL_NO_SPACE flag for Tcl_SetVar and Tcl_SetVar2. 627 *** POTENTIAL INCOMPATIBILITY *** 628 629 166. 4/3/93 Eliminated "flags" and "termPtr" arguments to Tcl_Eval. 630 *** POTENTIAL INCOMPATIBILITY *** 631 632 167. 4/3/93 Changes to expressions: 633 - The "expr" command now accepts multiple arguments, which are 634 concatenated together with space separators. 635 - Integers aren't automatically promoted to floating-point if they 636 overflow the word size: errors are generated instead. 637 - Tcl can now handle "NaN" and other special values if the underlying 638 library procedures handle them. 639 - When printing floating-point numbers, Tcl ensures that there is a "." 640 or "e" in the number, so it can't be treated as an integer accidentally. 641 The procedure Tcl_PrintDouble is available to provide this function 642 in other contexts. Also, the variable "tcl_precision" can be used 643 to set the precision for printing (must be a decimal number giving 644 digits of precision). 645 - Expressions now support transcendental and other functions, e.g. sin, 646 acos, hypot, ceil, and round. Can add new math functions with 647 Tcl_CreateMathFunc(). 648 - Boolean expressions can now have any of the string values accepted 649 by Tcl_GetBoolean, such as "yes" or "no". 650 *** POTENTIAL INCOMPATIBILITY *** 651 652 168. 4/5/93 Changed Tcl_UnsetVar and Tcl_UnsetVar2 to return TCL_OK 653 or TCL_ERROR instead of 0 or -1. 654 *** POTENTIAL INCOMPATIBILITY *** 655 656 169. 4/5/93 Eliminated Tcl_CmdBuf structure and associated procedures; 657 can use Tcl_DStrings instead. 658 *** POTENTIAL INCOMPATIBILITY *** 659 660 170. 4/8/93 Changed interface to Tcl_TildeSubst to use a dynamic 661 string for buffer space. This makes the procedure re-entrant and 662 thread-safe, whereas it wasn't before. 663 *** POTENTIAL INCOMPATIBILITY *** 664 665 171. 4/14/93 Eliminated tclHash.h, and moved everything from it to 666 tcl.h 667 *** POTENTIAL INCOMPATIBILITY *** 668 669 172. 4/15/93 Eliminated Tcl_InitHistory, made "history" command always 670 be part of interpreter. 671 *** POTENTIAL INCOMPATIBILITY *** 672 673 173. 4/16/93 Modified "file" command so that "readable" option always 674 exists, even on machines that don't support symbolic links (always returns 675 same error as if the file wasn't a symbolic link). 676 677 174. 4/26/93 Fixed bugs in "regsub" where ^ patterns didn't get handled 678 right (pretended not to match when it really did, and looped infinitely 679 if -all was specified). 680 681 175. 4/29/93 Various improvements in the handling of variables: 682 - Can create variables and array elements during a read trace. 683 - Can delete variables during traces (note: unset traces will be 684 invoked when this happens). 685 - Can upvar to array elements. 686 - Can retarget an upvar to another variable by re-issuing the 687 upvar command with a different "other" variable. 688 689 176. 5/3/93 Added Tcl_GetCommandInfo, which returns info about a Tcl 690 command such as whether it exists and its ClientData. Also added 691 Tcl_SetCommandInfo, which allows any of this information to be modified 692 and also allows a command's delete procedure to have a different 693 ClientData value than its command procedure. 694 695 177. 5/5/93 Added Tcl_RegExpMatch procedure. 696 697 178. 5/6/93 Fixed bug in "scan" where it didn't properly handle 698 %% conversion specifiers. Also changed "scan" to use Tcl_PrintDouble 699 for printing real values. 700 701 179. 5/7/93 Added "-exact", "-glob", and "-regexp" options to "lsearch" 702 command to allow different kinds of pattern matching. 703 704 180. 5/7/93 Added many new switches to "lsort" to control the sorting 705 process: "-ascii", "-integer", "-real", "-command", "-increasing", 706 and "-decreasing". 707 708 181. 5/10/93 Changes to file I/O: 709 - Modified "open" command to support a list of POSIX access flags 710 like {WRONLY CREAT TRUNC} in addition to current fopen-style 711 access modes. Also added "permissions" argument to set permissions 712 of newly-created files. 713 - Fixed Scott Bolte's bug (can close stdin etc. in application and 714 then re-open them with Tcl commands). 715 - Exported access to Tcl's file table with new procedures Tcl_EnterFile 716 and Tcl_GetOpenFile. 717 718 182. 5/15/93 Added new "pid" command, which can be used to retrieve 719 either the current process id or a list of the process ids in a 720 pipeline opened with "open |..." 721 722 183. 6/3/93 Changed to use GNU autoconfig for configuration instead of 723 the home-brew "config" script. Also made many other configuration-related 724 changes, such as using <unistd.h> instead of explicitly declaring system 725 calls in tclUnix.h. 726 727 184. 6/4/93 Fixed bug where core-dumps could occur if a procedure 728 redefined itself (the memory for the procedure's body could get 729 reallocated in the middle of evaluating the body); implemented 730 simple reference count mechanism. 731 732 185. 6/5/93 Changed tclIndex file format in two ways: (a) it's now 733 eval-ed instead of parsed, which makes it 3-4x faster; (b) the entries 734 in auto_index are now commands to evaluate, which allows commands to 735 be loaded in different ways such as dynamic-loading of C code. The 736 old tclIndex file format is still supported. 737 738 186. 6/7/93 Eliminated tclTest program, added new "tclsh" program 739 that is more like wish (allows script files to be invoked automatically 740 using "#!/usr/local/bin/tclsh", makes arguments available to script, 741 etc.). Added support for Tcl_AppInit plus default version; this 742 allows new Tcl applications to be created without modifying the 743 main program for tclsh. 744 745 187. 6/7/93 Fixed bug in TclWordEnd that kept backslash-newline from 746 working correctly in some cases during interactive input. 747 748 188. 6/9/93 Added Tcl_LinkVar and related procedures, which automatically 749 keep a Tcl variable in sync with a C variable. 750 751 189. 6/16/93 Increased maximum nesting depth from 100 to 1000. 752 753 190. 6/16/93 Modified "trace var" command so that error messages from 754 within traces are returned properly as the result of the variable 755 access, instead of the generic "access disallowed by trace command" 756 message. 757 758 191. 6/16/93 Added Tcl_CallWhenDeleted to provide callbacks when an 759 interpreter is deleted (same functionality as Tcl_WatchInterp, which 760 used to exist in versions before 6.0). 761 762 193. 6/16/93 Added "-code" argument to "return" command; it's there 763 primarily for completeness, so that procedures implementing control 764 constructs can reflect exceptional conditions back to their callers. 765 766 194. 6/16/93 Split up Tcl.n to make separate manual entries for each 767 Tcl command. Tcl.n now contains a summary of the language syntax. 768 769 195. 6/17/93 Added new "switch" command to replace "case": allows 770 alternate forms of pattern matching (exact, glob, regexp), replaces 771 pattern lists with single patterns (but you can use "-" bodies to 772 share one body among several patterns), eliminates "in" noise word. 773 "Case" command is now obsolete. 774 775 196. 6/17/93 Changed the "exec", "glob", "regexp", and "regsub" commands 776 to include a "--" switch. All initial arguments starting with "-" are now 777 treated as switches unless a "--" switch is present to end the list. 778 *** POTENTIAL INCOMPATIBILITY *** 779 780 197. 6/17/93 Changed auto-exec so that the subprocess gets stdin, stdout, 781 and stderr from the parent. This allows truly interactive sub-processes 782 (e.g. vi) to be auto-exec'ed from a tcl shell command line. 783 784 198. 6/18/93 Added patchlevel.h, for use in coordinating future patch 785 releases, and also added "info patchlevel" command to make the patch 786 level available to Tcl scripts. 787 788 199. 6/19/93 Modified "glob" command so that a leading "//" in a name 789 gets left as is (this is needed for systems like Apollos where "//" is 790 the super-root; Tcl used to collapse the two slashes into a single 791 slash). 792 793 200. 7/7/93 Added Tcl_SetRecursionLimit procedure so that the maximum 794 allowable nesting depth can be controlled for an interpreter from C. 795 796 ----------------- Released version 7.0 Beta 1, 7/9/93 ------------------ 797 798 201. 7/12/93 Modified Tcl_GetInt and tclExpr.c so that full-precision 799 unsigned integers can be specified without overflow errors. 800 801 202. 7/12/93 Configuration changes: eliminate leading blank line in 802 configure script; provide separate targets in Makefile for installing 803 binary and non-binary information; check for size_t and a few other 804 potentially missing typedefs; don't put tclAppInit.o into libtcl.a; 805 better checks for matherr support. 806 807 203. 7/14/93 Changed tclExpr.c to check the termination pointer before 808 errno after strtod calls, to avoid problems with some versions of 809 strtod that set errno in unexpected ways. 810 811 204. 7/16/93 Changed "scan" command to be more ANSI-conformant: 812 eliminated %F, %D, etc., added code to ignore "l", "h", and "L" 813 modifiers but always convert %e, %f, and %g with implicit "l"; 814 also added support for %u and %i. Also changed "format" command 815 to eliminate %D, %U, %O, and add %i. 816 *** POTENTIAL INCOMPATIBILITY *** 817 818 205. 7/17/93 Changed "uplevel" and "upvar" so that they can be used 819 from global level to global level: this used to generate an error. 820 821 206. 7/19/93 Renamed "setenv", "putenv", and "unsetenv" procedures 822 to avoid conflicts with system procedures with the same names. If 823 you want Tcl's procedures to override the system procedures, do it 824 in the Makefile (instructions are in the Makefile). 825 *** POTENTIAL INCOMPATIBILITY *** 826 827 ----------------- Released version 7.0 Beta 2, 7/21/93 ------------------ 828 829 207. 7/21/93 Fixed bug in tclVar.c where freed memory was accidentally 830 used if a procedure returned an element of a local array. 831 832 208. 7/22/93 Fixed bug in "unknown" where it didn't properly handle 833 errors occurring in the "auto_load" procedure, leaving its state 834 inconsistent. 835 836 209. 7/23/93 Changed exec's ">2" redirection operator to "2>" for 837 consistency with sh. This is incompatible with earlier beta releases 838 of 7.0 but not with pre-7.0 releases, which didn't support either 839 operator. 840 841 210. 7/28/93 Changed backslash-newline handling so that the resulting 842 space character *is* treated as a word separator unless the backslash 843 sequence is in quotes or braces. This is incompatible with 7.0b1 844 and 7.0b2 but is more compatible with pre-7.0 versions that the b1 845 and b2 releases were. 846 847 211. 7/28/93 Eliminated Tcl_LinkedVarWritable, added TCL_LINK_READ_ONLY to 848 Tcl_LinkVar to accomplish same purpose. This change is incompatible 849 with earlier beta releases, but not with releases before Tcl 7.0. 850 851 212. 7/29/93 Renamed regexp C functions so they won't clash with POSIX 852 regexp functions that use the same name. 853 854 213. 8/3/93 Added "-errorinfo" and "-errorcode" options to "return" 855 command: these allow for much better handling of the errorInfo 856 and errorCode variables in some cases. 857 858 214. 8/12/93 Changed "expr" so that % always returns a remainder with 859 the same sign as the divisor and absolute value smaller than the 860 divisor. 861 862 215. 8/14/93 Turned off auto-exec in "unknown" unless the command 863 was typed interactively. This means you must use "exec" when 864 invoking subprocesses, unless it's a command that's typed interactively. 865 *** POTENTIAL INCOMPATIBILITY *** 866 867 216. 8/14/93 Added support for tcl_prompt1 and tcl_prompt2 variables 868 to tclMain.c: makes prompts user-settable. 869 870 217. 8/14/93 Added asynchronous handlers (Tcl_AsyncCreate etc.) so 871 that signals can be taken cleanly by Tcl applications. 872 873 218. 8/16/93 Moved information about open files from the interpreter 874 structure to global variables so that a file can be opened in one 875 interpreter and read or written in another. 876 877 219. 8/16/93 Removed ENV_FLAGS from Makefile, so that there's no 878 official support for overriding setenv, unsetenv, and putenv. 879 880 220. 8/20/93 Various configuration improvements: coerce chars 881 to unsigned chars before using macros like isspace; source ~/.tclshrc 882 file during initialization if it exists and program is running 883 interactively; allow there to be directories in auto_path that don't 884 exist or don't have tclIndex files (ignore them); added Tcl_Init 885 procedure and changed Tcl_AppInit to call it. 886 887 221. 8/21/93 Fixed bug in expr where "+", "-", and " " were all 888 getting treated as integers with value 0. 889 890 222. 8/26/93 Added "tcl_interactive" variable to tclsh. 891 892 223. 8/27/93 Added procedure Tcl_FilePermissions to return whether a 893 given file can be read or written or both. Modified Tcl_EnterFile 894 to take a permissions mask rather than separate read and write arguments. 895 896 224. 8/28/93 Fixed performance bug in "glob" command (unnecessary call 897 to "access" for each file caused a 5-10x slow-down for big directories). 898 899 ----------------- Released version 7.0 Beta 3, 8/28/93 ------------------ 900 901 225. 9/9/93 Renamed regexp.h to tclRegexp.h to avoid conflicts with system 902 include file by same name. 903 904 226. 9/9/93 Added Tcl_DontCallWhenDeleted. 905 906 227. 9/16/93 Changed not to call exit C procedure directly; instead 907 always invoke "exit" Tcl command so that application can redefine the 908 command to do additional cleanup. 909 910 228. 9/17/93 Changed auto-exec to handle names that contain slashes 911 (i.e. don't use PATH for them). 912 913 229. 9/23/93 Fixed bug in "read" and "gets" commands where they didn't 914 clear EOF conditions. 915 916 ----------------- Released version 7.0, 9/29/93 ------------------ 917 918 230. 10/7/93 "Scan" command wasn't properly aligning things in memory, 919 so segmentation faults could arise under some circumstances. 920 921 231. 10/7/93 Fixed bug in Tcl_ConvertElement where it forgot to 922 backslash leading curly brace when creating lists. 923 924 232. 10/7/93 Eliminated dependency of tclMain.c on tclInt.h and 925 tclUnix.h, so that people can copy the file out of the Tcl source 926 directory to make modified private versions. 927 928 233. 10/8/93 Fixed bug in auto-loader that reversed the priority order 929 of entries in auto_path for new-style index files. Now things are 930 back to the way they were before 3.0: first in auto_path is always 931 highest priority. 932 933 234. 10/13/93 Fixed bug where Tcl_CommandComplete didn't recognize 934 comments and treat them as such. Thus if you typed the line 935 # { 936 interactively, Tcl would think that the command wasn't complete and 937 wait for more input before evaluating the script. 938 939 235. 10/14/93 Fixed bug where "regsub" didn't set the output variable 940 if the input string was empty. 941 942 236. 10/23/93 Fixed bug where Tcl_CreatePipeline didn't close off enough 943 file descriptors in child processes, causing children not to exit 944 properly in some cases. 945 946 237. 10/28/93 Changed "list" and "concat" commands not to generate 947 errors if given zero arguments, but instead to just return an empty 948 string. 949 950 ----------------- Released version 7.1, 11/4/93 ------------------ 951 952 Note: there is no 7.2 release. It was flawed and was thus withdrawn 953 shortly after it was released. 954 955 238. 11/10/93 TclMain.c didn't compile on some systems because of 956 R_OK in call to "access". Changed to eliminate call to "access". 957 958 ----------------- Released version 7.3, 11/26/93 ------------------ 959 960 239. 11/6/93 Modified "lindex", "linsert", "lrange", and "lreplace" 961 so that "end" can be specified as an index. 962 963 240. 11/6/93 Modified "append" and "lappend" to allow only two 964 words total (i.e., nothing to append) without generating an error. 965 966 241. 12/2/93 Changed to use EAGAIN as the errno for non-blocking 967 I/O instead of EWOULDBLOCK: this should fix problem where non-blocking 968 I/O didn't work correctly on System-V systems. 969 970 242. 12/22/93 Fixed bug in expressions where cancelled evaluation 971 wasn't always working correctly (e.g. "set one 1; eval {1 || 1/$one}" 972 failed with a divide by zero error). 973 974 243. 1/6/94 Changed TCL_VOLATILE definition from -1 to the address of 975 a dummy procedure Tcl_Volatile, since -1 causes portability problems on 976 some machines (e.g., Crays). 977 978 244. 2/4/94 Added support for unary plus. 979 980 245. 2/17/94 Changed Tcl_RecordAndEval and "history" command to 981 call Tcl_GlobalEval instead of Tcl_Eval. Otherwise, invocation of 982 these facilities in nested procedures can cause unwanted results. 983 984 246. 2/17/94 Fixed bug in tclExpr.c where an expression such as 985 "expr {"12398712938788234-1298379" != ""}" triggers an integer 986 overflow error for the number in quotes, even though it isn't really 987 a proper integer anyway. 988 989 247. 2/19/94 Added new procedure Tcl_DStringGetResult to move result 990 from interpreter to a dynamic string. 991 992 248. 2/19/94 Fixed bug in Tcl_DStringResult that caused it to overwrite 993 the contents of a static result in some situations. This can cause 994 bizarre errors such as variables suddenly having empty values. 995 996 249. 2/21/94 Fixed bug in Tcl_AppendElement, Tcl_DStringAppendElement, 997 and the "lappend" command that caused improper omission of a separator 998 space in some cases. For example, the script 999 set x "abc{"; lappend x "def" 1000 used to return the result "abc{def" instead of "abc{ def". 1001 1002 250. 3/3/94 Tcl_ConvertElement was outputting empty elements as \0 if 1003 TCL_DONT_USE_BRACES was set. This depends on old pre-7.0 meaning of 1004 \0, which is no longer in effect, so it didn't really work. Changed 1005 to output empty elements as {} always. 1006 1007 251. 3/3/94 Renamed Tcl_DStringTrunc to Tcl_DStringSetLength and extended 1008 it so that it can be used to lengthen a string as well as shorten it. 1009 Tcl_DStringTrunc is defined as a macro for backward compatibility, but 1010 it is deprecated. 1011 1012 252. 3/3/94 Added Tcl_AllowExceptions procedure. 1013 1014 253. 3/13/94 Fixed bug in Tcl_FormatCmd that could cause "format" 1015 to mis-behave on 64-bit Big-Endian machines. 1016 1017 254. 3/13/94 Changed to use vfork instead of fork on systems where 1018 vfork exists. 1019 1020 255. 3/23/94 Fixed bug in expressions where ?: didn't associate 1021 right-to-left as they should. 1022 1023 256. 4/3/94 Fixed "exec" to flush any files used in >@ or >&@ 1024 redirection in exec, so that data buffered for them is written 1025 before any new data added by the subprocess. 1026 1027 257. 4/3/94 Added "subst" command. 1028 1029 258. 5/20/94 The tclsh main program is now called Tcl_Main; tclAppInit.c 1030 has a "main" procedure that calls Tcl_Main. This makes it easier to use 1031 Tcl with C++ programs, which need their own main programs, and it also 1032 allows an application to prefilter the argument list before calling 1033 Tcl_Main. 1034 *** POTENTIAL INCOMPATIBILITY *** 1035 1036 259. 6/6/94 Fixed bug in procedure returns where the errorInfo variable 1037 could get truncated if an unset trace was invoked as part of returning 1038 from the procedure. 1039 1040 260. 6/13/94 Added "wordstart" and "wordend" options to "string" command. 1041 1042 261. 6/27/94 Fixed bug in expressions where they didn't properly cancel 1043 the evaluation of math functions in &&, ||, and ?:. 1044 1045 262. 7/11/94 Incorrect boolean values, like "ogle", weren't being 1046 handled properly. 1047 1048 263. 7/15/94 Added Tcl_RegExpCompile, Tcl_RegExpExec, and Tcl_RegExpRange, 1049 which provide lower-level access to regular expression pattern matching. 1050 1051 264. 7/22/94 Fixed bug in "glob" command where "glob -nocomplain ~bad_user" 1052 would complain about a missing user. Now it doesn't complain anymore. 1053 1054 265. 8/4/94 Fixed bug with linked variables where they didn't behave 1055 correctly when accessed via upvars. 1056 1057 266. 8/17/94 Fixed bug in Tcl_EvalFile where it didn't clear interp->result. 1058 1059 267. 8/31/94 Modified "open" command so that errors in exec-ing 1060 subprocesses are returned by the open immediately, rather than 1061 being delayed until the "close" is executed. 1062 1063 268. 9/9/94 Modified "expr" command to generate errors for integer 1064 overflow (includes addition, subtraction, negation, multiplication, 1065 division). 1066 1067 269. 9/23/94 Modified "regsub" to return a count of the number of 1068 matches and replacements, rather than 0/1. 1069 1070 279. 10/4/94 Added new features to "array" command: 1071 - added "get" and "set" commands for easy conversion between arrays 1072 and lists. 1073 - added "exists" command to see if a variable is an array, changed 1074 "names" and "size" commands to treat a non-existent array (or scalar 1075 variable) just like an empty one. 1076 - added pattern option to "names" command. 1077 1078 280. 10/6/94 Modified Tcl_SetVar2 so that read traces on variables get 1079 called during append operations. 1080 1081 281. 10/20/94 Fixed bug in "read" command where reading from stdin 1082 required two control-D's to stop the reading. 1083 1084 282. 11/3/94 Changed "expr" command to use longs for division just like 1085 all other expr operators; it previously used ints for division. 1086 1087 283. 11/4/94 Fixed bugs in "unknown" procedure: it wasn't properly 1088 handling exception returns from commands that were executed after 1089 being auto-loaded. 1090 1091 ----------------- Released version 7.4b1, 12/23/94 ------------------ 1092 1093 284. 12/26/94 Fixed "install" target in Makefile (couldn't always 1094 find install program). 1095 1096 285. 12/26/94 Added strcncasecmp procedure to compat directory. 1097 1098 286. 1/3/95 Fixed all procedure calls to explicitly cast arguments: 1099 implicit conversions from prototypes (especially integer->double) 1100 don't work when compiling under non-ANSI compilers. Tcl is now clean 1101 under gcc -Wconversion. 1102 1103 287. 1/4/95 Fixed problem in Tcl_ArrayCmd where same name was used for 1104 both a label and a variable; caused problems on several older compilers, 1105 making array command misbehave and causing many errors in Tcl test suite. 1106 1107 ----------------- Released version 7.4b2, 1/12/95 ------------------ 1108 1109 288. 2/9/95 Modified Tcl_CreateCommand to return a token, and added 1110 Tcl_GetCommandName procedure. Together, these procedures make it possible 1111 to track renames of a command. 1112 1113 289. 2/13/95 Fixed bug in expr where "089" was interpreted as a 1114 floating-point number rather than a bogus octal number. 1115 *** POTENTIAL INCOMPATIBILITY *** 1116 1117 290. 2/14/95 Added code to Tcl_GetInt and Tcl_GetDouble to check for 1118 overflows when reading in numbers. 1119 1120 291. 2/18/95 Changed "array set" to stop after first error, rather than 1121 continuing after error. 1122 1123 292. 2/20/95 Upgraded to use autoconf version 2.2. 1124 1125 293. 2/20/95 Fixed core dump that could occur in "scan" command if a 1126 close bracket was omitted. 1127 1128 294. 2/27/95 Changed Makefile to always use install-sh for installations: 1129 there's just too much variation among "install" system programs, which 1130 makes installation flakey. 1131 1132 ----------------- Released version 7.4b3, 3/24/95 ------------------ 1133 1134 3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that 1135 "make install" will work even when "." isn't in the search path. 1136 1137 3/29/95 (bug fix) Fixed bug where the auto-loading mechanism wasn't 1138 protecting the values of the errorCode and errorInfo variables. 1139 1140 3/29/95 (new feature) Added optional pattern argument to "parray" procedure. 1141 1142 3/29/95 (bug fix) Made the full functionality of 1143 "return -code ... -errorcode ..." 1144 work not just inside procedures, but also in sourced files and at 1145 top level. 1146 1147 4/6/95 (new feature) Added "pattern" option to "array names" command. 1148 1149 4/18/95 (bug fix) Fixed bug in parser where it didn't allow backslash-newline 1150 immediately after an argument in braces or quotes. 1151 1152 4/19/95 (new feature) Added tcl_library variable, which application can 1153 set to override default library directory. 1154 1155 4/30/95 (bug fix) During trace callbacks for array elements, the variable 1156 name used in the original reference would be temporarily modified to 1157 separate the array name and element name; if the trace callback used 1158 the same name string, it would get the wrong name (the array name without 1159 element). Fixed to restore the variable name before making trace 1160 callbacks. 1161 1162 4/30/95 (new feature) Added -nobackslashes, -nocommands, and -novariables 1163 switches to "subst" command. 1164 1165 5/4/95 (new feature) Added TCL_EVAL_GLOBAL flag to Tcl_RecordAndEval. 1166 1167 5/5/95 (bug fix) Format command would overrun memory when printing 1168 integers with very large precision, as in "format %.1000d 0". 1169 1170 5/5/95 (portability improvement) Changed to use BSDgettimeofday on 1171 IRIX machines, to avoid compilation problems with the gettimeofday 1172 declaration. 1173 1174 5/6/95 (bug fix) Changed manual entries to use the standard .TH 1175 macro instead of a custom .HS macro; the .HS macro confuses index 1176 generators like makewhatis. 1177 1178 5/9/95 (bug fix) Modified configure script to check for Solaris bug 1179 that makes vfork unreliable (core dumps result if vforked child 1180 changes a signal handler); will use fork instead of vfork if the 1181 bug is present. 1182 1183 6/5/95 (bug fix) Modified "lsort" command to disallow recursive calls 1184 to lsort from a comparison function. This is needed because qsort 1185 is not reentrant. 1186 1187 6/5/95 (bug fix) Undid change 243 above: changed TCL_VOLATILE and 1188 TCL_DYNAMIC back to integer constants rather than procedure addresses. 1189 This was needed because procedure addresses can have multiple values 1190 under some dynamic loading systems (e.g. SunOS 4.1 and Windows). 1191 1192 6/8/95 (feature change) Modified interface to Tcl_Main to pass in the 1193 address of the application-specific initialization procedure. 1194 Tcl_AppInit is no longer hardwired into Tcl_Main. This is needed 1195 in order to make Tcl a shared library. 1196 1197 6/8/95 (feature change) Modified Makefile so that the installed versions 1198 of tclsh and libtcl.a have version number in them (e.g. tclsh7.4 and 1199 libtcl7.4.a) and the library directory name also has an embedded version 1200 number (e.g., /usr/local/lib/tcl7.4). This should make it easier for 1201 Tcl 7.4 to coexist with earlier versions. 1202 1203 ----------------- Released version 7.4b4, 6/16/95 ------------------ 1204 1205 6/19/95 (bug fix) Fixed bugs in tclCkalloc.c that caused core dumps 1206 if TCL_MEM_DEBUG was enabled on word-addressed machines such as Crays. 1207 1208 6/21/95 (feature removal) Removed overflow checks for integer arithmetic: 1209 they just cause too much trouble (e.g. for random number generators). 1210 1211 6/28/95 (new features) Added tcl_patchLevel and tcl_version variables, 1212 for consistency with Tk. 1213 1214 6/29/95 (bug fix) Fixed problem in Tcl_Eval where it didn't record 1215 the right termination character if a script ended with a comment. This 1216 caused erroneous output for the following command, among others: 1217 puts "[ 1218 expr 1+1 1219 # duh! 1220 ]" 1221 1222 6/29/95 (message change) Changed the error message for ECHILD slightly 1223 to provide a hint about why the problem is occurring. 1224 1225 ----------------- Released version 7.4, 7/1/95 ------------------ 1226 1227 7/18/95 (bug fix) Changed "lreplace" so that nothing is deleted if 1228 the last index is less than the first index or if the last index 1229 is < 0. 1230 1231 7/18/95 (bug fix) Fixed bugs with backslashes in comments: 1232 Tcl_CommandComplete (and "info complete") didn't properly handle 1233 strings ending in backslash-newline, and neither Tcl_CommandComplete 1234 nor the Tcl parser handled other backslash sequences right, such 1235 as two backslashes before a newline. 1236 1237 7/19/95 (bug fix) Modified Tcl_DeleteCommand to delete the hash table 1238 entry for the command before invoking its callback. This is needed in 1239 order to deal with reentrancy. 1240 1241 7/22/95 (bug fix) "exec" wasn't reaping processes correctly after 1242 certain errors (e.g. if the name of the executable was bogus, as 1243 in "exec foobar"). 1244 1245 7/27/95 (bug fix) Makefile.in wasn't using the LIBS variable provided 1246 by the "configure" script. This caused problems on some SCO systems. 1247 1248 7/27/95 (bug fix) The version of strtod in fixstrtod.c didn't properly 1249 handle the case where endPtr == NULL. 1250 1251 ----------------- Released patch 7.4p1, 7/29/95 ----------------------- 1252 1253 8/4/95 (bug fix) C-level trace callbacks for variables were sometimes 1254 receiving the PART1_NOT_PARSED flag, which could cause errors in 1255 subsequent Tcl library calls using the flags. (JO) 1256 1257 8/4/95 (bug fix) Calls to toupper and tolower weren't using the 1258 UCHAR macros, which caused trouble in non-U.S. locales. (JO) 1259 1260 8/10/95 (new feature) Added the "load" command for dynamic loading of 1261 binary packages, and the Tcl_PackageInitProc prototype for package 1262 initialization procedures. (JO) 1263 1264 8/23/95 (new features) Added "info sharedlibextension" and 1265 "info nameofexecutable" commands, plus Tcl_FindExtension procedure. (JO) 1266 1267 8/25/95 (bug fix) If the target of an "upvar" was non-existent but 1268 had traces set, the traces were silently lost. Change to generate 1269 an error instead. (JO) 1270 1271 8/25/95 (bug fix) Undid change from 7/19, so that commands can stay 1272 around while their deletion callbacks execute. Added lots of code to 1273 handle all of the reentrancy problems that this opens up. (JO) 1274 1275 8/25/95 (bug fix) Fixed core dump that could occur in TclDeleteVars 1276 if there was an upvar from one entry in the table to the next entry 1277 in the same table. (JO) 1278 1279 8/28/95 (bug fix) Exec wasn't handling bad user names properly, as 1280 in "exec ~bogus_user/foo". (JO) 1281 1282 8/29/95 (bug fixes) Changed backslash-newline handling to correct two 1283 problems: 1284 - Only spaces and tabs following the backslash-newline are now 1285 absorbed as part of the backslash-newline. Newlinew are no 1286 longer absorbed (add another backslash if you want to absorb 1287 another newline). 1288 - TclWordEnd returns the character just before the backslash in 1289 the sequence as the end of the sequence; it used to not consider 1290 the backslash-newline as a word separator. (JO) 1291 1292 8/31/95 (new feature) Changed man page installation (with "mkLinks" 1293 script) to create additional links for manual pages corresponding to 1294 each of the procedure and command names described in the pages. (JO) 1295 1296 9/10/95 Reorganized Tcl sources for Windows and Mac ports. All sources 1297 are now in subdirectories: "generic" contains sources that work on all 1298 platforms, "windows", "mac", and "unix" directories contain platform- 1299 specific sources. Some UNIX sources are also used on other platforms. (SS) 1300 1301 9/10/95 (feature change) Eliminated exported global variables (they 1302 don't work with Windows DLLs). Replaced tcl_AsyncReady and 1303 tcl_FileCloseProc with procedures Tcl_AsyncReady() and 1304 Tcl_SetFileCloseProc(). Replaced C variable tcl_RcFileName with 1305 a Tcl variable tcl_rcFileName. (SS) 1306 *** POTENTIAL INCOMPATIBILITY *** 1307 1308 9/11/95 (new feature) Added procedure Tcl_SetPanicProc to override 1309 the default implementation of "panic". (SS) 1310 1311 9/11/95 (new feature) Added "interp" command to allow creation of 1312 new interpreters and execution of untrusted scripts. Added many new 1313 procedures, such as Tcl_CreateSlave, Tcl_CreateAlias,and Tcl_MakeSafe, 1314 to provide C-level access to the interpreter facility. This mechanism 1315 now provides almost all of the generic functions of Borenstein's and 1316 Rose's Safe-Tcl (but not any Tk or email-related stuff). (JL) 1317 1318 9/11/95 (feature change) Changed file management so that files are 1319 no longer shared between interpreters: a file cannot normally be 1320 referenced in one interpreter if it was opened in another. This 1321 feature is needed to support safe interpreters. Added Tcl_ShareHandle() 1322 procedure for allowing files to be shared, and added "interp" argument 1323 to Tcl_FilePermissions procedure. (JL) 1324 *** POTENTIAL INCOMPATIBILITY *** 1325 1326 9/11/95 (new feature) Added "AssocData" mechanism, whereby extensions 1327 can associate their own data with an interpreter and get called back 1328 when the interpreter is deleted. This is visible at C level via the 1329 procedures Tcl_SetAssocData and Tcl_GetAssocData. (JL) 1330 1331 9/11/95 (new feature) Added Tcl_ErrnoMsg to translate an errno value 1332 into a human-readable string. This is now used instead of calling 1333 strerror because strerror mesages vary dramatically from platform 1334 to platform, which messes up Tcl tests. Tcl_ErrnoMsg uses the standard 1335 POSIX messages for all the common signals, and calls strerror for 1336 signals it doesn't understand. 1337 1338 ----------------- Released patch 7.4p2, 9/15/95 ----------------------- 1339 1340 ----------------- Released 7.5a1, 9/15/95 ----------------------- 1341 1342 9/22/95 (bug fix) Changed auto_mkindex to create tclIndex files that 1343 handle directories whose paths might contain spaces. (RJ) 1344 1345 9/27/95 (bug fix) The "format" command didn't check for huge or negative 1346 width specifiers, which could cause core dumps. (JO) 1347 1348 9/27/95 (bug fix) Core dumps could occur if an interactive command typed 1349 to tclsh returned a very long result for tclsh to print out. The bug is 1350 actually in printf (in Solaris 2.3 and 2.4, at least); switched to use 1351 puts instead. (JO) 1352 1353 9/28/95 (bug fix) Changed makefile.bc to eliminate a false dependency 1354 for tcl1675.dll on the Borland run time library. (SS) 1355 1356 9/28/95 (bug fix) Fixed tcl75.dll so it looks for tcl1675.dll instead 1357 of tcl16.dll. (SS) 1358 1359 9/28/95 (bug fix) Tcl was not correctly detecting the difference 1360 between Win32s and Windows '95. (SS) 1361 1362 9/28/95 (bug fix) "exec" was not passing environment changes to child 1363 processes under Windows. (SS) 1364 1365 9/28/95 (bug fix) Changed Tcl to ensure that open files are not passed 1366 to child processes under Windows. (SS) 1367 1368 9/28/95 (bug fix) Fixed Windows '95 and NT versions of exec so it can 1369 handle both console and windows apps. (SS) 1370 1371 9/28/95 (bug fix) Fixed Windows version of exec so it no longer leaves 1372 temp files lying around. Also changed it so the temp files are 1373 created in the appropriate system dependent temp directory. (SS) 1374 1375 9/28/95 (bug fix) Eliminated source dependency on the Win32s Universal 1376 Thunk header file, since it is not bundled with VC++. (SS) 1377 1378 9/28/95 (bug fix) Under Windows, Tcl now constructs the HOME 1379 environment variable from HOMEPATH and HOMEDRIVE when HOME is not 1380 already set. (SS) 1381 1382 9/28/95 (bug fix) Added support for "info nameofexecutable" and "info 1383 sharedlibextension" to the Windows version. (SS) 1384 1385 9/28/95 (bug fix) Changed tclsh to correctly parse command line 1386 arguments so that backslashes are preserved under Windows. (SS) 1387 1388 9/29/95 (bug fix) Tcl 7.5a1 treated either return or newline as end 1389 of line in "gets", which caused lines ending in CRLF to be treated as 1390 two separate lines. Changed to allow only character as end-of-line: 1391 carriage return on Macs, newline elsewhere. (JO) 1392 1393 9/29/95 (new feature) Changed to install "configInfo" file in same 1394 directory as library scripts. It didn't used to get installed. (JO) 1395 1396 9/29/95 (bug fix) Tcl was not converting Win32 errors into POSIX 1397 errors under some circumstances. (SS) 1398 1399 10/2/95 (bug fix) Safe interpreters no longer get initialized with 1400 a call to Tcl_Init(). (JL) 1401 1402 10/1/95 (new feature) Added "tcl_platform" global variable to provide 1403 environment information such as the instruction set and operating 1404 system. (JO) 1405 1406 10/1/95 (bug fix) "exec" command wasn't always generating the 1407 "child process exited abnormally" message when it should have. (JO) 1408 1409 10/2/95 (bug fix) Changed "mkLinks.tcl" so that the scripts it generates 1410 won't create links that overwrite original manual entries (there was 1411 a problem where pack-old.n was overwriting pack.n). (JO) 1412 1413 10/2/95 (feature change) Changed to use -ldl for dynamic loading under 1414 Linux if it is available, but fall back to -ldld if it isn't. (JO) 1415 1416 10/2/95 (bug fix) File sharing was causing refcounts to reach 0 1417 prematurely for stdin, stdout and stderr, under some circumstances. (JL) 1418 1419 10/2/95 (platform support) Added support for Visual C++ compiler on 1420 Windows, Windows '95 and Windows NT, code donated by Gordon Chaffee. (JL) 1421 1422 10/3/95 (bug fix) Tcl now frees any libraries that it loads before it 1423 exits. (SS) 1424 1425 10/03/95 (bug fix) Fixed bug in Macintosh ls command where the -l 1426 and -C options would fail in anything but the HOME directory. (RJ) 1427 1428 ----------------- Released 7.5a2, 10/6/95 ----------------------- 1429 1430 10/10/95 (bug fix) "file dirnam /." was returning ":" on UNIX instead 1431 of "/". (JO) 1432 1433 10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating 1434 the tcl.def file from Borland object files. (SS) 1435 1436 10/17/95 (new features) Moved the event loop from Tcl to Tk, made major 1437 revisions along the way: 1438 - New Tcl commands: after, update, vwait (replaces "tkwait variable"). 1439 - "tkerror" is now replaced with "bgerror". 1440 - The following procedures are similar to their old Tk counterparts: 1441 Tcl_DoOneEvent, Tcl_Sleep, Tcl_DoWhenIdle, Tcl_CancelIdleCall, 1442 Tcl_CreateFileHandler, Tcl_DeleteFileHandler, Tcl_CreateTimerHandler, 1443 Tcl_DeleteTimerHandler, Tcl_BackgroundError. 1444 - Revised notifier, add new concept of "event source" with the following 1445 procedures: Tcl_CreateEventSource, Tcl_DeleteEventSource, 1446 Tcl_WatchFile, Tcl_SetMaxBlockTime, Tcl_FileReady, Tcl_QueueEvent, 1447 Tcl_WaitForEvent. (JO) 1448 1449 10/31/95 (new features) Implemented cross platform file name support to make 1450 it easier to write cross platform scripts. Tcl now understands 4 file naming 1451 conventions: Windows (both DOS and UNC), Mac, Unix, and Network. The network 1452 convention is a new naming mechanism that can be used to paths in a platform 1453 independent fashion. See the "file" command manual page for more details. 1454 The primary interfaces changes are: 1455 - All Tcl commands that expect a file name now accept both network and 1456 native form. 1457 - Two new "file" subcommands, "nativename" and "networkname", provide a 1458 way to convert between network and native form. 1459 - Renamed Tcl_TildeSubst to Tcl_TranslateFileName, and changed it so that 1460 it always returns a filename in native form. Tcl_TildeSubst is defined 1461 as a macro for backward compatibility, but it is deprecated. (SS) 1462 1463 11/5/95 (new feature) Made "tkerror" and "bgerror" synonyms, so that 1464 either name can be used to manipulate the command (provides temporary 1465 backward compatibility for existing scripts that use tkerror). (JO) 1466 1467 11/5/95 (new feature) Added exit handlers and new C procedures 1468 Tcl_CreateExitHandler, Tcl_DeleteExitHandler, and Tcl_Exit. (JO) 1469 1470 11/6/95 (new feature) Added pid command for Macintosh version of 1471 Tcl (it didn't previously exist on the Mac). (RJ) 1472 1473 11/7/95 (new feature) New generic IO facility and support for IO to 1474 files, pipes and sockets based on a common buffering scheme. Support 1475 for asynchronous (non-blocking) IO and for event driver IO. Support 1476 for automatic (background) asynchronous flushing and asynchronous 1477 closing of channels. (JL) 1478 1479 11/7/95 (new feature) Added new commands "fconfigure" and "fblocked" 1480 to support new I/O features such as nonblocking I/O. Added "socket" 1481 command for creating TCP client and server sockets. (JL). 1482 1483 11/7/95 (new feature) Complete set of C APIs to the new generic IO 1484 facility: 1485 - Opening channels: Tcl_OpenFileChannel, Tcl_OpenCommandChannel, 1486 Tcl_OpenTcpClient, Tcl_OpenTcpServer. 1487 - I/O procedures on channels, which roughly mirror the ANSI C stdio 1488 library: Tcl_Read, Tcl_Gets, Tcl_Write, Tcl_Flush, Tcl_Seek, 1489 Tcl_Tell, Tcl_Close, Tcl_Eof, Tcl_InputBlocked, Tcl_GetChannelOption, 1490 Tcl_SetChannelOption. 1491 - Extension mechanism for creating new kinds of channels: 1492 Tcl_CreateChannel, Tcl_GetChannelInstanceData, Tcl_GetChannelType, 1493 Tcl_GetChannelName, Tcl_GetChannelFile, Tcl_RegisterChannel, 1494 Tcl_UnregisterChannel, Tcl_GetChannel. 1495 - Event-driven I/O on channels: Tcl_CreateChannelHandler, 1496 Tcl_DeleteChannelHandler. (JL) 1497 1498 11/7/95 (new feature) Channel driver interface specification to allow 1499 new types of channels to be added easily to Tcl. Currently being used 1500 in three drivers - for files, pipes and TCP-based sockets. (JL). 1501 1502 11/7/95 (new feature) interp delete now takes any number of path 1503 names of interpreters to delete, including zero. (JL). 1504 1505 11/8/95 (new feature) implemented 'info hostname' and Tcl_GetHostName 1506 command to get host name of machine on which the Tcl process is running. (JL) 1507 1508 11/9/95 (new feature) Implemented file APIs for access to low level files 1509 on each system. The APIs are: Tcl_CloseFile, Tcl_OpenFile, Tcl_ReadFile, 1510 Tcl_WriteFile and Tcl_SeekFile. Also implemented Tcl_WaitPid which waits 1511 in a system dependent manner for a child process. (JL) 1512 1513 11/9/95 (new feature) Added Tcl_UpdateLinkedVar procedure to force a 1514 Tcl variable to be updated after its C variable changes. (JO) 1515 1516 11/9/95 (bug fix) The glob command has been totally reimplemented so 1517 that it can support different file name conventions. It now handles 1518 Windows file names (both UNC and drive-relative) properly. It also 1519 supports nested braces correctly now. (SS) 1520 1521 11/13/95 (bug fix) Fixed Makefile.in so that configure can be run 1522 from a clean directory separate from the Tcl source tree, and compilations 1523 can be performed there. (JO) 1524 1525 11/14/95 (bug fix) Fixed file sharing between interpreters and file 1526 transferring between interpreters to correctly manage the refcount so that 1527 files are closed when the last reference to them is discarded. (JL) 1528 1529 11/14/95 (bug fix) Fixed gettimeofday implementation for the 1530 Macintosh. This fixes several timing related bugs. (RJ) 1531 1532 11/17/95 (new feature) Added missing support for info nameofexecutable 1533 on the Macintosh. (RJ) 1534 1535 11/17/95 (bug fix) The Tcl variables argc argv and argv0 now return 1536 something reasonable on the Mac. (RJ) 1537 1538 11/22/95 (new feature) Implemented "auto-detect" mode for end of line 1539 translations. On input, standalone "\r" mean MAC mode, standalone "\n" 1540 mean Unix mode and "\r\n" means Windows mode. On output, the mode is 1541 modified to whatever the platform specific mode for that platform is. (JL) 1542 1543 11/24/95 (feature change) Replaced "configInfo" file with tclConfig.sh, 1544 which is more complete and uses slightly different names. Also 1545 arranged for tclConfig.sh to be installed in the platform-specific 1546 library directory instead of Tcl's script library directory. (JO) 1547 *** POTENTIAL INCOMPATIBILITY with Tcl 7.5a2, but not with Tcl 7.4 *** 1548 1549 ----------------- Released patch 7.4p3, 11/28/95 ----------------------- 1550 1551 12/5/95 (new feature) Added Tcl_File facility to support platform- 1552 independent file handles. Changed all interfaces that used Unix- 1553 style integer fd's to use Tcl_File's instead. (SS) 1554 *** POTENTIAL INCOMPATIBILITY *** 1555 1556 12/5/95 (new feature) Added a new "clock" command to Tcl. The command 1557 allows you to get the current "clicks" or seconds & allows you to 1558 format or scan human readable time/date strings. (RJ) 1559 1560 12/18/95 (new feature) Moved Tk_Preserve, Tk_Release, and Tk_EventuallyFree 1561 to Tcl, renamed to Tcl_Preserve, Tcl_Release, and Tcl_EventuallyFree. (JO) 1562 1563 12/18/95 (new feature) Added new "package" command and associated 1564 procedures Tcl_PkgRequire and Tcl_PkgProvide. Also wrote 1565 pkg_mkIndex library procedure to create index files from binaries 1566 and scripts. (JO) 1567 1568 12/20/95 (new feature) Added Tcl_WaitForFile procedure. (JO) 1569 1570 12/21/95 (new features) Made package name argument to "load" optional 1571 (Tcl will now attempt to guess the package name if necessary). Also 1572 added Tcl_StaticPackage and support in "load" for statically linked 1573 packages. (JO) 1574 1575 12/22/95 (new feature) Upgraded the foreach command to accept multiple 1576 loop variables and multiple value lists. This lets you iterate over 1577 multiple lists in parallel, and/or assign multiple loop variables from 1578 one value list during each iteration. The only potential compatibility 1579 problem is with scripts that used loop variables with a name that could be 1580 construed to be a list of variable names (i.e. contained spaces). (BW) 1581 1582 1/5/96 (new feature) Changed tclsh so it builds as a console mode 1583 application under Windows. Now tclsh can be used from the command 1584 line with pipes or interactively. Note that this only works under 1585 Windows 95 or NT. (SS) 1586 1587 1/17/96 (new feature) Modified Makefile and configure script to allow 1588 Tcl to be compiled as a shared library: use the --enable-shared option 1589 when configuing. (JO) 1590 1591 1/17/96 (removed obsolete features) Removed the procedures Tcl_EnterFile 1592 and Tcl_GetOpenFile: these no longer make sense with the new I/O system. (JL) 1593 *** POTENTIAL INCOMPATIBILITY *** 1594 1595 1/19/96 (bug fixes) Prevented formation of circular aliases, through the 1596 Tcl 'interp alias' command and through the 'rename' command, as well as 1597 through the C API Tcl_CreateAlias. (JL) 1598 1599 1/19/96 (bug fixes) Fixed several bugs in direct deletion of interpreters 1600 with Tcl_DeleteInterp when the interpreter is a slave; fixes based on a 1601 patch received from Viktor Dukhovni of ESM. (JL) 1602 1603 1/19/96 (new feature) Implemented on-close handlers for channels; added 1604 the C APIs Tcl_CreateCloseHandler and Tcl_DeleteCloseHandler. (JL) 1605 1606 1/19/96 (new feature) Implemented portable error reporting mechanism; added 1607 the C APIs Tcl_SetErrno and Tcl_GetErrno. (JL) 1608 1609 1/24/96 (bug fix) Unknown command processing properly invokes external 1610 commands under Windows NT and Windows '95 now. (SS) 1611 1612 1/23/96 (bug fix) Eliminated extremely long startup times under Windows '95. 1613 The problem was a result of the option database initialization code that 1614 concatenated $HOME with /.Xdefaults, resulting in a // in the middle of the 1615 file name. Under Windows '95, this is incorrectly interpreted as a UNC 1616 path. They delays came from the network timeouts needed to determine that 1617 the file name was invalid. Tcl_TranslateFileName now suppresses duplicate 1618 slashes that aren't at the beginning of the file name. (SS) 1619 1620 1/25/96 (bug fix) Changed exec and open to create children so they are 1621 attached to the application's console if it exists. (SS) 1622 1623 1/31/96 (bug fix) Fixed command line parsing to handle embedded 1624 spaces under Windows. (SS) 1625 1626 ----------------- Released 7.5b1, 2/1/96 ----------------------- 1627 1628 2/7/96 (bug fix) Fixed off by one error in argument parsing code under 1629 Windows. (SS) 1630 1631 2/7/96 (bug fix) Fixed bugs in VC++ makefile that improperly 1632 initialized the tcl75.dll. Fixed bugs in Borland makefile that caused 1633 build failures under Windows NT. (SS) 1634 1635 2/9/96 (bug fix) Fixed deadlock problem in AUTO end of line translation 1636 mode which would cause a socket server with several concurrent clients 1637 writing in CRLF mode to hang. (JL) 1638 1639 2/9/96 (API change) Replaced -linemode option to fconfigure with a 1640 new -buffering option, added "none" setting to enable immediate write. (JL) 1641 *** INCOMPATIBILITY with b1 *** 1642 1643 2/9/96 (new feature) Added C API Tcl_InputBuffered which returns the count 1644 of bytes currently buffered in the input buffer of a channel, and o for 1645 output only channels. (JL) 1646 1647 2/9/96 (new feature) Implemented asynchronous connect for sockets. (JL) 1648 1649 2/9/96 (new feature) Added C API Tcl_SetDefaultTranslation to set (per 1650 channel) the default end of line translation mode. This is the mode that 1651 will be installed if an output operation is done on the channel while it is 1652 still in AUTO mode. (JL) 1653 1654 2/9/96 (bug fix) Changed Tcl_OpenCommandChannel interface to properly 1655 handle all of the combinations of stdio inheritance in background 1656 pipelines. See the Tcl_OpenFileChannel(3) man page for more 1657 info. This change fixes the bug where exec of a background pipeline 1658 was not getting passed the stdio handles properly. (SS) 1659 1660 2/9/96 (bug fix) Removed the new Tcl_CreatePipeline interface, and 1661 restored the old version for Unix platforms only. All new code should 1662 use Tcl_CreateCommandChannel instead. (SS) 1663 1664 2/9/96 (bug fix) Changed Makefile.in to use -L and -ltcl7.5 for Tcl 1665 library so that shared libraries are more likely to be found correctly 1666 on more platforms. (JO) 1667 1668 2/13/96 (new feature) Added C API Tcl_SetNotifierData and 1669 Tcl_GetNotifierData to allow notifier and channel driver writers to 1670 associate data with a Tcl_File. The result of this change is that 1671 Tcl_GetFileInfo now always returns an OS file handle, and Tcl_GetFile 1672 can be used to construct a Tcl_File for an externally constructed OS 1673 handle. (SS) 1674 1675 2/13/96 (bug fix) Changed Windows socket implementation so it doesn't 1676 set SO_REUSEADDR on server sockets. Now attempts to create a server 1677 socket on a port that is already in use will be properly identified 1678 and an error will be generated. (SS) 1679 1680 2/13/96 (bug fix) Fixed problems with DLL initialization under Visual 1681 C++ that left the C run time library uninitialized. (SS) 1682 1683 2/13/96 (bug fix) Fixed Windows socket initialization so it loads 1684 winsock the first time it is used, rather than at the time tcl75.dll 1685 is loaded. This should fix the bug where the modem immediately starts 1686 trying to connect to a service provider when wish or tclsh are 1687 started. (SS) 1688 1689 2/13/96 (new feature) Added C APIs Tcl_MakeFileChannel and 1690 Tcl_MakeTcpClientChannel to wrap up existing fds and sockets into 1691 channels. Provided implementations on Unix and Windows. (JL) 1692 1693 2/13/96 (bug fix) Fixed bug with seek leaving EOF and BLOCKING set. (JL) 1694 1695 2/14/96 (bug fix) Fixed reentrancy problem in fileevent handling 1696 and made it more robust in the face of errors. (JL) 1697 1698 2/14/96 (feature change) Made generic IO level emulate blocking mode if the 1699 channel driver is unable to provide it, e.g. if the low level device is 1700 always nonblocking. Thus, now blocking behavior is an advisory setting for 1701 channel drivers and can be ignored safely if the channel driver is unable 1702 to provide it. (JL) 1703 1704 2/15/96 (new feature) Added "binary" end of line translation mode, which is 1705 a synonym of "lf" mode. (JL) 1706 1707 2/15/96 (bug fix) Fixed reentrancy problem in fileevent handling vs 1708 deletion of channel event handlers. (JL) 1709 1710 2/15/96 (bug fix) Fixed bug in event handling which would cause a 1711 nonblocking channel to not see further readable events after the first 1712 readable event that had insufficient input. (JL) 1713 1714 2/17/96 (bug fix) "info complete" didn't properly handle comments 1715 in nested commands. (JO) 1716 1717 2/21/96 (bug fix) "exec" under Windows NT/95 did not properly handle 1718 very long command lines (>200 chars). (SS) 1719 1720 2/21/96 (bug fix) Sockets could get into an infinite loop if a read 1721 event arrived after all of the available data had been read. (SS) 1722 1723 2/22/96 (bug fix) Added cast of st_size elements to (long) before 1724 sprintf-ing in "file size" command. This is needed to handle systems 1725 like NetBSD with 64-bit file offsets. (JO) 1726 1727 ----------------- Released 7.5b2, 2/23/96 ----------------------- 1728 1729 2/23/96 (bug fix) TCL_VARARGS macro in tcl.h wasn't defined properly 1730 when compiling with C++. (JO) 1731 1732 2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile: 1733 this caused problems on some platforms (like Linux?). (JO) 1734 1735 2/24/96 (bug fix) Fixed configuration bug that made Tcl not compile 1736 correctly on Linux machines with neither -ldl or -ldld. (JO) 1737 1738 2/24/96 (new feature) Added a block of comments and definitions to 1739 Makefile.in to make it easier to have Tcl's TclSetEnv etc. replace 1740 the library procedures setenv etc, so that calls to setenv etc. in 1741 the application automatically update the Tcl "env" variable. (JO) 1742 1743 2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL) 1744 to C API Tcl_Close and simplified closing of command channels. (JL) 1745 *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1746 1747 2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL) 1748 to C type definition Tcl_DriverCloseProc; modified all channel drivers to 1749 implement close procedures that accept the additional argument. (JL) 1750 *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1751 1752 2/28/96 (bug fix) Fixed memory leak that could occur if an upvar 1753 referred to an element of an array in the same stack frame as the 1754 upvar. (JO) 1755 1756 2/29/96 (feature change) Modified both Tcl_DoOneEvent and Tcl_WaitForEvent 1757 so that they return immediately in cases where they would otherwise 1758 block forever (e.g. if there are no event handlers of any sort). (JO) 1759 1760 2/29/96 (new feature) Added C APIs Tcl_GetChannelBufferSize and 1761 Tcl_SetChannelBufferSize to set and retrieve the size, in bytes, for 1762 buffers allocated to store input or output in a channel. (JL) 1763 1764 2/29/96 (new feature) Added option -buffersize to Tcl fconfigure command 1765 to allow Tcl scripts to query and set the size of channel buffers. (JL) 1766 1767 2/29/96 (feature removed) Removed channel driver function to specify 1768 the buffer size to use when allocating a buffer. Removed the C typedef 1769 for Tcl_DriverBufferSizeProc. Channels are now created with a default 1770 buffer size of 4K. (JL) 1771 *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1772 1773 2/29/96 (feature change) The channel driver function for setting blocking 1774 mode on the device may now be NULL. If the generic code detects that the 1775 function is NULL, operations that set the blocking mode on the channel 1776 simply succeed. (JL) 1777 1778 3/2/96 (bug fix) Fixed core dump that could occur if a syntax error 1779 (such as missing close paren) occurred in an array reference with a 1780 very long array name. (JO) 1781 1782 3/4/96 (bug fix) Removed code in the "auto_load" procedure that deletes 1783 all existing auto-load information whenever the "auto_path" variable 1784 is changed. Instead, new information adds to what was already there. 1785 Otherwise, changing the "auto_path" variable causes all package- 1786 related information to be lost. If you really want to get rid of 1787 existing auto-load information, use auto_reset before setting auto_path. (JO) 1788 1789 3/5/96 (new feature) Added version suffix to shared library names so that 1790 Tcl will compile under NetBSD and FreeBSD (I hope). (JO) 1791 1792 3/6/96 (bug fix) Cleaned up error messages in new I/O system to correspond 1793 more closely to old I/O system. (JO) 1794 1795 3/6/96 (new feature) Added -myaddr and -myport options to the socket 1796 command, removed -tcp and -- options. This lets clients and servers 1797 choose a particular interface. Also changed the default server address 1798 from the hostname to INADDR_ANY. The server accept callback now gets 1799 passed the client's port as well as IP address. The C interfaces for 1800 Tcl_OpenTcpClient and Tcl_OpenTcpServer have changed to support the 1801 above changes. (BW) 1802 *** POTENTIAL INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1803 1804 3/6/96 (changed feature) The library function auto_mkindex will now 1805 default to using the pattern "*.tcl" if no pattern is given. (RJ) 1806 1807 3/6/96 (bug fix) The socket channel code for the Macintosh has been 1808 rewritten to use native MacTcp. (RJ) 1809 1810 3/7/96 (new feature) Added Tcl_SetStdChannel and Tcl_GetStdChannel 1811 interfaces to allow applications to explicitly set and get the global 1812 standard channels. (SS) 1813 1814 3/7/96 (bug fix) Tcl did close not the file descriptors associated 1815 with "stdout", etc. when the corresponding channels were closed. (SS) 1816 1817 3/7/96 (bug fix) Reworked shared library and dynamic loading stuff to 1818 try to get it working under AIX. Added new @[email protected] autoconf 1819 symbol as part of this. AIX probably doesn't work yet, but it should 1820 be a lot closer. (JO) 1821 1822 3/7/96 (feature change) Added Tcl_ChannelProc typedef and changed the 1823 signature of Tcl_CreateChannelHandler and Tcl_DeleteChannelHandler to take 1824 Tcl_ChannelProc arguments instead of Tcl_FileProc arguments. This change 1825 should not affect any code outside Tcl because the signatures of 1826 Tcl_ChannelProc and Tcl_FileProc are compatible. (JL) 1827 1828 3/7/96 (API change) Modified signature of Tcl_GetChannelOption to return 1829 an int instead of char *, and to take a Tcl_DString * argument. Modified 1830 the implementation so that the option name can be NULL, to mean that the 1831 call should retrieve a list of alternating option names and values. (JL) 1832 *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1833 1834 3/7/96 (API change) Added Tcl_DriverSetOptionProc, Tcl_DriverGetOptionProc 1835 typedefs, added two slots setOptionProc and getOptionProc to the channel 1836 type structure. These may be NULL to indicate that the channel type does 1837 not support any options. (JL) 1838 *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1839 1840 3/7/96 (feature change) stdin, stdout and stderr can now be put into 1841 nonblocking mode. (JL) 1842 1843 3/8/96 (feature change) Eliminated dependence on the registry for 1844 finding the Tcl library files. (SS) 1845 1846 ----------------- Released 7.5b3, 3/8/96 ----------------------- 1847 1848 3/12/96 (feature improvement) Modified startup script to look in several 1849 different places for the Tcl library directory. This should allow Tcl 1850 to find the libraries under all but the weirdest conditions, even without 1851 the TCL_LIBRARY environment variable being set. (JO) 1852 1853 3/13/96 (bug fix) Eliminated use of the "linger" option from the Windows 1854 socket implementation. (JL) 1855 1856 3/13/96 (new feature) Added -peername and -sockname options for fconfigure 1857 for socket channels. Code contributed by John Haxby of HP. (JL) 1858 1859 3/13/96 (bug fix) Fixed panic and core dump that would occur if the accept 1860 callback script on a server socket encountered an error. (JL) 1861 1862 3/13/96 (feature change) Added -async option to the Tcl socket command. 1863 If the command is creating a client socket and the flag is present, the 1864 client is connected asynchronously. If the option is absent (the default), 1865 the client socket is connected synchronously, and the command returns only 1866 when the connection has been completed or failed. This change was suggested 1867 by Mark Diekhans. (JL) 1868 1869 3/13/96 (feature change) Modified the signature of Tcl_OpenTcpClient to 1870 take an additional int argument, async. If nonzero, the client is connected 1871 to the server asynchronously. If the value is zero, the connection is made 1872 synchronously, and the call to Tcl_OpenTcpClient returns only when the 1873 connection fails or succeeds. This change was suggested by Mark Diekhans. (JL) 1874 *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 1875 1876 3/14/96 (bug fix) "tclsh bogus_file_name" didn't print an error message. (JO) 1877 1878 3/14/96 (bug fix) Added new procedures to tclCkalloc.c so that libraries 1879 and applications can be compiled with TCL_MEM_DEBUG even if Tcl isn't 1880 (however, the converse is still not true). Patches provided by Jan 1881 Nijtmans. (JO) 1882 1883 3/15/96 (bug fix) Marked standard IO handles of a process as close-on-exec 1884 to fix bug in Ultrix where exec was not sharing standard IO handles with 1885 subprocesses. Fix suggested by Mark Diekhans. (JL) 1886 1887 3/15/96 (bug fix) Fixed asynchronous close mechanism so that it closes the 1888 channel instead of leaking system resources. The manifestation was that Tcl 1889 would eventually run out of file descriptors if it was handling a large 1890 number of nonblocking sockets or pipes with high congestion. (JL) 1891 1892 3/15/96 (bug fix) Fixed tests so that they no longer leak file descriptors. 1893 The manifestation was that Tcl would eventually run out of file descriptors 1894 if the tests were rerun many times (> a hundred times on Solaris). (JL) 1895 1896 3/15/96 (bug fix) Fixed channel creation code so that it never creates 1897 unnamed channels. This would cause a panic and core dump when the channel 1898 was closed. (JL) 1899 1900 3/16/96 (bug fixes) Made lots of changes in configuration stuff to get 1901 Tcl working under AIX (finally). Tcl should now support the "load" 1902 command under AIX and should work either with or without shared 1903 libraries for Tcl and Tk. (JO) 1904 1905 3/21/96 (configuration improvement) Changed configure script so it 1906 doesn't use version numbers (as in -ltcl7.5 and libtcl7.5.so) under 1907 SunOS 4.1, where they don't work anyway. (JO) 1908 1909 3/22/96 (new feature) Added C API Tcl_InterpDeleted that allows extension 1910 writers to discover when an interpreter is being deleted. (JL) 1911 1912 3/22/96 (bug fix) The standard IO channels are now added to each 1913 trusted interpreter as soon as the interpreter is created. This ensures 1914 against the bug where a child would do IO before the master had done any, 1915 and then the child is destroyed - the standard IO channels would be then 1916 closed and the master would be unable to do any IO. (JL) 1917 1918 3/22/96 (bug fix) Made Tcl more robust against interpreter deletion, by 1919 using Tcl_Preserve, Tcl_Release and Tcl_EventuallyFree to split the process 1920 of interpreter deletion into two distinct phases. Also went through all of 1921 Tcl and added calls to Tcl_Preserve and Tcl_Delete where needed. (JL) 1922 1923 3/22/96 (bug fix) Fixed several places where C code was reading and writing 1924 into freed memory, especially during interpreter deletion. (JL) 1925 1926 3/22/96 (bug fix) Fixed very deep bug in Tcl_Release that caused memory to 1927 be freed twice if the release callback did Tcl_Preserve and Tcl_Release on 1928 the same memory as the chunk currently being freed. (JL) 1929 1930 3/22/96 (bug fix) Removed several memory leaks that would cause memory 1931 buildup on half-K chunks in the generic IO level. (JL) 1932 1933 3/22/96 (bug fix) Fixed several core dumps which occurred when new 1934 AssocData was being created during the cleanups in interpreter deletion. 1935 The solution implemented now is to loop repeatedly over the AssocData until 1936 none is left to clean up. (JL) 1937 1938 3/22/96 (bug fix) Fixed a bug in event handling which caused an infinite 1939 loop if there were no files being watched and no timer. Fix suggested by 1940 Jan Nijtmans. (JL) 1941 1942 3/22/96 (bug fix) Fixed Tcl_CreateCommand, Tcl_DeleteCommand to be more 1943 robust if the interpreter is being deleted. Also fixed several order 1944 dependency bugs in Tcl_DeleteCommand which kicked in when an interpreter 1945 was being deleted. (JL) 1946 1947 3/26/96 (bug fix) Upon a "short read", the generic code no longer calls 1948 the driver for more input. Doing this caused blocking on some platforms 1949 even on nonblocking channels. Bug and fix courtesy Mark Roseman. (JL) 1950 1951 3/26/96 (new feature) Added 'package Tcltest' which is present only in 1952 test versions of Tcl; this allows the testing commands to be loaded into 1953 new interpreters besides the main one. (JL) 1954 1955 3/26/96 (restored feature) Recreated the Tcl_GetOpenFile C API. You can 1956 now get a FILE * from a registered channel; Unix only. (JL) 1957 1958 3/27/96 (bug fix) The regular expression code did not support more 1959 than 9 subexpressions. It now supports up to 20. (SS) 1960 1961 4/1/96 (bug fixes) The CHANNEL_BLOCKED bit was being left on on a short 1962 read, so that fileevents wouldn't fire correctly. Bug reported by Mark 1963 Roseman.(JL, RJ) 1964 1965 4/1/96 (bug fix) Moved Tcl_Release to match Tcl_Preserve exactly, in 1966 tclInterp.c; previously interpreters were being freed only conditionally 1967 and sometimes not at all. (JL) 1968 1969 4/1/96 (bug fix) Fixed error reporting in slave interpreters when the 1970 error message was being generated directly by C code. Fix suggested by 1971 Viktor Dukhovni of ESM. (JL) 1972 1973 4/2/96 (bug fixes) Fixed a series of bugs in Windows sockets that caused 1974 events to variously get lost, to get sent multiple times, or to be ignored 1975 by the driver. The manifestation was blocking if the channel is blocking, 1976 and either getting EAGAIN or infinite loops if the channel is nonblocking. 1977 This series of bugs was found by Ian Wallis of Cisco. Now all tests (also 1978 those that were previously commented out) in socket.test pass. (JL, SS) 1979 1980 4/2/96 (feature change/bug fix) Eliminated network name support in 1981 favor of better native name support. Added "file split", "file join", 1982 and "file pathtype" commands. See the "file" man page for more 1983 details. (SS) 1984 *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 1985 1986 4/2/96 (bug fix) Changed implementation of auto_mkindex so tclIndex 1987 files will properly handle path names in a cross platform context. (SS) 1988 1989 4/5/96 (bug fix) Fixed Tcl_ReadCmd to use the channel buffer size as the 1990 chunk size it reads, instead of a fixed 4K size. Thus, on large reads, the 1991 user can set the channel buffer size to a large size and the read will 1992 occur orders of magnitude faster. For example, on a 2MB file, reading in 4K 1993 chunks took 34 seconds, while reading in 1MB chunks took 1.5 seconds (on a 1994 SS-20). Problem identified and fix suggested by John Haxby of HP. (JL) 1995 1996 4/5/96 (bug fix) Fixed socket creation code to invoke gethostbyname only if 1997 inet_addr failed (very unlikely). Before this change the order was reversed 1998 and this made things much slower than they needed to be (gethostbyname 1999 generally requires an RPC, which is slow). Problem identified and fix 2000 suggested by John Loverso of OSF. (JL) 2001 2002 4/9/96 (feature change) Modified "auto" translation mode so that it 2003 recognizes any of "\n", "\r" and "\r\n" in input as end of line, so 2004 that a file can have mixed end-of-line sequences. It now outputs 2005 the platform specific end of line sequence on each platform for files and 2006 pipes, and for sockets it produces crlf in output on all platforms. (JL) 2007 *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 2008 2009 4/11/96 (new feature) Added -eofchar option to Tcl_SetChannelOption to allow 2010 setting of an end of file character for input and output. If an input eof 2011 char is set, it is recognized as EOF and further input from the channel is 2012 not presented to the caller. If an output eof char is set, on output, that 2013 byte is appended to the channel when it is closed. On Unix and Macintosh, 2014 all channels start with no eof char set for input or output. On Windows, 2015 files and pipes start with input and output eof chars set to Crlt-Z (ascii 2016 26), and sockets start with no input or output eof char. (JL) 2017 *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 2018 2019 4/17/96 (bug fix) Fixed series of bugs with handling of crlf sequence split 2020 across buffer boundaries in input, in AUTO mode. (JL, BW) 2021 2022 4/17/96 (test suite improvement) Fixed test suite so that tests that 2023 depend on the availability of Unix commands such as echo, cat and others 2024 are not run if these commands are not present. (JL) 2025 2026 4/17/96 (test suite improvement) The socket test now automatically starts, 2027 on platformst that support exec, a separate process for remote testsing. (JL) 2028 2029 ----------------- Released 7.5, 4/21/96 ----------------------- 2030 2031 5/1/96 (bug fix) "file tail ~" did not correctly return the tail 2032 portion of the user's home directory. (SS) 2033 2034 5/1/96 (bug fix) Fixed bug in TclGetEnv where it didn't lookup environment 2035 variables correctly: could confuse "H" and "HOME", for example. (JO) 2036 2037 5/1/96 (bug fix) Changed to install tclConfig.sh under "make install-binaries", 2038 not "make install-libraries". (JO) 2039 2040 5/2/96 (bug fix) Changed pkg_mkIndex not to attempt to "load" a file unless 2041 it has the standard shared library extension. On SunOS, attempts to load 2042 Tcl scripts cause the whole application to be aborted (there's no way to 2043 get the error back into Tcl). (JO) 2044 2045 5/7/96 (bug fix) Moved initScript in tclUnixInit.c to writable memory to 2046 avoid potential core dumps. (JO) 2047 2048 5/7/96 (bug fix) Auto_reset procedure was removing procedure from init.tcl, 2049 such as pkg_mkIndex. (JO) 2050 2051 5/7/96 (bug fix) Fixed cast on socket address resolution code that 2052 would cause a failure to connect on Dec Alphas. (JL) 2053 2054 5/7/96 (bug fix) Added "time", "subst" and "fileevent" commands to set of 2055 commands available in a safe interpreter. (JL) 2056 2057 5/13/96 (bug fix) Preventing OS level handles for stdin, stdout and stderr 2058 from being implicitly closed when the last reference to the standard 2059 channel containing that handle is discarded when an interpreter is deleted. 2060 Explicitly closing standard channels by using "close" still works. (JL) 2061 2062 5/21/96 (bug fix) Do not create channels for stdin, stdout and stderr on 2063 Unix if the devices are closed. This prevents a duplicate channel name 2064 panic later on when the fd is used to open a channel and the channel is 2065 registered in an interpreter. (JL) 2066 2067 5/23/96 (bug fix) Fixed bug that prevented the use of standard channels in 2068 interpreters created after the last interpreter was destroyed. In the sequence 2069 2070 interp = Tcl_CreateInterp(); 2071 Tcl_DeleteInterp(interp); 2072 interp = Tcl_CreateInterp(); 2073 2074 channels for stdio would not be available in the second interpreter. (JL) 2075 2076 5/23/96 (bug fix) Fixed bug that allowed Tcl_MakeFileChannel to create new 2077 channels with Tcl_Files in them that are already used by another channel. 2078 This would cause core dumps when the Tcl_Files were being freed twice. (JL) 2079 2080 5/23/96 (bug fix) Fixed a logical timing bug that caused a standard channel 2081 to be removed from the standard channel table too early when the channel 2082 was being closed. If the channel was being flushed asynchronously, it could 2083 get recreated before being actually destroyed, and the recreated channel 2084 would contain the same Tcl_File as the one being closed, leading to 2085 dangling pointers and core dumps. (JL) 2086 2087 5/27/96 (bug fix) Fixed a bug in Tcl_GetChannelOption which caused it to 2088 always return a list of one element, a list of the settings, for 2089 -translation and -eofchar options. Now correctly returns the value 2090 described by the documentation (Mark Diekhans found this, thanks!). (JL) 2091 2092 5/30/96 (bug fix) Fixed a couple of syntax errors in io.test. (JL) 2093 2094 5/30/96 (bug fix) If a fileevent scripts gets an error, delete it before 2095 causing a background error. This is to allow the error handler to reinstall 2096 the fileevent and to prevent infinite loops if the event loop is reentered 2097 in the error handler. (JL) 2098 2099 5/31/96 (bug fix) Channels now will get properly flushed on exit. (JL) 2100 2101 6/5/96 (bug fix) Changed Tcl_Ckalloc, Tcl_Ckfree, and Tcl_Ckrealloc to 2102 Tcl_Alloc, Tcl_Free, and Tcl_Realloc. Added documentation for these 2103 routines now that they are officially supported. Extension writers 2104 should use these routines instead of free() and malloc(). (SS) 2105 2106 6/10/96 (bug fix) Changes the Tcl close command so that it no longer 2107 waits on nonblocking pipes for the piped processes to exit; instead it 2108 reaps them in the background. (JL) 2109 2110 6/11/96 (bug fix) Increased the length of the listen queue for server 2111 sockets on Unix from 5 to 100. Some OSes will disregard this and reset it 2112 to 5, but we should try to get as long a queue as we can, for performance 2113 reasons. (JL) 2114 2115 6/11/96 (bug fix) Fixed windows sockets bug that caused a cascade of events 2116 if the fileevent script read less than was available. Now reading less than 2117 is available does not cause a flood of Tcl events. (JL, SS) 2118 2119 6/11/96 (bug fix) Fixed bug in background flushing on closed channels that 2120 would prevent the last buffer from getting flushed. (JL) 2121 2122 6/13/96 (bug fix) Fixed bug in Windows sockets that caused a core dump if 2123 a DLL linked with tcl.dll and referred to e.g. ntohs() without opening a 2124 Tcl socket. The problem was that the indirection table was not being 2125 initialized. (JL) 2126 2127 6/13/96 (bug fix) Fixed OS level resource leak that would occur when a 2128 Tcl channel was still registered in some interpreter when the process 2129 exits. Previously the channel was not being closed and the OS level handles 2130 were not being released; the output was being flushed but the device was 2131 not being closed. Now the device is properly closed. This was only a 2132 problem on Win3.1 and MacOS. (JL, SS) 2133 2134 6/28/96 (bug fix) Fixed bug where transient errors were leaving an error 2135 code around, so that it would erroneously get reported later. This bug was 2136 exercised intermittently by closing a channel to a file on a very loaded 2137 NFS server, or to a socket whose other end blocked. (JL, BW) 2138 2139 7/3/96 (bug fix) Fileevents declared in an interpreter are now deleted 2140 when the channel is closed in that interpreter. Before this fix, the 2141 fileevent would hang around until the channel is completely closed, and 2142 would cause errors if events happened before the channel was closed. This 2143 could happen in two cases: first if the channel is shared between several 2144 interpreters, and second if an async flush is in progress that prevents the 2145 channel from being closed until the flush finishes. (JL) 2146 2147 7/10/96 (bug fix) Fixed bugs in both "lrange" and "lreplace" commands 2148 where too much white space was being removed. For example, the command 2149 lreplace {\}\ hello} end end 2150 was returning "\}\", losing the significant space in the first list 2151 element and corrupting the list. (JO) 2152 2153 7/20/96 (bug fix) The procedure pkg_mkIndex didn't work properly for 2154 extensions that depend on Tk, because it didn't load Tk into the child 2155 interpreter before loading the extension. Now it loads Tk if Tk is 2156 present in the parent. (JO) 2157 2158 7/23/96 (bug fix) Added compat version of strftime to fix crashes 2159 resulting from bad implementations under Windows. (SS) 2160 2161 7/23/96 (bug fix) Standard implementations of gmtime() and localtime() 2162 under Windows did not handle dates before 1970, so they were replaced 2163 with a revised implementation. (SS) 2164 2165 7/23/96 (bug fix) Tcl would crash on exit under Borland 5.0 because 2166 the global environ pointer was left pointing to freed memory. (SS) 2167 2168 7/29/96 (bug fix) Fixed memory leak in Tcl_LoadCmd that could occur if 2169 a package's AppInit procedure called Tcl_StaticPackage to register 2170 static packages. (JO) 2171 2172 8/1/96 (bug fix) Fixed a series of bugs in Windows sockets so that async 2173 writebehind in the presence of read event handlers now works, and so that 2174 async writebehind also works on sockets for which a read event handler was 2175 declared and whose channels were then closed before the async write 2176 finished. The bug was reported by John Loverso and Steven Wahl, 2177 independently, test case supplied by John Loverso. (JL) 2178 2179 ----------------- Released patch 7.5p1, 8/2/96 ----------------------- 2180 2181 5/8/96 (new feature) Added Tcl_GetChannelMode C API for retrieving whether 2182 a channel is open for reading and writing. (JL) 2183 2184 5/8/96 (API changes) Revised C APIs for channel drivers: 2185 - Removed all Tcl_Files from channel driver interface; you can now have 2186 channels that are not based on Tcl_Files. 2187 - Added channelReadyProc and watchChannelProc procedures to interface; 2188 these are used to implement event notification for channels. 2189 - Added getFileProc to channel driver, to allow the generic IO code 2190 to retrieve a Tcl_File from a channel (presumably if the channel 2191 uses Tcl_Files they will be stored inside its instanceData). (JL) 2192 *** INCOMPATIBILITY with Tcl 7.5 *** 2193 2194 5/8/96 (API change) The Tcl_CreateChannel C API was modified to not take 2195 Tcl_File arguments, and instead to take a mask specifying whether the 2196 channel is readable and/or writable. (JL) 2197 *** INCOMPATIBILITY with Tcl 7.5 *** 2198 2199 6/3/96 (bug fix) Made Tcl_SetVar2 robust against the case where the value 2200 of the variable is a NULL pointer instead of "". (JL) 2201 2202 6/17/96 (bug fix) Fixed "reading uninitialized memory" error reported by 2203 Purify, in Tcl_Preserve/Tcl_Release. (JL) 2204 2205 8/9/96 (bug fix) Fixed bug in init.tcl that caused incorrect error message 2206 if the act of autoloading a procedure caused the procedure to be invoked 2207 again. (JO) 2208 2209 8/9/96 (bug fix) Configure script produced bad library names and extensions 2210 under SunOS and a few other platforms if the --disable-load switch was used. 2211 (JO) 2212 2213 8/9/96 (bug fix) Tcl_UpdateLinkedVar generated an error if the variable 2214 being updated was read-only. (JO) 2215 2216 8/14/96 (bug fix) The macintosh now supports synchronous socket 2217 connections. Other minor bugs were also fixed. (RJ) 2218 2219 8/15/96 (configuration improvement) Changed the file patchlevel.h 2220 to be tclPatch.h. This avoids conflict with the Tk file and is now 2221 in 8.3 format on the Windows platform. (RJ) 2222 2223 8/20/96 (bug fix) Fixed core dump in interp alias command for interpreters 2224 created with Tcl_CreateInterp (as opposed to with Tcl_CreateSlave). (JL) 2225 2226 8/20/96 (bug fix) No longer masking ECONNRESET on Windows sockets so 2227 that the higher level of the IO mechanism sees the error instead of 2228 entering an infinite loop. (JL) 2229 2230 8/20/96 (bug fix) Destroying the last interpreter no longer closes the 2231 standard channels. (JL) 2232 2233 8/20/96 (bug fix) Closing one of the stdin, stdout or stderr channels and 2234 then opening a new channel now correctly assigns the new channel as the 2235 standard channel that was closed. (JL) 2236 2237 8/20/96 (bug fix) Added code to unix/tclUnixChan.c for using ioctl with 2238 FIONBIO instead of fcntl with O_NONBLOCK, for those versions of Unix where 2239 either O_NONBLOCK is not supported or implemented incorrectly. (JL) 2240 2241 8/21/96 (bug fix) Fixed "file extension" so it correctly returns the 2242 extension on files like "foo..c" as "..c" instead of ".c". (SS) 2243 2244 8/22/96 (bug fix) If environ[] contains static strings, Tcl would core 2245 dump in TclSetupEnv because it was trying to write NULLs into the actual 2246 data in environ[]. Now we instead copy as appropriate. (JL) 2247 2248 8/22/96 (added impl) Added missing implementation of Tcl_MakeTcpClientChannel 2249 for Windows platform. Code contributed by Mark Diekhans. (JL) 2250 2251 8/22/96 (new feature) Added a new memory allocator for the Macintosh 2252 version of Tcl. It's quite a bit faster than MetroWerk's version. (RJ) 2253 2254 8/26/96 (documentation update) Removed old change bars (for all changes 2255 in Tcl 7.5 and earlier releases) from manual entries. (JO) 2256 2257 8/27/96 (enhancement) The exec and open commands behave better and work in 2258 more situations under Windows NT and Windows 95. Documentation describes 2259 what is still lacking. (CS) 2260 2261 8/27/96 (enhancement) The Windows makefiles will now compile even if the 2262 compiler is not in the path and/or the compiler's environment variables 2263 have not been set up. (CS) 2264 2265 8/27/96 (configuration improvement) The Windows resource files are 2266 automatically updated when the version/patch level changes. The header file 2267 now has a comment that reminds the user which other files must be manually 2268 updated when the version/patch level changes. (CS) 2269 2270 8/28/96 (new feature) Added file manipulation features (copy, rename, delete, 2271 mkdir) that are supported on all platforms. They are implemented as 2272 subcommands to the "file" command. See the documentation for the "file" 2273 command for more information. (JH) 2274 2275 ----------------- Released 7.6b1, 8/30/96 ----------------------- 2276 2277 9/3/96 (bug fix) Simplified code so that standard channels are created 2278 lazily, they are added to an interpreter lazily, and they are never added 2279 to a safe interpreter. (JL) 2280 2281 9/3/96 (bug fix) Closing a channel after closing a standard channel, e.g. 2282 stdout, would cause the implicit recreation of that standard channel. (JL) 2283 2284 9/3/96 (new feature) Now calling Tcl_RegisterChannel with a NULL 2285 interpreter increments the refcount so that code outside any interpreter 2286 can use channels that are also registered in interpreters, without worrying 2287 that the channel may turn into a dangling pointer at any time. Calling 2288 Tcl_UnregisterChannel with a NULL interpreter only decrements the recount 2289 so that code outside any interpreter can safely declare it is no longer 2290 interested in a channel. (JL) 2291 2292 9/4/96 (new features) Two changes to dynamic loading: 2293 - If the file name is empty in the "load" command and there is no 2294 statically loaded version of the package, a dynamically loaded 2295 version will be used if there is one. 2296 - Tcl_StaticPackage ignores redundant calls for the same package. (JO) 2297 2298 9/6/96 (bug fix) Platform specific procedures for manipulating files are 2299 no longer macros and have been prefixed with "Tclp", such as TclpRenameFile. 2300 Unix file code now handles symbolic links and other special files correctly. 2301 The semantics of file copy and file rename has been changed so that if 2302 a target directory exists, the source files will NOT be merged with the 2303 existing files. (JH) 2304 2305 9/6/96 (bug fix) If standard channel is NULL, because Tcl cannot connect 2306 to the standard channel, do not increment the refcount. The channel can 2307 be NULL if there is for example no standard input. (JL) 2308 2309 9/6/96 (portability improvement) Changed parsing of backslash sequences 2310 like \n to translate directly to absolute values like 0xa instead of 2311 letting the compiler do the translation. This guarantees that the 2312 translation is done the same everywhere. (JO) 2313 2314 9/9/96 (bug fix) If channel is opened and not associated with any 2315 interpreter, but Tcl decides to use it as one of the standard channels, it 2316 became impossible to close the channel with Tcl_Close -- instead you had 2317 to call Tcl_UnregisterChannel. Fixed now so that it's safe to call 2318 Tcl_Close even when Tcl is using the channel as one of the standard ones. (JL) 2319 2320 9/11/96 (feature change) The Tcl library is now placed in the Tcl 2321 shared libraries resource. You no longer need to place the Tcl files 2322 in your applications explicitly. (RJ) 2323 2324 9/11/96 (feature change) Extensions no longer automatically have the 2325 resource fork of the extension opened for it. Instead you need to 2326 use the tclMacLibrary.c file in your extension. (RJ) 2327 *** POTENTIAL INCOMPATIBILITY *** 2328 2329 9/12/96 (bug fix) The extension loading mechanism on the Macintosh now 2330 looks at the 'cfrg' resource to determine where to load the code 2331 fragment from. This means FAT fragments should now work. (RJ) 2332 2333 9/18/96 (enhancement) The exec and open commands behave better and work in 2334 more situations under Windows 3.X. Documentation describes what is still 2335 lacking. (CS) 2336 2337 9/19/96 (bug fix) Fixed a panic which would occur if you delete a 2338 non-existent alias before any aliases are created. Now instead correctly 2339 returns an error that the alias is not found. (JL) 2340 2341 9/19/96 (bug fix) Slave interpreters could rename aliases and they would 2342 not get deleted when the alias was being redefined. This led to dangling 2343 pointers etc. (JL) 2344 2345 9/19/96 (bug fix) Fixed a panic where a hash table entry was being deleted 2346 twice during alias management operations. (JL) 2347 2348 9/19/96 (bug fix) Fixed bug in event loop that could cause the input focus 2349 in Tk to get confused during menu traversal, among other problems. The 2350 problem was related to handling of the "marker" when its event was 2351 deleted. (JO) 2352 2353 9/26/96 (bug fix) Windows was losing EOF on a socket if the FD_CLOSE event 2354 happened to precede any left over FD_READ events. Now correctly remembers 2355 seeing FD_CLOSE, so that trailing FD_READ events are not discarded if they 2356 do not contain any data. This allows Tcl to correctly get a zero read and 2357 notice EOF. (JL) 2358 2359 9/26/96 (bug fix) Was not resetting READABLE state properly on sockets 2360 under Windows if the driver discarded an FD_READ event because no data was 2361 present. Now correctly resets the state. (JL) 2362 2363 9/30/96 (bug fix) Made EOF sticky on Windows sockets, so that fileevent 2364 readable will fire repeatedly until the socket is closed. Previously the 2365 fileevent fired only once. This could lead to never-closed connections if 2366 the Tcl script in the fileevent wasn't closing the socket immediately. (JL) 2367 2368 10/2/96 (new feature) Improved the package loader: 2369 - Added new variable tcl_pkgPath, which holds the default 2370 directories under which packages are normally installed (each 2371 package goes in a separate subdirectory of a directory in 2372 $tcl_pkgPath). These directories are included in auto_path by 2373 default. 2374 - Changed the package auto-loader to look for pkgIndex.tcl files 2375 not only in the auto_path directories but also in their immediate 2376 children. This should make it easier to install and uninstall 2377 packages (don't have to change auto_path or merge pkgIndex.tcl 2378 files). (JO) 2379 2380 10/3/96 (bug fix) Changed tclsh to look for tclshrc.tcl instead of 2381 tclsh.rc on startup under Windows. This is more consistent with wish and 2382 uses the right extension. (SS) 2383 *** POTENTIAL INCOMPATIBILITY *** 2384 2385 10/8/96 (bug fix) Convertclock does not parse 24-hour times of the 2386 form "hhmm" correctly when hour = 00. In the parse code, hour must be 2387 >= 100 for minutes to be non-zero. Thanks to Lint LaCour for this 2388 bug fix. (RJ) 2389 2390 10/11/96 (bug fix) Under Windows, the pid command returned the process 2391 handle instead of the process id. (SS) 2392 2393 ----------------- Released 7.6, 10/16/96 ----------------------- 2394 2395 10/29/96 (bug fix) Under Windows, sockets would consume 100% CPU time after 2396 the first accept(), due to a typo. (JL) 2397 2398 10/29/96 (bug fix) Incorrect refcount management caused standard channels 2399 not to get deleted at process exit or DLL unload time, causing a memory 2400 leak of upwards of 20K each time. (JL) 2401 2402 11/7/96 (bug fix) Auto-exec didn't work on file names that contained 2403 spaces. (JO) 2404 2405 11/8/96 (bug fix) Fixed core dump that would occur if more than one call 2406 to Tcl_DeleteChannelHandler was made to delete a given channel handler. (JL) 2407 2408 11/8/96 (bug fix) Fixed test for return value in Tcl_Seek and Tcl_SeekCmd 2409 to only treat -1 as error, instead of all negative numbers. (JL) 2410 2411 11/12/96 (bug fix) Do not blocking waiting for processes at the end of a 2412 pipe during exit cleanup. (JL) 2413 2414 11/12/96 (bug fix) If we are in exit cleanup, do not close the system level 2415 file descriptors 0, 1 and 2. Previously they were being closed which is 2416 incorrect, in the embedded case. This led to weird behavior for programs 2417 that want to interpose on I/O through the standard file descriptors (e.g. 2418 Netscape Navigator). (JL) 2419 2420 11/15/96 (bug fix) Fixed core dump on Windows sockets due to dependency on 2421 deletion order at exit. Now all socket functions check to see if sockets 2422 are (still) initialized, before calling through function pointers. Before, 2423 they would call and might end up calling unloaded object code. (JL) 2424 2425 11/15/96 (bug fix) Fixed core dump in Windows socket initialization routine 2426 if sockets were not installed on the system. Before, it was not properly 2427 checking the result of attempting to load the socket DLL, so it would call 2428 through uninitialized function pointers. (JL) 2429 2430 11/15/96 (bug fix) Fixed memory leak in Windows sockets which left socket 2431 DLL handle open and could hold the socket DLL in memory uneccessarily, 2432 until a reboot. (JL) 2433 2434 12/4/96 (bug fix) Fixed bug in Macintosh socket code that could result 2435 in lost data if a client was closed too soon after sending data. (RJ) 2436 2437 12/17/96 (bug fix) Fixed deadlock bug in Windows sockets due to losing an 2438 event. This was happening because of an interaction between buffering and 2439 nonblocking mode on sockets. Now switched to sockets being blocking by 2440 default, so we are also no longer emulating blocking through a private 2441 event loop. (JL) 2442 2443 1/21/97 (performance bug fix) Client TCP connections were slow to create 2444 because getservbyname was always called on the port. Now this is only 2445 done if Tcl_GetInt fails. (BW) 2446 2447 1/21/97 (configuration fix) Made it possible to override TCL_PACKAGE_PATH 2448 during make. Previously it was only set during autoconf process. 2449 2450 1/29/97 (bug fix) Fixed some problems with the clock command that 2451 impacted how dates were scaned after the year 2000. (RJ) 2452 2453 ----------------- Released 7.6p2, 1/31/97 ----------------------- 2454 2455 2/5/97 (bug fix) Fixed a bug where in CR-LF translation mode, \r bytes 2456 in the input stream were not being handled correctly. (JL) 2457 2458 2/24/97 (bug fix) Fix bug with exec under Win32s not being able to create 2459 stderr file which caused all execs to fail. Fixed temp file leak under 2460 Win32s. Fixed optional parameter bug with SearchPath that only happened 2461 under Win32s 1.25. (CCS) 2462 2463 ---------------------------------------------------------- 2464 Changes for Tcl 7.6 go above this line. 2465 Changes for Tcl 7.7 go below this line. 2466 ---------------------------------------------------------- 2467 2468 5/8/96 (new feature) Added Tcl_Ungets C API for putting a sequence of bytes 2469 into a channel's input buffer. This can be used for "push" model channels 2470 where the input is obtained via callbacks instead of by request of the 2471 generic IO code. No Tcl procedure yet. (JL) 2472 2473 11/15/96 (new feature) Implemented hidden commands. New C APIs: 2474 Tcl_HideCommand -- hides an existing exposed command. 2475 Tcl_ExposeCommand -- exposes an existing hidden command. 2476 New tcl APIs: 2477 interp invokehidden -- invokes a hidden command in a slave. 2478 interp hide -- hides an existing exposed command. 2479 interp expose -- exposes an existing hidden command. 2480 interp hidden -- returns a list of hidden commands. 2481 The implementation of Safe Tcl now uses the new hidden commands facility 2482 to implement the safe base, instead of deleting the commands from a safe 2483 interpreter. (JL) 2484 2485 11/15/96 (new feature) Implemented the safe base, a mechanism for 2486 installing and requesting security policies, purely in Tcl code. Overloads 2487 the package command to also allow an interpreter to "require" a policy. The 2488 following new library commands are provided: 2489 tcl_safeCreateInterp -- creates a slave an initializes the 2490 policy mechanism. 2491 tcl_safeInitInterp -- initializes an existing slave with the 2492 policy mechanism. 2493 tcl_safeDeleteInterp -- deletes a slave and deinitializes the 2494 policy mechanism. 2495 Added a new file to the library, safeinit.tcl, to hold implementation. (JL) 2496 On 7/9/97, removed the policy loading mechanism from the Safe Base. Left 2497 only the Safe Base aliases dealing with auto-loading and source. (JL) 2498 2499 12/6/96 (new feature) Implemented Tcl_Finalize, an API that should be 2500 called by a process when it is done using Tcl. This API runs all the exit 2501 handlers to allow them to clean up resources etc. (JL) 2502 2503 12/17/96 (new feature) Add an http Tcl script package to the Tcl library. 2504 This package implements the client side of HTTP/1.0; the GET, HEAD, 2505 and POST requests. (BW) 2506 2507 1/21/97 (new feature) Added a "marktrusted" subcommand to the "interp" and 2508 to the interpreter object command. It removes the "safe" mark on an 2509 interpreter and disables hard-wired checks for safety in the C sources. (JL) 2510 2511 1/21/97 (removed feature) Removed "vwait" from set of commands available in 2512 a safe interpreter. (JL) 2513 2514 2/11/97 (new feature, bug fix) http package. Added -accept to http_config 2515 so you can set the Accept header. Added -handler option to http_get so 2516 you can supply your own data handler. Also fixed POST operation to 2517 set the correct MIME type on the request. (BW) 2518 2519 ---------------------------------------------------------- 2520 Changes for Tcl 7.7 go above this line. 2521 Changes for Tcl 8.0 go below this line. 2522 ---------------------------------------------------------- 2523 2524 9/17/96 (bug fix) Using "upvar" it was possible to turn an array element 2525 into an array itself. Changed to disallow this; it was quirky and didn't 2526 really work correctly anyway. (JO) 2527 2528 10/21/96 (new feature) The core of the Tcl interpreter has been replaced 2529 with an on-the-fly compiler that translates Tcl scripts to bytecoded 2530 instructions; a new interpreter then executes the bytecodes. The compiler 2531 introduces only a few minor changes at the level of Tcl scripts. The biggest 2532 changes are to expressions and lists. 2533 - A second level of substitutions is no longer done for expressions. 2534 This substantially improves their execution time. This means that 2535 the expression "$x*4" produces a different result than in the past 2536 if x is "$y+2". Fortunately, not much code depends on the old 2537 two-level semantics. Some expressions that do, such as 2538 "expr [join $list +]" can be recoded to work in Tcl8.0 by adding 2539 an eval: e.g., "eval expr [join $list +]". 2540 - Lists are now completely parsed on the first list operation to 2541 create a faster internal representation. In the past, if you had a 2542 misformed list but the erroneous part was after the point you 2543 inserted or extracted an element, then you never saw an error. 2544 In Tcl8.0 an error will be reported. This should only effect 2545 incorrect programs that took advantage of behavior of the old 2546 implementation that was not documented in the man pages. 2547 Other changes to Tcl scripts are discussed in the web page at 2548 http://www.scriptics.com/doc/compiler.html. (BL) 2549 *** POTENTIAL INCOMPATIBILITY *** 2550 2551 10/21/96 (new feature) In earlier versions of Tcl, strings were used as a 2552 universal representation; in Tcl 8.0 strings are replaced with Tcl_Obj 2553 structures ("objects") that can hold both a string value and an internal 2554 form such as a binary integer or compiled bytecodes. The new objects make it 2555 possible to store information in efficient internal forms and avoid the 2556 constant translations to and from strings that occurred with the old 2557 interpreter. There are new many new C APIs for managing objects. Some of the 2558 new library procedures for objects (such as Tcl_EvalObj) resemble existing 2559 string-based procedures (such as Tcl_Eval) but take advantage of the 2560 internal form stored in Tcl objects for greater speed. Other new procedures 2561 manage objects and allow extension writers to define new kinds of objects. 2562 See the manual entries doc/*Obj*.3 (BL) 2563 2564 10/24/96 (bug fix) Fixed memory leak on exit caused by some IO related 2565 data structures not being deallocated on exit because their refcount was 2566 artificially boosted. (JL) 2567 2568 10/24/96 (bug fix) Fixed core dump in Tcl_Close if called with NULL 2569 Tcl_Channel. (JL) 2570 2571 11/19/96 (new feature) Added library procedures for finding word 2572 breaks in strings in a platform specific manner. See the library.n 2573 manual entry for more information. (SS) 2574 2575 11/22/96 (feature improvements) Added support for different levels of 2576 tracing during bytecode compilation and execution. This should help in 2577 tracking down suspected problems with the compiler or with converting 2578 existing code to use Tcl8.0. Two global Tcl variables, traceCompile 2579 and traceExec, can be set to generate tracing information in stdout: 2580 - traceCompile: 0 no tracing (default) 2581 1 trace compilations of top level commands and procs 2582 2 trace and display instructions for all compilations 2583 - traceExec: 0 no tracing 2584 1 trace only calls to Tcl procs 2585 2 trace invocations of all commands including procs 2586 3 detailed trace showing the result of each instruction 2587 traceExec >= 2 provides a one line summary of each called command and 2588 its arguments. Commands that have been "compiled away" such as set are 2589 not shown. (BL) 2590 2591 11/30/96 (bug fix) The command "info nameofexecutable" could sometimes 2592 return the name of a directory. (JO) 2593 2594 11/30/96 (feature improvements) Changed the code in library/init.tcl 2595 that reads in pkgIndex.tcl so that (a) it reads the files from child 2596 directories before those in the parent, so that the parent gets 2597 precedence, and (b) it doesn't quit if there is an error in a 2598 pkgIndex.tcl file; instead, it prints an error message on standard 2599 error and continues. (JO) 2600 2601 10/5/96 (feature improvements) Partial implementation of binary string 2602 support: the ability for Tcl string values to contain embedded null bytes. 2603 Changed the Tcl object-based APIs to take a byte pointer and length pair 2604 instead of a null-terminated C string. Modified several object type managers 2605 to support binary strings but not, for example, the list type manager. 2606 Existing string-based C APIs are unchanged and will truncate binary 2607 strings. Compiled scripts containing nulls are also truncated. (BL) 2608 2609 12/12/96 (feature change) Removed the commands "cp", "mkdir", "mv", 2610 "rm", and "rmdir" from the Macintosh version of Tcl. They were never 2611 officially supported and their functionality is now available via 2612 the file command. (RJ) 2613 2614 ----------------- Released 8.0a1, 12/20/96 ----------------------- 2615 2616 1/7/97 (bug fix) Under Windows, "file stat c:" was returning error instead 2617 of stat for current dir on c: drive. 2618 2619 1/10/97 (new feature) Added Tcl_GetIndexFromObj procedure for quick 2620 lookups of keyword arguments. (JO) 2621 2622 1/12/97 (new feature) Serial IO channel drivers for Windows and Unix, 2623 available by using Tcl open command to open pseudo-files like "com1:" or 2624 "/dev/ttya". New option to Tcl fconfigure command for serial files: 2625 "-mode baud,parity,data,stop" to specify baud rate, parity, data bits, and 2626 stop bits. Serial IO is not yet available on Mac. 2627 2628 1/16/97 (feature change) Restored the Tcl7.x "two level substitution 2629 semantics" for expressions. Expressions not enclosed in braces are 2630 implemented, in general, by calling the expr command procedure 2631 (Tcl_ExprObjCmd) at runtime after the Tcl interpreter has already done a 2632 first round of substitutions. This is slow (about Tcl7.x speed) because new 2633 code for the expression is generally compiled each time. However, if the 2634 expression has only variable substitutions (and not command substitutions), 2635 "optimistic" fast code is generated inline. This inline code will fail if a 2636 second round of substitutions is needed (i.e., if the value of a substituted 2637 variable itself requires more substitutions). The optimistic code will 2638 catch the error and back off to call the slower but guaranteed correct 2639 expr command procedure. (BL) 2640 2641 1/16/97 (feature improvements) Added Tcl_ExprLongObj and Tcl_ExprDoubleObj 2642 to round out expression-related procedures. (BL) 2643 2644 1/16/97 (feature change) Under Windows, at startup the environment variables 2645 "path", "comspec", and "windir" in any capitalization are converted 2646 automatically to upper case. The PATH variable could be spelled as path, 2647 Path, PaTh, etc. and it makes programming rather annoying. All other 2648 environment variables are left alone. (CS) 2649 2650 1/20/97 (new features) Rewrote the "lsort" command: 2651 - The new version is based on reentrant merge sort code provided 2652 by Richard Hipp, so it eliminates the reentrancy and stability 2653 problems with the old qsort-based implementation. 2654 - The new version supports a -dictionary option for sorting, and 2655 it also supports a -index option for sorting lists using one 2656 element for comparison. 2657 - The new version is an object command, so it works well with the 2658 Tcl compiler, especially in conjunction with the new -index 2659 option. When the -index option is used, this version of lsort 2660 is more than 100 times faster than the Tcl 7.6 lsort, which had 2661 to use the -command option to get the same effect. (JO) 2662 2663 1/20/97 (feature improvements) Added the improved debugging support for Tcl 2664 objects prototyped by Karl Lehenbauer <[email protected]>. 2665 If TCL_MEM_DEBUG is defined, the object creation calls use Tcl_DbCkalloc 2666 directly in order to record the caller's source file name and line 2667 number. (BL) 2668 2669 1/21/97 (removed feature) Desupported the tcl_precision variable: if 2670 set, it is ignored. Tcl now uses the full 17 digits of precision when 2671 converting real numbers to strings (with the new object system real 2672 numbers are rarely converted to strings so there is no efficiency 2673 disadvantage to printing all 17 digits; the new scheme improves 2674 accuracy and simplifies several APIs). (JO) 2675 *** POTENTIAL INCOMPATIBILITY *** 2676 2677 1/21/97 (feature change) Removed the "interp" argument for the 2678 procedures Tcl_GetStringFromObj, Tcl_StringObjAppend, and 2679 Tcl_StringObjAppendObj. Also removed the "interp" argument for 2680 the updateStringProc procedure in Tcl_ObjType structures. With 2681 the tcl_precision changes above, these are no longer needed. (JO) 2682 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a1, but not with Tcl 7.6 *** 2683 2684 1/22/97 (bug fix) Fixed http.tcl so that http_reset does not result in 2685 an extra call to the command callback. In addition, if the transaction 2686 gets a premature eof, the state(status) is "eof", not "ok". (BW) 2687 2688 ----------------- Released 8.0a2, 1/24/97 ----------------------- 2689 2690 1/29/97 (feature change) Changed how two digit years are parsed in the 2691 clock command. The old interface just added 1900 which will seem 2692 broken by the year 2000. The new scheme follows the POSIX standard 2693 and treats dates 70-99 as 1970-1999 and dates 00-38 as 2000-2038. All 2694 other two digit dates are undefined. (RJ) 2695 *** POTENTIAL INCOMPATIBILITY *** 2696 2697 2/4/97 (bug fix) Fixed bug in clock code that dealt with relative 2698 dates. Using the relative month code you could get an invalid date 2699 because it jumped into a non-existant day. (For example, Jan 31 2700 to Feb 31.) The code now will return the last valid day of the 2701 month in these situations. Thanks to Hume Smith for sending in 2702 this bug fix. (RJ) 2703 2704 2/10/97 (feature change) Eliminated Tcl_StringObjAppend and 2705 Tcl_StringObjAppendObj procedures, replaced them with Tcl_AppendToObj 2706 and Tcl_AppendStringsToObj procedures. Added new procedure 2707 Tcl_SetObjLength. (JO) 2708 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2, but not with Tcl 7.6 *** 2709 2710 2/10/97 (new feature) Added Tcl_WrongNumArgs procedure for generating 2711 error messages about incorrect number of arguments. (JO) 2712 2713 2/11/97 (new feature, bug fix) http package. Added -accept to http_config 2714 so you can set the Accept header. Added -handler option to http_get so 2715 you can supply your own data handler. Also fixed POST operation to 2716 set the correct MIME type on the request. (BW) 2717 2718 2/22/97 (bug fix) Fixed bug that caused $tcl_platform(osVersion) to be 2719 computed incorrectly under AIX. (JO) 2720 2721 2/25/97 (new feature, feature change) Added support for both int and long 2722 integer objects. Added Tcl_NewLongObj/Tcl_GetLongFromObj/Tcl_SetLongFromObj 2723 procedures and renamed the Tcl_Obj internalRep intValue member to 2724 longValue. Tcl_GetIntFromObj now checks for integer values too large to 2725 represent as non-long integers. Changed Tcl_GetAllObjTypes to 2726 Tcl_AppendAllObjTypes. (BL) 2727 2728 3/5/97 (new feature) Added new Tcl_SetListObj procedure to round out 2729 collection of procedures that set the type and value of existing Tcl 2730 objects. (BL) 2731 2732 3/6/97 (new feature) Added -global flag for interp invokehidden. (JL) 2733 2734 3/6/97 (new feature, feature change) Added isNativeObjectProc field to the 2735 Tcl_CmdInfo structure to indicate (when 1) if the command has an 2736 object-based command procedure. Removed the nameLength arg from 2737 Tcl_CreateObjCommand since command names can't contain null characters. (BL) 2738 2739 3/6/97 (bug fix) Fixed bug in "unknown" procedure that caused auto- 2740 loading to fail on commands whose names begin with digits. (JO) 2741 2742 3/7/97 (bug fix) Auto-loading now works in Safe Base. Safe interpreters 2743 only accept the Version 2 and onwards tclIndex files. (JL) 2744 2745 3/13/97 (bug fix) Fixed core dump due to interaction between aliases and 2746 hidden commands. Bug found by Lindsay Marshall. (JL) 2747 2748 3/14/97 (bug fix) Fixed mac bugs relating to time. The -gmt option 2749 now adjusts the time in the correct direction. (Thanks to Ed Hume for 2750 reporting a fix to this problem.) Also fixed file "mtime" etc. to 2751 return times from GMT rather than local time zone. (RJ) 2752 2753 3/18/97 (feature change) Declaration of objv in Tcl_ObjCmdProc function 2754 changed from "Tcl_Obj *objv[]" to "Tcl_Obj *CONST objv[]". All Tcl object 2755 commands changed to use new declaration of objv. Naive translation of 2756 string-based command procs to object-based command procs could very easily 2757 have yielded code where the contents of the objv array were changed. This 2758 is not a problem with string-based command procs, but doing something as 2759 simple as objv[2] = objv[3] would corrupt the runtime stack and cause Tcl to 2760 crash. Introduced CONST in declaration of objv so that attempted assignment 2761 of new pointer values to elements of the objv array will be caught by the 2762 compiler. (CCS) 2763 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 *** 2764 2765 3/19/97 (bug fix) Fixed panic due to object sharing. The root cause was 2766 that old code was using Tcl_ResetResult instead of Tcl_ResetObjResult. (JL) 2767 2768 3/20/97 (new feature) Added a new subcommand for the file 2769 command. file attributes filename can give a list of platform-specific 2770 options (such as file/creator type on the Mac, permissions on Unix) or 2771 set the values of them. Added a new subcommand for the file 2772 command. file nativename name gives back the platform-specific form 2773 for the file. This is useful when the filename is needed to pass to 2774 the OS, such as exec under Windows 95 or AppleScript on the Mac. For 2775 more info, see file.n. (SRP) 2776 2777 3/24/97 (removed feature) Removed the tcl_safePolicyPath procedure. Now 2778 the policy path is computed from the auto_path by appending the directory 2779 'policies' to each element. Also fixed several bugs in automatic tracking 2780 of auto_path by computed policy path. (JL) 2781 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 *** 2782 2783 4/8/97 (new feature) If the variable whose name is passed to lappend doesn't 2784 already exist, and there are no value arguments, lappend now creates the 2785 variable with an empty value instead of returning an error. Change suggested 2786 by Tom Tromey. (BL) 2787 2788 4/9/97 (feature change) Changed the name of the TCL_PART1_NOT_PARSED flag to 2789 TCL_PARSE_PART1. (BL) 2790 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 *** 2791 2792 4/10/97 (bug fixes) Fixed various compilation-related bugs: 2793 - "UpdateStringOfCmdName should never be invoked" panic. 2794 - Bad code generated for expressions not in {}'s inside catch commands. 2795 - Segmentation fault in some command procedures when two argument 2796 object pointers refer to the same object. 2797 - Second level of substitutions were never done for expressions not 2798 in {}'s that consist of a single variable reference: e.g., 2799 "set x 27; set bool {$x}; if $bool {puts foo}" would fail with error. 2800 - Bad code generated when code storage was grown while compiling some 2801 expressions: ones with compilation errors or consisting of only a 2802 variable reference. 2803 - Bugs involving multiple interpreters: wasn't checking that a 2804 procedure's code was compiled for the same interpreter as the one 2805 executing it, and didn't invalidate code on hidden-exposed command 2806 transitions. 2807 - "Bad stack top" panic when executing scripts that require a huge 2808 amount of stack space. 2809 - Incorrect sharing of code for procedure bodies, and procedure code 2810 deallocated before last execution of the procedure finished. 2811 - Fixed compilation of expression words in quotes. For example, 2812 if "0 < 3" {puts foo}. 2813 - Fixed performance bug in array set command with large assignments. 2814 - Tcl_SetObjLength segmentation fault setting length of empty object. 2815 - If Tcl_SetObjectResult was passed the same object as the interpreter's 2816 result object, it freed the object instead of doing nothing. Bug fix 2817 by Michael J. McLennan. 2818 - Tcl_ListObjAppendList inserted elements from the wrong list. Bug fix 2819 by Michael J. McLennan. 2820 - Segmentation fault if empty variable list was specified in a foreach 2821 command. Bug fix by Jan Nijtmans. 2822 - NULL command name was always passed to Tcl_CreateTrace callback 2823 procedure. 2824 - Wrong string representation generated for the value LONG_MIN. 2825 For example, expr 1<<31 printed incorrectly on a 32 bit machine. 2826 - "set {a($x)} 1" stored value in wrong variable. 2827 - Tcl_GetBooleanFromObj was not checking for garbage after a numeric 2828 value. 2829 - Garbled "bad operand type" error message when evaluating expressions 2830 not surrounded by {}'s. (BL) 2831 2832 4/16/97 (new feature) The expr command now has the "rand()" and 2833 "srand()" functions for getting random numbers in expr. (RJ) 2834 2835 4/23/97 (bug fix) Fixed core dump in bgerror when the error handler command 2836 deletes the current interpreter. Found by Juergen Schoenwald. (JL) 2837 2838 4/23/97 (feature change) The notifier interfaces have been redesigned 2839 to make embedding in applications with external event loops possible. 2840 A number of interfaces in the notifier and the channel drivers have 2841 changed. Refer to the Notifier.3 and CrtChannel.3 manual entries for 2842 more details. (SS) 2843 *** POTENTIAL INCOMPATIBILITY *** 2844 2845 4/23/97 (removed feature) The Tcl_File interfaces have been removed. 2846 The Tcl_CreateFileHandler/Tcl_DeleteFileHandler interfaces now take 2847 Unix fd's and are only supported on the Unix platform. 2848 Tcl_GetChannelFile has been replaced with Tcl_GetChannelHandle. 2849 Tcl_MakeFileChannel now takes a platform specific file handle. (SS) 2850 *** POTENTIAL INCOMPATIBILITY *** 2851 2852 4/23/97 (removed feature) The modal timeout interface has been 2853 removed (Tcl_CreateModalTimeout/Tcl_DeleteModalTimeout) (SS) 2854 *** POTENTIAL INCOMPATIBILITY *** 2855 2856 4/23/97 (feature change) Channel drivers are now required to correctly 2857 implement blocking behavior when they are in blocking mode. (SS) 2858 *** POTENTIAL INCOMPATIBILITY *** 2859 2860 4/23/97 (new feature) Added the "binary" command for manipulating 2861 binary strings. Also, changed the "puts", "gets", and "read" commands 2862 to preserve embedded nulls. (SS) 2863 2864 4/23/97 (new feature) Added tcl_platform(byteOrder) element to the 2865 tcl_platform array to identify the native byte order for the current 2866 host. (SS) 2867 2868 4/23/97 (bug fix) Fixed bug in date parsing around year boundaries. (SS) 2869 2870 4/24/97 (bug fix) In the process of copying a file owned by another user, 2871 Tcl was changing the owner of the copy back to the owner of the original 2872 file, therefore causing further file operations to fail because the current 2873 user didn't own the copy anymore. The owner of the copy is now left as the 2874 current user. (CCS) 2875 2876 4/24/97 (feature change) Under Windows, don't automatically uppercase the 2877 environment variable "windir" -- it's supposed to be lower case. (CCS) 2878 2879 4/29/97 (new feature) Added namespace support based on a namespace 2880 implementation by Michael J. McLennan of Lucent Technologies. A namespace 2881 encapsulates a collection of commands and variables to ensure that they 2882 won't interfere the commands and variables of other namespaces. The global 2883 namespace holds all global variables and commands. Additional namespaces are 2884 created with the new namespace command. The new variable command lets you 2885 create Tcl variables inside a namespace. The names of Tcl variables and 2886 commands may now be qualified by the name of the namespace containing them. 2887 The key namespace-related commands are summarized below: 2888 - namespace ?eval? name arg ?arg...? 2889 Used to define the commands and variables in a namespace. 2890 Optionally creates the namespace. 2891 - namespace export ?-clear? ?pattern pattern...? 2892 Specifies which commands are exported from a namespace. These 2893 are the ones that can be imported into another namespace. 2894 - namespace import ?-force? ?pattern pattern...? 2895 Makes the specified commands accessible in the current namespace. 2896 - namespace current 2897 Returns the name of the current namespace. 2898 - variable name ?value? ?name ?value?...? 2899 Creates one or more namespace variables. (BTL) 2900 2901 5/1/97 (bug fix) Under Windows, file times were reported in GMT. Should be 2902 reported in local time. (CCS) 2903 2904 5/2/97 (feature change) Changed the name of the two Tcl variables used for 2905 tracing bytecode compilation and execution to tcl_traceCompile and 2906 tcl_traceExec respectively. These variables are now documented in the 2907 tclvars man page. (BL) 2908 2909 5/5/97 (new feature) Support "end" as the index for "lsort -index". (BW) 2910 2911 5/5/97 (bug fixes) Cleaned up the way the http package resets connections (BW) 2912 2913 5/8/97 (feature change) Newly created Tcl objects now have a reference count 2914 of zero instead of one. This simplifies C code that stores newly created 2915 objects in Tcl variables or in data structures such as list objects. That C 2916 code must increment the new object's reference count since the variable or 2917 data structure will contain a long-term reference to the object. Formerly, 2918 when new objects started out with reference count one, it was necessary to 2919 decrement the new object's reference count after the store to make sure it 2920 was left with the correct value; this is no longer necessary. (BL) 2921 2922 5/9/97 (new feature) Added the Tcl_GetsObj interface that takes an 2923 object reference instead of a dynamic string (as in Tcl_Gets). (SS) 2924 2925 5/12/97 (new feature) Added Tcl_CreateAliasObj and Tcl_GetAliasObj C APIs 2926 to allow an alias command to be created with a vector of Tcl_Obj structures 2927 and to get the vector back later. (JL) 2928 2929 5/12/97 (feature change) Changed Tcl_ExposeCommand and Tcl_HideCommand to 2930 leave an object result instead of a string result. (JL) 2931 2932 5/14/97 (feature change) Improved the handling of the interpreter result. 2933 This is still either an object or a string, but the two values are now kept 2934 consistent unless some C code reads or writes interp->result directly. See 2935 the SetResult man page for details. Removed the Tcl_ResetObjResult 2936 procedure. (BL) 2937 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 *** 2938 2939 5/16/97 (new feature) Added "fcopy" command to move data between 2940 channels. Refer to the manual page for more information. Removed the 2941 "unsupported0" command since it is obsolete now. (SS) 2942 2943 5/16/97 (new feature) Added Tcl_GetStringResult procedure to allow programs 2944 to get an interpreter's result as a string. If the result was previously set 2945 to an object, this procedure will convert the object to a string. Use of 2946 Tcl_GetStringResult is intended to replace direct access to interp->result, 2947 which is not safe. (BL) 2948 2949 5/20/97 (new features) Fixed "fcopy" to return the number of bytes 2950 transferred in the blocking case. Updated the http package to use 2951 fcopy instead of unsupported0. Added -timeout and -handler options to 2952 http_get. http_get is now blocking by default. It is only non-blocking 2953 if you supply a -command argument. (BW) 2954 2955 5/22/97 (bug fix) Fixed several bugs in the "lsort" command having to do 2956 with the -dictionary option and the presence of numbers embedded in the 2957 strings. (JO) 2958 2959 ----------------- Released 8.0b1, 5/27/97 ----------------------- 2960 2961 6/2/97 (bug fix) Fixed bug in startup code that caused a problem in 2962 finding the library files when they are installed in a directory 2963 containing a space in the name. (SS) 2964 2965 6/2/97 (bug fix) Fixed bug in Unix notifier where the select mask was 2966 not being cleared under some circumstances. (SS) 2967 2968 6/4/97 (bug fix) Fixed bug that prevented creation of Tk widgets in 2969 namespaces. Tcl_CreateObjCommand and Tcl_CreateCommand now always create 2970 commands in the global namespace unless the command names are qualified. Tcl 2971 procedures continue to be created in the current namespace by default. (BL) 2972 2973 6/6/97 (new features) Added new namespace API procedures 2974 Tcl_AppendExportList and Tcl_Export to allow C code to get and set a 2975 namespace's export list. (BL) 2976 2977 6/11/97 (new feature) Added Tcl_ConcatObj. This object-based routine 2978 parallels the string-based routine Tcl_Concat. (SRP) 2979 2980 6/11/97 (new feature) Added Tcl_SetObjErrorCode. This object-based 2981 routines parallels the string-based routine Tcl_SetErrorCode. (SRP) 2982 2983 6/12/97 (bug fix) Fix the "unknown" procedure so that wish under Windows 2984 will exec an external program, instead of always complaining "console1 not 2985 opened for writing". (CCS) 2986 2987 6/12/97 (bug fix) Fixed core dump experienced by the following simple 2988 script: 2989 interp create x 2990 x alias exec exec 2991 interp delete x 2992 This panic was caused by not installing the new CmdDeleteProc when exec 2993 got redefined by the alias creation step. Reported by Lindsay Marshal (JL) 2994 2995 6/13/97 (new features) Tcl objects newly created by Tcl_NewObj now have a 2996 string representation that points to a shared heap string of length 1. (They 2997 used to have NULL bytes and typePtr fields. This was treated as a special 2998 case to indicate an empty string, but made type manager implementations 2999 complex and error prone.) The new procedure Tcl_InvalidateStringRep is used 3000 to mark an object's string representation invalid and to free any storage 3001 associated with the old string representation. (BL) 3002 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 *** 3003 3004 6/16/97 (bug fix) Tcl_ScanCountedElement could leave braces unmatched 3005 if the string ended with a backslash. (JO) 3006 3007 6/17/97 (bug fix) Fixed channel event bug where readable events would be 3008 lost during recursive events loops if the input buffers contained 3009 data. (SS) 3010 3011 6/17/97 (bug fix) Fixed bug in Windows socket code that didn't 3012 reenable read events in the case where an external entity is also 3013 reading from the socket. (SS) 3014 3015 6/18/97 (bug fix) Changed initial setting of the notifier service mode 3016 to TCL_SERVICE_NONE to avoid unexpected event handling during 3017 initialization. (SS) 3018 3019 6/19/97 (bug fix/feature change) The command callback to fcopy is now 3020 called in case of errors during the background copy. This adds a second, 3021 optional argument to the callback that is the error string. The callback 3022 in case of errors is required for proper cleanup by the user of fcopy. (BW) 3023 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** 3024 3025 6/19/97 (bug fix) Fixed a panic due to the following four line script: 3026 interp create x 3027 x alias foo bar 3028 x eval rename foo blotz 3029 x alias foo {} 3030 The problem was that the interp code was not using the actual current name 3031 of the command to be deleted as a result of un-aliasing foo. (JL) 3032 3033 6/19/97 (feature change) Pass interp down to the ChannelOption and 3034 driver specific calls so system errors can be differentiated from syntax 3035 ones. Changed Tcl_DriverGetOptionProc type. Affects Tcl_GetChannelOption, 3036 TcpGetOptionProc, TtyGetOptionProc, etc. (DL) 3037 *** POTENTIAL INCOMPATIBILITY *** 3038 3039 6/19/97 (new feature) Added Tcl_BadChannelOption for use by by driver 3040 specific option procedures (Set and Get) to return a complete and 3041 meaningful error message. (DL) 3042 3043 6/19/97 (bug fixes) If a system call error occurs while doing an 3044 fconfigure on tcp or tty/com channel: return the appropriate error 3045 message (instead of the syntax error one or none). (Fixed for Unix and 3046 most of the Win and Mac drivers). (DL) 3047 3048 6/20/97 (feature change) Eval is no longer assumed as the subcommand name 3049 in namespace commands: you must now write "namespace eval nsName {...}". 3050 Abbreviations of namespace subcommand names are now allowed. (BL) 3051 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 *** 3052 3053 6/20/97 (feature change) Changed the errorInfo traceback message for 3054 compilation errors from "invoked from within" to "while compiling". (BL) 3055 3056 6/20/97 (bug fixes) Fixed various compilation-related bugs: 3057 - "UpdateStringOfCmdName should never be called" and 3058 "UpdateStringOfByteCode should never be called" panics. 3059 - Segfault in TclObjInterpProc getting procedure name after evaluation 3060 stack is reallocated (grown). 3061 - Could not use ":" at end of variable and command names. 3062 - Bad code generated for while and for commands with test expressions 3063 enclosed in quotes: e.g., "set i 0; while "$i > 5" {}". 3064 - Command trace procedures would crash if they did a Tcl_EvalObj that 3065 reallocated the evaluation stack. 3066 - Break and continue commands did not reset the interpreter result. 3067 - The Tcl_ExprXXX routines, both string- or object-based, always 3068 modified the interpreter result even if there was no error. 3069 - The argument parsing procedure used by several compile procedures 3070 always treated "]" as end of a command: e.g., "set a ]" would fail. 3071 - Changed errorInfo traceback message for compilation errors from 3072 "invoked from within" to "while compiling". 3073 - Problem initializing Tcl object managers during interpreter creation. 3074 - Added check and error message if formal parameter to a procedure is 3075 an array element. (BL) 3076 3077 6/23/97 (new feature) Added "registry" package to allow manipulation 3078 of the Windows system registry. See manual entry for details. (SS) 3079 3080 6/24/97 (feature change) Converted http to a package and added the 3081 http1.0 subdirectory of the Tcl script library. This means you have 3082 to do a "package require http" to use this, as advertised in the man page. (BW) 3083 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** 3084 3085 6/24/97 (bug fix) Ensure that Tcl_Set/GetVar C APIs, when called without 3086 TCL_LEAVE_ERR_MSG, don't touch the interp result. (DL) 3087 3088 6/26/97 (feature change) Changed name of Tcl_ExprStringObj to 3089 Tcl_ExprObj. (BL) 3090 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** 3091 3092 ----------------- Released 8.0b2, 6/30/97 ----------------------- 3093 3094 7/1/97 (new feature) TCL_BUILD_SHARED flag set in tclConfig.sh 3095 when Tcl has been built with --enable-shared. A new tclLibObjs 3096 make target, echoing the list of the .o's needed to build a tcl 3097 library, is now provided. (DL) 3098 3099 7/1/97 (feature change) compat/getcwd.c removed and changed the 3100 only place where getcwd is used so a new USEGETWD flag selects 3101 the use of the replacement "getwd". Adding this flag is recommended 3102 for SunOS 4 (because getcwd on SunOS 4 uses a pipe to pwd(1)!). (DL) 3103 3104 7/7/97 (feature change) The split command now supports binary data (i.e., 3105 null characters in strings). (BL) 3106 3107 7/7/97 (bug fix) string first returned the wrong result if the first 3108 argument string was empty. (BL) 3109 3110 7/8/97 (bug fix) Fixed core dump in fcopy that could occur when a command 3111 callback was supplied and an error or eof condition caused no background 3112 activity. A refcount bug triggered a panic in Tcl_ListObjAppendElement. (BW) 3113 3114 7/8/97 (bug fix) Relaxed the pattern matching on http_get so you do not 3115 need a trailing path component. You can now get away with just 3116 http_get www.scriptics.com (BW) 3117 3118 7/9/97 (bug fix) Creating anonymous interpreters no longer smashes existing 3119 commands with names similar to the generated name. Previously creating an 3120 anonymous interpreter could smash an existing command, now it skips until 3121 it finds a command name that isn't being used. (JL) 3122 3123 7/9/97 (feature change) Removed the policy management mechanism from the 3124 Safe Base; left the aliases to source and load modules, and to do a limited 3125 form of the "file" command. See entry of 11/15/96. (JL) 3126 3127 7/9/97 (bug fixes) Fixed various compilation-related bugs: 3128 - Line numbers in errorInfo now are the same as those in Tcl7.6 unless 3129 there are compilation errors. Compilation error messages now include the 3130 entire command in error. 3131 - Trailing ::s after namespace names weren't being ignored. 3132 - Could not refer to an namespace variable with an empty name using a 3133 name of the form "n::". (BL) 3134 3135 7/9/97 (bug fix) Fixed bug in Tcl_Export that prevented you from exporting 3136 from other than the current namespace. (BL) 3137 3138 7/9/97 (bug fix) env.test was removing env var needed for proper finding 3139 of libraries in child process. (DL) 3140 3141 7/10/97 (bug fixes/new feature) Cleanup in Tcl_MakeSafe. Less information 3142 is leaked to safe interps. Error message fixes for interp sub commands. 3143 Likewise changes in safealias.tcl; tcl_safeCreateInterp can now be called 3144 without argument to generate the slave name (like in interp create). (DL) 3145 3146 7/10/97 (bug fixes) Bytecode compiler now generates more detailed 3147 command location information: subcommands as well as commands now have 3148 location information. This means command trace procedures now get the 3149 correct source string for each command in their command parameter. (BL) 3150 3151 7/22/97 (bug fixes) Performance improvement in Safe interpreters 3152 handling. Added new mask value to (tclInt.h) Interp.flags record. (DL) 3153 3154 7/22/97 (bug fix) Fixed panic in 'interp target {} foo'. This bug 3155 was present since Tcl 7.6. (JL) 3156 3157 7/22/97 (bug fix) Fixed bug in compilation of procedures in namespaces: the 3158 procedure's namespace must be used to look up compile procedures, not the 3159 current namespace. (BL) 3160 3161 7/22/97 (bug fix) Use of the -channel option of http_get was not setting 3162 the end of line translations mode on the channel, so copying binary data 3163 with the -channel option was corrupting the result on non-unix platforms. (BW) 3164 3165 7/22/97 (bug fixes) file commands and ~user (seg fault and other 3166 improper returns). (DL) 3167 3168 7/23/97 (feature change) Reenabled "vwait" in Safe Base. (JL) 3169 3170 7/23/97 (bug fixes) Fixed two bugs involving read traces on array variables 3171 in procedures: trace procedures were sometimes not called, and reading 3172 nonexistant array elements didn't create undefined element variables that 3173 could later be defined by trace procedures. (BL) 3174 3175 7/24/97 (bug fix) Windows memory allocation performance was 3176 superlinear in some cases. Made the Mac allocator generic and changed 3177 both the Mac and Windows platforms to use the new allocator instead of 3178 malloc and free. (SS) 3179 3180 7/24/97 - 8/12/97 (bug fixes/change of features) Completely revamped safe 3181 sourcing/loading (see safe.n) to hide pathnames, use virtual 3182 paths tokens instead, improved security in several respects and made it 3183 more tunable. Multi level interp loading can work too now. Package auto 3184 loading now works in safe interps as long as the package directory is in 3185 the auto_path (no deep crawling allowed in safe interps). (DL) 3186 *** POTENTIAL INCOMPATIBILITY with previous alpha and beta releases *** 3187 3188 7/24/97 (bug fixes) Made Tcl_SetVar* and Tcl_NewString* treat a NULL value 3189 as an empty string. (This fixes hairy crash case where you would crash 3190 because load command for other interps assumed presence of 3191 errorInfo...). (DL) 3192 3193 7/28/97 (bug fix) Fixed pkg_mkIndex to understand namespaces. It will 3194 use the export list of a namespace and create auto_index entries for 3195 all export commands. Those names are in their fully qualified form in the 3196 auto_index. Therefore, I tweaked unknown to try both $cmd and ::$cmd. 3197 Also fixed pkg_mkIndex so you can have "package require" commands inside 3198 your packages. These commands are ignored, which is mostly ok except 3199 when you must load another package before loading yours because of 3200 linking dependencies. (BW) 3201 3202 7/28/97 (bug fix) A variable created by the variable command now persists 3203 until the namespace is destroyed or the variable is unset. This is true even 3204 if the variable has not been initialized; these variables used to be 3205 destroyed if an error occurred when accessing them. In addition, the "info 3206 vars" command lists uninitialized namespace variables, while the "info 3207 exists" command returns 0 for them. (BL) 3208 3209 7/29/97 (feature change) Changed the http package to use the ::http 3210 namespace. http_get renamed to http::geturl, http_config renamed to 3211 http::config, http_formatQuery renamed to http::formatQuery. 3212 It now provides the 2.0 version of the package. 3213 The 1.0 version is still available with the old names. 3214 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b2 but not with Tcl 7.6 *** 3215 3216 7/29/97 (bug fix, new feature) Tcl_Main now uses Tcl objects internally to 3217 preserve NULLs in commands and command output. Added new API procedure 3218 Tcl_RecordAndEvalObj that resembles Tcl_RecordAndEval but takes an object 3219 containing a command. (BL) 3220 3221 7/30/97 (bug fix) Tcl freed strings in the environ array even if it 3222 did not allocate them. (SS) 3223 3224 7/30/97 (bug fix) If a procedure is renamed into a different namespace, it 3225 now executes in the context of that namespace. (BL) 3226 3227 7/30/97 (bug fix) Prevent renaming of commands into and from namespaces as 3228 part of hiding them. (JL) 3229 3230 7/31/97 (feature change) Moved the history command from C to tcl. 3231 This uses the ::history namespace. The "words" and "substitute" options 3232 are no longer supported. In addition, the "keep" option without a value 3233 returns the current keep limit. There is a new "clear" option. 3234 The unknown command now supports !! again. (BW) 3235 *** POTENTIAL INCOMPATIBILTY *** 3236 3237 7/30/97 (bug fix) Made sure that a slave can not fool the master into 3238 hiding the wrong command. Made sure we don't crash in hiding + namespaces 3239 issues. (DL) 3240 3241 8/4/97 (bug fix) Concat, eval, uplevel, and similar commands were 3242 incorrectly trimming trailing space characters from their arguments 3243 even when the space characters were preceded by a backslash. (JO) 3244 3245 8/4/97 (bug fix) Removed the hard link between bgerror and tkerror. 3246 Only bgerror is supported in tcl core. Tk will still look for a 3247 tkerror but using regular tcl code for that feature. (DL) 3248 *** POTENTIAL INCOMPATIBILTY with code relying on the hard link *** 3249 3250 8/6/97 (bug fix) Reduced size required for compiled bytecodes by using a 3251 more compact encoding for the command pc-to-source map. (BL) 3252 3253 8/6/97 (new feature) Added support for additional compilation and execution 3254 statistics when Tcl is compiled with the TCL_COMPILE_STATS flag. (BL) 3255 3256 8/7/97 (bug fix) Expressions not in {}s that have a comparison operator as 3257 the topmost operator must be compiled out-of-line (call the expr cmd at 3258 runtime) to properly support expr's two-level substitution semantics. An 3259 example is "set a 2; set b {$a}; puts [expr $b == 2]". (BL) 3260 3261 8/11/97 (bug fix) The catch command would sometimes crash if a variable name 3262 was given and the bytecode evaluation stack was grown when executing the 3263 argument script. (BL) 3264 3265 8/12/97 (feature change) Reinstated the variable tcl_precision to control 3266 the number of digits used when floating-point values are converted to 3267 strings, with default of 12 digits. However, had to make tcl_precision 3268 shared among all interpreters (except that safe interpreters can't 3269 modify it). This makes the Tcl 8.0 behavior almost identical to 7.6 3270 except that the default precision is 12 instead of 6. (JO) 3271 *** POTENTIAL INCOMPATIBILITY *** 3272 3273 ----------------- Released 8.0, 8/18/97 ----------------------- 3274 3275 8/19/97 (bug fix) Minimal fix for glob -nocomplain bugs: 3276 "glob -nocomplain unreadableDir/*" was generating an anonymous 3277 error. More in depth fixes will come with 8.1. (DL). 3278 3279 8/20/97 (bug fix) Removed check for FLT_MIN in binary command so 3280 underflow conditions are handled by the compiler automatic 3281 conversions. (SS) 3282 3283 8/20/97 (bug fixes) Fixed several compilation-related bugs: 3284 - Array cmd wasn't detecting arrays that, while compiled, do not yet 3285 exist (e.g., are marked undefined since they haven't been assigned 3286 to yet). 3287 - The GetToken procedure in tclCompExpr.c wasn't recognizing properly 3288 whether an integer token was invalid. For example, "0x$" is not 3289 a valid integer. 3290 - Performance bug in TclExecuteByteCode: the size of its stack frame 3291 was reduced by over 20% by moving errorInfo code elsewhere. 3292 - Uninitialized memory read error in tclCompile.c. (BL) 3293 3294 8/21/97 (bug fix) safe::interpConfigure now behave like Tk widget's 3295 configure : it changes only the options you provide and you can get 3296 the current value of any single option. New ?-nested boolean? and 3297 ?-statics boolean? for all safe::interp* commands but we still 3298 accept (upward compatibility) the previously defined non valued 3299 flags ?-noStatics? and ?-nestedLoadOk?. Improved the documentation. (DL). 3300 3301 8/22/97 (bug fix) Updated PrintDbl.3 to reflect the fact that the 3302 tcl_precision variable is still used and that it is now shared by all 3303 interpreters. (BL) 3304 3305 8/25/97 (bug fix) Fixed array access bug in IllegalExprOperandType 3306 procedure in tclExecute.c: it was not properly supporting the || and && 3307 operators. (BL) 3308 3309 8/27/97 (bug fix) In cases where a channel handler was created with an 3310 empty event mask while data was still buffered in the channel, the 3311 channel code would get stuck spinning on a timer that would starve 3312 idle handlers. This mostly happened in Tk when reading from stdin. (SS) 3313 3314 9/4/97 (bug fix) Slave interps now inherit the maximum recursion limit 3315 of their parent instead of starting back at the default. {nb: this still 3316 does not prevent stack overflow by multi-interps recursion or aliasing} (DL) 3317 3318 9/11/97 (bug fix) An uninitialized variable in Tcl_WaitPid caused 3319 pipes to fail to report eof properly under Windows. (SS) 3320 3321 9/12/97 (bug fix) "exec" was misidentifying some DOS executables as not 3322 executable. (CCS) 3323 3324 9/14/97 (bug fix) Was using the wrong structure in sizeof operation in 3325 tclUnixChan.c. (JL) 3326 3327 9/15/97 (bug fix) Fixed notifier to break out of do-one-event loop if 3328 Tcl_WaitForEvent returns 1, so that callers of Tcl_DoOneEvent will get 3329 a chance to check whether the event just handled is significant. This 3330 affected mainly recursive calls to Tcl_VWaitCmd; these did not get a 3331 chance to notice that the variable they were waiting for has been set 3332 and thus they didn't terminate the vwait. (JL, DL, SS) 3333 3334 9/15/97 (bug fix) Alignment problems in "binary format" would cause a 3335 crash on some platforms when formatting floating point numbers. (SS) 3336 3337 9/15/97 (bug fix) Fixed bug in Macintosh socket code. Now passes all 3338 tests in socket.test that are not platform specific. (Thanks to Mark 3339 Roseman for the pointer on the fix.) (RJ) 3340 3341 9/18/97 (bug fix) Fixed bug -dictionary option of lsort that could 3342 cause the compare function to run off the end of an array if the 3343 number only contained 0's. (Thanks to Greg Couch for the report.) (RJ) 3344 3345 9/18/97 (bug fix) TclFinalizeEnvironment was not cleaning up 3346 properly. (DL, JI) 3347 3348 9/18/97 (bug fix) Fixed long-standing bug where an "array get" command 3349 did not trigger traces on the array or its elements. (BL) 3350 3351 9/18/97 (bug fixes) Fixed compilation-related bugs: 3352 - Fixed errorInfo traceback information for toplevel coomands that 3353 contain nested commands. 3354 - In the expr command, && and || now accept boolean operands as well 3355 as numeric ones. (BL) 3356 3357 9/22/97 (bug fix) Fixed bug that prevented translation modes from being 3358 set independently for input and output on sockets if input was "auto". (JL) 3359 3360 9/24/97 (bug fix) Tcl_EvalFile(3) and thus source(n) now works fine on 3361 files containing NUL chars. (DL) 3362 3363 9/26/97 (bug fix) Fixed use of uninitialized memory in the environ array 3364 that later could cause random core dumps. Applies to all platforms. (JL) 3365 3366 9/26/97 (bug fix) Fixed use of uninitialized memory in socket address data 3367 structure under some circumstances. This could cause random core dumps. 3368 This applies only to Unix. (JL) 3369 3370 9/26/97 (bug fix) Opening files on PC-NFS volumes would cause a hang 3371 until the system timed after the file was closed. (SS) 3372 3373 10/6/97 (bug fix) The join(n) command, though objectified, was loosing 3374 NULs in the joinString and in list elements after the 2nd one. 3375 Now you can "join $list \0" for instance. (DL) 3376 3377 10/9/97 (bug fix) Under windows, if env(TMP) or env(TEMP) referred to a 3378 non-existent directory, exec would fail when trying to create its temporary 3379 files. (CCS) 3380 3381 10/9/97 (bug fix) Under mac and windows, "info hostname" would crash if 3382 sockets were installed but the hostname could not be determined anyhow. 3383 Tcl_GetHostName() was returning NULL when it should have been returning 3384 an empty string. (CCS) 3385 3386 10/10/97 (bug fix) "file attribute /" returned error on windows. (CCS) 3387 3388 10/10/97 (bug fix) Fixed the auto_load procedure to handle procedures 3389 defined in namespaces better. Also fixed pgk_mkIndex so it sees procedures 3390 defined in nested namespaces. Index entries are still only made for 3391 exported procedures. (BW) 3392 3393 10/13/97 (bug fix) On unix, for files with unknown group or owner 3394 attributes, querying the "file attributes" would return an error rather than 3395 returning the group's or owner's id number, although tha command accepts 3396 numbers when setting the file's group or owner. (CCS) 3397 3398 10/22/97 (bug fix) "fcopy" did not eval the callback script at the 3399 global scope. (SS) 3400 3401 10/22/97 (bug fix) Fixed the signature of the CopyDone callback used in 3402 the http package(s) so they can handle error cases properly. (BW) 3403 3404 10/28/97 (bug fixes) Fixed a problem where lappend would free the Tcl object 3405 in a variable if a Tcl_ObjSetVar2 failed because of an error calling a trace 3406 on the variable. (BL) 3407 3408 10/28/97 (bug fix) Changed binary scan to properly handle sign 3409 extension of integers on 64-bit or larger machines. (SS) 3410 3411 11/3/97 (bug fixes) Fixed several bugs: 3412 - expressions such as "expr ($x)" must be compiled out-of-line 3413 (call the expr command procedure at runtime) to ensure the correct 3414 behavior when "$x" is an expression such as "5+10". 3415 - "array set a {}" now creates a new array var with an empty array 3416 value if the var didn't already exist. 3417 - "lreplace $foo end end" no longer returns an error (just an empty 3418 list) if foo is empty. 3419 - upvar will no longer create a variable in a namespace that refers 3420 to a variable in a procedure. 3421 - deleting a command trace within a command trace callback would 3422 make the code that calls traces to reference freed memory. 3423 - significantly sped up "string first" and "string last" (fix from 3424 [email protected]). 3425 - seg fault in Tcl_NewStringObj() when a NULL is passed as the byte 3426 pointer argument and Tcl is compiled with -DTCL_MEM_DEBUG. 3427 - documentation and error msg fixes. (BL) 3428 3429 11/3/97 (bug fix) Fixed a number of I/O bugs related to word sizes on 3430 64-bit machines. (SS) 3431 3432 11/6/97 (bug fix) The exit code of the first process created by Tcl 3433 on Windows was not properly reported due to an initialization 3434 problem. (SS) 3435 3436 ----------------- Released 8.0p1, 11/7/97 ----------------------- 3437 3438 11/19/97 (bug fix) Fixed bug in linsert where it sometimes accidently 3439 cleared out a shared argument list object. (BL). 3440 3441 11/19/97 (bug fix) Autoloading in namespaces was not working properly. 3442 auto_mkindex is still not really namespace aware but most common 3443 cases should now be handled properly (see init.test). (BW, DL) 3444 3445 11/20/97 (enhancement) Made the changes required by the new Apple 3446 Universal Headers V.3.0, so that Tcl will compile with CW Pro 2. 3447 3448 11/24/97 (bug fix) Fixed tests in clock test suite that needed the 3449 -gmt flag set. Thanks to Jan Nijtmans for reporting the problem. (RJ) 3450 3451 ----------------- Released 8.0p2, 11/25/97 ----------------------- 3452 3453 12/3/97 (bug fix/optimization) Removed uneeded and potentially dangerous 3454 instances of double evaluations if "if" and "expr" statements from 3455 the library files. It is recommended that unless you need a double 3456 evaluation you always use "expr {...}" instead of "expr ..." and 3457 "if {...} ..." instead of "if ... ...". It will also be faster 3458 thanks to the byte compiler. (DL) 3459 3460 ---- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ---- 3461 3462 12/8/97 (bug fix) Need to protect the newly accepted channel in an 3463 accept callback on a socket, otherwise the callback may close it and 3464 cause an error, which would cause the C code to attempt to close the 3465 now deleted channel. Bumping the refcount assures that the channel sticks 3466 around to be really closed in this case. (JL) 3467 3468 12/8/97 (bug fix) Need to protect the channel in a fileevent so that it 3469 is not deleted before the fileevent handler returns. (CS, JL) 3470 3471 12/18/97 (bug fix) In the opt argument parsing package: if the description 3472 had only flags, the "too many arguments" case was not detected. The default 3473 value was not used for the special "args" ending argument. (DL) 3474 3475 1/15/98 (improvement) Moved common part of initScript in common file. 3476 Moved windows specific initialization to init.tcl so you can initialize 3477 Tcl in windows without having to call Tcl_Init which is now only 3478 searching for init.tcl {back ported from 8.1}. (DL) 3479 3480 ---- Shipped as part of the plugin as 8.0p2Plugin2, Jan 15th 98 ---- 3481 3482 5/27/98 (bug fix) Windows socket driver did not notice new data arriving 3483 on nonblocking sockets until the event loop was entered. (SS) 3484 3485 5/27/98 (bug fix) Windows socket driver used FIONREAD, which is not 3486 supported correctly by WinSock. (SS) 3487 3488 6/9/98 (bug fix) Generic channel code failed to report readable file 3489 events on buffered data that was left behind by a gets or read that 3490 did not consume all available data. (SS) 3491 3492 6/18/98 (bug fix) Compilation of loop expressions was too aggressive 3493 and incorrectly inlined non-literal expressions. (SS) 3494 3495 6/18/98 (bug fix) "info var" and "info locals" incorrectly reported 3496 the existence of compiler temporary variables. (SS) 3497 3498 6/18/98 (bug fix) Dictionary sorting used signed character 3499 comparisons. (SS) 3500 3501 6/18/98 (bug fix) Compile procs corrupted the exception stack in some 3502 cases. (SS) 3503 3504 6/18/98 (bug fix) Array set had erratic behavior when initializing a 3505 variable from an empty value list. (SS) 3506 3507 6/18/98 (bug fix) The Windows registry package had a bad bounds check 3508 that could lead to a crash. (SS) 3509 3510 6/18/98 (bug fix) The foreach compile proc did not correctly handle 3511 non-local variable references. (SS) 3512 3513 6/25/98 (new features) Added name resolution hooks to support [incr Tcl]. 3514 There are new internal Tcl_*Resolver* APIs to add, query and remove the hooks. 3515 With this changes it should be possible to dynamically load [incr Tcl] 3516 as an extension. (MM) 3517 3518 7/1/97 (bug fix) The commands "info args, body, default, procs" did 3519 not correctly handle imported procedures. (RJ) 3520 3521 7/6/98 (improvement) pkg_mkIndex now implements the "package require" 3522 command. This makes it possible to create index files for packages 3523 that require another package and then execute code from that package in 3524 their file. Previously, this would throw an error because the required 3525 package had not been loaded. The -nopkgrequied flag is provided to 3526 revert back to the old functionality. (EMS) 3527 3528 7/6/98 (improvement) back-ported the -direct flag from 8.1 into 3529 pkg_mkIndex. This results in pkgIndex.tcl files that contain direct 3530 source or load commands instead of tclPkgSetup commands. (EMS) 3531 3532 7/6/98 (improvement) made changes to the AuxData items structures to support 3533 storage of compiled scripts on disk. Also some related minor changes in 3534 the compilation and execution engine. (EMS) 3535 3536 6/4/98 (enhancement) Added new internal routines to support inserting 3537 and deleting from the stat, access, and open-file-channel mechanisms. 3538 TclAccessInsertProc, TclStatInsertProc, & TclOpenFileChannelInsertProc 3539 insert pointers to such routines; TclAccessDeleteProc, TclStatDeleteProc, 3540 & TclOpenFileChannelDeleteProc delete pointers to such routines. See 3541 the file generic/tclIOUtils.c for more details. (SKS) 3542 3543 7/1/98 (enhancement) Added a new internal C variable 3544 tclPreInitScript. This is a pointer to a string that may hold an 3545 initialization script; If this pointer is non-NULL it is evaluated in 3546 Tcl_Init() prior to the built-in initialization script defined in the 3547 file generic/tclInitScript.h. (SKS) 3548 3549 7/6/98 (bug fix) Removed dead code in PlatformInitExitHandler so that 3550 the TCL_LIBRARY value can be safely patched in binaries. (BW) 3551 3552 7/24/98 (enhancement) Incorporated a new version of auto_mkindex that 3553 can support the [incr Tcl] class structures. This version will index 3554 all procedures in a source file, not just those where "proc" starts 3555 at the beginning of the line. If you want the old behavior, use the 3556 auto_mkindex_old procedure. (MM) 3557 3558 7/24/98 (feature change) Changed the Windows registry key to be 3559 HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, and to store the path 3560 in the default value instead of "Root". Also, this key can be 3561 specified at compile time in case Tcl is being used in a different 3562 context where it needs an alternate library path from the standard Tcl 3563 installation. (SS) 3564 3565 7/24/98 (feature change) Changed the search order for init.tcl. The 3566 tcl_library variable can now be set before calling Tcl_Init to avoid 3567 doing any searches. If it isn't set, then Tcl checks 3568 env(TCL_LIBRARY), the static value set at compile time, an install 3569 directory relative to the executable, a source directory relative to 3570 the executable, and a tcl directory relative to the source heirarchy 3571 containing the executable. See the comment at the top of 3572 generic/tclInitScript.h for more details. (SS) 3573 3574 7/27/98 (config change) Changed the use of the DBGX flag in configure.in 3575 and the makefile to be TCL_DBGX. Users of tclConfig.sh may need to pass 3576 this through their configure files with AC_SUBST. (BW) 3577 3578 729/98 (bug fix) Changed [info body] to return a copy of the body of a 3579 compiled procedure instead of the body itself, to avoid invalidation 3580 of the internal rep and loss of the byte-codes. (EMS) 3581 3582 8/5/98 (bug fix) The platform init code could walk off the end of a 3583 buffer when reading the PkgPath registry value on Windows. (SS) 3584 3585 8/5/98 (Windows makefile change) Introduced a set of macros to deal with 3586 exporting symbols when compiling DLLS on Windows. See win/README for 3587 details. (EMS) 3588 3589 8/5/98 (addendum) Added a second Windows registry key under 3590 HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, named "pkgPath". 3591 This is a multi-string value used to initialize the tcl_pkgPath 3592 variable. This is required if extension DLLs are in architecture specific 3593 subdirectories. (SS) 3594 3595 8/6/98 (new feature) Added tcl_findLibrary to init.tcl for use by 3596 extensions, including Tk. This searches in a canonical way for 3597 an extensions library directory and initialization file. (BW) 3598 3599 8/10/98 (bug fix) Imported commands used to get lost if the target 3600 of the import was redefined. Tcl_CreateCommand and Tcl_CreateObjCommand 3601 were updated to restore import links. (Note that if you rename a command, 3602 the import links move to the new name, and if you delete a command then 3603 the import links get lost. These semantics have not changed.) (MC) 3604 3605 -------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/10/98 ------ 3606 3607 9/3/98 (bug fix) Tcl_Realloc was failing under Windows because the 3608 GlobalReAlloc API was not correctly re-allocating blocks that were 3609 32k+. The fix was to use newer Win32 APIs (HeapAlloc, HeapFree, and 3610 HeapReAlloc.) (BS) 3611 3612 10/5/98 (bug fix) Fixed bug in pkg_mkIndex that caused some files that do 3613 a "package require" of packages in the Tcl libraries to give a warning like 3614 warning: "xx.tcl" provides more than one package ({xx 2.0} {yy 0.3}) 3615 and generate a broken pkgIndex.tcl file. (EMS) 3616 3617 10/5/98 (bug fix) Pkg_mkIndex was not doing a case-insensitive comparison 3618 of extensions to determine whether to load or source a file. Thus, under 3619 Windows, MYDLLNAME.DLL was sourced, and mydllname.dll loaded. (EMS) 3620 3621 10/5/98 (new feature) Created a new Tcl_Obj type, "procbody". This object's 3622 internal representation holds a pointer to a Proc structure. Extended 3623 TclCreateProc to take both strings and "procbody". (EMS) 3624 3625 10/13/98 (bug fix) The "info complete" command can now handle strings 3626 with NULLs embedded. Thanks to [email protected]field.medicine.adelaide.edu.au 3627 for providing this fix. (RJ) 3628 3629 10/13/98 (bug fix) The "lsort -dictionary" command did not properly 3630 handle some numbers starting with 0. Thanks to Richard Hipp 3631 <[email protected]> for submitting the fix to Scriptics. (RJ) 3632 3633 10/13/98 (bug fix) The function Tcl_SetListObj was creating an invalid 3634 Tcl_Obj if the list had zero elements (despite what the comments said 3635 it would do). Thanks to Sebastian Wangnick for reporting the 3636 problem. (RJ) 3637 3638 10/20/98 (new feature) Added tcl_platform(debug) element to the 3639 tcl_platform array on Windows platform. The existence of the debug 3640 element of the tcl_platform array indicates that the particular Tcl 3641 shell has been compiled with debug information. Using 3642 "info exists tcl_platform(debug)" a Tcl script can direct the 3643 interpreter to load debug versions of DLLs with the load 3644 command. (SKS) 3645 3646 10/20/98 (feature change) The Makefile and configure scripts have been 3647 changed for IRIX to build n32 binaries instead of the old 32 abi 3648 format. If you have extensions built with the o32 abi's you will need 3649 to update them to n32 for them to work with Tcl. (RJ) 3650 *** POTENTIAL INCOMPATIBILITY *** 3651 3652 10/23/98 (bug fix) tcl_findLibrary had a stray ] in one of the 3653 pathnames it searched for the initialization script. tclInitScript.h 3654 was incorrectly adding the parent of tcl_library to tcl_pkgPath. This 3655 logic was moved into init.tcl, and the initialization of auto_path was 3656 documented. Thanks to Donald Porter and Tom Silva for related 3657 patches. (BW) 3658 3659 10/29/98 (bug fix) Fixed Tcl_NotifyChannel to use Tcl_Preserve instead 3660 of Tcl_RegisterChannel so that 1) unregistered channels do not get 3661 closed after their first fileevent, and 2) errors that occur during 3662 close in a fileevent script are actually reflected by the close 3663 command. (BW) 3664 3665 10/30/98 (bug fix) Overhaul of pkg_mkIndex to deal with transitive 3666 package requires and packages split among scripts and binary files. 3667 Also fixed ommision of global for errorInfo in tcl_findLibrary. (BW) 3668 3669 11/08/98 (bug fix) Fixed the resource command to always detect 3670 the case where a file is opened a second time with the same 3671 permissions. IM claims that this will always cause the same 3672 FileRef to be returned, but in MacOS 8.1+, this is no longer the case, 3673 so we have to test for this explicitly. (JI) 3674 3675 11/10/98 (feature change) When compiling with Metrowerk's MSL, use the 3676 exit function from MSL rather than ExitToShell. This allows MSL to 3677 clean up its temporary files. Thanks to Vince Darley for this 3678 improvement. (JI) 3679 3680 ----------------- Released 8.0.4, 11/19/98 ------------------------- 3681 3682 11/20/98 (bug fix) Handle possible NULL return in TclGetStdFiles. (RJ) 3683 3684 11/20/98 (bug fix) The dltests would not build on SGI. They reported 3685 that you could not mix n32 with 032 binaries. The configure script 3686 has been modified to get the EXTRA_CFLAGS from the tcl configure 3687 script. [Bug id: 840] (RJ) 3688 3689 12/3/98 (bug fix) Windows NT creates sockets so they are inheritable 3690 by default. Fixed socket code so it turns off this bit right after 3691 creation so sockets aren't kept open by exec'ed processes. [Bug: 892] 3692 Thanks to Kevin Kenny for this fix. (SS) 3693 3694 1/11/98 (bug fix) On HP, "info sharedlibextension" was returning 3695 empty string on static apps. It now always returns ".sl". (RJ) 3696 3697 1/28/99 (configure change) Now support -pipe option on gcc. (RJ) 3698 3699 2/2/99 (bug fix) Fixed initialization problem on Windows where no 3700 searching for init.tcl would be performed if the registry keys were 3701 missing. (stanton) 3702 3703 2/2/99 (bug fix) Added support for HKEY_PERFORMANCE_DATA and 3704 HKEY_DYN_DATA keys in the "registry" command. (stanton) 3705 3706 2/2/99 (bug fix) ENOTSUP and EOPNOTSUPP clashed on some Linux 3707 variants. (stanton) 3708 3709 2/2/99 (enhancement) The "open" command has been changed to use the 3710 object interfaces. (stanton) 3711 3712 2/2/99 (bug fix) In some cases Tcl would crash due to an overflow of 3713 the exception stack resulting from a missing byte code in some 3714 expressions. (stanton) 3715 3716 2/2/99 (bug fix) Changed configure so Linux and IRIX shared libraries 3717 are linked with the system libraries. (stanton) 3718 3719 2/2/99 (bug fix) Added support for BSDI 4.x (BSD/OS-4*) to the 3720 configure script. (stanton) 3721 3722 2/2/99 (bug fix) Fixed bug where upvar could resurrect a namespace 3723 variable after the namespace had been deleted. (stanton) 3724 3725 2/2/99 (bug fix) In some cases when creating variables, the 3726 interpreter result was being modified even if the TCL_LEAVE_ERR_MSG 3727 flag was set. (stanton) 3728 3729 2/2/99 (bug fix & new feature) Changed the socket drivers to properly 3730 handle failures during an async socket connection. Added a new 3731 fconfigure option "-error" to retrieve the failure message. See the 3732 socket.n manual entry for details. (stanton) 3733 3734 2/2/99 (bug fix) Deleting a renamed interp alias could result in a 3735 panic. (stanton) 3736 3737 2/2/99 (feature change/bug fix) Changed the behavior of "file 3738 extension" so that it splits at the last period. Now the extension of 3739 a file like "foo..o" is ".o" instead of "..o" as in previous versions. 3740 *** POTENTIAL INCOMPATIBILITY *** 3741 3742 ----------------- Released 8.0.5, 3/9/99 ------------------------- 3743 3744 ======== Changes for 8.0 go above this line ======== 3745 ======== Changes for 8.1 go below this line ======== 3746 3747 6/18/97 (new feature) Tcl now supports international character sets: 3748 - All C APIs now accept UTF-8 strings instead of iso8859-1 strings, 3749 wherever you see "char *", unless explicitly noted otherwise. 3750 - All Tcl strings represented in UTF-8, which is a convenient 3751 multi-byte encoding of Unicode. Variable names, procedure names, 3752 and all other values in Tcl may include arbitrary Unicode characters. 3753 For example, the Tcl command "string length" returns how many 3754 Unicode characters are in the argument string. 3755 - For Java compatibility, embedded null bytes in C strings are 3756 represented as \xC080 in UTF-8 strings, but the null byte at the end 3757 of a UTF-8 string remains \0. Thus Tcl strings once again do not 3758 contain null bytes, except for termination bytes. 3759 - For Java compatibility, "\uXXXX" is used in Tcl to enter a Unicode 3760 character. "\u0000" through "\uffff" are acceptable Unicode 3761 characters. 3762 - "\xXX" is used to enter a small Unicode character (between 0 and 255) 3763 in Tcl. 3764 - Tcl automatically translates between UTF-8 and the normal encoding for 3765 the platform during interactions with the system. 3766 - The fconfigure command now supports a -encoding option for specifying 3767 the encoding of an open file or socket. Tcl will automatically 3768 translate between the specified encoding and UTF-8 during I/O. 3769 See the directory library/encoding to find out what encodings are 3770 supported (eventually there will be an "encoding" command that 3771 makes this information more accessible). 3772 - There are several new C APIs that support UTF-8 and various encodings. 3773 See Utf.3 for procedures that translate between Unicode and UTF-8 3774 and manipulate UTF-8 strings. See Encoding.3 for procedures that 3775 create new encodings and translate between encodings. See 3776 ToUpper.3 for procedures that perform case conversions on UTF-8 3777 strings. 3778 3779 9/18/97 (enhancement) Literal objects are now shared by the ByteCode 3780 structures created when compiled different scripts. This saves up to 45% 3781 of the total memory needed for all literals. (BL) 3782 3783 9/24/97 (bug fixes) Fixed Tcl_ParseCommand parsing of backslash-newline 3784 sequences at start of command words. Suppressed Tcl_EvalDirect error logging 3785 if non-TCL_OK result wasn't an error. (BL) 3786 3787 10/17/97 (feature enhancement) "~username" now refers to the users' home 3788 directory on Windows (previously always returned failure). (CCS) 3789 3790 10/20/97 (implementation change) The Tcl parser has been completely rewritten 3791 to make it more modular. It can now be used to parse a script without actually 3792 executing it. The APIs for the new parser are not correctly exported, but 3793 they will eventually be exported and augmented with Tcl commands so that 3794 Tcl scripts can parse other Tcl scripts. (JO) 3795 3796 10/21/97 (API change) Added "flags" argument to Tcl_EvalObj, removed 3797 Tcl_GlobalEvalObj procedure. Added new procedures Tcl_Eval2 and 3798 Tcl_EvalObjv. (JO) 3799 *** POTENTIAL INCOMPATIBILITY *** 3800 3801 10/22/97 (API change) Renamed Tcl_ObjSetVar2 and Tcl_ObjGetVar2 to 3802 Tcl_SetObjVar2 and Tcl_GetObjVar2 (for consistency with other C APIs) 3803 and changed the name arguments to be strings instead of objects. (JO) 3804 *** POTENTIAL INCOMPATIBILITY *** 3805 3806 10/27/97 (enhancement) Bytecode compiler rewritten to use the new Tcl 3807 parser. (BL) 3808 3809 11/3/97 (New routines) Added Tcl_AppendObjToObj, which appends the 3810 string rep of one Tcl_Obj to another. Added Tcl_GetIndexFromObjStruct, 3811 which is similar to Tcl_GetIndexFromObj, except that you can give an 3812 offset between strings. This allows Tcl_GetIndexFromObjStruct to be 3813 called with a table of records which have strings in them. (SRP) 3814 3815 12/4/97 (enhancement) New Tcl expression parser added. Added new procedure 3816 Tcl_ParseExpr and new token types TCL_TOKEN_SUB_EXPR and 3817 TCL_TOKEN_OPERATOR. Expression compiler is reimplemented to use this 3818 parser. (BL) 3819 3820 12/9/97 (bug fix) Tcl_EvalObj() increments/decrements the refcount of the 3821 script object to prevent the object from deleting itself while in the 3822 middle of being evaluated. (CCS) 3823 3824 12/9/97 (bug fix) Memory leak in Tcl_GetsObjCmd(). (CCS) 3825 3826 12/11/97 (bug fix) Environment array leaked memory when compiled with 3827 Visual C++. (SS) 3828 3829 12/11/97 (bug fix) File events and non-blocking I/O did not work on 3830 pipes under Windows. Changed to use threads to achieve non-blocking 3831 behavior. (SS) 3832 3833 12/18/97 (bug fixes) Fixed segfault in "namespace import"; importing a 3834 procedure that causes a cycle now returns an error. Modified "info procs", 3835 "info args", "info body", and "info default" to return information about 3836 imported procedures as well as procedures defined in a namespace. (BL) 3837 3838 12/19/97 (enhancement) Added new Tcl_GetString() procedure that can be used 3839 in place of Tcl_GetStringFromObj() if the string representation's length 3840 isn't needed. (BL) 3841 3842 12/18/97 (bug fix) In the opt argument parsing package: if the description 3843 had only flags, the "too many arguments" case was not detected. The default 3844 value was not used for the special "args" ending argument. (DL) 3845 3846 1/7/98 (clean up) Moved everything not absolutly necessary out of init.tcl 3847 procs now in auto.tcl and package.tcl can be autoloaded if needed. (DL) 3848 3849 1/7/98 (enhancement) tcltest made at install time will search for it's 3850 init.tcl where it is, even when using virtual path compilation. (DL) 3851 3852 1/8/98 (os bug workaround) when needed, using a replacement for memcmp so 3853 string compare "char with high bit set" "char w/o high bit set" returns 3854 the expected value on all platforms. (DL) 3855 3856 1/8/98 (unix portability/configure) building from .../unix/targetName/ 3857 subdirectories and simply using "../configure" should now work fine. (DL) 3858 3859 1/14/98 (enhancement) Added new regular expression package that 3860 supports AREs, EREs, and BREs. The new package includes new escape 3861 characters, meta-syntax, and character classes inside brackets. 3862 Regexps involving backslashes may behave differently. (MH) 3863 *** POTENTIAL INCOMPATIBILITY *** 3864 3865 1/16/98 (os workaround) Under windows, "file volume" was causing chatter 3866 and/or several seconds of hanging when querying empty floppy drives. 3867 Changed implementation to call an empirically-derived function that doesn't 3868 cause this. (CCS) 3869 3870 1/16/98 (enhancement) Converted regular expressions to a Tcl_Obj type so 3871 their compiled form gets cached automatically. Reduced NSUBEXP from 100 3872 to 20. (BW) 3873 3874 1/16/98 (documentation) Change unclear documentation and comments for 3875 functions like Tcl_TranslateFileName() and Tcl_ExternalToUtfDString(). Now 3876 it explicitly says they take an uninitialized or free DString. A DString 3877 that is "empty" or "not holding anything" could have been interpreted as one 3878 currently with a zero length, but with a large dynamically allocated buffer. 3879 (CCS) 3880 3881 ----------------- Released 8.1a1, 1/22/98 ----------------------- 3882 3883 1/28/98 (new feature) Added a "-direct" optional flag to pkg_mkIndex 3884 to generate direct loading package indexes (such those you need 3885 if you use namespaces and plan on using namespace import just after 3886 package require). pkg_mkIndex still has limitations regarding 3887 package dependencies but errors are now ignored and with -direct, correct 3888 package indexes can be generated even if there are dependencies as long 3889 as the "package provide" are done early enough in the files. (DL) 3890 3891 1/28/98 (enhancement) Performance tuning of regexp and regsub. (CCS) 3892 3893 1/28/98 (bug fix) regexp and regsub with "-indices" returned the byte-offsets 3894 of the characters in the UTF-8 representation, not the character offsets 3895 themselves. (CCS) 3896 3897 1/28/98 (bug fix) "clock format 0 -format %Z -gmt 1" would return the local 3898 timezone string instead of "GMT" on Solaris and Windows. 3899 3900 1/28/98 (bug fix) Restore tty settings when closing serial device on Unix. 3901 This is good behavior when closing real serial devices, essential when 3902 closing the pseudo-device /dev/tty because the user's terminal settings 3903 would be left useless, in raw mode, when tcl quit. (CCS) 3904 3905 1/28/98 (bug fix) Tcl_OpenCommandChannel() was modifying the contents of the 3906 argv array passed to it, causing problems for any caller that wanted to 3907 continue to use the argv array after calling Tcl_OpenCommandChannel(). (CCS) 3908 3909 2/1/98 (bug fix) More bugs with %Z in format string argument to strftime(): 3910 1. Borland always returned empty string. 3911 2. MSVC always returned the timezone string for the current time, not the 3912 timezone string for the specified time. 3913 3. With MSVC, "clock format 0 -format %Z -gmt 1" would return "GMT" the first 3914 time it was called, but would return the current timezone string on all 3915 subsequent calls. (CCS) 3916 3917 2/1/98 (bug fix) "file stat" was broken on Windows. 3918 1. "file stat" of a root directory (local or network) or a relative path that 3919 resolved to a root directory (c:. when in pwd was c:/) was returning error. 3920 2. "file stat" on a regular file (S_IFREG), the st_mode was sign extended to 3921 a negative int if the platform-dependant type "mode_t" was declared as a 3922 short instead of an unsigned short. 3923 3. "file stat" of a network directory, the st_dev was incorrectly reported 3924 as the id of the last accessed local drive rather than the id of the 3925 network drive. (CCS) 3926 3927 2/1/98 (bug fix) "file attributes" of a relative path that resolved to a 3928 root directory was returning error. (CCS) 3929 3930 2/1/98 (bug fix) Change error message when "file attribute" could not 3931 determine the attributes for a file. Previously it would return different 3932 error messages on Unix vs. Windows vs. Mac. (CCS) 3933 3934 2/4/98 (bug fixes) Fixed several instances of bugs where the parser/compiler 3935 would reach outside the range of allocated memory. Improved the array 3936 lookup algorithm in set compilation. (DL) 3937 3938 2/5/98 (change) The TCL_PARSE_PART1 flag for Set/Get(Obj)Var2 C APIs is now 3939 deprecated and ignored. The part1 is always parsed when the part2 argument 3940 is NULL. This is to avoid a pattern of errors for extension writers converting 3941 from string based Tcl_SetVar() to new Tcl_SetObjVar2() and who could easily 3942 forget to provide the flag and thus get code working for normal variables 3943 but not for array elements. The performance hit is minimal. A side effect 3944 of that change is that is is no longer possible to create scalar variables 3945 that can't be accessed by tcl scripts because of their invalid name 3946 (ending with parenthesis). Likewise it is also parsed and checked to 3947 ensure that you don't create array elements of array whose name is a valid 3948 array element because they would not be accessible from scripts anyway. 3949 Note: There is still duplicate array elements parsing code. (DL) 3950 *** POTENTIAL INCOMPATIBILITY *** 3951 3952 2/11/98 (bug fix) Sharing objects between interps, such as by "interp 3953 eval" or "send" could cause a crash later when dereferencing an interp 3954 that had been deleted, given code such as: 3955 set a {set x y} 3956 interp create foo 3957 interp eval foo $a 3958 interp delete foo 3959 unset a 3960 Interp "foo" was gone, but "a" had a internal rep consisting of bytecodes 3961 containing a dangling pointer to "foo". Unsetting "a" would attempt to 3962 return resources back to "foo", causing a crash as random memory was 3963 accessed. The lesson is that that if an object's internal rep depends on 3964 an interp (or any other data structure) it must preserve that data in 3965 some fashion. (CCS) 3966 3967 2/11/98 (enhancement) The "interp" command was returning inconsistent error 3968 messages when the specified slave interp could not be found. (CCS) 3969 3970 2/11/98 (bug fix) Result codes like TCL_BREAK and TCL_CONTINUE were not 3971 propagating through the master/slave interp boundaries, such as "interp 3972 eval" and "interp alias". TCL_OK, TCL_ERROR, and non-standard codes like 3973 teh integer 57 work. There is still a question as to whether TCL_RETURN 3974 can/should propagate. (CCS) 3975 3976 2/11/98 (bug fix) TclCompileScript() was derefering memory 1 byte before 3977 start of the string to compile, looking for ']'. (CCS,DL) 3978 3979 2/11/98 (bug fix) Tcl_Eval2() was derefering memory 1 byte before start 3980 of the string to eval, looking for ']'. (CCS,DL) 3981 3982 2/11/98 (bug fix) Compiling "set a(b" was running off end of string. (CCS,DL) 3983 3984 2/11/98 (bug fix) Windows initialization code was dereferencing 3985 uninitialized memory if TCL_LIBRARY environment didn't exist. (CCS) 3986 3987 2/11/98 (bug fix) Windows "registry" command was dereferencing 3988 uninitialized memory when constructing the $errorCode for a failed 3989 registry call. (CCS) 3990 3991 2/11/98 (enhancement) Eliminate the TCL_USE_TIMEZONE_VAR definition from 3992 configure.in, because it was the same information as the already existing 3993 HAVE_TM_ZONE definition. The lack of HAVE_TM_ZONE is used to work around a 3994 Solaris and Windows bug where "clock format [clock sec] -format %Z -gmt 1" 3995 produces the local timezone string instead of "GMT". (CCS) 3996 3997 2/11/98 (bug fix) Memleaks and dereferencing of uninitialized memory in 3998 regexp if an error occurred while compiling a regular expression. (CCS). 3999 4000 2/18/98 (new feature) Added mutexes and thread local storage in order 4001 to make Tcl thread safe. For testing purposes, there is a testthread 4002 command that creates a new thread and an interpreter inside it. See 4003 thread.test for examples, but this script-level interface is not fixed. 4004 Each thread has its own notifier instance to manage its own events, 4005 and threads can post messages to each other's message queue. 4006 This uses pthreads on UNIX, and native thread support on other platforms. 4007 You enable this by configuring with --enable-threads. Note that at 4008 this time *Tk* is still not thread safe. Special thanks to 4009 Richard Hipp: his earlier implementation inspired this work. (BW, SS, JI) 4010 4011 2/18/98 (hidden feature change) The way the env() array is shared among 4012 interpreters changed. Updates to env used to trigger write traces in 4013 other interpreters. This undocumented feature is no longer implemented. 4014 Instead, variable tracing is used to keep the C-level environ array in sync 4015 with the Tcl-level env array. This required adding TCL_TRACE_ARRAY support 4016 to Tcl_TraceVar2 so that array names works properly. (BW) 4017 *** POTENTIAL INCOMPATIBILITY *** 4018 4019 2/18/98 (enhancement) Conditional compilation for unix systems (e.g., 4020 IRIX, SCO) that use f_bsize instead of st_blksize to determine disk block 4021 size. (CCS) 4022 4023 2/23/98 (bug fix) Fixed the emulation of polling selects in the threaded 4024 version of the Unix notifier. The bug was showing up on a multiprocessor 4025 as starvation of the notifier thread. (BW) 4026 4027 ----------------- Released 8.1a2, Feb 23 1998 ----------------------- 4028 4029 9/22/98 (bug fix) Changed the value of TCL_TRACE_ARRAY so it no longer 4030 conflicts with the deprecated TCL_PARSE_PART1 flag. This should 4031 improve portability of C code. (stanton) 4032 4033 10/6/98 (bug fix) The compile procedure for "if" incorrectly attempted 4034 to match against the literal string "if", resulting in a stack 4035 overflow when "::if" was compiled. It also would incorrectly accept 4036 "if" instead of "elsif" in later clauses. (stanton) 4037 4038 10/15/98 (new feature) Added a "totitle" subcommand to the "string" 4039 command to convert strings to capitalize the first character of a string 4040 and lowercase all of the other characters. (stanton) 4041 4042 10/15/98 (bug fix) Changed regexp and string commands to properly 4043 handle case folding according to the Unicode character 4044 tables. (stanton) 4045 4046 10/21/98 (new feature) Added an "encoding" command to facilitate 4047 translations of strings between different character encodings. See 4048 the encoding.n manual entry for more details. (stanton) 4049 4050 11/3/98 (bug fix) The regular expression character classification 4051 syntax now includes Unicode characters in the supported 4052 classes. (stanton) 4053 4054 11/6/98 (bug fix) Variable traces were causing crashes when upvar 4055 variables went out of scope. [Bug: 796] (stanton) 4056 4057 11/9/98 (bug fix) "format" now correctly handles multibyte characters 4058 in %s format strings. (stanton) 4059 4060 11/10/98 (new feature) "regexp" now accepts three new switches 4061 ("-line", "-lineanchor", and "-linestop") that control how regular 4062 expressions treat line breaks. See the regexp manual entry for more 4063 details. (stanton) 4064 4065 11/17/98 (bug fix) "scan" now correctly handles Unicode 4066 characters. (stanton) 4067 4068 11/17/98 (new feature) "scan" now supports XPG3 position specifiers 4069 and the "%n" conversion character. See the "scan" manual entry for 4070 more details. (stanton) 4071 4072 11/17/98 (bug fix) The Tcl memory allocator now returns 8-byte aligned 4073 chunks of memory which improves performance on Windows and avoids 4074 crashes on other platforms. [Bug: 834] (stanton) 4075 4076 11/23/98 (bug fix) Applied various regular expression performance bug 4077 fixes supplied by Henry Spencer. (stanton) 4078 4079 11/30/98 (bug fix) Fixed various thread related race conditions. [Bug: 4080 880 & 607] (stanton) 4081 4082 11/30/98 (bug fix) Fixed a number of memory overflow and leak 4083 bugs. [Bug: 584] (stanton) 4084 4085 12/1/98 (new feaure) Added support for Korean encodings. (stanton) 4086 4087 12/1/98 (feature change) Changed the Tcl_EvalObjv interface to remove 4088 the string and length arguments. 4089 *** POTENTIAL INCOMPATIBILITY with previous alpha releases *** 4090 4091 12/2/98 (bug fix) Fixed various bugs related to line feed 4092 translation. [Bug: 887] (stanton) 4093 4094 12/4/98 (new feature) Added a message catalog facility to help with 4095 localizing Tcl scripts. Thanks to Mark Harrison for contributing the 4096 initial implementation of the "msgcat" package. (stanton) 4097 4098 12/7/98 (bug fix) The memory allocator was failing to update the 4099 block list for large memory blocks that were reallocated into a 4100 different address. [Bug: 933] (stanton) 4101 4102 ----------------- Released 8.1b1, Dec 10 1998 ----------------------- 4103 4104 12/22/98 (performance improvement) Improved the -command option of the 4105 lsort command to better use the object system for improved 4106 performance (about 5x speed up). Thanks to Syd Polk for suppling the 4107 patch. [RFE: 726] (rjohnson) 4108 4109 2/10/99 (bug fix) Restored the Tcl_ObjSetVar2/Tcl_ObjGetVar2 4110 interfaces from 8.0 and renamed the Tcl_GetObjVar2/Tcl_SetObjVar2 4111 interfaces to Tcl_GetVar2Ex and Tcl_SetVar2Ex. This should provide 4112 better compatibility with 8.0. (stanton) 4113 *** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** 4114 4115 2/10/99 (bug fix) Made the eval interfaces compatible with 8.0 by 4116 renaming Tcl_EvalObj to Tcl_EvalObjEx, renaming Tcl_Eval2 to 4117 Tcl_EvalEx and restoring Tcl_EvalObj and Tcl_GlobalEvalObj interfaces 4118 so they match Tcl 8.0. (stanton) 4119 *** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** 4120 4121 2/25/99 (bug fix/new feature) On Windows, the channel drivers for 4122 consoles and serial ports now completely support file events. (redman) 4123 4124 3/5/99 (bug fix) Integrated patches to fix various configure problems 4125 that affected HP-UX-11, 64-bit IRIX, Linux, and Solaris. (stanton) 4126 4127 3/9/99 (bug fix) Integrated various AIX related patches to improve 4128 support for shared libraries. (stanton) 4129 4130 3/9/99 (new feature) Added tcl_platform(user) to provide a portable 4131 way to get the name of the current user. (welch) 4132 4133 3/9/99 (new feature) Integrated the stub library mechanism contributed 4134 by Jan Nijtmans, Paul Duffin, and Jean-Claude Wippler. This feature 4135 should make it possible to write extensions that support multiple 4136 versions of Tcl simultaneously. It also makes it possible to 4137 dynamically load extensions into statically linked interpreters. This 4138 patch includes the following changes: 4139 - Added a Tcl_InitStubs() interface 4140 - Added Tcl_PkgProvideEx, Tcl_PkgRequireEx, Tcl_PkgPresentEx, 4141 and Tcl_PkgPresent. 4142 - Added va_list versions of all VARARGS functions so they can be 4143 invoked from wrapper functions. 4144 See the manual for more information. (stanton) 4145 4146 4147 3/10/99 (feature change) Replaced Tcl_AlertNotifier with 4148 Tcl_ThreadAlert since the Tcl_AlertNotifier function relied on passing 4149 internal data structures. (stanton) 4150 *** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** 4151 4152 3/10/99 (new feature) Added a Tcl_GetVersion API to make it easier to 4153 check the Tcl version and patch level from C. (redman) 4154 4155 3/14/99 (feature change) Tried to unify the TclpInitLibrary path 4156 routines to look in similar places from Windows to UNIX. The new 4157 library search path is: TCL_LIBRARY, TCL_LIBRARY/../tcl8.1, relative 4158 to DLL (Windows Only) relative to installed executable, relative to 4159 develop executable, and relative to compiled-in in location (UNIX 4160 Only.) This fix included: 4161 - Defining a TclpFindExecutable 4162 - Moving Tcl_FindExecutable to a common area in tclEncoding.c 4163 - Modifying the TclpInitLibraryPath routines. 4164 (surles) 4165 4166 3/14/99 (feature change) Added hooks for TclPro Wrapper to initialize 4167 the location of the encoding files and libraries. This fix included: 4168 - Adding the TclSetPerInitScript routine. 4169 - Modifying the Tcl_Init routines to evaluate the non-NULL 4170 pre-init script. 4171 - Adding the Tcl_SetdefaultEncodingDir and Tcl_GetDefaultEncodingDir 4172 routines. 4173 - Modifying the TclpInitLibrary routines to append the default 4174 encoding dir. 4175 (surles) 4176 4177 3/14/99 (feature change) Test suite now uses "test" namespace to 4178 define the test procedure and other auxiliary procedures as well as 4179 global variables. 4180 - Global array testConfige is now called ::test::testConfig. 4181 - Global variable VERBOSE is now called ::test::verbose, and 4182 ::test::verbose no longer works with numerical values. We've 4183 switched to a bitwise character string. You can set 4184 ::test::verbose by using the -verbose option on the Tcl command 4185 line. 4186 - Global variable TESTS is now called ::test::matchingTests, and 4187 can be set on the Tcl command line via the -match option. 4188 - There is now a ::test::skipTests variable (works similarly to 4189 ::test::matchTests) that can be set on the Tcl command line via 4190 the -match option. 4191 - The test suite can now be run in any working directory. When 4192 you run "make test", the working directory is nolonger switched 4193 to ../tests. 4194 (hirschl) 4195 *** POTENTIAL INCOMPATIBILITY *** 4196 4197 --------------- Released 8.1b2, March 16, 1999 ---------------------- 4198 4199 3/18/99 (bug fix) Fixed missing/incorrect characters in shift-jis table 4200 (stanton) 4201 4202 3/18/99 (feature change) The glob command ignores the 4203 FS_CASE_IS_PRESERVED bit on file systesm and always returns 4204 exactly what it gets from the system. (stanton) 4205 *** POTENTIAL INCOMPATIBILITY *** 4206 4207 3/19/99 (new feature) Added support for --enable-64bit. For now, 4208 this is only supported on Solaris 7 64bit (SunOS 5.7) using the Sun 4209 compiler. (redman) 4210 4211 3/23/99 (bug fix) Fixed fileevents and gets on Windows consoles and 4212 serial devices so that non-blocking channels do not block on partial 4213 input lines. (redman) 4214 4215 3/23/99 (bug fix) Added a new Tcl_ServiceModeHook interface. 4216 This is used on Windows to avoid the various problems that people 4217 have been seeing where the system hangs when tclsh is running 4218 outside of the event loop. As part of this, renamed 4219 TclpAlertNotifier back to Tcl_AlertNotifier since it is public. 4220 (stanton) 4221 4222 3/23/99 (feature change) Test suite now uses "tcltest" namespace to 4223 define the test procedure and other auxiliary procedures as well as 4224 global variables. The previously chosen "test" namespace was thought 4225 to be too generic and likely to create conflits. 4226 (hirschl) 4227 *** POTENTIAL INCOMPATIBILITY *** 4228 4229 3/24/99 (bug fix) Make sockets thread safe on Windows. 4230 (redman) 4231 4232 3/24/99 (bug fix) Fix cases where expr would incorrect return 4233 a floating point value instead of an integer. (stanton) 4234 4235 3/25/99 (bug fix) Added ASCII to big5 and gb2312 encodings. 4236 (stanton) 4237 4238 3/25/99 (feature change) Changed so aliases are invoked at current 4239 scope in the target interpreter instead of at the global scope. This 4240 was an incompatibility introduced in 8.1 that is being removed. 4241 (stanton) 4242 *** POTENTIAL INCOMPATIBILITY with previous beta releases *** 4243 4244 3/26/99 (feature change) --enable-shared is now the default and build 4245 Tcl as a shared library; specify --disable-shared to build a static Tcl 4246 library and shell. 4247 *** POTENTIAL INCOMPATIBILITY *** 4248 4249 3/29/99 (bug fix) Removed the stub functions and changed the stub 4250 macros to just use the name without params. Pass &tclStubs into the 4251 interp (don't use tclStubsPtr because of collisions with the stubs on 4252 Solaris). (redman) 4253 4254 3/30/99 (bug fix) Loadable modules are now unloaded at the last 4255 possible moment during Tcl_Finalize to fix various exit-time crashes. 4256 (welch) 4257 4258 3/30/99 (bug fix) Tcl no longer calls setlocale(). It looks at 4259 env(LANG) and env(LC_TYPE) instead. (stanton) 4260 4261 4/1/99 (bug fix) Fixed the Ultrix multiple symbol definition problem. 4262 Now, even Tcl includes a copy of the Tcl stub library. (redman) 4263 4264 4/1/99 (bug fix) Internationalized the registry package. 4265 4266 4/1/99 (bug fix) Changed the implemenation of Tcl_ConditionWait and 4267 Tcl_ConditionNotify on Windows. The new algorithm eliminates a race 4268 condition and was suggested by Jim Davidson. (welch) 4269 4270 4/2/99 (new apis) Made various Unicode utility functions public. 4271 Tcl_UtfToUniCharDString, Tcl_UniCharToUtfDString, Tcl_UniCharLen, 4272 Tcl_UniCharNcmp, Tcl_UniCharIsAlnum, Tcl_UniCharIsAlpha, 4273 Tcl_UniCharIsDigit, Tcl_UniCharIsLower, Tcl_UniCharIsSpace, 4274 Tcl_UniCharIsUpper, Tcl_UniCharIsWordChar, Tcl_WinUtfToTChar, 4275 Tcl_WinTCharToUtf (stanton) 4276 4277 4/2/99 (feature change) Add new DDE package and removed the Tk 4278 send command from the Windows version. Changed DDE-based send 4279 code into "dde eval" command. The DDE package can be loaded 4280 into tclsh, not just wish. Windows only. (redman) 4281 4282 4/5/99 (bug fix) Changed safe-tcl so that the encoding command 4283 is an alias that masks out the "encoding system" subcommand. 4284 (redman) 4285 4286 4/5/99 (bug fix) Configure patches to improve support for 4287 OS/390 and BSD/OS 4.*. (stanton) 4288 4289 4/5/99 (bug fix) Fixed crash in the clock command that occurred 4290 with negative time values in timezones east of GMT. (stanton) 4291 4292 4/6/99 (bug fix) Moved the "array set" C level code into a common 4293 routine (TclArraySet). The TclSetupEnv routine now uses this API to 4294 create an env array w/ no elements. This fixes the bug caused when 4295 every environ varaible is removed, and the Tcl env variable is 4296 synched. If no environ vars existed, the Tcl env var would never be 4297 created. (surles) 4298 4299 4/6/99 (bug fix) Made the Env module I18N compliant. (surles) 4300 4301 4/6/99 (bug fix) Changed the FindVariable routine to TclpFindVariable, 4302 that now does a case insensitive string comparison on Windows, and not 4303 on UNIX. (surles) 4304 4305 --------------- Released 8.1b3, April 6, 1999 ---------------------- 4306 4307 4/9/99 (bug fix) Fixed notifier deadlock situation when the pipe used 4308 to talk back notifier thread is filled with data. Found as a result of the 4309 focus.test for Tk hanging. (redman) 4310 4311 4/13/99 (bug fix) Fixed bug where socket -async combined with 4312 fileevent for writing did not work under Windows NT. (redman) 4313 4314 4/13/99 (encoding fix) Restored the double byte definition of GB2312 4315 and added the EUC-CN encoding. EUC-CN is a variant of GB2312 that 4316 shifts the characters into bytes with the high bit set and includes 4317 ASCII as a subset. (stanton) 4318 4319 4/27/99 (bug fix) Added 'extern "C" {}' block around the stub table 4320 pointer declaration so the stub library can be used from C++. (stanton) 4321 4322 --------------- Released 8.1 final, April 29, 1999 ---------------------- 4323 4324 4/22/99 (bug fix) Changed Windows NT socket implementation to avoid 4325 creating a communication window. This avoids the problem where the 4326 system hangs waiting for tclsh to respond to a system-wide synchronous 4327 broadcast (e.g. if you change system colors). (redman) 4328 4329 4/22/99 (bug fix) Added call to TclWinInit from TclpInitPlatform when 4330 building a static library since DllMain will not be invoked. This 4331 could break old code that explicitly called TclWinInit, but should be 4332 simpler in the long run. (stanton) 4333 *** POTENTIAL INCOMPATIBILITY *** 4334 4335 4/23/99 (bug fix) Added support for the koi8-r Cyrillic 4336 encoding. [Bug: 1771] (stanton) 4337 4338 4/28/99 (bug fix) Changed internal Tcl_Obj usage to avoid freeing the 4339 internal representation after the string representation has been 4340 freed. This makes it easier to debug extensions. (stanton) 4341 4342 4/30/99 (bug fix) Fixed a memory leak in CommandComplete. (stanton) 4343 4344 5/3/99 (bug fix) Fixed a bug where the Tcl_ObjType was not being set 4345 in a duplicated Tcl_Obj. [Bug: 1975, 2047] (stanton) 4346 4347 5/3/99 (bug fix) Changed Tcl_ParseCommand to avoid modifying eval'ed 4348 strings that are already null terminated. [Bug: 1793] (stanton) 4349 4350 5/3/99 (new feature) Applied Jeff Hobbs's string patch which includes 4351 the following changes: 4352 - added new subcommands: equal, repeat, map, is, replace 4353 - added -length option to "string compare|equal" 4354 - added -nocase option to "string compare|equal|match" 4355 - string and list indices can be an integer or end?-integer?. 4356 - added optional first and last index args to string toupper, et al. 4357 See the string.n manual entry for more details about the new string 4358 features. [Bug: 1845] (stanton) 4359 4360 5/6/99 (new feature) Added Tcl_UtfNcmp and Tcl_UtfNcasecmp to make Utf 4361 string comparision easier. (stanton) 4362 4363 5/7/99 (bug fix) Improved OS/390 support. [Bug: 1976, 1997] (stanton) 4364 4365 5/12/99 (bug fix) Changed Windows initialization code to avoid using 4366 GetUserName system call in favor of the env(USERNAME) variable. This 4367 provides a significant startup speed improvement. (stanton) 4368 4369 5/12/99 (bug fix) Replaced the per-interpreter regexp cache with a 4370 per-thread cache. Changed the Regexp object to take advantage of this 4371 extra cache. Added a reference count to the TclRegexp type so regexps 4372 can be shared by multiple objects. Removed the per-interp regexp cache 4373 from the interpreter. Now regexps can be used with no need for an 4374 interpreter. This set of changes should provide significant speed 4375 improvements for many Tcl scripts. [Bug: 1063] (stanton) 4376 4377 5/14/99 (bug fix) Durining initialization on Unix, Tcl now extracts the 4378 encoding subfield from the LANG/LC_ALL environment variables in cases 4379 where the locale is not found in the built-in locale table. It also 4380 attempts to initialize the locale subsystem so X11 is happy. [Bug: 1989] 4381 (stanton) 4382 4383 5/14/99 (bug fix) Applied the patch to fix 100-year and 400-year 4384 boundaries in leap year code, from Isaac Hollander. [Bug: 2066] (redman) 4385 4386 5/14/99 (bug fix) Fixed a crash caused by a failure to reset the result 4387 before evaluating the test expression in an uncompiled for 4388 statement. (stanton) 4389 4390 5/18/99 (bug fix) Modified initialization code on Windows to avoid 4391 inherenting closed or invalid channels. If the standard input is 4392 anything other than a console, file, serial port, or pipe, then we fall 4393 back to the standard Tk window console. (stanton) 4394 4395 5/19/99 (bug fix) Added an extern "C" block around the entire tcl.h 4396 header file to avoid C++ linkage issues. (redman) 4397 4398 5/19/99 (new feature) Applied Jeff Hobb's patch to add 4399 Tcl_StringCaseMatch to support case insensitive glob style matching and 4400 Tcl_UniCharIs* character classification functions. (stanton) 4401 4402 5/20/99 (bug fix) Added the directory containing the executuble and the 4403 ../lib directory relative to that to the auto_path variable. (redman) 4404 4405 --------------- Released 8.1.1, May 25, 1999 ---------------------- 4406 4407 5/21/99 (bug fix) Fixed launching command.com on Win95/98, no longer 4408 hangs. [Bug: 2105] (redman) 4409 4410 5/28/99 (bug fix) Fixed bug where dde calls were being passed an 4411 invalid dde handle. [Bug: 2124] (stanton) 4412 4413 6/1/99 (bug fix) Small configure.in patches. [Bug: 2121] (stanton) 4414 4415 6/1/99 (bug fix) Applied latest regular expression patches to fix an 4416 infinite loop bug and add support for testing whether a string could 4417 match with additional input. [Bug: 2117] (stanton) 4418 4419 6/2/99 (bug fix) Fixed incorrect computation of relative ordering in 4420 Utf case-insensitive comparison. [Bug: 2135] (stanton) 4421 4422 6/3/99 (bug fix) Fxied bug where string equal/compare -nocase 4423 reported wrong result on null strings. [Bug: 2138] (stanton) 4424 4425 6/4/99 (new feature) Windows build now uses Cygwin tools plus GNU 4426 make and autoconf to build static/dynamic and debug/nodebug. (stanton) 4427 4428 6/7/99 (new feature) Optimized string index, length, range, and 4429 append commands. Added a new Unicode object type. (hershey) 4430 4431 6/8/99 (bug fix) Rolled back Windows socket driver to 8.1.0 4432 version. (stanton) 4433 4434 6/9/99 (new feature) Added Tcl_RegExpMatchObj and Tcl_RegExpGetInfo 4435 to public Tcl API, these functions are needed by Expect. Changed 4436 tools/genStubs.tcl to always write output in LF mode. (stanton) 4437 4438 6/14/99 (new feature) Merged string and Unicode object types. Added 4439 new public Tcl API functions: Tcl_NewUnicodeObj, Tcl_SetUnicodeObj, 4440 Tcl_GetUnicode, Tcl_GetUniChar, Tcl_GetCharLength, Tcl_GetRange, 4441 Tcl_AppendUnicodeToObj. (hershey) 4442 4443 6/16/99 (new feature) Changed to conform to TEA specification, added 4444 tcl.m4 and aclocal.m4 macro libraries for configure. (wart) 4445 4446 6/17/99 (new feature) Added new regexp interfaces: -expanded, -line, 4447 -linestop, and -lineanchor switches. Renamed Tcl_RegExpMatchObj to 4448 Tcl_RegExpExecObj and added new Tcl_RegExpMatchObj that is equivalent 4449 to Tcl_RegExpMatch. Added public macros for regexp flags. Added 4450 REG_BOSONLY flag to allow Expect to iterate through a string and only 4451 find matches that start at the current position within the 4452 string. (stanton) 4453 4454 6/21/99 (bug fix) Fixed memory leak in TclpThreadCreate where thread 4455 attributes were not being released. [Bug: 2254] (stanton) 4456 4457 6/23/99 (new feature) Updated Unicode character tables to reflect 4458 Unicode 2.1 data. (stanton) 4459 4460 6/25/99 (new feature) Fixed bugs in non-greedy quantifiers for regular 4461 expression code. (stanton) 4462 4463 6/25/99 (new feature) Added initial implementation of new Tcl test 4464 harness package. Modified test files to use new tcltest package. 4465 (jenn) 4466 4467 6/26/99 (new feature) Applied patch from Peter Hardie to add poke 4468 command to dde and changed the dde package version number to 4469 1.1. (redman) 4470 4471 6/28/99 (bug fix) Applied patch from Peter Hardie to fix problem in 4472 Tcl_GetIndexFromObj() when the key being passed is the empty string. 4473 [Bug: 1738] (redman) 4474 4475 6/29/99 (new feature) Added options to tcltest package: -preservecore, 4476 -limitconstraints, -help, -file, -notfile, and flags. (jenn) 4477 4478 7/3/99 (new feature) Changed parsing of variable names to allow empty 4479 array names. Now "$(foo)" is a variable reference. Previously you 4480 had to use something line $::(foo), which is slower. This change was 4481 requested by Jean-Luc Fontaine for his STOOOP package. (welch) 4482 4483 7/3/99 (new feature) Added Tcl_SetNotifier (public API) and 4484 associated hook points in the notifiers to be able to replace the 4485 notifier calls at runtime. The Xt notifier and test program use this 4486 hook. (welch) 4487 4488 7/3/99 (new feature) Added a new variant of the "Trf core patch" from 4489 Andreas Kupries that adds new C APIs Tcl_StackChannel, 4490 Tcl_UnstackChannel, and Tcl_GetStackedChannel. This allows the Trf 4491 extension to work without applying patches to the Tcl core. (welch) 4492 4493 7/6/99 (new feature) Added -timeout option to http.tcl to handle 4494 timeouts that occur during connection attempts to hosts that are 4495 down. (welch) 4496 4497 7/6/99 (bug fix) Applied new implementation of the Windows serial 4498 port driver from Rolf Schroedter that fixes reading only one byte from 4499 the port at a time. Uses polling every 10ms to implement 4500 fileevents. [Bug: 1980 2217] (redman) 4501 4502 7/8/99 (bug fix) Applied fix for bug in DFA state caching under 4503 lookahead conditions (regular expressions). [Bug: 2318] (stanton) 4504 4505 7/8/99 (bug fix) Fixed bug in string range bounds checking 4506 code. (stanton) 4507 4508 --------------- Released 8.2b1, July 14, 1999 ---------------------- 4509 4510 7/16/99 (bug fix) Added Tcl_SetNotifier to stub table. [Bug: 2364] 4511 Added check for Alpha/Linux to correct the IEEE floating point flag, 4512 patch from Don Porter. (redman) 4513 4514 7/20/99 (bug fix) Merged 8.0.5 code to handle tcl_library properly, 4515 also fixed a bug that caused TCL_LIBRARY to be ignored. (hershey) 4516 4517 7/21/99 (bug fix) Implemented modified socket driver for Windows that 4518 uses a thread to manage the socket event window. Code works the same 4519 on all supported versions of Windows and was based on original 8.1.0 4520 code. [Bug: 2178 2256 2259 2329 2323 2355] (redman) 4521 4522 7/21/99 (new feature) Applied patch from Rolf Schroedter to add 4523 -pollinterval option to fconfigure for Windows serial ports. Allows 4524 the maxblocktime to be modified to control how often serial ports are 4525 checked for fileevents. Also added documentation for \\.\comX 4526 notation for opening serial ports on Windows. (redman) 4527 4528 7/21/99 (bug fix) Changed APIs in stub tables to use "unsigned long" 4529 instead of the platform-specific "size_t", primarily after SunOS 4 4530 users could no longer compile. (redman) 4531 4532 7/22/99 (bug fix) Fixed crashing during "array set a(b) {}". 4533 [Bug: 2427] (redman) 4534 4535 7/22/99 (bug fix) The install-sh script must be given execute 4536 permissions prior to running. [Bug: 2413] (redman) 4537 4538 7/22/99 (bug fix) Applied patch from Ulrich Ring to remove ANSI-style 4539 prototypes in the code. [Bug: 2391] (redman) 4540 4541 7/22/99 (bug fix) Added #if blocks around #includes of sys/*.h header 4542 files, to allow an extension author on Windows to use the MetroWerks 4543 compiler. [Bug: 2385] (redman) 4544 4545 7/22/99 (bug fix) Fixed running the safe.test test suite, one change 4546 to the Windows Makefile.in to fix paths and another in safe.test to 4547 check for the tcl_platform(threaded) variable properly. (redman) 4548 4549 7/22/99 (bug fix) Fixed hanging in new Win32 socket driver with 4550 threads enabled. (redman) 4551 4552 7/26/99 (bug fix) Fixed terminating of helper threads by holding any 4553 mutexes from the primary thread while waiting for the helper thread to 4554 terminate. Fixes dual-CPU WinNT hangs, only one rare sporadic hang 4555 that still exists with dual-CPU WinNT. Also fixed test cases so that 4556 they would not depend as much on timing for dual-CPU WinNT. (redman) 4557 4558 7/27/99 (bug fix) Some test suite cleanup. (jenn) 4559 4560 7/29/99 (bug fix) Applied patch to fix typo in .SH NAME line in 4561 doc/Encoding.n [Bug: 2451]. Applied patch to avoid linking pack.n to 4562 pack-old.n [Bug: 2469]. Patches from Don Porter. (redman) 4563 4564 7/29/99 (bug fix) Allow tcl to open CON and NUL, even for redirection 4565 of std channels. [Bug: 2393 2392 2209 2458] (redman) 4566 4567 7/30/99 (bug fix) Applied fixed Trf patch from Andreas Kupries. 4568 [Bug: 2386] (hobbs) 4569 4570 7/30/99 (bug fix) Fixed bug in info complete. [Bug: 2383 2466] (hobbs) 4571 4572 7/30/99 (bug fix) Applied patch to fix threading on Irix 6.5, patch 4573 provided by James Dennett. [Bug: 2450] (redman) 4574 4575 7/30/99 (bug fix) Fixed launching of 16bit applications on Win9x from 4576 wish. The command line was being primed with tclpip82.dll, but it was 4577 ignored later. 4578 4579 7/30/99 (bug fix) Added functions to stub table, patch provided by Jan 4580 Nijtmans. [Bug: 2445] (hobbs) 4581 4582 8/1/99 (bug fix) Changed Windows socket driver to terminate threads 4583 by sending a message to the window rather than calling 4584 TerminateThread(), which seems to leak about 4k from the helper 4585 thread's stack space. (redman) 4586 4587 --------------- Released 8.2b2, August 5, 1999 ---------------------- 4588 4589 8/4/99 (bug fix) Applied patches supplied by Henry Spencer to greatly 4590 enhance performance of certain classes of regular expressions. 4591 [Bug: 2440 2447] (stanton) 4592 4593 8/5/99 (doc change) Made it clear that tcl_pkgPath was not set for 4594 Windows. [Bug: 2455] (hobbs) 4595 4596 8/5/99 (bug fix) Fixed reference to bytes that might not be null 4597 terminated in tclLiteral.c. [Bug: 2496] (hobbs) 4598 4599 8/5/99 (bug fix) Fixed typo in http.tcl. [Bug: 2502] (hobbs) 4600 4601 8/9/99 (bug fix) Fixed test suite to handle larger integers 4602 (64bit). Patch from Don Porter. (hobbs) 4603 4604 8/9/99 (documentation fix) Clarified Tcl_DecrRefCount docs 4605 [Bug: 1952]. Clarified array pattern docs [Bug: 1330]. Fixed clock docs 4606 [Bug: 693]. Fixed formatting errors [Bug: 2188 2189]. Fixed doc error 4607 in tclvars.n [Bug: 2042]. (hobbs) 4608 4609 8/9/99 (bug fix) Fixed path handling in auto_execok [Bug: 1276] (hobbs) 4610 4611 8/9/99 (internal api change) Removed the TclpMutexLock and TclpMutexUnlock 4612 APIs and added a new exported api, Tcl_GetAllocMutex. These APIs are all for 4613 the mutex used in the simple memory allocators. By making this change 4614 we are able to substitute different implementations of the thread-related 4615 APIs without having to recompile the Tcl core. (welch) 4616 4617 8/9/99 (new C API) Tcl_GetChannelNames returns a list of open channel 4618 names in the interpreter result. Still no Tcl-level version of this, 4619 but server-like applications can use this to clean up files without 4620 deleting interpreters. (welch) 4621 4622 8/9/99 (bug fix) Traces were not firing on "info exists", which used to 4623 happen in Tcl 7.6 and earlier. An "info exists" now fires a read trace, 4624 if defined. This makes it possible to fully implement variables that 4625 are defined via traces. (welch) 4626 4627 8/10/99 (bug fix) Fixed Brent's changes so that they work on 4628 Windows. (redman) 4629 4630 --------------- Released 8.2b3, August 11, 1999 ---------------------- 4631 4632 8/12/99 (Mac) Rearrange projects in tclMacProjects.sea.hqx so that the 4633 build directory is separate from the sources. (Jim Ingham) 4634 4635 8/12/99 (bug fix) Fixed bug in Tcl_EvalEx where the termOffset was not 4636 being updated in cases where the evaluation returned a non TCL_OK 4637 error code. [Bug: 2535] (stanton) 4638 4639 --------------- Released 8.2.0, August 17, 1999 ---------------------- 4640 4641 9/21/99 (config fixes) fixed several AIX configuration issues. gcc and 4642 threading may still cause problems on AIX. (hobbs) 4643 4644 9/21/99 (bug fix) fixed expr double-eval problem. [Bug: 732] (hobbs) 4645 4646 9/21/99 (bug fix) fixed static buffer overflow problem. [Bug: 2483] (hobbs) 4647 4648 9/21/99 (bug fix) fixed end-int linsert interpretation. [Bug: 2693] (hobbs) 4649 4650 9/21/99 (bug fix) fixed bug when setting array in non-existent 4651 namespace. [Bug: 2613] (hobbs) 4652 4653 --- Released 8.2.1, October 04, 1999 --- See ChangeLog for details --- 4654 4655 10/30/99 (feature enhancement) new regexp engine from Henry Spencer 4656 was patched in - should greatly reduce stack space usage. (spencer) 4657 4658 10/30/99 (bug fix) fixed Purify reported memory leaks in findexecutable 4659 test command, TclpCreateProcess on Unix, in handling of C environ array, 4660 and in testthread code. No more known (reported) mem leaks for Tcl 4661 built using gcc on Solaris 2.5.1. Also none reported for Tcl on NT 4662 (using Purify 6.0). (hobbs) 4663 4664 10/30/99 (bug fix) fixed improper bytecode handling of 4665 'eval {set array($unknownvar) 5}' (also for incr) (hobbs) 4666 4667 10/30/99 (bug fix) fixed event/io threading problems by making 4668 triggerPipe non-blocking (nick kisserbeth) 4669 4670 10/30/99 (bug fix) fixed Tcl_AppendStringsToObjVA and Tcl_AppendResultVA 4671 to only iterates once over the va_list (avoiding non-portable memcpy). 4672 (joe english, hobbs) 4673 4674 10/30/99 (bug fix) removed savedChar trick in tclCompile.c that appeared 4675 to be causing a segv when the literal table was released. 4676 [Bug: 2459, 2515] (David Whitehouse) 4677 4678 10/30/99 (bug fix) fixed [string index] to return ByteArrayObj 4679 when indexing into one (test case string-5.16) [Bug: 2871] (hobbs) 4680 4681 10/30/99 (bug fix) fixes for mac UTF filename handling (ingham) 4682 4683 --- Released 8.2.2, November 04, 1999 --- See ChangeLog for details --- 4684 4685 11/19/99 (feature enhancement) bug fixes for http package as well as 4686 patch required by TLS (SSL) extension that adds http::(un)register 4687 and -type to http::geturl. Up'd http pkg version to 2.2. 4688 4689 11/19/99 (bug fix) removed extra decr of numLevels in Tcl_EvalObjEx 4690 that could cause seg fault ([email protected]) 4691 4692 11/19/99 (bug fixes) numerous minor big fixes, including correcting the 4693 installation of the koi8-r encoding and tcltest1.0 on Windows. 4694 4695 11/30/99 (bug fix) fixes scan where %[..] didn't match anything 4696 4697 11/30/99 (bug fix) fixed setting of isNonBlocking flag in PipeBlockModeProc 4698 so you can now close a non-blocking channel without waiting. 4699 4700 11/30/99 (bug work-around) prevented the unloading of DLLs for Unix in 4701 TclFinalizeLoad. This stops the seg fault on exit that some users would 4702 see (ie with oratcl) when using DLLs that do nasty things like register 4703 atexit handlers. 4704 4705 12/07/99 (bug fix) fixes for 'expr + {[incr]}' and 'expr + {[error]}' 4706 cases (different causes). 4707 4708 --- Released 8.2.3, December 16, 1999 --- See ChangeLog for details --- 4709 4710 1999-09-14 (feature enhancement) added -start switch to regexp and regsub. 4711 4712 1999-09-15 (feature enhancement) add 'array unset' command. 4713 4714 1999-09-15 (feature enhancement) rewrote runtime libraries to use new 4715 string functions 4716 4717 1999-08-18 (feature enhancement) added 'file channels' command, along with 4718 Tcl_GetChannelNames(Ex) public C APIs. 4719 4720 1999-10-19 (feature enhancement) enhanced tcltest package 4721 4722 1999-09-16 (feature enhancement) added -milliseconds switch to 'clock clicks' 4723 4724 1999-10-28 (feature enhancement) added support for inline 'scan' 4725 4726 1999-10-28 (feature enhancement) added support for touch functionality by 4727 extendeding 'file atime' and 'file mtime' to take an optional time argument 4728 4729 1999-11-24 (feature enhancement) added 'fconfigure $sock -lasterror' 4730 command to Windows to query the last error received on a serial socket. 4731 4732 1999-11-30 (bug fix) fixed handling of %Z on NT for timezones that don't 4733 have DST 4734 4735 1999-12-03 (feature enhancement) improved error message in bad octal cases 4736 and improper use of comments. (hobbs) 4737 4738 1999-12-07 (bug fix) fixed Tcl_ScanCountedElement to not step 4739 beyond the end of the counted string 4740 4741 1999-12-09 (feature enhancement) removed all references to 16 bit 4742 compatibility code for Windows (hobbs) 4743 4744 1999-12-10 (bug fix) removed check for vfork - Tcl now uses only fork in 4745 exec. (hobbs) 4746 4747 1999-12-10 (optimization) changed Tcl_ConcatObj to return a list 4748 object when it receives all pure list objects as input (used by 'concat'), 4749 added optimizations in Tcl_EvalObjEx for pure list case, and optimized 4750 INST_TRY_CVT_TO_NUMERIC in TclExecuteByteCode for boolean objects. 4751 (oakley, hobbs) 4752 4753 1999-12-12 (feature enhancement) enhanced glob command with -type, -path, 4754 -directory and -join switches. (darley, hobbs) 4755 4756 1999-12-21 (bug fix) changed CreateThread to _beginthreadex and 4757 ExitThread to _endthreadex to prevent 4K mem leak (gravereaux) 4758 4759 1999-12-21 (bug fix) fixed applescript for I18N 4760 4761 1999-12-21 (feature enhancement) added -unique option to lsort (hobbs) 4762 4763 1999-12-21 (bug fix) changed thread ids to longs (for 64bit systems) 4764 4765 --- Released 8.3b1, December 22, 1999 --- See ChangeLog for details --- 4766 4767 2000-01-10 (feature enhancement) clock scan now supports the common 4768 ISO 8601 date/time formats. See docs for details. (melski) 4769 4770 2000-01-10 (bug fix) prevented \ooo substitution from accepting 4771 non-octal digits [Bug: 3975] (hobbs) 4772 4773 2000-01-11 (bug fix) fixed improper handling of DST by clock when 4774 using relative times (like "1 month" or "tomorrow"). (melski) 4775 4776 2000-01-12 (bug fix) improved build support for Tru64 v5, NetBSD 4777 and Reliant Unix (hobbs) 4778 4779 2000-01-12 (bug fix) made imported commands also import their 4780 compile procedure (duffin) 4781 4782 2000-01-12 (bug fix) fixed 'info procs ::namesp::*' behavior to return 4783 procs in a namespace (dejong) 4784 4785 2000-01-12 (feature enhancement) added support for setting permissions 4786 symbolicly (like chmod) in [file attributes $file -permissions ...] (schoebel) 4787 4788 2000-01-13 (bug fix) fixed lsort -dictionary problem when sorting 4789 characters between 'Z' and 'a' (flawed upper/lower comparison logic) (melski) 4790 4791 --- Released 8.3b2, January 13, 2000 --- See ChangeLog for details --- 4792 4793 2000-01-14 (feature enhancement) clock format %Q added, clock scan updated 4794 4795 2000-01-20 (bug fix) corrected complex array elem compiling (Spjuth) 4796 4797 2000-01-20 (bug fix) made [info body] always return a string type arg, 4798 to prevent possible misuse of bytecodes in the wrong context (hobbs) 4799 4800 2000-01-20 (bug fixes) several fixes to variable handling to prevent 4801 possible crashes, and further definition of correct behavior (melski) 4802 4803 2000-01-25 (bug fixes) improved QNX, Ultrix and OSF1 (Tru64) config and 4804 compatibility (edge, furukawa) 4805 4806 2000-01-25 (bug fix) fixed mem leak when calling lsort with a bad -command 4807 argument (hobbs) 4808 4809 2000-01-27 (feature enhancement) package mechanism overhaul: changed 4810 behavior of pkg_mkIndex to do -direct by default, added -lazy option. 4811 Fixed pkg_mkIndex to handle odd proc names and auto_mkIndex to use platform 4812 independent file paths. Other fixes for odd package quirks. Added 4813 ::pkg namespace and ::pkg::create helper function. (melski) 4814 4815 2000-02-01 (bug fix) fixed problem where http POST would send one extra 4816 newline (vasiljevic) 4817 4818 2000-02-02 (feature enhancement) added docs for new regexp -inline and 4819 -all switches. (hobbs) 4820 4821 2000-02-08 (bug fix) corrected handling of "next monthname" in clock scan 4822 (melski) 4823 4824 2000-02-09 (bug fix) restored Mac source to build readiness and prevented 4825 mac panic from an error when closing an async socket (steffen, ingham) 4826 4827 2000-02-10 (feature enhancement) improved error reporting for failed 4828 loads on Windows (dejong, hobbs) 4829 4830 --- Released 8.3.0, February 10, 2000 --- See ChangeLog for details --- 4831 4832 2000-03 (bug fixes, feature enhancement) overhaul of http package for 4833 proper handling of async callbacks (new options), version is now at 2.3 4834 (tamhankar, welch) 4835 4836 2000-03 (performance enhancement) speedup in Windows filename handling (newman) 4837 and ==/!= empty string in exprs. (hobbs) 4838 4839 2000-03-27 (bug fix) added uniq'ing test to namespace export list to 4840 prevent unnecessary mem growth (hobbs) 4841 4842 2000-03-29 (bug fix) fixed mem leak when repeatedly sourcing the same 4843 bytecompiled (tbc) code repeatedly across different interpreters (hobbs) 4844 4845 2000-03-29 (config enhancement) improved build support for gcc/mingw on 4846 Windows (nijtmans, hobbs) and added RPM target (melski) 4847 4848 2000-03-31 (bug fix) corrected data encoding problem when using 4849 "exec << $data" construct (melski) 4850 4851 2000-04 (feature enhancement) overhaul of threading mechanism to better 4852 support tcl level thread command (new APIs Tcl_ConditionFinalize, 4853 Tcl_MutexFinalize, Tcl_CreateThread, etc, all docs in Thread.3). 4854 (kupries, graveraux) 4855 This enables the tcl level thread extension. (welch) 4856 4857 2000-04-10 (bug fix) fixed infinite loop case in regexp -all (melski) 4858 4859 2000-04-13 (config enhancement) added support for --enable-64bit-vis 4860 Sparc target. (hobbs) 4861 4862 2000-04-18 (bug fix) moved tclLibraryPath to thread-local storage to fix 4863 possible race condition on MP machines (hobbs) 4864 4865 2000-04-18 (config enhancement) added MacOS X build target and 4866 tclLoadDyld.c dl type. (sanchez) 4867 4868 2000-04-23 (bug fix) several Mac socket fixes (ingham) 4869 4870 2000-04-24 (bug fix) fixed hang in threaded Unix case when backgrounded 4871 exec process was running (dejong) 4872 4873 --- Released 8.3.1, April 26, 2000 --- See ChangeLog for details --- 4874 4875 2000-04-26 (doc fix) updated/added documentation for many API's and 4876 commands (melski) 4877 4878 2000-05-02 (feature enhancement) added support for joinable threads; 4879 extended API's for channels to allow channels to move between threads 4880 (kupries) 4881 4882 2000-05-02 (feature enhancement) changed error return for procedures 4883 with incorrect args to be like the Tcl_WrongNumArgs API, with a "wrong 4884 # args: ..." message printed, with an args list (hobbs) 4885 4886 2000-05-08 (feature enhancement) added [array statistics] command 4887 4888 2000-05-08 (performance enhancement) rewrote Tcl_StringCaseMatch 4889 algorithm for better performance; this affects the [string match] 4890 command; added "eq" and "ne" operands to expr, for testing 4891 string equality and inequality (hobbs) 4892 4893 2000-05-09 (feature enhancement) extended [lsearch] to support sorted 4894 list searches and typed list searches (melski) 4895 4896 2000-05-10 (feature enhancement) added [namespace exists] command 4897 (darley) 4898 4899 2000-05-18 (build enhancement) added support for mingw compile env and 4900 cross-compiling (dejong) 4901 4902 2000-05-18 (bug fix) corrected clock grammar to properly handle the 4903 "ago" keyword when it follows multiple relative unit specifiers 4904 (melski) 4905 4906 2000-05-22 (compile fix) type cast cleanups (dejong) 4907 4908 2000-05-23 (performance enhancement) added byte-compiled 4909 implementation of [return] command and [string] command (melski) 4910 4911 2000-05-26 (performance enhancement) extended byte-compiled [string] 4912 command with support for [string compare/index/match] (hobbs) 4913 4914 2000-05-27 (feature enhancement) added ability to set [info script] 4915 return value ([info script ?newFileName?]) (welch) 4916 4917 2000-05-31 (feature enhancement) added support for regexp and exact 4918 pattern matching for [array names] (gazetta) 4919 4920 2000-05-31 (feature enhancement) added -nocomplain and -- flags to 4921 [unset] to allow for silent unset operation (hobbs) 4922 4923 --- Released 8.4a1, June 6, 2000 --- See ChangeLog for details --- 4924 4925 2000-05-29 (bug fix) corrected resource cleanup in http error cases. 4926 Improved handling of error cases in http. (tamhankar) 4927 4928 2000-07 (feature rewrite) complete rewrite of the Tcl IO channel subsystem 4929 to correct problems (hangs, core dumps) with the initial stacked channel 4930 implementation. The new system has many more tests for robustness and 4931 scalability. There are new C APIs (see Tcl_CreateChannel), but only 4932 stacked channel drivers are affected (ie: TLS, Trf, iogt). The iogt 4933 extension has been added to the core test code to test the system. 4934 (hobbs, kupries) 4935 **** POTENTIAL INCOMPATABILITY **** 4936 4937 2000-07 (build improvements) cleanup of the makefiles and configure scripts 4938 to correct support for building under gcc for Windows. (dejong) 4939 4940 2000-08-07 (bug fix) corrected sizeof error in Tcl_GetIndexFromObjStruct. 4941 (perkins) 4942 4943 2000-08-07 (bug fix) correct off-by-one error in HistIndex, which was 4944 causing [history redo] to start its search at the wrong event index. (melski) 4945 4946 2000-08-07 (bug fix) corrected setlocale calls for XIM support and locale 4947 issues in startup. (takahashi) 4948 4949 2000-08-07 (bug fix) correct code to handle locale specific return values 4950 from strftime, if any. (wagner) 4951 4952 2000-08-07 (bug fix) tweaked grammar to properly handle the "ago" keyword 4953 when it follows multiple relative unit specifiers, as in 4954 "2 days 2 hours ago". (melski) 4955 4956 2000-08-07 (doc fixes) numerous doc fixes to correct SEE ALSO and NAME 4957 sections. (english) 4958 4959 2000-08-07 (bug fix) new man pages memory.n, TCL_MEM_DEBUG.3, Init.3 and 4960 DumpActiveMemory.3. (melski) 4961 4962 --- Released 8.3.2, August 9, 2000 --- See ChangeLog for details --- 4963 4964 2000-06 thru 2000-11 (build improvements) Added support for mingw (gcc on 4965 Windows), AIX-5 and Win64 builds (dejong, hobbs) 4966 4967 2000-06-23 (feature enhancement) ability to use Tcl_Obj *s as hash keys (duffin) 4968 4969 2000-06-29 (new features) added [mcmax] and [mcmset] and extended [unknown] in 4970 msgcat package (duperval, krone, nelson) 4971 => msgcat 1.1 4972 4973 2000-08 thru 2000-09 added tclPlatDecls.h to default install (melski, hobbs) 4974 4975 2000-08-24 (new feature) Enhanced trace syntax to add: 4976 trace {add|remove|list} {variable|command} name ops command 4977 (darley, melski) 4978 4979 2000-09-06 (cross-platform feature) Set ^Z (\32) as default EOF char. (hobbs) 4980 4981 2000-09-07 partial fix for bug 2460 to prevent exec mem leak on Windows for the 4982 common case (gravereaux) 4983 4984 2000-09-14 Improved string allocation growth for large strings (hintermayer, 4985 melski) 4986 4987 2000-09-14 New non-panic'ing mem allocation functions Tcl_AttemptAlloc, 4988 Tcl_AttemptRealloc, Tcl_AttemptSetObjLength (melski) 4989 4990 2000-09-20 (new features) completely new, enhanced syntax in tcltest package. 4991 Backwards compatable with tcltest v1. (hom) 4992 => tcltest 2.0 4993 4994 2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that 4995 didn't set nonBlocking correctly when resetting the flags for the write 4996 side (mem leak) Correct mem leak in channels when statePtr was released 4997 (hobbs) 4998 4999 2000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason) 5000 5001 2000-10-06 (bug fix) corrected [file channels] to only return channels in 5002 the current interpreter (hobbs) 5003 5004 2000-10-20 (performance enhancement) call stat only when necessary in 'glob' to 5005 speed up command significantly in base cases (hobbs) 5006 5007 2000-10-27 Fixed mem leak in Tcl_CreateChannel. Re-purified core via test 5008 suites. (hobbs) 5009 5010 2000-10-30 (new feature) add "ja_JP.eucJP" map to "euc-jp" encoding (takahashi) 5011 5012 2000-11-01 (mem leak) Corrected excessive mem use of info exists on a 5013 non-existent array element (hobbs) 5014 5015 2000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded 5016 environment (gravereaux) 5017 5018 2000-11-03 (new feature) Tcl_SetMainLoop enables defining an event loop for 5019 tclsh. This enables Tk as a truly loadable package. (hobbs) 5020 5021 --- Released 8.4a2, November 3, 2000 --- See ChangeLog for details --- 5022 5023 2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that 5024 didn't set nonBlocking correctly when resetting the flags for the write 5025 side (mem leak) Correct mem leak in channels when statePtr was released 5026 (hobbs) 5027 5028 2000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason) 5029 5030 2000-10-06 (bug fix) corrected [file channels] to only return channels in 5031 the current interpreter (hobbs) 5032 5033 2000-10-20 (performance enhancement) call stat only when necessary in 'glob' to 5034 speed up command significantly in base cases (hobbs) 5035 5036 2000-11-01 (mem leak) Corrected excessive mem use of info exists on a 5037 non-existent array element (hobbs) 5038 5039 2000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded 5040 environment (gravereaux) 5041 5042 2000-11-23 (mem leak) fixed potential memory leak in error case of lsort 5043 (fellows) 5044 5045 2000-12-09 (feature enhancement) changed %o and %x to use strtoul instead 5046 of strtol to correctly preserve scan<>format conversion of large integers 5047 (hobbs) 5048 Fixed handling of {!<boolean>} in expressions (hobbs, fellows) 5049 5050 2000-12-14 (feature enhancement) improved (s)rand for 64-bit platforms 5051 (porter) 5052 5053 2001-01-04 (bug fix) corrected parsing of $tcl_libPath at startup on 5054 Windows (porter) 5055 5056 2001-01-30 (bug fix) Fixed possible hangs in fcopy. (porter) 5057 5058 2001-02-15 (performance enhancement) improved efficiency of [string split] 5059 (fellows) 5060 5061 2001-03-13 (bug fix) Correctly possible memory corruption in string map {} 5062 $str (fellows) 5063 5064 2001-03-29 (bug fix) prevent potential race condition and security leak in 5065 tmp filename creation on Unix. (max) 5066 Fixed handling of timeout for threads (corrects excessive CPU usage issue 5067 for Tk on Unix in threaded Tcl environment). (ruppert) 5068 5069 2001-03-30 (bug fix) corrected Windows memory error on exit (wu) 5070 Fixed race condition in readability of socket on Windows. 5071 5072 2001-04-03 (doc fixes) numerous doc corrections and clarifications. 5073 Update of READMEs. 5074 5075 2001-04-04 (build improvements) redid Mac build structure (steffen) 5076 Corrected IRIX-5* configure (english). Added support for AIX-5 (hobbs). 5077 Added support for Win64 (hobbs). 5078 5079 --- Released 8.3.3, April 6, 2001 --- See ChangeLog for details --- 5080 5081 2000-11-23 (new feature)[TIP 7] higher resolution timer on Windows (kenny) 5082 5083 2001-01-18 (new feature) Tcl_InitHashTableEx renamed to Tcl_InitCustomHashTable 5084 (kupries) 5085 5086 2001-03-30 (new feature)[TIP 10] support for thread-aware/hot channels (kupries) 5087 5088 2001-04-06 (new feature)[219280] auto-loading hidden in ::errorInfo (porter) 5089 5090 2001-04-07 (bug fix)[406709] corrected panic when extra items left on the 5091 byte compiler execution stack (sofer) 5092 5093 2001-04-09 (bug fix)[219136,232558] improved use of thread-safe functions in 5094 unix time commands (kenny) 5095 5096 2001-04-24 (new feature)[TIP 27] started CONST-ification of the Tcl APIs (kenny) 5097 5098 2001-05-03 (new feature) [auto_import] now matches patterns like 5099 [namespace import], not like [string match] (porter) 5100 **** POTENTIAL INCOMPATABILITY **** 5101 5102 2001-05-07 (new feature)[416643] distinct srand() seed per interp (sofer) 5103 5104 2001-05-15 (new feature) new Tcl_GetUnicodeFromObj API (hobbs) 5105 5106 2001-05-16 (performance enhancement) byte-compiled versions of [lappend], 5107 [append] simple cases (hobbs) 5108 5109 2001-05-23 (new feature) added ISO-8859-15 and koi8-u encodings, updated other 5110 encoding tables based on http://www.unicode.org/Public/MAPPINGS/ (kuhn) 5111 5112 2001-05-27 (new feature) updated to Unicode 3.1.0 data set (still using 16 5113 bits for Tcl_UniChar though) (hobbs) 5114 5115 2001-05-30 (new feature)[TIP 15] Tcl_GetMathFuncInfo, Tcl_ListMathFuncs, 5116 Tcl_InfoObjCmd, InfoFunctionsCmd APIs (fellows) 5117 5118 2001-06-08 (bug fix,feature enhancement)[219170,414936] all Tcl_Panic 5119 definitions brought into agreement (porter) 5120 5121 2001-06-12 (bug fix)[219232] regexp returned non-matching sub-pairs to have 5122 index pair {-1 -1} (fellows) 5123 5124 2001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII 5125 characters. (hobbs, riefenstahl) 5126 5127 2001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer) 5128 5129 2001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings 5130 (hobbs, barras) 5131 5132 2001-07-12 (new feature)[TIP 36] Tcl_SubstObj API (fellows) 5133 5134 2001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows 5135 (hobbs, jsmith) 5136 5137 2001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size 5138 of a channel is changed after channel use has already begun (kupries, porter) 5139 5140 2001-07-31 (new feature)[TIP 17] TclFS* APIs provide new virtual file 5141 system. This includes the addition of 'file normalize', 'file system', 5142 'file separator' and 'glob -tails' (darley) 5143 5144 2001-08-06 (bug fix) removed use of tmpnam in TclpCreateTempFile on Unix (lim) 5145 5146 * improved build support for IRIX, GNU HURD, Mac OS 9 and OS X 5147 5148 * configure scripts revamped for better support of cygwin and gcc on 5149 Windows (mdejong) 5150 5151 * corrected several minor errors noted by Purify (hobbs) 5152 5153 --- Released 8.4a3, August 6, 2001 --- See ChangeLog for details --- 5154 5155 2001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII 5156 characters. (hobbs, riefenstahl) 5157 5158 2001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer) 5159 5160 2001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings 5161 (hobbs, barras) 5162 5163 2001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows 5164 (hobbs, jsmith) 5165 5166 2001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size 5167 of a channel is changed after channel use has already begun (kupries, porter) 5168 5169 2001-08-06 (bug fix)[442665] corrected object reference counting in [gets] 5170 (jikamens) 5171 5172 2001-08-06 (new feature) added GNU (HURD) configuration target. (brinkmann) 5173 5174 2001-08-07 (bug fix)[406709] corrected panic when extra items left on the 5175 byte compiler execution stack (see test foreach-5.5) (sofer, tallneil, jstrot) 5176 5177 2001-08-08 (new features) updated packages msgcat 1.1.1, opt 0.4.3, 5178 tcltest 1.0.1, dependencies checked (porter) 5179 5180 2001-08-20 (new feature)[452217] http 2.3.2: include port number in Host: header 5181 to comply with HTTP/1.1 spec (RFC 2068) (hobbs, tils) 5182 5183 2001-08-23 (new feature) added QNX-6 build support (loverso) 5184 5185 2001-08-23 (bug fix) corrected handling of spaces in path name passed to 5186 [exec] on Windows (kenpoole) 5187 5188 2001-08-24 (bug fix) corrected [package forget] stopping on non-existent 5189 package (porter) 5190 5191 2001-08-24 (bug fix) corrected construction of script library search path 5192 relative to executable (porter) 5193 5194 2001-08-24 (bug fix) [auto_import] now matches patterns like 5195 [namespace import], not like [string match] (porter) 5196 **** POTENTIAL INCOMPATABILITY **** 5197 5198 2001-08-27 (new feature) added Tcl_SetMainLoop() to enable loading Tk as a 5199 true package (hobbs) 5200 5201 2001-08-30 (bug fix) build support for Crays (andreasen) 5202 5203 2001-09-01 (bug fix) rewrite of Tcl_Async* APIs to better manage thread 5204 cleanup (gravereaux) 5205 5206 2001-09-06 (new feature) http 2.4: honor the Content-encoding and charset 5207 parameters; add -binary switch for forcing the issue (hobbs, saoukhi, orwell) 5208 => http 2.4 5209 5210 2001-09-06 (performance enhancement) rewrite of file I/O flush management on 5211 Windows. Approximately 100x speedup for some operations. (kupries, traum) 5212 5213 2001-09-10 (bug fix) corrected finalization error in TclInExit (darley) 5214 5215 2001-09-10 (bug fix) protect against alias loops (hobbs) 5216 5217 2001-09-12 (bug fix) added missing #include in tclLoadShl.c (techentin) 5218 5219 2001-09-12 (bug fix) script library path construction on Windows no longer 5220 uses registry, nor adds the current working directory to the path (porter) 5221 5222 2001-09-12 (bug fix) correct bugs in compatibility strtod() (porter) 5223 5224 2001-09-13 (bug fix) Tcl_UtfPrev now returns the proper location when the 5225 middle of a UTF-8 byte is passed in (hobbs) 5226 5227 2001-09-19 (bug fix) [format] and [scan] corrected for 64-bit machines (rmax) 5228 5229 2001-09-19 (new feature) --enable-64-bit support for HP-11. (hobbs) 5230 5231 2001-09-19 (new feature) native memory allocator now default on Windows 5232 (hobbs) 5233 5234 2001-09-20 (new feature) WIN64 support and extra processor definitions 5235 (hobbs, mstacy) 5236 5237 2001-09-26 (bug fix) corrected potential deadlock in channels that do not 5238 provide a BlockModeProc (kupries, kogorman) 5239 5240 2001-10-03 (new feature) WIN64 build support (hobbs) 5241 5242 2001-10-03 (bug fix) correction in thread finalization (rbrunner) 5243 5244 2001-10-04 (new feature) updated encodings with latest mappings from 5245 www.unicode.org (hobbs) 5246 5247 2001-10-11 (bug fix) corrected cleanup of self-referential bytecodes at 5248 interpreter deletion (sofer, rbrunner) 5249 5250 2001-10-16 (new feature) config support for MacOSX / Darwin (steffen) 5251 5252 2001-10-16 (new feature, Mac) change in binary extension format from MachO 5253 bundles to standard .dylib dynamic libraries like on other unices. 5254 *** POTENTIAL INCOMPATIBILITY *** 5255 5256 2001-10-18 (bug fix) corrected off-by-one-day error in clock scan with 5257 relative months and years during swing hours. (lavana) 5258 5259 --- Released 8.3.4, October 19, 2001 --- See ChangeLog for details --- 5260 5261 2001-08-21 (bug fix)[219184] overagressive compilation of [catch] (sofer) 5262 5263 2001-08-22 (new feature)[227482] [dde request -binary] (hobbs) 5264 => dde 1.2 5265 5266 2001-08-30 (performance enhancement)[456668] fully qualified command names use 5267 cached Command for all namespaces, avoiding repeated lookups (sofer) 5268 5269 2001-08-31 (performance enhancement) bytecompiled [list] (hobbs) 5270 5271 2001-09-02 (bug fix)[403553] Add -Zl to VC++ compile line for tclStubLib to 5272 avoid any specific C-runtime library dependence. (gravereaux) 5273 5274 2001-09-05 (new feature) restored support for Borland compiler (gravereaux) 5275 5276 2001-09-05 (new feature)[TIP 49] Tcl_OutputBuffered API (schroedter, fellows) 5277 5278 2001-09-07 (new feature) restored VC++ 5.0 compatibility (gravereaux) 5279 5280 2001-09-10 (performance enhancement)[TIP 53,451441] [proc foo args {}] now 5281 compiles to 0 bytecodes (sofer) 5282 5283 2001-09-13 (new feature)[TIP 56] Tcl_EvalTokensStandard API (sofer) 5284 5285 2001-09-13 (new feature) Old ChangeLog entries => ChangeLog.1999 (hobbs) 5286 5287 2001-09-17 (new feature) compiling with TCL_COMPILE_DEBUG now required to 5288 enable all compile and execution tracing (sofer) 5289 *** POTENTIAL INCOMPATIBILITY *** 5290 5291 2001-09-19 (bug fix)[411825] made TclNeedSpace UTF-8 aware (fellows) 5292 5293 2001-09-19 (bug fix)[219166] overagressive compilation of "quoted" bodies of 5294 [for], [foreach], [if], and [while] (sofer) 5295 5296 2001-09-19 (performance enhancement) bytecompiled [string match] (hobbs) 5297 5298 2001-10-15 (new feature)[TIP 35] serial channel configuration: Win (schroedter) 5299 5300 2001-11-06 (bug fix)[478856] loss of fileevents due to short reads (kupries) 5301 5302 2001-11-06 (new feature) revitalized makefile.vc (gravereaux) 5303 5304 2001-11-07 (new feature) Cygwin gcc support dropped. Use mingw (dejong) 5305 *** POTENTIAL INCOMPATIBILITY *** 5306 5307 2001-11-07 (new feature) Support --include-dir= and --libdir= options to 5308 configure. Store in tclConfig.sh as TCL_INCLUDE_SPEC and TCL_LIB_SPEC. 5309 (dejong) 5310 *** POTENTIAL INCOMPATIBILITY *** 5311 5312 2001-11-08 (new feature) Enable --enable-threads on FreeBSD (dejong) 5313 5314 2001-11-08 (new feature) New make target 'make gdb' (dejong) 5315 5316 2001-11-09 (bug fix)[480176] [global] mishandled varnames matching :* (porter) 5317 5318 2001-11-12 (new feature)[TIP 22,33,45] new command [lset], 5319 [lindex] extended to accept multiple indices. (kenny, hobbs) 5320 5321 2001-11-16 (new feature) new configure option --enable-langinfo=no. 5322 By default, nl_langinfo() is used on Unix to determine system encoding. 5323 Tcl's built-in system is used only if that fails, or configured with 5324 --enable-langinfo=no. (hobbs, wagner) 5325 5326 2001-11-19 (new feature)[TIP 62] A Tcl_VarTraceProc can now return Tcl_Obj * 5327 or a dynamic string as well as a static string to indicate an error (fellows) 5328 5329 2001-11-19 (new feature)[TIP 73] Tcl_GetTime API (kenny) 5330 5331 2001-11-19 (bug fix)[478847] overflows in [time] of >2**31 microseconds (kenny) 5332 5333 2001-11-29 (performance enhancement) caching scheme added to [binary scan] 5334 (fellows) 5335 5336 2001-12-05 (new feature) new algorithm for [array get] adds safety when read 5337 traces modify the array. (sofer) 5338 *** POTENTIAL INCOMPATIBILITY *** 5339 5340 2001-12-10 (bug fix)[490514] doc fixes (porter,english) 5341 5342 2001-12-18 (new feature) removed unix/dltest/configure; unix/configure does 5343 all (dejong) 5344 5345 2001-12-19 (new feature) New make target 'make shell' (dejong) 5346 5347 2001-12-21 (new feature) MaxOSX / Darwin support (steffen) 5348 5349 2001-12-28 (new feature) new command [memory onexit] replaces [checkmem] when 5350 compiled with TCL_MEM_DEBUG. Added documentation. (porter) 5351 *** POTENTIAL INCOMPATIBILITY *** 5352 5353 2001-12-28 (bug fix) proper case in [auto_execok] use of $env(COMPSPEC) (hobbs) 5354 5355 2002-01-05 (feature rewrite) Tcl_Main() rewritten and documentation improved. 5356 Interactive operation and event loop operation (via Tcl_SetMainLoop) now 5357 interleave cleanly. Also more robust against strange happenings. (porter) 5358 5359 2002-01-17 (bug fix)[504642] Tcl_Obj refCounts in [gets] (griffen,kupries) 5360 5361 2002-01-21 (bug fix)[506297] infinite loop writing in iso2022-jap encoding 5362 (forssen,kupries) 5363 5364 2002-01-24 (HTTP server bug workaround)[504508] leave the default port out 5365 of the Host: header value 5366 => http 2.4.1 (hobbs) 5367 5368 2002-01-25 (new feature)[496733] socket options -eofchar and -translation 5369 return read-only values (dejong) 5370 5371 2002-01-28 (new feature) Old ChangeLog entries => ChangeLog.20900 (hobbs) 5372 5373 2002-01-28 (performance enhancement) bytecompiled [regexp] for trivial cases 5374 that amount to string matching. Also -nocase and --. (hobbs) 5375 5376 2002-02-05 (bug fix) [http::error] called when [::error] intended 5377 => http 2.4.2 (porter) 5378 5379 2002-02-05 (bug fix)[465765] avoid zero-byte writes to STREAMs 5380 (talcott,kupries) 5381 5382 2002-02-06 (performance enhancement) [regsub] special cases that map to 5383 [string map] detected. (hobbs) 5384 5385 2002-02-06 (bug fix)[495213] [scan] accept 0x as prefix of base 16 value 5386 (hobbs) 5387 5388 2002-02-10 (new feature)[TIP 32,79] Tcl_CreateObjTrace API (kenny) 5389 5390 2002-02-12 (new feature) partial support for DJGPP Tcl on DOS (gravereaux) 5391 5392 2002-02-14 (mem leak) Fixed leaking an empty Tcl_Obj when [gets $chan] 5393 errored out. (kupries, sofer) 5394 5395 2002-02-15 (new feature)[TIP 72] support for 64-bit integer values on 5396 32-bit platforms and ability to work with >2GiB files. Extends many 5397 commands. See ChangeLog and TIP for details. 5398 *** POTENTIAL INCOMPATIBILITY *** 5399 5400 2002-02-22 (bug fix)[476537] Fix panic when loading shared library without 5401 proper use of stubs on platform without backlinking (porter) 5402 5403 2002-02-22 (new feature) 64-bit support for xlc compiler on AIX-4 (hobbs) 5404 5405 2002-02-22 (new feature)[521560] Removed limits on filename length and 5406 format [source]able through the Safe Base (hobbs) 5407 5408 2002-02-22 (performance enhancement) optimized bytecodes for [if], [for], 5409 [while] and constant conditions (sofer) 5410 5411 2002-02-22 (new feature)[TIP 76] [regsub] can now return result (fellows) 5412 5413 2002-02-25 (bug fix)[495207] buffer overrun when closing ] left out of 5414 argument to [subst] (sofer, english) 5415 5416 2002-02-25 (bug fix)[514392] [load] updated for Mac OS X 10.1 (steffen) 5417 5418 2002-02-26 (bug fix) [info hostname] choked on names >31 characters (hobbs) 5419 5420 2002-02-26 (new feature)[TIP 35] serial channel configuration: Unix 5421 (schroedter, hobbs) 5422 5423 2002-02-25 (bug fix)[483575] [fconfigure ... -error] now no-op on Mac (kupries) 5424 5425 2002-02-28 (performance enhancement)[458872] fully qualified command names use 5426 cached Command for all namespaces, avoiding repeated lookups (sofer) 5427 5428 * (new feature)[TIP 27] completed CONST-ification of TCL APIs. 5429 Added compiler macro USE_NON_CONST to keep using those old API prototypes 5430 that present irreconcilable source incompatibilities with header files 5431 of prior Tcl releases. Others will need to be reconciled. 5432 *** POTENTIAL INCOMPATIBILITY *** 5433 5434 2002-03-04 (bug fix)[474358, 218099, 219314, 524674] fixed several problems 5435 related to the handling of iso2022 text and finalization of escape-based 5436 encodings. (taguchi, takahashi, hobbs) 5437 5438 --- Released 8.4a4, March 5, 2002 --- See ChangeLog for details --- 5439 5440 2002-03-06 (new feature)[TIP 80] expanded [lsearch] options (wilkason, fellows) 5441 5442 2002-03-07 (new feature)[TIP 87] [interp recursionlimit] (trier) 5443 5444 2002-03-08 (platform feature) mingw 1.1 build favored (dejong) 5445 5446 2002-03-20 (new feature)[TIP 27] CONST-ified variable access functions (porter) 5447 5448 2002-03-24 (bug fix)[511666,511658,523217,530960] expanded 5449 Tcl_FSMatchInDirectory to handle assorted [glob] bugs in VFS. (darley) 5450 *** POTENTIAL INCOMPATIBILITY with prior 8.4a releases *** 5451 5452 2002-03-25 (bug fix)[495726] stopped tcltest disabling of auto-loading (porter) 5453 5454 2002-03-25 (bug fix)[495977] allow \n in test constraints (porter) 5455 5456 2002-03-27 (platform support)[527941,533862] VC/winhelp/W9X (spjuth, 5457 gravereaux) 5458 5459 2002-03-28 (bug fix)[219181] exception at level 0 issues (sofer) 5460 5461 2002-03-28 (bug fix)[219362] command termination; Tcl_CreateTrace (knoll,sofer) 5462 5463 2002-04-05 (bug fix)[536879] exceptions during variable subst (porter) 5464 5465 2002-04-15 (bug fix)[497446,513983] tcltest syntax errors now raised (porter) 5466 ***POTENTIAL INCOMPATIBILITY with prior tcltest 2.0.* (8.4aX)*** 5467 5468 2002-04-17 (bug fix)[495660] [(save|restore)state] deprecated (porter) 5469 5470 2002-04-17 (bug fix)[526524] escape-based encodings corrected (yamamoto, hobbs) 5471 5472 2002-04-18 (bug fix)[542588] [expr] error msgs improved (ehrens, sofer) 5473 5474 2002-04-18 (bug fix)[545325] [info level $level] now returns [namespace eval] 5475 as documented (suchenwirth,sofer) 5476 5477 2002-04-19 (bug fix)[544727] export [mcload]; ns context of [mcmax] (porter) 5478 => msgcat 1.2.3 5479 5480 2002-04-22 (performance enhancement) threaded memory allocator (AOL, hobbs) 5481 5482 2002-04-24 (new feature) TCLTK_NO_LIBRARY_TEXT_RESOURCES #define disables 5483 inclusion of tcl library code in resource fork on Mac. (steffen) 5484 5485 2002-05-21 (platform support) static libs on OSF (dejong) 5486 5487 2002-05-24 (bug fix)[557878] set encoding on listening socket (staplin, 5488 kupries) 5489 5490 2002-05-24 (new feature)[TIP 91] Tcl_Seek compatibility (fellows) 5491 5492 2002-05-28 (bug fix)[545579] VFS [load] left temp file (darley) 5493 5494 2002-05-28 (bug fix)[559376] plug timezone env leak on Windows (hobbs) 5495 5496 2002-05-29 (performance enhancement) [string compare] optimized (hobbs,fellows) 5497 5498 2002-05-31 (bug fix)[550534] plug interp leak in [pkg_mkIndex] (helmut) 5499 5500 2002-05-31 (dead code)[474335,555635] removed all use of matherr() (english) 5501 *** POTENTIAL INCOMPATIBILITY *** 5502 5503 2002-06-04 (new feature)[TIP 85,521362] custom result match in tcltest 5504 (markus, porter) 5505 => tcltest 2.1 5506 5507 2002-06-06 (bug fix)[524352] encoding, threading, and environment issues on 5508 MacOSX (steffen) 5509 5510 2002-06-06 (bug fix)[512214,558742,512214,461000] lazy initialization of 5511 tcltest constraints (porter) 5512 5513 2002-06-07 (bug fix)[563122,564595] EOVERFLOW definitions (fellows) 5514 5515 2002-06-11 (bug fix)[567386] [info locals] corrections (sofer) 5516 5517 2002-06-14 (new feature)[TIP 102] [trace list] renamed [trace info] (fellows) 5518 5519 2002-06-17 (new feature)[525522,525525] msgcat support for XPG4 locales; 5520 examination of LC_ALL, LC_MESSAGES environment variables (haible, porter) 5521 => msgcat 1.3 5522 5523 2002-06-17 (new feature)[565088] header files assume modern C compiler by 5524 default; older compilers may need configuration (english) 5525 *** POTENTIAL INCOMPATIBILITY *** 5526 5527 2002-06-17 (bug fix)[554068] [exec] argument quoting on Windows (darley) 5528 5529 2002-06-17 (new feature)[TIP 62,462580] command execution traces (lavana) 5530 5531 2002-06-19 (bug fix)[558324] regexp sets a linked variable (watson) 5532 5533 * (performance enhancment) optimizations of bytecode execution (sofer) 5534 5535 2002-06-21 (new feature)[TIP 99,562970] new [file link] command (darley) 5536 5537 2002-06-24 (new feature)[TIP 101] new [tcltest::configure] command (porter) 5538 => tcltest 2.2 5539 5540 2002-06-25 (new feature) --enable-man-symlinks and --enable-man-compression 5541 options to configure (max) 5542 5543 2002-06-26 (bug fix)[565880] [clock format] now respects locale (max) 5544 *** POTENTIAL INCOMPATIBILITY *** 5545 5546 2002-07-03 (bug fix)[577015] [catch] catches even compile errors (sofer) 5547 5548 --- Released 8.4b1, July 5, 2002 --- See ChangeLog for details --- 5549 5550 2002-07-08 (bug fix) restored compatibility of [viewFile] in tcltest (porter) 5551 5552 2002-07-11 (bug fix) [file normalize] returns long form on Win 95/98/ME (darley) 5553 5554 2002-07-15 (performance enhancment) variable operations rewritten to store 5555 and use cached Var pointers (sofer) 5556 5557 2002-07-22 (bug fix)[218000] Inf and Nan are floating-point values (fellows) 5558 5559 2002-07-23 (platform support)[219220] 64-bit compile on IRIX (dejong) 5560 5561 2002-07-25 (bug fix)[219218] return codes in background errors (english) 5562 5563 2002-07-28 (bug fix)[582522] alias fires exec traces (sofer) 5564 5565 2002-07-29 (bug fix)[578363] regexp (fellows,pvgoran) 5566 5567 2002-07-30 (bug fix)[584603] WriteChars infinite loop non-UTF-8 string (kupries) 5568 5569 2002-08-04 (new feature)[584051,580433,585105,582429][TIP 27] Tcl interfaces 5570 are now fully CONST-ified. Use the symbols USE_NON_CONST or 5571 USE_COMPAT_CONST to select interfaces with fewer changes. 5572 *** POTENTIAL INCOMPATIBILITY *** 5573 5574 2002-08-05 (bug fix)[589859] tcltest setup and cleanup scripts skipped when 5575 test body is skipped (porter) 5576 => tcltest 2.2 5577 5578 2002-08-07 (bug fix)[587488] mem leak with USE_THREAD_ALLOC (sofer,sass) 5579 5580 2002-08-07 (feature enhancement)[584794,584650,472576] boolean values 5581 are no longer always re-parsed from string. (sofer) 5582 5583 Many internal bugs fixed. 5584 Considerable cleanup of the test suite. 5585 5586 --- Released 8.4b2, August 9, 2002 --- See ChangeLog for details --- 5587 5588 2002-08-20 (new feature) --enable-memdebug configure option (kupries) 5589 5590 2002-08-23 (bug fix)[597936] mem leak with USE_THREAD_ALLOC (sofer,zoran) 5591 5592 2002-08-26 (bug fix)[599788] segfault in compiler (sofer,wilkason) 5593 5594 2002-08-28 (bug fix)[414910] avoid mem leaks accessing environment variables 5595 on Windows (welton,gravereaux) 5596 5597 2002-08-31 (platform support)[TIP 108] Mac OS X port (steffen,ingham) 5598 5599 2002-09-02 (platfrom support) 64-bit compile on HP-11 (martin) 5600 5601 --- Released 8.4.0, September 10, 2002 --- See ChangeLog for details --- 5602 5603 2002-09-18 (platform support) Updated support for compiling with Cygwin and 5604 either mingw or gcc. (khan, howell, dejong) 5605 5606 2002-09-22 (bug fix)[612786, 611922] Corrected [puts -nonewline] within 5607 test bodies. Also corrected reporting of body return code. Updated tcltest 5608 to v2.2.1. 5609 5610 2002-09-24 (bug fix)[613117] More robust 64-bit wide integer value 5611 detection (fellows) 5612 5613 2002-09-26 (bug fix) correct overeager optimization of noop proc to handle 5614 the precompiled case. (sofer, hobbs) 5615 5616 2002-09-26 (bug fix)[615115] removed extraneous spaces in koi8-u.enc that 5617 confused encoding reader. 5618 5619 2002-09-29 (bug fix)[219355] Added proper exiting conditions using Win32 5620 console signals. This handles the existing lack of a Ctrl+C exit to call 5621 exit handlers when built for thread support. Also, properly handles exits 5622 from other conditions such as CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and 5623 CTRL_SHUTDOWN_EVENT signals. In all cases, exit handlers will be called. 5624 (gravereaux) 5625 5626 2002-09-30 (bug fix) improve the checking for bad regular expressions 5627 during regexp compilation. Resultant compiles were correct, but much 5628 slower than necessary. (hobbs) 5629 5630 2002-10-01 (bug fix) fix precompiled locals to support 8.3 precompiled 5631 code. (hobbs) 5632 5633 2002-10-09 (bug fix)[620735] Added code to set an exit handler on Windows 5634 that terminates the thread that calibrates the performance counter, so that 5635 the thread won't outlive unloading the Tcl DLL. (kenny) 5636 5637 2002-10-09 (build support) all --enable-symbols to take the enhanced 5638 options yes|no|mem|compile|all. (hobbs) 5639 5640 2002-10-10 (build support) enable USE_THREAD_ALLOC (new threaded allocator) 5641 by default on Windows. (hobbs, gravereaux) 5642 5643 2002-10-14 (bug fix)[623269] correct possible mem leak in 5644 Tcl_PutEnv. (brouwers) 5645 5646 2002-10-15 (bug fix)[615043] fix in execution traces with idle tasks 5647 firing. (lavana) 5648 5649 2002-10-15 (platform support) Correct AIX-5 ppc and 4/5 64-bit build flags. 5650 Correct HP 11 64-bit gcc building. (martin, hobbs) 5651 5652 2002-10-17 (bug fix)[624755] Fixed code that check for proper # of args to 5653 [array names] (porter) 5654 5655 2002-10-18 (feature enhancement)[625453] Added support for broadcasting 5656 changes to the registry Environment on Windows. Updated registry package 5657 to v1.1. (hobbs) 5658 5659 2002-10-22 (platform support)[624509] On macosx, add embedded framework 5660 dirs to tcl_pkgPath: @executable_path/../Frameworks and 5661 @executable_path/../PrivateFrameworks (if they exist), as well as the dirs 5662 in DYLD_FRAMEWORK_PATH (if set). (steffen) 5663 5664 --- Released 8.4.1, October 22, 2002 --- See ChangeLog for details --- 5665 5666 2002-10-28 (bug fix)[627660] [package unknown] chaining for platform specifics 5667 5668 2002-10-29 (bug fix)[627546] verbose [load] (dyld) error mesages on MacOSX 5669 5670 2002-11-01 (bug fix) [package provide registry] consistent versions. 5671 5672 2002-11-06 (bug fix)[582039] missing ar program -> configuration error 5673 5674 2002-11-06 (feature enhancement) added new TclInThreadExit function to 5675 test for thread exit vs whole process exit condition. The TclInExit 5676 function now correctly returns 1 during Tcl_Finalize processing. 5677 *** POTENTIAL INCOMPATIBILITY *** 5678 5679 2002-11-13 (bug fix)[615043] some execution traces were not firing 5680 5681 2002-11-18 (bug fix)[634856] multiple signs no longer accepted as valid integer 5682 [string is integer ++1] => 0 5683 *** POTENTIAL INCOMPATIBILITY *** 5684 5685 2002-11-26 (bug fix)[593810,597924] clean exit of channel worker threads on Win 5686 5687 2002-11-28 (new feature) `make valgrind` target 5688 5689 2002-12-03 (bug fix)[615304] repeated load/unload of Tcl now possible 5690 5691 2002-12-11 (bug fix)[647307] negative return codes now propagated by procs 5692 5693 2002-12-11 (bug fix)[648441] syntax error in [expr 0x] now detected. 5694 5695 2003-01-07 (bug fix)[633204] [catch {return}] => 2 (not 0) 5696 5697 2003-01-09 (bug fix)[634151] [file (a|m)time $nonASCIIpath $time] now works 5698 5699 2003-01-16 (bug fix) dde eval with {} service name does not crash. 5700 => dde 1.2.1 5701 5702 2003-01-16 (bug fix)[635200,655645,615043,571385] many command trace fixes 5703 5704 2003-01-31 (bug fix)[675614,678415,676978] tcltest conflicts in cleanup 5705 and -outfile; also failure in space-containing path; also missing [close] 5706 => tcltest 2.2.2 5707 5708 2003-02-01 (bug fix)[670042] corrected [info loaded {}] for static 5709 packages in multiple interps. 5710 5711 2003-02-01 (bug fix)[675356] [clock clicks {}]; [clock clicks -] - syntax errs 5712 5713 2003-02-01 (bug fix)[656660] MT-safety for [clock format] 5714 5715 2003-02-03 (bug fix)[651271] command rename traces get fully-qualified names 5716 *** POTENTIAL INCOMPATIBILITY *** 5717 5718 2003-02-07 (performance improvement) [glob] on Windows is 2.5 times faster 5719 5720 2003-02-07 (feature change) lack of Cygwin support indicated by config error 5721 5722 2003-02-11 (bug fix)[684744] [info complete] stopped by \x00 5723 5724 2003-02-11 (bug fix)[685445] [glob -types l] missed broken symlinks on Unix 5725 5726 2003-02-11 (bug fix) [lsearch -regexp $a $a] doesn't crash 5727 5728 2003-02-13 (bug fix)[685926] accept non-ASCII7 for tcl_platform(user) on Win 5729 5730 2003-02-15 (bug fix)[673714] stop crash when Tcl_DeleteEvents deletes last 5731 5732 2003-02-15 (bug fix)[681841] parser missed some missing ] syntax errors 5733 5734 2003-02-17 (bug fix)[684756] memory leak during command rename plugged 5735 5736 2003-02-18 (bug fix)[689100] reduced per-thread memory overhead 5737 5738 2003-02-18 (platform support)[651811] use xnet library on HP 11 (64 bit). 5739 5740 2003-02-20 (bug fix)[Patch 689341] correct jis round-trip encoding 5741 5742 2003-02-20 (bug fix)[689835] stop MacOSX hang trying to read a write-only pipe 5743 5744 2003-02-07 (performance improvement) [tclPkgUnknown]: fewer vfs calls 5745 5746 2003-02-18 (platform support) cut and splice procs for file channels on Mac 5747 5748 2003-02-21 (bug fix)[690774] [binary scan] failed on some wide ints 5749 5750 2003-02-22 (bug fix)[571002] plugged data leak during thread exit 5751 5752 2003-02-25 (feature change) [pkg_mkIndex -load]: case-insensitive match 5753 *** POTENTIAL INCOMPATIBILITY *** 5754 5755 2003-02-27 (bug fix)[694232] stop [lsearch -start 0 {} x] segfault 5756 5757 --- Released 8.4.2, March 3, 2003 --- See ChangeLog for details --- 5758 5759 2003-03-06 (bug fix)[699042] Correct case-insensitive unicode string 5760 comparison in Tcl_UniCharNcasecmp 5761 5762 2003-03-11 (bug fix) Corrected loading of tclpip8x.dll on Win9x 5763 5764 2003-03-12 (bug fix)[702383] Corrected parsing of interp create -- 5765 5766 2003-03-12 (bug fix)[685106] Correct Tcl_SubstObj handling of \x00 bytes 5767 5768 2003-03-14 (bug fix)[702622 699060] Correct wide int issues in 'format' 5769 5770 2003-03-14 (bug fix)[698146] Remove assumption that file times and longs 5771 are the same size. 5772 5773 2003-03-18 (bug fix)[697862] Allow Tcl to differentiate between reparse 5774 points which are symlinks and mounted drives on Windows 5775 5776 2003-03-19 (bug fix)[705406] Bad command count on TCL_OUT_LINE_COMPILE 5777 5778 2003-03-20 (bug fix)[707174] Store pointers to notifier funcs in a struct 5779 to work around some platform linker issues 5780 5781 2003-03-22 (bug fix)[708218] Load correct (non-)debug dll for dde or 5782 registry 5783 5784 2003-03-24 (bug fix)[631741 696893] Fixing ObjMakeUpvar's lookup algorithm 5785 for the created local variable 5786 5787 2003-04-07 (bug fix)[713562] Make sure that tclWideIntType is defined and 5788 somewhat sensible everywhere 5789 5790 2003-04-07 (bug fix)[711371] Corrected string limits of arguments 5791 interpolated in error messages for 'if' 5792 5793 2003-04-11 (bug fix)[718878] Corrected inconsistent results of 5794 [string is integer] observed on systems where sizeof(long) != sizeof(int) 5795 5796 2003-04-12 (bug fix) Substantial changes to the Windows clock synch 5797 phase-locked loop in a quest for improved loop stability 5798 5799 2003-04-16 [713562] Made changes so that the "wideInt" Tcl_ObjType is 5800 defined on all platforms, even those where TCL_WIDE_INT_IS_LONG is defined. 5801 Also made the Tcl_Value struct have a wideValue field on all platforms. 5802 Potential incompatibility for TCL_WIDE_INT_IS_LONG platforms because that 5803 struct changes size. 5804 *** POTENTIAL INCOMPATIBILITY *** 5805 5806 2003-04-25 (bug fix)[727271] Catch any errors returned by the Windows 5807 functions handling TLS ASAP instead of waiting to get some mysterious crash 5808 later on due to bogus pointers. 5809 5810 2003-04-29 (bug fix) Correct 'glob -path {[tcl]} *', where leading 5811 special character instead lists files in '/'. Bug only occurs on Windows 5812 where '\' is also a directory separator. 5813 5814 2003-05-09 (bug fix)[731754] Fixed memory leak in threaded allocator on 5815 Windows caused by treating cachePtr as a TLS index 5816 5817 2003-05-10 (bug fix)[710642] Ensure cd is thread-safe 5818 5819 2003-05-10 (bug fix)[718002] Correct mem leak on closing a Windows serial 5820 port 5821 5822 2003-05-10 (bug fix)[714106] Prevent string repeat crash when overflow 5823 sizes were given (throws error). 5824 5825 2003-05-13 (feature enhancement)[736774] Use new versioned bundle resource 5826 API to get tcl runtime library for TCL_VERSION on Mac OS X. 5827 5828 2003-05-13 (bug fix)[711232] Worked around the issue of realpath() not 5829 being thread-safe on Mac OS X by defining NO_REALPATH for threaded builds 5830 on Mac OS X. 5831 5832 2003-05-14 (bug fix)[557030] Correct handling of the gb2312 encoding by 5833 making it an alias of the euc-cn encoding and creating a gb2312-raw 5834 encoding for the original. Most uses of gb2312 really mean euc-cn. 5835 5836 2003-05-14 (bug fix)[736421] Corrected another putenv() copy behavior 5837 problem when compiling on Windows and using Microsoft's runtime. 5838 5839 --- Released 8.4.3, May 20, 2003 --- See ChangeLog for details --- 5840 5841 2003-05-23 (bug fix)[726018] reverted internals change to the 5842 'cmdName' Tcl_ObjType that broke several extensions (TclBlend, e4graph...) 5843 in the 8.4.3 release. 5844 5845 2003-06-10 (bug fix)[495830] stop eval of bytecode in deleted interp. 5846 5847 2003-06-17 (bug fix) corrections to regexp when matching emtpy string. 5848 5849 2003-06-25 (bug fix)[748957] -*ieee compiler flags for Tru64 builds. 5850 5851 2003-07-11 (bug fix) [pkg_mkIndex] indexes provided packages, not indexed ones. 5852 5853 2003-07-15 (feature enhancement) MacOSX build system rewrite. 5854 5855 2003-07-15 (bug fix)[771613] corrected segfault in [if] (buffer overflow) 5856 5857 2003-07-16 (bug fix)[756791] corrected assumption that Tcl_Free == free 5858 5859 2003-07-16 (feature enhancement) -DTCL_UTF_MAX=6 compile option forces 5860 internal UCS-4 representation of Unicode (default is recommended UCS-2). 5861 5862 2003-07-16 (bug fix)[767578] 64-bit corrections in thread notifier. 5863 5864 2003-07-16 (bug fix)[759607] Safe Base tests normalized paths. 5865 5866 2003-07-16 (feature enhancement)[Patch 679315] improved Cygwin path support 5867 5868 2003-07-18 (bug fix)[706359] corrected broken -output option of [tcltest::test] 5869 => tcltest 2.4.4 5870 5871 2003-07-18 (bug fix)[753315] MT-safety of VFS records. 5872 5873 2003-07-18 (bug fix)[759888] support for user:pass in URL by [http::geturl] 5874 => http 2.4.4 5875 5876 Improved documentation, new tests, and some code cleanup. 5877 [655300, 720634, 735364, 748700, 756112, 756744, 756951, 758488, 760768, 5878 763312, 769895, 771539, 771840, 771947, 771949, 772333] 5879 5880 --- Released 8.4.4, July 22, 2003 --- See ChangeLog for details --- 5881 5882 2003-07-23 (bug fix)[775976] fix registry compilation for VC7. 5883 5884 2003-08-05 (enhancement)[781585] Use Tcl_ResetResult in bytecodes to 5885 prevent potential costly Tcl_Obj duplication. 5886 5887 2003-08-06 (bug fix)[781609] prevent non-Windows platforms from trying to 5888 use the registry package inside msgcat. 5889 5890 2003-08-27 (bug fix)[411825] Fix TclNeedSpace to handle non-breaking space 5891 (\u00A0) and backslash escapes correctly. 5892 5893 2003-09-01 (bug fix)[788780] Fix thread-safety issues in filesystem records. 5894 5895 2003-09-19 (bug fix)[804681] Protect ::errorInfo and ::errorCode traces 5896 from corrupting stack. 5897 5898 2003-09-23 (bug fix)[218871] Fix handling of glob-sensitive chars in 5899 auto_load and auto_import. 5900 5901 2003-10-03 (bug fix)[811483] Fixed refcount management for command and 5902 execution traces. 5903 5904 2003-10-04 (bug fix)[789040] Fixed exec command.com error for Win9x. 5905 5906 2003-10-06 (bug fix)[767834, 813273] Fixed volumerelative file 5907 normalization and 'file join' inconsistencies. 5908 5909 2003-10-08 (bug fix)[769812] Fix Tcl_NumUtfChars string length calculation 5910 when negative parameter is given. 5911 5912 2003-10-22 (bug fix)[800106] Handle VFS mountpoints inside glob'd dirs. 5913 5914 2003-10-22 (bug fix)[599468] Watch for FD_CLOSE too on Windows when 5915 asked for writable events by the generic layer. 5916 5917 2003-10-23 (bug fix)[813606] Detect OS X pipes correctly. 5918 5919 2003-11-05 (bug fix)[832657] Allow .. in libpath initialization. 5920 5921 2003-11-11 (bug fix) Improve AIX-64 build configuration. 5922 5923 2003-11-17 (bug fix)[230589, 504785, 505048, 703709, 840258] fixes to 5924 various odd regexp "can't happen" bugs. 5925 5926 --- Released 8.4.5, November 20, 2003 --- See ChangeLog for details --- 5927 5928 2003-12-02 (bug fix)[851747] object sharing fix in [binary scan] 5929 5930 2003-12-09 (platform support)[852369] update errno usage for recent glibc 5931 5932 2003-12-12 (bug fix)[858937] fix for [file normalize ~nobody] 5933 5934 2003-12-17 (bug fix)[839519] fixed two memory leaks (vasiljevic) 5935 5936 2004-01-09 (bug fix)[873311] fixed infinite loop in TclFinalizeFilesystem 5937 5938 2004-02-02 (bug fix)[405995] Tcl_Ungets buffer filling fix 5939 5940 2004-02-04 (bug fix)[833910] tcltest command line option parsing error 5941 => tcltest 2.4.5 5942 5943 2004-02-04 (bug fix)[833637] code error in tcltest -preservecore operation 5944 5945 2004-02-12 (feature enhancement) update HP-11 build libs setup 5946 5947 2004-02-17 (bug fix)[849514,859251] corrected [file normailze] of $link/.. 5948 5949 2004-02-17 (bug fix)[772288] Unix std channels forced to exist at startup. 5950 5951 2004-02-17 (new default) tcltest::configure -verbose {body error} 5952 5953 2004-02-19 (bug fix) init.tcl search path with unusual --libdir (samson) 5954 5955 2004-02-25 (bug fix)[554068] stopped broken [exec] quoting of { (gravereaux) 5956 5957 2004-02-25 (bug fix)[888777] plugged memory leak with long host names (cassoff) 5958 5959 2004-03-01 (bug fix)[462580] corrected level interpretation of Tcl_CreateTrace 5960 5961 2004-03-01 (platform support)[218561] Allow 64-bit configure on IRIX64-6.5* 5962 5963 --- Released 8.4.6, March 1, 2004 --- See ChangeLog for details --- 5964 5965 Changes to 8.5a1 include all changes to the 8.4 line through 8.4.6, 5966 plus the following, which focuses on the high-level feature changes 5967 in this changeset (new minor version) rather than bug fixes: 5968 5969 * refactored IO code to split FS path code into generic/tclPathObj.c 5970 and generic/tclFileSystem.h 5971 5972 * refactored trace code into generic/tclTrace.c 5973 5974 * configure scripts now require autoconf 2.57 for regeneration 5975 5976 * updated runtime library scripts to use newer Tcl code features 5977 (like replacing regsub with string map) 5978 5979 * improve robustness of tcltest test suite across environments 5980 5981 * changed the bytecode evaluation-stack addressing mode, from array-style 5982 to pointer-style; the catch stack and evaluation stack are now 5983 contiguous in memory 5984 5985 * switch command is now byte-compiled 5986 5987 * enhanced checking in 'file' command for Windows NT file permissions 5988 5989 * [TIP #57] new 'lassign' command (adopted from TclX) 5990 5991 * [TIP #75] switch -regexp now provides submatch info 5992 5993 * [TIP #90] extended 'catch' and 'return' to enable creation of procs 5994 that are a true replacement for 'return' 5995 5996 * [TIP #100] new 'unload' command (can unload DLLs loaded via 'load', 5997 requires the extension writer to support it) 5998 5999 * [TIP #111] new 'dict' command. Several commands have been updated 6000 to handle the list form of dicts implicitly at the C level where 6001 only lists were previously accepted 6002 6003 * [TIP #112] 'namespace ensemble' command addition allows for ensembles 6004 that build on the namespace abstraction 6005 6006 * [TIP #118] file attributes -readonly option for unices that support 6007 chflags(), support Mac Classic attribute options on OS X, add 6008 -rsrclength for OS X, enhance file copy on OS X to copy finder 6009 attributes and resource forks transparently 6010 6011 * [TIP #120] enable dde in safe interpreters 6012 * [TIP #130] enable unique dde server names on Windows 6013 * [TIP #135] change dde servername -exact option to -force 6014 => dde 1.3 6015 6016 * [TIP #121] new Tcl_SetExitProc C API to control application shutdown 6017 6018 * [TIP #123] expr ** exponentiation operator 6019 6020 * [TIP #124] 'clock clicks -milliseconds' now returns a wide integer and a 6021 new 'clock clicks -microseconds' returns a wide integer, representing 6022 the number of microseconds, both since the Posix epoch 6023 6024 * [TIP #127] added 'lsearch -index' option 6025 6026 * [TIP #136] added 'lrepeat' command 6027 6028 * [TIP #137/151] Add -encoding option to 'source' command and main tclsh 6029 executable. 6030 *** POTENTIAL INCOMPATIBILITY *** 6031 For Tcl embedders that build on Tcl_Main() and make use of Tcl_Main's 6032 former ability to pass a leading "-encoding" option to interactive shell 6033 operations, this will now be consumed by Tcl. 6034 6035 * [TIP #138] New TCL_HASH_KEY_SYSTEM_HASH option for Tcl hash tables 6036 6037 * [TIP #139] documented portions of Tcl's namespace C APIs 6038 6039 * [TIP #148] correct [list]-quoting of the '#' character 6040 *** POTENTIAL INCOMPATIBILITY *** 6041 For scripts that assume a particular (buggy) string rep for lists. 6042 6043 * [TIP #156] add "root locale" to msgcat 6044 => msgcat 1.4 6045 6046 * [TIP #157] leading {expand} syntax on words to cause argument expansion. 6047 This is a safer/cleaner alternative to the use of 'eval'. 6048 6049 --- Released 8.5a1, March 3, 2004 --- See ChangeLog for details --- 6050 6051 2004-03-04 (new feature) registry package is [unload]able (thoyts) 6052 => registry 1.1.4 6053 6054 2004-03-08 (bug fix)[910525] [glob -path] in root directory (darley) 6055 6056 2004-03-12 (new feature)[TIP 163] [dict merge] (english, fellows) 6057 6058 2004-03-18 (platform support) support for Mac Classic removed (steffen) 6059 6060 2004-03-28 (bug fix)[925121] corrected segfault in bc compiler (sofer) 6061 6062 2004-03-30 (bug fix)[495830,729692] bytecode execution checks 6063 each command/interp validity before executing. (sofer) 6064 6065 2004-03-31 (bug fix)[811457] support translation to "" (porter) 6066 2004-03-31 (bug fix)[811461] ignore locales with no "language" part (porter) 6067 => msgcat 1.4.1 6068 6069 2004-04-01 (bug fix) make [glob -type d -dir . *] work across VFS boundary 6070 6071 2004-04-06 (clean up) refactored Tcl header file #include order. Might 6072 create need for changes in extensions that #include private headers. 6073 Changed source code files should work with older Tcl as well. See ChangeLog. 6074 *** POTENTIAL INCOMPATIBILITY *** 6075 6076 2004-04-07 (bug fix)[920667] install into any Unicode path on Win (hobbs) 6077 6078 2004-04-07 (platform support) properly substitute more values in Windows 6079 tclConfig.sh (hobbs) 6080 6081 2004-04-23 (bug fix)[930851] reset channel EOF when eofchar changes (kupries) 6082 6083 2004-04-28 (bug fix)[600812][TIP 184] [upvar 0 scalar array(foo)] raises error 6084 6085 2004-05-03 (bug fix)[947070] stack overflow prevention on Win (kenny) 6086 6087 2004-05-03 (bug fix)[868853] fix leak in [fconfigure $serial -xchar] (cassoff) 6088 6089 2004-05 (bug fix)[928353,929892,928808,947440,948177] test fixes: OSX (abner) 6090 6091 2004-05-05 (bug fix)[794839] socket connect error -> r/w fileevents 6092 (gravereaux) 6093 6094 2004-05-07 (bug fix)[949905] corrected utf-8 encoding of \u0000 on I/O (max) 6095 6096 2004-05-13 (new feature)[TIP 129] [binary scan tnmrRqQ] (markus, fellows) 6097 6098 2004-05-13 (new feature)[TIP 142] [interp limit] (fellows) 6099 6100 2004-05-14 (bug fix)[940278,922848] [clock] notices $::env(TZ) changes, 6101 gmt works on all platforms. (kenny, welton, glessner) 6102 6103 2004-05-16 (feature rewrite) bytecode execution of {expand} changed 6104 *** POTENTIAL INCOMPATIBILITY with prior 8.5a releases *** 6105 6106 2004-05-18 (platform support) makefile.vc now generates tclConfig.sh (thoyts) 6107 6108 2004-05-18 (bug fix)[500285,500389,852944] [clock %G %V] ISO8601 week numbers 6109 (kenny) 6110 6111 2004-05-22 (bug fix)[735335,736729] variable name resolution error (sofer) 6112 6113 2004-05-24 (bug fix) support for non-WIDE_INT aware math functions (hobbs) 6114 6115 2004-05-25 (new feature) [http::config -urlencoding] (hobbs) 6116 => http 2.5.0 6117 6118 2004-05-26 (bug fix)[960926] file count doubled when -singleproc 1 (porter) 6119 => tcltest 2.2.6 6120 6121 2004-05-26 (bug fix)[874058] improved build configuration on 64-bit systems. 6122 Corrects Tcl_StatBuf definition issues. (hobbs) 6123 6124 2004-05-30 (platform support) Win: allow signed short exit codes (gravereaux) 6125 6126 2004-06-05 (bug fix)[976722] hi-res clock fixes: Win 6127 (godfrey, suchenwirth, kenny) 6128 2004-06-10 (bug fix)[932314] bad return values from Tcl_FSChdir() (vasiljevic) 6129 6130 2004-06-18 (platform support) regonize more unix locales (huang) 6131 6132 2004-06-18 (bug fix) prevent stack overflow from long free() chains (fellows) 6133 6134 2004-06-21 (platform support) exceptions w/ gcc -O3 on Win (dejong) 6135 6136 2004-06-23 (feature rewrite)[976496] thread local storage done with hash 6137 tables to avoid system limits (mistachkin) 6138 6139 2004-06-29 (bug fix)[981733] SafeBase global pollution (fellows) 6140 6141 2004-06-30 (new feature)[TIP 188] [string is wideinteger] (kenny) 6142 6143 2004-07-02 (new feature)[TIP 202] pipe redirection 2>@1 (hobbs) 6144 6145 2004-07-03 (bug fix)[908375] round() wide integer support (lavana, sofer) 6146 6147 2004-07-07 (bug fix)[458361] shimmer of single-word scripts suppressed (sofer) 6148 6149 2004-07-15 (bug fix)[770053] crash in thread finalize of notifier (vasiljevic) 6150 6151 2004-07-15 (bug fix)[990453] plug mutex leaks on reinit 6152 (mistachkin, vasiljevic) 6153 6154 2004-07-16 (bug fix)[990500] clean exit of notifier thread 6155 (mistachkin, kupries) 6156 6157 2004-07-19 (bug fix)[987967] improved self-init of mutexes on Win (vasiljevic) 6158 6159 2004-07-20 (bug fix) pure Darwin/CFLite support (steffen) 6160 6161 2004-07-20 (bug fix)[736426] plug leaky allocator reinit (mistachkin, kenny) 6162 6163 2004-07-30 (bug fix)[999084] no deadlock in re-entrant Tcl_Finalize (porter) 6164 6165 2004-08-02 (new feature)[TIP 207] [interp invokehidden -namespace] (porter) 6166 6167 2004-08-10 (bug fix) thread IDs on 64-bit systems (ratcliff,vasiljevic) 6168 6169 2004-08-13 (bug fix) avoid malicious code acceptance by [mclocale] (porter) 6170 => msgcat 1.3.3 6171 6172 2004-08-16 (bug fix)[1008314] Tcl_SetVar TCL_LIST_ELEMENT (sofer,porter) 6173 6174 2004-08-18 (new feature)[TIP 173,209] complete [clock] rewrite (kenny) 6175 *** POTENTIAL INCOMPATIBILITY *** 6176 6177 2004-08-18 (new feature)[TIP 189] package loading for Tcl Modules (kupries) 6178 6179 2004-08-19 (bug fix)[1011860] [scan %ld] fix on LP64 (fellows,porter) 6180 6181 2004-08-23 (bug fix)[695441] extend [tcl_findLibrary] search path to include 6182 $::auto_path and [pkgconfig get scriptdir,runtime] (porter) 6183 6184 2004-08-27 (platform support) TCL_MODULE_PATH values for Mac OSX (steffen) 6185 6186 2004-08-27 (bug fix)[1017022] recognize imported ensembles (fellows) 6187 6188 2004-08-30 (bug fix) [string map $x $x] crash (fellows) 6189 6190 2004-09-01 (bug fix)[1020445] WIN64 support (hobbs) 6191 6192 2004-09-03 (bug fix)[1020538] crash in [file copy] (violi,fellows) 6193 6194 2004-09-07 (bug fix)[1016167] [after] overwrites its imports (kenny) 6195 6196 2004-09-08 (bug fix) fixed [clock format 0 -format %k] (kenny) 6197 6198 2004-09-09 (bug fix)[560297] fixed broken [namespace forget] logic (porter) 6199 6200 2004-09-09 (bug fix)[1017299] fixed [namespace import] cycle prevention 6201 (porter) 6202 6203 2004-09-10 (performance) $x[set x {}] is now fast [K $x [set x {}]] (sofer) 6204 6205 2004-09-10 (bug fix)[868489] better control over int <-> wideInt 6206 (fellows,kenny) 6207 6208 2004-09-10 (bug fix)[1025359] POSIX errorCode from wide seeks (kupries,fellows) 6209 6210 2004-09-10 (bug fix)[707104,1026493] fix [rename] of [interp alias] (porter) 6211 6212 2004-09-18 (bug fix)[868467] fix [expr 5>>32] => 0, not 5 (hintermayer,fellows) 6213 6214 2004-09-21 (bug fix) consistent errorinfo from [namespace eval x error foo bar] 6215 and [namespace eval c {error foo bar}] (porter) 6216 6217 2004-09-22 (feature change) syntax errors not reported at compile time; 6218 deferred to runtime. Support [return -errorline]. (porter) 6219 6220 2004-09-23 (bug fix)[1016726] fix `make clean` in static config 6221 (leitgeb,dejong) 6222 6223 2004-09-22 (feature change) report all compile errors at runtime (porter) 6224 6225 2004-09-29 (bug fix)[1036649] syntax error in [subst] => buffer overflow 6226 (sofer) 6227 6228 2004-09-30 (bug fix)[1038021] save/restore error state: var traces (porter) 6229 6230 2004-10-01 (performance) stackframe level values in internal reps (fellows) 6231 6232 2004-10-01 (feature change)[1037235] auto-create [dict] key paths (fellows) 6233 6234 2004-10-04 (bug fix)[884830] eq and ne parse in expr (fellows) 6235 6236 2004-10-05 (reform) errorInfo, errorCode management (porter) 6237 *** POTENTIAL INCOMPATIBILITY for traces on those vars *** 6238 6239 2004-10-06 (feature change)[1041072] re-bless and enhance Tcl_AppendResult 6240 (dkf) 6241 6242 2004-10-06 (reform) more robust interp result appends (porter) 6243 => dde 1.3.1 6244 => registry 1.1.5 6245 6246 2004-10-06 (reform) re-write of [glob] guts (fellows) 6247 6248 2004-10-07 (reform)[925620] improved platform split of VFS code (darley) 6249 6250 2004-10-08 (new feature)[TIP 201] "in" and "ni" expr operators (fellows) 6251 6252 2004-10-08 (new feature)[TIP 212] [dict update]; [dict with] (fellows) 6253 6254 2004-10-08 (bug fix)[954263] case insensitive [file exec] for Win 6255 (hobbs,darley) 6256 6257 2004-10-14 (performance) [info commands/globals/procs/vars $pattern] faster 6258 when $pattern is trivial (fellows) 6259 6260 2004-10-14 (new feature)[TIP 217] [lsort -indices] (salsman,fellows) 6261 6262 2004-10-24 (reform) replaced bit flag values with macros for Var handling 6263 *** POTENTIAL INCOMPATIBILITY for accesses to Var internals *** 6264 6265 2004-10-26 (new feature)[1054370] install msgcat, http, tcltest as TM's 6266 (porter) 6267 6268 2004-10-26 (bug fix)[767676] negative PIDs with pipes (giese,gravereaux) 6269 6270 2004-10-27 (bug fix)[731778] stop critical section leaks 6271 (mistachkin,gravereaux) 6272 6273 2004-10-27 (bug fix)[926088] -load option to find tested packages (gravereaux) 6274 6275 2004-10-28 (bug fix)[1030548] restore the --enable-symbols --enable-threads 6276 build on Win (mistachkin,kenny,kupries) 6277 6278 2004-10-29 (bug fix)[1055673] fix command line syntax error message (porter) 6279 => tcltest 2.2.7 6280 6281 2004-10-30 (bug fix)[926106] fix [file mtime] DST anomaly (kenny) 6282 6283 2004-10-31 (bug fix)[1057461] fix [info globals ::varName] (fellows) 6284 6285 2004-11-02 (bug fix)[761471] fix [expr {NaN == NaN}] (sofer) 6286 6287 2004-11-02 (bug fix)[1017151] misleading errorInfo after tests (seeger,porter) 6288 6289 2004-11-03 (bug fix)[527164] preserve errorinfo from var traces (porter) 6290 6291 2004-11-08 (bug fix){947693] Made -blocking option of channel during [close] 6292 consistent on Windows with Unix (gravereaux) 6293 *** POTENTIAL INCOMPATIBILITY *** 6294 6295 2004-11-11 (bug fix)[1034337] recursive file delete, MacOSX (steffen) 6296 6297 2004-11-12 (new feature)[TIP 221] [interp bgerror] (porter) 6298 6299 2004-11-12 (new feature)[TIP 226] Tcl_(Save|Restore|Discard)InterpState 6300 (porter) 6301 6302 2004-11-12 (new feature)[TIP 227] Tcl_(Get|Set)ReturnOptions (porter) 6303 6304 2004-11-12 (bug fix)[1004065] stop crash when TCL_UTF_MAX==6 (hobbs,porter) 6305 6306 2004-11-15 (bug fix)[10653678] [trace variable],[trace remove] interop (porter) 6307 6308 2004-11-16 (bug fix)[1067709] crash in [fconfigure -ttycontrol] (hobbs) 6309 6310 2004-11-18 (new feature) configure options --enable-man-suffix (max) 6311 6312 2004-11-22 (bug fix)[1030465] Improve HAVE_TYPE_OFF64_T check (dejong) 6313 6314 2004-11-22 (bug fix)[1043129] Fixed the treatment of backslashes in file 6315 join on Windows (darley) 6316 6317 2004-11-22 (bug fix)[976438] Move init.tcl search path construction to 6318 tclInit (porter) 6319 6320 2004-11-24 (bug fix)[1072654] Fixed segfault in info vars trivial 6321 matching branch (new in 8.4.8) (porter) 6322 6323 2004-11-24 (bug fix)[1001325, 1071701] Fixed readdir_r detection and usage 6324 (dejong, kenny, porter) 6325 6326 2004-11-24 (bug fix)[1071807] Fixed all uses of 'select' to use standard 6327 macros rather than older bit-whacking style (kenny) 6328 6329 2004-11-26 (bug fix)[1073524] Simplify the code to check for correctness of 6330 strstr, strtoul and strtod on unix (fellows) 6331 6332 2004-11-26 (bug fix)[1072136] Remove file normalize on tcl_findLibrary 6333 search path uniqification added in 8.4.8 (porter) 6334 6335 2004-11-30 (bug fix)[976520] Rework startup/initialization of the Tcl 6336 library, encoding search initialization, and Tcl_FindExecutable structure. 6337 [tclInit] no longer driven by the value of $::tcl_libPath (TCLLIBPATH). 6338 (porter) 6339 *** POTENTIAL INCOMPATIBILITY : makes encoding names case sensitive 6340 on Windows, where they have been case insensitive *** 6341 6342 2004-12-02 (bug fix)[1074671] Ensure tilde paths are not returned specially 6343 by 'glob' (darley) 6344 6345 Doc improvements [759545,926590,935853,1017072,1018486,1022527,1027849, 6346 1032243,1047928,1048005,1058446,1062647,1065732,1073334,etc.] 6347 Test suite expansion [1036649,1001997,etc.] 6348 6349 --- Released 8.5a2, December 7, 2004 --- See ChangeLog for details --- 6350 6351 2004-12-13 (bug fix)[1083082] encoding memory leaks (ade,porter) 6352 6353 2004-12-13 (bug fix)[1082349] restored C++ extension support (porter) 6354 6355 2004-12-14 (bug fix)[1081541] workaround automake-ism "$U" (porter) 6356 6357 2004-12-15 (new feature) CallFrames on execution, not C, stack (sofer) 6358 6359 2004-12-16 (bug fix)[1085023] [interp limit] support in [vwait], etc. (fellows) 6360 6361 2004-12-29 (bug fix)[1090413] make [clock scan 0030] work (morian,kenny) 6362 6363 2004-12-29 (bug fix)[1092789] make [clock scan 10000] work (porter,kenny) 6364 6365 2004-12-29 (platform support)[1092952,1091967] MSVC7, gcc OPT compiles (hobbs) 6366 6367 2005-01-06 (performance)[1020491] [http::mapReply] (fellows) 6368 => http 2.5.1 6369 6370 2005-01-09 (bug fix)[1095909] stopped use of readdir_r (english) 6371 6372 2005-01-10 (enhancement)[1081595] stopped use of TCL_DBGX (english) 6373 6374 2005-01-17 (bug fix)[1100542] [glob] of Windows shares (schar,darley) 6375 6376 2005-01-19 (new feature)[TIP 235] C API for ensembles (fellows) 6377 6378 2005-01-21 (new feature)[TIP 233] virtual time (kupries) 6379 6380 2005-01-25 (bug fix)[1101670] [auto_reset] update for [namespace] (porter) 6381 ***POTENTIAL INCOMPATIBILITY*** 6382 May cause re-[source]-ing of files that have not anticipated that before. 6383 6384 2005-01-27 (new feature)[TIP 218] Tcl_Channel API update for threads (kupries) 6385 6386 2005-01-27 (bug fix)[1109484] Tcl_Expr* updates for Tcl_WideInt (hobbs) 6387 6388 2005-01-28 (platform support)[1021871] Solaris gcc 64-bit support (hobbs) 6389 6390 2005-02-10 (bug fix)[1119369] Tcl_EvalObjEx: avoid shimmer loss of List intrep 6391 (sofer,macdonald) 6392 6393 2005-02-11 (platform support) correct gcc builds for AIX-4+, HP-UX-11 (hobbs) 6394 6395 2005-02-24 (bug fix)[1119798] prevent [source $directory] (porter,mpettigr) 6396 => tcltest 2.2.8 6397 6398 2005-03-10 (bug fix)[1153871] bad ClientData cast (porter,victorovich) 6399 6400 2005-03-15 (platform support) OpenBSD ports patch (thoyts) 6401 6402 2005-03-18 (bug fix)[1115904] restore recursion limit in direct eval (porter) 6403 6404 2005-03-24 (bug fix) stop conflict between Tcltest and Thread packages (porter) 6405 6406 2005-03-29 (platform support) allow msys builds without cygwin (hobbs) 6407 6408 2005-04-01 (internal change)[1158008] internal rep of "list" Tcl_Obj's 6409 now uses a refcounted struct (sofer) 6410 ***POTENTIAL INCOMPATIBILITY*** 6411 For any code that goes poking into the internals of "list" Tcl_Obj's 6412 6413 2005-04-05 (performance)[1174551] Tcl_DecrRefCount of Tcl_Obj "chains" (sofer) 6414 6415 2005-04-08 (performance)[1077262] better Tcl_Encoding cache lifetimes (porter) 6416 6417 2005-04-10 (bug fix)[1180368] [interp invokehidden] mem leak (kenny,porter) 6418 6419 2005-04-12 (performance)[1177363] startup encoding file scan (porter) 6420 6421 2005-04-12 (performance)[1182459] [clock format] (kenny) 6422 6423 2005-04-13 (bug fix) min buffer size dropped from 10 to 1 byte (gravereaux) 6424 6425 2005-04-16 (bug fix)[1178445] fix memory waste at thread exit (vasiljevic) 6426 6427 2004-04-16 (bug fix)[1084111] [array names] memory leak (ade,sofer) 6428 6429 2005-04-19 (bug fix)[1185933] [clock] init clobbered global vars (ring,kenny) 6430 6431 2005-04-19 (new feature) [::tcl::unsupported::EncodingDirs] - unsupported 6432 command to set search path for encoding files (porter) 6433 6434 2005-04-20 (bug fix)[1090869] Tcl_GetInt accept 0x80000000, 64-bit 6435 (porter,singh) 6436 6437 2005-04-22 (bug fix)[1187123] [string is boolean] respect EIAS (porter) 6438 6439 2005-04-25 (enhancement) update to tzdata2005i (kenny) 6440 6441 2005-04-25 (platform support) builds on Mac OS X 10.1 (steffen) 6442 6443 2005-04-27 (new feature)[TIP 183] [open $f {... BINARY ...}] (porter) 6444 6445 2005-04-29 (new feature)[TIP 176] simple index arithmetic (porter) 6446 6447 2005-05-06 (platform support) x86_64 Solarix cc and Solaris 10 builds (hobbs) 6448 6449 2005-05-10 (bug fix)[1198892] [expr {i**0}] error (kaitschu,markus) 6450 6451 2005-05-10 (new feature)[TIP 132] floating-point conversion to string (kenny) 6452 ***POTENTIAL INCOMPATIBILITY*** 6453 For scripts that rely on (tcl_precision==12) number formatting 6454 6455 2005-05-10 (new feature)[TIP 232] math functions as commands (kenny) 6456 ***POTENTIAL INCOMPATIBILITY*** 6457 Tcl_GetMathFuncInfo functioning is reduced; routine is now deprecated 6458 6459 2005-05-13 (feature removed) TCL_NO_MATH compiler directive (porter) 6460 6461 2005-05-14 (platform support) Mac OSX: configurable CoreFoundation API 6462 (steffen) 6463 6464 2005-05-14 (platform support) Mac OSX: use realpath when threadsafe (steffen) 6465 6466 2005-05-17 (feature removed) Tcl_ObjType's "list", "procbody", "index", 6467 "ensembleCommand", "localVarName", "levelReference, "boolean" are no 6468 longer registered (porter) 6469 ***POTENTIAL INCOMPATIBILITY*** 6470 For any callers of Tcl_GetObjType on those strings 6471 6472 2005-05-20 (bug fix)[1201589] boolean literal prefix in expressions (porter) 6473 6474 2005-05-24 (platform support) Darwin build support merged into unix (steffen) 6475 6476 2005-05-24 (new feature)[1202209] Mac OSX: support [load] of .bundle binaries 6477 Can support [load] from memory as well (steffen) 6478 6479 2005-05-24 (new feature)[1202178] [time] returns non-integer result (steffen) 6480 6481 2005-05-25 (new feature)[TIP 182] [expr {bool(...)}] (mistachkin,porter) 6482 6483 2005-05-30 (new feature)[TIP 229] [namespace path] (fellows) 6484 6485 2005-05-31 (bug fix)[1082283] Unix: notifier thread now joinable (vasiljevic) 6486 6487 2005-06-01 (new feature)[TIP 241] -nocase: lsort, lsearch, switch (mistachkin) 6488 6489 2005-06-01 (bug fix)[1209759] "return TCL_RETURN;" could cause panic (porter) 6490 6491 Documentation improvements [1075433,1085127,1117017,1124160,1149605,etc.] 6492 6493 --- Released 8.5a3, June 4, 2005 --- See ChangeLog for details --- 6494 6495 2005-06-06 (bug fix)[1213678] Windows/gcc: crash in stack.test (kenny) 6496 6497 2005-06-07 (new feature)[TIP 208] [chan] and [chan truncate] (fellows) 6498 6499 2005-06-07 (revert) Restored registration of "procbody" Tcl_ObjType (porter) 6500 Reduces the ***POTENTIAL INCOMPATIBILITY*** from 2005-05-17. 6501 6502 2005-06-13 (bug fix)[1217375,1219176] [file mkdir] race (diekhans,darley) 6503 6504 2005-06-14 (bug fix)[1220058] [namespace delete] crash (duquette,fellows) 6505 6506 2005-06-17 (bug fix)[1221395] Tcl_LimitSetTime able to break [vwait] (fellows) 6507 6508 2005-06-18 (bug fix)[1154163] [format %h] on 64-bit OS's (kraft,fellows) 6509 6510 2005-06-21 (bug fix)[1201035,1224585] execution trace crashes (porter) 6511 6512 2005-06-21 (bug fix)[1194458] Windows: [file split] (kenny,porter) 6513 6514 2005-06-22 (bug fix)[1225727] Windows: pipe finalization crash (kenny) 6515 6516 2005-06-22 (bug fix)[1225571] Windows: [file pathtype] buffer overflow (thoyts) 6517 6518 2005-06-22 (bug fix)[1225044] Windows: UMR in pipe close (kenny) 6519 6520 2005-06-23 (bug fix)[1225957] Windows/gcc: crashes in assembler code (kenny) 6521 6522 2005-06-24 (bug fix) make Tcl_Preserve safe in Tk exit handlers (kenny) 6523 6524 2005-07-01 (bug fix)[1222872] notifier spurious wake-up protection (vasiljevic) 6525 6526 2005-07-05 (bug fix)[1230597] allow idempotent [namespace import] (porter) 6527 6528 2005-07-15 (bug fix)[1237907] localtime() => NULL => crash (kenny) 6529 6530 2005-07-21 (dropped support) IRIX 4, RISCos, Ultrix, and ancient BSD (kenny) 6531 ***POTENTIAL INCOMPATIBILITY*** 6532 6533 2005-07-22 (enhancement)[1237755] 8.4 features in script library (fradin,porter) 6534 6535 2005-07-24 (new feature) configure macros SC_PROG_TCLSH, SC_BUILD_TCLSH (dejong) 6536 2005-07-26 (bug fix)[1047286] cmd delete traces during namespace delete (porter) 6537 6538 2005-07-26 (new unix feature)[1231015] ${prefix}/share on ::tcl_pkgPath (dejong) 6539 ***POTENTIAL INCOMPATIBILITY*** 6540 6541 2005-07-27 (bug fix)[1214462] [unknown] can return exceptions (porter) 6542 6543 2005-07-27 (new feature) value of ::tcl_precision now kept per-thread (porter) 6544 ***POTENTIAL INCOMPATIBILITY*** 6545 6546 2005-07-28 (unix bug fix)[1245953] O_APPEND for >> redirection (fellows) 6547 6548 2005-07-29 (bug fix)[1247135] [info globals] return only existing vars (fellows) 6549 6550 2005-07-30 (new Darwin feature) TCL_LOAD_FROM_MEMORY configuration (steffen) 6551 6552 2005-08-05 (bug fix)[1241572] correct [expr abs($LONG_MIN)] (kenny) 6553 6554 2005-08-05 (Solaris bug fix)[1252475] recognize cp1251 encoding (wagner,fellows) 6555 6556 2005-08-11 (config options) eliminated USE_THREAD_STORAGE option (kenny) 6557 6558 2005-08-23 (toolchain support) autoconf-2.59 now required (dejong) 6559 6560 2005-08-24 (new feature)[TIP 219] reflected channels ([chan create]) (kupries) 6561 6562 2005-08-25 (bug fix)[1267380] [lrepeat] buffer overflow prevention (fellows) 6563 6564 2005-08-26 (bug fix) fix [namespace ensemble] crashes in Snit (fellows) 6565 6566 2005-08-29 (bug fix)[1275043] restore round() away from zero (kenny) 6567 6568 2005-08-29 (bug fix)[1189657] correct [tcl::tm::roots] (porter) 6569 6570 2005-09-07 (bug fix)[1283976] invalid [format %c -1] result (porter) 6571 6572 2005-09-08 (new feature)[1242844][TIP 254] new types for Tcl_LinkVar (fellows) 6573 6574 2005-09-07 (toolchain support) deprecate TCL_VARARGS*; stdarg.h assumed (porter) 6575 ***POTENTIAL INCOMPATIBILITY*** 6576 6577 2005-09-15 (RHEL bug fix)[1287638] support open >2GB files RHEL 3 (palan) 6578 6579 2005-09-08 (new feature)[TIP 255] [expr min()] and [expr max()] (hobbs) 6580 6581 2005-09-30 (bug fix)[1306162] $argv encoding and list formatting (porter) 6582 6583 2005-10-04 (bug fix)[1067708] [fconfigure -ttycontrol] leak (hobbs) 6584 6585 2005-10-04 (bug fix)[1182373] [http::mapReply] update to RFC 3986 (aho,hobbs) 6586 => http 2.5.2 6587 6588 2005-10-04 (HPUX bug fix)[1204237] shl_load() and DYNAMIC_PATH (collins,hobbs) 6589 6590 2005-10-05 (bug fix)[979640] buffer overrun mixing putenv(), ::env (bold,hobbs) 6591 6592 2005-10-08 (new feature)[TIP 237] unlimited range for integers (kenny,porter) 6593 ***POTENTIAL INCOMPATIBILITY*** for any code that relies on implicit truncation 6594 of integer calculations to the range of a C long 6595 6596 2005-10-14 (platform support)[1256937] MSVC++ static builds (thoyts) 6597 6598 2005-10-19 (bug fix)[1331475] [dict append] crash (bills,sofer) 6599 6600 2005-10-20 (bug fix)[1333036] [lset] shared sublist handling (sofer) 6601 6602 2005-10-23 (bug fix)[1335006] memleack in [glob] (melbardis,darley) 6603 6604 2005-10-23 (bug fix)[1325803] Win: [file stat] on links (bonilla,darley) 6605 6606 2005-11-01 (bug fix)[1337941] Tcl_TraceCommand() -> crash (devilliers,porter) 6607 6608 2005-11-02 (platform support)[1256937] MSVC 8 support (thoyts) 6609 6610 2005-11-03 (new Win NT/XP feature) Unicode console support (kovalenko,thoyts) 6611 6612 2005-11-04 (bug fix)[1337229,1338280] [namespace delete] / unset traces (sofer) 6613 6614 2005-11-04 (enhancement) Korean timezone abbreviations (kenny) 6615 6616 2005-11-04 (platform support)[1163896] LynxOS [load] (heidibr) 6617 6618 2005-11-04 (bug fix)[1334947] value refcount error in var setting (sofer) 6619 6620 2005-11-04 (Win enhancement)[1267871] extended exit codes (newman,thoyts) 6621 6622 2005-11-07 (bug fix)[1348775] unset trace memory leak (sofer) 6623 6624 2005-11-08 (bug fix)[1162286] [package require] checks that the script 6625 registered by [package ifneeded] provides the version it claims (lavana,porter) 6626 *** POTENTIAL INCOMPATIBILITY *** 6627 6628 2005-11-09 (bug fix)[1350293,1350291] [after $negative $script] fixed (kenny) 6629 6630 2005-11-12 (bug fix)[1352734,1354540,1355942,1355342] [namespace delete] 6631 issues with [namespace path] and command delete traces (sofer,fellows) 6632 6633 2005-11-18 (bug fix)[1358369] URL parsing standards compliance (wu,fellows) 6634 => http 2.5.2 6635 6636 2005-11-18 (revert) Restored registration of "list" Tcl_ObjType (porter) 6637 Reduces the ***POTENTIAL INCOMPATIBILITY*** from 2005-05-17. 6638 6639 2005-11-18 (bug fix)[1359094] Tclkit crash (thoyts, kupries) 6640 6641 2005-11-20 (bug fix)[1091431] Tcl_InitStubs failure crashes wish (english) 6642 6643 2005-11-27 (platform support) Darwin 64bit, Tiger copyfile(), and 6644 Max OSX universal binaries support (steffen) 6645 6646 2005-11-28 (bug fix) [clock] DST transition error (mackerras,kenny) 6647 6648 2005-11-29 (bug fix)[1366683] [lsearch -regexp] backrefs (cleverly,fellows) 6649 6650 2005-11-30 (performance) recoded portions of [clock] in C (kenny) 6651 6652 2005-11-30 (enhancement) improved bytecode compiling of [switch] (fellows) 6653 *** POTENTIAL INCOMPATIBILITY *** 6654 For loading bytecode compiled and saved by earlier 8.5alpha releases 6655 6656 2005-12-05 (Darwin bug fix)[1034337] NFS recursive file delete (steffen) 6657 6658 2005-12-08 (platform support) Win x64 build (hobbs) 6659 6660 2005-12-09 (bug fix)[1374778] [lsearch -start $pastEnd] => -1 (fellows) 6661 6662 2005-12-12 (bug fix)[1377619] configure syntax error exposed in bash-3.1 (hobbs) 6663 6664 2005-12-13 (bug fix)[1379349] [dict for] CoW error (ring,hippler,fellows) 6665 6666 2005-12-18 (bug fix)[1382528] [dict for {k v} {} {}] crash (kovalenko,fellows) 6667 6668 2005-12-27 clock tzdata updated to Olson's tzdata2005r (kenny) 6669 6670 2005-12-27 libtommath updated to release 0.37 (kenny) 6671 6672 2006-01-09 (bug fix)[1480572] [info level $l] => "namespace inscope" (porter) 6673 6674 2006-01-11 (compat support)[1397843] when ::errorInfo is traced, fall back to 6675 old pattern of stack trace construction (porter). 6676 Reduces the ***POTENTIAL INCOMPATIBILITY*** from 2004-10-05. 6677 6678 2006-01-12 (bug fix)[1366227] Win: [file stat] sharing violation (darley) 6679 6680 2006-01-23 (bug fix)[1410553] Tcl_GetRange Unicode confusion (twylite,spjuth) 6681 6682 2006-01-23 (bug fix)[1412695] args handling in precompiled procs (traum,sofer) 6683 6684 2006-02-01 (new feature)[1275435][TIP 250] [namespace upvar] (sofer) 6685 6686 2006-02-01 (new feature)[958222][TIP 181] [namespace unknown] (madden) 6687 6688 2006-02-01 (new feature)[944803][TIP 194] [apply] (mistachkin) 6689 6690 2006-02-08 (new feature)[1413934][TIP 258] [encoding dirs], etc. (porter) 6691 6692 2006-02-09 (new feature)[1413115][TIP 215] auto-init [incr] (leitgeb) 6693 6694 2006-03-02 (bug fix)[1379287] norm of paths with /../ back to root (porter) 6695 6696 2006-03-03 (compat support) Restored registration of a "boolean" Tcl_ObjType 6697 (porter) 6698 Reduces the ***POTENTIAL INCOMPATIBILITY*** from 2005-05-17. 6699 6700 2006-03-06 (bug fix)[1439836,1444291] fix TCL_EVAL_{GLOBAL,INVOKE} handling 6701 when auto-loading or exec traces are present (porter) 6702 6703 2006-03-10 (bug fix)[1437595] Win socket finalize with threads (vasiljevic) 6704 6705 2006-03-13 (revert 2005-07-26 change) ${prefix}/share on ::tcl_pkgPath (porter) 6706 6707 2006-03-14 (bug fix)[1448251] TCLX.y_TM_PATH handling (noble, kupries) 6708 6709 2006-03-14 (bug fix)[768659] pipeline error when last command missing (kupries) 6710 6711 2006-03-18 (bug fix)[1193497] Win porting of [file writable] (darley,vogel) 6712 6713 2006-03-18 (bug fix)[1084705] [glob -nocomplain] silence empty result only, 6714 no other errors (darley) 6715 ***POTENTIAL INCOMPATIBILITY*** 6716 6717 2006-03-21 (platform enhancement)[823329] HFS globbing support (steffen) 6718 6719 2006-03-23 (platform support) updated tcl.spec file (max) 6720 6721 2006-03-28 (bug fix)[1064247] BSD: path normalization with realpath() (steffen) 6722 6723 2006-04-03 (bug fix)[1462248] crash reading utf-8 chars spanning multiple 6724 buffers at end of file (kraft,kupries) 6725 6726 2006-04-05 (bug fix)[1464039] Tcl_GetIndexFromObj: empty key (fellows) 6727 6728 2006-04-05 (bug fix) overdue dde, registry patchelevel increments (porter) 6729 => dde 1.3.2 6730 => registry 1.2 6731 6732 2006-04-06 (bug fix)[1457515] TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING 6733 removed (steffen) 6734 6735 2006-04-11 (bug fix)[1458266] enter/enterstep trace interference (leunissen) 6736 6737 2006-04-12 (feature change)[1376892] revised definition of [:print:] (fellows) 6738 6739 (platform support) Use of _ANSI_ARGS_ purged. ANSI compiler required (fellows) 6740 6741 Documentation improvements [1211078,1190891,1292427,1277503,1104682,1359183, 6742 1415725,666770] 6743 6744 --- Released 8.5a4, April 27, 2006 --- See ChangeLog for details --- 6745 6746 2006-05-04 (bug fix)[1480509] srand() accept wide input (porter,afredd) 6747 6748 2006-05-05 (bug fix)[1481986] interactive Tcl_Main blocks main loop (porter,lin) 6749 6750 2006-05-13 (bug fix)[1482718] proc re-compile: preserve the previous 6751 bytecode while references still on the stack (porter,ryazanov) 6752 6753 2006-05-27 (bug fix)[923072] Darwin: made unthreaded CoreFoundation notifier 6754 naked-fork safe on Tiger (steffen) 6755 6756 2006-06-20 (internal change) Dropped the internal routines used to hook into 6757 filesystem operations back in the pre-Tcl_Filesystem days. (porter) 6758 ***POTENTIAL INCOMPATIBILITY*** 6759 For extensions and programs that have never migrated to the supported Tcl 8.4 6760 interface for virtual filesystems 6761 6762 2006-07-05 (enhancement) Expression parser rewrite avoids stack overflow, 6763 reduces from O(N^2) to O(N) complexity, and greatly improves syntas error 6764 messages (porter) 6765 ***POTENTIAL INCOMPATIBILITY*** 6766 For any code relying on exact error messages. 6767 6768 2006-07-20 (platform support) Mac OS X weak linking (steffen) 6769 6770 2006-07-20 (bug fix) Darwin: execve() works iff event loop not yet run (steffen) 6771 6772 2006-07-24 (bug fix)[1518166] Uninitialized Tcl_DString (afredd) 6773 6774 2006-07-30 (bug fix)[1426279,1505383,1494664,1531530] [clock] fixes (kenny) 6775 6776 2006-08-09 (bug fix)[1531184] [dict for {file stat} x {}] crash (fellows) 6777 6778 2006-08-10 (bug fix)[1538262,1530474] code cleanup; optimizations (afredd) 6779 6780 2006-08-18 (bug fix) intermittent failures in TclUnixWaitForFile() (steffen) 6781 6782 2006-08-18 (platform support) Darwin x86_64 (steffen) 6783 6784 2006-08-21 (bug fix)[1457797] Darwin 64-bit notifier hang (steffen) 6785 6786 2006-08-21 (bug fix) Darwin: recursively called event loop (steffen) 6787 6788 2006-08-21 (enhancement) Darwin: nanosec resolution clicks and [time] (steffen) 6789 6790 2006-08-28 (bug fix)[1547681] TclFormatObj count arguments (mistachkin,porter) 6791 6792 2006-08-28 (bug fix) stack.test failure on FreeBSD (mistachkin) 6793 6794 2006-08-30 (bug fix)[1548263] filesystem segfaults (hobbs,mccormack) 6795 6796 2006-08-31 (bug fix)[1541274] [expr {sqrt(-1)}] => -NaN (suchenwirth,porter) 6797 6798 2006-09-06 (bug fix)[999544] use of MT-safe system calls (vasiljevic) 6799 6800 2006-09-10 (platform support) Darwin: msgcat use CFLocale (steffen) 6801 => msgcat 1.4.2 6802 6803 2006-09-10 (new feature) tcltest option: -verbose line (steffen) 6804 => tcltest 2.3a1 6805 6806 2006-09-19 (bug fix)[1555271,1561260] Several ** operator bugs (porter) 6807 6808 2006-09-22 (bug fix)[1562528] NULL terminates variadic calls (fellows,ryazanov) 6809 6810 2006-09-22 (new feature)[1520767][TIP 268] [package] alpha/beta version; 6811 [package require] ranges, [package prefer] selection mode (kupries) 6812 6813 2006-09-26 (platform support) MSVC8 AMD64 support (thoyts) 6814 6815 2006-09-27 (bug fix)[1567222] bignum << errors (porter) 6816 6817 2006-09-30 (enhancement)[1190441] quiet no-op [history] (sofer) 6818 6819 2006-10-04 clock tzdata updated to Olson's tzdata2006m (kenny) 6820 6821 2006-10-05 (bug fix)[1570718] make [lappend $nonList] complain (sofer,virden) 6822 6823 2006-10-05 (bug fix)[1122671] alignment fixes in unicode encoding routines 6824 (hobbs,staplin) 6825 6826 2006-10-05 (enhancement) Allow "_" in Tcl Module filenames (kupries) 6827 6828 2006-10-05 (new feature) [set ::http::strict 0] (default value is 1) to disable 6829 URL validity checking against RFC 2986 (hobbs) 6830 => http 2.5.3 6831 6832 2006-10-06 (new feature)[1565751][TIP 275] [binary scan] unsigned (thoyts) 6833 6834 2006-10-10 (bug fix)[1566526] crash cleaning up [namespace path] data (porter) 6835 6836 2006-10-12 (bug fix)[1576006] better error messages from [interp alias] (sofer) 6837 6838 2006-10-13 (platform support) get stack size on Darwin (steffen) 6839 6840 --- Released 8.5a5, October 20, 2006 --- See ChangeLog for details --- 6841 6842 2006-10-20 (configure change) Added autodetection for OS-supplied timezone 6843 files (max) 6844 6845 2006-10-23 (enhancement)[1577278] Ensure the Tcl call stack always has a 6846 CallFrame, even at level 0 (sofer) 6847 *** POTENTIAL INCOMPATIBILITY for users of tclInt.h *** 6848 6849 2006-10-23 (enhancement)[1577492] Tcl_PushCallFrame and [info level] 6850 enhanced for ensemble rewrites (sofer) 6851 *** POTENTIAL INCOMPATIBILITY for [info level 0] on interp alias *** 6852 6853 2006-11-02 (feature change)[TIP 293] Replace {expand} with {*} (hobbs) 6854 *** POTENTIAL INCOMPATIBILITY with previous 8.5 alphas only *** 6855 6856 2006-11-04 (new feature)[TIP 274] Exponentiation operator is right 6857 associative (porter) 6858 6859 2006-11-09 (new feature)[TIP 272] Added [lreverse] and [string reverse] 6860 commands (fellows) 6861 6862 2006-11-14 (new feature)[TIP 261] [namespace import] returns list of 6863 imported commands (porter) 6864 6865 2006-11-15 (new feature)[TIP 270] New C routines Tcl_ObjPrintf, 6866 Tcl_AppendObjToErrorInfo, Tcl_Format, Tcl_AppendLimitedToObj, 6867 Tcl_AppendFormatToObj, Tcl_AppendPrintfToObj (porter) 6868 6869 2006-11-22 (feature change) Moved TCL_REG_BOSONLY from tcl.h to tclInt (porter) 6870 6871 2006-11-22 (new feature)[TIP 269] Added [string is list] classification 6872 command (mistackin, fellows) 6873 6874 2006-11-25 (new feature)[TIP 174] Added commands corresponding to most 6875 expr operators in ::tcl::mathop (fellows) 6876 6877 2006-11-26 (platform support)[1230558] --enable-64bit on more systems (steffen) 6878 6879 2006-11-27 (bug fix)[1602208] Fix 64-bit handling of select() on unix where 6880 fd was greater than 32 (fontaine, kenny) 6881 6882 2006-11-28 (new feature)[TIP 280] Added [info frame] command for more 6883 Tcl-level debugging information (kupries) 6884 6885 2006-12-01 (feature change)[TIP 298] Change Tcl_GetBignumAndClearObj to 6886 Tcl_TakeBignumFromObj (porter) 6887 6888 2006-12-01 (new feature)[TIP 287] Added [chan pending] subcommand (cleverly) 6889 6890 2006-12-01 (new feature)[TIP 299] Added isqrt() expr operator (kenny) 6891 6892 2006-12-04 (new feature)[TIP 267] Added -ignorestderr option to exec (fellows) 6893 6894 2006-12-05 (new feature)[TIP 291] ::tcl_platform(pointerSize) key (kupries) 6895 6896 2007-01-11 (configure change) Remove "-Wconversion" from deflt CFLAGS (english) 6897 6898 2007-01-25 (configure change) Ensure CPPFLAGS env var is used when set (steffen) 6899 6900 2007-02-19 (configure change) Use SHLIB_SUFFIX=".so" on HP-UX IA64 (was 6901 ".sl") (hobbs) 6902 6903 2007-02-20 (bug fix)[1479814] Handle Windows NT \\?\... extended paths (thoyts) 6904 6905 2007-03-01 (bug fix)[1671138] Fix infinite loop in compiled foreach with an 6906 empty list (fellows) 6907 6908 2007-03-07 (enhancement) Improved Windows time zone tables to handle new US 6909 DST rules (kenny) 6910 6911 2007-03-09 (enhancement) Improved Y2038 compliance of zoneinfo files (kenny) 6912 6913 2007-04-02 (enhancement) Added bytecode compilation for global, variable, 6914 upvar and namespace upvar (sofer) 6915 6916 2007-04-20 (bug fix) Improve clock localization for Japanese locale (kenny) 6917 6918 2007-04-20 (enhancement) Document Tcl_SetNotifier & Tcl_ServiceModeHook (kenny) 6919 6920 2007-04-23 (bug fix) fts_open() crash on 64bit Darwin 8 or earlier (steffen) 6921 6922 --- Released 8.5a6, April 25, 2007 --- See ChangeLog for details --- 6923 6924 2007-04-30 (bug fix)[1705778] many valgrind-detected leaks corrected 6925 6926 2007-05-01 (bug fix)[1710709] leak in [string map] (porter) 6927 6928 2007-05-02 (bug fix)[1710707] leaks in filesystem paths (mistachkin,kenny) 6929 6930 2007-05-18 (feature change) {expand} syntax support removed. (porter) 6931 *** POTENTIAL INCOMPATIBILITY with previous 8.5 alphas only *** 6932 6933 2007-05-29 (bug fix)[1712723] Joinable thread death on 64-bit (virden,hobbs) 6934 6935 2007-05-30 (feature change)[1725186] When expanded literals are parsed, 6936 (example: {*}{1 2 3}), TCL_TOKEN_EXPAND_WORD token is no longer returned. 6937 Tokens reflecting the expansion are returned instead. (porter) 6938 *** POTENTIAL INCOMPATIBILITY with previous 8.5 alphas only *** 6939 6940 2007-06-06 (platform support) Darwin: add plist to tclsh (steffen) 6941 6942 2007-06-12 (enhancement) [info] is now a [namespace ensemble] (fellows) 6943 6944 2007-06-20 (enhancement) better `make html` results (hobbs) 6945 6946 2007-06-21 (feature change)[1740962] leave traces created during execution 6947 of traced command do not fire (sofer) 6948 *** POTENTIAL INCOMPATIBILITY *** 6949 6950 2007-06-23 (bug fix) Darwin: prevent post-fork() abort() (steffen) 6951 6952 2007-06-27 (bug fix)[1743941] Infinite loop in Tcl_CreateTrace traces (porter) 6953 6954 2007-06-29 (enhancement) Tcl_Alloc alignment on Darwin (steffen) 6955 6956 2007-06-30 (bug fix)[1726873] crash in thread sync objects (vasiljevic,twylite) 6957 6958 2007-06-30 (bug fix)[1717186] [lsort -command \{ $l] leak (afredd,fellows) 6959 6960 2007-07-05 (bug fix)[1743676] no command named "" error message (porter,virden) 6961 6962 2007-07-11 (bug fix)[1752146] [while 1 {}] & [interp limit] on commands (sofer) 6963 6964 2007-07-31 (bug fix)[681877] tcl_platform(user) from system, not env (fellows) 6965 6966 2007-07-31 (enhancement)[1750051] space efficiency of Tcl variables (sofer) 6967 *** POTENTIAL INCOMPATIBILITY for C code that accesses internal 6968 Tcl structs Var, Bytecode, Namespace, or CallFrame. *** 6969 6970 2007-08-01 (enhancement)[1764318] word.tcl proc rewrites (petasis,fellows) 6971 6972 2007-08-08 (bug fix)[1770224] [tcl::mathop::>> $big1 $big2] errors (porter) 6973 6974 2007-08-14 (platform support) Darwin [load] from VFS on intel & 64bit (steffen) 6975 6976 2007-08-15 (bug fix)[1773127] corrected open mode "a+" (rottman,fellows) 6977 6978 2007-08-16 (bug fix)[1773040] ::errorInfo trace crash (janssen,porter) 6979 6980 2007-08-16 (performance)[1564517] pre-compile constant expressions (porter) 6981 6982 2007-08-21 (bug fix)[1775878] 'puts \' in interactive tclsh failed to move to 6983 prompt for continuation line (porter) 6984 6985 2007-08-25 (bug fix)[1781282] [clock scan] case senstivity (kenny) 6986 6987 2007-08-25 (performance)[1767293] ** on native integer types (kenny) 6988 6989 2007-09-03 clock tzdata updated to Olson's tzdata2007g (kenny) 6990 6991 2007-09-06 (platform support) Darwin: drop support for Xcode 1.5 project, add 6992 project for Xcode 3.0 (steffen) 6993 6994 2007-09-08 (bug fix)[1786481] nested [dict update] crash (fellows) 6995 6996 2007-09-08 (bug fix)[1710710] TclPtrSetVar leak (mistachkin,sofer) 6997 6998 2005-09-09 (feature removed) Tcl_ObjType "nsName" no longer registered (porter) 6999 *** POTENTIAL INCOMPATIBILITY for Tcl_GetObjType("nsName") *** 7000 7001 2007-09-10 (bug fix)[1740631] Linked variable unlink prevention (maros,hobbs) 7002 7003 2007-09-11 (bug fix)[1786481] [dict update] stack management (sofer) 7004 *** POTENTIAL INCOMPATIBILITY with previous 8.5 alpha bytecode only *** 7005 7006 2007-09-11 (bug fix)[1578344] [package require -exact] 8.4 compat (porter) 7007 *** POTENTIAL INCOMPATIBILITY with previous 8.5 alphas only *** 7008 7009 2007-09-11 (bug fix)[1772989,1071322] Support _, : in test constraints (porter) 7010 => tcltest 2.3b1 7011 7012 2007-09-11 (platform support) Windows AMD64 support (thoyts) 7013 7014 2007-09-14 (enhancement)[1793984] DTrace provider for Tcl (steffen) 7015 7016 2007-09-14 (bug fix)[1519940] surplus ns path invalidation (fellows,bauer) 7017 7018 2007-09-15 (platform support) SunOS-5.1x link with cc, not ld (steffen) 7019 7020 2007-09-17 (platform support)[1748251] Fix NetBSD link failures (english) 7021 7022 (bug fix)[1066755] Several stack efficiency efforts increases recursion limit 7023 on Windows to be larger than the default [interp recursionlimit] value 7024 7025 --- Released 8.5b1, September 26, 2007 --- See ChangeLog for details --- 7026 7027 2007-10-02 (bug fix)[1806422] proper [tcl::tm::path] autoload (porter) 7028 7029 2007-10-02 (bug fix) Improve Tcl_DecrRefCount() robustness (staplin) 7030 7031 2007-10-11 (bug fix)[1805887] [string is int -failindex] for 0o, 0b (porter) 7032 7033 2007-10-15 (bug fix)[1813528] Tcl_ParseBraces read past buffer (mistachkin) 7034 7035 2007-10-25 (bug fix)[1726873] intermittent crash in threads (vasiljevic) 7036 7037 --- Released 8.5b2, October 26, 2007 --- See ChangeLog for details --- 7038 7039 2007-10-27 (bug fix)[1821159] fixed broken compile on x86_64 (sofer) 7040 7041 2007-10-27 (bug fix)[1810264] stop panic in RE lexer (fellows) 7042 7043 2007-10-28 (enhancement)[1826906] Embed iso8859-1 encoding in libtcl (fellows) 7044 7045 2007-11-01 (bug fix)[1808258] [string is ascii \000] (fellows) 7046 7047 2007-11-05 (bug fix)[1823576] [fconfigure $serial -xchar \000] (cassof) 7048 7049 2007-11-07 (performance)[1827996] binary glob matching (hobbs) 7050 7051 2007-11-07 (performance) binary [gets] (hobbs) 7052 7053 2007-11-09 (performance)[1829248] interp state reset (sofer) 7054 7055 2007-11-10 (performance) stack checking (sofer) 7056 7057 2007-11-10 (performance) list indexing bytecode (sofer) 7058 7059 2007-11-11 (performance)[1830038] macros to fetch Tcl_Obj intreps (sofer) 7060 7061 2007-11-11 (performance)[1830166] RE bytecode for simple cases (hobbs) 7062 7063 2007-11-13 (performance) [switch] & [regexp] use RE bytecode (hobbs, fellows) 7064 7065 2007-11-14 (performance) bytecode for [info exists] (fellows) 7066 7067 2007-11-15 (new feature)[1231022] configure option: --disable-rpath (fellows) 7068 7069 2007-11-15 (bug fix)[1810038] infinite loop in RE compiler (lane,porter) 7070 7071 Many significant documentation improvements (fellows, sofer) 7072 7073 --- Released 8.5b3, November 19, 2007 --- See ChangeLog for details --- 7074 7075 2007-11-20 (enhancement) string rep of dict has stable order (fellows) 7076 7077 2007-11-21 (enhancement) compiled ensemble support (fellows) 7078 7079 2007-11-22 (enhancement) [dict] is now an ensemble (fellows) 7080 7081 2007-11-23 (enhancement) [string] is now an ensemble (fellows) 7082 7083 2007-11-26 (bug fix)[1815573] Correct stack checking failure (sofer,golovan) 7084 7085 2007-11-27 (bug fix)[800753] Document single byte char limit for 7086 [chan configure -eofchar] (cassoff) 7087 7088 2007-12-03 (enhancement)[1836519] [switch $val $body] safe/fast (fellows,spjuth) 7089 7090 2007-12-03 (release) tcltest package bump to 2.3.0 (porter) 7091 7092 2007-12-03 (bug fix)[1618235] fix BSD compile errors (fellows) 7093 7094 2007-12-05 (bug fix)[1844789] fix [lsearch -exact -integer] crash (fellows) 7095 7096 2007-12-05 (performance)[1845092] Tcl_ObjType for channel names (hobbs) 7097 7098 2007-12-14 (bug fix)[1602539] NUL pollution in [glob] result (hobbs) 7099 7100 2007-12-17 (bug fix)[1851832,1851524] memory alignment correction (sofer) 7101 7102 2007-12-18 (bug fix)[1810264] revised regexp engine to prevent debilitating 7103 over-consumption of resources (drewry,lane,ormandy,fellows) 7104 7105 Several documentation and release notes improvements 7106 7107 --- Released 8.5.0, December 20, 2007 --- See ChangeLog for details --- 7108 7109 2007-12-23 (bug fix)[1857126] restore backref support to regexps (hobbs) 7110 7111 2007-12-26 (enhancement)[1856994] [lsort] performance (sofer) 7112 7113 2008-01-10 (bug fix)[1867855] fix [format %lli 0] crash (porter) 7114 7115 2008-01-11 (bug fix)[1850424,1860425] stack checking on *bsd (sofer,noble) 7116 7117 2008-01-13 (bug fix)[1353846] crash in read-only serial (hobbs,newman) 7118 7119 2008-01-15 (bug fix)[1869989] mem leak; expr literals (porter,melbardis) 7120 7121 2008-01-20 (bug fix)[1869405] binary [gets]; stacked channels (hobbs,ficicchia) 7122 7123 2008-01-22 (bug fix)[1867855] fix [lreverse {}] crash (sofer,madden) 7124 7125 2008-01-30 (bug fix)[1882373] fix Tcl_GetAlias pointer code (an00na) 7126 7127 Several documentation and release notes improvements 7128 7129 --- Released 8.5.1, February 5, 2008 --- See ChangeLog for details --- 7130 7131 2008-02-06 (enhancement) [clock format] performance (kenny) 7132 7133 2008-02-12 (bug fix)[1891827] compiled [switch -nocase] error (fellows) 7134 7135 2008-02-22 (bug fix)[1818565] missing state array in http::status (thoyts) 7136 => http 2.5.4 7137 7138 2008-02-26 (bug fix)[1868845] corrected [eof] ordering (thoyts) 7139 7140 2008-02-26 (new feature) [http::meta] command (thoyts) 7141 => http 2.5.5 7142 7143 2008-02-26 (bug fix)[1902436] fixed regexps ending in \* (hobbs) 7144 7145 2008-02-27 (bug fix)[1862555,1902423] [clock] range & l10n (kenny) 7146 7147 2008-02-28 (bug fix) [return -level 0] memory leak (porter) 7148 7149 2008-02-28 (bug fix) [format %llx $big] memory leak (porter) 7150 7151 2008-02-28 (bug fix) expression parser error message memory leak (porter) 7152 7153 2008-02-28 (bug fix) memory leak when enter trace modifies command (porter) 7154 7155 2008-02-29 (enhancement) Consumer refcounting for Tcl_SetReturnOptions() 7156 and Tcl_AddObjToErrorInfo() (spjuth,porter) 7157 *** POTENTIAL INCOMPATIBILITY *** 7158 7159 2008-03-07 (bug fix)[1899164] Avoid expr and script bytecode confusion (porter) 7160 7161 2008-03-07 (bug fix)[1904907] finalize crash in Tcl_GetReturnOptions (kupries) 7162 7163 2008-03-10 (bug fix)[1893815] expr {abs(-1e-350)} => -0.0 (porter) 7164 7165 2008-03-10 (bug fix)[1901113] crash in [tcl::Bgerror {} {}] (madden,porter) 7166 7167 2008-03-11 (bug fix)[1911919] unset trace inf loop in namespace delete (sofer) 7168 7169 2008-03-12 (new feature) some HTTP 1.1 support in http (and more!) (hobbs) 7170 => http 2.7 7171 7172 2008-03-13 (enhancement) support space in INSTALL_ROOT or $builddir (steffen) 7173 7174 2008-03-16 (bug fix)[1903325] bytecode stack space prediction crash (fellows) 7175 7176 2008-03-18 (bug fix)[1914604] Tcl Modules: encoding fixed to utf-8; environment 7177 variables without "." added to customization hooks (kupries) 7178 *** POTENTIAL INCOMPATIBILITY *** 7179 7180 2008-03-18 (bug fix)[1914503] alignment of TclStackAlloc() return (sofer)\ 7181 7182 2008-03-20 (bug fix)[1868171] expose Tcl_GetMemoryInfo (for AOLserver) (fellows) 7183 7184 2008-03-24 (bug fix)[1923966] crash in [binary format x0s] (thoyts) 7185 7186 2008-03-27 (platform support)[1921166] Solaris 64bit build fixes (steffen) 7187 7188 2008-03-27 clock tzdata updated to Olson's tzdata2008b (kenny) 7189 7190 --- Released 8.5.2, March 28, 2008 --- See ChangeLog for details --- 7191 7192 2008-03-30 (bug fix)[1783544] more robust TclIsNaN() (kenny,teterin) 7193 7194 2008-04-01 (interface)[1819422] tclStubsPtr no longer in libtcl (porter) 7195 *** POTENTIAL INCOMPATIBILITY *** 7196 7197 2008-04-01 (bug fix)[1839067] FP round fix for Solaris/x86 (kupries,schlenker) 7198 7199 2008-04-02 (bug fix)[780533,1932639] [fcopy] callbacks unreliable (ferrieux) 7200 7201 2008-04-02 (interface)[1819422] libtclstub symbols MODULE_SCOPE (steffen) 7202 7203 2008-04-04 (bug fix) [chan postevent] crash (kupries) 7204 7205 2008-04-07 (bug fix) Fix broken [format {% d}] (max) 7206 7207 2008-04-07 (bug fix)[1350564] Bi-directional [fcopy] now supported (ferrieux) 7208 7209 2008-04-16 (bug fix)[1938497] Tcl_SetNotifier() fixes (steffen) 7210 7211 2008-04-16 (interface)[1938497] make stubs tables 'static const' (steffen) 7212 7213 2008-05-02 (new feature) [binary] is now a [namespace ensemble] (thoyts) 7214 7215 2008-05-07 (bug fix) [dict append] crash (mccormack,fellows) 7216 7217 2008-05-21 (bug fix)[1968882] [info complete "\\\n"] => 0 (porter) 7218 7219 2008-05-22 (bug fix)[1968245] Tcl_LogCommandInfo() accept length=-1 (darroch) 7220 7221 2008-05-23 (bug fix)[1965787] 32-bit overflow in [tell] result (ferrieux) 7222 7223 2008-05-31 (new feature)[TIP 257] [oo::*] commands from TclOO (fellows) 7224 7225 2008-06-04 (new feature)[TIP 317] [binary encode]; [binary decode] (thoyts) 7226 7227 2008-06-06 (new feature)[TIP 230] [chan push]; [chan pop] (kupries) 7228 7229 2008-06-08 (enhancement)[1973096] bytecompiled [uplevel] scripts (sofer) 7230 7231 2008-06-12 (platform support) Solaris static build with DTrace (steffen) 7232 7233 2008-06-12 (platform support) Solaris/amd64 gcc 64bit support (steffen) 7234 7235 2008-06-13 (new feature)[TIP 285] [interp cancel]; Tcl_CancelEval() (mistachkin) 7236 7237 2008-06-20 (bug fix)[1999035] make [interp bgerror $i] act in $i (porter) 7238 7239 2008-06-23 (bug fix)[1972879] bad path intrep caching (porter) 7240 7241 2008-06-24 (bug fix)[1999176] crash in [glob -dir {} a] (porter) 7242 7243 2008-06-25 (bug fix)[1999119] Support TM packages in Safe Base (kupries) 7244 7245 --- Released 8.6a1, June 25, 2008 --- See ChangeLog for details --- 7246 7247 2008-06-29 (bug fix)[2004480] plug memory leaks (ade,porter,steffen) 7248 7249 2008-07-01 (enhancement)[1905562] embed recursion limit in RE engine (fellows) 7250 7251 2008-07-03 (bug fix)[1969717] fix package finding on Samba shares (jos) 7252 7253 2008-07-03 (bug fix)[1987821] mem leak in [seek] on reflected chan (kupries) 7254 7255 2008-07-13 (enhancement)[2017110] new Non-Recursive Evaluation implementation 7256 enables deep Tcl evaluation stacks without deep C stacks. (sofer) 7257 7258 2008-07-20 (enhancement)[2008248] dict->list preserve item intreps (pasadyn) 7259 7260 2008-07-21 (bug fix)[582506] imported cmds now fire execution traces (sofer) 7261 7262 2008-07-21 (bug fix)[2015723] [file] bad use of inodes on Windows (thoyts) 7263 7264 2008-07-21 (new feature)[TIP 304] [chan pipe] (ferrieux) 7265 7266 2008-07-21 (bug fix)[2021443] more consistent "wrong # args" msgs (nijtmans) 7267 7268 2008-07-21 (enhancement) [info frame] returns file data in more cases (kupries) 7269 7270 2008-07-29 (bug fix)[2030670] fix rare panic in TclStackFree (pasadyn,sofer) 7271 7272 2008-08-01 Tcl_Finalize() no longer called implicitly on DLL_PROCESS_DETACH. 7273 7274 2008-08-05 (enhancement)[1994512] async connect logic simplified (jenglish) 7275 7276 2008-08-06 (bug fix)[2040295] stopped supplying a workaround for bugs 7277 in Itcl's use of [namespace code]. Itcl now supplies its own workaround. 7278 *** POTENTIAL INCOMPATIBILITY for older Itcl releases *** 7279 7280 2008-08-06 (bug fix)[2039178] repaired guard against dispatching oo methods 7281 in a deleted interp. (porter) 7282 7283 2008-08-08 tzdata updated to Olson's tzdata2008e (kenny) 7284 7285 2008-08-11 (bug fix)[2046846] 64bit support for http zlib crc (thoyts) 7286 => http 2.7.1 7287 7288 2008-08-11 (enhancement) automatic [package provide] for TMs (kupries) 7289 7290 2008-08-17 (bug fix)[2055782] crash involving Tcl_ConcatObj (sofer) 7291 7292 2008-08-21 (new feature) CONST-ified Tcl routines passing (Tcl_ObjType *), 7293 (Tcl_Filesystem *), or (Tcl_Timer *) arguments (nijtmans,porter) 7294 *** POTENTIAL INCOMPATIBILITY *** 7295 7296 2008-08-21 (bug fix)[2065115] Restored ***= regexp functioning (hobbs,porter) 7297 7298 --- Released 8.6a2, August 25, 2008 --- See ChangeLog for details --- 7299 7300 2008-08-29 (bug fix)[2082299] Install TclOO header files (fellows) 7301 7302 2008-09-01 oo methods called during interp deletion no longer skipped if 7303 they do not need the dying interp (fellows) 7304 7305 2008-09-02 (support) Dropped support for pre-ANSI compilers. (porter) 7306 7307 2008-09-04 (bug fix)[2093947] var unset trace in coroutine (fellows,sofer) 7308 7309 2008-09-10 (enhancement) efficient list->dict conversion (elby,fellows) 7310 7311 2008-09-10 (bug fix)[2102930] faulty numLevels count (madden,sofer) 7312 7313 2008-09-16 (bug fix)[2114165] eval failure following cancel (sofer) 7314 7315 2008-09-17 (bug fix)[2116053] export [min] and [max] from tcl::mathfunc (sofer) 7316 7317 2008-09-22 (new feature)[TIP 320] oo common variable declaration (fellows) 7318 7319 2008-09-24 (new feature)[TIP 316] portable access to Tcl_StatBuf (fellows) 7320 7321 2008-09-24 (new feature)[TIP 323] [file delete], [file mkdir] zero pathNames (porter) 7322 7323 2008-09-25 (new feature)[TIP 315] new var: tcl_platform(pathSeparator) (vu,fellows) 7324 7325 2008-09-25 (new feature)[TIP 323] [global], [variable] zero varNames (porter) 7326 7327 2008-09-26 (new feature)[TIP 323] [lassign], [namespace upvar], [my variable] zero varNames (porter) 7328 7329 2008-09-26 (new feature)[TIP 323] [tcl::tm::path add|remove] zero pathNames (porter) 7330 7331 2008-09-26 (new feature)[TIP 323] [lrepeat] zero elements; zero repeats (porter) 7332 7333 2008-09-27 (bug fix)[2130992] prevent overflow crash in [lrepeat] (fellows) 7334 7335 2008-09-28 (new feature)[TIP 314] ensemble parameters before subcommand (hellström,fellows) 7336 7337 2008-09-29 (new feature)[TIP 318] revised defaults for [string trim] (poser) 7338 *** POTENTIAL INCOMPATIBILITY *** 7339 7340 2008-09-29 (new feature)[TIP 313] [lsearch -bisect] (spjuth) 7341 7342 2008-09-29 (new feature)[TIP 326] [lsort -stride] (elby) 7343 7344 2008-09-29 (new feature)[TIP 323] [linsert] zero elements (porter) 7345 7346 2008-09-29 (new feature)[TIP 323] [glob] zero patterns (porter) 7347 7348 2008-10-02 (new feature)[TIP 330] interp->result access disabled (kenny) 7349 *** POTENTIAL INCOMPATIBILITY *** 7350 7351 2008-10-03 (new feature)[TIP 265] Tcl_ParseArgv() (bromley) 7352 7353 2008-10-03 (new feature)[TIP 195] [tcl::prefix] (spjuth) 7354 7355 2008-10-04 (new feature) CONST-ified Tcl routines Tcl_GetIndexFromObj, 7356 Tcl_RegisterConfig, Tcl_InitCustomHashTable, and routines passing 7357 (Tcl_ChannelType *). (nijtmans) 7358 *** POTENTIAL INCOMPATIBILITY *** 7359 7360 2008-10-04 (bug fix)[2059262] unload only libraries marked unloadable (nijtmans) 7361 *** POTENTIAL INCOMPATIBILITY *** 7362 7363 2008-10-05 (new feature)[TIP 331] [lset listVar end+1 $value] (kenny) 7364 7365 2008-10-05 (bug fix)[2143288] correct bad isqrt() results (boffey,kenny) 7366 7367 2008-10-05 (new feature) CONST-ified return value of the 7368 Tcl_FSFileAttrStringsProc prototype. (nijtmans) 7369 *** POTENTIAL INCOMPATIBILITY for Tcl_Filesystems *** 7370 7371 2008-10-07 (new feature)[TIP 327] [tailcall] (sofer) 7372 7373 2008-10-07 (new feature)[TIP 328] [coroutine],[yield],[info coroutine] (sofer) 7374 7375 2008-10-08 (bug fix)[2151707] fix stack trace from variable trace (porter) 7376 7377 2008-10-10 (bug fix)[2155658] crash in oo method export (fellows) 7378 7379 --- Released 8.6a3, October 10, 2008 --- See ChangeLog for details --- 7380 7381 2008-10-13 (bug fix) Fix ability to join threads on 64-bit Windows (thoyts) 7382 7383 2008-10-23 (bug fix)[2186888] Direct-eval [for] handling of [continue] was 7384 broken by NRE reform (sofer,porter) 7385 7386 2008-10-24 (bug fix) fix failure to read SHOUTcast streams (thoyts) 7387 => http 2.7.2 7388 7389 2008-10-27 (enhancement) system encoding at startup is now "iso8859-1", and 7390 no longer "identity". Use of identity encoding minimized (porter) 7391 *** POTENTIAL INCOMPATIBILITY *** 7392 7393 2008-10-31 (bug fix)[2200824] revised [oo::define] to include caller 7394 context when resolving names. (nassau,fellows) 7395 7396 2008-11-10 (bug fix)[2255235] [platform::shell::LOCATE] update (ring,kupries) 7397 => platform::shell 1.1.4 7398 7399 2008-11-13 (bug fix)[2269431] VFS [load] -> tempfile litter (ficicchia,nijtmans) 7400 7401 2008-11-26 (bug fix)[2114900] updated tclIndex file (cassoff,kenny) 7402 7403 2008-11-27 (bug fix)[2251175] [{*}{\{}] errors (hellström,ferrieux,porter) 7404 7405 2008-11-29 (new feature)[TIP 210] [file tempfile] (techentin,fellows) 7406 7407 2008-11-30 (bug fix)[2362156] [clock]: colon in format string (mizuno,kenny) 7408 7409 2008-12-02 (bug fix)[2270477] hang in channel finalization (ferrieux,kupries) 7410 7411 2008-12-02 (new feature)[TIP 336] Tcl_*ErrorLine() routines. Direct access 7412 to the errorLine field of the interp struct denied by default. (porter) 7413 *** POTENTIAL INCOMPATIBILITY *** 7414 *** Define USE_INTERP_ERRORLINE to restore access for legacy code *** 7415 7416 2008-12-04 (bug fix)[2385549] [file normalize] failed on some paths (porter) 7417 7418 2008-12-05 (new feature)[TIP 307] Tcl_TransferResult() (leunissen,fellows) 7419 7420 2008-12-05 (new feature)[TIP 335] Tcl_InterpActive() (mistachkin,fellows) 7421 7422 2008-12-09 (new feature)[TIP 337] Tcl_BackgroundException() (porter) 7423 7424 2008-12-10 (new feature)[TIP 341] >1 [dict filter] patterns (hellström,fellows) 7425 7426 2008-12-10 (new feature)[TIP 343] [format %b $n] [scan $s %b] (ferrieux) 7427 7428 2008-12-10 tzdata updated to Olson's tzdata2008i (kenny) 7429 7430 2008-12-11 (new feature)[TIP 234] [zlib] and Tcl_Zlib*() (sheffers,fellows) 7431 7432 2008-12-11 (bug fix)[2407783] spoil ChannelState when channel name passes 7433 among multiple interps (kupries) 7434 7435 2008-12-12 (new feature)[TIP 322] Tcl_NR*() routines to enabled non-recursive 7436 evaluation in extensions (sofer,kenny) 7437 7438 2008-12-09 (new feature)[TIP 338] Tcl_*StartupScript() (porter) 7439 *** POTENTIAL INCOMPATIBILITY for callers of Tcl*Startup* routines *** 7440 7441 2008-12-16 (new feature)[TIP 329] [try] [throw] (davel,fellows) 7442 7443 2008-12-17 (new feature)[TIP 308] package tdbc 1.0b1 (kenny) 7444 7445 2008-12-18 (new feature)[TIP 332] [close $chan read|write] (ferrieux) 7446 7447 2008-12-18 (bug fix)[2444274] panic in long commands from {*} (goth,porter) 7448 7449 --- Released 8.6b1, December 19, 2008 --- See ChangeLog for details --- 7450 7451 2008-12-27 [TIP 234] Tcl_Zlib* interface revisions (fellows) 7452 *** INCOMPATIBILITY with interface of 8.6b1 *** 7453 7454 2009-01-02 (platform support)[878333] IRIX compat for mkstemp() (fellows) 7455 7456 2009-01-03 (bug fix)[2481670] [clock add] error message (talvo) 7457 7458 2009-01-05 (bug fix)[2412068] NR-enable [source] (fellows) 7459 7460 2009-01-06 (bug fix)[2489836] crash unknown method dispatch (nadkarni,fellows) 7461 7462 2009-01-06 (bug fix)[2481109] fix context of instance name check (fellows) 7463 7464 2009-01-08 (enhancement) more -errorcode values (fellows) 7465 7466 2009-01-19 (new feature) CONFIG_INSTALL_DIR - where tclConfig.sh goes (cassoff) 7467 7468 2009-01-19 (platform support) better tools for BSD ports (cassoff) 7469 7470 2009-01-21 (bug fix)[2458202] exit crash with [chan create]d channel (kupries) 7471 7472 2009-01-26 (bug fix)[2446662] uniformly declare EOF on RST on sockets (ferrieux) 7473 7474 2009-01-26 (bug fix)[1028264] delay WSACleanup() from under our feet (ferrieux) 7475 7476 2009-01-29 (bug fix)[2519474] Tcl_FindCommand() bug exposed by oo (fellows) 7477 7478 2009-01-29 (bug fix)[2537939] Fix Tcl_OOInitStubs() for no-stubs build (fellows) 7479 7480 2009-02-04 (bug fix)[2561746] [string repeat] overflow crash (porter) 7481 7482 2009-02-05 (enhancement) optimize string operations on bytearrays (fellows) 7483 7484 2009-02-12 (bug fix) enable simpler [oo::define] extension (ferri,fellows) 7485 7486 2009-02-15 (bug fix)[2603158] Tcl_AppendObjToObj: append to self crash (porter) 7487 7488 2009-02-17 (platform support) MSVC and _WIN64 (hobbs) 7489 7490 2009-02-20 (bug fix)[2571597] [file pathtype /a] wrong result (nadkarni,porter) 7491 7492 2009-03-03 (bug fix)[2662434] [zlib crc32] result now unsigned (gavilan,fellows) 7493 7494 2009-03-15 (platform support) translate SIGINFO where defined (BSD) (teterin) 7495 7496 2009-03-15 (bug fix)[2687952] TSD struct memleak (mistachkin) 7497 7498 2009-03-18 (bug fix)[2688184] memleak in [file normalize] (mistachkin) 7499 7500 2009-03-20 (bug fix)[2597185] crash in Tcl_AppendStringToObj (porter) 7501 7502 2009-03-20 (bug fix)[2561794,2669109,2494093,2553906] string overflow (porter) 7503 7504 2009-03-22 (bug fix)[2502037] NR-enable [namespace unknown] (sofer) 7505 7506 2009-03-27 (bug fix)[2710920] [file dirname|tail /foo/] errors (epler,porter) 7507 7508 2009-04-08 (bug fix)[2570363] unsafe [eval]s in tcltest (bron,porter) 7509 => tcltest 2.3.1 7510 7511 2009-04-08 (platform support) more Darwin kernel patterns (steffen) 7512 => platform 1.0.4 7513 7514 2009-04-09 (bug fix)[26245326] [http::geturl] connection failures (golovan) 7515 => http 2.7.3 7516 7517 2009-04-10 (new feature) Darwin: embeddable CoreFoundation notifier (steffen) 7518 7519 2009-04-10 (bug fix)[1961211] Darwin [load] back-compatibility (steffen) 7520 7521 2009-04-09 (new feature) http chunked+gzip modes (thoyts) 7522 => http 2.8.0 7523 7524 2009-04-11 (enhancement) clarified cmd name resolution in oo forwards (fellows) 7525 7526 20009-04-19 (bug fix)[2715421] http: excess bytes after POST (thoyts) 7527 => http 2.8.1 7528 7529 2009-04-30 (bug fix)[2486550] coroutine in [interp invokehidden] (sofer) 7530 7531 2009-05-07 (bug fix)[2785893] find command in deleted namespace (sofer) 7532 7533 2009-05-08 (bug fix)[2414858] tailcall in oo constructor (fellows) 7534 7535 2009-05-14 (new subcommand)[TIP 354] [info object namespace] (fellows) 7536 7537 2009-05-29 (platform support) account for ia64_32 (kupries) 7538 => platform 1.0.5 7539 7540 2009-06-02 (bug fix)[2798543] incorrect [expr] integer ** results (porter) 7541 7542 2009-06-10 (bug fix)[2801413] overflow in [format] (porter) 7543 7544 2009-06-13 (bug fix)[2802881] corrected compile env context (tasada,porter) 7545 7546 2009-06-17 (redesign) reduced ambition of [exit] finalization with aim to 7547 avoid otherwise very tricky multi-thread finalization bugs. (staplin,ferrieux) 7548 *** POTENTIAL INCOMPATIBILITY for exit handlers *** 7549 7550 2009-06-26 (platform support) updates for Xcode 3.1 & 3.2 (steffen) 7551 7552 2009-06-30 (platform support) clang static analyzer macros (steffen) 7553 7554 2009-07-01 (bug fix)[2806622] Win: bad tcl_platform(user) value (thoyts) 7555 7556 2009-07-05 (bug fix) zlib support asynch [chan copy] on chan transform (fellows) 7557 7558 2009-07-12 (bug fix)[1895546] TclOO support for Itcl 4 method caching (fellows) 7559 7560 2009-07-13 (bug fix)[1605269] NR-related [info frame] fixes (kupries) 7561 7562 2009-07-14 (bug fix)[2821401] NR-enable direct eval [switch] (kenny) 7563 7564 2009-07-16 (bug fix)[2819200] underflow settings on MIPS systems (porter) 7565 7566 2009-07-19 (interface)[TIP 354] new routine Tcl_GetObjectName() (fellows) 7567 7568 2009-07-20 (performance) favor [string is] success cases over empty (fellows) 7569 7570 2009-07-22 (interface) removed TclpPanic() routine (nijtmans) 7571 7572 2009-07-23 (bug fix)[2820349] plug event leak in notifier (mistachkin) 7573 7574 2009-07-24 (bug fix)[2826248] crash in Tcl_GetChannelHandle (sonnenburg,kupries) 7575 7576 2009-07-31 (bug fix)[2830354] overflow in [format] (misch,porter) 7577 7578 2009-08-06 (bug fix)[2827000] reflected channels can signal EGAIN (kupries) 7579 7580 2009-08-12 (new feature)[TIP 353] Tcl_NRExprObj() (porter) 7581 7582 2009-08-20 (bug fix)[2823276] NR-enable [if], [for], [while] (fellows) 7583 7584 2009-08-20 (bug fix)[2806250] EIAS violation in ~foo pathnames (porter) 7585 7586 2009-08-21 (bug fix)[2837800] [glob */foo] return ./~x/foo (porter) 7587 7588 2009-08-24 (bug fix) nested event loop notifier w/TkAqua Cocoa (alaoui,steffen) 7589 7590 2009-08-25 (bug fix) [info frame] account for continuation lines (kupries) 7591 7592 2009-08-27 (bug fix)[2845535] overflows in [format] (porter) 7593 7594 2009-09-01 (bug fix) improved error message in tcltest (porter) 7595 => tcltest 2.3.2 7596 7597 2009-09-11 (bug fix)[2849860] http handle "quoted" charset value (fellows) 7598 => http 2.7.4 7599 7600 2009-09-11 (enhancement)[2314561] [subst] now bytecompiled, NR-enabled (porter) 7601 7602 2009-09-24 (new feature)[TIP 356] Tcl_NRSubstObj() (porter) 7603 7604 2009-10-04 (bug fix)[2569449] Core Foundation memory bug in Tiger (steffen) 7605 7606 2009-10-06 (bug fix) repair intrep loss in slave interp evaluations 7607 introduced by first versions of the NRE conversion (nadkarni,porter) 7608 7609 2009-10-06 (bug fix)[1941434] broken tclTomMath.h includes (porter) 7610 7611 2009-10-07 (bug fix)[2871908] leaked hash table (mistachkin,kupries) 7612 7613 2009-10-08 (bug fix)[2874678] bignum leak in [dict incr] (fellows) 7614 7615 2009-10-17 (bug fix)[2629338] crash in var unset traces (raney,fellows) 7616 7617 2009-10-19 (bug fix)[2107634] extend [read] and [gets] to Tcl string limits 7618 (morrison,parker,porter) 7619 7620 2009-10-21 (bug fix)[2882561] Haiku OS signal support (morrison,fellows) 7621 7622 2009-10-22 (bug fix)[2883857] [my varname arr(index)] (boudaillier,fellows) 7623 7624 2009-10-23 (bug fix) 0-length writes: spurious SIG_PIPE (teterin,kupries) 7625 7626 2009-10-24 Broken DST applied EU rules to US zones (lehenbauer,kenny) 7627 7628 2009-10-29 (bug fix)[2800740] halved bignum memory on 64-bit systems (porter) 7629 *** POTENTIAL INCOMPATIBILITY *** 7630 7631 2009-11-05 (bug fix)[2854929] TM search path support in Safe Base (kupries) 7632 7633 2009-11-05 (enhancement) rewrite of the Safe Base commands (kupries) 7634 7635 2009-11-11 (bug fix)[2888099] [close] loses ENOSPC error (khomoutov,ferrieux) 7636 7637 2009-11-11 (bug fix)[2891171] RFC 3986 compliance for ? in URL (nijtmans) 7638 => http 2.8.2 7639 7640 2009-11-12 (bug fix)[2895565] [fcopy -size] miscounts when converting encodings 7641 (kupries) 7642 7643 2009-11-16 (bug fix)[2891556] encoding finalization crash (mistachkin,ferrieux) 7644 7645 2009-11-18 (bug fix)[2849797] consistent names for std chans (nijtmans,fellows) 7646 *** POTENTIAL INCOMPATIBILITY *** 7647 7648 2009-11-19 (enhancement) [load]able Tcltest extension (nijtmans) 7649 7650 2009-11-24 (bug fix)[2893771] [file stat] on Win locked files (thoyts) 7651 7652 2009-11-24 (bug fix)[2903011] crash call destructor from constructor (fellows) 7653 7654 2009-12-03 (bug fix)[2906841] Safe Base [glob ../*] fixes (fellows) 7655 7656 2009-12-09 (bug fix)[2901998] consistent I/O buffering (ferrieux,kupries) 7657 7658 2009-12-11 (bug fix)[2806407] NR-enabled coroutines (sofer) 7659 7660 2009-12-16 (bug fix)[2913616] msgcat: improved safe interp support (fellows) 7661 => msgcat 1.4.3 7662 7663 2009-12-22 (bug fix)[2918962] [lsort -index -stride] crash (moore,fellows) 7664 7665 2009-12-23 (bug fix)[2913625] [info script/nameof] in safe interps (fellows) 7666 7667 2009-12-28 (bug fix)[2891362] enable time limit in child interps (fellows) 7668 7669 2009-12-29 (bug fix)[2922555] [binary decode hex { }] crash (thoyts) 7670 7671 2009-12-29 (bug fix)[2895741] enable min(), max() in safe interps (fellows) 7672 7673 2009-12-30 (bug fix)[2824981] guard [unknown] against [set] undef (sofer) 7674 7675 2010-01-05 (bug fix)[2918610] [file rootname] corruption (magerya,porter) 7676 7677 2010-01-18 (bug fix)[2932421] less [format %s] shimmer (ferrieux) 7678 7679 2010-01-18 (bug fix)[2918110] [chan postevent] crash (bron,kupries) 7680 7681 2010-01-21 (bug fix)[2910748] NR-enable epoch fallback direct eval (sofer) 7682 7683 2010-01-30 (enhancement) [unset] now bytecompiled (fellows) 7684 7685 2010-02-01 (bug fix)[2942697] faster match: some pathological regexp patterns 7686 (lane,fellows) 7687 7688 2010-02-01 (bug fix)[2939073] [array unset] unset trace crash (ferrieux) 7689 7690 2010-02-02 (bug fix)[2944404] crash in oo destructor (fellows) 7691 7692 2010-02-02 (new feature) [array] is now a [namespace ensemble] (fellows) 7693 7694 2010-02-05 (enhancement) [error] now bytecompiled (fellows) 7695 7696 2010-02-08 (bug fix)[2947783] Tcl_Zlib*flate fail on shared values (fellows) 7697 7698 2010-02-09 (enhancement) [try] now bytecompiled (fellows) 7699 7700 2010-02-11 (bug fix)[2826551] line-sensitive matching in regexp (dejong) 7701 7702 2010-02-11 (bug fix)[2949740] [open |noSuch rb] crash (kovalenko,fellows) 7703 7704 2010-02-15 (bug fix)[2950259] harden (delete obj ns -> delete obj) (fellows) 7705 7706 2010-02-21 (bug fix)[2954959] get sign of abs($zero) right (nijtmans) 7707 7708 2010-02-22 (bug fix)[2762041] zlib chan transforms read EOF too early (kupries) 7709 7710 2010-02-27 (bug fix)[801429] Tcl_SetMainLoop() thread safety (fellows) 7711 *** POTENTIAL INCOMPATIBILITY *** 7712 7713 2010-03-02 (enhancement) -fvisibility-hidden build support (nijtmans) 7714 7715 2010-03-04 (bug fix)[2962664] [oo::class destroy] crash (fellows) 7716 7717 2010-03-05 (interface) TclOO typedefs for function pointers (fellows) 7718 *** POTENTIAL INCOMPATIBILITY *** 7719 7720 2010-03-09 (bug fix)[2936225] stop [chan copy] to slow channel consuming all 7721 memory with buffer backup (ferrieux) 7722 7723 2010-03-17 (bug fix)[2921116] crash in chan transfrom teardown (kupries) 7724 7725 2010-03-19 (enhancement) [throw] now bytecompiled (fellows) 7726 7727 2010-03-20 (enhancement) permit [fcopy] of > 2**31 bytes (fellows) 7728 7729 2010-03-24 (new feature) [info object methodtype] (fellows) 7730 7731 2010-03-24 (bug fix)[2383005] [return -errorcode] reject non-list (porter) 7732 7733 2010-03-25 (bug fix)[2976504] broken fstatfs() call (reeuwijk,fellows) 7734 7735 2010-03-30 (new feature)[TIP 362] [registry -32bit|-64bit] (courtney,fellows) 7736 => registry 1.3 7737 7738 2010-03-30 (bug fix)[2978773] refchan mem preservation (kupries) 7739 7740 2010-04-02 (new feature)[TIP 357] Tcl_LoadFile, Tcl_FindSymbol, etc. (kenny) 7741 7742 2010-04-05 (configure change)[TIP 364] default build: --enable-threads (fellows) 7743 *** POTENTIAL INCOMPATIBILITY *** 7744 7745 2010-04-02 (new feature)[TIP 348] [info errorstack], [return -errorstack] 7746 (ferrieux) 7747 7748 2010-04-20 (enhancement) update bundled zlib to 1.2.5 (nijtmans) 7749 7750 2010-04-29 (enhancement)[2992970] optimize bytearray appends (fellows) 7751 7752 2010-05-19 (bug fix)[3004007] dict/list shimmer w/o string rep loss (fellows) 7753 7754 2010-06-09 (bug fixes) platform: several fixes for 64 bit systems (kupries) 7755 => platform 1.0.9 7756 7757 2010-06-16 (bug fix)[3016135] [clock format] in he_IL locale (nijtmans) 7758 7759 2010-06-18 (bug fix)[3017997] Add .cmd to file extensions for [exec] (fellows) 7760 7761 2010-06-28 (bug fix)[3019634] support errno.h changes in MSVC++ 2010 (nijtmans) 7762 *** POTENTIAL INCOMPATIBILITY *** 7763 7764 2010-07-02 (enhancement) -errorcode for [expr] domain errors (fellows) 7765 7766 2010-07-28 (bug fix)[3037525] crash deleting vars @ callframe pop (sofer) 7767 7768 2010-08-04 (bug fix)[3034840] mem corrupt when refchan loses interp (kupries) 7769 7770 2010-08-04 (enhancement) Win [load] use LOAD_WITH_ALTERED_SEARCH_PATH (hobbs) 7771 7772 2010-08-04 (platform support) panic on detection of win9x system (hobbs) 7773 *** POTENTIAL INCOMPATIBILITY *** 7774 7775 2010-08-10 (fix) Handle non-null-terminated bytearrys in glob matching (hobbs) 7776 7777 2010-08-11 (fix) copy-paste bug in [yield] implementation (sofer, goth) 7778 7779 2010-08-11 (platform) Drop pre-aix 4.2 support, ldAix (hobbs) 7780 7781 2010-08-14 (frq)[2819611] changed signatures of hash fnctions, delete-file, and get-native-path (nijtmans) 7782 *** POTENTIAL INCOMPATIBILITY *** 7783 7784 2010-08-15 (bug fix)[3045010] tweaked error message for wrong#args of lambda's (fellows) 7785 7786 2010-08-18 (bug fix)[3004191] fixed safe [glob] (fellows) 7787 7788 2010-08-21 (patch)[3034251] genStubs steal features of ttkGenStubs (nijtmans) 7789 7790 2010-08-26 (bug fix)[1230554] configure, OSF-1 problems, windows manifest issues (hobbs) 7791 7792 2010-08-30 (bug fix) [3046594,3047235,3048771] reimplemented tailcall (sofer) 7793 7794 2010-08-31 fixed manifest handling on windows (hobbs, kupries) 7795 7796 2010-08-31 windows makefile and stub changes (nijtmans) 7797 7798 2010-09-01 (bug fix)[3057639] compiled lappend trace consistency (hobbs,kupries) 7799 *** POTENTIAL INCOMPATIBILITY *** 7800 7801 2010-09-01 fixed safe glob handling of -directory (kupries) 7802 7803 2010-09-02 fixed safe glob handling of -join (kupries) 7804 7805 2010-09-08 (bug fix)[3059922] build with mingw on amd64 (porter, mescalinum) 7806 7807 2010-09-15 (bug fix)[3067036] stop hang in bytearray append (fellows) 7808 7809 2010-09-22 unified set of link libraries between mingw and vc (nijtmans) 7810 7811 2010-09-22 (bug fix)[3072640] protect writes to ::error* variables (sofer) 7812 7813 2010-09-23 fix leak of return options [catch $err m constant] (porter, hobbs) 7814 7815 2010-09-24 (bugfix)[3056775] fixed race condition in windows sockets (kupries) 7816 7817 2010-09-24 (performance) string eq/cmp (hobbs) 7818 7819 2010-09-26 (patch)[3072080] rewritten NRE core (sofer) 7820 7821 2010-09-28 (new feature)[TIP 162] implementation of ipv6 sockets (max) 7822 7823 2010-10-02 (bug fix)[3079830] properly invalidate string rep of dicts (fellows) 7824 7825 2010-10-06 (bug fix)[3081065] fix writing to freed Tcl_Obj (porter) 7826 7827 2010-10-08 fix in ipv6 code on windows (nijtmans) 7828 7829 2010-10-09 fixed overallocation of execution stack (sofer) 7830 7831 2010-10-11 windows unicode changes (nijtmans) 7832 7833 2010-10-12 (bug fix)[3084338] fixed meamleak in ipv6 code (max) 7834 7835 2010-10-13 (bug fix)[467523,983660] alt fix allows empty literal share (porter) 7836 7837 2010-10-15 (bugfix)[3085863] updated unicode tables (nijtmans) 7838 *** POTENTIAL INCOMPATIBILITY *** 7839 7840 2010-10-16 refactored implementation of dict iteration (fellows) 7841 7842 2010-10-17 (patch)[2995655] report inner contexts on error stack (ferrieux) 7843 7844 2010-10-19 (bug fix)[3081008] fixed bytearray zlib interaction (fellows) 7845 7846 2010-10-19 improved crc, appending to bytearray (fellows) 7847 7848 2010-10-20 improved compilation of [dict for] (fellows) 7849 7850 2010-10-26 Added private support to disable reverse dns (max) 7851 7852 2010-10-26 Prevent crashes when querying socket options (fellows, max) 7853 7854 2010-10-28 (bug fix)[3093120] prevent freeaddrinfo(NULL) (porter, virden) 7855 7856 2010-10-29 (bug fix)[2905784] stop cycle waste in short [after] (ferrieux) 7857 7858 2010-11-01 tzdata updated to Olson's tzdata2010o (kenny) 7859 7860 2010-11-04 (bug fix)[3099086] Clarified docs of var substitution (fellows) 7861 7862 2010-11-04 improved install targets (cassof) 7863 7864 2010-11-04 improved testing of sockets (max) 7865 7866 2010-11-05 (frq)[491789] setargv/unicode cmdline for MSVC (nijtmans) 7867 7868 2010-11-09 (bug fix)[3105999] fixed memleak in OO var resolver (fellows) 7869 7870 2010-11-15 (TIP 378)[3081184] improved TIP 280 performance (kupries) 7871 7872 2010-11-16 (platform) VS 2005 SP1 MSVC compiler (nijtmans) 7873 7874 2010-11-18 (bug fix)[3111059] leak in [namespace delete] w coroutines (sofer) 7875 7876 2010-11-28 [3120139,3105247] Tcl_PrintDouble improvements (kenny) 7877 7878 2010-11-29 (new cmd) [tcl::unsupported::inject] (ferrieux,sofer) 7879 7880 2010-11-30 (enhancement) Restore TclFormatInt for performance (hobbs) 7881 7882 2010-12-09 (new feature) [file] is now a [namespace ensemble] (fellows) 7883 7884 2010-12-19 (bug fix) [fcopy -size 1 -command] asynchronous (ferrieux) 7885 7886 2010-12-12 (platform) OpenBSD build improvements (cassoff) 7887 7888 2010-12-17 (platform) Revisions to support rpm 4.4.2 (cassoff) 7889 7890 2010-12-27 (bug fix) crash in [lsort] w multiple -index options (fellows) 7891 7892 2010-12-30 (bug fix)[3142026] GrowEvaluationStack OBOE (harder,sofer) 7893 7894 2011-01-18 (bug fix)[3001438] [info frame -1] crash (mccormack,fellows) 7895 7896 2011-03-01 (performance)[3168398] optimize [interp cancel] (mistachkin) 7897 7898 2011-03-05 (bug fix)[3185009] crash in OO variables (danckaert,fellows) 7899 7900 2011-03-05 (new cmd) [tcl::unsupported::assemble] (ugurlu,kenny) 7901 7902 2011-03-06 (bug fix)[3200987,3192636] parser buffer overruns (porter) 7903 7904 2011-03-08 (bug fix)[3202905] failed intrep release of interp result (mccormack) 7905 7906 2011-03-09 (bug fix)[3202171] repair [namespace inscope] optimizer (porter) 7907 7908 2011-03-10 (new version) better tcltest reporting from child interps (fellows) 7909 => tcltest 2.3.3 7910 7911 2011-03-10 (new feature) [namespace] is now a [namespace ensemble] (fellows) 7912 7913 2011-03-12 (interface) reduce casting by ckalloc(), ckfree() callers (fellows) 7914 7915 2011-03-14 (bug fix) Fixes from libtommath 0.42.0 release (fellows) 7916 7917 2011-03-21 (bug fix)[3216070] [load] extension from embed Tcl apps (nijtmans) 7918 ***POTENTIAL INCOMPATIBILITY*** 7919 7920 2011-03-27 (performance) NRE: LIST lset foreach benchmark (twylite) 7921 7922 2011-04-11 (bug fix)[3282869] coroutine + eval + locals crash (ferrieux,sofer) 7923 7924 2011-04-13 (bug fix)[2662380] crash when variable append trace unsets (sofer) 7925 7926 2011-04-13 (bug fix)[3285375] Buffer overflow in [concat] (porter) 7927 7928 2011-05-02 (internals change) revised TclFindElement() interface (porter) 7929 *** POTENTIAL INCOMPATIBILITY *** 7930 7931 2011-05-05 (enhancement) dict->list w/o string rep generation (porter) 7932 7933 2011-05-10 (bug fix)[3173086] Crash parsing long lists (rogers,porter) 7934 7935 2011-05-24 (enhancement) msgcat internal improvements (fellows) 7936 => msgcat 1.4.4 7937 7938 2011-05-25 (TIP 381) [info object|class call] [self call] [nextto] (fellows) 7939 7940 2011-05-31 (bug fix)[3293874] let lists grow all the way to the limit (porter) 7941 7942 2011-06-02 (bug fix)[3185407] cmd resolution epoch flaw (nadkarni,fellows) 7943 7944 2011-06-13 (bug fix)[3315098] mem leak generating double string rep (neumann) 7945 7946 2011-06-22 (new feature) DEB_HOST_MULTIARCH support (kupries) 7947 => platform 1.0.10 7948 7949 2011-07-15 (bug fix)[3357771] Prevent circular refs in bytecode (porter) 7950 7951 2011-07-28 tzdata updated to Olson's tzdata2011h (porter) 7952 7953 2011-08-01 (bug fix)[3383616] memleak exposed by XOTcl (neumann,sofer) 7954 7955 Many more Tcl built-in command errors now set an -errorcode. 7956 7957 --- Released 8.6b2, August 8, 2011 --- See ChangeLog for details --- 7958 7959 2011-07-02 (bug fix)[3349507] correct double(1[string repeat 0 23]) (kenny) 7960 7961 2011-07-19 (bug fix)[3371644] Tcl_ConvertElement() segfault (sader, ferrieux) 7962 7963 2011-07-21 (bug fix)[3372130] hypot(.) segfault (nijtmans) 7964 7965 2011-08-12 (bug fix)[3389764] memleaks due to reference cycles in dup'd paths 7966 7967 2011-08-15 (bug fix)[3390272] leak of [info script] value (porter) 7968 7969 2011-08-17 (bug fix)[3393150] bignum leaks in Tcl_Get*() routines (porter) 7970 7971 2011-08-18 (bug fix)[3393714] [string toupper] overflow (nijtmans) 7972 7973 2011-08-30 (bug fix)[3398794] panic in interp limit setting (gavlian,fellows) 7974 7975 2011-09-08 (bug fix)[3401704] revised expr parser to permit function names 7976 like "nano()" instead of parsing as "nan o()" with missing op (duquette,porter) 7977 *** POTENTIAL INCOMPATIBILITY *** 7978 7979 2011-09-10 (bug fix)[3400658] wrong num args msg with TclOO (rsooltan,fellows) 7980 7981 2011-09-13 (bug fix)[3390638] solaris studio cc workaround (kechel,porter) 7982 7983 2011-09-13 (bug fix)[3405652] DTrace workaround (michelson,porter) 7984 7985 2011-09-16 (bug fix)[3391977] -headers overrides -type (ziegenhagen,fellows) 7986 => http 2.8.3 7987 7988 2011-09-16 (TIP 388) New \Uhhhhhhhh syntax (nijtmans) 7989 7990 2011-10-06 (enhancement) bytecode compile [dict with] (fellows) 7991 7992 2011-10-11 (bug fix)[2935503] [file stat] returns bad mode (nadkarni,nijtmans) 7993 7994 2011-10-20 (bug fix)[3418547] cmd lits and custom resolvers (soberning,fellows) 7995 7996 2011-10-31 (bug fix)[3414754] EIAS violation in fs paths (porter) 7997 7998 2011-11-22 (bug fix)[3354324] Win: [file mtime] sets wrong time (nijtmans) 7999 8000 2011-11-30 (bug fix)[967195] Simply args passed to child processes (nijtmans) 8001 => tcltest 2.3.4 8002 8003 2011-12-07 (bug fix)[3444754] fix [string tolower \u01C5] (nijtmans) 8004 8005 2011-12-11 (update)[3457031] Update [[:print:]] to Unicode 6.0 (nijtmans) 8006 8007 2011-12-24 (bug fix)[3464428] fix [string is graph \u0120] (nijtmans) 8008 8009 2012-01-08 (bug fix)[3470928] zoneinfo trouble with Windhoek data file (kenny) 8010 8011 2012-01-13 (bug fix)[3472316] fix retrieval of socket error (fellows) 8012 8013 2012-01-21 (bug fix)[3475667] [regexp] buffer read overflow (sebres) 8014 8015 2012-01-22 (bug fix)[3475264] [dict exists] return 0, not error (fellows) 8016 8017 2012-01-25 (bug fix)[3474460] [oo::copy] var resolution list (fellows) 8018 8019 2012-01-26 (bug fix)[3475569,3479689] mem corrupt in fs path (sebres,porter) 8020 8021 2012-01-30 (enhancement) improve bytecode compile of [catch] (fellows) 8022 8023 2012-02-02 (bug fix)[2974459,2879351,1951574,1852572,1661378,1613456] Fix 8024 problems where [file *able] would return false results on Win/Samba (porter) 8025 8026 2012-02-06 (bug fix)[3484621] bump bytecode epoch on exec traces (kuhn,sofer) 8027 8028 2012-02-15 (bug fix)[3487626] crash compiling [dict for] (fellows) 8029 8030 2012-02-15 (enhancement) bytecode compile [lrange],[lreplace] (fellows) 8031 8032 2012-02-17 (bug fix)[2233954] compile problem on AIX & Android (nijtmans) 8033 8034 2012-02-29 (bug fix)[3466099] BOM in Unicode (nijtmans) 8035 8036 2012-03-07 (bug fix)[3498327] RFC 3986 compliance (kupries) 8037 8038 2012-03-26 (TIP 380) New builtin class [oo::Slot] (fellows) 8039 *** POTENTIAL INCOMPATIBILITY *** 8040 8041 2012-03-27 (TIP 397) <cloned> method to extend [oo::copy] (fellows) 8042 *** POTENTIAL INCOMPATIBILITY *** 8043 8044 2012-03-27 (TIP 395) New subcommand [string is entier] (fellows) 8045 8046 2012-04-02 (TIP 396) New command [yieldto] (fellows) 8047 8048 2012-04-04 (bug fix)[3514761] crash combining objects and ensembles (fellows) 8049 8050 2012-04-09 (bug fix)[2712377] [info vars] and oo variables (fellows) 8051 8052 2012-04-09 (bug fix)[3396896] no dups in oo var lists (fellows) 8053 8054 2012-04-11 (bug fix)[3448512] [clock scan 1958-01-01] fail on Win (nijtmans) 8055 8056 2012-04-15 (bug fix)[3517696] fix flush of zlib chan xform (fellows) 8057 8058 2012-04-18 tzdata updated to Olson's tzdata2012c (kenny) 8059 8060 2012-04-28 (TIP 398) exit non-blocking chan without flush (ferrieux) 8061 *** POTENTIAL INCOMPATIBILITY *** 8062 8063 2012-05-02 (enhancement) Better use of Intel cpuid instruction (nijtmans) 8064 8065 2012-05-03 (bug fix)[3428753] Unbreak synchronous [socket -async] (porter) 8066 8067 2012-05-10 (bug fix)[2812981] force consistent config of Tcl+pkgs (ferrieux) 8068 8069 2012-05-10 (bug fix)[473946] correct send of special characters (nijtmans) 8070 8071 2012-05-17 (bug fix)[3445787] fix [file] ensemble in Safe Base (fellows) 8072 8073 2012-05-17 (bug fix)[2964715] fix [glob] in Safe Base (fellows) 8074 8075 2012-05-17 (bug fix)[3106532] proper [switch -indexvar] values (fellows) 8076 *** POTENTIAL INCOMPATIBILITY *** 8077 8078 2012-05-21 (TIP 106) New -binary option to [dde execute|poke] (oehlmann) 8079 => dde 1.4.0 8080 8081 2012-05-23 (bug fix)[3525907] [zlib push decompress] & [chan event] 8082 (fellows,ferrieux,kupries) 8083 8084 2012-05-28 (bug fix)[3529949] Protect ~ paths in Safe Base (fellows) 8085 8086 2012-06-21 (bug fix)[3362446] [registry keys] failure (nijtmans) 8087 => registry 1.3.0 8088 8089 2012-06-25 (bug fix)[3537605] [encoding dirs a b] error message (fellows) 8090 8091 2012-06-25 (bug fix)[3024359] crash when multi-thread concurrent [file system] 8092 and Tcl_FSMountsChanged(). (porter) 8093 8094 2012-06-29 (bug fix)[3536888] fix locale guessing (oehlmann,nijtmans) 8095 8096 2012-07-05 (bug fix)[1189293] make "<<" redirect binary safe (porter) 8097 8098 2012-07-08 (bug fix)[3531209] accept IPv6 URLs (max) 8099 => http 2.8.4 8100 8101 2012-07-24 (bug fix) stop mem corruption in stacked channel events (max,porter) 8102 8103 2012-07-25 (bug fix)[3546275] [auto_execok] search match [exec] (danckaert) 8104 8105 2012-07-27 (update)[3464401] Support Unicode 6.2 (nijtmans) 8106 8107 2012-08-20 (bug fix)[3559678] [file normalize] EIAS failure (phao,dgp) 8108 8109 2012-08-25 (bug fix)[3561330] Ukranian translation of "March" (teterin) 8110 8111 2012-09-07 (TIP 404) New msgcat commands [mcflset], [mcflmset] (oehlmann) 8112 => msgcat 1.5.0 8113 8114 Many revisions to better support a Cygwin environment (nijtmans) 8115 8116 Dropped support for OS X versions less than 10.4 (Tiger) (fellows) 8117 8118 --- Released 8.6b3, September 18, 2012 --- See ChangeLog for details --- 8119 8120 2012-09-20 (enhancement) full Unicode support (nijtmans) 8121 => dde 1.4.0 8122 8123 2012-09-20 (enhancement) update bundled zlib to 1.2.7 (nijtmans) 8124 8125 2012-10-03 (bug fix) exit panic on stacked std channel (griffin,porter) 8126 8127 2012-10-14 (bug fix) [tcl::Bgerror] crash on non-dict options (nijtmans) 8128 8129 2012-10-16 (TIP 400) New [zlib] options to set compression dict (fellows) 8130 8131 2012-10-16 (TIP 405) New commands [lmap] and [dict map] (fellows) 8132 8133 2012-10-24 (enhancement) [dict unset] now bytecompiled (fellows) 8134 8135 2012-11-05 (TIP 413) Revisions to default [string trim*] trimset (nijtmans) 8136 *** POTENTIAL INCOMPATIBILITY *** 8137 8138 2012-11-05 (enhancement) Now bytecompiled: [array exists], [array set], 8139 [array unset], [dict create], [dict exists], [dict merge], [format], 8140 [info commands], [info coroutine], [info level], [info object], 8141 [namespace current], [namespace code], [namespace qualifiers], [namespace tail], 8142 [namespace which], [regsub], [self], [string first], [string last], 8143 [string map], [string range], [tailcall], [yield]. (fellows) 8144 8145 2012-11-06 (bug fix)[3581754] avoid multiple callback on keep-alive (fellows) 8146 => http 2.8.5 8147 8148 2012-11-07 tzdata updated to Olson's tzdata2012i (kenny) 8149 8150 2012-11-13 (bug fix)[3567063] thread fp settings from master (mistachkin) 8151 8152 2012-11-14 (bug fix)[2933003] tempfile creation in $TMPDIR (fellows) 8153 8154 2012-11-15 (TIP 416) New [load] options -global and -lazy (nijtmans) 8155 8156 2012-11-20 (bug fix)[3033307] base64 trail whitespace (kovalenko,goth) 8157 8158 2012-12-03 (bug fix) [configure] query broke init from argv (porter) 8159 => tcltest 2.3.5 8160 8161 2012-12-13 (bug fix)[3595576] crash: [catch {} -> noSuchNs::var] (sofer,porter) 8162 8163 2012-12-13 (bug fix) crash: [zlib gunzip $data -header noSuchNs::var] (porter) 8164 8165 --- Released 8.6.0, December 20, 2012 --- See ChangeLog for details --- 8166 8167 2012-12-22 (bug fix)[3598150] DString to Tcl_Obj memleak (afredd) 8168 8169 2012-12-27 (bug fix)[3598580] Tcl_ListObjReplace() refcount fix (nijtmans) 8170 8171 2013-01-04 (bug fix) memleak in [format] compiler (fellows) 8172 8173 2013-01-08 (bug fix)[3092089,3587096] [file normalize] on junction points 8174 8175 2013-01-09 (bug fix)[3599395] status line processing (nijtmans) 8176 2013-01-23 (bug fix)[2911139] repair async connection management (fellows) 8177 => http 2.8.6 8178 8179 2013-01-26 (bug fix)[3601804] Darwin segfault platformCPUID (nijtmans) 8180 8181 2013-01-28 (enhancement) improve ensemble bytecode (fellows) 8182 8183 2013-01-30 (enhancement) selected script code improvements (fradin) 8184 => tcltest 2.3.6 8185 8186 2013-01-30 (bug fix)[3599098] update to handle glibc banner changes (kupries) 8187 => platform 1.0.11 8188 8189 2013-01-31 (bug fix)[3598282] make install DESTDIR support (cassoff) 8190 8191 2013-02-05 (bug fix)[3603434] [file normalize a:/] flaw in VFS (porter,griffin) 8192 8193 2013-02-09 (bug fix)[3603695] $obj varname resolution rules (venable,fellows) 8194 8195 2013-02-11 (bug fix)[3603553] zlib flushing errors (vampiera,fellows) 8196 8197 2013-02-14 (bug fix)[3604576] msgcat use of Windows registry (oehlmann,nijtmans) 8198 => msgcat 1.5.1 8199 8200 2013-02-19 (bug fix)[2438181] report errors in trace handlers (yorick) 8201 8202 2013-02-21 (bug fix)[3605447] unbreak [namespace export -clear] (porter) 8203 8204 2013-02-23 (bug fix)[3599194] fallback IPv6 routines (afredd,max) 8205 8206 2013-02-27 (bug fix)[3606139] stop crash in [regexp] (lane) 8207 8208 2013-03-03 (bug fix)[3606258] major serial port update (english) 8209 8210 2013-03-06 (bug fix)[3606683] [regexp (((((a)*)*)*)*)* {}] hangs 8211 (grathwohl,lane,porter) 8212 8213 2013-03-12 (enhancement) better build support for Debian arch (shadura) 8214 8215 2013-03-19 (bug fix)[2893771] [file stat] on locked files (thoyts,nijtmans) 8216 8217 2013-03-21 (bug fix)[2102614] [auto_mkindex] ensemble support (griffin) 8218 8219 2013-03-27 Tcl_Zlib*() routines tolerate NULL interps (porter 8220 8221 2013-04-04 (bug fix) Support URLs with query but no path (max) 8222 => http 2.8.7 8223 8224 2013-04-08 (bug fix)[3610026] regexp crash on color overflow (linnakangas) 8225 8226 2013-04-29 (enhancement) [array set] compile improvement (fellows) 8227 8228 2013-04-30 (enhancement) broaden glibc version detection (kupries) 8229 => platform 1.0.12 8230 8231 2013-05-06 (platform support) Cygwin64 (nijtmans) 8232 8233 2013-05-15 (enhancement) Improved [list {*}...] compile (fellows) 8234 8235 2013-05-16 (platform support) mingw-4.0 (nijtmans) 8236 8237 2013-05-19 (platform support) FreeBSD updates (cerutti) 8238 8239 2013-05-20 (bug fix)[3613567] access error temp file creation (keene) 8240 8241 2013-05-20 (bug fix)[3613569] temp file open fail can crash [load] (keene) 8242 8243 2013-05-22 (bug fix)[3613609] [lsort -nocase] failed on non-ASCII (fellows) 8244 8245 2013-05-28 (bug fix)[3036566] Use language packs (Vista+) locale (oehlmann) 8246 => msgcat 1.5.2 8247 8248 2013-05-29 (bug fix)[3614102] [apply {{} {list [if 1]}}] stack woes (porter) 8249 8250 2013-06-03 Restored lost performance appending to long strings (elby,porter) 8251 8252 2013-06-05 (bug fix)[2835313] [while 1 {foo [continue]}] crash (fellows) 8253 8254 2013-06-17 (bug fix)[a876646] [:cntrl:] includes \x00 to \x1f (nijtmans) 8255 8256 2013-06-27 (bug fix)[983509] missing encodings for config values (nijtmans) 8257 8258 2013-06-27 (bug fix)[34538b] apply DST in 2099 (lang) 8259 8260 2013-07-02 (bug fix)[32afa6] corrected dirent64 check (griffin) 8261 8262 2013-07-06 tzdata updated to Olson's tzdata2013d (kenny) 8263 8264 2013-07-10 (bug fix)[86fb5e] [info frame] in compiled ensembles (porter) 8265 8266 2013-07-18 (bug fix)[1c17fb] revisd syntax errorinfo that shows error (porter) 8267 8268 2013-07-26 (bug fix)[6585b2] regexp {(\w).*?\1} abb (lane) 8269 8270 2013-07-29 [string is space \u202f] => 1 (nijtmans) 8271 8272 2013-08-01 [a0bc85] Limited support for fork with threads (for Rivet) (nijtmans) 8273 8274 2013-08-01 (bug fix)[1905562] RE recursion limit increased to support 8275 reported usage of large expressions (porter) 8276 8277 2013-08-02 (bug fix)[9d6162] superclass slot empty crash (vdgoot,fellows) 8278 8279 2013-08-03 (enhancement)[3611643] [auto_mkindex] support TclOO (fellows) 8280 8281 2013-08-14 (bug fix)[a16752] Missing command delete callbacks (porter) 8282 8283 2013-08-15 (bug fix)[3610404] reresolve traced forwards (porter) 8284 8285 2013-08-15 Errors from execution traces become errors of the command (porter) 8286 8287 2013-08-23 (bug fix)[8ff0cb9] Tcl_NR*Eval*() schedule only, as doc'd (porter) 8288 8289 2013-08-29 (bug fix)[2486550] enable [interp invokehidden {} yield] (porter) 8290 8291 2013-09-01 (bug fix)[b98fa55] [binary decode] fail on whitespace (reche,fellows) 8292 8293 2013-09-07 (bug fix)[86ceb4] have tm path favor first provider (neumann,porter) 8294 8295 2013-09-09 (bug fix)[3609693] copied object member variable confusion (fellows) 8296 => TclOO 1.0.1 8297 8298 2013-09-17 (bug fix)[2152292] [binary encode uuencode] corrected (fellows) 8299 8300 2013-09-19 (bug fix)[3487626] segfaults in [dict] compilers (porter) 8301 8302 2013-09-19 (bug fix)[31661d2] mem leak in [lreplace] (ade,porter) 8303 8304 Many optmizations, improvements, and tightened stack management in bytecode. 8305 8306 --- Released 8.6.1, September 20, 2013 --- http://core.tcl.tk/tcl/ for details 8307 8308 2013-09-27 (enhancement) improved ::env synchronization (fellows) 8309 8310 2013-10-20 (bug fix)[2835313] segfault from 8311 [apply {{} {while 1 {a {*}[return -level 0 -code continue]}}}] (fellows) 8312 8313 2013-10-22 (bug fix)[3556215] [scan %E%G%X] support (fellows) 8314 8315 2013-10-25 (bug fix)[3eb2ec1] upper case scheme names in url. (nijtmans) 8316 => http 2.8.8 8317 8318 2013-10-29 (bug fix)[414d103] HP-UX: restore [exec] in threaded Tcl (nijtmans) 8319 8320 2013-11-04 (bug fix) C++ friendly stubs struct declarations (nijtmans) 8321 8322 2013-11-05 (bug fix)[426679e] OpenBSD man page rendering (nijtmans) 8323 8324 2013-11-12 (bug fix)[5425f2c] [fconfigure -error] breaks [socket -async] 8325 8326 2013-11-20 (bug fix) Improved environment variable management (nijtmans) 8327 => tcltest 2.3.7 8328 8329 2013-11-21 (platforms) Support for Windows 8.1 (nijtmans) 8330 8331 2013-12-06 (RFE) improved [foreach] bytecode (fellows) 8332 8333 2013-12-10 (RFE) improved [lmap] bytecode (sofer) 8334 8335 2013-12-11 (RFE) improved [catch] bytecode (sofer) 8336 8337 2013-12-18 (bug fix)[0b874c3] SEGV [coroutine X coroutine Y info frame] (porter) 8338 8339 2013-12-20 (RFE) reduced numeric conversion in bytecode (sofer) 8340 8341 2014-01-07 (RFE) compilers for [concat], [linsert], [namespace origin], 8342 [next], [string replace], [string tolower], [string totitle], [string toupper], 8343 [string trim], [string trimleft], [string trimright] (fellows) 8344 8345 2014-01-22 (RFE) compilers for [nextto], [yieldto] (fellows) 8346 8347 2014-02-02 (RFE) compiler for [string is] (fellows) 8348 8349 2014-02-06 (bug fix)[a4494e2] panic in test namespace-13.2 (porter) 8350 8351 2014-03-20 (bug fix)[2f7cbd0] FreeBSD 10.0 build failure (nijtmans) 8352 8353 2014-03-26 (RFE)[b42b208] Cygwin: [file attr -readonly -archive -hidden -system] 8354 (nijtmans) 8355 8356 2014-03-27 (bug fix) segfault iocmd-23.11 (porter) 8357 8358 2014-04-02 (bug fix)[581937a] Win: readable event on async connect failure 8359 8360 2014-04-04 (bug fix)[581937a,97069ea] async socket connect fail (oehlmann) 8361 8362 2014-04-10 (bug fix)[792641f] Win: no \ in normalized path (nijtmans) 8363 8364 2014-04-11 (bug fix)[3118489] protect NUL in filenames (nijtmans) 8365 8366 2014-04-15 (bug fix)[88aef05] segfault iocmd-21.20 (porter) 8367 8368 2014-04-16 (update) Win: use Winsock 2.2 (nijtmans) 8369 8370 2014-04-16 (bug fix)[d19a30d] segfault clock-67.[23] (sebres) 8371 8372 2014-04-21 (bug fix) segfault iocmd-21.2[12] (porter) 8373 8374 2014-04-22 (bug fix) segfault iogt-2.4 (porter) 8375 8376 2014-04-23 (bug fix)[3493120] memleak in thread exit 8377 8378 2014-05-08 refactoring of core I/O functions (porter) 8379 8380 2014-05-09 (bug fix)[3389978] Win: extended paths support (nijtmans) 8381 8382 2014-05-09 (bug fix) segfault iocmd-32.1 (porter) 8383 8384 2014-05-11 (bug fix)[6d2f249] nested ensemble compile failure (fellows) 8385 8386 2014-05-17 (RFE)[47d6625] wideint support in [lsearch -integer] [lsort -integer] (nijtmans) 8387 *** POTENTIAL INCOMPATIBILITY *** 8388 8389 2014-05-20 (bug fix) Stop eof and blocked state leaking thru stacks (porter) 8390 *** POTENTIAL INCOMPATIBILITY *** 8391 8392 2014-05-20 (bug fix)[13d3af3] Win: socket -async tried only first IP address 8393 8394 2014-05-28 (platforms) work around systems that fail when a shared library 8395 is deleted after it is [load]ed (kupries) 8396 8397 2014-05-31 (bug fix) chan events on pipes must be on proper ends (porter) 8398 8399 2014-06-04 (bug fix) socket-2.12 (porter) 8400 8401 2014-06-05 (bug fix) io-12.6 (kupries,porter) 8402 8403 2014-06-15 (RFE)[1b0266d] [dict replace|remove] return canonical dict (fellows) 8404 *** POTENTIAL INCOMPATIBILITY *** 8405 8406 2014-06-16 (bug fix) socket-2.13 workaround broken select() (porter) 8407 8408 2014-06-20 (bug fix)[b47b176] iortrans.tf-11.0 (porter) 8409 8410 2014-06-22 (RFE)[2f9df4c] -cleanup scripts before -out compare (nijtmans) 8411 8412 2014-07-04 (update) Update Unicode data to 7.0 (nijtmans) 8413 *** POTENTIAL INCOMPATIBILITY *** 8414 8415 2014-07-08 (bug) [chan push] converts blocked writes to error (aspect,porter) 8416 8417 2014-07-10 (bug fix)[7368d2] memleak Tcl_SetVar2(..,TCL_APPEND_VALUE) (porter) 8418 *** POTENTIAL INCOMPATIBILITY *** 8419 8420 2014-07-11 (bug) leaks in SetFsPathFromAny, [info frame] (porter) 8421 8422 2014-07-15 (bug) compress dict leak in zlib xform channel close (porter) 8423 8424 2014-07-17 (bug fix)[9969cf8] leak trace data in coroutine deletion (porter) 8425 8426 2014-07-18 (RFE)[b43f2b4] fix [lappend] multi performance collapse (fellows) 8427 8428 2014-07-19 (bug fix)[75b8433] memleak managing oo instance lists (porter) 8429 8430 2014-07-21 (bug fix)[e6477e1] memleak in AtForkChild() (porter) 8431 8432 2014-07-22 (bug fix)[12b0997] memleak in iocmd.tf-32.0 (porter) 8433 8434 2014-07-28 (RFE) Optimized binary [chan copy] by moving buffers (porter) 8435 8436 2014-07-30 (enhancement) use refcounts, not Tcl_Preserve to manage lifetime 8437 of Tcl_Channel (porter) 8438 *** POTENTIAL INCOMPATIBILITY *** 8439 8440 2014-07-31 (bug fix)[a84a720] double free in oo chain deletion (porter) 8441 8442 2014-08-01 (bug fix)[e75faba] SEGV [apply {{} {namespace upvar a b [x]}}] (porter) 8443 8444 2014-08-01 (update) "macosx*-i386-x86_64" "macosx-universal" no longer compatible (kupries) 8445 => platform 1.0.13 8446 8447 2014-08-12 tzdata updated to Olson's tzdata2014f (kenny) 8448 8449 2014-08-17 (bug fix)[7d52e11] [info class subclasses oo::object] should 8450 include ::oo::class (fellows) 8451 8452 2014-08-25 (TIP 429) New command [string cat] (leitgeb,ferrieux) 8453 8454 --- Released 8.6.2, August 27, 2014 --- http://core.tcl.tk/tcl/ for details