1 |
578 |
markom |
Recent user-visible changes to Tcl:
|
2 |
|
|
|
3 |
|
|
SCCS: @(#) changes 1.338 97/11/25 08:30:52
|
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 !!, !, and
|
477 |
|
|
^^ 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 |
|
|
- \ 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, 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 instead of explicitly declaring system
|
727 |
|
|
calls in tclUnix.h.
|
728 |
|
|
|
729 |
|
|
184. 6/4/93 Fixed bug where core-dumps could occur if a procedure
|
730 |
|
|
redefined itself (the memory for the procedure's body could get
|
731 |
|
|
reallocated in the middle of evaluating the body); implemented
|
732 |
|
|
simple reference count mechanism.
|
733 |
|
|
|
734 |
|
|
185. 6/5/93 Changed tclIndex file format in two ways: (a) it's now
|
735 |
|
|
eval-ed instead of parsed, which makes it 3-4x faster; (b) the entries
|
736 |
|
|
in auto_index are now commands to evaluate, which allows commands to
|
737 |
|
|
be loaded in different ways such as dynamic-loading of C code. The
|
738 |
|
|
old tclIndex file format is still supported.
|
739 |
|
|
|
740 |
|
|
186. 6/7/93 Eliminated tclTest program, added new "tclsh" program
|
741 |
|
|
that is more like wish (allows script files to be invoked automatically
|
742 |
|
|
using "#!/usr/local/bin/tclsh", makes arguments available to script,
|
743 |
|
|
etc.). Added support for Tcl_AppInit plus default version; this
|
744 |
|
|
allows new Tcl applications to be created without modifying the
|
745 |
|
|
main program for tclsh.
|
746 |
|
|
|
747 |
|
|
187. 6/7/93 Fixed bug in TclWordEnd that kept backslash-newline from
|
748 |
|
|
working correctly in some cases during interactive input.
|
749 |
|
|
|
750 |
|
|
188. 6/9/93 Added Tcl_LinkVar and related procedures, which automatically
|
751 |
|
|
keep a Tcl variable in sync with a C variable.
|
752 |
|
|
|
753 |
|
|
189. 6/16/93 Increased maximum nesting depth from 100 to 1000.
|
754 |
|
|
|
755 |
|
|
190. 6/16/93 Modified "trace var" command so that error messages from
|
756 |
|
|
within traces are returned properly as the result of the variable
|
757 |
|
|
access, instead of the generic "access disallowed by trace command"
|
758 |
|
|
message.
|
759 |
|
|
|
760 |
|
|
191. 6/16/93 Added Tcl_CallWhenDeleted to provide callbacks when an
|
761 |
|
|
interpreter is deleted (same functionality as Tcl_WatchInterp, which
|
762 |
|
|
used to exist in versions before 6.0).
|
763 |
|
|
|
764 |
|
|
193. 6/16/93 Added "-code" argument to "return" command; it's there
|
765 |
|
|
primarily for completeness, so that procedures implementing control
|
766 |
|
|
constructs can reflect exceptional conditions back to their callers.
|
767 |
|
|
|
768 |
|
|
194. 6/16/93 Split up Tcl.n to make separate manual entries for each
|
769 |
|
|
Tcl command. Tcl.n now contains a summary of the language syntax.
|
770 |
|
|
|
771 |
|
|
195. 6/17/93 Added new "switch" command to replace "case": allows
|
772 |
|
|
alternate forms of pattern matching (exact, glob, regexp), replaces
|
773 |
|
|
pattern lists with single patterns (but you can use "-" bodies to
|
774 |
|
|
share one body among several patterns), eliminates "in" noise word.
|
775 |
|
|
"Case" command is now obsolete.
|
776 |
|
|
|
777 |
|
|
196. 6/17/93 Changed the "exec", "glob", "regexp", and "regsub" commands
|
778 |
|
|
to include a "--" switch. All initial arguments starting with "-" are now
|
779 |
|
|
treated as switches unless a "--" switch is present to end the list.
|
780 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
781 |
|
|
|
782 |
|
|
197. 6/17/93 Changed auto-exec so that the subprocess gets stdin, stdout,
|
783 |
|
|
and stderr from the parent. This allows truly interactive sub-processes
|
784 |
|
|
(e.g. vi) to be auto-exec'ed from a tcl shell command line.
|
785 |
|
|
|
786 |
|
|
198. 6/18/93 Added patchlevel.h, for use in coordinating future patch
|
787 |
|
|
releases, and also added "info patchlevel" command to make the patch
|
788 |
|
|
level available to Tcl scripts.
|
789 |
|
|
|
790 |
|
|
199. 6/19/93 Modified "glob" command so that a leading "//" in a name
|
791 |
|
|
gets left as is (this is needed for systems like Apollos where "//" is
|
792 |
|
|
the super-root; Tcl used to collapse the two slashes into a single
|
793 |
|
|
slash).
|
794 |
|
|
|
795 |
|
|
200. 7/7/93 Added Tcl_SetRecursionLimit procedure so that the maximum
|
796 |
|
|
allowable nesting depth can be controlled for an interpreter from C.
|
797 |
|
|
|
798 |
|
|
----------------- Released version 7.0 Beta 1, 7/9/93 ------------------
|
799 |
|
|
|
800 |
|
|
201. 7/12/93 Modified Tcl_GetInt and tclExpr.c so that full-precision
|
801 |
|
|
unsigned integers can be specified without overflow errors.
|
802 |
|
|
|
803 |
|
|
202. 7/12/93 Configuration changes: eliminate leading blank line in
|
804 |
|
|
configure script; provide separate targets in Makefile for installing
|
805 |
|
|
binary and non-binary information; check for size_t and a few other
|
806 |
|
|
potentially missing typedefs; don't put tclAppInit.o into libtcl.a;
|
807 |
|
|
better checks for matherr support.
|
808 |
|
|
|
809 |
|
|
203. 7/14/93 Changed tclExpr.c to check the termination pointer before
|
810 |
|
|
errno after strtod calls, to avoid problems with some versions of
|
811 |
|
|
strtod that set errno in unexpected ways.
|
812 |
|
|
|
813 |
|
|
204. 7/16/93 Changed "scan" command to be more ANSI-conformant:
|
814 |
|
|
eliminated %F, %D, etc., added code to ignore "l", "h", and "L"
|
815 |
|
|
modifiers but always convert %e, %f, and %g with implicit "l";
|
816 |
|
|
also added support for %u and %i. Also changed "format" command
|
817 |
|
|
to eliminate %D, %U, %O, and add %i.
|
818 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
819 |
|
|
|
820 |
|
|
205. 7/17/93 Changed "uplevel" and "upvar" so that they can be used
|
821 |
|
|
from global level to global level: this used to generate an error.
|
822 |
|
|
|
823 |
|
|
206. 7/19/93 Renamed "setenv", "putenv", and "unsetenv" procedures
|
824 |
|
|
to avoid conflicts with system procedures with the same names. If
|
825 |
|
|
you want Tcl's procedures to override the system procedures, do it
|
826 |
|
|
in the Makefile (instructions are in the Makefile).
|
827 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
828 |
|
|
|
829 |
|
|
----------------- Released version 7.0 Beta 2, 7/21/93 ------------------
|
830 |
|
|
|
831 |
|
|
207. 7/21/93 Fixed bug in tclVar.c where freed memory was accidentally
|
832 |
|
|
used if a procedure returned an element of a local array.
|
833 |
|
|
|
834 |
|
|
208. 7/22/93 Fixed bug in "unknown" where it didn't properly handle
|
835 |
|
|
errors occurring in the "auto_load" procedure, leaving its state
|
836 |
|
|
inconsistent.
|
837 |
|
|
|
838 |
|
|
209. 7/23/93 Changed exec's ">2" redirection operator to "2>" for
|
839 |
|
|
consistency with sh. This is incompatible with earlier beta releases
|
840 |
|
|
of 7.0 but not with pre-7.0 releases, which didn't support either
|
841 |
|
|
operator.
|
842 |
|
|
|
843 |
|
|
210. 7/28/93 Changed backslash-newline handling so that the resulting
|
844 |
|
|
space character *is* treated as a word separator unless the backslash
|
845 |
|
|
sequence is in quotes or braces. This is incompatible with 7.0b1
|
846 |
|
|
and 7.0b2 but is more compatible with pre-7.0 versions that the b1
|
847 |
|
|
and b2 releases were.
|
848 |
|
|
|
849 |
|
|
211. 7/28/93 Eliminated Tcl_LinkedVarWritable, added TCL_LINK_READ_ONLY to
|
850 |
|
|
Tcl_LinkVar to accomplish same purpose. This change is incompatible
|
851 |
|
|
with earlier beta releases, but not with releases before Tcl 7.0.
|
852 |
|
|
|
853 |
|
|
212. 7/29/93 Renamed regexp C functions so they won't clash with POSIX
|
854 |
|
|
regexp functions that use the same name.
|
855 |
|
|
|
856 |
|
|
213. 8/3/93 Added "-errorinfo" and "-errorcode" options to "return"
|
857 |
|
|
command: these allow for much better handling of the errorInfo
|
858 |
|
|
and errorCode variables in some cases.
|
859 |
|
|
|
860 |
|
|
214. 8/12/93 Changed "expr" so that % always returns a remainder with
|
861 |
|
|
the same sign as the divisor and absolute value smaller than the
|
862 |
|
|
divisor.
|
863 |
|
|
|
864 |
|
|
215. 8/14/93 Turned off auto-exec in "unknown" unless the command
|
865 |
|
|
was typed interactively. This means you must use "exec" when
|
866 |
|
|
invoking subprocesses, unless it's a command that's typed interactively.
|
867 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
868 |
|
|
|
869 |
|
|
216. 8/14/93 Added support for tcl_prompt1 and tcl_prompt2 variables
|
870 |
|
|
to tclMain.c: makes prompts user-settable.
|
871 |
|
|
|
872 |
|
|
217. 8/14/93 Added asynchronous handlers (Tcl_AsyncCreate etc.) so
|
873 |
|
|
that signals can be taken cleanly by Tcl applications.
|
874 |
|
|
|
875 |
|
|
218. 8/16/93 Moved information about open files from the interpreter
|
876 |
|
|
structure to global variables so that a file can be opened in one
|
877 |
|
|
interpreter and read or written in another.
|
878 |
|
|
|
879 |
|
|
219. 8/16/93 Removed ENV_FLAGS from Makefile, so that there's no
|
880 |
|
|
official support for overriding setenv, unsetenv, and putenv.
|
881 |
|
|
|
882 |
|
|
220. 8/20/93 Various configuration improvements: coerce chars
|
883 |
|
|
to unsigned chars before using macros like isspace; source ~/.tclshrc
|
884 |
|
|
file during initialization if it exists and program is running
|
885 |
|
|
interactively; allow there to be directories in auto_path that don't
|
886 |
|
|
exist or don't have tclIndex files (ignore them); added Tcl_Init
|
887 |
|
|
procedure and changed Tcl_AppInit to call it.
|
888 |
|
|
|
889 |
|
|
221. 8/21/93 Fixed bug in expr where "+", "-", and " " were all
|
890 |
|
|
getting treated as integers with value 0.
|
891 |
|
|
|
892 |
|
|
222. 8/26/93 Added "tcl_interactive" variable to tclsh.
|
893 |
|
|
|
894 |
|
|
223. 8/27/93 Added procedure Tcl_FilePermissions to return whether a
|
895 |
|
|
given file can be read or written or both. Modified Tcl_EnterFile
|
896 |
|
|
to take a permissions mask rather than separate read and write arguments.
|
897 |
|
|
|
898 |
|
|
224. 8/28/93 Fixed performance bug in "glob" command (unnecessary call
|
899 |
|
|
to "access" for each file caused a 5-10x slow-down for big directories).
|
900 |
|
|
|
901 |
|
|
----------------- Released version 7.0 Beta 3, 8/28/93 ------------------
|
902 |
|
|
|
903 |
|
|
225. 9/9/93 Renamed regexp.h to tclRegexp.h to avoid conflicts with system
|
904 |
|
|
include file by same name.
|
905 |
|
|
|
906 |
|
|
226. 9/9/93 Added Tcl_DontCallWhenDeleted.
|
907 |
|
|
|
908 |
|
|
227. 9/16/93 Changed not to call exit C procedure directly; instead
|
909 |
|
|
always invoke "exit" Tcl command so that application can redefine the
|
910 |
|
|
command to do additional cleanup.
|
911 |
|
|
|
912 |
|
|
228. 9/17/93 Changed auto-exec to handle names that contain slashes
|
913 |
|
|
(i.e. don't use PATH for them).
|
914 |
|
|
|
915 |
|
|
229. 9/23/93 Fixed bug in "read" and "gets" commands where they didn't
|
916 |
|
|
clear EOF conditions.
|
917 |
|
|
|
918 |
|
|
----------------- Released version 7.0, 9/29/93 ------------------
|
919 |
|
|
|
920 |
|
|
230. 10/7/93 "Scan" command wasn't properly aligning things in memory,
|
921 |
|
|
so segmentation faults could arise under some circumstances.
|
922 |
|
|
|
923 |
|
|
231. 10/7/93 Fixed bug in Tcl_ConvertElement where it forgot to
|
924 |
|
|
backslash leading curly brace when creating lists.
|
925 |
|
|
|
926 |
|
|
232. 10/7/93 Eliminated dependency of tclMain.c on tclInt.h and
|
927 |
|
|
tclUnix.h, so that people can copy the file out of the Tcl source
|
928 |
|
|
directory to make modified private versions.
|
929 |
|
|
|
930 |
|
|
233. 10/8/93 Fixed bug in auto-loader that reversed the priority order
|
931 |
|
|
of entries in auto_path for new-style index files. Now things are
|
932 |
|
|
back to the way they were before 3.0: first in auto_path is always
|
933 |
|
|
highest priority.
|
934 |
|
|
|
935 |
|
|
234. 10/13/93 Fixed bug where Tcl_CommandComplete didn't recognize
|
936 |
|
|
comments and treat them as such. Thus if you typed the line
|
937 |
|
|
# {
|
938 |
|
|
interactively, Tcl would think that the command wasn't complete and
|
939 |
|
|
wait for more input before evaluating the script.
|
940 |
|
|
|
941 |
|
|
235. 10/14/93 Fixed bug where "regsub" didn't set the output variable
|
942 |
|
|
if the input string was empty.
|
943 |
|
|
|
944 |
|
|
236. 10/23/93 Fixed bug where Tcl_CreatePipeline didn't close off enough
|
945 |
|
|
file descriptors in child processes, causing children not to exit
|
946 |
|
|
properly in some cases.
|
947 |
|
|
|
948 |
|
|
237. 10/28/93 Changed "list" and "concat" commands not to generate
|
949 |
|
|
errors if given zero arguments, but instead to just return an empty
|
950 |
|
|
string.
|
951 |
|
|
|
952 |
|
|
----------------- Released version 7.1, 11/4/93 ------------------
|
953 |
|
|
|
954 |
|
|
Note: there is no 7.2 release. It was flawed and was thus withdrawn
|
955 |
|
|
shortly after it was released.
|
956 |
|
|
|
957 |
|
|
238. 11/10/93 TclMain.c didn't compile on some systems because of
|
958 |
|
|
R_OK in call to "access". Changed to eliminate call to "access".
|
959 |
|
|
|
960 |
|
|
----------------- Released version 7.3, 11/26/93 ------------------
|
961 |
|
|
|
962 |
|
|
239. 11/6/93 Modified "lindex", "linsert", "lrange", and "lreplace"
|
963 |
|
|
so that "end" can be specified as an index.
|
964 |
|
|
|
965 |
|
|
240. 11/6/93 Modified "append" and "lappend" to allow only two
|
966 |
|
|
words total (i.e., nothing to append) without generating an error.
|
967 |
|
|
|
968 |
|
|
241. 12/2/93 Changed to use EAGAIN as the errno for non-blocking
|
969 |
|
|
I/O instead of EWOULDBLOCK: this should fix problem where non-blocking
|
970 |
|
|
I/O didn't work correctly on System-V systems.
|
971 |
|
|
|
972 |
|
|
242. 12/22/93 Fixed bug in expressions where cancelled evaluation
|
973 |
|
|
wasn't always working correctly (e.g. "set one 1; eval {1 || 1/$one}"
|
974 |
|
|
failed with a divide by zero error).
|
975 |
|
|
|
976 |
|
|
243. 1/6/94 Changed TCL_VOLATILE definition from -1 to the address of
|
977 |
|
|
a dummy procedure Tcl_Volatile, since -1 causes portability problems on
|
978 |
|
|
some machines (e.g., Crays).
|
979 |
|
|
|
980 |
|
|
244. 2/4/94 Added support for unary plus.
|
981 |
|
|
|
982 |
|
|
245. 2/17/94 Changed Tcl_RecordAndEval and "history" command to
|
983 |
|
|
call Tcl_GlobalEval instead of Tcl_Eval. Otherwise, invocation of
|
984 |
|
|
these facilities in nested procedures can cause unwanted results.
|
985 |
|
|
|
986 |
|
|
246. 2/17/94 Fixed bug in tclExpr.c where an expression such as
|
987 |
|
|
"expr {"12398712938788234-1298379" != ""}" triggers an integer
|
988 |
|
|
overflow error for the number in quotes, even though it isn't really
|
989 |
|
|
a proper integer anyway.
|
990 |
|
|
|
991 |
|
|
247. 2/19/94 Added new procedure Tcl_DStringGetResult to move result
|
992 |
|
|
from interpreter to a dynamic string.
|
993 |
|
|
|
994 |
|
|
248. 2/19/94 Fixed bug in Tcl_DStringResult that caused it to overwrite
|
995 |
|
|
the contents of a static result in some situations. This can cause
|
996 |
|
|
bizarre errors such as variables suddenly having empty values.
|
997 |
|
|
|
998 |
|
|
249. 2/21/94 Fixed bug in Tcl_AppendElement, Tcl_DStringAppendElement,
|
999 |
|
|
and the "lappend" command that caused improper omission of a separator
|
1000 |
|
|
space in some cases. For example, the script
|
1001 |
|
|
set x "abc{"; lappend x "def"
|
1002 |
|
|
used to return the result "abc{def" instead of "abc{ def".
|
1003 |
|
|
|
1004 |
|
|
250. 3/3/94 Tcl_ConvertElement was outputting empty elements as \0 if
|
1005 |
|
|
TCL_DONT_USE_BRACES was set. This depends on old pre-7.0 meaning of
|
1006 |
|
|
\0, which is no longer in effect, so it didn't really work. Changed
|
1007 |
|
|
to output empty elements as {} always.
|
1008 |
|
|
|
1009 |
|
|
251. 3/3/94 Renamed Tcl_DStringTrunc to Tcl_DStringSetLength and extended
|
1010 |
|
|
it so that it can be used to lengthen a string as well as shorten it.
|
1011 |
|
|
Tcl_DStringTrunc is defined as a macro for backward compatibility, but
|
1012 |
|
|
it is deprecated.
|
1013 |
|
|
|
1014 |
|
|
252. 3/3/94 Added Tcl_AllowExceptions procedure.
|
1015 |
|
|
|
1016 |
|
|
253. 3/13/94 Fixed bug in Tcl_FormatCmd that could cause "format"
|
1017 |
|
|
to mis-behave on 64-bit Big-Endian machines.
|
1018 |
|
|
|
1019 |
|
|
254. 3/13/94 Changed to use vfork instead of fork on systems where
|
1020 |
|
|
vfork exists.
|
1021 |
|
|
|
1022 |
|
|
255. 3/23/94 Fixed bug in expressions where ?: didn't associate
|
1023 |
|
|
right-to-left as they should.
|
1024 |
|
|
|
1025 |
|
|
256. 4/3/94 Fixed "exec" to flush any files used in >@ or >&@
|
1026 |
|
|
redirection in exec, so that data buffered for them is written
|
1027 |
|
|
before any new data added by the subprocess.
|
1028 |
|
|
|
1029 |
|
|
257. 4/3/94 Added "subst" command.
|
1030 |
|
|
|
1031 |
|
|
258. 5/20/94 The tclsh main program is now called Tcl_Main; tclAppInit.c
|
1032 |
|
|
has a "main" procedure that calls Tcl_Main. This makes it easier to use
|
1033 |
|
|
Tcl with C++ programs, which need their own main programs, and it also
|
1034 |
|
|
allows an application to prefilter the argument list before calling
|
1035 |
|
|
Tcl_Main.
|
1036 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
1037 |
|
|
|
1038 |
|
|
259. 6/6/94 Fixed bug in procedure returns where the errorInfo variable
|
1039 |
|
|
could get truncated if an unset trace was invoked as part of returning
|
1040 |
|
|
from the procedure.
|
1041 |
|
|
|
1042 |
|
|
260. 6/13/94 Added "wordstart" and "wordend" options to "string" command.
|
1043 |
|
|
|
1044 |
|
|
261. 6/27/94 Fixed bug in expressions where they didn't properly cancel
|
1045 |
|
|
the evaluation of math functions in &&, ||, and ?:.
|
1046 |
|
|
|
1047 |
|
|
262. 7/11/94 Incorrect boolean values, like "ogle", weren't being
|
1048 |
|
|
handled properly.
|
1049 |
|
|
|
1050 |
|
|
263. 7/15/94 Added Tcl_RegExpCompile, Tcl_RegExpExec, and Tcl_RegExpRange,
|
1051 |
|
|
which provide lower-level access to regular expression pattern matching.
|
1052 |
|
|
|
1053 |
|
|
264. 7/22/94 Fixed bug in "glob" command where "glob -nocomplain ~bad_user"
|
1054 |
|
|
would complain about a missing user. Now it doesn't complain anymore.
|
1055 |
|
|
|
1056 |
|
|
265. 8/4/94 Fixed bug with linked variables where they didn't behave
|
1057 |
|
|
correctly when accessed via upvars.
|
1058 |
|
|
|
1059 |
|
|
266. 8/17/94 Fixed bug in Tcl_EvalFile where it didn't clear interp->result.
|
1060 |
|
|
|
1061 |
|
|
267. 8/31/94 Modified "open" command so that errors in exec-ing
|
1062 |
|
|
subprocesses are returned by the open immediately, rather than
|
1063 |
|
|
being delayed until the "close" is executed.
|
1064 |
|
|
|
1065 |
|
|
268. 9/9/94 Modified "expr" command to generate errors for integer
|
1066 |
|
|
overflow (includes addition, subtraction, negation, multiplication,
|
1067 |
|
|
division).
|
1068 |
|
|
|
1069 |
|
|
269. 9/23/94 Modified "regsub" to return a count of the number of
|
1070 |
|
|
matches and replacements, rather than 0/1.
|
1071 |
|
|
|
1072 |
|
|
279. 10/4/94 Added new features to "array" command:
|
1073 |
|
|
- added "get" and "set" commands for easy conversion between arrays
|
1074 |
|
|
and lists.
|
1075 |
|
|
- added "exists" command to see if a variable is an array, changed
|
1076 |
|
|
"names" and "size" commands to treat a non-existent array (or scalar
|
1077 |
|
|
variable) just like an empty one.
|
1078 |
|
|
- added pattern option to "names" command.
|
1079 |
|
|
|
1080 |
|
|
280. 10/6/94 Modified Tcl_SetVar2 so that read traces on variables get
|
1081 |
|
|
called during append operations.
|
1082 |
|
|
|
1083 |
|
|
281. 10/20/94 Fixed bug in "read" command where reading from stdin
|
1084 |
|
|
required two control-D's to stop the reading.
|
1085 |
|
|
|
1086 |
|
|
282. 11/3/94 Changed "expr" command to use longs for division just like
|
1087 |
|
|
all other expr operators; it previously used ints for division.
|
1088 |
|
|
|
1089 |
|
|
283. 11/4/94 Fixed bugs in "unknown" procedure: it wasn't properly
|
1090 |
|
|
handling exception returns from commands that were executed after
|
1091 |
|
|
being auto-loaded.
|
1092 |
|
|
|
1093 |
|
|
----------------- Released version 7.4b1, 12/23/94 ------------------
|
1094 |
|
|
|
1095 |
|
|
284. 12/26/94 Fixed "install" target in Makefile (couldn't always
|
1096 |
|
|
find install program).
|
1097 |
|
|
|
1098 |
|
|
285. 12/26/94 Added strcncasecmp procedure to compat directory.
|
1099 |
|
|
|
1100 |
|
|
286. 1/3/95 Fixed all procedure calls to explicitly cast arguments:
|
1101 |
|
|
implicit conversions from prototypes (especially integer->double)
|
1102 |
|
|
don't work when compiling under non-ANSI compilers. Tcl is now clean
|
1103 |
|
|
under gcc -Wconversion.
|
1104 |
|
|
|
1105 |
|
|
287. 1/4/95 Fixed problem in Tcl_ArrayCmd where same name was used for
|
1106 |
|
|
both a label and a variable; caused problems on several older compilers,
|
1107 |
|
|
making array command misbehave and causing many errors in Tcl test suite.
|
1108 |
|
|
|
1109 |
|
|
----------------- Released version 7.4b2, 1/12/95 ------------------
|
1110 |
|
|
|
1111 |
|
|
288. 2/9/95 Modified Tcl_CreateCommand to return a token, and added
|
1112 |
|
|
Tcl_GetCommandName procedure. Together, these procedures make it possible
|
1113 |
|
|
to track renames of a command.
|
1114 |
|
|
|
1115 |
|
|
289. 2/13/95 Fixed bug in expr where "089" was interpreted as a
|
1116 |
|
|
floating-point number rather than a bogus octal number.
|
1117 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
1118 |
|
|
|
1119 |
|
|
290. 2/14/95 Added code to Tcl_GetInt and Tcl_GetDouble to check for
|
1120 |
|
|
overflows when reading in numbers.
|
1121 |
|
|
|
1122 |
|
|
291. 2/18/95 Changed "array set" to stop after first error, rather than
|
1123 |
|
|
continuing after error.
|
1124 |
|
|
|
1125 |
|
|
292. 2/20/95 Upgraded to use autoconf version 2.2.
|
1126 |
|
|
|
1127 |
|
|
293. 2/20/95 Fixed core dump that could occur in "scan" command if a
|
1128 |
|
|
close bracket was omitted.
|
1129 |
|
|
|
1130 |
|
|
294. 2/27/95 Changed Makefile to always use install-sh for installations:
|
1131 |
|
|
there's just too much variation among "install" system programs, which
|
1132 |
|
|
makes installation flakey.
|
1133 |
|
|
|
1134 |
|
|
----------------- Released version 7.4b3, 3/24/95 ------------------
|
1135 |
|
|
|
1136 |
|
|
3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that
|
1137 |
|
|
"make install" will work even when "." isn't in the search path.
|
1138 |
|
|
|
1139 |
|
|
3/29/95 (bug fix) Fixed bug where the auto-loading mechanism wasn't
|
1140 |
|
|
protecting the values of the errorCode and errorInfo variables.
|
1141 |
|
|
|
1142 |
|
|
3/29/95 (new feature) Added optional pattern argument to "parray" procedure.
|
1143 |
|
|
|
1144 |
|
|
3/29/95 (bug fix) Made the full functionality of
|
1145 |
|
|
"return -code ... -errorcode ..."
|
1146 |
|
|
work not just inside procedures, but also in sourced files and at
|
1147 |
|
|
top level.
|
1148 |
|
|
|
1149 |
|
|
4/6/95 (new feature) Added "pattern" option to "array names" command.
|
1150 |
|
|
|
1151 |
|
|
4/18/95 (bug fix) Fixed bug in parser where it didn't allow backslash-newline
|
1152 |
|
|
immediately after an argument in braces or quotes.
|
1153 |
|
|
|
1154 |
|
|
4/19/95 (new feature) Added tcl_library variable, which application can
|
1155 |
|
|
set to override default library directory.
|
1156 |
|
|
|
1157 |
|
|
4/30/95 (bug fix) During trace callbacks for array elements, the variable
|
1158 |
|
|
name used in the original reference would be temporarily modified to
|
1159 |
|
|
separate the array name and element name; if the trace callback used
|
1160 |
|
|
the same name string, it would get the wrong name (the array name without
|
1161 |
|
|
element). Fixed to restore the variable name before making trace
|
1162 |
|
|
callbacks.
|
1163 |
|
|
|
1164 |
|
|
4/30/95 (new feature) Added -nobackslashes, -nocommands, and -novariables
|
1165 |
|
|
switches to "subst" command.
|
1166 |
|
|
|
1167 |
|
|
5/4/95 (new feature) Added TCL_EVAL_GLOBAL flag to Tcl_RecordAndEval.
|
1168 |
|
|
|
1169 |
|
|
5/5/95 (bug fix) Format command would overrun memory when printing
|
1170 |
|
|
integers with very large precision, as in "format %.1000d 0".
|
1171 |
|
|
|
1172 |
|
|
5/5/95 (portability improvement) Changed to use BSDgettimeofday on
|
1173 |
|
|
IRIX machines, to avoid compilation problems with the gettimeofday
|
1174 |
|
|
declaration.
|
1175 |
|
|
|
1176 |
|
|
5/6/95 (bug fix) Changed manual entries to use the standard .TH
|
1177 |
|
|
macro instead of a custom .HS macro; the .HS macro confuses index
|
1178 |
|
|
generators like makewhatis.
|
1179 |
|
|
|
1180 |
|
|
5/9/95 (bug fix) Modified configure script to check for Solaris bug
|
1181 |
|
|
that makes vfork unreliable (core dumps result if vforked child
|
1182 |
|
|
changes a signal handler); will use fork instead of vfork if the
|
1183 |
|
|
bug is present.
|
1184 |
|
|
|
1185 |
|
|
6/5/95 (bug fix) Modified "lsort" command to disallow recursive calls
|
1186 |
|
|
to lsort from a comparison function. This is needed because qsort
|
1187 |
|
|
is not reentrant.
|
1188 |
|
|
|
1189 |
|
|
6/5/95 (bug fix) Undid change 243 above: changed TCL_VOLATILE and
|
1190 |
|
|
TCL_DYNAMIC back to integer constants rather than procedure addresses.
|
1191 |
|
|
This was needed because procedure addresses can have multiple values
|
1192 |
|
|
under some dynamic loading systems (e.g. SunOS 4.1 and Windows).
|
1193 |
|
|
|
1194 |
|
|
6/8/95 (feature change) Modified interface to Tcl_Main to pass in the
|
1195 |
|
|
address of the application-specific initialization procedure.
|
1196 |
|
|
Tcl_AppInit is no longer hardwired into Tcl_Main. This is needed
|
1197 |
|
|
in order to make Tcl a shared library.
|
1198 |
|
|
|
1199 |
|
|
6/8/95 (feature change) Modified Makefile so that the installed versions
|
1200 |
|
|
of tclsh and libtcl.a have version number in them (e.g. tclsh7.4 and
|
1201 |
|
|
libtcl7.4.a) and the library directory name also has an embedded version
|
1202 |
|
|
number (e.g., /usr/local/lib/tcl7.4). This should make it easier for
|
1203 |
|
|
Tcl 7.4 to coexist with earlier versions.
|
1204 |
|
|
|
1205 |
|
|
----------------- Released version 7.4b4, 6/16/95 ------------------
|
1206 |
|
|
|
1207 |
|
|
6/19/95 (bug fix) Fixed bugs in tclCkalloc.c that caused core dumps
|
1208 |
|
|
if TCL_MEM_DEBUG was enabled on word-addressed machines such as Crays.
|
1209 |
|
|
|
1210 |
|
|
6/21/95 (feature removal) Removed overflow checks for integer arithmetic:
|
1211 |
|
|
they just cause too much trouble (e.g. for random number generators).
|
1212 |
|
|
|
1213 |
|
|
6/28/95 (new features) Added tcl_patchLevel and tcl_version variables,
|
1214 |
|
|
for consistency with Tk.
|
1215 |
|
|
|
1216 |
|
|
6/29/95 (bug fix) Fixed problem in Tcl_Eval where it didn't record
|
1217 |
|
|
the right termination character if a script ended with a comment. This
|
1218 |
|
|
caused erroneous output for the following command, among others:
|
1219 |
|
|
puts "[
|
1220 |
|
|
expr 1+1
|
1221 |
|
|
# duh!
|
1222 |
|
|
]"
|
1223 |
|
|
|
1224 |
|
|
6/29/95 (message change) Changed the error message for ECHILD slightly
|
1225 |
|
|
to provide a hint about why the problem is occurring.
|
1226 |
|
|
|
1227 |
|
|
----------------- Released version 7.4, 7/1/95 ------------------
|
1228 |
|
|
|
1229 |
|
|
7/18/95 (bug fix) Changed "lreplace" so that nothing is deleted if
|
1230 |
|
|
the last index is less than the first index or if the last index
|
1231 |
|
|
is < 0.
|
1232 |
|
|
|
1233 |
|
|
7/18/95 (bug fix) Fixed bugs with backslashes in comments:
|
1234 |
|
|
Tcl_CommandComplete (and "info complete") didn't properly handle
|
1235 |
|
|
strings ending in backslash-newline, and neither Tcl_CommandComplete
|
1236 |
|
|
nor the Tcl parser handled other backslash sequences right, such
|
1237 |
|
|
as two backslashes before a newline.
|
1238 |
|
|
|
1239 |
|
|
7/19/95 (bug fix) Modified Tcl_DeleteCommand to delete the hash table
|
1240 |
|
|
entry for the command before invoking its callback. This is needed in
|
1241 |
|
|
order to deal with reentrancy.
|
1242 |
|
|
|
1243 |
|
|
7/22/95 (bug fix) "exec" wasn't reaping processes correctly after
|
1244 |
|
|
certain errors (e.g. if the name of the executable was bogus, as
|
1245 |
|
|
in "exec foobar").
|
1246 |
|
|
|
1247 |
|
|
7/27/95 (bug fix) Makefile.in wasn't using the LIBS variable provided
|
1248 |
|
|
by the "configure" script. This caused problems on some SCO systems.
|
1249 |
|
|
|
1250 |
|
|
7/27/95 (bug fix) The version of strtod in fixstrtod.c didn't properly
|
1251 |
|
|
handle the case where endPtr == NULL.
|
1252 |
|
|
|
1253 |
|
|
----------------- Released patch 7.4p1, 7/29/95 -----------------------
|
1254 |
|
|
|
1255 |
|
|
8/4/95 (bug fix) C-level trace callbacks for variables were sometimes
|
1256 |
|
|
receiving the PART1_NOT_PARSED flag, which could cause errors in
|
1257 |
|
|
subsequent Tcl library calls using the flags. (JO)
|
1258 |
|
|
|
1259 |
|
|
8/4/95 (bug fix) Calls to toupper and tolower weren't using the
|
1260 |
|
|
UCHAR macros, which caused trouble in non-U.S. locales. (JO)
|
1261 |
|
|
|
1262 |
|
|
8/10/95 (new feature) Added the "load" command for dynamic loading of
|
1263 |
|
|
binary packages, and the Tcl_PackageInitProc prototype for package
|
1264 |
|
|
initialization procedures. (JO)
|
1265 |
|
|
|
1266 |
|
|
8/23/95 (new features) Added "info sharedlibextension" and
|
1267 |
|
|
"info nameofexecutable" commands, plus Tcl_FindExtension procedure. (JO)
|
1268 |
|
|
|
1269 |
|
|
8/25/95 (bug fix) If the target of an "upvar" was non-existent but
|
1270 |
|
|
had traces set, the traces were silently lost. Change to generate
|
1271 |
|
|
an error instead. (JO)
|
1272 |
|
|
|
1273 |
|
|
8/25/95 (bug fix) Undid change from 7/19, so that commands can stay
|
1274 |
|
|
around while their deletion callbacks execute. Added lots of code to
|
1275 |
|
|
handle all of the reentrancy problems that this opens up. (JO)
|
1276 |
|
|
|
1277 |
|
|
8/25/95 (bug fix) Fixed core dump that could occur in TclDeleteVars
|
1278 |
|
|
if there was an upvar from one entry in the table to the next entry
|
1279 |
|
|
in the same table. (JO)
|
1280 |
|
|
|
1281 |
|
|
8/28/95 (bug fix) Exec wasn't handling bad user names properly, as
|
1282 |
|
|
in "exec ~bogus_user/foo". (JO)
|
1283 |
|
|
|
1284 |
|
|
8/29/95 (bug fixes) Changed backslash-newline handling to correct two
|
1285 |
|
|
problems:
|
1286 |
|
|
- Only spaces and tabs following the backslash-newline are now
|
1287 |
|
|
absorbed as part of the backslash-newline. Newlinew are no
|
1288 |
|
|
longer absorbed (add another backslash if you want to absorb
|
1289 |
|
|
another newline).
|
1290 |
|
|
- TclWordEnd returns the character just before the backslash in
|
1291 |
|
|
the sequence as the end of the sequence; it used to not consider
|
1292 |
|
|
the backslash-newline as a word separator. (JO)
|
1293 |
|
|
|
1294 |
|
|
8/31/95 (new feature) Changed man page installation (with "mkLinks"
|
1295 |
|
|
script) to create additional links for manual pages corresponding to
|
1296 |
|
|
each of the procedure and command names described in the pages. (JO)
|
1297 |
|
|
|
1298 |
|
|
9/10/95 Reorganized Tcl sources for Windows and Mac ports. All sources
|
1299 |
|
|
are now in subdirectories: "generic" contains sources that work on all
|
1300 |
|
|
platforms, "windows", "mac", and "unix" directories contain platform-
|
1301 |
|
|
specific sources. Some UNIX sources are also used on other platforms. (SS)
|
1302 |
|
|
|
1303 |
|
|
9/10/95 (feature change) Eliminated exported global variables (they
|
1304 |
|
|
don't work with Windows DLLs). Replaced tcl_AsyncReady and
|
1305 |
|
|
tcl_FileCloseProc with procedures Tcl_AsyncReady() and
|
1306 |
|
|
Tcl_SetFileCloseProc(). Replaced C variable tcl_RcFileName with
|
1307 |
|
|
a Tcl variable tcl_rcFileName. (SS)
|
1308 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
1309 |
|
|
|
1310 |
|
|
9/11/95 (new feature) Added procedure Tcl_SetPanicProc to override
|
1311 |
|
|
the default implementation of "panic". (SS)
|
1312 |
|
|
|
1313 |
|
|
9/11/95 (new feature) Added "interp" command to allow creation of
|
1314 |
|
|
new interpreters and execution of untrusted scripts. Added many new
|
1315 |
|
|
procedures, such as Tcl_CreateSlave, Tcl_CreateAlias,and Tcl_MakeSafe,
|
1316 |
|
|
to provide C-level access to the interpreter facility. This mechanism
|
1317 |
|
|
now provides almost all of the generic functions of Borenstein's and
|
1318 |
|
|
Rose's Safe-Tcl (but not any Tk or email-related stuff). (JL)
|
1319 |
|
|
|
1320 |
|
|
9/11/95 (feature change) Changed file management so that files are
|
1321 |
|
|
no longer shared between interpreters: a file cannot normally be
|
1322 |
|
|
referenced in one interpreter if it was opened in another. This
|
1323 |
|
|
feature is needed to support safe interpreters. Added Tcl_ShareHandle()
|
1324 |
|
|
procedure for allowing files to be shared, and added "interp" argument
|
1325 |
|
|
to Tcl_FilePermissions procedure. (JL)
|
1326 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
1327 |
|
|
|
1328 |
|
|
9/11/95 (new feature) Added "AssocData" mechanism, whereby extensions
|
1329 |
|
|
can associate their own data with an interpreter and get called back
|
1330 |
|
|
when the interpreter is deleted. This is visible at C level via the
|
1331 |
|
|
procedures Tcl_SetAssocData and Tcl_GetAssocData. (JL)
|
1332 |
|
|
|
1333 |
|
|
9/11/95 (new feature) Added Tcl_ErrnoMsg to translate an errno value
|
1334 |
|
|
into a human-readable string. This is now used instead of calling
|
1335 |
|
|
strerror because strerror mesages vary dramatically from platform
|
1336 |
|
|
to platform, which messes up Tcl tests. Tcl_ErrnoMsg uses the standard
|
1337 |
|
|
POSIX messages for all the common signals, and calls strerror for
|
1338 |
|
|
signals it doesn't understand.
|
1339 |
|
|
|
1340 |
|
|
----------------- Released patch 7.5p2, 9/15/95 -----------------------
|
1341 |
|
|
|
1342 |
|
|
----------------- Released 7.5a1, 9/15/95 -----------------------
|
1343 |
|
|
|
1344 |
|
|
9/22/95 (bug fix) Changed auto_mkindex to create tclIndex files that
|
1345 |
|
|
handle directories whose paths might contain spaces. (RJ)
|
1346 |
|
|
|
1347 |
|
|
9/27/95 (bug fix) The "format" command didn't check for huge or negative
|
1348 |
|
|
width specifiers, which could cause core dumps. (JO)
|
1349 |
|
|
|
1350 |
|
|
9/27/95 (bug fix) Core dumps could occur if an interactive command typed
|
1351 |
|
|
to tclsh returned a very long result for tclsh to print out. The bug is
|
1352 |
|
|
actually in printf (in Solaris 2.3 and 2.4, at least); switched to use
|
1353 |
|
|
puts instead. (JO)
|
1354 |
|
|
|
1355 |
|
|
9/28/95 (bug fix) Changed makefile.bc to eliminate a false dependency
|
1356 |
|
|
for tcl1675.dll on the Borland run time library. (SS)
|
1357 |
|
|
|
1358 |
|
|
9/28/95 (bug fix) Fixed tcl75.dll so it looks for tcl1675.dll instead
|
1359 |
|
|
of tcl16.dll. (SS)
|
1360 |
|
|
|
1361 |
|
|
9/28/95 (bug fix) Tcl was not correctly detecting the difference
|
1362 |
|
|
between Win32s and Windows '95. (SS)
|
1363 |
|
|
|
1364 |
|
|
9/28/95 (bug fix) "exec" was not passing environment changes to child
|
1365 |
|
|
processes under Windows. (SS)
|
1366 |
|
|
|
1367 |
|
|
9/28/95 (bug fix) Changed Tcl to ensure that open files are not passed
|
1368 |
|
|
to child processes under Windows. (SS)
|
1369 |
|
|
|
1370 |
|
|
9/28/95 (bug fix) Fixed Windows '95 and NT versions of exec so it can
|
1371 |
|
|
handle both console and windows apps. (SS)
|
1372 |
|
|
|
1373 |
|
|
9/28/95 (bug fix) Fixed Windows version of exec so it no longer leaves
|
1374 |
|
|
temp files lying around. Also changed it so the temp files are
|
1375 |
|
|
created in the appropriate system dependent temp directory. (SS)
|
1376 |
|
|
|
1377 |
|
|
9/28/95 (bug fix) Eliminated source dependency on the Win32s Universal
|
1378 |
|
|
Thunk header file, since it is not bundled with VC++. (SS)
|
1379 |
|
|
|
1380 |
|
|
9/28/95 (bug fix) Under Windows, Tcl now constructs the HOME
|
1381 |
|
|
environment variable from HOMEPATH and HOMEDRIVE when HOME is not
|
1382 |
|
|
already set. (SS)
|
1383 |
|
|
|
1384 |
|
|
9/28/95 (bug fix) Added support for "info nameofexecutable" and "info
|
1385 |
|
|
sharedlibextension" to the Windows version. (SS)
|
1386 |
|
|
|
1387 |
|
|
9/28/95 (bug fix) Changed tclsh to correctly parse command line
|
1388 |
|
|
arguments so that backslashes are preserved under Windows. (SS)
|
1389 |
|
|
|
1390 |
|
|
9/29/95 (bug fix) Tcl 7.5a1 treated either return or newline as end
|
1391 |
|
|
of line in "gets", which caused lines ending in CRLF to be treated as
|
1392 |
|
|
two separate lines. Changed to allow only character as end-of-line:
|
1393 |
|
|
carriage return on Macs, newline elsewhere. (JO)
|
1394 |
|
|
|
1395 |
|
|
9/29/95 (new feature) Changed to install "configInfo" file in same
|
1396 |
|
|
directory as library scripts. It didn't used to get installed. (JO)
|
1397 |
|
|
|
1398 |
|
|
9/29/95 (bug fix) Tcl was not converting Win32 errors into POSIX
|
1399 |
|
|
errors under some circumstances. (SS)
|
1400 |
|
|
|
1401 |
|
|
10/2/95 (bug fix) Safe interpreters no longer get initialized with
|
1402 |
|
|
a call to Tcl_Init(). (JL)
|
1403 |
|
|
|
1404 |
|
|
10/1/95 (new feature) Added "tcl_platform" global variable to provide
|
1405 |
|
|
environment information such as the instruction set and operating
|
1406 |
|
|
system. (JO)
|
1407 |
|
|
|
1408 |
|
|
10/1/95 (bug fix) "exec" command wasn't always generating the
|
1409 |
|
|
"child process exited abnormally" message when it should have. (JO)
|
1410 |
|
|
|
1411 |
|
|
10/2/95 (bug fix) Changed "mkLinks.tcl" so that the scripts it generates
|
1412 |
|
|
won't create links that overwrite original manual entries (there was
|
1413 |
|
|
a problem where pack-old.n was overwriting pack.n). (JO)
|
1414 |
|
|
|
1415 |
|
|
10/2/95 (feature change) Changed to use -ldl for dynamic loading under
|
1416 |
|
|
Linux if it is available, but fall back to -ldld if it isn't. (JO)
|
1417 |
|
|
|
1418 |
|
|
10/2/95 (bug fix) File sharing was causing refcounts to reach 0
|
1419 |
|
|
prematurely for stdin, stdout and stderr, under some circumstances. (JL)
|
1420 |
|
|
|
1421 |
|
|
10/2/95 (platform support) Added support for Visual C++ compiler on
|
1422 |
|
|
Windows, Windows '95 and Windows NT, code donated by Gordon Chaffee. (JL)
|
1423 |
|
|
|
1424 |
|
|
10/3/95 (bug fix) Tcl now frees any libraries that it loads before it
|
1425 |
|
|
exits. (SS)
|
1426 |
|
|
|
1427 |
|
|
10/03/95 (bug fix) Fixed bug in Macintosh ls command where the -l
|
1428 |
|
|
and -C options would fail in anything but the HOME directory. (RJ)
|
1429 |
|
|
|
1430 |
|
|
----------------- Released 7.5a2, 10/6/95 -----------------------
|
1431 |
|
|
|
1432 |
|
|
10/10/95 (bug fix) "file dirnam /." was returning ":" on UNIX instead
|
1433 |
|
|
of "/". (JO)
|
1434 |
|
|
|
1435 |
|
|
10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating
|
1436 |
|
|
the tcl.def file from Borland object files. (SS)
|
1437 |
|
|
|
1438 |
|
|
10/17/95 (new features) Moved the event loop from Tcl to Tk, made major
|
1439 |
|
|
revisions along the way:
|
1440 |
|
|
- New Tcl commands: after, update, vwait (replaces "tkwait variable").
|
1441 |
|
|
- "tkerror" is now replaced with "bgerror".
|
1442 |
|
|
- The following procedures are similar to their old Tk counterparts:
|
1443 |
|
|
Tcl_DoOneEvent, Tcl_Sleep, Tcl_DoWhenIdle, Tcl_CancelIdleCall,
|
1444 |
|
|
Tcl_CreateFileHandler, Tcl_DeleteFileHandler, Tcl_CreateTimerHandler,
|
1445 |
|
|
Tcl_DeleteTimerHandler, Tcl_BackgroundError.
|
1446 |
|
|
- Revised notifier, add new concept of "event source" with the following
|
1447 |
|
|
procedures: Tcl_CreateEventSource, Tcl_DeleteEventSource,
|
1448 |
|
|
Tcl_WatchFile, Tcl_SetMaxBlockTime, Tcl_FileReady, Tcl_QueueEvent,
|
1449 |
|
|
Tcl_WaitForEvent. (JO)
|
1450 |
|
|
|
1451 |
|
|
10/31/95 (new features) Implemented cross platform file name support to make
|
1452 |
|
|
it easier to write cross platform scripts. Tcl now understands 4 file naming
|
1453 |
|
|
conventions: Windows (both DOS and UNC), Mac, Unix, and Network. The network
|
1454 |
|
|
convention is a new naming mechanism that can be used to paths in a platform
|
1455 |
|
|
independent fashion. See the "file" command manual page for more details.
|
1456 |
|
|
The primary interfaces changes are:
|
1457 |
|
|
- All Tcl commands that expect a file name now accept both network and
|
1458 |
|
|
native form.
|
1459 |
|
|
- Two new "file" subcommands, "nativename" and "networkname", provide a
|
1460 |
|
|
way to convert between network and native form.
|
1461 |
|
|
- Renamed Tcl_TildeSubst to Tcl_TranslateFileName, and changed it so that
|
1462 |
|
|
it always returns a filename in native form. Tcl_TildeSubst is defined
|
1463 |
|
|
as a macro for backward compatibility, but it is deprecated. (SS)
|
1464 |
|
|
|
1465 |
|
|
11/5/95 (new feature) Made "tkerror" and "bgerror" synonyms, so that
|
1466 |
|
|
either name can be used to manipulate the command (provides temporary
|
1467 |
|
|
backward compatibility for existing scripts that use tkerror). (JO)
|
1468 |
|
|
|
1469 |
|
|
11/5/95 (new feature) Added exit handlers and new C procedures
|
1470 |
|
|
Tcl_CreateExitHandler, Tcl_DeleteExitHandler, and Tcl_Exit. (JO)
|
1471 |
|
|
|
1472 |
|
|
11/6/95 (new feature) Added pid command for Macintosh version of
|
1473 |
|
|
Tcl (it didn't previously exist on the Mac). (RJ)
|
1474 |
|
|
|
1475 |
|
|
11/7/95 (new feature) New generic IO facility and support for IO to
|
1476 |
|
|
files, pipes and sockets based on a common buffering scheme. Support
|
1477 |
|
|
for asynchronous (non-blocking) IO and for event driver IO. Support
|
1478 |
|
|
for automatic (background) asynchronous flushing and asynchronous
|
1479 |
|
|
closing of channels. (JL)
|
1480 |
|
|
|
1481 |
|
|
11/7/95 (new feature) Added new commands "fconfigure" and "fblocked"
|
1482 |
|
|
to support new I/O features such as nonblocking I/O. Added "socket"
|
1483 |
|
|
command for creating TCP client and server sockets. (JL).
|
1484 |
|
|
|
1485 |
|
|
11/7/95 (new feature) Complete set of C APIs to the new generic IO
|
1486 |
|
|
facility:
|
1487 |
|
|
- Opening channels: Tcl_OpenFileChannel, Tcl_OpenCommandChannel,
|
1488 |
|
|
Tcl_OpenTcpClient, Tcl_OpenTcpServer.
|
1489 |
|
|
- I/O procedures on channels, which roughly mirror the ANSI C stdio
|
1490 |
|
|
library: Tcl_Read, Tcl_Gets, Tcl_Write, Tcl_Flush, Tcl_Seek,
|
1491 |
|
|
Tcl_Tell, Tcl_Close, Tcl_Eof, Tcl_InputBlocked, Tcl_GetChannelOption,
|
1492 |
|
|
Tcl_SetChannelOption.
|
1493 |
|
|
- Extension mechanism for creating new kinds of channels:
|
1494 |
|
|
Tcl_CreateChannel, Tcl_GetChannelInstanceData, Tcl_GetChannelType,
|
1495 |
|
|
Tcl_GetChannelName, Tcl_GetChannelFile, Tcl_RegisterChannel,
|
1496 |
|
|
Tcl_UnregisterChannel, Tcl_GetChannel.
|
1497 |
|
|
- Event-driven I/O on channels: Tcl_CreateChannelHandler,
|
1498 |
|
|
Tcl_DeleteChannelHandler. (JL)
|
1499 |
|
|
|
1500 |
|
|
11/7/95 (new feature) Channel driver interface specification to allow
|
1501 |
|
|
new types of channels to be added easily to Tcl. Currently being used
|
1502 |
|
|
in three drivers - for files, pipes and TCP-based sockets. (JL).
|
1503 |
|
|
|
1504 |
|
|
11/7/95 (new feature) interp delete now takes any number of path
|
1505 |
|
|
names of interpreters to delete, including zero. (JL).
|
1506 |
|
|
|
1507 |
|
|
11/8/95 (new feature) implemented 'info hostname' and Tcl_GetHostName
|
1508 |
|
|
command to get host name of machine on which the Tcl process is running. (JL)
|
1509 |
|
|
|
1510 |
|
|
11/9/95 (new feature) Implemented file APIs for access to low level files
|
1511 |
|
|
on each system. The APIs are: Tcl_CloseFile, Tcl_OpenFile, Tcl_ReadFile,
|
1512 |
|
|
Tcl_WriteFile and Tcl_SeekFile. Also implemented Tcl_WaitPid which waits
|
1513 |
|
|
in a system dependent manner for a child process. (JL)
|
1514 |
|
|
|
1515 |
|
|
11/9/95 (new feature) Added Tcl_UpdateLinkedVar procedure to force a
|
1516 |
|
|
Tcl variable to be updated after its C variable changes. (JO)
|
1517 |
|
|
|
1518 |
|
|
11/9/95 (bug fix) The glob command has been totally reimplemented so
|
1519 |
|
|
that it can support different file name conventions. It now handles
|
1520 |
|
|
Windows file names (both UNC and drive-relative) properly. It also
|
1521 |
|
|
supports nested braces correctly now. (SS)
|
1522 |
|
|
|
1523 |
|
|
11/13/95 (bug fix) Fixed Makefile.in so that configure can be run
|
1524 |
|
|
from a clean directory separate from the Tcl source tree, and compilations
|
1525 |
|
|
can be performed there. (JO)
|
1526 |
|
|
|
1527 |
|
|
11/14/95 (bug fix) Fixed file sharing between interpreters and file
|
1528 |
|
|
transferring between interpreters to correctly manage the refcount so that
|
1529 |
|
|
files are closed when the last reference to them is discarded. (JL)
|
1530 |
|
|
|
1531 |
|
|
11/14/95 (bug fix) Fixed gettimeofday implementation for the
|
1532 |
|
|
Macintosh. This fixes several timing related bugs. (RJ)
|
1533 |
|
|
|
1534 |
|
|
11/17/95 (new feature) Added missing support for info nameofexecutable
|
1535 |
|
|
on the Macintosh. (RJ)
|
1536 |
|
|
|
1537 |
|
|
11/17/95 (bug fix) The Tcl variables argc argv and argv0 now return
|
1538 |
|
|
something reasonable on the Mac. (RJ)
|
1539 |
|
|
|
1540 |
|
|
11/22/95 (new feature) Implemented "auto-detect" mode for end of line
|
1541 |
|
|
translations. On input, standalone "\r" mean MAC mode, standalone "\n"
|
1542 |
|
|
mean Unix mode and "\r\n" means Windows mode. On output, the mode is
|
1543 |
|
|
modified to whatever the platform specific mode for that platform is. (JL)
|
1544 |
|
|
|
1545 |
|
|
11/24/95 (feature change) Replaced "configInfo" file with tclConfig.sh,
|
1546 |
|
|
which is more complete and uses slightly different names. Also
|
1547 |
|
|
arranged for tclConfig.sh to be installed in the platform-specific
|
1548 |
|
|
library directory instead of Tcl's script library directory. (JO)
|
1549 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 7.5a2, but not with Tcl 7.4 ***
|
1550 |
|
|
|
1551 |
|
|
----------------- Released patch 7.4p3, 11/28/95 -----------------------
|
1552 |
|
|
|
1553 |
|
|
12/5/95 (new feature) Added Tcl_File facility to support platform-
|
1554 |
|
|
independent file handles. Changed all interfaces that used Unix-
|
1555 |
|
|
style integer fd's to use Tcl_File's instead. (SS)
|
1556 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
1557 |
|
|
|
1558 |
|
|
12/5/95 (new feature) Added a new "clock" command to Tcl. The command
|
1559 |
|
|
allows you to get the current "clicks" or seconds & allows you to
|
1560 |
|
|
format or scan human readable time/date strings. (RJ)
|
1561 |
|
|
|
1562 |
|
|
12/18/95 (new feature) Moved Tk_Preserve, Tk_Release, and Tk_EventuallyFree
|
1563 |
|
|
to Tcl, renamed to Tcl_Preserve, Tcl_Release, and Tcl_EventuallyFree. (JO)
|
1564 |
|
|
|
1565 |
|
|
12/18/95 (new feature) Added new "package" command and associated
|
1566 |
|
|
procedures Tcl_PkgRequire and Tcl_PkgProvide. Also wrote
|
1567 |
|
|
pkg_mkIndex library procedure to create index files from binaries
|
1568 |
|
|
and scripts. (JO)
|
1569 |
|
|
|
1570 |
|
|
12/20/95 (new feature) Added Tcl_WaitForFile procedure. (JO)
|
1571 |
|
|
|
1572 |
|
|
12/21/95 (new features) Made package name argument to "load" optional
|
1573 |
|
|
(Tcl will now attempt to guess the package name if necessary). Also
|
1574 |
|
|
added Tcl_StaticPackage and support in "load" for statically linked
|
1575 |
|
|
packages. (JO)
|
1576 |
|
|
|
1577 |
|
|
12/22/95 (new feature) Upgraded the foreach command to accept multiple
|
1578 |
|
|
loop variables and multiple value lists. This lets you iterate over
|
1579 |
|
|
multiple lists in parallel, and/or assign multiple loop variables from
|
1580 |
|
|
one value list during each iteration. The only potential compatibility
|
1581 |
|
|
problem is with scripts that used loop variables with a name that could be
|
1582 |
|
|
construed to be a list of variable names (i.e. contained spaces). (BW)
|
1583 |
|
|
|
1584 |
|
|
1/5/96 (new feature) Changed tclsh so it builds as a console mode
|
1585 |
|
|
application under Windows. Now tclsh can be used from the command
|
1586 |
|
|
line with pipes or interactively. Note that this only works under
|
1587 |
|
|
Windows 95 or NT. (SS)
|
1588 |
|
|
|
1589 |
|
|
1/17/96 (new feature) Modified Makefile and configure script to allow
|
1590 |
|
|
Tcl to be compiled as a shared library: use the --enable-shared option
|
1591 |
|
|
when configuing. (JO)
|
1592 |
|
|
|
1593 |
|
|
1/17/96 (removed obsolete features) Removed the procedures Tcl_EnterFile
|
1594 |
|
|
and Tcl_GetOpenFile: these no longer make sense with the new I/O system. (JL)
|
1595 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
1596 |
|
|
|
1597 |
|
|
1/19/96 (bug fixes) Prevented formation of circular aliases, through the
|
1598 |
|
|
Tcl 'interp alias' command and through the 'rename' command, as well as
|
1599 |
|
|
through the C API Tcl_CreateAlias. (JL)
|
1600 |
|
|
|
1601 |
|
|
1/19/96 (bug fixes) Fixed several bugs in direct deletion of interpreters
|
1602 |
|
|
with Tcl_DeleteInterp when the interpreter is a slave; fixes based on a
|
1603 |
|
|
patch received from Viktor Dukhovni of ESM. (JL)
|
1604 |
|
|
|
1605 |
|
|
1/19/96 (new feature) Implemented on-close handlers for channels; added
|
1606 |
|
|
the C APIs Tcl_CreateCloseHandler and Tcl_DeleteCloseHandler. (JL)
|
1607 |
|
|
|
1608 |
|
|
1/19/96 (new feature) Implemented portable error reporting mechanism; added
|
1609 |
|
|
the C APIs Tcl_SetErrno and Tcl_GetErrno. (JL)
|
1610 |
|
|
|
1611 |
|
|
1/24/96 (bug fix) Unknown command processing properly invokes external
|
1612 |
|
|
commands under Windows NT and Windows '95 now. (SS)
|
1613 |
|
|
|
1614 |
|
|
1/23/96 (bug fix) Eliminated extremely long startup times under Windows '95.
|
1615 |
|
|
The problem was a result of the option database initialization code that
|
1616 |
|
|
concatenated $HOME with /.Xdefaults, resulting in a // in the middle of the
|
1617 |
|
|
file name. Under Windows '95, this is incorrectly interpreted as a UNC
|
1618 |
|
|
path. They delays came from the network timeouts needed to determine that
|
1619 |
|
|
the file name was invalid. Tcl_TranslateFileName now suppresses duplicate
|
1620 |
|
|
slashes that aren't at the beginning of the file name. (SS)
|
1621 |
|
|
|
1622 |
|
|
1/25/96 (bug fix) Changed exec and open to create children so they are
|
1623 |
|
|
attached to the application's console if it exists. (SS)
|
1624 |
|
|
|
1625 |
|
|
1/31/96 (bug fix) Fixed command line parsing to handle embedded
|
1626 |
|
|
spaces under Windows. (SS)
|
1627 |
|
|
|
1628 |
|
|
----------------- Released 7.5b1, 2/1/96 -----------------------
|
1629 |
|
|
|
1630 |
|
|
2/7/96 (bug fix) Fixed off by one error in argument parsing code under
|
1631 |
|
|
Windows. (SS)
|
1632 |
|
|
|
1633 |
|
|
2/7/96 (bug fix) Fixed bugs in VC++ makefile that improperly
|
1634 |
|
|
initialized the tcl75.dll. Fixed bugs in Borland makefile that caused
|
1635 |
|
|
build failures under Windows NT. (SS)
|
1636 |
|
|
|
1637 |
|
|
2/9/96 (bug fix) Fixed deadlock problem in AUTO end of line translation
|
1638 |
|
|
mode which would cause a socket server with several concurrent clients
|
1639 |
|
|
writing in CRLF mode to hang. (JL)
|
1640 |
|
|
|
1641 |
|
|
2/9/96 (API change) Replaced -linemode option to fconfigure with a
|
1642 |
|
|
new -buffering option, added "none" setting to enable immediate write. (JL)
|
1643 |
|
|
*** INCOMPATIBILITY with b1 ***
|
1644 |
|
|
|
1645 |
|
|
2/9/96 (new feature) Added C API Tcl_InputBuffered which returns the count
|
1646 |
|
|
of bytes currently buffered in the input buffer of a channel, and o for
|
1647 |
|
|
output only channels. (JL)
|
1648 |
|
|
|
1649 |
|
|
2/9/96 (new feature) Implemented asynchronous connect for sockets. (JL)
|
1650 |
|
|
|
1651 |
|
|
2/9/96 (new feature) Added C API Tcl_SetDefaultTranslation to set (per
|
1652 |
|
|
channel) the default end of line translation mode. This is the mode that
|
1653 |
|
|
will be installed if an output operation is done on the channel while it is
|
1654 |
|
|
still in AUTO mode. (JL)
|
1655 |
|
|
|
1656 |
|
|
2/9/96 (bug fix) Changed Tcl_OpenCommandChannel interface to properly
|
1657 |
|
|
handle all of the combinations of stdio inheritance in background
|
1658 |
|
|
pipelines. See the Tcl_OpenFileChannel(3) man page for more
|
1659 |
|
|
info. This change fixes the bug where exec of a background pipeline
|
1660 |
|
|
was not getting passed the stdio handles properly. (SS)
|
1661 |
|
|
|
1662 |
|
|
2/9/96 (bug fix) Removed the new Tcl_CreatePipeline interface, and
|
1663 |
|
|
restored the old version for Unix platforms only. All new code should
|
1664 |
|
|
use Tcl_CreateCommandChannel instead. (SS)
|
1665 |
|
|
|
1666 |
|
|
2/9/96 (bug fix) Changed Makefile.in to use -L and -ltcl7.5 for Tcl
|
1667 |
|
|
library so that shared libraries are more likely to be found correctly
|
1668 |
|
|
on more platforms. (JO)
|
1669 |
|
|
|
1670 |
|
|
2/13/96 (new feature) Added C API Tcl_SetNotifierData and
|
1671 |
|
|
Tcl_GetNotifierData to allow notifier and channel driver writers to
|
1672 |
|
|
associate data with a Tcl_File. The result of this change is that
|
1673 |
|
|
Tcl_GetFileInfo now always returns an OS file handle, and Tcl_GetFile
|
1674 |
|
|
can be used to construct a Tcl_File for an externally constructed OS
|
1675 |
|
|
handle. (SS)
|
1676 |
|
|
|
1677 |
|
|
2/13/96 (bug fix) Changed Windows socket implementation so it doesn't
|
1678 |
|
|
set SO_REUSEADDR on server sockets. Now attempts to create a server
|
1679 |
|
|
socket on a port that is already in use will be properly identified
|
1680 |
|
|
and an error will be generated. (SS)
|
1681 |
|
|
|
1682 |
|
|
2/13/96 (bug fix) Fixed problems with DLL initialization under Visual
|
1683 |
|
|
C++ that left the C run time library uninitialized. (SS)
|
1684 |
|
|
|
1685 |
|
|
2/13/96 (bug fix) Fixed Windows socket initialization so it loads
|
1686 |
|
|
winsock the first time it is used, rather than at the time tcl75.dll
|
1687 |
|
|
is loaded. This should fix the bug where the modem immediately starts
|
1688 |
|
|
trying to connect to a service provider when wish or tclsh are
|
1689 |
|
|
started. (SS)
|
1690 |
|
|
|
1691 |
|
|
2/13/96 (new feature) Added C APIs Tcl_MakeFileChannel and
|
1692 |
|
|
Tcl_MakeTcpClientChannel to wrap up existing fds and sockets into
|
1693 |
|
|
channels. Provided implementations on Unix and Windows. (JL)
|
1694 |
|
|
|
1695 |
|
|
2/13/96 (bug fix) Fixed bug with seek leaving EOF and BLOCKING set. (JL)
|
1696 |
|
|
|
1697 |
|
|
2/14/96 (bug fix) Fixed reentrancy problem in fileevent handling
|
1698 |
|
|
and made it more robust in the face of errors. (JL)
|
1699 |
|
|
|
1700 |
|
|
2/14/96 (feature change) Made generic IO level emulate blocking mode if the
|
1701 |
|
|
channel driver is unable to provide it, e.g. if the low level device is
|
1702 |
|
|
always nonblocking. Thus, now blocking behavior is an advisory setting for
|
1703 |
|
|
channel drivers and can be ignored safely if the channel driver is unable
|
1704 |
|
|
to provide it. (JL)
|
1705 |
|
|
|
1706 |
|
|
2/15/96 (new feature) Added "binary" end of line translation mode, which is
|
1707 |
|
|
a synonym of "lf" mode. (JL)
|
1708 |
|
|
|
1709 |
|
|
2/15/96 (bug fix) Fixed reentrancy problem in fileevent handling vs
|
1710 |
|
|
deletion of channel event handlers. (JL)
|
1711 |
|
|
|
1712 |
|
|
2/15/96 (bug fix) Fixed bug in event handling which would cause a
|
1713 |
|
|
nonblocking channel to not see further readable events after the first
|
1714 |
|
|
readable event that had insufficient input. (JL)
|
1715 |
|
|
|
1716 |
|
|
2/17/96 (bug fix) "info complete" didn't properly handle comments
|
1717 |
|
|
in nested commands. (JO)
|
1718 |
|
|
|
1719 |
|
|
2/21/96 (bug fix) "exec" under Windows NT/95 did not properly handle
|
1720 |
|
|
very long command lines (>200 chars). (SS)
|
1721 |
|
|
|
1722 |
|
|
2/21/96 (bug fix) Sockets could get into an infinite loop if a read
|
1723 |
|
|
event arrived after all of the available data had been read. (SS)
|
1724 |
|
|
|
1725 |
|
|
2/22/96 (bug fix) Added cast of st_size elements to (long) before
|
1726 |
|
|
sprintf-ing in "file size" command. This is needed to handle systems
|
1727 |
|
|
like NetBSD with 64-bit file offsets. (JO)
|
1728 |
|
|
|
1729 |
|
|
----------------- Released 7.5b2, 2/23/96 -----------------------
|
1730 |
|
|
|
1731 |
|
|
2/23/96 (bug fix) TCL_VARARGS macro in tcl.h wasn't defined properly
|
1732 |
|
|
when compiling with C++. (JO)
|
1733 |
|
|
|
1734 |
|
|
2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile:
|
1735 |
|
|
this caused problems on some platforms (like Linux?). (JO)
|
1736 |
|
|
|
1737 |
|
|
2/24/96 (bug fix) Fixed configuration bug that made Tcl not compile
|
1738 |
|
|
correctly on Linux machines with neither -ldl or -ldld. (JO)
|
1739 |
|
|
|
1740 |
|
|
2/24/96 (new feature) Added a block of comments and definitions to
|
1741 |
|
|
Makefile.in to make it easier to have Tcl's TclSetEnv etc. replace
|
1742 |
|
|
the library procedures setenv etc, so that calls to setenv etc. in
|
1743 |
|
|
the application automatically update the Tcl "env" variable. (JO)
|
1744 |
|
|
|
1745 |
|
|
2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL)
|
1746 |
|
|
to C API Tcl_Close and simplified closing of command channels. (JL)
|
1747 |
|
|
*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
|
1748 |
|
|
|
1749 |
|
|
2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL)
|
1750 |
|
|
to C type definition Tcl_DriverCloseProc; modified all channel drivers to
|
1751 |
|
|
implement close procedures that accept the additional argument. (JL)
|
1752 |
|
|
*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
|
1753 |
|
|
|
1754 |
|
|
2/28/96 (bug fix) Fixed memory leak that could occur if an upvar
|
1755 |
|
|
referred to an element of an array in the same stack frame as the
|
1756 |
|
|
upvar. (JO)
|
1757 |
|
|
|
1758 |
|
|
2/29/96 (feature change) Modified both Tcl_DoOneEvent and Tcl_WaitForEvent
|
1759 |
|
|
so that they return immediately in cases where they would otherwise
|
1760 |
|
|
block forever (e.g. if there are no event handlers of any sort). (JO)
|
1761 |
|
|
|
1762 |
|
|
2/29/96 (new feature) Added C APIs Tcl_GetChannelBufferSize and
|
1763 |
|
|
Tcl_SetChannelBufferSize to set and retrieve the size, in bytes, for
|
1764 |
|
|
buffers allocated to store input or output in a channel. (JL)
|
1765 |
|
|
|
1766 |
|
|
2/29/96 (new feature) Added option -buffersize to Tcl fconfigure command
|
1767 |
|
|
to allow Tcl scripts to query and set the size of channel buffers. (JL)
|
1768 |
|
|
|
1769 |
|
|
2/29/96 (feature removed) Removed channel driver function to specify
|
1770 |
|
|
the buffer size to use when allocating a buffer. Removed the C typedef
|
1771 |
|
|
for Tcl_DriverBufferSizeProc. Channels are now created with a default
|
1772 |
|
|
buffer size of 4K. (JL)
|
1773 |
|
|
*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
|
1774 |
|
|
|
1775 |
|
|
2/29/96 (feature change) The channel driver function for setting blocking
|
1776 |
|
|
mode on the device may now be NULL. If the generic code detects that the
|
1777 |
|
|
function is NULL, operations that set the blocking mode on the channel
|
1778 |
|
|
simply succeed. (JL)
|
1779 |
|
|
|
1780 |
|
|
3/2/96 (bug fix) Fixed core dump that could occur if a syntax error
|
1781 |
|
|
(such as missing close paren) occurred in an array reference with a
|
1782 |
|
|
very long array name. (JO)
|
1783 |
|
|
|
1784 |
|
|
3/4/96 (bug fix) Removed code in the "auto_load" procedure that deletes
|
1785 |
|
|
all existing auto-load information whenever the "auto_path" variable
|
1786 |
|
|
is changed. Instead, new information adds to what was already there.
|
1787 |
|
|
Otherwise, changing the "auto_path" variable causes all package-
|
1788 |
|
|
related information to be lost. If you really want to get rid of
|
1789 |
|
|
existing auto-load information, use auto_reset before setting auto_path. (JO)
|
1790 |
|
|
|
1791 |
|
|
3/5/96 (new feature) Added version suffix to shared library names so that
|
1792 |
|
|
Tcl will compile under NetBSD and FreeBSD (I hope). (JO)
|
1793 |
|
|
|
1794 |
|
|
3/6/96 (bug fix) Cleaned up error messages in new I/O system to correspond
|
1795 |
|
|
more closely to old I/O system. (JO)
|
1796 |
|
|
|
1797 |
|
|
3/6/96 (new feature) Added -myaddr and -myport options to the socket
|
1798 |
|
|
command, removed -tcp and -- options. This lets clients and servers
|
1799 |
|
|
choose a particular interface. Also changed the default server address
|
1800 |
|
|
from the hostname to INADDR_ANY. The server accept callback now gets
|
1801 |
|
|
passed the client's port as well as IP address. The C interfaces for
|
1802 |
|
|
Tcl_OpenTcpClient and Tcl_OpenTcpServer have changed to support the
|
1803 |
|
|
above changes. (BW)
|
1804 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
|
1805 |
|
|
|
1806 |
|
|
3/6/96 (changed feature) The library function auto_mkindex will now
|
1807 |
|
|
default to using the pattern "*.tcl" if no pattern is given. (RJ)
|
1808 |
|
|
|
1809 |
|
|
3/6/96 (bug fix) The socket channel code for the Macintosh has been
|
1810 |
|
|
rewritten to use native MacTcp. (RJ)
|
1811 |
|
|
|
1812 |
|
|
3/7/96 (new feature) Added Tcl_SetStdChannel and Tcl_GetStdChannel
|
1813 |
|
|
interfaces to allow applications to explicitly set and get the global
|
1814 |
|
|
standard channels. (SS)
|
1815 |
|
|
|
1816 |
|
|
3/7/96 (bug fix) Tcl did close not the file descriptors associated
|
1817 |
|
|
with "stdout", etc. when the corresponding channels were closed. (SS)
|
1818 |
|
|
|
1819 |
|
|
3/7/96 (bug fix) Reworked shared library and dynamic loading stuff to
|
1820 |
|
|
try to get it working under AIX. Added new @SHLIB_LD_LIBS@ autoconf
|
1821 |
|
|
symbol as part of this. AIX probably doesn't work yet, but it should
|
1822 |
|
|
be a lot closer. (JO)
|
1823 |
|
|
|
1824 |
|
|
3/7/96 (feature change) Added Tcl_ChannelProc typedef and changed the
|
1825 |
|
|
signature of Tcl_CreateChannelHandler and Tcl_DeleteChannelHandler to take
|
1826 |
|
|
Tcl_ChannelProc arguments instead of Tcl_FileProc arguments. This change
|
1827 |
|
|
should not affect any code outside Tcl because the signatures of
|
1828 |
|
|
Tcl_ChannelProc and Tcl_FileProc are compatible. (JL)
|
1829 |
|
|
|
1830 |
|
|
3/7/96 (API change) Modified signature of Tcl_GetChannelOption to return
|
1831 |
|
|
an int instead of char *, and to take a Tcl_DString * argument. Modified
|
1832 |
|
|
the implementation so that the option name can be NULL, to mean that the
|
1833 |
|
|
call should retrieve a list of alternating option names and values. (JL)
|
1834 |
|
|
*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
|
1835 |
|
|
|
1836 |
|
|
3/7/96 (API change) Added Tcl_DriverSetOptionProc, Tcl_DriverGetOptionProc
|
1837 |
|
|
typedefs, added two slots setOptionProc and getOptionProc to the channel
|
1838 |
|
|
type structure. These may be NULL to indicate that the channel type does
|
1839 |
|
|
not support any options. (JL)
|
1840 |
|
|
*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
|
1841 |
|
|
|
1842 |
|
|
3/7/96 (feature change) stdin, stdout and stderr can now be put into
|
1843 |
|
|
nonblocking mode. (JL)
|
1844 |
|
|
|
1845 |
|
|
3/8/96 (feature change) Eliminated dependence on the registry for
|
1846 |
|
|
finding the Tcl library files. (SS)
|
1847 |
|
|
|
1848 |
|
|
----------------- Released 7.5b3, 3/8/96 -----------------------
|
1849 |
|
|
|
1850 |
|
|
3/12/96 (feature improvement) Modified startup script to look in several
|
1851 |
|
|
different places for the Tcl library directory. This should allow Tcl
|
1852 |
|
|
to find the libraries under all but the weirdest conditions, even without
|
1853 |
|
|
the TCL_LIBRARY environment variable being set. (JO)
|
1854 |
|
|
|
1855 |
|
|
3/13/96 (bug fix) Eliminated use of the "linger" option from the Windows
|
1856 |
|
|
socket implementation. (JL)
|
1857 |
|
|
|
1858 |
|
|
3/13/96 (new feature) Added -peername and -sockname options for fconfigure
|
1859 |
|
|
for socket channels. Code contributed by John Haxby of HP. (JL)
|
1860 |
|
|
|
1861 |
|
|
3/13/96 (bug fix) Fixed panic and core dump that would occur if the accept
|
1862 |
|
|
callback script on a server socket encountered an error. (JL)
|
1863 |
|
|
|
1864 |
|
|
3/13/96 (feature change) Added -async option to the Tcl socket command.
|
1865 |
|
|
If the command is creating a client socket and the flag is present, the
|
1866 |
|
|
client is connected asynchronously. If the option is absent (the default),
|
1867 |
|
|
the client socket is connected synchronously, and the command returns only
|
1868 |
|
|
when the connection has been completed or failed. This change was suggested
|
1869 |
|
|
by Mark Diekhans. (JL)
|
1870 |
|
|
|
1871 |
|
|
3/13/96 (feature change) Modified the signature of Tcl_OpenTcpClient to
|
1872 |
|
|
take an additional int argument, async. If nonzero, the client is connected
|
1873 |
|
|
to the server asynchronously. If the value is zero, the connection is made
|
1874 |
|
|
synchronously, and the call to Tcl_OpenTcpClient returns only when the
|
1875 |
|
|
connection fails or succeeds. This change was suggested by Mark Diekhans. (JL)
|
1876 |
|
|
*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
|
1877 |
|
|
|
1878 |
|
|
3/14/96 (bug fix) "tclsh bogus_file_name" didn't print an error message. (JO)
|
1879 |
|
|
|
1880 |
|
|
3/14/96 (bug fix) Added new procedures to tclCkalloc.c so that libraries
|
1881 |
|
|
and applications can be compiled with TCL_MEM_DEBUG even if Tcl isn't
|
1882 |
|
|
(however, the converse is still not true). Patches provided by Jan
|
1883 |
|
|
Nijtmans. (JO)
|
1884 |
|
|
|
1885 |
|
|
3/15/96 (bug fix) Marked standard IO handles of a process as close-on-exec
|
1886 |
|
|
to fix bug in Ultrix where exec was not sharing standard IO handles with
|
1887 |
|
|
subprocesses. Fix suggested by Mark Diekhans. (JL)
|
1888 |
|
|
|
1889 |
|
|
3/15/96 (bug fix) Fixed asynchronous close mechanism so that it closes the
|
1890 |
|
|
channel instead of leaking system resources. The manifestation was that Tcl
|
1891 |
|
|
would eventually run out of file descriptors if it was handling a large
|
1892 |
|
|
number of nonblocking sockets or pipes with high congestion. (JL)
|
1893 |
|
|
|
1894 |
|
|
3/15/96 (bug fix) Fixed tests so that they no longer leak file descriptors.
|
1895 |
|
|
The manifestation was that Tcl would eventually run out of file descriptors
|
1896 |
|
|
if the tests were rerun many times (> a hundred times on Solaris). (JL)
|
1897 |
|
|
|
1898 |
|
|
3/15/96 (bug fix) Fixed channel creation code so that it never creates
|
1899 |
|
|
unnamed channels. This would cause a panic and core dump when the channel
|
1900 |
|
|
was closed. (JL)
|
1901 |
|
|
|
1902 |
|
|
3/16/96 (bug fixes) Made lots of changes in configuration stuff to get
|
1903 |
|
|
Tcl working under AIX (finally). Tcl should now support the "load"
|
1904 |
|
|
command under AIX and should work either with or without shared
|
1905 |
|
|
libraries for Tcl and Tk. (JO)
|
1906 |
|
|
|
1907 |
|
|
3/21/96 (configuration improvement) Changed configure script so it
|
1908 |
|
|
doesn't use version numbers (as in -ltcl7.5 and libtcl7.5.so) under
|
1909 |
|
|
SunOS 4.1, where they don't work anyway. (JO)
|
1910 |
|
|
|
1911 |
|
|
3/22/96 (new feature) Added C API Tcl_InterpDeleted that allows extension
|
1912 |
|
|
writers to discover when an interpreter is being deleted. (JL)
|
1913 |
|
|
|
1914 |
|
|
3/22/96 (bug fix) The standard IO channels are now added to each
|
1915 |
|
|
trusted interpreter as soon as the interpreter is created. This ensures
|
1916 |
|
|
against the bug where a child would do IO before the master had done any,
|
1917 |
|
|
and then the child is destroyed - the standard IO channels would be then
|
1918 |
|
|
closed and the master would be unable to do any IO. (JL)
|
1919 |
|
|
|
1920 |
|
|
3/22/96 (bug fix) Made Tcl more robust against interpreter deletion, by
|
1921 |
|
|
using Tcl_Preserve, Tcl_Release and Tcl_EventuallyFree to split the process
|
1922 |
|
|
of interpreter deletion into two distinct phases. Also went through all of
|
1923 |
|
|
Tcl and added calls to Tcl_Preserve and Tcl_Delete where needed. (JL)
|
1924 |
|
|
|
1925 |
|
|
3/22/96 (bug fix) Fixed several places where C code was reading and writing
|
1926 |
|
|
into freed memory, especially during interpreter deletion. (JL)
|
1927 |
|
|
|
1928 |
|
|
3/22/96 (bug fix) Fixed very deep bug in Tcl_Release that caused memory to
|
1929 |
|
|
be freed twice if the release callback did Tcl_Preserve and Tcl_Release on
|
1930 |
|
|
the same memory as the chunk currently being freed. (JL)
|
1931 |
|
|
|
1932 |
|
|
3/22/96 (bug fix) Removed several memory leaks that would cause memory
|
1933 |
|
|
buildup on half-K chunks in the generic IO level. (JL)
|
1934 |
|
|
|
1935 |
|
|
3/22/96 (bug fix) Fixed several core dumps which occurred when new
|
1936 |
|
|
AssocData was being created during the cleanups in interpreter deletion.
|
1937 |
|
|
The solution implemented now is to loop repeatedly over the AssocData until
|
1938 |
|
|
none is left to clean up. (JL)
|
1939 |
|
|
|
1940 |
|
|
3/22/96 (bug fix) Fixed a bug in event handling which caused an infinite
|
1941 |
|
|
loop if there were no files being watched and no timer. Fix suggested by
|
1942 |
|
|
Jan Nijtmans. (JL)
|
1943 |
|
|
|
1944 |
|
|
3/22/96 (bug fix) Fixed Tcl_CreateCommand, Tcl_DeleteCommand to be more
|
1945 |
|
|
robust if the interpreter is being deleted. Also fixed several order
|
1946 |
|
|
dependency bugs in Tcl_DeleteCommand which kicked in when an interpreter
|
1947 |
|
|
was being deleted. (JL)
|
1948 |
|
|
|
1949 |
|
|
3/26/96 (bug fix) Upon a "short read", the generic code no longer calls
|
1950 |
|
|
the driver for more input. Doing this caused blocking on some platforms
|
1951 |
|
|
even on nonblocking channels. Bug and fix courtesy Mark Roseman. (JL)
|
1952 |
|
|
|
1953 |
|
|
3/26/96 (new feature) Added 'package Tcltest' which is present only in
|
1954 |
|
|
test versions of Tcl; this allows the testing commands to be loaded into
|
1955 |
|
|
new interpreters besides the main one. (JL)
|
1956 |
|
|
|
1957 |
|
|
3/26/96 (restored feature) Recreated the Tcl_GetOpenFile C API. You can
|
1958 |
|
|
now get a FILE * from a registered channel; Unix only. (JL)
|
1959 |
|
|
|
1960 |
|
|
3/27/96 (bug fix) The regular expression code did not support more
|
1961 |
|
|
than 9 subexpressions. It now supports up to 20. (SS)
|
1962 |
|
|
|
1963 |
|
|
4/1/96 (bug fixes) The CHANNEL_BLOCKED bit was being left on on a short
|
1964 |
|
|
read, so that fileevents wouldn't fire correctly. Bug reported by Mark
|
1965 |
|
|
Roseman.(JL, RJ)
|
1966 |
|
|
|
1967 |
|
|
4/1/96 (bug fix) Moved Tcl_Release to match Tcl_Preserve exactly, in
|
1968 |
|
|
tclInterp.c; previously interpreters were being freed only conditionally
|
1969 |
|
|
and sometimes not at all. (JL)
|
1970 |
|
|
|
1971 |
|
|
4/1/96 (bug fix) Fixed error reporting in slave interpreters when the
|
1972 |
|
|
error message was being generated directly by C code. Fix suggested by
|
1973 |
|
|
Viktor Dukhovni of ESM. (JL)
|
1974 |
|
|
|
1975 |
|
|
4/2/96 (bug fixes) Fixed a series of bugs in Windows sockets that caused
|
1976 |
|
|
events to variously get lost, to get sent multiple times, or to be ignored
|
1977 |
|
|
by the driver. The manifestation was blocking if the channel is blocking,
|
1978 |
|
|
and either getting EAGAIN or infinite loops if the channel is nonblocking.
|
1979 |
|
|
This series of bugs was found by Ian Wallis of Cisco. Now all tests (also
|
1980 |
|
|
those that were previously commented out) in socket.test pass. (JL, SS)
|
1981 |
|
|
|
1982 |
|
|
4/2/96 (feature change/bug fix) Eliminated network name support in
|
1983 |
|
|
favor of better native name support. Added "file split", "file join",
|
1984 |
|
|
and "file pathtype" commands. See the "file" man page for more
|
1985 |
|
|
details. (SS)
|
1986 |
|
|
*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
|
1987 |
|
|
|
1988 |
|
|
4/2/96 (bug fix) Changed implementation of auto_mkindex so tclIndex
|
1989 |
|
|
files will properly handle path names in a cross platform context. (SS)
|
1990 |
|
|
|
1991 |
|
|
4/5/96 (bug fix) Fixed Tcl_ReadCmd to use the channel buffer size as the
|
1992 |
|
|
chunk size it reads, instead of a fixed 4K size. Thus, on large reads, the
|
1993 |
|
|
user can set the channel buffer size to a large size and the read will
|
1994 |
|
|
occur orders of magnitude faster. For example, on a 2MB file, reading in 4K
|
1995 |
|
|
chunks took 34 seconds, while reading in 1MB chunks took 1.5 seconds (on a
|
1996 |
|
|
SS-20). Problem identified and fix suggested by John Haxby of HP. (JL)
|
1997 |
|
|
|
1998 |
|
|
4/5/96 (bug fix) Fixed socket creation code to invoke gethostbyname only if
|
1999 |
|
|
inet_addr failed (very unlikely). Before this change the order was reversed
|
2000 |
|
|
and this made things much slower than they needed to be (gethostbyname
|
2001 |
|
|
generally requires an RPC, which is slow). Problem identified and fix
|
2002 |
|
|
suggested by John Loverso of OSF. (JL)
|
2003 |
|
|
|
2004 |
|
|
4/9/96 (feature change) Modified "auto" translation mode so that it
|
2005 |
|
|
recognizes any of "\n", "\r" and "\r\n" in input as end of line, so
|
2006 |
|
|
that a file can have mixed end-of-line sequences. It now outputs
|
2007 |
|
|
the platform specific end of line sequence on each platform for files and
|
2008 |
|
|
pipes, and for sockets it produces crlf in output on all platforms. (JL)
|
2009 |
|
|
*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
|
2010 |
|
|
|
2011 |
|
|
4/11/96 (new feature) Added -eofchar option to Tcl_SetChannelOption to allow
|
2012 |
|
|
setting of an end of file character for input and output. If an input eof
|
2013 |
|
|
char is set, it is recognized as EOF and further input from the channel is
|
2014 |
|
|
not presented to the caller. If an output eof char is set, on output, that
|
2015 |
|
|
byte is appended to the channel when it is closed. On Unix and Macintosh,
|
2016 |
|
|
all channels start with no eof char set for input or output. On Windows,
|
2017 |
|
|
files and pipes start with input and output eof chars set to Crlt-Z (ascii
|
2018 |
|
|
26), and sockets start with no input or output eof char. (JL)
|
2019 |
|
|
*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
|
2020 |
|
|
|
2021 |
|
|
4/17/96 (bug fix) Fixed series of bugs with handling of crlf sequence split
|
2022 |
|
|
across buffer boundaries in input, in AUTO mode. (JL, BW)
|
2023 |
|
|
|
2024 |
|
|
4/17/96 (test suite improvement) Fixed test suite so that tests that
|
2025 |
|
|
depend on the availability of Unix commands such as echo, cat and others
|
2026 |
|
|
are not run if these commands are not present. (JL)
|
2027 |
|
|
|
2028 |
|
|
4/17/96 (test suite improvement) The socket test now automatically starts,
|
2029 |
|
|
on platformst that support exec, a separate process for remote testsing. (JL)
|
2030 |
|
|
|
2031 |
|
|
----------------- Released 7.5, 4/21/96 -----------------------
|
2032 |
|
|
|
2033 |
|
|
5/1/96 (bug fix) "file tail ~" did not correctly return the tail
|
2034 |
|
|
portion of the user's home directory. (SS)
|
2035 |
|
|
|
2036 |
|
|
5/1/96 (bug fix) Fixed bug in TclGetEnv where it didn't lookup environment
|
2037 |
|
|
variables correctly: could confuse "H" and "HOME", for example. (JO)
|
2038 |
|
|
|
2039 |
|
|
5/1/96 (bug fix) Changed to install tclConfig.sh under "make install-binaries",
|
2040 |
|
|
not "make install-libraries". (JO)
|
2041 |
|
|
|
2042 |
|
|
5/2/96 (bug fix) Changed pkg_mkIndex not to attempt to "load" a file unless
|
2043 |
|
|
it has the standard shared library extension. On SunOS, attempts to load
|
2044 |
|
|
Tcl scripts cause the whole application to be aborted (there's no way to
|
2045 |
|
|
get the error back into Tcl). (JO)
|
2046 |
|
|
|
2047 |
|
|
5/7/96 (bug fix) Moved initScript in tclUnixInit.c to writable memory to
|
2048 |
|
|
avoid potential core dumps. (JO)
|
2049 |
|
|
|
2050 |
|
|
5/7/96 (bug fix) Auto_reset procedure was removing procedure from init.tcl,
|
2051 |
|
|
such as pkg_mkIndex. (JO)
|
2052 |
|
|
|
2053 |
|
|
5/7/96 (bug fix) Fixed cast on socket address resolution code that
|
2054 |
|
|
would cause a failure to connect on Dec Alphas. (JL)
|
2055 |
|
|
|
2056 |
|
|
5/7/96 (bug fix) Added "time", "subst" and "fileevent" commands to set of
|
2057 |
|
|
commands available in a safe interpreter. (JL)
|
2058 |
|
|
|
2059 |
|
|
5/13/96 (bug fix) Preventing OS level handles for stdin, stdout and stderr
|
2060 |
|
|
from being implicitly closed when the last reference to the standard
|
2061 |
|
|
channel containing that handle is discarded when an interpreter is deleted.
|
2062 |
|
|
Explicitly closing standard channels by using "close" still works. (JL)
|
2063 |
|
|
|
2064 |
|
|
5/21/96 (bug fix) Do not create channels for stdin, stdout and stderr on
|
2065 |
|
|
Unix if the devices are closed. This prevents a duplicate channel name
|
2066 |
|
|
panic later on when the fd is used to open a channel and the channel is
|
2067 |
|
|
registered in an interpreter. (JL)
|
2068 |
|
|
|
2069 |
|
|
5/23/96 (bug fix) Fixed bug that prevented the use of standard channels in
|
2070 |
|
|
interpreters created after the last interpreter was destroyed. In the sequence
|
2071 |
|
|
|
2072 |
|
|
interp = Tcl_CreateInterp();
|
2073 |
|
|
Tcl_DeleteInterp(interp);
|
2074 |
|
|
interp = Tcl_CreateInterp();
|
2075 |
|
|
|
2076 |
|
|
channels for stdio would not be available in the second interpreter. (JL)
|
2077 |
|
|
|
2078 |
|
|
5/23/96 (bug fix) Fixed bug that allowed Tcl_MakeFileChannel to create new
|
2079 |
|
|
channels with Tcl_Files in them that are already used by another channel.
|
2080 |
|
|
This would cause core dumps when the Tcl_Files were being freed twice. (JL)
|
2081 |
|
|
|
2082 |
|
|
5/23/96 (bug fix) Fixed a logical timing bug that caused a standard channel
|
2083 |
|
|
to be removed from the standard channel table too early when the channel
|
2084 |
|
|
was being closed. If the channel was being flushed asynchronously, it could
|
2085 |
|
|
get recreated before being actually destroyed, and the recreated channel
|
2086 |
|
|
would contain the same Tcl_File as the one being closed, leading to
|
2087 |
|
|
dangling pointers and core dumps. (JL)
|
2088 |
|
|
|
2089 |
|
|
5/27/96 (bug fix) Fixed a bug in Tcl_GetChannelOption which caused it to
|
2090 |
|
|
always return a list of one element, a list of the settings, for
|
2091 |
|
|
-translation and -eofchar options. Now correctly returns the value
|
2092 |
|
|
described by the documentation (Mark Diekhans found this, thanks!). (JL)
|
2093 |
|
|
|
2094 |
|
|
5/30/96 (bug fix) Fixed a couple of syntax errors in io.test. (JL)
|
2095 |
|
|
|
2096 |
|
|
5/30/96 (bug fix) If a fileevent scripts gets an error, delete it before
|
2097 |
|
|
causing a background error. This is to allow the error handler to reinstall
|
2098 |
|
|
the fileevent and to prevent infinite loops if the event loop is reentered
|
2099 |
|
|
in the error handler. (JL)
|
2100 |
|
|
|
2101 |
|
|
5/31/96 (bug fix) Channels now will get properly flushed on exit. (JL)
|
2102 |
|
|
|
2103 |
|
|
6/5/96 (bug fix) Changed Tcl_Ckalloc, Tcl_Ckfree, and Tcl_Ckrealloc to
|
2104 |
|
|
Tcl_Alloc, Tcl_Free, and Tcl_Realloc. Added documentation for these
|
2105 |
|
|
routines now that they are officially supported. Extension writers
|
2106 |
|
|
should use these routines instead of free() and malloc(). (SS)
|
2107 |
|
|
|
2108 |
|
|
6/10/96 (bug fix) Changes the Tcl close command so that it no longer
|
2109 |
|
|
waits on nonblocking pipes for the piped processes to exit; instead it
|
2110 |
|
|
reaps them in the background. (JL)
|
2111 |
|
|
|
2112 |
|
|
6/11/96 (bug fix) Increased the length of the listen queue for server
|
2113 |
|
|
sockets on Unix from 5 to 100. Some OSes will disregard this and reset it
|
2114 |
|
|
to 5, but we should try to get as long a queue as we can, for performance
|
2115 |
|
|
reasons. (JL)
|
2116 |
|
|
|
2117 |
|
|
6/11/96 (bug fix) Fixed windows sockets bug that caused a cascade of events
|
2118 |
|
|
if the fileevent script read less than was available. Now reading less than
|
2119 |
|
|
is available does not cause a flood of Tcl events. (JL, SS)
|
2120 |
|
|
|
2121 |
|
|
6/11/96 (bug fix) Fixed bug in background flushing on closed channels that
|
2122 |
|
|
would prevent the last buffer from getting flushed. (JL)
|
2123 |
|
|
|
2124 |
|
|
6/13/96 (bug fix) Fixed bug in Windows sockets that caused a core dump if
|
2125 |
|
|
a DLL linked with tcl.dll and referred to e.g. ntohs() without opening a
|
2126 |
|
|
Tcl socket. The problem was that the indirection table was not being
|
2127 |
|
|
initialized. (JL)
|
2128 |
|
|
|
2129 |
|
|
6/13/96 (bug fix) Fixed OS level resource leak that would occur when a
|
2130 |
|
|
Tcl channel was still registered in some interpreter when the process
|
2131 |
|
|
exits. Previously the channel was not being closed and the OS level handles
|
2132 |
|
|
were not being released; the output was being flushed but the device was
|
2133 |
|
|
not being closed. Now the device is properly closed. This was only a
|
2134 |
|
|
problem on Win3.1 and MacOS. (JL, SS)
|
2135 |
|
|
|
2136 |
|
|
6/28/96 (bug fix) Fixed bug where transient errors were leaving an error
|
2137 |
|
|
code around, so that it would erroneously get reported later. This bug was
|
2138 |
|
|
exercised intermittently by closing a channel to a file on a very loaded
|
2139 |
|
|
NFS server, or to a socket whose other end blocked. (JL, BW)
|
2140 |
|
|
|
2141 |
|
|
7/3/96 (bug fix) Fileevents declared in an interpreter are now deleted
|
2142 |
|
|
when the channel is closed in that interpreter. Before this fix, the
|
2143 |
|
|
fileevent would hang around until the channel is completely closed, and
|
2144 |
|
|
would cause errors if events happened before the channel was closed. This
|
2145 |
|
|
could happen in two cases: first if the channel is shared between several
|
2146 |
|
|
interpreters, and second if an async flush is in progress that prevents the
|
2147 |
|
|
channel from being closed until the flush finishes. (JL)
|
2148 |
|
|
|
2149 |
|
|
7/10/96 (bug fix) Fixed bugs in both "lrange" and "lreplace" commands
|
2150 |
|
|
where too much white space was being removed. For example, the command
|
2151 |
|
|
lreplace {\}\ hello} end end
|
2152 |
|
|
was returning "\}\", losing the significant space in the first list
|
2153 |
|
|
element and corrupting the list. (JO)
|
2154 |
|
|
|
2155 |
|
|
7/20/96 (bug fix) The procedure pkg_mkIndex didn't work properly for
|
2156 |
|
|
extensions that depend on Tk, because it didn't load Tk into the child
|
2157 |
|
|
interpreter before loading the extension. Now it loads Tk if Tk is
|
2158 |
|
|
present in the parent. (JO)
|
2159 |
|
|
|
2160 |
|
|
7/23/96 (bug fix) Added compat version of strftime to fix crashes
|
2161 |
|
|
resulting from bad implementations under Windows. (SS)
|
2162 |
|
|
|
2163 |
|
|
7/23/96 (bug fix) Standard implementations of gmtime() and localtime()
|
2164 |
|
|
under Windows did not handle dates before 1970, so they were replaced
|
2165 |
|
|
with a revised implementation. (SS)
|
2166 |
|
|
|
2167 |
|
|
7/23/96 (bug fix) Tcl would crash on exit under Borland 5.0 because
|
2168 |
|
|
the global environ pointer was left pointing to freed memory. (SS)
|
2169 |
|
|
|
2170 |
|
|
7/29/96 (bug fix) Fixed memory leak in Tcl_LoadCmd that could occur if
|
2171 |
|
|
a package's AppInit procedure called Tcl_StaticPackage to register
|
2172 |
|
|
static packages. (JO)
|
2173 |
|
|
|
2174 |
|
|
8/1/96 (bug fix) Fixed a series of bugs in Windows sockets so that async
|
2175 |
|
|
writebehind in the presence of read event handlers now works, and so that
|
2176 |
|
|
async writebehind also works on sockets for which a read event handler was
|
2177 |
|
|
declared and whose channels were then closed before the async write
|
2178 |
|
|
finished. The bug was reported by John Loverso and Steven Wahl,
|
2179 |
|
|
independently, test case supplied by John Loverso. (JL)
|
2180 |
|
|
|
2181 |
|
|
----------------- Released patch 7.5p1, 8/2/96 -----------------------
|
2182 |
|
|
|
2183 |
|
|
5/8/96 (new feature) Added Tcl_GetChannelMode C API for retrieving whether
|
2184 |
|
|
a channel is open for reading and writing. (JL)
|
2185 |
|
|
|
2186 |
|
|
5/8/96 (API changes) Revised C APIs for channel drivers:
|
2187 |
|
|
- Removed all Tcl_Files from channel driver interface; you can now have
|
2188 |
|
|
channels that are not based on Tcl_Files.
|
2189 |
|
|
- Added channelReadyProc and watchChannelProc procedures to interface;
|
2190 |
|
|
these are used to implement event notification for channels.
|
2191 |
|
|
- Added getFileProc to channel driver, to allow the generic IO code
|
2192 |
|
|
to retrieve a Tcl_File from a channel (presumably if the channel
|
2193 |
|
|
uses Tcl_Files they will be stored inside its instanceData). (JL)
|
2194 |
|
|
*** INCOMPATIBILITY with Tcl 7.5 ***
|
2195 |
|
|
|
2196 |
|
|
5/8/96 (API change) The Tcl_CreateChannel C API was modified to not take
|
2197 |
|
|
Tcl_File arguments, and instead to take a mask specifying whether the
|
2198 |
|
|
channel is readable and/or writable. (JL)
|
2199 |
|
|
*** INCOMPATIBILITY with Tcl 7.5 ***
|
2200 |
|
|
|
2201 |
|
|
6/3/96 (bug fix) Made Tcl_SetVar2 robust against the case where the value
|
2202 |
|
|
of the variable is a NULL pointer instead of "". (JL)
|
2203 |
|
|
|
2204 |
|
|
6/17/96 (bug fix) Fixed "reading uninitialized memory" error reported by
|
2205 |
|
|
Purify, in Tcl_Preserve/Tcl_Release. (JL)
|
2206 |
|
|
|
2207 |
|
|
8/9/96 (bug fix) Fixed bug in init.tcl that caused incorrect error message
|
2208 |
|
|
if the act of autoloading a procedure caused the procedure to be invoked
|
2209 |
|
|
again. (JO)
|
2210 |
|
|
|
2211 |
|
|
8/9/96 (bug fix) Configure script produced bad library names and extensions
|
2212 |
|
|
under SunOS and a few other platforms if the --disable-load switch was used.
|
2213 |
|
|
(JO)
|
2214 |
|
|
|
2215 |
|
|
8/9/96 (bug fix) Tcl_UpdateLinkedVar generated an error if the variable
|
2216 |
|
|
being updated was read-only. (JO)
|
2217 |
|
|
|
2218 |
|
|
8/14/96 (bug fix) The macintosh now supports synchronous socket
|
2219 |
|
|
connections. Other minor bugs were also fixed. (RJ)
|
2220 |
|
|
|
2221 |
|
|
8/15/96 (configuration improvement) Changed the file patchlevel.h
|
2222 |
|
|
to be tclPatch.h. This avoids conflict with the Tk file and is now
|
2223 |
|
|
in 8.3 format on the Windows platform. (RJ)
|
2224 |
|
|
|
2225 |
|
|
8/20/96 (bug fix) Fixed core dump in interp alias command for interpreters
|
2226 |
|
|
created with Tcl_CreateInterp (as opposed to with Tcl_CreateSlave). (JL)
|
2227 |
|
|
|
2228 |
|
|
8/20/96 (bug fix) No longer masking ECONNRESET on Windows sockets so
|
2229 |
|
|
that the higher level of the IO mechanism sees the error instead of
|
2230 |
|
|
entering an infinite loop. (JL)
|
2231 |
|
|
|
2232 |
|
|
8/20/96 (bug fix) Destroying the last interpreter no longer closes the
|
2233 |
|
|
standard channels. (JL)
|
2234 |
|
|
|
2235 |
|
|
8/20/96 (bug fix) Closing one of the stdin, stdout or stderr channels and
|
2236 |
|
|
then opening a new channel now correctly assigns the new channel as the
|
2237 |
|
|
standard channel that was closed. (JL)
|
2238 |
|
|
|
2239 |
|
|
8/20/96 (bug fix) Added code to unix/tclUnixChan.c for using ioctl with
|
2240 |
|
|
FIONBIO instead of fcntl with O_NONBLOCK, for those versions of Unix where
|
2241 |
|
|
either O_NONBLOCK is not supported or implemented incorrectly. (JL)
|
2242 |
|
|
|
2243 |
|
|
8/21/96 (bug fix) Fixed "file extension" so it correctly returns the
|
2244 |
|
|
extension on files like "foo..c" as "..c" instead of ".c". (SS)
|
2245 |
|
|
|
2246 |
|
|
8/22/96 (bug fix) If environ[] contains static strings, Tcl would core
|
2247 |
|
|
dump in TclSetupEnv because it was trying to write NULLs into the actual
|
2248 |
|
|
data in environ[]. Now we instead copy as appropriate. (JL)
|
2249 |
|
|
|
2250 |
|
|
8/22/96 (added impl) Added missing implementation of Tcl_MakeTcpClientChannel
|
2251 |
|
|
for Windows platform. Code contributed by Mark Diekhans. (JL)
|
2252 |
|
|
|
2253 |
|
|
8/22/96 (new feature) Added a new memory allocator for the Macintosh
|
2254 |
|
|
version of Tcl. It's quite a bit faster than MetroWerk's version. (RJ)
|
2255 |
|
|
|
2256 |
|
|
8/26/96 (documentation update) Removed old change bars (for all changes
|
2257 |
|
|
in Tcl 7.5 and earlier releases) from manual entries. (JO)
|
2258 |
|
|
|
2259 |
|
|
8/27/96 (enhancement) The exec and open commands behave better and work in
|
2260 |
|
|
more situations under Windows NT and Windows 95. Documentation describes
|
2261 |
|
|
what is still lacking. (CS)
|
2262 |
|
|
|
2263 |
|
|
8/27/96 (enhancement) The Windows makefiles will now compile even if the
|
2264 |
|
|
compiler is not in the path and/or the compiler's environment variables
|
2265 |
|
|
have not been set up. (CS)
|
2266 |
|
|
|
2267 |
|
|
8/27/96 (configuration improvement) The Windows resource files are
|
2268 |
|
|
automatically updated when the version/patch level changes. The header file
|
2269 |
|
|
now has a comment that reminds the user which other files must be manually
|
2270 |
|
|
updated when the version/patch level changes. (CS)
|
2271 |
|
|
|
2272 |
|
|
8/28/96 (new feature) Added file manipulation features (copy, rename, delete,
|
2273 |
|
|
mkdir) that are supported on all platforms. They are implemented as
|
2274 |
|
|
subcommands to the "file" command. See the documentation for the "file"
|
2275 |
|
|
command for more information. (JH)
|
2276 |
|
|
|
2277 |
|
|
----------------- Released 7.6b1, 8/30/96 -----------------------
|
2278 |
|
|
|
2279 |
|
|
9/3/96 (bug fix) Simplified code so that standard channels are created
|
2280 |
|
|
lazily, they are added to an interpreter lazily, and they are never added
|
2281 |
|
|
to a safe interpreter. (JL)
|
2282 |
|
|
|
2283 |
|
|
9/3/96 (bug fix) Closing a channel after closing a standard channel, e.g.
|
2284 |
|
|
stdout, would cause the implicit recreation of that standard channel. (JL)
|
2285 |
|
|
|
2286 |
|
|
9/3/96 (new feature) Now calling Tcl_RegisterChannel with a NULL
|
2287 |
|
|
interpreter increments the refcount so that code outside any interpreter
|
2288 |
|
|
can use channels that are also registered in interpreters, without worrying
|
2289 |
|
|
that the channel may turn into a dangling pointer at any time. Calling
|
2290 |
|
|
Tcl_UnregisterChannel with a NULL interpreter only decrements the recount
|
2291 |
|
|
so that code outside any interpreter can safely declare it is no longer
|
2292 |
|
|
interested in a channel. (JL)
|
2293 |
|
|
|
2294 |
|
|
9/4/96 (new features) Two changes to dynamic loading:
|
2295 |
|
|
- If the file name is empty in the "load" command and there is no
|
2296 |
|
|
statically loaded version of the package, a dynamically loaded
|
2297 |
|
|
version will be used if there is one.
|
2298 |
|
|
- Tcl_StaticPackage ignores redundant calls for the same package. (JO)
|
2299 |
|
|
|
2300 |
|
|
9/6/96 (bug fix) Platform specific procedures for manipulating files are
|
2301 |
|
|
no longer macros and have been prefixed with "Tclp", such as TclpRenameFile.
|
2302 |
|
|
Unix file code now handles symbolic links and other special files correctly.
|
2303 |
|
|
The semantics of file copy and file rename has been changed so that if
|
2304 |
|
|
a target directory exists, the source files will NOT be merged with the
|
2305 |
|
|
existing files. (JH)
|
2306 |
|
|
|
2307 |
|
|
9/6/96 (bug fix) If standard channel is NULL, because Tcl cannot connect
|
2308 |
|
|
to the standard channel, do not increment the refcount. The channel can
|
2309 |
|
|
be NULL if there is for example no standard input. (JL)
|
2310 |
|
|
|
2311 |
|
|
9/6/96 (portability improvement) Changed parsing of backslash sequences
|
2312 |
|
|
like \n to translate directly to absolute values like 0xa instead of
|
2313 |
|
|
letting the compiler do the translation. This guarantees that the
|
2314 |
|
|
translation is done the same everywhere. (JO)
|
2315 |
|
|
|
2316 |
|
|
9/9/96 (bug fix) If channel is opened and not associated with any
|
2317 |
|
|
interpreter, but Tcl decides to use it as one of the standard channels, it
|
2318 |
|
|
became impossible to close the channel with Tcl_Close -- instead you had
|
2319 |
|
|
to call Tcl_UnregisterChannel. Fixed now so that it's safe to call
|
2320 |
|
|
Tcl_Close even when Tcl is using the channel as one of the standard ones. (JL)
|
2321 |
|
|
|
2322 |
|
|
9/11/96 (feature change) The Tcl library is now placed in the Tcl
|
2323 |
|
|
shared libraries resource. You no longer need to place the Tcl files
|
2324 |
|
|
in your applications explicitly. (RJ)
|
2325 |
|
|
|
2326 |
|
|
9/11/96 (feature change) Extensions no longer automatically have the
|
2327 |
|
|
resource fork of the extension opened for it. Instead you need to
|
2328 |
|
|
use the tclMacLibrary.c file in your extension. (RJ)
|
2329 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
2330 |
|
|
|
2331 |
|
|
9/12/96 (bug fix) The extension loading mechanism on the Macintosh now
|
2332 |
|
|
looks at the 'cfrg' resource to determine where to load the code
|
2333 |
|
|
fragment from. This means FAT fragments should now work. (RJ)
|
2334 |
|
|
|
2335 |
|
|
9/18/96 (enhancement) The exec and open commands behave better and work in
|
2336 |
|
|
more situations under Windows 3.X. Documentation describes what is still
|
2337 |
|
|
lacking. (CS)
|
2338 |
|
|
|
2339 |
|
|
9/19/96 (bug fix) Fixed a panic which would occur if you delete a
|
2340 |
|
|
non-existent alias before any aliases are created. Now instead correctly
|
2341 |
|
|
returns an error that the alias is not found. (JL)
|
2342 |
|
|
|
2343 |
|
|
9/19/96 (bug fix) Slave interpreters could rename aliases and they would
|
2344 |
|
|
not get deleted when the alias was being redefined. This led to dangling
|
2345 |
|
|
pointers etc. (JL)
|
2346 |
|
|
|
2347 |
|
|
9/19/96 (bug fix) Fixed a panic where a hash table entry was being deleted
|
2348 |
|
|
twice during alias management operations. (JL)
|
2349 |
|
|
|
2350 |
|
|
9/19/96 (bug fix) Fixed bug in event loop that could cause the input focus
|
2351 |
|
|
in Tk to get confused during menu traversal, among other problems. The
|
2352 |
|
|
problem was related to handling of the "marker" when its event was
|
2353 |
|
|
deleted. (JO)
|
2354 |
|
|
|
2355 |
|
|
9/26/96 (bug fix) Windows was losing EOF on a socket if the FD_CLOSE event
|
2356 |
|
|
happened to precede any left over FD_READ events. Now correctly remembers
|
2357 |
|
|
seeing FD_CLOSE, so that trailing FD_READ events are not discarded if they
|
2358 |
|
|
do not contain any data. This allows Tcl to correctly get a zero read and
|
2359 |
|
|
notice EOF. (JL)
|
2360 |
|
|
|
2361 |
|
|
9/26/96 (bug fix) Was not resetting READABLE state properly on sockets
|
2362 |
|
|
under Windows if the driver discarded an FD_READ event because no data was
|
2363 |
|
|
present. Now correctly resets the state. (JL)
|
2364 |
|
|
|
2365 |
|
|
9/30/96 (bug fix) Made EOF sticky on Windows sockets, so that fileevent
|
2366 |
|
|
readable will fire repeatedly until the socket is closed. Previously the
|
2367 |
|
|
fileevent fired only once. This could lead to never-closed connections if
|
2368 |
|
|
the Tcl script in the fileevent wasn't closing the socket immediately. (JL)
|
2369 |
|
|
|
2370 |
|
|
10/2/96 (new feature) Improved the package loader:
|
2371 |
|
|
- Added new variable tcl_pkgPath, which holds the default
|
2372 |
|
|
directories under which packages are normally installed (each
|
2373 |
|
|
package goes in a separate subdirectory of a directory in
|
2374 |
|
|
$tcl_pkgPath). These directories are included in auto_path by
|
2375 |
|
|
default.
|
2376 |
|
|
- Changed the package auto-loader to look for pkgIndex.tcl files
|
2377 |
|
|
not only in the auto_path directories but also in their immediate
|
2378 |
|
|
children. This should make it easier to install and uninstall
|
2379 |
|
|
packages (don't have to change auto_path or merge pkgIndex.tcl
|
2380 |
|
|
files). (JO)
|
2381 |
|
|
|
2382 |
|
|
10/3/96 (bug fix) Changed tclsh to look for tclshrc.tcl instead of
|
2383 |
|
|
tclsh.rc on startup under Windows. This is more consistent with wish and
|
2384 |
|
|
uses the right extension. (SS)
|
2385 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
2386 |
|
|
|
2387 |
|
|
10/8/96 (bug fix) Convertclock does not parse 24-hour times of the
|
2388 |
|
|
form "hhmm" correctly when hour = 00. In the parse code, hour must be
|
2389 |
|
|
>= 100 for minutes to be non-zero. Thanks to Lint LaCour for this
|
2390 |
|
|
bug fix. (RJ)
|
2391 |
|
|
|
2392 |
|
|
10/11/96 (bug fix) Under Windows, the pid command returned the process
|
2393 |
|
|
handle instead of the process id. (SS)
|
2394 |
|
|
|
2395 |
|
|
----------------- Released 7.6, 10/16/96 -----------------------
|
2396 |
|
|
|
2397 |
|
|
10/29/96 (bug fix) Under Windows, sockets would consume 100% CPU time after
|
2398 |
|
|
the first accept(), due to a typo. (JL)
|
2399 |
|
|
|
2400 |
|
|
10/29/96 (bug fix) Incorrect refcount management caused standard channels
|
2401 |
|
|
not to get deleted at process exit or DLL unload time, causing a memory
|
2402 |
|
|
leak of upwards of 20K each time. (JL)
|
2403 |
|
|
|
2404 |
|
|
11/7/96 (bug fix) Auto-exec didn't work on file names that contained
|
2405 |
|
|
spaces. (JO)
|
2406 |
|
|
|
2407 |
|
|
11/8/96 (bug fix) Fixed core dump that would occur if more than one call
|
2408 |
|
|
to Tcl_DeleteChannelHandler was made to delete a given channel handler. (JL)
|
2409 |
|
|
|
2410 |
|
|
11/8/96 (bug fix) Fixed test for return value in Tcl_Seek and Tcl_SeekCmd
|
2411 |
|
|
to only treat -1 as error, instead of all negative numbers. (JL)
|
2412 |
|
|
|
2413 |
|
|
11/12/96 (bug fix) Do not blocking waiting for processes at the end of a
|
2414 |
|
|
pipe during exit cleanup. (JL)
|
2415 |
|
|
|
2416 |
|
|
11/12/96 (bug fix) If we are in exit cleanup, do not close the system level
|
2417 |
|
|
file descriptors 0, 1 and 2. Previously they were being closed which is
|
2418 |
|
|
incorrect, in the embedded case. This led to weird behavior for programs
|
2419 |
|
|
that want to interpose on I/O through the standard file descriptors (e.g.
|
2420 |
|
|
Netscape Navigator). (JL)
|
2421 |
|
|
|
2422 |
|
|
11/15/96 (bug fix) Fixed core dump on Windows sockets due to dependency on
|
2423 |
|
|
deletion order at exit. Now all socket functions check to see if sockets
|
2424 |
|
|
are (still) initialized, before calling through function pointers. Before,
|
2425 |
|
|
they would call and might end up calling unloaded object code. (JL)
|
2426 |
|
|
|
2427 |
|
|
11/15/96 (bug fix) Fixed core dump in Windows socket initialization routine
|
2428 |
|
|
if sockets were not installed on the system. Before, it was not properly
|
2429 |
|
|
checking the result of attempting to load the socket DLL, so it would call
|
2430 |
|
|
through uninitialized function pointers. (JL)
|
2431 |
|
|
|
2432 |
|
|
11/15/96 (bug fix) Fixed memory leak in Windows sockets which left socket
|
2433 |
|
|
DLL handle open and could hold the socket DLL in memory uneccessarily,
|
2434 |
|
|
until a reboot. (JL)
|
2435 |
|
|
|
2436 |
|
|
12/4/96 (bug fix) Fixed bug in Macintosh socket code that could result
|
2437 |
|
|
in lost data if a client was closed too soon after sending data. (RJ)
|
2438 |
|
|
|
2439 |
|
|
12/17/96 (bug fix) Fixed deadlock bug in Windows sockets due to losing an
|
2440 |
|
|
event. This was happening because of an interaction between buffering and
|
2441 |
|
|
nonblocking mode on sockets. Now switched to sockets being blocking by
|
2442 |
|
|
default, so we are also no longer emulating blocking through a private
|
2443 |
|
|
event loop. (JL)
|
2444 |
|
|
|
2445 |
|
|
1/21/97 (performance bug fix) Client TCP connections were slow to create
|
2446 |
|
|
because getservbyname was always called on the port. Now this is only
|
2447 |
|
|
done if Tcl_GetInt fails. (BW)
|
2448 |
|
|
|
2449 |
|
|
1/21/97 (configuration fix) Made it possible to override TCL_PACKAGE_PATH
|
2450 |
|
|
during make. Previously it was only set during autoconf process.
|
2451 |
|
|
|
2452 |
|
|
1/29/97 (bug fix) Fixed some problems with the clock command that
|
2453 |
|
|
impacted how dates were scaned after the year 2000. (RJ)
|
2454 |
|
|
|
2455 |
|
|
----------------- Released 7.6p2, 1/31/97 -----------------------
|
2456 |
|
|
|
2457 |
|
|
2/5/97 (bug fix) Fixed a bug where in CR-LF translation mode, \r bytes
|
2458 |
|
|
in the input stream were not being handled correctly. (JL)
|
2459 |
|
|
|
2460 |
|
|
2/24/97 (bug fix) Fix bug with exec under Win32s not being able to create
|
2461 |
|
|
stderr file which caused all execs to fail. Fixed temp file leak under
|
2462 |
|
|
Win32s. Fixed optional parameter bug with SearchPath that only happened
|
2463 |
|
|
under Win32s 1.25. (CCS)
|
2464 |
|
|
|
2465 |
|
|
----------------------------------------------------------
|
2466 |
|
|
Changes for Tcl 7.6 go above this line.
|
2467 |
|
|
Changes for Tcl 7.7 go below this line.
|
2468 |
|
|
----------------------------------------------------------
|
2469 |
|
|
|
2470 |
|
|
5/8/96 (new feature) Added Tcl_Ungets C API for putting a sequence of bytes
|
2471 |
|
|
into a channel's input buffer. This can be used for "push" model channels
|
2472 |
|
|
where the input is obtained via callbacks instead of by request of the
|
2473 |
|
|
generic IO code. No Tcl procedure yet. (JL)
|
2474 |
|
|
|
2475 |
|
|
11/15/96 (new feature) Implemented hidden commands. New C APIs:
|
2476 |
|
|
Tcl_HideCommand -- hides an existing exposed command.
|
2477 |
|
|
Tcl_ExposeCommand -- exposes an existing hidden command.
|
2478 |
|
|
New tcl APIs:
|
2479 |
|
|
interp invokehidden -- invokes a hidden command in a slave.
|
2480 |
|
|
interp hide -- hides an existing exposed command.
|
2481 |
|
|
interp expose -- exposes an existing hidden command.
|
2482 |
|
|
interp hidden -- returns a list of hidden commands.
|
2483 |
|
|
The implementation of Safe Tcl now uses the new hidden commands facility
|
2484 |
|
|
to implement the safe base, instead of deleting the commands from a safe
|
2485 |
|
|
interpreter. (JL)
|
2486 |
|
|
|
2487 |
|
|
11/15/96 (new feature) Implemented the safe base, a mechanism for
|
2488 |
|
|
installing and requesting security policies, purely in Tcl code. Overloads
|
2489 |
|
|
the package command to also allow an interpreter to "require" a policy. The
|
2490 |
|
|
following new library commands are provided:
|
2491 |
|
|
tcl_safeCreateInterp -- creates a slave an initializes the
|
2492 |
|
|
policy mechanism.
|
2493 |
|
|
tcl_safeInitInterp -- initializes an existing slave with the
|
2494 |
|
|
policy mechanism.
|
2495 |
|
|
tcl_safeDeleteInterp -- deletes a slave and deinitializes the
|
2496 |
|
|
policy mechanism.
|
2497 |
|
|
Added a new file to the library, safeinit.tcl, to hold implementation. (JL)
|
2498 |
|
|
On 7/9/97, removed the policy loading mechanism from the Safe Base. Left
|
2499 |
|
|
only the Safe Base aliases dealing with auto-loading and source. (JL)
|
2500 |
|
|
|
2501 |
|
|
12/6/96 (new feature) Implemented Tcl_Finalize, an API that should be
|
2502 |
|
|
called by a process when it is done using Tcl. This API runs all the exit
|
2503 |
|
|
handlers to allow them to clean up resources etc. (JL)
|
2504 |
|
|
|
2505 |
|
|
12/17/96 (new feature) Add an http Tcl script package to the Tcl library.
|
2506 |
|
|
This package implements the client side of HTTP/1.0; the GET, HEAD,
|
2507 |
|
|
and POST requests. (BW)
|
2508 |
|
|
|
2509 |
|
|
1/21/97 (new feature) Added a "marktrusted" subcommand to the "interp" and
|
2510 |
|
|
to the interpreter object command. It removes the "safe" mark on an
|
2511 |
|
|
interpreter and disables hard-wired checks for safety in the C sources. (JL)
|
2512 |
|
|
|
2513 |
|
|
1/21/97 (removed feature) Removed "vwait" from set of commands available in
|
2514 |
|
|
a safe interpreter. (JL)
|
2515 |
|
|
|
2516 |
|
|
2/11/97 (new feature, bug fix) http package. Added -accept to http_config
|
2517 |
|
|
so you can set the Accept header. Added -handler option to http_get so
|
2518 |
|
|
you can supply your own data handler. Also fixed POST operation to
|
2519 |
|
|
set the correct MIME type on the request. (BW)
|
2520 |
|
|
|
2521 |
|
|
----------------------------------------------------------
|
2522 |
|
|
Changes for Tcl 7.7 go above this line.
|
2523 |
|
|
Changes for Tcl 8.0 go below this line.
|
2524 |
|
|
----------------------------------------------------------
|
2525 |
|
|
|
2526 |
|
|
9/17/96 (bug fix) Using "upvar" it was possible to turn an array element
|
2527 |
|
|
into an array itself. Changed to disallow this; it was quirky and didn't
|
2528 |
|
|
really work correctly anyway. (JO)
|
2529 |
|
|
|
2530 |
|
|
10/21/96 (new feature) The core of the Tcl interpreter has been replaced
|
2531 |
|
|
with an on-the-fly compiler that translates Tcl scripts to bytecoded
|
2532 |
|
|
instructions; a new interpreter then executes the bytecodes. The compiler
|
2533 |
|
|
introduces only a few minor changes at the level of Tcl scripts. The biggest
|
2534 |
|
|
changes are to expressions and lists.
|
2535 |
|
|
- A second level of substitutions is no longer done for expressions.
|
2536 |
|
|
This substantially improves their execution time. This means that
|
2537 |
|
|
the expression "$x*4" produces a different result than in the past
|
2538 |
|
|
if x is "$y+2". Fortunately, not much code depends on the old
|
2539 |
|
|
two-level semantics. Some expressions that do, such as
|
2540 |
|
|
"expr [join $list +]" can be recoded to work in Tcl8.0 by adding
|
2541 |
|
|
an eval: e.g., "eval expr [join $list +]".
|
2542 |
|
|
- Lists are now completely parsed on the first list operation to
|
2543 |
|
|
create a faster internal representation. In the past, if you had a
|
2544 |
|
|
misformed list but the erroneous part was after the point you
|
2545 |
|
|
inserted or extracted an element, then you never saw an error.
|
2546 |
|
|
In Tcl8.0 an error will be reported. This should only effect
|
2547 |
|
|
incorrect programs that took advantage of behavior of the old
|
2548 |
|
|
implementation that was not documented in the man pages.
|
2549 |
|
|
Other changes to Tcl scripts are discussed in the web page at
|
2550 |
|
|
http://www.sunlabs.com/research/tcl/compiler.html. (BL)
|
2551 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
2552 |
|
|
|
2553 |
|
|
10/21/96 (new feature) In earlier versions of Tcl, strings were used as a
|
2554 |
|
|
universal representation; in Tcl 8.0 strings are replaced with Tcl_Obj
|
2555 |
|
|
structures ("objects") that can hold both a string value and an internal
|
2556 |
|
|
form such as a binary integer or compiled bytecodes. The new objects make it
|
2557 |
|
|
possible to store information in efficient internal forms and avoid the
|
2558 |
|
|
constant translations to and from strings that occurred with the old
|
2559 |
|
|
interpreter. There are new many new C APIs for managing objects. Some of the
|
2560 |
|
|
new library procedures for objects (such as Tcl_EvalObj) resemble existing
|
2561 |
|
|
string-based procedures (such as Tcl_Eval) but take advantage of the
|
2562 |
|
|
internal form stored in Tcl objects for greater speed. Other new procedures
|
2563 |
|
|
manage objects and allow extension writers to define new kinds of objects.
|
2564 |
|
|
See the manual entries doc/*Obj*.3 (BL)
|
2565 |
|
|
|
2566 |
|
|
10/24/96 (bug fix) Fixed memory leak on exit caused by some IO related
|
2567 |
|
|
data structures not being deallocated on exit because their refcount was
|
2568 |
|
|
artificially boosted. (JL)
|
2569 |
|
|
|
2570 |
|
|
10/24/96 (bug fix) Fixed core dump in Tcl_Close if called with NULL
|
2571 |
|
|
Tcl_Channel. (JL)
|
2572 |
|
|
|
2573 |
|
|
11/19/96 (new feature) Added library procedures for finding word
|
2574 |
|
|
breaks in strings in a platform specific manner. See the library.n
|
2575 |
|
|
manual entry for more information. (SS)
|
2576 |
|
|
|
2577 |
|
|
11/22/96 (feature improvements) Added support for different levels of
|
2578 |
|
|
tracing during bytecode compilation and execution. This should help in
|
2579 |
|
|
tracking down suspected problems with the compiler or with converting
|
2580 |
|
|
existing code to use Tcl8.0. Two global Tcl variables, traceCompile
|
2581 |
|
|
and traceExec, can be set to generate tracing information in stdout:
|
2582 |
|
|
- traceCompile: 0 no tracing (default)
|
2583 |
|
|
1 trace compilations of top level commands and procs
|
2584 |
|
|
2 trace and display instructions for all compilations
|
2585 |
|
|
- traceExec: 0 no tracing
|
2586 |
|
|
1 trace only calls to Tcl procs
|
2587 |
|
|
2 trace invocations of all commands including procs
|
2588 |
|
|
3 detailed trace showing the result of each instruction
|
2589 |
|
|
traceExec >= 2 provides a one line summary of each called command and
|
2590 |
|
|
its arguments. Commands that have been "compiled away" such as set are
|
2591 |
|
|
not shown. (BL)
|
2592 |
|
|
|
2593 |
|
|
11/30/96 (bug fix) The command "info nameofexecutable" could sometimes
|
2594 |
|
|
return the name of a directory. (JO)
|
2595 |
|
|
|
2596 |
|
|
11/30/96 (feature improvements) Changed the code in library/init.tcl
|
2597 |
|
|
that reads in pkgIndex.tcl so that (a) it reads the files from child
|
2598 |
|
|
directories before those in the parent, so that the parent gets
|
2599 |
|
|
precedence, and (b) it doesn't quit if there is an error in a
|
2600 |
|
|
pkgIndex.tcl file; instead, it prints an error message on standard
|
2601 |
|
|
error and continues. (JO)
|
2602 |
|
|
|
2603 |
|
|
10/5/96 (feature improvements) Partial implementation of binary string
|
2604 |
|
|
support: the ability for Tcl string values to contain embedded null bytes.
|
2605 |
|
|
Changed the Tcl object-based APIs to take a byte pointer and length pair
|
2606 |
|
|
instead of a null-terminated C string. Modified several object type managers
|
2607 |
|
|
to support binary strings but not, for example, the list type manager.
|
2608 |
|
|
Existing string-based C APIs are unchanged and will truncate binary
|
2609 |
|
|
strings. Compiled scripts containing nulls are also truncated. (BL)
|
2610 |
|
|
|
2611 |
|
|
12/12/96 (feature change) Removed the commands "cp", "mkdir", "mv",
|
2612 |
|
|
"rm", and "rmdir" from the Macintosh version of Tcl. They were never
|
2613 |
|
|
officially supported and their functionality is now available via
|
2614 |
|
|
the file command. (RJ)
|
2615 |
|
|
|
2616 |
|
|
----------------- Released 8.0a1, 12/20/96 -----------------------
|
2617 |
|
|
|
2618 |
|
|
1/7/97 (bug fix) Under Windows, "file stat c:" was returning error instead
|
2619 |
|
|
of stat for current dir on c: drive.
|
2620 |
|
|
|
2621 |
|
|
1/10/97 (new feature) Added Tcl_GetIndexFromObj procedure for quick
|
2622 |
|
|
lookups of keyword arguments. (JO)
|
2623 |
|
|
|
2624 |
|
|
1/12/97 (new feature) Serial IO channel drivers for Windows and Unix,
|
2625 |
|
|
available by using Tcl open command to open pseudo-files like "com1:" or
|
2626 |
|
|
"/dev/ttya". New option to Tcl fconfigure command for serial files:
|
2627 |
|
|
"-mode baud,parity,data,stop" to specify baud rate, parity, data bits, and
|
2628 |
|
|
stop bits. Serial IO is not yet available on Mac.
|
2629 |
|
|
|
2630 |
|
|
1/16/97 (feature change) Restored the Tcl7.x "two level substitution
|
2631 |
|
|
semantics" for expressions. Expressions not enclosed in braces are
|
2632 |
|
|
implemented, in general, by calling the expr command procedure
|
2633 |
|
|
(Tcl_ExprObjCmd) at runtime after the Tcl interpreter has already done a
|
2634 |
|
|
first round of substitutions. This is slow (about Tcl7.x speed) because new
|
2635 |
|
|
code for the expression is generally compiled each time. However, if the
|
2636 |
|
|
expression has only variable substitutions (and not command substitutions),
|
2637 |
|
|
"optimistic" fast code is generated inline. This inline code will fail if a
|
2638 |
|
|
second round of substitutions is needed (i.e., if the value of a substituted
|
2639 |
|
|
variable itself requires more substitutions). The optimistic code will
|
2640 |
|
|
catch the error and back off to call the slower but guaranteed correct
|
2641 |
|
|
expr command procedure. (BL)
|
2642 |
|
|
|
2643 |
|
|
1/16/97 (feature improvements) Added Tcl_ExprLongObj and Tcl_ExprDoubleObj
|
2644 |
|
|
to round out expression-related procedures. (BL)
|
2645 |
|
|
|
2646 |
|
|
1/16/97 (feature change) Under Windows, at startup the environment variables
|
2647 |
|
|
"path", "comspec", and "windir" in any capitalization are converted
|
2648 |
|
|
automatically to upper case. The PATH variable could be spelled as path,
|
2649 |
|
|
Path, PaTh, etc. and it makes programming rather annoying. All other
|
2650 |
|
|
environment variables are left alone. (CS)
|
2651 |
|
|
|
2652 |
|
|
1/20/97 (new features) Rewrote the "lsort" command:
|
2653 |
|
|
- The new version is based on reentrant merge sort code provided
|
2654 |
|
|
by Richard Hipp, so it eliminates the reentrancy and stability
|
2655 |
|
|
problems with the old qsort-based implementation.
|
2656 |
|
|
- The new version supports a -dictionary option for sorting, and
|
2657 |
|
|
it also supports a -index option for sorting lists using one
|
2658 |
|
|
element for comparison.
|
2659 |
|
|
- The new version is an object command, so it works well with the
|
2660 |
|
|
Tcl compiler, especially in conjunction with the new -index
|
2661 |
|
|
option. When the -index option is used, this version of lsort
|
2662 |
|
|
is more than 100 times faster than the Tcl 7.6 lsort, which had
|
2663 |
|
|
to use the -command option to get the same effect. (JO)
|
2664 |
|
|
|
2665 |
|
|
1/20/97 (feature improvements) Added the improved debugging support for Tcl
|
2666 |
|
|
objects prototyped by Karl Lehenbauer .
|
2667 |
|
|
If TCL_MEM_DEBUG is defined, the object creation calls use Tcl_DbCkalloc
|
2668 |
|
|
directly in order to record the caller's source file name and line
|
2669 |
|
|
number. (BL)
|
2670 |
|
|
|
2671 |
|
|
1/21/97 (removed feature) Desupported the tcl_precision variable: if
|
2672 |
|
|
set, it is ignored. Tcl now uses the full 17 digits of precision when
|
2673 |
|
|
converting real numbers to strings (with the new object system real
|
2674 |
|
|
numbers are rarely converted to strings so there is no efficiency
|
2675 |
|
|
disadvantage to printing all 17 digits; the new scheme improves
|
2676 |
|
|
accuracy and simplifies several APIs). (JO)
|
2677 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
2678 |
|
|
|
2679 |
|
|
1/21/97 (feature change) Removed the "interp" argument for the
|
2680 |
|
|
procedures Tcl_GetStringFromObj, Tcl_StringObjAppend, and
|
2681 |
|
|
Tcl_StringObjAppendObj. Also removed the "interp" argument for
|
2682 |
|
|
the updateStringProc procedure in Tcl_ObjType structures. With
|
2683 |
|
|
the tcl_precision changes above, these are no longer needed. (JO)
|
2684 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a1, but not with Tcl 7.6 ***
|
2685 |
|
|
|
2686 |
|
|
1/22/97 (bug fix) Fixed http.tcl so that http_reset does not result in
|
2687 |
|
|
an extra call to the command callback. In addition, if the transaction
|
2688 |
|
|
gets a premature eof, the state(status) is "eof", not "ok". (BW)
|
2689 |
|
|
|
2690 |
|
|
----------------- Released 8.0a2, 1/24/97 -----------------------
|
2691 |
|
|
|
2692 |
|
|
1/29/97 (feature change) Changed how two digit years are parsed in the
|
2693 |
|
|
clock command. The old interface just added 1900 which will seem
|
2694 |
|
|
broken by the year 2000. The new scheme follows the POSIX standard
|
2695 |
|
|
and treats dates 70-99 as 1970-1999 and dates 00-38 as 2000-2038. All
|
2696 |
|
|
other two digit dates are undefined. (RJ)
|
2697 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
2698 |
|
|
|
2699 |
|
|
2/4/97 (bug fix) Fixed bug in clock code that dealt with relative
|
2700 |
|
|
dates. Using the relative month code you could get an invalid date
|
2701 |
|
|
because it jumped into a non-existant day. (For example, Jan 31
|
2702 |
|
|
to Feb 31.) The code now will return the last valid day of the
|
2703 |
|
|
month in these situations. Thanks to Hume Smith for sending in
|
2704 |
|
|
this bug fix. (RJ)
|
2705 |
|
|
|
2706 |
|
|
2/10/97 (feature change) Eliminated Tcl_StringObjAppend and
|
2707 |
|
|
Tcl_StringObjAppendObj procedures, replaced them with Tcl_AppendToObj
|
2708 |
|
|
and Tcl_AppendStringsToObj procedures. Added new procedure
|
2709 |
|
|
Tcl_SetObjLength. (JO)
|
2710 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2, but not with Tcl 7.6 ***
|
2711 |
|
|
|
2712 |
|
|
2/10/97 (new feature) Added Tcl_WrongNumArgs procedure for generating
|
2713 |
|
|
error messages about incorrect number of arguments. (JO)
|
2714 |
|
|
|
2715 |
|
|
2/11/97 (new feature, bug fix) http package. Added -accept to http_config
|
2716 |
|
|
so you can set the Accept header. Added -handler option to http_get so
|
2717 |
|
|
you can supply your own data handler. Also fixed POST operation to
|
2718 |
|
|
set the correct MIME type on the request. (BW)
|
2719 |
|
|
|
2720 |
|
|
2/22/97 (bug fix) Fixed bug that caused $tcl_platform(osVersion) to be
|
2721 |
|
|
computed incorrectly under AIX. (JO)
|
2722 |
|
|
|
2723 |
|
|
2/25/97 (new feature, feature change) Added support for both int and long
|
2724 |
|
|
integer objects. Added Tcl_NewLongObj/Tcl_GetLongFromObj/Tcl_SetLongFromObj
|
2725 |
|
|
procedures and renamed the Tcl_Obj internalRep intValue member to
|
2726 |
|
|
longValue. Tcl_GetIntFromObj now checks for integer values too large to
|
2727 |
|
|
represent as non-long integers. Changed Tcl_GetAllObjTypes to
|
2728 |
|
|
Tcl_AppendAllObjTypes. (BL)
|
2729 |
|
|
|
2730 |
|
|
3/5/97 (new feature) Added new Tcl_SetListObj procedure to round out
|
2731 |
|
|
collection of procedures that set the type and value of existing Tcl
|
2732 |
|
|
objects. (BL)
|
2733 |
|
|
|
2734 |
|
|
3/6/97 (new feature) Added -global flag for interp invokehidden. (JL)
|
2735 |
|
|
|
2736 |
|
|
3/6/97 (new feature, feature change) Added isNativeObjectProc field to the
|
2737 |
|
|
Tcl_CmdInfo structure to indicate (when 1) if the command has an
|
2738 |
|
|
object-based command procedure. Removed the nameLength arg from
|
2739 |
|
|
Tcl_CreateObjCommand since command names can't contain null characters. (BL)
|
2740 |
|
|
|
2741 |
|
|
3/6/97 (bug fix) Fixed bug in "unknown" procedure that caused auto-
|
2742 |
|
|
loading to fail on commands whose names begin with digits. (JO)
|
2743 |
|
|
|
2744 |
|
|
3/7/97 (bug fix) Auto-loading now works in Safe Base. Safe interpreters
|
2745 |
|
|
only accept the Version 2 and onwards tclIndex files. (JL)
|
2746 |
|
|
|
2747 |
|
|
3/13/97 (bug fix) Fixed core dump due to interaction between aliases and
|
2748 |
|
|
hidden commands. Bug found by Lindsay Marshall. (JL)
|
2749 |
|
|
|
2750 |
|
|
3/14/97 (bug fix) Fixed mac bugs relating to time. The -gmt option
|
2751 |
|
|
now adjusts the time in the correct direction. (Thanks to Ed Hume for
|
2752 |
|
|
reporting a fix to this problem.) Also fixed file "mtime" etc. to
|
2753 |
|
|
return times from GMT rather than local time zone. (RJ)
|
2754 |
|
|
|
2755 |
|
|
3/18/97 (feature change) Declaration of objv in Tcl_ObjCmdProc function
|
2756 |
|
|
changed from "Tcl_Obj *objv[]" to "Tcl_Obj *CONST objv[]". All Tcl object
|
2757 |
|
|
commands changed to use new declaration of objv. Naive translation of
|
2758 |
|
|
string-based command procs to object-based command procs could very easily
|
2759 |
|
|
have yielded code where the contents of the objv array were changed. This
|
2760 |
|
|
is not a problem with string-based command procs, but doing something as
|
2761 |
|
|
simple as objv[2] = objv[3] would corrupt the runtime stack and cause Tcl to
|
2762 |
|
|
crash. Introduced CONST in declaration of objv so that attempted assignment
|
2763 |
|
|
of new pointer values to elements of the objv array will be caught by the
|
2764 |
|
|
compiler. (CCS)
|
2765 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 ***
|
2766 |
|
|
|
2767 |
|
|
3/19/97 (bug fix) Fixed panic due to object sharing. The root cause was
|
2768 |
|
|
that old code was using Tcl_ResetResult instead of Tcl_ResetObjResult. (JL)
|
2769 |
|
|
|
2770 |
|
|
3/20/97 (new feature) Added a new subcommand for the file
|
2771 |
|
|
command. file attributes filename can give a list of platform-specific
|
2772 |
|
|
options (such as file/creator type on the Mac, permissions on Unix) or
|
2773 |
|
|
set the values of them. Added a new subcommand for the file
|
2774 |
|
|
command. file nativename name gives back the platform-specific form
|
2775 |
|
|
for the file. This is useful when the filename is needed to pass to
|
2776 |
|
|
the OS, such as exec under Windows 95 or AppleScript on the Mac. For
|
2777 |
|
|
more info, see file.n. (SRP)
|
2778 |
|
|
|
2779 |
|
|
3/24/97 (removed feature) Removed the tcl_safePolicyPath procedure. Now
|
2780 |
|
|
the policy path is computed from the auto_path by appending the directory
|
2781 |
|
|
'policies' to each element. Also fixed several bugs in automatic tracking
|
2782 |
|
|
of auto_path by computed policy path. (JL)
|
2783 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 ***
|
2784 |
|
|
|
2785 |
|
|
4/8/97 (new feature) If the variable whose name is passed to lappend doesn't
|
2786 |
|
|
already exist, and there are no value arguments, lappend now creates the
|
2787 |
|
|
variable with an empty value instead of returning an error. Change suggested
|
2788 |
|
|
by Tom Tromey. (BL)
|
2789 |
|
|
|
2790 |
|
|
4/9/97 (feature change) Changed the name of the TCL_PART1_NOT_PARSED flag to
|
2791 |
|
|
TCL_PARSE_PART1. (BL)
|
2792 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 ***
|
2793 |
|
|
|
2794 |
|
|
4/10/97 (bug fixes) Fixed various compilation-related bugs:
|
2795 |
|
|
- "UpdateStringOfCmdName should never be invoked" panic.
|
2796 |
|
|
- Bad code generated for expressions not in {}'s inside catch commands.
|
2797 |
|
|
- Segmentation fault in some command procedures when two argument
|
2798 |
|
|
object pointers refer to the same object.
|
2799 |
|
|
- Second level of substitutions were never done for expressions not
|
2800 |
|
|
in {}'s that consist of a single variable reference: e.g.,
|
2801 |
|
|
"set x 27; set bool {$x}; if $bool {puts foo}" would fail with error.
|
2802 |
|
|
- Bad code generated when code storage was grown while compiling some
|
2803 |
|
|
expressions: ones with compilation errors or consisting of only a
|
2804 |
|
|
variable reference.
|
2805 |
|
|
- Bugs involving multiple interpreters: wasn't checking that a
|
2806 |
|
|
procedure's code was compiled for the same interpreter as the one
|
2807 |
|
|
executing it, and didn't invalidate code on hidden-exposed command
|
2808 |
|
|
transitions.
|
2809 |
|
|
- "Bad stack top" panic when executing scripts that require a huge
|
2810 |
|
|
amount of stack space.
|
2811 |
|
|
- Incorrect sharing of code for procedure bodies, and procedure code
|
2812 |
|
|
deallocated before last execution of the procedure finished.
|
2813 |
|
|
- Fixed compilation of expression words in quotes. For example,
|
2814 |
|
|
if "0 < 3" {puts foo}.
|
2815 |
|
|
- Fixed performance bug in array set command with large assignments.
|
2816 |
|
|
- Tcl_SetObjLength segmentation fault setting length of empty object.
|
2817 |
|
|
- If Tcl_SetObjectResult was passed the same object as the interpreter's
|
2818 |
|
|
result object, it freed the object instead of doing nothing. Bug fix
|
2819 |
|
|
by Michael J. McLennan.
|
2820 |
|
|
- Tcl_ListObjAppendList inserted elements from the wrong list. Bug fix
|
2821 |
|
|
by Michael J. McLennan.
|
2822 |
|
|
- Segmentation fault if empty variable list was specified in a foreach
|
2823 |
|
|
command. Bug fix by Jan Nijtmans.
|
2824 |
|
|
- NULL command name was always passed to Tcl_CreateTrace callback
|
2825 |
|
|
procedure.
|
2826 |
|
|
- Wrong string representation generated for the value LONG_MIN.
|
2827 |
|
|
For example, expr 1<<31 printed incorrectly on a 32 bit machine.
|
2828 |
|
|
- "set {a($x)} 1" stored value in wrong variable.
|
2829 |
|
|
- Tcl_GetBooleanFromObj was not checking for garbage after a numeric
|
2830 |
|
|
value.
|
2831 |
|
|
- Garbled "bad operand type" error message when evaluating expressions
|
2832 |
|
|
not surrounded by {}'s. (BL)
|
2833 |
|
|
|
2834 |
|
|
4/16/97 (new feature) The expr command now has the "rand()" and
|
2835 |
|
|
"srand()" functions for getting random numbers in expr. (RJ)
|
2836 |
|
|
|
2837 |
|
|
4/23/97 (bug fix) Fixed core dump in bgerror when the error handler command
|
2838 |
|
|
deletes the current interpreter. Found by Juergen Schoenwald. (JL)
|
2839 |
|
|
|
2840 |
|
|
4/23/97 (feature change) The notifier interfaces have been redesigned
|
2841 |
|
|
to make embedding in applications with external event loops possible.
|
2842 |
|
|
A number of interfaces in the notifier and the channel drivers have
|
2843 |
|
|
changed. Refer to the Notifier.3 and CrtChannel.3 manual entries for
|
2844 |
|
|
more details. (SS)
|
2845 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
2846 |
|
|
|
2847 |
|
|
4/23/97 (removed feature) The Tcl_File interfaces have been removed.
|
2848 |
|
|
The Tcl_CreateFileHandler/Tcl_DeleteFileHandler interfaces now take
|
2849 |
|
|
Unix fd's and are only supported on the Unix platform.
|
2850 |
|
|
Tcl_GetChannelFile has been replaced with Tcl_GetChannelHandle.
|
2851 |
|
|
Tcl_MakeFileChannel now takes a platform specific file handle. (SS)
|
2852 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
2853 |
|
|
|
2854 |
|
|
4/23/97 (removed feature) The modal timeout interface has been
|
2855 |
|
|
removed (Tcl_CreateModalTimeout/Tcl_DeleteModalTimeout) (SS)
|
2856 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
2857 |
|
|
|
2858 |
|
|
4/23/97 (feature change) Channel drivers are now required to correctly
|
2859 |
|
|
implement blocking behavior when they are in blocking mode. (SS)
|
2860 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
2861 |
|
|
|
2862 |
|
|
4/23/97 (new feature) Added the "binary" command for manipulating
|
2863 |
|
|
binary strings. Also, changed the "puts", "gets", and "read" commands
|
2864 |
|
|
to preserve embedded nulls. (SS)
|
2865 |
|
|
|
2866 |
|
|
4/23/97 (new feature) Added tcl_platform(byteOrder) element to the
|
2867 |
|
|
tcl_platform array to identify the native byte order for the current
|
2868 |
|
|
host. (SS)
|
2869 |
|
|
|
2870 |
|
|
4/23/97 (bug fix) Fixed bug in date parsing around year boundaries. (SS)
|
2871 |
|
|
|
2872 |
|
|
4/24/97 (bug fix) In the process of copying a file owned by another user,
|
2873 |
|
|
Tcl was changing the owner of the copy back to the owner of the original
|
2874 |
|
|
file, therefore causing further file operations to fail because the current
|
2875 |
|
|
user didn't own the copy anymore. The owner of the copy is now left as the
|
2876 |
|
|
current user. (CCS)
|
2877 |
|
|
|
2878 |
|
|
4/24/97 (feature change) Under Windows, don't automatically uppercase the
|
2879 |
|
|
environment variable "windir" -- it's supposed to be lower case. (CCS)
|
2880 |
|
|
|
2881 |
|
|
4/29/97 (new feature) Added namespace support based on a namespace
|
2882 |
|
|
implementation by Michael J. McLennan of Lucent Technologies. A namespace
|
2883 |
|
|
encapsulates a collection of commands and variables to ensure that they
|
2884 |
|
|
won't interfere the commands and variables of other namespaces. The global
|
2885 |
|
|
namespace holds all global variables and commands. Additional namespaces are
|
2886 |
|
|
created with the new namespace command. The new variable command lets you
|
2887 |
|
|
create Tcl variables inside a namespace. The names of Tcl variables and
|
2888 |
|
|
commands may now be qualified by the name of the namespace containing them.
|
2889 |
|
|
The key namespace-related commands are summarized below:
|
2890 |
|
|
- namespace ?eval? name arg ?arg...?
|
2891 |
|
|
Used to define the commands and variables in a namespace.
|
2892 |
|
|
Optionally creates the namespace.
|
2893 |
|
|
- namespace export ?-clear? ?pattern pattern...?
|
2894 |
|
|
Specifies which commands are exported from a namespace. These
|
2895 |
|
|
are the ones that can be imported into another namespace.
|
2896 |
|
|
- namespace import ?-force? ?pattern pattern...?
|
2897 |
|
|
Makes the specified commands accessible in the current namespace.
|
2898 |
|
|
- namespace current
|
2899 |
|
|
Returns the name of the current namespace.
|
2900 |
|
|
- variable name ?value? ?name ?value?...?
|
2901 |
|
|
Creates one or more namespace variables. (BTL)
|
2902 |
|
|
|
2903 |
|
|
5/1/97 (bug fix) Under Windows, file times were reported in GMT. Should be
|
2904 |
|
|
reported in local time. (CCS)
|
2905 |
|
|
|
2906 |
|
|
5/2/97 (feature change) Changed the name of the two Tcl variables used for
|
2907 |
|
|
tracing bytecode compilation and execution to tcl_traceCompile and
|
2908 |
|
|
tcl_traceExec respectively. These variables are now documented in the
|
2909 |
|
|
tclvars man page. (BL)
|
2910 |
|
|
|
2911 |
|
|
5/5/97 (new feature) Support "end" as the index for "lsort -index". (BW)
|
2912 |
|
|
|
2913 |
|
|
5/5/97 (bug fixes) Cleaned up the way the http package resets connections (BW)
|
2914 |
|
|
|
2915 |
|
|
5/8/97 (feature change) Newly created Tcl objects now have a reference count
|
2916 |
|
|
of zero instead of one. This simplifies C code that stores newly created
|
2917 |
|
|
objects in Tcl variables or in data structures such as list objects. That C
|
2918 |
|
|
code must increment the new object's reference count since the variable or
|
2919 |
|
|
data structure will contain a long-term reference to the object. Formerly,
|
2920 |
|
|
when new objects started out with reference count one, it was necessary to
|
2921 |
|
|
decrement the new object's reference count after the store to make sure it
|
2922 |
|
|
was left with the correct value; this is no longer necessary. (BL)
|
2923 |
|
|
|
2924 |
|
|
5/9/97 (new feature) Added the Tcl_GetsObj interface that takes an
|
2925 |
|
|
object reference instead of a dynamic string (as in Tcl_Gets). (SS)
|
2926 |
|
|
|
2927 |
|
|
5/12/97 (new feature) Added Tcl_CreateAliasObj and Tcl_GetAliasObj C APIs
|
2928 |
|
|
to allow an alias command to be created with a vector of Tcl_Obj structures
|
2929 |
|
|
and to get the vector back later. (JL)
|
2930 |
|
|
|
2931 |
|
|
5/12/97 (feature change) Changed Tcl_ExposeCommand and Tcl_HideCommand to
|
2932 |
|
|
leave an object result instead of a string result. (JL)
|
2933 |
|
|
|
2934 |
|
|
5/14/97 (feature change) Improved the handling of the interpreter result.
|
2935 |
|
|
This is still either an object or a string, but the two values are now kept
|
2936 |
|
|
consistent unless some C code reads or writes interp->result directly. See
|
2937 |
|
|
the SetResult man page for details. Removed the Tcl_ResetObjResult
|
2938 |
|
|
procedure. (BL)
|
2939 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 ***
|
2940 |
|
|
|
2941 |
|
|
5/16/97 (new feature) Added "fcopy" command to move data between
|
2942 |
|
|
channels. Refer to the manual page for more information. Removed the
|
2943 |
|
|
"unsupported0" command since it is obsolete now. (SS)
|
2944 |
|
|
|
2945 |
|
|
5/16/97 (new feature) Added Tcl_GetStringResult procedure to allow programs
|
2946 |
|
|
to get an interpreter's result as a string. If the result was previously set
|
2947 |
|
|
to an object, this procedure will convert the object to a string. Use of
|
2948 |
|
|
Tcl_GetStringResult is intended to replace direct access to interp->result,
|
2949 |
|
|
which is not safe. (BL)
|
2950 |
|
|
|
2951 |
|
|
5/20/97 (new features) Fixed "fcopy" to return the number of bytes
|
2952 |
|
|
transferred in the blocking case. Updated the http package to use
|
2953 |
|
|
fcopy instead of unsupported0. Added -timeout and -handler options to
|
2954 |
|
|
http_get. http_get is now blocking by default. It is only non-blocking
|
2955 |
|
|
if you supply a -command argument. (BW)
|
2956 |
|
|
|
2957 |
|
|
5/22/97 (bug fix) Fixed several bugs in the "lsort" command having to do
|
2958 |
|
|
with the -dictionary option and the presence of numbers embedded in the
|
2959 |
|
|
strings. (JO)
|
2960 |
|
|
|
2961 |
|
|
----------------- Released 8.0b1, 5/27/97 -----------------------
|
2962 |
|
|
|
2963 |
|
|
6/2/97 (bug fix) Fixed bug in startup code that caused a problem in
|
2964 |
|
|
finding the library files when they are installed in a directory
|
2965 |
|
|
containing a space in the name. (SS)
|
2966 |
|
|
|
2967 |
|
|
6/2/97 (bug fix) Fixed bug in Unix notifier where the select mask was
|
2968 |
|
|
not being cleared under some circumstances. (SS)
|
2969 |
|
|
|
2970 |
|
|
6/4/97 (bug fix) Fixed bug that prevented creation of Tk widgets in
|
2971 |
|
|
namespaces. Tcl_CreateObjCommand and Tcl_CreateCommand now always create
|
2972 |
|
|
commands in the global namespace unless the command names are qualified. Tcl
|
2973 |
|
|
procedures continue to be created in the current namespace by default. (BL)
|
2974 |
|
|
|
2975 |
|
|
6/6/97 (new features) Added new namespace API procedures
|
2976 |
|
|
Tcl_AppendExportList and Tcl_Export to allow C code to get and set a
|
2977 |
|
|
namespace's export list. (BL)
|
2978 |
|
|
|
2979 |
|
|
6/11/97 (new feature) Added Tcl_ConcatObj. This object-based routine
|
2980 |
|
|
parallels the string-based routine Tcl_Concat. (SRP)
|
2981 |
|
|
|
2982 |
|
|
6/11/97 (new feature) Added Tcl_SetObjErrorCode. This object-based
|
2983 |
|
|
routines parallels the string-based routine Tcl_SetErrorCode. (SRP)
|
2984 |
|
|
|
2985 |
|
|
6/12/97 (bug fix) Fix the "unknown" procedure so that wish under Windows
|
2986 |
|
|
will exec an external program, instead of always complaining "console1 not
|
2987 |
|
|
opened for writing". (CCS)
|
2988 |
|
|
|
2989 |
|
|
6/12/97 (bug fix) Fixed core dump experienced by the following simple
|
2990 |
|
|
script:
|
2991 |
|
|
interp create x
|
2992 |
|
|
x alias exec exec
|
2993 |
|
|
interp delete x
|
2994 |
|
|
This panic was caused by not installing the new CmdDeleteProc when exec
|
2995 |
|
|
got redefined by the alias creation step. Reported by Lindsay Marshal (JL)
|
2996 |
|
|
|
2997 |
|
|
6/13/97 (new features) Tcl objects newly created by Tcl_NewObj now have a
|
2998 |
|
|
string representation that points to a shared heap string of length 1. (They
|
2999 |
|
|
used to have NULL bytes and typePtr fields. This was treated as a special
|
3000 |
|
|
case to indicate an empty string, but made type manager implementations
|
3001 |
|
|
complex and error prone.) The new procedure Tcl_InvalidateStringRep is used
|
3002 |
|
|
to mark an object's string representation invalid and to free any storage
|
3003 |
|
|
associated with the old string representation. (BL)
|
3004 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 ***
|
3005 |
|
|
|
3006 |
|
|
6/16/97 (bug fix) Tcl_ScanCountedElement could leave braces unmatched
|
3007 |
|
|
if the string ended with a backslash. (JO)
|
3008 |
|
|
|
3009 |
|
|
6/17/97 (bug fix) Fixed channel event bug where readable events would be
|
3010 |
|
|
lost during recursive events loops if the input buffers contained
|
3011 |
|
|
data. (SS)
|
3012 |
|
|
|
3013 |
|
|
6/17/97 (bug fix) Fixed bug in Windows socket code that didn't
|
3014 |
|
|
reenable read events in the case where an external entity is also
|
3015 |
|
|
reading from the socket. (SS)
|
3016 |
|
|
|
3017 |
|
|
6/18/97 (bug fix) Changed initial setting of the notifier service mode
|
3018 |
|
|
to TCL_SERVICE_NONE to avoid unexpected event handling during
|
3019 |
|
|
initialization. (SS)
|
3020 |
|
|
|
3021 |
|
|
6/19/97 (bug fix/feature change) The command callback to fcopy is now
|
3022 |
|
|
called in case of errors during the background copy. This adds a second,
|
3023 |
|
|
optional argument to the callback that is the error string. The callback
|
3024 |
|
|
in case of errors is required for proper cleanup by the user of fcopy. (BW)
|
3025 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 ***
|
3026 |
|
|
|
3027 |
|
|
6/19/97 (bug fix) Fixed a panic due to the following four line script:
|
3028 |
|
|
interp create x
|
3029 |
|
|
x alias foo bar
|
3030 |
|
|
x eval rename foo blotz
|
3031 |
|
|
x alias foo {}
|
3032 |
|
|
The problem was that the interp code was not using the actual current name
|
3033 |
|
|
of the command to be deleted as a result of un-aliasing foo. (JL)
|
3034 |
|
|
|
3035 |
|
|
6/19/97 (feature change) Pass interp down to the ChannelOption and
|
3036 |
|
|
driver specific calls so system errors can be differentiated from syntax
|
3037 |
|
|
ones. Changed Tcl_DriverGetOptionProc type. Affects Tcl_GetChannelOption,
|
3038 |
|
|
TcpGetOptionProc, TtyGetOptionProc, etc. (DL)
|
3039 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
3040 |
|
|
|
3041 |
|
|
6/19/97 (new feature) Added Tcl_BadChannelOption for use by by driver
|
3042 |
|
|
specific option procedures (Set and Get) to return a complete and
|
3043 |
|
|
meaningful error message. (DL)
|
3044 |
|
|
|
3045 |
|
|
6/19/97 (bug fixes) If a system call error occurs while doing an
|
3046 |
|
|
fconfigure on tcp or tty/com channel: return the appropriate error
|
3047 |
|
|
message (instead of the syntax error one or none). (Fixed for Unix and
|
3048 |
|
|
most of the Win and Mac drivers). (DL)
|
3049 |
|
|
|
3050 |
|
|
6/20/97 (feature change) Eval is no longer assumed as the subcommand name
|
3051 |
|
|
in namespace commands: you must now write "namespace eval nsName {...}".
|
3052 |
|
|
Abbreviations of namespace subcommand names are now allowed. (BL)
|
3053 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 ***
|
3054 |
|
|
|
3055 |
|
|
6/20/97 (feature change) Changed the errorInfo traceback message for
|
3056 |
|
|
compilation errors from "invoked from within" to "while compiling". (BL)
|
3057 |
|
|
|
3058 |
|
|
6/20/97 (bug fixes) Fixed various compilation-related bugs:
|
3059 |
|
|
- "UpdateStringOfCmdName should never be called" and
|
3060 |
|
|
"UpdateStringOfByteCode should never be called" panics.
|
3061 |
|
|
- Segfault in TclObjInterpProc getting procedure name after evaluation
|
3062 |
|
|
stack is reallocated (grown).
|
3063 |
|
|
- Could not use ":" at end of variable and command names.
|
3064 |
|
|
- Bad code generated for while and for commands with test expressions
|
3065 |
|
|
enclosed in quotes: e.g., "set i 0; while "$i > 5" {}".
|
3066 |
|
|
- Command trace procedures would crash if they did a Tcl_EvalObj that
|
3067 |
|
|
reallocated the evaluation stack.
|
3068 |
|
|
- Break and continue commands did not reset the interpreter result.
|
3069 |
|
|
- The Tcl_ExprXXX routines, both string- or object-based, always
|
3070 |
|
|
modified the interpreter result even if there was no error.
|
3071 |
|
|
- The argument parsing procedure used by several compile procedures
|
3072 |
|
|
always treated "]" as end of a command: e.g., "set a ]" would fail.
|
3073 |
|
|
- Changed errorInfo traceback message for compilation errors from
|
3074 |
|
|
"invoked from within" to "while compiling".
|
3075 |
|
|
- Problem initializing Tcl object managers during interpreter creation.
|
3076 |
|
|
- Added check and error message if formal parameter to a procedure is
|
3077 |
|
|
an array element. (BL)
|
3078 |
|
|
|
3079 |
|
|
6/23/97 (new feature) Added "registry" package to allow manipulation
|
3080 |
|
|
of the Windows system registry. See manual entry for details. (SS)
|
3081 |
|
|
|
3082 |
|
|
6/24/97 (feature change) Converted http to a package and added the
|
3083 |
|
|
http1.0 subdirectory of the Tcl script library. This means you have
|
3084 |
|
|
to do a "package require http" to use this, as advertised in the man page. (BW)
|
3085 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 ***
|
3086 |
|
|
|
3087 |
|
|
6/24/97 (bug fix) Ensure that Tcl_Set/GetVar C APIs, when called without
|
3088 |
|
|
TCL_LEAVE_ERR_MSG, don't touch the interp result. (DL)
|
3089 |
|
|
|
3090 |
|
|
6/26/97 (feature change) Changed name of Tcl_ExprStringObj to
|
3091 |
|
|
Tcl_ExprObj. (BL)
|
3092 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 ***
|
3093 |
|
|
|
3094 |
|
|
----------------- Released 8.0b2, 6/30/97 -----------------------
|
3095 |
|
|
|
3096 |
|
|
7/1/97 (new feature) TCL_BUILD_SHARED flag set in tclConfig.sh
|
3097 |
|
|
when Tcl has been built with --enable-shared. A new tclLibObjs
|
3098 |
|
|
make target, echoing the list of the .o's needed to build a tcl
|
3099 |
|
|
library, is now provided. (DL)
|
3100 |
|
|
|
3101 |
|
|
7/1/97 (feature change) compat/getcwd.c removed and changed the
|
3102 |
|
|
only place where getcwd is used so a new USEGETWD flag selects
|
3103 |
|
|
the use of the replacement "getwd". Adding this flag is recommended
|
3104 |
|
|
for SunOS 4 (because getcwd on SunOS 4 uses a pipe to pwd(1)!). (DL)
|
3105 |
|
|
|
3106 |
|
|
7/7/97 (feature change) The split command now supports binary data (i.e.,
|
3107 |
|
|
null characters in strings). (BL)
|
3108 |
|
|
|
3109 |
|
|
7/7/97 (bug fix) string first returned the wrong result if the first
|
3110 |
|
|
argument string was empty. (BL)
|
3111 |
|
|
|
3112 |
|
|
7/8/97 (bug fix) Fixed core dump in fcopy that could occur when a command
|
3113 |
|
|
callback was supplied and an error or eof condition caused no background
|
3114 |
|
|
activity. A refcount bug triggered a panic in Tcl_ListObjAppendElement. (BW)
|
3115 |
|
|
|
3116 |
|
|
7/8/97 (bug fix) Relaxed the pattern matching on http_get so you do not
|
3117 |
|
|
need a trailing path component. You can now get away with just
|
3118 |
|
|
http_get sunscript.sun.com (BW)
|
3119 |
|
|
|
3120 |
|
|
7/9/97 (bug fix) Creating anonymous interpreters no longer smashes existing
|
3121 |
|
|
commands with names similar to the generated name. Previously creating an
|
3122 |
|
|
anonymous interpreter could smash an existing command, now it skips until
|
3123 |
|
|
it finds a command name that isn't being used. (JL)
|
3124 |
|
|
|
3125 |
|
|
7/9/97 (feature change) Removed the policy management mechanism from the
|
3126 |
|
|
Safe Base; left the aliases to source and load modules, and to do a limited
|
3127 |
|
|
form of the "file" command. See entry of 11/15/96. (JL)
|
3128 |
|
|
|
3129 |
|
|
7/9/97 (bug fixes) Fixed various compilation-related bugs:
|
3130 |
|
|
- Line numbers in errorInfo now are the same as those in Tcl7.6 unless
|
3131 |
|
|
there are compilation errors. Compilation error messages now include the
|
3132 |
|
|
entire command in error.
|
3133 |
|
|
- Trailing ::s after namespace names weren't being ignored.
|
3134 |
|
|
- Could not refer to an namespace variable with an empty name using a
|
3135 |
|
|
name of the form "n::". (BL)
|
3136 |
|
|
|
3137 |
|
|
7/9/97 (bug fix) Fixed bug in Tcl_Export that prevented you from exporting
|
3138 |
|
|
from other than the current namespace. (BL)
|
3139 |
|
|
|
3140 |
|
|
7/9/97 (bug fix) env.test was removing env var needed for proper finding
|
3141 |
|
|
of libraries in child process. (DL)
|
3142 |
|
|
|
3143 |
|
|
7/10/97 (bug fixes/new feature) Cleanup in Tcl_MakeSafe. Less information
|
3144 |
|
|
is leaked to safe interps. Error message fixes for interp sub commands.
|
3145 |
|
|
Likewise changes in safealias.tcl; tcl_safeCreateInterp can now be called
|
3146 |
|
|
without argument to generate the slave name (like in interp create). (DL)
|
3147 |
|
|
|
3148 |
|
|
7/10/97 (bug fixes) Bytecode compiler now generates more detailed
|
3149 |
|
|
command location information: subcommands as well as commands now have
|
3150 |
|
|
location information. This means command trace procedures now get the
|
3151 |
|
|
correct source string for each command in their command parameter. (BL)
|
3152 |
|
|
|
3153 |
|
|
7/22/97 (bug fixes) Performance improvement in Safe interpreters
|
3154 |
|
|
handling. Added new mask value to (tclInt.h) Interp.flags record. (DL)
|
3155 |
|
|
|
3156 |
|
|
7/22/97 (bug fix) Fixed panic in 'interp target {} foo'. This bug
|
3157 |
|
|
was present since Tcl 7.6. (JL)
|
3158 |
|
|
|
3159 |
|
|
7/22/97 (bug fix) Fixed bug in compilation of procedures in namespaces: the
|
3160 |
|
|
procedure's namespace must be used to look up compile procedures, not the
|
3161 |
|
|
current namespace. (BL)
|
3162 |
|
|
|
3163 |
|
|
7/22/97 (bug fix) Use of the -channel option of http_get was not setting
|
3164 |
|
|
the end of line translations mode on the channel, so copying binary data
|
3165 |
|
|
with the -channel option was corrupting the result on non-unix platforms. (BW)
|
3166 |
|
|
|
3167 |
|
|
7/22/97 (bug fixes) file commands and ~user (seg fault and other
|
3168 |
|
|
improper returns). (DL)
|
3169 |
|
|
|
3170 |
|
|
7/23/97 (feature change) Reenabled "vwait" in Safe Base. (JL)
|
3171 |
|
|
|
3172 |
|
|
7/23/97 (bug fixes) Fixed two bugs involving read traces on array variables
|
3173 |
|
|
in procedures: trace procedures were sometimes not called, and reading
|
3174 |
|
|
nonexistant array elements didn't create undefined element variables that
|
3175 |
|
|
could later be defined by trace procedures. (BL)
|
3176 |
|
|
|
3177 |
|
|
7/24/97 (bug fix) Windows memory allocation performance was
|
3178 |
|
|
superlinear in some cases. Made the Mac allocator generic and changed
|
3179 |
|
|
both the Mac and Windows platforms to use the new allocator instead of
|
3180 |
|
|
malloc and free. (SS)
|
3181 |
|
|
|
3182 |
|
|
7/24/97 - 8/12/97 (bug fixes/change of features) Completely revamped safe
|
3183 |
|
|
sourcing/loading (see safe.n) to hide pathnames, use virtual
|
3184 |
|
|
paths tokens instead, improved security in several respects and made it
|
3185 |
|
|
more tunable. Multi level interp loading can work too now. Package auto
|
3186 |
|
|
loading now works in safe interps as long as the package directory is in
|
3187 |
|
|
the auto_path (no deep crawling allowed in safe interps). (DL)
|
3188 |
|
|
*** POTENTIAL INCOMPATIBILITY with previous alpha and beta releases ***
|
3189 |
|
|
|
3190 |
|
|
7/24/97 (bug fixes) Made Tcl_SetVar* and Tcl_NewString* treat a NULL value
|
3191 |
|
|
as an empty string. (This fixes hairy crash case where you would crash
|
3192 |
|
|
because load command for other interps assumed presence of
|
3193 |
|
|
errorInfo...). (DL)
|
3194 |
|
|
|
3195 |
|
|
7/28/97 (bug fix) Fixed pkg_mkIndex to understand namespaces. It will
|
3196 |
|
|
use the export list of a namespace and create auto_index entries for
|
3197 |
|
|
all export commands. Those names are in their fully qualified form in the
|
3198 |
|
|
auto_index. Therefore, I tweaked unknown to try both $cmd and ::$cmd.
|
3199 |
|
|
Also fixed pkg_mkIndex so you can have "package require" commands inside
|
3200 |
|
|
your packages. These commands are ignored, which is mostly ok except
|
3201 |
|
|
when you must load another package before loading yours because of
|
3202 |
|
|
linking dependencies. (BW)
|
3203 |
|
|
|
3204 |
|
|
7/28/97 (bug fix) A variable created by the variable command now persists
|
3205 |
|
|
until the namespace is destroyed or the variable is unset. This is true even
|
3206 |
|
|
if the variable has not been initialized; these variables used to be
|
3207 |
|
|
destroyed if an error occurred when accessing them. In addition, the "info
|
3208 |
|
|
vars" command lists uninitialized namespace variables, while the "info
|
3209 |
|
|
exists" command returns 0 for them. (BL)
|
3210 |
|
|
|
3211 |
|
|
7/29/97 (feature change) Changed the http package to use the ::http
|
3212 |
|
|
namespace. http_get renamed to http::geturl, http_config renamed to
|
3213 |
|
|
http::config, http_formatQuery renamed to http::formatQuery.
|
3214 |
|
|
It now provides the 2.0 version of the package.
|
3215 |
|
|
The 1.0 version is still available with the old names.
|
3216 |
|
|
*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b2 but not with Tcl 7.6 ***
|
3217 |
|
|
|
3218 |
|
|
7/29/97 (bug fix, new feature) Tcl_Main now uses Tcl objects internally to
|
3219 |
|
|
preserve NULLs in commands and command output. Added new API procedure
|
3220 |
|
|
Tcl_RecordAndEvalObj that resembles Tcl_RecordAndEval but takes an object
|
3221 |
|
|
containing a command. (BL)
|
3222 |
|
|
|
3223 |
|
|
7/30/97 (bug fix) Tcl freed strings in the environ array even if it
|
3224 |
|
|
did not allocate them. (SS)
|
3225 |
|
|
|
3226 |
|
|
7/30/97 (bug fix) If a procedure is renamed into a different namespace, it
|
3227 |
|
|
now executes in the context of that namespace. (BL)
|
3228 |
|
|
|
3229 |
|
|
7/30/97 (bug fix) Prevent renaming of commands into and from namespaces as
|
3230 |
|
|
part of hiding them. (JL)
|
3231 |
|
|
|
3232 |
|
|
7/31/97 (feature change) Moved the history command from C to tcl.
|
3233 |
|
|
This uses the ::history namespace. The "words" and "substitute" options
|
3234 |
|
|
are no longer supported. In addition, the "keep" option without a value
|
3235 |
|
|
returns the current keep limit. There is a new "clear" option.
|
3236 |
|
|
The unknown command now supports !! again. (BW)
|
3237 |
|
|
*** POTENTIAL INCOMPATIBILTY ***
|
3238 |
|
|
|
3239 |
|
|
7/30/97 (bug fix) Made sure that a slave can not fool the master into
|
3240 |
|
|
hiding the wrong command. Made sure we don't crash in hiding + namespaces
|
3241 |
|
|
issues. (DL)
|
3242 |
|
|
|
3243 |
|
|
8/4/97 (bug fix) Concat, eval, uplevel, and similar commands were
|
3244 |
|
|
incorrectly trimming trailing space characters from their arguments
|
3245 |
|
|
even when the space characters were preceded by a backslash. (JO)
|
3246 |
|
|
|
3247 |
|
|
8/4/97 (bug fix) Removed the hard link between bgerror and tkerror.
|
3248 |
|
|
Only bgerror is supported in tcl core. Tk will still look for a
|
3249 |
|
|
tkerror but using regular tcl code for that feature. (DL)
|
3250 |
|
|
*** POTENTIAL INCOMPATIBILTY with code relying on the hard link ***
|
3251 |
|
|
|
3252 |
|
|
8/6/97 (bug fix) Reduced size required for compiled bytecodes by using a
|
3253 |
|
|
more compact encoding for the command pc-to-source map. (BL)
|
3254 |
|
|
|
3255 |
|
|
8/6/97 (new feature) Added support for additional compilation and execution
|
3256 |
|
|
statistics when Tcl is compiled with the TCL_COMPILE_STATS flag. (BL)
|
3257 |
|
|
|
3258 |
|
|
8/7/97 (bug fix) Expressions not in {}s that have a comparison operator as
|
3259 |
|
|
the topmost operator must be compiled out-of-line (call the expr cmd at
|
3260 |
|
|
runtime) to properly support expr's two-level substitution semantics. An
|
3261 |
|
|
example is "set a 2; set b {$a}; puts [expr $b == 2]". (BL)
|
3262 |
|
|
|
3263 |
|
|
8/11/97 (bug fix) The catch command would sometimes crash if a variable name
|
3264 |
|
|
was given and the bytecode evaluation stack was grown when executing the
|
3265 |
|
|
argument script. (BL)
|
3266 |
|
|
|
3267 |
|
|
8/12/97 (feature change) Reinstated the variable tcl_precision to control
|
3268 |
|
|
the number of digits used when floating-point values are converted to
|
3269 |
|
|
strings, with default of 12 digits. However, had to make tcl_precision
|
3270 |
|
|
shared among all interpreters (except that safe interpreters can't
|
3271 |
|
|
modify it). This makes the Tcl 8.0 behavior almost identical to 7.6
|
3272 |
|
|
except that the default precision is 12 instead of 6. (JO)
|
3273 |
|
|
*** POTENTIAL INCOMPATIBILITY ***
|
3274 |
|
|
|
3275 |
|
|
----------------- Released 8.0, 8/18/97 -----------------------
|
3276 |
|
|
|
3277 |
|
|
8/19/97 (bug fix) Minimal fix for glob -nocomplain bugs:
|
3278 |
|
|
"glob -nocomplain unreadableDir/*" was generating an anonymous
|
3279 |
|
|
error. More in depth fixes will come with 8.1. (DL).
|
3280 |
|
|
|
3281 |
|
|
8/20/97 (bug fix) Removed check for FLT_MIN in binary command so
|
3282 |
|
|
underflow conditions are handled by the compiler automatic
|
3283 |
|
|
conversions. (SS)
|
3284 |
|
|
|
3285 |
|
|
8/20/97 (bug fixes) Fixed several compilation-related bugs:
|
3286 |
|
|
- Array cmd wasn't detecting arrays that, while compiled, do not yet
|
3287 |
|
|
exist (e.g., are marked undefined since they haven't been assigned
|
3288 |
|
|
to yet).
|
3289 |
|
|
- The GetToken procedure in tclCompExpr.c wasn't recognizing properly
|
3290 |
|
|
whether an integer token was invalid. For example, "0x$" is not
|
3291 |
|
|
a valid integer.
|
3292 |
|
|
- Performance bug in TclExecuteByteCode: the size of its stack frame
|
3293 |
|
|
was reduced by over 20% by moving errorInfo code elsewhere.
|
3294 |
|
|
- Uninitialized memory read error in tclCompile.c. (BL)
|
3295 |
|
|
|
3296 |
|
|
8/21/97 (bug fix) safe::interpConfigure now behave like Tk widget's
|
3297 |
|
|
configure : it changes only the options you provide and you can get
|
3298 |
|
|
the current value of any single option. New ?-nested boolean? and
|
3299 |
|
|
?-statics boolean? for all safe::interp* commands but we still
|
3300 |
|
|
accept (upward compatibility) the previously defined non valued
|
3301 |
|
|
flags ?-noStatics? and ?-nestedLoadOk?. Improved the documentation. (DL).
|
3302 |
|
|
|
3303 |
|
|
8/22/97 (bug fix) Updated PrintDbl.3 to reflect the fact that the
|
3304 |
|
|
tcl_precision variable is still used and that it is now shared by all
|
3305 |
|
|
interpreters. (BL)
|
3306 |
|
|
|
3307 |
|
|
8/25/97 (bug fix) Fixed array access bug in IllegalExprOperandType
|
3308 |
|
|
procedure in tclExecute.c: it was not properly supporting the || and &&
|
3309 |
|
|
operators. (BL)
|
3310 |
|
|
|
3311 |
|
|
8/27/97 (bug fix) In cases where a channel handler was created with an
|
3312 |
|
|
empty event mask while data was still buffered in the channel, the
|
3313 |
|
|
channel code would get stuck spinning on a timer that would starve
|
3314 |
|
|
idle handlers. This mostly happened in Tk when reading from stdin. (SS)
|
3315 |
|
|
|
3316 |
|
|
9/4/97 (bug fix) Slave interps now inherit the maximum recursion limit
|
3317 |
|
|
of their parent instead of starting back at the default. {nb: this still
|
3318 |
|
|
does not prevent stack overflow by multi-interps recursion or aliasing} (DL)
|
3319 |
|
|
|
3320 |
|
|
9/11/97 (bug fix) An uninitialized variable in Tcl_WaitPid caused
|
3321 |
|
|
pipes to fail to report eof properly under Windows. (SS)
|
3322 |
|
|
|
3323 |
|
|
9/12/97 (bug fix) "exec" was misidentifying some DOS executables as not
|
3324 |
|
|
executable. (CCS)
|
3325 |
|
|
|
3326 |
|
|
9/14/97 (bug fix) Was using the wrong structure in sizeof operation in
|
3327 |
|
|
tclUnixChan.c. (JL)
|
3328 |
|
|
|
3329 |
|
|
9/15/97 (bug fix) Fixed notifier to break out of do-one-event loop if
|
3330 |
|
|
Tcl_WaitForEvent returns 1, so that callers of Tcl_DoOneEvent will get
|
3331 |
|
|
a chance to check whether the event just handled is significant. This
|
3332 |
|
|
affected mainly recursive calls to Tcl_VWaitCmd; these did not get a
|
3333 |
|
|
chance to notice that the variable they were waiting for has been set
|
3334 |
|
|
and thus they didn't terminate the vwait. (JL, DL, SS)
|
3335 |
|
|
|
3336 |
|
|
9/15/97 (bug fix) Alignment problems in "binary format" would cause a
|
3337 |
|
|
crash on some platforms when formatting floating point numbers. (SS)
|
3338 |
|
|
|
3339 |
|
|
9/15/97 (bug fix) Fixed bug in Macintosh socket code. Now passes all
|
3340 |
|
|
tests in socket.test that are not platform specific. (Thanks to Mark
|
3341 |
|
|
Roseman for the pointer on the fix.) (RJ)
|
3342 |
|
|
|
3343 |
|
|
9/18/97 (bug fix) Fixed bug -dictionary option of lsort that could
|
3344 |
|
|
cause the compare function to run off the end of an array if the
|
3345 |
|
|
number only contained 0's. (Thanks to Greg Couch for the report.) (RJ)
|
3346 |
|
|
|
3347 |
|
|
9/18/97 (bug fix) TclFinalizeEnvironment was not cleaning up
|
3348 |
|
|
properly. (DL, JI)
|
3349 |
|
|
|
3350 |
|
|
9/18/97 (bug fix) Fixed long-standing bug where an "array get" command
|
3351 |
|
|
did not trigger traces on the array or its elements. (BL)
|
3352 |
|
|
|
3353 |
|
|
9/18/97 (bug fixes) Fixed compilation-related bugs:
|
3354 |
|
|
- Fixed errorInfo traceback information for toplevel coomands that
|
3355 |
|
|
contain nested commands.
|
3356 |
|
|
- In the expr command, && and || now accept boolean operands as well
|
3357 |
|
|
as numeric ones. (BL)
|
3358 |
|
|
|
3359 |
|
|
9/22/97 (bug fix) Fixed bug that prevented translation modes from being
|
3360 |
|
|
set independently for input and output on sockets if input was "auto". (JL)
|
3361 |
|
|
|
3362 |
|
|
9/24/97 (bug fix) Tcl_EvalFile(3) and thus source(n) now works fine on
|
3363 |
|
|
files containing NUL chars. (DL)
|
3364 |
|
|
|
3365 |
|
|
9/26/97 (bug fix) Fixed use of uninitialized memory in the environ array
|
3366 |
|
|
that later could cause random core dumps. Applies to all platforms. (JL)
|
3367 |
|
|
|
3368 |
|
|
9/26/97 (bug fix) Fixed use of uninitialized memory in socket address data
|
3369 |
|
|
structure under some circumstances. This could cause random core dumps.
|
3370 |
|
|
This applies only to Unix. (JL)
|
3371 |
|
|
|
3372 |
|
|
9/26/97 (bug fix) Opening files on PC-NFS volumes would cause a hang
|
3373 |
|
|
until the system timed after the file was closed. (SS)
|
3374 |
|
|
|
3375 |
|
|
10/6/97 (bug fix) The join(n) command, though objectified, was loosing
|
3376 |
|
|
NULs in the joinString and in list elements after the 2nd one.
|
3377 |
|
|
Now you can "join $list \0" for instance. (DL)
|
3378 |
|
|
|
3379 |
|
|
10/9/97 (bug fix) Under windows, if env(TMP) or env(TEMP) referred to a
|
3380 |
|
|
non-existent directory, exec would fail when trying to create its temporary
|
3381 |
|
|
files. (CCS)
|
3382 |
|
|
|
3383 |
|
|
10/9/97 (bug fix) Under mac and windows, "info hostname" would crash if
|
3384 |
|
|
sockets were installed but the hostname could not be determined anyhow.
|
3385 |
|
|
Tcl_GetHostName() was returning NULL when it should have been returning
|
3386 |
|
|
an empty string. (CCS)
|
3387 |
|
|
|
3388 |
|
|
10/10/97 (bug fix) "file attribute /" returned error on windows. (CCS)
|
3389 |
|
|
|
3390 |
|
|
10/10/97 (bug fix) Fixed the auto_load procedure to handle procedures
|
3391 |
|
|
defined in namespaces better. Also fixed pgk_mkIndex so it sees procedures
|
3392 |
|
|
defined in nested namespaces. Index entries are still only made for
|
3393 |
|
|
exported procedures. (BW)
|
3394 |
|
|
|
3395 |
|
|
10/13/97 (bug fix) On unix, for files with unknown group or owner
|
3396 |
|
|
attributes, querying the "file attributes" would return an error rather than
|
3397 |
|
|
returning the group's or owner's id number, although tha command accepts
|
3398 |
|
|
numbers when setting the file's group or owner. (CCS)
|
3399 |
|
|
|
3400 |
|
|
10/22/97 (bug fix) "fcopy" did not eval the callback script at the
|
3401 |
|
|
global scope. (SS)
|
3402 |
|
|
|
3403 |
|
|
10/22/97 (bug fix) Fixed the signature of the CopyDone callback used in
|
3404 |
|
|
the http package(s) so they can handle error cases properly. (BW)
|
3405 |
|
|
|
3406 |
|
|
10/28/97 (bug fixes) Fixed a problem where lappend would free the Tcl object
|
3407 |
|
|
in a variable if a Tcl_ObjSetVar2 failed because of an error calling a trace
|
3408 |
|
|
on the variable. (BL)
|
3409 |
|
|
|
3410 |
|
|
10/28/97 (bug fix) Changed binary scan to properly handle sign
|
3411 |
|
|
extension of integers on 64-bit or larger machines. (SS)
|
3412 |
|
|
|
3413 |
|
|
11/3/97 (bug fixes) Fixed several bugs:
|
3414 |
|
|
- expressions such as "expr ($x)" must be compiled out-of-line
|
3415 |
|
|
(call the expr command procedure at runtime) to ensure the correct
|
3416 |
|
|
behavior when "$x" is an expression such as "5+10".
|
3417 |
|
|
- "array set a {}" now creates a new array var with an empty array
|
3418 |
|
|
value if the var didn't already exist.
|
3419 |
|
|
- "lreplace $foo end end" no longer returns an error (just an empty
|
3420 |
|
|
list) if foo is empty.
|
3421 |
|
|
- upvar will no longer create a variable in a namespace that refers
|
3422 |
|
|
to a variable in a procedure.
|
3423 |
|
|
- deleting a command trace within a command trace callback would
|
3424 |
|
|
make the code that calls traces to reference freed memory.
|
3425 |
|
|
- significantly sped up "string first" and "string last" (fix from
|
3426 |
|
|
darrel@gemstone.com).
|
3427 |
|
|
- seg fault in Tcl_NewStringObj() when a NULL is passed as the byte
|
3428 |
|
|
pointer argument and Tcl is compiled with -DTCL_MEM_DEBUG.
|
3429 |
|
|
- documentation and error msg fixes. (BL)
|
3430 |
|
|
|
3431 |
|
|
11/3/97 (bug fix) Fixed a number of I/O bugs related to word sizes on
|
3432 |
|
|
64-bit machines. (SS)
|
3433 |
|
|
|
3434 |
|
|
11/6/97 (bug fix) The exit code of the first process created by Tcl
|
3435 |
|
|
on Windows was not properly reported due to an initialization
|
3436 |
|
|
problem. (SS)
|
3437 |
|
|
|
3438 |
|
|
----------------- Released 8.0p1, 11/7/97 -----------------------
|
3439 |
|
|
|
3440 |
|
|
11/19/97 (bug fix) Fixed bug in linsert where it sometimes accidently
|
3441 |
|
|
cleared out a shared argument list object. (BL).
|
3442 |
|
|
|
3443 |
|
|
11/19/97 (bug fix) Autoloading in namespaces was not working properly.
|
3444 |
|
|
auto_mkindex is still not really namespace aware but most common
|
3445 |
|
|
cases should now be handled properly (see init.test). (BW, DL)
|
3446 |
|
|
|
3447 |
|
|
11/20/97 (enhancement) Made the changes required by the new Apple
|
3448 |
|
|
Universal Headers V.3.0, so that Tcl will compile with CW Pro 2.
|
3449 |
|
|
|
3450 |
|
|
11/24/97 (bug fix) Fixed tests in clock test suite that needed the
|
3451 |
|
|
-gmt flag set. Thanks to Jan Nijtmans for reporting the problem. (RJ)
|
3452 |
|
|
|
3453 |
|
|
----------------- Released 8.0p2, 11/25/97 -----------------------
|
3454 |
|
|
|
3455 |
|
|
12/3/97 (bug fix/optimization) Removed uneeded and potentially dangerous
|
3456 |
|
|
instances of double evaluations if "if" and "expr" statements from
|
3457 |
|
|
the library files. It is recommended that unless you need a double
|
3458 |
|
|
evaluation you always use "expr {...}" instead of "expr ..." and
|
3459 |
|
|
"if {...} ..." instead of "if ... ...". It will also be faster
|
3460 |
|
|
thanks to the byte compiler. (DL)
|
3461 |
|
|
|
3462 |
|
|
---- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ----
|
3463 |
|
|
|
3464 |
|
|
12/8/97 (bug fix) Need to protect the newly accepted channel in an
|
3465 |
|
|
accept callback on a socket, otherwise the callback may close it and
|
3466 |
|
|
cause an error, which would cause the C code to attempt to close the
|
3467 |
|
|
now deleted channel. Bumping the refcount assures that the channel sticks
|
3468 |
|
|
around to be really closed in this case. (JL)
|
3469 |
|
|
|
3470 |
|
|
12/8/97 (bug fix) Need to protect the channel in a fileevent so that it
|
3471 |
|
|
is not deleted before the fileevent handler returns. (CS, JL)
|
3472 |
|
|
|
3473 |
|
|
12/18/97 (bug fix) In the opt argument parsing package: if the description
|
3474 |
|
|
had only flags, the "too many arguments" case was not detected. The default
|
3475 |
|
|
value was not used for the special "args" ending argument. (DL)
|
3476 |
|
|
|
3477 |
|
|
1/15/98 (improvement) Moved common part of initScript in common file.
|
3478 |
|
|
Moved windows specific initialization to init.tcl so you can initialize
|
3479 |
|
|
Tcl in windows without having to call Tcl_Init which is now only
|
3480 |
|
|
searching for init.tcl {back ported from 8.1}. (DL)
|
3481 |
|
|
|
3482 |
|
|
---- Shipped as part of the plugin as 8.0p2Plugin2, Jan 15th 98 ----
|
3483 |
|
|
|
3484 |
|
|
5/27/98 (bug fix) Windows socket driver did not notice new data arriving
|
3485 |
|
|
on nonblocking sockets until the event loop was entered. (SS)
|
3486 |
|
|
|
3487 |
|
|
5/27/98 (bug fix) Windows socket driver used FIONREAD, which is not
|
3488 |
|
|
supported correctly by WinSock. (SS)
|
3489 |
|
|
|
3490 |
|
|
6/9/98 (bug fix) Generic channel code failed to report readable file
|
3491 |
|
|
events on buffered data that was left behind by a gets or read that
|
3492 |
|
|
did not consume all available data. (SS)
|
3493 |
|
|
|
3494 |
|
|
6/18/98 (bug fix) Compilation of loop expressions was too aggressive
|
3495 |
|
|
and incorrectly inlined non-literal expressions. (SS)
|
3496 |
|
|
|
3497 |
|
|
6/18/98 (bug fix) "info var" and "info locals" incorrectly reported
|
3498 |
|
|
the existence of compiler temporary variables. (SS)
|
3499 |
|
|
|
3500 |
|
|
6/18/98 (bug fix) Dictionary sorting used signed character
|
3501 |
|
|
comparisons. (SS)
|
3502 |
|
|
|
3503 |
|
|
6/18/98 (bug fix) Compile procs corrupted the exception stack in some
|
3504 |
|
|
cases. (SS)
|
3505 |
|
|
|
3506 |
|
|
6/18/98 (bug fix) Array set had erratic behavior when initializing a
|
3507 |
|
|
variable from an empty value list. (SS)
|
3508 |
|
|
|
3509 |
|
|
6/18/98 (bug fix) The Windows registry package had a bad bounds check
|
3510 |
|
|
that could lead to a crash. (SS)
|
3511 |
|
|
|
3512 |
|
|
6/18/98 (bug fix) The foreach compile proc did not correctly handle
|
3513 |
|
|
non-local variable references. (SS)
|
3514 |
|
|
|
3515 |
|
|
6/25/98 (new features) Added name resolution hooks to support [incr Tcl].
|
3516 |
|
|
There are new internal Tcl_*Resolver* APIs to add, query and remove the hooks.
|
3517 |
|
|
With this changes it should be possible to dynamically load [incr Tcl]
|
3518 |
|
|
as an extension. (MM)
|
3519 |
|
|
|
3520 |
|
|
7/1/97 (bug fix) The commands "info args, body, default, procs" did
|
3521 |
|
|
not correctly handle imported procedures. (RJ)
|
3522 |
|
|
|
3523 |
|
|
7/6/98 (improvement) pkg_mkIndex now implements the "package require"
|
3524 |
|
|
command. This makes it possible to create index files for packages
|
3525 |
|
|
that require another package and then execute code from that package in
|
3526 |
|
|
their file. Previously, this would throw an error because the required
|
3527 |
|
|
package had not been loaded. The -nopkgrequied flag is provided to
|
3528 |
|
|
revert back to the old functionality. (EMS)
|
3529 |
|
|
|
3530 |
|
|
7/6/98 (improvement) back-ported the -direct flag from 8.1 into
|
3531 |
|
|
pkg_mkIndex. This results in pkgIndex.tcl files that contain direct
|
3532 |
|
|
source or load commands instead of tclPkgSetup commands. (EMS)
|
3533 |
|
|
|
3534 |
|
|
7/6/98 (improvement) made changes to the AuxData items structures to support
|
3535 |
|
|
storage of compiled scripts on disk. Also some related minor changes in
|
3536 |
|
|
the compilation and execution engine. (EMS)
|
3537 |
|
|
|
3538 |
|
|
6/4/98 (enhancement) Added new internal routines to support inserting
|
3539 |
|
|
and deleting from the stat, access, and open-file-channel mechanisms.
|
3540 |
|
|
TclAccessInsertProc, TclStatInsertProc, & TclOpenFileChannelInsertProc
|
3541 |
|
|
insert pointers to such routines; TclAccessDeleteProc, TclStatDeleteProc,
|
3542 |
|
|
& TclOpenFileChannelDeleteProc delete pointers to such routines. See
|
3543 |
|
|
the file generic/tclIOUtils.c for more details. (SKS)
|
3544 |
|
|
|
3545 |
|
|
7/1/98 (enhancement) Added a new internal C variable
|
3546 |
|
|
tclPreInitScript. This is a pointer to a string that may hold an
|
3547 |
|
|
initialization script; If this pointer is non-NULL it is evaluated in
|
3548 |
|
|
Tcl_Init() prior to the built-in initialization script defined in the
|
3549 |
|
|
file generic/tclInitScript.h. (SKS)
|
3550 |
|
|
|
3551 |
|
|
7/6/98 (bug fix) Removed dead code in PlatformInitExitHandler so that
|
3552 |
|
|
the TCL_LIBRARY value can be safely patched in binaries. (BW)
|
3553 |
|
|
|
3554 |
|
|
7/24/98 (enhancement) Incorporated a new version of auto_mkindex that
|
3555 |
|
|
can support the [incr Tcl] class structures. This version will index
|
3556 |
|
|
all procedures in a source file, not just those where "proc" starts
|
3557 |
|
|
at the beginning of the line. If you want the old behavior, use the
|
3558 |
|
|
auto_mkindex_old procedure. (MM)
|
3559 |
|
|
|
3560 |
|
|
7/24/98 (feature change) Changed the Windows registry key to be
|
3561 |
|
|
HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, and to store the path
|
3562 |
|
|
in the default value instead of "Root". Also, this key can be
|
3563 |
|
|
specified at compile time in case Tcl is being used in a different
|
3564 |
|
|
context where it needs an alternate library path from the standard Tcl
|
3565 |
|
|
installation. (SS)
|
3566 |
|
|
|
3567 |
|
|
7/24/98 (feature change) Changed the search order for init.tcl. The
|
3568 |
|
|
tcl_library variable can now be set before calling Tcl_Init to avoid
|
3569 |
|
|
doing any searches. If it isn't set, then Tcl checks
|
3570 |
|
|
env(TCL_LIBRARY), the static value set at compile time, an install
|
3571 |
|
|
directory relative to the executable, a source directory relative to
|
3572 |
|
|
the executable, and a tcl directory relative to the source heirarchy
|
3573 |
|
|
containing the executable. See the comment at the top of
|
3574 |
|
|
generic/tclInitScript.h for more details. (SS)
|
3575 |
|
|
|
3576 |
|
|
7/27/98 (config change) Changed the use of the DBGX flag in configure.in
|
3577 |
|
|
and the makefile to be TCL_DBGX. Users of tclConfig.sh may need to pass
|
3578 |
|
|
this through their configure files with AC_SUBST. (BW)
|
3579 |
|
|
|
3580 |
|
|
729/98 (bug fix) Changed [info body] to return a copy of the body of a
|
3581 |
|
|
compiled procedure instead of the body itself, to avoid invalidation
|
3582 |
|
|
of the internal rep and loss of the byte-codes. (EMS)
|
3583 |
|
|
|
3584 |
|
|
8/5/98 (bug fix) The platform init code could walk off the end of a
|
3585 |
|
|
buffer when reading the PkgPath registry value on Windows. (SS)
|
3586 |
|
|
|
3587 |
|
|
8/5/98 (Windows makefile change) Introduced a set of macros to deal with
|
3588 |
|
|
exporting symbols when compiling DLLS on Windows. See win/README for
|
3589 |
|
|
details. (EMS)
|
3590 |
|
|
|
3591 |
|
|
8/5/98 (addendum) Added a second Windows registry key under
|
3592 |
|
|
HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, named "pkgPath".
|
3593 |
|
|
This is a multi-string value used to initialize the tcl_pkgPath
|
3594 |
|
|
variable. This is required if extension DLLs are in architecture specific
|
3595 |
|
|
subdirectories. (SS)
|
3596 |
|
|
|
3597 |
|
|
8/6/98 (new feature) Added tcl_findLibrary to init.tcl for use by
|
3598 |
|
|
extensions, including Tk. This searches in a canonical way for
|
3599 |
|
|
an extensions library directory and initialization file. (BW)
|
3600 |
|
|
|
3601 |
|
|
8/10/98 (bug fix) Imported commands used to get lost if the target
|
3602 |
|
|
of the import was redefined. Tcl_CreateCommand and Tcl_CreateObjCommand
|
3603 |
|
|
were updated to restore import links. (Note that if you rename a command,
|
3604 |
|
|
the import links move to the new name, and if you delete a command then
|
3605 |
|
|
the import links get lost. These semantics have not changed.) (MC)
|
3606 |
|
|
|
3607 |
|
|
-------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/10/98 ------
|