1Recent user-visible changes to Tcl: 2 3RCS: @(#) $Id: changes,v 1.79.2.55 2008/04/11 16:57:37 dgp Exp $ 4 51. No more [command1] [command2] construct for grouping multiple 6commands on a single command line. 7 82. Semi-colon now available for grouping commands on a line. 9 103. For a command to span multiple lines, must now use backslash-return 11at the end of each line but the last. 12 134. "Var" command has been changed to "set". 14 155. Double-quotes now available as an argument grouping character. 16 176. "Return" may be used at top-level. 18 197. More backslash sequences available now. In particular, backslash-newline 20may be used to join lines in command files. 21 228. New or modified built-in commands: case, return, for, glob, info, 23print, return, set, source, string, uplevel. 24 259. After an error, the variable "errorInfo" is filled with a stack 26trace showing what was being executed when the error occurred. 27 2810. Command abbreviations are accepted when parsing commands, but 29are not recommended except for purely-interactive commands. 30 3111. $, set, and expr all complain now if a non-existent variable is 32referenced. 33 3412. History facilities exist now. See Tcl.man and Tcl_RecordAndEval.man. 35 3613. Changed to distinguish between empty variables and those that don't 37exist at all. Interfaces to Tcl_GetVar and Tcl_ParseVar have changed 38(NULL return value is now possible). *** POTENTIAL INCOMPATIBILITY *** 39 4014. Changed meaning of "level" argument to "uplevel" command (1 now means 41"go up one level", not "go to level 1"; "#1" means "go to level 1"). 42*** POTENTIAL INCOMPATIBILITY *** 43 4415. 3/19/90 Added "info exists" option to see if variable exists. 45 4616. 3/19/90 Added "noAbbrev" variable to prohibit command abbreviations. 47 4817. 3/19/90 Added extra errorInfo option to "error" command. 49 5018. 3/21/90 Double-quotes now only affect space: command, variable, 51and backslash substitutions still occur inside double-quotes. 52*** POTENTIAL INCOMPATIBILITY *** 53 5419. 3/21/90 Added support for \r. 55 5620. 3/21/90 List, concat, eval, and glob commands all expect at least 57one argument now. *** POTENTIAL INCOMPATIBILITY *** 58 5921. 3/22/90 Added "?:" operators to expressions. 60 6122. 3/25/90 Fixed bug in Tcl_Result that caused memory to get trashed. 62 63------------------- Released version 3.1 --------------------- 64 6523. 3/29/90 Fixed bug that caused "file a.b/c ext" to return ".b/c". 66 6724. 3/29/90 Semi-colon is not treated specially when enclosed in 68double-quotes. 69 70------------------- Released version 3.2 --------------------- 71 7225. 4/16/90 Rewrote "exec" not to use select or signals anymore. 73Should be more Sys-V compatible, and no slower in the normal case. 74 7526. 4/18/90 Rewrote "glob" to eliminate GNU code (there's no GNU code 76left in Tcl, now), and added Tcl_TildeSubst procedure. Added automatic 77tilde-substitution in many commands, including "glob". 78 79------------------- Released version 3.3 --------------------- 80 8127. 7/11/90 Added "Tcl_AppendResult" procedure. 82 8328. 7/20/90 "History" with no options now defaults to "history info" 84rather than to "history redo". Although this is a backward incompatibility, 85it should only be used interactively and thus shouldn't present any 86compatibility problems with scripts. 87 8829. 7/20/90 Added "Tcl_GetInteger", "Tcl_GetDouble", and "Tcl_GetBoolean" 89procedures. 90 9130. 7/22/90 Removed "Tcl_WatchInterp" procedure: doesn't seem to be 92necessary, since the same effect can be achieved with the deletion 93callbacks on individual commands. *** POTENTIAL INCOMPATIBILITY *** 94 9531. 7/23/90 Added variable tracing: Tcl_TraceVar, Tcl_UnTraceVar, 96and Tcl_VarTraceInfo procedures, "trace" command. 97 9832. 8/9/90 Mailed out list of all bug fixes since 3.3 release. 99 10033. 8/29/90 Fixed bugs in Tcl_Merge relating to backslashes and 101semi-colons. Mailed out patch. 102 10334. 9/3/90 Fixed bug in tclBasic.c: quotes weren't quoting ]'s. 104Mailed out patch. 105 10635. 9/19/90 Rewrote exec to always use files both for input and 107output to the process. The old pipe-based version didn't work if 108the exec'ed process forked a child and then exited: Tcl waited 109around for stdout to get closed, which didn't happen until the 110grandchild exited. 111 11236. 11/5/90 ERR_IN_PROGRESS flag wasn't being cleared soon enough 113in Tcl_Eval, allowing error messages from different commands to 114pile up in $errorInfo. Fixed by re-arranging code in Tcl_Eval that 115re-initializes result and ERR_IN_PROGRESS flag. Didn't mail out 116patch: changes too complicated to describe. 117 11837. 12/19/90 Added Tcl_VarEval procedure as a convenience for 119assembling and executing Tcl commands. 120 12138. 1/29/91 Fixed core leak in Tcl_AddErrorInfo. Also changed procedure 122and Tcl_Eval so that first call to Tcl_AddErrorInfo need not come from 123Tcl_Eval. 124 125----------------- Released version 5.0 with Tk ------------------ 126 12739. 4/3/91 Removed change bars from manual entries, leaving only those 128that came after version 3.3 was released. 129 13040. 5/17/91 Changed tests to conform to Mary Ann May-Pumphrey's approach. 131 13241. 5/23/91 Massive revision to Tcl parser to simplify the implementation 133of string and floating-point support in expressions. Newlines inside 134[] are now treated as command separators rather than word separators 135(this makes newline treatment consistent throughout Tcl). 136*** POTENTIAL INCOMPATIBILITY *** 137 13842. 5/23/91 Massive rewrite of expression code to support floating-point 139values and simple string comparisons. The C interfaces to expression 140routines have changed (Tcl_Expr is replaced by Tcl_ExprLong, Tcl_ExprDouble, 141etc.), but all old Tcl expression strings should be accepted by the new 142expression code. 143*** POTENTIAL INCOMPATIBILITY *** 144 14543. 5/23/91 Modified tclHistory.c to check for negative "keep" value. 146 14744. 5/23/91 Modified Tcl_Backslash to handle backslash-newline. It now 148returns 0 to indicate that a backslash sequence should be replaced by 149no character at all. 150*** POTENTIAL INCOMPATIBILITY *** 151 15245. 5/29/91 Modified to use ANSI C function prototypes. Must set 153"USE_ANSI" switch when compiling to get prototypes. 154 15546. 5/29/91 Completed test suite by providing tests for all of the 156built-in Tcl commands. 157 15847. 5/29/91 Changed Tcl_Concat to eliminate leading and trailing 159white-space in each of the things it concatenates and to ignore 160elements that are empty or have only white space in them. This 161produces cleaner output from the "concat" command. 162*** POTENTIAL INCOMPATIBILITY *** 163 16448. 5/31/91 Changed "set" command and Tcl_SetVar procedure to return 165new value of variable. 166 16749. 6/1/91 Added "while" and "cd" commands. 168 16950. 6/1/91 Changed "exec" to delete the last character of program 170output if it is a newline. In most cases this makes it easier to 171process program-generated output. 172*** POTENTIAL INCOMPATIBILITY *** 173 17451. 6/1/91 Made sure that pointers are never used after freeing them. 175 17652. 6/1/91 Fixed bug in TclWordEnd where it wasn't dealing with 177[] inside quotes correctly. 178 17953. 6/8/91 Fixed exec.test to accept return values of either 1 or 180255 from "false" command. 181 18254. 7/6/91 Massive overhaul of variable management. Associative 183arrays now available, along with "unset" command (and Tcl_UnsetVar 184procedure). Variable traces have been completely reworked: 185interfaces different both from Tcl and C, and multiple traces may 186exist on same variable. Can no longer redefine existing local 187variable to be global. Calling sequences have changed slightly 188for Tcl_GetVar and Tcl_SetVar ("global" is now "flags"). Tcl_SetVar 189can fail and return a NULL result. New forms of variable-manipulation 190procedures: Tcl_GetVar2, Tcl_SetVar2, etc. Syntax of variable 191$-notation changed to support array indexing. 192*** POTENTIAL INCOMPATIBILITY *** 193 19455. 7/6/91 Added new list-manipulation procedures: Tcl_ScanElement, 195Tcl_ConvertElement, Tcl_AppendElement. 196 19756. 7/12/91 Created new procedure Tcl_EvalFile, which does most of the 198work of the "source" command. 199 20057. 7/20/91 Major reworking of "exec" command to allow pipelines, 201more redirection, background. Added new procedures Tcl_Fork, 202Tcl_WaitPids, Tcl_DetachPids, and Tcl_CreatePipeline. The old 203"< input" notation has been replaced by "<< input" ("<" is for 204redirection from a file). Also handles error returns and abnormal 205terminations (e.g. signals) differently. 206*** POTENTIAL INCOMPATIBILITY *** 207 20858. 7/21/91 Added "append" and "lappend" commands. 209 21059. 7/22/91 Reworked error messages and manual entries to use 211?x? as the notation for an optional argument x, instead of [x]. The 212bracket notation was often confused with the use of brackets for 213command substitution. Also modified error messages to be more 214consistent. 215 21660. 7/23/91 Tcl_DeleteCommand now returns an indication of whether 217or not the command actually existed, and the "rename" command uses 218this information to return an error if an attempt is made to delete 219a non-existent command. 220*** POTENTIAL INCOMPATIBILITY *** 221 22261. 7/25/91 Added new "errorCode" mechanism, along with procedures 223Tcl_SetErrorCode, Tcl_UnixError, and Tcl_ResetResult. Renamed 224Tcl_Return to Tcl_SetResult, but left a #define for Tcl_Return to 225avoid compatibility problems. 226 22762. 7/26/91 Extended "case" command with alternate syntax where all 228patterns and commands are together in a single list argument: makes 229it easier to write multi-line case statements. 230 23163. 7/27/91 Changed "print" command to perform tilde-substitution on 232the file name. 233 23464. 7/27/91 Added "tolower", "toupper", "trim", "trimleft", and "trimright" 235options to "string" command. 236 23765. 7/29/91 Added "atime", "mtime", "size", and "stat" options to "file" 238command. 239 24066. 8/1/91 Added "split" and "join" commands. 241 24267. 8/11/91 Added commands for file I/O, including "open", "close", 243"read", "gets", "puts", "flush", "eof", "seek", and "tell". 244 24568. 8/14/91 Switched to use a hash table for command lookups. Command 246abbreviations no longer have direct support in the Tcl interpreter, but 247it should be possible to simulate them with the auto-load features 248described below. The "noAbbrev" variable is no longer used by Tcl. 249*** POTENTIAL INCOMPATIBILITY *** 250 25168.5 8/15/91 Added support for "unknown" command, which can be used to 252complete abbreviations, auto-load library files, auto-exec shell 253commands, etc. 254 25569. 8/15/91 Added -nocomplain switch to "glob" command. 256 25770. 8/20/91 Added "info library" option and TCL_LIBRARY #define. Also 258added "info script" option. 259 26071. 8/20/91 Changed "file" command to take "option" argument as first 261argument (before file name), for consistency with other Tcl commands. 262*** POTENTIAL INCOMPATIBILITY *** 263 26472. 8/20/91 Changed format of information in $errorInfo variable: 265comments such as 266 ("while" body line 1) 267are now on separate lines from commands being executed. 268*** POTENTIAL INCOMPATIBILITY *** 269 27073. 8/20/91 Changed Tcl_AppendResult so that it (eventually) frees 271large buffers that it allocates. 272 27374. 8/21/91 Added "linsert", "lreplace", "lsearch", and "lsort" 274commands. 275 27675. 8/28/91 Added "incr" and "exit" commands. 277 27876. 8/30/91 Added "regexp" and "regsub" commands. 279 28077. 9/4/91 Changed "dynamic" field in interpreters to "freeProc" (procedure 281address). This allows for alternative storage managers. 282*** POTENTIAL INCOMPATIBILITY *** 283 28478. 9/6/91 Added "index", "length", and "range" options to "string" 285command. Added "lindex", "llength", and "lrange" commands. 286 28779. 9/8/91 Removed "index", "length", "print" and "range" commands. 288"Print" is redundant with "puts", but less general, and the other 289commands are replaced with the new commands described in change 78 290above. 291*** POTENTIAL INCOMPATIBILITY *** 292 29380. 9/8/91 Changed history revision to occur even when history command 294is nested; needed in order to allow "history" to be invoked from 295"unknown" procedure. 296 29781. 9/13/91 Changed "panic" not to use vfprintf (it's uglier and less 298general now, but makes it easier to run Tcl on systems that don't 299have vfprintf). Also changed "strerror" not to redeclare sys_errlist. 300 30182. 9/19/91 Lots of changes to improve portability to different UNIX 302systems, including addition of "config" script to adapt Tcl to the 303configuration of the system it's being compiled on. 304 30583. 9/22/91 Added "pwd" command. 306 30784. 9/22/91 Renamed manual pages so that their filenames are no more 308than 14 characters in length, moved to "doc" subdirectory. 309 31085. 9/24/91 Redid manual entries so they contain the supplemental 311macros that they need; can just print with "troff -man" or "man" 312now. 313 31486. 9/26/91 Created initial version of script library, including 315a version of "unknown" that does auto-loading, auto-execution, and 316abbreviation expansion. This library is used by tclTest 317automatically. See the "library" manual entry for details. 318 319----------------- Released version 6.0, 9/26/91 ------------------ 320 32187. 9/30/91 Made "string tolower" and "string toupper" check case 322before converting: on some systems, "tolower" and "toupper" assume 323that character already has particular case. 324 32588. 9/30/91 Fixed bug in Tcl_SetResult: wasn't always setting freeProc 326correctly when called with NULL value. This tended to cause memory 327allocation errors later. 328 32989. 10/3/91 Added "upvar" command. 330 33190. 10/4/91 Changed "format" so that internally it converts %D to %ld, 332%U to %lu, %O to %lo, and %F to %f. This eliminates some compatibility 333problems on some machines without affecting behavior. 334 33591. 10/10/91 Fixed bug in "regsub" that caused core dumps with the -all 336option when the last match wasn't at the end of the string. 337 33892. 10/17/91 Fixed problems with backslash sequences: \r support was 339incomplete and \f and \v weren't supported at all. 340 34193. 10/24/91 Added Tcl_InitHistory procedure. 342 34394. 10/24/91 Changed "regexp" to store "-1 -1" in subMatchVars that 344don't match, rather than returning an error. 345 34695. 10/27/91 Modified "regexp" to return actual strings in matchVar 347and subMatchVars instead of indices. Added "-indices" switch to cause 348indices to be returned. 349*** POTENTIAL INCOMPATIBILITY *** 350 35196. 10/27/91 Fixed bug in "scan" where it used hardwired constants for 352sizes of floats and doubles instead of using "sizeof". 353 35497. 10/31/91 Fixed bug in tclParse.c where parse-related error messages 355weren't being storage-managed correctly, causing spurious free's. 356 35798. 10/31/91 Form feed and vertical tab characters are now considered 358to be space characters by the parser. 359 36099. 10/31/91 Added TCL_LEAVE_ERR_MSG flag to procedures like Tcl_SetVar. 361 362100. 11/7/91 Fixed bug in "case" where "in" argument couldn't be omitted 363if all case branches were embedded in a single list. 364 365101. 11/7/91 Switched to use "pid_t" and "uid_t" and other official 366POSIC types and function prototypes. 367 368----------------- Released version 6.1, 11/7/91 ------------------ 369 370102. 12/2/91 Modified Tcl_ScanElement and Tcl_ConvertElement in several 371ways. First, allowed caller to request that only backslashes be used 372(no braces). Second, made Tcl_ConvertElement more aggressive in using 373backslashes for braces and quotes. 374 375103. 12/5/91 Added "type", "lstat", and "readlink" options to "file" 376command, plus added new "type" element to output of "stat" and "lstat" 377options. 378 379104. 12/10/91 Manual entries had first lines that caused "man" program 380to try weird preprocessor. Added blank comment lines to fix problem. 381 382105. 12/16/91 Fixed a few bugs in auto_mkindex proc: wasn't handling 383errors properly, and hadn't been upgraded for new "regexp" syntax. 384 385106. 1/2/92 Fixed bug in "file" command where it didn't properly handle 386a file names containing tildes where the indicated user doesn't exist. 387 388107. 1/2/92 Fixed lots of cases in tclUnixStr.c where two different 389errno symbols (e.g. EWOULDBLOCK and EAGAIN) have the same number; Tcl 390will only use one of them. 391 392108. 1/2/92 Lots of changes to configuration script to handle many more 393systems more gracefully. E.g. should now detect the bogus strtoul that 394comes with AIX and substitute Tcl's own version instead. 395 396----------------- Released version 6.2, 1/10/92 ------------------ 397 398109. 1/20/92 Config didn't have code to actually use "uid_t" variable 399to set TCL_UIT_T #define. 400 401110. 2/10/92 Tcl_Eval didn't properly reset "numLevels" variable when 402too-deep recursion occurred. 403 404111. 2/29/92 Added "on" and "off" to keywords accepted by Tcl_GetBoolean. 405 406112. 3/19/92 Config wasn't installing default version of strtod.c for 407systems that don't have one in libc.a. 408 409113. 3/23/92 Fixed bug in tclExpr.c where numbers with leading "."s, 410like 0.75, couldn't be properly substituted into expressions with 411variable or command substitution. 412 413114. 3/25/92 Fixed bug in tclUnixAZ.c where "gets" command wasn't 414checking to make sure that it was able to write the variable OK. 415 416115. 4/16/92 Fixed bug in tclUnixAZ.c where "read" command didn't 417compute file size right for device files. 418 419116. 4/23/92 Fixed but in tclCmdMZ.c where "trace vinfo" was overwriting 420the trace command. 421 422----------------- Released version 6.3, 5/1/92 ------------------ 423 424117. 5/1/92 Added Tcl_GlobalEval. 425 426118. 6/1/92 Changed auto-load facility to source files at global level. 427 428119. 6/8/92 Tcl_ParseVar wasn't always setting termPtr after errors, which 429sometimes caused core dumps. 430 431120. 6/21/92 Fixed bug in initialization of regexp pattern cache. This 432bug caused segmentation violations in regexp commands under some conditions. 433 434121. 6/22/92 Changed implementation of "glob" command to eliminate 435trailing slashes on directory names: they confuse some systems. There 436shouldn't be any user-visible changes in functionality except for names 437in error messages not having trailing slashes. 438 439122. 7/2/92 Fixed bug that caused 'string match ** ""' to return 0. 440 441123. 7/2/92 Fixed bug in Tcl_CreateCmdBuf where it wasn't initializing 442the buffer to an empty string. 443 444124. 7/6/92 Fixed bug in "case" command where it used NULL pattern string 445after errors in the "default" clause. 446 447125. 7/25/92 Speeded up auto_load procedure: don't reread all the index 448files unless the path has changed. 449 450126. 8/3/92 Changed tclUnix.h to define MAXPATHLEN from PATH_MAX, not 451_POSIX_PATH_MAX. 452 453----------------- Released version 6.4, 8/7/92 ------------------ 454 455127. 8/10/92 Changed tclBasic.c so that comment lines can be continued by 456putting a backslash before the newline. 457 458128. 8/21/92 Modified "unknown" to allow the source-ing of a file for 459an auto-load to trigger other nested auto-loads, as long as there isn't 460any recursion on the same command name. 461 462129. 8/25/92 Modified "format" command to allow " " and "+" flags, and 463allow flags in any order. 464 465130. 9/14/92 Modified Tcl_ParseVar so that it doesn't actually attempt 466to look up the variable if "noEval" mode is in effect in the interpreter 467(it just parses the name). This avoids the errors that used to occur 468in statements like "expr {[info exists foo] && $foo}". 469 470131. 9/14/92 Fixed bug in "uplevel" command where it didn't output the 471correct error message if a level was specified but no command. 472 473132. 9/14/92 Renamed manual entries to have extensions like .3 and .n, 474and added "install" target to Makefile. 475 476133. 9/18/92 Modified "unknown" command to emulate !!, !<num>, and 477^<old>^<new> csh history substitutions. 478 479134. 9/21/92 Made the config script cleverer about figuring out which 480switches to pass to "nm". 481 482135. 9/23/92 Fixed tclVar.c to be sure to copy flags when growing variables. 483Used to forget about traces in progress and make extra recursive calls 484on trace procs. 485 486136. 9/28/92 Fixed bug in auto_reset where it was unsetting variables 487that might not exist. 488 489137. 10/7/92 Changed "parray" library procedure to print any array 490accessible to caller, local or global. 491 492138. 10/15/92 Fixed bug where propagation of new environment variable 493values among interpreters took N! time if there exist N interpreters. 494 495139. 10/16/92 Changed auto_reset procedure so that it also deletes any 496existing procedures that are in the auto_load index (the assumption is 497that they should be re-loaded to get the latest versions). 498 499140. 10/21/92 Fixed bug that caused lists to be incorrectly generated 500for elements that contained backslash-newline sequences. 501 502141. 12/9/92 Added support for TCL_LIBRARY environment variable: use 503it as library location if it's present. 504 505142. 12/9/92 Added "info complete" command, Tcl_CommandComplete procedure. 506 507143. 12/16/92 Changed the Makefile to check to make sure "config" has been 508run (can't run config directly from the Makefile because it modifies the 509Makefile; thus make has to be run again after running config). 510 511----------------- Released version 6.5, 12/17/92 ------------------ 512 513144. 12/21/92 Changed config to look in several places for libc file. 514 515145. 12/23/92 Added "elseif" support to if. Also, "then", "else", and 516"elseif" may no longer be abbreviated. 517*** POTENTIAL INCOMPATIBILITY *** 518 519146. 12/28/92 Changed "puts" and "read" to support initial "-nonewline" 520switch instead of additional "nonewline" argument. The old form is 521still supported, but it is discouraged and is no longer documented. 522Also changed "puts" to make the file argument default to stdout: e.g. 523"puts foo" will print foo on standard output. 524 525147. 1/6/93 Fixed bug whereby backslash-newline wasn't working when 526typed interactively, or in "info complete". 527 528148. 1/22/93 Fixed bugs in "lreplace" and "linsert" where close 529quotes were being lost from last element before replacement or 530insertion. 531 532149. 1/29/93 Fixed bug in Tcl_AssembleCmd where it wasn't requiring 533a newline at the end of a line before considering a command to be 534complete. The bug caused some very long lines in script files to 535be processed as multiple separate commands. 536 537150. 1/29/93 Various changes in Makefile to add more configuration 538options, simplify installation, fix bugs (e.g. don't use -f switch 539for cp), etc. 540 541151. 1/29/93 Changed "name1" and "name2" identifiers to "part1" and 542"part2" to avoid name conflicts with stupid C++ implementations that 543use "name1" and "name2" in a reserved way. 544 545152. 2/1/93 Added "putenv" procedure to replace the standard system 546version so that it will work correctly with Tcl's environment handling. 547 548----------------- Released version 6.6, 2/5/93 ------------------ 549 550153. 2/10/93 Fixed bugs in config script: missing "endif" in libc loop, 551and tried to use strncasecmp.c instead of strcasecmp.c. 552 553154. 2/10/93 Makefile improvements: added RANLIB variable for easier 554Sys-V configuration, added SHELL variable for SGI systems. 555 556----------------- Released version 6.7, 2/11/93 ------------------ 557 558153. 2/6/93 Changes in backslash processing: 559 - \Cx, \Mx, \CMx, \e sequences no longer special 560 - \<newline> also eats up any space after the newline, replacing 561 the whole sequence with a single space character 562 - Hex sequences like \x24 are now supported, along with ANSI C's \a. 563 - "format" no longer does backslash processing on its format string 564 - there is no longer any special meaning to a 0 return value from 565 Tcl_Backslash 566 - unknown backslash sequences, like (e.g. \*), are replaced with 567 the following character (e.g. *), instead of just treating the 568 backslash as an ordinary character. 569*** POTENTIAL INCOMPATIBILITY *** 570 571154. 2/6/93 Updated all copyright notices. The meaning hasn't changed 572at all but the wording does a better job of protecting U.C. from 573liability (according to U.C. lawyers, anyway). 574 575155. 2/6/93 Changed "regsub" so that it overwrites the result variable 576in all cases, even if there is no match. 577*** POTENTIAL INCOMPATIBILITY *** 578 579156. 2/8/93 Added support for XPG3 %n$ conversion specifiers to "format" 580command. 581 582157. 2/17/93 Fixed bug in Tcl_Eval where errors due to infinite 583recursion could result in core dumps. 584 585158. 2/17/93 Improved the auto-load mechanism to deal gracefully (i.e. 586return an error) with a situation where a library file that supposedly 587defines a procedure doesn't actually define it. 588 589159. 2/17/93 Renamed Tcl_UnixError procedure to Tcl_PosixError, and 590changed errorCode variable usage to use POSIX as keyword instead of 591UNIX. 592*** POTENTIAL INCOMPATIBILITY *** 593 594160. 2/19/93 Changes to exec and process control: 595 - Added support for >>, >&, >>&, |&, <@, >@, and >&@ forms of redirection. 596 - When exec puts processes into background, it returns a list of 597 their pids as result. 598 - Added support for <file, >file, etc. (i.e. no space between 599 ">" and file name. 600 - Added -keepnewline option. 601 - Deleted Tcl_Fork and Tcl_WaitPids procedures (just use fork and 602 waitpid instead). 603 - Added waitpid compatibility procedure for systems that don't have 604 it. 605 - Added Tcl_ReapDetachedProcs procedure. 606 - Changed "exec" to return an error if there is stderr output, even 607 if the command returns a 0 exit status (it's always been documented 608 this way, but the implementation wasn't correct). 609 - If a process returns a non-zero exit status but doesn't generate 610 any diagnostic output, then Tcl generates an error message for it. 611*** POTENTIAL INCOMPATIBILITY *** 612 613161. 2/25/93 Fixed two memory-management problems having to do with 614managing the old result during variable trace callbacks. 615 616162. 3/1/93 Added dynamic string library: Tcl_DStringInit, Tcl_DStringAppend, 617Tcl_DStringFree, Tcl_DStringResult, etc. 618 619163. 3/1/93 Modified glob command to only return the names of files that 620exist, and to only return names ending in "/" if the file is a directory. 621*** POTENTIAL INCOMPATIBILITY *** 622 623164. 3/19/93 Modified not to use system calls like "read" directly, 624but instead to use special Tcl procedures that retry automatically 625if interrupted by signals. 626 627165. 4/3/93 Eliminated "noSep" argument to Tcl_AppendElement, plus 628TCL_NO_SPACE flag for Tcl_SetVar and Tcl_SetVar2. 629*** POTENTIAL INCOMPATIBILITY *** 630 631166. 4/3/93 Eliminated "flags" and "termPtr" arguments to Tcl_Eval. 632*** POTENTIAL INCOMPATIBILITY *** 633 634167. 4/3/93 Changes to expressions: 635 - The "expr" command now accepts multiple arguments, which are 636 concatenated together with space separators. 637 - Integers aren't automatically promoted to floating-point if they 638 overflow the word size: errors are generated instead. 639 - Tcl can now handle "NaN" and other special values if the underlying 640 library procedures handle them. 641 - When printing floating-point numbers, Tcl ensures that there is a "." 642 or "e" in the number, so it can't be treated as an integer accidentally. 643 The procedure Tcl_PrintDouble is available to provide this function 644 in other contexts. Also, the variable "tcl_precision" can be used 645 to set the precision for printing (must be a decimal number giving 646 digits of precision). 647 - Expressions now support transcendental and other functions, e.g. sin, 648 acos, hypot, ceil, and round. Can add new math functions with 649 Tcl_CreateMathFunc(). 650 - Boolean expressions can now have any of the string values accepted 651 by Tcl_GetBoolean, such as "yes" or "no". 652*** POTENTIAL INCOMPATIBILITY *** 653 654168. 4/5/93 Changed Tcl_UnsetVar and Tcl_UnsetVar2 to return TCL_OK 655or TCL_ERROR instead of 0 or -1. 656*** POTENTIAL INCOMPATIBILITY *** 657 658169. 4/5/93 Eliminated Tcl_CmdBuf structure and associated procedures; 659can use Tcl_DStrings instead. 660*** POTENTIAL INCOMPATIBILITY *** 661 662170. 4/8/93 Changed interface to Tcl_TildeSubst to use a dynamic 663string for buffer space. This makes the procedure re-entrant and 664thread-safe, whereas it wasn't before. 665*** POTENTIAL INCOMPATIBILITY *** 666 667171. 4/14/93 Eliminated tclHash.h, and moved everything from it to 668tcl.h 669*** POTENTIAL INCOMPATIBILITY *** 670 671172. 4/15/93 Eliminated Tcl_InitHistory, made "history" command always 672be part of interpreter. 673*** POTENTIAL INCOMPATIBILITY *** 674 675173. 4/16/93 Modified "file" command so that "readable" option always 676exists, even on machines that don't support symbolic links (always returns 677same error as if the file wasn't a symbolic link). 678 679174. 4/26/93 Fixed bugs in "regsub" where ^ patterns didn't get handled 680right (pretended not to match when it really did, and looped infinitely 681if -all was specified). 682 683175. 4/29/93 Various improvements in the handling of variables: 684 - Can create variables and array elements during a read trace. 685 - Can delete variables during traces (note: unset traces will be 686 invoked when this happens). 687 - Can upvar to array elements. 688 - Can retarget an upvar to another variable by re-issuing the 689 upvar command with a different "other" variable. 690 691176. 5/3/93 Added Tcl_GetCommandInfo, which returns info about a Tcl 692command such as whether it exists and its ClientData. Also added 693Tcl_SetCommandInfo, which allows any of this information to be modified 694and also allows a command's delete procedure to have a different 695ClientData value than its command procedure. 696 697177. 5/5/93 Added Tcl_RegExpMatch procedure. 698 699178. 5/6/93 Fixed bug in "scan" where it didn't properly handle 700%% conversion specifiers. Also changed "scan" to use Tcl_PrintDouble 701for printing real values. 702 703179. 5/7/93 Added "-exact", "-glob", and "-regexp" options to "lsearch" 704command to allow different kinds of pattern matching. 705 706180. 5/7/93 Added many new switches to "lsort" to control the sorting 707process: "-ascii", "-integer", "-real", "-command", "-increasing", 708and "-decreasing". 709 710181. 5/10/93 Changes to file I/O: 711 - Modified "open" command to support a list of POSIX access flags 712 like {WRONLY CREAT TRUNC} in addition to current fopen-style 713 access modes. Also added "permissions" argument to set permissions 714 of newly-created files. 715 - Fixed Scott Bolte's bug (can close stdin etc. in application and 716 then re-open them with Tcl commands). 717 - Exported access to Tcl's file table with new procedures Tcl_EnterFile 718 and Tcl_GetOpenFile. 719 720182. 5/15/93 Added new "pid" command, which can be used to retrieve 721either the current process id or a list of the process ids in a 722pipeline opened with "open |..." 723 724183. 6/3/93 Changed to use GNU autoconfig for configuration instead of 725the home-brew "config" script. Also made many other configuration-related 726changes, such as using <unistd.h> instead of explicitly declaring system 727calls in tclUnix.h. 728 729184. 6/4/93 Fixed bug where core-dumps could occur if a procedure 730redefined itself (the memory for the procedure's body could get 731reallocated in the middle of evaluating the body); implemented 732simple reference count mechanism. 733 734185. 6/5/93 Changed tclIndex file format in two ways: (a) it's now 735eval-ed instead of parsed, which makes it 3-4x faster; (b) the entries 736in auto_index are now commands to evaluate, which allows commands to 737be loaded in different ways such as dynamic-loading of C code. The 738old tclIndex file format is still supported. 739 740186. 6/7/93 Eliminated tclTest program, added new "tclsh" program 741that is more like wish (allows script files to be invoked automatically 742using "#!/usr/local/bin/tclsh", makes arguments available to script, 743etc.). Added support for Tcl_AppInit plus default version; this 744allows new Tcl applications to be created without modifying the 745main program for tclsh. 746 747187. 6/7/93 Fixed bug in TclWordEnd that kept backslash-newline from 748working correctly in some cases during interactive input. 749 750188. 6/9/93 Added Tcl_LinkVar and related procedures, which automatically 751keep a Tcl variable in sync with a C variable. 752 753189. 6/16/93 Increased maximum nesting depth from 100 to 1000. 754 755190. 6/16/93 Modified "trace var" command so that error messages from 756within traces are returned properly as the result of the variable 757access, instead of the generic "access disallowed by trace command" 758message. 759 760191. 6/16/93 Added Tcl_CallWhenDeleted to provide callbacks when an 761interpreter is deleted (same functionality as Tcl_WatchInterp, which 762used to exist in versions before 6.0). 763 764193. 6/16/93 Added "-code" argument to "return" command; it's there 765primarily for completeness, so that procedures implementing control 766constructs can reflect exceptional conditions back to their callers. 767 768194. 6/16/93 Split up Tcl.n to make separate manual entries for each 769Tcl command. Tcl.n now contains a summary of the language syntax. 770 771195. 6/17/93 Added new "switch" command to replace "case": allows 772alternate forms of pattern matching (exact, glob, regexp), replaces 773pattern lists with single patterns (but you can use "-" bodies to 774share one body among several patterns), eliminates "in" noise word. 775"Case" command is now obsolete. 776 777196. 6/17/93 Changed the "exec", "glob", "regexp", and "regsub" commands 778to include a "--" switch. All initial arguments starting with "-" are now 779treated as switches unless a "--" switch is present to end the list. 780*** POTENTIAL INCOMPATIBILITY *** 781 782197. 6/17/93 Changed auto-exec so that the subprocess gets stdin, stdout, 783and stderr from the parent. This allows truly interactive sub-processes 784(e.g. vi) to be auto-exec'ed from a tcl shell command line. 785 786198. 6/18/93 Added patchlevel.h, for use in coordinating future patch 787releases, and also added "info patchlevel" command to make the patch 788level available to Tcl scripts. 789 790199. 6/19/93 Modified "glob" command so that a leading "//" in a name 791gets left as is (this is needed for systems like Apollos where "//" is 792the super-root; Tcl used to collapse the two slashes into a single 793slash). 794 795200. 7/7/93 Added Tcl_SetRecursionLimit procedure so that the maximum 796allowable nesting depth can be controlled for an interpreter from C. 797 798----------------- Released version 7.0 Beta 1, 7/9/93 ------------------ 799 800201. 7/12/93 Modified Tcl_GetInt and tclExpr.c so that full-precision 801unsigned integers can be specified without overflow errors. 802 803202. 7/12/93 Configuration changes: eliminate leading blank line in 804configure script; provide separate targets in Makefile for installing 805binary and non-binary information; check for size_t and a few other 806potentially missing typedefs; don't put tclAppInit.o into libtcl.a; 807better checks for matherr support. 808 809203. 7/14/93 Changed tclExpr.c to check the termination pointer before 810errno after strtod calls, to avoid problems with some versions of 811strtod that set errno in unexpected ways. 812 813204. 7/16/93 Changed "scan" command to be more ANSI-conformant: 814eliminated %F, %D, etc., added code to ignore "l", "h", and "L" 815modifiers but always convert %e, %f, and %g with implicit "l"; 816also added support for %u and %i. Also changed "format" command 817to eliminate %D, %U, %O, and add %i. 818*** POTENTIAL INCOMPATIBILITY *** 819 820205. 7/17/93 Changed "uplevel" and "upvar" so that they can be used 821from global level to global level: this used to generate an error. 822 823206. 7/19/93 Renamed "setenv", "putenv", and "unsetenv" procedures 824to avoid conflicts with system procedures with the same names. If 825you want Tcl's procedures to override the system procedures, do it 826in the Makefile (instructions are in the Makefile). 827*** POTENTIAL INCOMPATIBILITY *** 828 829----------------- Released version 7.0 Beta 2, 7/21/93 ------------------ 830 831207. 7/21/93 Fixed bug in tclVar.c where freed memory was accidentally 832used if a procedure returned an element of a local array. 833 834208. 7/22/93 Fixed bug in "unknown" where it didn't properly handle 835errors occurring in the "auto_load" procedure, leaving its state 836inconsistent. 837 838209. 7/23/93 Changed exec's ">2" redirection operator to "2>" for 839consistency with sh. This is incompatible with earlier beta releases 840of 7.0 but not with pre-7.0 releases, which didn't support either 841operator. 842 843210. 7/28/93 Changed backslash-newline handling so that the resulting 844space character *is* treated as a word separator unless the backslash 845sequence is in quotes or braces. This is incompatible with 7.0b1 846and 7.0b2 but is more compatible with pre-7.0 versions that the b1 847and b2 releases were. 848 849211. 7/28/93 Eliminated Tcl_LinkedVarWritable, added TCL_LINK_READ_ONLY to 850Tcl_LinkVar to accomplish same purpose. This change is incompatible 851with earlier beta releases, but not with releases before Tcl 7.0. 852 853212. 7/29/93 Renamed regexp C functions so they won't clash with POSIX 854regexp functions that use the same name. 855 856213. 8/3/93 Added "-errorinfo" and "-errorcode" options to "return" 857command: these allow for much better handling of the errorInfo 858and errorCode variables in some cases. 859 860214. 8/12/93 Changed "expr" so that % always returns a remainder with 861the same sign as the divisor and absolute value smaller than the 862divisor. 863 864215. 8/14/93 Turned off auto-exec in "unknown" unless the command 865was typed interactively. This means you must use "exec" when 866invoking subprocesses, unless it's a command that's typed interactively. 867*** POTENTIAL INCOMPATIBILITY *** 868 869216. 8/14/93 Added support for tcl_prompt1 and tcl_prompt2 variables 870to tclMain.c: makes prompts user-settable. 871 872217. 8/14/93 Added asynchronous handlers (Tcl_AsyncCreate etc.) so 873that signals can be taken cleanly by Tcl applications. 874 875218. 8/16/93 Moved information about open files from the interpreter 876structure to global variables so that a file can be opened in one 877interpreter and read or written in another. 878 879219. 8/16/93 Removed ENV_FLAGS from Makefile, so that there's no 880official support for overriding setenv, unsetenv, and putenv. 881 882220. 8/20/93 Various configuration improvements: coerce chars 883to unsigned chars before using macros like isspace; source ~/.tclshrc 884file during initialization if it exists and program is running 885interactively; allow there to be directories in auto_path that don't 886exist or don't have tclIndex files (ignore them); added Tcl_Init 887procedure and changed Tcl_AppInit to call it. 888 889221. 8/21/93 Fixed bug in expr where "+", "-", and " " were all 890getting treated as integers with value 0. 891 892222. 8/26/93 Added "tcl_interactive" variable to tclsh. 893 894223. 8/27/93 Added procedure Tcl_FilePermissions to return whether a 895given file can be read or written or both. Modified Tcl_EnterFile 896to take a permissions mask rather than separate read and write arguments. 897 898224. 8/28/93 Fixed performance bug in "glob" command (unnecessary call 899to "access" for each file caused a 5-10x slow-down for big directories). 900 901----------------- Released version 7.0 Beta 3, 8/28/93 ------------------ 902 903225. 9/9/93 Renamed regexp.h to tclRegexp.h to avoid conflicts with system 904include file by same name. 905 906226. 9/9/93 Added Tcl_DontCallWhenDeleted. 907 908227. 9/16/93 Changed not to call exit C procedure directly; instead 909always invoke "exit" Tcl command so that application can redefine the 910command to do additional cleanup. 911 912228. 9/17/93 Changed auto-exec to handle names that contain slashes 913(i.e. don't use PATH for them). 914 915229. 9/23/93 Fixed bug in "read" and "gets" commands where they didn't 916clear EOF conditions. 917 918----------------- Released version 7.0, 9/29/93 ------------------ 919 920230. 10/7/93 "Scan" command wasn't properly aligning things in memory, 921so segmentation faults could arise under some circumstances. 922 923231. 10/7/93 Fixed bug in Tcl_ConvertElement where it forgot to 924backslash leading curly brace when creating lists. 925 926232. 10/7/93 Eliminated dependency of tclMain.c on tclInt.h and 927tclUnix.h, so that people can copy the file out of the Tcl source 928directory to make modified private versions. 929 930233. 10/8/93 Fixed bug in auto-loader that reversed the priority order 931of entries in auto_path for new-style index files. Now things are 932back to the way they were before 3.0: first in auto_path is always 933highest priority. 934 935234. 10/13/93 Fixed bug where Tcl_CommandComplete didn't recognize 936comments and treat them as such. Thus if you typed the line 937 # { 938interactively, Tcl would think that the command wasn't complete and 939wait for more input before evaluating the script. 940 941235. 10/14/93 Fixed bug where "regsub" didn't set the output variable 942if the input string was empty. 943 944236. 10/23/93 Fixed bug where Tcl_CreatePipeline didn't close off enough 945file descriptors in child processes, causing children not to exit 946properly in some cases. 947 948237. 10/28/93 Changed "list" and "concat" commands not to generate 949errors if given zero arguments, but instead to just return an empty 950string. 951 952----------------- Released version 7.1, 11/4/93 ------------------ 953 954Note: there is no 7.2 release. It was flawed and was thus withdrawn 955shortly after it was released. 956 957238. 11/10/93 TclMain.c didn't compile on some systems because of 958R_OK in call to "access". Changed to eliminate call to "access". 959 960----------------- Released version 7.3, 11/26/93 ------------------ 961 962239. 11/6/93 Modified "lindex", "linsert", "lrange", and "lreplace" 963so that "end" can be specified as an index. 964 965240. 11/6/93 Modified "append" and "lappend" to allow only two 966words total (i.e., nothing to append) without generating an error. 967 968241. 12/2/93 Changed to use EAGAIN as the errno for non-blocking 969I/O instead of EWOULDBLOCK: this should fix problem where non-blocking 970I/O didn't work correctly on System-V systems. 971 972242. 12/22/93 Fixed bug in expressions where cancelled evaluation 973wasn't always working correctly (e.g. "set one 1; eval {1 || 1/$one}" 974failed with a divide by zero error). 975 976243. 1/6/94 Changed TCL_VOLATILE definition from -1 to the address of 977a dummy procedure Tcl_Volatile, since -1 causes portability problems on 978some machines (e.g., Crays). 979 980244. 2/4/94 Added support for unary plus. 981 982245. 2/17/94 Changed Tcl_RecordAndEval and "history" command to 983call Tcl_GlobalEval instead of Tcl_Eval. Otherwise, invocation of 984these facilities in nested procedures can cause unwanted results. 985 986246. 2/17/94 Fixed bug in tclExpr.c where an expression such as 987"expr {"12398712938788234-1298379" != ""}" triggers an integer 988overflow error for the number in quotes, even though it isn't really 989a proper integer anyway. 990 991247. 2/19/94 Added new procedure Tcl_DStringGetResult to move result 992from interpreter to a dynamic string. 993 994248. 2/19/94 Fixed bug in Tcl_DStringResult that caused it to overwrite 995the contents of a static result in some situations. This can cause 996bizarre errors such as variables suddenly having empty values. 997 998249. 2/21/94 Fixed bug in Tcl_AppendElement, Tcl_DStringAppendElement, 999and the "lappend" command that caused improper omission of a separator 1000space in some cases. For example, the script 1001 set x "abc{"; lappend x "def" 1002used to return the result "abc{def" instead of "abc{ def". 1003 1004250. 3/3/94 Tcl_ConvertElement was outputting empty elements as \0 if 1005TCL_DONT_USE_BRACES was set. This depends on old pre-7.0 meaning of 1006\0, which is no longer in effect, so it didn't really work. Changed 1007to output empty elements as {} always. 1008 1009251. 3/3/94 Renamed Tcl_DStringTrunc to Tcl_DStringSetLength and extended 1010it so that it can be used to lengthen a string as well as shorten it. 1011Tcl_DStringTrunc is defined as a macro for backward compatibility, but 1012it is deprecated. 1013 1014252. 3/3/94 Added Tcl_AllowExceptions procedure. 1015 1016253. 3/13/94 Fixed bug in Tcl_FormatCmd that could cause "format" 1017to mis-behave on 64-bit Big-Endian machines. 1018 1019254. 3/13/94 Changed to use vfork instead of fork on systems where 1020vfork exists. 1021 1022255. 3/23/94 Fixed bug in expressions where ?: didn't associate 1023right-to-left as they should. 1024 1025256. 4/3/94 Fixed "exec" to flush any files used in >@ or >&@ 1026redirection in exec, so that data buffered for them is written 1027before any new data added by the subprocess. 1028 1029257. 4/3/94 Added "subst" command. 1030 1031258. 5/20/94 The tclsh main program is now called Tcl_Main; tclAppInit.c 1032has a "main" procedure that calls Tcl_Main. This makes it easier to use 1033Tcl with C++ programs, which need their own main programs, and it also 1034allows an application to prefilter the argument list before calling 1035Tcl_Main. 1036*** POTENTIAL INCOMPATIBILITY *** 1037 1038259. 6/6/94 Fixed bug in procedure returns where the errorInfo variable 1039could get truncated if an unset trace was invoked as part of returning 1040from the procedure. 1041 1042260. 6/13/94 Added "wordstart" and "wordend" options to "string" command. 1043 1044261. 6/27/94 Fixed bug in expressions where they didn't properly cancel 1045the evaluation of math functions in &&, ||, and ?:. 1046 1047262. 7/11/94 Incorrect boolean values, like "ogle", weren't being 1048handled properly. 1049 1050263. 7/15/94 Added Tcl_RegExpCompile, Tcl_RegExpExec, and Tcl_RegExpRange, 1051which provide lower-level access to regular expression pattern matching. 1052 1053264. 7/22/94 Fixed bug in "glob" command where "glob -nocomplain ~bad_user" 1054would complain about a missing user. Now it doesn't complain anymore. 1055 1056265. 8/4/94 Fixed bug with linked variables where they didn't behave 1057correctly when accessed via upvars. 1058 1059266. 8/17/94 Fixed bug in Tcl_EvalFile where it didn't clear interp->result. 1060 1061267. 8/31/94 Modified "open" command so that errors in exec-ing 1062subprocesses are returned by the open immediately, rather than 1063being delayed until the "close" is executed. 1064 1065268. 9/9/94 Modified "expr" command to generate errors for integer 1066overflow (includes addition, subtraction, negation, multiplication, 1067division). 1068 1069269. 9/23/94 Modified "regsub" to return a count of the number of 1070matches and replacements, rather than 0/1. 1071 1072279. 10/4/94 Added new features to "array" command: 1073 - added "get" and "set" commands for easy conversion between arrays 1074 and lists. 1075 - added "exists" command to see if a variable is an array, changed 1076 "names" and "size" commands to treat a non-existent array (or scalar 1077 variable) just like an empty one. 1078 - added pattern option to "names" command. 1079 1080280. 10/6/94 Modified Tcl_SetVar2 so that read traces on variables get 1081called during append operations. 1082 1083281. 10/20/94 Fixed bug in "read" command where reading from stdin 1084required two control-D's to stop the reading. 1085 1086282. 11/3/94 Changed "expr" command to use longs for division just like 1087all other expr operators; it previously used ints for division. 1088 1089283. 11/4/94 Fixed bugs in "unknown" procedure: it wasn't properly 1090handling exception returns from commands that were executed after 1091being auto-loaded. 1092 1093----------------- Released version 7.4b1, 12/23/94 ------------------ 1094 1095284. 12/26/94 Fixed "install" target in Makefile (couldn't always 1096find install program). 1097 1098285. 12/26/94 Added strcncasecmp procedure to compat directory. 1099 1100286. 1/3/95 Fixed all procedure calls to explicitly cast arguments: 1101implicit conversions from prototypes (especially integer->double) 1102don't work when compiling under non-ANSI compilers. Tcl is now clean 1103under gcc -Wconversion. 1104 1105287. 1/4/95 Fixed problem in Tcl_ArrayCmd where same name was used for 1106both a label and a variable; caused problems on several older compilers, 1107making array command misbehave and causing many errors in Tcl test suite. 1108 1109----------------- Released version 7.4b2, 1/12/95 ------------------ 1110 1111288. 2/9/95 Modified Tcl_CreateCommand to return a token, and added 1112Tcl_GetCommandName procedure. Together, these procedures make it possible 1113to track renames of a command. 1114 1115289. 2/13/95 Fixed bug in expr where "089" was interpreted as a 1116floating-point number rather than a bogus octal number. 1117*** POTENTIAL INCOMPATIBILITY *** 1118 1119290. 2/14/95 Added code to Tcl_GetInt and Tcl_GetDouble to check for 1120overflows when reading in numbers. 1121 1122291. 2/18/95 Changed "array set" to stop after first error, rather than 1123continuing after error. 1124 1125292. 2/20/95 Upgraded to use autoconf version 2.2. 1126 1127293. 2/20/95 Fixed core dump that could occur in "scan" command if a 1128close bracket was omitted. 1129 1130294. 2/27/95 Changed Makefile to always use install-sh for installations: 1131there's just too much variation among "install" system programs, which 1132makes installation flakey. 1133 1134----------------- Released version 7.4b3, 3/24/95 ------------------ 1135 11363/25/95 (bug fix) Changed "install" to "./install" in Makefile so that 1137"make install" will work even when "." isn't in the search path. 1138 11393/29/95 (bug fix) Fixed bug where the auto-loading mechanism wasn't 1140protecting the values of the errorCode and errorInfo variables. 1141 11423/29/95 (new feature) Added optional pattern argument to "parray" procedure. 1143 11443/29/95 (bug fix) Made the full functionality of 1145 "return -code ... -errorcode ..." 1146work not just inside procedures, but also in sourced files and at 1147top level. 1148 11494/6/95 (new feature) Added "pattern" option to "array names" command. 1150 11514/18/95 (bug fix) Fixed bug in parser where it didn't allow backslash-newline 1152immediately after an argument in braces or quotes. 1153 11544/19/95 (new feature) Added tcl_library variable, which application can 1155set to override default library directory. 1156 11574/30/95 (bug fix) During trace callbacks for array elements, the variable 1158name used in the original reference would be temporarily modified to 1159separate the array name and element name; if the trace callback used 1160the same name string, it would get the wrong name (the array name without 1161element). Fixed to restore the variable name before making trace 1162callbacks. 1163 11644/30/95 (new feature) Added -nobackslashes, -nocommands, and -novariables 1165switches to "subst" command. 1166 11675/4/95 (new feature) Added TCL_EVAL_GLOBAL flag to Tcl_RecordAndEval. 1168 11695/5/95 (bug fix) Format command would overrun memory when printing 1170integers with very large precision, as in "format %.1000d 0". 1171 11725/5/95 (portability improvement) Changed to use BSDgettimeofday on 1173IRIX machines, to avoid compilation problems with the gettimeofday 1174declaration. 1175 11765/6/95 (bug fix) Changed manual entries to use the standard .TH 1177macro instead of a custom .HS macro; the .HS macro confuses index 1178generators like makewhatis. 1179 11805/9/95 (bug fix) Modified configure script to check for Solaris bug 1181that makes vfork unreliable (core dumps result if vforked child 1182changes a signal handler); will use fork instead of vfork if the 1183bug is present. 1184 11856/5/95 (bug fix) Modified "lsort" command to disallow recursive calls 1186to lsort from a comparison function. This is needed because qsort 1187is not reentrant. 1188 11896/5/95 (bug fix) Undid change 243 above: changed TCL_VOLATILE and 1190TCL_DYNAMIC back to integer constants rather than procedure addresses. 1191This was needed because procedure addresses can have multiple values 1192under some dynamic loading systems (e.g. SunOS 4.1 and Windows). 1193 11946/8/95 (feature change) Modified interface to Tcl_Main to pass in the 1195address of the application-specific initialization procedure. 1196Tcl_AppInit is no longer hardwired into Tcl_Main. This is needed 1197in order to make Tcl a shared library. 1198 11996/8/95 (feature change) Modified Makefile so that the installed versions 1200of tclsh and libtcl.a have version number in them (e.g. tclsh7.4 and 1201libtcl7.4.a) and the library directory name also has an embedded version 1202number (e.g., /usr/local/lib/tcl7.4). This should make it easier for 1203Tcl 7.4 to coexist with earlier versions. 1204 1205----------------- Released version 7.4b4, 6/16/95 ------------------ 1206 12076/19/95 (bug fix) Fixed bugs in tclCkalloc.c that caused core dumps 1208if TCL_MEM_DEBUG was enabled on word-addressed machines such as Crays. 1209 12106/21/95 (feature removal) Removed overflow checks for integer arithmetic: 1211they just cause too much trouble (e.g. for random number generators). 1212 12136/28/95 (new features) Added tcl_patchLevel and tcl_version variables, 1214for consistency with Tk. 1215 12166/29/95 (bug fix) Fixed problem in Tcl_Eval where it didn't record 1217the right termination character if a script ended with a comment. This 1218caused erroneous output for the following command, among others: 1219puts "[ 1220expr 1+1 1221# duh! 1222]" 1223 12246/29/95 (message change) Changed the error message for ECHILD slightly 1225to provide a hint about why the problem is occurring. 1226 1227----------------- Released version 7.4, 7/1/95 ------------------ 1228 12297/18/95 (bug fix) Changed "lreplace" so that nothing is deleted if 1230the last index is less than the first index or if the last index 1231is < 0. 1232 12337/18/95 (bug fix) Fixed bugs with backslashes in comments: 1234Tcl_CommandComplete (and "info complete") didn't properly handle 1235strings ending in backslash-newline, and neither Tcl_CommandComplete 1236nor the Tcl parser handled other backslash sequences right, such 1237as two backslashes before a newline. 1238 12397/19/95 (bug fix) Modified Tcl_DeleteCommand to delete the hash table 1240entry for the command before invoking its callback. This is needed in 1241order to deal with reentrancy. 1242 12437/22/95 (bug fix) "exec" wasn't reaping processes correctly after 1244certain errors (e.g. if the name of the executable was bogus, as 1245in "exec foobar"). 1246 12477/27/95 (bug fix) Makefile.in wasn't using the LIBS variable provided 1248by the "configure" script. This caused problems on some SCO systems. 1249 12507/27/95 (bug fix) The version of strtod in fixstrtod.c didn't properly 1251handle the case where endPtr == NULL. 1252 1253----------------- Released patch 7.4p1, 7/29/95 ----------------------- 1254 12558/4/95 (bug fix) C-level trace callbacks for variables were sometimes 1256receiving the PART1_NOT_PARSED flag, which could cause errors in 1257subsequent Tcl library calls using the flags. (JO) 1258 12598/4/95 (bug fix) Calls to toupper and tolower weren't using the 1260UCHAR macros, which caused trouble in non-U.S. locales. (JO) 1261 12628/10/95 (new feature) Added the "load" command for dynamic loading of 1263binary packages, and the Tcl_PackageInitProc prototype for package 1264initialization procedures. (JO) 1265 12668/23/95 (new features) Added "info sharedlibextension" and 1267"info nameofexecutable" commands, plus Tcl_FindExtension procedure. (JO) 1268 12698/25/95 (bug fix) If the target of an "upvar" was non-existent but 1270had traces set, the traces were silently lost. Change to generate 1271an error instead. (JO) 1272 12738/25/95 (bug fix) Undid change from 7/19, so that commands can stay 1274around while their deletion callbacks execute. Added lots of code to 1275handle all of the reentrancy problems that this opens up. (JO) 1276 12778/25/95 (bug fix) Fixed core dump that could occur in TclDeleteVars 1278if there was an upvar from one entry in the table to the next entry 1279in the same table. (JO) 1280 12818/28/95 (bug fix) Exec wasn't handling bad user names properly, as 1282in "exec ~bogus_user/foo". (JO) 1283 12848/29/95 (bug fixes) Changed backslash-newline handling to correct two 1285problems: 1286 - Only spaces and tabs following the backslash-newline are now 1287 absorbed as part of the backslash-newline. Newlinew are no 1288 longer absorbed (add another backslash if you want to absorb 1289 another newline). 1290 - TclWordEnd returns the character just before the backslash in 1291 the sequence as the end of the sequence; it used to not consider 1292 the backslash-newline as a word separator. (JO) 1293 12948/31/95 (new feature) Changed man page installation (with "mkLinks" 1295script) to create additional links for manual pages corresponding to 1296each of the procedure and command names described in the pages. (JO) 1297 12989/10/95 Reorganized Tcl sources for Windows and Mac ports. All sources 1299are now in subdirectories: "generic" contains sources that work on all 1300platforms, "windows", "mac", and "unix" directories contain platform- 1301specific sources. Some UNIX sources are also used on other platforms. (SS) 1302 13039/10/95 (feature change) Eliminated exported global variables (they 1304don't work with Windows DLLs). Replaced tcl_AsyncReady and 1305tcl_FileCloseProc with procedures Tcl_AsyncReady() and 1306Tcl_SetFileCloseProc(). Replaced C variable tcl_RcFileName with 1307a Tcl variable tcl_rcFileName. (SS) 1308*** POTENTIAL INCOMPATIBILITY *** 1309 13109/11/95 (new feature) Added procedure Tcl_SetPanicProc to override 1311the default implementation of "panic". (SS) 1312 13139/11/95 (new feature) Added "interp" command to allow creation of 1314new interpreters and execution of untrusted scripts. Added many new 1315procedures, such as Tcl_CreateSlave, Tcl_CreateAlias,and Tcl_MakeSafe, 1316to provide C-level access to the interpreter facility. This mechanism 1317now provides almost all of the generic functions of Borenstein's and 1318Rose's Safe-Tcl (but not any Tk or email-related stuff). (JL) 1319 13209/11/95 (feature change) Changed file management so that files are 1321no longer shared between interpreters: a file cannot normally be 1322referenced in one interpreter if it was opened in another. This 1323feature is needed to support safe interpreters. Added Tcl_ShareHandle() 1324procedure for allowing files to be shared, and added "interp" argument 1325to Tcl_FilePermissions procedure. (JL) 1326*** POTENTIAL INCOMPATIBILITY *** 1327 13289/11/95 (new feature) Added "AssocData" mechanism, whereby extensions 1329can associate their own data with an interpreter and get called back 1330when the interpreter is deleted. This is visible at C level via the 1331procedures Tcl_SetAssocData and Tcl_GetAssocData. (JL) 1332 13339/11/95 (new feature) Added Tcl_ErrnoMsg to translate an errno value 1334into a human-readable string. This is now used instead of calling 1335strerror because strerror mesages vary dramatically from platform 1336to platform, which messes up Tcl tests. Tcl_ErrnoMsg uses the standard 1337POSIX messages for all the common signals, and calls strerror for 1338signals it doesn't understand. 1339 1340----------------- Released patch 7.4p2, 9/15/95 ----------------------- 1341 1342----------------- Released 7.5a1, 9/15/95 ----------------------- 1343 13449/22/95 (bug fix) Changed auto_mkindex to create tclIndex files that 1345handle directories whose paths might contain spaces. (RJ) 1346 13479/27/95 (bug fix) The "format" command didn't check for huge or negative 1348width specifiers, which could cause core dumps. (JO) 1349 13509/27/95 (bug fix) Core dumps could occur if an interactive command typed 1351to tclsh returned a very long result for tclsh to print out. The bug is 1352actually in printf (in Solaris 2.3 and 2.4, at least); switched to use 1353puts instead. (JO) 1354 13559/28/95 (bug fix) Changed makefile.bc to eliminate a false dependency 1356for tcl1675.dll on the Borland run time library. (SS) 1357 13589/28/95 (bug fix) Fixed tcl75.dll so it looks for tcl1675.dll instead 1359of tcl16.dll. (SS) 1360 13619/28/95 (bug fix) Tcl was not correctly detecting the difference 1362between Win32s and Windows '95. (SS) 1363 13649/28/95 (bug fix) "exec" was not passing environment changes to child 1365processes under Windows. (SS) 1366 13679/28/95 (bug fix) Changed Tcl to ensure that open files are not passed 1368to child processes under Windows. (SS) 1369 13709/28/95 (bug fix) Fixed Windows '95 and NT versions of exec so it can 1371handle both console and windows apps. (SS) 1372 13739/28/95 (bug fix) Fixed Windows version of exec so it no longer leaves 1374temp files lying around. Also changed it so the temp files are 1375created in the appropriate system dependent temp directory. (SS) 1376 13779/28/95 (bug fix) Eliminated source dependency on the Win32s Universal 1378Thunk header file, since it is not bundled with VC++. (SS) 1379 13809/28/95 (bug fix) Under Windows, Tcl now constructs the HOME 1381environment variable from HOMEPATH and HOMEDRIVE when HOME is not 1382already set. (SS) 1383 13849/28/95 (bug fix) Added support for "info nameofexecutable" and "info 1385sharedlibextension" to the Windows version. (SS) 1386 13879/28/95 (bug fix) Changed tclsh to correctly parse command line 1388arguments so that backslashes are preserved under Windows. (SS) 1389 13909/29/95 (bug fix) Tcl 7.5a1 treated either return or newline as end 1391of line in "gets", which caused lines ending in CRLF to be treated as 1392two separate lines. Changed to allow only character as end-of-line: 1393carriage return on Macs, newline elsewhere. (JO) 1394 13959/29/95 (new feature) Changed to install "configInfo" file in same 1396directory as library scripts. It didn't used to get installed. (JO) 1397 13989/29/95 (bug fix) Tcl was not converting Win32 errors into POSIX 1399errors under some circumstances. (SS) 1400 140110/2/95 (bug fix) Safe interpreters no longer get initialized with 1402a call to Tcl_Init(). (JL) 1403 140410/1/95 (new feature) Added "tcl_platform" global variable to provide 1405environment information such as the instruction set and operating 1406system. (JO) 1407 140810/1/95 (bug fix) "exec" command wasn't always generating the 1409"child process exited abnormally" message when it should have. (JO) 1410 141110/2/95 (bug fix) Changed "mkLinks.tcl" so that the scripts it generates 1412won't create links that overwrite original manual entries (there was 1413a problem where pack-old.n was overwriting pack.n). (JO) 1414 141510/2/95 (feature change) Changed to use -ldl for dynamic loading under 1416Linux if it is available, but fall back to -ldld if it isn't. (JO) 1417 141810/2/95 (bug fix) File sharing was causing refcounts to reach 0 1419prematurely for stdin, stdout and stderr, under some circumstances. (JL) 1420 142110/2/95 (platform support) Added support for Visual C++ compiler on 1422Windows, Windows '95 and Windows NT, code donated by Gordon Chaffee. (JL) 1423 142410/3/95 (bug fix) Tcl now frees any libraries that it loads before it 1425exits. (SS) 1426 142710/03/95 (bug fix) Fixed bug in Macintosh ls command where the -l 1428and -C options would fail in anything but the HOME directory. (RJ) 1429 1430----------------- Released 7.5a2, 10/6/95 ----------------------- 1431 143210/10/95 (bug fix) "file dirnam /." was returning ":" on UNIX instead 1433of "/". (JO) 1434 143510/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating 1436the tcl.def file from Borland object files. (SS) 1437 143810/17/95 (new features) Moved the event loop from Tcl to Tk, made major 1439revisions along the way: 1440 - New Tcl commands: after, update, vwait (replaces "tkwait variable"). 1441 - "tkerror" is now replaced with "bgerror". 1442 - The following procedures are similar to their old Tk counterparts: 1443 Tcl_DoOneEvent, Tcl_Sleep, Tcl_DoWhenIdle, Tcl_CancelIdleCall, 1444 Tcl_CreateFileHandler, Tcl_DeleteFileHandler, Tcl_CreateTimerHandler, 1445 Tcl_DeleteTimerHandler, Tcl_BackgroundError. 1446 - Revised notifier, add new concept of "event source" with the following 1447 procedures: Tcl_CreateEventSource, Tcl_DeleteEventSource, 1448 Tcl_WatchFile, Tcl_SetMaxBlockTime, Tcl_FileReady, Tcl_QueueEvent, 1449 Tcl_WaitForEvent. (JO) 1450 145110/31/95 (new features) Implemented cross platform file name support to make 1452it easier to write cross platform scripts. Tcl now understands 4 file naming 1453conventions: Windows (both DOS and UNC), Mac, Unix, and Network. The network 1454convention is a new naming mechanism that can be used to paths in a platform 1455independent fashion. See the "file" command manual page for more details. 1456The primary interfaces changes are: 1457 - All Tcl commands that expect a file name now accept both network and 1458 native form. 1459 - Two new "file" subcommands, "nativename" and "networkname", provide a 1460 way to convert between network and native form. 1461 - Renamed Tcl_TildeSubst to Tcl_TranslateFileName, and changed it so that 1462 it always returns a filename in native form. Tcl_TildeSubst is defined 1463 as a macro for backward compatibility, but it is deprecated. (SS) 1464 146511/5/95 (new feature) Made "tkerror" and "bgerror" synonyms, so that 1466either name can be used to manipulate the command (provides temporary 1467backward compatibility for existing scripts that use tkerror). (JO) 1468 146911/5/95 (new feature) Added exit handlers and new C procedures 1470Tcl_CreateExitHandler, Tcl_DeleteExitHandler, and Tcl_Exit. (JO) 1471 147211/6/95 (new feature) Added pid command for Macintosh version of 1473Tcl (it didn't previously exist on the Mac). (RJ) 1474 147511/7/95 (new feature) New generic IO facility and support for IO to 1476files, pipes and sockets based on a common buffering scheme. Support 1477for asynchronous (non-blocking) IO and for event driver IO. Support 1478for automatic (background) asynchronous flushing and asynchronous 1479closing of channels. (JL) 1480 148111/7/95 (new feature) Added new commands "fconfigure" and "fblocked" 1482to support new I/O features such as nonblocking I/O. Added "socket" 1483command for creating TCP client and server sockets. (JL). 1484 148511/7/95 (new feature) Complete set of C APIs to the new generic IO 1486facility: 1487 - Opening channels: Tcl_OpenFileChannel, Tcl_OpenCommandChannel, 1488 Tcl_OpenTcpClient, Tcl_OpenTcpServer. 1489 - I/O procedures on channels, which roughly mirror the ANSI C stdio 1490 library: Tcl_Read, Tcl_Gets, Tcl_Write, Tcl_Flush, Tcl_Seek, 1491 Tcl_Tell, Tcl_Close, Tcl_Eof, Tcl_InputBlocked, Tcl_GetChannelOption, 1492 Tcl_SetChannelOption. 1493 - Extension mechanism for creating new kinds of channels: 1494 Tcl_CreateChannel, Tcl_GetChannelInstanceData, Tcl_GetChannelType, 1495 Tcl_GetChannelName, Tcl_GetChannelFile, Tcl_RegisterChannel, 1496 Tcl_UnregisterChannel, Tcl_GetChannel. 1497 - Event-driven I/O on channels: Tcl_CreateChannelHandler, 1498 Tcl_DeleteChannelHandler. (JL) 1499 150011/7/95 (new feature) Channel driver interface specification to allow 1501new types of channels to be added easily to Tcl. Currently being used 1502in three drivers - for files, pipes and TCP-based sockets. (JL). 1503 150411/7/95 (new feature) interp delete now takes any number of path 1505names of interpreters to delete, including zero. (JL). 1506 150711/8/95 (new feature) implemented 'info hostname' and Tcl_GetHostName 1508command to get host name of machine on which the Tcl process is running. (JL) 1509 151011/9/95 (new feature) Implemented file APIs for access to low level files 1511on each system. The APIs are: Tcl_CloseFile, Tcl_OpenFile, Tcl_ReadFile, 1512Tcl_WriteFile and Tcl_SeekFile. Also implemented Tcl_WaitPid which waits 1513in a system dependent manner for a child process. (JL) 1514 151511/9/95 (new feature) Added Tcl_UpdateLinkedVar procedure to force a 1516Tcl variable to be updated after its C variable changes. (JO) 1517 151811/9/95 (bug fix) The glob command has been totally reimplemented so 1519that it can support different file name conventions. It now handles 1520Windows file names (both UNC and drive-relative) properly. It also 1521supports nested braces correctly now. (SS) 1522 152311/13/95 (bug fix) Fixed Makefile.in so that configure can be run 1524from a clean directory separate from the Tcl source tree, and compilations 1525can be performed there. (JO) 1526 152711/14/95 (bug fix) Fixed file sharing between interpreters and file 1528transferring between interpreters to correctly manage the refcount so that 1529files are closed when the last reference to them is discarded. (JL) 1530 153111/14/95 (bug fix) Fixed gettimeofday implementation for the 1532Macintosh. This fixes several timing related bugs. (RJ) 1533 153411/17/95 (new feature) Added missing support for info nameofexecutable 1535on the Macintosh. (RJ) 1536 153711/17/95 (bug fix) The Tcl variables argc argv and argv0 now return 1538something reasonable on the Mac. (RJ) 1539 154011/22/95 (new feature) Implemented "auto-detect" mode for end of line 1541translations. On input, standalone "\r" mean MAC mode, standalone "\n" 1542mean Unix mode and "\r\n" means Windows mode. On output, the mode is 1543modified to whatever the platform specific mode for that platform is. (JL) 1544 154511/24/95 (feature change) Replaced "configInfo" file with tclConfig.sh, 1546which is more complete and uses slightly different names. Also 1547arranged for tclConfig.sh to be installed in the platform-specific 1548library directory instead of Tcl's script library directory. (JO) 1549*** POTENTIAL INCOMPATIBILITY with Tcl 7.5a2, but not with Tcl 7.4 *** 1550 1551----------------- Released patch 7.4p3, 11/28/95 ----------------------- 1552 155312/5/95 (new feature) Added Tcl_File facility to support platform- 1554independent file handles. Changed all interfaces that used Unix- 1555style integer fd's to use Tcl_File's instead. (SS) 1556*** POTENTIAL INCOMPATIBILITY *** 1557 155812/5/95 (new feature) Added a new "clock" command to Tcl. The command 1559allows you to get the current "clicks" or seconds & allows you to 1560format or scan human readable time/date strings. (RJ) 1561 156212/18/95 (new feature) Moved Tk_Preserve, Tk_Release, and Tk_EventuallyFree 1563to Tcl, renamed to Tcl_Preserve, Tcl_Release, and Tcl_EventuallyFree. (JO) 1564 156512/18/95 (new feature) Added new "package" command and associated 1566procedures Tcl_PkgRequire and Tcl_PkgProvide. Also wrote 1567pkg_mkIndex library procedure to create index files from binaries 1568and scripts. (JO) 1569 157012/20/95 (new feature) Added Tcl_WaitForFile procedure. (JO) 1571 157212/21/95 (new features) Made package name argument to "load" optional 1573(Tcl will now attempt to guess the package name if necessary). Also 1574added Tcl_StaticPackage and support in "load" for statically linked 1575packages. (JO) 1576 157712/22/95 (new feature) Upgraded the foreach command to accept multiple 1578loop variables and multiple value lists. This lets you iterate over 1579multiple lists in parallel, and/or assign multiple loop variables from 1580one value list during each iteration. The only potential compatibility 1581problem is with scripts that used loop variables with a name that could be 1582construed to be a list of variable names (i.e. contained spaces). (BW) 1583 15841/5/96 (new feature) Changed tclsh so it builds as a console mode 1585application under Windows. Now tclsh can be used from the command 1586line with pipes or interactively. Note that this only works under 1587Windows 95 or NT. (SS) 1588 15891/17/96 (new feature) Modified Makefile and configure script to allow 1590Tcl to be compiled as a shared library: use the --enable-shared option 1591when configuing. (JO) 1592 15931/17/96 (removed obsolete features) Removed the procedures Tcl_EnterFile 1594and Tcl_GetOpenFile: these no longer make sense with the new I/O system. (JL) 1595*** POTENTIAL INCOMPATIBILITY *** 1596 15971/19/96 (bug fixes) Prevented formation of circular aliases, through the 1598Tcl 'interp alias' command and through the 'rename' command, as well as 1599through the C API Tcl_CreateAlias. (JL) 1600 16011/19/96 (bug fixes) Fixed several bugs in direct deletion of interpreters 1602with Tcl_DeleteInterp when the interpreter is a slave; fixes based on a 1603patch received from Viktor Dukhovni of ESM. (JL) 1604 16051/19/96 (new feature) Implemented on-close handlers for channels; added 1606the C APIs Tcl_CreateCloseHandler and Tcl_DeleteCloseHandler. (JL) 1607 16081/19/96 (new feature) Implemented portable error reporting mechanism; added 1609the C APIs Tcl_SetErrno and Tcl_GetErrno. (JL) 1610 16111/24/96 (bug fix) Unknown command processing properly invokes external 1612commands under Windows NT and Windows '95 now. (SS) 1613 16141/23/96 (bug fix) Eliminated extremely long startup times under Windows '95. 1615The problem was a result of the option database initialization code that 1616concatenated $HOME with /.Xdefaults, resulting in a // in the middle of the 1617file name. Under Windows '95, this is incorrectly interpreted as a UNC 1618path. They delays came from the network timeouts needed to determine that 1619the file name was invalid. Tcl_TranslateFileName now suppresses duplicate 1620slashes that aren't at the beginning of the file name. (SS) 1621 16221/25/96 (bug fix) Changed exec and open to create children so they are 1623attached to the application's console if it exists. (SS) 1624 16251/31/96 (bug fix) Fixed command line parsing to handle embedded 1626spaces under Windows. (SS) 1627 1628----------------- Released 7.5b1, 2/1/96 ----------------------- 1629 16302/7/96 (bug fix) Fixed off by one error in argument parsing code under 1631Windows. (SS) 1632 16332/7/96 (bug fix) Fixed bugs in VC++ makefile that improperly 1634initialized the tcl75.dll. Fixed bugs in Borland makefile that caused 1635build failures under Windows NT. (SS) 1636 16372/9/96 (bug fix) Fixed deadlock problem in AUTO end of line translation 1638mode which would cause a socket server with several concurrent clients 1639writing in CRLF mode to hang. (JL) 1640 16412/9/96 (API change) Replaced -linemode option to fconfigure with a 1642new -buffering option, added "none" setting to enable immediate write. (JL) 1643*** INCOMPATIBILITY with b1 *** 1644 16452/9/96 (new feature) Added C API Tcl_InputBuffered which returns the count 1646of bytes currently buffered in the input buffer of a channel, and o for 1647output only channels. (JL) 1648 16492/9/96 (new feature) Implemented asynchronous connect for sockets. (JL) 1650 16512/9/96 (new feature) Added C API Tcl_SetDefaultTranslation to set (per 1652channel) the default end of line translation mode. This is the mode that 1653will be installed if an output operation is done on the channel while it is 1654still in AUTO mode. (JL) 1655 16562/9/96 (bug fix) Changed Tcl_OpenCommandChannel interface to properly 1657handle all of the combinations of stdio inheritance in background 1658pipelines. See the Tcl_OpenFileChannel(3) man page for more 1659info. This change fixes the bug where exec of a background pipeline 1660was not getting passed the stdio handles properly. (SS) 1661 16622/9/96 (bug fix) Removed the new Tcl_CreatePipeline interface, and 1663restored the old version for Unix platforms only. All new code should 1664use Tcl_CreateCommandChannel instead. (SS) 1665 16662/9/96 (bug fix) Changed Makefile.in to use -L and -ltcl7.5 for Tcl 1667library so that shared libraries are more likely to be found correctly 1668on more platforms. (JO) 1669 16702/13/96 (new feature) Added C API Tcl_SetNotifierData and 1671Tcl_GetNotifierData to allow notifier and channel driver writers to 1672associate data with a Tcl_File. The result of this change is that 1673Tcl_GetFileInfo now always returns an OS file handle, and Tcl_GetFile 1674can be used to construct a Tcl_File for an externally constructed OS 1675handle. (SS) 1676 16772/13/96 (bug fix) Changed Windows socket implementation so it doesn't 1678set SO_REUSEADDR on server sockets. Now attempts to create a server 1679socket on a port that is already in use will be properly identified 1680and an error will be generated. (SS) 1681 16822/13/96 (bug fix) Fixed problems with DLL initialization under Visual 1683C++ that left the C run time library uninitialized. (SS) 1684 16852/13/96 (bug fix) Fixed Windows socket initialization so it loads 1686winsock the first time it is used, rather than at the time tcl75.dll 1687is loaded. This should fix the bug where the modem immediately starts 1688trying to connect to a service provider when wish or tclsh are 1689started. (SS) 1690 16912/13/96 (new feature) Added C APIs Tcl_MakeFileChannel and 1692Tcl_MakeTcpClientChannel to wrap up existing fds and sockets into 1693channels. Provided implementations on Unix and Windows. (JL) 1694 16952/13/96 (bug fix) Fixed bug with seek leaving EOF and BLOCKING set. (JL) 1696 16972/14/96 (bug fix) Fixed reentrancy problem in fileevent handling 1698and made it more robust in the face of errors. (JL) 1699 17002/14/96 (feature change) Made generic IO level emulate blocking mode if the 1701channel driver is unable to provide it, e.g. if the low level device is 1702always nonblocking. Thus, now blocking behavior is an advisory setting for 1703channel drivers and can be ignored safely if the channel driver is unable 1704to provide it. (JL) 1705 17062/15/96 (new feature) Added "binary" end of line translation mode, which is 1707a synonym of "lf" mode. (JL) 1708 17092/15/96 (bug fix) Fixed reentrancy problem in fileevent handling vs 1710deletion of channel event handlers. (JL) 1711 17122/15/96 (bug fix) Fixed bug in event handling which would cause a 1713nonblocking channel to not see further readable events after the first 1714readable event that had insufficient input. (JL) 1715 17162/17/96 (bug fix) "info complete" didn't properly handle comments 1717in nested commands. (JO) 1718 17192/21/96 (bug fix) "exec" under Windows NT/95 did not properly handle 1720very long command lines (>200 chars). (SS) 1721 17222/21/96 (bug fix) Sockets could get into an infinite loop if a read 1723event arrived after all of the available data had been read. (SS) 1724 17252/22/96 (bug fix) Added cast of st_size elements to (long) before 1726sprintf-ing in "file size" command. This is needed to handle systems 1727like NetBSD with 64-bit file offsets. (JO) 1728 1729----------------- Released 7.5b2, 2/23/96 ----------------------- 1730 17312/23/96 (bug fix) TCL_VARARGS macro in tcl.h wasn't defined properly 1732when compiling with C++. (JO) 1733 17342/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile: 1735this caused problems on some platforms (like Linux?). (JO) 1736 17372/24/96 (bug fix) Fixed configuration bug that made Tcl not compile 1738correctly on Linux machines with neither -ldl or -ldld. (JO) 1739 17402/24/96 (new feature) Added a block of comments and definitions to 1741Makefile.in to make it easier to have Tcl's TclSetEnv etc. replace 1742the library procedures setenv etc, so that calls to setenv etc. in 1743the application automatically update the Tcl "env" variable. (JO) 1744 17452/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL) 1746to C API Tcl_Close and simplified closing of command channels. (JL) 1747*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1748 17492/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL) 1750to C type definition Tcl_DriverCloseProc; modified all channel drivers to 1751implement close procedures that accept the additional argument. (JL) 1752*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1753 17542/28/96 (bug fix) Fixed memory leak that could occur if an upvar 1755referred to an element of an array in the same stack frame as the 1756upvar. (JO) 1757 17582/29/96 (feature change) Modified both Tcl_DoOneEvent and Tcl_WaitForEvent 1759so that they return immediately in cases where they would otherwise 1760block forever (e.g. if there are no event handlers of any sort). (JO) 1761 17622/29/96 (new feature) Added C APIs Tcl_GetChannelBufferSize and 1763Tcl_SetChannelBufferSize to set and retrieve the size, in bytes, for 1764buffers allocated to store input or output in a channel. (JL) 1765 17662/29/96 (new feature) Added option -buffersize to Tcl fconfigure command 1767to allow Tcl scripts to query and set the size of channel buffers. (JL) 1768 17692/29/96 (feature removed) Removed channel driver function to specify 1770the buffer size to use when allocating a buffer. Removed the C typedef 1771for Tcl_DriverBufferSizeProc. Channels are now created with a default 1772buffer size of 4K. (JL) 1773*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1774 17752/29/96 (feature change) The channel driver function for setting blocking 1776mode on the device may now be NULL. If the generic code detects that the 1777function is NULL, operations that set the blocking mode on the channel 1778simply succeed. (JL) 1779 17803/2/96 (bug fix) Fixed core dump that could occur if a syntax error 1781(such as missing close paren) occurred in an array reference with a 1782very long array name. (JO) 1783 17843/4/96 (bug fix) Removed code in the "auto_load" procedure that deletes 1785all existing auto-load information whenever the "auto_path" variable 1786is changed. Instead, new information adds to what was already there. 1787Otherwise, changing the "auto_path" variable causes all package- 1788related information to be lost. If you really want to get rid of 1789existing auto-load information, use auto_reset before setting auto_path. (JO) 1790 17913/5/96 (new feature) Added version suffix to shared library names so that 1792Tcl will compile under NetBSD and FreeBSD (I hope). (JO) 1793 17943/6/96 (bug fix) Cleaned up error messages in new I/O system to correspond 1795more closely to old I/O system. (JO) 1796 17973/6/96 (new feature) Added -myaddr and -myport options to the socket 1798command, removed -tcp and -- options. This lets clients and servers 1799choose a particular interface. Also changed the default server address 1800from the hostname to INADDR_ANY. The server accept callback now gets 1801passed the client's port as well as IP address. The C interfaces for 1802Tcl_OpenTcpClient and Tcl_OpenTcpServer have changed to support the 1803above changes. (BW) 1804*** POTENTIAL INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1805 18063/6/96 (changed feature) The library function auto_mkindex will now 1807default to using the pattern "*.tcl" if no pattern is given. (RJ) 1808 18093/6/96 (bug fix) The socket channel code for the Macintosh has been 1810rewritten to use native MacTcp. (RJ) 1811 18123/7/96 (new feature) Added Tcl_SetStdChannel and Tcl_GetStdChannel 1813interfaces to allow applications to explicitly set and get the global 1814standard channels. (SS) 1815 18163/7/96 (bug fix) Tcl did close not the file descriptors associated 1817with "stdout", etc. when the corresponding channels were closed. (SS) 1818 18193/7/96 (bug fix) Reworked shared library and dynamic loading stuff to 1820try to get it working under AIX. Added new @SHLIB_LD_LIBS@ autoconf 1821symbol as part of this. AIX probably doesn't work yet, but it should 1822be a lot closer. (JO) 1823 18243/7/96 (feature change) Added Tcl_ChannelProc typedef and changed the 1825signature of Tcl_CreateChannelHandler and Tcl_DeleteChannelHandler to take 1826Tcl_ChannelProc arguments instead of Tcl_FileProc arguments. This change 1827should not affect any code outside Tcl because the signatures of 1828Tcl_ChannelProc and Tcl_FileProc are compatible. (JL) 1829 18303/7/96 (API change) Modified signature of Tcl_GetChannelOption to return 1831an int instead of char *, and to take a Tcl_DString * argument. Modified 1832the implementation so that the option name can be NULL, to mean that the 1833call should retrieve a list of alternating option names and values. (JL) 1834*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1835 18363/7/96 (API change) Added Tcl_DriverSetOptionProc, Tcl_DriverGetOptionProc 1837typedefs, added two slots setOptionProc and getOptionProc to the channel 1838type structure. These may be NULL to indicate that the channel type does 1839not support any options. (JL) 1840*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 1841 18423/7/96 (feature change) stdin, stdout and stderr can now be put into 1843nonblocking mode. (JL) 1844 18453/8/96 (feature change) Eliminated dependence on the registry for 1846finding the Tcl library files. (SS) 1847 1848----------------- Released 7.5b3, 3/8/96 ----------------------- 1849 18503/12/96 (feature improvement) Modified startup script to look in several 1851different places for the Tcl library directory. This should allow Tcl 1852to find the libraries under all but the weirdest conditions, even without 1853the TCL_LIBRARY environment variable being set. (JO) 1854 18553/13/96 (bug fix) Eliminated use of the "linger" option from the Windows 1856socket implementation. (JL) 1857 18583/13/96 (new feature) Added -peername and -sockname options for fconfigure 1859for socket channels. Code contributed by John Haxby of HP. (JL) 1860 18613/13/96 (bug fix) Fixed panic and core dump that would occur if the accept 1862callback script on a server socket encountered an error. (JL) 1863 18643/13/96 (feature change) Added -async option to the Tcl socket command. 1865If the command is creating a client socket and the flag is present, the 1866client is connected asynchronously. If the option is absent (the default), 1867the client socket is connected synchronously, and the command returns only 1868when the connection has been completed or failed. This change was suggested 1869by Mark Diekhans. (JL) 1870 18713/13/96 (feature change) Modified the signature of Tcl_OpenTcpClient to 1872take an additional int argument, async. If nonzero, the client is connected 1873to the server asynchronously. If the value is zero, the connection is made 1874synchronously, and the call to Tcl_OpenTcpClient returns only when the 1875connection fails or succeeds. This change was suggested by Mark Diekhans. (JL) 1876*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 1877 18783/14/96 (bug fix) "tclsh bogus_file_name" didn't print an error message. (JO) 1879 18803/14/96 (bug fix) Added new procedures to tclCkalloc.c so that libraries 1881and applications can be compiled with TCL_MEM_DEBUG even if Tcl isn't 1882(however, the converse is still not true). Patches provided by Jan 1883Nijtmans. (JO) 1884 18853/15/96 (bug fix) Marked standard IO handles of a process as close-on-exec 1886to fix bug in Ultrix where exec was not sharing standard IO handles with 1887subprocesses. Fix suggested by Mark Diekhans. (JL) 1888 18893/15/96 (bug fix) Fixed asynchronous close mechanism so that it closes the 1890channel instead of leaking system resources. The manifestation was that Tcl 1891would eventually run out of file descriptors if it was handling a large 1892number of nonblocking sockets or pipes with high congestion. (JL) 1893 18943/15/96 (bug fix) Fixed tests so that they no longer leak file descriptors. 1895The manifestation was that Tcl would eventually run out of file descriptors 1896if the tests were rerun many times (> a hundred times on Solaris). (JL) 1897 18983/15/96 (bug fix) Fixed channel creation code so that it never creates 1899unnamed channels. This would cause a panic and core dump when the channel 1900was closed. (JL) 1901 19023/16/96 (bug fixes) Made lots of changes in configuration stuff to get 1903Tcl working under AIX (finally). Tcl should now support the "load" 1904command under AIX and should work either with or without shared 1905libraries for Tcl and Tk. (JO) 1906 19073/21/96 (configuration improvement) Changed configure script so it 1908doesn't use version numbers (as in -ltcl7.5 and libtcl7.5.so) under 1909SunOS 4.1, where they don't work anyway. (JO) 1910 19113/22/96 (new feature) Added C API Tcl_InterpDeleted that allows extension 1912writers to discover when an interpreter is being deleted. (JL) 1913 19143/22/96 (bug fix) The standard IO channels are now added to each 1915trusted interpreter as soon as the interpreter is created. This ensures 1916against the bug where a child would do IO before the master had done any, 1917and then the child is destroyed - the standard IO channels would be then 1918closed and the master would be unable to do any IO. (JL) 1919 19203/22/96 (bug fix) Made Tcl more robust against interpreter deletion, by 1921using Tcl_Preserve, Tcl_Release and Tcl_EventuallyFree to split the process 1922of interpreter deletion into two distinct phases. Also went through all of 1923Tcl and added calls to Tcl_Preserve and Tcl_Delete where needed. (JL) 1924 19253/22/96 (bug fix) Fixed several places where C code was reading and writing 1926into freed memory, especially during interpreter deletion. (JL) 1927 19283/22/96 (bug fix) Fixed very deep bug in Tcl_Release that caused memory to 1929be freed twice if the release callback did Tcl_Preserve and Tcl_Release on 1930the same memory as the chunk currently being freed. (JL) 1931 19323/22/96 (bug fix) Removed several memory leaks that would cause memory 1933buildup on half-K chunks in the generic IO level. (JL) 1934 19353/22/96 (bug fix) Fixed several core dumps which occurred when new 1936AssocData was being created during the cleanups in interpreter deletion. 1937The solution implemented now is to loop repeatedly over the AssocData until 1938none is left to clean up. (JL) 1939 19403/22/96 (bug fix) Fixed a bug in event handling which caused an infinite 1941loop if there were no files being watched and no timer. Fix suggested by 1942Jan Nijtmans. (JL) 1943 19443/22/96 (bug fix) Fixed Tcl_CreateCommand, Tcl_DeleteCommand to be more 1945robust if the interpreter is being deleted. Also fixed several order 1946dependency bugs in Tcl_DeleteCommand which kicked in when an interpreter 1947was being deleted. (JL) 1948 19493/26/96 (bug fix) Upon a "short read", the generic code no longer calls 1950the driver for more input. Doing this caused blocking on some platforms 1951even on nonblocking channels. Bug and fix courtesy Mark Roseman. (JL) 1952 19533/26/96 (new feature) Added 'package Tcltest' which is present only in 1954test versions of Tcl; this allows the testing commands to be loaded into 1955new interpreters besides the main one. (JL) 1956 19573/26/96 (restored feature) Recreated the Tcl_GetOpenFile C API. You can 1958now get a FILE * from a registered channel; Unix only. (JL) 1959 19603/27/96 (bug fix) The regular expression code did not support more 1961than 9 subexpressions. It now supports up to 20. (SS) 1962 19634/1/96 (bug fixes) The CHANNEL_BLOCKED bit was being left on on a short 1964read, so that fileevents wouldn't fire correctly. Bug reported by Mark 1965Roseman.(JL, RJ) 1966 19674/1/96 (bug fix) Moved Tcl_Release to match Tcl_Preserve exactly, in 1968tclInterp.c; previously interpreters were being freed only conditionally 1969and sometimes not at all. (JL) 1970 19714/1/96 (bug fix) Fixed error reporting in slave interpreters when the 1972error message was being generated directly by C code. Fix suggested by 1973Viktor Dukhovni of ESM. (JL) 1974 19754/2/96 (bug fixes) Fixed a series of bugs in Windows sockets that caused 1976events to variously get lost, to get sent multiple times, or to be ignored 1977by the driver. The manifestation was blocking if the channel is blocking, 1978and either getting EAGAIN or infinite loops if the channel is nonblocking. 1979This series of bugs was found by Ian Wallis of Cisco. Now all tests (also 1980those that were previously commented out) in socket.test pass. (JL, SS) 1981 19824/2/96 (feature change/bug fix) Eliminated network name support in 1983favor of better native name support. Added "file split", "file join", 1984and "file pathtype" commands. See the "file" man page for more 1985details. (SS) 1986*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 1987 19884/2/96 (bug fix) Changed implementation of auto_mkindex so tclIndex 1989files will properly handle path names in a cross platform context. (SS) 1990 19914/5/96 (bug fix) Fixed Tcl_ReadCmd to use the channel buffer size as the 1992chunk size it reads, instead of a fixed 4K size. Thus, on large reads, the 1993user can set the channel buffer size to a large size and the read will 1994occur orders of magnitude faster. For example, on a 2MB file, reading in 4K 1995chunks took 34 seconds, while reading in 1MB chunks took 1.5 seconds (on a 1996SS-20). Problem identified and fix suggested by John Haxby of HP. (JL) 1997 19984/5/96 (bug fix) Fixed socket creation code to invoke gethostbyname only if 1999inet_addr failed (very unlikely). Before this change the order was reversed 2000and this made things much slower than they needed to be (gethostbyname 2001generally requires an RPC, which is slow). Problem identified and fix 2002suggested by John Loverso of OSF. (JL) 2003 20044/9/96 (feature change) Modified "auto" translation mode so that it 2005recognizes any of "\n", "\r" and "\r\n" in input as end of line, so 2006that a file can have mixed end-of-line sequences. It now outputs 2007the platform specific end of line sequence on each platform for files and 2008pipes, and for sockets it produces crlf in output on all platforms. (JL) 2009*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 2010 20114/11/96 (new feature) Added -eofchar option to Tcl_SetChannelOption to allow 2012setting of an end of file character for input and output. If an input eof 2013char is set, it is recognized as EOF and further input from the channel is 2014not presented to the caller. If an output eof char is set, on output, that 2015byte is appended to the channel when it is closed. On Unix and Macintosh, 2016all channels start with no eof char set for input or output. On Windows, 2017files and pipes start with input and output eof chars set to Crlt-Z (ascii 201826), and sockets start with no input or output eof char. (JL) 2019*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 2020 20214/17/96 (bug fix) Fixed series of bugs with handling of crlf sequence split 2022across buffer boundaries in input, in AUTO mode. (JL, BW) 2023 20244/17/96 (test suite improvement) Fixed test suite so that tests that 2025depend on the availability of Unix commands such as echo, cat and others 2026are not run if these commands are not present. (JL) 2027 20284/17/96 (test suite improvement) The socket test now automatically starts, 2029on platformst that support exec, a separate process for remote testsing. (JL) 2030 2031----------------- Released 7.5, 4/21/96 ----------------------- 2032 20335/1/96 (bug fix) "file tail ~" did not correctly return the tail 2034portion of the user's home directory. (SS) 2035 20365/1/96 (bug fix) Fixed bug in TclGetEnv where it didn't lookup environment 2037variables correctly: could confuse "H" and "HOME", for example. (JO) 2038 20395/1/96 (bug fix) Changed to install tclConfig.sh under "make install-binaries", 2040not "make install-libraries". (JO) 2041 20425/2/96 (bug fix) Changed pkg_mkIndex not to attempt to "load" a file unless 2043it has the standard shared library extension. On SunOS, attempts to load 2044Tcl scripts cause the whole application to be aborted (there's no way to 2045get the error back into Tcl). (JO) 2046 20475/7/96 (bug fix) Moved initScript in tclUnixInit.c to writable memory to 2048avoid potential core dumps. (JO) 2049 20505/7/96 (bug fix) Auto_reset procedure was removing procedure from init.tcl, 2051such as pkg_mkIndex. (JO) 2052 20535/7/96 (bug fix) Fixed cast on socket address resolution code that 2054would cause a failure to connect on Dec Alphas. (JL) 2055 20565/7/96 (bug fix) Added "time", "subst" and "fileevent" commands to set of 2057commands available in a safe interpreter. (JL) 2058 20595/13/96 (bug fix) Preventing OS level handles for stdin, stdout and stderr 2060from being implicitly closed when the last reference to the standard 2061channel containing that handle is discarded when an interpreter is deleted. 2062Explicitly closing standard channels by using "close" still works. (JL) 2063 20645/21/96 (bug fix) Do not create channels for stdin, stdout and stderr on 2065Unix if the devices are closed. This prevents a duplicate channel name 2066panic later on when the fd is used to open a channel and the channel is 2067registered in an interpreter. (JL) 2068 20695/23/96 (bug fix) Fixed bug that prevented the use of standard channels in 2070interpreters created after the last interpreter was destroyed. In the sequence 2071 2072 interp = Tcl_CreateInterp(); 2073 Tcl_DeleteInterp(interp); 2074 interp = Tcl_CreateInterp(); 2075 2076channels for stdio would not be available in the second interpreter. (JL) 2077 20785/23/96 (bug fix) Fixed bug that allowed Tcl_MakeFileChannel to create new 2079channels with Tcl_Files in them that are already used by another channel. 2080This would cause core dumps when the Tcl_Files were being freed twice. (JL) 2081 20825/23/96 (bug fix) Fixed a logical timing bug that caused a standard channel 2083to be removed from the standard channel table too early when the channel 2084was being closed. If the channel was being flushed asynchronously, it could 2085get recreated before being actually destroyed, and the recreated channel 2086would contain the same Tcl_File as the one being closed, leading to 2087dangling pointers and core dumps. (JL) 2088 20895/27/96 (bug fix) Fixed a bug in Tcl_GetChannelOption which caused it to 2090always return a list of one element, a list of the settings, for 2091-translation and -eofchar options. Now correctly returns the value 2092described by the documentation (Mark Diekhans found this, thanks!). (JL) 2093 20945/30/96 (bug fix) Fixed a couple of syntax errors in io.test. (JL) 2095 20965/30/96 (bug fix) If a fileevent scripts gets an error, delete it before 2097causing a background error. This is to allow the error handler to reinstall 2098the fileevent and to prevent infinite loops if the event loop is reentered 2099in the error handler. (JL) 2100 21015/31/96 (bug fix) Channels now will get properly flushed on exit. (JL) 2102 21036/5/96 (bug fix) Changed Tcl_Ckalloc, Tcl_Ckfree, and Tcl_Ckrealloc to 2104Tcl_Alloc, Tcl_Free, and Tcl_Realloc. Added documentation for these 2105routines now that they are officially supported. Extension writers 2106should use these routines instead of free() and malloc(). (SS) 2107 21086/10/96 (bug fix) Changes the Tcl close command so that it no longer 2109waits on nonblocking pipes for the piped processes to exit; instead it 2110reaps them in the background. (JL) 2111 21126/11/96 (bug fix) Increased the length of the listen queue for server 2113sockets on Unix from 5 to 100. Some OSes will disregard this and reset it 2114to 5, but we should try to get as long a queue as we can, for performance 2115reasons. (JL) 2116 21176/11/96 (bug fix) Fixed windows sockets bug that caused a cascade of events 2118if the fileevent script read less than was available. Now reading less than 2119is available does not cause a flood of Tcl events. (JL, SS) 2120 21216/11/96 (bug fix) Fixed bug in background flushing on closed channels that 2122would prevent the last buffer from getting flushed. (JL) 2123 21246/13/96 (bug fix) Fixed bug in Windows sockets that caused a core dump if 2125a DLL linked with tcl.dll and referred to e.g. ntohs() without opening a 2126Tcl socket. The problem was that the indirection table was not being 2127initialized. (JL) 2128 21296/13/96 (bug fix) Fixed OS level resource leak that would occur when a 2130Tcl channel was still registered in some interpreter when the process 2131exits. Previously the channel was not being closed and the OS level handles 2132were not being released; the output was being flushed but the device was 2133not being closed. Now the device is properly closed. This was only a 2134problem on Win3.1 and MacOS. (JL, SS) 2135 21366/28/96 (bug fix) Fixed bug where transient errors were leaving an error 2137code around, so that it would erroneously get reported later. This bug was 2138exercised intermittently by closing a channel to a file on a very loaded 2139NFS server, or to a socket whose other end blocked. (JL, BW) 2140 21417/3/96 (bug fix) Fileevents declared in an interpreter are now deleted 2142when the channel is closed in that interpreter. Before this fix, the 2143fileevent would hang around until the channel is completely closed, and 2144would cause errors if events happened before the channel was closed. This 2145could happen in two cases: first if the channel is shared between several 2146interpreters, and second if an async flush is in progress that prevents the 2147channel from being closed until the flush finishes. (JL) 2148 21497/10/96 (bug fix) Fixed bugs in both "lrange" and "lreplace" commands 2150where too much white space was being removed. For example, the command 2151 lreplace {\}\ hello} end end 2152was returning "\}\", losing the significant space in the first list 2153element and corrupting the list. (JO) 2154 21557/20/96 (bug fix) The procedure pkg_mkIndex didn't work properly for 2156extensions that depend on Tk, because it didn't load Tk into the child 2157interpreter before loading the extension. Now it loads Tk if Tk is 2158present in the parent. (JO) 2159 21607/23/96 (bug fix) Added compat version of strftime to fix crashes 2161resulting from bad implementations under Windows. (SS) 2162 21637/23/96 (bug fix) Standard implementations of gmtime() and localtime() 2164under Windows did not handle dates before 1970, so they were replaced 2165with a revised implementation. (SS) 2166 21677/23/96 (bug fix) Tcl would crash on exit under Borland 5.0 because 2168the global environ pointer was left pointing to freed memory. (SS) 2169 21707/29/96 (bug fix) Fixed memory leak in Tcl_LoadCmd that could occur if 2171a package's AppInit procedure called Tcl_StaticPackage to register 2172static packages. (JO) 2173 21748/1/96 (bug fix) Fixed a series of bugs in Windows sockets so that async 2175writebehind in the presence of read event handlers now works, and so that 2176async writebehind also works on sockets for which a read event handler was 2177declared and whose channels were then closed before the async write 2178finished. The bug was reported by John Loverso and Steven Wahl, 2179independently, test case supplied by John Loverso. (JL) 2180 2181----------------- Released patch 7.5p1, 8/2/96 ----------------------- 2182 21835/8/96 (new feature) Added Tcl_GetChannelMode C API for retrieving whether 2184a channel is open for reading and writing. (JL) 2185 21865/8/96 (API changes) Revised C APIs for channel drivers: 2187 - Removed all Tcl_Files from channel driver interface; you can now have 2188 channels that are not based on Tcl_Files. 2189 - Added channelReadyProc and watchChannelProc procedures to interface; 2190 these are used to implement event notification for channels. 2191 - Added getFileProc to channel driver, to allow the generic IO code 2192 to retrieve a Tcl_File from a channel (presumably if the channel 2193 uses Tcl_Files they will be stored inside its instanceData). (JL) 2194*** INCOMPATIBILITY with Tcl 7.5 *** 2195 21965/8/96 (API change) The Tcl_CreateChannel C API was modified to not take 2197Tcl_File arguments, and instead to take a mask specifying whether the 2198channel is readable and/or writable. (JL) 2199*** INCOMPATIBILITY with Tcl 7.5 *** 2200 22016/3/96 (bug fix) Made Tcl_SetVar2 robust against the case where the value 2202of the variable is a NULL pointer instead of "". (JL) 2203 22046/17/96 (bug fix) Fixed "reading uninitialized memory" error reported by 2205Purify, in Tcl_Preserve/Tcl_Release. (JL) 2206 22078/9/96 (bug fix) Fixed bug in init.tcl that caused incorrect error message 2208if the act of autoloading a procedure caused the procedure to be invoked 2209again. (JO) 2210 22118/9/96 (bug fix) Configure script produced bad library names and extensions 2212under SunOS and a few other platforms if the --disable-load switch was used. 2213(JO) 2214 22158/9/96 (bug fix) Tcl_UpdateLinkedVar generated an error if the variable 2216being updated was read-only. (JO) 2217 22188/14/96 (bug fix) The macintosh now supports synchronous socket 2219connections. Other minor bugs were also fixed. (RJ) 2220 22218/15/96 (configuration improvement) Changed the file patchlevel.h 2222to be tclPatch.h. This avoids conflict with the Tk file and is now 2223in 8.3 format on the Windows platform. (RJ) 2224 22258/20/96 (bug fix) Fixed core dump in interp alias command for interpreters 2226created with Tcl_CreateInterp (as opposed to with Tcl_CreateSlave). (JL) 2227 22288/20/96 (bug fix) No longer masking ECONNRESET on Windows sockets so 2229that the higher level of the IO mechanism sees the error instead of 2230entering an infinite loop. (JL) 2231 22328/20/96 (bug fix) Destroying the last interpreter no longer closes the 2233standard channels. (JL) 2234 22358/20/96 (bug fix) Closing one of the stdin, stdout or stderr channels and 2236then opening a new channel now correctly assigns the new channel as the 2237standard channel that was closed. (JL) 2238 22398/20/96 (bug fix) Added code to unix/tclUnixChan.c for using ioctl with 2240FIONBIO instead of fcntl with O_NONBLOCK, for those versions of Unix where 2241either O_NONBLOCK is not supported or implemented incorrectly. (JL) 2242 22438/21/96 (bug fix) Fixed "file extension" so it correctly returns the 2244extension on files like "foo..c" as "..c" instead of ".c". (SS) 2245 22468/22/96 (bug fix) If environ[] contains static strings, Tcl would core 2247dump in TclSetupEnv because it was trying to write NULLs into the actual 2248data in environ[]. Now we instead copy as appropriate. (JL) 2249 22508/22/96 (added impl) Added missing implementation of Tcl_MakeTcpClientChannel 2251for Windows platform. Code contributed by Mark Diekhans. (JL) 2252 22538/22/96 (new feature) Added a new memory allocator for the Macintosh 2254version of Tcl. It's quite a bit faster than MetroWerk's version. (RJ) 2255 22568/26/96 (documentation update) Removed old change bars (for all changes 2257in Tcl 7.5 and earlier releases) from manual entries. (JO) 2258 22598/27/96 (enhancement) The exec and open commands behave better and work in 2260more situations under Windows NT and Windows 95. Documentation describes 2261what is still lacking. (CS) 2262 22638/27/96 (enhancement) The Windows makefiles will now compile even if the 2264compiler is not in the path and/or the compiler's environment variables 2265have not been set up. (CS) 2266 22678/27/96 (configuration improvement) The Windows resource files are 2268automatically updated when the version/patch level changes. The header file 2269now has a comment that reminds the user which other files must be manually 2270updated when the version/patch level changes. (CS) 2271 22728/28/96 (new feature) Added file manipulation features (copy, rename, delete, 2273mkdir) that are supported on all platforms. They are implemented as 2274subcommands to the "file" command. See the documentation for the "file" 2275command for more information. (JH) 2276 2277----------------- Released 7.6b1, 8/30/96 ----------------------- 2278 22799/3/96 (bug fix) Simplified code so that standard channels are created 2280lazily, they are added to an interpreter lazily, and they are never added 2281to a safe interpreter. (JL) 2282 22839/3/96 (bug fix) Closing a channel after closing a standard channel, e.g. 2284stdout, would cause the implicit recreation of that standard channel. (JL) 2285 22869/3/96 (new feature) Now calling Tcl_RegisterChannel with a NULL 2287interpreter increments the refcount so that code outside any interpreter 2288can use channels that are also registered in interpreters, without worrying 2289that the channel may turn into a dangling pointer at any time. Calling 2290Tcl_UnregisterChannel with a NULL interpreter only decrements the recount 2291so that code outside any interpreter can safely declare it is no longer 2292interested in a channel. (JL) 2293 22949/4/96 (new features) Two changes to dynamic loading: 2295 - If the file name is empty in the "load" command and there is no 2296 statically loaded version of the package, a dynamically loaded 2297 version will be used if there is one. 2298 - Tcl_StaticPackage ignores redundant calls for the same package. (JO) 2299 23009/6/96 (bug fix) Platform specific procedures for manipulating files are 2301no longer macros and have been prefixed with "Tclp", such as TclpRenameFile. 2302Unix file code now handles symbolic links and other special files correctly. 2303The semantics of file copy and file rename has been changed so that if 2304a target directory exists, the source files will NOT be merged with the 2305existing files. (JH) 2306 23079/6/96 (bug fix) If standard channel is NULL, because Tcl cannot connect 2308to the standard channel, do not increment the refcount. The channel can 2309be NULL if there is for example no standard input. (JL) 2310 23119/6/96 (portability improvement) Changed parsing of backslash sequences 2312like \n to translate directly to absolute values like 0xa instead of 2313letting the compiler do the translation. This guarantees that the 2314translation is done the same everywhere. (JO) 2315 23169/9/96 (bug fix) If channel is opened and not associated with any 2317interpreter, but Tcl decides to use it as one of the standard channels, it 2318became impossible to close the channel with Tcl_Close -- instead you had 2319to call Tcl_UnregisterChannel. Fixed now so that it's safe to call 2320Tcl_Close even when Tcl is using the channel as one of the standard ones. (JL) 2321 23229/11/96 (feature change) The Tcl library is now placed in the Tcl 2323shared libraries resource. You no longer need to place the Tcl files 2324in your applications explicitly. (RJ) 2325 23269/11/96 (feature change) Extensions no longer automatically have the 2327resource fork of the extension opened for it. Instead you need to 2328use the tclMacLibrary.c file in your extension. (RJ) 2329*** POTENTIAL INCOMPATIBILITY *** 2330 23319/12/96 (bug fix) The extension loading mechanism on the Macintosh now 2332looks at the 'cfrg' resource to determine where to load the code 2333fragment from. This means FAT fragments should now work. (RJ) 2334 23359/18/96 (enhancement) The exec and open commands behave better and work in 2336more situations under Windows 3.X. Documentation describes what is still 2337lacking. (CS) 2338 23399/19/96 (bug fix) Fixed a panic which would occur if you delete a 2340non-existent alias before any aliases are created. Now instead correctly 2341returns an error that the alias is not found. (JL) 2342 23439/19/96 (bug fix) Slave interpreters could rename aliases and they would 2344not get deleted when the alias was being redefined. This led to dangling 2345pointers etc. (JL) 2346 23479/19/96 (bug fix) Fixed a panic where a hash table entry was being deleted 2348twice during alias management operations. (JL) 2349 23509/19/96 (bug fix) Fixed bug in event loop that could cause the input focus 2351in Tk to get confused during menu traversal, among other problems. The 2352problem was related to handling of the "marker" when its event was 2353deleted. (JO) 2354 23559/26/96 (bug fix) Windows was losing EOF on a socket if the FD_CLOSE event 2356happened to precede any left over FD_READ events. Now correctly remembers 2357seeing FD_CLOSE, so that trailing FD_READ events are not discarded if they 2358do not contain any data. This allows Tcl to correctly get a zero read and 2359notice EOF. (JL) 2360 23619/26/96 (bug fix) Was not resetting READABLE state properly on sockets 2362under Windows if the driver discarded an FD_READ event because no data was 2363present. Now correctly resets the state. (JL) 2364 23659/30/96 (bug fix) Made EOF sticky on Windows sockets, so that fileevent 2366readable will fire repeatedly until the socket is closed. Previously the 2367fileevent fired only once. This could lead to never-closed connections if 2368the Tcl script in the fileevent wasn't closing the socket immediately. (JL) 2369 237010/2/96 (new feature) Improved the package loader: 2371 - Added new variable tcl_pkgPath, which holds the default 2372 directories under which packages are normally installed (each 2373 package goes in a separate subdirectory of a directory in 2374 $tcl_pkgPath). These directories are included in auto_path by 2375 default. 2376 - Changed the package auto-loader to look for pkgIndex.tcl files 2377 not only in the auto_path directories but also in their immediate 2378 children. This should make it easier to install and uninstall 2379 packages (don't have to change auto_path or merge pkgIndex.tcl 2380 files). (JO) 2381 238210/3/96 (bug fix) Changed tclsh to look for tclshrc.tcl instead of 2383tclsh.rc on startup under Windows. This is more consistent with wish and 2384uses the right extension. (SS) 2385*** POTENTIAL INCOMPATIBILITY *** 2386 238710/8/96 (bug fix) Convertclock does not parse 24-hour times of the 2388form "hhmm" correctly when hour = 00. In the parse code, hour must be 2389>= 100 for minutes to be non-zero. Thanks to Lint LaCour for this 2390bug fix. (RJ) 2391 239210/11/96 (bug fix) Under Windows, the pid command returned the process 2393handle instead of the process id. (SS) 2394 2395----------------- Released 7.6, 10/16/96 ----------------------- 2396 239710/29/96 (bug fix) Under Windows, sockets would consume 100% CPU time after 2398the first accept(), due to a typo. (JL) 2399 240010/29/96 (bug fix) Incorrect refcount management caused standard channels 2401not to get deleted at process exit or DLL unload time, causing a memory 2402leak of upwards of 20K each time. (JL) 2403 240411/7/96 (bug fix) Auto-exec didn't work on file names that contained 2405spaces. (JO) 2406 240711/8/96 (bug fix) Fixed core dump that would occur if more than one call 2408to Tcl_DeleteChannelHandler was made to delete a given channel handler. (JL) 2409 241011/8/96 (bug fix) Fixed test for return value in Tcl_Seek and Tcl_SeekCmd 2411to only treat -1 as error, instead of all negative numbers. (JL) 2412 241311/12/96 (bug fix) Do not blocking waiting for processes at the end of a 2414pipe during exit cleanup. (JL) 2415 241611/12/96 (bug fix) If we are in exit cleanup, do not close the system level 2417file descriptors 0, 1 and 2. Previously they were being closed which is 2418incorrect, in the embedded case. This led to weird behavior for programs 2419that want to interpose on I/O through the standard file descriptors (e.g. 2420Netscape Navigator). (JL) 2421 242211/15/96 (bug fix) Fixed core dump on Windows sockets due to dependency on 2423deletion order at exit. Now all socket functions check to see if sockets 2424are (still) initialized, before calling through function pointers. Before, 2425they would call and might end up calling unloaded object code. (JL) 2426 242711/15/96 (bug fix) Fixed core dump in Windows socket initialization routine 2428if sockets were not installed on the system. Before, it was not properly 2429checking the result of attempting to load the socket DLL, so it would call 2430through uninitialized function pointers. (JL) 2431 243211/15/96 (bug fix) Fixed memory leak in Windows sockets which left socket 2433DLL handle open and could hold the socket DLL in memory uneccessarily, 2434until a reboot. (JL) 2435 243612/4/96 (bug fix) Fixed bug in Macintosh socket code that could result 2437in lost data if a client was closed too soon after sending data. (RJ) 2438 243912/17/96 (bug fix) Fixed deadlock bug in Windows sockets due to losing an 2440event. This was happening because of an interaction between buffering and 2441nonblocking mode on sockets. Now switched to sockets being blocking by 2442default, so we are also no longer emulating blocking through a private 2443event loop. (JL) 2444 24451/21/97 (performance bug fix) Client TCP connections were slow to create 2446because getservbyname was always called on the port. Now this is only 2447done if Tcl_GetInt fails. (BW) 2448 24491/21/97 (configuration fix) Made it possible to override TCL_PACKAGE_PATH 2450during make. Previously it was only set during autoconf process. 2451 24521/29/97 (bug fix) Fixed some problems with the clock command that 2453impacted how dates were scaned after the year 2000. (RJ) 2454 2455----------------- Released 7.6p2, 1/31/97 ----------------------- 2456 24572/5/97 (bug fix) Fixed a bug where in CR-LF translation mode, \r bytes 2458in the input stream were not being handled correctly. (JL) 2459 24602/24/97 (bug fix) Fix bug with exec under Win32s not being able to create 2461stderr file which caused all execs to fail. Fixed temp file leak under 2462Win32s. Fixed optional parameter bug with SearchPath that only happened 2463under Win32s 1.25. (CCS) 2464 2465---------------------------------------------------------- 2466Changes for Tcl 7.6 go above this line. 2467Changes for Tcl 7.7 go below this line. 2468---------------------------------------------------------- 2469 24705/8/96 (new feature) Added Tcl_Ungets C API for putting a sequence of bytes 2471into a channel's input buffer. This can be used for "push" model channels 2472where the input is obtained via callbacks instead of by request of the 2473generic IO code. No Tcl procedure yet. (JL) 2474 247511/15/96 (new feature) Implemented hidden commands. New C APIs: 2476 Tcl_HideCommand -- hides an existing exposed command. 2477 Tcl_ExposeCommand -- exposes an existing hidden command. 2478New tcl APIs: 2479 interp invokehidden -- invokes a hidden command in a slave. 2480 interp hide -- hides an existing exposed command. 2481 interp expose -- exposes an existing hidden command. 2482 interp hidden -- returns a list of hidden commands. 2483The implementation of Safe Tcl now uses the new hidden commands facility 2484to implement the safe base, instead of deleting the commands from a safe 2485interpreter. (JL) 2486 248711/15/96 (new feature) Implemented the safe base, a mechanism for 2488installing and requesting security policies, purely in Tcl code. Overloads 2489the package command to also allow an interpreter to "require" a policy. The 2490following new library commands are provided: 2491 tcl_safeCreateInterp -- creates a slave an initializes the 2492 policy mechanism. 2493 tcl_safeInitInterp -- initializes an existing slave with the 2494 policy mechanism. 2495 tcl_safeDeleteInterp -- deletes a slave and deinitializes the 2496 policy mechanism. 2497Added a new file to the library, safeinit.tcl, to hold implementation. (JL) 2498On 7/9/97, removed the policy loading mechanism from the Safe Base. Left 2499only the Safe Base aliases dealing with auto-loading and source. (JL) 2500 250112/6/96 (new feature) Implemented Tcl_Finalize, an API that should be 2502called by a process when it is done using Tcl. This API runs all the exit 2503handlers to allow them to clean up resources etc. (JL) 2504 250512/17/96 (new feature) Add an http Tcl script package to the Tcl library. 2506This package implements the client side of HTTP/1.0; the GET, HEAD, 2507and POST requests. (BW) 2508 25091/21/97 (new feature) Added a "marktrusted" subcommand to the "interp" and 2510to the interpreter object command. It removes the "safe" mark on an 2511interpreter and disables hard-wired checks for safety in the C sources. (JL) 2512 25131/21/97 (removed feature) Removed "vwait" from set of commands available in 2514a safe interpreter. (JL) 2515 25162/11/97 (new feature, bug fix) http package. Added -accept to http_config 2517so you can set the Accept header. Added -handler option to http_get so 2518you can supply your own data handler. Also fixed POST operation to 2519set the correct MIME type on the request. (BW) 2520 2521---------------------------------------------------------- 2522Changes for Tcl 7.7 go above this line. 2523Changes for Tcl 8.0 go below this line. 2524---------------------------------------------------------- 2525 25269/17/96 (bug fix) Using "upvar" it was possible to turn an array element 2527into an array itself. Changed to disallow this; it was quirky and didn't 2528really work correctly anyway. (JO) 2529 253010/21/96 (new feature) The core of the Tcl interpreter has been replaced 2531with an on-the-fly compiler that translates Tcl scripts to bytecoded 2532instructions; a new interpreter then executes the bytecodes. The compiler 2533introduces only a few minor changes at the level of Tcl scripts. The biggest 2534changes are to expressions and lists. 2535 - A second level of substitutions is no longer done for expressions. 2536 This substantially improves their execution time. This means that 2537 the expression "$x*4" produces a different result than in the past 2538 if x is "$y+2". Fortunately, not much code depends on the old 2539 two-level semantics. Some expressions that do, such as 2540 "expr [join $list +]" can be recoded to work in Tcl8.0 by adding 2541 an eval: e.g., "eval expr [join $list +]". 2542 - Lists are now completely parsed on the first list operation to 2543 create a faster internal representation. In the past, if you had a 2544 misformed list but the erroneous part was after the point you 2545 inserted or extracted an element, then you never saw an error. 2546 In Tcl8.0 an error will be reported. This should only effect 2547 incorrect programs that took advantage of behavior of the old 2548 implementation that was not documented in the man pages. 2549Other changes to Tcl scripts are discussed in the web page at 2550http://www.scriptics.com/doc/compiler.html. (BL) 2551*** POTENTIAL INCOMPATIBILITY *** 2552 255310/21/96 (new feature) In earlier versions of Tcl, strings were used as a 2554universal representation; in Tcl 8.0 strings are replaced with Tcl_Obj 2555structures ("objects") that can hold both a string value and an internal 2556form such as a binary integer or compiled bytecodes. The new objects make it 2557possible to store information in efficient internal forms and avoid the 2558constant translations to and from strings that occurred with the old 2559interpreter. There are new many new C APIs for managing objects. Some of the 2560new library procedures for objects (such as Tcl_EvalObj) resemble existing 2561string-based procedures (such as Tcl_Eval) but take advantage of the 2562internal form stored in Tcl objects for greater speed. Other new procedures 2563manage objects and allow extension writers to define new kinds of objects. 2564See the manual entries doc/*Obj*.3 (BL) 2565 256610/24/96 (bug fix) Fixed memory leak on exit caused by some IO related 2567data structures not being deallocated on exit because their refcount was 2568artificially boosted. (JL) 2569 257010/24/96 (bug fix) Fixed core dump in Tcl_Close if called with NULL 2571Tcl_Channel. (JL) 2572 257311/19/96 (new feature) Added library procedures for finding word 2574breaks in strings in a platform specific manner. See the library.n 2575manual entry for more information. (SS) 2576 257711/22/96 (feature improvements) Added support for different levels of 2578tracing during bytecode compilation and execution. This should help in 2579tracking down suspected problems with the compiler or with converting 2580existing code to use Tcl8.0. Two global Tcl variables, traceCompile 2581and traceExec, can be set to generate tracing information in stdout: 2582 - traceCompile: 0 no tracing (default) 2583 1 trace compilations of top level commands and procs 2584 2 trace and display instructions for all compilations 2585 - traceExec: 0 no tracing 2586 1 trace only calls to Tcl procs 2587 2 trace invocations of all commands including procs 2588 3 detailed trace showing the result of each instruction 2589traceExec >= 2 provides a one line summary of each called command and 2590its arguments. Commands that have been "compiled away" such as set are 2591not shown. (BL) 2592 259311/30/96 (bug fix) The command "info nameofexecutable" could sometimes 2594return the name of a directory. (JO) 2595 259611/30/96 (feature improvements) Changed the code in library/init.tcl 2597that reads in pkgIndex.tcl so that (a) it reads the files from child 2598directories before those in the parent, so that the parent gets 2599precedence, and (b) it doesn't quit if there is an error in a 2600pkgIndex.tcl file; instead, it prints an error message on standard 2601error and continues. (JO) 2602 260310/5/96 (feature improvements) Partial implementation of binary string 2604support: the ability for Tcl string values to contain embedded null bytes. 2605Changed the Tcl object-based APIs to take a byte pointer and length pair 2606instead of a null-terminated C string. Modified several object type managers 2607to support binary strings but not, for example, the list type manager. 2608Existing string-based C APIs are unchanged and will truncate binary 2609strings. Compiled scripts containing nulls are also truncated. (BL) 2610 261112/12/96 (feature change) Removed the commands "cp", "mkdir", "mv", 2612"rm", and "rmdir" from the Macintosh version of Tcl. They were never 2613officially supported and their functionality is now available via 2614the file command. (RJ) 2615 2616----------------- Released 8.0a1, 12/20/96 ----------------------- 2617 26181/7/97 (bug fix) Under Windows, "file stat c:" was returning error instead 2619of stat for current dir on c: drive. 2620 26211/10/97 (new feature) Added Tcl_GetIndexFromObj procedure for quick 2622lookups of keyword arguments. (JO) 2623 26241/12/97 (new feature) Serial IO channel drivers for Windows and Unix, 2625available by using Tcl open command to open pseudo-files like "com1:" or 2626"/dev/ttya". New option to Tcl fconfigure command for serial files: 2627"-mode baud,parity,data,stop" to specify baud rate, parity, data bits, and 2628stop bits. Serial IO is not yet available on Mac. 2629 26301/16/97 (feature change) Restored the Tcl7.x "two level substitution 2631semantics" for expressions. Expressions not enclosed in braces are 2632implemented, in general, by calling the expr command procedure 2633(Tcl_ExprObjCmd) at runtime after the Tcl interpreter has already done a 2634first round of substitutions. This is slow (about Tcl7.x speed) because new 2635code for the expression is generally compiled each time. However, if the 2636expression has only variable substitutions (and not command substitutions), 2637"optimistic" fast code is generated inline. This inline code will fail if a 2638second round of substitutions is needed (i.e., if the value of a substituted 2639variable itself requires more substitutions). The optimistic code will 2640catch the error and back off to call the slower but guaranteed correct 2641expr command procedure. (BL) 2642 26431/16/97 (feature improvements) Added Tcl_ExprLongObj and Tcl_ExprDoubleObj 2644to round out expression-related procedures. (BL) 2645 26461/16/97 (feature change) Under Windows, at startup the environment variables 2647"path", "comspec", and "windir" in any capitalization are converted 2648automatically to upper case. The PATH variable could be spelled as path, 2649Path, PaTh, etc. and it makes programming rather annoying. All other 2650environment variables are left alone. (CS) 2651 26521/20/97 (new features) Rewrote the "lsort" command: 2653 - The new version is based on reentrant merge sort code provided 2654 by Richard Hipp, so it eliminates the reentrancy and stability 2655 problems with the old qsort-based implementation. 2656 - The new version supports a -dictionary option for sorting, and 2657 it also supports a -index option for sorting lists using one 2658 element for comparison. 2659 - The new version is an object command, so it works well with the 2660 Tcl compiler, especially in conjunction with the new -index 2661 option. When the -index option is used, this version of lsort 2662 is more than 100 times faster than the Tcl 7.6 lsort, which had 2663 to use the -command option to get the same effect. (JO) 2664 26651/20/97 (feature improvements) Added the improved debugging support for Tcl 2666objects prototyped by Karl Lehenbauer <karl@hammer1.ops.NeoSoft.com>. 2667If TCL_MEM_DEBUG is defined, the object creation calls use Tcl_DbCkalloc 2668directly in order to record the caller's source file name and line 2669number. (BL) 2670 26711/21/97 (removed feature) Desupported the tcl_precision variable: if 2672set, it is ignored. Tcl now uses the full 17 digits of precision when 2673converting real numbers to strings (with the new object system real 2674numbers are rarely converted to strings so there is no efficiency 2675disadvantage to printing all 17 digits; the new scheme improves 2676accuracy and simplifies several APIs). (JO) 2677*** POTENTIAL INCOMPATIBILITY *** 2678 26791/21/97 (feature change) Removed the "interp" argument for the 2680procedures Tcl_GetStringFromObj, Tcl_StringObjAppend, and 2681Tcl_StringObjAppendObj. Also removed the "interp" argument for 2682the updateStringProc procedure in Tcl_ObjType structures. With 2683the tcl_precision changes above, these are no longer needed. (JO) 2684*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a1, but not with Tcl 7.6 *** 2685 26861/22/97 (bug fix) Fixed http.tcl so that http_reset does not result in 2687an extra call to the command callback. In addition, if the transaction 2688gets a premature eof, the state(status) is "eof", not "ok". (BW) 2689 2690----------------- Released 8.0a2, 1/24/97 ----------------------- 2691 26921/29/97 (feature change) Changed how two digit years are parsed in the 2693clock command. The old interface just added 1900 which will seem 2694broken by the year 2000. The new scheme follows the POSIX standard 2695and treats dates 70-99 as 1970-1999 and dates 00-38 as 2000-2038. All 2696other two digit dates are undefined. (RJ) 2697*** POTENTIAL INCOMPATIBILITY *** 2698 26992/4/97 (bug fix) Fixed bug in clock code that dealt with relative 2700dates. Using the relative month code you could get an invalid date 2701because it jumped into a non-existant day. (For example, Jan 31 2702to Feb 31.) The code now will return the last valid day of the 2703month in these situations. Thanks to Hume Smith for sending in 2704this bug fix. (RJ) 2705 27062/10/97 (feature change) Eliminated Tcl_StringObjAppend and 2707Tcl_StringObjAppendObj procedures, replaced them with Tcl_AppendToObj 2708and Tcl_AppendStringsToObj procedures. Added new procedure 2709Tcl_SetObjLength. (JO) 2710*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2, but not with Tcl 7.6 *** 2711 27122/10/97 (new feature) Added Tcl_WrongNumArgs procedure for generating 2713error messages about incorrect number of arguments. (JO) 2714 27152/11/97 (new feature, bug fix) http package. Added -accept to http_config 2716so you can set the Accept header. Added -handler option to http_get so 2717you can supply your own data handler. Also fixed POST operation to 2718set the correct MIME type on the request. (BW) 2719 27202/22/97 (bug fix) Fixed bug that caused $tcl_platform(osVersion) to be 2721computed incorrectly under AIX. (JO) 2722 27232/25/97 (new feature, feature change) Added support for both int and long 2724integer objects. Added Tcl_NewLongObj/Tcl_GetLongFromObj/Tcl_SetLongFromObj 2725procedures and renamed the Tcl_Obj internalRep intValue member to 2726longValue. Tcl_GetIntFromObj now checks for integer values too large to 2727represent as non-long integers. Changed Tcl_GetAllObjTypes to 2728Tcl_AppendAllObjTypes. (BL) 2729 27303/5/97 (new feature) Added new Tcl_SetListObj procedure to round out 2731collection of procedures that set the type and value of existing Tcl 2732objects. (BL) 2733 27343/6/97 (new feature) Added -global flag for interp invokehidden. (JL) 2735 27363/6/97 (new feature, feature change) Added isNativeObjectProc field to the 2737Tcl_CmdInfo structure to indicate (when 1) if the command has an 2738object-based command procedure. Removed the nameLength arg from 2739Tcl_CreateObjCommand since command names can't contain null characters. (BL) 2740 27413/6/97 (bug fix) Fixed bug in "unknown" procedure that caused auto- 2742loading to fail on commands whose names begin with digits. (JO) 2743 27443/7/97 (bug fix) Auto-loading now works in Safe Base. Safe interpreters 2745only accept the Version 2 and onwards tclIndex files. (JL) 2746 27473/13/97 (bug fix) Fixed core dump due to interaction between aliases and 2748hidden commands. Bug found by Lindsay Marshall. (JL) 2749 27503/14/97 (bug fix) Fixed mac bugs relating to time. The -gmt option 2751now adjusts the time in the correct direction. (Thanks to Ed Hume for 2752reporting a fix to this problem.) Also fixed file "mtime" etc. to 2753return times from GMT rather than local time zone. (RJ) 2754 27553/18/97 (feature change) Declaration of objv in Tcl_ObjCmdProc function 2756changed from "Tcl_Obj *objv[]" to "Tcl_Obj *CONST objv[]". All Tcl object 2757commands changed to use new declaration of objv. Naive translation of 2758string-based command procs to object-based command procs could very easily 2759have yielded code where the contents of the objv array were changed. This 2760is not a problem with string-based command procs, but doing something as 2761simple as objv[2] = objv[3] would corrupt the runtime stack and cause Tcl to 2762crash. Introduced CONST in declaration of objv so that attempted assignment 2763of new pointer values to elements of the objv array will be caught by the 2764compiler. (CCS) 2765*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 *** 2766 27673/19/97 (bug fix) Fixed panic due to object sharing. The root cause was 2768that old code was using Tcl_ResetResult instead of Tcl_ResetObjResult. (JL) 2769 27703/20/97 (new feature) Added a new subcommand for the file 2771command. file attributes filename can give a list of platform-specific 2772options (such as file/creator type on the Mac, permissions on Unix) or 2773set the values of them. Added a new subcommand for the file 2774command. file nativename name gives back the platform-specific form 2775for the file. This is useful when the filename is needed to pass to 2776the OS, such as exec under Windows 95 or AppleScript on the Mac. For 2777more info, see file.n. (SRP) 2778 27793/24/97 (removed feature) Removed the tcl_safePolicyPath procedure. Now 2780the policy path is computed from the auto_path by appending the directory 2781'policies' to each element. Also fixed several bugs in automatic tracking 2782of auto_path by computed policy path. (JL) 2783*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 *** 2784 27854/8/97 (new feature) If the variable whose name is passed to lappend doesn't 2786already exist, and there are no value arguments, lappend now creates the 2787variable with an empty value instead of returning an error. Change suggested 2788by Tom Tromey. (BL) 2789 27904/9/97 (feature change) Changed the name of the TCL_PART1_NOT_PARSED flag to 2791TCL_PARSE_PART1. (BL) 2792*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 *** 2793 27944/10/97 (bug fixes) Fixed various compilation-related bugs: 2795 - "UpdateStringOfCmdName should never be invoked" panic. 2796 - Bad code generated for expressions not in {}'s inside catch commands. 2797 - Segmentation fault in some command procedures when two argument 2798 object pointers refer to the same object. 2799 - Second level of substitutions were never done for expressions not 2800 in {}'s that consist of a single variable reference: e.g., 2801 "set x 27; set bool {$x}; if $bool {puts foo}" would fail with error. 2802 - Bad code generated when code storage was grown while compiling some 2803 expressions: ones with compilation errors or consisting of only a 2804 variable reference. 2805 - Bugs involving multiple interpreters: wasn't checking that a 2806 procedure's code was compiled for the same interpreter as the one 2807 executing it, and didn't invalidate code on hidden-exposed command 2808 transitions. 2809 - "Bad stack top" panic when executing scripts that require a huge 2810 amount of stack space. 2811 - Incorrect sharing of code for procedure bodies, and procedure code 2812 deallocated before last execution of the procedure finished. 2813 - Fixed compilation of expression words in quotes. For example, 2814 if "0 < 3" {puts foo}. 2815 - Fixed performance bug in array set command with large assignments. 2816 - Tcl_SetObjLength segmentation fault setting length of empty object. 2817 - If Tcl_SetObjectResult was passed the same object as the interpreter's 2818 result object, it freed the object instead of doing nothing. Bug fix 2819 by Michael J. McLennan. 2820 - Tcl_ListObjAppendList inserted elements from the wrong list. Bug fix 2821 by Michael J. McLennan. 2822 - Segmentation fault if empty variable list was specified in a foreach 2823 command. Bug fix by Jan Nijtmans. 2824 - NULL command name was always passed to Tcl_CreateTrace callback 2825 procedure. 2826 - Wrong string representation generated for the value LONG_MIN. 2827 For example, expr 1<<31 printed incorrectly on a 32 bit machine. 2828 - "set {a($x)} 1" stored value in wrong variable. 2829 - Tcl_GetBooleanFromObj was not checking for garbage after a numeric 2830 value. 2831 - Garbled "bad operand type" error message when evaluating expressions 2832 not surrounded by {}'s. (BL) 2833 28344/16/97 (new feature) The expr command now has the "rand()" and 2835"srand()" functions for getting random numbers in expr. (RJ) 2836 28374/23/97 (bug fix) Fixed core dump in bgerror when the error handler command 2838deletes the current interpreter. Found by Juergen Schoenwald. (JL) 2839 28404/23/97 (feature change) The notifier interfaces have been redesigned 2841to make embedding in applications with external event loops possible. 2842A number of interfaces in the notifier and the channel drivers have 2843changed. Refer to the Notifier.3 and CrtChannel.3 manual entries for 2844more details. (SS) 2845*** POTENTIAL INCOMPATIBILITY *** 2846 28474/23/97 (removed feature) The Tcl_File interfaces have been removed. 2848The Tcl_CreateFileHandler/Tcl_DeleteFileHandler interfaces now take 2849Unix fd's and are only supported on the Unix platform. 2850Tcl_GetChannelFile has been replaced with Tcl_GetChannelHandle. 2851Tcl_MakeFileChannel now takes a platform specific file handle. (SS) 2852*** POTENTIAL INCOMPATIBILITY *** 2853 28544/23/97 (removed feature) The modal timeout interface has been 2855removed (Tcl_CreateModalTimeout/Tcl_DeleteModalTimeout) (SS) 2856*** POTENTIAL INCOMPATIBILITY *** 2857 28584/23/97 (feature change) Channel drivers are now required to correctly 2859implement blocking behavior when they are in blocking mode. (SS) 2860*** POTENTIAL INCOMPATIBILITY *** 2861 28624/23/97 (new feature) Added the "binary" command for manipulating 2863binary strings. Also, changed the "puts", "gets", and "read" commands 2864to preserve embedded nulls. (SS) 2865 28664/23/97 (new feature) Added tcl_platform(byteOrder) element to the 2867tcl_platform array to identify the native byte order for the current 2868host. (SS) 2869 28704/23/97 (bug fix) Fixed bug in date parsing around year boundaries. (SS) 2871 28724/24/97 (bug fix) In the process of copying a file owned by another user, 2873Tcl was changing the owner of the copy back to the owner of the original 2874file, therefore causing further file operations to fail because the current 2875user didn't own the copy anymore. The owner of the copy is now left as the 2876current user. (CCS) 2877 28784/24/97 (feature change) Under Windows, don't automatically uppercase the 2879environment variable "windir" -- it's supposed to be lower case. (CCS) 2880 28814/29/97 (new feature) Added namespace support based on a namespace 2882implementation by Michael J. McLennan of Lucent Technologies. A namespace 2883encapsulates a collection of commands and variables to ensure that they 2884won't interfere the commands and variables of other namespaces. The global 2885namespace holds all global variables and commands. Additional namespaces are 2886created with the new namespace command. The new variable command lets you 2887create Tcl variables inside a namespace. The names of Tcl variables and 2888commands may now be qualified by the name of the namespace containing them. 2889The key namespace-related commands are summarized below: 2890 - namespace ?eval? name arg ?arg...? 2891 Used to define the commands and variables in a namespace. 2892 Optionally creates the namespace. 2893 - namespace export ?-clear? ?pattern pattern...? 2894 Specifies which commands are exported from a namespace. These 2895 are the ones that can be imported into another namespace. 2896 - namespace import ?-force? ?pattern pattern...? 2897 Makes the specified commands accessible in the current namespace. 2898 - namespace current 2899 Returns the name of the current namespace. 2900 - variable name ?value? ?name ?value?...? 2901 Creates one or more namespace variables. (BTL) 2902 29035/1/97 (bug fix) Under Windows, file times were reported in GMT. Should be 2904reported in local time. (CCS) 2905 29065/2/97 (feature change) Changed the name of the two Tcl variables used for 2907tracing bytecode compilation and execution to tcl_traceCompile and 2908tcl_traceExec respectively. These variables are now documented in the 2909tclvars man page. (BL) 2910 29115/5/97 (new feature) Support "end" as the index for "lsort -index". (BW) 2912 29135/5/97 (bug fixes) Cleaned up the way the http package resets connections (BW) 2914 29155/8/97 (feature change) Newly created Tcl objects now have a reference count 2916of zero instead of one. This simplifies C code that stores newly created 2917objects in Tcl variables or in data structures such as list objects. That C 2918code must increment the new object's reference count since the variable or 2919data structure will contain a long-term reference to the object. Formerly, 2920when new objects started out with reference count one, it was necessary to 2921decrement the new object's reference count after the store to make sure it 2922was left with the correct value; this is no longer necessary. (BL) 2923 29245/9/97 (new feature) Added the Tcl_GetsObj interface that takes an 2925object reference instead of a dynamic string (as in Tcl_Gets). (SS) 2926 29275/12/97 (new feature) Added Tcl_CreateAliasObj and Tcl_GetAliasObj C APIs 2928to allow an alias command to be created with a vector of Tcl_Obj structures 2929and to get the vector back later. (JL) 2930 29315/12/97 (feature change) Changed Tcl_ExposeCommand and Tcl_HideCommand to 2932leave an object result instead of a string result. (JL) 2933 29345/14/97 (feature change) Improved the handling of the interpreter result. 2935This is still either an object or a string, but the two values are now kept 2936consistent unless some C code reads or writes interp->result directly. See 2937the SetResult man page for details. Removed the Tcl_ResetObjResult 2938procedure. (BL) 2939*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 *** 2940 29415/16/97 (new feature) Added "fcopy" command to move data between 2942channels. Refer to the manual page for more information. Removed the 2943"unsupported0" command since it is obsolete now. (SS) 2944 29455/16/97 (new feature) Added Tcl_GetStringResult procedure to allow programs 2946to get an interpreter's result as a string. If the result was previously set 2947to an object, this procedure will convert the object to a string. Use of 2948Tcl_GetStringResult is intended to replace direct access to interp->result, 2949which is not safe. (BL) 2950 29515/20/97 (new features) Fixed "fcopy" to return the number of bytes 2952transferred in the blocking case. Updated the http package to use 2953fcopy instead of unsupported0. Added -timeout and -handler options to 2954http_get. http_get is now blocking by default. It is only non-blocking 2955if you supply a -command argument. (BW) 2956 29575/22/97 (bug fix) Fixed several bugs in the "lsort" command having to do 2958with the -dictionary option and the presence of numbers embedded in the 2959strings. (JO) 2960 2961----------------- Released 8.0b1, 5/27/97 ----------------------- 2962 29636/2/97 (bug fix) Fixed bug in startup code that caused a problem in 2964finding the library files when they are installed in a directory 2965containing a space in the name. (SS) 2966 29676/2/97 (bug fix) Fixed bug in Unix notifier where the select mask was 2968not being cleared under some circumstances. (SS) 2969 29706/4/97 (bug fix) Fixed bug that prevented creation of Tk widgets in 2971namespaces. Tcl_CreateObjCommand and Tcl_CreateCommand now always create 2972commands in the global namespace unless the command names are qualified. Tcl 2973procedures continue to be created in the current namespace by default. (BL) 2974 29756/6/97 (new features) Added new namespace API procedures 2976Tcl_AppendExportList and Tcl_Export to allow C code to get and set a 2977namespace's export list. (BL) 2978 29796/11/97 (new feature) Added Tcl_ConcatObj. This object-based routine 2980parallels the string-based routine Tcl_Concat. (SRP) 2981 29826/11/97 (new feature) Added Tcl_SetObjErrorCode. This object-based 2983routines parallels the string-based routine Tcl_SetErrorCode. (SRP) 2984 29856/12/97 (bug fix) Fix the "unknown" procedure so that wish under Windows 2986will exec an external program, instead of always complaining "console1 not 2987opened for writing". (CCS) 2988 29896/12/97 (bug fix) Fixed core dump experienced by the following simple 2990script: 2991 interp create x 2992 x alias exec exec 2993 interp delete x 2994This panic was caused by not installing the new CmdDeleteProc when exec 2995got redefined by the alias creation step. Reported by Lindsay Marshal (JL) 2996 29976/13/97 (new features) Tcl objects newly created by Tcl_NewObj now have a 2998string representation that points to a shared heap string of length 1. (They 2999used to have NULL bytes and typePtr fields. This was treated as a special 3000case to indicate an empty string, but made type manager implementations 3001complex and error prone.) The new procedure Tcl_InvalidateStringRep is used 3002to mark an object's string representation invalid and to free any storage 3003associated with the old string representation. (BL) 3004*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 *** 3005 30066/16/97 (bug fix) Tcl_ScanCountedElement could leave braces unmatched 3007if the string ended with a backslash. (JO) 3008 30096/17/97 (bug fix) Fixed channel event bug where readable events would be 3010lost during recursive events loops if the input buffers contained 3011data. (SS) 3012 30136/17/97 (bug fix) Fixed bug in Windows socket code that didn't 3014reenable read events in the case where an external entity is also 3015reading from the socket. (SS) 3016 30176/18/97 (bug fix) Changed initial setting of the notifier service mode 3018to TCL_SERVICE_NONE to avoid unexpected event handling during 3019initialization. (SS) 3020 30216/19/97 (bug fix/feature change) The command callback to fcopy is now 3022called in case of errors during the background copy. This adds a second, 3023optional argument to the callback that is the error string. The callback 3024in case of errors is required for proper cleanup by the user of fcopy. (BW) 3025*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** 3026 30276/19/97 (bug fix) Fixed a panic due to the following four line script: 3028 interp create x 3029 x alias foo bar 3030 x eval rename foo blotz 3031 x alias foo {} 3032The problem was that the interp code was not using the actual current name 3033of the command to be deleted as a result of un-aliasing foo. (JL) 3034 30356/19/97 (feature change) Pass interp down to the ChannelOption and 3036driver specific calls so system errors can be differentiated from syntax 3037ones. Changed Tcl_DriverGetOptionProc type. Affects Tcl_GetChannelOption, 3038TcpGetOptionProc, TtyGetOptionProc, etc. (DL) 3039*** POTENTIAL INCOMPATIBILITY *** 3040 30416/19/97 (new feature) Added Tcl_BadChannelOption for use by by driver 3042specific option procedures (Set and Get) to return a complete and 3043meaningful error message. (DL) 3044 30456/19/97 (bug fixes) If a system call error occurs while doing an 3046fconfigure on tcp or tty/com channel: return the appropriate error 3047message (instead of the syntax error one or none). (Fixed for Unix and 3048most of the Win and Mac drivers). (DL) 3049 30506/20/97 (feature change) Eval is no longer assumed as the subcommand name 3051in namespace commands: you must now write "namespace eval nsName {...}". 3052Abbreviations of namespace subcommand names are now allowed. (BL) 3053*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 *** 3054 30556/20/97 (feature change) Changed the errorInfo traceback message for 3056compilation errors from "invoked from within" to "while compiling". (BL) 3057 30586/20/97 (bug fixes) Fixed various compilation-related bugs: 3059 - "UpdateStringOfCmdName should never be called" and 3060 "UpdateStringOfByteCode should never be called" panics. 3061 - Segfault in TclObjInterpProc getting procedure name after evaluation 3062 stack is reallocated (grown). 3063 - Could not use ":" at end of variable and command names. 3064 - Bad code generated for while and for commands with test expressions 3065 enclosed in quotes: e.g., "set i 0; while "$i > 5" {}". 3066 - Command trace procedures would crash if they did a Tcl_EvalObj that 3067 reallocated the evaluation stack. 3068 - Break and continue commands did not reset the interpreter result. 3069 - The Tcl_ExprXXX routines, both string- or object-based, always 3070 modified the interpreter result even if there was no error. 3071 - The argument parsing procedure used by several compile procedures 3072 always treated "]" as end of a command: e.g., "set a ]" would fail. 3073 - Changed errorInfo traceback message for compilation errors from 3074 "invoked from within" to "while compiling". 3075 - Problem initializing Tcl object managers during interpreter creation. 3076 - Added check and error message if formal parameter to a procedure is 3077 an array element. (BL) 3078 30796/23/97 (new feature) Added "registry" package to allow manipulation 3080of the Windows system registry. See manual entry for details. (SS) 3081 30826/24/97 (feature change) Converted http to a package and added the 3083http1.0 subdirectory of the Tcl script library. This means you have 3084to do a "package require http" to use this, as advertised in the man page. (BW) 3085*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** 3086 30876/24/97 (bug fix) Ensure that Tcl_Set/GetVar C APIs, when called without 3088TCL_LEAVE_ERR_MSG, don't touch the interp result. (DL) 3089 30906/26/97 (feature change) Changed name of Tcl_ExprStringObj to 3091Tcl_ExprObj. (BL) 3092*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** 3093 3094----------------- Released 8.0b2, 6/30/97 ----------------------- 3095 30967/1/97 (new feature) TCL_BUILD_SHARED flag set in tclConfig.sh 3097when Tcl has been built with --enable-shared. A new tclLibObjs 3098make target, echoing the list of the .o's needed to build a tcl 3099library, is now provided. (DL) 3100 31017/1/97 (feature change) compat/getcwd.c removed and changed the 3102only place where getcwd is used so a new USEGETWD flag selects 3103the use of the replacement "getwd". Adding this flag is recommended 3104for SunOS 4 (because getcwd on SunOS 4 uses a pipe to pwd(1)!). (DL) 3105 31067/7/97 (feature change) The split command now supports binary data (i.e., 3107null characters in strings). (BL) 3108 31097/7/97 (bug fix) string first returned the wrong result if the first 3110argument string was empty. (BL) 3111 31127/8/97 (bug fix) Fixed core dump in fcopy that could occur when a command 3113callback was supplied and an error or eof condition caused no background 3114activity. A refcount bug triggered a panic in Tcl_ListObjAppendElement. (BW) 3115 31167/8/97 (bug fix) Relaxed the pattern matching on http_get so you do not 3117need a trailing path component. You can now get away with just 3118http_get www.scriptics.com (BW) 3119 31207/9/97 (bug fix) Creating anonymous interpreters no longer smashes existing 3121commands with names similar to the generated name. Previously creating an 3122anonymous interpreter could smash an existing command, now it skips until 3123it finds a command name that isn't being used. (JL) 3124 31257/9/97 (feature change) Removed the policy management mechanism from the 3126Safe Base; left the aliases to source and load modules, and to do a limited 3127form of the "file" command. See entry of 11/15/96. (JL) 3128 31297/9/97 (bug fixes) Fixed various compilation-related bugs: 3130 - Line numbers in errorInfo now are the same as those in Tcl7.6 unless 3131there are compilation errors. Compilation error messages now include the 3132entire command in error. 3133 - Trailing ::s after namespace names weren't being ignored. 3134 - Could not refer to an namespace variable with an empty name using a 3135name of the form "n::". (BL) 3136 31377/9/97 (bug fix) Fixed bug in Tcl_Export that prevented you from exporting 3138from other than the current namespace. (BL) 3139 31407/9/97 (bug fix) env.test was removing env var needed for proper finding 3141of libraries in child process. (DL) 3142 31437/10/97 (bug fixes/new feature) Cleanup in Tcl_MakeSafe. Less information 3144is leaked to safe interps. Error message fixes for interp sub commands. 3145Likewise changes in safealias.tcl; tcl_safeCreateInterp can now be called 3146without argument to generate the slave name (like in interp create). (DL) 3147 31487/10/97 (bug fixes) Bytecode compiler now generates more detailed 3149command location information: subcommands as well as commands now have 3150location information. This means command trace procedures now get the 3151correct source string for each command in their command parameter. (BL) 3152 31537/22/97 (bug fixes) Performance improvement in Safe interpreters 3154handling. Added new mask value to (tclInt.h) Interp.flags record. (DL) 3155 31567/22/97 (bug fix) Fixed panic in 'interp target {} foo'. This bug 3157was present since Tcl 7.6. (JL) 3158 31597/22/97 (bug fix) Fixed bug in compilation of procedures in namespaces: the 3160procedure's namespace must be used to look up compile procedures, not the 3161current namespace. (BL) 3162 31637/22/97 (bug fix) Use of the -channel option of http_get was not setting 3164the end of line translations mode on the channel, so copying binary data 3165with the -channel option was corrupting the result on non-unix platforms. (BW) 3166 31677/22/97 (bug fixes) file commands and ~user (seg fault and other 3168improper returns). (DL) 3169 31707/23/97 (feature change) Reenabled "vwait" in Safe Base. (JL) 3171 31727/23/97 (bug fixes) Fixed two bugs involving read traces on array variables 3173in procedures: trace procedures were sometimes not called, and reading 3174nonexistant array elements didn't create undefined element variables that 3175could later be defined by trace procedures. (BL) 3176 31777/24/97 (bug fix) Windows memory allocation performance was 3178superlinear in some cases. Made the Mac allocator generic and changed 3179both the Mac and Windows platforms to use the new allocator instead of 3180malloc and free. (SS) 3181 31827/24/97 - 8/12/97 (bug fixes/change of features) Completely revamped safe 3183sourcing/loading (see safe.n) to hide pathnames, use virtual 3184paths tokens instead, improved security in several respects and made it 3185more tunable. Multi level interp loading can work too now. Package auto 3186loading now works in safe interps as long as the package directory is in 3187the auto_path (no deep crawling allowed in safe interps). (DL) 3188*** POTENTIAL INCOMPATIBILITY with previous alpha and beta releases *** 3189 31907/24/97 (bug fixes) Made Tcl_SetVar* and Tcl_NewString* treat a NULL value 3191as an empty string. (This fixes hairy crash case where you would crash 3192because load command for other interps assumed presence of 3193errorInfo...). (DL) 3194 31957/28/97 (bug fix) Fixed pkg_mkIndex to understand namespaces. It will 3196use the export list of a namespace and create auto_index entries for 3197all export commands. Those names are in their fully qualified form in the 3198auto_index. Therefore, I tweaked unknown to try both $cmd and ::$cmd. 3199Also fixed pkg_mkIndex so you can have "package require" commands inside 3200your packages. These commands are ignored, which is mostly ok except 3201when you must load another package before loading yours because of 3202linking dependencies. (BW) 3203 32047/28/97 (bug fix) A variable created by the variable command now persists 3205until the namespace is destroyed or the variable is unset. This is true even 3206if the variable has not been initialized; these variables used to be 3207destroyed if an error occurred when accessing them. In addition, the "info 3208vars" command lists uninitialized namespace variables, while the "info 3209exists" command returns 0 for them. (BL) 3210 32117/29/97 (feature change) Changed the http package to use the ::http 3212namespace. http_get renamed to http::geturl, http_config renamed to 3213http::config, http_formatQuery renamed to http::formatQuery. 3214It now provides the 2.0 version of the package. 3215The 1.0 version is still available with the old names. 3216*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b2 but not with Tcl 7.6 *** 3217 32187/29/97 (bug fix, new feature) Tcl_Main now uses Tcl objects internally to 3219preserve NULLs in commands and command output. Added new API procedure 3220Tcl_RecordAndEvalObj that resembles Tcl_RecordAndEval but takes an object 3221containing a command. (BL) 3222 32237/30/97 (bug fix) Tcl freed strings in the environ array even if it 3224did not allocate them. (SS) 3225 32267/30/97 (bug fix) If a procedure is renamed into a different namespace, it 3227now executes in the context of that namespace. (BL) 3228 32297/30/97 (bug fix) Prevent renaming of commands into and from namespaces as 3230part of hiding them. (JL) 3231 32327/31/97 (feature change) Moved the history command from C to tcl. 3233This uses the ::history namespace. The "words" and "substitute" options 3234are no longer supported. In addition, the "keep" option without a value 3235returns the current keep limit. There is a new "clear" option. 3236The unknown command now supports !! again. (BW) 3237*** POTENTIAL INCOMPATIBILTY *** 3238 32397/30/97 (bug fix) Made sure that a slave can not fool the master into 3240hiding the wrong command. Made sure we don't crash in hiding + namespaces 3241issues. (DL) 3242 32438/4/97 (bug fix) Concat, eval, uplevel, and similar commands were 3244incorrectly trimming trailing space characters from their arguments 3245even when the space characters were preceded by a backslash. (JO) 3246 32478/4/97 (bug fix) Removed the hard link between bgerror and tkerror. 3248Only bgerror is supported in tcl core. Tk will still look for a 3249tkerror but using regular tcl code for that feature. (DL) 3250*** POTENTIAL INCOMPATIBILTY with code relying on the hard link *** 3251 32528/6/97 (bug fix) Reduced size required for compiled bytecodes by using a 3253more compact encoding for the command pc-to-source map. (BL) 3254 32558/6/97 (new feature) Added support for additional compilation and execution 3256statistics when Tcl is compiled with the TCL_COMPILE_STATS flag. (BL) 3257 32588/7/97 (bug fix) Expressions not in {}s that have a comparison operator as 3259the topmost operator must be compiled out-of-line (call the expr cmd at 3260runtime) to properly support expr's two-level substitution semantics. An 3261example is "set a 2; set b {$a}; puts [expr $b == 2]". (BL) 3262 32638/11/97 (bug fix) The catch command would sometimes crash if a variable name 3264was given and the bytecode evaluation stack was grown when executing the 3265argument script. (BL) 3266 32678/12/97 (feature change) Reinstated the variable tcl_precision to control 3268the number of digits used when floating-point values are converted to 3269strings, with default of 12 digits. However, had to make tcl_precision 3270shared among all interpreters (except that safe interpreters can't 3271modify it). This makes the Tcl 8.0 behavior almost identical to 7.6 3272except that the default precision is 12 instead of 6. (JO) 3273*** POTENTIAL INCOMPATIBILITY *** 3274 3275----------------- Released 8.0, 8/18/97 ----------------------- 3276 32778/19/97 (bug fix) Minimal fix for glob -nocomplain bugs: 3278"glob -nocomplain unreadableDir/*" was generating an anonymous 3279error. More in depth fixes will come with 8.1. (DL). 3280 32818/20/97 (bug fix) Removed check for FLT_MIN in binary command so 3282underflow conditions are handled by the compiler automatic 3283conversions. (SS) 3284 32858/20/97 (bug fixes) Fixed several compilation-related bugs: 3286 - Array cmd wasn't detecting arrays that, while compiled, do not yet 3287 exist (e.g., are marked undefined since they haven't been assigned 3288 to yet). 3289 - The GetToken procedure in tclCompExpr.c wasn't recognizing properly 3290 whether an integer token was invalid. For example, "0x$" is not 3291 a valid integer. 3292 - Performance bug in TclExecuteByteCode: the size of its stack frame 3293 was reduced by over 20% by moving errorInfo code elsewhere. 3294 - Uninitialized memory read error in tclCompile.c. (BL) 3295 32968/21/97 (bug fix) safe::interpConfigure now behave like Tk widget's 3297configure : it changes only the options you provide and you can get 3298the current value of any single option. New ?-nested boolean? and 3299?-statics boolean? for all safe::interp* commands but we still 3300accept (upward compatibility) the previously defined non valued 3301flags ?-noStatics? and ?-nestedLoadOk?. Improved the documentation. (DL). 3302 33038/22/97 (bug fix) Updated PrintDbl.3 to reflect the fact that the 3304tcl_precision variable is still used and that it is now shared by all 3305interpreters. (BL) 3306 33078/25/97 (bug fix) Fixed array access bug in IllegalExprOperandType 3308procedure in tclExecute.c: it was not properly supporting the || and && 3309operators. (BL) 3310 33118/27/97 (bug fix) In cases where a channel handler was created with an 3312empty event mask while data was still buffered in the channel, the 3313channel code would get stuck spinning on a timer that would starve 3314idle handlers. This mostly happened in Tk when reading from stdin. (SS) 3315 33169/4/97 (bug fix) Slave interps now inherit the maximum recursion limit 3317of their parent instead of starting back at the default. {nb: this still 3318does not prevent stack overflow by multi-interps recursion or aliasing} (DL) 3319 33209/11/97 (bug fix) An uninitialized variable in Tcl_WaitPid caused 3321pipes to fail to report eof properly under Windows. (SS) 3322 33239/12/97 (bug fix) "exec" was misidentifying some DOS executables as not 3324executable. (CCS) 3325 33269/14/97 (bug fix) Was using the wrong structure in sizeof operation in 3327tclUnixChan.c. (JL) 3328 33299/15/97 (bug fix) Fixed notifier to break out of do-one-event loop if 3330Tcl_WaitForEvent returns 1, so that callers of Tcl_DoOneEvent will get 3331a chance to check whether the event just handled is significant. This 3332affected mainly recursive calls to Tcl_VWaitCmd; these did not get a 3333chance to notice that the variable they were waiting for has been set 3334and thus they didn't terminate the vwait. (JL, DL, SS) 3335 33369/15/97 (bug fix) Alignment problems in "binary format" would cause a 3337crash on some platforms when formatting floating point numbers. (SS) 3338 33399/15/97 (bug fix) Fixed bug in Macintosh socket code. Now passes all 3340tests in socket.test that are not platform specific. (Thanks to Mark 3341Roseman for the pointer on the fix.) (RJ) 3342 33439/18/97 (bug fix) Fixed bug -dictionary option of lsort that could 3344cause the compare function to run off the end of an array if the 3345number only contained 0's. (Thanks to Greg Couch for the report.) (RJ) 3346 33479/18/97 (bug fix) TclFinalizeEnvironment was not cleaning up 3348properly. (DL, JI) 3349 33509/18/97 (bug fix) Fixed long-standing bug where an "array get" command 3351did not trigger traces on the array or its elements. (BL) 3352 33539/18/97 (bug fixes) Fixed compilation-related bugs: 3354 - Fixed errorInfo traceback information for toplevel coomands that 3355 contain nested commands. 3356 - In the expr command, && and || now accept boolean operands as well 3357 as numeric ones. (BL) 3358 33599/22/97 (bug fix) Fixed bug that prevented translation modes from being 3360set independently for input and output on sockets if input was "auto". (JL) 3361 33629/24/97 (bug fix) Tcl_EvalFile(3) and thus source(n) now works fine on 3363files containing NUL chars. (DL) 3364 33659/26/97 (bug fix) Fixed use of uninitialized memory in the environ array 3366that later could cause random core dumps. Applies to all platforms. (JL) 3367 33689/26/97 (bug fix) Fixed use of uninitialized memory in socket address data 3369structure under some circumstances. This could cause random core dumps. 3370This applies only to Unix. (JL) 3371 33729/26/97 (bug fix) Opening files on PC-NFS volumes would cause a hang 3373until the system timed after the file was closed. (SS) 3374 337510/6/97 (bug fix) The join(n) command, though objectified, was loosing 3376NULs in the joinString and in list elements after the 2nd one. 3377Now you can "join $list \0" for instance. (DL) 3378 337910/9/97 (bug fix) Under windows, if env(TMP) or env(TEMP) referred to a 3380non-existent directory, exec would fail when trying to create its temporary 3381files. (CCS) 3382 338310/9/97 (bug fix) Under mac and windows, "info hostname" would crash if 3384sockets were installed but the hostname could not be determined anyhow. 3385Tcl_GetHostName() was returning NULL when it should have been returning 3386an empty string. (CCS) 3387 338810/10/97 (bug fix) "file attribute /" returned error on windows. (CCS) 3389 339010/10/97 (bug fix) Fixed the auto_load procedure to handle procedures 3391defined in namespaces better. Also fixed pgk_mkIndex so it sees procedures 3392defined in nested namespaces. Index entries are still only made for 3393exported procedures. (BW) 3394 339510/13/97 (bug fix) On unix, for files with unknown group or owner 3396attributes, querying the "file attributes" would return an error rather than 3397returning the group's or owner's id number, although tha command accepts 3398numbers when setting the file's group or owner. (CCS) 3399 340010/22/97 (bug fix) "fcopy" did not eval the callback script at the 3401global scope. (SS) 3402 340310/22/97 (bug fix) Fixed the signature of the CopyDone callback used in 3404the http package(s) so they can handle error cases properly. (BW) 3405 340610/28/97 (bug fixes) Fixed a problem where lappend would free the Tcl object 3407in a variable if a Tcl_ObjSetVar2 failed because of an error calling a trace 3408on the variable. (BL) 3409 341010/28/97 (bug fix) Changed binary scan to properly handle sign 3411extension of integers on 64-bit or larger machines. (SS) 3412 341311/3/97 (bug fixes) Fixed several bugs: 3414 - expressions such as "expr ($x)" must be compiled out-of-line 3415 (call the expr command procedure at runtime) to ensure the correct 3416 behavior when "$x" is an expression such as "5+10". 3417 - "array set a {}" now creates a new array var with an empty array 3418 value if the var didn't already exist. 3419 - "lreplace $foo end end" no longer returns an error (just an empty 3420 list) if foo is empty. 3421 - upvar will no longer create a variable in a namespace that refers 3422 to a variable in a procedure. 3423 - deleting a command trace within a command trace callback would 3424 make the code that calls traces to reference freed memory. 3425 - significantly sped up "string first" and "string last" (fix from 3426 darrel@gemstone.com). 3427 - seg fault in Tcl_NewStringObj() when a NULL is passed as the byte 3428 pointer argument and Tcl is compiled with -DTCL_MEM_DEBUG. 3429 - documentation and error msg fixes. (BL) 3430 343111/3/97 (bug fix) Fixed a number of I/O bugs related to word sizes on 343264-bit machines. (SS) 3433 343411/6/97 (bug fix) The exit code of the first process created by Tcl 3435on Windows was not properly reported due to an initialization 3436problem. (SS) 3437 3438----------------- Released 8.0p1, 11/7/97 ----------------------- 3439 344011/19/97 (bug fix) Fixed bug in linsert where it sometimes accidently 3441cleared out a shared argument list object. (BL). 3442 344311/19/97 (bug fix) Autoloading in namespaces was not working properly. 3444auto_mkindex is still not really namespace aware but most common 3445cases should now be handled properly (see init.test). (BW, DL) 3446 344711/20/97 (enhancement) Made the changes required by the new Apple 3448Universal Headers V.3.0, so that Tcl will compile with CW Pro 2. 3449 345011/24/97 (bug fix) Fixed tests in clock test suite that needed the 3451-gmt flag set. Thanks to Jan Nijtmans for reporting the problem. (RJ) 3452 3453----------------- Released 8.0p2, 11/25/97 ----------------------- 3454 345512/3/97 (bug fix/optimization) Removed uneeded and potentially dangerous 3456instances of double evaluations if "if" and "expr" statements from 3457the library files. It is recommended that unless you need a double 3458evaluation you always use "expr {...}" instead of "expr ..." and 3459"if {...} ..." instead of "if ... ...". It will also be faster 3460thanks to the byte compiler. (DL) 3461 3462---- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ---- 3463 346412/8/97 (bug fix) Need to protect the newly accepted channel in an 3465accept callback on a socket, otherwise the callback may close it and 3466cause an error, which would cause the C code to attempt to close the 3467now deleted channel. Bumping the refcount assures that the channel sticks 3468around to be really closed in this case. (JL) 3469 347012/8/97 (bug fix) Need to protect the channel in a fileevent so that it 3471is not deleted before the fileevent handler returns. (CS, JL) 3472 347312/18/97 (bug fix) In the opt argument parsing package: if the description 3474had only flags, the "too many arguments" case was not detected. The default 3475value was not used for the special "args" ending argument. (DL) 3476 34771/15/98 (improvement) Moved common part of initScript in common file. 3478Moved windows specific initialization to init.tcl so you can initialize 3479Tcl in windows without having to call Tcl_Init which is now only 3480searching for init.tcl {back ported from 8.1}. (DL) 3481 3482---- Shipped as part of the plugin as 8.0p2Plugin2, Jan 15th 98 ---- 3483 34845/27/98 (bug fix) Windows socket driver did not notice new data arriving 3485on nonblocking sockets until the event loop was entered. (SS) 3486 34875/27/98 (bug fix) Windows socket driver used FIONREAD, which is not 3488supported correctly by WinSock. (SS) 3489 34906/9/98 (bug fix) Generic channel code failed to report readable file 3491events on buffered data that was left behind by a gets or read that 3492did not consume all available data. (SS) 3493 34946/18/98 (bug fix) Compilation of loop expressions was too aggressive 3495and incorrectly inlined non-literal expressions. (SS) 3496 34976/18/98 (bug fix) "info var" and "info locals" incorrectly reported 3498the existence of compiler temporary variables. (SS) 3499 35006/18/98 (bug fix) Dictionary sorting used signed character 3501comparisons. (SS) 3502 35036/18/98 (bug fix) Compile procs corrupted the exception stack in some 3504cases. (SS) 3505 35066/18/98 (bug fix) Array set had erratic behavior when initializing a 3507variable from an empty value list. (SS) 3508 35096/18/98 (bug fix) The Windows registry package had a bad bounds check 3510that could lead to a crash. (SS) 3511 35126/18/98 (bug fix) The foreach compile proc did not correctly handle 3513non-local variable references. (SS) 3514 35156/25/98 (new features) Added name resolution hooks to support [incr Tcl]. 3516There are new internal Tcl_*Resolver* APIs to add, query and remove the hooks. 3517With this changes it should be possible to dynamically load [incr Tcl] 3518as an extension. (MM) 3519 35207/1/97 (bug fix) The commands "info args, body, default, procs" did 3521not correctly handle imported procedures. (RJ) 3522 35237/6/98 (improvement) pkg_mkIndex now implements the "package require" 3524command. This makes it possible to create index files for packages 3525that require another package and then execute code from that package in 3526their file. Previously, this would throw an error because the required 3527package had not been loaded. The -nopkgrequied flag is provided to 3528revert back to the old functionality. (EMS) 3529 35307/6/98 (improvement) back-ported the -direct flag from 8.1 into 3531pkg_mkIndex. This results in pkgIndex.tcl files that contain direct 3532source or load commands instead of tclPkgSetup commands. (EMS) 3533 35347/6/98 (improvement) made changes to the AuxData items structures to support 3535storage of compiled scripts on disk. Also some related minor changes in 3536the compilation and execution engine. (EMS) 3537 35386/4/98 (enhancement) Added new internal routines to support inserting 3539and deleting from the stat, access, and open-file-channel mechanisms. 3540TclAccessInsertProc, TclStatInsertProc, & TclOpenFileChannelInsertProc 3541insert pointers to such routines; TclAccessDeleteProc, TclStatDeleteProc, 3542& TclOpenFileChannelDeleteProc delete pointers to such routines. See 3543the file generic/tclIOUtils.c for more details. (SKS) 3544 35457/1/98 (enhancement) Added a new internal C variable 3546tclPreInitScript. This is a pointer to a string that may hold an 3547initialization script; If this pointer is non-NULL it is evaluated in 3548Tcl_Init() prior to the built-in initialization script defined in the 3549file generic/tclInitScript.h. (SKS) 3550 35517/6/98 (bug fix) Removed dead code in PlatformInitExitHandler so that 3552the TCL_LIBRARY value can be safely patched in binaries. (BW) 3553 35547/24/98 (enhancement) Incorporated a new version of auto_mkindex that 3555can support the [incr Tcl] class structures. This version will index 3556all procedures in a source file, not just those where "proc" starts 3557at the beginning of the line. If you want the old behavior, use the 3558auto_mkindex_old procedure. (MM) 3559 35607/24/98 (feature change) Changed the Windows registry key to be 3561HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, and to store the path 3562in the default value instead of "Root". Also, this key can be 3563specified at compile time in case Tcl is being used in a different 3564context where it needs an alternate library path from the standard Tcl 3565installation. (SS) 3566 35677/24/98 (feature change) Changed the search order for init.tcl. The 3568tcl_library variable can now be set before calling Tcl_Init to avoid 3569doing any searches. If it isn't set, then Tcl checks 3570env(TCL_LIBRARY), the static value set at compile time, an install 3571directory relative to the executable, a source directory relative to 3572the executable, and a tcl directory relative to the source heirarchy 3573containing the executable. See the comment at the top of 3574generic/tclInitScript.h for more details. (SS) 3575 35767/27/98 (config change) Changed the use of the DBGX flag in configure.in 3577and the makefile to be TCL_DBGX. Users of tclConfig.sh may need to pass 3578this through their configure files with AC_SUBST. (BW) 3579 3580729/98 (bug fix) Changed [info body] to return a copy of the body of a 3581compiled procedure instead of the body itself, to avoid invalidation 3582of the internal rep and loss of the byte-codes. (EMS) 3583 35848/5/98 (bug fix) The platform init code could walk off the end of a 3585buffer when reading the PkgPath registry value on Windows. (SS) 3586 35878/5/98 (Windows makefile change) Introduced a set of macros to deal with 3588exporting symbols when compiling DLLS on Windows. See win/README for 3589details. (EMS) 3590 35918/5/98 (addendum) Added a second Windows registry key under 3592HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, named "pkgPath". 3593This is a multi-string value used to initialize the tcl_pkgPath 3594variable. This is required if extension DLLs are in architecture specific 3595subdirectories. (SS) 3596 35978/6/98 (new feature) Added tcl_findLibrary to init.tcl for use by 3598extensions, including Tk. This searches in a canonical way for 3599an extensions library directory and initialization file. (BW) 3600 36018/10/98 (bug fix) Imported commands used to get lost if the target 3602of the import was redefined. Tcl_CreateCommand and Tcl_CreateObjCommand 3603were updated to restore import links. (Note that if you rename a command, 3604the import links move to the new name, and if you delete a command then 3605the import links get lost. These semantics have not changed.) (MC) 3606 3607-------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/10/98 ------ 3608 36099/3/98 (bug fix) Tcl_Realloc was failing under Windows because the 3610GlobalReAlloc API was not correctly re-allocating blocks that were 361132k+. The fix was to use newer Win32 APIs (HeapAlloc, HeapFree, and 3612HeapReAlloc.) (BS) 3613 361410/5/98 (bug fix) Fixed bug in pkg_mkIndex that caused some files that do 3615a "package require" of packages in the Tcl libraries to give a warning like 3616 warning: "xx.tcl" provides more than one package ({xx 2.0} {yy 0.3}) 3617and generate a broken pkgIndex.tcl file. (EMS) 3618 361910/5/98 (bug fix) Pkg_mkIndex was not doing a case-insensitive comparison 3620of extensions to determine whether to load or source a file. Thus, under 3621Windows, MYDLLNAME.DLL was sourced, and mydllname.dll loaded. (EMS) 3622 362310/5/98 (new feature) Created a new Tcl_Obj type, "procbody". This object's 3624internal representation holds a pointer to a Proc structure. Extended 3625TclCreateProc to take both strings and "procbody". (EMS) 3626 362710/13/98 (bug fix) The "info complete" command can now handle strings 3628with NULLs embedded. Thanks to colin@field.medicine.adelaide.edu.au 3629for providing this fix. (RJ) 3630 363110/13/98 (bug fix) The "lsort -dictionary" command did not properly 3632handle some numbers starting with 0. Thanks to Richard Hipp 3633<drh@acm.org> for submitting the fix to Scriptics. (RJ) 3634 363510/13/98 (bug fix) The function Tcl_SetListObj was creating an invalid 3636Tcl_Obj if the list had zero elements (despite what the comments said 3637it would do). Thanks to Sebastian Wangnick for reporting the 3638problem. (RJ) 3639 364010/20/98 (new feature) Added tcl_platform(debug) element to the 3641tcl_platform array on Windows platform. The existence of the debug 3642element of the tcl_platform array indicates that the particular Tcl 3643shell has been compiled with debug information. Using 3644"info exists tcl_platform(debug)" a Tcl script can direct the 3645interpreter to load debug versions of DLLs with the load 3646command. (SKS) 3647 364810/20/98 (feature change) The Makefile and configure scripts have been 3649changed for IRIX to build n32 binaries instead of the old 32 abi 3650format. If you have extensions built with the o32 abi's you will need 3651to update them to n32 for them to work with Tcl. (RJ) 3652*** POTENTIAL INCOMPATIBILITY *** 3653 365410/23/98 (bug fix) tcl_findLibrary had a stray ] in one of the 3655pathnames it searched for the initialization script. tclInitScript.h 3656was incorrectly adding the parent of tcl_library to tcl_pkgPath. This 3657logic was moved into init.tcl, and the initialization of auto_path was 3658documented. Thanks to Donald Porter and Tom Silva for related 3659patches. (BW) 3660 366110/29/98 (bug fix) Fixed Tcl_NotifyChannel to use Tcl_Preserve instead 3662of Tcl_RegisterChannel so that 1) unregistered channels do not get 3663closed after their first fileevent, and 2) errors that occur during 3664close in a fileevent script are actually reflected by the close 3665command. (BW) 3666 366710/30/98 (bug fix) Overhaul of pkg_mkIndex to deal with transitive 3668package requires and packages split among scripts and binary files. 3669Also fixed ommision of global for errorInfo in tcl_findLibrary. (BW) 3670 367111/08/98 (bug fix) Fixed the resource command to always detect 3672the case where a file is opened a second time with the same 3673permissions. IM claims that this will always cause the same 3674FileRef to be returned, but in MacOS 8.1+, this is no longer the case, 3675so we have to test for this explicitly. (JI) 3676 367711/10/98 (feature change) When compiling with Metrowerk's MSL, use the 3678exit function from MSL rather than ExitToShell. This allows MSL to 3679clean up its temporary files. Thanks to Vince Darley for this 3680improvement. (JI) 3681 3682----------------- Released 8.0.4, 11/19/98 ------------------------- 3683 368411/20/98 (bug fix) Handle possible NULL return in TclGetStdFiles. (RJ) 3685 368611/20/98 (bug fix) The dltests would not build on SGI. They reported 3687that you could not mix n32 with 032 binaries. The configure script 3688has been modified to get the EXTRA_CFLAGS from the tcl configure 3689script. [Bug id: 840] (RJ) 3690 369112/3/98 (bug fix) Windows NT creates sockets so they are inheritable 3692by default. Fixed socket code so it turns off this bit right after 3693creation so sockets aren't kept open by exec'ed processes. [Bug: 892] 3694Thanks to Kevin Kenny for this fix. (SS) 3695 36961/11/98 (bug fix) On HP, "info sharedlibextension" was returning 3697empty string on static apps. It now always returns ".sl". (RJ) 3698 36991/28/99 (configure change) Now support -pipe option on gcc. (RJ) 3700 37012/2/99 (bug fix) Fixed initialization problem on Windows where no 3702searching for init.tcl would be performed if the registry keys were 3703missing. (stanton) 3704 37052/2/99 (bug fix) Added support for HKEY_PERFORMANCE_DATA and 3706HKEY_DYN_DATA keys in the "registry" command. (stanton) 3707 37082/2/99 (bug fix) ENOTSUP and EOPNOTSUPP clashed on some Linux 3709variants. (stanton) 3710 37112/2/99 (enhancement) The "open" command has been changed to use the 3712object interfaces. (stanton) 3713 37142/2/99 (bug fix) In some cases Tcl would crash due to an overflow of 3715the exception stack resulting from a missing byte code in some 3716expressions. (stanton) 3717 37182/2/99 (bug fix) Changed configure so Linux and IRIX shared libraries 3719are linked with the system libraries. (stanton) 3720 37212/2/99 (bug fix) Added support for BSDI 4.x (BSD/OS-4*) to the 3722configure script. (stanton) 3723 37242/2/99 (bug fix) Fixed bug where upvar could resurrect a namespace 3725variable after the namespace had been deleted. (stanton) 3726 37272/2/99 (bug fix) In some cases when creating variables, the 3728interpreter result was being modified even if the TCL_LEAVE_ERR_MSG 3729flag was set. (stanton) 3730 37312/2/99 (bug fix & new feature) Changed the socket drivers to properly 3732handle failures during an async socket connection. Added a new 3733fconfigure option "-error" to retrieve the failure message. See the 3734socket.n manual entry for details. (stanton) 3735 37362/2/99 (bug fix) Deleting a renamed interp alias could result in a 3737panic. (stanton) 3738 37392/2/99 (feature change/bug fix) Changed the behavior of "file 3740extension" so that it splits at the last period. Now the extension of 3741a file like "foo..o" is ".o" instead of "..o" as in previous versions. 3742*** POTENTIAL INCOMPATIBILITY *** 3743 3744----------------- Released 8.0.5, 3/9/99 ------------------------- 3745 3746======== Changes for 8.0 go above this line ======== 3747======== Changes for 8.1 go below this line ======== 3748 37496/18/97 (new feature) Tcl now supports international character sets: 3750 - All C APIs now accept UTF-8 strings instead of iso8859-1 strings, 3751 wherever you see "char *", unless explicitly noted otherwise. 3752 - All Tcl strings represented in UTF-8, which is a convenient 3753 multi-byte encoding of Unicode. Variable names, procedure names, 3754 and all other values in Tcl may include arbitrary Unicode characters. 3755 For example, the Tcl command "string length" returns how many 3756 Unicode characters are in the argument string. 3757 - For Java compatibility, embedded null bytes in C strings are 3758 represented as \xC080 in UTF-8 strings, but the null byte at the end 3759 of a UTF-8 string remains \0. Thus Tcl strings once again do not 3760 contain null bytes, except for termination bytes. 3761 - For Java compatibility, "\uXXXX" is used in Tcl to enter a Unicode 3762 character. "\u0000" through "\uffff" are acceptable Unicode 3763 characters. 3764 - "\xXX" is used to enter a small Unicode character (between 0 and 255) 3765 in Tcl. 3766 - Tcl automatically translates between UTF-8 and the normal encoding for 3767 the platform during interactions with the system. 3768 - The fconfigure command now supports a -encoding option for specifying 3769 the encoding of an open file or socket. Tcl will automatically 3770 translate between the specified encoding and UTF-8 during I/O. 3771 See the directory library/encoding to find out what encodings are 3772 supported (eventually there will be an "encoding" command that 3773 makes this information more accessible). 3774 - There are several new C APIs that support UTF-8 and various encodings. 3775 See Utf.3 for procedures that translate between Unicode and UTF-8 3776 and manipulate UTF-8 strings. See Encoding.3 for procedures that 3777 create new encodings and translate between encodings. See 3778 ToUpper.3 for procedures that perform case conversions on UTF-8 3779 strings. 3780 37819/18/97 (enhancement) Literal objects are now shared by the ByteCode 3782structures created when compiled different scripts. This saves up to 45% 3783of the total memory needed for all literals. (BL) 3784 37859/24/97 (bug fixes) Fixed Tcl_ParseCommand parsing of backslash-newline 3786sequences at start of command words. Suppressed Tcl_EvalDirect error logging 3787if non-TCL_OK result wasn't an error. (BL) 3788 378910/17/97 (feature enhancement) "~username" now refers to the users' home 3790directory on Windows (previously always returned failure). (CCS) 3791 379210/20/97 (implementation change) The Tcl parser has been completely rewritten 3793to make it more modular. It can now be used to parse a script without actually 3794executing it. The APIs for the new parser are not correctly exported, but 3795they will eventually be exported and augmented with Tcl commands so that 3796Tcl scripts can parse other Tcl scripts. (JO) 3797 379810/21/97 (API change) Added "flags" argument to Tcl_EvalObj, removed 3799Tcl_GlobalEvalObj procedure. Added new procedures Tcl_Eval2 and 3800Tcl_EvalObjv. (JO) 3801*** POTENTIAL INCOMPATIBILITY *** 3802 380310/22/97 (API change) Renamed Tcl_ObjSetVar2 and Tcl_ObjGetVar2 to 3804Tcl_SetObjVar2 and Tcl_GetObjVar2 (for consistency with other C APIs) 3805and changed the name arguments to be strings instead of objects. (JO) 3806*** POTENTIAL INCOMPATIBILITY *** 3807 380810/27/97 (enhancement) Bytecode compiler rewritten to use the new Tcl 3809parser. (BL) 3810 381111/3/97 (New routines) Added Tcl_AppendObjToObj, which appends the 3812string rep of one Tcl_Obj to another. Added Tcl_GetIndexFromObjStruct, 3813which is similar to Tcl_GetIndexFromObj, except that you can give an 3814offset between strings. This allows Tcl_GetIndexFromObjStruct to be 3815called with a table of records which have strings in them. (SRP) 3816 381712/4/97 (enhancement) New Tcl expression parser added. Added new procedure 3818Tcl_ParseExpr and new token types TCL_TOKEN_SUB_EXPR and 3819TCL_TOKEN_OPERATOR. Expression compiler is reimplemented to use this 3820parser. (BL) 3821 382212/9/97 (bug fix) Tcl_EvalObj() increments/decrements the refcount of the 3823script object to prevent the object from deleting itself while in the 3824middle of being evaluated. (CCS) 3825 382612/9/97 (bug fix) Memory leak in Tcl_GetsObjCmd(). (CCS) 3827 382812/11/97 (bug fix) Environment array leaked memory when compiled with 3829Visual C++. (SS) 3830 383112/11/97 (bug fix) File events and non-blocking I/O did not work on 3832pipes under Windows. Changed to use threads to achieve non-blocking 3833behavior. (SS) 3834 383512/18/97 (bug fixes) Fixed segfault in "namespace import"; importing a 3836procedure that causes a cycle now returns an error. Modified "info procs", 3837"info args", "info body", and "info default" to return information about 3838imported procedures as well as procedures defined in a namespace. (BL) 3839 384012/19/97 (enhancement) Added new Tcl_GetString() procedure that can be used 3841in place of Tcl_GetStringFromObj() if the string representation's length 3842isn't needed. (BL) 3843 384412/18/97 (bug fix) In the opt argument parsing package: if the description 3845had only flags, the "too many arguments" case was not detected. The default 3846value was not used for the special "args" ending argument. (DL) 3847 38481/7/98 (clean up) Moved everything not absolutly necessary out of init.tcl 3849procs now in auto.tcl and package.tcl can be autoloaded if needed. (DL) 3850 38511/7/98 (enhancement) tcltest made at install time will search for it's 3852init.tcl where it is, even when using virtual path compilation. (DL) 3853 38541/8/98 (os bug workaround) when needed, using a replacement for memcmp so 3855string compare "char with high bit set" "char w/o high bit set" returns 3856the expected value on all platforms. (DL) 3857 38581/8/98 (unix portability/configure) building from .../unix/targetName/ 3859subdirectories and simply using "../configure" should now work fine. (DL) 3860 38611/14/98 (enhancement) Added new regular expression package that 3862supports AREs, EREs, and BREs. The new package includes new escape 3863characters, meta-syntax, and character classes inside brackets. 3864Regexps involving backslashes may behave differently. (MH) 3865*** POTENTIAL INCOMPATIBILITY *** 3866 38671/16/98 (os workaround) Under windows, "file volume" was causing chatter 3868and/or several seconds of hanging when querying empty floppy drives. 3869Changed implementation to call an empirically-derived function that doesn't 3870cause this. (CCS) 3871 38721/16/98 (enhancement) Converted regular expressions to a Tcl_Obj type so 3873their compiled form gets cached automatically. Reduced NSUBEXP from 100 3874to 20. (BW) 3875 38761/16/98 (documentation) Change unclear documentation and comments for 3877functions like Tcl_TranslateFileName() and Tcl_ExternalToUtfDString(). Now 3878it explicitly says they take an uninitialized or free DString. A DString 3879that is "empty" or "not holding anything" could have been interpreted as one 3880currently with a zero length, but with a large dynamically allocated buffer. 3881(CCS) 3882 3883----------------- Released 8.1a1, 1/22/98 ----------------------- 3884 38851/28/98 (new feature) Added a "-direct" optional flag to pkg_mkIndex 3886to generate direct loading package indexes (such those you need 3887if you use namespaces and plan on using namespace import just after 3888package require). pkg_mkIndex still has limitations regarding 3889package dependencies but errors are now ignored and with -direct, correct 3890package indexes can be generated even if there are dependencies as long 3891as the "package provide" are done early enough in the files. (DL) 3892 38931/28/98 (enhancement) Performance tuning of regexp and regsub. (CCS) 3894 38951/28/98 (bug fix) regexp and regsub with "-indices" returned the byte-offsets 3896of the characters in the UTF-8 representation, not the character offsets 3897themselves. (CCS) 3898 38991/28/98 (bug fix) "clock format 0 -format %Z -gmt 1" would return the local 3900timezone string instead of "GMT" on Solaris and Windows. 3901 39021/28/98 (bug fix) Restore tty settings when closing serial device on Unix. 3903This is good behavior when closing real serial devices, essential when 3904closing the pseudo-device /dev/tty because the user's terminal settings 3905would be left useless, in raw mode, when tcl quit. (CCS) 3906 39071/28/98 (bug fix) Tcl_OpenCommandChannel() was modifying the contents of the 3908argv array passed to it, causing problems for any caller that wanted to 3909continue to use the argv array after calling Tcl_OpenCommandChannel(). (CCS) 3910 39112/1/98 (bug fix) More bugs with %Z in format string argument to strftime(): 39121. Borland always returned empty string. 39132. MSVC always returned the timezone string for the current time, not the 3914 timezone string for the specified time. 39153. With MSVC, "clock format 0 -format %Z -gmt 1" would return "GMT" the first 3916 time it was called, but would return the current timezone string on all 3917 subsequent calls. (CCS) 3918 39192/1/98 (bug fix) "file stat" was broken on Windows. 39201. "file stat" of a root directory (local or network) or a relative path that 3921 resolved to a root directory (c:. when in pwd was c:/) was returning error. 39222. "file stat" on a regular file (S_IFREG), the st_mode was sign extended to 3923 a negative int if the platform-dependant type "mode_t" was declared as a 3924 short instead of an unsigned short. 39253. "file stat" of a network directory, the st_dev was incorrectly reported 3926 as the id of the last accessed local drive rather than the id of the 3927 network drive. (CCS) 3928 39292/1/98 (bug fix) "file attributes" of a relative path that resolved to a 3930root directory was returning error. (CCS) 3931 39322/1/98 (bug fix) Change error message when "file attribute" could not 3933determine the attributes for a file. Previously it would return different 3934error messages on Unix vs. Windows vs. Mac. (CCS) 3935 39362/4/98 (bug fixes) Fixed several instances of bugs where the parser/compiler 3937would reach outside the range of allocated memory. Improved the array 3938lookup algorithm in set compilation. (DL) 3939 39402/5/98 (change) The TCL_PARSE_PART1 flag for Set/Get(Obj)Var2 C APIs is now 3941deprecated and ignored. The part1 is always parsed when the part2 argument 3942is NULL. This is to avoid a pattern of errors for extension writers converting 3943from string based Tcl_SetVar() to new Tcl_SetObjVar2() and who could easily 3944forget to provide the flag and thus get code working for normal variables 3945but not for array elements. The performance hit is minimal. A side effect 3946of that change is that is is no longer possible to create scalar variables 3947that can't be accessed by tcl scripts because of their invalid name 3948(ending with parenthesis). Likewise it is also parsed and checked to 3949ensure that you don't create array elements of array whose name is a valid 3950array element because they would not be accessible from scripts anyway. 3951Note: There is still duplicate array elements parsing code. (DL) 3952*** POTENTIAL INCOMPATIBILITY *** 3953 39542/11/98 (bug fix) Sharing objects between interps, such as by "interp 3955eval" or "send" could cause a crash later when dereferencing an interp 3956that had been deleted, given code such as: 3957 set a {set x y} 3958 interp create foo 3959 interp eval foo $a 3960 interp delete foo 3961 unset a 3962Interp "foo" was gone, but "a" had a internal rep consisting of bytecodes 3963containing a dangling pointer to "foo". Unsetting "a" would attempt to 3964return resources back to "foo", causing a crash as random memory was 3965accessed. The lesson is that that if an object's internal rep depends on 3966an interp (or any other data structure) it must preserve that data in 3967some fashion. (CCS) 3968 39692/11/98 (enhancement) The "interp" command was returning inconsistent error 3970messages when the specified slave interp could not be found. (CCS) 3971 39722/11/98 (bug fix) Result codes like TCL_BREAK and TCL_CONTINUE were not 3973propagating through the master/slave interp boundaries, such as "interp 3974eval" and "interp alias". TCL_OK, TCL_ERROR, and non-standard codes like 3975teh integer 57 work. There is still a question as to whether TCL_RETURN 3976can/should propagate. (CCS) 3977 39782/11/98 (bug fix) TclCompileScript() was derefering memory 1 byte before 3979start of the string to compile, looking for ']'. (CCS,DL) 3980 39812/11/98 (bug fix) Tcl_Eval2() was derefering memory 1 byte before start 3982of the string to eval, looking for ']'. (CCS,DL) 3983 39842/11/98 (bug fix) Compiling "set a(b" was running off end of string. (CCS,DL) 3985 39862/11/98 (bug fix) Windows initialization code was dereferencing 3987uninitialized memory if TCL_LIBRARY environment didn't exist. (CCS) 3988 39892/11/98 (bug fix) Windows "registry" command was dereferencing 3990uninitialized memory when constructing the $errorCode for a failed 3991registry call. (CCS) 3992 39932/11/98 (enhancement) Eliminate the TCL_USE_TIMEZONE_VAR definition from 3994configure.in, because it was the same information as the already existing 3995HAVE_TM_ZONE definition. The lack of HAVE_TM_ZONE is used to work around a 3996Solaris and Windows bug where "clock format [clock sec] -format %Z -gmt 1" 3997produces the local timezone string instead of "GMT". (CCS) 3998 39992/11/98 (bug fix) Memleaks and dereferencing of uninitialized memory in 4000regexp if an error occurred while compiling a regular expression. (CCS). 4001 40022/18/98 (new feature) Added mutexes and thread local storage in order 4003to make Tcl thread safe. For testing purposes, there is a testthread 4004command that creates a new thread and an interpreter inside it. See 4005thread.test for examples, but this script-level interface is not fixed. 4006Each thread has its own notifier instance to manage its own events, 4007and threads can post messages to each other's message queue. 4008This uses pthreads on UNIX, and native thread support on other platforms. 4009You enable this by configuring with --enable-threads. Note that at 4010this time *Tk* is still not thread safe. Special thanks to 4011Richard Hipp: his earlier implementation inspired this work. (BW, SS, JI) 4012 40132/18/98 (hidden feature change) The way the env() array is shared among 4014interpreters changed. Updates to env used to trigger write traces in 4015other interpreters. This undocumented feature is no longer implemented. 4016Instead, variable tracing is used to keep the C-level environ array in sync 4017with the Tcl-level env array. This required adding TCL_TRACE_ARRAY support 4018to Tcl_TraceVar2 so that array names works properly. (BW) 4019*** POTENTIAL INCOMPATIBILITY *** 4020 40212/18/98 (enhancement) Conditional compilation for unix systems (e.g., 4022IRIX, SCO) that use f_bsize instead of st_blksize to determine disk block 4023size. (CCS) 4024 40252/23/98 (bug fix) Fixed the emulation of polling selects in the threaded 4026version of the Unix notifier. The bug was showing up on a multiprocessor 4027as starvation of the notifier thread. (BW) 4028 4029----------------- Released 8.1a2, Feb 23 1998 ----------------------- 4030 40319/22/98 (bug fix) Changed the value of TCL_TRACE_ARRAY so it no longer 4032conflicts with the deprecated TCL_PARSE_PART1 flag. This should 4033improve portability of C code. (stanton) 4034 403510/6/98 (bug fix) The compile procedure for "if" incorrectly attempted 4036to match against the literal string "if", resulting in a stack 4037overflow when "::if" was compiled. It also would incorrectly accept 4038"if" instead of "elsif" in later clauses. (stanton) 4039 404010/15/98 (new feature) Added a "totitle" subcommand to the "string" 4041command to convert strings to capitalize the first character of a string 4042and lowercase all of the other characters. (stanton) 4043 404410/15/98 (bug fix) Changed regexp and string commands to properly 4045handle case folding according to the Unicode character 4046tables. (stanton) 4047 404810/21/98 (new feature) Added an "encoding" command to facilitate 4049translations of strings between different character encodings. See 4050the encoding.n manual entry for more details. (stanton) 4051 405211/3/98 (bug fix) The regular expression character classification 4053syntax now includes Unicode characters in the supported 4054classes. (stanton) 4055 405611/6/98 (bug fix) Variable traces were causing crashes when upvar 4057variables went out of scope. [Bug: 796] (stanton) 4058 405911/9/98 (bug fix) "format" now correctly handles multibyte characters 4060in %s format strings. (stanton) 4061 406211/10/98 (new feature) "regexp" now accepts three new switches 4063("-line", "-lineanchor", and "-linestop") that control how regular 4064expressions treat line breaks. See the regexp manual entry for more 4065details. (stanton) 4066 406711/17/98 (bug fix) "scan" now correctly handles Unicode 4068characters. (stanton) 4069 407011/17/98 (new feature) "scan" now supports XPG3 position specifiers 4071and the "%n" conversion character. See the "scan" manual entry for 4072more details. (stanton) 4073 407411/17/98 (bug fix) The Tcl memory allocator now returns 8-byte aligned 4075chunks of memory which improves performance on Windows and avoids 4076crashes on other platforms. [Bug: 834] (stanton) 4077 407811/23/98 (bug fix) Applied various regular expression performance bug 4079fixes supplied by Henry Spencer. (stanton) 4080 408111/30/98 (bug fix) Fixed various thread related race conditions. [Bug: 4082880 & 607] (stanton) 4083 408411/30/98 (bug fix) Fixed a number of memory overflow and leak 4085bugs. [Bug: 584] (stanton) 4086 408712/1/98 (new feaure) Added support for Korean encodings. (stanton) 4088 408912/1/98 (feature change) Changed the Tcl_EvalObjv interface to remove 4090the string and length arguments. 4091*** POTENTIAL INCOMPATIBILITY with previous alpha releases *** 4092 409312/2/98 (bug fix) Fixed various bugs related to line feed 4094translation. [Bug: 887] (stanton) 4095 409612/4/98 (new feature) Added a message catalog facility to help with 4097localizing Tcl scripts. Thanks to Mark Harrison for contributing the 4098initial implementation of the "msgcat" package. (stanton) 4099 410012/7/98 (bug fix) The memory allocator was failing to update the 4101block list for large memory blocks that were reallocated into a 4102different address. [Bug: 933] (stanton) 4103 4104----------------- Released 8.1b1, Dec 10 1998 ----------------------- 4105 410612/22/98 (performance improvement) Improved the -command option of the 4107lsort command to better use the object system for improved 4108performance (about 5x speed up). Thanks to Syd Polk for suppling the 4109patch. [RFE: 726] (rjohnson) 4110 41112/10/99 (bug fix) Restored the Tcl_ObjSetVar2/Tcl_ObjGetVar2 4112interfaces from 8.0 and renamed the Tcl_GetObjVar2/Tcl_SetObjVar2 4113interfaces to Tcl_GetVar2Ex and Tcl_SetVar2Ex. This should provide 4114better compatibility with 8.0. (stanton) 4115*** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** 4116 41172/10/99 (bug fix) Made the eval interfaces compatible with 8.0 by 4118renaming Tcl_EvalObj to Tcl_EvalObjEx, renaming Tcl_Eval2 to 4119Tcl_EvalEx and restoring Tcl_EvalObj and Tcl_GlobalEvalObj interfaces 4120so they match Tcl 8.0. (stanton) 4121*** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** 4122 41232/25/99 (bug fix/new feature) On Windows, the channel drivers for 4124consoles and serial ports now completely support file events. (redman) 4125 41263/5/99 (bug fix) Integrated patches to fix various configure problems 4127that affected HP-UX-11, 64-bit IRIX, Linux, and Solaris. (stanton) 4128 41293/9/99 (bug fix) Integrated various AIX related patches to improve 4130support for shared libraries. (stanton) 4131 41323/9/99 (new feature) Added tcl_platform(user) to provide a portable 4133way to get the name of the current user. (welch) 4134 41353/9/99 (new feature) Integrated the stub library mechanism contributed 4136by Jan Nijtmans, Paul Duffin, and Jean-Claude Wippler. This feature 4137should make it possible to write extensions that support multiple 4138versions of Tcl simultaneously. It also makes it possible to 4139dynamically load extensions into statically linked interpreters. This 4140patch includes the following changes: 4141 - Added a Tcl_InitStubs() interface 4142 - Added Tcl_PkgProvideEx, Tcl_PkgRequireEx, Tcl_PkgPresentEx, 4143 and Tcl_PkgPresent. 4144 - Added va_list versions of all VARARGS functions so they can be 4145 invoked from wrapper functions. 4146See the manual for more information. (stanton) 4147 4148 41493/10/99 (feature change) Replaced Tcl_AlertNotifier with 4150Tcl_ThreadAlert since the Tcl_AlertNotifier function relied on passing 4151internal data structures. (stanton) 4152*** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** 4153 41543/10/99 (new feature) Added a Tcl_GetVersion API to make it easier to 4155check the Tcl version and patch level from C. (redman) 4156 41573/14/99 (feature change) Tried to unify the TclpInitLibrary path 4158routines to look in similar places from Windows to UNIX. The new 4159library search path is: TCL_LIBRARY, TCL_LIBRARY/../tcl8.1, relative 4160to DLL (Windows Only) relative to installed executable, relative to 4161develop executable, and relative to compiled-in in location (UNIX 4162Only.) This fix included: 4163 - Defining a TclpFindExecutable 4164 - Moving Tcl_FindExecutable to a common area in tclEncoding.c 4165 - Modifying the TclpInitLibraryPath routines. 4166(surles) 4167 41683/14/99 (feature change) Added hooks for TclPro Wrapper to initialize 4169the location of the encoding files and libraries. This fix included: 4170 - Adding the TclSetPerInitScript routine. 4171 - Modifying the Tcl_Init routines to evaluate the non-NULL 4172 pre-init script. 4173 - Adding the Tcl_SetdefaultEncodingDir and Tcl_GetDefaultEncodingDir 4174 routines. 4175 - Modifying the TclpInitLibrary routines to append the default 4176 encoding dir. 4177(surles) 4178 41793/14/99 (feature change) Test suite now uses "test" namespace to 4180define the test procedure and other auxiliary procedures as well as 4181global variables. 4182 - Global array testConfige is now called ::test::testConfig. 4183 - Global variable VERBOSE is now called ::test::verbose, and 4184 ::test::verbose no longer works with numerical values. We've 4185 switched to a bitwise character string. You can set 4186 ::test::verbose by using the -verbose option on the Tcl command 4187 line. 4188 - Global variable TESTS is now called ::test::matchingTests, and 4189 can be set on the Tcl command line via the -match option. 4190 - There is now a ::test::skipTests variable (works similarly to 4191 ::test::matchTests) that can be set on the Tcl command line via 4192 the -match option. 4193 - The test suite can now be run in any working directory. When 4194 you run "make test", the working directory is nolonger switched 4195 to ../tests. 4196(hirschl) 4197*** POTENTIAL INCOMPATIBILITY *** 4198 4199--------------- Released 8.1b2, March 16, 1999 ---------------------- 4200 42013/18/99 (bug fix) Fixed missing/incorrect characters in shift-jis table 4202(stanton) 4203 42043/18/99 (feature change) The glob command ignores the 4205FS_CASE_IS_PRESERVED bit on file systesm and always returns 4206exactly what it gets from the system. (stanton) 4207*** POTENTIAL INCOMPATIBILITY *** 4208 42093/19/99 (new feature) Added support for --enable-64bit. For now, 4210this is only supported on Solaris 7 64bit (SunOS 5.7) using the Sun 4211compiler. (redman) 4212 42133/23/99 (bug fix) Fixed fileevents and gets on Windows consoles and 4214serial devices so that non-blocking channels do not block on partial 4215input lines. (redman) 4216 42173/23/99 (bug fix) Added a new Tcl_ServiceModeHook interface. 4218This is used on Windows to avoid the various problems that people 4219have been seeing where the system hangs when tclsh is running 4220outside of the event loop. As part of this, renamed 4221TcapAlertNotifier back to Tcl_AlertNotifier since it is public. 4222(stanton) 4223 42243/23/99 (feature change) Test suite now uses "tcltest" namespace to 4225define the test procedure and other auxiliary procedures as well as 4226global variables. The previously chosen "test" namespace was thought 4227to be too generic and likely to create conflits. 4228(hirschl) 4229*** POTENTIAL INCOMPATIBILITY *** 4230 42313/24/99 (bug fix) Make sockets thread safe on Windows. 4232(redman) 4233 42343/24/99 (bug fix) Fix cases where expr would incorrect return 4235a floating point value instead of an integer. (stanton) 4236 42373/25/99 (bug fix) Added ASCII to big5 and gb2312 encodings. 4238(stanton) 4239 42403/25/99 (feature change) Changed so aliases are invoked at current 4241scope in the target interpreter instead of at the global scope. This 4242was an incompatibility introduced in 8.1 that is being removed. 4243(stanton) 4244*** POTENTIAL INCOMPATIBILITY with previous beta releases *** 4245 42463/26/99 (feature change) --enable-shared is now the default and build 4247Tcl as a shared library; specify --disable-shared to build a static Tcl 4248library and shell. 4249*** POTENTIAL INCOMPATIBILITY *** 4250 42513/29/99 (bug fix) Removed the stub functions and changed the stub 4252macros to just use the name without params. Pass &tclStubs into the 4253interp (don't use tclStubsPtr because of collisions with the stubs on 4254Solaris). (redman) 4255 42563/30/99 (bug fix) Loadable modules are now unloaded at the last 4257possible moment during Tcl_Finalize to fix various exit-time crashes. 4258(welch) 4259 42603/30/99 (bug fix) Tcl no longer calls setlocale(). It looks at 4261env(LANG) and env(LC_TYPE) instead. (stanton) 4262 42634/1/99 (bug fix) Fixed the Ultrix multiple symbol definition problem. 4264Now, even Tcl includes a copy of the Tcl stub library. (redman) 4265 42664/1/99 (bug fix) Internationalized the registry package. 4267 42684/1/99 (bug fix) Changed the implemenation of Tcl_ConditionWait and 4269Tcl_ConditionNotify on Windows. The new algorithm eliminates a race 4270condition and was suggested by Jim Davidson. (welch) 4271 42724/2/99 (new apis) Made various Unicode utility functions public. 4273Tcl_UtfToUniCharDString, Tcl_UniCharToUtfDString, Tcl_UniCharLen, 4274Tcl_UniCharNcmp, Tcl_UniCharIsAlnum, Tcl_UniCharIsAlpha, 4275Tcl_UniCharIsDigit, Tcl_UniCharIsLower, Tcl_UniCharIsSpace, 4276Tcl_UniCharIsUpper, Tcl_UniCharIsWordChar, Tcl_WinUtfToTChar, 4277Tcl_WinTCharToUtf (stanton) 4278 42794/2/99 (feature change) Add new DDE package and removed the Tk 4280send command from the Windows version. Changed DDE-based send 4281code into "dde eval" command. The DDE package can be loaded 4282into tclsh, not just wish. Windows only. (redman) 4283 42844/5/99 (bug fix) Changed safe-tcl so that the encoding command 4285is an alias that masks out the "encoding system" subcommand. 4286(redman) 4287 42884/5/99 (bug fix) Configure patches to improve support for 4289OS/390 and BSD/OS 4.*. (stanton) 4290 42914/5/99 (bug fix) Fixed crash in the clock command that occurred 4292with negative time values in timezones east of GMT. (stanton) 4293 42944/6/99 (bug fix) Moved the "array set" C level code into a common 4295routine (TclArraySet). The TclSetupEnv routine now uses this API to 4296create an env array w/ no elements. This fixes the bug caused when 4297every environ varaible is removed, and the Tcl env variable is 4298synched. If no environ vars existed, the Tcl env var would never be 4299created. (surles) 4300 43014/6/99 (bug fix) Made the Env module I18N compliant. (surles) 4302 43034/6/99 (bug fix) Changed the FindVariable routine to TclpFindVariable, 4304that now does a case insensitive string comparison on Windows, and not 4305on UNIX. (surles) 4306 4307--------------- Released 8.1b3, April 6, 1999 ---------------------- 4308 43094/9/99 (bug fix) Fixed notifier deadlock situation when the pipe used 4310to talk back notifier thread is filled with data. Found as a result of the 4311focus.test for Tk hanging. (redman) 4312 43134/13/99 (bug fix) Fixed bug where socket -async combined with 4314fileevent for writing did not work under Windows NT. (redman) 4315 43164/13/99 (encoding fix) Restored the double byte definition of GB2312 4317and added the EUC-CN encoding. EUC-CN is a variant of GB2312 that 4318shifts the characters into bytes with the high bit set and includes 4319ASCII as a subset. (stanton) 4320 43214/27/99 (bug fix) Added 'extern "C" {}' block around the stub table 4322pointer declaration so the stub library can be used from C++. (stanton) 4323 4324--------------- Released 8.1 final, April 29, 1999 ---------------------- 4325 43264/22/99 (bug fix) Changed Windows NT socket implementation to avoid 4327creating a communication window. This avoids the problem where the 4328system hangs waiting for tclsh to respond to a system-wide synchronous 4329broadcast (e.g. if you change system colors). (redman) 4330 43314/22/99 (bug fix) Added call to TclWinInit from TclpInitPlatform when 4332building a static library since DllMain will not be invoked. This 4333could break old code that explicitly called TclWinInit, but should be 4334simpler in the long run. (stanton) 4335*** POTENTIAL INCOMPATIBILITY *** 4336 43374/23/99 (bug fix) Added support for the koi8-r Cyrillic 4338encoding. [Bug: 1771] (stanton) 4339 43404/28/99 (bug fix) Changed internal Tcl_Obj usage to avoid freeing the 4341internal representation after the string representation has been 4342freed. This makes it easier to debug extensions. (stanton) 4343 43444/30/99 (bug fix) Fixed a memory leak in CommandComplete. (stanton) 4345 43465/3/99 (bug fix) Fixed a bug where the Tcl_ObjType was not being set 4347in a duplicated Tcl_Obj. [Bug: 1975, 2047] (stanton) 4348 43495/3/99 (bug fix) Changed Tcl_ParseCommand to avoid modifying eval'ed 4350strings that are already null terminated. [Bug: 1793] (stanton) 4351 43525/3/99 (new feature) Applied Jeff Hobbs's string patch which includes 4353the following changes: 4354 - added new subcommands: equal, repeat, map, is, replace 4355 - added -length option to "string compare|equal" 4356 - added -nocase option to "string compare|equal|match" 4357 - string and list indices can be an integer or end?-integer?. 4358 - added optional first and last index args to string toupper, et al. 4359See the string.n manual entry for more details about the new string 4360features. [Bug: 1845] (stanton) 4361 43625/6/99 (new feature) Added Tcl_UtfNcmp and Tcl_UtfNcasecmp to make Utf 4363string comparision easier. (stanton) 4364 43655/7/99 (bug fix) Improved OS/390 support. [Bug: 1976, 1997] (stanton) 4366 43675/12/99 (bug fix) Changed Windows initialization code to avoid using 4368GetUserName system call in favor of the env(USERNAME) variable. This 4369provides a significant startup speed improvement. (stanton) 4370 43715/12/99 (bug fix) Replaced the per-interpreter regexp cache with a 4372per-thread cache. Changed the Regexp object to take advantage of this 4373extra cache. Added a reference count to the TclRegexp type so regexps 4374can be shared by multiple objects. Removed the per-interp regexp cache 4375from the interpreter. Now regexps can be used with no need for an 4376interpreter. This set of changes should provide significant speed 4377improvements for many Tcl scripts. [Bug: 1063] (stanton) 4378 43795/14/99 (bug fix) Durining initialization on Unix, Tcl now extracts the 4380encoding subfield from the LANG/LC_ALL environment variables in cases 4381where the locale is not found in the built-in locale table. It also 4382attempts to initialize the locale subsystem so X11 is happy. [Bug: 1989] 4383(stanton) 4384 43855/14/99 (bug fix) Applied the patch to fix 100-year and 400-year 4386boundaries in leap year code, from Isaac Hollander. [Bug: 2066] (redman) 4387 43885/14/99 (bug fix) Fixed a crash caused by a failure to reset the result 4389before evaluating the test expression in an uncompiled for 4390statement. (stanton) 4391 43925/18/99 (bug fix) Modified initialization code on Windows to avoid 4393inherenting closed or invalid channels. If the standard input is 4394anything other than a console, file, serial port, or pipe, then we fall 4395back to the standard Tk window console. (stanton) 4396 43975/19/99 (bug fix) Added an extern "C" block around the entire tcl.h 4398header file to avoid C++ linkage issues. (redman) 4399 44005/19/99 (new feature) Applied Jeff Hobb's patch to add 4401Tcl_StringCaseMatch to support case insensitive glob style matching and 4402Tcl_UniCharIs* character classification functions. (stanton) 4403 44045/20/99 (bug fix) Added the directory containing the executuble and the 4405../lib directory relative to that to the auto_path variable. (redman) 4406 4407--------------- Released 8.1.1, May 25, 1999 ---------------------- 4408 44095/21/99 (bug fix) Fixed launching command.com on Win95/98, no longer 4410hangs. [Bug: 2105] (redman) 4411 44125/28/99 (bug fix) Fixed bug where dde calls were being passed an 4413invalid dde handle. [Bug: 2124] (stanton) 4414 44156/1/99 (bug fix) Small configure.in patches. [Bug: 2121] (stanton) 4416 44176/1/99 (bug fix) Applied latest regular expression patches to fix an 4418infinite loop bug and add support for testing whether a string could 4419match with additional input. [Bug: 2117] (stanton) 4420 44216/2/99 (bug fix) Fixed incorrect computation of relative ordering in 4422Utf case-insensitive comparison. [Bug: 2135] (stanton) 4423 44246/3/99 (bug fix) Fxied bug where string equal/compare -nocase 4425reported wrong result on null strings. [Bug: 2138] (stanton) 4426 44276/4/99 (new feature) Windows build now uses Cygwin tools plus GNU 4428make and autoconf to build static/dynamic and debug/nodebug. (stanton) 4429 44306/7/99 (new feature) Optimized string index, length, range, and 4431append commands. Added a new Unicode object type. (hershey) 4432 44336/8/99 (bug fix) Rolled back Windows socket driver to 8.1.0 4434version. (stanton) 4435 44366/9/99 (new feature) Added Tcl_RegExpMatchObj and Tcl_RegExpGetInfo 4437to public Tcl API, these functions are needed by Expect. Changed 4438tools/genStubs.tcl to always write output in LF mode. (stanton) 4439 44406/14/99 (new feature) Merged string and Unicode object types. Added 4441new public Tcl API functions: Tcl_NewUnicodeObj, Tcl_SetUnicodeObj, 4442Tcl_GetUnicode, Tcl_GetUniChar, Tcl_GetCharLength, Tcl_GetRange, 4443Tcl_AppendUnicodeToObj. (hershey) 4444 44456/16/99 (new feature) Changed to conform to TEA specification, added 4446tcl.m4 and aclocal.m4 macro libraries for configure. (wart) 4447 44486/17/99 (new feature) Added new regexp interfaces: -expanded, -line, 4449-linestop, and -lineanchor switches. Renamed Tcl_RegExpMatchObj to 4450Tcl_RegExpExecObj and added new Tcl_RegExpMatchObj that is equivalent 4451to Tcl_RegExpMatch. Added public macros for regexp flags. Added 4452REG_BOSONLY flag to allow Expect to iterate through a string and only 4453find matches that start at the current position within the 4454string. (stanton) 4455 44566/21/99 (bug fix) Fixed memory leak in TclpThreadCreate where thread 4457attributes were not being released. [Bug: 2254] (stanton) 4458 44596/23/99 (new feature) Updated Unicode character tables to reflect 4460Unicode 2.1 data. (stanton) 4461 44626/25/99 (new feature) Fixed bugs in non-greedy quantifiers for regular 4463expression code. (stanton) 4464 44656/25/99 (new feature) Added initial implementation of new Tcl test 4466harness package. Modified test files to use new tcltest package. 4467(jenn) 4468 44696/26/99 (new feature) Applied patch from Peter Hardie to add poke 4470command to dde and changed the dde package version number to 44711.1. (redman) 4472 44736/28/99 (bug fix) Applied patch from Peter Hardie to fix problem in 4474Tcl_GetIndexFromObj() when the key being passed is the empty string. 4475[Bug: 1738] (redman) 4476 44776/29/99 (new feature) Added options to tcltest package: -preservecore, 4478-limitconstraints, -help, -file, -notfile, and flags. (jenn) 4479 44807/3/99 (new feature) Changed parsing of variable names to allow empty 4481array names. Now "$(foo)" is a variable reference. Previously you 4482had to use something line $::(foo), which is slower. This change was 4483requested by Jean-Luc Fontaine for his STOOOP package. (welch) 4484 44857/3/99 (new feature) Added Tcl_SetNotifier (public API) and 4486associated hook points in the notifiers to be able to replace the 4487notifier calls at runtime. The Xt notifier and test program use this 4488hook. (welch) 4489 44907/3/99 (new feature) Added a new variant of the "Trf core patch" from 4491Andreas Kupries that adds new C APIs Tcl_StackChannel, 4492Tcl_UnstackChannel, and Tcl_GetStackedChannel. This allows the Trf 4493extension to work without applying patches to the Tcl core. (welch) 4494 44957/6/99 (new feature) Added -timeout option to http.tcl to handle 4496timeouts that occur during connection attempts to hosts that are 4497down. (welch) 4498 44997/6/99 (bug fix) Applied new implementation of the Windows serial 4500port driver from Rolf Schroedter that fixes reading only one byte from 4501the port at a time. Uses polling every 10ms to implement 4502fileevents. [Bug: 1980 2217] (redman) 4503 45047/8/99 (bug fix) Applied fix for bug in DFA state caching under 4505lookahead conditions (regular expressions). [Bug: 2318] (stanton) 4506 45077/8/99 (bug fix) Fixed bug in string range bounds checking 4508code. (stanton) 4509 4510--------------- Released 8.2b1, July 14, 1999 ---------------------- 4511 45127/16/99 (bug fix) Added Tcl_SetNotifier to stub table. [Bug: 2364] 4513Added check for Alpha/Linux to correct the IEEE floating point flag, 4514patch from Don Porter. (redman) 4515 45167/20/99 (bug fix) Merged 8.0.5 code to handle tcl_library properly, 4517also fixed a bug that caused TCL_LIBRARY to be ignored. (hershey) 4518 45197/21/99 (bug fix) Implemented modified socket driver for Windows that 4520uses a thread to manage the socket event window. Code works the same 4521on all supported versions of Windows and was based on original 8.1.0 4522code. [Bug: 2178 2256 2259 2329 2323 2355] (redman) 4523 45247/21/99 (new feature) Applied patch from Rolf Schroedter to add 4525-pollinterval option to fconfigure for Windows serial ports. Allows 4526the maxblocktime to be modified to control how often serial ports are 4527checked for fileevents. Also added documentation for \\.\comX 4528notation for opening serial ports on Windows. (redman) 4529 45307/21/99 (bug fix) Changed APIs in stub tables to use "unsigned long" 4531instead of the platform-specific "size_t", primarily after SunOS 4 4532users could no longer compile. (redman) 4533 45347/22/99 (bug fix) Fixed crashing during "array set a(b) {}". 4535[Bug: 2427] (redman) 4536 45377/22/99 (bug fix) The install-sh script must be given execute 4538permissions prior to running. [Bug: 2413] (redman) 4539 45407/22/99 (bug fix) Applied patch from Ulrich Ring to remove ANSI-style 4541prototypes in the code. [Bug: 2391] (redman) 4542 45437/22/99 (bug fix) Added #if blocks around #includes of sys/*.h header 4544files, to allow an extension author on Windows to use the MetroWerks 4545compiler. [Bug: 2385] (redman) 4546 45477/22/99 (bug fix) Fixed running the safe.test test suite, one change 4548to the Windows Makefile.in to fix paths and another in safe.test to 4549check for the tcl_platform(threaded) variable properly. (redman) 4550 45517/22/99 (bug fix) Fixed hanging in new Win32 socket driver with 4552threads enabled. (redman) 4553 45547/26/99 (bug fix) Fixed terminating of helper threads by holding any 4555mutexes from the primary thread while waiting for the helper thread to 4556terminate. Fixes dual-CPU WinNT hangs, only one rare sporadic hang 4557that still exists with dual-CPU WinNT. Also fixed test cases so that 4558they would not depend as much on timing for dual-CPU WinNT. (redman) 4559 45607/27/99 (bug fix) Some test suite cleanup. (jenn) 4561 45627/29/99 (bug fix) Applied patch to fix typo in .SH NAME line in 4563doc/Encoding.n [Bug: 2451]. Applied patch to avoid linking pack.n to 4564pack-old.n [Bug: 2469]. Patches from Don Porter. (redman) 4565 45667/29/99 (bug fix) Allow tcl to open CON and NUL, even for redirection 4567of std channels. [Bug: 2393 2392 2209 2458] (redman) 4568 45697/30/99 (bug fix) Applied fixed Trf patch from Andreas Kupries. 4570[Bug: 2386] (hobbs) 4571 45727/30/99 (bug fix) Fixed bug in info complete. [Bug: 2383 2466] (hobbs) 4573 45747/30/99 (bug fix) Applied patch to fix threading on Irix 6.5, patch 4575provided by James Dennett. [Bug: 2450] (redman) 4576 45777/30/99 (bug fix) Fixed launching of 16bit applications on Win9x from 4578wish. The command line was being primed with tclpip82.dll, but it was 4579ignored later. 4580 45817/30/99 (bug fix) Added functions to stub table, patch provided by Jan 4582Nijtmans. [Bug: 2445] (hobbs) 4583 45848/1/99 (bug fix) Changed Windows socket driver to terminate threads 4585by sending a message to the window rather than calling 4586TerminateThread(), which seems to leak about 4k from the helper 4587thread's stack space. (redman) 4588 4589--------------- Released 8.2b2, August 5, 1999 ---------------------- 4590 45918/4/99 (bug fix) Applied patches supplied by Henry Spencer to greatly 4592enhance performance of certain classes of regular expressions. 4593[Bug: 2440 2447] (stanton) 4594 45958/5/99 (doc change) Made it clear that tcl_pkgPath was not set for 4596Windows. [Bug: 2455] (hobbs) 4597 45988/5/99 (bug fix) Fixed reference to bytes that might not be null 4599terminated in tclLiteral.c. [Bug: 2496] (hobbs) 4600 46018/5/99 (bug fix) Fixed typo in http.tcl. [Bug: 2502] (hobbs) 4602 46038/9/99 (bug fix) Fixed test suite to handle larger integers 4604(64bit). Patch from Don Porter. (hobbs) 4605 46068/9/99 (documentation fix) Clarified Tcl_DecrRefCount docs 4607[Bug: 1952]. Clarified array pattern docs [Bug: 1330]. Fixed clock docs 4608[Bug: 693]. Fixed formatting errors [Bug: 2188 2189]. Fixed doc error 4609in tclvars.n [Bug: 2042]. (hobbs) 4610 46118/9/99 (bug fix) Fixed path handling in auto_execok [Bug: 1276] (hobbs) 4612 46138/9/99 (internal api change) Removed the TclpMutexLock and TclpMutexUnlock 4614APIs and added a new exported api, Tcl_GetAllocMutex. These APIs are all for 4615the mutex used in the simple memory allocators. By making this change 4616we are able to substitute different implementations of the thread-related 4617APIs without having to recompile the Tcl core. (welch) 4618 46198/9/99 (new C API) Tcl_GetChannelNames returns a list of open channel 4620names in the interpreter result. Still no Tcl-level version of this, 4621but server-like applications can use this to clean up files without 4622deleting interpreters. (welch) 4623 46248/9/99 (bug fix) Traces were not firing on "info exists", which used to 4625happen in Tcl 7.6 and earlier. An "info exists" now fires a read trace, 4626if defined. This makes it possible to fully implement variables that 4627are defined via traces. (welch) 4628 46298/10/99 (bug fix) Fixed Brent's changes so that they work on 4630Windows. (redman) 4631 4632--------------- Released 8.2b3, August 11, 1999 ---------------------- 4633 46348/12/99 (Mac) Rearrange projects in tclMacProjects.sea.hqx so that the 4635build directory is separate from the sources. (Jim Ingham) 4636 46378/12/99 (bug fix) Fixed bug in Tcl_EvalEx where the termOffset was not 4638being updated in cases where the evaluation returned a non TCL_OK 4639error code. [Bug: 2535] (stanton) 4640 4641--------------- Released 8.2.0, August 17, 1999 ---------------------- 4642 46439/21/99 (config fixes) fixed several AIX configuration issues. gcc and 4644threading may still cause problems on AIX. (hobbs) 4645 46469/21/99 (bug fix) fixed expr double-eval problem. [Bug: 732] (hobbs) 4647 46489/21/99 (bug fix) fixed static buffer overflow problem. [Bug: 2483] (hobbs) 4649 46509/21/99 (bug fix) fixed end-int linsert interpretation. [Bug: 2693] (hobbs) 4651 46529/21/99 (bug fix) fixed bug when setting array in non-existent 4653namespace. [Bug: 2613] (hobbs) 4654 4655--- Released 8.2.1, October 04, 1999 --- See ChangeLog for details --- 4656 465710/30/99 (feature enhancement) new regexp engine from Henry Spencer 4658was patched in - should greatly reduce stack space usage. (spencer) 4659 466010/30/99 (bug fix) fixed Purify reported memory leaks in findexecutable 4661test command, TclpCreateProcess on Unix, in handling of C environ array, 4662and in testthread code. No more known (reported) mem leaks for Tcl 4663built using gcc on Solaris 2.5.1. Also none reported for Tcl on NT 4664(using Purify 6.0). (hobbs) 4665 466610/30/99 (bug fix) fixed improper bytecode handling of 4667'eval {set array($unknownvar) 5}' (also for incr) (hobbs) 4668 466910/30/99 (bug fix) fixed event/io threading problems by making 4670triggerPipe non-blocking (nick kisserbeth) 4671 467210/30/99 (bug fix) fixed Tcl_AppendStringsToObjVA and Tcl_AppendResultVA 4673to only iterates once over the va_list (avoiding non-portable memcpy). 4674(joe english, hobbs) 4675 467610/30/99 (bug fix) removed savedChar trick in tclCompile.c that appeared 4677to be causing a segv when the literal table was released. 4678[Bug: 2459, 2515] (David Whitehouse) 4679 468010/30/99 (bug fix) fixed [string index] to return ByteArrayObj 4681when indexing into one (test case string-5.16) [Bug: 2871] (hobbs) 4682 468310/30/99 (bug fix) fixes for mac UTF filename handling (ingham) 4684 4685--- Released 8.2.2, November 04, 1999 --- See ChangeLog for details --- 4686 468711/19/99 (feature enhancement) bug fixes for http package as well as 4688patch required by TLS (SSL) extension that adds http::(un)register 4689and -type to http::geturl. Up'd http pkg version to 2.2. 4690 469111/19/99 (bug fix) removed extra decr of numLevels in Tcl_EvalObjEx 4692that could cause seg fault (mjansen@wendt.de) 4693 469411/19/99 (bug fixes) numerous minor big fixes, including correcting the 4695installation of the koi8-r encoding and tcltest1.0 on Windows. 4696 469711/30/99 (bug fix) fixes scan where %[..] didn't match anything 4698 469911/30/99 (bug fix) fixed setting of isNonBlocking flag in PipeBlockModeProc 4700so you can now close a non-blocking channel without waiting. 4701 470211/30/99 (bug work-around) prevented the unloading of DLLs for Unix in 4703TclFinalizeLoad. This stops the seg fault on exit that some users would 4704see (ie with oratcl) when using DLLs that do nasty things like register 4705atexit handlers. 4706 470712/07/99 (bug fix) fixes for 'expr + {[incr]}' and 'expr + {[error]}' 4708cases (different causes). 4709 4710--- Released 8.2.3, December 16, 1999 --- See ChangeLog for details --- 4711 47121999-09-14 (feature enhancement) added -start switch to regexp and regsub. 4713 47141999-09-15 (feature enhancement) add 'array unset' command. 4715 47161999-09-15 (feature enhancement) rewrote runtime libraries to use new 4717string functions 4718 47191999-08-18 (feature enhancement) added 'file channels' command, along with 4720Tcl_GetChannelNames(Ex) public C APIs. 4721 47221999-10-19 (feature enhancement) enhanced tcltest package 4723 47241999-09-16 (feature enhancement) added -milliseconds switch to 'clock clicks' 4725 47261999-10-28 (feature enhancement) added support for inline 'scan' 4727 47281999-10-28 (feature enhancement) added support for touch functionality by 4729extendeding 'file atime' and 'file mtime' to take an optional time argument 4730 47311999-11-24 (feature enhancement) added 'fconfigure $sock -lasterror' 4732command to Windows to query the last error received on a serial socket. 4733 47341999-11-30 (bug fix) fixed handling of %Z on NT for timezones that don't 4735have DST 4736 47371999-12-03 (feature enhancement) improved error message in bad octal cases 4738and improper use of comments. (hobbs) 4739 47401999-12-07 (bug fix) fixed Tcl_ScanCountedElement to not step 4741beyond the end of the counted string 4742 47431999-12-09 (feature enhancement) removed all references to 16 bit 4744compatibility code for Windows (hobbs) 4745 47461999-12-10 (bug fix) removed check for vfork - Tcl now uses only fork in 4747exec. (hobbs) 4748 47491999-12-10 (optimization) changed Tcl_ConcatObj to return a list 4750object when it receives all pure list objects as input (used by 'concat'), 4751added optimizations in Tcl_EvalObjEx for pure list case, and optimized 4752INST_TRY_CVT_TO_NUMERIC in TclExecuteByteCode for boolean objects. 4753(oakley, hobbs) 4754 47551999-12-12 (feature enhancement) enhanced glob command with -type, -path, 4756-directory and -join switches. (darley, hobbs) 4757 47581999-12-21 (bug fix) changed CreateThread to _beginthreadex and 4759ExitThread to _endthreadex to prevent 4K mem leak (gravereaux) 4760 47611999-12-21 (bug fix) fixed applescript for I18N 4762 47631999-12-21 (feature enhancement) added -unique option to lsort (hobbs) 4764 47651999-12-21 (bug fix) changed thread ids to longs (for 64bit systems) 4766 4767--- Released 8.3b1, December 22, 1999 --- See ChangeLog for details --- 4768 47692000-01-10 (feature enhancement) clock scan now supports the common 4770ISO 8601 date/time formats. See docs for details. (melski) 4771 47722000-01-10 (bug fix) prevented \ooo substitution from accepting 4773non-octal digits [Bug: 3975] (hobbs) 4774 47752000-01-11 (bug fix) fixed improper handling of DST by clock when 4776using relative times (like "1 month" or "tomorrow"). (melski) 4777 47782000-01-12 (bug fix) improved build support for Tru64 v5, NetBSD 4779and Reliant Unix (hobbs) 4780 47812000-01-12 (bug fix) made imported commands also import their 4782compile procedure (duffin) 4783 47842000-01-12 (bug fix) fixed 'info procs ::namesp::*' behavior to return 4785procs in a namespace (dejong) 4786 47872000-01-12 (feature enhancement) added support for setting permissions 4788symbolicly (like chmod) in [file attributes $file -permissions ...] (schoebel) 4789 47902000-01-13 (bug fix) fixed lsort -dictionary problem when sorting 4791characters between 'Z' and 'a' (flawed upper/lower comparison logic) (melski) 4792 4793--- Released 8.3b2, January 13, 2000 --- See ChangeLog for details --- 4794 47952000-01-14 (feature enhancement) clock format %Q added, clock scan updated 4796 47972000-01-20 (bug fix) corrected complex array elem compiling (Spjuth) 4798 47992000-01-20 (bug fix) made [info body] always return a string type arg, 4800to prevent possible misuse of bytecodes in the wrong context (hobbs) 4801 48022000-01-20 (bug fixes) several fixes to variable handling to prevent 4803possible crashes, and further definition of correct behavior (melski) 4804 48052000-01-25 (bug fixes) improved QNX, Ultrix and OSF1 (Tru64) config and 4806compatibility (edge, furukawa) 4807 48082000-01-25 (bug fix) fixed mem leak when calling lsort with a bad -command 4809argument (hobbs) 4810 48112000-01-27 (feature enhancement) package mechanism overhaul: changed 4812behavior of pkg_mkIndex to do -direct by default, added -lazy option. 4813Fixed pkg_mkIndex to handle odd proc names and auto_mkIndex to use platform 4814independent file paths. Other fixes for odd package quirks. Added 4815::pkg namespace and ::pkg::create helper function. (melski) 4816 48172000-02-01 (bug fix) fixed problem where http POST would send one extra 4818newline (vasiljevic) 4819 48202000-02-02 (feature enhancement) added docs for new regexp -inline and 4821-all switches. (hobbs) 4822 48232000-02-08 (bug fix) corrected handling of "next monthname" in clock scan 4824(melski) 4825 48262000-02-09 (bug fix) restored Mac source to build readiness and prevented 4827mac panic from an error when closing an async socket (steffen, ingham) 4828 48292000-02-10 (feature enhancement) improved error reporting for failed 4830loads on Windows (dejong, hobbs) 4831 4832--- Released 8.3.0, February 10, 2000 --- See ChangeLog for details --- 4833 48342000-03 (bug fixes, feature enhancement) overhaul of http package for 4835proper handling of async callbacks (new options), version is now at 2.3 4836(tamhankar, welch) 4837 48382000-03 (performance enhancement) speedup in Windows filename handling (newman) 4839and ==/!= empty string in exprs. (hobbs) 4840 48412000-03-27 (bug fix) added uniq'ing test to namespace export list to 4842prevent unnecessary mem growth (hobbs) 4843 48442000-03-29 (bug fix) fixed mem leak when repeatedly sourcing the same 4845bytecompiled (tbc) code repeatedly across different interpreters (hobbs) 4846 48472000-03-29 (config enhancement) improved build support for gcc/mingw on 4848Windows (nijtmans, hobbs) and added RPM target (melski) 4849 48502000-03-31 (bug fix) corrected data encoding problem when using 4851"exec << $data" construct (melski) 4852 48532000-04 (feature enhancement) overhaul of threading mechanism to better 4854support tcl level thread command (new APIs Tcl_ConditionFinalize, 4855Tcl_MutexFinalize, Tcl_CreateThread, etc, all docs in Thread.3). 4856(kupries, graveraux) 4857This enables the tcl level thread extension. (welch) 4858 48592000-04-10 (bug fix) fixed infinite loop case in regexp -all (melski) 4860 48612000-04-13 (config enhancement) added support for --enable-64bit-vis 4862Sparc target. (hobbs) 4863 48642000-04-18 (bug fix) moved tclLibraryPath to thread-local storage to fix 4865possible race condition on MP machines (hobbs) 4866 48672000-04-18 (config enhancement) added MacOS X build target and 4868tclLoadDyld.c dl type. (sanchez) 4869 48702000-04-23 (bug fix) several Mac socket fixes (ingham) 4871 48722000-04-24 (bug fix) fixed hang in threaded Unix case when backgrounded 4873exec process was running (dejong) 4874 4875--- Released 8.3.1, April 26, 2000 --- See ChangeLog for details --- 4876 48772000-04-26 (doc fix) updated/added documentation for many API's and 4878commands (melski) 4879 48802000-05-02 (feature enhancement) added support for joinable threads; 4881extended API's for channels to allow channels to move between threads 4882(kupries) 4883 48842000-05-02 (feature enhancement) changed error return for procedures 4885with incorrect args to be like the Tcl_WrongNumArgs API, with a "wrong 4886# args: ..." message printed, with an args list (hobbs) 4887 48882000-05-08 (feature enhancement) added [array statistics] command 4889 48902000-05-08 (performance enhancement) rewrote Tcl_StringCaseMatch 4891algorithm for better performance; this affects the [string match] 4892command; added "eq" and "ne" operands to expr, for testing 4893string equality and inequality (hobbs) 4894 48952000-05-09 (feature enhancement) extended [lsearch] to support sorted 4896list searches and typed list searches (melski) 4897 48982000-05-10 (feature enhancement) added [namespace exists] command 4899(darley) 4900 49012000-05-18 (build enhancement) added support for mingw compile env and 4902cross-compiling (dejong) 4903 49042000-05-18 (bug fix) corrected clock grammar to properly handle the 4905"ago" keyword when it follows multiple relative unit specifiers 4906(melski) 4907 49082000-05-22 (compile fix) type cast cleanups (dejong) 4909 49102000-05-23 (performance enhancement) added byte-compiled 4911implementation of [return] command and [string] command (melski) 4912 49132000-05-26 (performance enhancement) extended byte-compiled [string] 4914command with support for [string compare/index/match] (hobbs) 4915 49162000-05-27 (feature enhancement) added ability to set [info script] 4917return value ([info script ?newFileName?]) (welch) 4918 49192000-05-31 (feature enhancement) added support for regexp and exact 4920pattern matching for [array names] (gazetta) 4921 49222000-05-31 (feature enhancement) added -nocomplain and -- flags to 4923[unset] to allow for silent unset operation (hobbs) 4924 4925--- Released 8.4a1, June 6, 2000 --- See ChangeLog for details --- 4926 49272000-05-29 (bug fix) corrected resource cleanup in http error cases. 4928Improved handling of error cases in http. (tamhankar) 4929 49302000-07 (feature rewrite) complete rewrite of the Tcl IO channel subsystem 4931to correct problems (hangs, core dumps) with the initial stacked channel 4932implementation. The new system has many more tests for robustness and 4933scalability. There are new C APIs (see Tcl_CreateChannel), but only 4934stacked channel drivers are affected (ie: TLS, Trf, iogt). The iogt 4935extension has been added to the core test code to test the system. 4936(hobbs, kupries) 4937 **** POTENTIAL INCOMPATABILITY **** 4938 49392000-07 (build improvements) cleanup of the makefiles and configure scripts 4940to correct support for building under gcc for Windows. (dejong) 4941 49422000-08-07 (bug fix) corrected sizeof error in Tcl_GetIndexFromObjStruct. 4943(perkins) 4944 49452000-08-07 (bug fix) correct off-by-one error in HistIndex, which was 4946causing [history redo] to start its search at the wrong event index. (melski) 4947 49482000-08-07 (bug fix) corrected setlocale calls for XIM support and locale 4949issues in startup. (takahashi) 4950 49512000-08-07 (bug fix) correct code to handle locale specific return values 4952from strftime, if any. (wagner) 4953 49542000-08-07 (bug fix) tweaked grammar to properly handle the "ago" keyword 4955when it follows multiple relative unit specifiers, as in 4956"2 days 2 hours ago". (melski) 4957 49582000-08-07 (doc fixes) numerous doc fixes to correct SEE ALSO and NAME 4959sections. (english) 4960 49612000-08-07 (bug fix) new man pages memory.n, TCL_MEM_DEBUG.3, Init.3 and 4962DumpActiveMemory.3. (melski) 4963 4964--- Released 8.3.2, August 9, 2000 --- See ChangeLog for details --- 4965 49662000-06 thru 2000-11 (build improvements) Added support for mingw (gcc on 4967Windows), AIX-5 and Win64 builds (dejong, hobbs) 4968 49692000-06-23 (feature enhancement) ability to use Tcl_Obj *s as hash keys (duffin) 4970 49712000-06-29 (new features) added [mcmax] and [mcmset] and extended [unknown] in 4972msgcat package (duperval, krone, nelson) 4973=> msgcat 1.1 4974 49752000-08 thru 2000-09 added tclPlatDecls.h to default install (melski, hobbs) 4976 49772000-08-24 (new feature) Enhanced trace syntax to add: 4978 trace {add|remove|list} {variable|command} name ops command 4979(darley, melski) 4980 49812000-09-06 (cross-platform feature) Set ^Z (\32) as default EOF char. (hobbs) 4982 49832000-09-07 partial fix for bug 2460 to prevent exec mem leak on Windows for the 4984common case (gravereaux) 4985 49862000-09-14 Improved string allocation growth for large strings (hintermayer, 4987melski) 4988 49892000-09-14 New non-panic'ing mem allocation functions Tcl_AttemptAlloc, 4990Tcl_AttemptRealloc, Tcl_AttemptSetObjLength (melski) 4991 49922000-09-20 (new features) completely new, enhanced syntax in tcltest package. 4993Backwards compatable with tcltest v1. (hom) 4994=> tcltest 2.0 4995 49962000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that 4997didn't set nonBlocking correctly when resetting the flags for the write 4998side (mem leak) Correct mem leak in channels when statePtr was released 4999(hobbs) 5000 50012000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason) 5002 50032000-10-06 (bug fix) corrected [file channels] to only return channels in 5004the current interpreter (hobbs) 5005 50062000-10-20 (performance enhancement) call stat only when necessary in 'glob' to 5007speed up command significantly in base cases (hobbs) 5008 50092000-10-27 Fixed mem leak in Tcl_CreateChannel. Re-purified core via test 5010suites. (hobbs) 5011 50122000-10-30 (new feature) add "ja_JP.eucJP" map to "euc-jp" encoding (takahashi) 5013 50142000-11-01 (mem leak) Corrected excessive mem use of info exists on a 5015non-existent array element (hobbs) 5016 50172000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded 5018environment (gravereaux) 5019 50202000-11-03 (new feature) Tcl_SetMainLoop enables defining an event loop for 5021tclsh. This enables Tk as a truly loadable package. (hobbs) 5022 5023--- Released 8.4a2, November 3, 2000 --- See ChangeLog for details --- 5024 50252000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that 5026didn't set nonBlocking correctly when resetting the flags for the write 5027side (mem leak) Correct mem leak in channels when statePtr was released 5028(hobbs) 5029 50302000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason) 5031 50322000-10-06 (bug fix) corrected [file channels] to only return channels in 5033the current interpreter (hobbs) 5034 50352000-10-20 (performance enhancement) call stat only when necessary in 'glob' to 5036speed up command significantly in base cases (hobbs) 5037 50382000-11-01 (mem leak) Corrected excessive mem use of info exists on a 5039non-existent array element (hobbs) 5040 50412000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded 5042environment (gravereaux) 5043 50442000-11-23 (mem leak) fixed potential memory leak in error case of lsort 5045(fellows) 5046 50472000-12-09 (feature enhancement) changed %o and %x to use strtoul instead 5048of strtol to correctly preserve scan<>format conversion of large integers 5049(hobbs) 5050Fixed handling of {!<boolean>} in expressions (hobbs, fellows) 5051 50522000-12-14 (feature enhancement) improved (s)rand for 64-bit platforms 5053(porter) 5054 50552001-01-04 (bug fix) corrected parsing of $tcl_libPath at startup on 5056Windows (porter) 5057 50582001-01-30 (bug fix) Fixed possible hangs in fcopy. (porter) 5059 50602001-02-15 (performance enhancement) improved efficiency of [string split] 5061(fellows) 5062 50632001-03-13 (bug fix) Correctly possible memory corruption in string map {} 5064$str (fellows) 5065 50662001-03-29 (bug fix) prevent potential race condition and security leak in 5067tmp filename creation on Unix. (max) 5068Fixed handling of timeout for threads (corrects excessive CPU usage issue 5069for Tk on Unix in threaded Tcl environment). (ruppert) 5070 50712001-03-30 (bug fix) corrected Windows memory error on exit (wu) 5072Fixed race condition in readability of socket on Windows. 5073 50742001-04-03 (doc fixes) numerous doc corrections and clarifications. 5075Update of READMEs. 5076 50772001-04-04 (build improvements) redid Mac build structure (steffen) 5078Corrected IRIX-5* configure (english). Added support for AIX-5 (hobbs). 5079Added support for Win64 (hobbs). 5080 5081--- Released 8.3.3, April 6, 2001 --- See ChangeLog for details --- 5082 50832000-11-23 (new feature)[TIP 7] higher resolution timer on Windows (kenny) 5084 50852001-01-18 (new feature) Tcl_InitHashTableEx renamed to Tcl_InitCustomHashTable 5086(kupries) 5087 50882001-03-30 (new feature)[TIP 10] support for thread-aware/hot channels (kupries) 5089 50902001-04-06 (new feature)[219280] auto-loading hidden in ::errorInfo (porter) 5091 50922001-04-07 (bug fix)[406709] corrected panic when extra items left on the 5093byte compiler execution stack (sofer) 5094 50952001-04-09 (bug fix)[219136,232558] improved use of thread-safe functions in 5096unix time commands (kenny) 5097 50982001-04-24 (new feature)[TIP 27] started CONST-ification of the Tcl APIs (kenny) 5099 51002001-05-03 (new feature) [auto_import] now matches patterns like 5101[namespace import], not like [string match] (porter) 5102 **** POTENTIAL INCOMPATABILITY **** 5103 51042001-05-07 (new feature)[416643] distinct srand() seed per interp (sofer) 5105 51062001-05-15 (new feature) new Tcl_GetUnicodeFromObj API (hobbs) 5107 51082001-05-16 (performance enhancement) byte-compiled versions of [lappend], 5109[append] simple cases (hobbs) 5110 51112001-05-23 (new feature) added ISO-8859-15 and koi8-u encodings, updated other 5112encoding tables based on http://www.unicode.org/Public/MAPPINGS/ (kuhn) 5113 51142001-05-27 (new feature) updated to Unicode 3.1.0 data set (still using 16 5115bits for Tcl_UniChar though) (hobbs) 5116 51172001-05-30 (new feature)[TIP 15] Tcl_GetMathFuncInfo, Tcl_ListMathFuncs, 5118Tcl_InfoObjCmd, InfoFunctionsCmd APIs (fellows) 5119 51202001-06-08 (bug fix,feature enhancement)[219170,414936] all Tcl_Panic 5121definitions brought into agreement (porter) 5122 51232001-06-12 (bug fix)[219232] regexp returned non-matching sub-pairs to have 5124index pair {-1 -1} (fellows) 5125 51262001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII 5127characters. (hobbs, riefenstahl) 5128 51292001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer) 5130 51312001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings 5132(hobbs, barras) 5133 51342001-07-12 (new feature)[TIP 36] Tcl_SubstObj API (fellows) 5135 51362001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows 5137(hobbs, jsmith) 5138 51392001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size 5140of a channel is changed after channel use has already begun (kupries, porter) 5141 51422001-07-31 (new feature)[TIP 17] TclFS* APIs provide new virtual file 5143system. This includes the addition of 'file normalize', 'file system', 5144'file separator' and 'glob -tails' (darley) 5145 51462001-08-06 (bug fix) removed use of tmpnam in TclpCreateTempFile on Unix (lim) 5147 5148 * improved build support for IRIX, GNU HURD, Mac OS 9 and OS X 5149 5150 * configure scripts revamped for better support of cygwin and gcc on 5151 Windows (mdejong) 5152 5153 * corrected several minor errors noted by Purify (hobbs) 5154 5155--- Released 8.4a3, August 6, 2001 --- See ChangeLog for details --- 5156 51572001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII 5158characters. (hobbs, riefenstahl) 5159 51602001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer) 5161 51622001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings 5163(hobbs, barras) 5164 51652001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows 5166(hobbs, jsmith) 5167 51682001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size 5169of a channel is changed after channel use has already begun (kupries, porter) 5170 51712001-08-06 (bug fix)[442665] corrected object reference counting in [gets] 5172(jikamens) 5173 51742001-08-06 (new feature) added GNU (HURD) configuration target. (brinkmann) 5175 51762001-08-07 (bug fix)[406709] corrected panic when extra items left on the 5177byte compiler execution stack (see test foreach-5.5) (sofer, tallneil, jstrot) 5178 51792001-08-08 (new features) updated packages msgcat 1.1.1, opt 0.4.3, 5180tcltest 1.0.1, dependencies checked (porter) 5181 51822001-08-20 (new feature)[452217] http 2.3.2: include port number in Host: header 5183to comply with HTTP/1.1 spec (RFC 2068) (hobbs, tils) 5184 51852001-08-23 (new feature) added QNX-6 build support (loverso) 5186 51872001-08-23 (bug fix) corrected handling of spaces in path name passed to 5188[exec] on Windows (kenpoole) 5189 51902001-08-24 (bug fix) corrected [package forget] stopping on non-existent 5191package (porter) 5192 51932001-08-24 (bug fix) corrected construction of script library search path 5194relative to executable (porter) 5195 51962001-08-24 (bug fix) [auto_import] now matches patterns like 5197[namespace import], not like [string match] (porter) 5198 **** POTENTIAL INCOMPATABILITY **** 5199 52002001-08-27 (new feature) added Tcl_SetMainLoop() to enable loading Tk as a 5201true package (hobbs) 5202 52032001-08-30 (bug fix) build support for Crays (andreasen) 5204 52052001-09-01 (bug fix) rewrite of Tcl_Async* APIs to better manage thread 5206cleanup (gravereaux) 5207 52082001-09-06 (new feature) http 2.4: honor the Content-encoding and charset 5209parameters; add -binary switch for forcing the issue (hobbs, saoukhi, orwell) 5210=> http 2.4 5211 52122001-09-06 (performance enhancement) rewrite of file I/O flush management on 5213Windows. Approximately 100x speedup for some operations. (kupries, traum) 5214 52152001-09-10 (bug fix) corrected finalization error in TclInExit (darley) 5216 52172001-09-10 (bug fix) protect against alias loops (hobbs) 5218 52192001-09-12 (bug fix) added missing #include in tclLoadShl.c (techentin) 5220 52212001-09-12 (bug fix) script library path construction on Windows no longer 5222uses registry, nor adds the current working directory to the path (porter) 5223 52242001-09-12 (bug fix) correct bugs in compatibility strtod() (porter) 5225 52262001-09-13 (bug fix) Tcl_UtfPrev now returns the proper location when the 5227middle of a UTF-8 byte is passed in (hobbs) 5228 52292001-09-19 (bug fix) [format] and [scan] corrected for 64-bit machines (rmax) 5230 52312001-09-19 (new feature) --enable-64-bit support for HP-11. (hobbs) 5232 52332001-09-19 (new feature) native memory allocator now default on Windows 5234(hobbs) 5235 52362001-09-20 (new feature) WIN64 support and extra processor definitions 5237(hobbs, mstacy) 5238 52392001-09-26 (bug fix) corrected potential deadlock in channels that do not 5240provide a BlockModeProc (kupries, kogorman) 5241 52422001-10-03 (new feature) WIN64 build support (hobbs) 5243 52442001-10-03 (bug fix) correction in thread finalization (rbrunner) 5245 52462001-10-04 (new feature) updated encodings with latest mappings from 5247www.unicode.org (hobbs) 5248 52492001-10-11 (bug fix) corrected cleanup of self-referential bytecodes at 5250interpreter deletion (sofer, rbrunner) 5251 52522001-10-16 (new feature) config support for MacOSX / Darwin (steffen) 5253 52542001-10-16 (new feature, Mac) change in binary extension format from MachO 5255bundles to standard .dylib dynamic libraries like on other unices. 5256 *** POTENTIAL INCOMPATIBILITY *** 5257 52582001-10-18 (bug fix) corrected off-by-one-day error in clock scan with 5259relative months and years during swing hours. (lavana) 5260 5261--- Released 8.3.4, October 19, 2001 --- See ChangeLog for details --- 5262 52632001-08-21 (bug fix)[219184] overagressive compilation of [catch] (sofer) 5264 52652001-08-22 (new feature)[227482] [dde request -binary] (hobbs) 5266=> dde 1.2 5267 52682001-08-30 (performance enhancement)[456668] fully qualified command names use 5269cached Command for all namespaces, avoiding repeated lookups (sofer) 5270 52712001-08-31 (performance enhancement) bytecompiled [list] (hobbs) 5272 52732001-09-02 (bug fix)[403553] Add -Zl to VC++ compile line for tclStubLib to 5274avoid any specific C-runtime library dependence. (gravereaux) 5275 52762001-09-05 (new feature) restored support for Borland compiler (gravereaux) 5277 52782001-09-05 (new feature)[TIP 49] Tcl_OutputBuffered API (schroedter, fellows) 5279 52802001-09-07 (new feature) restored VC++ 5.0 compatibility (gravereaux) 5281 52822001-09-10 (performance enhancement)[TIP 53,451441] [proc foo args {}] now 5283compiles to 0 bytecodes (sofer) 5284 52852001-09-13 (new feature)[TIP 56] Tcl_EvalTokensStandard API (sofer) 5286 52872001-09-13 (new feature) Old ChangeLog entries => ChangeLog.1999 (hobbs) 5288 52892001-09-17 (new feature) compiling with TCL_COMPILE_DEBUG now required to 5290enable all compile and execution tracing (sofer) 5291 *** POTENTIAL INCOMPATIBILITY *** 5292 52932001-09-19 (bug fix)[411825] made TclNeedSpace UTF-8 aware (fellows) 5294 52952001-09-19 (bug fix)[219166] overagressive compilation of "quoted" bodies of 5296[for], [foreach], [if], and [while] (sofer) 5297 52982001-09-19 (performance enhancement) bytecompiled [string match] (hobbs) 5299 53002001-10-15 (new feature)[TIP 35] serial channel configuration: Win (schroedter) 5301 53022001-11-06 (bug fix)[478856] loss of fileevents due to short reads (kupries) 5303 53042001-11-06 (new feature) revitalized makefile.vc (gravereaux) 5305 53062001-11-07 (new feature) Cygwin gcc support dropped. Use mingw (dejong) 5307 *** POTENTIAL INCOMPATIBILITY *** 5308 53092001-11-07 (new feature) Support --include-dir= and --libdir= options to 5310configure. Store in tclConfig.sh as TCL_INCLUDE_SPEC and TCL_LIB_SPEC. 5311(dejong) 5312 *** POTENTIAL INCOMPATIBILITY *** 5313 53142001-11-08 (new feature) Enable --enable-threads on FreeBSD (dejong) 5315 53162001-11-08 (new feature) New make target 'make gdb' (dejong) 5317 53182001-11-09 (bug fix)[480176] [global] mishandled varnames matching :* (porter) 5319 53202001-11-12 (new feature)[TIP 22,33,45] new command [lset], 5321[lindex] extended to accept multiple indices. (kenny, hobbs) 5322 53232001-11-16 (new feature) new configure option --enable-langinfo=no. 5324By default, nl_langinfo() is used on Unix to determine system encoding. 5325Tcl's built-in system is used only if that fails, or configured with 5326--enable-langinfo=no. (hobbs, wagner) 5327 53282001-11-19 (new feature)[TIP 62] A Tcl_VarTraceProc can now return Tcl_Obj * 5329or a dynamic string as well as a static string to indicate an error (fellows) 5330 53312001-11-19 (new feature)[TIP 73] Tcl_GetTime API (kenny) 5332 53332001-11-19 (bug fix)[478847] overflows in [time] of >2**31 microseconds (kenny) 5334 53352001-11-29 (performance enhancement) caching scheme added to [binary scan] 5336(fellows) 5337 53382001-12-05 (new feature) new algorithm for [array get] adds safety when read 5339traces modify the array. (sofer) 5340 *** POTENTIAL INCOMPATIBILITY *** 5341 53422001-12-10 (bug fix)[490514] doc fixes (porter,english) 5343 53442001-12-18 (new feature) removed unix/dltest/configure; unix/configure does 5345all (dejong) 5346 53472001-12-19 (new feature) New make target 'make shell' (dejong) 5348 53492001-12-21 (new feature) MaxOSX / Darwin support (steffen) 5350 53512001-12-28 (new feature) new command [memory onexit] replaces [checkmem] when 5352compiled with TCL_MEM_DEBUG. Added documentation. (porter) 5353 *** POTENTIAL INCOMPATIBILITY *** 5354 53552001-12-28 (bug fix) proper case in [auto_execok] use of $env(COMPSPEC) (hobbs) 5356 53572002-01-05 (feature rewrite) Tcl_Main() rewritten and documentation improved. 5358Interactive operation and event loop operation (via Tcl_SetMainLoop) now 5359interleave cleanly. Also more robust against strange happenings. (porter) 5360 53612002-01-17 (bug fix)[504642] Tcl_Obj refCounts in [gets] (griffen,kupries) 5362 53632002-01-21 (bug fix)[506297] infinite loop writing in iso2022-jap encoding 5364(forssen,kupries) 5365 53662002-01-24 (HTTP server bug workaround)[504508] leave the default port out 5367of the Host: header value 5368=> http 2.4.1 (hobbs) 5369 53702002-01-25 (new feature)[496733] socket options -eofchar and -translation 5371return read-only values (dejong) 5372 53732002-01-28 (new feature) Old ChangeLog entries => ChangeLog.20900 (hobbs) 5374 53752002-01-28 (performance enhancement) bytecompiled [regexp] for trivial cases 5376that amount to string matching. Also -nocase and --. (hobbs) 5377 53782002-02-05 (bug fix) [http::error] called when [::error] intended 5379=> http 2.4.2 (porter) 5380 53812002-02-05 (bug fix)[465765] avoid zero-byte writes to STREAMs 5382(talcott,kupries) 5383 53842002-02-06 (performance enhancement) [regsub] special cases that map to 5385[string map] detected. (hobbs) 5386 53872002-02-06 (bug fix)[495213] [scan] accept 0x as prefix of base 16 value 5388(hobbs) 5389 53902002-02-10 (new feature)[TIP 32,79] Tcl_CreateObjTrace API (kenny) 5391 53922002-02-12 (new feature) partial support for DJGPP Tcl on DOS (gravereaux) 5393 53942002-02-14 (mem leak) Fixed leaking an empty Tcl_Obj when [gets $chan] 5395errored out. (kupries, sofer) 5396 53972002-02-15 (new feature)[TIP 72] support for 64-bit integer values on 539832-bit platforms and ability to work with >2GiB files. Extends many 5399commands. See ChangeLog and TIP for details. 5400 *** POTENTIAL INCOMPATIBILITY *** 5401 54022002-02-22 (bug fix)[476537] Fix panic when loading shared library without 5403proper use of stubs on platform without backlinking (porter) 5404 54052002-02-22 (new feature) 64-bit support for xlc compiler on AIX-4 (hobbs) 5406 54072002-02-22 (new feature)[521560] Removed limits on filename length and 5408format [source]able through the Safe Base (hobbs) 5409 54102002-02-22 (performance enhancement) optimized bytecodes for [if], [for], 5411[while] and constant conditions (sofer) 5412 54132002-02-22 (new feature)[TIP 76] [regsub] can now return result (fellows) 5414 54152002-02-25 (bug fix)[495207] buffer overrun when closing ] left out of 5416argument to [subst] (sofer, english) 5417 54182002-02-25 (bug fix)[514392] [load] updated for Mac OS X 10.1 (steffen) 5419 54202002-02-26 (bug fix) [info hostname] choked on names >31 characters (hobbs) 5421 54222002-02-26 (new feature)[TIP 35] serial channel configuration: Unix 5423(schroedter, hobbs) 5424 54252002-02-25 (bug fix)[483575] [fconfigure ... -error] now no-op on Mac (kupries) 5426 54272002-02-28 (performance enhancement)[458872] fully qualified command names use 5428cached Command for all namespaces, avoiding repeated lookups (sofer) 5429 5430 * (new feature)[TIP 27] completed CONST-ification of TCL APIs. 5431Added compiler macro USE_NON_CONST to keep using those old API prototypes 5432that present irreconcilable source incompatibilities with header files 5433of prior Tcl releases. Others will need to be reconciled. 5434 *** POTENTIAL INCOMPATIBILITY *** 5435 54362002-03-04 (bug fix)[474358, 218099, 219314, 524674] fixed several problems 5437related to the handling of iso2022 text and finalization of escape-based 5438encodings. (taguchi, takahashi, hobbs) 5439 5440--- Released 8.4a4, March 5, 2002 --- See ChangeLog for details --- 5441 54422002-03-06 (new feature)[TIP 80] expanded [lsearch] options (wilkason, fellows) 5443 54442002-03-07 (new feature)[TIP 87] [interp recursionlimit] (trier) 5445 54462002-03-08 (platform feature) mingw 1.1 build favored (dejong) 5447 54482002-03-20 (new feature)[TIP 27] CONST-ified variable access functions (porter) 5449 54502002-03-24 (bug fix)[511666,511658,523217,530960] expanded 5451Tcl_FSMatchInDirectory to handle assorted [glob] bugs in VFS. (darley) 5452 *** POTENTIAL INCOMPATIBILITY with prior 8.4a releases *** 5453 54542002-03-25 (bug fix)[495726] stopped tcltest disabling of auto-loading (porter) 5455 54562002-03-25 (bug fix)[495977] allow \n in test constraints (porter) 5457 54582002-03-27 (platform support)[527941,533862] VC/winhelp/W9X (spjuth, 5459gravereaux) 5460 54612002-03-28 (bug fix)[219181] exception at level 0 issues (sofer) 5462 54632002-03-28 (bug fix)[219362] command termination; Tcl_CreateTrace (knoll,sofer) 5464 54652002-04-05 (bug fix)[536879] exceptions during variable subst (porter) 5466 54672002-04-15 (bug fix)[497446,513983] tcltest syntax errors now raised (porter) 5468 ***POTENTIAL INCOMPATIBILITY with prior tcltest 2.0.* (8.4aX)*** 5469 54702002-04-17 (bug fix)[495660] [(save|restore)state] deprecated (porter) 5471 54722002-04-17 (bug fix)[526524] escape-based encodings corrected (yamamoto, hobbs) 5473 54742002-04-18 (bug fix)[542588] [expr] error msgs improved (ehrens, sofer) 5475 54762002-04-18 (bug fix)[545325] [info level $level] now returns [namespace eval] 5477as documented (suchenwirth,sofer) 5478 54792002-04-19 (bug fix)[544727] export [mcload]; ns context of [mcmax] (porter) 5480=> msgcat 1.2.3 5481 54822002-04-22 (performance enhancement) threaded memory allocator (AOL, hobbs) 5483 54842002-04-24 (new feature) TCLTK_NO_LIBRARY_TEXT_RESOURCES #define disables 5485inclusion of tcl library code in resource fork on Mac. (steffen) 5486 54872002-05-21 (platform support) static libs on OSF (dejong) 5488 54892002-05-24 (bug fix)[557878] set encoding on listening socket (staplin, 5490kupries) 5491 54922002-05-24 (new feature)[TIP 91] Tcl_Seek compatibility (fellows) 5493 54942002-05-28 (bug fix)[545579] VFS [load] left temp file (darley) 5495 54962002-05-28 (bug fix)[559376] plug timezone env leak on Windows (hobbs) 5497 54982002-05-29 (performance enhancement) [string compare] optimized (hobbs,fellows) 5499 55002002-05-31 (bug fix)[550534] plug interp leak in [pkg_mkIndex] (helmut) 5501 55022002-05-31 (dead code)[474335,555635] removed all use of matherr() (english) 5503 *** POTENTIAL INCOMPATIBILITY *** 5504 55052002-06-04 (new feature)[TIP 85,521362] custom result match in tcltest 5506(markus, porter) 5507=> tcltest 2.1 5508 55092002-06-06 (bug fix)[524352] encoding, threading, and environment issues on 5510MacOSX (steffen) 5511 55122002-06-06 (bug fix)[512214,558742,512214,461000] lazy initialization of 5513tcltest constraints (porter) 5514 55152002-06-07 (bug fix)[563122,564595] EOVERFLOW definitions (fellows) 5516 55172002-06-11 (bug fix)[567386] [info locals] corrections (sofer) 5518 55192002-06-14 (new feature)[TIP 102] [trace list] renamed [trace info] (fellows) 5520 55212002-06-17 (new feature)[525522,525525] msgcat support for XPG4 locales; 5522examination of LC_ALL, LC_MESSAGES environment variables (haible, porter) 5523=> msgcat 1.3 5524 55252002-06-17 (new feature)[565088] header files assume modern C compiler by 5526default; older compilers may need configuration (english) 5527 *** POTENTIAL INCOMPATIBILITY *** 5528 55292002-06-17 (bug fix)[554068] [exec] argument quoting on Windows (darley) 5530 55312002-06-17 (new feature)[TIP 62,462580] command execution traces (lavana) 5532 55332002-06-19 (bug fix)[558324] regexp sets a linked variable (watson) 5534 5535 * (performance enhancment) optimizations of bytecode execution (sofer) 5536 55372002-06-21 (new feature)[TIP 99,562970] new [file link] command (darley) 5538 55392002-06-24 (new feature)[TIP 101] new [tcltest::configure] command (porter) 5540=> tcltest 2.2 5541 55422002-06-25 (new feature) --enable-man-symlinks and --enable-man-compression 5543options to configure (max) 5544 55452002-06-26 (bug fix)[565880] [clock format] now respects locale (max) 5546 *** POTENTIAL INCOMPATIBILITY *** 5547 55482002-07-03 (bug fix)[577015] [catch] catches even compile errors (sofer) 5549 5550--- Released 8.4b1, July 5, 2002 --- See ChangeLog for details --- 5551 55522002-07-08 (bug fix) restored compatibility of [viewFile] in tcltest (porter) 5553 55542002-07-11 (bug fix) [file normalize] returns long form on Win 95/98/ME (darley) 5555 55562002-07-15 (performance enhancment) variable operations rewritten to store 5557 and use cached Var pointers (sofer) 5558 55592002-07-22 (bug fix)[218000] Inf and Nan are floating-point values (fellows) 5560 55612002-07-23 (platform support)[219220] 64-bit compile on IRIX (dejong) 5562 55632002-07-25 (bug fix)[219218] return codes in background errors (english) 5564 55652002-07-28 (bug fix)[582522] alias fires exec traces (sofer) 5566 55672002-07-29 (bug fix)[578363] regexp (fellows,pvgoran) 5568 55692002-07-30 (bug fix)[584603] WriteChars infinite loop non-UTF-8 string (kupries) 5570 55712002-08-04 (new feature)[584051,580433,585105,582429][TIP 27] Tcl interfaces 5572 are now fully CONST-ified. Use the symbols USE_NON_CONST or 5573 USE_COMPAT_CONST to select interfaces with fewer changes. 5574 *** POTENTIAL INCOMPATIBILITY *** 5575 55762002-08-05 (bug fix)[589859] tcltest setup and cleanup scripts skipped when 5577 test body is skipped (porter) 5578 => tcltest 2.2 5579 55802002-08-07 (bug fix)[587488] mem leak with USE_THREAD_ALLOC (sofer,sass) 5581 55822002-08-07 (feature enhancement)[584794,584650,472576] boolean values 5583 are no longer always re-parsed from string. (sofer) 5584 5585Many internal bugs fixed. 5586Considerable cleanup of the test suite. 5587 5588--- Released 8.4b2, August 9, 2002 --- See ChangeLog for details --- 5589 55902002-08-20 (new feature) --enable-memdebug configure option (kupries) 5591 55922002-08-23 (bug fix)[597936] mem leak with USE_THREAD_ALLOC (sofer,zoran) 5593 55942002-08-26 (bug fix)[599788] segfault in compiler (sofer,wilkason) 5595 55962002-08-28 (bug fix)[414910] avoid mem leaks accessing environment variables 5597 on Windows (welton,gravereaux) 5598 55992002-08-31 (platform support)[TIP 108] Mac OS X port (steffen,ingham) 5600 56012002-09-02 (platfrom support) 64-bit compile on HP-11 (martin) 5602 5603--- Released 8.4.0, September 10, 2002 --- See ChangeLog for details --- 5604 56052002-09-18 (platform support) Updated support for compiling with Cygwin and 5606either mingw or gcc. (khan, howell, dejong) 5607 56082002-09-22 (bug fix)[612786, 611922] Corrected [puts -nonewline] within 5609test bodies. Also corrected reporting of body return code. Updated tcltest 5610to v2.2.1. 5611 56122002-09-24 (bug fix)[613117] More robust 64-bit wide integer value 5613detection (fellows) 5614 56152002-09-26 (bug fix) correct overeager optimization of noop proc to handle 5616the precompiled case. (sofer, hobbs) 5617 56182002-09-26 (bug fix)[615115] removed extraneous spaces in koi8-u.enc that 5619confused encoding reader. 5620 56212002-09-29 (bug fix)[219355] Added proper exiting conditions using Win32 5622console signals. This handles the existing lack of a Ctrl+C exit to call 5623exit handlers when built for thread support. Also, properly handles exits 5624from other conditions such as CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and 5625CTRL_SHUTDOWN_EVENT signals. In all cases, exit handlers will be called. 5626(gravereaux) 5627 56282002-09-30 (bug fix) improve the checking for bad regular expressions 5629during regexp compilation. Resultant compiles were correct, but much 5630slower than necessary. (hobbs) 5631 56322002-10-01 (bug fix) fix precompiled locals to support 8.3 precompiled 5633code. (hobbs) 5634 56352002-10-09 (bug fix)[620735] Added code to set an exit handler on Windows 5636that terminates the thread that calibrates the performance counter, so that 5637the thread won't outlive unloading the Tcl DLL. (kenny) 5638 56392002-10-09 (build support) all --enable-symbols to take the enhanced 5640options yes|no|mem|compile|all. (hobbs) 5641 56422002-10-10 (build support) enable USE_THREAD_ALLOC (new threaded allocator) 5643by default on Windows. (hobbs, gravereaux) 5644 56452002-10-14 (bug fix)[623269] correct possible mem leak in 5646Tcl_PutEnv. (brouwers) 5647 56482002-10-15 (bug fix)[615043] fix in execution traces with idle tasks 5649firing. (lavana) 5650 56512002-10-15 (platform support) Correct AIX-5 ppc and 4/5 64-bit build flags. 5652Correct HP 11 64-bit gcc building. (martin, hobbs) 5653 56542002-10-17 (bug fix)[624755] Fixed code that check for proper # of args to 5655[array names] (porter) 5656 56572002-10-18 (feature enhancement)[625453] Added support for broadcasting 5658changes to the registry Environment on Windows. Updated registry package 5659to v1.1. (hobbs) 5660 56612002-10-22 (platform support)[624509] On macosx, add embedded framework 5662dirs to tcl_pkgPath: @executable_path/../Frameworks and 5663@executable_path/../PrivateFrameworks (if they exist), as well as the dirs 5664in DYLD_FRAMEWORK_PATH (if set). (steffen) 5665 5666--- Released 8.4.1, October 22, 2002 --- See ChangeLog for details --- 5667 56682002-10-28 (bug fix)[627660] [package unknown] chaining for platform specifics 5669 56702002-10-29 (bug fix)[627546] verbose [load] (dyld) error mesages on MacOSX 5671 56722002-11-01 (bug fix) [package provide registry] consistent versions. 5673 56742002-11-06 (bug fix)[582039] missing ar program -> configuration error 5675 56762002-11-06 (feature enhancement) added new TclInThreadExit function to 5677test for thread exit vs whole process exit condition. The TclInExit 5678function now correctly returns 1 during Tcl_Finalize processing. 5679 *** POTENTIAL INCOMPATIBILITY *** 5680 56812002-11-13 (bug fix)[615043] some execution traces were not firing 5682 56832002-11-18 (bug fix)[634856] multiple signs no longer accepted as valid integer 5684[string is integer ++1] => 0 5685 *** POTENTIAL INCOMPATIBILITY *** 5686 56872002-11-26 (bug fix)[593810,597924] clean exit of channel worker threads on Win 5688 56892002-11-28 (new feature) `make valgrind` target 5690 56912002-12-03 (bug fix)[615304] repeated load/unload of Tcl now possible 5692 56932002-12-11 (bug fix)[647307] negative return codes now propagated by procs 5694 56952002-12-11 (bug fix)[648441] syntax error in [expr 0x] now detected. 5696 56972003-01-07 (bug fix)[633204] [catch {return}] => 2 (not 0) 5698 56992003-01-09 (bug fix)[634151] [file (a|m)time $nonASCIIpath $time] now works 5700 57012003-01-16 (bug fix) dde eval with {} service name does not crash. 5702=> dde 1.2.1 5703 57042003-01-16 (bug fix)[635200,655645,615043,571385] many command trace fixes 5705 57062003-01-31 (bug fix)[675614,678415,676978] tcltest conflicts in cleanup 5707and -outfile; also failure in space-containing path; also missing [close] 5708=> tcltest 2.2.2 5709 57102003-02-01 (bug fix)[670042] corrected [info loaded {}] for static 5711packages in multiple interps. 5712 57132003-02-01 (bug fix)[675356] [clock clicks {}]; [clock clicks -] - syntax errs 5714 57152003-02-01 (bug fix)[656660] MT-safety for [clock format] 5716 57172003-02-03 (bug fix)[651271] command rename traces get fully-qualified names 5718 *** POTENTIAL INCOMPATIBILITY *** 5719 57202003-02-07 (performance improvement) [glob] on Windows is 2.5 times faster 5721 57222003-02-07 (feature change) lack of Cygwin support indicated by config error 5723 57242003-02-11 (bug fix)[684744] [info complete] stopped by \x00 5725 57262003-02-11 (bug fix)[685445] [glob -types l] missed broken symlinks on Unix 5727 57282003-02-11 (bug fix) [lsearch -regexp $a $a] doesn't crash 5729 57302003-02-13 (bug fix)[685926] accept non-ASCII7 for tcl_platform(user) on Win 5731 57322003-02-15 (bug fix)[673714] stop crash when Tcl_DeleteEvents deletes last 5733 57342003-02-15 (bug fix)[681841] parser missed some missing ] syntax errors 5735 57362003-02-17 (bug fix)[684756] memory leak during command rename plugged 5737 57382003-02-18 (bug fix)[689100] reduced per-thread memory overhead 5739 57402003-02-18 (platform support)[651811] use xnet library on HP 11 (64 bit). 5741 57422003-02-20 (bug fix)[Patch 689341] correct jis round-trip encoding 5743 57442003-02-20 (bug fix)[689835] stop MacOSX hang trying to read a write-only pipe 5745 57462003-02-07 (performance improvement) [tclPkgUnknown]: fewer vfs calls 5747 57482003-02-18 (platform support) cut and splice procs for file channels on Mac 5749 57502003-02-21 (bug fix)[690774] [binary scan] failed on some wide ints 5751 57522003-02-22 (bug fix)[571002] plugged data leak during thread exit 5753 57542003-02-25 (feature change) [pkg_mkIndex -load]: case-insensitive match 5755 *** POTENTIAL INCOMPATIBILITY *** 5756 57572003-02-27 (bug fix)[694232] stop [lsearch -start 0 {} x] segfault 5758 5759--- Released 8.4.2, March 3, 2003 --- See ChangeLog for details --- 5760 57612003-03-06 (bug fix)[699042] Correct case-insensitive unicode string 5762comparison in Tcl_UniCharNcasecmp 5763 57642003-03-11 (bug fix) Corrected loading of tclpip8x.dll on Win9x 5765 57662003-03-12 (bug fix)[702383] Corrected parsing of interp create -- 5767 57682003-03-12 (bug fix)[685106] Correct Tcl_SubstObj handling of \x00 bytes 5769 57702003-03-14 (bug fix)[702622 699060] Correct wide int issues in 'format' 5771 57722003-03-14 (bug fix)[698146] Remove assumption that file times and longs 5773are the same size. 5774 57752003-03-18 (bug fix)[697862] Allow Tcl to differentiate between reparse 5776points which are symlinks and mounted drives on Windows 5777 57782003-03-19 (bug fix)[705406] Bad command count on TCL_OUT_LINE_COMPILE 5779 57802003-03-20 (bug fix)[707174] Store pointers to notifier funcs in a struct 5781to work around some platform linker issues 5782 57832003-03-22 (bug fix)[708218] Load correct (non-)debug dll for dde or 5784registry 5785 57862003-03-24 (bug fix)[631741 696893] Fixing ObjMakeUpvar's lookup algorithm 5787for the created local variable 5788 57892003-04-07 (bug fix)[713562] Make sure that tclWideIntType is defined and 5790somewhat sensible everywhere 5791 57922003-04-07 (bug fix)[711371] Corrected string limits of arguments 5793interpolated in error messages for 'if' 5794 57952003-04-11 (bug fix)[718878] Corrected inconsistent results of 5796[string is integer] observed on systems where sizeof(long) != sizeof(int) 5797 57982003-04-12 (bug fix) Substantial changes to the Windows clock synch 5799phase-locked loop in a quest for improved loop stability 5800 58012003-04-16 [713562] Made changes so that the "wideInt" Tcl_ObjType is 5802defined on all platforms, even those where TCL_WIDE_INT_IS_LONG is defined. 5803Also made the Tcl_Value struct have a wideValue field on all platforms. 5804Potential incompatibility for TCL_WIDE_INT_IS_LONG platforms because that 5805struct changes size. 5806 *** POTENTIAL INCOMPATIBILITY *** 5807 58082003-04-25 (bug fix)[727271] Catch any errors returned by the Windows 5809functions handling TLS ASAP instead of waiting to get some mysterious crash 5810later on due to bogus pointers. 5811 58122003-04-29 (bug fix) Correct 'glob -path {[tcl]} *', where leading 5813special character instead lists files in '/'. Bug only occurs on Windows 5814where '\' is also a directory separator. 5815 58162003-05-09 (bug fix)[731754] Fixed memory leak in threaded allocator on 5817Windows caused by treating cachePtr as a TLS index 5818 58192003-05-10 (bug fix)[710642] Ensure cd is thread-safe 5820 58212003-05-10 (bug fix)[718002] Correct mem leak on closing a Windows serial 5822port 5823 58242003-05-10 (bug fix)[714106] Prevent string repeat crash when overflow 5825sizes were given (throws error). 5826 58272003-05-13 (feature enhancement)[736774] Use new versioned bundle resource 5828API to get tcl runtime library for TCL_VERSION on Mac OS X. 5829 58302003-05-13 (bug fix)[711232] Worked around the issue of realpath() not 5831being thread-safe on Mac OS X by defining NO_REALPATH for threaded builds 5832on Mac OS X. 5833 58342003-05-14 (bug fix)[557030] Correct handling of the gb2312 encoding by 5835making it an alias of the euc-cn encoding and creating a gb2312-raw 5836encoding for the original. Most uses of gb2312 really mean euc-cn. 5837 58382003-05-14 (bug fix)[736421] Corrected another putenv() copy behavior 5839problem when compiling on Windows and using Microsoft's runtime. 5840 5841--- Released 8.4.3, May 20, 2003 --- See ChangeLog for details --- 5842 58432003-05-23 (bug fix)[726018] reverted internals change to the 5844'cmdName' Tcl_ObjType that broke several extensions (TclBlend, e4graph...) 5845in the 8.4.3 release. 5846 58472003-06-10 (bug fix)[495830] stop eval of bytecode in deleted interp. 5848 58492003-06-17 (bug fix) corrections to regexp when matching emtpy string. 5850 58512003-06-25 (bug fix)[748957] -*ieee compiler flags for Tru64 builds. 5852 58532003-07-11 (bug fix) [pkg_mkIndex] indexes provided packages, not indexed ones. 5854 58552003-07-15 (feature enhancement) MacOSX build system rewrite. 5856 58572003-07-15 (bug fix)[771613] corrected segfault in [if] (buffer overflow) 5858 58592003-07-16 (bug fix)[756791] corrected assumption that Tcl_Free == free 5860 58612003-07-16 (feature enhancement) -DTCL_UTF_MAX=6 compile option forces 5862internal UCS-4 representation of Unicode (default is recommended UCS-2). 5863 58642003-07-16 (bug fix)[767578] 64-bit corrections in thread notifier. 5865 58662003-07-16 (bug fix)[759607] Safe Base tests normalized paths. 5867 58682003-07-16 (feature enhancement)[Patch 679315] improved Cygwin path support 5869 58702003-07-18 (bug fix)[706359] corrected broken -output option of [tcltest::test] 5871=> tcltest 2.4.4 5872 58732003-07-18 (bug fix)[753315] MT-safety of VFS records. 5874 58752003-07-18 (bug fix)[759888] support for user:pass in URL by [http::geturl] 5876=> http 2.4.4 5877 5878Improved documentation, new tests, and some code cleanup. 5879[655300, 720634, 735364, 748700, 756112, 756744, 756951, 758488, 760768, 5880763312, 769895, 771539, 771840, 771947, 771949, 772333] 5881 5882--- Released 8.4.4, July 22, 2003 --- See ChangeLog for details --- 5883 58842003-07-23 (bug fix)[775976] fix registry compilation for VC7. 5885 58862003-08-05 (enhancement)[781585] Use Tcl_ResetResult in bytecodes to 5887prevent potential costly Tcl_Obj duplication. 5888 58892003-08-06 (bug fix)[781609] prevent non-Windows platforms from trying to 5890use the registry package inside msgcat. 5891 58922003-08-27 (bug fix)[411825] Fix TclNeedSpace to handle non-breaking space 5893(\u00A0) and backslash escapes correctly. 5894 58952003-09-01 (bug fix)[788780] Fix thread-safety issues in filesystem records. 5896 58972003-09-19 (bug fix)[804681] Protect ::errorInfo and ::errorCode traces 5898from corrupting stack. 5899 59002003-09-23 (bug fix)[218871] Fix handling of glob-sensitive chars in 5901auto_load and auto_import. 5902 59032003-10-03 (bug fix)[811483] Fixed refcount management for command and 5904execution traces. 5905 59062003-10-04 (bug fix)[789040] Fixed exec command.com error for Win9x. 5907 59082003-10-06 (bug fix)[767834, 813273] Fixed volumerelative file 5909normalization and 'file join' inconsistencies. 5910 59112003-10-08 (bug fix)[769812] Fix Tcl_NumUtfChars string length calculation 5912when negative parameter is given. 5913 59142003-10-22 (bug fix)[800106] Handle VFS mountpoints inside glob'd dirs. 5915 59162003-10-22 (bug fix)[599468] Watch for FD_CLOSE too on Windows when 5917asked for writable events by the generic layer. 5918 59192003-10-23 (bug fix)[813606] Detect OS X pipes correctly. 5920 59212003-11-05 (bug fix)[832657] Allow .. in libpath initialization. 5922 59232003-11-11 (bug fix) Improve AIX-64 build configuration. 5924 59252003-11-17 (bug fix)[230589, 504785, 505048, 703709, 840258] fixes to 5926various odd regexp "can't happen" bugs. 5927 5928--- Released 8.4.5, November 20, 2003 --- See ChangeLog for details --- 5929 59302003-12-02 (bug fix)[851747] object sharing fix in [binary scan] 5931 59322003-12-09 (platform support)[852369] update errno usage for recent glibc 5933 59342003-12-12 (bug fix)[858937] fix for [file normalize ~nobody] 5935 59362003-12-17 (bug fix)[839519] fixed two memory leaks (vasiljevic) 5937 59382004-01-09 (bug fix)[873311] fixed infinite loop in TclFinalizeFilesystem 5939 59402004-02-02 (bug fix)[405995] Tcl_Ungets buffer filling fix 5941 59422004-02-04 (bug fix)[833910] tcltest command line option parsing error 5943=> tcltest 2.4.5 5944 59452004-02-04 (bug fix)[833637] code error in tcltest -preservecore operation 5946 59472004-02-12 (feature enhancement) update HP-11 build libs setup 5948 59492004-02-17 (bug fix)[849514,859251] corrected [file normailze] of $link/.. 5950 59512004-02-17 (bug fix)[772288] Unix std channels forced to exist at startup. 5952 59532004-02-17 (new default) tcltest::configure -verbose {body error} 5954 59552004-02-19 (bug fix) init.tcl search path with unusual --libdir (samson) 5956 59572004-02-25 (bug fix)[554068] stopped broken [exec] quoting of { (gravereaux) 5958 59592004-02-25 (bug fix)[888777] plugged memory leak with long host names (cassoff) 5960 59612004-03-01 (bug fix)[462580] corrected level interpretation of Tcl_CreateTrace 5962 59632004-03-01 (platform support)[218561] Allow 64-bit configure on IRIX64-6.5* 5964 5965--- Released 8.4.6, March 1, 2004 --- See ChangeLog for details --- 5966 59672004-03-08 (bug fix)[910525] [glob -path] in root directory (darley) 5968 59692004-03-15 (bug fix)[916795] syntax error -> compiler segfault (sofer,porter) 5970 59712004-03-29 (bug fix)[920667] install into any Unicode path on Win (hobbs) 5972 59732004-03-31 (bug fix)[811457] support translation to "" (porter) 59742004-03-31 (bug fix)[811461] ignore locales with no "language" part (porter) 5975=> msgcat 1.3.2 5976 59772004-04-07 (platform support) properly substitute more values in Windows 5978tclConfig.sh (hobbs) 5979 59802004-04-23 (bug fix)[930851] reset channel EOF when eofchar changes (kupries) 5981 59822004-05-03 (bug fix)[947070] stack overflow prevention on Win (kenny) 5983 59842004-05-03 (bug fix)[868853] fix leak in [fconfigure $serial -xchar] (cassoff) 5985 59862004-04-05 (bug fix)[928353,929892,928808,947440,948177] test fixes: OSX 5987(abner) 5988 59892004-05-04 (bug fix) crash: [cd] w/ volumerelative $HOME (hobbs) 5990 59912004-05-05 (bug fix)[794839] socket connect error -> r/w fileevents 5992(gravereaux) 5993 59942004-05-14 (bug fix)[940278,922848] [clock] notices $::env(TZ) changes, 5995gmt works on all platforms. (kenny, welton, glessner) 5996 59972004-05-18 (bug fix)[500285,500389,852944] [clock %G %V] ISO8601 week numbers 5998(kenny) 5999 60002004-05-22 (bug fix)[735335,736729] variable name resolution error (sofer) 6001 60022004-05-24 (bug fix) support for non-WIDE_INT aware math functions (hobbs) 6003 60042004-05-25 (new feature) [http::config -urlencoding] (hobbs) 6005=> http 2.5.0 6006 60072004-05-26 (bug fix)[960926] file count doubled when -singleproc 1 (porter) 6008=> tcltest 2.2.6 6009 60102004-05-27 (bug fix)[949905] corrected utf-8 encoding of \u0000 on I/O (max) 6011 60122004-06-05 (bug fix)[976722] hi-res clock fixes: Win 6013(godfrey, suchenwirth, kenny) 6014 60152004-06-10 (bug fix)[932314] bad return values from Tcl_FSChdir() (vasiljevic) 6016 60172004-06-14 (bug fix) correct dde hangs w/non-responsive apps (thoyts) 6018=> dde 1.2.3 6019 60202004-06-21 (platform support) exceptions w/ gcc -O3 on Win (dejong) 6021 60222004-06-29 (bug fix)[981733] SafeBase global pollution (fellows) 6023 60242004-07-02 (new feature)[TIP 202] pipe redirection 2>@1 (hobbs) 6025 60262004-07-03 (bug fix)[908375] round() wide integer support (lavana, sofer) 6027 60282004-07-15 (bug fix)[770053] crash in thread finalize of notifier (vasiljevic) 6029 60302004-07-15 (bug fix)[990453] plug mutex leaks on reinit 6031(mistachkin, vasiljevic) 6032 60332004-07-16 (bug fix)[990500] clean exit of notifier thread 6034(mistachkin, kupries) 6035 60362004-07-19 (bug fix)[987967] improved self-init of mutexes on Win (vasiljevic) 6037 60382004-07-19 (bug fix)[874058] improved build configuration on 64-bit systems. 6039Corrects Tcl_StatBuf definition issues. (hobbs) 6040 60412004-07-20 (bug fix) pure Darwin/CFLite support (steffen) 6042 60432004-07-20 (bug fix)[736426] plug leaky allocator reinit (mistachkin, kenny) 6044 6045--- Released 8.4.7, July 26, 2004 --- See ChangeLog for details --- 6046 60472004-07-28 (bug fix)[999084] no deadlock in re-entrant Tcl_Finalize (porter) 6048 60492004-08-10 (bug fix) thread IDs on 64-bit systems (ratcliff,vasiljevic) 6050 60512004-08-13 (bug fix) avoid malicious code acceptance by [mclocale] (porter) 6052=> msgcat 1.3.3 6053 60542004-08-16 (bug fix)[1008314] Tcl_SetVar TCL_LIST_ELEMENT (sofer,porter) 6055 60562004-08-19 (bug fix)[1011860] [scan %ld] fix on LP64 (fellows,porter) 6057 60582004-08-30 (bug fix) [string map $x $x] crash (fellows) 6059 60602004-09-01 (bug fix)[1020445] WIN64 support (hobbs) 6061 60622004-09-07 (bug fix)[1016167] [after] overwrites its imports (kenny) 6063 60642004-09-08 (bug fix) fixed [clock format 0 -format %k] (kenny) 6065 60662004-09-09 (bug fix)[560297] fixed broken [namespace forget] logic (porter) 6067 60682004-09-09 (bug fix)[1017299] fixed [namespace import] cycle prevention (porter) 6069 60702004-09-10 (performance) $x[set x {}] is now fast [K $x [set x {}]] (sofer) 6071 60722004-09-10 (bug fix)[868489] better control over int <-> wideInt (fellows,kenny) 6073 60742004-09-10 (bug fix)[1025359] POSIX errorCode from wide seeks (kupries,fellows) 6075 60762004-09-18 (bug fix)[868467] fix [expr 5>>32] => 0, not 5 (hintermayer,fellows) 6077 60782004-09-23 (bug fix)[1016726] fix `make clean` in static config (leitgeb,dejong) 6079 60802004-09-29 (bug fix)[1036649] syntax error in [subst] => buffer overflow (sofer) 6081 60822004-09-30 (bug fix)[1038021] save/restore error state: var traces (porter) 6083 60842004-10-08 (bug fix)[954263] case insensitive [file exec] for Win (hobbs,darley) 6085 60862004-10-14 (performance) [info commands/globals/procs/vars $pattern] faster 6087 when $pattern is trivial (fellows) 6088 60892004-10-28 (bug fix)[1030548] restore the --enable-symbols --enable-threads 6090 build on Win (mistachkin,kenny,kupries) 6091 60922004-10-29 (bug fix)[1055673] fix command line syntax error message (porter) 6093=> tcltest 2.2.7 6094 60952004-10-31 (bug fix)[1057461] fix [info globals ::varName] (fellows) 6096 60972004-11-02 (bug fix)[761471] fix [expr {NaN == NaN}] (sofer) 6098 60992004-11-02 (bug fix)[1017151] misleading errorInfo after tests (seeger,porter) 6100 61012004-11-11 (bug fix)[1034337] recursive file delete, MacOSX (steffen) 6102 61032004-11-12 (bug fix)[1004065] stop crash when TCL_UTF_MAX==6 (hobbs,porter) 6104 61052004-11-15 (bug fix)[10653678] [trace variable],[trace remove] interop (porter) 6106 61072004-11-16 (bug fix)[695441] [tcl_findLibrary] search $::auto_path too (porter) 6108 61092004-11-16 (bug fix)[1067709] crash in [fconfigure -ttycontrol] (hobbs) 6110 61112004-11-18 (new feature) configure options --enable-man-suffix (max) 6112 6113Documentation improvements [759545,1058446,1062647,1065732,etc.] 6114Test suite expansion [1036649,1001997,etc.] 6115 6116--- Released 8.4.8, November 18, 2004 --- See ChangeLog for details --- 6117 61182004-11-22 (bug fix)[1030465] Improve HAVE_TYPE_OFF64_T check (dejong) 6119 61202004-11-23 (bug fix)[1072654] Fixed segfault in info vars trivial 6121matching branch (new in 8.4.8) (porter) 6122 61232004-11-23 (bug fix)[1043129] Fixed the treatment of backslashes in file 6124join on Windows (darley) 6125 61262004-11-24 (bug fix)[1001325, 1071701] Fixed readdir_r detection and usage 6127(dejong, kenny, porter) 6128 61292004-11-24 (bug fix)[1071807] Fixed all uses of 'select' to use standard 6130macros rather than older bit-whacking style (kenny) 6131 61322004-11-26 (bug fix)[1072136] Remove file normalize on tcl_findLibrary 6133search path uniqification added in 8.4.8 (porter) 6134 61352004-12-02 (bug fix)[1074671] Ensure tilde paths are not returned specially 6136by 'glob' (darley) 6137 6138--- Released 8.4.9, December 6, 2004 --- See ChangeLog for details --- 6139 61402004-12-29 (platform support)[1092952,1091967] MSVC7, gcc OPT compiles (hobbs) 6141 61422005-01-05 (bug fix)[1084595] encoding maps for some Chinese locales (fellows) 6143 61442005-01-06 (performance)[1020491] [http::mapReply] (fellows) 6145=> http 2.5.1 6146 61472005-01-25 (bug fix)[1101670] [auto_reset] update for [namespace] (porter) 6148 61492005-01-27 (new feature)[TIP 218] Tcl_Channel API update for threads (kupries) 6150 61512005-01-27 (bug fix)[1109484] Tcl_Expr* updates for Tcl_WideInt (hobbs) 6152 61532005-01-28 (platform support)[1021871] Solaris gcc 64-bit support (hobbs) 6154 61552005-02-10 (bug fix)[1119369] Tcl_EvalObjEx: avoid shimmer loss of List intrep 6156(sofer,macdonald) 6157 61582005-02-10 (platform support) correct gcc builds for AIX-4+, HP-UX-11 (hobbs) 6159 61602005-02-24 (bug fix)[1119798] prevent [source $directory] (porter,mpettigr) 6161=> tcltest 2.2.8 6162 61632005-03-10 (bug fix)[1153871] bad ClientData cast (porter,victorovich) 6164 61652005-03-15 (platform support) OpenBSD ports patch (thoyts) 6166 61672005-03-15 (platform support)[1163422] time_t wider than long (kenny) 6168 61692005-03-18 (bug fix)[1115904] restore recursion limit in direct eval (porter) 6170 61712005-03-29 (platform support) allow msys builds without cygwin (hobbs) 6172 61732005-04-06 (bug fix)[1178445] fix memory waste at thread exit (vasiljevic) 6174 61752005-04-13 (bug fix) min buffer size dropped from 10 to 1 byte (gravereaux) 6176 61772005-04-19 (bug fix)[947693] Windows pipes honor -blocking during close 6178(gravereaux) ***POTENTIAL INCOMPATIBILITY*** 6179async pipes on windows, set -blocking 1 before [close] to receive exit status 6180 61812005-04-20 (bug fix)[1090869] Tcl_GetInt accept 0x80000000, 64-bit 6182(porter,singh) 6183 61842005-04-22 (bug fix)[1187123] [string is boolean] respect EIAS (porter) 6185 61862005-04-25 (platform support) builds on Mac OS X 10.1 (steffen) 6187 61882005-05-06 (platform support) x86_64 Solarix cc and Solaris 10 builds (hobbs) 6189 61902005-05-14 (platform support) Mac OSX: configurable CoreFoundation API 6191(steffen) 6192 61932005-05-14 (platform support) Mac OSX: use realpath when threadsafe (steffen) 6194 61952005-05-20 (bug fix)[1201589] boolean literal prefix in expressions (porter) 6196 61972005-05-24 (platform support) Darwin build support merged into unix (steffen) 6198 61992005-05-24 (new feature)[1202209] Mac OSX: support [load] of .bundle binaries 6200Can support [load] from memory as well (steffen) 6201 62022005-05-24 (new feature)[1202178] [time] returns non-integer result (steffen) 6203 62042005-05-31 (bug fix)[1082283] Unix: notifier thread now joinable (vasiljevic) 6205 6206Documentation improvements [1075433,1085127,1117017,1124160,1149605,etc.] 6207 6208--- Released 8.4.10, June 4, 2005 --- See ChangeLog for details --- 6209 62102005-06-06 (bug fix)[1213678] Windows/gcc: crash in stack.test (kenny) 6211 62122005-06-07 (bug fix) Unix: --enable-threads compile failure (fellows) 6213 62142005-06-18 (bug fix)[1154163] [format %h] on 64-bit OS's (kraft,fellows) 6215 62162005-06-21 (bug fix)[1201035,1224585] execution trace crashes (porter) 6217 62182005-06-21 (bug fix)[1194458] Windows: [file split] (kenny,porter) 6219 62202005-06-22 (bug fix)[1225727] Windows: pipe finalization crash (kenny) 6221 62222005-06-22 (bug fix)[1225571] Windows: [file pathtype] buffer overflow (thoyts) 6223 62242005-06-22 (bug fix)[1225044] Windows: UMR in pipe close (kenny) 6225 62262005-06-23 (bug fix)[1225957] Windows/gcc: crashes in assembler code (kenny) 6227 62282005-06-27 (revert)[1101670] [auto_reset] disabled in non-global namespace. 6229Restores Tcl 8.4.9 behavior (porter) 6230 6231--- Released 8.4.11, June 28, 2005 --- See ChangeLog for details --- 6232 62332005-07-01 (bug fix)[1222872] notifier spurious wake-up protection (vasiljevic) 6234 62352005-07-05 (bug fix)[1077262] improved Tcl_Encoding lifetimes (porter) 6236 62372005-07-05 (bug fix)[1230597] allow idempotent [namespace import] (porter) 6238 62392005-07-07 (bug fix)[1095909] readdir_r usage purged (hobbs) 6240 62412005-07-22 (enhancement)[1237755] 8.4 features in script library (fradin,porter) 6242 62432005-07-24 (new feature) configure macros SC_PROG_TCLSH, SC_BUILD_TCLSH (dejong) 62442005-07-26 (bug fix)[1047286] cmd delete traces during namespace delete (porter) 6245 62462005-07-26 (new unix feature)[1231015] ${prefix}/share on ::tcl_pkgPath (dejong) 6247 62482005-07-28 (unix bug fix)[1245953] O_APPEND for >> redirection (fellows) 6249 62502005-07-29 (bug fix)[1247135] [info globals] return only existing vars (fellows) 6251 62522005-07-30 (new Darwin feature) TCL_LOAD_FROM_MEMORY configuration (steffen) 6253 62542005-08-05 (bug fix)[1241572] correct [expr abs($LONG_MIN)] (kenny) 6255 62562005-08-05 (Solaris bug fix)[1252475] recognize cp1251 encoding (wagner,fellows) 6257 62582005-08-17 (bug fix)[1217375] [file mkdir] race (diekhans,darley) 6259 62602005-08-25 (bug fix)[1267380] [lrepeat] buffer overflow prevention (fellows) 6261 62622005-08-29 (bug fix)[1275043] restore round() away from zero (kenny) 6263 62642005-09-07 (bug fix)[1283976] invalid [format %c -1] result (porter) 6265 62662005-09-15 (RHEL bug fix)[1287638] support open >2GB files RHEL 3 (palan) 6267 62682005-09-30 (bug fix)[1306162] $argv encoding and list formatting (porter) 6269 62702005-10-04 (bug fix)[1067708] [fconfigure -ttycontrol] leak (hobbs) 6271 62722005-10-04 (bug fix)[1182373] [http::mapReply] update to RFC 3986 (aho,hobbs) 6273=> http 2.5.2 6274 62752005-10-04 (HPUX bug fix)[1204237] shl_load() and DYNAMIC_PATH (collins,hobbs) 6276 62772005-10-05 (bug fix)[979640] buffer overrun mixing putenv(), ::env (bold,hobbs) 6278 62792005-10-13 (bug fix)[1284178] [format] accept all integer values (porter) 6280 62812005-10-22 (bug fix)[1251791] optimization exposed wide/int difference(sofer) 6282 62832005-10-23 (bug fix)[1334947] value refcount error in var setting (sofer) 6284 62852005-11-01 (bug fix)[1337941] Tcl_TraceCommand() -> crash (devilliers,porter) 6286 62872005-11-03 (new Win NT/XP feature) Unicode console support (kovalenko,thoyts) 6288 62892005-11-03 (bug fix)[1201171] [encoding system] in Tclkit (schekin,porter) 6290 62912005-11-04 (bug fix)[1337229,1338280] [namespace delete] / unset traces (porter) 6292 62932005-11-04 (enhancement) Korean timezone abbreviations (kenny) 6294 62952005-11-04 (bug fix)[1317477] double encoding of time zone (kenny) 6296 62972005-11-04 (Win enhancement)[1267871] extended exit codes (newman,thoyts) 6298 62992005-11-04 (platform support)[1163896] LynxOS [load] (heidibr) 6300 63012005-11-08 (bug fix)[1348775] unset trace memory leak (sofer) 6302 63032005-11-08 (bug fix)[1162286] [package ifneeded] warns reported (lavana,porter) 6304 *** POTENTIAL INCOMPATIBILITY *** 6305 63062005-11-09 (bug fix)[1350293] [after $negative $script] fixed (kenny) 6307 63082005-11-15 (Win bug fix)[926016,1353840] correct [file mtime] (kenny) 6309 63102005-11-18 (bug fix)[1358369] URL parsing standards compliance (wu,fellows) 6311 63122005-11-18 (bug fix)[1359094] Tclkit crash (thoyts, kupries) 6313 63142005-11-18 (bug fix)[1355942,1355342] cmd delete trace/ namespace delete (sofer) 6315 63162005-11-20 (bug fix)[1091431] Tcl_InitStubs failure crashes wish (english) 6317 63182005-11-29 (bug fix)[1366683] [lsearch -regexp] backrefs (cleverly,fellows) 6319 63202005-11-29 (enhancement)[1369597] Win 64: --enable-64bit=amd64|ia64 (hobbs) 6321 63222005-12-05 (Darwin bug fix)[1034337] NFS recursive file delete (steffen) 6323 6324--- Released 8.4.12, December 3, 2005 --- See ChangeLog for details --- 6325 63262005-12-09 (bug fix)[1374778] [lsearch -start $pastEnd] => -1 (fellows) 6327 63282005-12-12 (bug fix)[1241572] correct [expr abs($LONG_MIN)] again (max) 6329 63302005-12-12 (bug fix)[1377619] configure syntax error exposed in bash-3.1 (hobbs) 6331 63322006-01-09 (bug fix)[1400572] [info level $l] => "namespace inscope" (porter) 6333 63342006-01-23 (bug fix)[1410553] Tcl_GetRange Unicode confusion (twylite,spjuth) 6335 63362006-03-06 (bug fix)[1439836,1444291] fix TCL_EVAL_{GLOBAL,INVOKE} handling 6337when auto-loading or exec traces are present (porter) 6338 63392006-03-10 (bug fix)[1437595] Win socket finalize with threads (vasiljevic) 6340 63412005-03-13 (revert 2005-07-26 change) ${prefix}/share on ::tcl_pkgPath (porter) 6342 63432006-03-14 (bug fix)[1381436,859820] threadsafe Tcl_WaitPid (gravereaux,kupries) 6344 63452006-03-14 (bug fix)[768659] pipeline error when last command missing (kupries) 6346 63472006-03-18 (bug fix)[1193497] Win porting of [file writable] (darley,vogel) 6348 63492006-03-28 (bug fix)[1064247] BSD: path normalization with realpath() (steffen) 6350 63512006-03-28 (revert 2005-11-03 feature) Unicode console support (hobbs) 6352 *** POTENTIAL INCOMPATIBILITY *** 6353 63542006-04-03 (bug fix)[1462248] crash reading utf-8 chars spanning multiple 6355buffers at end of file (kraft,kupries) 6356 63572006-04-04 (revert 2005-11-08)[1162286] [package ifneeded] warns (porter) 6358 *** POTENTIAL INCOMPATIBILITY *** 6359 63602006-04-05 (bug fix)[1464039] Tcl_GetIndexFromObj: empty key (fellows) 6361 63622006-04-05 (bug fix) overdue dde, registry patchelevel increments (porter) 6363=> dde 1.2.4 6364=> registry 1.1.4 6365 63662006-04-06 (bug fix)[1457515] TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING 6367removed (steffen) 6368 63692006-04-11 (bug fix)[1458266] enter/enterstep trace interference (leunissen) 6370 6371--- Released 8.4.13, April 19, 2006 --- See ChangeLog for details --- 6372 63732006-05-04 (bug fix)[1480509] srand() accept wide input (porter,afredd) 6374 63752006-05-05 (bug fix)[1481986] interactive Tcl_Main blocks main loop (porter,lin) 6376 63772006-05-13 (bug fix)[1482718] proc re-compile: preserve the previous 6378bytecode while references still on the stack (porter,ryazanov) 6379 63802006-05-13 (bug fix)[943995] fixed [glob] on VFS (porter) 6381 63822006-05-27 (bug fix)[923072] Darwin: made unthreaded CoreFoundation notifier 6383naked-fork safe on Tiger (steffen) 6384 63852006-05-31 (revert 2006-01-09)[1400572] namespace inscope & info level (porter) 6386 *** POTENTIAL INCOMPATIBILITY *** 6387 63882006-06-14 (platform support)[1424909] MS VS2005 support (thoyts) 6389 63902006-07-20 (platform support) Mac OS X weak linking (steffen) 6391 63922006-07-20 (bug fix) Darwin: execve() works iff event loop not yet run (steffen) 6393 63942006-08-18 (bug fix) intermittent failures in TclUnixWaitForFile() (steffen) 6395 63962006-08-18 (platform support) Darwin x86_64 (steffen) 6397 63982006-08-21 (bug fix)[1457797] Darwin 64-bit notifier hang (steffen) 6399 64002006-08-21 (bug fix) Darwin: recursively called event loop (steffen) 6401 64022006-08-30 (bug fix)[1548263] filesystem segfaults (hobbs,mccormack) 6403 64042006-09-06 (bug fix)[999544] use of MT-safe system calls (vasiljevic) 6405 64062006-09-10 (platform support) Darwin: msgcat use CFLocale (steffen) 6407=> msgcat 1.3.4 6408 64092006-09-22 (bug fix)[1562528] NULL terminates variadic calls (fellows,ryazanov) 6410 64112006-09-26 (platform support) MSVC8 AMD64 support (thoyts) 6412 64132006-10-05 (bug fix)[1570718] make [lappend $nonList] complain (sofer,virden) 6414 64152006-10-05 (bug fix)[1122671] alignment fixes in unicode encoding routines 6416(hobbs,staplin) 6417 64182006-10-05 (new feature) [set ::http::strict 1] (default value is 0) to enable 6419URL validity checking against RFC 2986 (hobbs) 6420=> http 2.5.3 6421 6422--- Released 8.4.14, October 19, 2006 --- See ChangeLog for details --- 6423 64242006-10-31 (platform support)[1582769] Fix build with VC2003 (thoyts) 6425 64262006-11-07 (bug fix)[1586470] [file copy] on afs (kupries,dionizio) 6427 64282006-11-26 (platform support)[1230558] --enable-64bit on more systems (steffen) 6429 64302006-11-27 (bug fix)[1602208] use > 32 async sockets on 64bit system (fontaine) 6431 64322007-01-25 (configure change) ensure CPPFLAGS env var used when set (steffen) 6433 64342007-01-30 (enhancement) new target: `install-private-headers` (hobbs, steffen) 6435 64362007-02-12 (bug fix)[1516109] escape encodings crossing chan buffers (dejong) 6437 64382007-03-01 (bug fix)[1671138] compiled [foreach {} x {}] hangs (fellows) 6439 64402007-03-10 (bug fix)[1675116] list shimmer crash in [lsort] (fellows) 6441 64422007-03-13 (bug fix)[1671087] list shimmer crash in [foreach] (porter) 6443 64442007-03-13 (bug fix)[1669489] list shimmer crash in [array set] (porter) 6445 64462007-03-17 (bug fix)[1682211] buffer overflow in [registry keys] (kenny) 6447=> registry 1.1.5 6448 64492007-04-29 (bug fix) fts_open() crash on 64bit Darwin 8 or earlier (steffen) 6450 6451--- Released 8.4.15, May 25, 2007 --- See ChangeLog for details --- 6452 64532007-05-29 (bug fix)[1712723] Joinable thread death on 64-bit (virden,hobbs) 6454 64552007-06-06 (platform support) Darwin: add plist to tclsh (steffen) 6456 64572007-06-23 (bug fix) Darwin: prevent post-fork() abort() (steffen) 6458 64592007-06-27 (bug fix)[1743941] Infinite loop in Tcl_CreateTrace traces (porter) 6460 64612007-06-29 (enhancement) Tcl_Alloc alignment on Darwin (steffen) 6462 64632007-06-30 (bug fix)[1726873] crash in thread sync objects (vasiljevic,twylite) 6464 64652007-07-05 (bug fix)[1743676] no command named "" error message (porter,virden) 6466 64672007-08-14 (platform support) Darwin [load] from VFS on intel & 64bit (steffen) 6468 64692007-08-25 (bug fix)[1751117] [clock format ... %c] buffer overrun (kenny) 6470 64712007-09-10 (bug fix)[1740631] Linked variable unlink prevention (maros,hobbs) 6472 64732007-09-11 (platform support) Windows AMD64 support (thoyts) 6474 64752007-09-11 (bug fix)[1772989,1071322] Support _, : in test constraints (porter) 6476=> tcltest 2.2.9 6477 64782007-09-14 (enhancement)[1793984] DTrace provider for Tcl (steffen) 6479 64802007-09-15 (platform support) SunOS-5.1x link with cc, not ld (steffen) 6481 6482--- Released 8.4.16, September 21, 2007 --- See ChangeLog for details --- 6483 64842007-10-03 (bug fix) Corrected find of deleted command (sofer,neumann) 6485 64862007-10-15 (bug fix)[1813528] Tcl_ParseBraces read past buffer (mistachkin) 6487 64882007-10-30 (bug fix)[1810264] stop panic in RE lexer (fellows) 6489 64902007-11-15 (bug fix)[1810038] infinite loop in RE compiler (lane,porter) 6491 64922007-11-27 (bug fix)[1823552] encoding conversion for [info hostname] (porter) 6493 64942007-12-05 (bug fix)[1844789] fix [lsearch -exact -integer] crash (fellows) 6495 64962007-12-13 (bug fix)[1773127] corrected open mode "a+" (rottman,fellows) 6497 64982007-12-18 (bug fix)[1810264] revised regexp engine to prevent debilitating 6499over-consumption of resources (drewry,lane,ormandy,fellows) 6500 6501--- Released 8.4.17, January 4, 2008 --- See ChangeLog for details --- 6502 65032008-01-13 (bug fix)[1353846] crash in read-only serial (hobbs,newman) 6504 65052008-01-30 (bug fix)[1882373] fix Tcl_GetAlias pointer code (an00na) 6506 6507--- Released 8.4.18, February 8, 2008 --- See ChangeLog for details --- 6508 65092008-02-22 (bug fix)[1818565] missing state array in http::status (thoyts) 6510=> http 2.5.4 6511 65122008-02-26 (bug fix) possible crash in [gets] (hobbs) 6513 65142008-02-26 (new feature) [http::meta] command (thoyts) 6515=> http 2.5.5 6516 65172008-03-07 (bug fix)[1899164] Avoid expr and script bytecode confusion (porter) 6518 65192008-03-24 (bug fix)[1923966] crash in [binary format x0s] (thoyts) 6520 65212008-03-27 (platform support)[1921166] Solaris 64bit build fixes (steffen) 6522 65232008-04-04 (bug fix)[780533] [fcopy -size -command] callback failure (ferrieux) 6524 65252008-04-07 (new feature)[1350564] eased fileevent constraints during [fcopy] 6526(ferrieux) 6527 65282008-04-10 (bug fix)[1557855] crash on some [fcopy -size] values (ferrieux) 6529 6530--- Released 8.4.19, April 18, 2008 --- See ChangeLog for details --- 6531