Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/tcl8.5.2/changes @ 64

Last change on this file since 64 was 25, checked in by landauf, 16 years ago

added tcl to libs

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