home *** CD-ROM | disk | FTP | other *** search
/ Ultra Pack / UltraComputing Partner Applications.iso / SunLabs / tclTK / src / tcl7.4 / changes next >
Encoding:
Text File  |  1995-06-30  |  50.0 KB  |  1,228 lines

  1. Recent user-visible changes to Tcl:
  2.  
  3. sccsid = %Z% %M% %I% %E% %U%
  4.  
  5. 1. No more [command1] [command2] construct for grouping multiple
  6. commands on a single command line.
  7.  
  8. 2. Semi-colon now available for grouping commands on a line.
  9.  
  10. 3. For a command to span multiple lines, must now use backslash-return
  11. at the end of each line but the last.
  12.  
  13. 4. "Var" command has been changed to "set".
  14.  
  15. 5. Double-quotes now available as an argument grouping character.
  16.  
  17. 6. "Return" may be used at top-level.
  18.  
  19. 7. More backslash sequences available now.  In particular, backslash-newline
  20. may be used to join lines in command files.
  21.  
  22. 8. New or modified built-in commands:  case, return, for, glob, info,
  23. print, return, set, source, string, uplevel.
  24.  
  25. 9. After an error, the variable "errorInfo" is filled with a stack
  26. trace showing what was being executed when the error occurred.
  27.  
  28. 10. Command abbreviations are accepted when parsing commands, but
  29. are not recommended except for purely-interactive commands.
  30.  
  31. 11. $, set, and expr all complain now if a non-existent variable is
  32. referenced.
  33.  
  34. 12. History facilities exist now.  See Tcl.man and Tcl_RecordAndEval.man.
  35.  
  36. 13. Changed to distinguish between empty variables and those that don't
  37. exist at all.  Interfaces to Tcl_GetVar and Tcl_ParseVar have changed
  38. (NULL return value is now possible).  *** POTENTIAL INCOMPATIBILITY ***
  39.  
  40. 14. Changed meaning of "level" argument to "uplevel" command (1 now means
  41. "go up one level", not "go to level 1"; "#1" means "go to level 1").
  42. *** POTENTIAL INCOMPATIBILITY ***
  43.  
  44. 15. 3/19/90 Added "info exists" option to see if variable exists.
  45.  
  46. 16. 3/19/90 Added "noAbbrev" variable to prohibit command abbreviations.
  47.  
  48. 17. 3/19/90 Added extra errorInfo option to "error" command.
  49.  
  50. 18. 3/21/90 Double-quotes now only affect space:  command, variable,
  51. and backslash substitutions still occur inside double-quotes.
  52. *** POTENTIAL INCOMPATIBILITY ***
  53.  
  54. 19. 3/21/90 Added support for \r.
  55.  
  56. 20. 3/21/90 List, concat, eval, and glob commands all expect at least
  57. one argument now.  *** POTENTIAL INCOMPATIBILITY ***
  58.  
  59. 21. 3/22/90 Added "?:" operators to expressions.
  60.  
  61. 22. 3/25/90 Fixed bug in Tcl_Result that caused memory to get trashed.
  62.  
  63. ------------------- Released version 3.1 ---------------------
  64.  
  65. 23. 3/29/90 Fixed bug that caused "file a.b/c ext" to return ".b/c".
  66.  
  67. 24. 3/29/90 Semi-colon is not treated specially when enclosed in
  68. double-quotes.
  69.  
  70. ------------------- Released version 3.2 ---------------------
  71.  
  72. 25. 4/16/90 Rewrote "exec" not to use select or signals anymore.
  73. Should be more Sys-V compatible, and no slower in the normal case.
  74.  
  75. 26. 4/18/90 Rewrote "glob" to eliminate GNU code (there's no GNU code
  76. left in Tcl, now), and added Tcl_TildeSubst procedure.  Added automatic
  77. tilde-substitution in many commands, including "glob".
  78.  
  79. ------------------- Released version 3.3 ---------------------
  80.  
  81. 27. 7/11/90 Added "Tcl_AppendResult" procedure.
  82.  
  83. 28. 7/20/90 "History" with no options now defaults to "history info"
  84. rather than to "history redo".  Although this is a backward incompatibility,
  85. it should only be used interactively and thus shouldn't present any
  86. compatibility problems with scripts.
  87.  
  88. 29. 7/20/90 Added "Tcl_GetInteger", "Tcl_GetDouble", and "Tcl_GetBoolean"
  89. procedures.
  90.  
  91. 30. 7/22/90 Removed "Tcl_WatchInterp" procedure:  doesn't seem to be
  92. necessary, since the same effect can be achieved with the deletion
  93. callbacks on individual commands.  *** POTENTIAL INCOMPATIBILITY ***
  94.  
  95. 31. 7/23/90 Added variable tracing:  Tcl_TraceVar, Tcl_UnTraceVar,
  96. and Tcl_VarTraceInfo procedures, "trace" command.
  97.  
  98. 32. 8/9/90 Mailed out list of all bug fixes since 3.3 release.
  99.  
  100. 33. 8/29/90 Fixed bugs in Tcl_Merge relating to backslashes and
  101. semi-colons.  Mailed out patch.
  102.  
  103. 34. 9/3/90 Fixed bug in tclBasic.c: quotes weren't quoting ]'s.
  104. Mailed out patch.
  105.  
  106. 35. 9/19/90 Rewrote exec to always use files both for input and
  107. output to the process.  The old pipe-based version didn't work if
  108. the exec'ed process forked a child and then exited:  Tcl waited
  109. around for stdout to get closed, which didn't happen until the
  110. grandchild exited.
  111.  
  112. 36. 11/5/90 ERR_IN_PROGRESS flag wasn't being cleared soon enough
  113. in Tcl_Eval, allowing error messages from different commands to
  114. pile up in $errorInfo.  Fixed by re-arranging code in Tcl_Eval that
  115. re-initializes result and ERR_IN_PROGRESS flag.  Didn't mail out
  116. patch:  changes too complicated to describe.
  117.  
  118. 37. 12/19/90 Added Tcl_VarEval procedure as a convenience for
  119. assembling and executing Tcl commands.
  120.  
  121. 38. 1/29/91 Fixed core leak in Tcl_AddErrorInfo.  Also changed procedure
  122. and Tcl_Eval so that first call to Tcl_AddErrorInfo need not come from
  123. Tcl_Eval.
  124.  
  125. ----------------- Released version 5.0 with Tk ------------------
  126.  
  127. 39. 4/3/91 Removed change bars from manual entries, leaving only those
  128. that came after version 3.3 was released.
  129.  
  130. 40. 5/17/91 Changed tests to conform to Mary Ann May-Pumphrey's approach.
  131.  
  132. 41. 5/23/91 Massive revision to Tcl parser to simplify the implementation
  133. of string and floating-point support in expressions.  Newlines inside
  134. [] are now treated as command separators rather than word separators
  135. (this makes newline treatment consistent throughout Tcl).
  136. *** POTENTIAL INCOMPATIBILITY ***
  137.  
  138. 42. 5/23/91 Massive rewrite of expression code to support floating-point
  139. values and simple string comparisons.  The C interfaces to expression
  140. routines have changed (Tcl_Expr is replaced by Tcl_ExprLong, Tcl_ExprDouble,
  141. etc.), but all old Tcl expression strings should be accepted by the new
  142. expression code.
  143. *** POTENTIAL INCOMPATIBILITY ***
  144.  
  145. 43. 5/23/91 Modified tclHistory.c to check for negative "keep" value.
  146.  
  147. 44. 5/23/91 Modified Tcl_Backslash to handle backslash-newline.  It now
  148. returns 0 to indicate that a backslash sequence should be replaced by
  149. no character at all.
  150. *** POTENTIAL INCOMPATIBILITY ***
  151.  
  152. 45. 5/29/91 Modified to use ANSI C function prototypes.  Must set
  153. "USE_ANSI" switch when compiling to get prototypes.
  154.  
  155. 46. 5/29/91 Completed test suite by providing tests for all of the
  156. built-in Tcl commands.
  157.  
  158. 47. 5/29/91 Changed Tcl_Concat to eliminate leading and trailing
  159. white-space in each of the things it concatenates and to ignore
  160. elements that are empty or have only white space in them.  This
  161. produces cleaner output from the "concat" command.
  162. *** POTENTIAL INCOMPATIBILITY ***
  163.  
  164. 48. 5/31/91 Changed "set" command and Tcl_SetVar procedure to return
  165. new value of variable.
  166.  
  167. 49. 6/1/91 Added "while" and "cd" commands.
  168.  
  169. 50. 6/1/91 Changed "exec" to delete the last character of program
  170. output if it is a newline.  In most cases this makes it easier to
  171. process program-generated output.
  172. *** POTENTIAL INCOMPATIBILITY ***
  173.  
  174. 51. 6/1/91 Made sure that pointers are never used after freeing them.
  175.  
  176. 52. 6/1/91 Fixed bug in TclWordEnd where it wasn't dealing with
  177. [] inside quotes correctly.
  178.  
  179. 53. 6/8/91 Fixed exec.test to accept return values of either 1 or
  180. 255 from "false" command.
  181.  
  182. 54. 7/6/91 Massive overhaul of variable management.  Associative
  183. arrays now available, along with "unset" command (and Tcl_UnsetVar
  184. procedure).  Variable traces have been completely reworked:
  185. interfaces different both from Tcl and C, and multiple traces may
  186. exist on same variable.  Can no longer redefine existing local
  187. variable to be global.  Calling sequences have changed slightly
  188. for Tcl_GetVar and Tcl_SetVar ("global" is now "flags"). Tcl_SetVar
  189. can fail and return a NULL result.  New forms of variable-manipulation
  190. procedures:  Tcl_GetVar2, Tcl_SetVar2, etc.  Syntax of variable
  191. $-notation changed to support array indexing.
  192. *** POTENTIAL INCOMPATIBILITY ***
  193.  
  194. 55. 7/6/91 Added new list-manipulation procedures:  Tcl_ScanElement,
  195. Tcl_ConvertElement, Tcl_AppendElement.
  196.  
  197. 56. 7/12/91 Created new procedure Tcl_EvalFile, which does most of the
  198. work of the "source" command.
  199.  
  200. 57. 7/20/91 Major reworking of "exec" command to allow pipelines,
  201. more redirection, background.  Added new procedures Tcl_Fork,
  202. Tcl_WaitPids, Tcl_DetachPids, and Tcl_CreatePipeline.  The old
  203. "< input" notation has been replaced by "<< input" ("<" is for
  204. redirection from a file).  Also handles error returns and abnormal
  205. terminations (e.g. signals) differently.
  206. *** POTENTIAL INCOMPATIBILITY ***
  207.  
  208. 58. 7/21/91 Added "append" and "lappend" commands.
  209.  
  210. 59. 7/22/91 Reworked error messages and manual entries to use
  211. ?x? as the notation for an optional argument x, instead of [x].  The
  212. bracket notation was often confused with the use of brackets for
  213. command substitution.  Also modified error messages to be more
  214. consistent.
  215.  
  216. 60. 7/23/91 Tcl_DeleteCommand now returns an indication of whether
  217. or not the command actually existed, and the "rename" command uses
  218. this information to return an error if an attempt is made to delete
  219. a non-existent command.
  220. *** POTENTIAL INCOMPATIBILITY ***
  221.  
  222. 61. 7/25/91 Added new "errorCode" mechanism, along with procedures
  223. Tcl_SetErrorCode, Tcl_UnixError, and Tcl_ResetResult.  Renamed
  224. Tcl_Return to Tcl_SetResult, but left a #define for Tcl_Return to
  225. avoid compatibility problems.
  226.  
  227. 62. 7/26/91 Extended "case" command with alternate syntax where all
  228. patterns and commands are together in a single list argument:  makes
  229. it easier to write multi-line case statements.
  230.  
  231. 63. 7/27/91 Changed "print" command to perform tilde-substitution on
  232. the file name.
  233.  
  234. 64. 7/27/91 Added "tolower", "toupper", "trim", "trimleft", and "trimright"
  235. options to "string" command.
  236.  
  237. 65. 7/29/91 Added "atime", "mtime", "size", and "stat" options to "file"
  238. command.
  239.  
  240. 66. 8/1/91 Added "split" and "join" commands.
  241.  
  242. 67. 8/11/91 Added commands for file I/O, including "open", "close",
  243. "read", "gets", "puts", "flush", "eof", "seek", and "tell".
  244.  
  245. 68. 8/14/91 Switched to use a hash table for command lookups.  Command
  246. abbreviations no longer have direct support in the Tcl interpreter, but
  247. it should be possible to simulate them with the auto-load features
  248. described below.  The "noAbbrev" variable is no longer used by Tcl.
  249. *** POTENTIAL INCOMPATIBILITY ***
  250.  
  251. 68.5 8/15/91 Added support for "unknown" command, which can be used to
  252. complete abbreviations, auto-load library files, auto-exec shell
  253. commands, etc.
  254.  
  255. 69. 8/15/91 Added -nocomplain switch to "glob" command.
  256.  
  257. 70. 8/20/91 Added "info library" option and TCL_LIBRARY #define.  Also
  258. added "info script" option.
  259.  
  260. 71. 8/20/91 Changed "file" command to take "option" argument as first
  261. argument (before file name), for consistency with other Tcl commands.
  262. *** POTENTIAL INCOMPATIBILITY ***
  263.  
  264. 72. 8/20/91 Changed format of information in $errorInfo variable:
  265. comments such as 
  266.     ("while" body line 1)
  267. are now on separate lines from commands being executed.
  268. *** POTENTIAL INCOMPATIBILITY ***
  269.  
  270. 73. 8/20/91 Changed Tcl_AppendResult so that it (eventually) frees
  271. large buffers that it allocates.
  272.  
  273. 74. 8/21/91 Added "linsert", "lreplace", "lsearch", and "lsort"
  274. commands.
  275.  
  276. 75. 8/28/91 Added "incr" and "exit" commands.
  277.  
  278. 76. 8/30/91 Added "regexp" and "regsub" commands.
  279.  
  280. 77. 9/4/91 Changed "dynamic" field in interpreters to "freeProc" (procedure
  281. address).  This allows for alternative storage managers.
  282. *** POTENTIAL INCOMPATIBILITY ***
  283.  
  284. 78. 9/6/91 Added "index", "length", and "range" options to "string"
  285. command.  Added "lindex", "llength", and "lrange" commands.
  286.  
  287. 79. 9/8/91 Removed "index", "length", "print" and "range" commands.
  288. "Print" is redundant with "puts", but less general, and the other
  289. commands are replaced with the new commands described in change 78
  290. above.
  291. *** POTENTIAL INCOMPATIBILITY ***
  292.  
  293. 80. 9/8/91 Changed history revision to occur even when history command
  294. is nested;  needed in order to allow "history" to be invoked from
  295. "unknown" procedure.
  296.  
  297. 81. 9/13/91 Changed "panic" not to use vfprintf (it's uglier and less
  298. general now, but makes it easier to run Tcl on systems that don't
  299. have vfprintf).  Also changed "strerror" not to redeclare sys_errlist.
  300.  
  301. 82. 9/19/91 Lots of changes to improve portability to different UNIX
  302. systems, including addition of "config" script to adapt Tcl to the
  303. configuration of the system it's being compiled on.
  304.  
  305. 83. 9/22/91 Added "pwd" command.
  306.  
  307. 84. 9/22/91 Renamed manual pages so that their filenames are no more
  308. than 14 characters in length, moved to "doc" subdirectory.
  309.  
  310. 85. 9/24/91 Redid manual entries so they contain the supplemental
  311. macros that they need;  can just print with "troff -man" or "man"
  312. now.
  313.  
  314. 86. 9/26/91 Created initial version of script library, including
  315. a version of "unknown" that does auto-loading, auto-execution, and
  316. abbreviation expansion.  This library is used by tclTest
  317. automatically.  See the "library" manual entry for details.
  318.  
  319. ----------------- Released version 6.0, 9/26/91 ------------------
  320.  
  321. 87. 9/30/91 Made "string tolower" and "string toupper" check case
  322. before converting:  on some systems, "tolower" and "toupper" assume
  323. that character already has particular case.
  324.  
  325. 88. 9/30/91 Fixed bug in Tcl_SetResult:  wasn't always setting freeProc
  326. correctly when called with NULL value.  This tended to cause memory
  327. allocation errors later.
  328.  
  329. 89. 10/3/91 Added "upvar" command.
  330.  
  331. 90. 10/4/91 Changed "format" so that internally it converts %D to %ld,
  332. %U to %lu, %O to %lo, and %F to %f.  This eliminates some compatibility
  333. problems on some machines without affecting behavior.
  334.  
  335. 91. 10/10/91 Fixed bug in "regsub" that caused core dumps with the -all
  336. option when the last match wasn't at the end of the string.
  337.  
  338. 92. 10/17/91 Fixed problems with backslash sequences:  \r support was
  339. incomplete and \f and \v weren't supported at all.
  340.  
  341. 93. 10/24/91 Added Tcl_InitHistory procedure.
  342.  
  343. 94. 10/24/91 Changed "regexp" to store "-1 -1" in subMatchVars that
  344. don't match, rather than returning an error.
  345.  
  346. 95. 10/27/91 Modified "regexp" to return actual strings in matchVar
  347. and subMatchVars instead of indices.  Added "-indices" switch to cause
  348. indices to be returned.
  349. *** POTENTIAL INCOMPATIBILITY ***
  350.  
  351. 96. 10/27/91 Fixed bug in "scan" where it used hardwired constants for
  352. sizes of floats and doubles instead of using "sizeof".
  353.  
  354. 97. 10/31/91 Fixed bug in tclParse.c where parse-related error messages
  355. weren't being storage-managed correctly, causing spurious free's.
  356.  
  357. 98. 10/31/91 Form feed and vertical tab characters are now considered
  358. to be space characters by the parser.
  359.  
  360. 99. 10/31/91 Added TCL_LEAVE_ERR_MSG flag to procedures like Tcl_SetVar.
  361.  
  362. 100. 11/7/91 Fixed bug in "case" where "in" argument couldn't be omitted
  363. if all case branches were embedded in a single list.
  364.  
  365. 101. 11/7/91 Switched to use "pid_t" and "uid_t" and other official
  366. POSIC types and function prototypes.
  367.  
  368. ----------------- Released version 6.1, 11/7/91 ------------------
  369.  
  370. 102. 12/2/91 Modified Tcl_ScanElement and Tcl_ConvertElement in several
  371. ways.  First, allowed caller to request that only backslashes be used
  372. (no braces).  Second, made Tcl_ConvertElement more aggressive in using
  373. backslashes for braces and quotes.
  374.  
  375. 103. 12/5/91 Added "type", "lstat", and "readlink" options to "file"
  376. command, plus added new "type" element to output of "stat" and "lstat"
  377. options.
  378.  
  379. 104. 12/10/91 Manual entries had first lines that caused "man" program
  380. to try weird preprocessor.  Added blank comment lines to fix problem.
  381.  
  382. 105. 12/16/91 Fixed a few bugs in auto_mkindex proc:  wasn't handling
  383. errors properly, and hadn't been upgraded for new "regexp" syntax.
  384.  
  385. 106. 1/2/92 Fixed bug in "file" command where it didn't properly handle
  386. a file names containing tildes where the indicated user doesn't exist.
  387.  
  388. 107. 1/2/92 Fixed lots of cases in tclUnixStr.c where two different
  389. errno symbols (e.g. EWOULDBLOCK and EAGAIN) have the same number;  Tcl
  390. will only use one of them.
  391.  
  392. 108. 1/2/92 Lots of changes to configuration script to handle many more
  393. systems more gracefully.  E.g. should now detect the bogus strtoul that
  394. comes with AIX and substitute Tcl's own version instead.
  395.  
  396. ----------------- Released version 6.2, 1/10/92 ------------------
  397.  
  398. 109. 1/20/92 Config didn't have code to actually use "uid_t" variable
  399. to set TCL_UIT_T #define.
  400.  
  401. 110. 2/10/92 Tcl_Eval didn't properly reset "numLevels" variable when
  402. too-deep recursion occurred.
  403.  
  404. 111. 2/29/92 Added "on" and "off" to keywords accepted by Tcl_GetBoolean.
  405.  
  406. 112. 3/19/92 Config wasn't installing default version of strtod.c for
  407. systems that don't have one in libc.a.
  408.  
  409. 113. 3/23/92 Fixed bug in tclExpr.c where numbers with leading "."s,
  410. like 0.75, couldn't be properly substituted into expressions with
  411. variable or command substitution.
  412.  
  413. 114. 3/25/92 Fixed bug in tclUnixAZ.c where "gets" command wasn't
  414. checking to make sure that it was able to write the variable OK.
  415.  
  416. 115. 4/16/92 Fixed bug in tclUnixAZ.c where "read" command didn't
  417. compute file size right for device files.
  418.  
  419. 116. 4/23/92 Fixed but in tclCmdMZ.c where "trace vinfo" was overwriting
  420. the trace command.
  421.  
  422. ----------------- Released version 6.3, 5/1/92 ------------------
  423.  
  424. 117. 5/1/92 Added Tcl_GlobalEval.
  425.  
  426. 118. 6/1/92 Changed auto-load facility to source files at global level.
  427.  
  428. 119. 6/8/92 Tcl_ParseVar wasn't always setting termPtr after errors, which
  429. sometimes caused core dumps.
  430.  
  431. 120. 6/21/92 Fixed bug in initialization of regexp pattern cache.  This
  432. bug caused segmentation violations in regexp commands under some conditions.
  433.  
  434. 121. 6/22/92 Changed implementation of "glob" command to eliminate
  435. trailing slashes on directory names:  they confuse some systems.  There
  436. shouldn't be any user-visible changes in functionality except for names
  437. in error messages not having trailing slashes.
  438.  
  439. 122. 7/2/92 Fixed bug that caused 'string match ** ""' to return 0.
  440.  
  441. 123. 7/2/92 Fixed bug in Tcl_CreateCmdBuf where it wasn't initializing
  442. the buffer to an empty string.
  443.  
  444. 124. 7/6/92 Fixed bug in "case" command where it used NULL pattern string
  445. after errors in the "default" clause.
  446.  
  447. 125. 7/25/92 Speeded up auto_load procedure:  don't reread all the index
  448. files unless the path has changed.
  449.  
  450. 126. 8/3/92 Changed tclUnix.h to define MAXPATHLEN from PATH_MAX, not
  451. _POSIX_PATH_MAX.
  452.  
  453. ----------------- Released version 6.4, 8/7/92 ------------------
  454.  
  455. 127. 8/10/92 Changed tclBasic.c so that comment lines can be continued by
  456. putting a backslash before the newline.
  457.  
  458. 128. 8/21/92 Modified "unknown" to allow the source-ing of a file for
  459. an auto-load to trigger other nested auto-loads, as long as there isn't
  460. any recursion on the same command name.
  461.  
  462. 129. 8/25/92 Modified "format" command to allow " " and "+" flags, and
  463. allow flags in any order.
  464.  
  465. 130. 9/14/92 Modified Tcl_ParseVar so that it doesn't actually attempt
  466. to look up the variable if "noEval" mode is in effect in the interpreter
  467. (it just parses the name).  This avoids the errors that used to occur
  468. in statements like "expr {[info exists foo] && $foo}".
  469.  
  470. 131. 9/14/92 Fixed bug in "uplevel" command where it didn't output the
  471. correct error message if a level was specified but no command.
  472.  
  473. 132. 9/14/92 Renamed manual entries to have extensions like .3 and .n,
  474. and added "install" target to Makefile.
  475.  
  476. 133. 9/18/92 Modified "unknown" command to emulate !!, !<num>, and
  477. ^<old>^<new> csh history substitutions.
  478.  
  479. 134. 9/21/92 Made the config script cleverer about figuring out which
  480. switches to pass to "nm".
  481.  
  482. 135. 9/23/92 Fixed tclVar.c to be sure to copy flags when growing variables.
  483. Used to forget about traces in progress and make extra recursive calls
  484. on trace procs.
  485.  
  486. 136. 9/28/92 Fixed bug in auto_reset where it was unsetting variables
  487. that might not exist.
  488.  
  489. 137. 10/7/92 Changed "parray" library procedure to print any array
  490. accessible to caller, local or global.
  491.  
  492. 138. 10/15/92 Fixed bug where propagation of new environment variable
  493. values among interpreters took N! time if there exist N interpreters.
  494.  
  495. 139. 10/16/92 Changed auto_reset procedure so that it also deletes any
  496. existing procedures that are in the auto_load index (the assumption is
  497. that they should be re-loaded to get the latest versions).
  498.  
  499. 140. 10/21/92 Fixed bug that caused lists to be incorrectly generated
  500. for elements that contained backslash-newline sequences.
  501.  
  502. 141. 12/9/92 Added support for TCL_LIBRARY environment variable:  use
  503. it as library location if it's present.
  504.  
  505. 142. 12/9/92 Added "info complete" command, Tcl_CommandComplete procedure.
  506.  
  507. 143. 12/16/92 Changed the Makefile to check to make sure "config" has been
  508. run (can't run config directly from the Makefile because it modifies the
  509. Makefile;  thus make has to be run again after running config).
  510.  
  511. ----------------- Released version 6.5, 12/17/92 ------------------
  512.  
  513. 144. 12/21/92 Changed config to look in several places for libc file.
  514.  
  515. 145. 12/23/92 Added "elseif" support to if.  Also, "then", "else", and
  516. "elseif" may no longer be abbreviated.
  517. *** POTENTIAL INCOMPATIBILITY ***
  518.  
  519. 146. 12/28/92 Changed "puts" and "read" to support initial "-nonewline"
  520. switch instead of additional "nonewline" argument.  The old form is
  521. still supported, but it is discouraged and is no longer documented.
  522. Also changed "puts" to make the file argument default to stdout: e.g.
  523. "puts foo" will print foo on standard output.
  524.  
  525. 147. 1/6/93 Fixed bug whereby backslash-newline wasn't working when
  526. typed interactively, or in "info complete".
  527.  
  528. 148. 1/22/93 Fixed bugs in "lreplace" and "linsert" where close
  529. quotes were being lost from last element before replacement or
  530. insertion.
  531.  
  532. 149. 1/29/93 Fixed bug in Tcl_AssembleCmd where it wasn't requiring
  533. a newline at the end of a line before considering a command to be
  534. complete.  The bug caused some very long lines in script files to
  535. be processed as multiple separate commands.
  536.  
  537. 150. 1/29/93 Various changes in Makefile to add more configuration
  538. options, simplify installation, fix bugs (e.g. don't use -f switch
  539. for cp), etc.
  540.  
  541. 151. 1/29/93 Changed "name1" and "name2" identifiers to "part1" and
  542. "part2" to avoid name conflicts with stupid C++ implementations that
  543. use "name1" and "name2" in a reserved way.
  544.  
  545. 152. 2/1/93 Added "putenv" procedure to replace the standard system
  546. version so that it will work correctly with Tcl's environment handling.
  547.  
  548. ----------------- Released version 6.6, 2/5/93 ------------------
  549.  
  550. 153. 2/10/93 Fixed bugs in config script:  missing "endif" in libc loop,
  551. and tried to use strncasecmp.c instead of strcasecmp.c.
  552.  
  553. 154. 2/10/93 Makefile improvements:  added RANLIB variable for easier
  554. Sys-V configuration, added SHELL variable for SGI systems.
  555.  
  556. ----------------- Released version 6.7, 2/11/93 ------------------
  557.  
  558. 153. 2/6/93 Changes in backslash processing:
  559.     - \Cx, \Mx, \CMx, \e sequences no longer special
  560.     - \<newline> also eats up any space after the newline, replacing
  561.       the whole sequence with a single space character
  562.     - Hex sequences like \x24 are now supported, along with ANSI C's \a.
  563.     - "format" no longer does backslash processing on its format string
  564.     - there is no longer any special meaning to a 0 return value from
  565.       Tcl_Backslash
  566.     - unknown backslash sequences, like (e.g. \*), are replaced with
  567.       the following character (e.g. *), instead of just treating the
  568.       backslash as an ordinary character.
  569. *** POTENTIAL INCOMPATIBILITY ***
  570.  
  571. 154. 2/6/93 Updated all copyright notices.  The meaning hasn't changed
  572. at all but the wording does a better job of protecting U.C. from
  573. liability (according to U.C. lawyers, anyway).
  574.  
  575. 155. 2/6/93 Changed "regsub" so that it overwrites the result variable
  576. in all cases, even if there is no match.
  577. *** POTENTIAL INCOMPATIBILITY ***
  578.  
  579. 156. 2/8/93 Added support for XPG3 %n$ conversion specifiers to "format"
  580. command.
  581.  
  582. 157. 2/17/93 Fixed bug in Tcl_Eval where errors due to infinite
  583. recursion could result in core dumps.
  584.  
  585. 158. 2/17/93 Improved the auto-load mechanism to deal gracefully (i.e.
  586. return an error) with a situation where a library file that supposedly
  587. defines a procedure doesn't actually define it.
  588.  
  589. 159. 2/17/93 Renamed Tcl_UnixError procedure to Tcl_PosixError, and
  590. changed errorCode variable usage to use POSIX as keyword instead of
  591. UNIX.
  592. *** POTENTIAL INCOMPATIBILITY ***
  593.  
  594. 160. 2/19/93 Changes to exec and process control:
  595.     - Added support for >>, >&, >>&, |&, <@, >@, and >&@ forms of redirection.
  596.     - When exec puts processes into background, it returns a list of
  597.       their pids as result.
  598.     - Added support for <file, >file, etc. (i.e. no space between
  599.       ">" and file name.
  600.     - Added -keepnewline option.
  601.     - Deleted Tcl_Fork and Tcl_WaitPids procedures (just use fork and
  602.       waitpid instead).
  603.     - Added waitpid compatibility procedure for systems that don't have
  604.       it.
  605.     - Added Tcl_ReapDetachedProcs procedure.
  606.     - Changed "exec" to return an error if there is stderr output, even
  607.       if the command returns a 0 exit status (it's always been documented
  608.       this way, but the implementation wasn't correct).
  609.     - If a process returns a non-zero exit status but doesn't generate
  610.       any diagnostic output, then Tcl generates an error message for it.
  611. *** POTENTIAL INCOMPATIBILITY ***
  612.  
  613. 161. 2/25/93 Fixed two memory-management problems having to do with
  614. managing the old result during variable trace callbacks.
  615.  
  616. 162. 3/1/93 Added dynamic string library:  Tcl_DStringInit, Tcl_DStringAppend,
  617. Tcl_DStringFree, Tcl_DStringResult, etc.
  618.  
  619. 163. 3/1/93 Modified glob command to only return the names of files that
  620. exist, and to only return names ending in "/" if the file is a directory.
  621. *** POTENTIAL INCOMPATIBILITY ***
  622.  
  623. 164. 3/19/93 Modified not to use system calls like "read" directly,
  624. but instead to use special Tcl procedures that retry automatically
  625. if interrupted by signals.
  626.  
  627. 165. 4/3/93 Eliminated "noSep" argument to Tcl_AppendElement, plus
  628. TCL_NO_SPACE flag for Tcl_SetVar and Tcl_SetVar2.
  629. *** POTENTIAL INCOMPATIBILITY ***
  630.  
  631. 166. 4/3/93 Eliminated "flags" and "termPtr" arguments to Tcl_Eval.
  632. *** POTENTIAL INCOMPATIBILITY ***
  633.  
  634. 167. 4/3/93 Changes to expressions:
  635.     - The "expr" command now accepts multiple arguments, which are
  636.       concatenated together with space separators.
  637.     - Integers aren't automatically promoted to floating-point if they
  638.       overflow the word size:  errors are generated instead.
  639.     - Tcl can now handle "NaN" and other special values if the underlying
  640.       library procedures handle them.
  641.     - When printing floating-point numbers, Tcl ensures that there is a "."
  642.       or "e" in the number, so it can't be treated as an integer accidentally.
  643.       The procedure Tcl_PrintDouble is available to provide this function
  644.       in other contexts.  Also, the variable "tcl_precision" can be used
  645.       to set the precision for printing (must be a decimal number giving
  646.       digits of precision).
  647.     - Expressions now support transcendental and other functions, e.g. sin,
  648.       acos, hypot, ceil, and round.  Can add new math functions with
  649.       Tcl_CreateMathFunc().
  650.     - Boolean expressions can now have any of the string values accepted
  651.       by Tcl_GetBoolean, such as "yes" or "no".
  652. *** POTENTIAL INCOMPATIBILITY ***
  653.  
  654. 168. 4/5/93 Changed Tcl_UnsetVar and Tcl_UnsetVar2 to return TCL_OK
  655. or TCL_ERROR instead of 0 or -1.
  656. *** POTENTIAL INCOMPATIBILITY ***
  657.  
  658. 169. 4/5/93 Eliminated Tcl_CmdBuf structure and associated procedures;
  659. can use Tcl_DStrings instead.
  660. *** POTENTIAL INCOMPATIBILITY ***
  661.  
  662. 170. 4/8/93 Changed interface to Tcl_TildeSubst to use a dynamic
  663. string for buffer space.  This makes the procedure re-entrant and
  664. thread-safe, whereas it wasn't before.
  665. *** POTENTIAL INCOMPATIBILITY ***
  666.  
  667. 171. 4/14/93 Eliminated tclHash.h, and moved everything from it to
  668. tcl.h
  669. *** POTENTIAL INCOMPATIBILITY ***
  670.  
  671. 172. 4/15/93 Eliminated Tcl_InitHistory, made "history" command always
  672. be part of interpreter.
  673. *** POTENTIAL INCOMPATIBILITY ***
  674.  
  675. 173. 4/16/93 Modified "file" command so that "readable" option always
  676. exists, even on machines that don't support symbolic links (always returns
  677. same error as if the file wasn't a symbolic link).
  678.  
  679. 174. 4/26/93 Fixed bugs in "regsub" where ^ patterns didn't get handled
  680. right (pretended not to match when it really did, and looped infinitely
  681. if -all was specified).
  682.  
  683. 175. 4/29/93 Various improvements in the handling of variables:
  684.     - Can create variables and array elements during a read trace.
  685.     - Can delete variables during traces (note: unset traces will be
  686.       invoked when this happens).
  687.     - Can upvar to array elements.
  688.     - Can retarget an upvar to another variable by re-issuing the
  689.       upvar command with a different "other" variable.
  690.  
  691. 176. 5/3/93 Added Tcl_GetCommandInfo, which returns info about a Tcl
  692. command such as whether it exists and its ClientData.  Also added
  693. Tcl_SetCommandInfo, which allows any of this information to be modified
  694. and also allows a command's delete procedure to have a different
  695. ClientData value than its command procedure.
  696.  
  697. 177. 5/5/93 Added Tcl_RegExpMatch procedure.
  698.  
  699. 178. 5/6/93 Fixed bug in "scan" where it didn't properly handle
  700. %% conversion specifiers.  Also changed "scan" to use Tcl_PrintDouble
  701. for printing real values.
  702.  
  703. 179. 5/7/93 Added "-exact", "-glob", and "-regexp" options to "lsearch"
  704. command to allow different kinds of pattern matching.
  705.  
  706. 180. 5/7/93 Added many new switches to "lsort" to control the sorting
  707. process: "-ascii", "-integer", "-real", "-command", "-increasing",
  708. and "-decreasing".
  709.  
  710. 181. 5/10/93 Changes to file I/O:
  711.     - Modified "open" command to support a list of POSIX access flags
  712.       like {WRONLY CREAT TRUNC} in addition to current fopen-style
  713.       access modes.  Also added "permissions" argument to set permissions
  714.       of newly-created files.
  715.     - Fixed Scott Bolte's bug (can close stdin etc. in application and
  716.       then re-open them with Tcl commands).
  717.     - Exported access to Tcl's file table with new procedures Tcl_EnterFile
  718.       and Tcl_GetOpenFile.
  719.  
  720. 182. 5/15/93 Added new "pid" command, which can be used to retrieve
  721. either the current process id or a list of the process ids in a
  722. pipeline opened with "open |..."
  723.  
  724. 183. 6/3/93 Changed to use GNU autoconfig for configuration instead of
  725. the home-brew "config" script.  Also made many other configuration-related
  726. changes, such as using <unistd.h> instead of explicitly declaring system
  727. calls in tclUnix.h.
  728.  
  729. 184. 6/4/93 Fixed bug where core-dumps could occur if a procedure
  730. redefined itself (the memory for the procedure's body could get
  731. reallocated in the middle of evaluating the body);  implemented
  732. simple reference count mechanism.
  733.  
  734. 185. 6/5/93 Changed tclIndex file format in two ways:  (a) it's now
  735. eval-ed instead of parsed, which makes it 3-4x faster; (b) the entries
  736. in auto_index are now commands to evaluate, which allows commands to
  737. be loaded in different ways such as dynamic-loading of C code.  The
  738. old tclIndex file format is still supported.
  739.  
  740. 186. 6/7/93 Eliminated tclTest program, added new "tclsh" program
  741. that is more like wish (allows script files to be invoked automatically
  742. using "#!/usr/local/bin/tclsh", makes arguments available to script,
  743. etc.).  Added support for Tcl_AppInit plus default version;  this
  744. allows new Tcl applications to be created without modifying the
  745. main program for tclsh.
  746.  
  747. 187. 6/7/93 Fixed bug in TclWordEnd that kept backslash-newline from
  748. working correctly in some cases during interactive input.
  749.  
  750. 188. 6/9/93 Added Tcl_LinkVar and related procedures, which automatically
  751. keep a Tcl variable in sync with a C variable.
  752.  
  753. 189. 6/16/93 Increased maximum nesting depth from 100 to 1000.
  754.  
  755. 190. 6/16/93 Modified "trace var" command so that error messages from
  756. within traces are returned properly as the result of the variable
  757. access, instead of the generic "access disallowed by trace command"
  758. message.
  759.  
  760. 191. 6/16/93 Added Tcl_CallWhenDeleted to provide callbacks when an
  761. interpreter is deleted (same functionality as Tcl_WatchInterp, which
  762. used to exist in versions before 6.0).
  763.  
  764. 193. 6/16/93 Added "-code" argument to "return" command;  it's there
  765. primarily for completeness, so that procedures implementing control
  766. constructs can reflect exceptional conditions back to their callers.
  767.  
  768. 194. 6/16/93 Split up Tcl.n to make separate manual entries for each
  769. Tcl command.  Tcl.n now contains a summary of the language syntax.
  770.  
  771. 195. 6/17/93 Added new "switch" command to replace "case": allows
  772. alternate forms of pattern matching (exact, glob, regexp), replaces
  773. pattern lists with single patterns (but you can use "-" bodies to
  774. share one body among several patterns), eliminates "in" noise word.
  775. "Case" command is now obsolete.
  776.  
  777. 196. 6/17/93 Changed the "exec", "glob", "regexp", and "regsub" commands
  778. to include a "--" switch.  All initial arguments starting with "-" are now
  779. treated as switches unless a "--" switch is present to end the list.
  780. *** POTENTIAL INCOMPATIBILITY ***
  781.  
  782. 197. 6/17/93 Changed auto-exec so that the subprocess gets stdin, stdout,
  783. and stderr from the parent.  This allows truly interactive sub-processes
  784. (e.g. vi) to be auto-exec'ed from a tcl shell command line.
  785.  
  786. 198. 6/18/93 Added patchlevel.h, for use in coordinating future patch
  787. releases, and also added "info patchlevel" command to make the patch
  788. level available to Tcl scripts.
  789.  
  790. 199. 6/19/93 Modified "glob" command so that a leading "//" in a name
  791. gets left as is (this is needed for systems like Apollos where "//" is
  792. the super-root;  Tcl used to collapse the two slashes into a single
  793. slash).
  794.  
  795. 200. 7/7/93 Added Tcl_SetRecursionLimit procedure so that the maximum
  796. allowable nesting depth can be controlled for an interpreter from C.
  797.  
  798. ----------------- Released version 7.0 Beta 1, 7/9/93 ------------------
  799.  
  800. 201. 7/12/93 Modified Tcl_GetInt and tclExpr.c so that full-precision
  801. unsigned integers can be specified without overflow errors.
  802.  
  803. 202. 7/12/93 Configuration changes:  eliminate leading blank line in
  804. configure script;  provide separate targets in Makefile for installing
  805. binary and non-binary information; check for size_t and a few other
  806. potentially missing typedefs; don't put tclAppInit.o into libtcl.a;
  807. better checks for matherr support.
  808.  
  809. 203. 7/14/93 Changed tclExpr.c to check the termination pointer before
  810. errno after strtod calls, to avoid problems with some versions of
  811. strtod that set errno in unexpected ways.
  812.  
  813. 204. 7/16/93 Changed "scan" command to be more ANSI-conformant:
  814. eliminated %F, %D, etc., added code to ignore "l", "h", and "L"
  815. modifiers but always convert %e, %f, and %g with implicit "l";
  816. also added support for %u and %i.  Also changed "format" command
  817. to eliminate %D, %U, %O, and add %i.
  818. *** POTENTIAL INCOMPATIBILITY ***
  819.  
  820. 205. 7/17/93 Changed "uplevel" and "upvar" so that they can be used
  821. from global level to global level:  this used to generate an error.
  822.  
  823. 206. 7/19/93 Renamed "setenv", "putenv", and "unsetenv" procedures
  824. to avoid conflicts with system procedures with the same names.  If
  825. you want Tcl's procedures to override the system procedures, do it
  826. in the Makefile (instructions are in the Makefile).
  827. *** POTENTIAL INCOMPATIBILITY ***
  828.  
  829. ----------------- Released version 7.0 Beta 2, 7/21/93 ------------------
  830.  
  831. 207. 7/21/93 Fixed bug in tclVar.c where freed memory was accidentally
  832. used if a procedure returned an element of a local array.
  833.  
  834. 208. 7/22/93 Fixed bug in "unknown" where it didn't properly handle
  835. errors occurring in the "auto_load" procedure, leaving its state
  836. inconsistent.
  837.  
  838. 209. 7/23/93 Changed exec's ">2" redirection operator to "2>" for
  839. consistency with sh.  This is incompatible with earlier beta releases
  840. of 7.0 but not with pre-7.0 releases, which didn't support either
  841. operator.
  842.  
  843. 210. 7/28/93 Changed backslash-newline handling so that the resulting
  844. space character *is* treated as a word separator unless the backslash
  845. sequence is in quotes or braces.  This is incompatible with 7.0b1
  846. and 7.0b2 but is more compatible with pre-7.0 versions that the b1
  847. and b2 releases were.
  848.  
  849. 211. 7/28/93 Eliminated Tcl_LinkedVarWritable, added TCL_LINK_READ_ONLY to
  850. Tcl_LinkVar to accomplish same purpose.  This change is incompatible
  851. with earlier beta releases, but not with releases before Tcl 7.0.
  852.  
  853. 212. 7/29/93 Renamed regexp C functions so they won't clash with POSIX
  854. regexp functions that use the same name.
  855.  
  856. 213. 8/3/93 Added "-errorinfo" and "-errorcode" options to "return"
  857. command: these allow for much better handling of the errorInfo
  858. and errorCode variables in some cases.
  859.  
  860. 214. 8/12/93 Changed "expr" so that % always returns a remainder with
  861. the same sign as the divisor and absolute value smaller than the
  862. divisor.
  863.  
  864. 215. 8/14/93 Turned off auto-exec in "unknown" unless the command
  865. was typed interactively.  This means you must use "exec" when
  866. invoking subprocesses, unless it's a command that's typed interactively.
  867. *** POTENTIAL INCOMPATIBILITY ***
  868.  
  869. 216. 8/14/93 Added support for tcl_prompt1 and tcl_prompt2 variables
  870. to tclMain.c:  makes prompts user-settable.
  871.  
  872. 217. 8/14/93 Added asynchronous handlers (Tcl_AsyncCreate etc.) so
  873. that signals can be taken cleanly by Tcl applications.
  874.  
  875. 218. 8/16/93 Moved information about open files from the interpreter
  876. structure to global variables so that a file can be opened in one
  877. interpreter and read or written in another.
  878.  
  879. 219. 8/16/93 Removed ENV_FLAGS from Makefile, so that there's no
  880. official support for overriding setenv, unsetenv, and putenv.
  881.  
  882. 220. 8/20/93 Various configuration improvements:  coerce chars
  883. to unsigned chars before using macros like isspace;  source ~/.tclshrc
  884. file during initialization if it exists and program is running
  885. interactively;  allow there to be directories in auto_path that don't
  886. exist or don't have tclIndex files (ignore them); added Tcl_Init
  887. procedure and changed Tcl_AppInit to call it.
  888.  
  889. 221. 8/21/93 Fixed bug in expr where "+", "-", and " " were all
  890. getting treated as integers with value 0.
  891.  
  892. 222. 8/26/93 Added "tcl_interactive" variable to tclsh.
  893.  
  894. 223. 8/27/93 Added procedure Tcl_FilePermissions to return whether a
  895. given file can be read or written or both.  Modified Tcl_EnterFile
  896. to take a permissions mask rather than separate read and write arguments.
  897.  
  898. 224. 8/28/93 Fixed performance bug in "glob" command (unnecessary call
  899. to "access" for each file caused a 5-10x slow-down for big directories).
  900.  
  901. ----------------- Released version 7.0 Beta 3, 8/28/93 ------------------
  902.  
  903. 225. 9/9/93 Renamed regexp.h to tclRegexp.h to avoid conflicts with system
  904. include file by same name.
  905.  
  906. 226. 9/9/93 Added Tcl_DontCallWhenDeleted.
  907.  
  908. 227. 9/16/93 Changed not to call exit C procedure directly;  instead
  909. always invoke "exit" Tcl command so that application can redefine the
  910. command to do additional cleanup.
  911.  
  912. 228. 9/17/93 Changed auto-exec to handle names that contain slashes
  913. (i.e. don't use PATH for them).
  914.  
  915. 229. 9/23/93 Fixed bug in "read" and "gets" commands where they didn't
  916. clear EOF conditions.
  917.  
  918. ----------------- Released version 7.0, 9/29/93 ------------------
  919.  
  920. 230. 10/7/93 "Scan" command wasn't properly aligning things in memory,
  921. so segmentation faults could arise under some circumstances.
  922.  
  923. 231. 10/7/93 Fixed bug in Tcl_ConvertElement where it forgot to
  924. backslash leading curly brace when creating lists.
  925.  
  926. 232. 10/7/93 Eliminated dependency of tclMain.c on tclInt.h and
  927. tclUnix.h, so that people can copy the file out of the Tcl source
  928. directory to make modified private versions.
  929.  
  930. 233. 10/8/93 Fixed bug in auto-loader that reversed the priority order
  931. of entries in auto_path for new-style index files.  Now things are
  932. back to the way they were before 3.0:  first in auto_path is always
  933. highest priority.
  934.  
  935. 234. 10/13/93 Fixed bug where Tcl_CommandComplete didn't recognize
  936. comments and treat them as such.  Thus if you typed the line
  937.     # {
  938. interactively, Tcl would think that the command wasn't complete and
  939. wait for more input before evaluating the script.
  940.  
  941. 235. 10/14/93 Fixed bug where "regsub" didn't set the output variable
  942. if the input string was empty.
  943.  
  944. 236. 10/23/93 Fixed bug where Tcl_CreatePipeline didn't close off enough
  945. file descriptors in child processes, causing children not to exit
  946. properly in some cases.
  947.  
  948. 237. 10/28/93 Changed "list" and "concat" commands not to generate
  949. errors if given zero arguments, but instead to just return an empty
  950. string.
  951.  
  952. ----------------- Released version 7.1, 11/4/93 ------------------
  953.  
  954. Note: there is no 7.2 release.  It was flawed and was thus withdrawn
  955. shortly after it was released.
  956.  
  957. 238. 11/10/93 TclMain.c didn't compile on some systems because of
  958. R_OK in call to "access".  Changed to eliminate call to "access".
  959.  
  960. ----------------- Released version 7.3, 11/26/93 ------------------
  961.  
  962. 239. 11/6/93 Modified "lindex", "linsert", "lrange", and "lreplace"
  963. so that "end" can be specified as an index.
  964.  
  965. 240. 11/6/93 Modified "append" and "lappend" to allow only two
  966. words total (i.e., nothing to append) without generating an error.
  967.  
  968. 241. 12/2/93 Changed to use EAGAIN as the errno for non-blocking
  969. I/O instead of EWOULDBLOCK:  this should fix problem where non-blocking
  970. I/O didn't work correctly on System-V systems.
  971.  
  972. 242. 12/22/93 Fixed bug in expressions where cancelled evaluation
  973. wasn't always working correctly (e.g. "set one 1; eval {1 || 1/$one}"
  974. failed with a divide by zero error).
  975.  
  976. 243. 1/6/94 Changed TCL_VOLATILE definition from -1 to the address of
  977. a dummy procedure Tcl_Volatile, since -1 causes portability problems on
  978. some machines (e.g., Crays).
  979.  
  980. 244. 2/4/94 Added support for unary plus.
  981.  
  982. 245. 2/17/94 Changed Tcl_RecordAndEval and "history" command to
  983. call Tcl_GlobalEval instead of Tcl_Eval.  Otherwise, invocation of
  984. these facilities in nested procedures can cause unwanted results.
  985.  
  986. 246. 2/17/94 Fixed bug in tclExpr.c where an expression such as
  987. "expr {"12398712938788234-1298379" != ""}" triggers an integer
  988. overflow error for the number in quotes, even though it isn't really
  989. a proper integer anyway.
  990.  
  991. 247. 2/19/94 Added new procedure Tcl_DStringGetResult to move result
  992. from interpreter to a dynamic string.
  993.  
  994. 248. 2/19/94 Fixed bug in Tcl_DStringResult that caused it to overwrite
  995. the contents of a static result in some situations.  This can cause
  996. bizarre errors such as variables suddenly having empty values.
  997.  
  998. 249. 2/21/94 Fixed bug in Tcl_AppendElement, Tcl_DStringAppendElement,
  999. and the "lappend" command that caused improper omission of a separator
  1000. space in some cases.  For example, the script
  1001.     set x "abc{"; lappend x "def"
  1002. used to return the result "abc{def" instead of "abc{ def".
  1003.  
  1004. 250. 3/3/94 Tcl_ConvertElement was outputting empty elements as \0 if
  1005. TCL_DONT_USE_BRACES was set.  This depends on old pre-7.0 meaning of
  1006. \0, which is no longer in effect, so it didn't really work.  Changed
  1007. to output empty elements as {} always.
  1008.  
  1009. 251. 3/3/94 Renamed Tcl_DStringTrunc to Tcl_DStringSetLength and extended
  1010. it so that it can be used to lengthen a string as well as shorten it.
  1011. Tcl_DStringTrunc is defined as a macro for backward compatibility, but
  1012. it is deprecated.
  1013.  
  1014. 252. 3/3/94 Added Tcl_AllowExceptions procedure.
  1015.  
  1016. 253. 3/13/94 Fixed bug in Tcl_FormatCmd that could cause "format"
  1017. to mis-behave on 64-bit Big-Endian machines.
  1018.  
  1019. 254. 3/13/94 Changed to use vfork instead of fork on systems where
  1020. vfork exists.
  1021.  
  1022. 255. 3/23/94 Fixed bug in expressions where ?: didn't associate
  1023. right-to-left as they should.
  1024.  
  1025. 256. 4/3/94 Fixed "exec" to flush any files used in >@ or >&@
  1026. redirection in exec, so that data buffered for them is written
  1027. before any new data added by the subprocess.
  1028.  
  1029. 257. 4/3/94 Added "subst" command.
  1030.  
  1031. 258. 5/20/94 The tclsh main program is now called Tcl_Main;  tclAppInit.c
  1032. has a "main" procedure that calls Tcl_Main.  This makes it easier to use
  1033. Tcl with C++ programs, which need their own main programs, and it also
  1034. allows an application to prefilter the argument list before calling
  1035. Tcl_Main.
  1036. *** POTENTIAL INCOMPATIBILITY ***
  1037.  
  1038. 259. 6/6/94 Fixed bug in procedure returns where the errorInfo variable
  1039. could get truncated if an unset trace was invoked as part of returning
  1040. from the procedure.
  1041.  
  1042. 260. 6/13/94 Added "wordstart" and "wordend" options to "string" command.
  1043.  
  1044. 261. 6/27/94 Fixed bug in expressions where they didn't properly cancel
  1045. the evaluation of math functions in &&, ||, and ?:.
  1046.  
  1047. 262. 7/11/94 Incorrect boolean values, like "ogle", weren't being
  1048. handled properly.
  1049.  
  1050. 263. 7/15/94 Added Tcl_RegExpCompile, Tcl_RegExpExec, and Tcl_RegExpRange,
  1051. which provide lower-level access to regular expression pattern matching.
  1052.  
  1053. 264. 7/22/94 Fixed bug in "glob" command where "glob -nocomplain ~bad_user"
  1054. would complain about a missing user.  Now it doesn't complain anymore.
  1055.  
  1056. 265. 8/4/94 Fixed bug with linked variables where they didn't behave
  1057. correctly when accessed via upvars.
  1058.  
  1059. 266. 8/17/94 Fixed bug in Tcl_EvalFile where it didn't clear interp->result.
  1060.  
  1061. 267. 8/31/94 Modified "open" command so that errors in exec-ing
  1062. subprocesses are returned by the open immediately, rather than
  1063. being delayed until the "close" is executed.
  1064.  
  1065. 268. 9/9/94 Modified "expr" command to generate errors for integer
  1066. overflow (includes addition, subtraction, negation, multiplication,
  1067. division).
  1068.  
  1069. 269. 9/23/94 Modified "regsub" to return a count of the number of
  1070. matches and replacements, rather than 0/1.
  1071.  
  1072. 279. 10/4/94 Added new features to "array" command:
  1073.     - added "get" and "set" commands for easy conversion between arrays
  1074.       and lists.
  1075.     - added "exists" command to see if a variable is an array, changed
  1076.       "names" and "size" commands to treat a non-existent array (or scalar
  1077.       variable) just like an empty one.
  1078.     - added pattern option to "names" command.
  1079.  
  1080. 280. 10/6/94 Modified Tcl_SetVar2 so that read traces on variables get
  1081. called during append operations.
  1082.  
  1083. 281. 10/20/94 Fixed bug in "read" command where reading from stdin
  1084. required two control-D's to stop the reading.
  1085.  
  1086. 282. 11/3/94 Changed "expr" command to use longs for division just like
  1087. all other expr operators;  it previously used ints for division.
  1088.  
  1089. 283. 11/4/94 Fixed bugs in "unknown" procedure:  it wasn't properly
  1090. handling exception returns from commands that were executed after
  1091. being auto-loaded.
  1092.  
  1093. ----------------- Released version 7.4b1, 12/23/94 ------------------
  1094.  
  1095. 284. 12/26/94 Fixed "install" target in Makefile (couldn't always
  1096. find install program).
  1097.  
  1098. 285. 12/26/94 Added strcncasecmp procedure to compat directory.
  1099.  
  1100. 286. 1/3/95 Fixed all procedure calls to explicitly cast arguments:
  1101. implicit conversions from prototypes (especially integer->double)
  1102. don't work when compiling under non-ANSI compilers.  Tcl is now clean
  1103. under gcc -Wconversion.
  1104.  
  1105. 287. 1/4/95 Fixed problem in Tcl_ArrayCmd where same name was used for
  1106. both a label and a variable;  caused problems on several older compilers,
  1107. making array command misbehave and causing many errors in Tcl test suite.
  1108.  
  1109. ----------------- Released version 7.4b2, 1/12/95 ------------------
  1110.  
  1111. 288. 2/9/95 Modified Tcl_CreateCommand to return a token, and added
  1112. Tcl_GetCommandName procedure.  Together, these procedures make it possible
  1113. to track renames of a command.
  1114.  
  1115. 289. 2/13/95 Fixed bug in expr where "089" was interpreted as a
  1116. floating-point number rather than a bogus octal number.
  1117. *** POTENTIAL INCOMPATIBILITY ***
  1118.  
  1119. 290. 2/14/95 Added code to Tcl_GetInt and Tcl_GetDouble to check for
  1120. overflows when reading in numbers.
  1121.  
  1122. 291. 2/18/95 Changed "array set" to stop after first error, rather than
  1123. continuing after error.
  1124.  
  1125. 292. 2/20/95 Upgraded to use autoconf version 2.2.
  1126.  
  1127. 293. 2/20/95 Fixed core dump that could occur in "scan" command if a
  1128. close bracket was omitted.
  1129.  
  1130. 294. 2/27/95 Changed Makefile to always use install-sh for installations:
  1131. there's just too much variation among "install" system programs, which
  1132. makes installation flakey.
  1133.  
  1134. ----------------- Released version 7.4b3, 3/24/95 ------------------
  1135.  
  1136. 3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that
  1137. "make install" will work even when "." isn't in the search path.
  1138.  
  1139. 3/29/95 (bug fix) Fixed bug where the auto-loading mechanism wasn't
  1140. protecting the values of the errorCode and errorInfo variables.
  1141.  
  1142. 3/29/95 (new feature) Added optional pattern argument to "parray" procedure.
  1143.  
  1144. 3/29/95 (bug fix) Made the full functionality of
  1145.     "return -code ... -errorcode ..."
  1146. work not just inside procedures, but also in sourced files and at
  1147. top level.
  1148.  
  1149. 4/6/95 (new feature) Added "pattern" option to "array names" command.
  1150.  
  1151. 4/18/95 (bug fix) Fixed bug in parser where it didn't allow backslash-newline
  1152. immediately after an argument in braces or quotes.
  1153.  
  1154. 4/19/95 (new feature) Added tcl_library variable, which application can
  1155. set to override default library directory.
  1156.  
  1157. 4/30/95 (bug fix) During trace callbacks for array elements, the variable
  1158. name used in the original reference would be temporarily modified to
  1159. separate the array name and element name;  if the trace callback used
  1160. the same name string, it would get the wrong name (the array name without
  1161. element).  Fixed to restore the variable name before making trace
  1162. callbacks.
  1163.  
  1164. 4/30/95 (new feature) Added -nobackslashes, -nocommands, and -novariables
  1165. switches to "subst" command.
  1166.  
  1167. 5/4/95 (new feature) Added TCL_EVAL_GLOBAL flag to Tcl_RecordAndEval.
  1168.  
  1169. 5/5/95 (bug fix)  Format command would overrun memory when printing
  1170. integers with very large precision, as in "format %.1000d 0".
  1171.  
  1172. 5/5/95 (portability improvement) Changed to use BSDgettimeofday on
  1173. IRIX machines, to avoid compilation problems with the gettimeofday
  1174. declaration.
  1175.  
  1176. 5/6/95 (bug fix) Changed manual entries to use the standard .TH
  1177. macro instead of a custom .HS macro;  the .HS macro confuses index
  1178. generators like makewhatis.
  1179.  
  1180. 5/9/95 (bug fix) Modified configure script to check for Solaris bug
  1181. that makes vfork unreliable (core dumps result if vforked child
  1182. changes a signal handler);  will use fork instead of vfork if the
  1183. bug is present.
  1184.  
  1185. 6/5/95 (bug fix) Modified "lsort" command to disallow recursive calls
  1186. to lsort from a comparison function.  This is needed because qsort
  1187. is not reentrant.
  1188.  
  1189. 6/5/95 (bug fix) Undid change 243 above:  changed TCL_VOLATILE and
  1190. TCL_DYNAMIC back to integer constants rather than procedure addresses.
  1191. This was needed because procedure addresses can have multiple values
  1192. under some dynamic loading systems (e.g. SunOS 4.1 and Windows).
  1193.  
  1194. 6/8/95 (feature change) Modified interface to Tcl_Main to pass in the
  1195. address of the application-specific initialization procedure.
  1196. Tcl_AppInit is no longer hardwired into Tcl_Main.  This is needed
  1197. in order to make Tcl a shared library. 
  1198.  
  1199. 6/8/95 (feature change) Modified Makefile so that the installed versions
  1200. of tclsh and libtcl.a have version number in them (e.g. tclsh7.4 and
  1201. libtcl7.4.a) and the library directory name also has an embedded version
  1202. number (e.g., /usr/local/lib/tcl7.4).  This should make it easier for
  1203. Tcl 7.4 to coexist with earlier versions.
  1204.  
  1205. ----------------- Released version 7.4b4, 6/16/95 ------------------
  1206.  
  1207. 6/19/95 (bug fix) Fixed bugs in tclCkalloc.c that caused core dumps
  1208. if TCL_MEM_DEBUG was enabled on word-addressed machines such as Crays.
  1209.  
  1210. 6/21/95 (feature removal) Removed overflow checks for integer arithmetic:
  1211. they just cause too much trouble (e.g. for random  number generators).
  1212.  
  1213. 6/28/95 (new features) Added tcl_patchLevel and tcl_version variables,
  1214. for consistency with Tk.
  1215.  
  1216. 6/29/95 (bug fix) Fixed problem in Tcl_Eval where it didn't record
  1217. the right termination character if a script ended with a comment.  This
  1218. caused erroneous output for the following command, among others:
  1219. puts "[
  1220. expr 1+1
  1221. # duh!
  1222. ]"
  1223.  
  1224. 6/29/95 (message change) Changed the error message for ECHILD slightly
  1225. to provide a hint about why the problem is occurring.
  1226.  
  1227. ----------------- Released version 7.4, 7/1/95 ------------------
  1228.