home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tcl2-73c.zip / tcl7.3 / changes next >
Text File  |  1993-11-21  |  40KB  |  959 lines

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