X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=tcl%2Fchanges;fp=tcl%2Fchanges;h=56e1015dbcf4dd35d484bf1ba206fe05eeea99d8;hb=ae4bf010374a9320497af260fa90af3fe8e2c5a5;hp=0000000000000000000000000000000000000000;hpb=3cc729069938336ea54d399c4bbbe7d197295f9a;p=pf3gnuchains%2Fpf3gnuchains3x.git diff --git a/tcl/changes b/tcl/changes new file mode 100644 index 0000000000..56e1015dbc --- /dev/null +++ b/tcl/changes @@ -0,0 +1,5666 @@ +Recent user-visible changes to Tcl: + +RCS: @(#) $Id$ + +1. No more [command1] [command2] construct for grouping multiple +commands on a single command line. + +2. Semi-colon now available for grouping commands on a line. + +3. For a command to span multiple lines, must now use backslash-return +at the end of each line but the last. + +4. "Var" command has been changed to "set". + +5. Double-quotes now available as an argument grouping character. + +6. "Return" may be used at top-level. + +7. More backslash sequences available now. In particular, backslash-newline +may be used to join lines in command files. + +8. New or modified built-in commands: case, return, for, glob, info, +print, return, set, source, string, uplevel. + +9. After an error, the variable "errorInfo" is filled with a stack +trace showing what was being executed when the error occurred. + +10. Command abbreviations are accepted when parsing commands, but +are not recommended except for purely-interactive commands. + +11. $, set, and expr all complain now if a non-existent variable is +referenced. + +12. History facilities exist now. See Tcl.man and Tcl_RecordAndEval.man. + +13. Changed to distinguish between empty variables and those that don't +exist at all. Interfaces to Tcl_GetVar and Tcl_ParseVar have changed +(NULL return value is now possible). *** POTENTIAL INCOMPATIBILITY *** + +14. Changed meaning of "level" argument to "uplevel" command (1 now means +"go up one level", not "go to level 1"; "#1" means "go to level 1"). +*** POTENTIAL INCOMPATIBILITY *** + +15. 3/19/90 Added "info exists" option to see if variable exists. + +16. 3/19/90 Added "noAbbrev" variable to prohibit command abbreviations. + +17. 3/19/90 Added extra errorInfo option to "error" command. + +18. 3/21/90 Double-quotes now only affect space: command, variable, +and backslash substitutions still occur inside double-quotes. +*** POTENTIAL INCOMPATIBILITY *** + +19. 3/21/90 Added support for \r. + +20. 3/21/90 List, concat, eval, and glob commands all expect at least +one argument now. *** POTENTIAL INCOMPATIBILITY *** + +21. 3/22/90 Added "?:" operators to expressions. + +22. 3/25/90 Fixed bug in Tcl_Result that caused memory to get trashed. + +------------------- Released version 3.1 --------------------- + +23. 3/29/90 Fixed bug that caused "file a.b/c ext" to return ".b/c". + +24. 3/29/90 Semi-colon is not treated specially when enclosed in +double-quotes. + +------------------- Released version 3.2 --------------------- + +25. 4/16/90 Rewrote "exec" not to use select or signals anymore. +Should be more Sys-V compatible, and no slower in the normal case. + +26. 4/18/90 Rewrote "glob" to eliminate GNU code (there's no GNU code +left in Tcl, now), and added Tcl_TildeSubst procedure. Added automatic +tilde-substitution in many commands, including "glob". + +------------------- Released version 3.3 --------------------- + +27. 7/11/90 Added "Tcl_AppendResult" procedure. + +28. 7/20/90 "History" with no options now defaults to "history info" +rather than to "history redo". Although this is a backward incompatibility, +it should only be used interactively and thus shouldn't present any +compatibility problems with scripts. + +29. 7/20/90 Added "Tcl_GetInteger", "Tcl_GetDouble", and "Tcl_GetBoolean" +procedures. + +30. 7/22/90 Removed "Tcl_WatchInterp" procedure: doesn't seem to be +necessary, since the same effect can be achieved with the deletion +callbacks on individual commands. *** POTENTIAL INCOMPATIBILITY *** + +31. 7/23/90 Added variable tracing: Tcl_TraceVar, Tcl_UnTraceVar, +and Tcl_VarTraceInfo procedures, "trace" command. + +32. 8/9/90 Mailed out list of all bug fixes since 3.3 release. + +33. 8/29/90 Fixed bugs in Tcl_Merge relating to backslashes and +semi-colons. Mailed out patch. + +34. 9/3/90 Fixed bug in tclBasic.c: quotes weren't quoting ]'s. +Mailed out patch. + +35. 9/19/90 Rewrote exec to always use files both for input and +output to the process. The old pipe-based version didn't work if +the exec'ed process forked a child and then exited: Tcl waited +around for stdout to get closed, which didn't happen until the +grandchild exited. + +36. 11/5/90 ERR_IN_PROGRESS flag wasn't being cleared soon enough +in Tcl_Eval, allowing error messages from different commands to +pile up in $errorInfo. Fixed by re-arranging code in Tcl_Eval that +re-initializes result and ERR_IN_PROGRESS flag. Didn't mail out +patch: changes too complicated to describe. + +37. 12/19/90 Added Tcl_VarEval procedure as a convenience for +assembling and executing Tcl commands. + +38. 1/29/91 Fixed core leak in Tcl_AddErrorInfo. Also changed procedure +and Tcl_Eval so that first call to Tcl_AddErrorInfo need not come from +Tcl_Eval. + +----------------- Released version 5.0 with Tk ------------------ + +39. 4/3/91 Removed change bars from manual entries, leaving only those +that came after version 3.3 was released. + +40. 5/17/91 Changed tests to conform to Mary Ann May-Pumphrey's approach. + +41. 5/23/91 Massive revision to Tcl parser to simplify the implementation +of string and floating-point support in expressions. Newlines inside +[] are now treated as command separators rather than word separators +(this makes newline treatment consistent throughout Tcl). +*** POTENTIAL INCOMPATIBILITY *** + +42. 5/23/91 Massive rewrite of expression code to support floating-point +values and simple string comparisons. The C interfaces to expression +routines have changed (Tcl_Expr is replaced by Tcl_ExprLong, Tcl_ExprDouble, +etc.), but all old Tcl expression strings should be accepted by the new +expression code. +*** POTENTIAL INCOMPATIBILITY *** + +43. 5/23/91 Modified tclHistory.c to check for negative "keep" value. + +44. 5/23/91 Modified Tcl_Backslash to handle backslash-newline. It now +returns 0 to indicate that a backslash sequence should be replaced by +no character at all. +*** POTENTIAL INCOMPATIBILITY *** + +45. 5/29/91 Modified to use ANSI C function prototypes. Must set +"USE_ANSI" switch when compiling to get prototypes. + +46. 5/29/91 Completed test suite by providing tests for all of the +built-in Tcl commands. + +47. 5/29/91 Changed Tcl_Concat to eliminate leading and trailing +white-space in each of the things it concatenates and to ignore +elements that are empty or have only white space in them. This +produces cleaner output from the "concat" command. +*** POTENTIAL INCOMPATIBILITY *** + +48. 5/31/91 Changed "set" command and Tcl_SetVar procedure to return +new value of variable. + +49. 6/1/91 Added "while" and "cd" commands. + +50. 6/1/91 Changed "exec" to delete the last character of program +output if it is a newline. In most cases this makes it easier to +process program-generated output. +*** POTENTIAL INCOMPATIBILITY *** + +51. 6/1/91 Made sure that pointers are never used after freeing them. + +52. 6/1/91 Fixed bug in TclWordEnd where it wasn't dealing with +[] inside quotes correctly. + +53. 6/8/91 Fixed exec.test to accept return values of either 1 or +255 from "false" command. + +54. 7/6/91 Massive overhaul of variable management. Associative +arrays now available, along with "unset" command (and Tcl_UnsetVar +procedure). Variable traces have been completely reworked: +interfaces different both from Tcl and C, and multiple traces may +exist on same variable. Can no longer redefine existing local +variable to be global. Calling sequences have changed slightly +for Tcl_GetVar and Tcl_SetVar ("global" is now "flags"). Tcl_SetVar +can fail and return a NULL result. New forms of variable-manipulation +procedures: Tcl_GetVar2, Tcl_SetVar2, etc. Syntax of variable +$-notation changed to support array indexing. +*** POTENTIAL INCOMPATIBILITY *** + +55. 7/6/91 Added new list-manipulation procedures: Tcl_ScanElement, +Tcl_ConvertElement, Tcl_AppendElement. + +56. 7/12/91 Created new procedure Tcl_EvalFile, which does most of the +work of the "source" command. + +57. 7/20/91 Major reworking of "exec" command to allow pipelines, +more redirection, background. Added new procedures Tcl_Fork, +Tcl_WaitPids, Tcl_DetachPids, and Tcl_CreatePipeline. The old +"< input" notation has been replaced by "<< input" ("<" is for +redirection from a file). Also handles error returns and abnormal +terminations (e.g. signals) differently. +*** POTENTIAL INCOMPATIBILITY *** + +58. 7/21/91 Added "append" and "lappend" commands. + +59. 7/22/91 Reworked error messages and manual entries to use +?x? as the notation for an optional argument x, instead of [x]. The +bracket notation was often confused with the use of brackets for +command substitution. Also modified error messages to be more +consistent. + +60. 7/23/91 Tcl_DeleteCommand now returns an indication of whether +or not the command actually existed, and the "rename" command uses +this information to return an error if an attempt is made to delete +a non-existent command. +*** POTENTIAL INCOMPATIBILITY *** + +61. 7/25/91 Added new "errorCode" mechanism, along with procedures +Tcl_SetErrorCode, Tcl_UnixError, and Tcl_ResetResult. Renamed +Tcl_Return to Tcl_SetResult, but left a #define for Tcl_Return to +avoid compatibility problems. + +62. 7/26/91 Extended "case" command with alternate syntax where all +patterns and commands are together in a single list argument: makes +it easier to write multi-line case statements. + +63. 7/27/91 Changed "print" command to perform tilde-substitution on +the file name. + +64. 7/27/91 Added "tolower", "toupper", "trim", "trimleft", and "trimright" +options to "string" command. + +65. 7/29/91 Added "atime", "mtime", "size", and "stat" options to "file" +command. + +66. 8/1/91 Added "split" and "join" commands. + +67. 8/11/91 Added commands for file I/O, including "open", "close", +"read", "gets", "puts", "flush", "eof", "seek", and "tell". + +68. 8/14/91 Switched to use a hash table for command lookups. Command +abbreviations no longer have direct support in the Tcl interpreter, but +it should be possible to simulate them with the auto-load features +described below. The "noAbbrev" variable is no longer used by Tcl. +*** POTENTIAL INCOMPATIBILITY *** + +68.5 8/15/91 Added support for "unknown" command, which can be used to +complete abbreviations, auto-load library files, auto-exec shell +commands, etc. + +69. 8/15/91 Added -nocomplain switch to "glob" command. + +70. 8/20/91 Added "info library" option and TCL_LIBRARY #define. Also +added "info script" option. + +71. 8/20/91 Changed "file" command to take "option" argument as first +argument (before file name), for consistency with other Tcl commands. +*** POTENTIAL INCOMPATIBILITY *** + +72. 8/20/91 Changed format of information in $errorInfo variable: +comments such as + ("while" body line 1) +are now on separate lines from commands being executed. +*** POTENTIAL INCOMPATIBILITY *** + +73. 8/20/91 Changed Tcl_AppendResult so that it (eventually) frees +large buffers that it allocates. + +74. 8/21/91 Added "linsert", "lreplace", "lsearch", and "lsort" +commands. + +75. 8/28/91 Added "incr" and "exit" commands. + +76. 8/30/91 Added "regexp" and "regsub" commands. + +77. 9/4/91 Changed "dynamic" field in interpreters to "freeProc" (procedure +address). This allows for alternative storage managers. +*** POTENTIAL INCOMPATIBILITY *** + +78. 9/6/91 Added "index", "length", and "range" options to "string" +command. Added "lindex", "llength", and "lrange" commands. + +79. 9/8/91 Removed "index", "length", "print" and "range" commands. +"Print" is redundant with "puts", but less general, and the other +commands are replaced with the new commands described in change 78 +above. +*** POTENTIAL INCOMPATIBILITY *** + +80. 9/8/91 Changed history revision to occur even when history command +is nested; needed in order to allow "history" to be invoked from +"unknown" procedure. + +81. 9/13/91 Changed "panic" not to use vfprintf (it's uglier and less +general now, but makes it easier to run Tcl on systems that don't +have vfprintf). Also changed "strerror" not to redeclare sys_errlist. + +82. 9/19/91 Lots of changes to improve portability to different UNIX +systems, including addition of "config" script to adapt Tcl to the +configuration of the system it's being compiled on. + +83. 9/22/91 Added "pwd" command. + +84. 9/22/91 Renamed manual pages so that their filenames are no more +than 14 characters in length, moved to "doc" subdirectory. + +85. 9/24/91 Redid manual entries so they contain the supplemental +macros that they need; can just print with "troff -man" or "man" +now. + +86. 9/26/91 Created initial version of script library, including +a version of "unknown" that does auto-loading, auto-execution, and +abbreviation expansion. This library is used by tclTest +automatically. See the "library" manual entry for details. + +----------------- Released version 6.0, 9/26/91 ------------------ + +87. 9/30/91 Made "string tolower" and "string toupper" check case +before converting: on some systems, "tolower" and "toupper" assume +that character already has particular case. + +88. 9/30/91 Fixed bug in Tcl_SetResult: wasn't always setting freeProc +correctly when called with NULL value. This tended to cause memory +allocation errors later. + +89. 10/3/91 Added "upvar" command. + +90. 10/4/91 Changed "format" so that internally it converts %D to %ld, +%U to %lu, %O to %lo, and %F to %f. This eliminates some compatibility +problems on some machines without affecting behavior. + +91. 10/10/91 Fixed bug in "regsub" that caused core dumps with the -all +option when the last match wasn't at the end of the string. + +92. 10/17/91 Fixed problems with backslash sequences: \r support was +incomplete and \f and \v weren't supported at all. + +93. 10/24/91 Added Tcl_InitHistory procedure. + +94. 10/24/91 Changed "regexp" to store "-1 -1" in subMatchVars that +don't match, rather than returning an error. + +95. 10/27/91 Modified "regexp" to return actual strings in matchVar +and subMatchVars instead of indices. Added "-indices" switch to cause +indices to be returned. +*** POTENTIAL INCOMPATIBILITY *** + +96. 10/27/91 Fixed bug in "scan" where it used hardwired constants for +sizes of floats and doubles instead of using "sizeof". + +97. 10/31/91 Fixed bug in tclParse.c where parse-related error messages +weren't being storage-managed correctly, causing spurious free's. + +98. 10/31/91 Form feed and vertical tab characters are now considered +to be space characters by the parser. + +99. 10/31/91 Added TCL_LEAVE_ERR_MSG flag to procedures like Tcl_SetVar. + +100. 11/7/91 Fixed bug in "case" where "in" argument couldn't be omitted +if all case branches were embedded in a single list. + +101. 11/7/91 Switched to use "pid_t" and "uid_t" and other official +POSIC types and function prototypes. + +----------------- Released version 6.1, 11/7/91 ------------------ + +102. 12/2/91 Modified Tcl_ScanElement and Tcl_ConvertElement in several +ways. First, allowed caller to request that only backslashes be used +(no braces). Second, made Tcl_ConvertElement more aggressive in using +backslashes for braces and quotes. + +103. 12/5/91 Added "type", "lstat", and "readlink" options to "file" +command, plus added new "type" element to output of "stat" and "lstat" +options. + +104. 12/10/91 Manual entries had first lines that caused "man" program +to try weird preprocessor. Added blank comment lines to fix problem. + +105. 12/16/91 Fixed a few bugs in auto_mkindex proc: wasn't handling +errors properly, and hadn't been upgraded for new "regexp" syntax. + +106. 1/2/92 Fixed bug in "file" command where it didn't properly handle +a file names containing tildes where the indicated user doesn't exist. + +107. 1/2/92 Fixed lots of cases in tclUnixStr.c where two different +errno symbols (e.g. EWOULDBLOCK and EAGAIN) have the same number; Tcl +will only use one of them. + +108. 1/2/92 Lots of changes to configuration script to handle many more +systems more gracefully. E.g. should now detect the bogus strtoul that +comes with AIX and substitute Tcl's own version instead. + +----------------- Released version 6.2, 1/10/92 ------------------ + +109. 1/20/92 Config didn't have code to actually use "uid_t" variable +to set TCL_UIT_T #define. + +110. 2/10/92 Tcl_Eval didn't properly reset "numLevels" variable when +too-deep recursion occurred. + +111. 2/29/92 Added "on" and "off" to keywords accepted by Tcl_GetBoolean. + +112. 3/19/92 Config wasn't installing default version of strtod.c for +systems that don't have one in libc.a. + +113. 3/23/92 Fixed bug in tclExpr.c where numbers with leading "."s, +like 0.75, couldn't be properly substituted into expressions with +variable or command substitution. + +114. 3/25/92 Fixed bug in tclUnixAZ.c where "gets" command wasn't +checking to make sure that it was able to write the variable OK. + +115. 4/16/92 Fixed bug in tclUnixAZ.c where "read" command didn't +compute file size right for device files. + +116. 4/23/92 Fixed but in tclCmdMZ.c where "trace vinfo" was overwriting +the trace command. + +----------------- Released version 6.3, 5/1/92 ------------------ + +117. 5/1/92 Added Tcl_GlobalEval. + +118. 6/1/92 Changed auto-load facility to source files at global level. + +119. 6/8/92 Tcl_ParseVar wasn't always setting termPtr after errors, which +sometimes caused core dumps. + +120. 6/21/92 Fixed bug in initialization of regexp pattern cache. This +bug caused segmentation violations in regexp commands under some conditions. + +121. 6/22/92 Changed implementation of "glob" command to eliminate +trailing slashes on directory names: they confuse some systems. There +shouldn't be any user-visible changes in functionality except for names +in error messages not having trailing slashes. + +122. 7/2/92 Fixed bug that caused 'string match ** ""' to return 0. + +123. 7/2/92 Fixed bug in Tcl_CreateCmdBuf where it wasn't initializing +the buffer to an empty string. + +124. 7/6/92 Fixed bug in "case" command where it used NULL pattern string +after errors in the "default" clause. + +125. 7/25/92 Speeded up auto_load procedure: don't reread all the index +files unless the path has changed. + +126. 8/3/92 Changed tclUnix.h to define MAXPATHLEN from PATH_MAX, not +_POSIX_PATH_MAX. + +----------------- Released version 6.4, 8/7/92 ------------------ + +127. 8/10/92 Changed tclBasic.c so that comment lines can be continued by +putting a backslash before the newline. + +128. 8/21/92 Modified "unknown" to allow the source-ing of a file for +an auto-load to trigger other nested auto-loads, as long as there isn't +any recursion on the same command name. + +129. 8/25/92 Modified "format" command to allow " " and "+" flags, and +allow flags in any order. + +130. 9/14/92 Modified Tcl_ParseVar so that it doesn't actually attempt +to look up the variable if "noEval" mode is in effect in the interpreter +(it just parses the name). This avoids the errors that used to occur +in statements like "expr {[info exists foo] && $foo}". + +131. 9/14/92 Fixed bug in "uplevel" command where it didn't output the +correct error message if a level was specified but no command. + +132. 9/14/92 Renamed manual entries to have extensions like .3 and .n, +and added "install" target to Makefile. + +133. 9/18/92 Modified "unknown" command to emulate !!, !, and +^^ csh history substitutions. + +134. 9/21/92 Made the config script cleverer about figuring out which +switches to pass to "nm". + +135. 9/23/92 Fixed tclVar.c to be sure to copy flags when growing variables. +Used to forget about traces in progress and make extra recursive calls +on trace procs. + +136. 9/28/92 Fixed bug in auto_reset where it was unsetting variables +that might not exist. + +137. 10/7/92 Changed "parray" library procedure to print any array +accessible to caller, local or global. + +138. 10/15/92 Fixed bug where propagation of new environment variable +values among interpreters took N! time if there exist N interpreters. + +139. 10/16/92 Changed auto_reset procedure so that it also deletes any +existing procedures that are in the auto_load index (the assumption is +that they should be re-loaded to get the latest versions). + +140. 10/21/92 Fixed bug that caused lists to be incorrectly generated +for elements that contained backslash-newline sequences. + +141. 12/9/92 Added support for TCL_LIBRARY environment variable: use +it as library location if it's present. + +142. 12/9/92 Added "info complete" command, Tcl_CommandComplete procedure. + +143. 12/16/92 Changed the Makefile to check to make sure "config" has been +run (can't run config directly from the Makefile because it modifies the +Makefile; thus make has to be run again after running config). + +----------------- Released version 6.5, 12/17/92 ------------------ + +144. 12/21/92 Changed config to look in several places for libc file. + +145. 12/23/92 Added "elseif" support to if. Also, "then", "else", and +"elseif" may no longer be abbreviated. +*** POTENTIAL INCOMPATIBILITY *** + +146. 12/28/92 Changed "puts" and "read" to support initial "-nonewline" +switch instead of additional "nonewline" argument. The old form is +still supported, but it is discouraged and is no longer documented. +Also changed "puts" to make the file argument default to stdout: e.g. +"puts foo" will print foo on standard output. + +147. 1/6/93 Fixed bug whereby backslash-newline wasn't working when +typed interactively, or in "info complete". + +148. 1/22/93 Fixed bugs in "lreplace" and "linsert" where close +quotes were being lost from last element before replacement or +insertion. + +149. 1/29/93 Fixed bug in Tcl_AssembleCmd where it wasn't requiring +a newline at the end of a line before considering a command to be +complete. The bug caused some very long lines in script files to +be processed as multiple separate commands. + +150. 1/29/93 Various changes in Makefile to add more configuration +options, simplify installation, fix bugs (e.g. don't use -f switch +for cp), etc. + +151. 1/29/93 Changed "name1" and "name2" identifiers to "part1" and +"part2" to avoid name conflicts with stupid C++ implementations that +use "name1" and "name2" in a reserved way. + +152. 2/1/93 Added "putenv" procedure to replace the standard system +version so that it will work correctly with Tcl's environment handling. + +----------------- Released version 6.6, 2/5/93 ------------------ + +153. 2/10/93 Fixed bugs in config script: missing "endif" in libc loop, +and tried to use strncasecmp.c instead of strcasecmp.c. + +154. 2/10/93 Makefile improvements: added RANLIB variable for easier +Sys-V configuration, added SHELL variable for SGI systems. + +----------------- Released version 6.7, 2/11/93 ------------------ + +153. 2/6/93 Changes in backslash processing: + - \Cx, \Mx, \CMx, \e sequences no longer special + - \ also eats up any space after the newline, replacing + the whole sequence with a single space character + - Hex sequences like \x24 are now supported, along with ANSI C's \a. + - "format" no longer does backslash processing on its format string + - there is no longer any special meaning to a 0 return value from + Tcl_Backslash + - unknown backslash sequences, like (e.g. \*), are replaced with + the following character (e.g. *), instead of just treating the + backslash as an ordinary character. +*** POTENTIAL INCOMPATIBILITY *** + +154. 2/6/93 Updated all copyright notices. The meaning hasn't changed +at all but the wording does a better job of protecting U.C. from +liability (according to U.C. lawyers, anyway). + +155. 2/6/93 Changed "regsub" so that it overwrites the result variable +in all cases, even if there is no match. +*** POTENTIAL INCOMPATIBILITY *** + +156. 2/8/93 Added support for XPG3 %n$ conversion specifiers to "format" +command. + +157. 2/17/93 Fixed bug in Tcl_Eval where errors due to infinite +recursion could result in core dumps. + +158. 2/17/93 Improved the auto-load mechanism to deal gracefully (i.e. +return an error) with a situation where a library file that supposedly +defines a procedure doesn't actually define it. + +159. 2/17/93 Renamed Tcl_UnixError procedure to Tcl_PosixError, and +changed errorCode variable usage to use POSIX as keyword instead of +UNIX. +*** POTENTIAL INCOMPATIBILITY *** + +160. 2/19/93 Changes to exec and process control: + - Added support for >>, >&, >>&, |&, <@, >@, and >&@ forms of redirection. + - When exec puts processes into background, it returns a list of + their pids as result. + - Added support for file, etc. (i.e. no space between + ">" and file name. + - Added -keepnewline option. + - Deleted Tcl_Fork and Tcl_WaitPids procedures (just use fork and + waitpid instead). + - Added waitpid compatibility procedure for systems that don't have + it. + - Added Tcl_ReapDetachedProcs procedure. + - Changed "exec" to return an error if there is stderr output, even + if the command returns a 0 exit status (it's always been documented + this way, but the implementation wasn't correct). + - If a process returns a non-zero exit status but doesn't generate + any diagnostic output, then Tcl generates an error message for it. +*** POTENTIAL INCOMPATIBILITY *** + +161. 2/25/93 Fixed two memory-management problems having to do with +managing the old result during variable trace callbacks. + +162. 3/1/93 Added dynamic string library: Tcl_DStringInit, Tcl_DStringAppend, +Tcl_DStringFree, Tcl_DStringResult, etc. + +163. 3/1/93 Modified glob command to only return the names of files that +exist, and to only return names ending in "/" if the file is a directory. +*** POTENTIAL INCOMPATIBILITY *** + +164. 3/19/93 Modified not to use system calls like "read" directly, +but instead to use special Tcl procedures that retry automatically +if interrupted by signals. + +165. 4/3/93 Eliminated "noSep" argument to Tcl_AppendElement, plus +TCL_NO_SPACE flag for Tcl_SetVar and Tcl_SetVar2. +*** POTENTIAL INCOMPATIBILITY *** + +166. 4/3/93 Eliminated "flags" and "termPtr" arguments to Tcl_Eval. +*** POTENTIAL INCOMPATIBILITY *** + +167. 4/3/93 Changes to expressions: + - The "expr" command now accepts multiple arguments, which are + concatenated together with space separators. + - Integers aren't automatically promoted to floating-point if they + overflow the word size: errors are generated instead. + - Tcl can now handle "NaN" and other special values if the underlying + library procedures handle them. + - When printing floating-point numbers, Tcl ensures that there is a "." + or "e" in the number, so it can't be treated as an integer accidentally. + The procedure Tcl_PrintDouble is available to provide this function + in other contexts. Also, the variable "tcl_precision" can be used + to set the precision for printing (must be a decimal number giving + digits of precision). + - Expressions now support transcendental and other functions, e.g. sin, + acos, hypot, ceil, and round. Can add new math functions with + Tcl_CreateMathFunc(). + - Boolean expressions can now have any of the string values accepted + by Tcl_GetBoolean, such as "yes" or "no". +*** POTENTIAL INCOMPATIBILITY *** + +168. 4/5/93 Changed Tcl_UnsetVar and Tcl_UnsetVar2 to return TCL_OK +or TCL_ERROR instead of 0 or -1. +*** POTENTIAL INCOMPATIBILITY *** + +169. 4/5/93 Eliminated Tcl_CmdBuf structure and associated procedures; +can use Tcl_DStrings instead. +*** POTENTIAL INCOMPATIBILITY *** + +170. 4/8/93 Changed interface to Tcl_TildeSubst to use a dynamic +string for buffer space. This makes the procedure re-entrant and +thread-safe, whereas it wasn't before. +*** POTENTIAL INCOMPATIBILITY *** + +171. 4/14/93 Eliminated tclHash.h, and moved everything from it to +tcl.h +*** POTENTIAL INCOMPATIBILITY *** + +172. 4/15/93 Eliminated Tcl_InitHistory, made "history" command always +be part of interpreter. +*** POTENTIAL INCOMPATIBILITY *** + +173. 4/16/93 Modified "file" command so that "readable" option always +exists, even on machines that don't support symbolic links (always returns +same error as if the file wasn't a symbolic link). + +174. 4/26/93 Fixed bugs in "regsub" where ^ patterns didn't get handled +right (pretended not to match when it really did, and looped infinitely +if -all was specified). + +175. 4/29/93 Various improvements in the handling of variables: + - Can create variables and array elements during a read trace. + - Can delete variables during traces (note: unset traces will be + invoked when this happens). + - Can upvar to array elements. + - Can retarget an upvar to another variable by re-issuing the + upvar command with a different "other" variable. + +176. 5/3/93 Added Tcl_GetCommandInfo, which returns info about a Tcl +command such as whether it exists and its ClientData. Also added +Tcl_SetCommandInfo, which allows any of this information to be modified +and also allows a command's delete procedure to have a different +ClientData value than its command procedure. + +177. 5/5/93 Added Tcl_RegExpMatch procedure. + +178. 5/6/93 Fixed bug in "scan" where it didn't properly handle +%% conversion specifiers. Also changed "scan" to use Tcl_PrintDouble +for printing real values. + +179. 5/7/93 Added "-exact", "-glob", and "-regexp" options to "lsearch" +command to allow different kinds of pattern matching. + +180. 5/7/93 Added many new switches to "lsort" to control the sorting +process: "-ascii", "-integer", "-real", "-command", "-increasing", +and "-decreasing". + +181. 5/10/93 Changes to file I/O: + - Modified "open" command to support a list of POSIX access flags + like {WRONLY CREAT TRUNC} in addition to current fopen-style + access modes. Also added "permissions" argument to set permissions + of newly-created files. + - Fixed Scott Bolte's bug (can close stdin etc. in application and + then re-open them with Tcl commands). + - Exported access to Tcl's file table with new procedures Tcl_EnterFile + and Tcl_GetOpenFile. + +182. 5/15/93 Added new "pid" command, which can be used to retrieve +either the current process id or a list of the process ids in a +pipeline opened with "open |..." + +183. 6/3/93 Changed to use GNU autoconfig for configuration instead of +the home-brew "config" script. Also made many other configuration-related +changes, such as using instead of explicitly declaring system +calls in tclUnix.h. + +184. 6/4/93 Fixed bug where core-dumps could occur if a procedure +redefined itself (the memory for the procedure's body could get +reallocated in the middle of evaluating the body); implemented +simple reference count mechanism. + +185. 6/5/93 Changed tclIndex file format in two ways: (a) it's now +eval-ed instead of parsed, which makes it 3-4x faster; (b) the entries +in auto_index are now commands to evaluate, which allows commands to +be loaded in different ways such as dynamic-loading of C code. The +old tclIndex file format is still supported. + +186. 6/7/93 Eliminated tclTest program, added new "tclsh" program +that is more like wish (allows script files to be invoked automatically +using "#!/usr/local/bin/tclsh", makes arguments available to script, +etc.). Added support for Tcl_AppInit plus default version; this +allows new Tcl applications to be created without modifying the +main program for tclsh. + +187. 6/7/93 Fixed bug in TclWordEnd that kept backslash-newline from +working correctly in some cases during interactive input. + +188. 6/9/93 Added Tcl_LinkVar and related procedures, which automatically +keep a Tcl variable in sync with a C variable. + +189. 6/16/93 Increased maximum nesting depth from 100 to 1000. + +190. 6/16/93 Modified "trace var" command so that error messages from +within traces are returned properly as the result of the variable +access, instead of the generic "access disallowed by trace command" +message. + +191. 6/16/93 Added Tcl_CallWhenDeleted to provide callbacks when an +interpreter is deleted (same functionality as Tcl_WatchInterp, which +used to exist in versions before 6.0). + +193. 6/16/93 Added "-code" argument to "return" command; it's there +primarily for completeness, so that procedures implementing control +constructs can reflect exceptional conditions back to their callers. + +194. 6/16/93 Split up Tcl.n to make separate manual entries for each +Tcl command. Tcl.n now contains a summary of the language syntax. + +195. 6/17/93 Added new "switch" command to replace "case": allows +alternate forms of pattern matching (exact, glob, regexp), replaces +pattern lists with single patterns (but you can use "-" bodies to +share one body among several patterns), eliminates "in" noise word. +"Case" command is now obsolete. + +196. 6/17/93 Changed the "exec", "glob", "regexp", and "regsub" commands +to include a "--" switch. All initial arguments starting with "-" are now +treated as switches unless a "--" switch is present to end the list. +*** POTENTIAL INCOMPATIBILITY *** + +197. 6/17/93 Changed auto-exec so that the subprocess gets stdin, stdout, +and stderr from the parent. This allows truly interactive sub-processes +(e.g. vi) to be auto-exec'ed from a tcl shell command line. + +198. 6/18/93 Added patchlevel.h, for use in coordinating future patch +releases, and also added "info patchlevel" command to make the patch +level available to Tcl scripts. + +199. 6/19/93 Modified "glob" command so that a leading "//" in a name +gets left as is (this is needed for systems like Apollos where "//" is +the super-root; Tcl used to collapse the two slashes into a single +slash). + +200. 7/7/93 Added Tcl_SetRecursionLimit procedure so that the maximum +allowable nesting depth can be controlled for an interpreter from C. + +----------------- Released version 7.0 Beta 1, 7/9/93 ------------------ + +201. 7/12/93 Modified Tcl_GetInt and tclExpr.c so that full-precision +unsigned integers can be specified without overflow errors. + +202. 7/12/93 Configuration changes: eliminate leading blank line in +configure script; provide separate targets in Makefile for installing +binary and non-binary information; check for size_t and a few other +potentially missing typedefs; don't put tclAppInit.o into libtcl.a; +better checks for matherr support. + +203. 7/14/93 Changed tclExpr.c to check the termination pointer before +errno after strtod calls, to avoid problems with some versions of +strtod that set errno in unexpected ways. + +204. 7/16/93 Changed "scan" command to be more ANSI-conformant: +eliminated %F, %D, etc., added code to ignore "l", "h", and "L" +modifiers but always convert %e, %f, and %g with implicit "l"; +also added support for %u and %i. Also changed "format" command +to eliminate %D, %U, %O, and add %i. +*** POTENTIAL INCOMPATIBILITY *** + +205. 7/17/93 Changed "uplevel" and "upvar" so that they can be used +from global level to global level: this used to generate an error. + +206. 7/19/93 Renamed "setenv", "putenv", and "unsetenv" procedures +to avoid conflicts with system procedures with the same names. If +you want Tcl's procedures to override the system procedures, do it +in the Makefile (instructions are in the Makefile). +*** POTENTIAL INCOMPATIBILITY *** + +----------------- Released version 7.0 Beta 2, 7/21/93 ------------------ + +207. 7/21/93 Fixed bug in tclVar.c where freed memory was accidentally +used if a procedure returned an element of a local array. + +208. 7/22/93 Fixed bug in "unknown" where it didn't properly handle +errors occurring in the "auto_load" procedure, leaving its state +inconsistent. + +209. 7/23/93 Changed exec's ">2" redirection operator to "2>" for +consistency with sh. This is incompatible with earlier beta releases +of 7.0 but not with pre-7.0 releases, which didn't support either +operator. + +210. 7/28/93 Changed backslash-newline handling so that the resulting +space character *is* treated as a word separator unless the backslash +sequence is in quotes or braces. This is incompatible with 7.0b1 +and 7.0b2 but is more compatible with pre-7.0 versions that the b1 +and b2 releases were. + +211. 7/28/93 Eliminated Tcl_LinkedVarWritable, added TCL_LINK_READ_ONLY to +Tcl_LinkVar to accomplish same purpose. This change is incompatible +with earlier beta releases, but not with releases before Tcl 7.0. + +212. 7/29/93 Renamed regexp C functions so they won't clash with POSIX +regexp functions that use the same name. + +213. 8/3/93 Added "-errorinfo" and "-errorcode" options to "return" +command: these allow for much better handling of the errorInfo +and errorCode variables in some cases. + +214. 8/12/93 Changed "expr" so that % always returns a remainder with +the same sign as the divisor and absolute value smaller than the +divisor. + +215. 8/14/93 Turned off auto-exec in "unknown" unless the command +was typed interactively. This means you must use "exec" when +invoking subprocesses, unless it's a command that's typed interactively. +*** POTENTIAL INCOMPATIBILITY *** + +216. 8/14/93 Added support for tcl_prompt1 and tcl_prompt2 variables +to tclMain.c: makes prompts user-settable. + +217. 8/14/93 Added asynchronous handlers (Tcl_AsyncCreate etc.) so +that signals can be taken cleanly by Tcl applications. + +218. 8/16/93 Moved information about open files from the interpreter +structure to global variables so that a file can be opened in one +interpreter and read or written in another. + +219. 8/16/93 Removed ENV_FLAGS from Makefile, so that there's no +official support for overriding setenv, unsetenv, and putenv. + +220. 8/20/93 Various configuration improvements: coerce chars +to unsigned chars before using macros like isspace; source ~/.tclshrc +file during initialization if it exists and program is running +interactively; allow there to be directories in auto_path that don't +exist or don't have tclIndex files (ignore them); added Tcl_Init +procedure and changed Tcl_AppInit to call it. + +221. 8/21/93 Fixed bug in expr where "+", "-", and " " were all +getting treated as integers with value 0. + +222. 8/26/93 Added "tcl_interactive" variable to tclsh. + +223. 8/27/93 Added procedure Tcl_FilePermissions to return whether a +given file can be read or written or both. Modified Tcl_EnterFile +to take a permissions mask rather than separate read and write arguments. + +224. 8/28/93 Fixed performance bug in "glob" command (unnecessary call +to "access" for each file caused a 5-10x slow-down for big directories). + +----------------- Released version 7.0 Beta 3, 8/28/93 ------------------ + +225. 9/9/93 Renamed regexp.h to tclRegexp.h to avoid conflicts with system +include file by same name. + +226. 9/9/93 Added Tcl_DontCallWhenDeleted. + +227. 9/16/93 Changed not to call exit C procedure directly; instead +always invoke "exit" Tcl command so that application can redefine the +command to do additional cleanup. + +228. 9/17/93 Changed auto-exec to handle names that contain slashes +(i.e. don't use PATH for them). + +229. 9/23/93 Fixed bug in "read" and "gets" commands where they didn't +clear EOF conditions. + +----------------- Released version 7.0, 9/29/93 ------------------ + +230. 10/7/93 "Scan" command wasn't properly aligning things in memory, +so segmentation faults could arise under some circumstances. + +231. 10/7/93 Fixed bug in Tcl_ConvertElement where it forgot to +backslash leading curly brace when creating lists. + +232. 10/7/93 Eliminated dependency of tclMain.c on tclInt.h and +tclUnix.h, so that people can copy the file out of the Tcl source +directory to make modified private versions. + +233. 10/8/93 Fixed bug in auto-loader that reversed the priority order +of entries in auto_path for new-style index files. Now things are +back to the way they were before 3.0: first in auto_path is always +highest priority. + +234. 10/13/93 Fixed bug where Tcl_CommandComplete didn't recognize +comments and treat them as such. Thus if you typed the line + # { +interactively, Tcl would think that the command wasn't complete and +wait for more input before evaluating the script. + +235. 10/14/93 Fixed bug where "regsub" didn't set the output variable +if the input string was empty. + +236. 10/23/93 Fixed bug where Tcl_CreatePipeline didn't close off enough +file descriptors in child processes, causing children not to exit +properly in some cases. + +237. 10/28/93 Changed "list" and "concat" commands not to generate +errors if given zero arguments, but instead to just return an empty +string. + +----------------- Released version 7.1, 11/4/93 ------------------ + +Note: there is no 7.2 release. It was flawed and was thus withdrawn +shortly after it was released. + +238. 11/10/93 TclMain.c didn't compile on some systems because of +R_OK in call to "access". Changed to eliminate call to "access". + +----------------- Released version 7.3, 11/26/93 ------------------ + +239. 11/6/93 Modified "lindex", "linsert", "lrange", and "lreplace" +so that "end" can be specified as an index. + +240. 11/6/93 Modified "append" and "lappend" to allow only two +words total (i.e., nothing to append) without generating an error. + +241. 12/2/93 Changed to use EAGAIN as the errno for non-blocking +I/O instead of EWOULDBLOCK: this should fix problem where non-blocking +I/O didn't work correctly on System-V systems. + +242. 12/22/93 Fixed bug in expressions where cancelled evaluation +wasn't always working correctly (e.g. "set one 1; eval {1 || 1/$one}" +failed with a divide by zero error). + +243. 1/6/94 Changed TCL_VOLATILE definition from -1 to the address of +a dummy procedure Tcl_Volatile, since -1 causes portability problems on +some machines (e.g., Crays). + +244. 2/4/94 Added support for unary plus. + +245. 2/17/94 Changed Tcl_RecordAndEval and "history" command to +call Tcl_GlobalEval instead of Tcl_Eval. Otherwise, invocation of +these facilities in nested procedures can cause unwanted results. + +246. 2/17/94 Fixed bug in tclExpr.c where an expression such as +"expr {"12398712938788234-1298379" != ""}" triggers an integer +overflow error for the number in quotes, even though it isn't really +a proper integer anyway. + +247. 2/19/94 Added new procedure Tcl_DStringGetResult to move result +from interpreter to a dynamic string. + +248. 2/19/94 Fixed bug in Tcl_DStringResult that caused it to overwrite +the contents of a static result in some situations. This can cause +bizarre errors such as variables suddenly having empty values. + +249. 2/21/94 Fixed bug in Tcl_AppendElement, Tcl_DStringAppendElement, +and the "lappend" command that caused improper omission of a separator +space in some cases. For example, the script + set x "abc{"; lappend x "def" +used to return the result "abc{def" instead of "abc{ def". + +250. 3/3/94 Tcl_ConvertElement was outputting empty elements as \0 if +TCL_DONT_USE_BRACES was set. This depends on old pre-7.0 meaning of +\0, which is no longer in effect, so it didn't really work. Changed +to output empty elements as {} always. + +251. 3/3/94 Renamed Tcl_DStringTrunc to Tcl_DStringSetLength and extended +it so that it can be used to lengthen a string as well as shorten it. +Tcl_DStringTrunc is defined as a macro for backward compatibility, but +it is deprecated. + +252. 3/3/94 Added Tcl_AllowExceptions procedure. + +253. 3/13/94 Fixed bug in Tcl_FormatCmd that could cause "format" +to mis-behave on 64-bit Big-Endian machines. + +254. 3/13/94 Changed to use vfork instead of fork on systems where +vfork exists. + +255. 3/23/94 Fixed bug in expressions where ?: didn't associate +right-to-left as they should. + +256. 4/3/94 Fixed "exec" to flush any files used in >@ or >&@ +redirection in exec, so that data buffered for them is written +before any new data added by the subprocess. + +257. 4/3/94 Added "subst" command. + +258. 5/20/94 The tclsh main program is now called Tcl_Main; tclAppInit.c +has a "main" procedure that calls Tcl_Main. This makes it easier to use +Tcl with C++ programs, which need their own main programs, and it also +allows an application to prefilter the argument list before calling +Tcl_Main. +*** POTENTIAL INCOMPATIBILITY *** + +259. 6/6/94 Fixed bug in procedure returns where the errorInfo variable +could get truncated if an unset trace was invoked as part of returning +from the procedure. + +260. 6/13/94 Added "wordstart" and "wordend" options to "string" command. + +261. 6/27/94 Fixed bug in expressions where they didn't properly cancel +the evaluation of math functions in &&, ||, and ?:. + +262. 7/11/94 Incorrect boolean values, like "ogle", weren't being +handled properly. + +263. 7/15/94 Added Tcl_RegExpCompile, Tcl_RegExpExec, and Tcl_RegExpRange, +which provide lower-level access to regular expression pattern matching. + +264. 7/22/94 Fixed bug in "glob" command where "glob -nocomplain ~bad_user" +would complain about a missing user. Now it doesn't complain anymore. + +265. 8/4/94 Fixed bug with linked variables where they didn't behave +correctly when accessed via upvars. + +266. 8/17/94 Fixed bug in Tcl_EvalFile where it didn't clear interp->result. + +267. 8/31/94 Modified "open" command so that errors in exec-ing +subprocesses are returned by the open immediately, rather than +being delayed until the "close" is executed. + +268. 9/9/94 Modified "expr" command to generate errors for integer +overflow (includes addition, subtraction, negation, multiplication, +division). + +269. 9/23/94 Modified "regsub" to return a count of the number of +matches and replacements, rather than 0/1. + +279. 10/4/94 Added new features to "array" command: + - added "get" and "set" commands for easy conversion between arrays + and lists. + - added "exists" command to see if a variable is an array, changed + "names" and "size" commands to treat a non-existent array (or scalar + variable) just like an empty one. + - added pattern option to "names" command. + +280. 10/6/94 Modified Tcl_SetVar2 so that read traces on variables get +called during append operations. + +281. 10/20/94 Fixed bug in "read" command where reading from stdin +required two control-D's to stop the reading. + +282. 11/3/94 Changed "expr" command to use longs for division just like +all other expr operators; it previously used ints for division. + +283. 11/4/94 Fixed bugs in "unknown" procedure: it wasn't properly +handling exception returns from commands that were executed after +being auto-loaded. + +----------------- Released version 7.4b1, 12/23/94 ------------------ + +284. 12/26/94 Fixed "install" target in Makefile (couldn't always +find install program). + +285. 12/26/94 Added strcncasecmp procedure to compat directory. + +286. 1/3/95 Fixed all procedure calls to explicitly cast arguments: +implicit conversions from prototypes (especially integer->double) +don't work when compiling under non-ANSI compilers. Tcl is now clean +under gcc -Wconversion. + +287. 1/4/95 Fixed problem in Tcl_ArrayCmd where same name was used for +both a label and a variable; caused problems on several older compilers, +making array command misbehave and causing many errors in Tcl test suite. + +----------------- Released version 7.4b2, 1/12/95 ------------------ + +288. 2/9/95 Modified Tcl_CreateCommand to return a token, and added +Tcl_GetCommandName procedure. Together, these procedures make it possible +to track renames of a command. + +289. 2/13/95 Fixed bug in expr where "089" was interpreted as a +floating-point number rather than a bogus octal number. +*** POTENTIAL INCOMPATIBILITY *** + +290. 2/14/95 Added code to Tcl_GetInt and Tcl_GetDouble to check for +overflows when reading in numbers. + +291. 2/18/95 Changed "array set" to stop after first error, rather than +continuing after error. + +292. 2/20/95 Upgraded to use autoconf version 2.2. + +293. 2/20/95 Fixed core dump that could occur in "scan" command if a +close bracket was omitted. + +294. 2/27/95 Changed Makefile to always use install-sh for installations: +there's just too much variation among "install" system programs, which +makes installation flakey. + +----------------- Released version 7.4b3, 3/24/95 ------------------ + +3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that +"make install" will work even when "." isn't in the search path. + +3/29/95 (bug fix) Fixed bug where the auto-loading mechanism wasn't +protecting the values of the errorCode and errorInfo variables. + +3/29/95 (new feature) Added optional pattern argument to "parray" procedure. + +3/29/95 (bug fix) Made the full functionality of + "return -code ... -errorcode ..." +work not just inside procedures, but also in sourced files and at +top level. + +4/6/95 (new feature) Added "pattern" option to "array names" command. + +4/18/95 (bug fix) Fixed bug in parser where it didn't allow backslash-newline +immediately after an argument in braces or quotes. + +4/19/95 (new feature) Added tcl_library variable, which application can +set to override default library directory. + +4/30/95 (bug fix) During trace callbacks for array elements, the variable +name used in the original reference would be temporarily modified to +separate the array name and element name; if the trace callback used +the same name string, it would get the wrong name (the array name without +element). Fixed to restore the variable name before making trace +callbacks. + +4/30/95 (new feature) Added -nobackslashes, -nocommands, and -novariables +switches to "subst" command. + +5/4/95 (new feature) Added TCL_EVAL_GLOBAL flag to Tcl_RecordAndEval. + +5/5/95 (bug fix) Format command would overrun memory when printing +integers with very large precision, as in "format %.1000d 0". + +5/5/95 (portability improvement) Changed to use BSDgettimeofday on +IRIX machines, to avoid compilation problems with the gettimeofday +declaration. + +5/6/95 (bug fix) Changed manual entries to use the standard .TH +macro instead of a custom .HS macro; the .HS macro confuses index +generators like makewhatis. + +5/9/95 (bug fix) Modified configure script to check for Solaris bug +that makes vfork unreliable (core dumps result if vforked child +changes a signal handler); will use fork instead of vfork if the +bug is present. + +6/5/95 (bug fix) Modified "lsort" command to disallow recursive calls +to lsort from a comparison function. This is needed because qsort +is not reentrant. + +6/5/95 (bug fix) Undid change 243 above: changed TCL_VOLATILE and +TCL_DYNAMIC back to integer constants rather than procedure addresses. +This was needed because procedure addresses can have multiple values +under some dynamic loading systems (e.g. SunOS 4.1 and Windows). + +6/8/95 (feature change) Modified interface to Tcl_Main to pass in the +address of the application-specific initialization procedure. +Tcl_AppInit is no longer hardwired into Tcl_Main. This is needed +in order to make Tcl a shared library. + +6/8/95 (feature change) Modified Makefile so that the installed versions +of tclsh and libtcl.a have version number in them (e.g. tclsh7.4 and +libtcl7.4.a) and the library directory name also has an embedded version +number (e.g., /usr/local/lib/tcl7.4). This should make it easier for +Tcl 7.4 to coexist with earlier versions. + +----------------- Released version 7.4b4, 6/16/95 ------------------ + +6/19/95 (bug fix) Fixed bugs in tclCkalloc.c that caused core dumps +if TCL_MEM_DEBUG was enabled on word-addressed machines such as Crays. + +6/21/95 (feature removal) Removed overflow checks for integer arithmetic: +they just cause too much trouble (e.g. for random number generators). + +6/28/95 (new features) Added tcl_patchLevel and tcl_version variables, +for consistency with Tk. + +6/29/95 (bug fix) Fixed problem in Tcl_Eval where it didn't record +the right termination character if a script ended with a comment. This +caused erroneous output for the following command, among others: +puts "[ +expr 1+1 +# duh! +]" + +6/29/95 (message change) Changed the error message for ECHILD slightly +to provide a hint about why the problem is occurring. + +----------------- Released version 7.4, 7/1/95 ------------------ + +7/18/95 (bug fix) Changed "lreplace" so that nothing is deleted if +the last index is less than the first index or if the last index +is < 0. + +7/18/95 (bug fix) Fixed bugs with backslashes in comments: +Tcl_CommandComplete (and "info complete") didn't properly handle +strings ending in backslash-newline, and neither Tcl_CommandComplete +nor the Tcl parser handled other backslash sequences right, such +as two backslashes before a newline. + +7/19/95 (bug fix) Modified Tcl_DeleteCommand to delete the hash table +entry for the command before invoking its callback. This is needed in +order to deal with reentrancy. + +7/22/95 (bug fix) "exec" wasn't reaping processes correctly after +certain errors (e.g. if the name of the executable was bogus, as +in "exec foobar"). + +7/27/95 (bug fix) Makefile.in wasn't using the LIBS variable provided +by the "configure" script. This caused problems on some SCO systems. + +7/27/95 (bug fix) The version of strtod in fixstrtod.c didn't properly +handle the case where endPtr == NULL. + +----------------- Released patch 7.4p1, 7/29/95 ----------------------- + +8/4/95 (bug fix) C-level trace callbacks for variables were sometimes +receiving the PART1_NOT_PARSED flag, which could cause errors in +subsequent Tcl library calls using the flags. (JO) + +8/4/95 (bug fix) Calls to toupper and tolower weren't using the +UCHAR macros, which caused trouble in non-U.S. locales. (JO) + +8/10/95 (new feature) Added the "load" command for dynamic loading of +binary packages, and the Tcl_PackageInitProc prototype for package +initialization procedures. (JO) + +8/23/95 (new features) Added "info sharedlibextension" and +"info nameofexecutable" commands, plus Tcl_FindExtension procedure. (JO) + +8/25/95 (bug fix) If the target of an "upvar" was non-existent but +had traces set, the traces were silently lost. Change to generate +an error instead. (JO) + +8/25/95 (bug fix) Undid change from 7/19, so that commands can stay +around while their deletion callbacks execute. Added lots of code to +handle all of the reentrancy problems that this opens up. (JO) + +8/25/95 (bug fix) Fixed core dump that could occur in TclDeleteVars +if there was an upvar from one entry in the table to the next entry +in the same table. (JO) + +8/28/95 (bug fix) Exec wasn't handling bad user names properly, as +in "exec ~bogus_user/foo". (JO) + +8/29/95 (bug fixes) Changed backslash-newline handling to correct two +problems: + - Only spaces and tabs following the backslash-newline are now + absorbed as part of the backslash-newline. Newlinew are no + longer absorbed (add another backslash if you want to absorb + another newline). + - TclWordEnd returns the character just before the backslash in + the sequence as the end of the sequence; it used to not consider + the backslash-newline as a word separator. (JO) + +8/31/95 (new feature) Changed man page installation (with "mkLinks" +script) to create additional links for manual pages corresponding to +each of the procedure and command names described in the pages. (JO) + +9/10/95 Reorganized Tcl sources for Windows and Mac ports. All sources +are now in subdirectories: "generic" contains sources that work on all +platforms, "windows", "mac", and "unix" directories contain platform- +specific sources. Some UNIX sources are also used on other platforms. (SS) + +9/10/95 (feature change) Eliminated exported global variables (they +don't work with Windows DLLs). Replaced tcl_AsyncReady and +tcl_FileCloseProc with procedures Tcl_AsyncReady() and +Tcl_SetFileCloseProc(). Replaced C variable tcl_RcFileName with +a Tcl variable tcl_rcFileName. (SS) +*** POTENTIAL INCOMPATIBILITY *** + +9/11/95 (new feature) Added procedure Tcl_SetPanicProc to override +the default implementation of "panic". (SS) + +9/11/95 (new feature) Added "interp" command to allow creation of +new interpreters and execution of untrusted scripts. Added many new +procedures, such as Tcl_CreateSlave, Tcl_CreateAlias,and Tcl_MakeSafe, +to provide C-level access to the interpreter facility. This mechanism +now provides almost all of the generic functions of Borenstein's and +Rose's Safe-Tcl (but not any Tk or email-related stuff). (JL) + +9/11/95 (feature change) Changed file management so that files are +no longer shared between interpreters: a file cannot normally be +referenced in one interpreter if it was opened in another. This +feature is needed to support safe interpreters. Added Tcl_ShareHandle() +procedure for allowing files to be shared, and added "interp" argument +to Tcl_FilePermissions procedure. (JL) +*** POTENTIAL INCOMPATIBILITY *** + +9/11/95 (new feature) Added "AssocData" mechanism, whereby extensions +can associate their own data with an interpreter and get called back +when the interpreter is deleted. This is visible at C level via the +procedures Tcl_SetAssocData and Tcl_GetAssocData. (JL) + +9/11/95 (new feature) Added Tcl_ErrnoMsg to translate an errno value +into a human-readable string. This is now used instead of calling +strerror because strerror mesages vary dramatically from platform +to platform, which messes up Tcl tests. Tcl_ErrnoMsg uses the standard +POSIX messages for all the common signals, and calls strerror for +signals it doesn't understand. + +----------------- Released patch 7.4p2, 9/15/95 ----------------------- + +----------------- Released 7.5a1, 9/15/95 ----------------------- + +9/22/95 (bug fix) Changed auto_mkindex to create tclIndex files that +handle directories whose paths might contain spaces. (RJ) + +9/27/95 (bug fix) The "format" command didn't check for huge or negative +width specifiers, which could cause core dumps. (JO) + +9/27/95 (bug fix) Core dumps could occur if an interactive command typed +to tclsh returned a very long result for tclsh to print out. The bug is +actually in printf (in Solaris 2.3 and 2.4, at least); switched to use +puts instead. (JO) + +9/28/95 (bug fix) Changed makefile.bc to eliminate a false dependency +for tcl1675.dll on the Borland run time library. (SS) + +9/28/95 (bug fix) Fixed tcl75.dll so it looks for tcl1675.dll instead +of tcl16.dll. (SS) + +9/28/95 (bug fix) Tcl was not correctly detecting the difference +between Win32s and Windows '95. (SS) + +9/28/95 (bug fix) "exec" was not passing environment changes to child +processes under Windows. (SS) + +9/28/95 (bug fix) Changed Tcl to ensure that open files are not passed +to child processes under Windows. (SS) + +9/28/95 (bug fix) Fixed Windows '95 and NT versions of exec so it can +handle both console and windows apps. (SS) + +9/28/95 (bug fix) Fixed Windows version of exec so it no longer leaves +temp files lying around. Also changed it so the temp files are +created in the appropriate system dependent temp directory. (SS) + +9/28/95 (bug fix) Eliminated source dependency on the Win32s Universal +Thunk header file, since it is not bundled with VC++. (SS) + +9/28/95 (bug fix) Under Windows, Tcl now constructs the HOME +environment variable from HOMEPATH and HOMEDRIVE when HOME is not +already set. (SS) + +9/28/95 (bug fix) Added support for "info nameofexecutable" and "info +sharedlibextension" to the Windows version. (SS) + +9/28/95 (bug fix) Changed tclsh to correctly parse command line +arguments so that backslashes are preserved under Windows. (SS) + +9/29/95 (bug fix) Tcl 7.5a1 treated either return or newline as end +of line in "gets", which caused lines ending in CRLF to be treated as +two separate lines. Changed to allow only character as end-of-line: +carriage return on Macs, newline elsewhere. (JO) + +9/29/95 (new feature) Changed to install "configInfo" file in same +directory as library scripts. It didn't used to get installed. (JO) + +9/29/95 (bug fix) Tcl was not converting Win32 errors into POSIX +errors under some circumstances. (SS) + +10/2/95 (bug fix) Safe interpreters no longer get initialized with +a call to Tcl_Init(). (JL) + +10/1/95 (new feature) Added "tcl_platform" global variable to provide +environment information such as the instruction set and operating +system. (JO) + +10/1/95 (bug fix) "exec" command wasn't always generating the +"child process exited abnormally" message when it should have. (JO) + +10/2/95 (bug fix) Changed "mkLinks.tcl" so that the scripts it generates +won't create links that overwrite original manual entries (there was +a problem where pack-old.n was overwriting pack.n). (JO) + +10/2/95 (feature change) Changed to use -ldl for dynamic loading under +Linux if it is available, but fall back to -ldld if it isn't. (JO) + +10/2/95 (bug fix) File sharing was causing refcounts to reach 0 +prematurely for stdin, stdout and stderr, under some circumstances. (JL) + +10/2/95 (platform support) Added support for Visual C++ compiler on +Windows, Windows '95 and Windows NT, code donated by Gordon Chaffee. (JL) + +10/3/95 (bug fix) Tcl now frees any libraries that it loads before it +exits. (SS) + +10/03/95 (bug fix) Fixed bug in Macintosh ls command where the -l +and -C options would fail in anything but the HOME directory. (RJ) + +----------------- Released 7.5a2, 10/6/95 ----------------------- + +10/10/95 (bug fix) "file dirnam /." was returning ":" on UNIX instead +of "/". (JO) + +10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating +the tcl.def file from Borland object files. (SS) + +10/17/95 (new features) Moved the event loop from Tcl to Tk, made major +revisions along the way: + - New Tcl commands: after, update, vwait (replaces "tkwait variable"). + - "tkerror" is now replaced with "bgerror". + - The following procedures are similar to their old Tk counterparts: + Tcl_DoOneEvent, Tcl_Sleep, Tcl_DoWhenIdle, Tcl_CancelIdleCall, + Tcl_CreateFileHandler, Tcl_DeleteFileHandler, Tcl_CreateTimerHandler, + Tcl_DeleteTimerHandler, Tcl_BackgroundError. + - Revised notifier, add new concept of "event source" with the following + procedures: Tcl_CreateEventSource, Tcl_DeleteEventSource, + Tcl_WatchFile, Tcl_SetMaxBlockTime, Tcl_FileReady, Tcl_QueueEvent, + Tcl_WaitForEvent. (JO) + +10/31/95 (new features) Implemented cross platform file name support to make +it easier to write cross platform scripts. Tcl now understands 4 file naming +conventions: Windows (both DOS and UNC), Mac, Unix, and Network. The network +convention is a new naming mechanism that can be used to paths in a platform +independent fashion. See the "file" command manual page for more details. +The primary interfaces changes are: + - All Tcl commands that expect a file name now accept both network and + native form. + - Two new "file" subcommands, "nativename" and "networkname", provide a + way to convert between network and native form. + - Renamed Tcl_TildeSubst to Tcl_TranslateFileName, and changed it so that + it always returns a filename in native form. Tcl_TildeSubst is defined + as a macro for backward compatibility, but it is deprecated. (SS) + +11/5/95 (new feature) Made "tkerror" and "bgerror" synonyms, so that +either name can be used to manipulate the command (provides temporary +backward compatibility for existing scripts that use tkerror). (JO) + +11/5/95 (new feature) Added exit handlers and new C procedures +Tcl_CreateExitHandler, Tcl_DeleteExitHandler, and Tcl_Exit. (JO) + +11/6/95 (new feature) Added pid command for Macintosh version of +Tcl (it didn't previously exist on the Mac). (RJ) + +11/7/95 (new feature) New generic IO facility and support for IO to +files, pipes and sockets based on a common buffering scheme. Support +for asynchronous (non-blocking) IO and for event driver IO. Support +for automatic (background) asynchronous flushing and asynchronous +closing of channels. (JL) + +11/7/95 (new feature) Added new commands "fconfigure" and "fblocked" +to support new I/O features such as nonblocking I/O. Added "socket" +command for creating TCP client and server sockets. (JL). + +11/7/95 (new feature) Complete set of C APIs to the new generic IO +facility: + - Opening channels: Tcl_OpenFileChannel, Tcl_OpenCommandChannel, + Tcl_OpenTcpClient, Tcl_OpenTcpServer. + - I/O procedures on channels, which roughly mirror the ANSI C stdio + library: Tcl_Read, Tcl_Gets, Tcl_Write, Tcl_Flush, Tcl_Seek, + Tcl_Tell, Tcl_Close, Tcl_Eof, Tcl_InputBlocked, Tcl_GetChannelOption, + Tcl_SetChannelOption. + - Extension mechanism for creating new kinds of channels: + Tcl_CreateChannel, Tcl_GetChannelInstanceData, Tcl_GetChannelType, + Tcl_GetChannelName, Tcl_GetChannelFile, Tcl_RegisterChannel, + Tcl_UnregisterChannel, Tcl_GetChannel. + - Event-driven I/O on channels: Tcl_CreateChannelHandler, + Tcl_DeleteChannelHandler. (JL) + +11/7/95 (new feature) Channel driver interface specification to allow +new types of channels to be added easily to Tcl. Currently being used +in three drivers - for files, pipes and TCP-based sockets. (JL). + +11/7/95 (new feature) interp delete now takes any number of path +names of interpreters to delete, including zero. (JL). + +11/8/95 (new feature) implemented 'info hostname' and Tcl_GetHostName +command to get host name of machine on which the Tcl process is running. (JL) + +11/9/95 (new feature) Implemented file APIs for access to low level files +on each system. The APIs are: Tcl_CloseFile, Tcl_OpenFile, Tcl_ReadFile, +Tcl_WriteFile and Tcl_SeekFile. Also implemented Tcl_WaitPid which waits +in a system dependent manner for a child process. (JL) + +11/9/95 (new feature) Added Tcl_UpdateLinkedVar procedure to force a +Tcl variable to be updated after its C variable changes. (JO) + +11/9/95 (bug fix) The glob command has been totally reimplemented so +that it can support different file name conventions. It now handles +Windows file names (both UNC and drive-relative) properly. It also +supports nested braces correctly now. (SS) + +11/13/95 (bug fix) Fixed Makefile.in so that configure can be run +from a clean directory separate from the Tcl source tree, and compilations +can be performed there. (JO) + +11/14/95 (bug fix) Fixed file sharing between interpreters and file +transferring between interpreters to correctly manage the refcount so that +files are closed when the last reference to them is discarded. (JL) + +11/14/95 (bug fix) Fixed gettimeofday implementation for the +Macintosh. This fixes several timing related bugs. (RJ) + +11/17/95 (new feature) Added missing support for info nameofexecutable +on the Macintosh. (RJ) + +11/17/95 (bug fix) The Tcl variables argc argv and argv0 now return +something reasonable on the Mac. (RJ) + +11/22/95 (new feature) Implemented "auto-detect" mode for end of line +translations. On input, standalone "\r" mean MAC mode, standalone "\n" +mean Unix mode and "\r\n" means Windows mode. On output, the mode is +modified to whatever the platform specific mode for that platform is. (JL) + +11/24/95 (feature change) Replaced "configInfo" file with tclConfig.sh, +which is more complete and uses slightly different names. Also +arranged for tclConfig.sh to be installed in the platform-specific +library directory instead of Tcl's script library directory. (JO) +*** POTENTIAL INCOMPATIBILITY with Tcl 7.5a2, but not with Tcl 7.4 *** + +----------------- Released patch 7.4p3, 11/28/95 ----------------------- + +12/5/95 (new feature) Added Tcl_File facility to support platform- +independent file handles. Changed all interfaces that used Unix- +style integer fd's to use Tcl_File's instead. (SS) +*** POTENTIAL INCOMPATIBILITY *** + +12/5/95 (new feature) Added a new "clock" command to Tcl. The command +allows you to get the current "clicks" or seconds & allows you to +format or scan human readable time/date strings. (RJ) + +12/18/95 (new feature) Moved Tk_Preserve, Tk_Release, and Tk_EventuallyFree +to Tcl, renamed to Tcl_Preserve, Tcl_Release, and Tcl_EventuallyFree. (JO) + +12/18/95 (new feature) Added new "package" command and associated +procedures Tcl_PkgRequire and Tcl_PkgProvide. Also wrote +pkg_mkIndex library procedure to create index files from binaries +and scripts. (JO) + +12/20/95 (new feature) Added Tcl_WaitForFile procedure. (JO) + +12/21/95 (new features) Made package name argument to "load" optional +(Tcl will now attempt to guess the package name if necessary). Also +added Tcl_StaticPackage and support in "load" for statically linked +packages. (JO) + +12/22/95 (new feature) Upgraded the foreach command to accept multiple +loop variables and multiple value lists. This lets you iterate over +multiple lists in parallel, and/or assign multiple loop variables from +one value list during each iteration. The only potential compatibility +problem is with scripts that used loop variables with a name that could be +construed to be a list of variable names (i.e. contained spaces). (BW) + +1/5/96 (new feature) Changed tclsh so it builds as a console mode +application under Windows. Now tclsh can be used from the command +line with pipes or interactively. Note that this only works under +Windows 95 or NT. (SS) + +1/17/96 (new feature) Modified Makefile and configure script to allow +Tcl to be compiled as a shared library: use the --enable-shared option +when configuing. (JO) + +1/17/96 (removed obsolete features) Removed the procedures Tcl_EnterFile +and Tcl_GetOpenFile: these no longer make sense with the new I/O system. (JL) +*** POTENTIAL INCOMPATIBILITY *** + +1/19/96 (bug fixes) Prevented formation of circular aliases, through the +Tcl 'interp alias' command and through the 'rename' command, as well as +through the C API Tcl_CreateAlias. (JL) + +1/19/96 (bug fixes) Fixed several bugs in direct deletion of interpreters +with Tcl_DeleteInterp when the interpreter is a slave; fixes based on a +patch received from Viktor Dukhovni of ESM. (JL) + +1/19/96 (new feature) Implemented on-close handlers for channels; added +the C APIs Tcl_CreateCloseHandler and Tcl_DeleteCloseHandler. (JL) + +1/19/96 (new feature) Implemented portable error reporting mechanism; added +the C APIs Tcl_SetErrno and Tcl_GetErrno. (JL) + +1/24/96 (bug fix) Unknown command processing properly invokes external +commands under Windows NT and Windows '95 now. (SS) + +1/23/96 (bug fix) Eliminated extremely long startup times under Windows '95. +The problem was a result of the option database initialization code that +concatenated $HOME with /.Xdefaults, resulting in a // in the middle of the +file name. Under Windows '95, this is incorrectly interpreted as a UNC +path. They delays came from the network timeouts needed to determine that +the file name was invalid. Tcl_TranslateFileName now suppresses duplicate +slashes that aren't at the beginning of the file name. (SS) + +1/25/96 (bug fix) Changed exec and open to create children so they are +attached to the application's console if it exists. (SS) + +1/31/96 (bug fix) Fixed command line parsing to handle embedded +spaces under Windows. (SS) + +----------------- Released 7.5b1, 2/1/96 ----------------------- + +2/7/96 (bug fix) Fixed off by one error in argument parsing code under +Windows. (SS) + +2/7/96 (bug fix) Fixed bugs in VC++ makefile that improperly +initialized the tcl75.dll. Fixed bugs in Borland makefile that caused +build failures under Windows NT. (SS) + +2/9/96 (bug fix) Fixed deadlock problem in AUTO end of line translation +mode which would cause a socket server with several concurrent clients +writing in CRLF mode to hang. (JL) + +2/9/96 (API change) Replaced -linemode option to fconfigure with a +new -buffering option, added "none" setting to enable immediate write. (JL) +*** INCOMPATIBILITY with b1 *** + +2/9/96 (new feature) Added C API Tcl_InputBuffered which returns the count +of bytes currently buffered in the input buffer of a channel, and o for +output only channels. (JL) + +2/9/96 (new feature) Implemented asynchronous connect for sockets. (JL) + +2/9/96 (new feature) Added C API Tcl_SetDefaultTranslation to set (per +channel) the default end of line translation mode. This is the mode that +will be installed if an output operation is done on the channel while it is +still in AUTO mode. (JL) + +2/9/96 (bug fix) Changed Tcl_OpenCommandChannel interface to properly +handle all of the combinations of stdio inheritance in background +pipelines. See the Tcl_OpenFileChannel(3) man page for more +info. This change fixes the bug where exec of a background pipeline +was not getting passed the stdio handles properly. (SS) + +2/9/96 (bug fix) Removed the new Tcl_CreatePipeline interface, and +restored the old version for Unix platforms only. All new code should +use Tcl_CreateCommandChannel instead. (SS) + +2/9/96 (bug fix) Changed Makefile.in to use -L and -ltcl7.5 for Tcl +library so that shared libraries are more likely to be found correctly +on more platforms. (JO) + +2/13/96 (new feature) Added C API Tcl_SetNotifierData and +Tcl_GetNotifierData to allow notifier and channel driver writers to +associate data with a Tcl_File. The result of this change is that +Tcl_GetFileInfo now always returns an OS file handle, and Tcl_GetFile +can be used to construct a Tcl_File for an externally constructed OS +handle. (SS) + +2/13/96 (bug fix) Changed Windows socket implementation so it doesn't +set SO_REUSEADDR on server sockets. Now attempts to create a server +socket on a port that is already in use will be properly identified +and an error will be generated. (SS) + +2/13/96 (bug fix) Fixed problems with DLL initialization under Visual +C++ that left the C run time library uninitialized. (SS) + +2/13/96 (bug fix) Fixed Windows socket initialization so it loads +winsock the first time it is used, rather than at the time tcl75.dll +is loaded. This should fix the bug where the modem immediately starts +trying to connect to a service provider when wish or tclsh are +started. (SS) + +2/13/96 (new feature) Added C APIs Tcl_MakeFileChannel and +Tcl_MakeTcpClientChannel to wrap up existing fds and sockets into +channels. Provided implementations on Unix and Windows. (JL) + +2/13/96 (bug fix) Fixed bug with seek leaving EOF and BLOCKING set. (JL) + +2/14/96 (bug fix) Fixed reentrancy problem in fileevent handling +and made it more robust in the face of errors. (JL) + +2/14/96 (feature change) Made generic IO level emulate blocking mode if the +channel driver is unable to provide it, e.g. if the low level device is +always nonblocking. Thus, now blocking behavior is an advisory setting for +channel drivers and can be ignored safely if the channel driver is unable +to provide it. (JL) + +2/15/96 (new feature) Added "binary" end of line translation mode, which is +a synonym of "lf" mode. (JL) + +2/15/96 (bug fix) Fixed reentrancy problem in fileevent handling vs +deletion of channel event handlers. (JL) + +2/15/96 (bug fix) Fixed bug in event handling which would cause a +nonblocking channel to not see further readable events after the first +readable event that had insufficient input. (JL) + +2/17/96 (bug fix) "info complete" didn't properly handle comments +in nested commands. (JO) + +2/21/96 (bug fix) "exec" under Windows NT/95 did not properly handle +very long command lines (>200 chars). (SS) + +2/21/96 (bug fix) Sockets could get into an infinite loop if a read +event arrived after all of the available data had been read. (SS) + +2/22/96 (bug fix) Added cast of st_size elements to (long) before +sprintf-ing in "file size" command. This is needed to handle systems +like NetBSD with 64-bit file offsets. (JO) + +----------------- Released 7.5b2, 2/23/96 ----------------------- + +2/23/96 (bug fix) TCL_VARARGS macro in tcl.h wasn't defined properly +when compiling with C++. (JO) + +2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile: +this caused problems on some platforms (like Linux?). (JO) + +2/24/96 (bug fix) Fixed configuration bug that made Tcl not compile +correctly on Linux machines with neither -ldl or -ldld. (JO) + +2/24/96 (new feature) Added a block of comments and definitions to +Makefile.in to make it easier to have Tcl's TclSetEnv etc. replace +the library procedures setenv etc, so that calls to setenv etc. in +the application automatically update the Tcl "env" variable. (JO) + +2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL) +to C API Tcl_Close and simplified closing of command channels. (JL) +*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** + +2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL) +to C type definition Tcl_DriverCloseProc; modified all channel drivers to +implement close procedures that accept the additional argument. (JL) +*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** + +2/28/96 (bug fix) Fixed memory leak that could occur if an upvar +referred to an element of an array in the same stack frame as the +upvar. (JO) + +2/29/96 (feature change) Modified both Tcl_DoOneEvent and Tcl_WaitForEvent +so that they return immediately in cases where they would otherwise +block forever (e.g. if there are no event handlers of any sort). (JO) + +2/29/96 (new feature) Added C APIs Tcl_GetChannelBufferSize and +Tcl_SetChannelBufferSize to set and retrieve the size, in bytes, for +buffers allocated to store input or output in a channel. (JL) + +2/29/96 (new feature) Added option -buffersize to Tcl fconfigure command +to allow Tcl scripts to query and set the size of channel buffers. (JL) + +2/29/96 (feature removed) Removed channel driver function to specify +the buffer size to use when allocating a buffer. Removed the C typedef +for Tcl_DriverBufferSizeProc. Channels are now created with a default +buffer size of 4K. (JL) +*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** + +2/29/96 (feature change) The channel driver function for setting blocking +mode on the device may now be NULL. If the generic code detects that the +function is NULL, operations that set the blocking mode on the channel +simply succeed. (JL) + +3/2/96 (bug fix) Fixed core dump that could occur if a syntax error +(such as missing close paren) occurred in an array reference with a +very long array name. (JO) + +3/4/96 (bug fix) Removed code in the "auto_load" procedure that deletes +all existing auto-load information whenever the "auto_path" variable +is changed. Instead, new information adds to what was already there. +Otherwise, changing the "auto_path" variable causes all package- +related information to be lost. If you really want to get rid of +existing auto-load information, use auto_reset before setting auto_path. (JO) + +3/5/96 (new feature) Added version suffix to shared library names so that +Tcl will compile under NetBSD and FreeBSD (I hope). (JO) + +3/6/96 (bug fix) Cleaned up error messages in new I/O system to correspond +more closely to old I/O system. (JO) + +3/6/96 (new feature) Added -myaddr and -myport options to the socket +command, removed -tcp and -- options. This lets clients and servers +choose a particular interface. Also changed the default server address +from the hostname to INADDR_ANY. The server accept callback now gets +passed the client's port as well as IP address. The C interfaces for +Tcl_OpenTcpClient and Tcl_OpenTcpServer have changed to support the +above changes. (BW) +*** POTENTIAL INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** + +3/6/96 (changed feature) The library function auto_mkindex will now +default to using the pattern "*.tcl" if no pattern is given. (RJ) + +3/6/96 (bug fix) The socket channel code for the Macintosh has been +rewritten to use native MacTcp. (RJ) + +3/7/96 (new feature) Added Tcl_SetStdChannel and Tcl_GetStdChannel +interfaces to allow applications to explicitly set and get the global +standard channels. (SS) + +3/7/96 (bug fix) Tcl did close not the file descriptors associated +with "stdout", etc. when the corresponding channels were closed. (SS) + +3/7/96 (bug fix) Reworked shared library and dynamic loading stuff to +try to get it working under AIX. Added new @SHLIB_LD_LIBS@ autoconf +symbol as part of this. AIX probably doesn't work yet, but it should +be a lot closer. (JO) + +3/7/96 (feature change) Added Tcl_ChannelProc typedef and changed the +signature of Tcl_CreateChannelHandler and Tcl_DeleteChannelHandler to take +Tcl_ChannelProc arguments instead of Tcl_FileProc arguments. This change +should not affect any code outside Tcl because the signatures of +Tcl_ChannelProc and Tcl_FileProc are compatible. (JL) + +3/7/96 (API change) Modified signature of Tcl_GetChannelOption to return +an int instead of char *, and to take a Tcl_DString * argument. Modified +the implementation so that the option name can be NULL, to mean that the +call should retrieve a list of alternating option names and values. (JL) +*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** + +3/7/96 (API change) Added Tcl_DriverSetOptionProc, Tcl_DriverGetOptionProc +typedefs, added two slots setOptionProc and getOptionProc to the channel +type structure. These may be NULL to indicate that the channel type does +not support any options. (JL) +*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** + +3/7/96 (feature change) stdin, stdout and stderr can now be put into +nonblocking mode. (JL) + +3/8/96 (feature change) Eliminated dependence on the registry for +finding the Tcl library files. (SS) + +----------------- Released 7.5b3, 3/8/96 ----------------------- + +3/12/96 (feature improvement) Modified startup script to look in several +different places for the Tcl library directory. This should allow Tcl +to find the libraries under all but the weirdest conditions, even without +the TCL_LIBRARY environment variable being set. (JO) + +3/13/96 (bug fix) Eliminated use of the "linger" option from the Windows +socket implementation. (JL) + +3/13/96 (new feature) Added -peername and -sockname options for fconfigure +for socket channels. Code contributed by John Haxby of HP. (JL) + +3/13/96 (bug fix) Fixed panic and core dump that would occur if the accept +callback script on a server socket encountered an error. (JL) + +3/13/96 (feature change) Added -async option to the Tcl socket command. +If the command is creating a client socket and the flag is present, the +client is connected asynchronously. If the option is absent (the default), +the client socket is connected synchronously, and the command returns only +when the connection has been completed or failed. This change was suggested +by Mark Diekhans. (JL) + +3/13/96 (feature change) Modified the signature of Tcl_OpenTcpClient to +take an additional int argument, async. If nonzero, the client is connected +to the server asynchronously. If the value is zero, the connection is made +synchronously, and the call to Tcl_OpenTcpClient returns only when the +connection fails or succeeds. This change was suggested by Mark Diekhans. (JL) +*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** + +3/14/96 (bug fix) "tclsh bogus_file_name" didn't print an error message. (JO) + +3/14/96 (bug fix) Added new procedures to tclCkalloc.c so that libraries +and applications can be compiled with TCL_MEM_DEBUG even if Tcl isn't +(however, the converse is still not true). Patches provided by Jan +Nijtmans. (JO) + +3/15/96 (bug fix) Marked standard IO handles of a process as close-on-exec +to fix bug in Ultrix where exec was not sharing standard IO handles with +subprocesses. Fix suggested by Mark Diekhans. (JL) + +3/15/96 (bug fix) Fixed asynchronous close mechanism so that it closes the +channel instead of leaking system resources. The manifestation was that Tcl +would eventually run out of file descriptors if it was handling a large +number of nonblocking sockets or pipes with high congestion. (JL) + +3/15/96 (bug fix) Fixed tests so that they no longer leak file descriptors. +The manifestation was that Tcl would eventually run out of file descriptors +if the tests were rerun many times (> a hundred times on Solaris). (JL) + +3/15/96 (bug fix) Fixed channel creation code so that it never creates +unnamed channels. This would cause a panic and core dump when the channel +was closed. (JL) + +3/16/96 (bug fixes) Made lots of changes in configuration stuff to get +Tcl working under AIX (finally). Tcl should now support the "load" +command under AIX and should work either with or without shared +libraries for Tcl and Tk. (JO) + +3/21/96 (configuration improvement) Changed configure script so it +doesn't use version numbers (as in -ltcl7.5 and libtcl7.5.so) under +SunOS 4.1, where they don't work anyway. (JO) + +3/22/96 (new feature) Added C API Tcl_InterpDeleted that allows extension +writers to discover when an interpreter is being deleted. (JL) + +3/22/96 (bug fix) The standard IO channels are now added to each +trusted interpreter as soon as the interpreter is created. This ensures +against the bug where a child would do IO before the master had done any, +and then the child is destroyed - the standard IO channels would be then +closed and the master would be unable to do any IO. (JL) + +3/22/96 (bug fix) Made Tcl more robust against interpreter deletion, by +using Tcl_Preserve, Tcl_Release and Tcl_EventuallyFree to split the process +of interpreter deletion into two distinct phases. Also went through all of +Tcl and added calls to Tcl_Preserve and Tcl_Delete where needed. (JL) + +3/22/96 (bug fix) Fixed several places where C code was reading and writing +into freed memory, especially during interpreter deletion. (JL) + +3/22/96 (bug fix) Fixed very deep bug in Tcl_Release that caused memory to +be freed twice if the release callback did Tcl_Preserve and Tcl_Release on +the same memory as the chunk currently being freed. (JL) + +3/22/96 (bug fix) Removed several memory leaks that would cause memory +buildup on half-K chunks in the generic IO level. (JL) + +3/22/96 (bug fix) Fixed several core dumps which occurred when new +AssocData was being created during the cleanups in interpreter deletion. +The solution implemented now is to loop repeatedly over the AssocData until +none is left to clean up. (JL) + +3/22/96 (bug fix) Fixed a bug in event handling which caused an infinite +loop if there were no files being watched and no timer. Fix suggested by +Jan Nijtmans. (JL) + +3/22/96 (bug fix) Fixed Tcl_CreateCommand, Tcl_DeleteCommand to be more +robust if the interpreter is being deleted. Also fixed several order +dependency bugs in Tcl_DeleteCommand which kicked in when an interpreter +was being deleted. (JL) + +3/26/96 (bug fix) Upon a "short read", the generic code no longer calls +the driver for more input. Doing this caused blocking on some platforms +even on nonblocking channels. Bug and fix courtesy Mark Roseman. (JL) + +3/26/96 (new feature) Added 'package Tcltest' which is present only in +test versions of Tcl; this allows the testing commands to be loaded into +new interpreters besides the main one. (JL) + +3/26/96 (restored feature) Recreated the Tcl_GetOpenFile C API. You can +now get a FILE * from a registered channel; Unix only. (JL) + +3/27/96 (bug fix) The regular expression code did not support more +than 9 subexpressions. It now supports up to 20. (SS) + +4/1/96 (bug fixes) The CHANNEL_BLOCKED bit was being left on on a short +read, so that fileevents wouldn't fire correctly. Bug reported by Mark +Roseman.(JL, RJ) + +4/1/96 (bug fix) Moved Tcl_Release to match Tcl_Preserve exactly, in +tclInterp.c; previously interpreters were being freed only conditionally +and sometimes not at all. (JL) + +4/1/96 (bug fix) Fixed error reporting in slave interpreters when the +error message was being generated directly by C code. Fix suggested by +Viktor Dukhovni of ESM. (JL) + +4/2/96 (bug fixes) Fixed a series of bugs in Windows sockets that caused +events to variously get lost, to get sent multiple times, or to be ignored +by the driver. The manifestation was blocking if the channel is blocking, +and either getting EAGAIN or infinite loops if the channel is nonblocking. +This series of bugs was found by Ian Wallis of Cisco. Now all tests (also +those that were previously commented out) in socket.test pass. (JL, SS) + +4/2/96 (feature change/bug fix) Eliminated network name support in +favor of better native name support. Added "file split", "file join", +and "file pathtype" commands. See the "file" man page for more +details. (SS) +*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** + +4/2/96 (bug fix) Changed implementation of auto_mkindex so tclIndex +files will properly handle path names in a cross platform context. (SS) + +4/5/96 (bug fix) Fixed Tcl_ReadCmd to use the channel buffer size as the +chunk size it reads, instead of a fixed 4K size. Thus, on large reads, the +user can set the channel buffer size to a large size and the read will +occur orders of magnitude faster. For example, on a 2MB file, reading in 4K +chunks took 34 seconds, while reading in 1MB chunks took 1.5 seconds (on a +SS-20). Problem identified and fix suggested by John Haxby of HP. (JL) + +4/5/96 (bug fix) Fixed socket creation code to invoke gethostbyname only if +inet_addr failed (very unlikely). Before this change the order was reversed +and this made things much slower than they needed to be (gethostbyname +generally requires an RPC, which is slow). Problem identified and fix +suggested by John Loverso of OSF. (JL) + +4/9/96 (feature change) Modified "auto" translation mode so that it +recognizes any of "\n", "\r" and "\r\n" in input as end of line, so +that a file can have mixed end-of-line sequences. It now outputs +the platform specific end of line sequence on each platform for files and +pipes, and for sockets it produces crlf in output on all platforms. (JL) +*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** + +4/11/96 (new feature) Added -eofchar option to Tcl_SetChannelOption to allow +setting of an end of file character for input and output. If an input eof +char is set, it is recognized as EOF and further input from the channel is +not presented to the caller. If an output eof char is set, on output, that +byte is appended to the channel when it is closed. On Unix and Macintosh, +all channels start with no eof char set for input or output. On Windows, +files and pipes start with input and output eof chars set to Crlt-Z (ascii +26), and sockets start with no input or output eof char. (JL) +*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** + +4/17/96 (bug fix) Fixed series of bugs with handling of crlf sequence split +across buffer boundaries in input, in AUTO mode. (JL, BW) + +4/17/96 (test suite improvement) Fixed test suite so that tests that +depend on the availability of Unix commands such as echo, cat and others +are not run if these commands are not present. (JL) + +4/17/96 (test suite improvement) The socket test now automatically starts, +on platformst that support exec, a separate process for remote testsing. (JL) + +----------------- Released 7.5, 4/21/96 ----------------------- + +5/1/96 (bug fix) "file tail ~" did not correctly return the tail +portion of the user's home directory. (SS) + +5/1/96 (bug fix) Fixed bug in TclGetEnv where it didn't lookup environment +variables correctly: could confuse "H" and "HOME", for example. (JO) + +5/1/96 (bug fix) Changed to install tclConfig.sh under "make install-binaries", +not "make install-libraries". (JO) + +5/2/96 (bug fix) Changed pkg_mkIndex not to attempt to "load" a file unless +it has the standard shared library extension. On SunOS, attempts to load +Tcl scripts cause the whole application to be aborted (there's no way to +get the error back into Tcl). (JO) + +5/7/96 (bug fix) Moved initScript in tclUnixInit.c to writable memory to +avoid potential core dumps. (JO) + +5/7/96 (bug fix) Auto_reset procedure was removing procedure from init.tcl, +such as pkg_mkIndex. (JO) + +5/7/96 (bug fix) Fixed cast on socket address resolution code that +would cause a failure to connect on Dec Alphas. (JL) + +5/7/96 (bug fix) Added "time", "subst" and "fileevent" commands to set of +commands available in a safe interpreter. (JL) + +5/13/96 (bug fix) Preventing OS level handles for stdin, stdout and stderr +from being implicitly closed when the last reference to the standard +channel containing that handle is discarded when an interpreter is deleted. +Explicitly closing standard channels by using "close" still works. (JL) + +5/21/96 (bug fix) Do not create channels for stdin, stdout and stderr on +Unix if the devices are closed. This prevents a duplicate channel name +panic later on when the fd is used to open a channel and the channel is +registered in an interpreter. (JL) + +5/23/96 (bug fix) Fixed bug that prevented the use of standard channels in +interpreters created after the last interpreter was destroyed. In the sequence + + interp = Tcl_CreateInterp(); + Tcl_DeleteInterp(interp); + interp = Tcl_CreateInterp(); + +channels for stdio would not be available in the second interpreter. (JL) + +5/23/96 (bug fix) Fixed bug that allowed Tcl_MakeFileChannel to create new +channels with Tcl_Files in them that are already used by another channel. +This would cause core dumps when the Tcl_Files were being freed twice. (JL) + +5/23/96 (bug fix) Fixed a logical timing bug that caused a standard channel +to be removed from the standard channel table too early when the channel +was being closed. If the channel was being flushed asynchronously, it could +get recreated before being actually destroyed, and the recreated channel +would contain the same Tcl_File as the one being closed, leading to +dangling pointers and core dumps. (JL) + +5/27/96 (bug fix) Fixed a bug in Tcl_GetChannelOption which caused it to +always return a list of one element, a list of the settings, for +-translation and -eofchar options. Now correctly returns the value +described by the documentation (Mark Diekhans found this, thanks!). (JL) + +5/30/96 (bug fix) Fixed a couple of syntax errors in io.test. (JL) + +5/30/96 (bug fix) If a fileevent scripts gets an error, delete it before +causing a background error. This is to allow the error handler to reinstall +the fileevent and to prevent infinite loops if the event loop is reentered +in the error handler. (JL) + +5/31/96 (bug fix) Channels now will get properly flushed on exit. (JL) + +6/5/96 (bug fix) Changed Tcl_Ckalloc, Tcl_Ckfree, and Tcl_Ckrealloc to +Tcl_Alloc, Tcl_Free, and Tcl_Realloc. Added documentation for these +routines now that they are officially supported. Extension writers +should use these routines instead of free() and malloc(). (SS) + +6/10/96 (bug fix) Changes the Tcl close command so that it no longer +waits on nonblocking pipes for the piped processes to exit; instead it +reaps them in the background. (JL) + +6/11/96 (bug fix) Increased the length of the listen queue for server +sockets on Unix from 5 to 100. Some OSes will disregard this and reset it +to 5, but we should try to get as long a queue as we can, for performance +reasons. (JL) + +6/11/96 (bug fix) Fixed windows sockets bug that caused a cascade of events +if the fileevent script read less than was available. Now reading less than +is available does not cause a flood of Tcl events. (JL, SS) + +6/11/96 (bug fix) Fixed bug in background flushing on closed channels that +would prevent the last buffer from getting flushed. (JL) + +6/13/96 (bug fix) Fixed bug in Windows sockets that caused a core dump if +a DLL linked with tcl.dll and referred to e.g. ntohs() without opening a +Tcl socket. The problem was that the indirection table was not being +initialized. (JL) + +6/13/96 (bug fix) Fixed OS level resource leak that would occur when a +Tcl channel was still registered in some interpreter when the process +exits. Previously the channel was not being closed and the OS level handles +were not being released; the output was being flushed but the device was +not being closed. Now the device is properly closed. This was only a +problem on Win3.1 and MacOS. (JL, SS) + +6/28/96 (bug fix) Fixed bug where transient errors were leaving an error +code around, so that it would erroneously get reported later. This bug was +exercised intermittently by closing a channel to a file on a very loaded +NFS server, or to a socket whose other end blocked. (JL, BW) + +7/3/96 (bug fix) Fileevents declared in an interpreter are now deleted +when the channel is closed in that interpreter. Before this fix, the +fileevent would hang around until the channel is completely closed, and +would cause errors if events happened before the channel was closed. This +could happen in two cases: first if the channel is shared between several +interpreters, and second if an async flush is in progress that prevents the +channel from being closed until the flush finishes. (JL) + +7/10/96 (bug fix) Fixed bugs in both "lrange" and "lreplace" commands +where too much white space was being removed. For example, the command + lreplace {\}\ hello} end end +was returning "\}\", losing the significant space in the first list +element and corrupting the list. (JO) + +7/20/96 (bug fix) The procedure pkg_mkIndex didn't work properly for +extensions that depend on Tk, because it didn't load Tk into the child +interpreter before loading the extension. Now it loads Tk if Tk is +present in the parent. (JO) + +7/23/96 (bug fix) Added compat version of strftime to fix crashes +resulting from bad implementations under Windows. (SS) + +7/23/96 (bug fix) Standard implementations of gmtime() and localtime() +under Windows did not handle dates before 1970, so they were replaced +with a revised implementation. (SS) + +7/23/96 (bug fix) Tcl would crash on exit under Borland 5.0 because +the global environ pointer was left pointing to freed memory. (SS) + +7/29/96 (bug fix) Fixed memory leak in Tcl_LoadCmd that could occur if +a package's AppInit procedure called Tcl_StaticPackage to register +static packages. (JO) + +8/1/96 (bug fix) Fixed a series of bugs in Windows sockets so that async +writebehind in the presence of read event handlers now works, and so that +async writebehind also works on sockets for which a read event handler was +declared and whose channels were then closed before the async write +finished. The bug was reported by John Loverso and Steven Wahl, +independently, test case supplied by John Loverso. (JL) + +----------------- Released patch 7.5p1, 8/2/96 ----------------------- + +5/8/96 (new feature) Added Tcl_GetChannelMode C API for retrieving whether +a channel is open for reading and writing. (JL) + +5/8/96 (API changes) Revised C APIs for channel drivers: + - Removed all Tcl_Files from channel driver interface; you can now have + channels that are not based on Tcl_Files. + - Added channelReadyProc and watchChannelProc procedures to interface; + these are used to implement event notification for channels. + - Added getFileProc to channel driver, to allow the generic IO code + to retrieve a Tcl_File from a channel (presumably if the channel + uses Tcl_Files they will be stored inside its instanceData). (JL) +*** INCOMPATIBILITY with Tcl 7.5 *** + +5/8/96 (API change) The Tcl_CreateChannel C API was modified to not take +Tcl_File arguments, and instead to take a mask specifying whether the +channel is readable and/or writable. (JL) +*** INCOMPATIBILITY with Tcl 7.5 *** + +6/3/96 (bug fix) Made Tcl_SetVar2 robust against the case where the value +of the variable is a NULL pointer instead of "". (JL) + +6/17/96 (bug fix) Fixed "reading uninitialized memory" error reported by +Purify, in Tcl_Preserve/Tcl_Release. (JL) + +8/9/96 (bug fix) Fixed bug in init.tcl that caused incorrect error message +if the act of autoloading a procedure caused the procedure to be invoked +again. (JO) + +8/9/96 (bug fix) Configure script produced bad library names and extensions +under SunOS and a few other platforms if the --disable-load switch was used. +(JO) + +8/9/96 (bug fix) Tcl_UpdateLinkedVar generated an error if the variable +being updated was read-only. (JO) + +8/14/96 (bug fix) The macintosh now supports synchronous socket +connections. Other minor bugs were also fixed. (RJ) + +8/15/96 (configuration improvement) Changed the file patchlevel.h +to be tclPatch.h. This avoids conflict with the Tk file and is now +in 8.3 format on the Windows platform. (RJ) + +8/20/96 (bug fix) Fixed core dump in interp alias command for interpreters +created with Tcl_CreateInterp (as opposed to with Tcl_CreateSlave). (JL) + +8/20/96 (bug fix) No longer masking ECONNRESET on Windows sockets so +that the higher level of the IO mechanism sees the error instead of +entering an infinite loop. (JL) + +8/20/96 (bug fix) Destroying the last interpreter no longer closes the +standard channels. (JL) + +8/20/96 (bug fix) Closing one of the stdin, stdout or stderr channels and +then opening a new channel now correctly assigns the new channel as the +standard channel that was closed. (JL) + +8/20/96 (bug fix) Added code to unix/tclUnixChan.c for using ioctl with +FIONBIO instead of fcntl with O_NONBLOCK, for those versions of Unix where +either O_NONBLOCK is not supported or implemented incorrectly. (JL) + +8/21/96 (bug fix) Fixed "file extension" so it correctly returns the +extension on files like "foo..c" as "..c" instead of ".c". (SS) + +8/22/96 (bug fix) If environ[] contains static strings, Tcl would core +dump in TclSetupEnv because it was trying to write NULLs into the actual +data in environ[]. Now we instead copy as appropriate. (JL) + +8/22/96 (added impl) Added missing implementation of Tcl_MakeTcpClientChannel +for Windows platform. Code contributed by Mark Diekhans. (JL) + +8/22/96 (new feature) Added a new memory allocator for the Macintosh +version of Tcl. It's quite a bit faster than MetroWerk's version. (RJ) + +8/26/96 (documentation update) Removed old change bars (for all changes +in Tcl 7.5 and earlier releases) from manual entries. (JO) + +8/27/96 (enhancement) The exec and open commands behave better and work in +more situations under Windows NT and Windows 95. Documentation describes +what is still lacking. (CS) + +8/27/96 (enhancement) The Windows makefiles will now compile even if the +compiler is not in the path and/or the compiler's environment variables +have not been set up. (CS) + +8/27/96 (configuration improvement) The Windows resource files are +automatically updated when the version/patch level changes. The header file +now has a comment that reminds the user which other files must be manually +updated when the version/patch level changes. (CS) + +8/28/96 (new feature) Added file manipulation features (copy, rename, delete, +mkdir) that are supported on all platforms. They are implemented as +subcommands to the "file" command. See the documentation for the "file" +command for more information. (JH) + +----------------- Released 7.6b1, 8/30/96 ----------------------- + +9/3/96 (bug fix) Simplified code so that standard channels are created +lazily, they are added to an interpreter lazily, and they are never added +to a safe interpreter. (JL) + +9/3/96 (bug fix) Closing a channel after closing a standard channel, e.g. +stdout, would cause the implicit recreation of that standard channel. (JL) + +9/3/96 (new feature) Now calling Tcl_RegisterChannel with a NULL +interpreter increments the refcount so that code outside any interpreter +can use channels that are also registered in interpreters, without worrying +that the channel may turn into a dangling pointer at any time. Calling +Tcl_UnregisterChannel with a NULL interpreter only decrements the recount +so that code outside any interpreter can safely declare it is no longer +interested in a channel. (JL) + +9/4/96 (new features) Two changes to dynamic loading: + - If the file name is empty in the "load" command and there is no + statically loaded version of the package, a dynamically loaded + version will be used if there is one. + - Tcl_StaticPackage ignores redundant calls for the same package. (JO) + +9/6/96 (bug fix) Platform specific procedures for manipulating files are +no longer macros and have been prefixed with "Tclp", such as TclpRenameFile. +Unix file code now handles symbolic links and other special files correctly. +The semantics of file copy and file rename has been changed so that if +a target directory exists, the source files will NOT be merged with the +existing files. (JH) + +9/6/96 (bug fix) If standard channel is NULL, because Tcl cannot connect +to the standard channel, do not increment the refcount. The channel can +be NULL if there is for example no standard input. (JL) + +9/6/96 (portability improvement) Changed parsing of backslash sequences +like \n to translate directly to absolute values like 0xa instead of +letting the compiler do the translation. This guarantees that the +translation is done the same everywhere. (JO) + +9/9/96 (bug fix) If channel is opened and not associated with any +interpreter, but Tcl decides to use it as one of the standard channels, it +became impossible to close the channel with Tcl_Close -- instead you had +to call Tcl_UnregisterChannel. Fixed now so that it's safe to call +Tcl_Close even when Tcl is using the channel as one of the standard ones. (JL) + +9/11/96 (feature change) The Tcl library is now placed in the Tcl +shared libraries resource. You no longer need to place the Tcl files +in your applications explicitly. (RJ) + +9/11/96 (feature change) Extensions no longer automatically have the +resource fork of the extension opened for it. Instead you need to +use the tclMacLibrary.c file in your extension. (RJ) +*** POTENTIAL INCOMPATIBILITY *** + +9/12/96 (bug fix) The extension loading mechanism on the Macintosh now +looks at the 'cfrg' resource to determine where to load the code +fragment from. This means FAT fragments should now work. (RJ) + +9/18/96 (enhancement) The exec and open commands behave better and work in +more situations under Windows 3.X. Documentation describes what is still +lacking. (CS) + +9/19/96 (bug fix) Fixed a panic which would occur if you delete a +non-existent alias before any aliases are created. Now instead correctly +returns an error that the alias is not found. (JL) + +9/19/96 (bug fix) Slave interpreters could rename aliases and they would +not get deleted when the alias was being redefined. This led to dangling +pointers etc. (JL) + +9/19/96 (bug fix) Fixed a panic where a hash table entry was being deleted +twice during alias management operations. (JL) + +9/19/96 (bug fix) Fixed bug in event loop that could cause the input focus +in Tk to get confused during menu traversal, among other problems. The +problem was related to handling of the "marker" when its event was +deleted. (JO) + +9/26/96 (bug fix) Windows was losing EOF on a socket if the FD_CLOSE event +happened to precede any left over FD_READ events. Now correctly remembers +seeing FD_CLOSE, so that trailing FD_READ events are not discarded if they +do not contain any data. This allows Tcl to correctly get a zero read and +notice EOF. (JL) + +9/26/96 (bug fix) Was not resetting READABLE state properly on sockets +under Windows if the driver discarded an FD_READ event because no data was +present. Now correctly resets the state. (JL) + +9/30/96 (bug fix) Made EOF sticky on Windows sockets, so that fileevent +readable will fire repeatedly until the socket is closed. Previously the +fileevent fired only once. This could lead to never-closed connections if +the Tcl script in the fileevent wasn't closing the socket immediately. (JL) + +10/2/96 (new feature) Improved the package loader: + - Added new variable tcl_pkgPath, which holds the default + directories under which packages are normally installed (each + package goes in a separate subdirectory of a directory in + $tcl_pkgPath). These directories are included in auto_path by + default. + - Changed the package auto-loader to look for pkgIndex.tcl files + not only in the auto_path directories but also in their immediate + children. This should make it easier to install and uninstall + packages (don't have to change auto_path or merge pkgIndex.tcl + files). (JO) + +10/3/96 (bug fix) Changed tclsh to look for tclshrc.tcl instead of +tclsh.rc on startup under Windows. This is more consistent with wish and +uses the right extension. (SS) +*** POTENTIAL INCOMPATIBILITY *** + +10/8/96 (bug fix) Convertclock does not parse 24-hour times of the +form "hhmm" correctly when hour = 00. In the parse code, hour must be +>= 100 for minutes to be non-zero. Thanks to Lint LaCour for this +bug fix. (RJ) + +10/11/96 (bug fix) Under Windows, the pid command returned the process +handle instead of the process id. (SS) + +----------------- Released 7.6, 10/16/96 ----------------------- + +10/29/96 (bug fix) Under Windows, sockets would consume 100% CPU time after +the first accept(), due to a typo. (JL) + +10/29/96 (bug fix) Incorrect refcount management caused standard channels +not to get deleted at process exit or DLL unload time, causing a memory +leak of upwards of 20K each time. (JL) + +11/7/96 (bug fix) Auto-exec didn't work on file names that contained +spaces. (JO) + +11/8/96 (bug fix) Fixed core dump that would occur if more than one call +to Tcl_DeleteChannelHandler was made to delete a given channel handler. (JL) + +11/8/96 (bug fix) Fixed test for return value in Tcl_Seek and Tcl_SeekCmd +to only treat -1 as error, instead of all negative numbers. (JL) + +11/12/96 (bug fix) Do not blocking waiting for processes at the end of a +pipe during exit cleanup. (JL) + +11/12/96 (bug fix) If we are in exit cleanup, do not close the system level +file descriptors 0, 1 and 2. Previously they were being closed which is +incorrect, in the embedded case. This led to weird behavior for programs +that want to interpose on I/O through the standard file descriptors (e.g. +Netscape Navigator). (JL) + +11/15/96 (bug fix) Fixed core dump on Windows sockets due to dependency on +deletion order at exit. Now all socket functions check to see if sockets +are (still) initialized, before calling through function pointers. Before, +they would call and might end up calling unloaded object code. (JL) + +11/15/96 (bug fix) Fixed core dump in Windows socket initialization routine +if sockets were not installed on the system. Before, it was not properly +checking the result of attempting to load the socket DLL, so it would call +through uninitialized function pointers. (JL) + +11/15/96 (bug fix) Fixed memory leak in Windows sockets which left socket +DLL handle open and could hold the socket DLL in memory uneccessarily, +until a reboot. (JL) + +12/4/96 (bug fix) Fixed bug in Macintosh socket code that could result +in lost data if a client was closed too soon after sending data. (RJ) + +12/17/96 (bug fix) Fixed deadlock bug in Windows sockets due to losing an +event. This was happening because of an interaction between buffering and +nonblocking mode on sockets. Now switched to sockets being blocking by +default, so we are also no longer emulating blocking through a private +event loop. (JL) + +1/21/97 (performance bug fix) Client TCP connections were slow to create +because getservbyname was always called on the port. Now this is only +done if Tcl_GetInt fails. (BW) + +1/21/97 (configuration fix) Made it possible to override TCL_PACKAGE_PATH +during make. Previously it was only set during autoconf process. + +1/29/97 (bug fix) Fixed some problems with the clock command that +impacted how dates were scaned after the year 2000. (RJ) + +----------------- Released 7.6p2, 1/31/97 ----------------------- + +2/5/97 (bug fix) Fixed a bug where in CR-LF translation mode, \r bytes +in the input stream were not being handled correctly. (JL) + +2/24/97 (bug fix) Fix bug with exec under Win32s not being able to create +stderr file which caused all execs to fail. Fixed temp file leak under +Win32s. Fixed optional parameter bug with SearchPath that only happened +under Win32s 1.25. (CCS) + +---------------------------------------------------------- +Changes for Tcl 7.6 go above this line. +Changes for Tcl 7.7 go below this line. +---------------------------------------------------------- + +5/8/96 (new feature) Added Tcl_Ungets C API for putting a sequence of bytes +into a channel's input buffer. This can be used for "push" model channels +where the input is obtained via callbacks instead of by request of the +generic IO code. No Tcl procedure yet. (JL) + +11/15/96 (new feature) Implemented hidden commands. New C APIs: + Tcl_HideCommand -- hides an existing exposed command. + Tcl_ExposeCommand -- exposes an existing hidden command. +New tcl APIs: + interp invokehidden -- invokes a hidden command in a slave. + interp hide -- hides an existing exposed command. + interp expose -- exposes an existing hidden command. + interp hidden -- returns a list of hidden commands. +The implementation of Safe Tcl now uses the new hidden commands facility +to implement the safe base, instead of deleting the commands from a safe +interpreter. (JL) + +11/15/96 (new feature) Implemented the safe base, a mechanism for +installing and requesting security policies, purely in Tcl code. Overloads +the package command to also allow an interpreter to "require" a policy. The +following new library commands are provided: + tcl_safeCreateInterp -- creates a slave an initializes the + policy mechanism. + tcl_safeInitInterp -- initializes an existing slave with the + policy mechanism. + tcl_safeDeleteInterp -- deletes a slave and deinitializes the + policy mechanism. +Added a new file to the library, safeinit.tcl, to hold implementation. (JL) +On 7/9/97, removed the policy loading mechanism from the Safe Base. Left +only the Safe Base aliases dealing with auto-loading and source. (JL) + +12/6/96 (new feature) Implemented Tcl_Finalize, an API that should be +called by a process when it is done using Tcl. This API runs all the exit +handlers to allow them to clean up resources etc. (JL) + +12/17/96 (new feature) Add an http Tcl script package to the Tcl library. +This package implements the client side of HTTP/1.0; the GET, HEAD, +and POST requests. (BW) + +1/21/97 (new feature) Added a "marktrusted" subcommand to the "interp" and +to the interpreter object command. It removes the "safe" mark on an +interpreter and disables hard-wired checks for safety in the C sources. (JL) + +1/21/97 (removed feature) Removed "vwait" from set of commands available in +a safe interpreter. (JL) + +2/11/97 (new feature, bug fix) http package. Added -accept to http_config +so you can set the Accept header. Added -handler option to http_get so +you can supply your own data handler. Also fixed POST operation to +set the correct MIME type on the request. (BW) + +---------------------------------------------------------- +Changes for Tcl 7.7 go above this line. +Changes for Tcl 8.0 go below this line. +---------------------------------------------------------- + +9/17/96 (bug fix) Using "upvar" it was possible to turn an array element +into an array itself. Changed to disallow this; it was quirky and didn't +really work correctly anyway. (JO) + +10/21/96 (new feature) The core of the Tcl interpreter has been replaced +with an on-the-fly compiler that translates Tcl scripts to bytecoded +instructions; a new interpreter then executes the bytecodes. The compiler +introduces only a few minor changes at the level of Tcl scripts. The biggest +changes are to expressions and lists. + - A second level of substitutions is no longer done for expressions. + This substantially improves their execution time. This means that + the expression "$x*4" produces a different result than in the past + if x is "$y+2". Fortunately, not much code depends on the old + two-level semantics. Some expressions that do, such as + "expr [join $list +]" can be recoded to work in Tcl8.0 by adding + an eval: e.g., "eval expr [join $list +]". + - Lists are now completely parsed on the first list operation to + create a faster internal representation. In the past, if you had a + misformed list but the erroneous part was after the point you + inserted or extracted an element, then you never saw an error. + In Tcl8.0 an error will be reported. This should only effect + incorrect programs that took advantage of behavior of the old + implementation that was not documented in the man pages. +Other changes to Tcl scripts are discussed in the web page at +http://www.scriptics.com/doc/compiler.html. (BL) +*** POTENTIAL INCOMPATIBILITY *** + +10/21/96 (new feature) In earlier versions of Tcl, strings were used as a +universal representation; in Tcl 8.0 strings are replaced with Tcl_Obj +structures ("objects") that can hold both a string value and an internal +form such as a binary integer or compiled bytecodes. The new objects make it +possible to store information in efficient internal forms and avoid the +constant translations to and from strings that occurred with the old +interpreter. There are new many new C APIs for managing objects. Some of the +new library procedures for objects (such as Tcl_EvalObj) resemble existing +string-based procedures (such as Tcl_Eval) but take advantage of the +internal form stored in Tcl objects for greater speed. Other new procedures +manage objects and allow extension writers to define new kinds of objects. +See the manual entries doc/*Obj*.3 (BL) + +10/24/96 (bug fix) Fixed memory leak on exit caused by some IO related +data structures not being deallocated on exit because their refcount was +artificially boosted. (JL) + +10/24/96 (bug fix) Fixed core dump in Tcl_Close if called with NULL +Tcl_Channel. (JL) + +11/19/96 (new feature) Added library procedures for finding word +breaks in strings in a platform specific manner. See the library.n +manual entry for more information. (SS) + +11/22/96 (feature improvements) Added support for different levels of +tracing during bytecode compilation and execution. This should help in +tracking down suspected problems with the compiler or with converting +existing code to use Tcl8.0. Two global Tcl variables, traceCompile +and traceExec, can be set to generate tracing information in stdout: + - traceCompile: 0 no tracing (default) + 1 trace compilations of top level commands and procs + 2 trace and display instructions for all compilations + - traceExec: 0 no tracing + 1 trace only calls to Tcl procs + 2 trace invocations of all commands including procs + 3 detailed trace showing the result of each instruction +traceExec >= 2 provides a one line summary of each called command and +its arguments. Commands that have been "compiled away" such as set are +not shown. (BL) + +11/30/96 (bug fix) The command "info nameofexecutable" could sometimes +return the name of a directory. (JO) + +11/30/96 (feature improvements) Changed the code in library/init.tcl +that reads in pkgIndex.tcl so that (a) it reads the files from child +directories before those in the parent, so that the parent gets +precedence, and (b) it doesn't quit if there is an error in a +pkgIndex.tcl file; instead, it prints an error message on standard +error and continues. (JO) + +10/5/96 (feature improvements) Partial implementation of binary string +support: the ability for Tcl string values to contain embedded null bytes. +Changed the Tcl object-based APIs to take a byte pointer and length pair +instead of a null-terminated C string. Modified several object type managers +to support binary strings but not, for example, the list type manager. +Existing string-based C APIs are unchanged and will truncate binary +strings. Compiled scripts containing nulls are also truncated. (BL) + +12/12/96 (feature change) Removed the commands "cp", "mkdir", "mv", +"rm", and "rmdir" from the Macintosh version of Tcl. They were never +officially supported and their functionality is now available via +the file command. (RJ) + +----------------- Released 8.0a1, 12/20/96 ----------------------- + +1/7/97 (bug fix) Under Windows, "file stat c:" was returning error instead +of stat for current dir on c: drive. + +1/10/97 (new feature) Added Tcl_GetIndexFromObj procedure for quick +lookups of keyword arguments. (JO) + +1/12/97 (new feature) Serial IO channel drivers for Windows and Unix, +available by using Tcl open command to open pseudo-files like "com1:" or +"/dev/ttya". New option to Tcl fconfigure command for serial files: +"-mode baud,parity,data,stop" to specify baud rate, parity, data bits, and +stop bits. Serial IO is not yet available on Mac. + +1/16/97 (feature change) Restored the Tcl7.x "two level substitution +semantics" for expressions. Expressions not enclosed in braces are +implemented, in general, by calling the expr command procedure +(Tcl_ExprObjCmd) at runtime after the Tcl interpreter has already done a +first round of substitutions. This is slow (about Tcl7.x speed) because new +code for the expression is generally compiled each time. However, if the +expression has only variable substitutions (and not command substitutions), +"optimistic" fast code is generated inline. This inline code will fail if a +second round of substitutions is needed (i.e., if the value of a substituted +variable itself requires more substitutions). The optimistic code will +catch the error and back off to call the slower but guaranteed correct +expr command procedure. (BL) + +1/16/97 (feature improvements) Added Tcl_ExprLongObj and Tcl_ExprDoubleObj +to round out expression-related procedures. (BL) + +1/16/97 (feature change) Under Windows, at startup the environment variables +"path", "comspec", and "windir" in any capitalization are converted +automatically to upper case. The PATH variable could be spelled as path, +Path, PaTh, etc. and it makes programming rather annoying. All other +environment variables are left alone. (CS) + +1/20/97 (new features) Rewrote the "lsort" command: + - The new version is based on reentrant merge sort code provided + by Richard Hipp, so it eliminates the reentrancy and stability + problems with the old qsort-based implementation. + - The new version supports a -dictionary option for sorting, and + it also supports a -index option for sorting lists using one + element for comparison. + - The new version is an object command, so it works well with the + Tcl compiler, especially in conjunction with the new -index + option. When the -index option is used, this version of lsort + is more than 100 times faster than the Tcl 7.6 lsort, which had + to use the -command option to get the same effect. (JO) + +1/20/97 (feature improvements) Added the improved debugging support for Tcl +objects prototyped by Karl Lehenbauer . +If TCL_MEM_DEBUG is defined, the object creation calls use Tcl_DbCkalloc +directly in order to record the caller's source file name and line +number. (BL) + +1/21/97 (removed feature) Desupported the tcl_precision variable: if +set, it is ignored. Tcl now uses the full 17 digits of precision when +converting real numbers to strings (with the new object system real +numbers are rarely converted to strings so there is no efficiency +disadvantage to printing all 17 digits; the new scheme improves +accuracy and simplifies several APIs). (JO) +*** POTENTIAL INCOMPATIBILITY *** + +1/21/97 (feature change) Removed the "interp" argument for the +procedures Tcl_GetStringFromObj, Tcl_StringObjAppend, and +Tcl_StringObjAppendObj. Also removed the "interp" argument for +the updateStringProc procedure in Tcl_ObjType structures. With +the tcl_precision changes above, these are no longer needed. (JO) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a1, but not with Tcl 7.6 *** + +1/22/97 (bug fix) Fixed http.tcl so that http_reset does not result in +an extra call to the command callback. In addition, if the transaction +gets a premature eof, the state(status) is "eof", not "ok". (BW) + +----------------- Released 8.0a2, 1/24/97 ----------------------- + +1/29/97 (feature change) Changed how two digit years are parsed in the +clock command. The old interface just added 1900 which will seem +broken by the year 2000. The new scheme follows the POSIX standard +and treats dates 70-99 as 1970-1999 and dates 00-38 as 2000-2038. All +other two digit dates are undefined. (RJ) +*** POTENTIAL INCOMPATIBILITY *** + +2/4/97 (bug fix) Fixed bug in clock code that dealt with relative +dates. Using the relative month code you could get an invalid date +because it jumped into a non-existant day. (For example, Jan 31 +to Feb 31.) The code now will return the last valid day of the +month in these situations. Thanks to Hume Smith for sending in +this bug fix. (RJ) + +2/10/97 (feature change) Eliminated Tcl_StringObjAppend and +Tcl_StringObjAppendObj procedures, replaced them with Tcl_AppendToObj +and Tcl_AppendStringsToObj procedures. Added new procedure +Tcl_SetObjLength. (JO) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2, but not with Tcl 7.6 *** + +2/10/97 (new feature) Added Tcl_WrongNumArgs procedure for generating +error messages about incorrect number of arguments. (JO) + +2/11/97 (new feature, bug fix) http package. Added -accept to http_config +so you can set the Accept header. Added -handler option to http_get so +you can supply your own data handler. Also fixed POST operation to +set the correct MIME type on the request. (BW) + +2/22/97 (bug fix) Fixed bug that caused $tcl_platform(osVersion) to be +computed incorrectly under AIX. (JO) + +2/25/97 (new feature, feature change) Added support for both int and long +integer objects. Added Tcl_NewLongObj/Tcl_GetLongFromObj/Tcl_SetLongFromObj +procedures and renamed the Tcl_Obj internalRep intValue member to +longValue. Tcl_GetIntFromObj now checks for integer values too large to +represent as non-long integers. Changed Tcl_GetAllObjTypes to +Tcl_AppendAllObjTypes. (BL) + +3/5/97 (new feature) Added new Tcl_SetListObj procedure to round out +collection of procedures that set the type and value of existing Tcl +objects. (BL) + +3/6/97 (new feature) Added -global flag for interp invokehidden. (JL) + +3/6/97 (new feature, feature change) Added isNativeObjectProc field to the +Tcl_CmdInfo structure to indicate (when 1) if the command has an +object-based command procedure. Removed the nameLength arg from +Tcl_CreateObjCommand since command names can't contain null characters. (BL) + +3/6/97 (bug fix) Fixed bug in "unknown" procedure that caused auto- +loading to fail on commands whose names begin with digits. (JO) + +3/7/97 (bug fix) Auto-loading now works in Safe Base. Safe interpreters +only accept the Version 2 and onwards tclIndex files. (JL) + +3/13/97 (bug fix) Fixed core dump due to interaction between aliases and +hidden commands. Bug found by Lindsay Marshall. (JL) + +3/14/97 (bug fix) Fixed mac bugs relating to time. The -gmt option +now adjusts the time in the correct direction. (Thanks to Ed Hume for +reporting a fix to this problem.) Also fixed file "mtime" etc. to +return times from GMT rather than local time zone. (RJ) + +3/18/97 (feature change) Declaration of objv in Tcl_ObjCmdProc function +changed from "Tcl_Obj *objv[]" to "Tcl_Obj *CONST objv[]". All Tcl object +commands changed to use new declaration of objv. Naive translation of +string-based command procs to object-based command procs could very easily +have yielded code where the contents of the objv array were changed. This +is not a problem with string-based command procs, but doing something as +simple as objv[2] = objv[3] would corrupt the runtime stack and cause Tcl to +crash. Introduced CONST in declaration of objv so that attempted assignment +of new pointer values to elements of the objv array will be caught by the +compiler. (CCS) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 *** + +3/19/97 (bug fix) Fixed panic due to object sharing. The root cause was +that old code was using Tcl_ResetResult instead of Tcl_ResetObjResult. (JL) + +3/20/97 (new feature) Added a new subcommand for the file +command. file attributes filename can give a list of platform-specific +options (such as file/creator type on the Mac, permissions on Unix) or +set the values of them. Added a new subcommand for the file +command. file nativename name gives back the platform-specific form +for the file. This is useful when the filename is needed to pass to +the OS, such as exec under Windows 95 or AppleScript on the Mac. For +more info, see file.n. (SRP) + +3/24/97 (removed feature) Removed the tcl_safePolicyPath procedure. Now +the policy path is computed from the auto_path by appending the directory +'policies' to each element. Also fixed several bugs in automatic tracking +of auto_path by computed policy path. (JL) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 *** + +4/8/97 (new feature) If the variable whose name is passed to lappend doesn't +already exist, and there are no value arguments, lappend now creates the +variable with an empty value instead of returning an error. Change suggested +by Tom Tromey. (BL) + +4/9/97 (feature change) Changed the name of the TCL_PART1_NOT_PARSED flag to +TCL_PARSE_PART1. (BL) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 *** + +4/10/97 (bug fixes) Fixed various compilation-related bugs: + - "UpdateStringOfCmdName should never be invoked" panic. + - Bad code generated for expressions not in {}'s inside catch commands. + - Segmentation fault in some command procedures when two argument + object pointers refer to the same object. + - Second level of substitutions were never done for expressions not + in {}'s that consist of a single variable reference: e.g., + "set x 27; set bool {$x}; if $bool {puts foo}" would fail with error. + - Bad code generated when code storage was grown while compiling some + expressions: ones with compilation errors or consisting of only a + variable reference. + - Bugs involving multiple interpreters: wasn't checking that a + procedure's code was compiled for the same interpreter as the one + executing it, and didn't invalidate code on hidden-exposed command + transitions. + - "Bad stack top" panic when executing scripts that require a huge + amount of stack space. + - Incorrect sharing of code for procedure bodies, and procedure code + deallocated before last execution of the procedure finished. + - Fixed compilation of expression words in quotes. For example, + if "0 < 3" {puts foo}. + - Fixed performance bug in array set command with large assignments. + - Tcl_SetObjLength segmentation fault setting length of empty object. + - If Tcl_SetObjectResult was passed the same object as the interpreter's + result object, it freed the object instead of doing nothing. Bug fix + by Michael J. McLennan. + - Tcl_ListObjAppendList inserted elements from the wrong list. Bug fix + by Michael J. McLennan. + - Segmentation fault if empty variable list was specified in a foreach + command. Bug fix by Jan Nijtmans. + - NULL command name was always passed to Tcl_CreateTrace callback + procedure. + - Wrong string representation generated for the value LONG_MIN. + For example, expr 1<<31 printed incorrectly on a 32 bit machine. + - "set {a($x)} 1" stored value in wrong variable. + - Tcl_GetBooleanFromObj was not checking for garbage after a numeric + value. + - Garbled "bad operand type" error message when evaluating expressions + not surrounded by {}'s. (BL) + +4/16/97 (new feature) The expr command now has the "rand()" and +"srand()" functions for getting random numbers in expr. (RJ) + +4/23/97 (bug fix) Fixed core dump in bgerror when the error handler command +deletes the current interpreter. Found by Juergen Schoenwald. (JL) + +4/23/97 (feature change) The notifier interfaces have been redesigned +to make embedding in applications with external event loops possible. +A number of interfaces in the notifier and the channel drivers have +changed. Refer to the Notifier.3 and CrtChannel.3 manual entries for +more details. (SS) +*** POTENTIAL INCOMPATIBILITY *** + +4/23/97 (removed feature) The Tcl_File interfaces have been removed. +The Tcl_CreateFileHandler/Tcl_DeleteFileHandler interfaces now take +Unix fd's and are only supported on the Unix platform. +Tcl_GetChannelFile has been replaced with Tcl_GetChannelHandle. +Tcl_MakeFileChannel now takes a platform specific file handle. (SS) +*** POTENTIAL INCOMPATIBILITY *** + +4/23/97 (removed feature) The modal timeout interface has been +removed (Tcl_CreateModalTimeout/Tcl_DeleteModalTimeout) (SS) +*** POTENTIAL INCOMPATIBILITY *** + +4/23/97 (feature change) Channel drivers are now required to correctly +implement blocking behavior when they are in blocking mode. (SS) +*** POTENTIAL INCOMPATIBILITY *** + +4/23/97 (new feature) Added the "binary" command for manipulating +binary strings. Also, changed the "puts", "gets", and "read" commands +to preserve embedded nulls. (SS) + +4/23/97 (new feature) Added tcl_platform(byteOrder) element to the +tcl_platform array to identify the native byte order for the current +host. (SS) + +4/23/97 (bug fix) Fixed bug in date parsing around year boundaries. (SS) + +4/24/97 (bug fix) In the process of copying a file owned by another user, +Tcl was changing the owner of the copy back to the owner of the original +file, therefore causing further file operations to fail because the current +user didn't own the copy anymore. The owner of the copy is now left as the +current user. (CCS) + +4/24/97 (feature change) Under Windows, don't automatically uppercase the +environment variable "windir" -- it's supposed to be lower case. (CCS) + +4/29/97 (new feature) Added namespace support based on a namespace +implementation by Michael J. McLennan of Lucent Technologies. A namespace +encapsulates a collection of commands and variables to ensure that they +won't interfere the commands and variables of other namespaces. The global +namespace holds all global variables and commands. Additional namespaces are +created with the new namespace command. The new variable command lets you +create Tcl variables inside a namespace. The names of Tcl variables and +commands may now be qualified by the name of the namespace containing them. +The key namespace-related commands are summarized below: + - namespace ?eval? name arg ?arg...? + Used to define the commands and variables in a namespace. + Optionally creates the namespace. + - namespace export ?-clear? ?pattern pattern...? + Specifies which commands are exported from a namespace. These + are the ones that can be imported into another namespace. + - namespace import ?-force? ?pattern pattern...? + Makes the specified commands accessible in the current namespace. + - namespace current + Returns the name of the current namespace. + - variable name ?value? ?name ?value?...? + Creates one or more namespace variables. (BTL) + +5/1/97 (bug fix) Under Windows, file times were reported in GMT. Should be +reported in local time. (CCS) + +5/2/97 (feature change) Changed the name of the two Tcl variables used for +tracing bytecode compilation and execution to tcl_traceCompile and +tcl_traceExec respectively. These variables are now documented in the +tclvars man page. (BL) + +5/5/97 (new feature) Support "end" as the index for "lsort -index". (BW) + +5/5/97 (bug fixes) Cleaned up the way the http package resets connections (BW) + +5/8/97 (feature change) Newly created Tcl objects now have a reference count +of zero instead of one. This simplifies C code that stores newly created +objects in Tcl variables or in data structures such as list objects. That C +code must increment the new object's reference count since the variable or +data structure will contain a long-term reference to the object. Formerly, +when new objects started out with reference count one, it was necessary to +decrement the new object's reference count after the store to make sure it +was left with the correct value; this is no longer necessary. (BL) + +5/9/97 (new feature) Added the Tcl_GetsObj interface that takes an +object reference instead of a dynamic string (as in Tcl_Gets). (SS) + +5/12/97 (new feature) Added Tcl_CreateAliasObj and Tcl_GetAliasObj C APIs +to allow an alias command to be created with a vector of Tcl_Obj structures +and to get the vector back later. (JL) + +5/12/97 (feature change) Changed Tcl_ExposeCommand and Tcl_HideCommand to +leave an object result instead of a string result. (JL) + +5/14/97 (feature change) Improved the handling of the interpreter result. +This is still either an object or a string, but the two values are now kept +consistent unless some C code reads or writes interp->result directly. See +the SetResult man page for details. Removed the Tcl_ResetObjResult +procedure. (BL) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 *** + +5/16/97 (new feature) Added "fcopy" command to move data between +channels. Refer to the manual page for more information. Removed the +"unsupported0" command since it is obsolete now. (SS) + +5/16/97 (new feature) Added Tcl_GetStringResult procedure to allow programs +to get an interpreter's result as a string. If the result was previously set +to an object, this procedure will convert the object to a string. Use of +Tcl_GetStringResult is intended to replace direct access to interp->result, +which is not safe. (BL) + +5/20/97 (new features) Fixed "fcopy" to return the number of bytes +transferred in the blocking case. Updated the http package to use +fcopy instead of unsupported0. Added -timeout and -handler options to +http_get. http_get is now blocking by default. It is only non-blocking +if you supply a -command argument. (BW) + +5/22/97 (bug fix) Fixed several bugs in the "lsort" command having to do +with the -dictionary option and the presence of numbers embedded in the +strings. (JO) + +----------------- Released 8.0b1, 5/27/97 ----------------------- + +6/2/97 (bug fix) Fixed bug in startup code that caused a problem in +finding the library files when they are installed in a directory +containing a space in the name. (SS) + +6/2/97 (bug fix) Fixed bug in Unix notifier where the select mask was +not being cleared under some circumstances. (SS) + +6/4/97 (bug fix) Fixed bug that prevented creation of Tk widgets in +namespaces. Tcl_CreateObjCommand and Tcl_CreateCommand now always create +commands in the global namespace unless the command names are qualified. Tcl +procedures continue to be created in the current namespace by default. (BL) + +6/6/97 (new features) Added new namespace API procedures +Tcl_AppendExportList and Tcl_Export to allow C code to get and set a +namespace's export list. (BL) + +6/11/97 (new feature) Added Tcl_ConcatObj. This object-based routine +parallels the string-based routine Tcl_Concat. (SRP) + +6/11/97 (new feature) Added Tcl_SetObjErrorCode. This object-based +routines parallels the string-based routine Tcl_SetErrorCode. (SRP) + +6/12/97 (bug fix) Fix the "unknown" procedure so that wish under Windows +will exec an external program, instead of always complaining "console1 not +opened for writing". (CCS) + +6/12/97 (bug fix) Fixed core dump experienced by the following simple +script: + interp create x + x alias exec exec + interp delete x +This panic was caused by not installing the new CmdDeleteProc when exec +got redefined by the alias creation step. Reported by Lindsay Marshal (JL) + +6/13/97 (new features) Tcl objects newly created by Tcl_NewObj now have a +string representation that points to a shared heap string of length 1. (They +used to have NULL bytes and typePtr fields. This was treated as a special +case to indicate an empty string, but made type manager implementations +complex and error prone.) The new procedure Tcl_InvalidateStringRep is used +to mark an object's string representation invalid and to free any storage +associated with the old string representation. (BL) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 *** + +6/16/97 (bug fix) Tcl_ScanCountedElement could leave braces unmatched +if the string ended with a backslash. (JO) + +6/17/97 (bug fix) Fixed channel event bug where readable events would be +lost during recursive events loops if the input buffers contained +data. (SS) + +6/17/97 (bug fix) Fixed bug in Windows socket code that didn't +reenable read events in the case where an external entity is also +reading from the socket. (SS) + +6/18/97 (bug fix) Changed initial setting of the notifier service mode +to TCL_SERVICE_NONE to avoid unexpected event handling during +initialization. (SS) + +6/19/97 (bug fix/feature change) The command callback to fcopy is now +called in case of errors during the background copy. This adds a second, +optional argument to the callback that is the error string. The callback +in case of errors is required for proper cleanup by the user of fcopy. (BW) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** + +6/19/97 (bug fix) Fixed a panic due to the following four line script: + interp create x + x alias foo bar + x eval rename foo blotz + x alias foo {} +The problem was that the interp code was not using the actual current name +of the command to be deleted as a result of un-aliasing foo. (JL) + +6/19/97 (feature change) Pass interp down to the ChannelOption and +driver specific calls so system errors can be differentiated from syntax +ones. Changed Tcl_DriverGetOptionProc type. Affects Tcl_GetChannelOption, +TcpGetOptionProc, TtyGetOptionProc, etc. (DL) +*** POTENTIAL INCOMPATIBILITY *** + +6/19/97 (new feature) Added Tcl_BadChannelOption for use by by driver +specific option procedures (Set and Get) to return a complete and +meaningful error message. (DL) + +6/19/97 (bug fixes) If a system call error occurs while doing an +fconfigure on tcp or tty/com channel: return the appropriate error +message (instead of the syntax error one or none). (Fixed for Unix and +most of the Win and Mac drivers). (DL) + +6/20/97 (feature change) Eval is no longer assumed as the subcommand name +in namespace commands: you must now write "namespace eval nsName {...}". +Abbreviations of namespace subcommand names are now allowed. (BL) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 *** + +6/20/97 (feature change) Changed the errorInfo traceback message for +compilation errors from "invoked from within" to "while compiling". (BL) + +6/20/97 (bug fixes) Fixed various compilation-related bugs: + - "UpdateStringOfCmdName should never be called" and + "UpdateStringOfByteCode should never be called" panics. + - Segfault in TclObjInterpProc getting procedure name after evaluation + stack is reallocated (grown). + - Could not use ":" at end of variable and command names. + - Bad code generated for while and for commands with test expressions + enclosed in quotes: e.g., "set i 0; while "$i > 5" {}". + - Command trace procedures would crash if they did a Tcl_EvalObj that + reallocated the evaluation stack. + - Break and continue commands did not reset the interpreter result. + - The Tcl_ExprXXX routines, both string- or object-based, always + modified the interpreter result even if there was no error. + - The argument parsing procedure used by several compile procedures + always treated "]" as end of a command: e.g., "set a ]" would fail. + - Changed errorInfo traceback message for compilation errors from + "invoked from within" to "while compiling". + - Problem initializing Tcl object managers during interpreter creation. + - Added check and error message if formal parameter to a procedure is + an array element. (BL) + +6/23/97 (new feature) Added "registry" package to allow manipulation +of the Windows system registry. See manual entry for details. (SS) + +6/24/97 (feature change) Converted http to a package and added the +http1.0 subdirectory of the Tcl script library. This means you have +to do a "package require http" to use this, as advertised in the man page. (BW) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** + +6/24/97 (bug fix) Ensure that Tcl_Set/GetVar C APIs, when called without +TCL_LEAVE_ERR_MSG, don't touch the interp result. (DL) + +6/26/97 (feature change) Changed name of Tcl_ExprStringObj to +Tcl_ExprObj. (BL) +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** + +----------------- Released 8.0b2, 6/30/97 ----------------------- + +7/1/97 (new feature) TCL_BUILD_SHARED flag set in tclConfig.sh +when Tcl has been built with --enable-shared. A new tclLibObjs +make target, echoing the list of the .o's needed to build a tcl +library, is now provided. (DL) + +7/1/97 (feature change) compat/getcwd.c removed and changed the +only place where getcwd is used so a new USEGETWD flag selects +the use of the replacement "getwd". Adding this flag is recommended +for SunOS 4 (because getcwd on SunOS 4 uses a pipe to pwd(1)!). (DL) + +7/7/97 (feature change) The split command now supports binary data (i.e., +null characters in strings). (BL) + +7/7/97 (bug fix) string first returned the wrong result if the first +argument string was empty. (BL) + +7/8/97 (bug fix) Fixed core dump in fcopy that could occur when a command +callback was supplied and an error or eof condition caused no background +activity. A refcount bug triggered a panic in Tcl_ListObjAppendElement. (BW) + +7/8/97 (bug fix) Relaxed the pattern matching on http_get so you do not +need a trailing path component. You can now get away with just +http_get www.scriptics.com (BW) + +7/9/97 (bug fix) Creating anonymous interpreters no longer smashes existing +commands with names similar to the generated name. Previously creating an +anonymous interpreter could smash an existing command, now it skips until +it finds a command name that isn't being used. (JL) + +7/9/97 (feature change) Removed the policy management mechanism from the +Safe Base; left the aliases to source and load modules, and to do a limited +form of the "file" command. See entry of 11/15/96. (JL) + +7/9/97 (bug fixes) Fixed various compilation-related bugs: + - Line numbers in errorInfo now are the same as those in Tcl7.6 unless +there are compilation errors. Compilation error messages now include the +entire command in error. + - Trailing ::s after namespace names weren't being ignored. + - Could not refer to an namespace variable with an empty name using a +name of the form "n::". (BL) + +7/9/97 (bug fix) Fixed bug in Tcl_Export that prevented you from exporting +from other than the current namespace. (BL) + +7/9/97 (bug fix) env.test was removing env var needed for proper finding +of libraries in child process. (DL) + +7/10/97 (bug fixes/new feature) Cleanup in Tcl_MakeSafe. Less information +is leaked to safe interps. Error message fixes for interp sub commands. +Likewise changes in safealias.tcl; tcl_safeCreateInterp can now be called +without argument to generate the slave name (like in interp create). (DL) + +7/10/97 (bug fixes) Bytecode compiler now generates more detailed +command location information: subcommands as well as commands now have +location information. This means command trace procedures now get the +correct source string for each command in their command parameter. (BL) + +7/22/97 (bug fixes) Performance improvement in Safe interpreters +handling. Added new mask value to (tclInt.h) Interp.flags record. (DL) + +7/22/97 (bug fix) Fixed panic in 'interp target {} foo'. This bug +was present since Tcl 7.6. (JL) + +7/22/97 (bug fix) Fixed bug in compilation of procedures in namespaces: the +procedure's namespace must be used to look up compile procedures, not the +current namespace. (BL) + +7/22/97 (bug fix) Use of the -channel option of http_get was not setting +the end of line translations mode on the channel, so copying binary data +with the -channel option was corrupting the result on non-unix platforms. (BW) + +7/22/97 (bug fixes) file commands and ~user (seg fault and other +improper returns). (DL) + +7/23/97 (feature change) Reenabled "vwait" in Safe Base. (JL) + +7/23/97 (bug fixes) Fixed two bugs involving read traces on array variables +in procedures: trace procedures were sometimes not called, and reading +nonexistant array elements didn't create undefined element variables that +could later be defined by trace procedures. (BL) + +7/24/97 (bug fix) Windows memory allocation performance was +superlinear in some cases. Made the Mac allocator generic and changed +both the Mac and Windows platforms to use the new allocator instead of +malloc and free. (SS) + +7/24/97 - 8/12/97 (bug fixes/change of features) Completely revamped safe +sourcing/loading (see safe.n) to hide pathnames, use virtual +paths tokens instead, improved security in several respects and made it +more tunable. Multi level interp loading can work too now. Package auto +loading now works in safe interps as long as the package directory is in +the auto_path (no deep crawling allowed in safe interps). (DL) +*** POTENTIAL INCOMPATIBILITY with previous alpha and beta releases *** + +7/24/97 (bug fixes) Made Tcl_SetVar* and Tcl_NewString* treat a NULL value +as an empty string. (This fixes hairy crash case where you would crash +because load command for other interps assumed presence of +errorInfo...). (DL) + +7/28/97 (bug fix) Fixed pkg_mkIndex to understand namespaces. It will +use the export list of a namespace and create auto_index entries for +all export commands. Those names are in their fully qualified form in the +auto_index. Therefore, I tweaked unknown to try both $cmd and ::$cmd. +Also fixed pkg_mkIndex so you can have "package require" commands inside +your packages. These commands are ignored, which is mostly ok except +when you must load another package before loading yours because of +linking dependencies. (BW) + +7/28/97 (bug fix) A variable created by the variable command now persists +until the namespace is destroyed or the variable is unset. This is true even +if the variable has not been initialized; these variables used to be +destroyed if an error occurred when accessing them. In addition, the "info +vars" command lists uninitialized namespace variables, while the "info +exists" command returns 0 for them. (BL) + +7/29/97 (feature change) Changed the http package to use the ::http +namespace. http_get renamed to http::geturl, http_config renamed to +http::config, http_formatQuery renamed to http::formatQuery. +It now provides the 2.0 version of the package. +The 1.0 version is still available with the old names. +*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b2 but not with Tcl 7.6 *** + +7/29/97 (bug fix, new feature) Tcl_Main now uses Tcl objects internally to +preserve NULLs in commands and command output. Added new API procedure +Tcl_RecordAndEvalObj that resembles Tcl_RecordAndEval but takes an object +containing a command. (BL) + +7/30/97 (bug fix) Tcl freed strings in the environ array even if it +did not allocate them. (SS) + +7/30/97 (bug fix) If a procedure is renamed into a different namespace, it +now executes in the context of that namespace. (BL) + +7/30/97 (bug fix) Prevent renaming of commands into and from namespaces as +part of hiding them. (JL) + +7/31/97 (feature change) Moved the history command from C to tcl. +This uses the ::history namespace. The "words" and "substitute" options +are no longer supported. In addition, the "keep" option without a value +returns the current keep limit. There is a new "clear" option. +The unknown command now supports !! again. (BW) +*** POTENTIAL INCOMPATIBILTY *** + +7/30/97 (bug fix) Made sure that a slave can not fool the master into +hiding the wrong command. Made sure we don't crash in hiding + namespaces +issues. (DL) + +8/4/97 (bug fix) Concat, eval, uplevel, and similar commands were +incorrectly trimming trailing space characters from their arguments +even when the space characters were preceded by a backslash. (JO) + +8/4/97 (bug fix) Removed the hard link between bgerror and tkerror. +Only bgerror is supported in tcl core. Tk will still look for a +tkerror but using regular tcl code for that feature. (DL) +*** POTENTIAL INCOMPATIBILTY with code relying on the hard link *** + +8/6/97 (bug fix) Reduced size required for compiled bytecodes by using a +more compact encoding for the command pc-to-source map. (BL) + +8/6/97 (new feature) Added support for additional compilation and execution +statistics when Tcl is compiled with the TCL_COMPILE_STATS flag. (BL) + +8/7/97 (bug fix) Expressions not in {}s that have a comparison operator as +the topmost operator must be compiled out-of-line (call the expr cmd at +runtime) to properly support expr's two-level substitution semantics. An +example is "set a 2; set b {$a}; puts [expr $b == 2]". (BL) + +8/11/97 (bug fix) The catch command would sometimes crash if a variable name +was given and the bytecode evaluation stack was grown when executing the +argument script. (BL) + +8/12/97 (feature change) Reinstated the variable tcl_precision to control +the number of digits used when floating-point values are converted to +strings, with default of 12 digits. However, had to make tcl_precision +shared among all interpreters (except that safe interpreters can't +modify it). This makes the Tcl 8.0 behavior almost identical to 7.6 +except that the default precision is 12 instead of 6. (JO) +*** POTENTIAL INCOMPATIBILITY *** + +----------------- Released 8.0, 8/18/97 ----------------------- + +8/19/97 (bug fix) Minimal fix for glob -nocomplain bugs: +"glob -nocomplain unreadableDir/*" was generating an anonymous +error. More in depth fixes will come with 8.1. (DL). + +8/20/97 (bug fix) Removed check for FLT_MIN in binary command so +underflow conditions are handled by the compiler automatic +conversions. (SS) + +8/20/97 (bug fixes) Fixed several compilation-related bugs: + - Array cmd wasn't detecting arrays that, while compiled, do not yet + exist (e.g., are marked undefined since they haven't been assigned + to yet). + - The GetToken procedure in tclCompExpr.c wasn't recognizing properly + whether an integer token was invalid. For example, "0x$" is not + a valid integer. + - Performance bug in TclExecuteByteCode: the size of its stack frame + was reduced by over 20% by moving errorInfo code elsewhere. + - Uninitialized memory read error in tclCompile.c. (BL) + +8/21/97 (bug fix) safe::interpConfigure now behave like Tk widget's +configure : it changes only the options you provide and you can get +the current value of any single option. New ?-nested boolean? and +?-statics boolean? for all safe::interp* commands but we still +accept (upward compatibility) the previously defined non valued +flags ?-noStatics? and ?-nestedLoadOk?. Improved the documentation. (DL). + +8/22/97 (bug fix) Updated PrintDbl.3 to reflect the fact that the +tcl_precision variable is still used and that it is now shared by all +interpreters. (BL) + +8/25/97 (bug fix) Fixed array access bug in IllegalExprOperandType +procedure in tclExecute.c: it was not properly supporting the || and && +operators. (BL) + +8/27/97 (bug fix) In cases where a channel handler was created with an +empty event mask while data was still buffered in the channel, the +channel code would get stuck spinning on a timer that would starve +idle handlers. This mostly happened in Tk when reading from stdin. (SS) + +9/4/97 (bug fix) Slave interps now inherit the maximum recursion limit +of their parent instead of starting back at the default. {nb: this still +does not prevent stack overflow by multi-interps recursion or aliasing} (DL) + +9/11/97 (bug fix) An uninitialized variable in Tcl_WaitPid caused +pipes to fail to report eof properly under Windows. (SS) + +9/12/97 (bug fix) "exec" was misidentifying some DOS executables as not +executable. (CCS) + +9/14/97 (bug fix) Was using the wrong structure in sizeof operation in +tclUnixChan.c. (JL) + +9/15/97 (bug fix) Fixed notifier to break out of do-one-event loop if +Tcl_WaitForEvent returns 1, so that callers of Tcl_DoOneEvent will get +a chance to check whether the event just handled is significant. This +affected mainly recursive calls to Tcl_VWaitCmd; these did not get a +chance to notice that the variable they were waiting for has been set +and thus they didn't terminate the vwait. (JL, DL, SS) + +9/15/97 (bug fix) Alignment problems in "binary format" would cause a +crash on some platforms when formatting floating point numbers. (SS) + +9/15/97 (bug fix) Fixed bug in Macintosh socket code. Now passes all +tests in socket.test that are not platform specific. (Thanks to Mark +Roseman for the pointer on the fix.) (RJ) + +9/18/97 (bug fix) Fixed bug -dictionary option of lsort that could +cause the compare function to run off the end of an array if the +number only contained 0's. (Thanks to Greg Couch for the report.) (RJ) + +9/18/97 (bug fix) TclFinalizeEnvironment was not cleaning up +properly. (DL, JI) + +9/18/97 (bug fix) Fixed long-standing bug where an "array get" command +did not trigger traces on the array or its elements. (BL) + +9/18/97 (bug fixes) Fixed compilation-related bugs: + - Fixed errorInfo traceback information for toplevel coomands that + contain nested commands. + - In the expr command, && and || now accept boolean operands as well + as numeric ones. (BL) + +9/22/97 (bug fix) Fixed bug that prevented translation modes from being +set independently for input and output on sockets if input was "auto". (JL) + +9/24/97 (bug fix) Tcl_EvalFile(3) and thus source(n) now works fine on +files containing NUL chars. (DL) + +9/26/97 (bug fix) Fixed use of uninitialized memory in the environ array +that later could cause random core dumps. Applies to all platforms. (JL) + +9/26/97 (bug fix) Fixed use of uninitialized memory in socket address data +structure under some circumstances. This could cause random core dumps. +This applies only to Unix. (JL) + +9/26/97 (bug fix) Opening files on PC-NFS volumes would cause a hang +until the system timed after the file was closed. (SS) + +10/6/97 (bug fix) The join(n) command, though objectified, was loosing +NULs in the joinString and in list elements after the 2nd one. +Now you can "join $list \0" for instance. (DL) + +10/9/97 (bug fix) Under windows, if env(TMP) or env(TEMP) referred to a +non-existent directory, exec would fail when trying to create its temporary +files. (CCS) + +10/9/97 (bug fix) Under mac and windows, "info hostname" would crash if +sockets were installed but the hostname could not be determined anyhow. +Tcl_GetHostName() was returning NULL when it should have been returning +an empty string. (CCS) + +10/10/97 (bug fix) "file attribute /" returned error on windows. (CCS) + +10/10/97 (bug fix) Fixed the auto_load procedure to handle procedures +defined in namespaces better. Also fixed pgk_mkIndex so it sees procedures +defined in nested namespaces. Index entries are still only made for +exported procedures. (BW) + +10/13/97 (bug fix) On unix, for files with unknown group or owner +attributes, querying the "file attributes" would return an error rather than +returning the group's or owner's id number, although tha command accepts +numbers when setting the file's group or owner. (CCS) + +10/22/97 (bug fix) "fcopy" did not eval the callback script at the +global scope. (SS) + +10/22/97 (bug fix) Fixed the signature of the CopyDone callback used in +the http package(s) so they can handle error cases properly. (BW) + +10/28/97 (bug fixes) Fixed a problem where lappend would free the Tcl object +in a variable if a Tcl_ObjSetVar2 failed because of an error calling a trace +on the variable. (BL) + +10/28/97 (bug fix) Changed binary scan to properly handle sign +extension of integers on 64-bit or larger machines. (SS) + +11/3/97 (bug fixes) Fixed several bugs: + - expressions such as "expr ($x)" must be compiled out-of-line + (call the expr command procedure at runtime) to ensure the correct + behavior when "$x" is an expression such as "5+10". + - "array set a {}" now creates a new array var with an empty array + value if the var didn't already exist. + - "lreplace $foo end end" no longer returns an error (just an empty + list) if foo is empty. + - upvar will no longer create a variable in a namespace that refers + to a variable in a procedure. + - deleting a command trace within a command trace callback would + make the code that calls traces to reference freed memory. + - significantly sped up "string first" and "string last" (fix from + darrel@gemstone.com). + - seg fault in Tcl_NewStringObj() when a NULL is passed as the byte + pointer argument and Tcl is compiled with -DTCL_MEM_DEBUG. + - documentation and error msg fixes. (BL) + +11/3/97 (bug fix) Fixed a number of I/O bugs related to word sizes on +64-bit machines. (SS) + +11/6/97 (bug fix) The exit code of the first process created by Tcl +on Windows was not properly reported due to an initialization +problem. (SS) + +----------------- Released 8.0p1, 11/7/97 ----------------------- + +11/19/97 (bug fix) Fixed bug in linsert where it sometimes accidently +cleared out a shared argument list object. (BL). + +11/19/97 (bug fix) Autoloading in namespaces was not working properly. +auto_mkindex is still not really namespace aware but most common +cases should now be handled properly (see init.test). (BW, DL) + +11/20/97 (enhancement) Made the changes required by the new Apple +Universal Headers V.3.0, so that Tcl will compile with CW Pro 2. + +11/24/97 (bug fix) Fixed tests in clock test suite that needed the +-gmt flag set. Thanks to Jan Nijtmans for reporting the problem. (RJ) + +----------------- Released 8.0p2, 11/25/97 ----------------------- + +12/3/97 (bug fix/optimization) Removed uneeded and potentially dangerous +instances of double evaluations if "if" and "expr" statements from +the library files. It is recommended that unless you need a double +evaluation you always use "expr {...}" instead of "expr ..." and +"if {...} ..." instead of "if ... ...". It will also be faster +thanks to the byte compiler. (DL) + +---- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ---- + +12/8/97 (bug fix) Need to protect the newly accepted channel in an +accept callback on a socket, otherwise the callback may close it and +cause an error, which would cause the C code to attempt to close the +now deleted channel. Bumping the refcount assures that the channel sticks +around to be really closed in this case. (JL) + +12/8/97 (bug fix) Need to protect the channel in a fileevent so that it +is not deleted before the fileevent handler returns. (CS, JL) + +12/18/97 (bug fix) In the opt argument parsing package: if the description +had only flags, the "too many arguments" case was not detected. The default +value was not used for the special "args" ending argument. (DL) + +1/15/98 (improvement) Moved common part of initScript in common file. +Moved windows specific initialization to init.tcl so you can initialize +Tcl in windows without having to call Tcl_Init which is now only +searching for init.tcl {back ported from 8.1}. (DL) + +---- Shipped as part of the plugin as 8.0p2Plugin2, Jan 15th 98 ---- + +5/27/98 (bug fix) Windows socket driver did not notice new data arriving +on nonblocking sockets until the event loop was entered. (SS) + +5/27/98 (bug fix) Windows socket driver used FIONREAD, which is not +supported correctly by WinSock. (SS) + +6/9/98 (bug fix) Generic channel code failed to report readable file +events on buffered data that was left behind by a gets or read that +did not consume all available data. (SS) + +6/18/98 (bug fix) Compilation of loop expressions was too aggressive +and incorrectly inlined non-literal expressions. (SS) + +6/18/98 (bug fix) "info var" and "info locals" incorrectly reported +the existence of compiler temporary variables. (SS) + +6/18/98 (bug fix) Dictionary sorting used signed character +comparisons. (SS) + +6/18/98 (bug fix) Compile procs corrupted the exception stack in some +cases. (SS) + +6/18/98 (bug fix) Array set had erratic behavior when initializing a +variable from an empty value list. (SS) + +6/18/98 (bug fix) The Windows registry package had a bad bounds check +that could lead to a crash. (SS) + +6/18/98 (bug fix) The foreach compile proc did not correctly handle +non-local variable references. (SS) + +6/25/98 (new features) Added name resolution hooks to support [incr Tcl]. +There are new internal Tcl_*Resolver* APIs to add, query and remove the hooks. +With this changes it should be possible to dynamically load [incr Tcl] +as an extension. (MM) + +7/1/97 (bug fix) The commands "info args, body, default, procs" did +not correctly handle imported procedures. (RJ) + +7/6/98 (improvement) pkg_mkIndex now implements the "package require" +command. This makes it possible to create index files for packages +that require another package and then execute code from that package in +their file. Previously, this would throw an error because the required +package had not been loaded. The -nopkgrequied flag is provided to +revert back to the old functionality. (EMS) + +7/6/98 (improvement) back-ported the -direct flag from 8.1 into +pkg_mkIndex. This results in pkgIndex.tcl files that contain direct +source or load commands instead of tclPkgSetup commands. (EMS) + +7/6/98 (improvement) made changes to the AuxData items structures to support +storage of compiled scripts on disk. Also some related minor changes in +the compilation and execution engine. (EMS) + +6/4/98 (enhancement) Added new internal routines to support inserting +and deleting from the stat, access, and open-file-channel mechanisms. +TclAccessInsertProc, TclStatInsertProc, & TclOpenFileChannelInsertProc +insert pointers to such routines; TclAccessDeleteProc, TclStatDeleteProc, +& TclOpenFileChannelDeleteProc delete pointers to such routines. See +the file generic/tclIOUtils.c for more details. (SKS) + +7/1/98 (enhancement) Added a new internal C variable +tclPreInitScript. This is a pointer to a string that may hold an +initialization script; If this pointer is non-NULL it is evaluated in +Tcl_Init() prior to the built-in initialization script defined in the +file generic/tclInitScript.h. (SKS) + +7/6/98 (bug fix) Removed dead code in PlatformInitExitHandler so that +the TCL_LIBRARY value can be safely patched in binaries. (BW) + +7/24/98 (enhancement) Incorporated a new version of auto_mkindex that +can support the [incr Tcl] class structures. This version will index +all procedures in a source file, not just those where "proc" starts +at the beginning of the line. If you want the old behavior, use the +auto_mkindex_old procedure. (MM) + +7/24/98 (feature change) Changed the Windows registry key to be +HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, and to store the path +in the default value instead of "Root". Also, this key can be +specified at compile time in case Tcl is being used in a different +context where it needs an alternate library path from the standard Tcl +installation. (SS) + +7/24/98 (feature change) Changed the search order for init.tcl. The +tcl_library variable can now be set before calling Tcl_Init to avoid +doing any searches. If it isn't set, then Tcl checks +env(TCL_LIBRARY), the static value set at compile time, an install +directory relative to the executable, a source directory relative to +the executable, and a tcl directory relative to the source heirarchy +containing the executable. See the comment at the top of +generic/tclInitScript.h for more details. (SS) + +7/27/98 (config change) Changed the use of the DBGX flag in configure.in +and the makefile to be TCL_DBGX. Users of tclConfig.sh may need to pass +this through their configure files with AC_SUBST. (BW) + +729/98 (bug fix) Changed [info body] to return a copy of the body of a +compiled procedure instead of the body itself, to avoid invalidation +of the internal rep and loss of the byte-codes. (EMS) + +8/5/98 (bug fix) The platform init code could walk off the end of a +buffer when reading the PkgPath registry value on Windows. (SS) + +8/5/98 (Windows makefile change) Introduced a set of macros to deal with +exporting symbols when compiling DLLS on Windows. See win/README for +details. (EMS) + +8/5/98 (addendum) Added a second Windows registry key under +HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, named "pkgPath". +This is a multi-string value used to initialize the tcl_pkgPath +variable. This is required if extension DLLs are in architecture specific +subdirectories. (SS) + +8/6/98 (new feature) Added tcl_findLibrary to init.tcl for use by +extensions, including Tk. This searches in a canonical way for +an extensions library directory and initialization file. (BW) + +8/10/98 (bug fix) Imported commands used to get lost if the target +of the import was redefined. Tcl_CreateCommand and Tcl_CreateObjCommand +were updated to restore import links. (Note that if you rename a command, +the import links move to the new name, and if you delete a command then +the import links get lost. These semantics have not changed.) (MC) + +-------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/10/98 ------ + +9/3/98 (bug fix) Tcl_Realloc was failing under Windows because the +GlobalReAlloc API was not correctly re-allocating blocks that were +32k+. The fix was to use newer Win32 APIs (HeapAlloc, HeapFree, and +HeapReAlloc.) (BS) + +10/5/98 (bug fix) Fixed bug in pkg_mkIndex that caused some files that do +a "package require" of packages in the Tcl libraries to give a warning like + warning: "xx.tcl" provides more than one package ({xx 2.0} {yy 0.3}) +and generate a broken pkgIndex.tcl file. (EMS) + +10/5/98 (bug fix) Pkg_mkIndex was not doing a case-insensitive comparison +of extensions to determine whether to load or source a file. Thus, under +Windows, MYDLLNAME.DLL was sourced, and mydllname.dll loaded. (EMS) + +10/5/98 (new feature) Created a new Tcl_Obj type, "procbody". This object's +internal representation holds a pointer to a Proc structure. Extended +TclCreateProc to take both strings and "procbody". (EMS) + +10/13/98 (bug fix) The "info complete" command can now handle strings +with NULLs embedded. Thanks to colin@field.medicine.adelaide.edu.au +for providing this fix. (RJ) + +10/13/98 (bug fix) The "lsort -dictionary" command did not properly +handle some numbers starting with 0. Thanks to Richard Hipp + for submitting the fix to Scriptics. (RJ) + +10/13/98 (bug fix) The function Tcl_SetListObj was creating an invalid +Tcl_Obj if the list had zero elements (despite what the comments said +it would do). Thanks to Sebastian Wangnick for reporting the +problem. (RJ) + +10/20/98 (new feature) Added tcl_platform(debug) element to the +tcl_platform array on Windows platform. The existence of the debug +element of the tcl_platform array indicates that the particular Tcl +shell has been compiled with debug information. Using +"info exists tcl_platform(debug)" a Tcl script can direct the +interpreter to load debug versions of DLLs with the load +command. (SKS) + +10/20/98 (feature change) The Makefile and configure scripts have been +changed for IRIX to build n32 binaries instead of the old 32 abi +format. If you have extensions built with the o32 abi's you will need +to update them to n32 for them to work with Tcl. (RJ) +*** POTENTIAL INCOMPATIBILITY *** + +10/23/98 (bug fix) tcl_findLibrary had a stray ] in one of the +pathnames it searched for the initialization script. tclInitScript.h +was incorrectly adding the parent of tcl_library to tcl_pkgPath. This +logic was moved into init.tcl, and the initialization of auto_path was +documented. Thanks to Donald Porter and Tom Silva for related +patches. (BW) + +10/29/98 (bug fix) Fixed Tcl_NotifyChannel to use Tcl_Preserve instead +of Tcl_RegisterChannel so that 1) unregistered channels do not get +closed after their first fileevent, and 2) errors that occur during +close in a fileevent script are actually reflected by the close +command. (BW) + +10/30/98 (bug fix) Overhaul of pkg_mkIndex to deal with transitive +package requires and packages split among scripts and binary files. +Also fixed ommision of global for errorInfo in tcl_findLibrary. (BW) + +11/08/98 (bug fix) Fixed the resource command to always detect +the case where a file is opened a second time with the same +permissions. IM claims that this will always cause the same +FileRef to be returned, but in MacOS 8.1+, this is no longer the case, +so we have to test for this explicitly. (JI) + +11/10/98 (feature change) When compiling with Metrowerk's MSL, use the +exit function from MSL rather than ExitToShell. This allows MSL to +clean up its temporary files. Thanks to Vince Darley for this +improvement. (JI) + +----------------- Released 8.0.4, 11/19/98 ------------------------- + +11/20/98 (bug fix) Handle possible NULL return in TclGetStdFiles. (RJ) + +11/20/98 (bug fix) The dltests would not build on SGI. They reported +that you could not mix n32 with 032 binaries. The configure script +has been modified to get the EXTRA_CFLAGS from the tcl configure +script. [Bug id: 840] (RJ) + +12/3/98 (bug fix) Windows NT creates sockets so they are inheritable +by default. Fixed socket code so it turns off this bit right after +creation so sockets aren't kept open by exec'ed processes. [Bug: 892] +Thanks to Kevin Kenny for this fix. (SS) + +1/11/98 (bug fix) On HP, "info sharedlibextension" was returning +empty string on static apps. It now always returns ".sl". (RJ) + +1/28/99 (configure change) Now support -pipe option on gcc. (RJ) + +2/2/99 (bug fix) Fixed initialization problem on Windows where no +searching for init.tcl would be performed if the registry keys were +missing. (stanton) + +2/2/99 (bug fix) Added support for HKEY_PERFORMANCE_DATA and +HKEY_DYN_DATA keys in the "registry" command. (stanton) + +2/2/99 (bug fix) ENOTSUP and EOPNOTSUPP clashed on some Linux +variants. (stanton) + +2/2/99 (enhancement) The "open" command has been changed to use the +object interfaces. (stanton) + +2/2/99 (bug fix) In some cases Tcl would crash due to an overflow of +the exception stack resulting from a missing byte code in some +expressions. (stanton) + +2/2/99 (bug fix) Changed configure so Linux and IRIX shared libraries +are linked with the system libraries. (stanton) + +2/2/99 (bug fix) Added support for BSDI 4.x (BSD/OS-4*) to the +configure script. (stanton) + +2/2/99 (bug fix) Fixed bug where upvar could resurrect a namespace +variable after the namespace had been deleted. (stanton) + +2/2/99 (bug fix) In some cases when creating variables, the +interpreter result was being modified even if the TCL_LEAVE_ERR_MSG +flag was set. (stanton) + +2/2/99 (bug fix & new feature) Changed the socket drivers to properly +handle failures during an async socket connection. Added a new +fconfigure option "-error" to retrieve the failure message. See the +socket.n manual entry for details. (stanton) + +2/2/99 (bug fix) Deleting a renamed interp alias could result in a +panic. (stanton) + +2/2/99 (feature change/bug fix) Changed the behavior of "file +extension" so that it splits at the last period. Now the extension of +a file like "foo..o" is ".o" instead of "..o" as in previous versions. +*** POTENTIAL INCOMPATIBILITY *** + +----------------- Released 8.0.5, 3/9/99 ------------------------- + +======== Changes for 8.0 go above this line ======== +======== Changes for 8.1 go below this line ======== + +6/18/97 (new feature) Tcl now supports international character sets: + - All C APIs now accept UTF-8 strings instead of iso8859-1 strings, + wherever you see "char *", unless explicitly noted otherwise. + - All Tcl strings represented in UTF-8, which is a convenient + multi-byte encoding of Unicode. Variable names, procedure names, + and all other values in Tcl may include arbitrary Unicode characters. + For example, the Tcl command "string length" returns how many + Unicode characters are in the argument string. + - For Java compatibility, embedded null bytes in C strings are + represented as \xC080 in UTF-8 strings, but the null byte at the end + of a UTF-8 string remains \0. Thus Tcl strings once again do not + contain null bytes, except for termination bytes. + - For Java compatibility, "\uXXXX" is used in Tcl to enter a Unicode + character. "\u0000" through "\uffff" are acceptable Unicode + characters. + - "\xXX" is used to enter a small Unicode character (between 0 and 255) + in Tcl. + - Tcl automatically translates between UTF-8 and the normal encoding for + the platform during interactions with the system. + - The fconfigure command now supports a -encoding option for specifying + the encoding of an open file or socket. Tcl will automatically + translate between the specified encoding and UTF-8 during I/O. + See the directory library/encoding to find out what encodings are + supported (eventually there will be an "encoding" command that + makes this information more accessible). + - There are several new C APIs that support UTF-8 and various encodings. + See Utf.3 for procedures that translate between Unicode and UTF-8 + and manipulate UTF-8 strings. See Encoding.3 for procedures that + create new encodings and translate between encodings. See + ToUpper.3 for procedures that perform case conversions on UTF-8 + strings. + +9/18/97 (enhancement) Literal objects are now shared by the ByteCode +structures created when compiled different scripts. This saves up to 45% +of the total memory needed for all literals. (BL) + +9/24/97 (bug fixes) Fixed Tcl_ParseCommand parsing of backslash-newline +sequences at start of command words. Suppressed Tcl_EvalDirect error logging +if non-TCL_OK result wasn't an error. (BL) + +10/17/97 (feature enhancement) "~username" now refers to the users' home +directory on Windows (previously always returned failure). (CCS) + +10/20/97 (implementation change) The Tcl parser has been completely rewritten +to make it more modular. It can now be used to parse a script without actually +executing it. The APIs for the new parser are not correctly exported, but +they will eventually be exported and augmented with Tcl commands so that +Tcl scripts can parse other Tcl scripts. (JO) + +10/21/97 (API change) Added "flags" argument to Tcl_EvalObj, removed +Tcl_GlobalEvalObj procedure. Added new procedures Tcl_Eval2 and +Tcl_EvalObjv. (JO) +*** POTENTIAL INCOMPATIBILITY *** + +10/22/97 (API change) Renamed Tcl_ObjSetVar2 and Tcl_ObjGetVar2 to +Tcl_SetObjVar2 and Tcl_GetObjVar2 (for consistency with other C APIs) +and changed the name arguments to be strings instead of objects. (JO) +*** POTENTIAL INCOMPATIBILITY *** + +10/27/97 (enhancement) Bytecode compiler rewritten to use the new Tcl +parser. (BL) + +11/3/97 (New routines) Added Tcl_AppendObjToObj, which appends the +string rep of one Tcl_Obj to another. Added Tcl_GetIndexFromObjStruct, +which is similar to Tcl_GetIndexFromObj, except that you can give an +offset between strings. This allows Tcl_GetIndexFromObjStruct to be +called with a table of records which have strings in them. (SRP) + +12/4/97 (enhancement) New Tcl expression parser added. Added new procedure +Tcl_ParseExpr and new token types TCL_TOKEN_SUB_EXPR and +TCL_TOKEN_OPERATOR. Expression compiler is reimplemented to use this +parser. (BL) + +12/9/97 (bug fix) Tcl_EvalObj() increments/decrements the refcount of the +script object to prevent the object from deleting itself while in the +middle of being evaluated. (CCS) + +12/9/97 (bug fix) Memory leak in Tcl_GetsObjCmd(). (CCS) + +12/11/97 (bug fix) Environment array leaked memory when compiled with +Visual C++. (SS) + +12/11/97 (bug fix) File events and non-blocking I/O did not work on +pipes under Windows. Changed to use threads to achieve non-blocking +behavior. (SS) + +12/18/97 (bug fixes) Fixed segfault in "namespace import"; importing a +procedure that causes a cycle now returns an error. Modified "info procs", +"info args", "info body", and "info default" to return information about +imported procedures as well as procedures defined in a namespace. (BL) + +12/19/97 (enhancement) Added new Tcl_GetString() procedure that can be used +in place of Tcl_GetStringFromObj() if the string representation's length +isn't needed. (BL) + +12/18/97 (bug fix) In the opt argument parsing package: if the description +had only flags, the "too many arguments" case was not detected. The default +value was not used for the special "args" ending argument. (DL) + +1/7/98 (clean up) Moved everything not absolutly necessary out of init.tcl +procs now in auto.tcl and package.tcl can be autoloaded if needed. (DL) + +1/7/98 (enhancement) tcltest made at install time will search for it's +init.tcl where it is, even when using virtual path compilation. (DL) + +1/8/98 (os bug workaround) when needed, using a replacement for memcmp so +string compare "char with high bit set" "char w/o high bit set" returns +the expected value on all platforms. (DL) + +1/8/98 (unix portability/configure) building from .../unix/targetName/ +subdirectories and simply using "../configure" should now work fine. (DL) + +1/14/98 (enhancement) Added new regular expression package that +supports AREs, EREs, and BREs. The new package includes new escape +characters, meta-syntax, and character classes inside brackets. +Regexps involving backslashes may behave differently. (MH) +*** POTENTIAL INCOMPATIBILITY *** + +1/16/98 (os workaround) Under windows, "file volume" was causing chatter +and/or several seconds of hanging when querying empty floppy drives. +Changed implementation to call an empirically-derived function that doesn't +cause this. (CCS) + +1/16/98 (enhancement) Converted regular expressions to a Tcl_Obj type so +their compiled form gets cached automatically. Reduced NSUBEXP from 100 +to 20. (BW) + +1/16/98 (documentation) Change unclear documentation and comments for +functions like Tcl_TranslateFileName() and Tcl_ExternalToUtfDString(). Now +it explicitly says they take an uninitialized or free DString. A DString +that is "empty" or "not holding anything" could have been interpreted as one +currently with a zero length, but with a large dynamically allocated buffer. +(CCS) + +----------------- Released 8.1a1, 1/22/98 ----------------------- + +1/28/98 (new feature) Added a "-direct" optional flag to pkg_mkIndex +to generate direct loading package indexes (such those you need +if you use namespaces and plan on using namespace import just after +package require). pkg_mkIndex still has limitations regarding +package dependencies but errors are now ignored and with -direct, correct +package indexes can be generated even if there are dependencies as long +as the "package provide" are done early enough in the files. (DL) + +1/28/98 (enhancement) Performance tuning of regexp and regsub. (CCS) + +1/28/98 (bug fix) regexp and regsub with "-indices" returned the byte-offsets +of the characters in the UTF-8 representation, not the character offsets +themselves. (CCS) + +1/28/98 (bug fix) "clock format 0 -format %Z -gmt 1" would return the local +timezone string instead of "GMT" on Solaris and Windows. + +1/28/98 (bug fix) Restore tty settings when closing serial device on Unix. +This is good behavior when closing real serial devices, essential when +closing the pseudo-device /dev/tty because the user's terminal settings +would be left useless, in raw mode, when tcl quit. (CCS) + +1/28/98 (bug fix) Tcl_OpenCommandChannel() was modifying the contents of the +argv array passed to it, causing problems for any caller that wanted to +continue to use the argv array after calling Tcl_OpenCommandChannel(). (CCS) + +2/1/98 (bug fix) More bugs with %Z in format string argument to strftime(): +1. Borland always returned empty string. +2. MSVC always returned the timezone string for the current time, not the + timezone string for the specified time. +3. With MSVC, "clock format 0 -format %Z -gmt 1" would return "GMT" the first + time it was called, but would return the current timezone string on all + subsequent calls. (CCS) + +2/1/98 (bug fix) "file stat" was broken on Windows. +1. "file stat" of a root directory (local or network) or a relative path that + resolved to a root directory (c:. when in pwd was c:/) was returning error. +2. "file stat" on a regular file (S_IFREG), the st_mode was sign extended to + a negative int if the platform-dependant type "mode_t" was declared as a + short instead of an unsigned short. +3. "file stat" of a network directory, the st_dev was incorrectly reported + as the id of the last accessed local drive rather than the id of the + network drive. (CCS) + +2/1/98 (bug fix) "file attributes" of a relative path that resolved to a +root directory was returning error. (CCS) + +2/1/98 (bug fix) Change error message when "file attribute" could not +determine the attributes for a file. Previously it would return different +error messages on Unix vs. Windows vs. Mac. (CCS) + +2/4/98 (bug fixes) Fixed several instances of bugs where the parser/compiler +would reach outside the range of allocated memory. Improved the array +lookup algorithm in set compilation. (DL) + +2/5/98 (change) The TCL_PARSE_PART1 flag for Set/Get(Obj)Var2 C APIs is now +deprecated and ignored. The part1 is always parsed when the part2 argument +is NULL. This is to avoid a pattern of errors for extension writers converting +from string based Tcl_SetVar() to new Tcl_SetObjVar2() and who could easily +forget to provide the flag and thus get code working for normal variables +but not for array elements. The performance hit is minimal. A side effect +of that change is that is is no longer possible to create scalar variables +that can't be accessed by tcl scripts because of their invalid name +(ending with parenthesis). Likewise it is also parsed and checked to +ensure that you don't create array elements of array whose name is a valid +array element because they would not be accessible from scripts anyway. +Note: There is still duplicate array elements parsing code. (DL) +*** POTENTIAL INCOMPATIBILITY *** + +2/11/98 (bug fix) Sharing objects between interps, such as by "interp +eval" or "send" could cause a crash later when dereferencing an interp +that had been deleted, given code such as: + set a {set x y} + interp create foo + interp eval foo $a + interp delete foo + unset a +Interp "foo" was gone, but "a" had a internal rep consisting of bytecodes +containing a dangling pointer to "foo". Unsetting "a" would attempt to +return resources back to "foo", causing a crash as random memory was +accessed. The lesson is that that if an object's internal rep depends on +an interp (or any other data structure) it must preserve that data in +some fashion. (CCS) + +2/11/98 (enhancement) The "interp" command was returning inconsistent error +messages when the specified slave interp could not be found. (CCS) + +2/11/98 (bug fix) Result codes like TCL_BREAK and TCL_CONTINUE were not +propagating through the master/slave interp boundaries, such as "interp +eval" and "interp alias". TCL_OK, TCL_ERROR, and non-standard codes like +teh integer 57 work. There is still a question as to whether TCL_RETURN +can/should propagate. (CCS) + +2/11/98 (bug fix) TclCompileScript() was derefering memory 1 byte before +start of the string to compile, looking for ']'. (CCS,DL) + +2/11/98 (bug fix) Tcl_Eval2() was derefering memory 1 byte before start +of the string to eval, looking for ']'. (CCS,DL) + +2/11/98 (bug fix) Compiling "set a(b" was running off end of string. (CCS,DL) + +2/11/98 (bug fix) Windows initialization code was dereferencing +uninitialized memory if TCL_LIBRARY environment didn't exist. (CCS) + +2/11/98 (bug fix) Windows "registry" command was dereferencing +uninitialized memory when constructing the $errorCode for a failed +registry call. (CCS) + +2/11/98 (enhancement) Eliminate the TCL_USE_TIMEZONE_VAR definition from +configure.in, because it was the same information as the already existing +HAVE_TM_ZONE definition. The lack of HAVE_TM_ZONE is used to work around a +Solaris and Windows bug where "clock format [clock sec] -format %Z -gmt 1" +produces the local timezone string instead of "GMT". (CCS) + +2/11/98 (bug fix) Memleaks and dereferencing of uninitialized memory in +regexp if an error occurred while compiling a regular expression. (CCS). + +2/18/98 (new feature) Added mutexes and thread local storage in order +to make Tcl thread safe. For testing purposes, there is a testthread +command that creates a new thread and an interpreter inside it. See +thread.test for examples, but this script-level interface is not fixed. +Each thread has its own notifier instance to manage its own events, +and threads can post messages to each other's message queue. +This uses pthreads on UNIX, and native thread support on other platforms. +You enable this by configuring with --enable-threads. Note that at +this time *Tk* is still not thread safe. Special thanks to +Richard Hipp: his earlier implementation inspired this work. (BW, SS, JI) + +2/18/98 (hidden feature change) The way the env() array is shared among +interpreters changed. Updates to env used to trigger write traces in +other interpreters. This undocumented feature is no longer implemented. +Instead, variable tracing is used to keep the C-level environ array in sync +with the Tcl-level env array. This required adding TCL_TRACE_ARRAY support +to Tcl_TraceVar2 so that array names works properly. (BW) +*** POTENTIAL INCOMPATIBILITY *** + +2/18/98 (enhancement) Conditional compilation for unix systems (e.g., +IRIX, SCO) that use f_bsize instead of st_blksize to determine disk block +size. (CCS) + +2/23/98 (bug fix) Fixed the emulation of polling selects in the threaded +version of the Unix notifier. The bug was showing up on a multiprocessor +as starvation of the notifier thread. (BW) + +----------------- Released 8.1a2, Feb 23 1998 ----------------------- + +9/22/98 (bug fix) Changed the value of TCL_TRACE_ARRAY so it no longer +conflicts with the deprecated TCL_PARSE_PART1 flag. This should +improve portability of C code. (stanton) + +10/6/98 (bug fix) The compile procedure for "if" incorrectly attempted +to match against the literal string "if", resulting in a stack +overflow when "::if" was compiled. It also would incorrectly accept +"if" instead of "elsif" in later clauses. (stanton) + +10/15/98 (new feature) Added a "totitle" subcommand to the "string" +command to convert strings to capitalize the first character of a string +and lowercase all of the other characters. (stanton) + +10/15/98 (bug fix) Changed regexp and string commands to properly +handle case folding according to the Unicode character +tables. (stanton) + +10/21/98 (new feature) Added an "encoding" command to facilitate +translations of strings between different character encodings. See +the encoding.n manual entry for more details. (stanton) + +11/3/98 (bug fix) The regular expression character classification +syntax now includes Unicode characters in the supported +classes. (stanton) + +11/6/98 (bug fix) Variable traces were causing crashes when upvar +variables went out of scope. [Bug: 796] (stanton) + +11/9/98 (bug fix) "format" now correctly handles multibyte characters +in %s format strings. (stanton) + +11/10/98 (new feature) "regexp" now accepts three new switches +("-line", "-lineanchor", and "-linestop") that control how regular +expressions treat line breaks. See the regexp manual entry for more +details. (stanton) + +11/17/98 (bug fix) "scan" now correctly handles Unicode +characters. (stanton) + +11/17/98 (new feature) "scan" now supports XPG3 position specifiers +and the "%n" conversion character. See the "scan" manual entry for +more details. (stanton) + +11/17/98 (bug fix) The Tcl memory allocator now returns 8-byte aligned +chunks of memory which improves performance on Windows and avoids +crashes on other platforms. [Bug: 834] (stanton) + +11/23/98 (bug fix) Applied various regular expression performance bug +fixes supplied by Henry Spencer. (stanton) + +11/30/98 (bug fix) Fixed various thread related race conditions. [Bug: +880 & 607] (stanton) + +11/30/98 (bug fix) Fixed a number of memory overflow and leak +bugs. [Bug: 584] (stanton) + +12/1/98 (new feaure) Added support for Korean encodings. (stanton) + +12/1/98 (feature change) Changed the Tcl_EvalObjv interface to remove +the string and length arguments. +*** POTENTIAL INCOMPATIBILITY with previous alpha releases *** + +12/2/98 (bug fix) Fixed various bugs related to line feed +translation. [Bug: 887] (stanton) + +12/4/98 (new feature) Added a message catalog facility to help with +localizing Tcl scripts. Thanks to Mark Harrison for contributing the +initial implementation of the "msgcat" package. (stanton) + +12/7/98 (bug fix) The memory allocator was failing to update the +block list for large memory blocks that were reallocated into a +different address. [Bug: 933] (stanton) + +----------------- Released 8.1b1, Dec 10 1998 ----------------------- + +12/22/98 (performance improvement) Improved the -command option of the +lsort command to better use the object system for improved +performance (about 5x speed up). Thanks to Syd Polk for suppling the +patch. [RFE: 726] (rjohnson) + +2/10/99 (bug fix) Restored the Tcl_ObjSetVar2/Tcl_ObjGetVar2 +interfaces from 8.0 and renamed the Tcl_GetObjVar2/Tcl_SetObjVar2 +interfaces to Tcl_GetVar2Ex and Tcl_SetVar2Ex. This should provide +better compatibility with 8.0. (stanton) +*** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** + +2/10/99 (bug fix) Made the eval interfaces compatible with 8.0 by +renaming Tcl_EvalObj to Tcl_EvalObjEx, renaming Tcl_Eval2 to +Tcl_EvalEx and restoring Tcl_EvalObj and Tcl_GlobalEvalObj interfaces +so they match Tcl 8.0. (stanton) +*** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** + +2/25/99 (bug fix/new feature) On Windows, the channel drivers for +consoles and serial ports now completely support file events. (redman) + +3/5/99 (bug fix) Integrated patches to fix various configure problems +that affected HP-UX-11, 64-bit IRIX, Linux, and Solaris. (stanton) + +3/9/99 (bug fix) Integrated various AIX related patches to improve +support for shared libraries. (stanton) + +3/9/99 (new feature) Added tcl_platform(user) to provide a portable +way to get the name of the current user. (welch) + +3/9/99 (new feature) Integrated the stub library mechanism contributed +by Jan Nijtmans, Paul Duffin, and Jean-Claude Wippler. This feature +should make it possible to write extensions that support multiple +versions of Tcl simultaneously. It also makes it possible to +dynamically load extensions into statically linked interpreters. This +patch includes the following changes: + - Added a Tcl_InitStubs() interface + - Added Tcl_PkgProvideEx, Tcl_PkgRequireEx, Tcl_PkgPresentEx, + and Tcl_PkgPresent. + - Added va_list versions of all VARARGS functions so they can be + invoked from wrapper functions. +See the manual for more information. (stanton) + + +3/10/99 (feature change) Replaced Tcl_AlertNotifier with +Tcl_ThreadAlert since the Tcl_AlertNotifier function relied on passing +internal data structures. (stanton) +*** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** + +3/10/99 (new feature) Added a Tcl_GetVersion API to make it easier to +check the Tcl version and patch level from C. (redman) + +3/14/99 (feature change) Tried to unify the TclpInitLibrary path +routines to look in similar places from Windows to UNIX. The new +library search path is: TCL_LIBRARY, TCL_LIBRARY/../tcl8.1, relative +to DLL (Windows Only) relative to installed executable, relative to +develop executable, and relative to compiled-in in location (UNIX +Only.) This fix included: + - Defining a TclpFindExecutable + - Moving Tcl_FindExecutable to a common area in tclEncoding.c + - Modifying the TclpInitLibraryPath routines. +(surles) + +3/14/99 (feature change) Added hooks for TclPro Wrapper to initialize +the location of the encoding files and libraries. This fix included: + - Adding the TclSetPerInitScript routine. + - Modifying the Tcl_Init routines to evaluate the non-NULL + pre-init script. + - Adding the Tcl_SetdefaultEncodingDir and Tcl_GetDefaultEncodingDir + routines. + - Modifying the TclpInitLibrary routines to append the default + encoding dir. +(surles) + +3/14/99 (feature change) Test suite now uses "test" namespace to +define the test procedure and other auxiliary procedures as well as +global variables. + - Global array testConfige is now called ::test::testConfig. + - Global variable VERBOSE is now called ::test::verbose, and + ::test::verbose no longer works with numerical values. We've + switched to a bitwise character string. You can set + ::test::verbose by using the -verbose option on the Tcl command + line. + - Global variable TESTS is now called ::test::matchingTests, and + can be set on the Tcl command line via the -match option. + - There is now a ::test::skipTests variable (works similarly to + ::test::matchTests) that can be set on the Tcl command line via + the -match option. + - The test suite can now be run in any working directory. When + you run "make test", the working directory is nolonger switched + to ../tests. +(hirschl) +*** POTENTIAL INCOMPATIBILITY *** + +--------------- Released 8.1b2, March 16, 1999 ---------------------- + +3/18/99 (bug fix) Fixed missing/incorrect characters in shift-jis table +(stanton) + +3/18/99 (feature change) The glob command ignores the +FS_CASE_IS_PRESERVED bit on file systesm and always returns +exactly what it gets from the system. (stanton) +*** POTENTIAL INCOMPATIBILITY *** + +3/19/99 (new feature) Added support for --enable-64bit. For now, +this is only supported on Solaris 7 64bit (SunOS 5.7) using the Sun +compiler. (redman) + +3/23/99 (bug fix) Fixed fileevents and gets on Windows consoles and +serial devices so that non-blocking channels do not block on partial +input lines. (redman) + +3/23/99 (bug fix) Added a new Tcl_ServiceModeHook interface. +This is used on Windows to avoid the various problems that people +have been seeing where the system hangs when tclsh is running +outside of the event loop. As part of this, renamed +TclpAlertNotifier back to Tcl_AlertNotifier since it is public. +(stanton) + +3/23/99 (feature change) Test suite now uses "tcltest" namespace to +define the test procedure and other auxiliary procedures as well as +global variables. The previously chosen "test" namespace was thought +to be too generic and likely to create conflits. +(hirschl) +*** POTENTIAL INCOMPATIBILITY *** + +3/24/99 (bug fix) Make sockets thread safe on Windows. +(redman) + +3/24/99 (bug fix) Fix cases where expr would incorrect return +a floating point value instead of an integer. (stanton) + +3/25/99 (bug fix) Added ASCII to big5 and gb2312 encodings. +(stanton) + +3/25/99 (feature change) Changed so aliases are invoked at current +scope in the target interpreter instead of at the global scope. This +was an incompatibility introduced in 8.1 that is being removed. +(stanton) +*** POTENTIAL INCOMPATIBILITY with previous beta releases *** + +3/26/99 (feature change) --enable-shared is now the default and build +Tcl as a shared library; specify --disable-shared to build a static Tcl +library and shell. +*** POTENTIAL INCOMPATIBILITY *** + +3/29/99 (bug fix) Removed the stub functions and changed the stub +macros to just use the name without params. Pass &tclStubs into the +interp (don't use tclStubsPtr because of collisions with the stubs on +Solaris). (redman) + +3/30/99 (bug fix) Loadable modules are now unloaded at the last +possible moment during Tcl_Finalize to fix various exit-time crashes. +(welch) + +3/30/99 (bug fix) Tcl no longer calls setlocale(). It looks at +env(LANG) and env(LC_TYPE) instead. (stanton) + +4/1/99 (bug fix) Fixed the Ultrix multiple symbol definition problem. +Now, even Tcl includes a copy of the Tcl stub library. (redman) + +4/1/99 (bug fix) Internationalized the registry package. + +4/1/99 (bug fix) Changed the implemenation of Tcl_ConditionWait and +Tcl_ConditionNotify on Windows. The new algorithm eliminates a race +condition and was suggested by Jim Davidson. (welch) + +4/2/99 (new apis) Made various Unicode utility functions public. +Tcl_UtfToUniCharDString, Tcl_UniCharToUtfDString, Tcl_UniCharLen, +Tcl_UniCharNcmp, Tcl_UniCharIsAlnum, Tcl_UniCharIsAlpha, +Tcl_UniCharIsDigit, Tcl_UniCharIsLower, Tcl_UniCharIsSpace, +Tcl_UniCharIsUpper, Tcl_UniCharIsWordChar, Tcl_WinUtfToTChar, +Tcl_WinTCharToUtf (stanton) + +4/2/99 (feature change) Add new DDE package and removed the Tk +send command from the Windows version. Changed DDE-based send +code into "dde eval" command. The DDE package can be loaded +into tclsh, not just wish. Windows only. (redman) + +4/5/99 (bug fix) Changed safe-tcl so that the encoding command +is an alias that masks out the "encoding system" subcommand. +(redman) + +4/5/99 (bug fix) Configure patches to improve support for +OS/390 and BSD/OS 4.*. (stanton) + +4/5/99 (bug fix) Fixed crash in the clock command that occurred +with negative time values in timezones east of GMT. (stanton) + +4/6/99 (bug fix) Moved the "array set" C level code into a common +routine (TclArraySet). The TclSetupEnv routine now uses this API to +create an env array w/ no elements. This fixes the bug caused when +every environ varaible is removed, and the Tcl env variable is +synched. If no environ vars existed, the Tcl env var would never be +created. (surles) + +4/6/99 (bug fix) Made the Env module I18N compliant. (surles) + +4/6/99 (bug fix) Changed the FindVariable routine to TclpFindVariable, +that now does a case insensitive string comparison on Windows, and not +on UNIX. (surles) + +--------------- Released 8.1b3, April 6, 1999 ---------------------- + +4/9/99 (bug fix) Fixed notifier deadlock situation when the pipe used +to talk back notifier thread is filled with data. Found as a result of the +focus.test for Tk hanging. (redman) + +4/13/99 (bug fix) Fixed bug where socket -async combined with +fileevent for writing did not work under Windows NT. (redman) + +4/13/99 (encoding fix) Restored the double byte definition of GB2312 +and added the EUC-CN encoding. EUC-CN is a variant of GB2312 that +shifts the characters into bytes with the high bit set and includes +ASCII as a subset. (stanton) + +4/27/99 (bug fix) Added 'extern "C" {}' block around the stub table +pointer declaration so the stub library can be used from C++. (stanton) + +--------------- Released 8.1 final, April 29, 1999 ---------------------- + +4/22/99 (bug fix) Changed Windows NT socket implementation to avoid +creating a communication window. This avoids the problem where the +system hangs waiting for tclsh to respond to a system-wide synchronous +broadcast (e.g. if you change system colors). (redman) + +4/22/99 (bug fix) Added call to TclWinInit from TclpInitPlatform when +building a static library since DllMain will not be invoked. This +could break old code that explicitly called TclWinInit, but should be +simpler in the long run. (stanton) +*** POTENTIAL INCOMPATIBILITY *** + +4/23/99 (bug fix) Added support for the koi8-r Cyrillic +encoding. [Bug: 1771] (stanton) + +4/28/99 (bug fix) Changed internal Tcl_Obj usage to avoid freeing the +internal representation after the string representation has been +freed. This makes it easier to debug extensions. (stanton) + +4/30/99 (bug fix) Fixed a memory leak in CommandComplete. (stanton) + +5/3/99 (bug fix) Fixed a bug where the Tcl_ObjType was not being set +in a duplicated Tcl_Obj. [Bug: 1975, 2047] (stanton) + +5/3/99 (bug fix) Changed Tcl_ParseCommand to avoid modifying eval'ed +strings that are already null terminated. [Bug: 1793] (stanton) + +5/3/99 (new feature) Applied Jeff Hobbs's string patch which includes +the following changes: + - added new subcommands: equal, repeat, map, is, replace + - added -length option to "string compare|equal" + - added -nocase option to "string compare|equal|match" + - string and list indices can be an integer or end?-integer?. + - added optional first and last index args to string toupper, et al. +See the string.n manual entry for more details about the new string +features. [Bug: 1845] (stanton) + +5/6/99 (new feature) Added Tcl_UtfNcmp and Tcl_UtfNcasecmp to make Utf +string comparision easier. (stanton) + +5/7/99 (bug fix) Improved OS/390 support. [Bug: 1976, 1997] (stanton) + +5/12/99 (bug fix) Changed Windows initialization code to avoid using +GetUserName system call in favor of the env(USERNAME) variable. This +provides a significant startup speed improvement. (stanton) + +5/12/99 (bug fix) Replaced the per-interpreter regexp cache with a +per-thread cache. Changed the Regexp object to take advantage of this +extra cache. Added a reference count to the TclRegexp type so regexps +can be shared by multiple objects. Removed the per-interp regexp cache +from the interpreter. Now regexps can be used with no need for an +interpreter. This set of changes should provide significant speed +improvements for many Tcl scripts. [Bug: 1063] (stanton) + +5/14/99 (bug fix) Durining initialization on Unix, Tcl now extracts the +encoding subfield from the LANG/LC_ALL environment variables in cases +where the locale is not found in the built-in locale table. It also +attempts to initialize the locale subsystem so X11 is happy. [Bug: 1989] +(stanton) + +5/14/99 (bug fix) Applied the patch to fix 100-year and 400-year +boundaries in leap year code, from Isaac Hollander. [Bug: 2066] (redman) + +5/14/99 (bug fix) Fixed a crash caused by a failure to reset the result +before evaluating the test expression in an uncompiled for +statement. (stanton) + +5/18/99 (bug fix) Modified initialization code on Windows to avoid +inherenting closed or invalid channels. If the standard input is +anything other than a console, file, serial port, or pipe, then we fall +back to the standard Tk window console. (stanton) + +5/19/99 (bug fix) Added an extern "C" block around the entire tcl.h +header file to avoid C++ linkage issues. (redman) + +5/19/99 (new feature) Applied Jeff Hobb's patch to add +Tcl_StringCaseMatch to support case insensitive glob style matching and +Tcl_UniCharIs* character classification functions. (stanton) + +5/20/99 (bug fix) Added the directory containing the executuble and the +../lib directory relative to that to the auto_path variable. (redman) + +--------------- Released 8.1.1, May 25, 1999 ---------------------- + +5/21/99 (bug fix) Fixed launching command.com on Win95/98, no longer +hangs. [Bug: 2105] (redman) + +5/28/99 (bug fix) Fixed bug where dde calls were being passed an +invalid dde handle. [Bug: 2124] (stanton) + +6/1/99 (bug fix) Small configure.in patches. [Bug: 2121] (stanton) + +6/1/99 (bug fix) Applied latest regular expression patches to fix an +infinite loop bug and add support for testing whether a string could +match with additional input. [Bug: 2117] (stanton) + +6/2/99 (bug fix) Fixed incorrect computation of relative ordering in +Utf case-insensitive comparison. [Bug: 2135] (stanton) + +6/3/99 (bug fix) Fxied bug where string equal/compare -nocase +reported wrong result on null strings. [Bug: 2138] (stanton) + +6/4/99 (new feature) Windows build now uses Cygwin tools plus GNU +make and autoconf to build static/dynamic and debug/nodebug. (stanton) + +6/7/99 (new feature) Optimized string index, length, range, and +append commands. Added a new Unicode object type. (hershey) + +6/8/99 (bug fix) Rolled back Windows socket driver to 8.1.0 +version. (stanton) + +6/9/99 (new feature) Added Tcl_RegExpMatchObj and Tcl_RegExpGetInfo +to public Tcl API, these functions are needed by Expect. Changed +tools/genStubs.tcl to always write output in LF mode. (stanton) + +6/14/99 (new feature) Merged string and Unicode object types. Added +new public Tcl API functions: Tcl_NewUnicodeObj, Tcl_SetUnicodeObj, +Tcl_GetUnicode, Tcl_GetUniChar, Tcl_GetCharLength, Tcl_GetRange, +Tcl_AppendUnicodeToObj. (hershey) + +6/16/99 (new feature) Changed to conform to TEA specification, added +tcl.m4 and aclocal.m4 macro libraries for configure. (wart) + +6/17/99 (new feature) Added new regexp interfaces: -expanded, -line, +-linestop, and -lineanchor switches. Renamed Tcl_RegExpMatchObj to +Tcl_RegExpExecObj and added new Tcl_RegExpMatchObj that is equivalent +to Tcl_RegExpMatch. Added public macros for regexp flags. Added +REG_BOSONLY flag to allow Expect to iterate through a string and only +find matches that start at the current position within the +string. (stanton) + +6/21/99 (bug fix) Fixed memory leak in TclpThreadCreate where thread +attributes were not being released. [Bug: 2254] (stanton) + +6/23/99 (new feature) Updated Unicode character tables to reflect +Unicode 2.1 data. (stanton) + +6/25/99 (new feature) Fixed bugs in non-greedy quantifiers for regular +expression code. (stanton) + +6/25/99 (new feature) Added initial implementation of new Tcl test +harness package. Modified test files to use new tcltest package. +(jenn) + +6/26/99 (new feature) Applied patch from Peter Hardie to add poke +command to dde and changed the dde package version number to +1.1. (redman) + +6/28/99 (bug fix) Applied patch from Peter Hardie to fix problem in +Tcl_GetIndexFromObj() when the key being passed is the empty string. +[Bug: 1738] (redman) + +6/29/99 (new feature) Added options to tcltest package: -preservecore, +-limitconstraints, -help, -file, -notfile, and flags. (jenn) + +7/3/99 (new feature) Changed parsing of variable names to allow empty +array names. Now "$(foo)" is a variable reference. Previously you +had to use something line $::(foo), which is slower. This change was +requested by Jean-Luc Fontaine for his STOOOP package. (welch) + +7/3/99 (new feature) Added Tcl_SetNotifier (public API) and +associated hook points in the notifiers to be able to replace the +notifier calls at runtime. The Xt notifier and test program use this +hook. (welch) + +7/3/99 (new feature) Added a new variant of the "Trf core patch" from +Andreas Kupries that adds new C APIs Tcl_StackChannel, +Tcl_UnstackChannel, and Tcl_GetStackedChannel. This allows the Trf +extension to work without applying patches to the Tcl core. (welch) + +7/6/99 (new feature) Added -timeout option to http.tcl to handle +timeouts that occur during connection attempts to hosts that are +down. (welch) + +7/6/99 (bug fix) Applied new implementation of the Windows serial +port driver from Rolf Schroedter that fixes reading only one byte from +the port at a time. Uses polling every 10ms to implement +fileevents. [Bug: 1980 2217] (redman) + +7/8/99 (bug fix) Applied fix for bug in DFA state caching under +lookahead conditions (regular expressions). [Bug: 2318] (stanton) + +7/8/99 (bug fix) Fixed bug in string range bounds checking +code. (stanton) + +--------------- Released 8.2b1, July 14, 1999 ---------------------- + +7/16/99 (bug fix) Added Tcl_SetNotifier to stub table. [Bug: 2364] +Added check for Alpha/Linux to correct the IEEE floating point flag, +patch from Don Porter. (redman) + +7/20/99 (bug fix) Merged 8.0.5 code to handle tcl_library properly, +also fixed a bug that caused TCL_LIBRARY to be ignored. (hershey) + +7/21/99 (bug fix) Implemented modified socket driver for Windows that +uses a thread to manage the socket event window. Code works the same +on all supported versions of Windows and was based on original 8.1.0 +code. [Bug: 2178 2256 2259 2329 2323 2355] (redman) + +7/21/99 (new feature) Applied patch from Rolf Schroedter to add +-pollinterval option to fconfigure for Windows serial ports. Allows +the maxblocktime to be modified to control how often serial ports are +checked for fileevents. Also added documentation for \\.\comX +notation for opening serial ports on Windows. (redman) + +7/21/99 (bug fix) Changed APIs in stub tables to use "unsigned long" +instead of the platform-specific "size_t", primarily after SunOS 4 +users could no longer compile. (redman) + +7/22/99 (bug fix) Fixed crashing during "array set a(b) {}". +[Bug: 2427] (redman) + +7/22/99 (bug fix) The install-sh script must be given execute +permissions prior to running. [Bug: 2413] (redman) + +7/22/99 (bug fix) Applied patch from Ulrich Ring to remove ANSI-style +prototypes in the code. [Bug: 2391] (redman) + +7/22/99 (bug fix) Added #if blocks around #includes of sys/*.h header +files, to allow an extension author on Windows to use the MetroWerks +compiler. [Bug: 2385] (redman) + +7/22/99 (bug fix) Fixed running the safe.test test suite, one change +to the Windows Makefile.in to fix paths and another in safe.test to +check for the tcl_platform(threaded) variable properly. (redman) + +7/22/99 (bug fix) Fixed hanging in new Win32 socket driver with +threads enabled. (redman) + +7/26/99 (bug fix) Fixed terminating of helper threads by holding any +mutexes from the primary thread while waiting for the helper thread to +terminate. Fixes dual-CPU WinNT hangs, only one rare sporadic hang +that still exists with dual-CPU WinNT. Also fixed test cases so that +they would not depend as much on timing for dual-CPU WinNT. (redman) + +7/27/99 (bug fix) Some test suite cleanup. (jenn) + +7/29/99 (bug fix) Applied patch to fix typo in .SH NAME line in +doc/Encoding.n [Bug: 2451]. Applied patch to avoid linking pack.n to +pack-old.n [Bug: 2469]. Patches from Don Porter. (redman) + +7/29/99 (bug fix) Allow tcl to open CON and NUL, even for redirection +of std channels. [Bug: 2393 2392 2209 2458] (redman) + +7/30/99 (bug fix) Applied fixed Trf patch from Andreas Kupries. +[Bug: 2386] (hobbs) + +7/30/99 (bug fix) Fixed bug in info complete. [Bug: 2383 2466] (hobbs) + +7/30/99 (bug fix) Applied patch to fix threading on Irix 6.5, patch +provided by James Dennett. [Bug: 2450] (redman) + +7/30/99 (bug fix) Fixed launching of 16bit applications on Win9x from +wish. The command line was being primed with tclpip82.dll, but it was +ignored later. + +7/30/99 (bug fix) Added functions to stub table, patch provided by Jan +Nijtmans. [Bug: 2445] (hobbs) + +8/1/99 (bug fix) Changed Windows socket driver to terminate threads +by sending a message to the window rather than calling +TerminateThread(), which seems to leak about 4k from the helper +thread's stack space. (redman) + +--------------- Released 8.2b2, August 5, 1999 ---------------------- + +8/4/99 (bug fix) Applied patches supplied by Henry Spencer to greatly +enhance performance of certain classes of regular expressions. +[Bug: 2440 2447] (stanton) + +8/5/99 (doc change) Made it clear that tcl_pkgPath was not set for +Windows. [Bug: 2455] (hobbs) + +8/5/99 (bug fix) Fixed reference to bytes that might not be null +terminated in tclLiteral.c. [Bug: 2496] (hobbs) + +8/5/99 (bug fix) Fixed typo in http.tcl. [Bug: 2502] (hobbs) + +8/9/99 (bug fix) Fixed test suite to handle larger integers +(64bit). Patch from Don Porter. (hobbs) + +8/9/99 (documentation fix) Clarified Tcl_DecrRefCount docs +[Bug: 1952]. Clarified array pattern docs [Bug: 1330]. Fixed clock docs +[Bug: 693]. Fixed formatting errors [Bug: 2188 2189]. Fixed doc error +in tclvars.n [Bug: 2042]. (hobbs) + +8/9/99 (bug fix) Fixed path handling in auto_execok [Bug: 1276] (hobbs) + +8/9/99 (internal api change) Removed the TclpMutexLock and TclpMutexUnlock +APIs and added a new exported api, Tcl_GetAllocMutex. These APIs are all for +the mutex used in the simple memory allocators. By making this change +we are able to substitute different implementations of the thread-related +APIs without having to recompile the Tcl core. (welch) + +8/9/99 (new C API) Tcl_GetChannelNames returns a list of open channel +names in the interpreter result. Still no Tcl-level version of this, +but server-like applications can use this to clean up files without +deleting interpreters. (welch) + +8/9/99 (bug fix) Traces were not firing on "info exists", which used to +happen in Tcl 7.6 and earlier. An "info exists" now fires a read trace, +if defined. This makes it possible to fully implement variables that +are defined via traces. (welch) + +8/10/99 (bug fix) Fixed Brent's changes so that they work on +Windows. (redman) + +--------------- Released 8.2b3, August 11, 1999 ---------------------- + +8/12/99 (Mac) Rearrange projects in tclMacProjects.sea.hqx so that the +build directory is separate from the sources. (Jim Ingham) + +8/12/99 (bug fix) Fixed bug in Tcl_EvalEx where the termOffset was not +being updated in cases where the evaluation returned a non TCL_OK +error code. [Bug: 2535] (stanton) + +--------------- Released 8.2.0, August 17, 1999 ---------------------- + +9/21/99 (config fixes) fixed several AIX configuration issues. gcc and +threading may still cause problems on AIX. (hobbs) + +9/21/99 (bug fix) fixed expr double-eval problem. [Bug: 732] (hobbs) + +9/21/99 (bug fix) fixed static buffer overflow problem. [Bug: 2483] (hobbs) + +9/21/99 (bug fix) fixed end-int linsert interpretation. [Bug: 2693] (hobbs) + +9/21/99 (bug fix) fixed bug when setting array in non-existent +namespace. [Bug: 2613] (hobbs) + +--- Released 8.2.1, October 04, 1999 --- See ChangeLog for details --- + +10/30/99 (feature enhancement) new regexp engine from Henry Spencer +was patched in - should greatly reduce stack space usage. (spencer) + +10/30/99 (bug fix) fixed Purify reported memory leaks in findexecutable +test command, TclpCreateProcess on Unix, in handling of C environ array, +and in testthread code. No more known (reported) mem leaks for Tcl +built using gcc on Solaris 2.5.1. Also none reported for Tcl on NT +(using Purify 6.0). (hobbs) + +10/30/99 (bug fix) fixed improper bytecode handling of +'eval {set array($unknownvar) 5}' (also for incr) (hobbs) + +10/30/99 (bug fix) fixed event/io threading problems by making +triggerPipe non-blocking (nick kisserbeth) + +10/30/99 (bug fix) fixed Tcl_AppendStringsToObjVA and Tcl_AppendResultVA +to only iterates once over the va_list (avoiding non-portable memcpy). +(joe english, hobbs) + +10/30/99 (bug fix) removed savedChar trick in tclCompile.c that appeared +to be causing a segv when the literal table was released. +[Bug: 2459, 2515] (David Whitehouse) + +10/30/99 (bug fix) fixed [string index] to return ByteArrayObj +when indexing into one (test case string-5.16) [Bug: 2871] (hobbs) + +10/30/99 (bug fix) fixes for mac UTF filename handling (ingham) + +--- Released 8.2.2, November 04, 1999 --- See ChangeLog for details --- + +11/19/99 (feature enhancement) bug fixes for http package as well as +patch required by TLS (SSL) extension that adds http::(un)register +and -type to http::geturl. Up'd http pkg version to 2.2. + +11/19/99 (bug fix) removed extra decr of numLevels in Tcl_EvalObjEx +that could cause seg fault (mjansen@wendt.de) + +11/19/99 (bug fixes) numerous minor big fixes, including correcting the +installation of the koi8-r encoding and tcltest1.0 on Windows. + +11/30/99 (bug fix) fixes scan where %[..] didn't match anything + +11/30/99 (bug fix) fixed setting of isNonBlocking flag in PipeBlockModeProc +so you can now close a non-blocking channel without waiting. + +11/30/99 (bug work-around) prevented the unloading of DLLs for Unix in +TclFinalizeLoad. This stops the seg fault on exit that some users would +see (ie with oratcl) when using DLLs that do nasty things like register +atexit handlers. + +12/07/99 (bug fix) fixes for 'expr + {[incr]}' and 'expr + {[error]}' +cases (different causes). + +--- Released 8.2.3, December 16, 1999 --- See ChangeLog for details --- + +1999-09-14 (feature enhancement) added -start switch to regexp and regsub. + +1999-09-15 (feature enhancement) add 'array unset' command. + +1999-09-15 (feature enhancement) rewrote runtime libraries to use new +string functions + +1999-08-18 (feature enhancement) added 'file channels' command, along with +Tcl_GetChannelNames(Ex) public C APIs. + +1999-10-19 (feature enhancement) enhanced tcltest package + +1999-09-16 (feature enhancement) added -milliseconds switch to 'clock clicks' + +1999-10-28 (feature enhancement) added support for inline 'scan' + +1999-10-28 (feature enhancement) added support for touch functionality by +extendeding 'file atime' and 'file mtime' to take an optional time argument + +1999-11-24 (feature enhancement) added 'fconfigure $sock -lasterror' +command to Windows to query the last error received on a serial socket. + +1999-11-30 (bug fix) fixed handling of %Z on NT for timezones that don't +have DST + +1999-12-03 (feature enhancement) improved error message in bad octal cases +and improper use of comments. (hobbs) + +1999-12-07 (bug fix) fixed Tcl_ScanCountedElement to not step +beyond the end of the counted string + +1999-12-09 (feature enhancement) removed all references to 16 bit +compatibility code for Windows (hobbs) + +1999-12-10 (bug fix) removed check for vfork - Tcl now uses only fork in +exec. (hobbs) + +1999-12-10 (optimization) changed Tcl_ConcatObj to return a list +object when it receives all pure list objects as input (used by 'concat'), +added optimizations in Tcl_EvalObjEx for pure list case, and optimized +INST_TRY_CVT_TO_NUMERIC in TclExecuteByteCode for boolean objects. +(oakley, hobbs) + +1999-12-12 (feature enhancement) enhanced glob command with -type, -path, +-directory and -join switches. (darley, hobbs) + +1999-12-21 (bug fix) changed CreateThread to _beginthreadex and +ExitThread to _endthreadex to prevent 4K mem leak (gravereaux) + +1999-12-21 (bug fix) fixed applescript for I18N + +1999-12-21 (feature enhancement) added -unique option to lsort (hobbs) + +1999-12-21 (bug fix) changed thread ids to longs (for 64bit systems) + +--- Released 8.3b1, December 22, 1999 --- See ChangeLog for details --- + +2000-01-10 (feature enhancement) clock scan now supports the common +ISO 8601 date/time formats. See docs for details. (melski) + +2000-01-10 (bug fix) prevented \ooo substitution from accepting +non-octal digits [Bug: 3975] (hobbs) + +2000-01-11 (bug fix) fixed improper handling of DST by clock when +using relative times (like "1 month" or "tomorrow"). (melski) + +2000-01-12 (bug fix) improved build support for Tru64 v5, NetBSD +and Reliant Unix (hobbs) + +2000-01-12 (bug fix) made imported commands also import their +compile procedure (duffin) + +2000-01-12 (bug fix) fixed 'info procs ::namesp::*' behavior to return +procs in a namespace (dejong) + +2000-01-12 (feature enhancement) added support for setting permissions +symbolicly (like chmod) in [file attributes $file -permissions ...] (schoebel) + +2000-01-13 (bug fix) fixed lsort -dictionary problem when sorting +characters between 'Z' and 'a' (flawed upper/lower comparison logic) (melski) + +--- Released 8.3b2, January 13, 2000 --- See ChangeLog for details --- + +2000-01-14 (feature enhancement) clock format %Q added, clock scan updated + +2000-01-20 (bug fix) corrected complex array elem compiling (Spjuth) + +2000-01-20 (bug fix) made [info body] always return a string type arg, +to prevent possible misuse of bytecodes in the wrong context (hobbs) + +2000-01-20 (bug fixes) several fixes to variable handling to prevent +possible crashes, and further definition of correct behavior (melski) + +2000-01-25 (bug fixes) improved QNX, Ultrix and OSF1 (Tru64) config and +compatibility (edge, furukawa) + +2000-01-25 (bug fix) fixed mem leak when calling lsort with a bad -command +argument (hobbs) + +2000-01-27 (feature enhancement) package mechanism overhaul: changed +behavior of pkg_mkIndex to do -direct by default, added -lazy option. +Fixed pkg_mkIndex to handle odd proc names and auto_mkIndex to use platform +independent file paths. Other fixes for odd package quirks. Added +::pkg namespace and ::pkg::create helper function. (melski) + +2000-02-01 (bug fix) fixed problem where http POST would send one extra +newline (vasiljevic) + +2000-02-02 (feature enhancement) added docs for new regexp -inline and +-all switches. (hobbs) + +2000-02-08 (bug fix) corrected handling of "next monthname" in clock scan +(melski) + +2000-02-09 (bug fix) restored Mac source to build readiness and prevented +mac panic from an error when closing an async socket (steffen, ingham) + +2000-02-10 (feature enhancement) improved error reporting for failed +loads on Windows (dejong, hobbs) + +--- Released 8.3.0, February 10, 2000 --- See ChangeLog for details --- + +2000-03 (bug fixes, feature enhancement) overhaul of http package for +proper handling of async callbacks (new options), version is now at 2.3 +(tamhankar, welch) + +2000-03 (performance enhancement) speedup in Windows filename handling (newman) +and ==/!= empty string in exprs. (hobbs) + +2000-03-27 (bug fix) added uniq'ing test to namespace export list to +prevent unnecessary mem growth (hobbs) + +2000-03-29 (bug fix) fixed mem leak when repeatedly sourcing the same +bytecompiled (tbc) code repeatedly across different interpreters (hobbs) + +2000-03-29 (config enhancement) improved build support for gcc/mingw on +Windows (nijtmans, hobbs) and added RPM target (melski) + +2000-03-31 (bug fix) corrected data encoding problem when using +"exec << $data" construct (melski) + +2000-04 (feature enhancement) overhaul of threading mechanism to better +support tcl level thread command (new APIs Tcl_ConditionFinalize, +Tcl_MutexFinalize, Tcl_CreateThread, etc, all docs in Thread.3). +(kupries, graveraux) +This enables the tcl level thread extension. (welch) + +2000-04-10 (bug fix) fixed infinite loop case in regexp -all (melski) + +2000-04-13 (config enhancement) added support for --enable-64bit-vis +Sparc target. (hobbs) + +2000-04-18 (bug fix) moved tclLibraryPath to thread-local storage to fix +possible race condition on MP machines (hobbs) + +2000-04-18 (config enhancement) added MacOS X build target and +tclLoadDyld.c dl type. (sanchez) + +2000-04-23 (bug fix) several Mac socket fixes (ingham) + +2000-04-24 (bug fix) fixed hang in threaded Unix case when backgrounded +exec process was running (dejong) + +--- Released 8.3.1, April 26, 2000 --- See ChangeLog for details --- + +2000-04-26 (doc fix) updated/added documentation for many API's and +commands (melski) + +2000-05-02 (feature enhancement) added support for joinable threads; +extended API's for channels to allow channels to move between threads +(kupries) + +2000-05-02 (feature enhancement) changed error return for procedures +with incorrect args to be like the Tcl_WrongNumArgs API, with a "wrong +# args: ..." message printed, with an args list (hobbs) + +2000-05-08 (feature enhancement) added [array statistics] command + +2000-05-08 (performance enhancement) rewrote Tcl_StringCaseMatch +algorithm for better performance; this affects the [string match] +command; added "eq" and "ne" operands to expr, for testing +string equality and inequality (hobbs) + +2000-05-09 (feature enhancement) extended [lsearch] to support sorted +list searches and typed list searches (melski) + +2000-05-10 (feature enhancement) added [namespace exists] command +(darley) + +2000-05-18 (build enhancement) added support for mingw compile env and +cross-compiling (dejong) + +2000-05-18 (bug fix) corrected clock grammar to properly handle the +"ago" keyword when it follows multiple relative unit specifiers +(melski) + +2000-05-22 (compile fix) type cast cleanups (dejong) + +2000-05-23 (performance enhancement) added byte-compiled +implementation of [return] command and [string] command (melski) + +2000-05-26 (performance enhancement) extended byte-compiled [string] +command with support for [string compare/index/match] (hobbs) + +2000-05-27 (feature enhancement) added ability to set [info script] +return value ([info script ?newFileName?]) (welch) + +2000-05-31 (feature enhancement) added support for regexp and exact +pattern matching for [array names] (gazetta) + +2000-05-31 (feature enhancement) added -nocomplain and -- flags to +[unset] to allow for silent unset operation (hobbs) + +--- Released 8.4a1, June 6, 2000 --- See ChangeLog for details --- + +2000-05-29 (bug fix) corrected resource cleanup in http error cases. +Improved handling of error cases in http. (tamhankar) + +2000-07 (feature rewrite) complete rewrite of the Tcl IO channel subsystem +to correct problems (hangs, core dumps) with the initial stacked channel +implementation. The new system has many more tests for robustness and +scalability. There are new C APIs (see Tcl_CreateChannel), but only +stacked channel drivers are affected (ie: TLS, Trf, iogt). The iogt +extension has been added to the core test code to test the system. +(hobbs, kupries) + **** POTENTIAL INCOMPATABILITY **** + +2000-07 (build improvements) cleanup of the makefiles and configure scripts +to correct support for building under gcc for Windows. (dejong) + +2000-08-07 (bug fix) corrected sizeof error in Tcl_GetIndexFromObjStruct. +(perkins) + +2000-08-07 (bug fix) correct off-by-one error in HistIndex, which was +causing [history redo] to start its search at the wrong event index. (melski) + +2000-08-07 (bug fix) corrected setlocale calls for XIM support and locale +issues in startup. (takahashi) + +2000-08-07 (bug fix) correct code to handle locale specific return values +from strftime, if any. (wagner) + +2000-08-07 (bug fix) tweaked grammar to properly handle the "ago" keyword +when it follows multiple relative unit specifiers, as in +"2 days 2 hours ago". (melski) + +2000-08-07 (doc fixes) numerous doc fixes to correct SEE ALSO and NAME +sections. (english) + +2000-08-07 (bug fix) new man pages memory.n, TCL_MEM_DEBUG.3, Init.3 and +DumpActiveMemory.3. (melski) + +--- Released 8.3.2, August 9, 2000 --- See ChangeLog for details --- + +2000-06 thru 2000-11 (build improvements) Added support for mingw (gcc on +Windows), AIX-5 and Win64 builds (dejong, hobbs) + +2000-06-23 (feature enhancement) ability to use Tcl_Obj *s as hash keys (duffin) + +2000-06-29 (new features) added [mcmax] and [mcmset] and extended [unknown] in +msgcat package (duperval, krone, nelson) +=> msgcat 1.1 + +2000-08 thru 2000-09 added tclPlatDecls.h to default install (melski, hobbs) + +2000-08-24 (new feature) Enhanced trace syntax to add: + trace {add|remove|list} {variable|command} name ops command +(darley, melski) + +2000-09-06 (cross-platform feature) Set ^Z (\32) as default EOF char. (hobbs) + +2000-09-07 partial fix for bug 2460 to prevent exec mem leak on Windows for the +common case (gravereaux) + +2000-09-14 Improved string allocation growth for large strings (hintermayer, +melski) + +2000-09-14 New non-panic'ing mem allocation functions Tcl_AttemptAlloc, +Tcl_AttemptRealloc, Tcl_AttemptSetObjLength (melski) + +2000-09-20 (new features) completely new, enhanced syntax in tcltest package. +Backwards compatable with tcltest v1. (hom) +=> tcltest 2.0 + +2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that +didn't set nonBlocking correctly when resetting the flags for the write +side (mem leak) Correct mem leak in channels when statePtr was released +(hobbs) + +2000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason) + +2000-10-06 (bug fix) corrected [file channels] to only return channels in +the current interpreter (hobbs) + +2000-10-20 (performance enhancement) call stat only when necessary in 'glob' to +speed up command significantly in base cases (hobbs) + +2000-10-27 Fixed mem leak in Tcl_CreateChannel. Re-purified core via test +suites. (hobbs) + +2000-10-30 (new feature) add "ja_JP.eucJP" map to "euc-jp" encoding (takahashi) + +2000-11-01 (mem leak) Corrected excessive mem use of info exists on a +non-existent array element (hobbs) + +2000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded +environment (gravereaux) + +2000-11-03 (new feature) Tcl_SetMainLoop enables defining an event loop for +tclsh. This enables Tk as a truly loadable package. (hobbs) + +--- Released 8.4a2, November 3, 2000 --- See ChangeLog for details --- + +2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that +didn't set nonBlocking correctly when resetting the flags for the write +side (mem leak) Correct mem leak in channels when statePtr was released +(hobbs) + +2000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason) + +2000-10-06 (bug fix) corrected [file channels] to only return channels in +the current interpreter (hobbs) + +2000-10-20 (performance enhancement) call stat only when necessary in 'glob' to +speed up command significantly in base cases (hobbs) + +2000-11-01 (mem leak) Corrected excessive mem use of info exists on a +non-existent array element (hobbs) + +2000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded +environment (gravereaux) + +2000-11-23 (mem leak) fixed potential memory leak in error case of lsort +(fellows) + +2000-12-09 (feature enhancement) changed %o and %x to use strtoul instead +of strtol to correctly preserve scan<>format conversion of large integers +(hobbs) +Fixed handling of {!} in expressions (hobbs, fellows) + +2000-12-14 (feature enhancement) improved (s)rand for 64-bit platforms +(porter) + +2001-01-04 (bug fix) corrected parsing of $tcl_libPath at startup on +Windows (porter) + +2001-01-30 (bug fix) Fixed possible hangs in fcopy. (porter) + +2001-02-15 (performance enhancement) improved efficiency of [string split] +(fellows) + +2001-03-13 (bug fix) Correctly possible memory corruption in string map {} +$str (fellows) + +2001-03-29 (bug fix) prevent potential race condition and security leak in +tmp filename creation on Unix. (max) +Fixed handling of timeout for threads (corrects excessive CPU usage issue +for Tk on Unix in threaded Tcl environment). (ruppert) + +2001-03-30 (bug fix) corrected Windows memory error on exit (wu) +Fixed race condition in readability of socket on Windows. + +2001-04-03 (doc fixes) numerous doc corrections and clarifications. +Update of READMEs. + +2001-04-04 (build improvements) redid Mac build structure (steffen) +Corrected IRIX-5* configure (english). Added support for AIX-5 (hobbs). +Added support for Win64 (hobbs). + +--- Released 8.3.3, April 6, 2001 --- See ChangeLog for details --- + +2000-11-23 (new feature)[TIP 7] higher resolution timer on Windows (kenny) + +2001-01-18 (new feature) Tcl_InitHashTableEx renamed to Tcl_InitCustomHashTable +(kupries) + +2001-03-30 (new feature)[TIP 10] support for thread-aware/hot channels (kupries) + +2001-04-06 (new feature)[219280] auto-loading hidden in ::errorInfo (porter) + +2001-04-07 (bug fix)[406709] corrected panic when extra items left on the +byte compiler execution stack (sofer) + +2001-04-09 (bug fix)[219136,232558] improved use of thread-safe functions in +unix time commands (kenny) + +2001-04-24 (new feature)[TIP 27] started CONST-ification of the Tcl APIs (kenny) + +2001-05-03 (new feature) [auto_import] now matches patterns like +[namespace import], not like [string match] (porter) + **** POTENTIAL INCOMPATABILITY **** + +2001-05-07 (new feature)[416643] distinct srand() seed per interp (sofer) + +2001-05-15 (new feature) new Tcl_GetUnicodeFromObj API (hobbs) + +2001-05-16 (performance enhancement) byte-compiled versions of [lappend], +[append] simple cases (hobbs) + +2001-05-23 (new feature) added ISO-8859-15 and koi8-u encodings, updated other +encoding tables based on http://www.unicode.org/Public/MAPPINGS/ (kuhn) + +2001-05-27 (new feature) updated to Unicode 3.1.0 data set (still using 16 +bits for Tcl_UniChar though) (hobbs) + +2001-05-30 (new feature)[TIP 15] Tcl_GetMathFuncInfo, Tcl_ListMathFuncs, +Tcl_InfoObjCmd, InfoFunctionsCmd APIs (fellows) + +2001-06-08 (bug fix,feature enhancement)[219170,414936] all Tcl_Panic +definitions brought into agreement (porter) + +2001-06-12 (bug fix)[219232] regexp returned non-matching sub-pairs to have +index pair {-1 -1} (fellows) + +2001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII +characters. (hobbs, riefenstahl) + +2001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer) + +2001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings +(hobbs, barras) + +2001-07-12 (new feature)[TIP 36] Tcl_SubstObj API (fellows) + +2001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows +(hobbs, jsmith) + +2001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size +of a channel is changed after channel use has already begun (kupries, porter) + +2001-07-31 (new feature)[TIP 17] TclFS* APIs provide new virtual file +system. This includes the addition of 'file normalize', 'file system', +'file separator' and 'glob -tails' (darley) + +2001-08-06 (bug fix) removed use of tmpnam in TclpCreateTempFile on Unix (lim) + + * improved build support for IRIX, GNU HURD, Mac OS 9 and OS X + + * configure scripts revamped for better support of cygwin and gcc on + Windows (mdejong) + + * corrected several minor errors noted by Purify (hobbs) + +--- Released 8.4a3, August 6, 2001 --- See ChangeLog for details --- + +2001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII +characters. (hobbs, riefenstahl) + +2001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer) + +2001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings +(hobbs, barras) + +2001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows +(hobbs, jsmith) + +2001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size +of a channel is changed after channel use has already begun (kupries, porter) + +2001-08-06 (bug fix)[442665] corrected object reference counting in [gets] +(jikamens) + +2001-08-06 (new feature) added GNU (HURD) configuration target. (brinkmann) + +2001-08-07 (bug fix)[406709] corrected panic when extra items left on the +byte compiler execution stack (see test foreach-5.5) (sofer, tallneil, jstrot) + +2001-08-08 (new features) updated packages msgcat 1.1.1, opt 0.4.3, +tcltest 1.0.1, dependencies checked (porter) + +2001-08-20 (new feature)[452217] http 2.3.2: include port number in Host: header +to comply with HTTP/1.1 spec (RFC 2068) (hobbs, tils) + +2001-08-23 (new feature) added QNX-6 build support (loverso) + +2001-08-23 (bug fix) corrected handling of spaces in path name passed to +[exec] on Windows (kenpoole) + +2001-08-24 (bug fix) corrected [package forget] stopping on non-existent +package (porter) + +2001-08-24 (bug fix) corrected construction of script library search path +relative to executable (porter) + +2001-08-24 (bug fix) [auto_import] now matches patterns like +[namespace import], not like [string match] (porter) + **** POTENTIAL INCOMPATABILITY **** + +2001-08-27 (new feature) added Tcl_SetMainLoop() to enable loading Tk as a +true package (hobbs) + +2001-08-30 (bug fix) build support for Crays (andreasen) + +2001-09-01 (bug fix) rewrite of Tcl_Async* APIs to better manage thread +cleanup (gravereaux) + +2001-09-06 (new feature) http 2.4: honor the Content-encoding and charset +parameters; add -binary switch for forcing the issue (hobbs, saoukhi, orwell) +=> http 2.4 + +2001-09-06 (performance enhancement) rewrite of file I/O flush management on +Windows. Approximately 100x speedup for some operations. (kupries, traum) + +2001-09-10 (bug fix) corrected finalization error in TclInExit (darley) + +2001-09-10 (bug fix) protect against alias loops (hobbs) + +2001-09-12 (bug fix) added missing #include in tclLoadShl.c (techentin) + +2001-09-12 (bug fix) script library path construction on Windows no longer +uses registry, nor adds the current working directory to the path (porter) + +2001-09-12 (bug fix) correct bugs in compatibility strtod() (porter) + +2001-09-13 (bug fix) Tcl_UtfPrev now returns the proper location when the +middle of a UTF-8 byte is passed in (hobbs) + +2001-09-19 (bug fix) [format] and [scan] corrected for 64-bit machines (rmax) + +2001-09-19 (new feature) --enable-64-bit support for HP-11. (hobbs) + +2001-09-19 (new feature) native memory allocator now default on Windows +(hobbs) + +2001-09-20 (new feature) WIN64 support and extra processor definitions +(hobbs, mstacy) + +2001-09-26 (bug fix) corrected potential deadlock in channels that do not +provide a BlockModeProc (kupries, kogorman) + +2001-10-03 (new feature) WIN64 build support (hobbs) + +2001-10-03 (bug fix) correction in thread finalization (rbrunner) + +2001-10-04 (new feature) updated encodings with latest mappings from +www.unicode.org (hobbs) + +2001-10-11 (bug fix) corrected cleanup of self-referential bytecodes at +interpreter deletion (sofer, rbrunner) + +2001-10-16 (new feature) config support for MacOSX / Darwin (steffen) + +2001-10-16 (new feature, Mac) change in binary extension format from MachO +bundles to standard .dylib dynamic libraries like on other unices. + *** POTENTIAL INCOMPATIBILITY *** + +2001-10-18 (bug fix) corrected off-by-one-day error in clock scan with +relative months and years during swing hours. (lavana) + +--- Released 8.3.4, October 19, 2001 --- See ChangeLog for details --- + +2001-08-21 (bug fix)[219184] overagressive compilation of [catch] (sofer) + +2001-08-22 (new feature)[227482] [dde request -binary] (hobbs) +=> dde 1.2 + +2001-08-30 (performance enhancement)[456668] fully qualified command names use +cached Command for all namespaces, avoiding repeated lookups (sofer) + +2001-08-31 (performance enhancement) bytecompiled [list] (hobbs) + +2001-09-02 (bug fix)[403553] Add -Zl to VC++ compile line for tclStubLib to +avoid any specific C-runtime library dependence. (gravereaux) + +2001-09-05 (new feature) restored support for Borland compiler (gravereaux) + +2001-09-05 (new feature)[TIP 49] Tcl_OutputBuffered API (schroedter, fellows) + +2001-09-07 (new feature) restored VC++ 5.0 compatibility (gravereaux) + +2001-09-10 (performance enhancement)[TIP 53,451441] [proc foo args {}] now +compiles to 0 bytecodes (sofer) + +2001-09-13 (new feature)[TIP 56] Tcl_EvalTokensStandard API (sofer) + +2001-09-13 (new feature) Old ChangeLog entries => ChangeLog.1999 (hobbs) + +2001-09-17 (new feature) compiling with TCL_COMPILE_DEBUG now required to +enable all compile and execution tracing (sofer) + *** POTENTIAL INCOMPATIBILITY *** + +2001-09-19 (bug fix)[411825] made TclNeedSpace UTF-8 aware (fellows) + +2001-09-19 (bug fix)[219166] overagressive compilation of "quoted" bodies of +[for], [foreach], [if], and [while] (sofer) + +2001-09-19 (performance enhancement) bytecompiled [string match] (hobbs) + +2001-10-15 (new feature)[TIP 35] serial channel configuration: Win (schroedter) + +2001-11-06 (bug fix)[478856] loss of fileevents due to short reads (kupries) + +2001-11-06 (new feature) revitalized makefile.vc (gravereaux) + +2001-11-07 (new feature) Cygwin gcc support dropped. Use mingw (dejong) + *** POTENTIAL INCOMPATIBILITY *** + +2001-11-07 (new feature) Support --include-dir= and --libdir= options to +configure. Store in tclConfig.sh as TCL_INCLUDE_SPEC and TCL_LIB_SPEC. +(dejong) + *** POTENTIAL INCOMPATIBILITY *** + +2001-11-08 (new feature) Enable --enable-threads on FreeBSD (dejong) + +2001-11-08 (new feature) New make target 'make gdb' (dejong) + +2001-11-09 (bug fix)[480176] [global] mishandled varnames matching :* (porter) + +2001-11-12 (new feature)[TIP 22,33,45] new command [lset], +[lindex] extended to accept multiple indices. (kenny, hobbs) + +2001-11-16 (new feature) new configure option --enable-langinfo=no. +By default, nl_langinfo() is used on Unix to determine system encoding. +Tcl's built-in system is used only if that fails, or configured with +--enable-langinfo=no. (hobbs, wagner) + +2001-11-19 (new feature)[TIP 62] A Tcl_VarTraceProc can now return Tcl_Obj * +or a dynamic string as well as a static string to indicate an error (fellows) + +2001-11-19 (new feature)[TIP 73] Tcl_GetTime API (kenny) + +2001-11-19 (bug fix)[478847] overflows in [time] of >2**31 microseconds (kenny) + +2001-11-29 (performance enhancement) caching scheme added to [binary scan] +(fellows) + +2001-12-05 (new feature) new algorithm for [array get] adds safety when read +traces modify the array. (sofer) + *** POTENTIAL INCOMPATIBILITY *** + +2001-12-10 (bug fix)[490514] doc fixes (porter,english) + +2001-12-18 (new feature) removed unix/dltest/configure; unix/configure does +all (dejong) + +2001-12-19 (new feature) New make target 'make shell' (dejong) + +2001-12-21 (new feature) MaxOSX / Darwin support (steffen) + +2001-12-28 (new feature) new command [memory onexit] replaces [checkmem] when +compiled with TCL_MEM_DEBUG. Added documentation. (porter) + *** POTENTIAL INCOMPATIBILITY *** + +2001-12-28 (bug fix) proper case in [auto_execok] use of $env(COMPSPEC) (hobbs) + +2002-01-05 (feature rewrite) Tcl_Main() rewritten and documentation improved. +Interactive operation and event loop operation (via Tcl_SetMainLoop) now +interleave cleanly. Also more robust against strange happenings. (porter) + +2002-01-17 (bug fix)[504642] Tcl_Obj refCounts in [gets] (griffen,kupries) + +2002-01-21 (bug fix)[506297] infinite loop writing in iso2022-jap encoding +(forssen,kupries) + +2002-01-24 (HTTP server bug workaround)[504508] leave the default port out +of the Host: header value +=> http 2.4.1 (hobbs) + +2002-01-25 (new feature)[496733] socket options -eofchar and -translation +return read-only values (dejong) + +2002-01-28 (new feature) Old ChangeLog entries => ChangeLog.20900 (hobbs) + +2002-01-28 (performance enhancement) bytecompiled [regexp] for trivial cases +that amount to string matching. Also -nocase and --. (hobbs) + +2002-02-05 (bug fix) [http::error] called when [::error] intended +=> http 2.4.2 (porter) + +2002-02-05 (bug fix)[465765] avoid zero-byte writes to STREAMs +(talcott,kupries) + +2002-02-06 (performance enhancement) [regsub] special cases that map to +[string map] detected. (hobbs) + +2002-02-06 (bug fix)[495213] [scan] accept 0x as prefix of base 16 value +(hobbs) + +2002-02-10 (new feature)[TIP 32,79] Tcl_CreateObjTrace API (kenny) + +2002-02-12 (new feature) partial support for DJGPP Tcl on DOS (gravereaux) + +2002-02-14 (mem leak) Fixed leaking an empty Tcl_Obj when [gets $chan] +errored out. (kupries, sofer) + +2002-02-15 (new feature)[TIP 72] support for 64-bit integer values on +32-bit platforms and ability to work with >2GiB files. Extends many +commands. See ChangeLog and TIP for details. + *** POTENTIAL INCOMPATIBILITY *** + +2002-02-22 (bug fix)[476537] Fix panic when loading shared library without +proper use of stubs on platform without backlinking (porter) + +2002-02-22 (new feature) 64-bit support for xlc compiler on AIX-4 (hobbs) + +2002-02-22 (new feature)[521560] Removed limits on filename length and +format [source]able through the Safe Base (hobbs) + +2002-02-22 (performance enhancement) optimized bytecodes for [if], [for], +[while] and constant conditions (sofer) + +2002-02-22 (new feature)[TIP 76] [regsub] can now return result (fellows) + +2002-02-25 (bug fix)[495207] buffer overrun when closing ] left out of +argument to [subst] (sofer, english) + +2002-02-25 (bug fix)[514392] [load] updated for Mac OS X 10.1 (steffen) + +2002-02-26 (bug fix) [info hostname] choked on names >31 characters (hobbs) + +2002-02-26 (new feature)[TIP 35] serial channel configuration: Unix +(schroedter, hobbs) + +2002-02-25 (bug fix)[483575] [fconfigure ... -error] now no-op on Mac (kupries) + +2002-02-28 (performance enhancement)[458872] fully qualified command names use +cached Command for all namespaces, avoiding repeated lookups (sofer) + + * (new feature)[TIP 27] completed CONST-ification of TCL APIs. +Added compiler macro USE_NON_CONST to keep using those old API prototypes +that present irreconcilable source incompatibilities with header files +of prior Tcl releases. Others will need to be reconciled. + *** POTENTIAL INCOMPATIBILITY *** + +2002-03-04 (bug fix)[474358, 218099, 219314, 524674] fixed several problems +related to the handling of iso2022 text and finalization of escape-based +encodings. (taguchi, takahashi, hobbs) + +--- Released 8.4a4, March 5, 2002 --- See ChangeLog for details --- + +2002-03-06 (new feature)[TIP 80] expanded [lsearch] options (wilkason, fellows) + +2002-03-07 (new feature)[TIP 87] [interp recursionlimit] (trier) + +2002-03-08 (platform feature) mingw 1.1 build favored (dejong) + +2002-03-20 (new feature)[TIP 27] CONST-ified variable access functions (porter) + +2002-03-24 (bug fix)[511666,511658,523217,530960] expanded +Tcl_FSMatchInDirectory to handle assorted [glob] bugs in VFS. (darley) + *** POTENTIAL INCOMPATIBILITY with prior 8.4a releases *** + +2002-03-25 (bug fix)[495726] stopped tcltest disabling of auto-loading (porter) + +2002-03-25 (bug fix)[495977] allow \n in test constraints (porter) + +2002-03-27 (platform support)[527941,533862] VC/winhelp/W9X (spjuth, +gravereaux) + +2002-03-28 (bug fix)[219181] exception at level 0 issues (sofer) + +2002-03-28 (bug fix)[219362] command termination; Tcl_CreateTrace (knoll,sofer) + +2002-04-05 (bug fix)[536879] exceptions during variable subst (porter) + +2002-04-15 (bug fix)[497446,513983] tcltest syntax errors now raised (porter) + ***POTENTIAL INCOMPATIBILITY with prior tcltest 2.0.* (8.4aX)*** + +2002-04-17 (bug fix)[495660] [(save|restore)state] deprecated (porter) + +2002-04-17 (bug fix)[526524] escape-based encodings corrected (yamamoto, hobbs) + +2002-04-18 (bug fix)[542588] [expr] error msgs improved (ehrens, sofer) + +2002-04-18 (bug fix)[545325] [info level $level] now returns [namespace eval] +as documented (suchenwirth,sofer) + +2002-04-19 (bug fix)[544727] export [mcload]; ns context of [mcmax] (porter) +=> msgcat 1.2.3 + +2002-04-22 (performance enhancement) threaded memory allocator (AOL, hobbs) + +2002-04-24 (new feature) TCLTK_NO_LIBRARY_TEXT_RESOURCES #define disables +inclusion of tcl library code in resource fork on Mac. (steffen) + +2002-05-21 (platform support) static libs on OSF (dejong) + +2002-05-24 (bug fix)[557878] set encoding on listening socket (staplin, +kupries) + +2002-05-24 (new feature)[TIP 91] Tcl_Seek compatibility (fellows) + +2002-05-28 (bug fix)[545579] VFS [load] left temp file (darley) + +2002-05-28 (bug fix)[559376] plug timezone env leak on Windows (hobbs) + +2002-05-29 (performance enhancement) [string compare] optimized (hobbs,fellows) + +2002-05-31 (bug fix)[550534] plug interp leak in [pkg_mkIndex] (helmut) + +2002-05-31 (dead code)[474335,555635] removed all use of matherr() (english) + *** POTENTIAL INCOMPATIBILITY *** + +2002-06-04 (new feature)[TIP 85,521362] custom result match in tcltest +(markus, porter) +=> tcltest 2.1 + +2002-06-06 (bug fix)[524352] encoding, threading, and environment issues on +MacOSX (steffen) + +2002-06-06 (bug fix)[512214,558742,512214,461000] lazy initialization of +tcltest constraints (porter) + +2002-06-07 (bug fix)[563122,564595] EOVERFLOW definitions (fellows) + +2002-06-11 (bug fix)[567386] [info locals] corrections (sofer) + +2002-06-14 (new feature)[TIP 102] [trace list] renamed [trace info] (fellows) + +2002-06-17 (new feature)[525522,525525] msgcat support for XPG4 locales; +examination of LC_ALL, LC_MESSAGES environment variables (haible, porter) +=> msgcat 1.3 + +2002-06-17 (new feature)[565088] header files assume modern C compiler by +default; older compilers may need configuration (english) + *** POTENTIAL INCOMPATIBILITY *** + +2002-06-17 (bug fix)[554068] [exec] argument quoting on Windows (darley) + +2002-06-17 (new feature)[TIP 62,462580] command execution traces (lavana) + +2002-06-19 (bug fix)[558324] regexp sets a linked variable (watson) + + * (performance enhancment) optimizations of bytecode execution (sofer) + +2002-06-21 (new feature)[TIP 99,562970] new [file link] command (darley) + +2002-06-24 (new feature)[TIP 101] new [tcltest::configure] command (porter) +=> tcltest 2.2 + +2002-06-25 (new feature) --enable-man-symlinks and --enable-man-compression +options to configure (max) + +2002-06-26 (bug fix)[565880] [clock format] now respects locale (max) + *** POTENTIAL INCOMPATIBILITY *** + +2002-07-03 (bug fix)[577015] [catch] catches even compile errors (sofer) + +--- Released 8.4b1, July 5, 2002 --- See ChangeLog for details --- + +2002-07-08 (bug fix) restored compatibility of [viewFile] in tcltest (porter) + +2002-07-11 (bug fix) [file normalize] returns long form on Win 95/98/ME (darley) + +2002-07-15 (performance enhancment) variable operations rewritten to store + and use cached Var pointers (sofer) + +2002-07-22 (bug fix)[218000] Inf and Nan are floating-point values (fellows) + +2002-07-23 (platform support)[219220] 64-bit compile on IRIX (dejong) + +2002-07-25 (bug fix)[219218] return codes in background errors (english) + +2002-07-28 (bug fix)[582522] alias fires exec traces (sofer) + +2002-07-29 (bug fix)[578363] regexp (fellows,pvgoran) + +2002-07-30 (bug fix)[584603] WriteChars infinite loop non-UTF-8 string (kupries) + +2002-08-04 (new feature)[584051,580433,585105,582429][TIP 27] Tcl interfaces + are now fully CONST-ified. Use the symbols USE_NON_CONST or + USE_COMPAT_CONST to select interfaces with fewer changes. + *** POTENTIAL INCOMPATIBILITY *** + +2002-08-05 (bug fix)[589859] tcltest setup and cleanup scripts skipped when + test body is skipped (porter) + => tcltest 2.2 + +2002-08-07 (bug fix)[587488] mem leak with USE_THREAD_ALLOC (sofer,sass) + +2002-08-07 (feature enhancement)[584794,584650,472576] boolean values + are no longer always re-parsed from string. (sofer) + +Many internal bugs fixed. +Considerable cleanup of the test suite. + +--- Released 8.4b2, August 9, 2002 --- See ChangeLog for details --- + +2002-08-20 (new feature) --enable-memdebug configure option (kupries) + +2002-08-23 (bug fix)[597936] mem leak with USE_THREAD_ALLOC (sofer,zoran) + +2002-08-26 (bug fix)[599788] segfault in compiler (sofer,wilkason) + +2002-08-28 (bug fix)[414910] avoid mem leaks accessing environment variables + on Windows (welton,gravereaux) + +2002-08-31 (platform support)[TIP 108] Mac OS X port (steffen,ingham) + +2002-09-02 (platfrom support) 64-bit compile on HP-11 (martin) + +--- Released 8.4.0, September 10, 2002 --- See ChangeLog for details --- + +2002-09-18 (platform support) Updated support for compiling with Cygwin and +either mingw or gcc. (khan, howell, dejong) + +2002-09-22 (bug fix)[612786, 611922] Corrected [puts -nonewline] within +test bodies. Also corrected reporting of body return code. Updated tcltest +to v2.2.1. + +2002-09-24 (bug fix)[613117] More robust 64-bit wide integer value +detection (fellows) + +2002-09-26 (bug fix) correct overeager optimization of noop proc to handle +the precompiled case. (sofer, hobbs) + +2002-09-26 (bug fix)[615115] removed extraneous spaces in koi8-u.enc that +confused encoding reader. + +2002-09-29 (bug fix)[219355] Added proper exiting conditions using Win32 +console signals. This handles the existing lack of a Ctrl+C exit to call +exit handlers when built for thread support. Also, properly handles exits +from other conditions such as CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and +CTRL_SHUTDOWN_EVENT signals. In all cases, exit handlers will be called. +(gravereaux) + +2002-09-30 (bug fix) improve the checking for bad regular expressions +during regexp compilation. Resultant compiles were correct, but much +slower than necessary. (hobbs) + +2002-10-01 (bug fix) fix precompiled locals to support 8.3 precompiled +code. (hobbs) + +2002-10-09 (bug fix)[620735] Added code to set an exit handler on Windows +that terminates the thread that calibrates the performance counter, so that +the thread won't outlive unloading the Tcl DLL. (kenny) + +2002-10-09 (build support) all --enable-symbols to take the enhanced +options yes|no|mem|compile|all. (hobbs) + +2002-10-10 (build support) enable USE_THREAD_ALLOC (new threaded allocator) +by default on Windows. (hobbs, gravereaux) + +2002-10-14 (bug fix)[623269] correct possible mem leak in +Tcl_PutEnv. (brouwers) + +2002-10-15 (bug fix)[615043] fix in execution traces with idle tasks +firing. (lavana) + +2002-10-15 (platform support) Correct AIX-5 ppc and 4/5 64-bit build flags. +Correct HP 11 64-bit gcc building. (martin, hobbs) + +2002-10-17 (bug fix)[624755] Fixed code that check for proper # of args to +[array names] (porter) + +2002-10-18 (feature enhancement)[625453] Added support for broadcasting +changes to the registry Environment on Windows. Updated registry package +to v1.1. (hobbs) + +2002-10-22 (platform support)[624509] On macosx, add embedded framework +dirs to tcl_pkgPath: @executable_path/../Frameworks and +@executable_path/../PrivateFrameworks (if they exist), as well as the dirs +in DYLD_FRAMEWORK_PATH (if set). (steffen) + +--- Released 8.4.1, October 22, 2002 --- See ChangeLog for details ---