OSDN Git Service

daily update
[pf3gnuchains/pf3gnuchains3x.git] / tcl / changes
1 Recent user-visible changes to Tcl:
2
3 RCS: @(#) $Id$
4
5 1. No more [command1] [command2] construct for grouping multiple
6 commands on a single command line.
7
8 2. Semi-colon now available for grouping commands on a line.
9
10 3. For a command to span multiple lines, must now use backslash-return
11 at the end of each line but the last.
12
13 4. "Var" command has been changed to "set".
14
15 5. Double-quotes now available as an argument grouping character.
16
17 6. "Return" may be used at top-level.
18
19 7. More backslash sequences available now.  In particular, backslash-newline
20 may be used to join lines in command files.
21
22 8. New or modified built-in commands:  case, return, for, glob, info,
23 print, return, set, source, string, uplevel.
24
25 9. After an error, the variable "errorInfo" is filled with a stack
26 trace showing what was being executed when the error occurred.
27
28 10. Command abbreviations are accepted when parsing commands, but
29 are not recommended except for purely-interactive commands.
30
31 11. $, set, and expr all complain now if a non-existent variable is
32 referenced.
33
34 12. History facilities exist now.  See Tcl.man and Tcl_RecordAndEval.man.
35
36 13. Changed to distinguish between empty variables and those that don't
37 exist at all.  Interfaces to Tcl_GetVar and Tcl_ParseVar have changed
38 (NULL return value is now possible).  *** POTENTIAL INCOMPATIBILITY ***
39
40 14. Changed meaning of "level" argument to "uplevel" command (1 now means
41 "go up one level", not "go to level 1"; "#1" means "go to level 1").
42 *** POTENTIAL INCOMPATIBILITY ***
43
44 15. 3/19/90 Added "info exists" option to see if variable exists.
45
46 16. 3/19/90 Added "noAbbrev" variable to prohibit command abbreviations.
47
48 17. 3/19/90 Added extra errorInfo option to "error" command.
49
50 18. 3/21/90 Double-quotes now only affect space:  command, variable,
51 and backslash substitutions still occur inside double-quotes.
52 *** POTENTIAL INCOMPATIBILITY ***
53
54 19. 3/21/90 Added support for \r.
55
56 20. 3/21/90 List, concat, eval, and glob commands all expect at least
57 one argument now.  *** POTENTIAL INCOMPATIBILITY ***
58
59 21. 3/22/90 Added "?:" operators to expressions.
60
61 22. 3/25/90 Fixed bug in Tcl_Result that caused memory to get trashed.
62
63 ------------------- Released version 3.1 ---------------------
64
65 23. 3/29/90 Fixed bug that caused "file a.b/c ext" to return ".b/c".
66
67 24. 3/29/90 Semi-colon is not treated specially when enclosed in
68 double-quotes.
69
70 ------------------- Released version 3.2 ---------------------
71
72 25. 4/16/90 Rewrote "exec" not to use select or signals anymore.
73 Should be more Sys-V compatible, and no slower in the normal case.
74
75 26. 4/18/90 Rewrote "glob" to eliminate GNU code (there's no GNU code
76 left in Tcl, now), and added Tcl_TildeSubst procedure.  Added automatic
77 tilde-substitution in many commands, including "glob".
78
79 ------------------- Released version 3.3 ---------------------
80
81 27. 7/11/90 Added "Tcl_AppendResult" procedure.
82
83 28. 7/20/90 "History" with no options now defaults to "history info"
84 rather than to "history redo".  Although this is a backward incompatibility,
85 it should only be used interactively and thus shouldn't present any
86 compatibility problems with scripts.
87
88 29. 7/20/90 Added "Tcl_GetInteger", "Tcl_GetDouble", and "Tcl_GetBoolean"
89 procedures.
90
91 30. 7/22/90 Removed "Tcl_WatchInterp" procedure:  doesn't seem to be
92 necessary, since the same effect can be achieved with the deletion
93 callbacks on individual commands.  *** POTENTIAL INCOMPATIBILITY ***
94
95 31. 7/23/90 Added variable tracing:  Tcl_TraceVar, Tcl_UnTraceVar,
96 and Tcl_VarTraceInfo procedures, "trace" command.
97
98 32. 8/9/90 Mailed out list of all bug fixes since 3.3 release.
99
100 33. 8/29/90 Fixed bugs in Tcl_Merge relating to backslashes and
101 semi-colons.  Mailed out patch.
102
103 34. 9/3/90 Fixed bug in tclBasic.c: quotes weren't quoting ]'s.
104 Mailed out patch.
105
106 35. 9/19/90 Rewrote exec to always use files both for input and
107 output to the process.  The old pipe-based version didn't work if
108 the exec'ed process forked a child and then exited:  Tcl waited
109 around for stdout to get closed, which didn't happen until the
110 grandchild exited.
111
112 36. 11/5/90 ERR_IN_PROGRESS flag wasn't being cleared soon enough
113 in Tcl_Eval, allowing error messages from different commands to
114 pile up in $errorInfo.  Fixed by re-arranging code in Tcl_Eval that
115 re-initializes result and ERR_IN_PROGRESS flag.  Didn't mail out
116 patch:  changes too complicated to describe.
117
118 37. 12/19/90 Added Tcl_VarEval procedure as a convenience for
119 assembling and executing Tcl commands.
120
121 38. 1/29/91 Fixed core leak in Tcl_AddErrorInfo.  Also changed procedure
122 and Tcl_Eval so that first call to Tcl_AddErrorInfo need not come from
123 Tcl_Eval.
124
125 ----------------- Released version 5.0 with Tk ------------------
126
127 39. 4/3/91 Removed change bars from manual entries, leaving only those
128 that came after version 3.3 was released.
129
130 40. 5/17/91 Changed tests to conform to Mary Ann May-Pumphrey's approach.
131  
132 41. 5/23/91 Massive revision to Tcl parser to simplify the implementation
133 of string and floating-point support in expressions.  Newlines inside
134 [] are now treated as command separators rather than word separators
135 (this makes newline treatment consistent throughout Tcl).
136 *** POTENTIAL INCOMPATIBILITY ***
137
138 42. 5/23/91 Massive rewrite of expression code to support floating-point
139 values and simple string comparisons.  The C interfaces to expression
140 routines have changed (Tcl_Expr is replaced by Tcl_ExprLong, Tcl_ExprDouble,
141 etc.), but all old Tcl expression strings should be accepted by the new
142 expression code.
143 *** POTENTIAL INCOMPATIBILITY ***
144
145 43. 5/23/91 Modified tclHistory.c to check for negative "keep" value.
146
147 44. 5/23/91 Modified Tcl_Backslash to handle backslash-newline.  It now
148 returns 0 to indicate that a backslash sequence should be replaced by
149 no character at all.
150 *** POTENTIAL INCOMPATIBILITY ***
151
152 45. 5/29/91 Modified to use ANSI C function prototypes.  Must set
153 "USE_ANSI" switch when compiling to get prototypes.
154
155 46. 5/29/91 Completed test suite by providing tests for all of the
156 built-in Tcl commands.
157
158 47. 5/29/91 Changed Tcl_Concat to eliminate leading and trailing
159 white-space in each of the things it concatenates and to ignore
160 elements that are empty or have only white space in them.  This
161 produces cleaner output from the "concat" command.
162 *** POTENTIAL INCOMPATIBILITY ***
163
164 48. 5/31/91 Changed "set" command and Tcl_SetVar procedure to return
165 new value of variable.
166
167 49. 6/1/91 Added "while" and "cd" commands.
168
169 50. 6/1/91 Changed "exec" to delete the last character of program
170 output if it is a newline.  In most cases this makes it easier to
171 process program-generated output.
172 *** POTENTIAL INCOMPATIBILITY ***
173
174 51. 6/1/91 Made sure that pointers are never used after freeing them.
175
176 52. 6/1/91 Fixed bug in TclWordEnd where it wasn't dealing with
177 [] inside quotes correctly.
178
179 53. 6/8/91 Fixed exec.test to accept return values of either 1 or
180 255 from "false" command.
181
182 54. 7/6/91 Massive overhaul of variable management.  Associative
183 arrays now available, along with "unset" command (and Tcl_UnsetVar
184 procedure).  Variable traces have been completely reworked:
185 interfaces different both from Tcl and C, and multiple traces may
186 exist on same variable.  Can no longer redefine existing local
187 variable to be global.  Calling sequences have changed slightly
188 for Tcl_GetVar and Tcl_SetVar ("global" is now "flags"). Tcl_SetVar
189 can fail and return a NULL result.  New forms of variable-manipulation
190 procedures:  Tcl_GetVar2, Tcl_SetVar2, etc.  Syntax of variable
191 $-notation changed to support array indexing.
192 *** POTENTIAL INCOMPATIBILITY ***
193
194 55. 7/6/91 Added new list-manipulation procedures:  Tcl_ScanElement,
195 Tcl_ConvertElement, Tcl_AppendElement.
196
197 56. 7/12/91 Created new procedure Tcl_EvalFile, which does most of the
198 work of the "source" command.
199
200 57. 7/20/91 Major reworking of "exec" command to allow pipelines,
201 more redirection, background.  Added new procedures Tcl_Fork,
202 Tcl_WaitPids, Tcl_DetachPids, and Tcl_CreatePipeline.  The old
203 "< input" notation has been replaced by "<< input" ("<" is for
204 redirection from a file).  Also handles error returns and abnormal
205 terminations (e.g. signals) differently.
206 *** POTENTIAL INCOMPATIBILITY ***
207
208 58. 7/21/91 Added "append" and "lappend" commands.
209
210 59. 7/22/91 Reworked error messages and manual entries to use
211 ?x? as the notation for an optional argument x, instead of [x].  The
212 bracket notation was often confused with the use of brackets for
213 command substitution.  Also modified error messages to be more
214 consistent.
215
216 60. 7/23/91 Tcl_DeleteCommand now returns an indication of whether
217 or not the command actually existed, and the "rename" command uses
218 this information to return an error if an attempt is made to delete
219 a non-existent command.
220 *** POTENTIAL INCOMPATIBILITY ***
221
222 61. 7/25/91 Added new "errorCode" mechanism, along with procedures
223 Tcl_SetErrorCode, Tcl_UnixError, and Tcl_ResetResult.  Renamed
224 Tcl_Return to Tcl_SetResult, but left a #define for Tcl_Return to
225 avoid compatibility problems.
226
227 62. 7/26/91 Extended "case" command with alternate syntax where all
228 patterns and commands are together in a single list argument:  makes
229 it easier to write multi-line case statements.
230
231 63. 7/27/91 Changed "print" command to perform tilde-substitution on
232 the file name.
233
234 64. 7/27/91 Added "tolower", "toupper", "trim", "trimleft", and "trimright"
235 options to "string" command.
236
237 65. 7/29/91 Added "atime", "mtime", "size", and "stat" options to "file"
238 command.
239
240 66. 8/1/91 Added "split" and "join" commands.
241
242 67. 8/11/91 Added commands for file I/O, including "open", "close",
243 "read", "gets", "puts", "flush", "eof", "seek", and "tell".
244
245 68. 8/14/91 Switched to use a hash table for command lookups.  Command
246 abbreviations no longer have direct support in the Tcl interpreter, but
247 it should be possible to simulate them with the auto-load features
248 described below.  The "noAbbrev" variable is no longer used by Tcl.
249 *** POTENTIAL INCOMPATIBILITY ***
250
251 68.5 8/15/91 Added support for "unknown" command, which can be used to
252 complete abbreviations, auto-load library files, auto-exec shell
253 commands, etc.
254
255 69. 8/15/91 Added -nocomplain switch to "glob" command.
256
257 70. 8/20/91 Added "info library" option and TCL_LIBRARY #define.  Also
258 added "info script" option.
259
260 71. 8/20/91 Changed "file" command to take "option" argument as first
261 argument (before file name), for consistency with other Tcl commands.
262 *** POTENTIAL INCOMPATIBILITY ***
263
264 72. 8/20/91 Changed format of information in $errorInfo variable:
265 comments such as 
266     ("while" body line 1)
267 are now on separate lines from commands being executed.
268 *** POTENTIAL INCOMPATIBILITY ***
269
270 73. 8/20/91 Changed Tcl_AppendResult so that it (eventually) frees
271 large buffers that it allocates.
272
273 74. 8/21/91 Added "linsert", "lreplace", "lsearch", and "lsort"
274 commands.
275
276 75. 8/28/91 Added "incr" and "exit" commands.
277
278 76. 8/30/91 Added "regexp" and "regsub" commands.
279
280 77. 9/4/91 Changed "dynamic" field in interpreters to "freeProc" (procedure
281 address).  This allows for alternative storage managers.
282 *** POTENTIAL INCOMPATIBILITY ***
283
284 78. 9/6/91 Added "index", "length", and "range" options to "string"
285 command.  Added "lindex", "llength", and "lrange" commands.
286
287 79. 9/8/91 Removed "index", "length", "print" and "range" commands.
288 "Print" is redundant with "puts", but less general, and the other
289 commands are replaced with the new commands described in change 78
290 above.
291 *** POTENTIAL INCOMPATIBILITY ***
292
293 80. 9/8/91 Changed history revision to occur even when history command
294 is nested;  needed in order to allow "history" to be invoked from
295 "unknown" procedure.
296
297 81. 9/13/91 Changed "panic" not to use vfprintf (it's uglier and less
298 general now, but makes it easier to run Tcl on systems that don't
299 have vfprintf).  Also changed "strerror" not to redeclare sys_errlist.
300
301 82. 9/19/91 Lots of changes to improve portability to different UNIX
302 systems, including addition of "config" script to adapt Tcl to the
303 configuration of the system it's being compiled on.
304
305 83. 9/22/91 Added "pwd" command.
306
307 84. 9/22/91 Renamed manual pages so that their filenames are no more
308 than 14 characters in length, moved to "doc" subdirectory.
309
310 85. 9/24/91 Redid manual entries so they contain the supplemental
311 macros that they need;  can just print with "troff -man" or "man"
312 now.
313
314 86. 9/26/91 Created initial version of script library, including
315 a version of "unknown" that does auto-loading, auto-execution, and
316 abbreviation expansion.  This library is used by tclTest
317 automatically.  See the "library" manual entry for details.
318
319 ----------------- Released version 6.0, 9/26/91 ------------------
320
321 87. 9/30/91 Made "string tolower" and "string toupper" check case
322 before converting:  on some systems, "tolower" and "toupper" assume
323 that character already has particular case.
324
325 88. 9/30/91 Fixed bug in Tcl_SetResult:  wasn't always setting freeProc
326 correctly when called with NULL value.  This tended to cause memory
327 allocation errors later.
328
329 89. 10/3/91 Added "upvar" command.
330
331 90. 10/4/91 Changed "format" so that internally it converts %D to %ld,
332 %U to %lu, %O to %lo, and %F to %f.  This eliminates some compatibility
333 problems on some machines without affecting behavior.
334
335 91. 10/10/91 Fixed bug in "regsub" that caused core dumps with the -all
336 option when the last match wasn't at the end of the string.
337
338 92. 10/17/91 Fixed problems with backslash sequences:  \r support was
339 incomplete and \f and \v weren't supported at all.
340
341 93. 10/24/91 Added Tcl_InitHistory procedure.
342
343 94. 10/24/91 Changed "regexp" to store "-1 -1" in subMatchVars that
344 don't match, rather than returning an error.
345
346 95. 10/27/91 Modified "regexp" to return actual strings in matchVar
347 and subMatchVars instead of indices.  Added "-indices" switch to cause
348 indices to be returned.
349 *** POTENTIAL INCOMPATIBILITY ***
350
351 96. 10/27/91 Fixed bug in "scan" where it used hardwired constants for
352 sizes of floats and doubles instead of using "sizeof".
353
354 97. 10/31/91 Fixed bug in tclParse.c where parse-related error messages
355 weren't being storage-managed correctly, causing spurious free's.
356
357 98. 10/31/91 Form feed and vertical tab characters are now considered
358 to be space characters by the parser.
359
360 99. 10/31/91 Added TCL_LEAVE_ERR_MSG flag to procedures like Tcl_SetVar.
361
362 100. 11/7/91 Fixed bug in "case" where "in" argument couldn't be omitted
363 if all case branches were embedded in a single list.
364
365 101. 11/7/91 Switched to use "pid_t" and "uid_t" and other official
366 POSIC types and function prototypes.
367
368 ----------------- Released version 6.1, 11/7/91 ------------------
369
370 102. 12/2/91 Modified Tcl_ScanElement and Tcl_ConvertElement in several
371 ways.  First, allowed caller to request that only backslashes be used
372 (no braces).  Second, made Tcl_ConvertElement more aggressive in using
373 backslashes for braces and quotes.
374
375 103. 12/5/91 Added "type", "lstat", and "readlink" options to "file"
376 command, plus added new "type" element to output of "stat" and "lstat"
377 options.
378
379 104. 12/10/91 Manual entries had first lines that caused "man" program
380 to try weird preprocessor.  Added blank comment lines to fix problem.
381
382 105. 12/16/91 Fixed a few bugs in auto_mkindex proc:  wasn't handling
383 errors properly, and hadn't been upgraded for new "regexp" syntax.
384
385 106. 1/2/92 Fixed bug in "file" command where it didn't properly handle
386 a file names containing tildes where the indicated user doesn't exist.
387
388 107. 1/2/92 Fixed lots of cases in tclUnixStr.c where two different
389 errno symbols (e.g. EWOULDBLOCK and EAGAIN) have the same number;  Tcl
390 will only use one of them.
391
392 108. 1/2/92 Lots of changes to configuration script to handle many more
393 systems more gracefully.  E.g. should now detect the bogus strtoul that
394 comes with AIX and substitute Tcl's own version instead.
395
396 ----------------- Released version 6.2, 1/10/92 ------------------
397
398 109. 1/20/92 Config didn't have code to actually use "uid_t" variable
399 to set TCL_UIT_T #define.
400
401 110. 2/10/92 Tcl_Eval didn't properly reset "numLevels" variable when
402 too-deep recursion occurred.
403
404 111. 2/29/92 Added "on" and "off" to keywords accepted by Tcl_GetBoolean.
405
406 112. 3/19/92 Config wasn't installing default version of strtod.c for
407 systems that don't have one in libc.a.
408
409 113. 3/23/92 Fixed bug in tclExpr.c where numbers with leading "."s,
410 like 0.75, couldn't be properly substituted into expressions with
411 variable or command substitution.
412
413 114. 3/25/92 Fixed bug in tclUnixAZ.c where "gets" command wasn't
414 checking to make sure that it was able to write the variable OK.
415
416 115. 4/16/92 Fixed bug in tclUnixAZ.c where "read" command didn't
417 compute file size right for device files.
418
419 116. 4/23/92 Fixed but in tclCmdMZ.c where "trace vinfo" was overwriting
420 the trace command.
421
422 ----------------- Released version 6.3, 5/1/92 ------------------
423
424 117. 5/1/92 Added Tcl_GlobalEval.
425
426 118. 6/1/92 Changed auto-load facility to source files at global level.
427
428 119. 6/8/92 Tcl_ParseVar wasn't always setting termPtr after errors, which
429 sometimes caused core dumps.
430
431 120. 6/21/92 Fixed bug in initialization of regexp pattern cache.  This
432 bug caused segmentation violations in regexp commands under some conditions.
433
434 121. 6/22/92 Changed implementation of "glob" command to eliminate
435 trailing slashes on directory names:  they confuse some systems.  There
436 shouldn't be any user-visible changes in functionality except for names
437 in error messages not having trailing slashes.
438
439 122. 7/2/92 Fixed bug that caused 'string match ** ""' to return 0.
440
441 123. 7/2/92 Fixed bug in Tcl_CreateCmdBuf where it wasn't initializing
442 the buffer to an empty string.
443
444 124. 7/6/92 Fixed bug in "case" command where it used NULL pattern string
445 after errors in the "default" clause.
446
447 125. 7/25/92 Speeded up auto_load procedure:  don't reread all the index
448 files unless the path has changed.
449
450 126. 8/3/92 Changed tclUnix.h to define MAXPATHLEN from PATH_MAX, not
451 _POSIX_PATH_MAX.
452
453 ----------------- Released version 6.4, 8/7/92 ------------------
454
455 127. 8/10/92 Changed tclBasic.c so that comment lines can be continued by
456 putting a backslash before the newline.
457
458 128. 8/21/92 Modified "unknown" to allow the source-ing of a file for
459 an auto-load to trigger other nested auto-loads, as long as there isn't
460 any recursion on the same command name.
461
462 129. 8/25/92 Modified "format" command to allow " " and "+" flags, and
463 allow flags in any order.
464
465 130. 9/14/92 Modified Tcl_ParseVar so that it doesn't actually attempt
466 to look up the variable if "noEval" mode is in effect in the interpreter
467 (it just parses the name).  This avoids the errors that used to occur
468 in statements like "expr {[info exists foo] && $foo}".
469
470 131. 9/14/92 Fixed bug in "uplevel" command where it didn't output the
471 correct error message if a level was specified but no command.
472
473 132. 9/14/92 Renamed manual entries to have extensions like .3 and .n,
474 and added "install" target to Makefile.
475
476 133. 9/18/92 Modified "unknown" command to emulate !!, !<num>, and
477 ^<old>^<new> csh history substitutions.
478
479 134. 9/21/92 Made the config script cleverer about figuring out which
480 switches to pass to "nm".
481
482 135. 9/23/92 Fixed tclVar.c to be sure to copy flags when growing variables.
483 Used to forget about traces in progress and make extra recursive calls
484 on trace procs.
485
486 136. 9/28/92 Fixed bug in auto_reset where it was unsetting variables
487 that might not exist.
488
489 137. 10/7/92 Changed "parray" library procedure to print any array
490 accessible to caller, local or global.
491
492 138. 10/15/92 Fixed bug where propagation of new environment variable
493 values among interpreters took N! time if there exist N interpreters.
494
495 139. 10/16/92 Changed auto_reset procedure so that it also deletes any
496 existing procedures that are in the auto_load index (the assumption is
497 that they should be re-loaded to get the latest versions).
498
499 140. 10/21/92 Fixed bug that caused lists to be incorrectly generated
500 for elements that contained backslash-newline sequences.
501
502 141. 12/9/92 Added support for TCL_LIBRARY environment variable:  use
503 it as library location if it's present.
504
505 142. 12/9/92 Added "info complete" command, Tcl_CommandComplete procedure.
506
507 143. 12/16/92 Changed the Makefile to check to make sure "config" has been
508 run (can't run config directly from the Makefile because it modifies the
509 Makefile;  thus make has to be run again after running config).
510
511 ----------------- Released version 6.5, 12/17/92 ------------------
512
513 144. 12/21/92 Changed config to look in several places for libc file.
514
515 145. 12/23/92 Added "elseif" support to if.  Also, "then", "else", and
516 "elseif" may no longer be abbreviated.
517 *** POTENTIAL INCOMPATIBILITY ***
518
519 146. 12/28/92 Changed "puts" and "read" to support initial "-nonewline"
520 switch instead of additional "nonewline" argument.  The old form is
521 still supported, but it is discouraged and is no longer documented.
522 Also changed "puts" to make the file argument default to stdout: e.g.
523 "puts foo" will print foo on standard output.
524
525 147. 1/6/93 Fixed bug whereby backslash-newline wasn't working when
526 typed interactively, or in "info complete".
527
528 148. 1/22/93 Fixed bugs in "lreplace" and "linsert" where close
529 quotes were being lost from last element before replacement or
530 insertion.
531
532 149. 1/29/93 Fixed bug in Tcl_AssembleCmd where it wasn't requiring
533 a newline at the end of a line before considering a command to be
534 complete.  The bug caused some very long lines in script files to
535 be processed as multiple separate commands.
536
537 150. 1/29/93 Various changes in Makefile to add more configuration
538 options, simplify installation, fix bugs (e.g. don't use -f switch
539 for cp), etc.
540
541 151. 1/29/93 Changed "name1" and "name2" identifiers to "part1" and
542 "part2" to avoid name conflicts with stupid C++ implementations that
543 use "name1" and "name2" in a reserved way.
544
545 152. 2/1/93 Added "putenv" procedure to replace the standard system
546 version so that it will work correctly with Tcl's environment handling.
547
548 ----------------- Released version 6.6, 2/5/93 ------------------
549
550 153. 2/10/93 Fixed bugs in config script:  missing "endif" in libc loop,
551 and tried to use strncasecmp.c instead of strcasecmp.c.
552
553 154. 2/10/93 Makefile improvements:  added RANLIB variable for easier
554 Sys-V configuration, added SHELL variable for SGI systems.
555
556 ----------------- Released version 6.7, 2/11/93 ------------------
557
558 153. 2/6/93 Changes in backslash processing:
559     - \Cx, \Mx, \CMx, \e sequences no longer special
560     - \<newline> also eats up any space after the newline, replacing
561       the whole sequence with a single space character
562     - Hex sequences like \x24 are now supported, along with ANSI C's \a.
563     - "format" no longer does backslash processing on its format string
564     - there is no longer any special meaning to a 0 return value from
565       Tcl_Backslash
566     - unknown backslash sequences, like (e.g. \*), are replaced with
567       the following character (e.g. *), instead of just treating the
568       backslash as an ordinary character.
569 *** POTENTIAL INCOMPATIBILITY ***
570
571 154. 2/6/93 Updated all copyright notices.  The meaning hasn't changed
572 at all but the wording does a better job of protecting U.C. from
573 liability (according to U.C. lawyers, anyway).
574
575 155. 2/6/93 Changed "regsub" so that it overwrites the result variable
576 in all cases, even if there is no match.
577 *** POTENTIAL INCOMPATIBILITY ***
578
579 156. 2/8/93 Added support for XPG3 %n$ conversion specifiers to "format"
580 command.
581
582 157. 2/17/93 Fixed bug in Tcl_Eval where errors due to infinite
583 recursion could result in core dumps.
584
585 158. 2/17/93 Improved the auto-load mechanism to deal gracefully (i.e.
586 return an error) with a situation where a library file that supposedly
587 defines a procedure doesn't actually define it.
588
589 159. 2/17/93 Renamed Tcl_UnixError procedure to Tcl_PosixError, and
590 changed errorCode variable usage to use POSIX as keyword instead of
591 UNIX.
592 *** POTENTIAL INCOMPATIBILITY ***
593
594 160. 2/19/93 Changes to exec and process control:
595     - Added support for >>, >&, >>&, |&, <@, >@, and >&@ forms of redirection.
596     - When exec puts processes into background, it returns a list of
597       their pids as result.
598     - Added support for <file, >file, etc. (i.e. no space between
599       ">" and file name.
600     - Added -keepnewline option.
601     - Deleted Tcl_Fork and Tcl_WaitPids procedures (just use fork and
602       waitpid instead).
603     - Added waitpid compatibility procedure for systems that don't have
604       it.
605     - Added Tcl_ReapDetachedProcs procedure.
606     - Changed "exec" to return an error if there is stderr output, even
607       if the command returns a 0 exit status (it's always been documented
608       this way, but the implementation wasn't correct).
609     - If a process returns a non-zero exit status but doesn't generate
610       any diagnostic output, then Tcl generates an error message for it.
611 *** POTENTIAL INCOMPATIBILITY ***
612
613 161. 2/25/93 Fixed two memory-management problems having to do with
614 managing the old result during variable trace callbacks.
615
616 162. 3/1/93 Added dynamic string library:  Tcl_DStringInit, Tcl_DStringAppend,
617 Tcl_DStringFree, Tcl_DStringResult, etc.
618
619 163. 3/1/93 Modified glob command to only return the names of files that
620 exist, and to only return names ending in "/" if the file is a directory.
621 *** POTENTIAL INCOMPATIBILITY ***
622
623 164. 3/19/93 Modified not to use system calls like "read" directly,
624 but instead to use special Tcl procedures that retry automatically
625 if interrupted by signals.
626
627 165. 4/3/93 Eliminated "noSep" argument to Tcl_AppendElement, plus
628 TCL_NO_SPACE flag for Tcl_SetVar and Tcl_SetVar2.
629 *** POTENTIAL INCOMPATIBILITY ***
630
631 166. 4/3/93 Eliminated "flags" and "termPtr" arguments to Tcl_Eval.
632 *** POTENTIAL INCOMPATIBILITY ***
633
634 167. 4/3/93 Changes to expressions:
635     - The "expr" command now accepts multiple arguments, which are
636       concatenated together with space separators.
637     - Integers aren't automatically promoted to floating-point if they
638       overflow the word size:  errors are generated instead.
639     - Tcl can now handle "NaN" and other special values if the underlying
640       library procedures handle them.
641     - When printing floating-point numbers, Tcl ensures that there is a "."
642       or "e" in the number, so it can't be treated as an integer accidentally.
643       The procedure Tcl_PrintDouble is available to provide this function
644       in other contexts.  Also, the variable "tcl_precision" can be used
645       to set the precision for printing (must be a decimal number giving
646       digits of precision).
647     - Expressions now support transcendental and other functions, e.g. sin,
648       acos, hypot, ceil, and round.  Can add new math functions with
649       Tcl_CreateMathFunc().
650     - Boolean expressions can now have any of the string values accepted
651       by Tcl_GetBoolean, such as "yes" or "no".
652 *** POTENTIAL INCOMPATIBILITY ***
653
654 168. 4/5/93 Changed Tcl_UnsetVar and Tcl_UnsetVar2 to return TCL_OK
655 or TCL_ERROR instead of 0 or -1.
656 *** POTENTIAL INCOMPATIBILITY ***
657
658 169. 4/5/93 Eliminated Tcl_CmdBuf structure and associated procedures;
659 can use Tcl_DStrings instead.
660 *** POTENTIAL INCOMPATIBILITY ***
661
662 170. 4/8/93 Changed interface to Tcl_TildeSubst to use a dynamic
663 string for buffer space.  This makes the procedure re-entrant and
664 thread-safe, whereas it wasn't before.
665 *** POTENTIAL INCOMPATIBILITY ***
666
667 171. 4/14/93 Eliminated tclHash.h, and moved everything from it to
668 tcl.h
669 *** POTENTIAL INCOMPATIBILITY ***
670
671 172. 4/15/93 Eliminated Tcl_InitHistory, made "history" command always
672 be part of interpreter.
673 *** POTENTIAL INCOMPATIBILITY ***
674
675 173. 4/16/93 Modified "file" command so that "readable" option always
676 exists, even on machines that don't support symbolic links (always returns
677 same error as if the file wasn't a symbolic link).
678
679 174. 4/26/93 Fixed bugs in "regsub" where ^ patterns didn't get handled
680 right (pretended not to match when it really did, and looped infinitely
681 if -all was specified).
682
683 175. 4/29/93 Various improvements in the handling of variables:
684     - Can create variables and array elements during a read trace.
685     - Can delete variables during traces (note: unset traces will be
686       invoked when this happens).
687     - Can upvar to array elements.
688     - Can retarget an upvar to another variable by re-issuing the
689       upvar command with a different "other" variable.
690
691 176. 5/3/93 Added Tcl_GetCommandInfo, which returns info about a Tcl
692 command such as whether it exists and its ClientData.  Also added
693 Tcl_SetCommandInfo, which allows any of this information to be modified
694 and also allows a command's delete procedure to have a different
695 ClientData value than its command procedure.
696
697 177. 5/5/93 Added Tcl_RegExpMatch procedure.
698
699 178. 5/6/93 Fixed bug in "scan" where it didn't properly handle
700 %% conversion specifiers.  Also changed "scan" to use Tcl_PrintDouble
701 for printing real values.
702
703 179. 5/7/93 Added "-exact", "-glob", and "-regexp" options to "lsearch"
704 command to allow different kinds of pattern matching.
705
706 180. 5/7/93 Added many new switches to "lsort" to control the sorting
707 process: "-ascii", "-integer", "-real", "-command", "-increasing",
708 and "-decreasing".
709
710 181. 5/10/93 Changes to file I/O:
711     - Modified "open" command to support a list of POSIX access flags
712       like {WRONLY CREAT TRUNC} in addition to current fopen-style
713       access modes.  Also added "permissions" argument to set permissions
714       of newly-created files.
715     - Fixed Scott Bolte's bug (can close stdin etc. in application and
716       then re-open them with Tcl commands).
717     - Exported access to Tcl's file table with new procedures Tcl_EnterFile
718       and Tcl_GetOpenFile.
719
720 182. 5/15/93 Added new "pid" command, which can be used to retrieve
721 either the current process id or a list of the process ids in a
722 pipeline opened with "open |..."
723
724 183. 6/3/93 Changed to use GNU autoconfig for configuration instead of
725 the home-brew "config" script.  Also made many other configuration-related
726 changes, such as using <unistd.h> instead of explicitly declaring system
727 calls in tclUnix.h.
728
729 184. 6/4/93 Fixed bug where core-dumps could occur if a procedure
730 redefined itself (the memory for the procedure's body could get
731 reallocated in the middle of evaluating the body);  implemented
732 simple reference count mechanism.
733
734 185. 6/5/93 Changed tclIndex file format in two ways:  (a) it's now
735 eval-ed instead of parsed, which makes it 3-4x faster; (b) the entries
736 in auto_index are now commands to evaluate, which allows commands to
737 be loaded in different ways such as dynamic-loading of C code.  The
738 old tclIndex file format is still supported.
739
740 186. 6/7/93 Eliminated tclTest program, added new "tclsh" program
741 that is more like wish (allows script files to be invoked automatically
742 using "#!/usr/local/bin/tclsh", makes arguments available to script,
743 etc.).  Added support for Tcl_AppInit plus default version;  this
744 allows new Tcl applications to be created without modifying the
745 main program for tclsh.
746
747 187. 6/7/93 Fixed bug in TclWordEnd that kept backslash-newline from
748 working correctly in some cases during interactive input.
749
750 188. 6/9/93 Added Tcl_LinkVar and related procedures, which automatically
751 keep a Tcl variable in sync with a C variable.
752
753 189. 6/16/93 Increased maximum nesting depth from 100 to 1000.
754
755 190. 6/16/93 Modified "trace var" command so that error messages from
756 within traces are returned properly as the result of the variable
757 access, instead of the generic "access disallowed by trace command"
758 message.
759
760 191. 6/16/93 Added Tcl_CallWhenDeleted to provide callbacks when an
761 interpreter is deleted (same functionality as Tcl_WatchInterp, which
762 used to exist in versions before 6.0).
763
764 193. 6/16/93 Added "-code" argument to "return" command;  it's there
765 primarily for completeness, so that procedures implementing control
766 constructs can reflect exceptional conditions back to their callers.
767
768 194. 6/16/93 Split up Tcl.n to make separate manual entries for each
769 Tcl command.  Tcl.n now contains a summary of the language syntax.
770
771 195. 6/17/93 Added new "switch" command to replace "case": allows
772 alternate forms of pattern matching (exact, glob, regexp), replaces
773 pattern lists with single patterns (but you can use "-" bodies to
774 share one body among several patterns), eliminates "in" noise word.
775 "Case" command is now obsolete.
776
777 196. 6/17/93 Changed the "exec", "glob", "regexp", and "regsub" commands
778 to include a "--" switch.  All initial arguments starting with "-" are now
779 treated as switches unless a "--" switch is present to end the list.
780 *** POTENTIAL INCOMPATIBILITY ***
781
782 197. 6/17/93 Changed auto-exec so that the subprocess gets stdin, stdout,
783 and stderr from the parent.  This allows truly interactive sub-processes
784 (e.g. vi) to be auto-exec'ed from a tcl shell command line.
785
786 198. 6/18/93 Added patchlevel.h, for use in coordinating future patch
787 releases, and also added "info patchlevel" command to make the patch
788 level available to Tcl scripts.
789
790 199. 6/19/93 Modified "glob" command so that a leading "//" in a name
791 gets left as is (this is needed for systems like Apollos where "//" is
792 the super-root;  Tcl used to collapse the two slashes into a single
793 slash).
794
795 200. 7/7/93 Added Tcl_SetRecursionLimit procedure so that the maximum
796 allowable nesting depth can be controlled for an interpreter from C.
797
798 ----------------- Released version 7.0 Beta 1, 7/9/93 ------------------
799
800 201. 7/12/93 Modified Tcl_GetInt and tclExpr.c so that full-precision
801 unsigned integers can be specified without overflow errors.
802
803 202. 7/12/93 Configuration changes:  eliminate leading blank line in
804 configure script;  provide separate targets in Makefile for installing
805 binary and non-binary information; check for size_t and a few other
806 potentially missing typedefs; don't put tclAppInit.o into libtcl.a;
807 better checks for matherr support.
808
809 203. 7/14/93 Changed tclExpr.c to check the termination pointer before
810 errno after strtod calls, to avoid problems with some versions of
811 strtod that set errno in unexpected ways.
812
813 204. 7/16/93 Changed "scan" command to be more ANSI-conformant:
814 eliminated %F, %D, etc., added code to ignore "l", "h", and "L"
815 modifiers but always convert %e, %f, and %g with implicit "l";
816 also added support for %u and %i.  Also changed "format" command
817 to eliminate %D, %U, %O, and add %i.
818 *** POTENTIAL INCOMPATIBILITY ***
819
820 205. 7/17/93 Changed "uplevel" and "upvar" so that they can be used
821 from global level to global level:  this used to generate an error.
822
823 206. 7/19/93 Renamed "setenv", "putenv", and "unsetenv" procedures
824 to avoid conflicts with system procedures with the same names.  If
825 you want Tcl's procedures to override the system procedures, do it
826 in the Makefile (instructions are in the Makefile).
827 *** POTENTIAL INCOMPATIBILITY ***
828
829 ----------------- Released version 7.0 Beta 2, 7/21/93 ------------------
830
831 207. 7/21/93 Fixed bug in tclVar.c where freed memory was accidentally
832 used if a procedure returned an element of a local array.
833
834 208. 7/22/93 Fixed bug in "unknown" where it didn't properly handle
835 errors occurring in the "auto_load" procedure, leaving its state
836 inconsistent.
837
838 209. 7/23/93 Changed exec's ">2" redirection operator to "2>" for
839 consistency with sh.  This is incompatible with earlier beta releases
840 of 7.0 but not with pre-7.0 releases, which didn't support either
841 operator.
842
843 210. 7/28/93 Changed backslash-newline handling so that the resulting
844 space character *is* treated as a word separator unless the backslash
845 sequence is in quotes or braces.  This is incompatible with 7.0b1
846 and 7.0b2 but is more compatible with pre-7.0 versions that the b1
847 and b2 releases were.
848
849 211. 7/28/93 Eliminated Tcl_LinkedVarWritable, added TCL_LINK_READ_ONLY to
850 Tcl_LinkVar to accomplish same purpose.  This change is incompatible
851 with earlier beta releases, but not with releases before Tcl 7.0.
852
853 212. 7/29/93 Renamed regexp C functions so they won't clash with POSIX
854 regexp functions that use the same name.
855
856 213. 8/3/93 Added "-errorinfo" and "-errorcode" options to "return"
857 command: these allow for much better handling of the errorInfo
858 and errorCode variables in some cases.
859
860 214. 8/12/93 Changed "expr" so that % always returns a remainder with
861 the same sign as the divisor and absolute value smaller than the
862 divisor.
863
864 215. 8/14/93 Turned off auto-exec in "unknown" unless the command
865 was typed interactively.  This means you must use "exec" when
866 invoking subprocesses, unless it's a command that's typed interactively.
867 *** POTENTIAL INCOMPATIBILITY ***
868
869 216. 8/14/93 Added support for tcl_prompt1 and tcl_prompt2 variables
870 to tclMain.c:  makes prompts user-settable.
871
872 217. 8/14/93 Added asynchronous handlers (Tcl_AsyncCreate etc.) so
873 that signals can be taken cleanly by Tcl applications.
874
875 218. 8/16/93 Moved information about open files from the interpreter
876 structure to global variables so that a file can be opened in one
877 interpreter and read or written in another.
878
879 219. 8/16/93 Removed ENV_FLAGS from Makefile, so that there's no
880 official support for overriding setenv, unsetenv, and putenv.
881
882 220. 8/20/93 Various configuration improvements:  coerce chars
883 to unsigned chars before using macros like isspace;  source ~/.tclshrc
884 file during initialization if it exists and program is running
885 interactively;  allow there to be directories in auto_path that don't
886 exist or don't have tclIndex files (ignore them); added Tcl_Init
887 procedure and changed Tcl_AppInit to call it.
888
889 221. 8/21/93 Fixed bug in expr where "+", "-", and " " were all
890 getting treated as integers with value 0.
891
892 222. 8/26/93 Added "tcl_interactive" variable to tclsh.
893
894 223. 8/27/93 Added procedure Tcl_FilePermissions to return whether a
895 given file can be read or written or both.  Modified Tcl_EnterFile
896 to take a permissions mask rather than separate read and write arguments.
897
898 224. 8/28/93 Fixed performance bug in "glob" command (unnecessary call
899 to "access" for each file caused a 5-10x slow-down for big directories).
900
901 ----------------- Released version 7.0 Beta 3, 8/28/93 ------------------
902
903 225. 9/9/93 Renamed regexp.h to tclRegexp.h to avoid conflicts with system
904 include file by same name.
905
906 226. 9/9/93 Added Tcl_DontCallWhenDeleted.
907
908 227. 9/16/93 Changed not to call exit C procedure directly;  instead
909 always invoke "exit" Tcl command so that application can redefine the
910 command to do additional cleanup.
911
912 228. 9/17/93 Changed auto-exec to handle names that contain slashes
913 (i.e. don't use PATH for them).
914
915 229. 9/23/93 Fixed bug in "read" and "gets" commands where they didn't
916 clear EOF conditions.
917
918 ----------------- Released version 7.0, 9/29/93 ------------------
919
920 230. 10/7/93 "Scan" command wasn't properly aligning things in memory,
921 so segmentation faults could arise under some circumstances.
922
923 231. 10/7/93 Fixed bug in Tcl_ConvertElement where it forgot to
924 backslash leading curly brace when creating lists.
925
926 232. 10/7/93 Eliminated dependency of tclMain.c on tclInt.h and
927 tclUnix.h, so that people can copy the file out of the Tcl source
928 directory to make modified private versions.
929
930 233. 10/8/93 Fixed bug in auto-loader that reversed the priority order
931 of entries in auto_path for new-style index files.  Now things are
932 back to the way they were before 3.0:  first in auto_path is always
933 highest priority.
934
935 234. 10/13/93 Fixed bug where Tcl_CommandComplete didn't recognize
936 comments and treat them as such.  Thus if you typed the line
937     # {
938 interactively, Tcl would think that the command wasn't complete and
939 wait for more input before evaluating the script.
940
941 235. 10/14/93 Fixed bug where "regsub" didn't set the output variable
942 if the input string was empty.
943
944 236. 10/23/93 Fixed bug where Tcl_CreatePipeline didn't close off enough
945 file descriptors in child processes, causing children not to exit
946 properly in some cases.
947
948 237. 10/28/93 Changed "list" and "concat" commands not to generate
949 errors if given zero arguments, but instead to just return an empty
950 string.
951
952 ----------------- Released version 7.1, 11/4/93 ------------------
953
954 Note: there is no 7.2 release.  It was flawed and was thus withdrawn
955 shortly after it was released.
956
957 238. 11/10/93 TclMain.c didn't compile on some systems because of
958 R_OK in call to "access".  Changed to eliminate call to "access".
959
960 ----------------- Released version 7.3, 11/26/93 ------------------
961
962 239. 11/6/93 Modified "lindex", "linsert", "lrange", and "lreplace"
963 so that "end" can be specified as an index.
964
965 240. 11/6/93 Modified "append" and "lappend" to allow only two
966 words total (i.e., nothing to append) without generating an error.
967
968 241. 12/2/93 Changed to use EAGAIN as the errno for non-blocking
969 I/O instead of EWOULDBLOCK:  this should fix problem where non-blocking
970 I/O didn't work correctly on System-V systems.
971
972 242. 12/22/93 Fixed bug in expressions where cancelled evaluation
973 wasn't always working correctly (e.g. "set one 1; eval {1 || 1/$one}"
974 failed with a divide by zero error).
975
976 243. 1/6/94 Changed TCL_VOLATILE definition from -1 to the address of
977 a dummy procedure Tcl_Volatile, since -1 causes portability problems on
978 some machines (e.g., Crays).
979
980 244. 2/4/94 Added support for unary plus.
981
982 245. 2/17/94 Changed Tcl_RecordAndEval and "history" command to
983 call Tcl_GlobalEval instead of Tcl_Eval.  Otherwise, invocation of
984 these facilities in nested procedures can cause unwanted results.
985
986 246. 2/17/94 Fixed bug in tclExpr.c where an expression such as
987 "expr {"12398712938788234-1298379" != ""}" triggers an integer
988 overflow error for the number in quotes, even though it isn't really
989 a proper integer anyway.
990
991 247. 2/19/94 Added new procedure Tcl_DStringGetResult to move result
992 from interpreter to a dynamic string.
993
994 248. 2/19/94 Fixed bug in Tcl_DStringResult that caused it to overwrite
995 the contents of a static result in some situations.  This can cause
996 bizarre errors such as variables suddenly having empty values.
997
998 249. 2/21/94 Fixed bug in Tcl_AppendElement, Tcl_DStringAppendElement,
999 and the "lappend" command that caused improper omission of a separator
1000 space in some cases.  For example, the script
1001     set x "abc{"; lappend x "def"
1002 used to return the result "abc{def" instead of "abc{ def".
1003
1004 250. 3/3/94 Tcl_ConvertElement was outputting empty elements as \0 if
1005 TCL_DONT_USE_BRACES was set.  This depends on old pre-7.0 meaning of
1006 \0, which is no longer in effect, so it didn't really work.  Changed
1007 to output empty elements as {} always.
1008
1009 251. 3/3/94 Renamed Tcl_DStringTrunc to Tcl_DStringSetLength and extended
1010 it so that it can be used to lengthen a string as well as shorten it.
1011 Tcl_DStringTrunc is defined as a macro for backward compatibility, but
1012 it is deprecated.
1013
1014 252. 3/3/94 Added Tcl_AllowExceptions procedure.
1015
1016 253. 3/13/94 Fixed bug in Tcl_FormatCmd that could cause "format"
1017 to mis-behave on 64-bit Big-Endian machines.
1018
1019 254. 3/13/94 Changed to use vfork instead of fork on systems where
1020 vfork exists.
1021
1022 255. 3/23/94 Fixed bug in expressions where ?: didn't associate
1023 right-to-left as they should.
1024
1025 256. 4/3/94 Fixed "exec" to flush any files used in >@ or >&@
1026 redirection in exec, so that data buffered for them is written
1027 before any new data added by the subprocess.
1028
1029 257. 4/3/94 Added "subst" command.
1030
1031 258. 5/20/94 The tclsh main program is now called Tcl_Main;  tclAppInit.c
1032 has a "main" procedure that calls Tcl_Main.  This makes it easier to use
1033 Tcl with C++ programs, which need their own main programs, and it also
1034 allows an application to prefilter the argument list before calling
1035 Tcl_Main.
1036 *** POTENTIAL INCOMPATIBILITY ***
1037
1038 259. 6/6/94 Fixed bug in procedure returns where the errorInfo variable
1039 could get truncated if an unset trace was invoked as part of returning
1040 from the procedure.
1041
1042 260. 6/13/94 Added "wordstart" and "wordend" options to "string" command.
1043
1044 261. 6/27/94 Fixed bug in expressions where they didn't properly cancel
1045 the evaluation of math functions in &&, ||, and ?:.
1046
1047 262. 7/11/94 Incorrect boolean values, like "ogle", weren't being
1048 handled properly.
1049
1050 263. 7/15/94 Added Tcl_RegExpCompile, Tcl_RegExpExec, and Tcl_RegExpRange,
1051 which provide lower-level access to regular expression pattern matching.
1052
1053 264. 7/22/94 Fixed bug in "glob" command where "glob -nocomplain ~bad_user"
1054 would complain about a missing user.  Now it doesn't complain anymore.
1055
1056 265. 8/4/94 Fixed bug with linked variables where they didn't behave
1057 correctly when accessed via upvars.
1058
1059 266. 8/17/94 Fixed bug in Tcl_EvalFile where it didn't clear interp->result.
1060
1061 267. 8/31/94 Modified "open" command so that errors in exec-ing
1062 subprocesses are returned by the open immediately, rather than
1063 being delayed until the "close" is executed.
1064
1065 268. 9/9/94 Modified "expr" command to generate errors for integer
1066 overflow (includes addition, subtraction, negation, multiplication,
1067 division).
1068
1069 269. 9/23/94 Modified "regsub" to return a count of the number of
1070 matches and replacements, rather than 0/1.
1071
1072 279. 10/4/94 Added new features to "array" command:
1073     - added "get" and "set" commands for easy conversion between arrays
1074       and lists.
1075     - added "exists" command to see if a variable is an array, changed
1076       "names" and "size" commands to treat a non-existent array (or scalar
1077       variable) just like an empty one.
1078     - added pattern option to "names" command.
1079
1080 280. 10/6/94 Modified Tcl_SetVar2 so that read traces on variables get
1081 called during append operations.
1082
1083 281. 10/20/94 Fixed bug in "read" command where reading from stdin
1084 required two control-D's to stop the reading.
1085
1086 282. 11/3/94 Changed "expr" command to use longs for division just like
1087 all other expr operators;  it previously used ints for division.
1088
1089 283. 11/4/94 Fixed bugs in "unknown" procedure:  it wasn't properly
1090 handling exception returns from commands that were executed after
1091 being auto-loaded.
1092
1093 ----------------- Released version 7.4b1, 12/23/94 ------------------
1094
1095 284. 12/26/94 Fixed "install" target in Makefile (couldn't always
1096 find install program).
1097
1098 285. 12/26/94 Added strcncasecmp procedure to compat directory.
1099
1100 286. 1/3/95 Fixed all procedure calls to explicitly cast arguments:
1101 implicit conversions from prototypes (especially integer->double)
1102 don't work when compiling under non-ANSI compilers.  Tcl is now clean
1103 under gcc -Wconversion.
1104
1105 287. 1/4/95 Fixed problem in Tcl_ArrayCmd where same name was used for
1106 both a label and a variable;  caused problems on several older compilers,
1107 making array command misbehave and causing many errors in Tcl test suite.
1108
1109 ----------------- Released version 7.4b2, 1/12/95 ------------------
1110
1111 288. 2/9/95 Modified Tcl_CreateCommand to return a token, and added
1112 Tcl_GetCommandName procedure.  Together, these procedures make it possible
1113 to track renames of a command.
1114
1115 289. 2/13/95 Fixed bug in expr where "089" was interpreted as a
1116 floating-point number rather than a bogus octal number.
1117 *** POTENTIAL INCOMPATIBILITY ***
1118
1119 290. 2/14/95 Added code to Tcl_GetInt and Tcl_GetDouble to check for
1120 overflows when reading in numbers.
1121
1122 291. 2/18/95 Changed "array set" to stop after first error, rather than
1123 continuing after error.
1124
1125 292. 2/20/95 Upgraded to use autoconf version 2.2.
1126
1127 293. 2/20/95 Fixed core dump that could occur in "scan" command if a
1128 close bracket was omitted.
1129
1130 294. 2/27/95 Changed Makefile to always use install-sh for installations:
1131 there's just too much variation among "install" system programs, which
1132 makes installation flakey.
1133
1134 ----------------- Released version 7.4b3, 3/24/95 ------------------
1135
1136 3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that
1137 "make install" will work even when "." isn't in the search path.
1138
1139 3/29/95 (bug fix) Fixed bug where the auto-loading mechanism wasn't
1140 protecting the values of the errorCode and errorInfo variables.
1141
1142 3/29/95 (new feature) Added optional pattern argument to "parray" procedure.
1143
1144 3/29/95 (bug fix) Made the full functionality of
1145     "return -code ... -errorcode ..."
1146 work not just inside procedures, but also in sourced files and at
1147 top level.
1148
1149 4/6/95 (new feature) Added "pattern" option to "array names" command.
1150
1151 4/18/95 (bug fix) Fixed bug in parser where it didn't allow backslash-newline
1152 immediately after an argument in braces or quotes.
1153
1154 4/19/95 (new feature) Added tcl_library variable, which application can
1155 set to override default library directory.
1156
1157 4/30/95 (bug fix) During trace callbacks for array elements, the variable
1158 name used in the original reference would be temporarily modified to
1159 separate the array name and element name;  if the trace callback used
1160 the same name string, it would get the wrong name (the array name without
1161 element).  Fixed to restore the variable name before making trace
1162 callbacks.
1163
1164 4/30/95 (new feature) Added -nobackslashes, -nocommands, and -novariables
1165 switches to "subst" command.
1166
1167 5/4/95 (new feature) Added TCL_EVAL_GLOBAL flag to Tcl_RecordAndEval.
1168
1169 5/5/95 (bug fix)  Format command would overrun memory when printing
1170 integers with very large precision, as in "format %.1000d 0".
1171
1172 5/5/95 (portability improvement) Changed to use BSDgettimeofday on
1173 IRIX machines, to avoid compilation problems with the gettimeofday
1174 declaration.
1175
1176 5/6/95 (bug fix) Changed manual entries to use the standard .TH
1177 macro instead of a custom .HS macro;  the .HS macro confuses index
1178 generators like makewhatis.
1179
1180 5/9/95 (bug fix) Modified configure script to check for Solaris bug
1181 that makes vfork unreliable (core dumps result if vforked child
1182 changes a signal handler);  will use fork instead of vfork if the
1183 bug is present.
1184
1185 6/5/95 (bug fix) Modified "lsort" command to disallow recursive calls
1186 to lsort from a comparison function.  This is needed because qsort
1187 is not reentrant.
1188
1189 6/5/95 (bug fix) Undid change 243 above:  changed TCL_VOLATILE and
1190 TCL_DYNAMIC back to integer constants rather than procedure addresses.
1191 This was needed because procedure addresses can have multiple values
1192 under some dynamic loading systems (e.g. SunOS 4.1 and Windows).
1193
1194 6/8/95 (feature change) Modified interface to Tcl_Main to pass in the
1195 address of the application-specific initialization procedure.
1196 Tcl_AppInit is no longer hardwired into Tcl_Main.  This is needed
1197 in order to make Tcl a shared library. 
1198
1199 6/8/95 (feature change) Modified Makefile so that the installed versions
1200 of tclsh and libtcl.a have version number in them (e.g. tclsh7.4 and
1201 libtcl7.4.a) and the library directory name also has an embedded version
1202 number (e.g., /usr/local/lib/tcl7.4).  This should make it easier for
1203 Tcl 7.4 to coexist with earlier versions.
1204
1205 ----------------- Released version 7.4b4, 6/16/95 ------------------
1206
1207 6/19/95 (bug fix) Fixed bugs in tclCkalloc.c that caused core dumps
1208 if TCL_MEM_DEBUG was enabled on word-addressed machines such as Crays.
1209
1210 6/21/95 (feature removal) Removed overflow checks for integer arithmetic:
1211 they just cause too much trouble (e.g. for random  number generators).
1212
1213 6/28/95 (new features) Added tcl_patchLevel and tcl_version variables,
1214 for consistency with Tk.
1215
1216 6/29/95 (bug fix) Fixed problem in Tcl_Eval where it didn't record
1217 the right termination character if a script ended with a comment.  This
1218 caused erroneous output for the following command, among others:
1219 puts "[
1220 expr 1+1
1221 # duh!
1222 ]"
1223
1224 6/29/95 (message change) Changed the error message for ECHILD slightly
1225 to provide a hint about why the problem is occurring.
1226
1227 ----------------- Released version 7.4, 7/1/95 ------------------
1228
1229 7/18/95 (bug fix) Changed "lreplace" so that nothing is deleted if
1230 the last index is less than the first index or if the last index
1231 is < 0.
1232
1233 7/18/95 (bug fix) Fixed bugs with backslashes in comments:
1234 Tcl_CommandComplete (and "info complete") didn't properly handle
1235 strings ending in backslash-newline, and neither Tcl_CommandComplete
1236 nor the Tcl parser handled other backslash sequences right, such
1237 as two backslashes before a newline.
1238
1239 7/19/95 (bug fix) Modified Tcl_DeleteCommand to delete the hash table
1240 entry for the command before invoking its callback.  This is needed in
1241 order to deal with reentrancy.
1242
1243 7/22/95 (bug fix) "exec" wasn't reaping processes correctly after
1244 certain errors (e.g. if the name of the executable was bogus, as
1245 in "exec foobar").
1246
1247 7/27/95 (bug fix) Makefile.in wasn't using the LIBS variable provided
1248 by the "configure" script.  This caused problems on some SCO systems.
1249
1250 7/27/95 (bug fix) The version of strtod in fixstrtod.c didn't properly
1251 handle the case where endPtr == NULL.
1252
1253 ----------------- Released patch 7.4p1, 7/29/95 -----------------------
1254
1255 8/4/95 (bug fix) C-level trace callbacks for variables were sometimes
1256 receiving the PART1_NOT_PARSED flag, which could cause errors in
1257 subsequent Tcl library calls using the flags. (JO)
1258
1259 8/4/95 (bug fix) Calls to toupper and tolower weren't using the
1260 UCHAR macros, which caused trouble in non-U.S. locales. (JO)
1261
1262 8/10/95 (new feature) Added the "load" command for dynamic loading of
1263 binary packages, and the Tcl_PackageInitProc prototype for package
1264 initialization procedures. (JO)
1265
1266 8/23/95 (new features) Added "info sharedlibextension" and
1267 "info nameofexecutable" commands, plus Tcl_FindExtension procedure. (JO)
1268
1269 8/25/95 (bug fix) If the target of an "upvar" was non-existent but
1270 had traces set, the traces were silently lost.  Change to generate
1271 an error instead. (JO)
1272
1273 8/25/95 (bug fix) Undid change from 7/19, so that commands can stay
1274 around while their deletion callbacks execute.  Added lots of code to
1275 handle all of the reentrancy problems that this opens up. (JO)
1276
1277 8/25/95 (bug fix) Fixed core dump that could occur in TclDeleteVars
1278 if there was an upvar from one entry in the table to the next entry
1279 in the same table. (JO)
1280
1281 8/28/95 (bug fix) Exec wasn't handling bad user names properly, as
1282 in "exec ~bogus_user/foo". (JO)
1283
1284 8/29/95 (bug fixes) Changed backslash-newline handling to correct two
1285 problems:
1286     - Only spaces and tabs following the backslash-newline are now
1287       absorbed as part of the backslash-newline.  Newlinew are no
1288       longer absorbed (add another backslash if you want to absorb
1289       another newline).
1290     - TclWordEnd returns the character just before the backslash in
1291       the sequence as the end of the sequence;  it used to not consider
1292       the backslash-newline as a word separator. (JO)
1293
1294 8/31/95 (new feature) Changed man page installation (with "mkLinks"
1295 script) to create additional links for manual pages corresponding to
1296 each of the procedure and command names described in the pages. (JO)
1297
1298 9/10/95 Reorganized Tcl sources for Windows and Mac ports.  All sources
1299 are now in subdirectories:  "generic" contains sources that work on all
1300 platforms, "windows", "mac", and "unix" directories contain platform-
1301 specific sources.  Some UNIX sources are also used on other platforms. (SS)
1302
1303 9/10/95 (feature change) Eliminated exported global variables (they
1304 don't work with Windows DLLs).  Replaced tcl_AsyncReady and
1305 tcl_FileCloseProc with procedures Tcl_AsyncReady() and
1306 Tcl_SetFileCloseProc().  Replaced C variable tcl_RcFileName with
1307 a Tcl variable tcl_rcFileName. (SS)
1308 *** POTENTIAL INCOMPATIBILITY ***
1309
1310 9/11/95 (new feature) Added procedure Tcl_SetPanicProc to override
1311 the default implementation of "panic". (SS)
1312
1313 9/11/95 (new feature) Added "interp" command to allow creation of
1314 new interpreters and execution of untrusted scripts.  Added many new
1315 procedures, such as Tcl_CreateSlave, Tcl_CreateAlias,and Tcl_MakeSafe,
1316 to provide C-level access to the interpreter facility. This mechanism
1317 now provides almost all of the generic functions of Borenstein's and
1318 Rose's Safe-Tcl (but not any Tk or email-related stuff).  (JL)
1319
1320 9/11/95 (feature change) Changed file management so that files are
1321 no longer shared between interpreters:  a file cannot normally be
1322 referenced in one interpreter if it was opened in another.  This
1323 feature is needed to support safe interpreters.  Added Tcl_ShareHandle()
1324 procedure for allowing files to be shared, and added "interp" argument
1325 to Tcl_FilePermissions procedure. (JL)
1326 *** POTENTIAL INCOMPATIBILITY ***
1327
1328 9/11/95 (new feature) Added "AssocData" mechanism, whereby extensions
1329 can associate their own data with an interpreter and get called back
1330 when the interpreter is deleted.  This is visible at C level via the
1331 procedures Tcl_SetAssocData and Tcl_GetAssocData.  (JL)
1332
1333 9/11/95 (new feature) Added Tcl_ErrnoMsg to translate an errno value
1334 into a human-readable string.  This is now used instead of calling
1335 strerror because strerror mesages vary dramatically from platform
1336 to platform, which messes up Tcl tests.  Tcl_ErrnoMsg uses the standard
1337 POSIX messages for all the common signals, and calls strerror for
1338 signals it doesn't understand.
1339
1340 ----------------- Released patch 7.4p2, 9/15/95 -----------------------
1341
1342 ----------------- Released 7.5a1, 9/15/95 -----------------------
1343
1344 9/22/95 (bug fix) Changed auto_mkindex to create tclIndex files that
1345 handle directories whose paths might contain spaces. (RJ)
1346
1347 9/27/95 (bug fix) The "format" command didn't check for huge or negative
1348 width specifiers, which could cause core dumps. (JO)
1349
1350 9/27/95 (bug fix) Core dumps could occur if an interactive command typed
1351 to tclsh returned a very long result for tclsh to print out.  The bug is
1352 actually in printf (in Solaris 2.3 and 2.4, at least);  switched to use
1353 puts instead.  (JO)
1354
1355 9/28/95 (bug fix) Changed makefile.bc to eliminate a false dependency
1356 for tcl1675.dll on the Borland run time library. (SS)
1357
1358 9/28/95 (bug fix) Fixed tcl75.dll so it looks for tcl1675.dll instead
1359 of tcl16.dll. (SS)
1360
1361 9/28/95 (bug fix) Tcl was not correctly detecting the difference
1362 between Win32s and Windows '95. (SS)
1363
1364 9/28/95 (bug fix) "exec" was not passing environment changes to child
1365 processes under Windows. (SS)
1366
1367 9/28/95 (bug fix) Changed Tcl to ensure that open files are not passed
1368 to child processes under Windows. (SS)
1369
1370 9/28/95 (bug fix) Fixed Windows '95 and NT versions of exec so it can
1371 handle both console and windows apps.   (SS)
1372
1373 9/28/95 (bug fix) Fixed Windows version of exec so it no longer leaves
1374 temp files lying around.  Also changed it so the temp files are
1375 created in the appropriate system dependent temp directory. (SS)
1376
1377 9/28/95 (bug fix) Eliminated source dependency on the Win32s Universal
1378 Thunk header file, since it is not bundled with VC++. (SS)
1379
1380 9/28/95 (bug fix) Under Windows, Tcl now constructs the HOME
1381 environment variable from HOMEPATH and HOMEDRIVE when HOME is not
1382 already set. (SS)
1383
1384 9/28/95 (bug fix) Added support for "info nameofexecutable" and "info
1385 sharedlibextension" to the Windows version. (SS)
1386
1387 9/28/95 (bug fix) Changed tclsh to correctly parse command line
1388 arguments so that backslashes are preserved under Windows. (SS)
1389
1390 9/29/95 (bug fix) Tcl 7.5a1 treated either return or newline as end
1391 of line in "gets", which caused lines ending in CRLF to be treated as
1392 two separate lines.  Changed to allow only character as end-of-line:
1393 carriage return on Macs, newline elsewhere. (JO)
1394
1395 9/29/95 (new feature) Changed to install "configInfo" file in same
1396 directory as library scripts.  It didn't used to get installed. (JO)
1397
1398 9/29/95 (bug fix) Tcl was not converting Win32 errors into POSIX
1399 errors under some circumstances. (SS)
1400
1401 10/2/95 (bug fix) Safe interpreters no longer get initialized with
1402 a call to Tcl_Init(). (JL)
1403
1404 10/1/95 (new feature) Added "tcl_platform" global variable to provide
1405 environment information such as the instruction set and operating
1406 system. (JO)
1407
1408 10/1/95 (bug fix) "exec" command wasn't always generating the
1409 "child process exited abnormally" message when it should have.  (JO)
1410
1411 10/2/95 (bug fix) Changed "mkLinks.tcl" so that the scripts it generates
1412 won't create links that overwrite original manual entries (there was
1413 a problem where pack-old.n was overwriting pack.n).  (JO)
1414
1415 10/2/95 (feature change) Changed to use -ldl for dynamic loading under
1416 Linux if it is available, but fall back to -ldld if it isn't.  (JO)
1417
1418 10/2/95 (bug fix) File sharing was causing refcounts to reach 0
1419 prematurely for stdin, stdout and stderr, under some circumstances. (JL)
1420
1421 10/2/95 (platform support) Added support for Visual C++ compiler on
1422 Windows, Windows '95 and Windows NT, code donated by Gordon Chaffee. (JL)
1423
1424 10/3/95 (bug fix) Tcl now frees any libraries that it loads before it
1425 exits. (SS)
1426
1427 10/03/95 (bug fix) Fixed bug in Macintosh ls command where the -l
1428 and -C options would fail in anything but the HOME directory. (RJ)
1429
1430 ----------------- Released 7.5a2, 10/6/95 -----------------------
1431
1432 10/10/95 (bug fix) "file dirnam /." was returning ":" on UNIX instead
1433 of "/". (JO)
1434
1435 10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating
1436 the tcl.def file from Borland object files. (SS)
1437
1438 10/17/95 (new features) Moved the event loop from Tcl to Tk, made major
1439 revisions along the way:
1440     - New Tcl commands:  after, update, vwait (replaces "tkwait variable").
1441     - "tkerror" is now replaced with "bgerror".
1442     - The following procedures are similar to their old Tk counterparts:
1443       Tcl_DoOneEvent, Tcl_Sleep, Tcl_DoWhenIdle, Tcl_CancelIdleCall,
1444       Tcl_CreateFileHandler, Tcl_DeleteFileHandler, Tcl_CreateTimerHandler,
1445       Tcl_DeleteTimerHandler, Tcl_BackgroundError.
1446     - Revised notifier, add new concept of "event source" with the following
1447       procedures:  Tcl_CreateEventSource, Tcl_DeleteEventSource,
1448       Tcl_WatchFile, Tcl_SetMaxBlockTime, Tcl_FileReady, Tcl_QueueEvent,
1449       Tcl_WaitForEvent. (JO)
1450
1451 10/31/95 (new features) Implemented cross platform file name support to make
1452 it easier to write cross platform scripts.  Tcl now understands 4 file naming
1453 conventions: Windows (both DOS and UNC), Mac, Unix, and Network.  The network
1454 convention is a new naming mechanism that can be used to paths in a platform
1455 independent fashion.  See the "file" command manual page for more details.
1456 The primary interfaces changes are:
1457     - All Tcl commands that expect a file name now accept both network and
1458       native form.
1459     - Two new "file" subcommands, "nativename" and "networkname", provide a
1460       way to convert between network and native form.
1461     - Renamed Tcl_TildeSubst to Tcl_TranslateFileName, and changed it so that
1462       it always returns a filename in native form.  Tcl_TildeSubst is defined
1463       as a macro for backward compatibility, but it is deprecated. (SS)
1464
1465 11/5/95 (new feature) Made "tkerror" and "bgerror" synonyms, so that
1466 either name can be used to manipulate the command (provides temporary
1467 backward compatibility for existing scripts that use tkerror). (JO)
1468
1469 11/5/95 (new feature) Added exit handlers and new C procedures
1470 Tcl_CreateExitHandler, Tcl_DeleteExitHandler, and Tcl_Exit. (JO)
1471
1472 11/6/95 (new feature) Added pid command for Macintosh version of
1473 Tcl (it didn't previously exist on the Mac). (RJ)
1474
1475 11/7/95 (new feature) New generic IO facility and support for IO to
1476 files, pipes and sockets based on a common buffering scheme. Support
1477 for asynchronous (non-blocking) IO and for event driver IO. Support
1478 for automatic (background) asynchronous flushing and asynchronous
1479 closing of channels. (JL)
1480
1481 11/7/95 (new feature)  Added new commands "fconfigure" and "fblocked"
1482 to support new I/O features such as nonblocking I/O.  Added "socket"
1483 command for creating TCP client and server sockets. (JL).
1484
1485 11/7/95 (new feature) Complete set of C APIs to the new generic IO
1486 facility:
1487     - Opening channels: Tcl_OpenFileChannel, Tcl_OpenCommandChannel,
1488       Tcl_OpenTcpClient, Tcl_OpenTcpServer.
1489     - I/O procedures on channels, which roughly mirror the ANSI C stdio
1490       library:  Tcl_Read, Tcl_Gets, Tcl_Write, Tcl_Flush, Tcl_Seek,
1491       Tcl_Tell, Tcl_Close, Tcl_Eof, Tcl_InputBlocked, Tcl_GetChannelOption,
1492       Tcl_SetChannelOption.
1493     - Extension mechanism for creating new kinds of channels:
1494       Tcl_CreateChannel, Tcl_GetChannelInstanceData, Tcl_GetChannelType,
1495       Tcl_GetChannelName, Tcl_GetChannelFile, Tcl_RegisterChannel,
1496       Tcl_UnregisterChannel, Tcl_GetChannel.
1497     - Event-driven I/O on channels: Tcl_CreateChannelHandler,
1498       Tcl_DeleteChannelHandler. (JL)
1499
1500 11/7/95 (new feature) Channel driver interface specification to allow
1501 new types of channels to be added easily to Tcl. Currently being used
1502 in three drivers - for files, pipes and TCP-based sockets. (JL).
1503
1504 11/7/95 (new feature) interp delete now takes any number of path
1505 names of interpreters to delete, including zero. (JL).
1506
1507 11/8/95 (new feature) implemented 'info hostname' and Tcl_GetHostName
1508 command to get host name of machine on which the Tcl process is running. (JL)
1509
1510 11/9/95 (new feature) Implemented file APIs for access to low level files
1511 on each system. The APIs are: Tcl_CloseFile, Tcl_OpenFile, Tcl_ReadFile,
1512 Tcl_WriteFile and Tcl_SeekFile. Also implemented Tcl_WaitPid which waits
1513 in a system dependent manner for a child process. (JL)
1514
1515 11/9/95 (new feature) Added Tcl_UpdateLinkedVar procedure to force a
1516 Tcl variable to be updated after its C variable changes. (JO)
1517
1518 11/9/95 (bug fix) The glob command has been totally reimplemented so
1519 that it can support different file name conventions.  It now handles
1520 Windows file names (both UNC and drive-relative) properly.  It also
1521 supports nested braces correctly now. (SS)
1522
1523 11/13/95 (bug fix) Fixed Makefile.in so that configure can be run
1524 from a clean directory separate from the Tcl source tree, and compilations
1525 can be performed there. (JO)
1526
1527 11/14/95 (bug fix) Fixed file sharing between interpreters and file
1528 transferring between interpreters to correctly manage the refcount so that
1529 files are closed when the last reference to them is discarded. (JL)
1530
1531 11/14/95 (bug fix) Fixed gettimeofday implementation for the
1532 Macintosh.  This fixes several timing related bugs. (RJ)
1533
1534 11/17/95 (new feature) Added missing support for info nameofexecutable
1535 on the Macintosh. (RJ)
1536
1537 11/17/95 (bug fix) The Tcl variables argc argv and argv0 now return
1538 something reasonable on the Mac.  (RJ)
1539
1540 11/22/95 (new feature) Implemented "auto-detect" mode for end of line
1541 translations. On input, standalone "\r" mean MAC mode, standalone "\n"
1542 mean Unix mode and "\r\n" means Windows mode. On output, the mode is
1543 modified to whatever the platform specific mode for that platform is. (JL)
1544
1545 11/24/95 (feature change) Replaced "configInfo" file with tclConfig.sh,
1546 which is more complete and uses slightly different names.  Also
1547 arranged for tclConfig.sh to be installed in the platform-specific
1548 library directory instead of Tcl's script library directory. (JO)
1549 *** POTENTIAL INCOMPATIBILITY with Tcl 7.5a2, but not with Tcl 7.4 ***
1550
1551 ----------------- Released patch 7.4p3, 11/28/95 -----------------------
1552
1553 12/5/95 (new feature) Added Tcl_File facility to support platform-
1554 independent file handles.  Changed all interfaces that used Unix-
1555 style integer fd's to use Tcl_File's instead. (SS)
1556 *** POTENTIAL INCOMPATIBILITY ***
1557
1558 12/5/95 (new feature) Added a new "clock" command to Tcl.  The command
1559 allows you to get the current "clicks" or seconds & allows you to
1560 format or scan human readable time/date strings. (RJ)
1561
1562 12/18/95 (new feature) Moved Tk_Preserve, Tk_Release, and Tk_EventuallyFree
1563 to Tcl, renamed to Tcl_Preserve, Tcl_Release, and Tcl_EventuallyFree. (JO)
1564
1565 12/18/95 (new feature) Added new "package" command and associated
1566 procedures Tcl_PkgRequire and Tcl_PkgProvide.   Also wrote
1567 pkg_mkIndex library procedure to create index files from binaries
1568 and scripts. (JO)
1569
1570 12/20/95 (new feature) Added Tcl_WaitForFile procedure. (JO)
1571
1572 12/21/95 (new features) Made package name argument to "load" optional
1573 (Tcl will now attempt to guess the package name if necessary).  Also
1574 added Tcl_StaticPackage and support in "load" for statically linked
1575 packages.  (JO)
1576
1577 12/22/95 (new feature) Upgraded the foreach command to accept multiple
1578 loop variables and multiple value lists.  This lets you iterate over
1579 multiple lists in parallel, and/or assign multiple loop variables from
1580 one value list during each iteration. The only potential compatibility
1581 problem is with scripts that used loop variables with a name that could be
1582 construed to be a list of variable names (i.e. contained spaces).  (BW)
1583
1584 1/5/96 (new feature) Changed tclsh so it builds as a console mode
1585 application under Windows.  Now tclsh can be used from the command
1586 line with pipes or interactively.  Note that this only works under
1587 Windows 95 or NT. (SS)
1588
1589 1/17/96 (new feature) Modified Makefile and configure script to allow
1590 Tcl to be compiled as a shared library:  use the --enable-shared option
1591 when configuing.  (JO)
1592
1593 1/17/96 (removed obsolete features)  Removed the procedures Tcl_EnterFile
1594 and Tcl_GetOpenFile:  these no longer make sense with the new I/O system. (JL)
1595 *** POTENTIAL INCOMPATIBILITY ***
1596
1597 1/19/96 (bug fixes) Prevented formation of circular aliases, through the
1598 Tcl 'interp alias' command and through the 'rename' command, as well as
1599 through the C API Tcl_CreateAlias. (JL)
1600
1601 1/19/96 (bug fixes) Fixed several bugs in direct deletion of interpreters
1602 with Tcl_DeleteInterp when the interpreter is a slave; fixes based on a
1603 patch received from Viktor Dukhovni of ESM. (JL)
1604
1605 1/19/96 (new feature) Implemented on-close handlers for channels; added
1606 the C APIs Tcl_CreateCloseHandler and Tcl_DeleteCloseHandler. (JL)
1607
1608 1/19/96 (new feature) Implemented portable error reporting mechanism; added
1609 the C APIs Tcl_SetErrno and Tcl_GetErrno. (JL)
1610
1611 1/24/96 (bug fix) Unknown command processing properly invokes external
1612 commands under Windows NT and Windows '95 now. (SS)
1613
1614 1/23/96 (bug fix) Eliminated extremely long startup times under Windows '95.
1615 The problem was a result of the option database initialization code that
1616 concatenated $HOME with /.Xdefaults, resulting in a // in the middle of the
1617 file name.  Under Windows '95, this is incorrectly interpreted as a UNC
1618 path.  They delays came from the network timeouts needed to determine that
1619 the file name was invalid.  Tcl_TranslateFileName now suppresses duplicate
1620 slashes that aren't at the beginning of the file name. (SS)
1621                                      
1622 1/25/96 (bug fix) Changed exec and open to create children so they are
1623 attached to the application's console if it exists. (SS)
1624
1625 1/31/96 (bug fix) Fixed command line parsing to handle embedded
1626 spaces under Windows. (SS)
1627
1628 ----------------- Released 7.5b1, 2/1/96 -----------------------
1629
1630 2/7/96 (bug fix) Fixed off by one error in argument parsing code under
1631 Windows. (SS)
1632
1633 2/7/96 (bug fix) Fixed bugs in VC++ makefile that improperly
1634 initialized the tcl75.dll.  Fixed bugs in Borland makefile that caused
1635 build failures under Windows NT. (SS)
1636
1637 2/9/96 (bug fix) Fixed deadlock problem in AUTO end of line translation
1638 mode which would cause a socket server with several concurrent clients
1639 writing in CRLF mode to hang. (JL)
1640
1641 2/9/96 (API change) Replaced -linemode option to fconfigure with a
1642 new -buffering option, added "none" setting to enable immediate write. (JL)
1643 *** INCOMPATIBILITY with b1 ***
1644
1645 2/9/96 (new feature) Added C API Tcl_InputBuffered which returns the count
1646 of bytes currently buffered in the input buffer of a channel, and o for
1647 output only channels. (JL)
1648
1649 2/9/96 (new feature) Implemented asynchronous connect for sockets. (JL)
1650
1651 2/9/96 (new feature) Added C API Tcl_SetDefaultTranslation to set (per
1652 channel) the default end of line translation mode. This is the mode that
1653 will be installed if an output operation is done on the channel while it is
1654 still in AUTO mode. (JL)
1655
1656 2/9/96 (bug fix) Changed Tcl_OpenCommandChannel interface to properly
1657 handle all of the combinations of stdio inheritance in background
1658 pipelines.  See the Tcl_OpenFileChannel(3) man page for more
1659 info.  This change fixes the bug where exec of a background pipeline
1660 was not getting passed the stdio handles properly. (SS)
1661
1662 2/9/96 (bug fix) Removed the new Tcl_CreatePipeline interface, and
1663 restored the old version for Unix platforms only.  All new code should
1664 use Tcl_CreateCommandChannel instead. (SS)
1665
1666 2/9/96 (bug fix) Changed Makefile.in to use -L and -ltcl7.5 for Tcl
1667 library so that shared libraries are more likely to be found correctly
1668 on more platforms. (JO)
1669
1670 2/13/96 (new feature) Added C API Tcl_SetNotifierData and
1671 Tcl_GetNotifierData to allow notifier and channel driver writers to
1672 associate data with a Tcl_File.  The result of this change is that
1673 Tcl_GetFileInfo now always returns an OS file handle, and Tcl_GetFile
1674 can be used to construct a Tcl_File for an externally constructed OS
1675 handle. (SS)
1676
1677 2/13/96 (bug fix) Changed Windows socket implementation so it doesn't
1678 set SO_REUSEADDR on server sockets.  Now attempts to create a server
1679 socket on a port that is already in use will be properly identified
1680 and an error will be generated. (SS)
1681
1682 2/13/96 (bug fix) Fixed problems with DLL initialization under Visual
1683 C++ that left the C run time library uninitialized. (SS)
1684
1685 2/13/96 (bug fix) Fixed Windows socket initialization so it loads
1686 winsock the first time it is used, rather than at the time tcl75.dll
1687 is loaded.  This should fix the bug where the modem immediately starts
1688 trying to connect to a service provider when wish or tclsh are
1689 started. (SS)
1690
1691 2/13/96 (new feature) Added C APIs Tcl_MakeFileChannel and
1692 Tcl_MakeTcpClientChannel to wrap up existing fds and sockets into
1693 channels. Provided implementations on Unix and Windows. (JL)
1694
1695 2/13/96 (bug fix) Fixed bug with seek leaving EOF and BLOCKING set. (JL)
1696
1697 2/14/96 (bug fix) Fixed reentrancy problem in fileevent handling
1698 and made it more robust in the face of errors. (JL)
1699
1700 2/14/96 (feature change) Made generic IO level emulate blocking mode if the
1701 channel driver is unable to provide it, e.g. if the low level device is
1702 always nonblocking. Thus, now blocking behavior is an advisory setting for
1703 channel drivers and can be ignored safely if the channel driver is unable
1704 to provide it. (JL)
1705
1706 2/15/96 (new feature) Added "binary" end of line translation mode, which is
1707 a synonym of "lf" mode. (JL)
1708
1709 2/15/96 (bug fix) Fixed reentrancy problem in fileevent handling vs
1710 deletion of channel event handlers. (JL)
1711
1712 2/15/96 (bug fix) Fixed bug in event handling which would cause a
1713 nonblocking channel to not see further readable events after the first
1714 readable event that had insufficient input. (JL)
1715
1716 2/17/96 (bug fix) "info complete" didn't properly handle comments
1717 in nested commands. (JO)
1718
1719 2/21/96 (bug fix) "exec" under Windows NT/95 did not properly handle
1720 very long command lines (>200 chars). (SS)
1721
1722 2/21/96 (bug fix) Sockets could get into an infinite loop if a read
1723 event arrived after all of the available data had been read. (SS)
1724
1725 2/22/96 (bug fix) Added cast of st_size elements to (long) before
1726 sprintf-ing in "file size" command.  This is needed to handle systems
1727 like NetBSD with 64-bit file offsets.  (JO)
1728
1729 ----------------- Released 7.5b2, 2/23/96 -----------------------
1730
1731 2/23/96 (bug fix) TCL_VARARGS macro in tcl.h wasn't defined properly
1732 when compiling with C++.  (JO)
1733
1734 2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile:
1735 this caused problems on some platforms (like Linux?). (JO)
1736
1737 2/24/96 (bug fix) Fixed configuration bug that made Tcl not compile
1738 correctly on Linux machines with neither -ldl or -ldld. (JO)
1739
1740 2/24/96 (new feature) Added a block of comments and definitions to
1741 Makefile.in to make it easier to have Tcl's TclSetEnv etc. replace
1742 the library procedures setenv etc, so that calls to setenv etc. in
1743 the application automatically update the Tcl "env" variable. (JO)
1744
1745 2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL)
1746 to C API Tcl_Close and simplified closing of command channels. (JL)
1747 *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
1748
1749 2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL)
1750 to C type definition Tcl_DriverCloseProc; modified all channel drivers to
1751 implement close procedures that accept the additional argument. (JL)
1752 *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
1753
1754 2/28/96 (bug fix) Fixed memory leak that could occur if an upvar
1755 referred to an element of an array in the same stack frame as the
1756 upvar. (JO)
1757
1758 2/29/96 (feature change) Modified both Tcl_DoOneEvent and Tcl_WaitForEvent
1759 so that they return immediately in cases where they would otherwise
1760 block forever (e.g. if there are no event handlers of any sort). (JO)
1761
1762 2/29/96 (new feature) Added C APIs Tcl_GetChannelBufferSize and
1763 Tcl_SetChannelBufferSize to set and retrieve the size, in bytes, for
1764 buffers allocated to store input or output in a channel. (JL)
1765
1766 2/29/96 (new feature) Added option -buffersize to Tcl fconfigure command
1767 to allow Tcl scripts to query and set the size of channel buffers. (JL)
1768
1769 2/29/96 (feature removed) Removed channel driver function to specify
1770 the buffer size to use when allocating a buffer. Removed the C typedef
1771 for Tcl_DriverBufferSizeProc. Channels are now created with a default
1772 buffer size of 4K. (JL)
1773 *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
1774
1775 2/29/96 (feature change) The channel driver function for setting blocking
1776 mode on the device may now be NULL. If the generic code detects that the
1777 function is NULL, operations that set the blocking mode on the channel
1778 simply succeed. (JL)
1779
1780 3/2/96 (bug fix) Fixed core dump that could occur if a syntax error
1781 (such as missing close paren) occurred in an array reference with a
1782 very long array name. (JO)
1783
1784 3/4/96 (bug fix) Removed code in the "auto_load" procedure that deletes
1785 all existing auto-load information whenever the "auto_path" variable
1786 is changed.  Instead, new information adds to what was already there.
1787 Otherwise, changing the "auto_path" variable causes all package-
1788 related information to be lost.  If you really want to get rid of
1789 existing auto-load information, use auto_reset before setting auto_path. (JO)
1790
1791 3/5/96 (new feature) Added version suffix to shared library names so that
1792 Tcl will compile under NetBSD and FreeBSD (I hope).  (JO)
1793
1794 3/6/96 (bug fix) Cleaned up error messages in new I/O system to correspond
1795 more closely to old I/O system. (JO)
1796
1797 3/6/96 (new feature) Added -myaddr and -myport options to the socket
1798 command, removed -tcp and -- options.  This lets clients and servers
1799 choose a particular interface.  Also changed the default server address
1800 from the hostname to INADDR_ANY.  The server accept callback now gets
1801 passed the client's port as well as IP address.  The C interfaces for
1802 Tcl_OpenTcpClient and Tcl_OpenTcpServer have changed to support the
1803 above changes. (BW)
1804 *** POTENTIAL INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
1805
1806 3/6/96 (changed feature) The library function auto_mkindex will now
1807 default to using the pattern "*.tcl" if no pattern is given. (RJ)
1808
1809 3/6/96 (bug fix) The socket channel code for the Macintosh has been
1810 rewritten to use native MacTcp.  (RJ)
1811
1812 3/7/96 (new feature) Added Tcl_SetStdChannel and Tcl_GetStdChannel
1813 interfaces to allow applications to explicitly set and get the global
1814 standard channels. (SS)
1815
1816 3/7/96 (bug fix) Tcl did close not the file descriptors associated
1817 with "stdout", etc. when the corresponding channels were closed.  (SS)
1818
1819 3/7/96 (bug fix) Reworked shared library and dynamic loading stuff to
1820 try to get it working under AIX.  Added new @SHLIB_LD_LIBS@ autoconf
1821 symbol as part of this.  AIX probably doesn't work yet, but it should
1822 be a lot closer. (JO)
1823
1824 3/7/96 (feature change) Added Tcl_ChannelProc typedef and changed the
1825 signature of Tcl_CreateChannelHandler and Tcl_DeleteChannelHandler to take
1826 Tcl_ChannelProc arguments instead of Tcl_FileProc arguments. This change
1827 should not affect any code outside Tcl because the signatures of
1828 Tcl_ChannelProc and Tcl_FileProc are compatible. (JL)
1829
1830 3/7/96 (API change) Modified signature of Tcl_GetChannelOption to return
1831 an int instead of char *, and to take a Tcl_DString * argument. Modified
1832 the implementation so that the option name can be NULL, to mean that the
1833 call should retrieve a list of alternating option names and values. (JL)
1834 *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
1835
1836 3/7/96 (API change) Added Tcl_DriverSetOptionProc, Tcl_DriverGetOptionProc
1837 typedefs, added two slots setOptionProc and getOptionProc to the channel
1838 type structure. These may be NULL to indicate that the channel type does
1839 not support any options. (JL)
1840 *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
1841
1842 3/7/96 (feature change) stdin, stdout and stderr can now be put into
1843 nonblocking mode. (JL)
1844
1845 3/8/96 (feature change) Eliminated dependence on the registry for
1846 finding the Tcl library files. (SS)
1847
1848 ----------------- Released 7.5b3, 3/8/96 -----------------------
1849
1850 3/12/96 (feature improvement) Modified startup script to look in several
1851 different places for the Tcl library directory.  This should allow Tcl
1852 to find the libraries under all but the weirdest conditions, even without
1853 the TCL_LIBRARY environment variable being set. (JO)
1854
1855 3/13/96 (bug fix) Eliminated use of the "linger" option from the Windows
1856 socket implementation. (JL)
1857
1858 3/13/96 (new feature) Added -peername and -sockname options for fconfigure
1859 for socket channels. Code contributed by John Haxby of HP. (JL)
1860
1861 3/13/96 (bug fix) Fixed panic and core dump that would occur if the accept
1862 callback script on a server socket encountered an error. (JL)
1863
1864 3/13/96 (feature change) Added -async option to the Tcl socket command.
1865 If the command is creating a client socket and the flag is present, the
1866 client is connected asynchronously. If the option is absent (the default),
1867 the client socket is connected synchronously, and the command returns only
1868 when the connection has been completed or failed. This change was suggested
1869 by Mark Diekhans. (JL)
1870
1871 3/13/96 (feature change) Modified the signature of Tcl_OpenTcpClient to
1872 take an additional int argument, async. If nonzero, the client is connected
1873 to the server asynchronously. If the value is zero, the connection is made
1874 synchronously, and the call to Tcl_OpenTcpClient returns only when the
1875 connection fails or succeeds. This change was suggested by Mark Diekhans. (JL)
1876 *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
1877
1878 3/14/96 (bug fix) "tclsh bogus_file_name" didn't print an error message. (JO)
1879
1880 3/14/96 (bug fix) Added new procedures to tclCkalloc.c so that libraries
1881 and applications can be compiled with TCL_MEM_DEBUG even if Tcl isn't
1882 (however, the converse is still not true).  Patches provided by Jan
1883 Nijtmans. (JO)
1884
1885 3/15/96 (bug fix) Marked standard IO handles of a process as close-on-exec
1886 to fix bug in Ultrix where exec was not sharing standard IO handles with
1887 subprocesses. Fix suggested by Mark Diekhans. (JL)
1888
1889 3/15/96 (bug fix) Fixed asynchronous close mechanism so that it closes the
1890 channel instead of leaking system resources. The manifestation was that Tcl
1891 would eventually run out of file descriptors if it was handling a large
1892 number of nonblocking sockets or pipes with high congestion. (JL)
1893
1894 3/15/96 (bug fix) Fixed tests so that they no longer leak file descriptors.
1895 The manifestation was that Tcl would eventually run out of file descriptors
1896 if the tests were rerun many times (> a hundred times on Solaris). (JL)
1897
1898 3/15/96 (bug fix) Fixed channel creation code so that it never creates
1899 unnamed channels. This would cause a panic and core dump when the channel
1900 was closed. (JL)
1901
1902 3/16/96 (bug fixes) Made lots of changes in configuration stuff to get
1903 Tcl working under AIX (finally).  Tcl should now support the "load"
1904 command under AIX and should work either with or without shared
1905 libraries for Tcl and Tk. (JO)
1906
1907 3/21/96 (configuration improvement) Changed configure script so it
1908 doesn't use version numbers (as in -ltcl7.5 and libtcl7.5.so) under
1909 SunOS 4.1, where they don't work anyway.  (JO)
1910
1911 3/22/96 (new feature) Added C API Tcl_InterpDeleted that allows extension
1912 writers to discover when an interpreter is being deleted. (JL)
1913
1914 3/22/96 (bug fix) The standard IO channels are now added to each
1915 trusted interpreter as soon as the interpreter is created. This ensures
1916 against the bug where a child would do IO before the master had done any,
1917 and then the child is destroyed - the standard IO channels would be then
1918 closed and the master would be unable to do any IO. (JL)
1919
1920 3/22/96 (bug fix) Made Tcl more robust against interpreter deletion, by
1921 using Tcl_Preserve, Tcl_Release and Tcl_EventuallyFree to split the process
1922 of interpreter deletion into two distinct phases. Also went through all of
1923 Tcl and added calls to Tcl_Preserve and Tcl_Delete where needed. (JL)
1924
1925 3/22/96 (bug fix) Fixed several places where C code was reading and writing
1926 into freed memory, especially during interpreter deletion. (JL)
1927
1928 3/22/96 (bug fix) Fixed very deep bug in Tcl_Release that caused memory to
1929 be freed twice if the release callback did Tcl_Preserve and Tcl_Release on
1930 the same memory as the chunk currently being freed. (JL)
1931
1932 3/22/96 (bug fix) Removed several memory leaks that would cause memory
1933 buildup on half-K chunks in the generic IO level. (JL)
1934
1935 3/22/96 (bug fix) Fixed several core dumps which occurred when new
1936 AssocData was being created during the cleanups in interpreter deletion.
1937 The solution implemented now is to loop repeatedly over the AssocData until
1938 none is left to clean up. (JL)
1939
1940 3/22/96 (bug fix) Fixed a bug in event handling which caused an infinite
1941 loop if there were no files being watched and no timer. Fix suggested by
1942 Jan Nijtmans. (JL)
1943
1944 3/22/96 (bug fix) Fixed Tcl_CreateCommand, Tcl_DeleteCommand to be more
1945 robust if the interpreter is being deleted. Also fixed several order
1946 dependency bugs in Tcl_DeleteCommand which kicked in when an interpreter
1947 was being deleted. (JL)
1948
1949 3/26/96 (bug fix) Upon a "short read", the generic code no longer calls
1950 the driver for more input. Doing this caused blocking on some platforms
1951 even on nonblocking channels. Bug and fix courtesy Mark Roseman. (JL)
1952
1953 3/26/96 (new feature) Added 'package Tcltest' which is present only in
1954 test versions of Tcl; this allows the testing commands to be loaded into
1955 new interpreters besides the main one. (JL)
1956
1957 3/26/96 (restored feature) Recreated the Tcl_GetOpenFile C API. You can
1958 now get a FILE * from a registered channel; Unix only. (JL)
1959
1960 3/27/96 (bug fix) The regular expression code did not support more
1961 than 9 subexpressions.  It now supports up to 20. (SS)
1962
1963 4/1/96 (bug fixes) The CHANNEL_BLOCKED bit was being left on on a short
1964 read, so that fileevents wouldn't fire correctly. Bug reported by Mark
1965 Roseman.(JL, RJ)
1966
1967 4/1/96 (bug fix) Moved Tcl_Release to match Tcl_Preserve exactly, in
1968 tclInterp.c; previously interpreters were being freed only conditionally
1969 and sometimes not at all. (JL)
1970
1971 4/1/96 (bug fix) Fixed error reporting in slave interpreters when the
1972 error message was being generated directly by C code. Fix suggested by
1973 Viktor Dukhovni of ESM. (JL)
1974
1975 4/2/96 (bug fixes) Fixed a series of bugs in Windows sockets that caused
1976 events to variously get lost, to get sent multiple times, or to be ignored
1977 by the driver. The manifestation was blocking if the channel is blocking,
1978 and either getting EAGAIN or infinite loops if the channel is nonblocking.
1979 This series of bugs was found by Ian Wallis of Cisco. Now all tests (also
1980 those that were previously commented out) in socket.test pass.  (JL, SS)
1981
1982 4/2/96 (feature change/bug fix) Eliminated network name support in
1983 favor of better native name support.  Added "file split", "file join",
1984 and "file pathtype" commands.  See the "file" man page for more
1985 details. (SS)
1986 *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
1987
1988 4/2/96 (bug fix) Changed implementation of auto_mkindex so tclIndex
1989 files will properly handle path names in a cross platform context. (SS)
1990
1991 4/5/96 (bug fix) Fixed Tcl_ReadCmd to use the channel buffer size as the
1992 chunk size it reads, instead of a fixed 4K size. Thus, on large reads, the
1993 user can set the channel buffer size to a large size and the read will
1994 occur orders of magnitude faster. For example, on a 2MB file, reading in 4K
1995 chunks took 34 seconds, while reading in 1MB chunks took 1.5 seconds (on a
1996 SS-20). Problem identified and fix suggested by John Haxby of HP. (JL)
1997
1998 4/5/96 (bug fix) Fixed socket creation code to invoke gethostbyname only if
1999 inet_addr failed (very unlikely). Before this change the order was reversed
2000 and this made things much slower than they needed to be (gethostbyname
2001 generally requires an RPC, which is slow). Problem identified and fix
2002 suggested by John Loverso of OSF. (JL)
2003
2004 4/9/96 (feature change) Modified "auto" translation mode so that it
2005 recognizes any of "\n", "\r" and "\r\n" in input as end of line, so
2006 that a file can have mixed end-of-line sequences. It now outputs
2007 the platform specific end of line sequence on each platform for files and
2008 pipes, and for sockets it produces crlf in output on all platforms. (JL)
2009 *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
2010
2011 4/11/96 (new feature) Added -eofchar option to Tcl_SetChannelOption to allow
2012 setting of an end of file character for input and output. If an input eof
2013 char is set, it is recognized as EOF and further input from the channel is
2014 not presented to the caller. If an output eof char is set, on output, that
2015 byte is appended to the channel when it is closed. On Unix and Macintosh,
2016 all channels start with no eof char set for input or output. On Windows,
2017 files and pipes start with input and output eof chars set to Crlt-Z (ascii
2018 26), and sockets start with no input or output eof char. (JL)
2019 *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
2020
2021 4/17/96 (bug fix) Fixed series of bugs with handling of crlf sequence split
2022 across buffer boundaries in input, in AUTO mode. (JL, BW)
2023
2024 4/17/96 (test suite improvement) Fixed test suite so that tests that
2025 depend on the availability of Unix commands such as echo, cat and others
2026 are not run if these commands are not present. (JL)
2027
2028 4/17/96 (test suite improvement) The socket test now automatically starts,
2029 on platformst that support exec, a separate process for remote testsing. (JL)
2030
2031 ----------------- Released 7.5, 4/21/96 -----------------------
2032
2033 5/1/96 (bug fix) "file tail ~" did not correctly return the tail
2034 portion of the user's home directory. (SS)
2035
2036 5/1/96 (bug fix) Fixed bug in TclGetEnv where it didn't lookup environment
2037 variables correctly:  could confuse "H" and "HOME", for example.  (JO)
2038
2039 5/1/96 (bug fix) Changed to install tclConfig.sh under "make install-binaries",
2040 not "make install-libraries".  (JO)
2041
2042 5/2/96 (bug fix) Changed pkg_mkIndex not to attempt to "load" a file unless
2043 it has the standard shared library extension.  On SunOS, attempts to load
2044 Tcl scripts cause the whole application to be aborted (there's no way to
2045 get the error back into Tcl).  (JO)
2046
2047 5/7/96 (bug fix) Moved initScript in tclUnixInit.c to writable memory to
2048 avoid potential core dumps. (JO)
2049
2050 5/7/96 (bug fix) Auto_reset procedure was removing procedure from init.tcl,
2051 such as pkg_mkIndex.  (JO)
2052
2053 5/7/96 (bug fix) Fixed cast on socket address resolution code that
2054 would cause a failure to connect on Dec Alphas. (JL)
2055
2056 5/7/96 (bug fix) Added "time", "subst" and "fileevent" commands to set of
2057 commands available in a safe interpreter. (JL)
2058
2059 5/13/96 (bug fix) Preventing OS level handles for stdin, stdout and stderr
2060 from being implicitly closed when the last reference to the standard
2061 channel containing that handle is discarded when an interpreter is deleted.
2062 Explicitly closing standard channels by using "close" still works. (JL)
2063
2064 5/21/96 (bug fix) Do not create channels for stdin, stdout and stderr on
2065 Unix if the devices are closed. This prevents a duplicate channel name
2066 panic later on when the fd is used to open a channel and the channel is
2067 registered in an interpreter. (JL)
2068
2069 5/23/96 (bug fix) Fixed bug that prevented the use of standard channels in
2070 interpreters created after the last interpreter was destroyed. In the sequence
2071
2072         interp = Tcl_CreateInterp();
2073         Tcl_DeleteInterp(interp);
2074         interp = Tcl_CreateInterp();
2075
2076 channels for stdio would not be available in the second interpreter. (JL)
2077
2078 5/23/96 (bug fix) Fixed bug that allowed Tcl_MakeFileChannel to create new
2079 channels with Tcl_Files in them that are already used by another channel.
2080 This would cause core dumps when the Tcl_Files were being freed twice. (JL)
2081
2082 5/23/96 (bug fix) Fixed a logical timing bug that caused a standard channel
2083 to be removed from the standard channel table too early when the channel
2084 was being closed. If the channel was being flushed asynchronously, it could
2085 get recreated before being actually destroyed, and the recreated channel
2086 would contain the same Tcl_File as the one being closed, leading to
2087 dangling pointers and core dumps. (JL)
2088
2089 5/27/96 (bug fix) Fixed a bug in Tcl_GetChannelOption which caused it to
2090 always return a list of one element, a list of the settings, for
2091 -translation and -eofchar options. Now correctly returns the value
2092 described by the documentation (Mark Diekhans found this, thanks!). (JL)
2093
2094 5/30/96 (bug fix) Fixed a couple of syntax errors in io.test. (JL)
2095
2096 5/30/96 (bug fix) If a fileevent scripts gets an error, delete it before
2097 causing a background error. This is to allow the error handler to reinstall
2098 the fileevent and to prevent infinite loops if the event loop is reentered
2099 in the error handler. (JL)
2100
2101 5/31/96 (bug fix) Channels now will get properly flushed on exit. (JL)
2102
2103 6/5/96 (bug fix) Changed Tcl_Ckalloc, Tcl_Ckfree, and Tcl_Ckrealloc to
2104 Tcl_Alloc, Tcl_Free, and Tcl_Realloc.  Added documentation for these
2105 routines now that they are officially supported.  Extension writers
2106 should use these routines instead of free() and malloc(). (SS)
2107
2108 6/10/96 (bug fix) Changes the Tcl close command so that it no longer
2109 waits on nonblocking pipes for the piped processes to exit; instead it
2110 reaps them in the background. (JL)
2111
2112 6/11/96 (bug fix) Increased the length of the listen queue for server
2113 sockets on Unix from 5 to 100. Some OSes will disregard this and reset it
2114 to 5, but we should try to get as long a queue as we can, for performance
2115 reasons. (JL)
2116
2117 6/11/96 (bug fix) Fixed windows sockets bug that caused a cascade of events
2118 if the fileevent script read less than was available. Now reading less than
2119 is available does not cause a flood of Tcl events. (JL, SS)
2120
2121 6/11/96 (bug fix) Fixed bug in background flushing on closed channels that
2122 would prevent the last buffer from getting flushed. (JL)
2123
2124 6/13/96 (bug fix) Fixed bug in Windows sockets that caused a core dump if
2125 a DLL linked with tcl.dll and referred to e.g. ntohs() without opening a
2126 Tcl socket. The problem was that the indirection table was not being
2127 initialized. (JL)
2128
2129 6/13/96 (bug fix) Fixed OS level resource leak that would occur when a
2130 Tcl channel was still registered in some interpreter when the process
2131 exits. Previously the channel was not being closed and the OS level handles
2132 were not being released; the output was being flushed but the device was
2133 not being closed. Now the device is properly closed. This was only a
2134 problem on Win3.1 and MacOS. (JL, SS)
2135
2136 6/28/96 (bug fix) Fixed bug where transient errors were leaving an error
2137 code around, so that it would erroneously get reported later. This bug was
2138 exercised intermittently by closing a channel to a file on a very loaded
2139 NFS server, or to a socket whose other end blocked. (JL, BW)
2140
2141 7/3/96 (bug fix) Fileevents declared in an interpreter are now deleted
2142 when the channel is closed in that interpreter. Before this fix, the
2143 fileevent would hang around until the channel is completely closed, and
2144 would cause errors if events happened before the channel was closed. This
2145 could happen in two cases: first if the channel is shared between several
2146 interpreters, and second if an async flush is in progress that prevents the
2147 channel from being closed until the flush finishes. (JL)
2148
2149 7/10/96 (bug fix) Fixed bugs in both "lrange" and "lreplace" commands
2150 where too much white space was being removed. For example, the command
2151                 lreplace {\}\     hello} end end
2152 was returning "\}\", losing the significant space in the first list
2153 element and corrupting the list. (JO)
2154
2155 7/20/96 (bug fix) The procedure pkg_mkIndex didn't work properly for
2156 extensions that depend on Tk, because it didn't load Tk into the child
2157 interpreter before loading the extension.  Now it loads Tk if Tk is
2158 present in the parent. (JO)
2159
2160 7/23/96 (bug fix) Added compat version of strftime to fix crashes
2161 resulting from bad implementations under Windows. (SS)
2162
2163 7/23/96 (bug fix) Standard implementations of gmtime() and localtime()
2164 under Windows did not handle dates before 1970, so they were replaced
2165 with a revised implementation. (SS)
2166
2167 7/23/96 (bug fix) Tcl would crash on exit under Borland 5.0 because
2168 the global environ pointer was left pointing to freed memory. (SS)
2169
2170 7/29/96 (bug fix) Fixed memory leak in Tcl_LoadCmd that could occur if
2171 a package's AppInit procedure called Tcl_StaticPackage to register
2172 static packages. (JO)
2173
2174 8/1/96 (bug fix) Fixed a series of bugs in Windows sockets so that async
2175 writebehind in the presence of read event handlers now works, and so that
2176 async writebehind also works on sockets for which a read event handler was
2177 declared and whose channels were then closed before the async write
2178 finished. The bug was reported by John Loverso and Steven Wahl,
2179 independently, test case supplied by John Loverso. (JL)
2180
2181 ----------------- Released patch 7.5p1, 8/2/96 -----------------------
2182
2183 5/8/96 (new feature) Added Tcl_GetChannelMode C API for retrieving whether
2184 a channel is open for reading and writing. (JL)
2185
2186 5/8/96 (API changes) Revised C APIs for channel drivers:
2187     - Removed all Tcl_Files from channel driver interface; you can now have
2188       channels that are not based on Tcl_Files.
2189     - Added channelReadyProc and watchChannelProc procedures to interface;
2190       these are used to implement event notification for channels.
2191     - Added getFileProc to channel driver, to allow the generic IO code
2192       to retrieve a Tcl_File from a channel (presumably if the channel
2193       uses Tcl_Files they will be stored inside its instanceData). (JL)
2194 *** INCOMPATIBILITY with Tcl 7.5 ***
2195
2196 5/8/96 (API change) The Tcl_CreateChannel C API was modified to not take
2197 Tcl_File arguments, and instead to take a mask specifying whether the
2198 channel is readable and/or writable. (JL)
2199 *** INCOMPATIBILITY with Tcl 7.5 ***
2200
2201 6/3/96 (bug fix) Made Tcl_SetVar2 robust against the case where the value
2202 of the variable is a NULL pointer instead of "". (JL)
2203
2204 6/17/96 (bug fix) Fixed "reading uninitialized memory" error reported by
2205 Purify, in Tcl_Preserve/Tcl_Release. (JL)
2206
2207 8/9/96 (bug fix) Fixed bug in init.tcl that caused incorrect error message
2208 if the act of autoloading a procedure caused the procedure to be invoked
2209 again. (JO)
2210
2211 8/9/96 (bug fix) Configure script produced bad library names and extensions
2212 under SunOS and a few other platforms if the --disable-load switch was used.
2213 (JO)
2214
2215 8/9/96 (bug fix) Tcl_UpdateLinkedVar generated an error if the variable
2216 being updated was read-only. (JO)
2217
2218 8/14/96 (bug fix) The macintosh now supports synchronous socket
2219 connections.  Other minor bugs were also fixed. (RJ)
2220
2221 8/15/96 (configuration improvement) Changed the file patchlevel.h
2222 to be tclPatch.h.  This avoids conflict with the Tk file and is now
2223 in 8.3 format on the Windows platform. (RJ)
2224
2225 8/20/96 (bug fix) Fixed core dump in interp alias command for interpreters
2226 created with Tcl_CreateInterp (as opposed to with Tcl_CreateSlave). (JL)
2227
2228 8/20/96 (bug fix) No longer masking ECONNRESET on Windows sockets so
2229 that the higher level of the IO mechanism sees the error instead of
2230 entering an infinite loop. (JL)
2231
2232 8/20/96 (bug fix) Destroying the last interpreter no longer closes the
2233 standard channels. (JL)
2234
2235 8/20/96 (bug fix) Closing one of the stdin, stdout or stderr channels and
2236 then opening a new channel now correctly assigns the new channel as the
2237 standard channel that was closed. (JL)
2238
2239 8/20/96 (bug fix) Added code to unix/tclUnixChan.c for using ioctl with
2240 FIONBIO instead of fcntl with O_NONBLOCK, for those versions of Unix where
2241 either O_NONBLOCK is not supported or implemented incorrectly. (JL)
2242
2243 8/21/96 (bug fix) Fixed "file extension" so it correctly returns the
2244 extension on files like "foo..c" as "..c" instead of ".c". (SS)
2245
2246 8/22/96 (bug fix) If environ[] contains static strings, Tcl would core
2247 dump in TclSetupEnv because it was trying to write NULLs into the actual
2248 data in environ[]. Now we instead copy as appropriate. (JL)
2249
2250 8/22/96 (added impl) Added missing implementation of Tcl_MakeTcpClientChannel
2251 for Windows platform. Code contributed by Mark Diekhans. (JL)
2252
2253 8/22/96 (new feature) Added a new memory allocator for the Macintosh
2254 version of Tcl.  It's quite a bit faster than MetroWerk's version. (RJ)
2255
2256 8/26/96 (documentation update) Removed old change bars (for all changes
2257 in Tcl 7.5 and earlier releases) from manual entries. (JO)
2258
2259 8/27/96 (enhancement) The exec and open commands behave better and work in 
2260 more situations under Windows NT and Windows 95.  Documentation describes 
2261 what is still lacking. (CS)
2262
2263 8/27/96 (enhancement) The Windows makefiles will now compile even if the
2264 compiler is not in the path and/or the compiler's environment variables
2265 have not been set up. (CS) 
2266
2267 8/27/96 (configuration improvement) The Windows resource files are 
2268 automatically updated when the version/patch level changes.  The header file
2269 now has a comment that reminds the user which other files must be manually
2270 updated when the version/patch level changes. (CS)
2271
2272 8/28/96 (new feature) Added file manipulation features (copy, rename, delete,
2273 mkdir) that are supported on all platforms. They are implemented as 
2274 subcommands to the "file" command. See the documentation for the "file"
2275 command for more information. (JH)
2276
2277 ----------------- Released 7.6b1, 8/30/96 -----------------------
2278
2279 9/3/96 (bug fix) Simplified code so that standard channels are created
2280 lazily, they are added to an interpreter lazily, and they are never added
2281 to a safe interpreter. (JL)
2282
2283 9/3/96 (bug fix) Closing a channel after closing a standard channel, e.g.
2284 stdout, would cause the implicit recreation of that standard channel. (JL)
2285
2286 9/3/96 (new feature) Now calling Tcl_RegisterChannel with a NULL
2287 interpreter increments the refcount so that code outside any interpreter
2288 can use channels that are also registered in interpreters, without worrying
2289 that the channel may turn into a dangling pointer at any time. Calling
2290 Tcl_UnregisterChannel with a NULL interpreter only decrements the recount
2291 so that code outside any interpreter can safely declare it is no longer
2292 interested in a channel. (JL)
2293
2294 9/4/96 (new features) Two changes to dynamic loading:
2295     - If the file name is empty in the "load" command and there is no
2296       statically loaded version of the package, a dynamically loaded
2297       version will be used if there is one.
2298     - Tcl_StaticPackage ignores redundant calls for the same package. (JO)
2299
2300 9/6/96 (bug fix) Platform specific procedures for manipulating files are
2301 no longer macros and have been prefixed with "Tclp", such as TclpRenameFile.
2302 Unix file code now handles symbolic links and other special files correctly.
2303 The semantics of file copy and file rename has been changed so that if
2304 a target directory exists, the source files will NOT be merged with the
2305 existing files. (JH)
2306
2307 9/6/96 (bug fix) If standard channel is NULL, because Tcl cannot connect
2308 to the standard channel, do not increment the refcount. The channel can
2309 be NULL if there is for example no standard input. (JL)
2310
2311 9/6/96 (portability improvement) Changed parsing of backslash sequences
2312 like \n to translate directly to absolute values like 0xa instead of
2313 letting the compiler do the translation.  This guarantees that the
2314 translation is done the same everywhere. (JO)
2315
2316 9/9/96 (bug fix) If channel is opened and not associated with any
2317 interpreter, but Tcl decides to use it as one of the standard channels, it
2318 became impossible to close the channel with Tcl_Close -- instead you had
2319 to call Tcl_UnregisterChannel. Fixed now so that it's safe to call
2320 Tcl_Close even when Tcl is using the channel as one of the standard ones. (JL)
2321
2322 9/11/96 (feature change) The Tcl library is now placed in the Tcl
2323 shared libraries resource.  You no longer need to place the Tcl files
2324 in your applications explicitly.  (RJ)
2325
2326 9/11/96 (feature change) Extensions no longer automatically have the
2327 resource fork of the extension opened for it.  Instead you need to
2328 use the tclMacLibrary.c file in your extension.  (RJ)
2329 *** POTENTIAL INCOMPATIBILITY ***
2330
2331 9/12/96 (bug fix) The extension loading mechanism on the Macintosh now
2332 looks at the 'cfrg' resource to determine where to load the code
2333 fragment from.  This means FAT fragments should now work. (RJ)
2334
2335 9/18/96 (enhancement) The exec and open commands behave better and work in
2336 more situations under Windows 3.X.  Documentation describes what is still
2337 lacking.  (CS)
2338
2339 9/19/96 (bug fix) Fixed a panic which would occur if you delete a
2340 non-existent alias before any aliases are created. Now instead correctly
2341 returns an error that the alias is not found. (JL)
2342
2343 9/19/96 (bug fix) Slave interpreters could rename aliases and they would
2344 not get deleted when the alias was being redefined. This led to dangling
2345 pointers etc. (JL)
2346
2347 9/19/96 (bug fix) Fixed a panic where a hash table entry was being deleted
2348 twice during alias management operations. (JL)
2349
2350 9/19/96 (bug fix) Fixed bug in event loop that could cause the input focus
2351 in Tk to get confused during menu traversal, among other problems.  The
2352 problem was related to handling of the "marker" when its event was
2353 deleted. (JO)
2354
2355 9/26/96 (bug fix) Windows was losing EOF on a socket if the FD_CLOSE event
2356 happened to precede any left over FD_READ events. Now correctly remembers
2357 seeing FD_CLOSE, so that trailing FD_READ events are not discarded if they
2358 do not contain any data. This allows Tcl to correctly get a zero read and
2359 notice EOF. (JL)
2360
2361 9/26/96 (bug fix) Was not resetting READABLE state properly on sockets
2362 under Windows if the driver discarded an FD_READ event because no data was
2363 present. Now correctly resets the state. (JL)
2364
2365 9/30/96 (bug fix) Made EOF sticky on Windows sockets, so that fileevent
2366 readable will fire repeatedly until the socket is closed. Previously the
2367 fileevent fired only once. This could lead to never-closed connections if
2368 the Tcl script in the fileevent wasn't closing the socket immediately. (JL)
2369
2370 10/2/96 (new feature) Improved the package loader:
2371     - Added new variable tcl_pkgPath, which holds the default
2372       directories under which packages are normally installed (each
2373       package goes in a separate subdirectory of a directory in
2374       $tcl_pkgPath).  These directories are included in auto_path by
2375       default.
2376     - Changed the package auto-loader to look for pkgIndex.tcl files 
2377       not only in the auto_path directories but also in their immediate
2378       children.  This should make it easier to install and uninstall
2379       packages (don't have to change auto_path or merge pkgIndex.tcl
2380       files). (JO)
2381
2382 10/3/96 (bug fix) Changed tclsh to look for tclshrc.tcl instead of
2383 tclsh.rc on startup under Windows.  This is more consistent with wish and
2384 uses the right extension. (SS)
2385 *** POTENTIAL INCOMPATIBILITY ***
2386
2387 10/8/96 (bug fix) Convertclock does not parse 24-hour times of the
2388 form "hhmm" correctly when hour = 00.  In the parse code, hour must be
2389 >= 100 for minutes to be non-zero.  Thanks to Lint LaCour for this
2390 bug fix. (RJ)
2391
2392 10/11/96 (bug fix) Under Windows, the pid command returned the process
2393 handle instead of the process id. (SS)
2394
2395 ----------------- Released 7.6, 10/16/96 -----------------------
2396
2397 10/29/96 (bug fix) Under Windows, sockets would consume 100% CPU time after
2398 the first accept(), due to a typo. (JL)
2399
2400 10/29/96 (bug fix) Incorrect refcount management caused standard channels
2401 not to get deleted at process exit or DLL unload time, causing a memory
2402 leak of upwards of 20K each time. (JL)
2403
2404 11/7/96 (bug fix) Auto-exec didn't work on file names that contained
2405 spaces. (JO)
2406
2407 11/8/96 (bug fix) Fixed core dump that would occur if more than one call
2408 to Tcl_DeleteChannelHandler was made to delete a given channel handler. (JL)
2409
2410 11/8/96 (bug fix) Fixed test for return value in Tcl_Seek and Tcl_SeekCmd
2411 to only treat -1 as error, instead of all negative numbers. (JL)
2412
2413 11/12/96 (bug fix) Do not blocking waiting for processes at the end of a
2414 pipe during exit cleanup. (JL)
2415
2416 11/12/96 (bug fix) If we are in exit cleanup, do not close the system level
2417 file descriptors 0, 1 and 2. Previously they were being closed which is
2418 incorrect, in the embedded case. This led to weird behavior for programs
2419 that want to interpose on I/O through the standard file descriptors (e.g.
2420 Netscape Navigator). (JL)
2421
2422 11/15/96 (bug fix) Fixed core dump on Windows sockets due to dependency on
2423 deletion order at exit. Now all socket functions check to see if sockets
2424 are (still) initialized, before calling through function pointers. Before,
2425 they would call and might end up calling unloaded object code. (JL)
2426
2427 11/15/96 (bug fix) Fixed core dump in Windows socket initialization routine
2428 if sockets were not installed on the system. Before, it was not properly
2429 checking the result of attempting to load the socket DLL, so it would call
2430 through uninitialized function pointers. (JL)
2431
2432 11/15/96 (bug fix) Fixed memory leak in Windows sockets which left socket
2433 DLL handle open and could hold the socket DLL in memory uneccessarily,
2434 until a reboot. (JL)
2435
2436 12/4/96 (bug fix) Fixed bug in Macintosh socket code that could result
2437 in lost data if a client was closed too soon after sending data. (RJ)
2438
2439 12/17/96 (bug fix) Fixed deadlock bug in Windows sockets due to losing an
2440 event. This was happening because of an interaction between buffering and
2441 nonblocking mode on sockets. Now switched to sockets being blocking by
2442 default, so we are also no longer emulating blocking through a private
2443 event loop. (JL)
2444
2445 1/21/97 (performance bug fix) Client TCP connections were slow to create
2446 because getservbyname was always called on the port.  Now this is only
2447 done if Tcl_GetInt fails. (BW)
2448
2449 1/21/97 (configuration fix) Made it possible to override TCL_PACKAGE_PATH
2450 during make.  Previously it was only set during autoconf process.
2451
2452 1/29/97 (bug fix) Fixed some problems with the clock command that
2453 impacted how dates were scaned after the year 2000. (RJ)
2454
2455 ----------------- Released 7.6p2, 1/31/97 -----------------------
2456
2457 2/5/97 (bug fix) Fixed a bug where in CR-LF translation mode, \r bytes
2458 in the input stream were not being handled correctly. (JL)
2459
2460 2/24/97 (bug fix) Fix bug with exec under Win32s not being able to create
2461 stderr file which caused all execs to fail.  Fixed temp file leak under
2462 Win32s.  Fixed optional parameter bug with SearchPath that only happened
2463 under Win32s 1.25. (CCS)
2464
2465 ----------------------------------------------------------
2466 Changes for Tcl 7.6 go above this line.
2467 Changes for Tcl 7.7 go below this line.
2468 ----------------------------------------------------------
2469
2470 5/8/96 (new feature) Added Tcl_Ungets C API for putting a sequence of bytes
2471 into a channel's input buffer. This can be used for "push" model channels
2472 where the input is obtained via callbacks instead of by request of the
2473 generic IO code. No Tcl procedure yet. (JL)
2474
2475 11/15/96 (new feature) Implemented hidden commands. New C APIs:
2476         Tcl_HideCommand         -- hides an existing exposed command.
2477         Tcl_ExposeCommand       -- exposes an existing hidden command.
2478 New tcl APIs:
2479         interp invokehidden     -- invokes a hidden command in a slave.
2480         interp hide             -- hides an existing exposed command.
2481         interp expose           -- exposes an existing hidden command.
2482         interp hidden           -- returns a list of hidden commands.
2483 The implementation of Safe Tcl now uses the new hidden commands facility
2484 to implement the safe base, instead of deleting the commands from a safe
2485 interpreter. (JL)
2486
2487 11/15/96 (new feature) Implemented the safe base, a mechanism for
2488 installing and requesting security policies, purely in Tcl code. Overloads
2489 the package command to also allow an interpreter to "require" a policy. The
2490 following new library commands are provided:
2491         tcl_safeCreateInterp    -- creates a slave an initializes the
2492                                    policy mechanism.
2493         tcl_safeInitInterp      -- initializes an existing slave with the
2494                                    policy mechanism.
2495         tcl_safeDeleteInterp    -- deletes a slave and deinitializes the
2496                                    policy mechanism.
2497 Added a new file to the library, safeinit.tcl, to hold implementation. (JL)
2498 On 7/9/97, removed the policy loading mechanism from the Safe Base. Left
2499 only the Safe Base aliases dealing with auto-loading and source. (JL)
2500
2501 12/6/96 (new feature) Implemented Tcl_Finalize, an API that should be
2502 called by a process when it is done using Tcl. This API runs all the exit
2503 handlers to allow them to clean up resources etc. (JL)
2504
2505 12/17/96 (new feature) Add an http Tcl script package to the Tcl library.
2506 This package implements the client side of HTTP/1.0; the GET, HEAD,
2507 and POST requests. (BW)
2508
2509 1/21/97 (new feature) Added a "marktrusted" subcommand to the "interp" and
2510 to the interpreter object command. It removes the "safe" mark on an
2511 interpreter and disables hard-wired checks for safety in the C sources. (JL)
2512
2513 1/21/97 (removed feature) Removed "vwait" from set of commands available in
2514 a safe interpreter. (JL)
2515
2516 2/11/97 (new feature, bug fix) http package.  Added -accept to http_config
2517 so you can set the Accept header.  Added -handler option to http_get so
2518 you can supply your own data handler.  Also fixed POST operation to
2519 set the correct MIME type on the request. (BW)
2520
2521 ----------------------------------------------------------
2522 Changes for Tcl 7.7 go above this line.
2523 Changes for Tcl 8.0 go below this line.
2524 ----------------------------------------------------------
2525
2526 9/17/96 (bug fix) Using "upvar" it was possible to turn an array element
2527 into an array itself.  Changed to disallow this; it was quirky and didn't
2528 really work correctly anyway. (JO)
2529
2530 10/21/96 (new feature) The core of the Tcl interpreter has been replaced
2531 with an on-the-fly compiler that translates Tcl scripts to bytecoded
2532 instructions; a new interpreter then executes the bytecodes. The compiler
2533 introduces only a few minor changes at the level of Tcl scripts. The biggest
2534 changes are to expressions and lists.
2535     - A second level of substitutions is no longer done for expressions.
2536       This substantially improves their execution time. This means that
2537       the expression "$x*4" produces a different result than in the past
2538       if x is "$y+2". Fortunately, not much code depends on the old
2539       two-level semantics. Some expressions that do, such as
2540       "expr [join $list +]" can be recoded to work in Tcl8.0 by adding
2541       an eval: e.g., "eval expr [join $list +]".
2542     - Lists are now completely parsed on the first list operation to
2543       create a faster internal representation. In the past, if you had a
2544       misformed list but the erroneous part was after the point you
2545       inserted or extracted an element, then you never saw an error.
2546       In Tcl8.0 an error will be reported. This should only effect
2547       incorrect programs that took advantage of behavior of the old
2548       implementation that was not documented in the man pages.
2549 Other changes to Tcl scripts are discussed in the web page at
2550 http://www.scriptics.com/doc/compiler.html. (BL)
2551 *** POTENTIAL INCOMPATIBILITY ***
2552
2553 10/21/96 (new feature) In earlier versions of Tcl, strings were used as a
2554 universal representation; in Tcl 8.0 strings are replaced with Tcl_Obj
2555 structures ("objects") that can hold both a string value and an internal
2556 form such as a binary integer or compiled bytecodes. The new objects make it
2557 possible to store information in efficient internal forms and avoid the
2558 constant translations to and from strings that occurred with the old
2559 interpreter. There are new many new C APIs for managing objects. Some of the
2560 new library procedures for objects (such as Tcl_EvalObj) resemble existing
2561 string-based procedures (such as Tcl_Eval) but take advantage of the
2562 internal form stored in Tcl objects for greater speed. Other new procedures
2563 manage objects and allow extension writers to define new kinds of objects.
2564 See the manual entries doc/*Obj*.3 (BL)
2565
2566 10/24/96 (bug fix) Fixed memory leak on exit caused by some IO related
2567 data structures not being deallocated on exit because their refcount was
2568 artificially boosted. (JL)
2569
2570 10/24/96 (bug fix) Fixed core dump in Tcl_Close if called with NULL
2571 Tcl_Channel. (JL)
2572
2573 11/19/96 (new feature) Added library procedures for finding word
2574 breaks in strings in a platform specific manner.  See the library.n
2575 manual entry for more information. (SS)
2576
2577 11/22/96 (feature improvements) Added support for different levels of
2578 tracing during bytecode compilation and execution. This should help in
2579 tracking down suspected problems with the compiler or with converting
2580 existing code to use Tcl8.0. Two global Tcl variables, traceCompile
2581 and traceExec, can be set to generate tracing information in stdout:
2582     - traceCompile: 0  no tracing (default)
2583                     1  trace compilations of top level commands and procs
2584                     2  trace and display instructions for all compilations
2585     - traceExec:    0  no tracing
2586                     1  trace only calls to Tcl procs
2587                     2  trace invocations of all commands including procs
2588                     3  detailed trace showing the result of each instruction
2589 traceExec >= 2 provides a one line summary of each called command and
2590 its arguments. Commands that have been "compiled away" such as set are
2591 not shown. (BL)
2592
2593 11/30/96 (bug fix) The command "info nameofexecutable" could sometimes
2594 return the name of a directory. (JO)
2595
2596 11/30/96 (feature improvements) Changed the code in library/init.tcl
2597 that reads in pkgIndex.tcl so that (a) it reads the files from child
2598 directories before those in the parent, so that the parent gets
2599 precedence, and (b) it doesn't quit if there is an error in a
2600 pkgIndex.tcl file;  instead, it prints an error message on standard
2601 error and continues. (JO)
2602
2603 10/5/96 (feature improvements) Partial implementation of binary string
2604 support: the ability for Tcl string values to contain embedded null bytes.
2605 Changed the Tcl object-based APIs to take a byte pointer and length pair
2606 instead of a null-terminated C string. Modified several object type managers
2607 to support binary strings but not, for example, the list type manager.
2608 Existing string-based C APIs are unchanged and will truncate binary
2609 strings. Compiled scripts containing nulls are also truncated. (BL)
2610
2611 12/12/96 (feature change) Removed the commands "cp", "mkdir", "mv",
2612 "rm", and "rmdir" from the Macintosh version of Tcl.  They were never
2613 officially supported and their functionality is now available via
2614 the file command. (RJ)
2615
2616 ----------------- Released 8.0a1, 12/20/96 -----------------------
2617
2618 1/7/97 (bug fix) Under Windows, "file stat c:" was returning error instead
2619 of stat for current dir on c: drive.
2620
2621 1/10/97 (new feature) Added Tcl_GetIndexFromObj procedure for quick
2622 lookups of keyword arguments. (JO)
2623
2624 1/12/97 (new feature) Serial IO channel drivers for Windows and Unix,
2625 available by using Tcl open command to open pseudo-files like "com1:" or
2626 "/dev/ttya".  New option to Tcl fconfigure command for serial files:  
2627 "-mode baud,parity,data,stop" to specify baud rate, parity, data bits, and
2628 stop bits.  Serial IO is not yet available on Mac.
2629
2630 1/16/97 (feature change) Restored the Tcl7.x "two level substitution
2631 semantics" for expressions. Expressions not enclosed in braces are
2632 implemented, in general, by calling the expr command procedure
2633 (Tcl_ExprObjCmd) at runtime after the Tcl interpreter has already done a
2634 first round of substitutions. This is slow (about Tcl7.x speed) because new
2635 code for the expression is generally compiled each time. However, if the
2636 expression has only variable substitutions (and not command substitutions),
2637 "optimistic" fast code is generated inline. This inline code will fail if a
2638 second round of substitutions is needed (i.e., if the value of a substituted
2639 variable itself requires more substitutions). The optimistic code will
2640 catch the error and back off to call the slower but guaranteed correct
2641 expr command procedure. (BL)
2642
2643 1/16/97 (feature improvements) Added Tcl_ExprLongObj and Tcl_ExprDoubleObj
2644 to round out expression-related procedures. (BL)
2645
2646 1/16/97 (feature change) Under Windows, at startup the environment variables
2647 "path", "comspec", and "windir" in any capitalization are converted
2648 automatically to upper case.  The PATH variable could be spelled as path,
2649 Path, PaTh, etc. and it makes programming rather annoying.  All other
2650 environment variables are left alone. (CS)
2651
2652 1/20/97 (new features) Rewrote the "lsort" command:
2653     - The new version is based on reentrant merge sort code provided
2654       by Richard Hipp, so it eliminates the reentrancy and stability
2655       problems with the old qsort-based implementation.
2656     - The new version supports a -dictionary option for sorting, and
2657       it also supports a -index option for sorting lists using one
2658       element for comparison.
2659     - The new version is an object command, so it works well with the
2660       Tcl compiler, especially in conjunction with the new -index
2661       option.  When the -index option is used, this version of lsort
2662       is more than 100 times faster than the Tcl 7.6 lsort, which had
2663       to use the -command option to get the same effect. (JO)
2664
2665 1/20/97 (feature improvements) Added the improved debugging support for Tcl
2666 objects prototyped by Karl Lehenbauer <karl@hammer1.ops.NeoSoft.com>.
2667 If TCL_MEM_DEBUG is defined, the object creation calls use Tcl_DbCkalloc
2668 directly in order to record the caller's source file name and line
2669 number. (BL)
2670
2671 1/21/97 (removed feature) Desupported the tcl_precision variable: if
2672 set, it is ignored.  Tcl now uses the full 17 digits of precision when
2673 converting real numbers to strings (with the new object system real
2674 numbers are rarely converted to strings so there is no efficiency
2675 disadvantage to printing all 17 digits; the new scheme improves
2676 accuracy and simplifies several APIs). (JO)
2677 *** POTENTIAL INCOMPATIBILITY ***
2678
2679 1/21/97 (feature change) Removed the "interp" argument for the
2680 procedures Tcl_GetStringFromObj, Tcl_StringObjAppend, and
2681 Tcl_StringObjAppendObj.  Also removed the "interp" argument for
2682 the updateStringProc procedure in Tcl_ObjType structures.  With
2683 the tcl_precision changes above, these are no longer needed. (JO)
2684 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a1, but not with Tcl 7.6 ***
2685
2686 1/22/97 (bug fix) Fixed http.tcl so that http_reset does not result in
2687 an extra call to the command callback.  In addition, if the transaction
2688 gets a premature eof, the state(status) is "eof", not "ok". (BW)
2689
2690 ----------------- Released 8.0a2, 1/24/97 -----------------------
2691
2692 1/29/97 (feature change) Changed how two digit years are parsed in the
2693 clock command.  The old interface just added 1900 which will seem
2694 broken by the year 2000.  The new scheme follows the POSIX standard
2695 and treats dates 70-99 as 1970-1999 and dates 00-38 as 2000-2038.  All
2696 other two digit dates are undefined. (RJ)
2697 *** POTENTIAL INCOMPATIBILITY ***
2698
2699 2/4/97 (bug fix) Fixed bug in clock code that dealt with relative
2700 dates.  Using the relative month code you could get an invalid date
2701 because it jumped into a non-existant day.  (For example, Jan 31
2702 to Feb 31.)  The code now will return the last valid day of the
2703 month in these situations.  Thanks to Hume Smith for sending in
2704 this bug fix.  (RJ)
2705
2706 2/10/97 (feature change) Eliminated Tcl_StringObjAppend and 
2707 Tcl_StringObjAppendObj procedures, replaced them with Tcl_AppendToObj
2708 and Tcl_AppendStringsToObj procedures.  Added new procedure
2709 Tcl_SetObjLength. (JO)
2710 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2, but not with Tcl 7.6 ***
2711
2712 2/10/97 (new feature) Added Tcl_WrongNumArgs procedure for generating
2713 error messages about incorrect number of arguments. (JO)
2714
2715 2/11/97 (new feature, bug fix) http package.  Added -accept to http_config
2716 so you can set the Accept header.  Added -handler option to http_get so
2717 you can supply your own data handler.  Also fixed POST operation to
2718 set the correct MIME type on the request. (BW)
2719
2720 2/22/97 (bug fix) Fixed bug that caused $tcl_platform(osVersion) to be
2721 computed incorrectly under AIX. (JO)
2722
2723 2/25/97 (new feature, feature change) Added support for both int and long
2724 integer objects. Added Tcl_NewLongObj/Tcl_GetLongFromObj/Tcl_SetLongFromObj
2725 procedures and renamed the Tcl_Obj internalRep intValue member to
2726 longValue. Tcl_GetIntFromObj now checks for integer values too large to
2727 represent as non-long integers. Changed Tcl_GetAllObjTypes to
2728 Tcl_AppendAllObjTypes. (BL)
2729
2730 3/5/97 (new feature) Added new Tcl_SetListObj procedure to round out
2731 collection of procedures that set the type and value of existing Tcl
2732 objects. (BL)
2733
2734 3/6/97 (new feature) Added -global flag for interp invokehidden. (JL)
2735
2736 3/6/97 (new feature, feature change) Added isNativeObjectProc field to the
2737 Tcl_CmdInfo structure to indicate (when 1) if the command has an
2738 object-based command procedure. Removed the nameLength arg from
2739 Tcl_CreateObjCommand since command names can't contain null characters. (BL)
2740
2741 3/6/97 (bug fix) Fixed bug in "unknown" procedure that caused auto-
2742 loading to fail on commands whose names begin with digits. (JO)
2743
2744 3/7/97 (bug fix) Auto-loading now works in Safe Base. Safe interpreters
2745 only accept the Version 2 and onwards tclIndex files. (JL)
2746
2747 3/13/97 (bug fix) Fixed core dump due to interaction between aliases and
2748 hidden commands. Bug found by Lindsay Marshall. (JL)
2749
2750 3/14/97 (bug fix) Fixed mac bugs relating to time.  The -gmt option
2751 now adjusts the time in the correct direction.  (Thanks to Ed Hume for
2752 reporting a fix to this problem.)  Also fixed file "mtime" etc. to
2753 return times from GMT rather than local time zone.  (RJ)
2754
2755 3/18/97 (feature change) Declaration of objv in Tcl_ObjCmdProc function
2756 changed from "Tcl_Obj *objv[]" to "Tcl_Obj *CONST objv[]".  All Tcl object
2757 commands changed to use new declaration of objv.  Naive translation of
2758 string-based command procs to object-based command procs could very easily
2759 have yielded code where the contents of the objv array were changed.  This
2760 is not a problem with string-based command procs, but doing something as
2761 simple as objv[2] = objv[3] would corrupt the runtime stack and cause Tcl to
2762 crash.  Introduced CONST in declaration of objv so that attempted assignment
2763 of new pointer values to elements of the objv array will be caught by the
2764 compiler. (CCS)
2765 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 ***
2766
2767 3/19/97 (bug fix) Fixed panic due to object sharing. The root cause was
2768 that old code was using Tcl_ResetResult instead of Tcl_ResetObjResult. (JL)
2769
2770 3/20/97 (new feature) Added a new subcommand for the file
2771 command. file attributes filename can give a list of platform-specific
2772 options (such as file/creator type on the Mac, permissions on Unix) or
2773 set the values of them. Added a new subcommand for the file
2774 command. file nativename name gives back the platform-specific form
2775 for the file. This is useful when the filename is needed to pass to
2776 the OS, such as exec under Windows 95 or AppleScript on the Mac. For
2777 more info, see file.n. (SRP)
2778
2779 3/24/97 (removed feature) Removed the tcl_safePolicyPath procedure. Now
2780 the policy path is computed from the auto_path by appending the directory
2781 'policies' to each element. Also fixed several bugs in automatic tracking
2782 of auto_path by computed policy path. (JL)
2783 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 ***
2784
2785 4/8/97 (new feature) If the variable whose name is passed to lappend doesn't
2786 already exist, and there are no value arguments, lappend now creates the
2787 variable with an empty value instead of returning an error. Change suggested
2788 by Tom Tromey. (BL)
2789
2790 4/9/97 (feature change) Changed the name of the TCL_PART1_NOT_PARSED flag to
2791 TCL_PARSE_PART1. (BL)
2792 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 ***
2793
2794 4/10/97 (bug fixes) Fixed various compilation-related bugs:
2795     - "UpdateStringOfCmdName should never be invoked" panic.
2796     - Bad code generated for expressions not in {}'s inside catch commands.
2797     - Segmentation fault in some command procedures when two argument
2798       object pointers refer to the same object.
2799     - Second level of substitutions were never done for expressions not
2800       in {}'s that consist of a single variable reference: e.g.,
2801       "set x 27; set bool {$x}; if $bool {puts foo}" would fail with error.
2802     - Bad code generated when code storage was grown while compiling some
2803       expressions: ones with compilation errors or consisting of only a
2804       variable reference.
2805     - Bugs involving multiple interpreters: wasn't checking that a
2806       procedure's code was compiled for the same interpreter as the one
2807       executing it, and didn't invalidate code on hidden-exposed command
2808       transitions.
2809     - "Bad stack top" panic when executing scripts that require a huge
2810       amount of stack space.
2811     - Incorrect sharing of code for procedure bodies, and procedure code
2812       deallocated before last execution of the procedure finished.
2813     - Fixed compilation of expression words in quotes. For example,
2814       if "0 < 3" {puts foo}.
2815     - Fixed performance bug in array set command with large assignments.
2816     - Tcl_SetObjLength segmentation fault setting length of empty object.
2817     - If Tcl_SetObjectResult was passed the same object as the interpreter's
2818       result object, it freed the object instead of doing nothing. Bug fix
2819       by Michael J. McLennan.
2820     - Tcl_ListObjAppendList inserted elements from the wrong list. Bug fix
2821       by Michael J. McLennan.
2822     - Segmentation fault if empty variable list was specified in a foreach
2823       command. Bug fix by Jan Nijtmans.
2824     - NULL command name was always passed to Tcl_CreateTrace callback
2825       procedure.
2826     - Wrong string representation generated for the value LONG_MIN.
2827       For example, expr 1<<31 printed incorrectly on a 32 bit machine.
2828     - "set {a($x)} 1" stored value in wrong variable.
2829     - Tcl_GetBooleanFromObj was not checking for garbage after a numeric
2830       value.
2831     - Garbled "bad operand type" error message when evaluating expressions
2832       not surrounded by {}'s. (BL)
2833
2834 4/16/97 (new feature) The expr command now has the "rand()" and
2835 "srand()" functions for getting random numbers in expr. (RJ)
2836
2837 4/23/97 (bug fix) Fixed core dump in bgerror when the error handler command
2838 deletes the current interpreter. Found by Juergen Schoenwald. (JL)
2839
2840 4/23/97 (feature change) The notifier interfaces have been redesigned
2841 to make embedding in applications with external event loops possible.
2842 A number of interfaces in the notifier and the channel drivers have
2843 changed.  Refer to the Notifier.3 and CrtChannel.3 manual entries for
2844 more details. (SS)
2845 *** POTENTIAL INCOMPATIBILITY ***
2846
2847 4/23/97 (removed feature) The Tcl_File interfaces have been removed.
2848 The Tcl_CreateFileHandler/Tcl_DeleteFileHandler interfaces now take
2849 Unix fd's and are only supported on the Unix platform.
2850 Tcl_GetChannelFile has been replaced with Tcl_GetChannelHandle.
2851 Tcl_MakeFileChannel now takes a platform specific file handle. (SS)
2852 *** POTENTIAL INCOMPATIBILITY ***
2853
2854 4/23/97 (removed feature) The modal timeout interface has been
2855 removed (Tcl_CreateModalTimeout/Tcl_DeleteModalTimeout) (SS)
2856 *** POTENTIAL INCOMPATIBILITY ***
2857
2858 4/23/97 (feature change) Channel drivers are now required to correctly
2859 implement blocking behavior when they are in blocking mode. (SS)
2860 *** POTENTIAL INCOMPATIBILITY ***
2861
2862 4/23/97 (new feature) Added the "binary" command for manipulating
2863 binary strings. Also, changed the "puts", "gets", and "read" commands
2864 to preserve embedded nulls.  (SS)
2865
2866 4/23/97 (new feature) Added tcl_platform(byteOrder) element to the
2867 tcl_platform array to identify the native byte order for the current
2868 host. (SS)
2869
2870 4/23/97 (bug fix) Fixed bug in date parsing around year boundaries. (SS)
2871
2872 4/24/97 (bug fix) In the process of copying a file owned by another user,
2873 Tcl was changing the owner of the copy back to the owner of the original
2874 file, therefore causing further file operations to fail because the current
2875 user didn't own the copy anymore.  The owner of the copy is now left as the
2876 current user. (CCS)
2877
2878 4/24/97 (feature change) Under Windows, don't automatically uppercase the
2879 environment variable "windir" -- it's supposed to be lower case.  (CCS)
2880
2881 4/29/97 (new feature) Added namespace support based on a namespace
2882 implementation by Michael J. McLennan of Lucent Technologies. A namespace
2883 encapsulates a collection of commands and variables to ensure that they
2884 won't interfere the commands and variables of other namespaces. The global
2885 namespace holds all global variables and commands. Additional namespaces are
2886 created with the new namespace command. The new variable command lets you
2887 create Tcl variables inside a namespace. The names of Tcl variables and
2888 commands may now be qualified by the name of the namespace containing them.
2889 The key namespace-related commands are summarized below:
2890     - namespace ?eval? name arg ?arg...?
2891          Used to define the commands and variables in a namespace.
2892          Optionally creates the namespace.
2893     - namespace export ?-clear? ?pattern pattern...?
2894          Specifies which commands are exported from a namespace. These
2895          are the ones that can be imported into another namespace.
2896     - namespace import ?-force? ?pattern pattern...?
2897          Makes the specified commands accessible in the current namespace.
2898     - namespace current
2899          Returns the name of the current namespace.
2900     - variable name ?value? ?name ?value?...?
2901          Creates one or more namespace variables. (BTL)
2902
2903 5/1/97 (bug fix) Under Windows, file times were reported in GMT.  Should be
2904 reported in local time. (CCS)
2905
2906 5/2/97 (feature change) Changed the name of the two Tcl variables used for
2907 tracing bytecode compilation and execution to tcl_traceCompile and
2908 tcl_traceExec respectively. These variables are now documented in the
2909 tclvars man page. (BL)
2910
2911 5/5/97 (new feature) Support "end" as the index for "lsort -index". (BW)
2912
2913 5/5/97 (bug fixes) Cleaned up the way the http package resets connections (BW)
2914
2915 5/8/97 (feature change) Newly created Tcl objects now have a reference count
2916 of zero instead of one. This simplifies C code that stores newly created
2917 objects in Tcl variables or in data structures such as list objects. That C
2918 code must increment the new object's reference count since the variable or
2919 data structure will contain a long-term reference to the object. Formerly,
2920 when new objects started out with reference count one, it was necessary to
2921 decrement the new object's reference count after the store to make sure it
2922 was left with the correct value; this is no longer necessary. (BL)
2923
2924 5/9/97 (new feature) Added the Tcl_GetsObj interface that takes an
2925 object reference instead of a dynamic string (as in Tcl_Gets). (SS)
2926
2927 5/12/97 (new feature) Added Tcl_CreateAliasObj and Tcl_GetAliasObj C APIs
2928 to allow an alias command to be created with a vector of Tcl_Obj structures
2929 and to get the vector back later. (JL)
2930
2931 5/12/97 (feature change) Changed Tcl_ExposeCommand and Tcl_HideCommand to
2932 leave an object result instead of a string result. (JL)
2933
2934 5/14/97 (feature change) Improved the handling of the interpreter result.
2935 This is still either an object or a string, but the two values are now kept
2936 consistent unless some C code reads or writes interp->result directly. See
2937 the SetResult man page for details. Removed the Tcl_ResetObjResult
2938 procedure. (BL)
2939 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 ***
2940
2941 5/16/97 (new feature) Added "fcopy" command to move data between
2942 channels.  Refer to the manual page for more information.  Removed the
2943 "unsupported0" command since it is obsolete now.  (SS)
2944
2945 5/16/97 (new feature) Added Tcl_GetStringResult procedure to allow programs
2946 to get an interpreter's result as a string. If the result was previously set
2947 to an object, this procedure will convert the object to a string. Use of
2948 Tcl_GetStringResult is intended to replace direct access to interp->result,
2949 which is not safe. (BL)
2950
2951 5/20/97 (new features) Fixed "fcopy" to return the number of bytes
2952 transferred in the blocking case.  Updated the http package to use
2953 fcopy instead of unsupported0.  Added -timeout and -handler options to
2954 http_get.  http_get is now blocking by default.  It is only non-blocking
2955 if you supply a -command argument. (BW)
2956
2957 5/22/97 (bug fix) Fixed several bugs in the "lsort" command having to do
2958 with the -dictionary option and the presence of numbers embedded in the
2959 strings.  (JO)
2960
2961 ----------------- Released 8.0b1, 5/27/97 -----------------------
2962
2963 6/2/97 (bug fix) Fixed bug in startup code that caused a problem in
2964 finding the library files when they are installed in a directory
2965 containing a space in the name. (SS)
2966
2967 6/2/97 (bug fix) Fixed bug in Unix notifier where the select mask was
2968 not being cleared under some circumstances. (SS)
2969
2970 6/4/97 (bug fix) Fixed bug that prevented creation of Tk widgets in
2971 namespaces. Tcl_CreateObjCommand and Tcl_CreateCommand now always create
2972 commands in the global namespace unless the command names are qualified. Tcl
2973 procedures continue to be created in the current namespace by default. (BL)
2974
2975 6/6/97 (new features) Added new namespace API procedures
2976 Tcl_AppendExportList and Tcl_Export to allow C code to get and set a
2977 namespace's export list. (BL)
2978
2979 6/11/97 (new feature) Added Tcl_ConcatObj. This object-based routine
2980 parallels the string-based routine Tcl_Concat. (SRP)
2981
2982 6/11/97 (new feature) Added Tcl_SetObjErrorCode. This object-based
2983 routines parallels the string-based routine Tcl_SetErrorCode. (SRP)
2984
2985 6/12/97 (bug fix) Fix the "unknown" procedure so that wish under Windows
2986 will exec an external program, instead of always complaining "console1 not
2987 opened for writing". (CCS)
2988
2989 6/12/97 (bug fix) Fixed core dump experienced by the following simple
2990 script:
2991         interp create x
2992         x alias exec exec
2993         interp delete x
2994 This panic was caused by not installing the new CmdDeleteProc when exec
2995 got redefined by the alias creation step. Reported by Lindsay Marshal (JL)
2996
2997 6/13/97 (new features) Tcl objects newly created by Tcl_NewObj now have a
2998 string representation that points to a shared heap string of length 1. (They
2999 used to have NULL bytes and typePtr fields. This was treated as a special
3000 case to indicate an empty string, but made type manager implementations
3001 complex and error prone.) The new procedure Tcl_InvalidateStringRep is used
3002 to mark an object's string representation invalid and to free any storage
3003 associated with the old string representation. (BL)
3004 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 ***
3005
3006 6/16/97 (bug fix) Tcl_ScanCountedElement could leave braces unmatched
3007 if the string ended with a backslash. (JO)
3008
3009 6/17/97 (bug fix) Fixed channel event bug where readable events would be
3010 lost during recursive events loops if the input buffers contained
3011 data. (SS)
3012
3013 6/17/97 (bug fix) Fixed bug in Windows socket code that didn't
3014 reenable read events in the case where an external entity is also
3015 reading from the socket. (SS)
3016
3017 6/18/97 (bug fix) Changed initial setting of the notifier service mode
3018 to TCL_SERVICE_NONE to avoid unexpected event handling during
3019 initialization. (SS)
3020
3021 6/19/97 (bug fix/feature change) The command callback to fcopy is now
3022 called in case of errors during the background copy.  This adds a second,
3023 optional argument to the callback that is the error string.  The callback
3024 in case of errors is required for proper cleanup by the user of fcopy. (BW)
3025 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 ***
3026
3027 6/19/97 (bug fix) Fixed a panic due to the following four line script:
3028         interp create x
3029         x alias foo bar
3030         x eval rename foo blotz
3031         x alias foo {}
3032 The problem was that the interp code was not using the actual current name
3033 of the command to be deleted as a result of un-aliasing foo. (JL)
3034
3035 6/19/97 (feature change) Pass interp down to the ChannelOption and
3036 driver specific calls so system errors can be differentiated from syntax
3037 ones. Changed Tcl_DriverGetOptionProc type. Affects Tcl_GetChannelOption,
3038 TcpGetOptionProc,  TtyGetOptionProc, etc. (DL)
3039 *** POTENTIAL INCOMPATIBILITY ***
3040
3041 6/19/97 (new feature) Added Tcl_BadChannelOption for use by by driver
3042 specific option procedures (Set and Get) to return a complete and
3043 meaningful error message. (DL)
3044
3045 6/19/97 (bug fixes) If a system call error occurs while doing an
3046 fconfigure on tcp or tty/com channel: return the appropriate error
3047 message (instead of the syntax error one or none). (Fixed for Unix and
3048 most of the Win and Mac drivers). (DL)
3049
3050 6/20/97 (feature change) Eval is no longer assumed as the subcommand name
3051 in namespace commands: you must now write "namespace eval nsName {...}".
3052 Abbreviations of namespace subcommand names are now allowed. (BL)
3053 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 ***
3054
3055 6/20/97 (feature change) Changed the errorInfo traceback message for
3056 compilation errors from "invoked from within" to "while compiling". (BL)
3057
3058 6/20/97 (bug fixes) Fixed various compilation-related bugs:
3059     - "UpdateStringOfCmdName should never be called" and
3060       "UpdateStringOfByteCode should never be called" panics.
3061     - Segfault in TclObjInterpProc getting procedure name after evaluation
3062       stack is reallocated (grown).
3063     - Could not use ":" at end of variable and command names.
3064     - Bad code generated for while and for commands with test expressions
3065       enclosed in quotes: e.g., "set i 0; while "$i > 5" {}".
3066     - Command trace procedures would crash if they did a Tcl_EvalObj that
3067       reallocated the evaluation stack.
3068     - Break and continue commands did not reset the interpreter result.
3069     - The Tcl_ExprXXX routines, both string- or object-based, always
3070       modified the interpreter result even if there was no error.
3071     - The argument parsing procedure used by several compile procedures
3072       always treated "]" as end of a command: e.g., "set a ]" would fail.
3073     - Changed errorInfo traceback message for compilation errors from 
3074       "invoked from within" to "while compiling".
3075     - Problem initializing Tcl object managers during interpreter creation.
3076     - Added check and error message if formal parameter to a procedure is
3077       an array element. (BL)
3078
3079 6/23/97 (new feature) Added "registry" package to allow manipulation
3080 of the Windows system registry.  See manual entry for details. (SS)
3081
3082 6/24/97 (feature change) Converted http to a package and added the
3083 http1.0 subdirectory of the Tcl script library.  This means you have
3084 to do a "package require http" to use this, as advertised in the man page. (BW)
3085 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 ***
3086
3087 6/24/97 (bug fix) Ensure that Tcl_Set/GetVar C APIs, when called without
3088 TCL_LEAVE_ERR_MSG, don't touch the interp result. (DL)
3089
3090 6/26/97 (feature change) Changed name of Tcl_ExprStringObj to
3091 Tcl_ExprObj. (BL)
3092 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 ***
3093
3094 ----------------- Released 8.0b2, 6/30/97 -----------------------
3095
3096 7/1/97 (new feature) TCL_BUILD_SHARED flag set in tclConfig.sh
3097 when Tcl has been built with --enable-shared. A new tclLibObjs
3098 make target, echoing the list of the .o's needed to build a tcl
3099 library, is now provided. (DL)
3100
3101 7/1/97 (feature change) compat/getcwd.c removed and changed the
3102 only place where getcwd is used so a new USEGETWD flag selects
3103 the use of the replacement "getwd". Adding this flag is recommended
3104 for SunOS 4 (because getcwd on SunOS 4 uses a pipe to pwd(1)!). (DL)
3105
3106 7/7/97 (feature change) The split command now supports binary data (i.e.,
3107 null characters in strings). (BL)
3108
3109 7/7/97 (bug fix) string first returned the wrong result if the first
3110 argument string was empty. (BL)
3111
3112 7/8/97 (bug fix) Fixed core dump in fcopy that could occur when a command
3113 callback was supplied and an error or eof condition caused no background
3114 activity.  A refcount bug triggered a panic in Tcl_ListObjAppendElement. (BW)
3115
3116 7/8/97 (bug fix) Relaxed the pattern matching on http_get so you do not
3117 need a trailing path component.  You can now get away with just
3118 http_get www.scriptics.com                                      (BW)
3119
3120 7/9/97 (bug fix) Creating anonymous interpreters no longer smashes existing
3121 commands with names similar to the generated name. Previously creating an
3122 anonymous interpreter could smash an existing command, now it skips until
3123 it finds a command name that isn't being used. (JL)
3124
3125 7/9/97 (feature change) Removed the policy management mechanism from the
3126 Safe Base; left the aliases to source and load modules, and to do a limited
3127 form of the "file" command. See entry of 11/15/96. (JL)
3128
3129 7/9/97 (bug fixes) Fixed various compilation-related bugs:
3130     - Line numbers in errorInfo now are the same as those in Tcl7.6 unless
3131 there are compilation errors. Compilation error messages now include the
3132 entire command in error.
3133     - Trailing ::s after namespace names weren't being ignored.
3134     - Could not refer to an namespace variable with an empty name using a
3135 name of the form "n::". (BL)
3136
3137 7/9/97 (bug fix) Fixed bug in Tcl_Export that prevented you from exporting
3138 from other than the current namespace. (BL)
3139
3140 7/9/97 (bug fix) env.test was removing env var needed for proper finding
3141 of libraries in child process. (DL)
3142
3143 7/10/97 (bug fixes/new feature) Cleanup in Tcl_MakeSafe. Less information
3144 is leaked to safe interps. Error message fixes for interp sub commands.
3145 Likewise changes in safealias.tcl; tcl_safeCreateInterp can now be called
3146 without argument to generate the slave name (like in interp create). (DL)
3147
3148 7/10/97 (bug fixes) Bytecode compiler now generates more detailed 
3149 command location information: subcommands as well as commands now have
3150 location information. This means command trace procedures now get the
3151 correct source string for each command in their command parameter. (BL)
3152
3153 7/22/97 (bug fixes) Performance improvement in Safe interpreters
3154 handling. Added new mask value to (tclInt.h) Interp.flags record. (DL)
3155
3156 7/22/97 (bug fix) Fixed panic in 'interp target {} foo'. This bug
3157 was present since Tcl 7.6. (JL)
3158
3159 7/22/97 (bug fix) Fixed bug in compilation of procedures in namespaces: the
3160 procedure's namespace must be used to look up compile procedures, not the
3161 current namespace. (BL)
3162
3163 7/22/97 (bug fix) Use of the -channel option of http_get was not setting
3164 the end of line translations mode on the channel, so copying binary data
3165 with the -channel option was corrupting the result on non-unix platforms. (BW)
3166
3167 7/22/97 (bug fixes) file commands and ~user (seg fault and other
3168 improper returns). (DL)
3169
3170 7/23/97 (feature change) Reenabled "vwait" in Safe Base. (JL)
3171
3172 7/23/97 (bug fixes) Fixed two bugs involving read traces on array variables
3173 in procedures: trace procedures were sometimes not called, and reading
3174 nonexistant array elements didn't create undefined element variables that
3175 could later be defined by trace procedures. (BL)
3176
3177 7/24/97 (bug fix) Windows memory allocation performance was
3178 superlinear in some cases.  Made the Mac allocator generic and changed
3179 both the Mac and Windows platforms to use the new allocator instead of
3180 malloc and free. (SS)
3181
3182 7/24/97 - 8/12/97 (bug fixes/change of features) Completely revamped safe
3183 sourcing/loading (see safe.n) to hide pathnames, use virtual
3184 paths tokens instead, improved security in several respects and made it
3185 more tunable. Multi level interp loading can work too now. Package auto
3186 loading now works in safe interps as long as the package directory is in 
3187 the auto_path (no deep crawling allowed in safe interps). (DL)
3188 *** POTENTIAL INCOMPATIBILITY with previous alpha and beta releases ***
3189
3190 7/24/97 (bug fixes) Made Tcl_SetVar* and Tcl_NewString* treat a NULL value
3191 as an empty string. (This fixes hairy crash case where you would crash
3192 because load command for other interps assumed presence of
3193 errorInfo...). (DL)
3194
3195 7/28/97 (bug fix) Fixed pkg_mkIndex to understand namespaces.  It will
3196 use the export list of a namespace and create auto_index entries for
3197 all export commands.  Those names are in their fully qualified form in the
3198 auto_index.  Therefore, I tweaked unknown to try both $cmd and ::$cmd.
3199 Also fixed pkg_mkIndex so you can have "package require" commands inside
3200 your packages.  These commands are ignored, which is mostly ok except
3201 when you must load another package before loading yours because of
3202 linking dependencies. (BW)
3203
3204 7/28/97 (bug fix) A variable created by the variable command now persists
3205 until the namespace is destroyed or the variable is unset. This is true even
3206 if the variable has not been initialized; these variables used to be
3207 destroyed if an error occurred when accessing them. In addition, the "info
3208 vars" command lists uninitialized namespace variables, while the "info
3209 exists" command returns 0 for them. (BL)
3210
3211 7/29/97 (feature change)  Changed the http package to use the ::http
3212 namespace. http_get renamed to http::geturl, http_config renamed to
3213 http::config, http_formatQuery renamed to http::formatQuery.
3214 It now provides the 2.0 version of the package.  
3215 The 1.0 version is still available with the old names.
3216 *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b2 but not with Tcl 7.6 ***
3217
3218 7/29/97 (bug fix, new feature) Tcl_Main now uses Tcl objects internally to
3219 preserve NULLs in commands and command output. Added new API procedure
3220 Tcl_RecordAndEvalObj that resembles Tcl_RecordAndEval but takes an object
3221 containing a command. (BL)
3222
3223 7/30/97 (bug fix) Tcl freed strings in the environ array even if it
3224 did not allocate them. (SS)
3225
3226 7/30/97 (bug fix) If a procedure is renamed into a different namespace, it
3227 now executes in the context of that namespace. (BL)
3228
3229 7/30/97 (bug fix) Prevent renaming of commands into and from namespaces as
3230 part of hiding them. (JL)
3231
3232 7/31/97 (feature change) Moved the history command from C to tcl.
3233 This uses the ::history namespace.  The "words" and "substitute" options
3234 are no longer supported.  In addition, the "keep" option without a value
3235 returns the current keep limit.  There is a new "clear" option.
3236 The unknown command now supports !! again. (BW)
3237 *** POTENTIAL INCOMPATIBILTY  ***
3238
3239 7/30/97 (bug fix) Made sure that a slave can not fool the master into
3240 hiding the wrong command. Made sure we don't crash in hiding + namespaces
3241 issues. (DL)
3242
3243 8/4/97 (bug fix) Concat, eval, uplevel, and similar commands were
3244 incorrectly trimming trailing space characters from their arguments
3245 even when the space characters were preceded by a backslash. (JO)
3246
3247 8/4/97 (bug fix) Removed the hard link between bgerror and tkerror.
3248 Only bgerror is supported in tcl core. Tk will still look for a
3249 tkerror but using regular tcl code for that feature. (DL)
3250 *** POTENTIAL INCOMPATIBILTY with code relying on the hard link ***
3251
3252 8/6/97 (bug fix) Reduced size required for compiled bytecodes by using a
3253 more compact encoding for the command pc-to-source map. (BL)
3254
3255 8/6/97 (new feature) Added support for additional compilation and execution
3256 statistics when Tcl is compiled with the TCL_COMPILE_STATS flag. (BL)
3257
3258 8/7/97 (bug fix) Expressions not in {}s that have a comparison operator as
3259 the topmost operator must be compiled out-of-line (call the expr cmd at
3260 runtime) to properly support expr's two-level substitution semantics. An
3261 example is "set a 2; set b {$a}; puts [expr $b == 2]". (BL)
3262
3263 8/11/97 (bug fix) The catch command would sometimes crash if a variable name
3264 was given and the bytecode evaluation stack was grown when executing the
3265 argument script. (BL)
3266
3267 8/12/97 (feature change) Reinstated the variable tcl_precision to control
3268 the number of digits used when floating-point values are converted to
3269 strings, with default of 12 digits.  However, had to make tcl_precision
3270 shared among all interpreters (except that safe interpreters can't
3271 modify it).  This makes the Tcl 8.0 behavior almost identical to 7.6
3272 except that the default precision is 12 instead of 6. (JO)
3273 *** POTENTIAL INCOMPATIBILITY ***
3274
3275 ----------------- Released 8.0, 8/18/97 -----------------------
3276
3277 8/19/97 (bug fix) Minimal fix for glob -nocomplain bugs:
3278 "glob -nocomplain unreadableDir/*" was generating an anonymous 
3279 error. More in depth fixes will come with 8.1. (DL).
3280
3281 8/20/97 (bug fix) Removed check for FLT_MIN in binary command so
3282 underflow conditions are handled by the compiler automatic
3283 conversions. (SS)
3284
3285 8/20/97 (bug fixes) Fixed several compilation-related bugs:
3286     - Array cmd wasn't detecting arrays that, while compiled, do not yet
3287       exist (e.g., are marked undefined since they haven't been assigned
3288       to yet).
3289     - The GetToken procedure in tclCompExpr.c wasn't recognizing properly
3290       whether an integer token was invalid. For example, "0x$" is not
3291       a valid integer.
3292     - Performance bug in TclExecuteByteCode: the size of its stack frame
3293       was reduced by over 20% by moving errorInfo code elsewhere.
3294     - Uninitialized memory read error in tclCompile.c. (BL)
3295
3296 8/21/97 (bug fix) safe::interpConfigure now behave like Tk widget's
3297 configure : it changes only the options you provide and you can get
3298 the current value of any single option. New ?-nested boolean? and
3299 ?-statics boolean? for all safe::interp* commands but we still
3300 accept (upward compatibility) the previously defined non valued
3301 flags ?-noStatics? and ?-nestedLoadOk?. Improved the documentation. (DL).
3302
3303 8/22/97 (bug fix) Updated PrintDbl.3 to reflect the fact that the
3304 tcl_precision variable is still used and that it is now shared by all
3305 interpreters. (BL)
3306
3307 8/25/97 (bug fix) Fixed array access bug in IllegalExprOperandType
3308 procedure in tclExecute.c: it was not properly supporting the || and &&
3309 operators. (BL)
3310
3311 8/27/97 (bug fix) In cases where a channel handler was created with an
3312 empty event mask while data was still buffered in the channel, the
3313 channel code would get stuck spinning on a timer that would starve
3314 idle handlers.  This mostly happened in Tk when reading from stdin. (SS)
3315
3316 9/4/97 (bug fix) Slave interps now inherit the maximum recursion limit
3317 of their parent instead of starting back at the default. {nb: this still
3318 does not prevent stack overflow by multi-interps recursion or aliasing} (DL)
3319
3320 9/11/97 (bug fix) An uninitialized variable in Tcl_WaitPid caused
3321 pipes to fail to report eof properly under Windows. (SS)
3322
3323 9/12/97 (bug fix) "exec" was misidentifying some DOS executables as not 
3324 executable. (CCS)
3325
3326 9/14/97 (bug fix) Was using the wrong structure in sizeof operation in
3327 tclUnixChan.c. (JL)
3328
3329 9/15/97 (bug fix) Fixed notifier to break out of do-one-event loop if
3330 Tcl_WaitForEvent returns 1, so that callers of Tcl_DoOneEvent will get
3331 a chance to check whether the event just handled is significant. This
3332 affected mainly recursive calls to Tcl_VWaitCmd; these did not get a
3333 chance to notice that the variable they were waiting for has been set
3334 and thus they didn't terminate the vwait. (JL, DL, SS)
3335
3336 9/15/97 (bug fix) Alignment problems in "binary format" would cause a
3337 crash on some platforms when formatting floating point numbers. (SS)
3338
3339 9/15/97 (bug fix) Fixed bug in Macintosh socket code.  Now passes all
3340 tests in socket.test that are not platform specific. (Thanks to Mark
3341 Roseman for the pointer on the fix.)  (RJ)
3342
3343 9/18/97 (bug fix) Fixed bug -dictionary option of lsort that could
3344 cause the compare function to run off the end of an array if the
3345 number only contained 0's. (Thanks to Greg Couch for the report.) (RJ)
3346
3347 9/18/97 (bug fix) TclFinalizeEnvironment was not cleaning up 
3348 properly. (DL, JI)
3349
3350 9/18/97 (bug fix) Fixed long-standing bug where an "array get" command
3351 did not trigger traces on the array or its elements. (BL)
3352
3353 9/18/97 (bug fixes) Fixed compilation-related bugs:
3354     - Fixed errorInfo traceback information for toplevel coomands that
3355       contain nested commands.
3356     - In the expr command, && and || now accept boolean operands as well
3357       as numeric ones. (BL)
3358
3359 9/22/97 (bug fix) Fixed bug that prevented translation modes from being
3360 set independently for input and output on sockets if input was "auto". (JL)
3361
3362 9/24/97 (bug fix) Tcl_EvalFile(3) and thus source(n) now works fine on
3363 files containing NUL chars. (DL)
3364
3365 9/26/97 (bug fix) Fixed use of uninitialized memory in the environ array
3366 that later could cause random core dumps. Applies to all platforms. (JL)
3367
3368 9/26/97 (bug fix) Fixed use of uninitialized memory in socket address data
3369 structure under some circumstances. This could cause random core dumps.
3370 This applies only to Unix. (JL)
3371
3372 9/26/97 (bug fix) Opening files on PC-NFS volumes would cause a hang
3373 until the system timed after the file was closed. (SS)
3374
3375 10/6/97 (bug fix) The join(n) command, though objectified, was loosing
3376 NULs in the joinString and in list elements after the 2nd one.
3377 Now you can "join $list \0" for instance. (DL)
3378
3379 10/9/97 (bug fix) Under windows, if env(TMP) or env(TEMP) referred to a
3380 non-existent directory, exec would fail when trying to create its temporary
3381 files. (CCS)
3382
3383 10/9/97 (bug fix) Under mac and windows, "info hostname" would crash if 
3384 sockets were installed but the hostname could not be determined anyhow.
3385 Tcl_GetHostName() was returning NULL when it should have been returning 
3386 an empty string. (CCS)
3387
3388 10/10/97 (bug fix) "file attribute /" returned error on windows. (CCS)
3389
3390 10/10/97 (bug fix) Fixed the auto_load procedure to handle procedures
3391 defined in namespaces better.  Also fixed pgk_mkIndex so it sees procedures
3392 defined in nested namespaces.  Index entries are still only made for
3393 exported procedures. (BW)
3394
3395 10/13/97 (bug fix) On unix, for files with unknown group or owner
3396 attributes, querying the "file attributes" would return an error rather than
3397 returning the group's or owner's id number, although tha command accepts
3398 numbers when setting the file's group or owner.  (CCS)
3399
3400 10/22/97 (bug fix) "fcopy" did not eval the callback script at the
3401 global scope. (SS)
3402
3403 10/22/97 (bug fix) Fixed the signature of the CopyDone callback used in
3404 the http package(s) so they can handle error cases properly. (BW)
3405
3406 10/28/97 (bug fixes) Fixed a problem where lappend would free the Tcl object
3407 in a variable if a Tcl_ObjSetVar2 failed because of an error calling a trace
3408 on the variable. (BL)
3409
3410 10/28/97 (bug fix) Changed binary scan to properly handle sign
3411 extension of integers on 64-bit or larger machines. (SS)
3412
3413 11/3/97 (bug fixes) Fixed several bugs:
3414     - expressions such as "expr ($x)" must be compiled out-of-line
3415       (call the expr command procedure at runtime) to ensure the correct
3416       behavior when "$x" is an expression such as "5+10".
3417     - "array set a {}" now creates a new array var with an empty array
3418       value if the var didn't already exist.
3419     - "lreplace $foo end end" no longer returns an error (just an empty
3420       list) if foo is empty.
3421     - upvar will no longer create a variable in a namespace that refers
3422       to a variable in a procedure.
3423     - deleting a command trace within a command trace callback would
3424       make the code that calls traces to reference freed memory.
3425     - significantly sped up "string first" and "string last" (fix from
3426       darrel@gemstone.com).
3427     - seg fault in Tcl_NewStringObj() when a NULL is passed as the byte
3428       pointer argument and Tcl is compiled with -DTCL_MEM_DEBUG.
3429     - documentation and error msg fixes. (BL)
3430
3431 11/3/97 (bug fix) Fixed a number of I/O bugs related to word sizes on
3432 64-bit machines. (SS)
3433
3434 11/6/97 (bug fix) The exit code of the first process created by Tcl
3435 on Windows was not properly reported due to an initialization
3436 problem. (SS)
3437
3438 ----------------- Released 8.0p1, 11/7/97 -----------------------
3439
3440 11/19/97 (bug fix) Fixed bug in linsert where it sometimes accidently
3441 cleared out a shared argument list object. (BL).
3442
3443 11/19/97 (bug fix) Autoloading in namespaces was not working properly.
3444 auto_mkindex is still not really namespace aware but most common
3445 cases should now be handled properly (see init.test). (BW, DL)
3446
3447 11/20/97 (enhancement) Made the changes required by the new Apple
3448 Universal Headers V.3.0, so that Tcl will compile with CW Pro 2.
3449
3450 11/24/97 (bug fix) Fixed tests in clock test suite that needed the
3451 -gmt flag set.  Thanks to Jan Nijtmans for reporting the problem. (RJ)
3452
3453 ----------------- Released 8.0p2, 11/25/97 -----------------------
3454
3455 12/3/97 (bug fix/optimization) Removed uneeded and potentially dangerous
3456 instances of double evaluations if "if" and "expr" statements from
3457 the library files. It is recommended that unless you need a double
3458 evaluation you always use "expr {...}" instead of "expr ..." and
3459 "if {...} ..." instead of "if ... ...". It will also be faster
3460 thanks to the byte compiler. (DL)
3461
3462 ---- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ----
3463
3464 12/8/97 (bug fix) Need to protect the newly accepted channel in an
3465 accept callback on a socket, otherwise the callback may close it and
3466 cause an error, which would cause the C code to attempt to close the
3467 now deleted channel. Bumping the refcount assures that the channel sticks
3468 around to be really closed in this case. (JL)
3469
3470 12/8/97 (bug fix) Need to protect the channel in a fileevent so that it
3471 is not deleted before the fileevent handler returns. (CS, JL)
3472
3473 12/18/97 (bug fix) In the opt argument parsing package: if the description 
3474 had only flags, the "too many arguments" case was not detected. The default
3475 value was not used for the special "args" ending argument. (DL)
3476
3477 1/15/98 (improvement) Moved common part of initScript in common file.
3478 Moved windows specific initialization to init.tcl so you can initialize
3479 Tcl in windows without having to call Tcl_Init which is now only
3480 searching for init.tcl {back ported from 8.1}. (DL)
3481
3482 ---- Shipped as part of the plugin as 8.0p2Plugin2, Jan 15th 98 ----
3483
3484 5/27/98 (bug fix) Windows socket driver did not notice new data arriving
3485 on nonblocking sockets until the event loop was entered. (SS)
3486
3487 5/27/98 (bug fix) Windows socket driver used FIONREAD, which is not
3488 supported correctly by WinSock. (SS)
3489
3490 6/9/98 (bug fix) Generic channel code failed to report readable file
3491 events on buffered data that was left behind by a gets or read that
3492 did not consume all available data. (SS)
3493
3494 6/18/98 (bug fix) Compilation of loop expressions was too aggressive
3495 and incorrectly inlined non-literal expressions. (SS)
3496
3497 6/18/98 (bug fix) "info var" and "info locals" incorrectly reported
3498 the existence of compiler temporary variables. (SS)
3499
3500 6/18/98 (bug fix) Dictionary sorting used signed character
3501 comparisons. (SS)
3502
3503 6/18/98 (bug fix) Compile procs corrupted the exception stack in some
3504 cases. (SS)
3505
3506 6/18/98 (bug fix) Array set had erratic behavior when initializing a
3507 variable from an empty value list. (SS)
3508
3509 6/18/98 (bug fix) The Windows registry package had a bad bounds check
3510 that could lead to a crash. (SS)
3511
3512 6/18/98 (bug fix) The foreach compile proc did not correctly handle
3513 non-local variable references. (SS)
3514
3515 6/25/98 (new features) Added name resolution hooks to support [incr Tcl].
3516 There are new internal Tcl_*Resolver* APIs to add, query and remove the hooks. 
3517 With this changes it should be possible to dynamically load [incr Tcl]
3518 as an extension. (MM)
3519
3520 7/1/97 (bug fix) The commands "info args, body, default, procs" did
3521 not correctly handle imported procedures. (RJ)
3522
3523 7/6/98 (improvement) pkg_mkIndex now implements the "package require"
3524 command.  This makes it possible to create index files for packages
3525 that require another package and then execute code from that package in
3526 their file. Previously, this would throw an error because the required
3527 package had not been loaded.  The -nopkgrequied flag is provided to
3528 revert back to the old functionality. (EMS)
3529
3530 7/6/98 (improvement) back-ported the -direct flag from 8.1 into
3531 pkg_mkIndex.  This results in pkgIndex.tcl files that contain direct
3532 source or load commands instead of tclPkgSetup commands. (EMS)
3533
3534 7/6/98 (improvement) made changes to the AuxData items structures to support
3535 storage of compiled scripts on disk. Also some related minor changes in
3536 the compilation and execution engine. (EMS)
3537
3538 6/4/98 (enhancement) Added new internal routines to support inserting
3539 and deleting from the stat, access, and open-file-channel mechanisms.
3540 TclAccessInsertProc, TclStatInsertProc, & TclOpenFileChannelInsertProc
3541 insert pointers to such routines; TclAccessDeleteProc, TclStatDeleteProc,
3542 & TclOpenFileChannelDeleteProc delete pointers to such routines.  See
3543 the file generic/tclIOUtils.c for more details. (SKS)
3544  
3545 7/1/98 (enhancement) Added a new internal C variable
3546 tclPreInitScript.  This is a pointer to a string that may hold an
3547 initialization script; If this pointer is non-NULL it is evaluated in
3548 Tcl_Init() prior to the built-in initialization script defined in the
3549 file generic/tclInitScript.h.  (SKS)
3550
3551 7/6/98 (bug fix) Removed dead code in PlatformInitExitHandler so that
3552 the TCL_LIBRARY value can be safely patched in binaries. (BW)
3553
3554 7/24/98 (enhancement) Incorporated a new version of auto_mkindex that
3555 can support the [incr Tcl] class structures.  This version will index
3556 all procedures in a source file, not just those where "proc" starts
3557 at the beginning of the line.  If you want the old behavior, use the
3558 auto_mkindex_old procedure. (MM)
3559
3560 7/24/98 (feature change) Changed the Windows registry key to be
3561 HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, and to store the path
3562 in the default value instead of "Root".  Also, this key can be
3563 specified at compile time in case Tcl is being used in a different
3564 context where it needs an alternate library path from the standard Tcl
3565 installation. (SS)
3566
3567 7/24/98 (feature change) Changed the search order for init.tcl.  The
3568 tcl_library variable can now be set before calling Tcl_Init to avoid
3569 doing any searches.  If it isn't set, then Tcl checks
3570 env(TCL_LIBRARY), the static value set at compile time, an install
3571 directory relative to the executable, a source directory relative to
3572 the executable, and a tcl directory relative to the source heirarchy
3573 containing the executable.  See the comment at the top of
3574 generic/tclInitScript.h for more details. (SS)
3575
3576 7/27/98 (config change) Changed the use of the DBGX flag in configure.in
3577 and the makefile to be TCL_DBGX.  Users of tclConfig.sh may need to pass
3578 this through their configure files with AC_SUBST. (BW)
3579
3580 729/98 (bug fix) Changed [info body] to return a copy of the body of a
3581 compiled procedure instead of the body itself, to avoid invalidation
3582 of the internal rep and loss of the byte-codes. (EMS)
3583
3584 8/5/98 (bug fix) The platform init code could walk off the end of a
3585 buffer when reading the PkgPath registry value on Windows. (SS)
3586
3587 8/5/98 (Windows makefile change) Introduced a set of macros to deal with
3588 exporting symbols when compiling DLLS on Windows. See win/README for
3589 details. (EMS)
3590
3591 8/5/98 (addendum) Added a second Windows registry key under
3592 HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, named "pkgPath".
3593 This is a multi-string value used to initialize the tcl_pkgPath
3594 variable. This is required if extension DLLs are in architecture specific
3595 subdirectories. (SS)
3596
3597 8/6/98 (new feature) Added tcl_findLibrary to init.tcl for use by
3598 extensions, including Tk.  This searches in a canonical way for
3599 an extensions library directory and initialization file. (BW)
3600
3601 8/10/98 (bug fix) Imported commands used to get lost if the target
3602 of the import was redefined.  Tcl_CreateCommand and Tcl_CreateObjCommand
3603 were updated to restore import links. (Note that if you rename a command,
3604 the import links move to the new name, and if you delete a command then
3605 the import links get lost. These semantics have not changed.) (MC)
3606
3607 -------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/10/98 ------
3608
3609 9/3/98 (bug fix) Tcl_Realloc was failing under Windows because the
3610 GlobalReAlloc API was not correctly re-allocating blocks that were
3611 32k+.  The fix was to use newer Win32 APIs (HeapAlloc, HeapFree, and
3612 HeapReAlloc.) (BS)
3613
3614 10/5/98 (bug fix) Fixed bug in pkg_mkIndex that caused some files that do
3615 a "package require" of packages in the Tcl libraries to give a warning like
3616         warning: "xx.tcl" provides more than one package ({xx 2.0} {yy 0.3})
3617 and generate a broken pkgIndex.tcl file. (EMS)
3618
3619 10/5/98 (bug fix) Pkg_mkIndex was not doing a case-insensitive comparison
3620 of extensions to determine whether to load or source a file. Thus, under
3621 Windows, MYDLLNAME.DLL was sourced, and mydllname.dll loaded. (EMS)
3622
3623 10/5/98 (new feature) Created a new Tcl_Obj type, "procbody". This object's
3624 internal representation holds a pointer to a Proc structure. Extended
3625 TclCreateProc to take both strings and "procbody". (EMS)
3626
3627 10/13/98 (bug fix) The "info complete" command can now handle strings
3628 with NULLs embedded.  Thanks to colin@field.medicine.adelaide.edu.au 
3629 for providing this fix. (RJ)
3630
3631 10/13/98 (bug fix) The "lsort -dictionary" command did not properly
3632 handle some numbers starting with 0.  Thanks to Richard Hipp
3633 <drh@acm.org> for submitting the fix to Scriptics. (RJ)
3634
3635 10/13/98 (bug fix) The function Tcl_SetListObj was creating an invalid
3636 Tcl_Obj if the list had zero elements (despite what the comments said
3637 it would do).  Thanks to Sebastian Wangnick for reporting the
3638 problem. (RJ)
3639
3640 10/20/98 (new feature) Added tcl_platform(debug) element to the
3641 tcl_platform array on Windows platform.  The existence of the debug
3642 element of the tcl_platform array indicates that the particular Tcl
3643 shell has been compiled with debug information.  Using
3644 "info exists tcl_platform(debug)" a Tcl script can direct the
3645 interpreter to load debug versions of DLLs with the load
3646 command. (SKS)
3647
3648 10/20/98 (feature change) The Makefile and configure scripts have been
3649 changed for IRIX to build n32 binaries instead of the old 32 abi
3650 format.  If you have extensions built with the o32 abi's you will need
3651 to update them to n32 for them to work with Tcl.  (RJ)
3652 *** POTENTIAL INCOMPATIBILITY ***
3653
3654 10/23/98 (bug fix) tcl_findLibrary had a stray ] in one of the
3655 pathnames it searched for the initialization script.  tclInitScript.h
3656 was incorrectly adding the parent of tcl_library to tcl_pkgPath.  This
3657 logic was moved into init.tcl, and the initialization of auto_path was
3658 documented.  Thanks to Donald Porter and Tom Silva for related
3659 patches. (BW)
3660
3661 10/29/98 (bug fix) Fixed Tcl_NotifyChannel to use Tcl_Preserve instead
3662 of Tcl_RegisterChannel so that 1) unregistered channels do not get
3663 closed after their first fileevent, and 2) errors that occur during
3664 close in a fileevent script are actually reflected by the close
3665 command. (BW)
3666
3667 10/30/98 (bug fix) Overhaul of pkg_mkIndex to deal with transitive
3668 package requires and packages split among scripts and binary files.
3669 Also fixed ommision of global for errorInfo in tcl_findLibrary. (BW)
3670
3671 11/08/98 (bug fix) Fixed the resource command to always detect
3672 the case where a file is opened a second time with the same
3673 permissions.  IM claims that this will always cause the same
3674 FileRef to be returned, but in MacOS 8.1+, this is no longer the case,
3675 so we have to test for this explicitly. (JI)
3676
3677 11/10/98 (feature change) When compiling with Metrowerk's MSL, use the
3678 exit function from MSL rather than ExitToShell.  This allows MSL to
3679 clean up its temporary files. Thanks to Vince Darley for this
3680 improvement. (JI)
3681
3682 ----------------- Released 8.0.4, 11/19/98 -------------------------
3683
3684 11/20/98 (bug fix) Handle possible NULL return in TclGetStdFiles. (RJ)
3685
3686 11/20/98 (bug fix) The dltests would not build on SGI.  They reported
3687 that you could not mix n32 with 032 binaries.  The configure script
3688 has been modified to get the EXTRA_CFLAGS from the tcl configure
3689 script.  [Bug id: 840] (RJ)
3690
3691 12/3/98 (bug fix) Windows NT creates sockets so they are inheritable
3692 by default.  Fixed socket code so it turns off this bit right after
3693 creation so sockets aren't kept open by exec'ed processes. [Bug: 892]
3694 Thanks to Kevin Kenny for this fix.  (SS)
3695
3696 1/11/98 (bug fix)  On HP, "info sharedlibextension" was returning 
3697 empty string on static apps.  It now always returns ".sl".  (RJ)
3698
3699 1/28/99 (configure change) Now support -pipe option on gcc.  (RJ)
3700
3701 2/2/99 (bug fix) Fixed initialization problem on Windows where no
3702 searching for init.tcl would be performed if the registry keys were
3703 missing.  (stanton)
3704
3705 2/2/99 (bug fix) Added support for HKEY_PERFORMANCE_DATA and
3706 HKEY_DYN_DATA keys in the "registry" command. (stanton)
3707
3708 2/2/99 (bug fix) ENOTSUP and EOPNOTSUPP clashed on some Linux
3709 variants. (stanton)
3710
3711 2/2/99 (enhancement) The "open" command has been changed to use the
3712 object interfaces. (stanton)
3713
3714 2/2/99 (bug fix) In some cases Tcl would crash due to an overflow of
3715 the exception stack resulting from a missing byte code in some
3716 expressions. (stanton)
3717
3718 2/2/99 (bug fix) Changed configure so Linux and IRIX shared libraries
3719 are linked with the system libraries. (stanton)
3720
3721 2/2/99 (bug fix) Added support for BSDI 4.x (BSD/OS-4*) to the
3722 configure script. (stanton)
3723
3724 2/2/99 (bug fix) Fixed bug where upvar could resurrect a namespace
3725 variable after the namespace had been deleted. (stanton)
3726
3727 2/2/99 (bug fix) In some cases when creating variables, the
3728 interpreter result was being modified even if the TCL_LEAVE_ERR_MSG
3729 flag was set. (stanton)
3730
3731 2/2/99 (bug fix & new feature) Changed the socket drivers to properly
3732 handle failures during an async socket connection.  Added a new
3733 fconfigure option "-error" to retrieve the failure message.  See the
3734 socket.n manual entry for details. (stanton)
3735
3736 2/2/99 (bug fix) Deleting a renamed interp alias could result in a
3737 panic. (stanton)
3738
3739 2/2/99 (feature change/bug fix) Changed the behavior of "file
3740 extension" so that it splits at the last period.  Now the extension of
3741 a file like "foo..o" is ".o" instead of "..o" as in previous versions. 
3742 *** POTENTIAL INCOMPATIBILITY ***
3743
3744 ----------------- Released 8.0.5, 3/9/99 -------------------------
3745
3746 ======== Changes for 8.0 go above this line ========
3747 ======== Changes for 8.1 go below this line ========
3748
3749 6/18/97 (new feature) Tcl now supports international character sets:
3750     - All C APIs now accept UTF-8 strings instead of iso8859-1 strings,
3751       wherever you see "char *", unless explicitly noted otherwise.
3752     - All Tcl strings represented in UTF-8, which is a convenient
3753       multi-byte encoding of Unicode.  Variable names, procedure names,
3754       and all other values in Tcl may include arbitrary Unicode characters.
3755       For example, the Tcl command "string length" returns how many
3756       Unicode characters are in the argument string.
3757     - For Java compatibility, embedded null bytes in C strings are
3758       represented as \xC080 in UTF-8 strings, but the null byte at the end
3759       of a UTF-8 string remains \0.  Thus Tcl strings once again do not
3760       contain null bytes, except for termination bytes.
3761     - For Java compatibility, "\uXXXX" is used in Tcl to enter a Unicode
3762       character.  "\u0000" through "\uffff" are acceptable Unicode 
3763       characters.  
3764     - "\xXX" is used to enter a small Unicode character (between 0 and 255)
3765       in Tcl.
3766     - Tcl automatically translates between UTF-8 and the normal encoding for
3767       the platform during interactions with the system.
3768     - The fconfigure command now supports a -encoding option for specifying
3769       the encoding of an open file or socket.  Tcl will automatically
3770       translate between the specified encoding and UTF-8 during I/O. 
3771       See the directory library/encoding to find out what encodings are
3772       supported (eventually there will be an "encoding" command that
3773       makes this information more accessible).
3774     - There are several new C APIs that support UTF-8 and various encodings.
3775       See Utf.3 for procedures that translate between Unicode and UTF-8
3776       and manipulate UTF-8 strings. See Encoding.3 for procedures that
3777       create new encodings and translate between encodings.  See
3778       ToUpper.3 for procedures that perform case conversions on UTF-8
3779       strings.
3780
3781 9/18/97 (enhancement) Literal objects are now shared by the ByteCode
3782 structures created when compiled different scripts. This saves up to 45%
3783 of the total memory needed for all literals. (BL)
3784
3785 9/24/97 (bug fixes) Fixed Tcl_ParseCommand parsing of backslash-newline
3786 sequences at start of command words. Suppressed Tcl_EvalDirect error logging
3787 if non-TCL_OK result wasn't an error. (BL)
3788
3789 10/17/97 (feature enhancement) "~username" now refers to the users' home
3790 directory on Windows (previously always returned failure). (CCS)
3791
3792 10/20/97 (implementation change) The Tcl parser has been completely rewritten
3793 to make it more modular.  It can now be used to parse a script without actually
3794 executing it.  The APIs for the new parser are not correctly exported, but
3795 they will eventually be exported and augmented with Tcl commands so that
3796 Tcl scripts can parse other Tcl scripts. (JO)
3797
3798 10/21/97 (API change) Added "flags" argument to Tcl_EvalObj, removed
3799 Tcl_GlobalEvalObj procedure.  Added new procedures Tcl_Eval2 and
3800 Tcl_EvalObjv. (JO)
3801 *** POTENTIAL INCOMPATIBILITY ***
3802
3803 10/22/97 (API change) Renamed Tcl_ObjSetVar2 and Tcl_ObjGetVar2 to
3804 Tcl_SetObjVar2 and Tcl_GetObjVar2 (for consistency with other C APIs)
3805 and changed the name arguments to be strings instead of objects.  (JO)
3806 *** POTENTIAL INCOMPATIBILITY ***
3807
3808 10/27/97 (enhancement) Bytecode compiler rewritten to use the new Tcl
3809 parser. (BL)
3810
3811 11/3/97 (New routines) Added Tcl_AppendObjToObj, which appends the
3812 string rep of one Tcl_Obj to another. Added Tcl_GetIndexFromObjStruct,
3813 which is similar to Tcl_GetIndexFromObj, except that you can give an
3814 offset between strings. This allows Tcl_GetIndexFromObjStruct to be
3815 called with a table of records which have strings in them. (SRP)
3816
3817 12/4/97 (enhancement) New Tcl expression parser added. Added new procedure
3818 Tcl_ParseExpr and new token types TCL_TOKEN_SUB_EXPR and
3819 TCL_TOKEN_OPERATOR. Expression compiler is reimplemented to use this
3820 parser. (BL)
3821
3822 12/9/97 (bug fix) Tcl_EvalObj() increments/decrements the refcount of the
3823 script object to prevent the object from deleting itself while in the
3824 middle of being evaluated. (CCS)
3825
3826 12/9/97 (bug fix) Memory leak in Tcl_GetsObjCmd(). (CCS)
3827
3828 12/11/97 (bug fix) Environment array leaked memory when compiled with
3829 Visual C++. (SS)
3830
3831 12/11/97 (bug fix) File events and non-blocking I/O did not work on
3832 pipes under Windows.  Changed to use threads to achieve non-blocking
3833 behavior. (SS)
3834
3835 12/18/97 (bug fixes) Fixed segfault in "namespace import"; importing a
3836 procedure that causes a cycle now returns an error. Modified "info procs",
3837 "info args", "info body", and "info default" to return information about
3838 imported procedures as well as procedures defined in a namespace. (BL)
3839
3840 12/19/97 (enhancement) Added new Tcl_GetString() procedure that can be used
3841 in place of Tcl_GetStringFromObj() if the string representation's length
3842 isn't needed. (BL)
3843
3844 12/18/97 (bug fix) In the opt argument parsing package: if the description 
3845 had only flags, the "too many arguments" case was not detected. The default
3846 value was not used for the special "args" ending argument. (DL)
3847
3848 1/7/98 (clean up) Moved everything not absolutly necessary out of init.tcl
3849 procs now in auto.tcl and package.tcl can be autoloaded if needed. (DL)
3850
3851 1/7/98 (enhancement) tcltest made at install time will search for it's
3852 init.tcl where it is, even when using virtual path compilation. (DL)
3853
3854 1/8/98 (os bug workaround) when needed, using a replacement for memcmp so 
3855 string compare "char with high bit set" "char w/o high bit set" returns
3856 the expected value on all platforms. (DL)
3857
3858 1/8/98 (unix portability/configure) building from .../unix/targetName/ 
3859 subdirectories and simply using "../configure" should now work fine. (DL)
3860
3861 1/14/98 (enhancement) Added new regular expression package that
3862 supports AREs, EREs, and BREs.  The new package includes new escape
3863 characters, meta-syntax, and character classes inside brackets.
3864 Regexps involving backslashes may behave differently.  (MH)
3865 *** POTENTIAL INCOMPATIBILITY ***
3866
3867 1/16/98 (os workaround) Under windows, "file volume" was causing chatter
3868 and/or several seconds of hanging when querying empty floppy drives.
3869 Changed implementation to call an empirically-derived function that doesn't
3870 cause this. (CCS)
3871
3872 1/16/98 (enhancement) Converted regular expressions to a Tcl_Obj type so
3873 their compiled form gets cached automatically.  Reduced NSUBEXP from 100
3874 to 20. (BW)
3875
3876 1/16/98 (documentation) Change unclear documentation and comments for
3877 functions like Tcl_TranslateFileName() and Tcl_ExternalToUtfDString().  Now
3878 it explicitly says they take an uninitialized or free DString.  A DString
3879 that is "empty" or "not holding anything" could have been interpreted as one
3880 currently with a zero length, but with a large dynamically allocated buffer.
3881 (CCS)
3882
3883 ----------------- Released 8.1a1, 1/22/98 -----------------------
3884
3885 1/28/98 (new feature) Added a "-direct" optional flag to pkg_mkIndex
3886 to generate direct loading package indexes (such those you need
3887 if you use namespaces and plan on using namespace import just after
3888 package require). pkg_mkIndex still has limitations regarding
3889 package dependencies but errors are now ignored and with -direct, correct
3890 package indexes can be generated even if there are dependencies as long 
3891 as the "package provide" are done early enough in the files. (DL)
3892
3893 1/28/98 (enhancement) Performance tuning of regexp and regsub. (CCS)
3894
3895 1/28/98 (bug fix) regexp and regsub with "-indices" returned the byte-offsets
3896 of the characters in the UTF-8 representation, not the character offsets
3897 themselves. (CCS)
3898
3899 1/28/98 (bug fix) "clock format 0 -format %Z -gmt 1" would return the local
3900 timezone string instead of "GMT" on Solaris and Windows.
3901
3902 1/28/98 (bug fix) Restore tty settings when closing serial device on Unix.
3903 This is good behavior when closing real serial devices, essential when
3904 closing the pseudo-device /dev/tty because the user's terminal settings
3905 would be left useless, in raw mode, when tcl quit. (CCS)
3906
3907 1/28/98 (bug fix) Tcl_OpenCommandChannel() was modifying the contents of the
3908 argv array passed to it, causing problems for any caller that wanted to
3909 continue to use the argv array after calling Tcl_OpenCommandChannel(). (CCS)
3910
3911 2/1/98 (bug fix) More bugs with %Z in format string argument to strftime():
3912 1. Borland always returned empty string.
3913 2. MSVC always returned the timezone string for the current time, not the
3914    timezone string for the specified time.  
3915 3. With MSVC, "clock format 0 -format %Z -gmt 1" would return "GMT" the first
3916    time it was called, but would return the current timezone string on all
3917    subsequent calls. (CCS)
3918
3919 2/1/98 (bug fix) "file stat" was broken on Windows.
3920 1. "file stat" of a root directory (local or network) or a relative path that
3921    resolved to a root directory (c:. when in pwd was c:/) was returning error.
3922 2. "file stat" on a regular file (S_IFREG), the st_mode was sign extended to
3923    a negative int if the platform-dependant type "mode_t" was declared as a
3924    short instead of an unsigned short.
3925 3. "file stat" of a network directory, the st_dev was incorrectly reported
3926    as the id of the last accessed local drive rather than the id of the
3927    network drive. (CCS)
3928
3929 2/1/98 (bug fix) "file attributes" of a relative path that resolved to a
3930 root directory was returning error. (CCS)
3931
3932 2/1/98 (bug fix) Change error message when "file attribute" could not
3933 determine the attributes for a file.  Previously it would return different
3934 error messages on Unix vs.  Windows vs. Mac. (CCS)
3935
3936 2/4/98 (bug fixes) Fixed several instances of bugs where the parser/compiler 
3937 would reach outside the range of allocated memory. Improved the array
3938 lookup algorithm in set compilation. (DL)
3939
3940 2/5/98 (change) The TCL_PARSE_PART1 flag for Set/Get(Obj)Var2 C APIs is now
3941 deprecated and ignored. The part1 is always parsed when the part2 argument
3942 is NULL. This is to avoid a pattern of errors for extension writers converting
3943 from string based Tcl_SetVar() to new Tcl_SetObjVar2() and who could easily
3944 forget to provide the flag and thus get code working for normal variables 
3945 but not for array elements. The performance hit is minimal. A side effect
3946 of that change is that is is no longer possible to create scalar variables
3947 that can't be accessed by tcl scripts because of their invalid name 
3948 (ending with parenthesis). Likewise it is also parsed and checked to 
3949 ensure that you don't create array elements of array whose name is a valid 
3950 array element because they would not be accessible from scripts anyway. 
3951 Note: There is still duplicate array elements parsing code. (DL)
3952 *** POTENTIAL INCOMPATIBILITY ***
3953
3954 2/11/98 (bug fix) Sharing objects between interps, such as by "interp
3955 eval" or "send" could cause a crash later when dereferencing an interp
3956 that had been deleted, given code such as:
3957         set a {set x y}
3958         interp create foo
3959         interp eval foo $a
3960         interp delete foo
3961         unset a
3962 Interp "foo" was gone, but "a" had a internal rep consisting of bytecodes
3963 containing a dangling pointer to "foo".  Unsetting "a" would attempt to
3964 return resources back to "foo", causing a crash as random memory was
3965 accessed.  The lesson is that that if an object's internal rep depends on
3966 an interp (or any other data structure) it must preserve that data in
3967 some fashion. (CCS)
3968
3969 2/11/98 (enhancement) The "interp" command was returning inconsistent error
3970 messages when the specified slave interp could not be found. (CCS)
3971
3972 2/11/98 (bug fix) Result codes like TCL_BREAK and TCL_CONTINUE were not
3973 propagating through the master/slave interp boundaries, such as "interp
3974 eval" and "interp alias".  TCL_OK, TCL_ERROR, and non-standard codes like
3975 teh integer 57 work.  There is still a question as to whether TCL_RETURN
3976 can/should propagate. (CCS)
3977
3978 2/11/98 (bug fix) TclCompileScript() was derefering memory 1 byte before
3979 start of the string to compile, looking for ']'. (CCS,DL)
3980
3981 2/11/98 (bug fix) Tcl_Eval2() was derefering memory 1 byte before start
3982 of the string to eval, looking for ']'. (CCS,DL)
3983
3984 2/11/98 (bug fix) Compiling "set a(b" was running off end of string. (CCS,DL)
3985
3986 2/11/98 (bug fix) Windows initialization code was dereferencing
3987 uninitialized memory if TCL_LIBRARY environment didn't exist. (CCS)
3988
3989 2/11/98 (bug fix) Windows "registry" command was dereferencing
3990 uninitialized memory when constructing the $errorCode for a failed
3991 registry call. (CCS)
3992
3993 2/11/98 (enhancement) Eliminate the TCL_USE_TIMEZONE_VAR definition from
3994 configure.in, because it was the same information as the already existing
3995 HAVE_TM_ZONE definition.  The lack of HAVE_TM_ZONE is used to work around a
3996 Solaris and Windows bug where "clock format [clock sec] -format %Z -gmt 1" 
3997 produces the local timezone string instead of "GMT". (CCS)
3998
3999 2/11/98 (bug fix) Memleaks and dereferencing of uninitialized memory in
4000 regexp if an error occurred while compiling a regular expression. (CCS).
4001
4002 2/18/98 (new feature) Added mutexes and thread local storage in order
4003 to make Tcl thread safe.  For testing purposes, there is a testthread
4004 command that creates a new thread and an interpreter inside it.  See
4005 thread.test for examples, but this script-level interface is not fixed.
4006 Each thread has its own notifier instance to manage its own events,
4007 and threads can post messages to each other's message queue.
4008 This uses pthreads on UNIX, and native thread support on other platforms.
4009 You enable this by configuring with --enable-threads.  Note that at
4010 this time *Tk* is still not thread safe. Special thanks to
4011 Richard Hipp: his earlier implementation inspired this work. (BW, SS, JI)
4012
4013 2/18/98 (hidden feature change) The way the env() array is shared among
4014 interpreters changed.  Updates to env used to trigger write traces in
4015 other interpreters.  This undocumented feature is no longer implemented.
4016 Instead, variable tracing is used to keep the C-level environ array in sync
4017 with the Tcl-level env array. This required adding TCL_TRACE_ARRAY support
4018 to Tcl_TraceVar2 so that array names works properly. (BW)
4019 *** POTENTIAL INCOMPATIBILITY ***
4020
4021 2/18/98 (enhancement) Conditional compilation for unix systems (e.g.,
4022 IRIX, SCO) that use f_bsize instead of st_blksize to determine disk block
4023 size. (CCS)
4024
4025 2/23/98 (bug fix) Fixed the emulation of polling selects in the threaded
4026 version of the Unix notifier.  The bug was showing up on a multiprocessor
4027 as starvation of the notifier thread. (BW)
4028
4029 ----------------- Released 8.1a2, Feb 23 1998 -----------------------
4030
4031 9/22/98 (bug fix) Changed the value of TCL_TRACE_ARRAY so it no longer
4032 conflicts with the deprecated TCL_PARSE_PART1 flag.  This should
4033 improve portability of C code. (stanton)
4034
4035 10/6/98 (bug fix) The compile procedure for "if" incorrectly attempted
4036 to match against the literal string "if", resulting in a stack
4037 overflow when "::if" was compiled.  It also would incorrectly accept
4038 "if" instead of "elsif" in later clauses.  (stanton)
4039
4040 10/15/98 (new feature) Added a "totitle" subcommand to the "string"
4041 command to convert strings to capitalize the first character of a string
4042 and lowercase all of the other characters. (stanton)
4043
4044 10/15/98 (bug fix) Changed regexp and string commands to properly
4045 handle case folding according to the Unicode character
4046 tables. (stanton)
4047
4048 10/21/98 (new feature) Added an "encoding" command to facilitate
4049 translations of strings between different character encodings.  See
4050 the encoding.n manual entry for more details. (stanton)
4051
4052 11/3/98 (bug fix) The regular expression character classification
4053 syntax now includes Unicode characters in the supported
4054 classes. (stanton)
4055
4056 11/6/98 (bug fix) Variable traces were causing crashes when upvar
4057 variables went out of scope. [Bug: 796] (stanton)
4058
4059 11/9/98 (bug fix) "format" now correctly handles multibyte characters
4060 in %s format strings. (stanton)
4061
4062 11/10/98 (new feature) "regexp" now accepts three new switches
4063 ("-line", "-lineanchor", and "-linestop") that control how regular
4064 expressions treat line breaks. See the regexp manual entry for more
4065 details. (stanton)
4066
4067 11/17/98 (bug fix) "scan" now correctly handles Unicode
4068 characters. (stanton)
4069
4070 11/17/98 (new feature) "scan" now supports XPG3 position specifiers
4071 and the "%n" conversion character.  See the "scan" manual entry for
4072 more details. (stanton)
4073
4074 11/17/98 (bug fix) The Tcl memory allocator now returns 8-byte aligned
4075 chunks of memory which improves performance on Windows and avoids
4076 crashes on other platforms. [Bug: 834] (stanton)
4077
4078 11/23/98 (bug fix) Applied various regular expression performance bug
4079 fixes supplied by Henry Spencer. (stanton)
4080
4081 11/30/98 (bug fix) Fixed various thread related race conditions. [Bug:
4082 880 & 607] (stanton)
4083
4084 11/30/98 (bug fix) Fixed a number of memory overflow and leak
4085 bugs. [Bug: 584] (stanton)
4086
4087 12/1/98 (new feaure) Added support for Korean encodings. (stanton)
4088
4089 12/1/98 (feature change) Changed the Tcl_EvalObjv interface to remove
4090 the string and length arguments.
4091 *** POTENTIAL INCOMPATIBILITY with previous alpha releases ***
4092
4093 12/2/98 (bug fix) Fixed various bugs related to line feed
4094 translation. [Bug: 887] (stanton)
4095
4096 12/4/98 (new feature) Added a message catalog facility to help with
4097 localizing Tcl scripts.  Thanks to Mark Harrison for contributing the
4098 initial implementation of the "msgcat" package. (stanton)
4099
4100 12/7/98 (bug fix) The memory allocator was failing to update the
4101 block list for large memory blocks that were reallocated into a
4102 different address. [Bug: 933] (stanton)
4103
4104 ----------------- Released 8.1b1, Dec 10 1998 -----------------------
4105
4106 12/22/98 (performance improvement) Improved the -command option of the
4107 lsort command to better use the object system for improved
4108 performance (about 5x speed up).  Thanks to Syd Polk for suppling the
4109 patch. [RFE: 726] (rjohnson)
4110
4111 2/10/99 (bug fix) Restored the Tcl_ObjSetVar2/Tcl_ObjGetVar2
4112 interfaces from 8.0 and renamed the Tcl_GetObjVar2/Tcl_SetObjVar2
4113 interfaces to Tcl_GetVar2Ex and Tcl_SetVar2Ex.  This should provide
4114 better compatibility with 8.0. (stanton)
4115 *** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases ***
4116
4117 2/10/99 (bug fix) Made the eval interfaces compatible with 8.0 by
4118 renaming Tcl_EvalObj to Tcl_EvalObjEx, renaming Tcl_Eval2 to
4119 Tcl_EvalEx and restoring Tcl_EvalObj and Tcl_GlobalEvalObj interfaces
4120 so they match Tcl 8.0. (stanton)
4121 *** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases ***
4122
4123 2/25/99 (bug fix/new feature) On Windows, the channel drivers for
4124 consoles and serial ports now completely support file events. (redman)
4125
4126 3/5/99 (bug fix) Integrated patches to fix various configure problems
4127 that affected HP-UX-11, 64-bit IRIX, Linux, and Solaris. (stanton)
4128
4129 3/9/99 (bug fix) Integrated various AIX related patches to improve
4130 support for shared libraries. (stanton)
4131
4132 3/9/99 (new feature) Added tcl_platform(user) to provide a portable
4133 way to get the name of the current user. (welch)
4134
4135 3/9/99 (new feature) Integrated the stub library mechanism contributed
4136 by Jan Nijtmans, Paul Duffin, and Jean-Claude Wippler.  This feature
4137 should make it possible to write extensions that support multiple
4138 versions of Tcl simultaneously.  It also makes it possible to
4139 dynamically load extensions into statically linked interpreters.  This
4140 patch includes the following changes:
4141       - Added a Tcl_InitStubs() interface
4142       - Added Tcl_PkgProvideEx, Tcl_PkgRequireEx, Tcl_PkgPresentEx,
4143         and Tcl_PkgPresent.
4144       - Added va_list versions of all VARARGS functions so they can be
4145         invoked from wrapper functions.
4146 See the manual for more information. (stanton)
4147
4148
4149 3/10/99 (feature change) Replaced Tcl_AlertNotifier with
4150 Tcl_ThreadAlert since the Tcl_AlertNotifier function relied on passing
4151 internal data structures. (stanton)
4152 *** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases ***
4153
4154 3/10/99 (new feature) Added a Tcl_GetVersion API to make it easier to
4155 check the Tcl version and patch level from C. (redman)
4156
4157 3/14/99 (feature change) Tried to unify the TclpInitLibrary path
4158 routines to look in similar places from Windows to UNIX.  The new
4159 library search path is: TCL_LIBRARY, TCL_LIBRARY/../tcl8.1, relative
4160 to DLL (Windows Only) relative to installed executable, relative to
4161 develop executable, and relative to compiled-in in location (UNIX
4162 Only.)  This fix included:
4163     - Defining a TclpFindExecutable
4164     - Moving Tcl_FindExecutable to a common area in tclEncoding.c
4165     - Modifying the TclpInitLibraryPath routines.
4166 (surles)
4167
4168 3/14/99 (feature change) Added hooks for TclPro Wrapper to initialize
4169 the location of the encoding files and libraries.  This fix included:
4170     - Adding the TclSetPerInitScript routine.
4171     - Modifying the Tcl_Init routines to evaluate the non-NULL
4172       pre-init script.
4173     - Adding the Tcl_SetdefaultEncodingDir and Tcl_GetDefaultEncodingDir
4174       routines.
4175     - Modifying the TclpInitLibrary routines to append the default
4176       encoding dir.
4177 (surles)
4178
4179 3/14/99 (feature change) Test suite now uses "test" namespace to
4180 define the test procedure and other auxiliary procedures as well as
4181 global variables.
4182     - Global array testConfige is now called ::test::testConfig.
4183     - Global variable VERBOSE is now called ::test::verbose, and
4184       ::test::verbose no longer works with numerical values.  We've
4185       switched to a bitwise character string.  You can set
4186       ::test::verbose by using the -verbose option on the Tcl command
4187       line.
4188     - Global variable TESTS is now called ::test::matchingTests, and
4189       can be set on the Tcl command line via the -match option.
4190     - There is now a ::test::skipTests variable (works similarly to
4191       ::test::matchTests) that can be set on the Tcl command line via
4192       the -match option.
4193     - The test suite can now be run in any working directory.  When
4194       you run "make test", the working directory is nolonger switched
4195       to ../tests.
4196 (hirschl)
4197 *** POTENTIAL INCOMPATIBILITY ***
4198
4199 --------------- Released 8.1b2, March 16, 1999 ----------------------
4200
4201 3/18/99 (bug fix) Fixed missing/incorrect characters in shift-jis table
4202 (stanton)
4203
4204 3/18/99 (feature change) The glob command ignores the
4205 FS_CASE_IS_PRESERVED bit on file systesm and always returns
4206 exactly what it gets from the system. (stanton)
4207 *** POTENTIAL INCOMPATIBILITY ***
4208
4209 3/19/99 (new feature) Added support for --enable-64bit.  For now,
4210 this is only supported on Solaris 7 64bit (SunOS 5.7) using the Sun
4211 compiler. (redman)
4212
4213 3/23/99 (bug fix) Fixed fileevents and gets on Windows consoles and
4214 serial devices so that non-blocking channels do not block on partial
4215 input lines.  (redman)
4216
4217 3/23/99 (bug fix) Added a new Tcl_ServiceModeHook interface.
4218 This is used on Windows to avoid the various problems that people
4219 have been seeing where the system hangs when tclsh is running
4220 outside of the event loop. As part of this, renamed
4221 TclpAlertNotifier back to Tcl_AlertNotifier since it is public.
4222 (stanton)
4223
4224 3/23/99 (feature change) Test suite now uses "tcltest" namespace to
4225 define the test procedure and other auxiliary procedures as well as
4226 global variables.  The previously chosen "test" namespace was thought
4227 to be too generic and likely to create conflits.
4228 (hirschl)
4229 *** POTENTIAL INCOMPATIBILITY ***
4230
4231 3/24/99 (bug fix) Make sockets thread safe on Windows.
4232 (redman)
4233
4234 3/24/99 (bug fix) Fix cases where expr would incorrect return
4235 a floating point value instead of an integer. (stanton)
4236
4237 3/25/99 (bug fix) Added ASCII to big5 and gb2312 encodings.
4238 (stanton)
4239
4240 3/25/99 (feature change) Changed so aliases are invoked at current
4241 scope in the target interpreter instead of at the global scope.  This
4242 was an incompatibility introduced in 8.1 that is being removed.
4243 (stanton)
4244 *** POTENTIAL INCOMPATIBILITY with previous beta releases ***
4245
4246 3/26/99 (feature change) --enable-shared is now the default and build
4247 Tcl as a shared library; specify --disable-shared to build a static Tcl
4248 library and shell.
4249 *** POTENTIAL INCOMPATIBILITY ***
4250
4251 3/29/99 (bug fix)  Removed the stub functions and changed the stub
4252 macros to just use the name without params. Pass &tclStubs into the
4253 interp (don't use tclStubsPtr because of collisions with the stubs on
4254 Solaris). (redman)
4255
4256 3/30/99 (bug fix) Loadable modules are now unloaded at the last
4257 possible moment during Tcl_Finalize to fix various exit-time crashes.
4258 (welch)
4259
4260 3/30/99 (bug fix) Tcl no longer calls setlocale().  It looks at
4261 env(LANG) and env(LC_TYPE) instead.  (stanton)
4262
4263 4/1/99 (bug fix) Fixed the Ultrix multiple symbol definition problem.
4264 Now, even Tcl includes a copy of the Tcl stub library. (redman)
4265
4266 4/1/99 (bug fix) Internationalized the registry package.
4267
4268 4/1/99 (bug fix) Changed the implemenation of Tcl_ConditionWait and
4269 Tcl_ConditionNotify on Windows.  The new algorithm eliminates a race
4270 condition and was suggested by Jim Davidson. (welch)
4271
4272 4/2/99 (new apis)  Made various Unicode utility functions public.
4273 Tcl_UtfToUniCharDString, Tcl_UniCharToUtfDString, Tcl_UniCharLen,
4274 Tcl_UniCharNcmp, Tcl_UniCharIsAlnum, Tcl_UniCharIsAlpha,
4275 Tcl_UniCharIsDigit, Tcl_UniCharIsLower, Tcl_UniCharIsSpace,
4276 Tcl_UniCharIsUpper, Tcl_UniCharIsWordChar, Tcl_WinUtfToTChar,
4277 Tcl_WinTCharToUtf (stanton)
4278
4279 4/2/99 (feature change) Add new DDE package and removed the Tk
4280 send command from the Windows version.  Changed DDE-based send
4281 code into "dde eval" command.  The DDE package can be loaded
4282 into tclsh, not just wish.  Windows only. (redman)
4283
4284 4/5/99 (bug fix) Changed safe-tcl so that the encoding command
4285 is an alias that masks out the "encoding system" subcommand.
4286 (redman)
4287
4288 4/5/99 (bug fix) Configure patches to improve support for
4289 OS/390 and BSD/OS 4.*. (stanton)
4290
4291 4/5/99 (bug fix) Fixed crash in the clock command that occurred
4292 with negative time values in timezones east of GMT. (stanton)
4293
4294 4/6/99 (bug fix) Moved the "array set" C level code into a common
4295 routine (TclArraySet).  The TclSetupEnv routine now uses this API to
4296 create an env array w/ no elements.  This fixes the bug caused when
4297 every environ varaible is removed, and the Tcl env variable is
4298 synched.  If no environ vars existed, the Tcl env var would never be
4299 created. (surles)
4300
4301 4/6/99 (bug fix) Made the Env module I18N compliant. (surles)
4302
4303 4/6/99 (bug fix) Changed the FindVariable routine to TclpFindVariable,
4304 that now does a case insensitive string comparison on Windows, and not
4305 on UNIX. (surles)
4306
4307 --------------- Released 8.1b3, April 6, 1999 ----------------------
4308
4309 4/9/99 (bug fix)  Fixed notifier deadlock situation when the pipe used
4310 to talk back notifier thread is filled with data.  Found as a result of the
4311 focus.test for Tk hanging. (redman)
4312
4313 4/13/99 (bug fix) Fixed bug where socket -async combined with
4314 fileevent for writing did not work under Windows NT. (redman)
4315
4316 4/13/99 (encoding fix) Restored the double byte definition of GB2312
4317 and added the EUC-CN encoding.  EUC-CN is a variant of GB2312 that
4318 shifts the characters into bytes with the high bit set and includes
4319 ASCII as a subset. (stanton)
4320
4321 4/27/99 (bug fix) Added 'extern "C" {}' block around the stub table
4322 pointer declaration so the stub library can be used from C++. (stanton)
4323
4324 --------------- Released 8.1 final, April 29, 1999 ----------------------
4325
4326 4/22/99 (bug fix) Changed Windows NT socket implementation to avoid
4327 creating a communication window.  This avoids the problem where the
4328 system hangs waiting for tclsh to respond to a system-wide synchronous
4329 broadcast (e.g. if you change system colors). (redman)
4330
4331 4/22/99 (bug fix) Added call to TclWinInit from TclpInitPlatform when
4332 building a static library since DllMain will not be invoked.  This
4333 could break old code that explicitly called TclWinInit, but should be
4334 simpler in the long run. (stanton)
4335 *** POTENTIAL INCOMPATIBILITY ***
4336
4337 4/23/99 (bug fix) Added support for the koi8-r Cyrillic
4338 encoding. [Bug: 1771] (stanton)
4339
4340 4/28/99 (bug fix) Changed internal Tcl_Obj usage to avoid freeing the
4341 internal representation after the string representation has been
4342 freed.  This makes it easier to debug extensions. (stanton)
4343
4344 4/30/99 (bug fix) Fixed a memory leak in CommandComplete. (stanton)
4345
4346 5/3/99 (bug fix) Fixed a bug where the Tcl_ObjType was not being set
4347 in a duplicated Tcl_Obj. [Bug: 1975, 2047] (stanton)
4348
4349 5/3/99 (bug fix) Changed Tcl_ParseCommand to avoid modifying eval'ed
4350 strings that are already null terminated.  [Bug: 1793] (stanton)
4351
4352 5/3/99 (new feature) Applied Jeff Hobbs's string patch which includes
4353 the following changes:
4354     - added new subcommands: equal, repeat, map, is, replace 
4355     - added -length option to "string compare|equal"
4356     - added -nocase option to "string compare|equal|match"
4357     - string and list indices can be an integer or end?-integer?.
4358     - added optional first and last index args to string toupper, et al.
4359 See the string.n manual entry for more details about the new string
4360 features.  [Bug: 1845] (stanton)
4361
4362 5/6/99 (new feature) Added Tcl_UtfNcmp and Tcl_UtfNcasecmp to make Utf
4363 string comparision easier. (stanton)
4364
4365 5/7/99 (bug fix) Improved OS/390 support. [Bug: 1976, 1997] (stanton)
4366
4367 5/12/99 (bug fix) Changed Windows initialization code to avoid using
4368 GetUserName system call in favor of the env(USERNAME) variable.  This
4369 provides a significant startup speed improvement. (stanton)
4370
4371 5/12/99 (bug fix) Replaced the per-interpreter regexp cache with a
4372 per-thread cache.  Changed the Regexp object to take advantage of this
4373 extra cache.  Added a reference count to the TclRegexp type so regexps
4374 can be shared by multiple objects.  Removed the per-interp regexp cache
4375 from the interpreter.  Now regexps can be used with no need for an
4376 interpreter. This set of changes should provide significant speed
4377 improvements for many Tcl scripts.  [Bug: 1063] (stanton)
4378
4379 5/14/99 (bug fix) Durining initialization on Unix, Tcl now extracts the
4380 encoding subfield from the LANG/LC_ALL environment variables in cases
4381 where the locale is not found in the built-in locale table.  It also
4382 attempts to initialize the locale subsystem so X11 is happy. [Bug: 1989]
4383 (stanton) 
4384
4385 5/14/99 (bug fix) Applied the patch to fix 100-year and 400-year
4386 boundaries in leap year code, from Isaac Hollander.  [Bug: 2066] (redman)
4387
4388 5/14/99 (bug fix) Fixed a crash caused by a failure to reset the result
4389 before evaluating the test expression in an uncompiled for
4390 statement. (stanton)
4391
4392 5/18/99 (bug fix) Modified initialization code on Windows to avoid
4393 inherenting closed or invalid channels.  If the standard input is
4394 anything other than a console, file, serial port, or pipe, then we fall
4395 back to the standard Tk window console. (stanton)
4396
4397 5/19/99 (bug fix) Added an extern "C" block around the entire tcl.h
4398 header file to avoid C++ linkage issues. (redman)
4399
4400 5/19/99 (new feature) Applied Jeff Hobb's patch to add
4401 Tcl_StringCaseMatch to support case insensitive glob style matching and
4402 Tcl_UniCharIs* character classification functions. (stanton)
4403
4404 5/20/99 (bug fix) Added the directory containing the executuble and the
4405 ../lib directory relative to that to the auto_path variable. (redman)
4406
4407 --------------- Released 8.1.1, May 25, 1999 ----------------------
4408
4409 5/21/99 (bug fix) Fixed launching command.com on Win95/98, no longer
4410 hangs. [Bug: 2105] (redman)
4411
4412 5/28/99 (bug fix) Fixed bug where dde calls were being passed an
4413 invalid dde handle. [Bug: 2124] (stanton)
4414
4415 6/1/99  (bug fix) Small configure.in patches. [Bug: 2121] (stanton)
4416
4417 6/1/99  (bug fix) Applied latest regular expression patches to fix an
4418 infinite loop bug and add support for testing whether a string could
4419 match with additional input. [Bug: 2117] (stanton)
4420
4421 6/2/99  (bug fix) Fixed incorrect computation of relative ordering in
4422 Utf case-insensitive comparison. [Bug: 2135] (stanton)
4423
4424 6/3/99  (bug fix) Fxied bug where string equal/compare -nocase
4425 reported wrong result on null strings. [Bug: 2138] (stanton)
4426
4427 6/4/99  (new feature) Windows build now uses Cygwin tools plus GNU
4428 make and autoconf to build static/dynamic and debug/nodebug. (stanton)
4429
4430 6/7/99  (new feature) Optimized string index, length, range, and
4431 append commands. Added a new Unicode object type. (hershey)
4432
4433 6/8/99  (bug fix) Rolled back Windows socket driver to 8.1.0
4434 version. (stanton)
4435
4436 6/9/99  (new feature) Added Tcl_RegExpMatchObj and Tcl_RegExpGetInfo
4437 to public Tcl API, these functions are needed by Expect.  Changed
4438 tools/genStubs.tcl to always write output in LF mode. (stanton)
4439
4440 6/14/99 (new feature) Merged string and Unicode object types.  Added
4441 new public Tcl API functions:  Tcl_NewUnicodeObj, Tcl_SetUnicodeObj,
4442 Tcl_GetUnicode, Tcl_GetUniChar, Tcl_GetCharLength, Tcl_GetRange,
4443 Tcl_AppendUnicodeToObj. (hershey)
4444
4445 6/16/99 (new feature) Changed to conform to TEA specification, added
4446 tcl.m4 and aclocal.m4 macro libraries for configure.  (wart)
4447
4448 6/17/99 (new feature) Added new regexp interfaces: -expanded, -line,
4449 -linestop, and -lineanchor switches.  Renamed Tcl_RegExpMatchObj to
4450 Tcl_RegExpExecObj and added new Tcl_RegExpMatchObj that is equivalent
4451 to Tcl_RegExpMatch.  Added public macros for regexp flags.  Added
4452 REG_BOSONLY flag to allow Expect to iterate through a string and only
4453 find matches that start at the current position within the
4454 string. (stanton)
4455
4456 6/21/99 (bug fix) Fixed memory leak in TclpThreadCreate where thread
4457 attributes were not being released.  [Bug: 2254] (stanton)
4458
4459 6/23/99 (new feature) Updated Unicode character tables to reflect
4460 Unicode 2.1 data. (stanton)
4461
4462 6/25/99 (new feature) Fixed bugs in non-greedy quantifiers for regular
4463 expression code. (stanton)
4464
4465 6/25/99 (new feature) Added initial implementation of new Tcl test
4466 harness package.  Modified test files to use new tcltest package.
4467 (jenn)
4468
4469 6/26/99 (new feature) Applied patch from Peter Hardie to add poke
4470 command to dde and changed the dde package version number to
4471 1.1. (redman) 
4472
4473 6/28/99 (bug fix) Applied patch from Peter Hardie to fix problem in
4474 Tcl_GetIndexFromObj() when the key being passed is the empty string.
4475 [Bug: 1738] (redman)
4476
4477 6/29/99 (new feature) Added options to tcltest package: -preservecore,
4478 -limitconstraints, -help, -file, -notfile, and flags.  (jenn)
4479
4480 7/3/99  (new feature) Changed parsing of variable names to allow empty
4481 array names.  Now "$(foo)" is a variable reference.  Previously you
4482 had to use something line $::(foo), which is slower.  This change was
4483 requested by Jean-Luc Fontaine for his STOOOP package. (welch)
4484
4485 7/3/99  (new feature) Added Tcl_SetNotifier (public API) and
4486 associated hook points in the notifiers to be able to replace the
4487 notifier calls at runtime. The Xt notifier and test program use this
4488 hook.  (welch)
4489
4490 7/3/99  (new feature) Added a new variant of the "Trf core patch" from
4491 Andreas Kupries that adds new C APIs Tcl_StackChannel,
4492 Tcl_UnstackChannel, and Tcl_GetStackedChannel.  This allows the Trf
4493 extension to work without applying patches to the Tcl core. (welch)
4494
4495 7/6/99  (new feature) Added -timeout option to http.tcl to handle
4496 timeouts that occur during connection attempts to hosts that are
4497 down. (welch)
4498
4499 7/6/99  (bug fix) Applied new implementation of the Windows serial
4500 port driver from Rolf Schroedter that fixes reading only one byte from
4501 the port at a time.  Uses polling every 10ms to implement
4502 fileevents. [Bug: 1980 2217] (redman)
4503
4504 7/8/99  (bug fix) Applied fix for bug in DFA state caching under
4505 lookahead conditions (regular expressions).  [Bug: 2318] (stanton)
4506
4507 7/8/99  (bug fix) Fixed bug in string range bounds checking
4508 code. (stanton)
4509
4510 --------------- Released 8.2b1, July 14, 1999 ----------------------
4511
4512 7/16/99 (bug fix) Added Tcl_SetNotifier to stub table. [Bug: 2364]
4513 Added check for Alpha/Linux to correct the IEEE  floating point flag,
4514 patch from Don Porter. (redman)
4515
4516 7/20/99 (bug fix) Merged 8.0.5 code to handle tcl_library properly,
4517 also fixed a bug that caused TCL_LIBRARY to be ignored. (hershey)
4518
4519 7/21/99 (bug fix) Implemented modified socket driver for Windows that
4520 uses a thread to manage the socket event window.  Code works the same
4521 on all supported versions of Windows and was based on original 8.1.0
4522 code.  [Bug: 2178 2256 2259 2329 2323 2355] (redman)
4523
4524 7/21/99 (new feature) Applied patch from Rolf Schroedter to add
4525 -pollinterval option to fconfigure for Windows serial ports.  Allows
4526 the maxblocktime to be modified to control how often serial ports are
4527 checked for fileevents.  Also added documentation for \\.\comX
4528 notation for opening serial ports on Windows.  (redman)
4529
4530 7/21/99 (bug fix) Changed APIs in stub tables to use "unsigned long"
4531 instead of the platform-specific "size_t", primarily after SunOS 4
4532 users could no longer compile. (redman)
4533
4534 7/22/99 (bug fix) Fixed crashing during "array set a(b) {}". 
4535 [Bug: 2427] (redman)
4536
4537 7/22/99 (bug fix) The install-sh script must be given execute
4538 permissions prior to running.  [Bug: 2413] (redman)
4539
4540 7/22/99 (bug fix) Applied patch from Ulrich Ring to remove ANSI-style
4541 prototypes in the code.  [Bug: 2391] (redman)
4542
4543 7/22/99 (bug fix) Added #if blocks around #includes of sys/*.h header
4544 files, to allow an extension author on Windows to use the MetroWerks
4545 compiler. [Bug: 2385] (redman)
4546
4547 7/22/99 (bug fix) Fixed running the safe.test test suite, one change
4548 to the Windows Makefile.in to fix paths and another in safe.test to
4549 check for the tcl_platform(threaded) variable properly. (redman)
4550
4551 7/22/99 (bug fix) Fixed hanging in new Win32 socket driver with
4552 threads enabled. (redman)
4553
4554 7/26/99 (bug fix) Fixed terminating of helper threads by holding any
4555 mutexes from the primary thread while waiting for the helper thread to
4556 terminate.  Fixes dual-CPU WinNT hangs, only one rare sporadic hang
4557 that still exists with dual-CPU WinNT.  Also fixed test cases so that
4558 they would not depend as much on timing for dual-CPU WinNT. (redman)
4559
4560 7/27/99 (bug fix) Some test suite cleanup. (jenn)
4561
4562 7/29/99 (bug fix) Applied patch to fix typo in .SH NAME line in
4563 doc/Encoding.n [Bug: 2451].  Applied patch to avoid linking pack.n to
4564 pack-old.n [Bug: 2469]. Patches from Don Porter. (redman)
4565
4566 7/29/99 (bug fix) Allow tcl to open CON and NUL, even for redirection
4567 of std channels.  [Bug: 2393 2392 2209 2458] (redman)
4568
4569 7/30/99 (bug fix) Applied fixed Trf patch from Andreas Kupries. 
4570 [Bug: 2386] (hobbs)
4571
4572 7/30/99 (bug fix) Fixed bug in info complete. [Bug: 2383 2466] (hobbs)
4573
4574 7/30/99 (bug fix) Applied patch to fix threading on Irix 6.5, patch
4575 provided by James Dennett.  [Bug: 2450] (redman)
4576
4577 7/30/99 (bug fix) Fixed launching of 16bit applications on Win9x from
4578 wish.  The command line was being primed with tclpip82.dll, but it was
4579 ignored later. 
4580
4581 7/30/99 (bug fix) Added functions to stub table, patch provided by Jan
4582 Nijtmans. [Bug: 2445] (hobbs)
4583
4584 8/1/99  (bug fix) Changed Windows socket driver to terminate threads
4585 by sending a message to the window rather than calling
4586 TerminateThread(), which seems to leak about 4k from the helper
4587 thread's stack space. (redman)
4588
4589 --------------- Released 8.2b2, August 5, 1999 ----------------------
4590
4591 8/4/99 (bug fix) Applied patches supplied by Henry Spencer to greatly
4592 enhance performance of certain classes of regular expressions. 
4593 [Bug: 2440 2447] (stanton)
4594
4595 8/5/99 (doc change) Made it clear that tcl_pkgPath was not set for
4596 Windows. [Bug: 2455] (hobbs)
4597
4598 8/5/99 (bug fix) Fixed reference to bytes that might not be null
4599 terminated in tclLiteral.c. [Bug: 2496] (hobbs)
4600
4601 8/5/99 (bug fix) Fixed typo in http.tcl. [Bug: 2502] (hobbs)
4602
4603 8/9/99 (bug fix) Fixed test suite to handle larger integers
4604 (64bit). Patch from Don Porter. (hobbs)
4605
4606 8/9/99 (documentation fix) Clarified Tcl_DecrRefCount docs 
4607 [Bug: 1952]. Clarified array pattern docs [Bug: 1330]. Fixed clock docs
4608 [Bug: 693]. Fixed formatting errors [Bug: 2188 2189]. Fixed doc error
4609 in tclvars.n [Bug: 2042]. (hobbs)
4610
4611 8/9/99 (bug fix) Fixed path handling in auto_execok [Bug: 1276] (hobbs)
4612
4613 8/9/99 (internal api change) Removed the TclpMutexLock and TclpMutexUnlock
4614 APIs and added a new exported api, Tcl_GetAllocMutex. These APIs are all for
4615 the mutex used in the simple memory allocators.  By making this change
4616 we are able to substitute different implementations of the thread-related
4617 APIs without having to recompile the Tcl core. (welch)
4618
4619 8/9/99 (new C API) Tcl_GetChannelNames returns a list of open channel
4620 names in the interpreter result.  Still no Tcl-level version of this,
4621 but server-like applications can use this to clean up files without
4622 deleting interpreters. (welch)
4623
4624 8/9/99 (bug fix) Traces were not firing on "info exists", which used to
4625 happen in Tcl 7.6 and earlier. An "info exists" now fires a read trace,
4626 if defined.  This makes it possible to fully implement variables that
4627 are defined via traces. (welch)
4628
4629 8/10/99 (bug fix) Fixed Brent's changes so that they work on
4630 Windows. (redman)
4631
4632 --------------- Released 8.2b3, August 11, 1999 ----------------------
4633
4634 8/12/99 (Mac) Rearrange projects in tclMacProjects.sea.hqx so that the
4635 build directory is separate from the sources. (Jim Ingham)
4636
4637 8/12/99 (bug fix) Fixed bug in Tcl_EvalEx where the termOffset was not
4638 being updated in cases where the evaluation returned a non TCL_OK
4639 error code. [Bug: 2535] (stanton)
4640
4641 --------------- Released 8.2.0, August 17, 1999 ----------------------
4642
4643 9/21/99 (config fixes) fixed several AIX configuration issues.  gcc and
4644 threading may still cause problems on AIX. (hobbs)
4645
4646 9/21/99 (bug fix) fixed expr double-eval problem. [Bug: 732] (hobbs)
4647
4648 9/21/99 (bug fix) fixed static buffer overflow problem. [Bug: 2483] (hobbs)
4649
4650 9/21/99 (bug fix) fixed end-int linsert interpretation. [Bug: 2693] (hobbs)
4651
4652 9/21/99 (bug fix) fixed bug when setting array in non-existent
4653 namespace. [Bug: 2613] (hobbs)
4654
4655 --- Released 8.2.1, October 04, 1999 --- See ChangeLog for details ---
4656
4657 10/30/99 (feature enhancement) new regexp engine from Henry Spencer
4658 was patched in - should greatly reduce stack space usage. (spencer)
4659
4660 10/30/99 (bug fix) fixed Purify reported memory leaks in findexecutable
4661 test command, TclpCreateProcess on Unix, in handling of C environ array,
4662 and in testthread code.  No more known (reported) mem leaks for Tcl
4663 built using gcc on Solaris 2.5.1.  Also none reported for Tcl on NT
4664 (using Purify 6.0). (hobbs)
4665
4666 10/30/99 (bug fix) fixed improper bytecode handling of 
4667 'eval {set array($unknownvar) 5}' (also for incr) (hobbs)
4668
4669 10/30/99 (bug fix) fixed event/io threading problems by making
4670 triggerPipe non-blocking (nick kisserbeth)
4671
4672 10/30/99 (bug fix) fixed Tcl_AppendStringsToObjVA and Tcl_AppendResultVA
4673 to only iterates once over the va_list (avoiding non-portable memcpy).
4674 (joe english, hobbs)
4675
4676 10/30/99 (bug fix) removed savedChar trick in tclCompile.c that appeared
4677 to be causing a segv when the literal table was released.
4678 [Bug: 2459, 2515] (David Whitehouse)
4679
4680 10/30/99 (bug fix) fixed [string index] to return ByteArrayObj
4681 when indexing into one (test case string-5.16) [Bug: 2871] (hobbs)
4682
4683 10/30/99 (bug fix) fixes for mac UTF filename handling (ingham)
4684
4685 --- Released 8.2.2, November 04, 1999 --- See ChangeLog for details ---
4686
4687 11/19/99 (feature enhancement) bug fixes for http package as well as
4688 patch required by TLS (SSL) extension that adds http::(un)register
4689 and -type to http::geturl.  Up'd http pkg version to 2.2.
4690
4691 11/19/99 (bug fix) removed extra decr of numLevels in Tcl_EvalObjEx
4692 that could cause seg fault (mjansen@wendt.de)
4693
4694 11/19/99 (bug fixes) numerous minor big fixes, including correcting the
4695 installation of the koi8-r encoding and tcltest1.0 on Windows.
4696
4697 11/30/99 (bug fix) fixes scan where %[..] didn't match anything
4698
4699 11/30/99 (bug fix) fixed setting of isNonBlocking flag in PipeBlockModeProc
4700 so you can now close a non-blocking channel without waiting.
4701
4702 11/30/99 (bug work-around) prevented the unloading of DLLs for Unix in
4703 TclFinalizeLoad.  This stops the seg fault on exit that some users would
4704 see (ie with oratcl) when using DLLs that do nasty things like register
4705 atexit handlers.
4706
4707 12/07/99 (bug fix) fixes for 'expr + {[incr]}' and 'expr + {[error]}'
4708 cases (different causes).
4709
4710 --- Released 8.2.3, December 16, 1999 --- See ChangeLog for details ---
4711
4712 1999-09-14 (feature enhancement) added -start switch to regexp and regsub.
4713
4714 1999-09-15 (feature enhancement) add 'array unset' command.
4715
4716 1999-09-15 (feature enhancement) rewrote runtime libraries to use new
4717 string functions
4718
4719 1999-08-18 (feature enhancement) added 'file channels' command, along with
4720 Tcl_GetChannelNames(Ex) public C APIs.
4721
4722 1999-10-19 (feature enhancement) enhanced tcltest package
4723
4724 1999-09-16 (feature enhancement) added -milliseconds switch to 'clock clicks'
4725
4726 1999-10-28 (feature enhancement) added support for inline 'scan'
4727
4728 1999-10-28 (feature enhancement) added support for touch functionality by
4729 extendeding 'file atime' and 'file mtime' to take an optional time argument
4730
4731 1999-11-24 (feature enhancement) added 'fconfigure $sock -lasterror'
4732 command to Windows to query the last error received on a serial socket.
4733
4734 1999-11-30 (bug fix) fixed handling of %Z on NT for timezones that don't
4735 have DST
4736
4737 1999-12-03 (feature enhancement) improved error message in bad octal cases
4738 and improper use of comments. (hobbs)
4739
4740 1999-12-07 (bug fix) fixed Tcl_ScanCountedElement to not step
4741 beyond the end of the counted string
4742
4743 1999-12-09 (feature enhancement) removed all references to 16 bit
4744 compatibility code for Windows (hobbs)
4745
4746 1999-12-10 (bug fix) removed check for vfork - Tcl now uses only fork in
4747 exec. (hobbs)
4748
4749 1999-12-10 (optimization) changed Tcl_ConcatObj to return a list
4750 object when it receives all pure list objects as input (used by 'concat'),
4751 added optimizations in Tcl_EvalObjEx for pure list case, and optimized
4752 INST_TRY_CVT_TO_NUMERIC in TclExecuteByteCode for boolean objects.
4753 (oakley, hobbs)
4754
4755 1999-12-12 (feature enhancement) enhanced glob command with -type, -path,
4756 -directory and -join switches. (darley, hobbs)
4757
4758 1999-12-21 (bug fix) changed CreateThread to _beginthreadex and
4759 ExitThread to _endthreadex to prevent 4K mem leak (gravereaux)
4760
4761 1999-12-21 (bug fix) fixed applescript for I18N
4762
4763 1999-12-21 (feature enhancement) added -unique option to lsort (hobbs)
4764
4765 1999-12-21 (bug fix) changed thread ids to longs (for 64bit systems)
4766
4767 --- Released 8.3b1, December 22, 1999 --- See ChangeLog for details ---
4768
4769 2000-01-10 (feature enhancement) clock scan now supports the common
4770 ISO 8601 date/time formats.  See docs for details. (melski)
4771
4772 2000-01-10 (bug fix) prevented \ooo substitution from accepting
4773 non-octal digits [Bug: 3975] (hobbs)
4774
4775 2000-01-11 (bug fix) fixed improper handling of DST by clock when
4776 using relative times (like "1 month" or "tomorrow"). (melski)
4777
4778 2000-01-12 (bug fix) improved build support for Tru64 v5, NetBSD
4779 and Reliant Unix (hobbs)
4780
4781 2000-01-12 (bug fix) made imported commands also import their
4782 compile procedure (duffin)
4783
4784 2000-01-12 (bug fix) fixed 'info procs ::namesp::*' behavior to return
4785 procs in a namespace (dejong)
4786
4787 2000-01-12 (feature enhancement) added support for setting permissions
4788 symbolicly (like chmod) in [file attributes $file -permissions ...] (schoebel)
4789
4790 2000-01-13 (bug fix) fixed lsort -dictionary problem when sorting
4791 characters between 'Z' and 'a' (flawed upper/lower comparison logic) (melski)
4792
4793 --- Released 8.3b2, January 13, 2000 --- See ChangeLog for details ---
4794
4795 2000-01-14 (feature enhancement) clock format %Q added, clock scan updated
4796
4797 2000-01-20 (bug fix) corrected complex array elem compiling (Spjuth)
4798
4799 2000-01-20 (bug fix) made [info body] always return a string type arg,
4800 to prevent possible misuse of bytecodes in the wrong context (hobbs)
4801
4802 2000-01-20 (bug fixes) several fixes to variable handling to prevent
4803 possible crashes, and further definition of correct behavior (melski)
4804
4805 2000-01-25 (bug fixes) improved QNX, Ultrix and OSF1 (Tru64) config and
4806 compatibility (edge, furukawa)
4807
4808 2000-01-25 (bug fix) fixed mem leak when calling lsort with a bad -command
4809 argument (hobbs)
4810
4811 2000-01-27 (feature enhancement) package mechanism overhaul: changed
4812 behavior of pkg_mkIndex to do -direct by default, added -lazy option.
4813 Fixed pkg_mkIndex to handle odd proc names and auto_mkIndex to use platform
4814 independent file paths.  Other fixes for odd package quirks.  Added
4815 ::pkg namespace and ::pkg::create helper function. (melski)
4816
4817 2000-02-01 (bug fix) fixed problem where http POST would send one extra
4818 newline (vasiljevic)
4819
4820 2000-02-02 (feature enhancement) added docs for new regexp -inline and
4821 -all switches. (hobbs)
4822
4823 2000-02-08 (bug fix) corrected handling of "next monthname" in clock scan
4824 (melski)
4825
4826 2000-02-09 (bug fix) restored Mac source to build readiness and prevented
4827 mac panic from an error when closing an async socket (steffen, ingham)
4828
4829 2000-02-10 (feature enhancement) improved error reporting for failed
4830 loads on Windows (dejong, hobbs)
4831
4832 --- Released 8.3.0, February 10, 2000 --- See ChangeLog for details ---
4833
4834 2000-03 (bug fixes, feature enhancement) overhaul of http package for
4835 proper handling of async callbacks (new options), version is now at 2.3
4836 (tamhankar, welch)
4837
4838 2000-03 (performance enhancement) speedup in Windows filename handling (newman)
4839 and ==/!= empty string in exprs. (hobbs)
4840
4841 2000-03-27 (bug fix) added uniq'ing test to namespace export list to
4842 prevent unnecessary mem growth (hobbs)
4843
4844 2000-03-29 (bug fix) fixed mem leak when repeatedly sourcing the same
4845 bytecompiled (tbc) code repeatedly across different interpreters (hobbs)
4846
4847 2000-03-29 (config enhancement) improved build support for gcc/mingw on
4848 Windows (nijtmans, hobbs) and added RPM target (melski)
4849
4850 2000-03-31 (bug fix) corrected data encoding problem when using
4851 "exec << $data" construct (melski)
4852
4853 2000-04 (feature enhancement) overhaul of threading mechanism to better
4854 support tcl level thread command (new APIs Tcl_ConditionFinalize,
4855 Tcl_MutexFinalize, Tcl_CreateThread, etc, all docs in Thread.3).
4856 (kupries, graveraux)
4857 This enables the tcl level thread extension. (welch)
4858
4859 2000-04-10 (bug fix) fixed infinite loop case in regexp -all (melski)
4860
4861 2000-04-13 (config enhancement) added support for --enable-64bit-vis
4862 Sparc target. (hobbs)
4863
4864 2000-04-18 (bug fix) moved tclLibraryPath to thread-local storage to fix
4865 possible race condition on MP machines (hobbs)
4866
4867 2000-04-18 (config enhancement) added MacOS X build target and
4868 tclLoadDyld.c dl type. (sanchez)
4869
4870 2000-04-23 (bug fix) several Mac socket fixes (ingham)
4871
4872 2000-04-24 (bug fix) fixed hang in threaded Unix case when backgrounded
4873 exec process was running (dejong)
4874
4875 --- Released 8.3.1, April 26, 2000 --- See ChangeLog for details ---
4876
4877 2000-04-26 (doc fix) updated/added documentation for many API's and
4878 commands (melski)
4879
4880 2000-05-02 (feature enhancement) added support for joinable threads;
4881 extended API's for channels to allow channels to move between threads
4882 (kupries)
4883
4884 2000-05-02 (feature enhancement) changed error return for procedures
4885 with incorrect args to be like the Tcl_WrongNumArgs API, with a "wrong
4886 # args: ..." message printed, with an args list (hobbs)
4887
4888 2000-05-08 (feature enhancement) added [array statistics] command
4889
4890 2000-05-08 (performance enhancement) rewrote Tcl_StringCaseMatch
4891 algorithm for better performance; this affects the [string match]
4892 command; added "eq" and "ne" operands to expr, for testing
4893 string equality and inequality (hobbs)
4894
4895 2000-05-09 (feature enhancement) extended [lsearch] to support sorted
4896 list searches and typed list searches (melski)
4897
4898 2000-05-10 (feature enhancement) added [namespace exists] command
4899 (darley)
4900
4901 2000-05-18 (build enhancement) added support for mingw compile env and
4902 cross-compiling (dejong)
4903
4904 2000-05-18 (bug fix) corrected clock grammar to properly handle the
4905 "ago" keyword when it follows multiple relative unit specifiers
4906 (melski)
4907
4908 2000-05-22 (compile fix) type cast cleanups (dejong)
4909
4910 2000-05-23 (performance enhancement) added byte-compiled
4911 implementation of [return] command and [string] command (melski)
4912
4913 2000-05-26 (performance enhancement) extended byte-compiled [string]
4914 command with support for [string compare/index/match] (hobbs)
4915
4916 2000-05-27 (feature enhancement) added ability to set [info script]
4917 return value ([info script ?newFileName?]) (welch)
4918
4919 2000-05-31 (feature enhancement) added support for regexp and exact
4920 pattern matching for [array names] (gazetta)
4921
4922 2000-05-31 (feature enhancement) added -nocomplain and -- flags to
4923 [unset] to allow for silent unset operation (hobbs)
4924
4925 --- Released 8.4a1, June 6, 2000 --- See ChangeLog for details ---
4926
4927 2000-05-29 (bug fix) corrected resource cleanup in http error cases.
4928 Improved handling of error cases in http. (tamhankar)
4929
4930 2000-07 (feature rewrite) complete rewrite of the Tcl IO channel subsystem
4931 to correct problems (hangs, core dumps) with the initial stacked channel
4932 implementation.  The new system has many more tests for robustness and
4933 scalability.  There are new C APIs (see Tcl_CreateChannel), but only
4934 stacked channel drivers are affected (ie: TLS, Trf, iogt).  The iogt
4935 extension has been added to the core test code to test the system.
4936 (hobbs, kupries)
4937         **** POTENTIAL INCOMPATABILITY ****
4938
4939 2000-07 (build improvements) cleanup of the makefiles and configure scripts
4940 to correct support for building under gcc for Windows. (dejong)
4941
4942 2000-08-07 (bug fix) corrected sizeof error in Tcl_GetIndexFromObjStruct.
4943 (perkins)
4944
4945 2000-08-07 (bug fix) correct off-by-one error in HistIndex, which was
4946 causing [history redo] to start its search at the wrong event index. (melski)
4947
4948 2000-08-07 (bug fix) corrected setlocale calls for XIM support and locale
4949 issues in startup. (takahashi)
4950
4951 2000-08-07 (bug fix) correct code to handle locale specific return values
4952 from strftime, if any. (wagner)
4953
4954 2000-08-07 (bug fix) tweaked grammar to properly handle the "ago" keyword
4955 when it follows multiple relative unit specifiers, as in
4956 "2 days 2 hours ago". (melski)
4957
4958 2000-08-07 (doc fixes) numerous doc fixes to correct SEE ALSO and NAME
4959 sections. (english)
4960
4961 2000-08-07 (bug fix) new man pages memory.n, TCL_MEM_DEBUG.3, Init.3 and
4962 DumpActiveMemory.3. (melski)
4963
4964 --- Released 8.3.2, August 9, 2000 --- See ChangeLog for details ---
4965
4966 2000-06 thru 2000-11 (build improvements) Added support for mingw (gcc on
4967 Windows), AIX-5 and Win64 builds (dejong, hobbs)
4968
4969 2000-06-23 (feature enhancement) ability to use Tcl_Obj *s as hash keys (duffin)
4970
4971 2000-06-29 (new features) added [mcmax] and [mcmset] and extended [unknown] in
4972 msgcat package (duperval, krone, nelson)
4973 => msgcat 1.1
4974
4975 2000-08 thru 2000-09 added tclPlatDecls.h to default install (melski, hobbs)
4976
4977 2000-08-24 (new feature) Enhanced trace syntax to add:
4978         trace {add|remove|list} {variable|command} name ops command
4979 (darley, melski)
4980
4981 2000-09-06 (cross-platform feature) Set ^Z (\32) as default EOF char. (hobbs)
4982
4983 2000-09-07 partial fix for bug 2460 to prevent exec mem leak on Windows for the
4984 common case (gravereaux)
4985
4986 2000-09-14 Improved string allocation growth for large strings (hintermayer,
4987 melski)
4988
4989 2000-09-14 New non-panic'ing mem allocation functions Tcl_AttemptAlloc,
4990 Tcl_AttemptRealloc, Tcl_AttemptSetObjLength (melski)
4991
4992 2000-09-20 (new features) completely new, enhanced syntax in tcltest package.
4993 Backwards compatable with tcltest v1. (hom)
4994 => tcltest 2.0
4995
4996 2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that
4997 didn't set nonBlocking correctly when resetting the flags for the write
4998 side (mem leak) Correct mem leak in channels when statePtr was released
4999 (hobbs)
5000
5001 2000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason)
5002
5003 2000-10-06 (bug fix) corrected [file channels] to only return channels in
5004 the current interpreter (hobbs)
5005
5006 2000-10-20 (performance enhancement) call stat only when necessary in 'glob' to
5007 speed up command significantly in base cases (hobbs)
5008
5009 2000-10-27 Fixed mem leak in Tcl_CreateChannel. Re-purified core via test
5010 suites.  (hobbs)
5011
5012 2000-10-30 (new feature) add "ja_JP.eucJP" map to "euc-jp" encoding (takahashi)
5013
5014 2000-11-01 (mem leak) Corrected excessive mem use of info exists on a
5015 non-existent array element (hobbs)
5016
5017 2000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded
5018 environment (gravereaux)
5019
5020 2000-11-03 (new feature) Tcl_SetMainLoop enables defining an event loop for
5021 tclsh.  This enables Tk as a truly loadable package. (hobbs)
5022
5023 --- Released 8.4a2, November 3, 2000 --- See ChangeLog for details ---
5024
5025 2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that
5026 didn't set nonBlocking correctly when resetting the flags for the write
5027 side (mem leak) Correct mem leak in channels when statePtr was released
5028 (hobbs)
5029
5030 2000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason)
5031
5032 2000-10-06 (bug fix) corrected [file channels] to only return channels in
5033 the current interpreter (hobbs)
5034
5035 2000-10-20 (performance enhancement) call stat only when necessary in 'glob' to
5036 speed up command significantly in base cases (hobbs)
5037
5038 2000-11-01 (mem leak) Corrected excessive mem use of info exists on a
5039 non-existent array element (hobbs)
5040
5041 2000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded
5042 environment (gravereaux)
5043
5044 2000-11-23 (mem leak) fixed potential memory leak in error case of lsort
5045 (fellows)
5046
5047 2000-12-09 (feature enhancement) changed %o and %x to use strtoul instead
5048 of strtol to correctly preserve scan<>format conversion of large integers
5049 (hobbs)
5050 Fixed handling of {!<boolean>} in expressions (hobbs, fellows)
5051
5052 2000-12-14 (feature enhancement) improved (s)rand for 64-bit platforms
5053 (porter)
5054
5055 2001-01-04 (bug fix) corrected parsing of $tcl_libPath at startup on
5056 Windows (porter)
5057
5058 2001-01-30 (bug fix) Fixed possible hangs in fcopy. (porter)
5059
5060 2001-02-15 (performance enhancement) improved efficiency of [string split]
5061 (fellows)
5062
5063 2001-03-13 (bug fix) Correctly possible memory corruption in string map {}
5064 $str (fellows)
5065
5066 2001-03-29 (bug fix) prevent potential race condition and security leak in
5067 tmp filename creation on Unix. (max)
5068 Fixed handling of timeout for threads (corrects excessive CPU usage issue
5069 for Tk on Unix in threaded Tcl environment). (ruppert)
5070
5071 2001-03-30 (bug fix) corrected Windows memory error on exit (wu)
5072 Fixed race condition in readability of socket on Windows.
5073
5074 2001-04-03 (doc fixes) numerous doc corrections and clarifications.
5075 Update of READMEs.
5076
5077 2001-04-04 (build improvements) redid Mac build structure (steffen)
5078 Corrected IRIX-5* configure (english).  Added support for AIX-5 (hobbs).
5079 Added support for Win64 (hobbs).
5080
5081 --- Released 8.3.3, April 6, 2001 --- See ChangeLog for details ---
5082
5083 2000-11-23 (new feature)[TIP 7] higher resolution timer on Windows (kenny)
5084
5085 2001-01-18 (new feature) Tcl_InitHashTableEx renamed to Tcl_InitCustomHashTable
5086 (kupries)
5087
5088 2001-03-30 (new feature)[TIP 10] support for thread-aware/hot channels (kupries)
5089
5090 2001-04-06 (new feature)[219280] auto-loading hidden in ::errorInfo (porter)
5091
5092 2001-04-07 (bug fix)[406709] corrected panic when extra items left on the
5093 byte compiler execution stack (sofer)
5094
5095 2001-04-09 (bug fix)[219136,232558] improved use of thread-safe functions in
5096 unix time commands (kenny)
5097
5098 2001-04-24 (new feature)[TIP 27] started CONST-ification of the Tcl APIs (kenny)
5099
5100 2001-05-03 (new feature) [auto_import] now matches patterns like
5101 [namespace import], not like [string match] (porter)
5102         **** POTENTIAL INCOMPATABILITY ****
5103
5104 2001-05-07 (new feature)[416643] distinct srand() seed per interp (sofer)
5105
5106 2001-05-15 (new feature) new Tcl_GetUnicodeFromObj API (hobbs)
5107
5108 2001-05-16 (performance enhancement) byte-compiled versions of [lappend],
5109 [append] simple cases (hobbs)
5110
5111 2001-05-23 (new feature) added ISO-8859-15 and koi8-u encodings, updated other
5112 encoding tables based on http://www.unicode.org/Public/MAPPINGS/ (kuhn)
5113
5114 2001-05-27 (new feature) updated to Unicode 3.1.0 data set (still using 16
5115 bits for Tcl_UniChar though) (hobbs)
5116
5117 2001-05-30 (new feature)[TIP 15] Tcl_GetMathFuncInfo, Tcl_ListMathFuncs,
5118 Tcl_InfoObjCmd, InfoFunctionsCmd APIs (fellows)
5119
5120 2001-06-08 (bug fix,feature enhancement)[219170,414936] all Tcl_Panic 
5121 definitions brought into agreement (porter)
5122
5123 2001-06-12 (bug fix)[219232] regexp returned non-matching sub-pairs to have
5124 index pair {-1 -1} (fellows)
5125
5126 2001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII
5127 characters.  (hobbs, riefenstahl)
5128
5129 2001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer)
5130
5131 2001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings
5132 (hobbs, barras)
5133
5134 2001-07-12 (new feature)[TIP 36] Tcl_SubstObj API (fellows)
5135
5136 2001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows
5137 (hobbs, jsmith)
5138
5139 2001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size
5140 of a channel is changed after channel use has already begun (kupries, porter)
5141
5142 2001-07-31 (new feature)[TIP 17] TclFS* APIs provide new virtual file
5143 system.  This includes the addition of 'file normalize', 'file system',
5144 'file separator' and 'glob -tails' (darley)
5145
5146 2001-08-06 (bug fix) removed use of tmpnam in TclpCreateTempFile on Unix (lim)
5147
5148  * improved build support for IRIX, GNU HURD, Mac OS 9 and OS X
5149
5150  * configure scripts revamped for better support of cygwin and gcc on
5151    Windows (mdejong)
5152
5153  * corrected several minor errors noted by Purify (hobbs)
5154
5155 --- Released 8.4a3, August 6, 2001 --- See ChangeLog for details ---
5156
5157 2001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII
5158 characters.  (hobbs, riefenstahl)
5159
5160 2001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer)
5161
5162 2001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings
5163 (hobbs, barras)
5164
5165 2001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows
5166 (hobbs, jsmith)
5167
5168 2001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size
5169 of a channel is changed after channel use has already begun (kupries, porter)
5170
5171 2001-08-06 (bug fix)[442665] corrected object reference counting in [gets]
5172 (jikamens)
5173
5174 2001-08-06 (new feature) added GNU (HURD) configuration target. (brinkmann)
5175
5176 2001-08-07 (bug fix)[406709] corrected panic when extra items left on the
5177 byte compiler execution stack (see test foreach-5.5) (sofer, tallneil, jstrot)
5178
5179 2001-08-08 (new features) updated packages msgcat 1.1.1, opt 0.4.3,
5180 tcltest 1.0.1, dependencies checked (porter)
5181
5182 2001-08-20 (new feature)[452217] http 2.3.2: include port number in Host: header
5183 to comply with HTTP/1.1 spec (RFC 2068)  (hobbs, tils)
5184
5185 2001-08-23 (new feature) added QNX-6 build support (loverso)
5186
5187 2001-08-23 (bug fix) corrected handling of spaces in path name passed to
5188 [exec] on Windows (kenpoole)
5189
5190 2001-08-24 (bug fix) corrected [package forget] stopping on non-existent
5191 package (porter)
5192
5193 2001-08-24 (bug fix) corrected construction of script library search path
5194 relative to executable (porter)
5195
5196 2001-08-24 (bug fix) [auto_import] now matches patterns like
5197 [namespace import], not like [string match] (porter)
5198         **** POTENTIAL INCOMPATABILITY ****
5199
5200 2001-08-27 (new feature) added Tcl_SetMainLoop() to enable loading Tk as a
5201 true package (hobbs)
5202
5203 2001-08-30 (bug fix) build support for Crays (andreasen)
5204
5205 2001-09-01 (bug fix) rewrite of Tcl_Async* APIs to better manage thread
5206 cleanup  (gravereaux)
5207
5208 2001-09-06 (new feature) http 2.4: honor the Content-encoding and charset
5209 parameters; add -binary switch for forcing the issue (hobbs, saoukhi, orwell)
5210 => http 2.4
5211
5212 2001-09-06 (performance enhancement) rewrite of file I/O flush management on
5213 Windows.  Approximately 100x speedup for some operations. (kupries, traum)
5214
5215 2001-09-10 (bug fix) corrected finalization error in TclInExit (darley)
5216
5217 2001-09-10 (bug fix) protect against alias loops (hobbs)
5218
5219 2001-09-12 (bug fix) added missing #include in tclLoadShl.c (techentin)
5220
5221 2001-09-12 (bug fix) script library path construction on Windows no longer
5222 uses registry, nor adds the current working directory to the path (porter)
5223
5224 2001-09-12 (bug fix) correct bugs in compatibility strtod() (porter)
5225
5226 2001-09-13 (bug fix) Tcl_UtfPrev now returns the proper location when the
5227 middle of a UTF-8 byte is passed in (hobbs)
5228
5229 2001-09-19 (bug fix) [format] and [scan] corrected for 64-bit machines (rmax)
5230
5231 2001-09-19 (new feature) --enable-64-bit support for HP-11. (hobbs)
5232
5233 2001-09-19 (new feature) native memory allocator now default on Windows
5234 (hobbs)
5235
5236 2001-09-20 (new feature) WIN64 support and extra processor definitions
5237 (hobbs, mstacy)
5238
5239 2001-09-26 (bug fix) corrected potential deadlock in channels that do not
5240 provide a BlockModeProc (kupries, kogorman)
5241
5242 2001-10-03  (new feature) WIN64 build support (hobbs)
5243
5244 2001-10-03 (bug fix) correction in thread finalization (rbrunner)
5245
5246 2001-10-04 (new feature) updated encodings with latest mappings from
5247 www.unicode.org (hobbs)
5248
5249 2001-10-11 (bug fix) corrected cleanup of self-referential bytecodes at
5250 interpreter deletion (sofer, rbrunner)
5251
5252 2001-10-16 (new feature) config support for MacOSX / Darwin (steffen)
5253
5254 2001-10-16 (new feature, Mac) change in binary extension format from MachO
5255 bundles to standard .dylib dynamic libraries like on other unices.
5256         *** POTENTIAL INCOMPATIBILITY ***
5257
5258 2001-10-18 (bug fix) corrected off-by-one-day error in clock scan with
5259 relative months and years during swing hours. (lavana)
5260
5261 --- Released 8.3.4, October 19, 2001 --- See ChangeLog for details ---
5262
5263 2001-08-21 (bug fix)[219184] overagressive compilation of [catch] (sofer)
5264
5265 2001-08-22 (new feature)[227482] [dde request -binary] (hobbs)
5266 => dde 1.2
5267
5268 2001-08-30 (performance enhancement)[456668] fully qualified command names use
5269 cached Command for all namespaces, avoiding repeated lookups (sofer)
5270
5271 2001-08-31 (performance enhancement) bytecompiled [list] (hobbs)
5272
5273 2001-09-02 (bug fix)[403553] Add -Zl to VC++ compile line for tclStubLib to
5274 avoid any specific C-runtime library dependence. (gravereaux)
5275
5276 2001-09-05 (new feature) restored support for Borland compiler (gravereaux)
5277
5278 2001-09-05 (new feature)[TIP 49] Tcl_OutputBuffered API (schroedter, fellows)
5279
5280 2001-09-07 (new feature) restored VC++ 5.0 compatibility (gravereaux)
5281
5282 2001-09-10 (performance enhancement)[TIP 53,451441] [proc foo args {}] now
5283 compiles to 0 bytecodes (sofer)
5284
5285 2001-09-13 (new feature)[TIP 56] Tcl_EvalTokensStandard API (sofer)
5286
5287 2001-09-13 (new feature) Old ChangeLog entries => ChangeLog.1999 (hobbs)
5288
5289 2001-09-17 (new feature) compiling with TCL_COMPILE_DEBUG now required to 
5290 enable all compile and execution tracing (sofer)
5291         *** POTENTIAL INCOMPATIBILITY ***
5292
5293 2001-09-19 (bug fix)[411825] made TclNeedSpace UTF-8 aware (fellows)
5294
5295 2001-09-19 (bug fix)[219166] overagressive compilation of "quoted" bodies of
5296 [for], [foreach], [if], and [while] (sofer)
5297
5298 2001-09-19 (performance enhancement) bytecompiled [string match] (hobbs)
5299
5300 2001-10-15 (new feature)[TIP 35] serial channel configuration: Win (schroedter)
5301
5302 2001-11-06 (bug fix)[478856] loss of fileevents due to short reads (kupries)
5303
5304 2001-11-06 (new feature) revitalized makefile.vc (gravereaux)
5305
5306 2001-11-07 (new feature) Cygwin gcc support dropped.  Use mingw (dejong)
5307         *** POTENTIAL INCOMPATIBILITY ***
5308
5309 2001-11-07 (new feature) Support --include-dir= and --libdir= options to
5310 configure.  Store in tclConfig.sh as TCL_INCLUDE_SPEC and TCL_LIB_SPEC.
5311 (dejong)
5312         *** POTENTIAL INCOMPATIBILITY ***
5313
5314 2001-11-08 (new feature) Enable --enable-threads on FreeBSD (dejong)
5315
5316 2001-11-08 (new feature) New make target 'make gdb' (dejong)
5317
5318 2001-11-09 (bug fix)[480176] [global] mishandled varnames matching :* (porter)
5319
5320 2001-11-12 (new feature)[TIP 22,33,45] new command [lset],
5321 [lindex] extended to accept multiple indices. (kenny, hobbs)
5322
5323 2001-11-16 (new feature) new configure option --enable-langinfo=no.
5324 By default, nl_langinfo() is used on Unix to determine system encoding.
5325 Tcl's built-in system is used only if that fails, or configured with
5326 --enable-langinfo=no. (hobbs, wagner)
5327
5328 2001-11-19 (new feature)[TIP 62] A Tcl_VarTraceProc can now return Tcl_Obj *
5329 or a dynamic string as well as a static string to indicate an error (fellows)
5330
5331 2001-11-19 (new feature)[TIP 73] Tcl_GetTime API (kenny)
5332
5333 2001-11-19 (bug fix)[478847] overflows in [time] of >2**31 microseconds (kenny)
5334
5335 2001-11-29 (performance enhancement) caching scheme added to [binary scan]
5336 (fellows)
5337
5338 2001-12-05 (new feature) new algorithm for [array get] adds safety when read
5339 traces modify the array. (sofer)
5340         *** POTENTIAL INCOMPATIBILITY ***
5341
5342 2001-12-10 (bug fix)[490514] doc fixes (porter,english)
5343
5344 2001-12-18 (new feature) removed unix/dltest/configure; unix/configure does
5345 all (dejong)
5346
5347 2001-12-19 (new feature) New make target 'make shell' (dejong)
5348
5349 2001-12-21 (new feature) MaxOSX / Darwin support (steffen)
5350
5351 2001-12-28 (new feature) new command [memory onexit] replaces [checkmem] when
5352 compiled with TCL_MEM_DEBUG.  Added documentation. (porter)
5353         *** POTENTIAL INCOMPATIBILITY ***
5354
5355 2001-12-28 (bug fix) proper case in [auto_execok] use of $env(COMPSPEC) (hobbs)
5356
5357 2002-01-05 (feature rewrite) Tcl_Main() rewritten and documentation improved.
5358 Interactive operation and event loop operation (via Tcl_SetMainLoop) now
5359 interleave cleanly.  Also more robust against strange happenings. (porter)
5360
5361 2002-01-17 (bug fix)[504642] Tcl_Obj refCounts in [gets] (griffen,kupries)
5362
5363 2002-01-21 (bug fix)[506297] infinite loop writing in iso2022-jap encoding
5364 (forssen,kupries)
5365
5366 2002-01-24 (HTTP server bug workaround)[504508] leave the default port out
5367 of the Host: header value
5368 => http 2.4.1 (hobbs)
5369
5370 2002-01-25 (new feature)[496733] socket options -eofchar and -translation
5371 return read-only values (dejong)
5372
5373 2002-01-28 (new feature) Old ChangeLog entries => ChangeLog.20900 (hobbs)
5374
5375 2002-01-28 (performance enhancement) bytecompiled [regexp] for trivial cases
5376 that amount to string matching.  Also -nocase and --. (hobbs)
5377
5378 2002-02-05 (bug fix) [http::error] called when [::error] intended
5379 => http 2.4.2 (porter)
5380
5381 2002-02-05 (bug fix)[465765] avoid zero-byte writes to STREAMs
5382 (talcott,kupries)
5383
5384 2002-02-06 (performance enhancement) [regsub] special cases that map to
5385 [string map] detected. (hobbs)
5386
5387 2002-02-06 (bug fix)[495213] [scan] accept 0x as prefix of base 16 value
5388 (hobbs)
5389
5390 2002-02-10 (new feature)[TIP 32,79] Tcl_CreateObjTrace API (kenny)
5391
5392 2002-02-12 (new feature) partial support for DJGPP Tcl on DOS (gravereaux)
5393
5394 2002-02-14 (mem leak) Fixed leaking an empty Tcl_Obj when [gets $chan]
5395 errored out. (kupries, sofer)
5396
5397 2002-02-15 (new feature)[TIP 72] support for 64-bit integer values on
5398 32-bit platforms and ability to work with >2GiB files.  Extends many
5399 commands.  See ChangeLog and TIP for details.
5400         *** POTENTIAL INCOMPATIBILITY ***
5401
5402 2002-02-22 (bug fix)[476537] Fix panic when loading shared library without
5403 proper use of stubs on platform without backlinking (porter)
5404
5405 2002-02-22 (new feature)  64-bit support for xlc compiler on AIX-4 (hobbs)
5406
5407 2002-02-22 (new feature)[521560] Removed limits on filename length and
5408 format [source]able through the Safe Base (hobbs)
5409
5410 2002-02-22 (performance enhancement) optimized bytecodes for [if], [for],
5411 [while] and constant conditions (sofer)
5412
5413 2002-02-22 (new feature)[TIP 76] [regsub] can now return result (fellows)
5414
5415 2002-02-25 (bug fix)[495207] buffer overrun when closing ] left out of
5416 argument to [subst] (sofer, english)
5417
5418 2002-02-25 (bug fix)[514392] [load] updated for Mac OS X 10.1 (steffen)
5419
5420 2002-02-26 (bug fix) [info hostname] choked on names >31 characters (hobbs)
5421
5422 2002-02-26 (new feature)[TIP 35] serial channel configuration: Unix
5423 (schroedter, hobbs)
5424
5425 2002-02-25 (bug fix)[483575] [fconfigure ... -error] now no-op on Mac (kupries)
5426
5427 2002-02-28 (performance enhancement)[458872] fully qualified command names use
5428 cached Command for all namespaces, avoiding repeated lookups (sofer)
5429
5430  * (new feature)[TIP 27] completed CONST-ification of TCL APIs.
5431 Added compiler macro USE_NON_CONST to keep using those old API prototypes
5432 that present irreconcilable source incompatibilities with header files
5433 of prior Tcl releases.  Others will need to be reconciled.
5434         *** POTENTIAL INCOMPATIBILITY ***
5435
5436 2002-03-04 (bug fix)[474358, 218099, 219314, 524674] fixed several problems
5437 related to the handling of iso2022 text and finalization of escape-based
5438 encodings. (taguchi, takahashi, hobbs)
5439
5440 --- Released 8.4a4, March 5, 2002 --- See ChangeLog for details ---
5441
5442 2002-03-06 (new feature)[TIP 80] expanded [lsearch] options (wilkason, fellows)
5443
5444 2002-03-07 (new feature)[TIP 87] [interp recursionlimit] (trier)
5445
5446 2002-03-08 (platform feature) mingw 1.1 build favored (dejong)
5447
5448 2002-03-20 (new feature)[TIP 27] CONST-ified variable access functions (porter)
5449
5450 2002-03-24 (bug fix)[511666,511658,523217,530960] expanded
5451 Tcl_FSMatchInDirectory to handle assorted [glob] bugs in VFS. (darley)
5452         *** POTENTIAL INCOMPATIBILITY with prior 8.4a releases ***
5453
5454 2002-03-25 (bug fix)[495726] stopped tcltest disabling of auto-loading (porter)
5455
5456 2002-03-25 (bug fix)[495977] allow \n in test constraints (porter)
5457
5458 2002-03-27 (platform support)[527941,533862] VC/winhelp/W9X (spjuth,
5459 gravereaux)
5460
5461 2002-03-28 (bug fix)[219181] exception at level 0 issues (sofer)
5462
5463 2002-03-28 (bug fix)[219362] command termination; Tcl_CreateTrace (knoll,sofer)
5464
5465 2002-04-05 (bug fix)[536879] exceptions during variable subst (porter)
5466
5467 2002-04-15 (bug fix)[497446,513983] tcltest syntax errors now raised (porter)
5468         ***POTENTIAL INCOMPATIBILITY with prior tcltest 2.0.* (8.4aX)***
5469
5470 2002-04-17 (bug fix)[495660] [(save|restore)state] deprecated (porter)
5471
5472 2002-04-17 (bug fix)[526524] escape-based encodings corrected (yamamoto, hobbs)
5473
5474 2002-04-18 (bug fix)[542588] [expr] error msgs improved (ehrens, sofer)
5475
5476 2002-04-18 (bug fix)[545325] [info level $level] now returns [namespace eval]
5477 as documented (suchenwirth,sofer)
5478
5479 2002-04-19 (bug fix)[544727] export [mcload]; ns context of [mcmax] (porter)
5480 => msgcat 1.2.3
5481
5482 2002-04-22 (performance enhancement) threaded memory allocator (AOL, hobbs)
5483
5484 2002-04-24 (new feature) TCLTK_NO_LIBRARY_TEXT_RESOURCES #define disables
5485 inclusion of tcl library code in resource fork on Mac.  (steffen)
5486
5487 2002-05-21 (platform support) static libs on OSF (dejong)
5488
5489 2002-05-24 (bug fix)[557878] set encoding on listening socket (staplin,
5490 kupries)
5491
5492 2002-05-24 (new feature)[TIP 91] Tcl_Seek compatibility (fellows)
5493
5494 2002-05-28 (bug fix)[545579] VFS [load] left temp file (darley)
5495
5496 2002-05-28 (bug fix)[559376] plug timezone env leak on Windows (hobbs)
5497
5498 2002-05-29 (performance enhancement) [string compare] optimized (hobbs,fellows)
5499
5500 2002-05-31 (bug fix)[550534] plug interp leak in [pkg_mkIndex] (helmut)
5501
5502 2002-05-31 (dead code)[474335,555635] removed all use of matherr() (english)
5503         *** POTENTIAL INCOMPATIBILITY ***
5504
5505 2002-06-04 (new feature)[TIP 85,521362] custom result match in tcltest
5506 (markus, porter)
5507 => tcltest 2.1
5508
5509 2002-06-06 (bug fix)[524352] encoding, threading, and environment issues on
5510 MacOSX (steffen)
5511
5512 2002-06-06 (bug fix)[512214,558742,512214,461000] lazy initialization of
5513 tcltest constraints (porter)
5514
5515 2002-06-07 (bug fix)[563122,564595] EOVERFLOW definitions (fellows)
5516
5517 2002-06-11 (bug fix)[567386] [info locals] corrections (sofer)
5518
5519 2002-06-14 (new feature)[TIP 102] [trace list] renamed [trace info] (fellows)
5520
5521 2002-06-17 (new feature)[525522,525525] msgcat support for XPG4 locales;
5522 examination of LC_ALL, LC_MESSAGES environment variables (haible, porter)
5523 => msgcat 1.3
5524
5525 2002-06-17 (new feature)[565088] header files assume modern C compiler by
5526 default; older compilers may need configuration (english)
5527         *** POTENTIAL INCOMPATIBILITY ***
5528
5529 2002-06-17 (bug fix)[554068] [exec] argument quoting on Windows (darley)
5530
5531 2002-06-17 (new feature)[TIP 62,462580] command execution traces (lavana)
5532
5533 2002-06-19 (bug fix)[558324] regexp sets a linked variable (watson)
5534
5535  * (performance enhancment) optimizations of bytecode execution (sofer)
5536
5537 2002-06-21 (new feature)[TIP 99,562970] new [file link] command (darley)
5538
5539 2002-06-24 (new feature)[TIP 101] new [tcltest::configure] command (porter)
5540 => tcltest 2.2
5541
5542 2002-06-25 (new feature) --enable-man-symlinks and --enable-man-compression
5543 options to configure (max)
5544
5545 2002-06-26 (bug fix)[565880] [clock format] now respects locale (max)
5546         *** POTENTIAL INCOMPATIBILITY ***
5547
5548 2002-07-03 (bug fix)[577015] [catch] catches even compile errors (sofer)
5549
5550 --- Released 8.4b1, July 5, 2002 --- See ChangeLog for details ---
5551
5552 2002-07-08 (bug fix) restored compatibility of [viewFile] in tcltest (porter)
5553
5554 2002-07-11 (bug fix) [file normalize] returns long form on Win 95/98/ME (darley)
5555
5556 2002-07-15 (performance enhancment) variable operations rewritten to store
5557         and use cached Var pointers (sofer)
5558
5559 2002-07-22 (bug fix)[218000] Inf and Nan are floating-point values (fellows)
5560
5561 2002-07-23 (platform support)[219220] 64-bit compile on IRIX (dejong)
5562
5563 2002-07-25 (bug fix)[219218] return codes in background errors (english)
5564
5565 2002-07-28 (bug fix)[582522] alias fires exec traces (sofer)
5566
5567 2002-07-29 (bug fix)[578363] regexp (fellows,pvgoran)
5568
5569 2002-07-30 (bug fix)[584603] WriteChars infinite loop non-UTF-8 string (kupries)
5570
5571 2002-08-04 (new feature)[584051,580433,585105,582429][TIP 27] Tcl interfaces 
5572         are now fully CONST-ified.  Use the symbols USE_NON_CONST or
5573         USE_COMPAT_CONST to select interfaces with fewer changes.
5574         *** POTENTIAL INCOMPATIBILITY ***
5575
5576 2002-08-05 (bug fix)[589859] tcltest setup and cleanup scripts skipped when
5577         test body is skipped (porter)
5578         => tcltest 2.2
5579
5580 2002-08-07 (bug fix)[587488] mem leak with USE_THREAD_ALLOC (sofer,sass)
5581         
5582 2002-08-07 (feature enhancement)[584794,584650,472576] boolean values
5583         are no longer always re-parsed from string. (sofer)
5584
5585 Many internal bugs fixed.
5586 Considerable cleanup of the test suite.
5587
5588 --- Released 8.4b2, August 9, 2002 --- See ChangeLog for details ---
5589
5590 2002-08-20 (new feature) --enable-memdebug configure option (kupries)
5591
5592 2002-08-23 (bug fix)[597936] mem leak with USE_THREAD_ALLOC (sofer,zoran)
5593
5594 2002-08-26 (bug fix)[599788] segfault in compiler (sofer,wilkason)
5595
5596 2002-08-28 (bug fix)[414910] avoid mem leaks accessing environment variables
5597         on Windows (welton,gravereaux)
5598
5599 2002-08-31 (platform support)[TIP 108] Mac OS X port (steffen,ingham)
5600
5601 2002-09-02 (platfrom support) 64-bit compile on HP-11 (martin)
5602
5603 --- Released 8.4.0, September 10, 2002 --- See ChangeLog for details ---
5604
5605 2002-09-18 (platform support) Updated support for compiling with Cygwin and
5606 either mingw or gcc. (khan, howell, dejong)
5607
5608 2002-09-22 (bug fix)[612786, 611922] Corrected [puts -nonewline] within
5609 test bodies. Also corrected reporting of body return code.  Updated tcltest
5610 to v2.2.1.
5611
5612 2002-09-24 (bug fix)[613117] More robust 64-bit wide integer value
5613 detection (fellows)
5614
5615 2002-09-26 (bug fix) correct overeager optimization of noop proc to handle
5616 the precompiled case. (sofer, hobbs)
5617
5618 2002-09-26 (bug fix)[615115] removed extraneous spaces in koi8-u.enc that
5619 confused encoding reader.
5620
5621 2002-09-29 (bug fix)[219355] Added proper exiting conditions using Win32
5622 console signals.  This handles the existing lack of a Ctrl+C exit to call
5623 exit handlers when built for thread support.  Also, properly handles exits
5624 from other conditions such as CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and
5625 CTRL_SHUTDOWN_EVENT signals.  In all cases, exit handlers will be called.
5626 (gravereaux)
5627
5628 2002-09-30 (bug fix) improve the checking for bad regular expressions
5629 during regexp compilation.  Resultant compiles were correct, but much
5630 slower than necessary. (hobbs)
5631
5632 2002-10-01 (bug fix) fix precompiled locals to support 8.3 precompiled
5633 code. (hobbs)
5634
5635 2002-10-09 (bug fix)[620735] Added code to set an exit handler on Windows
5636 that terminates the thread that calibrates the performance counter, so that
5637 the thread won't outlive unloading the Tcl DLL. (kenny)
5638
5639 2002-10-09 (build support) all --enable-symbols to take the enhanced
5640 options yes|no|mem|compile|all. (hobbs)
5641
5642 2002-10-10 (build support) enable USE_THREAD_ALLOC (new threaded allocator)
5643 by default on Windows. (hobbs, gravereaux)
5644
5645 2002-10-14 (bug fix)[623269] correct possible mem leak in
5646 Tcl_PutEnv. (brouwers)
5647
5648 2002-10-15 (bug fix)[615043] fix in execution traces with idle tasks
5649 firing. (lavana)
5650
5651 2002-10-15 (platform support) Correct AIX-5 ppc and 4/5 64-bit build flags.
5652 Correct HP 11 64-bit gcc building. (martin, hobbs)
5653
5654 2002-10-17 (bug fix)[624755] Fixed code that check for proper # of args to
5655 [array names] (porter)
5656
5657 2002-10-18 (feature enhancement)[625453] Added support for broadcasting
5658 changes to the registry Environment on Windows.  Updated registry package
5659 to v1.1. (hobbs)
5660
5661 2002-10-22 (platform support)[624509] On macosx, add embedded framework
5662 dirs to tcl_pkgPath: @executable_path/../Frameworks and
5663 @executable_path/../PrivateFrameworks (if they exist), as well as the dirs
5664 in DYLD_FRAMEWORK_PATH (if set). (steffen)
5665
5666 --- Released 8.4.1, October 22, 2002 --- See ChangeLog for details ---