📄 changes
字号:
Recent user-visible changes to Tcl:RCS: @(#) $Id: changes,v 1.79 2003/03/03 20:04:50 hobbs Exp $1. No more [command1] [command2] construct for grouping multiplecommands on a single command line.2. Semi-colon now available for grouping commands on a line.3. For a command to span multiple lines, must now use backslash-returnat the end of each line but the last.4. "Var" command has been changed to "set".5. Double-quotes now available as an argument grouping character.6. "Return" may be used at top-level.7. More backslash sequences available now. In particular, backslash-newlinemay be used to join lines in command files.8. New or modified built-in commands: case, return, for, glob, info,print, return, set, source, string, uplevel.9. After an error, the variable "errorInfo" is filled with a stacktrace showing what was being executed when the error occurred.10. Command abbreviations are accepted when parsing commands, butare not recommended except for purely-interactive commands.11. $, set, and expr all complain now if a non-existent variable isreferenced.12. History facilities exist now. See Tcl.man and Tcl_RecordAndEval.man.13. Changed to distinguish between empty variables and those that don'texist at all. Interfaces to Tcl_GetVar and Tcl_ParseVar have changed(NULL return value is now possible). *** POTENTIAL INCOMPATIBILITY ***14. Changed meaning of "level" argument to "uplevel" command (1 now means"go up one level", not "go to level 1"; "#1" means "go to level 1").*** POTENTIAL INCOMPATIBILITY ***15. 3/19/90 Added "info exists" option to see if variable exists.16. 3/19/90 Added "noAbbrev" variable to prohibit command abbreviations.17. 3/19/90 Added extra errorInfo option to "error" command.18. 3/21/90 Double-quotes now only affect space: command, variable,and backslash substitutions still occur inside double-quotes.*** POTENTIAL INCOMPATIBILITY ***19. 3/21/90 Added support for \r.20. 3/21/90 List, concat, eval, and glob commands all expect at leastone argument now. *** POTENTIAL INCOMPATIBILITY ***21. 3/22/90 Added "?:" operators to expressions.22. 3/25/90 Fixed bug in Tcl_Result that caused memory to get trashed.------------------- Released version 3.1 ---------------------23. 3/29/90 Fixed bug that caused "file a.b/c ext" to return ".b/c".24. 3/29/90 Semi-colon is not treated specially when enclosed indouble-quotes.------------------- Released version 3.2 ---------------------25. 4/16/90 Rewrote "exec" not to use select or signals anymore.Should be more Sys-V compatible, and no slower in the normal case.26. 4/18/90 Rewrote "glob" to eliminate GNU code (there's no GNU codeleft in Tcl, now), and added Tcl_TildeSubst procedure. Added automatictilde-substitution in many commands, including "glob".------------------- Released version 3.3 ---------------------27. 7/11/90 Added "Tcl_AppendResult" procedure.28. 7/20/90 "History" with no options now defaults to "history info"rather than to "history redo". Although this is a backward incompatibility,it should only be used interactively and thus shouldn't present anycompatibility problems with scripts.29. 7/20/90 Added "Tcl_GetInteger", "Tcl_GetDouble", and "Tcl_GetBoolean"procedures.30. 7/22/90 Removed "Tcl_WatchInterp" procedure: doesn't seem to benecessary, since the same effect can be achieved with the deletioncallbacks on individual commands. *** POTENTIAL INCOMPATIBILITY ***31. 7/23/90 Added variable tracing: Tcl_TraceVar, Tcl_UnTraceVar,and Tcl_VarTraceInfo procedures, "trace" command.32. 8/9/90 Mailed out list of all bug fixes since 3.3 release.33. 8/29/90 Fixed bugs in Tcl_Merge relating to backslashes andsemi-colons. Mailed out patch.34. 9/3/90 Fixed bug in tclBasic.c: quotes weren't quoting ]'s.Mailed out patch.35. 9/19/90 Rewrote exec to always use files both for input andoutput to the process. The old pipe-based version didn't work ifthe exec'ed process forked a child and then exited: Tcl waitedaround for stdout to get closed, which didn't happen until thegrandchild exited.36. 11/5/90 ERR_IN_PROGRESS flag wasn't being cleared soon enoughin Tcl_Eval, allowing error messages from different commands topile up in $errorInfo. Fixed by re-arranging code in Tcl_Eval thatre-initializes result and ERR_IN_PROGRESS flag. Didn't mail outpatch: changes too complicated to describe.37. 12/19/90 Added Tcl_VarEval procedure as a convenience forassembling and executing Tcl commands.38. 1/29/91 Fixed core leak in Tcl_AddErrorInfo. Also changed procedureand Tcl_Eval so that first call to Tcl_AddErrorInfo need not come fromTcl_Eval.----------------- Released version 5.0 with Tk ------------------39. 4/3/91 Removed change bars from manual entries, leaving only thosethat came after version 3.3 was released.40. 5/17/91 Changed tests to conform to Mary Ann May-Pumphrey's approach. 41. 5/23/91 Massive revision to Tcl parser to simplify the implementationof string and floating-point support in expressions. Newlines inside[] are now treated as command separators rather than word separators(this makes newline treatment consistent throughout Tcl).*** POTENTIAL INCOMPATIBILITY ***42. 5/23/91 Massive rewrite of expression code to support floating-pointvalues and simple string comparisons. The C interfaces to expressionroutines have changed (Tcl_Expr is replaced by Tcl_ExprLong, Tcl_ExprDouble,etc.), but all old Tcl expression strings should be accepted by the newexpression code.*** POTENTIAL INCOMPATIBILITY ***43. 5/23/91 Modified tclHistory.c to check for negative "keep" value.44. 5/23/91 Modified Tcl_Backslash to handle backslash-newline. It nowreturns 0 to indicate that a backslash sequence should be replaced byno character at all.*** POTENTIAL INCOMPATIBILITY ***45. 5/29/91 Modified to use ANSI C function prototypes. Must set"USE_ANSI" switch when compiling to get prototypes.46. 5/29/91 Completed test suite by providing tests for all of thebuilt-in Tcl commands.47. 5/29/91 Changed Tcl_Concat to eliminate leading and trailingwhite-space in each of the things it concatenates and to ignoreelements that are empty or have only white space in them. Thisproduces cleaner output from the "concat" command.*** POTENTIAL INCOMPATIBILITY ***48. 5/31/91 Changed "set" command and Tcl_SetVar procedure to returnnew value of variable.49. 6/1/91 Added "while" and "cd" commands.50. 6/1/91 Changed "exec" to delete the last character of programoutput if it is a newline. In most cases this makes it easier toprocess program-generated output.*** POTENTIAL INCOMPATIBILITY ***51. 6/1/91 Made sure that pointers are never used after freeing them.52. 6/1/91 Fixed bug in TclWordEnd where it wasn't dealing with[] inside quotes correctly.53. 6/8/91 Fixed exec.test to accept return values of either 1 or255 from "false" command.54. 7/6/91 Massive overhaul of variable management. Associativearrays now available, along with "unset" command (and Tcl_UnsetVarprocedure). Variable traces have been completely reworked:interfaces different both from Tcl and C, and multiple traces mayexist on same variable. Can no longer redefine existing localvariable to be global. Calling sequences have changed slightlyfor Tcl_GetVar and Tcl_SetVar ("global" is now "flags"). Tcl_SetVarcan fail and return a NULL result. New forms of variable-manipulationprocedures: Tcl_GetVar2, Tcl_SetVar2, etc. Syntax of variable$-notation changed to support array indexing.*** POTENTIAL INCOMPATIBILITY ***55. 7/6/91 Added new list-manipulation procedures: Tcl_ScanElement,Tcl_ConvertElement, Tcl_AppendElement.56. 7/12/91 Created new procedure Tcl_EvalFile, which does most of thework of the "source" command.57. 7/20/91 Major reworking of "exec" command to allow pipelines,more redirection, background. Added new procedures Tcl_Fork,Tcl_WaitPids, Tcl_DetachPids, and Tcl_CreatePipeline. The old"< input" notation has been replaced by "<< input" ("<" is forredirection from a file). Also handles error returns and abnormalterminations (e.g. signals) differently.*** POTENTIAL INCOMPATIBILITY ***58. 7/21/91 Added "append" and "lappend" commands.59. 7/22/91 Reworked error messages and manual entries to use?x? as the notation for an optional argument x, instead of [x]. Thebracket notation was often confused with the use of brackets forcommand substitution. Also modified error messages to be moreconsistent.60. 7/23/91 Tcl_DeleteCommand now returns an indication of whetheror not the command actually existed, and the "rename" command usesthis information to return an error if an attempt is made to deletea non-existent command.*** POTENTIAL INCOMPATIBILITY ***61. 7/25/91 Added new "errorCode" mechanism, along with proceduresTcl_SetErrorCode, Tcl_UnixError, and Tcl_ResetResult. RenamedTcl_Return to Tcl_SetResult, but left a #define for Tcl_Return toavoid compatibility problems.62. 7/26/91 Extended "case" command with alternate syntax where allpatterns and commands are together in a single list argument: makesit easier to write multi-line case statements.63. 7/27/91 Changed "print" command to perform tilde-substitution onthe file name.64. 7/27/91 Added "tolower", "toupper", "trim", "trimleft", and "trimright"options to "string" command.65. 7/29/91 Added "atime", "mtime", "size", and "stat" options to "file"command.66. 8/1/91 Added "split" and "join" commands.67. 8/11/91 Added commands for file I/O, including "open", "close","read", "gets", "puts", "flush", "eof", "seek", and "tell".68. 8/14/91 Switched to use a hash table for command lookups. Commandabbreviations no longer have direct support in the Tcl interpreter, butit should be possible to simulate them with the auto-load featuresdescribed below. The "noAbbrev" variable is no longer used by Tcl.*** POTENTIAL INCOMPATIBILITY ***68.5 8/15/91 Added support for "unknown" command, which can be used tocomplete abbreviations, auto-load library files, auto-exec shellcommands, etc.69. 8/15/91 Added -nocomplain switch to "glob" command.70. 8/20/91 Added "info library" option and TCL_LIBRARY #define. Alsoadded "info script" option.71. 8/20/91 Changed "file" command to take "option" argument as firstargument (before file name), for consistency with other Tcl commands.*** POTENTIAL INCOMPATIBILITY ***72. 8/20/91 Changed format of information in $errorInfo variable:comments such as ("while" body line 1)are now on separate lines from commands being executed.*** POTENTIAL INCOMPATIBILITY ***73. 8/20/91 Changed Tcl_AppendResult so that it (eventually) freeslarge buffers that it allocates.74. 8/21/91 Added "linsert", "lreplace", "lsearch", and "lsort"commands.75. 8/28/91 Added "incr" and "exit" commands.76. 8/30/91 Added "regexp" and "regsub" commands.77. 9/4/91 Changed "dynamic" field in interpreters to "freeProc" (procedureaddress). This allows for alternative storage managers.*** POTENTIAL INCOMPATIBILITY ***78. 9/6/91 Added "index", "length", and "range" options to "string"command. Added "lindex", "llength", and "lrange" commands.79. 9/8/91 Removed "index", "length", "print" and "range" commands."Print" is redundant with "puts", but less general, and the othercommands are replaced with the new commands described in change 78above.*** POTENTIAL INCOMPATIBILITY ***80. 9/8/91 Changed history revision to occur even when history commandis nested; needed in order to allow "history" to be invoked from"unknown" procedure.81. 9/13/91 Changed "panic" not to use vfprintf (it's uglier and lessgeneral now, but makes it easier to run Tcl on systems that don'thave vfprintf). Also changed "strerror" not to redeclare sys_errlist.82. 9/19/91 Lots of changes to improve portability to different UNIXsystems, including addition of "config" script to adapt Tcl to theconfiguration of the system it's being compiled on.83. 9/22/91 Added "pwd" command.84. 9/22/91 Renamed manual pages so that their filenames are no morethan 14 characters in length, moved to "doc" subdirectory.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -