Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/tcl8.5.2/ChangeLog @ 25

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

added tcl to libs

File size: 242.6 KB
Line 
12008-03-26  Don Porter  <dgp@users.sourceforge.net>
2
3        *** 8.5.2 TAGGED FOR RELEASE ***
4
5        * generic/tcl.h:        Bump to 8.5.2 for release.
6        * library/init.tcl:
7        * tools/tcl.wse.in:
8        * unix/configure.in:
9        * unix/tcl.spec:
10        * win/configure.in:
11
12        * unix/configure:       autoconf-2.59
13        * win/configure:
14
15        * changes:              Updated for 8.5.2 release.
16
172008-03-28  Donal K. Fellows  <dkf@users.sf.net>
18
19        * tests/fCmd.test: Substantial rewrite to use many more tcltest
20        features. Great reduction in quantity of [catch] gymnastics. Several
21        buggy tests fixed, including one where the result of the previous test
22        was being checked!
23
242008-03-27  Kevin B. Kenny <kennykb@acm.org>
25
26        * library/tzdata/America/Marigot:
27        * library/tztata/America/St_Barthelemy:
28        * library/tzdata/America/Argentina/San_Luis:
29        * library/tzdata/Asia/Ho_Chi_Minh:
30        * library/tzdata/Asia/Kolkata:  (new files)
31        * library/tzdata/America/Caracas:
32        * library/tzdata/America/Havana:
33        * library/tzdata/America/Santiago:
34        * library/tzdata/America/Argentina/Buenos_Aires:
35        * library/tzdata/America/Argentina/Catamarca:
36        * library/tzdata/America/Argentina/Cordoba:
37        * library/tzdata/America/Argentina/Jujuy:
38        * library/tzdata/America/Argentina/La_Rioja:
39        * library/tzdata/America/Argentina/Mendoza:
40        * library/tzdata/America/Argentina/Rio_Gallegos:
41        * library/tzdata/America/Argentina/San_Juan:
42        * library/tzdata/America/Argentina/Tucuman:
43        * library/tzdata/America/Argentina/Ushuaia:
44        * library/tzdata/Asia/Baghdad:
45        * library/tzdata/Asia/Calcutta:
46        * library/tzdata/Asia/Damascus:
47        * library/tzdata/Asia/Saigon:
48        * library/tzdata/Pacific/Easter:
49                Changes up to and including Olson's tzdata2008b.
50       
512008-03-27  Daniel Steffen  <das@users.sourceforge.net>
52
53        * unix/tcl.m4 (SunOS-5.1x): fix 64bit support for Sun cc. [Bug 1921166]
54
55        * unix/configure: autoconf-2.59
56
572008-03-26  Don Porter  <dgp@users.sourceforge.net>
58
59        * changes:              Updated for 8.5.2 release.
60
612008-03-24  Pat Thoyts  <patthoyts@users.sourceforge.net>
62
63        * generic/tclBinary.c: [Bug 1923966] - crash in binary format
64        * tests/binary.test:   Added tests for the above crash condition.
65
662008-03-21  Donal K. Fellows  <dkf@users.sf.net>
67
68        * doc/switch.n: Clarified documentation in respect of two-argument
69        invokation. [Bug 1899962]
70
71        * tests/switch.test: Added more tests of regexp-mode compilation of
72        the [switch] command. [Bug 1854435]
73
742008-03-20  Donal K. Fellows  <dkf@users.sf.net>
75
76        * generic/tcl.h, generic/tclThreadAlloc.c: Tidied up the declarations
77        of Tcl_GetMemoryInfo so that it is always defined. Will panic when
78        called against a Tcl that was previously built without it at all,
79        which is OK because that also indicates a serious mismatch between
80        memory configuration options.
81
822008-03-19  Donal K. Fellows  <dkf@users.sf.net>
83
84        * generic/tcl.h, generic/tclThreadAlloc.c (Tcl_GetMemoryInfo): Make
85        sure this function is available when direct linking. [Bug 1868171]
86
87        * tests/reg.test (reg-33.14): Marked nonPortable because some
88        environments have small default stack sizes. [Bug 1905562]
89
902008-03-18  Andreas Kupries  <andreask@activestate.com>
91
92        * library/tm.tcl (::tcl::tm::UnknownHandler): Changed 'source' to
93        'source -encoding utf-8'. This fixes a portability problem of Tcl
94        Modules pointed out by Don Porter. By using plain 'source' we were at
95        the mercy of 'encoding system', making modules less portable than they
96        could be. The exact scenario: A writes a TM in some weird encoding
97        which is A's system encoding, distributes it, and somewhere else it
98        cannot be read/used because the system encoding is different. Forcing
99        the use of utf-8 makes the module portable.
100
101        ***INCOMPATIBILITY*** for all Tcl Modules already written in non-utf-8
102        compatible encodings.
103
1042008-03-18  Don Porter  <dgp@users.sourceforge.net>
105
106        * generic/tclExecute.c: Patch from Miguel Sofer to correct the
107        alignment of memory allocated by GrowEvaluationStack(). [Bug 1914503]
108
1092008-03-18  Andreas Kupries  <andreask@activestate.com>
110
111        * library/tm.tcl (::tcl::tm::Defaults): Modified handling of
112        environment variables. See [Bug 1914604]. Solution slightly different
113        than proposed in the report. Using the underscored form TCLX_y_TM_PATH
114        even if TCLX.y_TM_PATH exists. Also using a loop to cut prevent code
115        replication.
116
1172008-03-16  Donal K. Fellows  <dkf@users.sf.net>
118
119        * generic/tclCompCmds.c (TclCompileDictForCmd): Correct the handling
120        of stack space calculation (the jump pattern used was confusing the
121        simple-minded code doing the calculations). [Bug 1903325]
122
123        * doc/lreplace.n: Clarified documentation of what happens with
124        negative indices. [Bug 1905809] Added example, tidied up formatting.
125
1262008-03-14  Don Porter  <dgp@users.sourceforge.net>
127
128        * generic/tclBasic.c (OldMathFuncProc): Same workaround protection
129        from bad TclStackAlloc() alignment. Thanks George Peter Staplin.
130
131        * generic/tclCmdIL.c (Tcl_LsortObjCmd): Use ckalloc() to allocate
132        SortElement arrays instead of TclStackAlloc() which isn't getting
133        alignment right. Workaround for [Bug 1914503].
134
1352008-03-14  Reinhard Max  <max@suse.de>
136
137        * generic/tclTest.c:  Ignore the return value of write() when we are
138        * unix/tclUnixPipe.c: about to exit anyways.
139
1402008-03-13  Daniel Steffen  <das@users.sourceforge.net>
141
142        * unix/configure.in:    Use backslash-quoting instead of double-quoting
143        * unix/tcl.m4:          for lib paths in tclConfig.sh. [Bug 1913622]
144        * unix/configure:       autoconf-2.59
145
1462008-03-13  Don Porter  <dgp@users.sourceforge.net>
147
148        * changes:              Updated for 8.5.2 release.
149
150        * generic/tclStrToD.c:  Resolve identifier conflict over "pow10" with
151        libm in Cygwin and DJGPP. Thanks to Gordon Schumacher and Philip
152        Moore. [Patch 1800636]
153
1542008-03-12  Daniel Steffen  <das@users.sourceforge.net>
155
156        * macosx/Tcl.xcodeproj/project.pbxproj: Add support for Xcode 3.1
157        * macosx/Tcl.xcodeproj/default.pbxuser: CODE_SIGN_IDENTITY and
158        * macosx/Tcl-Common.xcconfig:           'xcodebuild install'.
159
1602008-03-12  Andreas Kupries <andreask@activestate.com>
161
162        * doc/info.n: Replaced {expand} with {*}.
163
1642008-03-12  Jeff Hobbs  <jeffh@ActiveState.com>
165
166        * unix/Makefile.in (install-libraries): Bump http to 2.7
167        * win/Makefile.in (install-libraries):  Added -myaddr option to allow
168        * library/http/http.tcl (http::geturl): control of selected socket
169        * library/http/pkgIndex.tcl:            interface. [Bug 559898]
170        * doc/http.n, tests/http.test:          Added -keepalive and
171        -protocol 1.1 with chunked transfer encoding support. [Bug 1063703,
172        1470377, 219225] (default keepalive is 0)
173        Added ability to override Host in -headers. [Bug 928154]
174        Added -strict option to control URL validation on per-call basis.
175        [Bug 1560506]
176
1772008-03-11  Jeff Hobbs  <jeffh@ActiveState.com>
178
179        * library/http/http.tcl (http::geturl): Add -method option to support
180        * tests/http.test (http-3.1):           http PUT and DELETE requests.
181        * doc/http.n:                           [Bug 1599901, 862554]
182
183        * library/http/http.tcl: Whitespace changes, code cleanup. Allow http
184        to be re-sourced without overwriting http state.
185
1862008-03-11  Daniel Steffen  <das@users.sourceforge.net>
187
188        * generic/tclEncoding.c (LoadEscapeEncoding): Avoid leaking escape
189        sub-encodings, fixes encoding-11.1 failing after iso2022-jp loaded.
190        [Bug 1893053]
191
192        * macosx/tclMacOSXNotify.c: Avoid using CoreFoundation after fork() on
193        Darwin 9 even when TclpCreateProcess() uses vfork().
194
195        * macosx/Tcl.xcodeproj/project.pbxproj: Add support for Xcode 3.1 and
196        * macosx/Tcl.xcodeproj/default.pbxuser: targets for building with
197        * macosx/Tcl-Common.xcconfig:           gcc-4.2 and llvm-gcc-4.2.
198
199        * unix/tclUnixPort.h:                   Workaround vfork() problems
200                                                in llvm-gcc-4.2.1 -O4 build.
201
202        * unix/tclUnixPort.h:                   Move MODULE_SCOPE compat define
203                                                to top [Bug 1911102].
204
205        * macosx/GNUmakefile:                   Fix quoting to allow paths to
206        * macosx/Tcl-Common.xcconfig:           ${builddir} and ${INSTALL_ROOT}
207        * unix/Makefile.in:                     to contain spaces.
208        * unix/configure.in:
209        * unix/install-sh:
210        * unix/tcl.m4:
211        * tests/ioCmd.test:
212
213        * unix/configure:                       autoconf-2.59
214
215        * unix/Makefile.in (install-strip):     Strip non-global symbols from
216                                                dynamic library.
217
218        * unix/tclUnixNotfy.c:                  Fix warning.
219
220        * tests/exec.test (exec-9.7):           Reduce timing sensitivity
221        * tests/socket.test (socket-2.11):      (esp. on multi-proc machines).
222
223        * tests/fCmd.test (fCmd-9.4):           Skip on Darwin 9 (xfail).
224
2252008-03-11  Miguel Sofer  <msofer@users.sf.net>
226
227        * generic/tclVar.c (TclDeleteNamespaceVars):
228        * tests/var.test (var-8.2): Unset traces on vars should be called with
229        a FQ named during namespace deletion. This was causing infinite loops
230        when unset traces recreated the var, as reported by Julian Noble. [Bug
231        1911919]
232
2332008-03-10  Don Porter  <dgp@users.sourceforge.net>
234
235        * changes:              Updated for 8.5.2 release.
236
237        * doc/http.n:   Revised to indicate that [package require http 2.5.5]
238        is needed to get all the documented commands ([http::meta]).
239
240        * generic/tclEvent.c (TclDefaultBgErrorHandlerObjCmd):  Added error
241        * tests/event.test (event-5.*): checking to protect against callers
242        passing invalid return options dictionaries. [Bug 1901113]
243
244        * generic/tclBasic.c (ExprAbsFunc):     Revised so that the abs()
245        * tests/expr.test:      function and the [::tcl::mathfunc::abs]
246        command do not return the value of -0, or equivalent values with more
247        alarming string reps like -1e-350. [Bug 1893815]
248
2492008-03-07  Andreas Kupries  <andreask@activestate.com>
250
251        * generic/tclResult.c (ReleaseKeys): Workaround for [Bug 1904907].
252        Reset the return option keys to NULL to allow full re-initialization
253        by GetKeys(). This introduces a memory leak for the key objects, but
254        gets us around a crash in the finalization of reflected channels when
255        handling returns, either at compile- or runtime. In both cases we
256        access the keys after they have been released by their thread exit
257        handler. A proper fix is entangled with the untangling of the
258        finalization ordering and attendant issues. For now we choose the
259        lesser evil.
260
2612008-03-07  Don Porter  <dgp@users.sourceforge.net>
262
263        * generic/tclExecute.c (Tcl_ExprObj):   Revised expression bytecode
264        compiling so that bytecodes invalid due to changing context or due to
265        the difference between expressions and scripts are not reused. [Bug
266        1899164]
267
268        * generic/tclCmdAH.c:   Revised direct evaluation implementation of
269        [expr] so that [expr $e] caches compiled bytecodes for the expression
270        as the intrep of $e.
271
272        * tests/execute.test (execute-6.*):     More tests checking that
273        script bytecode is invalidated in the right situations.
274
2752008-03-07  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
276
277        * win/configure.in: Add AC_HEADER_STDC to support msys/win64.
278
2792008-03-06  Donal K. Fellows  <dkf@users.sf.net>
280
281        * doc/namespace.n: Minor tidying up. [Bug 1909019]
282
2832008-03-04  Don Porter  <dgp@users.sourceforge.net>
284
285        * tests/execute.test (6.3,4):   Added tests for [Bug 1899164].
286
2872008-03-03  Reinhard Max  <max@suse.de>
288
289        * unix/tclUnixChan.c: Fix mark and space parity on Linux, which uses
290        CMSPAR instead of PAREXT.
291
2922008-03-02  Miguel Sofer  <msofer@users.sf.net>
293
294        * generic/tclNamesp.c (GetNamespaceFromObj):
295        * tests/interp.test (interp-28.2): Spoil the intrep of an nsNameType
296        obj when the reference crosses interpreter boundaries.
297
2982008-02-29  Don Porter  <dgp@users.sourceforge.net>
299
300        * generic/tclResult.c (Tcl_SetReturnOptions):   Revised the refcount
301        management of Tcl_SetReturnOptions to become that of a conventional
302        Consumer routine.  Thanks to Peter Spjuth for pointing out the
303        difficulties calling Tcl_SetReturnOptions with non-0-count value for
304        options.
305        * generic/tclExecute.c (INST_RETURN_STK): Revised the one caller
306        within Tcl itself which passes a non-0-count value to
307        Tcl_SetReturnOptions().
308
309        * generic/tclBasic.c (Tcl_AppendObjToErrorInfo):        Revised the
310        refcount management of Tcl_AppendObjToErrorInfo to become that of a
311        conventional Consumer routine. This preserves the ease of use for the
312        overwhelming common callers who pass in a 0-count value, but makes the
313        proper call with a non-0-count value less surprising.
314        * generic/tclEvent.c (TclDefaultBgErrorHandlerObjCmd):  Revised the
315        one caller within Tcl itself which passes a non-0-count value to
316        Tcl_AppendObjToErrorInfo().
317
3182008-02-28  Joe English  <jenglish@users.sourceforge.net>
319
320        * unix/tclPort.h, unix/tclCompat.h, unix/tclUnixChan.h: Reduce scope
321        of <sys/filio.h> and <sys/ioctl.h> #includes. [Patch 1903339]
322
3232008-02-28  Joe English  <jenglish@users.sourceforge.net>
324
325        * unix/tclUnixChan.c, unix/tclUnixNotfy.c, unix/tclUnixPipe.c:
326        Consolidate all code conditionalized on -DUSE_FIONBIO into one place.
327        * unix/tclUnixPort.h, unix/tclUnixCompat.c: New routine
328        TclUnixSetBlockingMode() [Patch 1903339].
329
3302008-02-28  Don Porter  <dgp@users.sourceforge.net>
331
332        * generic/tclBasic.c (TclEvalObjvInternal):     Plug memory leak when
333        an enter trace deletes or changes the command, prompting a reparsing.
334        Don't let the second pass lose commandPtr value allocated during the
335        first pass.
336
337        * generic/tclCompExpr.c (ParseExpr):    Plug memory leak in error
338        message generation.
339
340        * generic/tclStringObj.c (Tcl_AppendFormatToObj): [format %llx $big]
341        leaked an mp_int.
342
343        * generic/tclCompCmds.c (TclCompileReturnCmd):  The 2007-10-18 commit
344        to optimize compiled [return -level 0 $x] [RFE 1794073] introduced a
345        memory leak of the return options dictionary. Fixing that.
346
3472008-02-27  Pat Thoyts  <patthoyts@users.sourceforge.net>
348
349        * library/http/http.tcl: [Bug 705956] - fix inverted logic when
350        cleaning up socket error in geturl.
351
3522008-02-27  Kevin B. Kenny  <kennykb@acm.org>
353
354        * doc/clock.n: Corrected minor indentation gaffe in the penultimate
355        paragraph. [Bug 1898025]
356        * generic/tclClock.c (ParseClockFormatArgs): Changed to check that the
357        clock value is in the range of a 64-bit integer. [Bug 1862555]
358        * library/clock.tcl (::tcl::clock::format, ::tcl::clock::scan,
359        (::tcl::clock::add, ::tcl::clock::LocalizeFormat): Fixed bugs in
360        caching of localized strings that caused weird results when localized
361        date/time formats were used. [Bug 1902423]
362        * tests/clock.test (clock-61.*, clock-62.1): Regression tests for [Bug
363        1862555] and [Bug 1902423].
364
3652008-02-26  Joe English  <jenglish@users.sourceforge.net>
366
367        * generic/tclIOUtil.c, unix/tclUnixPort.h, unix/tclUnixChan.c:
368        Remove dead/unused portability-related #defines and unused conditional
369        code.  See [Patch 1901828] for discussion.
370
3712008-02-26  Joe English  <jenglish@users.sourceforge.net>
372
373        * generic/tclIORChan.c (enum MethodName),
374        * generic/tclCompExpr.c (enum Marks): More stray trailing ","s
375
3762008-02-26  Joe English  <jenglish@users.sourceforge.net>
377
378        * unix/configure.in(socklen_t test): Define socklen_t as "int" if
379        missing, not "unsigned". Use AC_TRY_COMPILE instead of
380        AC_EGREP_HEADER.
381        * unix/configure: regenerated.
382
3832008-02-26  Joe English  <jenglish@users.sourceforge.net>
384
385        * generic/tclCompile.h: Remove stray trailing "," from enum
386        InstOperandType definition (C99ism).
387
3882008-02-26  Jeff Hobbs  <jeffh@ActiveState.com>
389
390        * generic/tclUtil.c (TclReToGlob): Fix the handling of the last star
391        * tests/regexpComp.test:           possibly being escaped in
392        determining right anchor. [Bug 1902436]
393
3942008-02-26  Pat Thoyts  <patthoyts@users.sourceforge.net>
395
396        * library/http/pkgIndex.tcl: Set version 2.5.5
397        * library/http/http.tcl:     It is better to do the [eof] check after
398        trying to read from the socket. No clashes found in testing. Added
399        http::meta command to access the http headers. [Bug 1868845]
400
4012008-02-22  Pat Thoyts  <patthoyts@users.sourceforge.net>
402
403        * library/http/pkgIndex.tcl: Set version 2.5.4
404        * library/http/http.tcl:     Always check that the state array exists
405        in the http::status command. [Bug 1818565]
406
4072008-02-13  Don Porter  <dgp@users.sourceforge.net>
408
409        * generic/tcl.h:        Bump version number to 8.5.2b1 to distinguish
410        * library/init.tcl:     CVS development snapshots from the 8.5.1 and
411        * unix/configure.in:    8.5.2 releases.
412        * unix/tcl.spec:
413        * win/configure.in:
414        * README
415
416        * unix/configure:       autoconf (2.59)
417        * win/configure:
418
4192008-02-12  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
420
421        * generic/tclCompCmds.c (TclCompileSwitchCmd): Corrected logic for
422        * tests/switch.test (switch-10.15): handling -nocase compilation; the
423        -exact -nocase option cannot be compiled currently. [Bug 1891827]
424
425        * unix/README: Documented missing configure flags. [Bug 1799011]
426
4272008-02-06  Kevin B. Kenny  <kennykb@acm.org>
428
429        * doc/clock.n (%N): Corrected an error in the explanation of the %N
430        format group.
431        * generic/tclClock.c (ClockParseformatargsObjCmd):
432        * library/clock.tcl (::tcl::clock::format):
433        * tests/clock.test (clock-1.0, clock-1.4):
434        Performance enhancements in [clock format] (moving the analysis of
435        $args into C code, holding on to Tcl_Objs with resolved command names,
436        [lassign] in place of [foreach], avoiding [namespace which] for
437        command resolution).
438
4392008-02-04  Don Porter  <dgp@users.sourceforge.net>
440
441        *** 8.5.1 TAGGED FOR RELEASE ***
442
443        * changes:              Updated for 8.5.1 release.
444
445        * generic/tcl.h:        Bump to 8.5.1 for release.
446        * library/init.tcl:
447        * tools/tcl.wse.in:
448        * unix/configure.in:
449        * unix/tcl.spec:
450        * win/configure.in:
451
452        * unix/configure:       autoconf-2.59
453        * win/configure:
454
4552008-02-04  Miguel Sofer  <msofer@users.sf.net>
456
457        * generic/tclExecute.c (INST_CONCAT1): Fix optimisation for in-place
458        concatenation (was going over String type)
459
4602008-02-02  Daniel Steffen  <das@users.sourceforge.net>
461
462        * unix/configure.in (Darwin):   Correct Info.plist year substitution in
463                                        non-framework builds.
464
465        * unix/configure:               autoconf-2.59
466
4672008-01-30  Miguel Sofer  <msofer@users.sf.net>
468
469        * generic/tclInterp.c (Tcl_GetAlias): Fix for [Bug 1882373], thanks go
470        to an00na.
471
4722008-01-30  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
473
474        * tools/tcltk-man2html.tcl: Reworked manual page scraper to do a
475        proper job of handling references to Ttk options. [Tk Bug 1876493]
476
4772008-01-29  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
478
479        * doc/man.macros (SO, SE): Adjusted macros so that it is possible for
480        Ttk to have its "standard options" on a manual page that is not called
481        "options". [Tk Bug 1876493]
482
4832008-01-25  Don Porter  <dgp@users.sourceforge.net>
484
485        * changes:              Updated for 8.5.1 release.
486
4872008-01-23  Don Porter  <dgp@users.sourceforge.net>
488
489        * generic/tclInt.h:             New macro TclGrowParseTokenArray() to
490        * generic/tclCompCmds.c:        simplify code that might need to grow
491        * generic/tclCompExpr.c:        an array of Tcl_Tokens in the parsePtr
492        * generic/tclParse.c:           field of a Tcl_Parse. Replaces the
493        TclExpandTokenArray() routine via replacing:
494                int needed = parsePtr->numTokens + growth;
495                while (needed > parsePtr->tokensAvailable) {
496                    TclExpandTokenArray(parsePtr);
497                }
498        with:
499                TclGrowParseTokenArray(parsePtr, growth);
500        This revision merged over from dgp-refactor branch.
501
502        * generic/tclCompile.h: Demote TclCompEvalObj() from internal stubs to
503        * generic/tclInt.decls: a MODULE_SCOPE routine declared in
504        tclCompile.h.
505
506        * generic/tclIntDecls.h:        make genstubs
507        * generic/tclStubInit.c:
508
5092008-01-22  Don Porter  <dgp@users.sourceforge.net>
510
511        * generic/tclTimer.c (AfterProc):       Replace Tcl_EvalEx() with
512        Tcl_EvalObjEx() to evaluate [after] callbacks. Part of trend to favor
513        compiled execution over direct evaluation.
514
5152008-01-22  Miguel Sofer  <msofer@users.sf.net>
516
517        * generic/tclCmdIl.c (Tcl_LreverseObjCmd):
518        * tests/cmdIL.test (cmdIL-7.7): Fix crash on reversing an empty list.
519        [Bug 1876793]
520
5212008-01-20  Jeff Hobbs  <jeffh@ActiveState.com>
522
523        * unix/README: Minor typo fixes [Bug 1853072]
524
525        * generic/tclIO.c (TclGetsObjBinary): Operate on topmost channel.
526        [Bug 1869405] (Ficicchia)
527
5282008-01-17  Don Porter  <dgp@users.sourceforge.net>
529
530        * generic/tclCompExpr.c:        Revision to preserve parsed intreps of
531        numeric and boolean literals when compiling expressions with (optimize
532        == 1).
533
5342008-01-15  Miguel Sofer  <msofer@users.sf.net>
535
536        * generic/tclCompExpr.c: Add an 'optimize' argument to
537        * generic/tclCompile.c:  TclCompileExpr() to profit from better
538        * generic/tclCompile.h:  literal management according to usage.
539        * generic/tclExecute.c:
540
541       
542        * generic/tclCompExpr.c: Fix literal leak in exprs [Bug 1869989] (dgp)
543        * generic/tclExecute.c:
544        * tests/compExpr.test:
545       
546        * doc/proc.n: Changed wording for access to non-local variables; added
547        mention to [namespace upvar]. Lame attempt at dealing with
548        documentation. [Bug 1872708]
549       
5502008-01-15  Miguel Sofer  <msofer@users.sf.net>
551
552        * generic/tclBasic.c:    Replacing 'operator' by 'op' in the def of
553        * generic/tclCompExpr.c: struct TclOpCmdClientData to accommodate C++
554        * generic/tclCompile.h:  compilers. [Bug 1855644]
555       
5562008-01-13  Jeff Hobbs  <jeffh@ActiveState.com>
557
558        * win/tclWinSerial.c (SerialCloseProc, TclWinOpenSerialChannel): Use
559        critical section for read & write side. [Bug 1353846] (newman)
560
5612008-01-11  Miguel Sofer  <msofer@users.sf.net>
562
563        * unix/tclUnixThrd.c (TclpThreadGetStackSize): Restore stack checking
564        functionality in freebsd. [Bug 1850424]
565
566        * unix/tclUnixThrd.c (TclpThreadGetStackSize): Fix for crash in
567        freebsd. [Bug 1860425]
568
5692008-01-10  Don Porter  <dgp@users.sourceforge.net>
570
571        * generic/tclStringObj.c (Tcl_AppendFormatToObj):  Correct failure to
572        * tests/format.test:    account for big.used == 0 corner case in the
573        %ll(idox) format directives. [Bug 1867855]
574
5752008-01-09  George Peter Staplin <georgeps@xmission.com>
576
577        * doc/vwait.n: Add a missing be to fix a typo.
578
5792008-01-04  Jeff Hobbs  <jeffh@ActiveState.com>
580
581        * tools/tcltk-man2html.tcl (make-man-pages): Make man page title use
582        more specific info on lhs to improve tabbed browser view titles.
583
5842008-01-02  Donal K. Fellows  <dkf@users.sf.net>
585
586        * doc/binary.n: Fixed documentation bug reported on tcl-core, and
587        reordered documentation to discourage people from using the hex
588        formatter that is hardly ever useful.
589
5902008-01-02  Don Porter  <dgp@users.sourceforge.net>
591
592        * generic/tcl.h:        Bump version number to 8.5.1b1 to distinguish
593        * library/init.tcl:     CVS development snapshots from the 8.5.0 and
594        * unix/configure.in:    8.5.1 releases.
595        * unix/tcl.spec:
596        * win/configure.in:
597        * README
598
599        * unix/configure:       autoconf (2.59)
600        * win/configure:
601
6022007-12-31  Donal K. Fellows  <dkf@users.sf.net>
603
604        * doc/dict.n: Clarified meaning of dictionary values following
605        discussion on comp.lang.tcl.
606
6072007-12-26  Miguel Sofer  <msofer@users.sf.net>
608
609        * generic/tclCmdIL.c: More [lsort] data handling streamlines. The
610        function MergeSort is gone, essentially inlined into Tcl_LsortObjCmd.
611        It is not a straight inlining, two loops over all lists elements where
612        merged in the process: the linked list elements are now built and
613        merged into the temporary sublists in the same pass.
614
6152007-12-25  Miguel Sofer  <msofer@users.sf.net>
616
617        * generic/tclCmdIL.c: More [lsort] data handling streamlines. Extra
618        mem reqs of latest patches removed, restored to previous mem profile.
619        Improved -unique handling, now eliminating repeated elems immediately
620        instead of marking them to avoid reinsertion at the end.
621
6222007-12-23  Jeff Hobbs  <jeffh@ActiveState.com>
623
624        * generic/tclCompCmds.c (TclCompileRegexpCmd):  TCL_REG_NOSUB cannot
625        * tests/regexp.test (regexp-22.2):              be used because it
626        * tests/regexpComp.test:        [Bug 1857126]   disallows backrefs.
627
6282007-12-21  Miguel Sofer  <msofer@users.sf.net>
629
630        * generic/tclCmdIL.c: Speed patch for lsort [Patch 1856994].
631
6322007-12-21  Miguel Sofer  <msofer@users.sf.net>
633
634        * generic/tclCmdIL.c (Tcl_LsortObjCmd, Tcl_LsearchObjCmd): Avoid
635        calling SelectObjFromSublist when there are no sublists.
636
6372007-12-21  Miguel Sofer  <msofer@users.sf.net>
638
639        * generic/tclCmdIL.c (Tcl_LsortObjCmd): Preallocate a listObj of
640        sufficient length for the sorted list instead of growing it. Second
641        commit replaces calls to Tcl_ListObjAppenElement with direct access to
642        the internal rep.
643
6442007-12-19  Don Porter  <dgp@users.sourceforge.net>
645
646        *** 8.5.0 TAGGED FOR RELEASE ***
647
648        * changes:              Updated for 8.5.0 release.
649
6502007-12-19  Jeff Hobbs  <jeffh@ActiveState.com>
651
652        * generic/tclCompCmds.c (TclCompileSwitchCmd):  update switch -regexp
653        * tests/switch.test-14.*:                       compilation to pass
654        the cflags to INST_REGEXP (changed on 12-07).  Added tests for
655        switch -regexp compilation (need more). [Bug 1854399]
656
6572007-12-18  Don Porter  <dgp@users.sourceforge.net>
658
659        * changes:              Updated for 8.5.0 release.
660
6612007-12-18  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
662
663        * generic/regguts.h, generic/regc_color.c, generic/regc_nfa.c:
664        Fixes for problems created when processing regular expressions that
665        generate very large automata. An enormous number of thanks to Will
666        Drewry <wad_at_google.com>, Tavis Ormandy <taviso_at_google.com>,
667        and Tom Lane <tgl_at_sss.pgh.pa.us> from the Postgresql crowd for
668        their help in tracking these problems down. [Bug 1810264]
669
6702007-12-17  Don Porter  <dgp@users.sourceforge.net>
671
672        * changes:              Updated for 8.5.0 release.
673
6742007-12-17  Miguel Sofer  <msofer@users.sf.net>
675
676        * generic/tclAlloc.c:
677        * generic/tclExecute.c:
678        * generic/tclInt.h:
679        * generic/tclThreadAlloc.c: Fix alignment for memory returned by
680        TclStackAlloc; insure that all memory allocators align to 16-byte
681        boundaries on 64 bit platforms [Bug 1851832, 1851524]
682
6832007-12-14  Jeff Hobbs  <jeffh@ActiveState.com>
684
685        * generic/tclIOUtil.c (FsAddMountsToGlobResult): fix the tail
686        conversion of vfs mounts. [Bug 1602539]
687
688        * win/README: updated notes
689
6902007-12-14  Pat Thoyts  <patthoyts@users.sourceforge.net>
691
692        * tests/winFile.test: Fixed tests for win2k with long machine name
693
6942007-12-14  Pat Thoyts <patthoyts@users.sourceforge.net>
695
696        * win/nmakehlp.c:  Support compilation with MSVC9 for AMD64.
697        * win/makefile.vc:
698
6992007-12-13  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
700
701        * doc/trace.n: Clarified documentation of enterstep and leavestep
702        traces, including adding example. [Bug 614282, 1701540, 1755984]
703
7042007-12-12  Don Porter  <dgp@users.sourceforge.net>
705
706        * doc/IntObj.3: Update docs for the Tcl_GetBignumAndClearObj() ->
707        Tcl_TakeBignumFromObj() revision [TIP 298].  Added docs for the
708        Tcl_InitBignumFromDouble() routine. [Bug 1446971].
709
710        * changes:              Updated for 8.5.0 release.
711
7122007-12-10  Jeff Hobbs  <jeffh@ActiveState.com>
713
714        * generic/tclUtil.c (TclReToGlob): reduce escapes in conversion
715        when not necessary
716
717        * generic/tclInt.decls:  move TclByteArrayMatch and TclReToGlob
718        * generic/tclIntDecls.h: to tclInt.h from stubs.
719        * generic/tclStubInit.c: Add flags var to TclByteArrayMatch for
720        * generic/tclInt.h:      future extensibility
721        * generic/tcl.h:  define TCL_MATCH_EXACT doc for Tcl_StringCaseMatch.
722        * doc/StrMatch.3: It is compatible with existing usage.
723        * generic/tclExecute.c (INST_STR_MATCH): flag for TclByteArrayMatch
724        * generic/tclUtil.c (TclByteArrayMatch, TclStringMatchObj):
725        * generic/tclRegexp.c (Tcl_RegExpExecObj):
726        * generic/tclCmdMZ.c (StringMatchCmd): Use TclStringMatchObj
727        * tests/string.test (11.9.* 11.10.*): more tests
728
7292007-12-10  Joe English  <jenglish@users.sourceforge.net>
730
731        * doc/string.n, doc/UniCharIsAlpha.3: Fix markup errors.
732        * doc/CrtCommand.3, doc/CrtMathFnc.3, doc/FileSystem.3,
733        * doc/GetStdChan.3, doc/OpenFileChnl.3, doc/SetChanErr.3,
734        * doc/eval.n, doc/filename.n: Consistency: Move "KEYWORDS" section
735        after "SEE ALSO".
736
7372007-12-10  Daniel Steffen  <das@users.sourceforge.net>
738
739        * tools/genStubs.tcl:           fix numerous issues handling 'macosx',
740                                        'aqua' or 'x11' entries interleaved
741                                        with 'unix' entries [Bug 1834288]; add
742                                        genStubs::export command
743                                        [Tk FR 1716117]; cleanup formatting.
744
745        * generic/tcl.decls:            use new genstubs 'export' command to
746        * generic/tclInt.decls:         mark exported symbols not in stubs
747        * generic/tclTomMath.decls:     table [Tk FR 1716117]; cleanup
748                                        formatting.
749
750        * generic/tclDecls.h:           regen with new genStubs.tcl.
751        * generic/tclIntDecls.h:        [Bug 1834288]
752        * generic/tclIntPlatDecls.h:
753        * generic/tclPlatDecls.h:
754        * generic/tclStubInit.c:
755
7562007-12-09  Jeff Hobbs  <jeffh@ActiveState.com>
757
758        * tests/io.test, tests/chanio.test (io-73.1): Make sure to invalidate
759        * generic/tclIO.c (SetChannelFromAny):        internal rep only after
760        validating channel rep. [Bug 1847044]
761
7622007-12-08  Donal K. Fellows  <dkf@users.sf.net>
763
764        * doc/expr.n, doc/mathop.n: Improved the documentation of the
765        operators. [Bug 1823622]
766
767        * generic/tclBasic.c (builtInCmds): Corrected list of hidden and
768        * doc/interp.n (SAFE INTERPRETERS): exposed commands so that the
769        documentation and reality now match. [Bug 1662436]
770
7712007-12-07  Jeff Hobbs  <jeffh@ActiveState.com>
772
773        * generic/tclExecute.c (TclExecuteByteCode INST_REGEXP):
774        * generic/tclCompCmds.c (TclCompileRegexpCmd): Pass correct RE
775        compile flags at compile time, and use TCL_REG_NOSUB.
776
777        * generic/tclIOCmd.c (FinalizeIOCmdTSD, Tcl_PutsObjCmd): cache
778        stdout channel object for [puts $str] calls.
779
7802007-12-06  Don Porter  <dgp@users.sourceforge.net>
781
782        * README:       Remove mention of dead comp.lang.tcl.announce
783        newsgroup.  [Bug 1846433].
784
785        * unix/README:  Mention the stub library created by `make` and warn
786        about the effect of embedded paths in the installed binaries.
787        Thanks to Larry Virden.  [Bug 1794084]
788
789        * doc/AddErrInfo.3:     Documentation for the new routines in TIP 270.
790        * doc/Interp.3:
791        * doc/StringObj.3:
792
7932007-12-06  Don Porter  <dgp@users.sourceforge.net>
794
795        * doc/namespace.n:      Documentation for zero-argument form of
796        [namespace import] (TIP 261) [Bug 1596416]
797
7982007-12-06  Jeff Hobbs  <jeffh@ActiveState.com>
799
800        * generic/tclInt.h: add TclGetChannelFromObj decl
801        (TclMatchIsTrivial): simplify TclMatchIsTrivial to remove ] check.
802
8032007-12-06  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
804
805
806        * generic/tclBasic.c (Tcl_CreateInterp): Simplify the setting up of
807        * generic/tclIOCmd.c (TclInitChanCmd):   the [chan] ensemble. This
808        * library/init.tcl:                      gets rid of quite a bit of
809        code and makes it possible to understand the whole with less effort.
810
811        * generic/tclCompCmds.c (TclCompileEnsemble): Ensure that the right
812        number of tokens are copied. [Bug 1845320]
813
814        * generic/tclNamesp.c (TclMakeEnsemble): Added missing release of a
815        DString. [Bug 1845397]
816
8172007-12-05  Jeff Hobbs  <jeffh@ActiveState.com>
818
819        * generic/tclIO.h:    Create Tcl_Obj for Tcl channels to reduce
820        * generic/tclIO.c:    overhead in lookup by Tcl_GetChannel.  New
821        * generic/tclIOCmd.c: TclGetChannelFromObj for internal use.
822        * generic/tclIO.c (WriteBytes, WriteChars): add opt check to avoid
823        EOL translation when not linebuffered or using lf. [Bug 1845092]
824
8252007-12-05  Miguel Sofer  <msofer@users.sf.net>
826
827        * tests/stack.test: made the tests for stack overflow not care
828        about which mechanism caused the error (interp's recursion limit
829        or C-stack depth detector).
830
8312007-12-05  Jeff Hobbs  <jeffh@ActiveState.com>
832
833        * win/configure, win/tcl.m4 (LIBS_GUI): mingw needs -lole32
834        -loleaut32 but not msvc for Tk's [send]. [Bug 1844749]
835
8362007-12-05  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
837
838        * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Prevent shimmering crash
839        when -exact and -integer/-real are mixed. [Bug 1844789]
840
8412007-12-03  Donal K. Fellows  <dkf@users.sf.net>
842
843        * unix/tclUnixChan.c (CreateSocketAddress): Add extra #ifdef-fery to
844        make code compile on BSD 5. [Bug 1618235, again]
845
8462007-12-03  Don Porter  <dgp@users.sourceforge.net>
847
848        * library/tcltest/tcltest.tcl:  Bump tcltest to version 2.3.0 so that
849        * library/tcltest/pkgIndex.tcl: we release a stable tcltest with a
850        * unix/Makefile.in:     stable Tcl.
851        * win/Makefile.in:
852
8532007-12-03  Jeff Hobbs  <jeffh@ActiveState.com>
854
855        * win/configure, win/tcl.m4 (LIBS_GUI): remove ole32.lib oleaut32.lib
856
8572007-12-03  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
858
859        * generic/tclCompCmds.c (TclCompileSwitchCmd): Adjusted the [switch]
860        * generic/tclCmdMZ.c (Tcl_SwitchObjCmd):       command so that when
861        passed two arguments, no check for options are performed. This is OK
862        since in the two-arg case, detecting an option would definitely lead
863        to a syntax error. [Patch 1836519]
864
8652007-11-29  Jeff Hobbs  <jeffh@ActiveState.com>
866
867        * win/makefile.vc: add ws2_32.lib to baselibs
868        * win/configure, win/tcl.m4: add ws2_32.lib / -lws2_32 to build.
869        * win/tclWinSock.c: remove dyn loading of winsock, assume that it is
870        always available now.
871
8722007-11-29  Don Porter  <dgp@users.sourceforge.net>
873
874        * generic/tclWinSock.c (InitializeHostName):    Correct error in
875        buffer length tracking. After gethostname() writes into a buffer,
876        convert only the written string to internal encoding, not the whole
877        buffer.
878
8792007-11-28  Don Porter  <dgp@users.sourceforge.net>
880
881        * generic/tclConfig.c:  Corrected failure of the [::foo::pkgconfig]
882        command to clean up registered configuration data when the query
883        command is deleted from the interp. [Bug 983501]
884
885        * generic/tclNamesp.c (Tcl_SetEnsembleMappingDict):     Added checks
886        that the dict value passed in is in the format required to make the
887        internals of ensembles work. [Bug 1436096]
888
889        * generic/tclIO.c:      Simplify test and improve accuracy of error
890        message in latest changes.
891
8922007-11-28  Pat Thoyts  <patthoyts@users.sourceforge.net>
893
894        * generic/tclIO.c: -eofchar must support no eofchar.
895
8962007-11-27  Miguel Sofer  <msofer@users.sf.net>
897
898        * generic/tclBasic.c: remove unneeded call in Tcl_CreateInterp, add
899        comments.
900
9012007-11-27  Don Porter  <dgp@users.sourceforge.net>
902
903        * win/tclWinSock.c:     Add mising encoding conversion of the [info
904        hostname] value from the system encoding to Tcl's internal encoding.
905
906        * doc/chan.n:           "Fix" the limitation on channel -eofchar
907        * doc/fconfigure.n:     values to single byte characters by documenting
908        * generic/tclIO.c:      it and making it fail loudly. Thanks to Stuart
909        * tests/chan.test:      Cassoff for contributing the fix. [Bug 800753]
910
9112007-11-26  Miguel Sofer  <msofer@users.sf.net>
912
913        * generic/tclBasic.c:
914        * generic/tclInt.h:
915        * unix/tclUnixInit.c:
916        * unix/tclUnixThrd.c: Fix stack checking via workaround for bug in
917        glibc's pthread_attr_get_np, patch from [Bug 1815573]. Many thanks to
918        Sergei Golovan (aka Teo) for detecting the bug and helping diagnose
919        and develop the fix.
920
9212007-11-24  Donal K. Fellows  <dkf@users.sf.net>
922
923        * generic/tclCompCmds.c (TclCompileDictAppendCmd): Fix bug in [dict
924        append] compiler which caused strange stack corruption. [Bug 1837392]
925
9262007-11-23  Andreas Kupries  <andreask@activestate.com>
927
928        * generic/tclIORChan.c: Fixed a problem with reflected channels. 'chan
929        postevent' is defined to work only from within the interpreter
930        containing the handler command. Sensible, we want only handler
931        commands to use it. It identifies the channel by handle. The channel
932        moves to a different interpreter or thread. The interpreter containing
933        the handler command doesn't know the channel any longer. 'chan
934        postevent' fails, not finding the channel any longer. Uhm.
935
936        Fixed by creating a second per-interpreter channel table, just for
937        reflected channels, where each interpreter remembers for which
938        reflected channels it has the handler command. This info does not move
939        with the channel itself. The table is updated by 'chan create', and
940        used by 'chan postevent'.
941
942        * tests/ioCmd.test: Updated the testsuite.
943
9442007-11-23  Jeff Hobbs  <jeffh@ActiveState.com>
945
946        * generic/tclVar.c (Tcl_ArrayObjCmd): handle the right data for
947        * tests/var.test (var-14.2):          [array names $var -glob $ptn]
948
9492007-11-23  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
950
951        * generic/tclCmdMZ.c (String*Cmd, TclInitStringCmd): Rebuilt [string]
952        * generic/tclCompCmds.c (TclCompileString*Cmd): as an ensemble.
953
9542007-11-22  Donal K. Fellows  <dkf@users.sf.net>
955
956        * generic/tclDictObj.c (Dict*Cmd,TclInitDictCmd): Rebuilt the [dict]
957        * generic/tclCompCmds.c (TclCompileDict*Cmd): command as an ensemble.
958
9592007-11-22  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
960
961        * generic/tclCmdMZ.c (Tcl_StringObjCmd): Rewrote the [string] and
962        * generic/tclDictObj.c (Tcl_DictObjCmd): [dict] implementations to be
963        ready for conversion to ensembles.
964
965        * tests/string.test (string-12.22): Flag shimmering bug found in
966        [string range].
967
9682007-11-21  Donal K. Fellows  <dkf@users.sf.net>
969
970        * generic/tclCompCmds.c (TclCompileEnsemble): Rewrote the ensemble
971        compiler to remove many of the limitations. Can now compile scripts
972        that use unique prefixes of subcommands, and which have mappings of a
973        command to multiple words (provided the first is a compilable command
974        of course).
975
9762007-11-21  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
977
978        * generic/tclNamesp.c (TclMakeEnsemble): Factor out the code to set up
979        a core ensemble from a table of information about subcommands, ready
980        for reuse within the core.
981
982        * generic/various: Start to return more useful Error codes, currently
983        mainly on assorted lookup failures.
984
9852007-11-20  Donal K. Fellows  <dkf@users.sf.net>
986
987        * generic/tclDictObj.c: Changed the underlying implementation of the
988        hash table used in dictionaries to additionally keep all entries in
989        the hash table in a linked list, which is only ever added to at the
990        end. This makes iteration over all entries in the dictionary in
991        key insertion order a trivial operation, and so cleans up a great deal
992        of complexity relating to dictionary representation and stability of
993        iteration order.
994
995        ***POTENTIAL INCOMPATIBILITY***
996        For any code that depended on the (strange) old iteration order.
997
998        * generic/tclConfig.c (QueryConfigObjCmd): Correct usage of
999        Tcl_WrongNumArgs.
1000
10012007-11-19  Don Porter  <dgp@users.sourceforge.net>
1002
1003        *** 8.5b3 TAGGED FOR RELEASE ***
1004
1005        * README:               Bump version number to 8.5b3.
1006        * generic/tcl.h:
1007        * library/init.tcl:
1008        * tools/tcl.wse.in:
1009        * unix/configure.in:
1010        * unix/tcl.spec:
1011        * win/configure.in:
1012
1013        * unix/configure:       autoconf (2.59)
1014        * win/configure:
1015
1016        * changes:              Updated for 8.5b3 release.
1017
10182007-11-19  Kevin Kenny  <kennykb@users.sourceforge.net>
1019
1020        * library/tzdata/Africa/Cairo:
1021        * library/tzdata/America/Campo_Grande:
1022        * library/tzdata/America/Caracas:
1023        * library/tzdata/America/Cuiaba:
1024        * library/tzdata/America/Havana:
1025        * library/tzdata/America/Sao_Paulo:
1026        * library/tzdata/Asia/Damascus:
1027        * library/tzdata/Asia/Gaza:
1028        * library/tzdata/Asia/Tehran:  Olson's tzdata2007i imported.
1029
10302007-11-18  Daniel Steffen  <das@users.sourceforge.net>
1031
1032        * generic/tclExecute.c (TclExecuteByteCode:INST_EXIST_*): Fix read
1033        traces not firing on non-existent array elements. [Bug 1833522]
1034
10352007-11-16  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1036
1037        * generic/tclCmdIL.c (TclInitInfoCmd): Rename the implementation
1038        commands for [info] to be something more "expected".
1039
1040        * generic/tclCompCmds.c (TclCompileInfoExistsCmd): Compiler for the
1041        [info exists] subcommand.
1042        (TclCompileEnsemble): Cleaned up version of ensemble compiler that was
1043        in TclCompileInfoCmd, but which is now much more generally applicable.
1044
1045        * generic/tclInt.h (ENSEMBLE_COMPILE): Added flag to allow for cleaner
1046        turning on and off of ensemble bytecode compilation.
1047
1048        * generic/tclCompile.c (TclCompileScript): Add the cmdPtr to the list
1049        of arguments passed to command compilers.
1050
10512007-11-15  Don Porter  <dgp@users.sourceforge.net>
1052
1053        * generic/regc_nfa.c:   Fixed infinite loop in the regexp compiler.
1054        [Bug 1810038]
1055
1056        * generic/regc_nfa.c:   Corrected looping logic in fixempties() to
1057        avoid wasting time walking a list of dead states. [Bug 1832612]
1058
10592007-11-15  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1060
1061        * generic/tclNamesp.c (NamespaceEnsembleCmd): Must pass a non-NULL
1062        interp to Tcl_SetEnsemble* functions.
1063
1064        * doc/re_syntax.n: Try to make this easier to read. It's still a very
1065        difficult manual page!
1066
1067        * unix/tcl.m4 (SC_CONFIG_CFLAGS): Allow people to turn off the -rpath
1068        option to their linker if they so desire. This is a configuration only
1069        recommended for (some) vendors. Relates to [Patch 1231022].
1070
10712007-11-15  Pat Thoyts  <patthoyts@users.sourceforge.net>
1072
1073        * win/tclWin32Dll.c: Prefer UINT_PTR to DWORD_PTR when casting pointers
1074        to integer types for greater portability. [Bug 1831253]
1075
10762007-11-15  Daniel Steffen  <das@users.sourceforge.net>
1077
1078        * macosx/Tcl.xcodeproj/project.pbxproj: add new chanio.test.
1079        * macosx/Tcl.xcode/project.pbxproj:
1080
10812007-11-14  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1082
1083        * generic/tclCompile.c (TclCompileScript): Ensure that we get our count
1084        in our INST_START_CMD calls right, even when there's a failure to
1085        compile a command directly.
1086
1087        * generic/tclNamesp.c (Tcl_SetEnsembleSubcommandList)
1088        (Tcl_SetEnsembleMappingDict):           Special code to make sure that
1089        * generic/tclCmdIL.c (TclInitInfoCmd):  [info exists] is compiled right
1090        while not allowing changes to the ensemble to cause havok.
1091
1092        * generic/tclCompCmds.c (TclCompileInfoCmd): Simple compiler for the
1093        [info] command that only handles [info exists].
1094
1095        * generic/tclExecute.c (TclExecuteByteCode:INST_EXIST_*): New
1096        instructions to allow the testing of whether a variable exists.
1097
10982007-11-14  Andreas Kupries  <andreask@activestate.com>
1099
1100        * tests/chanio.test: New file. This is essentially a duplicate of
1101        'io.test', with all channel commands converted to their 'chan xxx'
1102        notation.
1103        * tests/io.test: Fixed typo in test description.
1104
11052007-11-14  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1106
1107        * generic/regc*.c: Eliminate multi-char collating element code
1108        completely. Simplifies the code quite a bit. If people still want the
1109        full code, it will remain on the 8.4 branch. [Bug 1831425]
1110
11112007-11-13  Jeff Hobbs  <jeffh@ActiveState.com>
1112
1113        * generic/tclCompCmds.c (TclCompileRegexpCmd): clean up comments, only
1114        free dstring on OK from TclReToGlob.
1115        (TclCompileSwitchCmd): simplify TclReToGlob usage.
1116
11172007-11-14  Donal K. Fellows  <dkf@users.sf.net>
1118
1119        * generic/regc*.c: #ifdef/comment out the code that deals with
1120        multi-character collating elements, which have never been supported.
1121        Cuts the memory consumption of the RE compiler. [Bug 1831425]
1122
11232007-11-13  Donal K. Fellows  <dkf@users.sf.net>
1124
1125        * generic/tclCompCmds.c (TclCompileSwitchCmd, TclCompileRegexpCmd):
1126        Extend [switch] compiler to handle regular expressions as long as
1127        things are not too complex. Fix [regexp] compiler so that non-trivial
1128        literal regexps get fed to INST_REGEXP.
1129
1130        * doc/mathop.n: Clarify definitions of some operations.
1131
11322007-11-13  Miguel Sofer  <msofer@users.sf.net>
1133
1134        * unix/tclUnixInit.c: the TCL_NO_STACK_CHECK was being incorrectly
1135        undefined here; this should be set (or not) in the compile options, it
1136        is used elsewhere and needs to be consistent.
1137
11382007-11-13  Pat Thoyts  <patthoyts@users.sourceforge.net>
1139
1140        * unix/tcl.m4:          Added autoconf goo to detect and make use of
1141        * unix/configure.in:    getaddrinfo and friends.
1142        * unix/configure:       (regenerated)
1143
11442007-11-13  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1145
1146        * unix/tclUnixCompat.c (TclpGetHostByName): The six-argument form of
1147        getaddressbyname_r() uses the fifth argument to indicate whether the
1148        lookup succeeded or not on at least one platform. [Bug 1618235]
1149
11502007-11-13  Don Porter  <dgp@users.sourceforge.net>
1151
1152        * generic/regcomp.c:    Convert optst() from expensive no-op to a
1153        cheap no-op.
1154
11552007-11-13  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1156
1157        * unix/tclUnixChan.c (CreateSocketAddress): Rewrote to use the
1158        thread-safe version of gethostbyname() by forward-porting the code used
1159        in 8.4, and added rudimentary support for getaddrinfo() (not enabled by
1160        default, as no autoconf-ery written). Part of fix for [Bug 1618235].
1161
11622007-11-12  Jeff Hobbs  <jeffh@ActiveState.com>
1163
1164        * generic/tclGet.c (Tcl_Get, Tcl_GetInt): revert use of TclGet* macros
1165        due to compiler warning. These cases won't save time either.
1166
1167        * generic/tclUtil.c (TclReToGlob): add more comments, set interp result
1168        if specified on error.
1169
11702007-11-12  Miguel Sofer  <msofer@users.sf.net>
1171
1172        * generic/tclBasic.c:           New macro TclResetResult, new iPtr flag
1173        * generic/tclExecute.c:         bit INTERP_RESULT_UNCLEAN: shortcut for
1174        * generic/tclInt.h:             Tcl_ResetResult for the "normal" case:
1175        * generic/tclProc.c:            TCL_OK, no return options, no errorCode
1176        * generic/tclResult.c:          nor errorInfo, return at normal level.
1177        * generic/tclStubLib.c:         [Patch 1830184]
1178        * generic/tclUtil.c:
1179
1180        THIS PATCH WAS REVERTED: initial (mis)measurements overstated the
1181        perfomance wins, which turn out to be tiny. Not worth the complication.
1182
11832007-11-11  Jeff Hobbs  <jeffh@ActiveState.com>
1184
1185        * generic/tclCompCmds.c, generic/tclCompile.c, generic/tclCompile.h:
1186        * generic/tclExecute.c, generic/tclInt.decls, generic/tclIntDecls.h:
1187        * generic/tclRegexp.c, generic/tclRegexp.h: Add INST_REGEXP and fully
1188        * generic/tclStubInit.c, generic/tclUtil.c: compiled [regexp] for the
1189        * tests/regexpComp.test:     [Bug 1830166]  simple cases. Also added
1190        TclReToGlob function to convert RE to glob patterns and use these in
1191        the possible cases.
1192
11932007-11-11  Miguel Sofer  <msofer@users.sf.net>
1194
1195        * generic/tclResult.c (ResetObjResult): clarify the logic.
1196
1197        * generic/tclBasic.c:           Increased usage of macros to detect
1198        * generic/tclBinary.c:          and take advantage of objTypes. Added
1199        * generic/tclClock.c:           macros TclGet(Int|Long)FromObj,
1200        * generic/tclCmdAH.c:           TclGetIntForIndexM & TclListObjLength,
1201        * generic/tclCmdIL.c:           modified TclListObjGetElements.
1202        * generic/tclCmdMZ.c:
1203        * generic/tclCompCmds.c:        The TclGetInt* macros are only a
1204        * generic/tclCompExpr.c:        shortcut on platforms where 'long' is
1205        * generic/tclCompile.c:         'int'; it may be worthwhile to extend
1206        * generic/tclDictObj.c:         their functionality to other cases.
1207        * generic/tclExecute.c:
1208        * generic/tclGet.c:             As this patch touches many files it has
1209        * generic/tclIO.c:              been recorded as [Patch 1830038] in
1210        * generic/tclIOCmd.c:           order to facilitate reviewing.
1211        * generic/tclIOGT.c:
1212        * generic/tclIndexObj.c:
1213        * generic/tclInt.h:
1214        * generic/tclInterp.c:
1215        * generic/tclListObj.c:
1216        * generic/tclLiteral.c:
1217        * generic/tclNamesp.c:
1218        * generic/tclObj.c:
1219        * generic/tclParse.c:
1220        * generic/tclProc.c:
1221        * generic/tclRegexp.c:
1222        * generic/tclResult.c:
1223        * generic/tclScan.c:
1224        * generic/tclStringObj.c:
1225        * generic/tclUtil.c:
1226        * generic/tclVar.c:
1227
12282007-11-11  Daniel Steffen  <das@users.sourceforge.net>
1229
1230        * unix/tclUnixTime.c (TclpWideClicksToNanoseconds): Fix issues with
1231        * generic/tclInt.h:                                 int64_t overflow.
1232
1233        * generic/tclBasic.c:   Fix stack check failure case if stack grows up
1234        * unix/tclUnixInit.c:   Simplify non-crosscompiled case.
1235
1236        * unix/configure:       autoconf-2.59
1237        * unix/tclConfig.h.in:  autoheader-2.59
1238
12392007-11-10  Miguel Sofer  <msofer@users.sf.net>
1240
1241        * generic/tclExecute.c: Fast path for INST_LIST_INDEX when the index is
1242        not a list.
1243
1244        * generic/tclBasic.c:
1245        * unix/configure.in:
1246        * unix/tclUnixInit.c: Detect stack grwoth direction at compile time,
1247        only fall to runtime detection when crosscompiling.
1248
1249        * unix/configure: autoconf 2.61
1250
1251        * generic/tclBasic.c:
1252        * generic/tclInt.h:
1253        * tests/interp.test:
1254        * unix/tclUnixInit.c:
1255        * win/tclWin32Dll.c: Restore simpler behaviour for stack checking, not
1256        adaptive to stack size changes after a thread is launched. Consensus is
1257        that "nobody does that", and so it is not worth the cost. Improved
1258        failure comments (mistachkin).
1259
12602007-11-10  Kevin Kenny  <kennykb@acm.org>
1261
1262        * win/tclWin32Dll.c: Rewrote the Windows stack checking algorithm to
1263        use information from VirtualQuery to determine the bound of the stack.
1264        This change fixes a bug where the guard page of the stack was never
1265        restored after an overflow. It also eliminates a nasty piece of
1266        assembly code for structured exception handling on mingw. It introduces
1267        an assumption that the stack is a single memory arena returned from
1268        VirtualAlloc, but the code in MSVCRT makes the same assumption, so it
1269        should be fairly safe.
1270
12712007-11-10  Miguel Sofer  <msofer@users.sf.net>
1272
1273        * generic/tclBasic.c:
1274        * generic/tclInt.h:
1275        * unix/tclUnixInit.c:
1276        * unix/tclUnixPort.h:
1277        * win/tclWin32Dll.c: Modify the stack checking algorithm to recheck in
1278        case of failure. The working assumptions are now that (a) a thread's
1279        stack is never moved, and (b) a thread's stack can grow but not shrink.
1280        Port to windows - could be more efficient, but is already cheaper than
1281        it was.
1282
12832007-11-09  Miguel Sofer  <msofer@users.sf.net>
1284
1285        * generic/tclResult.c (ResetObjResult): new shortcut.
1286
1287        * generic/tclAsync.c:
1288        * generic/tclBasic.c:
1289        * generic/tclExecute.c:
1290        * generic/tclInt.h:
1291        * generic/tclUnixInit.c:
1292        * generic/tclUnixPort.h: New fields in interp (ekeko!) to cache TSD
1293        data that is accessed at each command invocation, access macros to
1294        replace Tcl_AsyncReady and TclpCheckStackSpace by much faster variants.
1295        [Patch 1829248]
1296
12972007-11-09  Jeff Hobbs  <jeffh@ActiveState.com>
1298
1299        * generic/tclInt.decls, generic/tclIntDecls.h: Use unsigned char for
1300        * generic/tclExecute.c, generic/tclUtil.c:     TclByteArrayMatch and
1301        don't allow a nocase option. [Bug 1828296]
1302        For INST_STR_MATCH, ignore pattern type for TclByteArrayMatch case.
1303
1304        * generic/tclBinary.c (Tcl_GetByteArrayFromObj): check type before
1305        func jump (perf).
1306
13072007-11-07  Jeff Hobbs  <jeffh@ActiveState.com>
1308
1309        * generic/tclStubInit.c:                        Added TclByteArrayMatch
1310        * generic/tclInt.decls:                         for efficient glob
1311        * generic/tclIntDecls.h:                        matching of ByteArray
1312        * generic/tclUtil.c (TclByteArrayMatch):        Tcl_Objs, used in
1313        * generic/tclExecute.c (TclExecuteByteCode):    INST_STR_MATCH. [Bug
1314                                                        1827996]
1315
1316        * generic/tclIO.c (TclGetsObjBinary): Add an efficient binary path for
1317                                              [gets].
1318        (DoWriteChars): Special case for 1-byte channel write.
1319
13202007-11-06  Miguel Sofer  <msofer@users.sf.net>
1321
1322        * generic/tclEncoding.c: Version of the embedded iso8859-1 encoding
1323        handler that is faster (functions to do the encoding know exactly what
1324        they're doing instead of pulling it from a table, though the table
1325        itself has to be retained for use by shift encodings that depend on
1326        iso8859-1). [Patch 1826906], committing for dkf.
1327
13282007-11-05  Andreas Kupries  <andreask@activestate.com>
1329
1330        * generic/tclConfig.c (Tcl_RegisterConfig): Modified to not extend the
1331        config database if the encoding provided by the user is not found
1332        (venc == NULL). Scripts expecting the data will error out, however we
1333        neither crash nor provide bogus information. See [Bug 983509] for more
1334        discussion.
1335
1336        * unix/tclUnixChan.c (TtyGetOptionProc): Accepted [Patch 1823576]
1337        provided by Stuart Cassof <stwo@users.sourceforge.net>. The patch adds
1338        the necessary utf/external conversions to the handling of the arguments
1339        of option -xchar which will allow the use of \0 and similar characters.
1340
13412007-11-03  Miguel Sofer  <msofer@users.sf.net>
1342
1343        * generic/tclTest.c (TestSetCmd2):
1344        * generic/tclVar.c (TclObjLookupVarEx):
1345        * tests/set.test (set-5.1): Fix error branch when array name looks
1346        like array element (code not normally exercised).
1347
13482007-11-01  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1349
1350        * tools/tcltk-man2html.tcl (output-directive): Convert .DS/.DE pairs
1351        into tables since that is now all that they are used for.
1352
1353        * doc/RegExp.3: Clarified documentation of RE flags. [Bug 1167840]
1354
1355        * doc/refchan.n: Adjust internal name to be consistent with the file
1356        name for reduced user confusion. After comment by Dan Steffen.
1357
1358        * generic/tclCmdMZ.c (Tcl_StringObjCmd, UniCharIsAscii): Remember, the
1359        NUL character is in ASCII too. [Bug 1808258]
1360
1361        * doc/file.n: Clarified use of [file normalize]. [Bug 1185154]
1362
13632007-10-30  Don Porter  <dgp@users.sourceforge.net>
1364
1365        * generic/tcl.h:        Bump version number to 8.5b2.1 to distinguish
1366        * library/init.tcl:     CVS development snapshots from the 8.5b2
1367        * unix/configure.in:    release.
1368        * unix/tcl.spec:
1369        * win/configure.in:
1370
1371        * unix/configure:       autoconf (2.59)
1372        * win/configure:
1373
13742007-10-30  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1375
1376        * doc/expr.n, doc/mathfunc.n: Improve documentation to try to make
1377        clearer what is going on.
1378
1379        * doc/interp.n: Shorten the basic descriptive text for some interp
1380        subcommands so Solaris nroff doesn't truncate them. [Bug 1822268]
1381
13822007-10-30  Donal K. Fellows  <dkf@users.sf.net>
1383
1384        * tools/tcltk-man2html.tcl (output-widget-options): Enhance the HTML
1385        generator so that it can produce multi-line option descriptions.
1386
13872007-10-28  Miguel Sofer  <msofer@users.sf.net>
1388
1389        * generic/tclUtil.c (Tcl_ConcatObj): optimise for some of the
1390        concatenees being empty objs. [Bug 1447328]
1391
13922007-10-28  Donal K. Fellows  <dkf@users.sf.net>
1393
1394        * generic/tclEncoding.c (TclInitEncodingSubsystem): Hard code the
1395        iso8859-1 encoding, as it's needed for more than just text (especially
1396        binary encodings...) Note that other encodings rely on the encoding
1397        being a table encoding (!) so we can't use more efficient encoding
1398        mapping functions.
1399
14002007-10-27  Donal K. Fellows  <dkf@users.sf.net>
1401
1402        * generic/regc_lex.c (lexescape): Close off one of the problems
1403        mentioned in [Bug 1810264].
1404
14052007-10-27  Miguel Sofer  <msofer@users.sf.net>
1406
1407        * generic/tclNamesp.c (Tcl_FindCommand): insure that FQ command names
1408        are searched from the global namespace, ie, bypassing resolvers of the
1409        current namespace. [Bug 1114355]
1410
1411        * doc/apply.n: fixed example [Bug 1811791]
1412        * doc/namespace.n: improved example [Bug 1788984]
1413        * doc/AddErrInfo.3: typo [Bug 1715087]
1414        * doc/CrtMathFnc.3: fixed Tcl_ListMathFuncs entry [Bug 1672219]
1415
1416        * generic/tclCompile.h:
1417        * generic/tclInt.h: moved declaration of TclSetCmdNameObj from
1418        tclCompile.h to tclInt.h, reverting linker [Bug 1821159] caused by
1419        commit of 2007-10-11 (both I and gcc missed one dep).
1420
1421        * generic/tclVar.c: try to preserve Tcl_Objs when doing variable
1422        lookups by name, partially addressing [Bug 1793601].
1423
14242007-10-27  Donal K. Fellows  <dkf@users.sf.net>
1425
1426        * tools/tcltk-man2html.tcl (make-man-pages, htmlize-text)
1427        (process-text): Make the man->HTML scraper work better.
1428
14292007-10-26  Don Porter  <dgp@users.sourceforge.net>
1430
1431        *** 8.5b2 TAGGED FOR RELEASE ***
1432
1433        * changes:              Updated for 8.5b2 release.
1434
1435        * doc/*.1:              Revert doc changes that broke
1436        * doc/*.3:              `make html` so we can get the release
1437        * doc/*.n:              out the door.
1438
1439        * README:               Bump version number to 8.5b2.
1440        * generic/tcl.h:
1441        * library/init.tcl:
1442        * tools/tcl.wse.in:
1443        * unix/configure.in:
1444        * unix/tcl.spec:
1445        * win/configure.in:
1446
1447        * unix/configure:       autoconf (2.59)
1448        * win/configure:
1449
14502007-10-26  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1451
1452        * tools/man2help2.tcl, tools/man2tcl.c: Made some of the tooling code
1453        to do man->other formats work better with current manpage set. Long
1454        way still to go.
1455
14562007-10-25  Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
1457
1458        * generic/tclThread.c: Added TclpMasterLock/Unlock arround calls to
1459        ForgetSyncObject in Tcl_MutexFinalize and Tcl_ConditionFinalize to
1460        prevent from garbling the internal lists that track sync objects. [Bug
1461        1726873]
1462
14632007-10-24  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1464
1465        * tools/man2html2.tcl (macro): Added support for converting the new
1466        macros into HTML.
1467
1468        * doc/man.macros (QW,PQ,QR,MT): New macros that hide the ugly mess
1469        needed to get proper GOOBE quoting in the manual pages.
1470        * doc/*.n, doc/*.3, doc/*.1: Lots of changes to take advantage of the
1471        new macros.
1472
14732007-10-20  Miguel Sofer  <msofer@users.sf.net>
1474
1475        * generic/tclCompile.c:   Fix comments.
1476        * generic/tclExecute.c:
1477
14782007-10-18  David Gravereaux <davygrvy@pobox.com>
1479
1480        * tools/mkdepend.tcl: sort the dep list for a more humanly readable
1481        output.
1482
14832007-10-18  Don Porter  <dgp@users.sourceforge.net>
1484
1485        * generic/tclResult.c (TclMergeReturnOptions):  Make sure any -code
1486        values get pulled out of the dictionary, even if they are integer
1487        valued.
1488
1489        * generic/tclCompCmds.c (TclCompileReturnCmd):  Added code to more
1490        optimally compile [return -level 0 $x] to "push $x". [RFE 1794073]
1491
1492        * compat/tmpnam.c (removed):    The routine tmpnam() is no longer
1493        * unix/Makefile.in:     called by Tcl source code. Remove autogoo the
1494        * unix/configure.in:    supplied a replacement version on systems
1495        * win/tcl.dsp:          where the routine was not available. [RFE
1496        1811848]
1497
1498        * unix/configure:       autoconf-2.59
1499
1500        * generic/tcl.h:        Remove TCL_LL_MODIFIER_SIZE. [RFE 1811837]
1501
15022007-10-17  David Gravereaux <davygrvy@pobox.com>
1503
1504        * tools/mkdepend.tcl:   Improved defense from malformed object list
1505        infile.
1506
15072007-10-17  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
1508
1509        * tools/man2html2.tcl: Convert .DS/.DE into HTML tables, not
1510        preformatted text.
1511
15122007-10-17  Kevin B. Kenny  <kennykb@acm.org>
1513
1514        * generic/tclCompExpr.c: Moved a misplaced declaration that blocked
1515                                 compilation on VC++.
1516        * generic/tclExecute.c: Silenced several VC++ compiler warnings about
1517                                converting 'long' to 'unsigned short'.
1518
15192007-10-16  David Gravereaux <davygrvy@pobox.com>
1520
1521        * win/makefile.vc: removed old dependency cruft that is no longer
1522        needed.
1523
15242007-10-15  Don Porter  <dgp@users.sourceforge.net>
1525
1526        * generic/tclIOCmd.c:   Revise [open] so that it interprets leading
1527        zero strings passed as the "permissions" argument as octal numbers,
1528        even if Tcl itself no longer parses integers in that way.
1529
1530        * unix/tclUnixFCmd.c:   Revise the "-permissions" [file attribute] so
1531        that it interprets leading zero strings as octal numbers, even if Tcl
1532        itself no longer parses integers in that way.
1533
1534        * generic/tclCompExpr.c:        Corrections to code that produces
1535        * generic/tclUtil.c:            extended "bad octal" error messages.
1536
1537        * tests/cmdAH.test:     Test revisions so that tests pass whether or
1538        * tests/cmdIL.test:     not Tcl parses leading zero strings as octal.
1539        * tests/compExpr-old.test:
1540        * tests/compExpr.test:
1541        * tests/compile.test:
1542        * tests/expr-old.test:
1543        * tests/expr.test:
1544        * tests/incr.test:
1545        * tests/io.test:
1546        * tests/lindex.test:
1547        * tests/link.test:
1548        * tests/mathop.test:
1549        * tests/parseExpr.test:
1550        * tests/set.test:
1551        * tests/string.test:
1552        * tests/stringComp.test:
1553
15542007-10-15  David Gravereaux <davygrvy@pobox.com>
1555
1556        * tools/mkdepend.tcl:   Produces usable output. Include path problem
1557        * win/makefile.vc:      fixed. Never fight city hall when it comes to
1558        levels of quoting issues.
1559
15602007-10-15  Miguel Sofer  <msofer@users.sf.net>
1561
1562        * generic/tclParse.c (Tcl_ParseBraces): fix for possible read after
1563        the end of buffer. [Bug 1813528] (Joe Mistachkin)
1564
15652007-10-14  David Gravereaux <davygrvy@pobox.com>
1566
1567        * tools/mkdepend.tcl (new):  Initial stab at generating automatic
1568        * win/makefile.vc:           dependencies.
1569
15702007-10-12  Pat Thoyts  <patthoyts@users.sourceforge.net>
1571
1572        * win/makefile.vc:  Mine all version information from headers.
1573        * win/rules.vc:     Sync tcl and tk and bring extension versions
1574        * win/nmakehlp.c:   closer together. Try and avoid using tclsh to do
1575                            substitutions as we may cross compile.
1576        * win/coffbase.txt: Added offsets for snack dlls.
1577
15782007-10-11  David Gravereaux <davygrvy@pobox.com>
1579
1580        * win/makefile.vc:  Fixed my bad spelling mistakes from years back.
1581        Dedependency, duh!  Rather funny.
1582
15832007-10-11  Don Porter  <dgp@users.sourceforge.net>
1584
1585        * generic/tclCmdMZ.c:   Correct [string is (wide)integer] failure
1586        * tests/string.test:    to report correct failindex values for
1587        non-decimal integer strings. [Bug 1805887]
1588
1589        * compat/strtoll.c (removed):   The routines strtoll() and strtoull()
1590        * compat/strtoull.c (removed):  are no longer called by the Tcl source
1591        * generic/tcl.h:        code. (Their functionality has been replaced
1592        * unix/Makefile.in:     by TclParseNumber().) Remove outdated comments
1593        * unix/configure.in:    and mountains of configury autogoo that
1594        * unix/tclUnixPort.h:   allegedly support the mythical systems where
1595        * win/Makefile.in:      these routines might not have been available.
1596        * win/makefile.bc:
1597        * win/makefile.vc:
1598        * win/tclWinPort.h:
1599
1600        * unix/configure:       autoconf-2.59
1601
16022007-10-11  Miguel Sofer  <msofer@users.sf.net>
1603
1604        * generic/tclObj.c: remove superfluous #include of tclCompile.h
1605
16062007-10-08  George Peter Staplin <georgeps@xmission.com>
1607
1608        * doc/Hash.3: Correct the valid usage of the flags member for the
1609        Tcl_HashKeyType. It should be 0 or more of the flags mentioned.
1610
16112007-10-02  Jeff Hobbs  <jeffh@ActiveState.com>
1612
1613        * generic/tcl.h (Tcl_DecrRefCount): Update change from 2006-05-29 to
1614        make macro more warning-robust in unbraced if code.
1615
16162007-10-02  Don Porter  <dgp@users.sourceforge.net>
1617
1618        [core-stabilizer-branch]
1619
1620        * README:               Bump version number to 8.5.0
1621        * generic/tcl.h:
1622        * library/init.tcl:
1623        * tools/tcl.wse.in:
1624        * unix/configure.in:
1625        * unix/tcl.spec:
1626        * win/configure.in:
1627
1628        * unix/configure:       autoconf (2.59)
1629        * win/configure:
1630
16312007-10-02  Andreas Kupries  <andreask@activestate.com>
1632
1633        * library/tclIndex: Added 'tcl::tm::path' to the tclIndex. This fixes
1634        [Bug 1806422] reported by Don Porter.
1635
16362007-09-25  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
1637
1638        * generic/tclProc.c (Tcl_DisassembleObjCmd): Define a command,
1639        ::tcl::unsupported::disassemble, which can disassemble procedures,
1640        lambdas and general scripts.
1641        * generic/tclCompile.c (TclDisassembleByteCodeObj): Split apart the
1642        code to print disassemblies of bytecode so that there is reusable code
1643        that spits it out in a Tcl_Obj and then that code is used when doing
1644        tracing.
1645
16462007-09-20  Don Porter  <dgp@users.sourceforge.net>
1647
1648        *** 8.5b1 TAGGED FOR RELEASE ***
1649
1650        * changes: updates for 8.5b1 release.
1651
16522007-09-19  Don Porter  <dgp@users.sourceforge.net>
1653
1654        * README:               Bump version number to 8.5b1
1655        * generic/tcl.h:        Merge from core-stabilizer-branch.
1656        * library/init.tcl:     Stabilizing toward 8.5b1 release now done on
1657        * tools/tcl.wse.in:     the HEAD. core-stabilizer-branch is now
1658        * unix/configure.in:    suspended.
1659        * unix/tcl.spec:
1660        * win/configure.in:
1661
16622007-09-19  Pat Thoyts  <patthoyts@users.sourceforge.net>
1663
1664        * generic/tclStubLib.: Replaced isdigit with internal implementation.
1665
16662007-09-18  Don Porter  <dgp@users.sourceforge.net>
1667
1668        * generic/tclStubLib.c: Remove C library calls from Tcl_InitStubs() so
1669        * win/makefile.vc:      that we don't need the C library linked in to
1670        libtclStub.
1671
16722007-09-17  Pat Thoyts  <patthoyts@users.sourceforge.net>
1673
1674        * win/makefile.vc: Add crt flags for tclStubLib now it uses C-library
1675                           functions.
1676
16772007-09-17  Joe English  <jenglish@users.sourceforge.net>
1678
1679        * tcl.m4: use '${CC} -shared' instead of 'ld -Bshareable' to build
1680        shared libraries on current NetBSDs. [Bug 1749251]
1681        * unix/configure: regenerated (autoconf-2.59).
1682
16832007-09-17  Don Porter  <dgp@users.sourceforge.net>
1684
1685        * unix/Makefile.in:     Update `make dist` so that tclDTrace.d is
1686        included in the source code distribution.
1687
1688        * generic/tcl.h:        Revised Tcl_InitStubs() to restore Tcl 8.4
1689        * generic/tclPkg.c:     source compatibility with callers of
1690        * generic/tclStubLib.c: Tcl_InitStubs(interp, TCL_VERSION, 1). [Bug
1691        1578344]
1692
16932007-09-17  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1694
1695        * generic/tclTrace.c (Tcl_TraceObjCmd, TraceExecutionObjCmd)
1696        (TraceCommandObjCmd, TraceVariableObjCmd):   Generate literal values
1697        * generic/tclNamesp.c (NamespaceCodeCmd):    more efficiently using
1698        * generic/tclFCmd.c (CopyRenameOneFile):     TclNewLiteralStringObj
1699        * generic/tclEvent.c (TclSetBgErrorHandler): macro.
1700
17012007-09-15  Daniel Steffen  <das@users.sourceforge.net>
1702
1703        * unix/tcl.m4:  replace all direct references to compiler by ${CC} to
1704                        enable CC overriding at configure & make time; run
1705                        check for visibility "hidden" with all compilers;
1706                        quoting fixes from TEA tcl.m4.
1707        (SunOS-5.1x):   replace direct use of '/usr/ccs/bin/ld' in SHLIB_LD by
1708                        'cc' compiler driver.
1709        * unix/configure: autoconf-2.59
1710
17112007-09-14  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
1712
1713        * generic/tclBasic.c (Tcl_CreateObjCommand): Only invalidate along the
1714        namespace path once; that is enough. [Bug 1519940]
1715
17162007-09-14  Daniel Steffen  <das@users.sourceforge.net>
1717
1718        * generic/tclDTrace.d (new file): Add DTrace provider for Tcl; allows
1719        * generic/tclCompile.h:           tracing of proc and command entry &
1720        * generic/tclBasic.c:             return, bytecode execution, object
1721        * generic/tclExecute.c:           allocation and more; with
1722        * generic/tclInt.h:               essentially zero cost when tracing
1723        * generic/tclObj.c:               is inactive; enable with
1724        * generic/tclProc.c:              --enable-dtrace configure arg
1725        * unix/Makefile.in:               (disabled by default, will only
1726        * unix/configure.in:              enable if DTrace is present). [Patch
1727        1793984]
1728
1729        * macosx/GNUmakefile:             Enable DTrace support.
1730        * macosx/Tcl-Common.xcconfig:
1731        * macosx/Tcl.xcodeproj/project.pbxproj:
1732
1733        * generic/tclCmdIL.c:   Factor out core of InfoFrameCmd() into
1734                                internal TclInfoFrame() for use by DTrace
1735                                probes.
1736
1737        * unix/configure: autoconf-2.59
1738        * unix/tclConfig.h.in: autoheader-2.59
1739
17402007-09-12  Don Porter  <dgp@users.sourceforge.net>
1741
1742        * unix/Makefile.in:     Perform missing updates of the tcltest Tcl
1743        * win/Makefile.in:      Module installed filename that should have
1744        been part of the bump to tcltest 2.3b1. Thanks Larry Virden.
1745
17462007-09-12  Pat Thoyts  <patthoyts@users.sourceforge.net>
1747
1748        * win/makefile.vc, win/rules.vc, win/nmakehlp.c: Use nmakehlp to
1749        substitute values for tclConfig.sh (helps cross-compiling).
1750
17512007-09-11  Don Porter  <dgp@users.sourceforge.net>
1752
1753        * library/tcltest/tcltest.tcl:  Accept underscores and colons in
1754        * library/tcltest/pkgIndex.tcl: constraint names. Properly handle
1755        constraint expressions that return non-numeric boolean results like
1756        "false". Bump to tcltest 2.3b1. [Bug 1772989; RFE 1071322]
1757        * tests/info.test:      Disable fragile tests.
1758
1759        * doc/package.n:        Restored the functioning of [package require
1760        * generic/tclPkg.c:     -exact] to be compatible with Tcl 8.4. [Bug
1761        * tests/pkg.test:       1578344]
1762
17632007-09-11  Miguel Sofer  <msofer@users.sf.net>
1764
1765        * generic/tclCompCmds.c (TclCompileDictCmd-update):
1766        * generic/tclCompile.c (tclInstructionTable):
1767        * generic/tclExecute.c (INST_DICT_UPDATE_END): fix stack management in
1768        compiled [dict update]. [Bug 1786481]
1769
1770        ***POTENTIAL INCOMPATIBILITY***
1771        Scripts that were precompiled on earlier versions of 8.5 and use [dict
1772        update] will crash. Workaround: recompile.
1773
17742007-09-11  Kevin B. Kenny  <kennykb@acm.org>
1775
1776        * generic/tclExecute.c: Corrected an off-by-one error in the setting
1777        of MaxBaseWide for certain powers. [Bug 1767293 - problem reported in
1778        comments when bug was reopened]
1779
17802007-09-10  Jeff Hobbs  <jeffh@ActiveState.com>
1781
1782        * generic/tclLink.c (Tcl_UpdateLinkedVar): guard against var being
1783        unlinked. [Bug 1740631] (maros)
1784
17852007-09-10  Miguel Sofer  <msofer@users.sf.net>
1786
1787        * generic/tclCompile.c: fix tclInstructionTable entry for
1788        dictUpdateEnd
1789
1790        * generic/tclExecute.c: remove unneeded setting of 'cleanup' variable
1791        before jumping to checkForCatch.
1792
17932007-09-10  Don Porter  <dgp@users.sourceforge.net>
1794
1795        * doc/package.n:        Restored the document parallel syntax of the
1796        * generic/tclPkg.c:     [package present] and [package require]
1797        * tests/pkg.test:       commands. [Bug 1723675]
1798
17992007-09-09  Don Porter  <dgp@users.sourceforge.net>
1800
1801        * generic/tclInt.h:     Removed the "nsName" Tcl_ObjType from the
1802        * generic/tclNamesp.c:  registered set. Revised the management of the
1803        * generic/tclObj.c:     intrep of that Tcl_ObjType. Revised the
1804        * tests/obj.test:       TclGetNamespaceFromObj() routine to return
1805        TCL_ERROR and write a consistent error message when a namespace is not
1806        found. [Bug 1588842. Patch 1686862]
1807
1808        ***POTENTIAL INCOMPATIBILITY***
1809        For callers of Tcl_GetObjType() on the name "nsName".
1810
1811        * generic/tclExecute.c: Update TclGetNamespaceFromObj() callers.
1812        * generic/tclProc.c:
1813
1814        * tests/apply.test:             Updated tests to expect new consistent
1815        * tests/namespace-old.test:     error message when a namespace is not
1816        * tests/namespace.test:         found.
1817        * tests/upvar.test:
1818
1819        * generic/tclCompCmds.c:        Use the new INST_REVERSE instruction
1820        * tests/mathop.test:    to correct the compiled versions of math
1821        operator commands. [Bug 1724437]
1822
1823        * generic/tclCompile.c: New bytecode instruction INST_REVERSE to
1824        * generic/tclCompile.h: reverse the order of N items at the top of
1825        * generic/tclExecute.c: stack.
1826
1827        * generic/tclCompCmds.c (TclCompilePowOpCmd):   Make a separate
1828        routine to compile ** to account for its different associativity.
1829
18302007-09-08  Miguel Sofer  <msofer@users.sf.net>
1831
1832        * generic/tclVar.c (Tcl_SetVar2, TclPtrSetVar): [Bug 1710710] fixed
1833        correctly, reverted fix of 2007-05-01.
1834
18352007-09-08  Donal K. Fellows  <dkf@users.sf.net>
1836
1837        * generic/tclDictObj.c (DictUpdateCmd, DictWithCmd): Plug a hole that
1838        * generic/tclExecute.c (TEBC,INST_DICT_UPDATE_END): allowed a careful
1839        * tests/dict.test (dict-21.16,21.17,22.11): attacker to craft a dict
1840        containing a recursive link to itself, violating one of Tcl's
1841        fundamental datatype assumptions and causing a stack crash when the
1842        dict was converted to a string. [Bug 1786481]
1843
18442007-09-07  Don Porter  <dgp@users.sourceforge.net>
1845
1846        * generic/tclEvent.c ([::tcl::Bgerror]):        Corrections to Tcl's
1847        * tests/event.test:     default [interp bgerror] handler so that when
1848        it falls back to a hidden [bgerror] in a safe interp, it gets the
1849        right error context data. [Bug 1790274]
1850
18512007-09-07  Miguel Sofer  <msofer@users.sf.net>
1852
1853        * generic/tclProc.c (TclInitCompiledLocals): the refCount of resolved
1854        variables was being managed without checking if they were Var or
1855        VarInHash: itcl [Bug 1790184]
1856
18572007-09-06  Don Porter  <dgp@users.sourceforge.net>
1858
1859        * generic/tclResult.c (Tcl_GetReturnOptions):   Take care that a
1860        * tests/init.test:      non-TCL_ERROR code doesn't cause existing
1861        -errorinfo, -errorcode, and -errorline entries to be omitted.
1862        * generic/tclEvent.c:   With -errorInfo no longer lost, generate more
1863        complete ::errorInfo when calling [bgerror] after a non-TCL_ERROR
1864        background exception.
1865
18662007-09-06  Don Porter  <dgp@users.sourceforge.net>
1867
1868        * generic/tclInterp.c (Tcl_Init):       Removed constraint on ability
1869        to define a custom [tclInit] before calling Tcl_Init(). Until now the
1870        custom command had to be a proc. Now it can be any command.
1871
1872        * generic/tclInt.decls: New internal routine TclBackgroundException()
1873        * generic/tclEvent.c:   that for the first time permits non-TCL_ERROR
1874        exceptions to trigger [interp bgerror] handling. Closes a gap in TIP
1875        221. When falling back to [bgerror] (which is designed only to handle
1876        TCL_ERROR), convert exceptions into errors complaining about the
1877        exception.
1878
1879        * generic/tclInterp.c:  Convert Tcl_BackgroundError() callers to call
1880        * generic/tclIO.c:      TclBackgroundException().
1881        * generic/tclIOCmd.c:
1882        * generic/tclTimer.c:
1883
1884        * generic/tclIntDecls.h:        make genstubs
1885        * generic/tclStubInit.c:
1886
18872007-09-06  Daniel Steffen  <das@users.sourceforge.net>
1888
1889        * macosx/Tcl.xcode/project.pbxproj: discontinue unmaintained support
1890        * macosx/Tcl.xcode/default.pbxuser: for Xcode 1.5; replace by Xcode2
1891        project for use on Tiger (with Tcl.xcodeproj to be used on Leopard).
1892
1893        * macosx/Tcl.xcodeproj/project.pbxproj: updates for Xcode 2.5 and 3.0.
1894        * macosx/Tcl.xcodeproj/default.pbxuser:
1895        * macosx/Tcl.xcode/project.pbxproj:
1896        * macosx/Tcl.xcode/default.pbxuser:
1897        * macosx/Tcl-Common.xcconfig:
1898
1899        * macosx/README: document project changes.
1900
19012007-09-05  Don Porter  <dgp@users.sourceforge.net>
1902
1903        * generic/tclBasic.c:   Removed support for the unmaintained
1904        * generic/tclExecute.c: -DTCL_GENERIC_ONLY configuration. [Bug
1905        * unix/Makefile.in:     1264623]
1906
19072007-09-04  Don Porter  <dgp@users.sourceforge.net>
1908
1909        * unix/Makefile.in:     It's unreliable to count on the release
1910        manager to remember to `make genstubs` before `make dist`. Let the
1911        Makefile remember the dependency for us.
1912
1913        * unix/Makefile.in:     Corrections to `make dist` dependencies to be
1914        sure that macosx/configure gets generated whenever it does not exist.
1915
19162007-09-03  Kevin B, Kenny  <kennykb@acm.org>
1917
1918        * library/tzdata/Africa/Cairo:
1919        * library/tzdata/America/Grand_Turk:
1920        * library/tzdata/America/Port-au-Prince:
1921        * library/tzdata/America/Indiana/Petersburg:
1922        * library/tzdata/America/Indiana/Tell_City:
1923        * library/tzdata/America/Indiana/Vincennes:
1924        * library/tzdata/Antarctica/McMurdo:
1925        * library/tzdata/Australia/Adelaide:
1926        * library/tzdata/Australia/Broken_Hill:
1927        * library/tzdata/Australia/Currie:
1928        * library/tzdata/Australia/Hobart:
1929        * library/tzdata/Australia/Lord_Howe:
1930        * library/tzdata/Australia/Melbourne:
1931        * library/tzdata/Australia/Sydney:
1932        * library/tzdata/Pacific/Auckland:
1933        * library/tzdata/Pacific/Chatham: Olson's tzdata2007g.
1934
1935        * generic/tclListObj.c (TclLindexFlat):
1936        * tests/lindex.test (lindex-17.[01]):   Added code to detect the error
1937        when a script does [lindex {} end foo]; an overaggressive optimisation
1938        caused this call to return an empty object rather than an error.
1939
19402007-09-03  Daniel Steffen  <das@users.sourceforge.net>
1941
1942        * generic/tclObj.c (TclInitObjSubsystem): restore registration of the
1943        "wideInt" Tcl_ObjType for compatibility with 8.4 extensions that
1944        access the tclWideIntType Tcl_ObjType; add setFromAnyProc for
1945        tclWideIntType.
1946
19472007-09-02  Donal K. Fellows  <dkf@users.sf.net>
1948
1949        * doc/lsearch.n: Added note that order of results with the -all option
1950        is that of the input list. It always was, but this makes it crystal.
1951
19522007-08-30  Don Porter  <dgp@users.sourceforge.net>
1953
1954        * generic/tclCompile.c: Added fflush() calls following all callers of
1955        * generic/tclExecute.c: TclPrintByteCodeObj() so that tcl_traceCompile
1956        output is less likely to get mangled when writes to stdout interleave
1957        with other code.
1958
19592007-08-28  Don Porter  <dgp@users.sourceforge.net>
1960
1961        * generic/tclCompExpr.c:        Use a table lookup in ParseLexeme() to
1962        determine lexemes with single-byte representations.
1963
1964        * generic/tclBasic.c:   Used unions to better clarify overloading of
1965        * generic/tclCompExpr.c:        the fields of the OpCmdInfo and
1966        * generic/tclCompile.h:         TclOpCmdClientData structs.
1967
19682007-08-27  Don Porter  <dgp@users.sourceforge.net>
1969
1970        * generic/tclCompExpr.c:        Call TclCompileSyntaxError() when
1971        expression syntax errors are found when compiling expressions. With
1972        this in place, convert TclCompileExpr to return void, since there's no
1973        longer any need to report TCL_ERROR.
1974        * generic/tclCompile.c: Update callers.
1975        * generic/tclExecute.c:
1976
1977        * generic/tclCompCmds.c:        New routine TclCompileSyntaxError()
1978        * generic/tclCompile.h: to directly compile bytecodes that report a
1979        * generic/tclCompile.c: syntax error, rather than (ab)use a call to
1980        TclCompileReturnCmd. Also, undo the most recent commit that papered
1981        over some issues with that (ab)use. New routine produces a new opcode
1982        INST_SYNTAX, which is a minor variation of INST_RETURN_IMM. Also a bit
1983        of constification.
1984
1985        * generic/tclCompile.c: Move the deallocation of local LiteralTable
1986        * generic/tclCompExpr.c:        entries into TclFreeCompileEnv().
1987        * generic/tclExecute.c: Update callers.
1988
1989        * generic/tclCompExpr.c:        Force numeric and boolean literals in
1990        expressions to register with their intreps intact, even if that means
1991        overwriting existing intreps in already registered literals.
1992
19932007-08-25  Kevin B. Kenny  <kennykb@acm.org>
1994
1995        * generic/tclExecute.c (TclExecuteByteCode): Added code to handle
1996        * tests/expr.test (expr-23.48-53)            integer exponentiation
1997        that results in 32- and 64-bit integer results, avoiding calls to wide
1998        integer exponentiation routines in this common case. [Bug 1767293]
1999
2000        * library/clock.tcl (ParseClockScanFormat): Modified code to allow
2001        * tests/clock.test (clock-60.*):            case-insensitive matching
2002        of time zone and month names. [Bug 1781282]
2003
20042007-08-24  Don Porter  <dgp@users.sourceforge.net>
2005
2006        * generic/tclCompExpr.c:        Register literals found in expressions
2007        * tests/compExpr.test:  to restore literal sharing. Preserve numeric
2008        intreps when literals are created for the first time. Correct memleak
2009        in ExecConstantExprTree() and add test for the leak.
2010
20112007-08-24  Miguel Sofer  <msofer@users.sf.net>
2012
2013        * generic/tclCompile.c: replaced copy loop that tripped some compilers
2014        with memmove. [Bug 1780870]
2015
20162007-08-23  Don Porter  <dgp@users.sourceforge.net>
2017
2018        * library/init.tcl ([auto_load_index]): Delete stray "]" that created
2019        an expr syntax error (masked by a [catch]).
2020
2021        * generic/tclCompCmds.c (TclCompileReturnCmd):  Added crash protection
2022        to handle callers other than TclCompileScript() failing to meet the
2023        initialization assumptions of the TIP 280 code in CompileWord().
2024
2025        * generic/tclCompExpr.c:        Suppress the attempt to convert to
2026        numeric when pre-compiling a constant expresion indicates an error.
2027
20282007-08-22  Miguel Sofer  <msofer@users.sf.net>
2029
2030        * generic/tclExecute.c (TEBC): disable the new shortcut to frequent
2031        INSTs for debug builds. REVERTED (collision with alternative fix)
2032
20332007-08-21  Don Porter  <dgp@users.sourceforge.net>
2034
2035        * generic/tclMain.c:    Corrected the logic of dropping the last
2036        * tests/main.test:      newline from an interactively typed command.
2037        [Bug 1775878]
2038
20392007-08-21  Pat Thoyts  <patthoyts@users.sourceforge.net>
2040
2041        * tests/thread.test: thread-4.4: clear ::errorInfo in the thread as a
2042        message is left here from init.tcl on windows due to no tcl_pkgPath.
2043
20442007-08-20  Miguel Sofer  <msofer@users.sf.net>
2045
2046        * generic/tclExecute.c (INST_SUB): fix usage of the new macro for
2047        overflow detection in sums, adapt to subtraction. Lengthy comment
2048        added.
2049
20502007-08-19  Donal K. Fellows  <dkf@users.sf.net>
2051
2052        * generic/tclExecute.c (Overflowing, TclIncrObj, TclExecuteByteCode):
2053        Encapsulate Miguel's last change in a more mnemonic macro.
2054
20552007-08-19  Miguel Sofer  <msofer@users.sf.net>
2056
2057        * generic/tclExecute.c: changed the check for overflow in sums,
2058        reducing objsize, number of branches and cache misses (according to
2059        cachegrind). Non-overflow for s=a+b:
2060        previous
2061          ((a >= 0 || b >= 0 || s < 0) && (s >= 0 || b < 0 || a < 0))
2062        now
2063          (((a^s) >= 0) || ((a^b) < 0))
2064        This expresses: "a and s have the same sign or else a and b have
2065        different sign".
2066
20672007-08-19  Donal K. Fellows  <dkf@users.sf.net>
2068
2069        * doc/interp.n (RESOURCE LIMITS): Added text to better explain why
2070        time limits are described using absolute times. [Bug 1752148]
2071
20722007-08-16  Miguel Sofer  <msofer@users.sf.net>
2073
2074        * generic/tclVar.c: improved localVarNameType caching to leverage
2075        the new availability of Tcl_Obj in variable names, avoiding string
2076        comparisons to verify that the cached value is usable.
2077
2078        * generic/tclExecute.c: check the two most frequent instructions
2079        before the switch. Reduces both runtime and obj size a tiny bit.
2080
20812007-08-16  Don Porter  <dgp@users.sourceforge.net>
2082
2083        * generic/tclCompExpr.c:        Added a "constant" field to the OpNode
2084        struct (again "free" due to alignment requirements) to mark those
2085        subexpressions that are completely known at compile time. Enhanced
2086        CompileExprTree() and its callers to precompute these constant
2087        subexpressions at compile time. This resolves the issue raised in [Bug
2088        1564517].
2089
20902007-08-15  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
2091
2092        * generic/tclIOUtil.c (TclGetOpenModeEx): Only set the O_APPEND flag
2093        * tests/ioUtil.test (ioUtil-4.1):         on a channel for the 'a'
2094        mode and not for 'a+'. [Bug 1773127]
2095
20962007-08-14  Miguel Sofer  <msofer@users.sf.net>
2097
2098        * generic/tclExecute.c (INST_INVOKE*): peephole opt, do not get the
2099        interp's result if it will be pushed/popped.
2100
21012007-08-14  Don Porter  <dgp@users.sourceforge.net>
2102
2103        * generic/tclBasic.c:   Use fully qualified variable names for
2104        * tests/thread.test:    ::errorInfo and ::errorCode so that string
2105        * tests/trace.test:     reported to variable traces are fully
2106        qualified in agreement with Tcl 8.4 operations.
2107
21082007-08-14  Daniel Steffen  <das@users.sourceforge.net>
2109
2110        * unix/tclLoadDyld.c: use dlfcn API on Mac OS X 10.4 and later; fix
2111        issues with loading from memory on intel and 64bit; add debug messages
2112
2113        * tests/load.test: add test load-10.1 for loading from vfs.
2114
2115        * unix/dltest/pkga.c:           whitespace & comment cleanup, remove
2116        * unix/dltest/pkgb.c:           unused pkgf.c.
2117        * unix/dltest/pkgc.c:
2118        * unix/dltest/pkge.c:
2119        * unix/dltest/pkgf.c (removed):
2120        * unix/dltest/pkgua.c:
2121        * macosx/Tcl.xcodeproj/project.pbxproj:
2122
21232007-08-13  Don Porter  <dgp@users.sourceforge.net>
2124
2125        * generic/tclExecute.c: Provide DECACHE/CACHE protection to the
2126        * tests/trace.test:     Tcl_LogCommandInfo() call. [Bug 1773040]
2127
21282007-08-12  Miguel Sofer  <msofer@users.sf.net>
2129
2130        * generic/tclCmdMZ.c (Tcl_SplitObjCmd): use TclNewStringObj macro
2131        instead of calling the function.
2132
2133        * generic/tcl_Obj.c (TclAllocateFreeObjects): remove unneeded memset
2134        to 0 of all allocated objects.
2135
21362007-08-10  Miguel Sofer  <msofer@users.sf.net>
2137
2138        * generic/tclInt.h: remove redundant ops in TclNewStringObj macro.
2139
21402007-08-10  Miguel Sofer  <msofer@users.sf.net>
2141
2142        * generic/tclInt.h: fix the TclSetVarNamespaceVar macro, was causing a
2143        leak.
2144
21452007-08-10  Don Porter  <dgp@users.sourceforge.net>
2146
2147        * generic/tclCompExpr.c:        Revise CompileExprTree() to use the
2148        OpNode mark field scheme of tree traversal. This eliminates the need
2149        to use magic values in the left and right fields for that purpose.
2150        Also stop abusing the left field within ParseExpr() to store the
2151        number of arguments in a parsed function call. CompileExprTree() now
2152        determines that for itself at compile time. Then reorder code to
2153        eliminate duplication.
2154
21552007-08-09  Miguel Sofer  <msofer@users.sf.net>
2156
2157        * generic/tclProc.c (TclCreateProc): better comments on the required
2158        varflag values when loading precompiled procs.
2159
2160        * generic/tclExecute.c (INST_STORE_ARRAY):
2161        * tests/trace.test (trace-2.6): whole array write traces on compiled
2162        local variables were not firing. [Bug 1770591]
2163
21642007-08-08  Jeff Hobbs  <jeffh@ActiveState.com>
2165
2166        * generic/tclProc.c (InitLocalCache): reference firstLocalPtr via
2167        procPtr. codePtr->procPtr == NULL exposed by tbcload.
2168
21692007-08-08  Don Porter  <dgp@users.sourceforge.net>
2170
2171        * generic/tclExecute.c: Corrected failure to compile/link in the
2172        -DNO_WIDE_TYPE configuration.
2173
2174        * generic/tclExecute.c: Corrected improper use of bignum arguments to
2175        * tests/expr.test:      *SHIFT operations. [Bug 1770224]
2176
21772007-08-07  Miguel Sofer  <msofer@users.sf.net>
2178
2179        * generic/tclInt.h: remove comments refering to VAR_SCALAR, as that
2180        flag bit does not exist any longer.
2181        * generic/tclProc.c (InitCompiledLocals): removed optimisation for
2182        non-resolved case, as the function is never called in that case.
2183        Renamed the function to InitResolvedLocals to calrify the point.
2184
2185        * generic/tclInt.decls:   Exporting via stubs to help xotcl adapt to
2186        * generic/tclInt.h:       VarReform.
2187        * generic/tclIntDecls.h:
2188        * generic/tclStubInit.c:
2189
21902007-08-07  Daniel Steffen  <das@users.sourceforge.net>
2191
2192        * generic/tclEnv.c:     improve environ handling on Mac OS X (adapted
2193        * unix/tclUnixPort.h:   from Apple changes in Darwin tcl-64).
2194
2195        * unix/Makefile.in:     add support for compile flags specific to
2196                                object files linked directly into executables.
2197
2198        * unix/configure.in (Darwin): only use -seg1addr flag when prebinding;
2199        use -mdynamic-no-pic flag for object files linked directly into exes;
2200        support overriding TCL_PACKAGE_PATH/TCL_MODULE_PATH in environment.
2201
2202        * unix/configure: autoconf-2.59
2203
22042007-08-06  Don Porter  <dgp@users.sourceforge.net>
2205
2206        * tests/parseExpr.test: Update source file name of expr parser code.
2207
2208        * generic/tclCompExpr.c:        Added a "mark" field to the OpNode
2209        struct, which is used to guide tree traversal. This field costs
2210        nothing since alignement requirements used the memory already.
2211        Rewrote ConvertTreeToTokens() to use the new field, which permitted
2212        consolidation of utility routines CopyTokens() and
2213        GenerateTokensForLiteral().
2214
22152007-08-06  Kevin B. Kenny  <kennykb@users.sf.net>
2216
2217        * generic/tclGetDate.y: Added a cast to the definition of YYFREE to
2218                                silence compiler warnings.
2219        * generic/tclDate.c:    Regenerated
2220        * win/tclWinTest.c:     Added a cast to GetSecurityDescriptorDacl call
2221                                to silence compiler warnings.
2222
22232007-08-04  Miguel Sofer  <msofer@users.sf.net>
2224
2225        * generic/tclInt.decls:   Exporting via stubs to help itcl adapt to
2226        * generic/tclInt.h:       VarReform. Added localCache initialization
2227        * generic/tclIntDecls.h:  to TclInitCompiledLocals (which only exists
2228        * generic/tclProc.c:      for itcl).
2229        * generic/tclStubInit.c:
2230        * generic/tclVar.c:
2231
22322007-08-01  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
2233
2234        * library/word.tcl: Rewrote for greater efficiency. [Bug 1764318]
2235
22362007-08-01  Pat Thoyts  <patthoyts@users.sourceforge.net>
2237
2238        * generic/tclInt.h:     Added a TclOffset macro ala Tk_Offset to
2239        * generic/tclVar.c:     abstract out 'offsetof' which may not be
2240        * generic/tclExceute.c: defined (eg: msvc6).
2241
22422007-08-01  Miguel Sofer  <msofer@users.sf.net>
2243
2244        * generic/tclVar.c (TclCleanupVar): fix [Bug 1765225], thx Larry
2245        Virden.
2246
22472007-07-31  Miguel Sofer  <msofer@users.sf.net>
2248
2249        * doc/Hash.3:
2250        * generic/tclHash.c:
2251        * generic/tclObj.c:
2252        * generic/tclThreadStorage.c: (changes part of the patch below)
2253        Stop Tcl_CreateHashVar from resetting hPtr->clientData to NULL after
2254        calling the allocEntryProc for a custom table.
2255
2256        * generic/tcl.h:
2257        * generic/tclBasic.c:
2258        * generic/tclCmdIL.c:
2259        * generic/tclCompCmds.c:
2260        * generic/tclCompile.c:
2261        * generic/tclCompile.h:
2262        * generic/tclExecute.c:
2263        * generic/tclHash.c:
2264        * generic/tclInt.decls:
2265        * generic/tclInt.h:
2266        * generic/tclIntDecls.h:
2267        * generic/tclLiteral.c:
2268        * generic/tclNamesp.c:
2269        * generic/tclObj.c:
2270        * generic/tclProc.c:
2271        * generic/tclThreadStorage.c:
2272        * generic/tclTrace.c:
2273        * generic/tclVar.c: VarReform [Patch 1750051]
2274
2275        *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and tclCompile.h)
2276        Extensions that access internals defined in tclInt.h and/or
2277        tclCompile.h may lose both binary and source compatibility. The
2278        relevant changes are:
2279        1. 'struct Var' is completely changed, all acceses to its internals
2280           (either direct or via the TclSetVar* and TclIsVar* macros) will
2281           malfunction. Var flag values and semantics changed too.
2282        2. 'struct Bytecode' has an additional field that has to be
2283           initialised to NULL
2284        3. 'struct Namespace' is larger, as the varTable is now one pointer
2285           larger than a Tcl_HashTable. Direct access to its fields will
2286           malfunction.
2287        4. 'struct CallFrame' grew one more field (the second such growth with
2288           respect to Tcl8.4).
2289        5. API change for the functions TclFindCompiledLocal, TclDeleteVars
2290           and many internal functions in tclVar.c
2291
2292        Additionally, direct access to variable hash tables via the standard
2293        Tcl_Hash* interface is to be considered as deprecated. It still works
2294        in the present version, but will be broken by further specialisation
2295        of these hash tables. This concerns especially the table of array
2296        elements in an array, as well as the varTable field in the Namespace
2297        struct.
2298
22992007-07-31  Miguel Sofer  <msofer@users.sf.net>
2300
2301        * unix/configure.in: allow use of 'inline' in Tcl sources. [Patch
2302        * win/configure.in:  1754128]
2303        * win/makefile.vc:   Regen with autoconf 2.61
2304
23052007-07-31  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
2306
2307        * unix/tclUnixInit.c (TclpSetVariables): Use the thread-safe getpwuid
2308        replacement to fill the tcl_platform(user) field as it is not subject
2309        to spoofing. [Bug 681877]
2310
2311        * unix/tclUnixCompat.c: Simplify the #ifdef logic.
2312
2313        * unix/tclUnixChan.c (FileWatchProc): Fix test failures.
2314
23152007-07-30  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
2316
2317        * unix/tclUnixChan.c (SET_BITS, CLEAR_BITS): Added macros to make this
2318        file clearer.
2319
23202007-07-24  Miguel Sofer  <msofer@users.sf.net>
2321
2322        * generic/tclBasic.c (TEOvI, GetCommandSource):
2323        * generic/tclExecute.c (TEBC, TclGetSrcInfoForCmd):
2324        * generic/tclInt.h:
2325        * generic/tclTrace.c (TclCheck(Interp|Execution)Traces):
2326        Removed the need for TEBC to inspect the command before calling TEOvI,
2327        leveraging the TIP 280 infrastructure. Moved the generation of a
2328        correct nul-terminated command string away from the trace code, back
2329        into TEOvI/GetCommandSource.
2330
23312007-07-20  Andreas Kupries  <andreask@activestate.com>
2332
2333        * library/platform/platform.tcl: Fixed bug in 'platform::patterns'
2334        * library/platform/pkgIndex.tcl: where identifiers not matching
2335        * unix/Makefile.in: the special linux and solaris forms would not
2336        * win/Makefile.in: get 'tcl' as an acceptable platform added to
2337        * doc/platform.n: the result. Bumped package to version 1.0.3 and
2338        * doc/platform_shell.n: updated documentation and Makefiles. Also
2339        fixed bad version info in the documentation of platform::shell.
2340
23412007-07-19  Don Porter  <dgp@users.sourceforge.net>
2342
2343        * generic/tclParse.c:   In contexts where interp and parsePtr->interp
2344        might be different, be sure to use the latter for error reporting.
2345        Also pulled the interp argument back out of ParseTokens() since we
2346        already had a parsePtr->interp to work with.
2347
23482007-07-18  Don Porter  <dgp@users.sourceforge.net>
2349
2350        * generic/tclCompExpr.c:        Removed unused arguments and variables
2351
23522007-07-17  Don Porter  <dgp@users.sourceforge.net>
2353
2354        * generic/tclCompExpr.c (ParseExpr):    While adding comments to
2355        explain the operations of ParseExpr(), made significant revisions to
2356        the code so it would be easier to explain, and in the process made the
2357        code simpler and clearer as well.
2358
23592007-07-15  Don Porter  <dgp@users.sourceforge.net>
2360
2361        * generic/tclCompExpr.c:        More commentary.
2362        * tests/parseExpr.test:         Several tests of syntax error messages
2363        to check that when expression substrings are truncated they leave
2364        visible the context relevant to the reported error.
2365
23662007-07-12  Don Porter  <dgp@users.sourceforge.net>
2367
2368        * generic/tclCompExpr.c:        Factored out, corrected, and commented
2369        common code for reporting syntax errors in LEAF elements.
2370
23712007-07-11  Miguel Sofer  <msofer@users.sf.net>
2372
2373        * generic/tclCompCmds.c (TclCompileWhileCmd):
2374        * generic/tclCompile.c (TclCompileScript):
2375        Corrected faulty avoidance of INST_START_CMD when the first opcode in
2376        a script is within a loop (as produced by 'while 1'), so that the
2377        corresponding command is properly counted. [Bug 1752146]
2378
23792007-07-11  Don Porter  <dgp@users.sourceforge.net>
2380
2381        * generic/tclCompExpr.c:        Added a "parseOnly" flag argument to
2382        ParseExpr() to indicate whether the caller is Tcl_ParseExpr(), with an
2383        end goal of filling a Tcl_Parse with Tcl_Tokens representing the
2384        parsed expression, or TclCompileExpr() with the goal of compiling and
2385        executing the expression. In the latter case, more aggressive
2386        conversion of QUOTED and BRACED lexeme to literals is done. In the
2387        former case, all such conversion is avoided, since Tcl_Token
2388        production would revert it anyway. This enables simplifications to the
2389        GenerateTokensForLiteral() routine as well.
2390
23912007-07-10  Don Porter  <dgp@users.sourceforge.net>
2392
2393        * generic/tclCompExpr.c:        Added a field for operator precedence
2394        to be stored directly in the parse tree. There's no memory cost to
2395        this addition, since that memory would have been lost to alignment
2396        issues anyway. Also, converted precedence definitions and lookup
2397        tables to use symbolic constants instead of raw number for improved
2398        readability, and continued extending/improving/correcting comments.
2399        Removed some unused counter variables. Renamed some variables for
2400        clarity and replaced some cryptic logic with more readable macros.
2401
24022007-07-09  Don Porter  <dgp@users.sourceforge.net>
2403
2404        * generic/tclCompExpr.c:        Revision so that the END lexeme never
2405        gets inserted into the parse tree. Later tree traversal never reaches
2406        it since its location in the tree is not variable. Starting and
2407        stopping with the START lexeme (node 0) is sufficient. Also finished
2408        lexeme code commentary.
2409
2410        * generic/tclCompExpr.c:        Added missing creation and return of
2411        the Tcl_Parse fields that indicate error conditions. [Bug 1749987]
2412
24132007-07-05  Don Porter  <dgp@users.sourceforge.net>
2414
2415        * library/init.tcl (unknown):   Corrected inconsistent error message
2416        in interactive [unknown] when empty command is invoked. [Bug 1743676]
2417
24182007-07-05  Miguel Sofer  <msofer@users.sf.net>
2419
2420        * generic/tclNamesp.c (SetNsNameFromAny):
2421        * generic/tclObj.c (SetCmdNameFromAny): Avoid unnecessary
2422        ckfree/ckalloc when the old structs can be reused.
2423
24242007-07-04  Miguel Sofer  <msofer@users.sf.net>
2425
2426        * generic/tclNamesp.c: Fix case where a FQ cmd or ns was being cached
2427        * generic/tclObj.c:    in a different interp, tkcon. [Bug 1747512]
2428
24292007-07-03  Don Porter  <dgp@users.sourceforge.net>
2430
2431        * generic/tclCompExpr.c:        Revised #define values so that there
2432        is now more expansion room to define more BINARY operators.
2433
24342007-07-02  Donal K. Fellows  <dkf@users.sf.net>
2435
2436        * generic/tclHash.c (CompareStringKeys): Always use the strcmp()
2437        version; the operation is functionally equivalent, the speed is
2438        identical (up to measurement limitations), and yet the code is
2439        simpler. [FRQ 951168]
2440
24412007-07-02  Don Porter  <dgp@users.sourceforge.net>
2442
2443        * generic/tcl.h:        Removed TCL_PRESERVE_BINARY_COMPATIBILITY and
2444        * generic/tclHash.c:    any code enabled when it is set to 0. We will
2445        * generic/tclStubInit.c:        always want to preserve binary compat
2446        of the structs that appear in the interface through the 8.* series of
2447        releases, so it's pointless to drag around this never-enabled
2448        alternative.
2449
2450        * generic/tclIO.c:      Removed dead code.
2451        * unix/tclUnixChan.c:
2452
2453        * generic/tclCompExpr.c:        Removed dead code, old implementations
2454        * generic/tclEvent.c:   of expr parsing and compiling, including the
2455        * generic/tclInt.h:     routine TclFinalizeCompilation().
2456
24572007-06-30  Donal K. Fellows  <dkf@users.sf.net>
2458
2459        * generic/tclCmdIL.c (Tcl_LsortObjCmd): Plug a memory leak caused by a
2460        missing Tcl_DecrRefCount on an error path. [Bug 1717186]
2461
24622007-06-30  Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
2463
2464        * generic/tclThread.c: Prevent RemeberSyncObj() from growing the sync
2465        object lists by reusing already free'd slots, if possible. See
2466        discussion on Bug 1726873 for more information.
2467
24682007-06-29  Donal K. Fellows  <dkf@users.sf.net>
2469
2470        * doc/DictObj.3 (Tcl_DictObjDone): Improved documentation of this
2471        function to make it clearer how to use it. [Bug 1710795]
2472
24732007-06-29  Daniel Steffen  <das@users.sourceforge.net>
2474
2475        * generic/tclAlloc.c:           on Darwin, ensure memory allocated by
2476        * generic/tclThreadAlloc.c:     the custom TclpAlloc()s is aligned to
2477        16 byte boundaries (as is the case with the Darwin system malloc).
2478
2479        * generic/tclGetDate.y: use ckalloc/ckfree instead of malloc/free.
2480        * generic/tclDate.c:    bison 1.875e
2481
2482        * generic/tclBasic.c (TclEvalEx): fix warnings.
2483
2484        * macosx/Tcl.xcodeproj/project.pbxproj: better support for renamed tcl
2485        * macosx/Tcl.xcodeproj/default.pbxuser: source dir; add 10.5 SDK build
2486        * macosx/Tcl-Common.xcconfig:           config; remove tclMathOp.c.
2487
2488        * macosx/README: document Tcl.xcodeproj changes.
2489
24902007-06-28  Don Porter  <dgp@users.sourceforge.net>
2491
2492        * generic/tclBasic.c:           Removed dead code, including the
2493        * generic/tclExecute.c:         entire file tclMathOp.c.
2494        * generic/tclInt.h:
2495        * generic/tclMathOp.c (removed):
2496        * generic/tclTestObj.c:
2497        * win/tclWinFile.c:
2498
2499        * unix/Makefile.in:     Updated to reflect deletion of tclMathOp.c.
2500        * win/Makefile.in:
2501        * win/makefile.bc:
2502        * win/makefile.vc:
2503
25042007-06-28  Pat Thoyts  <patthoyts@users.sourceforge.net>
2505
2506        * generic/tclBasic.c:     Silence constness warnings for TclStackFree
2507        * generic/tclCompCmds.c:  when building with msvc.
2508        * generic/tclFCmd.c:
2509        * generic/tclIOCmd.c:
2510        * generic/tclTrace.c:
2511
25122007-06-28  Miguel Sofer  <msofer@users.sf.net>
2513
2514        * generic/tclVar.c (UnsetVarStruct): fix possible segfault.
2515
25162007-06-27  Don Porter  <dgp@users.sourceforge.net>
2517
2518        * generic/tclTrace.c:   Corrected broken trace reversal logic in
2519        * generic/tclTest.c:    TclCheckInterpTraces that led to infinite loop
2520        * tests/trace.test:     when multiple Tcl_CreateTrace traces were set
2521        and one of them did not fire due to level restrictions. [Bug 1743931]
2522
25232007-06-26  Don Porter  <dgp@users.sourceforge.net>
2524
2525        * generic/tclBasic.c (TclEvalEx):       Moved some arrays from the C
2526        stack to the Tcl stack.
2527
25282007-06-26  Miguel Sofer  <msofer@users.sf.net>
2529
2530        * generic/tclVar.c (UnsetVarStruct): more streamlining.
2531
25322007-06-25  Don Porter  <dgp@users.sourceforge.net>
2533
2534        * generic/tclExecute.c: Safety checks to avoid crashes in the
2535        TclStack* routines when called with an incompletely initialized
2536        interp. [Bug 1743302]
2537
25382007-06-25  Miguel Sofer  <msofer@users.sf.net>
2539
2540        * generic/tclVar.c (UnsetVarStruct): fixing incomplete change, more
2541        streamlining.
2542
25432007-06-24  Miguel Sofer  <msofer@users.sf.net>
2544
2545        * generic/tclVar.c (TclDeleteCompiledLocalVars): removed inlining that
2546        ended up not really optimising (limited benchmarks). Now calling
2547        UnsetVarStruct (streamlined old code is #ifdef'ed out, in case better
2548        benchmarks do show a difference).
2549
2550        * generic/tclVar.c (UnsetVarStruct): fixed a leak introduced in last
2551        commit.
2552
25532007-06-23  Miguel Sofer  <msofer@users.sf.net>
2554
2555        * generic/tclVar.c (UnsetVarStruct, TclDeleteVars): made the logic
2556        slightly clearer, eliminated some duplicated code.
2557
2558        *** POTENTIAL INCOMPATIBILITY *** (tclInt.h and Var struct users)
2559        The core never builds VAR_LINK variable to have traces. Such a
2560        "monster", should one exist, will now have its unset traces called
2561        *before* it is unlinked.
2562
25632007-06-23  Daniel Steffen  <das@users.sourceforge.net>
2564
2565        * macosx/tclMacOSXNotify.c (AtForkChild): don't call CoreFoundation
2566        APIs after fork() on systems where that would lead to an abort().
2567
25682007-06-22  Don Porter  <dgp@users.sourceforge.net>
2569
2570        * generic/tclExecute.c: Revised TclStackRealloc() signature to better
2571        * generic/tclInt.h:     parallel (and fall back on) Tcl_Realloc.
2572
2573        * generic/tclNamesp.c (TclResetShadowesCmdRefs):        Replaced
2574        ckrealloc based allocations with TclStackRealloc allocations.
2575
2576        * generic/tclCmdIL.c:   More conversions to use TclStackAlloc.
2577        * generic/tclScan.c:
2578
25792007-06-21  Don Porter  <dgp@users.sourceforge.net>
2580
2581        * generic/tclBasic.c:    Move most instances of the Tcl_Parse struct
2582        * generic/tclCompExpr.c: off the C stack and onto the Tcl stack. This
2583        * generic/tclCompile.c:  is a rather large struct (> 3kB).
2584        * generic/tclParse.c:
2585
25862007-06-21  Miguel Sofer  <msofer@users.sf.net>
2587
2588        * generic/tclBasic.c (TEOvI):           Made sure that leave traces
2589        * generic/tclExecute.c (INST_INVOKE):   that were created during
2590        * tests/trace.test (trace-36.2):        execution of an originally
2591        untraced command do not fire [Bug 1740962], partial fix.
2592
25932007-06-21  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
2594
2595        * generic/tcl.h, generic/tclCompile.h, generic/tclCompile.c: Remove
2596        references in comments to obsolete {expand} notation. [Bug 1740859]
2597
25982007-06-20  Miguel Sofer  <msofer@users.sf.net>
2599
2600        * generic/tclVar.c: streamline namespace vars deletion: only compute
2601        the variable's full name if the variable is traced.
2602
26032007-06-20  Don Porter  <dgp@users.sourceforge.net>
2604
2605        * generic/tclInt.decls: Revised the interfaces of the routines
2606        * generic/tclExecute.c: TclStackAlloc and TclStackFree to make them
2607        easier for callers to use (or more precisely, harder to misuse).
2608        TclStackFree now takes a (void *) argument which is the pointer
2609        intended to be freed. TclStackFree will panic if that's not actually
2610        the memory the call will free. TSA/TSF also now tolerate receiving
2611        (interp == NULL), in which case they simply fall back to be calls to
2612        Tcl_Alloc/Tcl_Free.
2613
2614        * generic/tclIntDecls.h:        make genstubs
2615
2616        * generic/tclBasic.c:   Updated callers
2617        * generic/tclCmdAH.c:
2618        * generic/tclCmdIL.c:
2619        * generic/tclCompCmds.c:
2620        * generic/tclCompExpr.c:
2621        * generic/tclCompile.c:
2622        * generic/tclFCmd.c:
2623        * generic/tclFileName.c:
2624        * generic/tclIOCmd.c:
2625        * generic/tclIndexObj.c:
2626        * generic/tclInterp.c:
2627        * generic/tclNamesp.c:
2628        * generic/tclProc.c:
2629        * generic/tclTrace.c:
2630        * unix/tclUnixPipe.c:
2631
26322007-06-20  Jeff Hobbs  <jeffh@ActiveState.com>
2633
2634        * tools/tcltk-man2html.tcl: revamp of html doc output to use CSS,
2635        standardized headers, subheaders, dictionary sorting of names.
2636
26372007-06-18  Jeff Hobbs  <jeffh@ActiveState.com>
2638
2639        * tools/tcltk-man2html.tcl: clean up copyright merging and output.
2640        clean up coding constructs.
2641
26422007-06-18  Miguel Sofer  <msofer@users.sf.net>
2643
2644        * generic/tclCmdIL.c (InfoFrameCmd):
2645        * generic/tclCmdMZ.c (Tcl_SwitchObjCmd):
2646        * generic/tclCompile.c (TclInitCompileEnv):
2647        * generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Moved the
2648        CmdFrame off the C stack and onto the Tcl stack.
2649
2650        * generic/tclExecute.c (TEBC):  Moved the CmdFrame off the C stack and
2651        onto the Tcl stack, between the catch and the execution stacks
2652
26532007-06-18  Don Porter  <dgp@users.sourceforge.net>
2654
2655        * generic/tclBasic.c (TclEvalEx,TclEvalObjEx):  Moved the CmdFrame off
2656        the C stack and onto the Tcl stack.
2657
26582007-06-17  Donal K. Fellows  <dkf@users.sf.net>
2659
2660        * generic/tclProc.c (TclObjInterpProcCore): Minor fixes to make
2661        * generic/tclExecute.c (TclExecuteByteCode): compilation debugging
2662        builds work again. [Bug 1738542]
2663
26642007-06-16  Donal K. Fellows  <dkf@users.sf.net>
2665
2666        * generic/tclProc.c (TclObjInterpProcCore): Use switch instead of a
2667        chain of if's for a modest performance gain and a little more clarity.
2668
26692007-06-15  Miguel Sofer  <msofer@users.sf.net>
2670
2671        * generic/tclCompCmds.c:  Simplified [variable] compiler and executor.
2672        * generic/tclExecute.c:   Missed updates to "there is always a valid
2673        frame".
2674
2675        * generic/tclCompile.c: reverted TclEvalObjvInternal and INST_INVOKE
2676        * generic/tclExecute.c: to essentially what they were previous to the
2677        * generic/tclBasic.c:   commit of 2007-04-03 [Patch 1693802] and the
2678        subsequent optimisations, as they break the new trace tests described
2679        below.
2680
2681        * generic/trace.test: added tests 36 to 38 for dynamic trace creation
2682        and addition. These tests expose a change in dynamics due to a recent
2683        round of optimisations. The "correct" behaviour is not described in
2684        docs nor TIP 62.
2685
26862007-06-14  Miguel Sofer  <msofer@users.sf.net>
2687
2688        * generic/tclInt.decls:   Modif to the internals of TclObjInterpProc
2689        * generic/tclInt.h:       to reduce stack consumption and improve task
2690        * generic/tclIntDecls.h:  separation. Changes the interface of
2691        * generic/tclProc.c:      TclObjInterpProcCore (patching TclOO
2692        simultaneously).
2693
2694        * generic/tclProc.c (TclObjInterpProcCore): simplified obj management
2695        in wrongNumArgs calls.
2696
26972007-06-14  Don Porter  <dgp@users.sourceforge.net>
2698
2699        * generic/tclCompile.c: SetByteCodeFromAny() can no longer return any
2700        * generic/tclExecute.c: code other than TCL_OK, so remove code that
2701        * generic/tclProc.c:    formerly handled exceptional codes.
2702
27032007-06-13  Miguel Sofer  <msofer@users.sf.net>
2704
2705        * generic/tclExecute.c (TclCompEvalObj): missed update to "there is
2706        always a valid frame".
2707
2708        * generic/tclProc.c (TclObjInterpProcCore): call TEBC directly instead
2709        of going through TclCompEvalObj - no need to check the compilation's
2710        freshness, this has already been done. This improves speed and should
2711        also provide some relief to [Bug 1066755].
2712
27132007-06-12  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
2714
2715        * generic/tclBasic.c (Tcl_CreateInterp): Turn the [info] command into
2716        * generic/tclCmdIL.c (TclInitInfoCmd):   an ensemble, making it easier
2717        for third-party code to plug into.
2718
2719        * generic/tclIndexObj.c (Tcl_WrongNumArgs):
2720        * generic/tclNamesp.c, generic/tclInt.h (tclEnsembleCmdType): Make
2721        Tcl_WrongNumArgs do replacement correctly with ensembles and other
2722        sorts of complex replacement strategies.
2723
27242007-06-11  Miguel Sofer  <msofer@users.sf.net>
2725
2726        * generic/tclExecute.c:  comments added to explain iPtr->numLevels
2727        management.
2728
2729        * generic/tclNamesp.c:   tweaks to Tcl_GetCommandFromObj and
2730        * generic/tclObj.c:      TclGetNamespaceFromObj; modified the usage of
2731        structs ResolvedCmdName and ResolvedNsname so that the field refNsPtr
2732        is NULL for fully qualified names.
2733
27342007-06-10  Miguel Sofer  <msofer@users.sf.net>
2735
2736        * generic/tclBasic.c:    Further TEOvI split, creating a new
2737        * generic/tclCompile.h:  TclEvalObjvKnownCommand() function to handle
2738        * generic/tclExecute.c:  commands that are already known and are not
2739        traced. INST_INVOKE now calls into this function instead of inlining
2740        parts of TEOvI. Same perf, better isolation.
2741
2742        ***POTENTIAL INCOMPAT*** There is a subtle issue with the timing of
2743        execution traces that is changed here - first change appeared in my
2744        commit of 2007-04-03 [Patch 1693802], which caused some divergence
2745        between compiled and non-compiled code.
2746        ***THIS CHANGE IS UNDER REVIEW***
2747
27482007-06-10  Jeff Hobbs  <jeffh@ActiveState.com>
2749
2750        * README: updated links. [Bug 1715081]
2751
2752        * generic/tclExecute.c (TclExecuteByteCode): restore support for
2753        INST_CALL_BUILTIN_FUNC1 and INST_CALL_FUNC1 bytecodes to support 8.4-
2754        precompiled sources (math functions). [Bug 1720895]
2755
27562007-06-10  Miguel Sofer  <msofer@users.sf.net>
2757
2758        * generic/tclInt.h:
2759        * generic/tclNamesp.c:
2760        * generic/tclObj.c:
2761        * generic/tclvar.c: new macros TclGetCurrentNamespace() and
2762        TclGetGlobalNamespace(); Tcl_GetCommandFromObj and
2763        TclGetNamespaceFromObj rewritten to make the logic clearer; slightly
2764        faster too.
2765
27662007-06-09  Miguel Sofer  <msofer@users.sf.net>
2767
2768        * generic/tclExecute.c (INST_INVOKE): isolated two vars to the small
2769        block where they are actually used.
2770
2771        * generic/tclObj.c (Tcl_GetCommandFromObj): rewritten to make the
2772        logic clearer; slightly faster too.
2773
2774        * generic/tclBasic.c:   Split TEOv in two, by separating a processor
2775        for non-TCL_OK returns. Also split TEOvI in a full version that
2776        handles non-existing and traced commands, and a separate shorter
2777        version for the regular case.
2778
2779        * generic/tclBasic.c:   Moved the generation of command strings for
2780        * generic/tclTrace.c:   traces: previously in Tcl_EvalObjv(), now in
2781        TclCheck[Interp|Execution]Traces(). Also insured that the strings are
2782        properly NUL terminated at the correct length. [Bug 1693986]
2783
2784        ***POTENTIAL INCOMPATIBILITY in internal API***
2785        The functions TclCheckInterpTraces() and TclCheckExecutionTraces() (in
2786        internal stubs) used to be noops if the command string was NULL, this
2787        is not true anymore: if the command string is NULL, they generate an
2788        appropriate string from (objc,objv) and use it to call the traces. The
2789        caller might as well not call them with a NULL string if he was
2790        expecting a noop.
2791
2792        * generic/tclBasic.c:   Extend usage of TclLimitReady() and
2793        * generic/tclExecute.c: (new) TclLimitExceeded() macros.
2794        * generic/tclInt.h:
2795        * generic/tclInterp.c:
2796
2797        * generic/tclInt.h:     New TclCleanupCommandMacro for core usage.
2798        * generic/tclBasic.c:
2799        * generic/tclExecute.c:
2800        * generic/tclObj.c:
2801
28022007-06-09 Daniel Steffen  <das@users.sourceforge.net>
2803
2804        * macosx/Tcl.xcodeproj/project.pbxproj: add new Tclsh-Info.plist.in.
2805
28062007-06-08  Donal K. Fellows  <dkf@users.sf.net>
2807
2808        * generic/tclCmdMZ.c (Tcl_StringObjCmd): Changed [string first] and
2809        * doc/string.n: [string last] so that they have clearer descriptions
2810        for those people who know the adage about needles and haystacks. This
2811        follows suggestions on comp.lang.tcl...
2812
28132007-06-06  Miguel Sofer  <msofer@users.sf.net>
2814
2815        * generic/tclParse.c: fix for uninit read. [Bug 1732414]
2816
28172007-06-06  Daniel Steffen  <das@users.sourceforge.net>
2818
2819        * macosx/Tcl.xcodeproj/project.pbxproj: add settings for Fix&Continue.
2820
2821        * unix/configure.in (Darwin):           add plist for tclsh; link the
2822        * unix/Makefile.in  (Darwin):           Tcl and tclsh plists into
2823        * macosx/Tclsh-Info.plist.in (new):     their binaries in all cases.
2824        * macosx/Tcl-Common.xcconfig:
2825
2826        * unix/tcl.m4 (Darwin): fix CF checks in fat 32&64bit builds.
2827        * unix/configure: autoconf-2.59
2828
28292007-06-05  Don Porter  <dgp@users.sourceforge.net>
2830
2831        * generic/tclBasic.c:   Added interp flag value ERR_LEGACY_COPY to
2832        * generic/tclInt.h:     control the timing with which the global
2833        * generic/tclNamesp.c:  variables ::errorCode and ::errorInfo get
2834        * generic/tclProc.c:    updated after an error. This keeps more
2835        * generic/tclResult.c:  precise compatibility with Tcl 8.4.
2836        * tests/result.test (result-6.2):       [Bug 1649062]
2837
28382007-06-05  Miguel Sofer  <msofer@users.sf.net>
2839
2840        * generic/tclInt.h:
2841        * generic/tclExecute.c: Tcl-stack reform, [Patch 1701202]
2842
28432007-06-03  Daniel Steffen  <das@users.sourceforge.net>
2844
2845        * unix/Makefile.in: add datarootdir to silence autoconf-2.6x warning.
2846
28472007-05-30  Don Porter  <dgp@users.sourceforge.net>
2848
2849        * generic/tclBasic.c:   Removed code that dealt with
2850        * generic/tclCompile.c: TCL_TOKEN_EXPAND_WORD tokens representing
2851        * generic/tclCompile.h: expanded literal words. These sections were
2852        mostly in place to enable [info frame] to discover line information in
2853        expanded literals. Since the parser now generates a token for each
2854        post-expansion word referring to the right location in the original
2855        script string, [info frame] gets all the data it needs.
2856
2857        * generic/tclInt.h:     Revised the parser so that it never produces
2858        * generic/tclParse.c:   TCL_TOKEN_EXPAND_WORD tokens when parsing an
2859        * tests/parse.test:     expanded literal word; that is, something like
2860        {*}{x y z}. Instead, generate the series of TCL_TOKEN_SIMPLE_WORD
2861        tokens to represent the words that expansion of the literal string
2862        produces. [RFE 1725186]
2863
28642007-05-29  Jeff Hobbs  <jeffh@ActiveState.com>
2865
2866        * unix/tclUnixThrd.c (Tcl_JoinThread): fix for 64-bit handling of
2867        pthread_join exit return code storage. [Bug 1712723]
2868
28692007-05-22  Don Porter  <dgp@users.sourceforge.net>
2870
2871        [core-stabilizer-branch]
2872
2873        * unix/configure:       autoconf-2.59 (FC6 fork)
2874        * win/configure:
2875
2876        * README:               Bump version number to 8.5b1
2877        * generic/tcl.h:
2878        * library/init.tcl:
2879        * tools/tcl.wse.in:
2880        * unix/configure.in:
2881        * unix/tcl.spec:
2882        * win/configure.in:
2883
28842007-05-18  Don Porter  <dgp@users.sourceforge.net>
2885
2886        * unix/configure:       autoconf-2.59 (FC6 fork)
2887        * win/configure:
2888
2889        * README:               Bump version number to 8.5a7
2890        * generic/tcl.h:
2891        * library/init.tcl:
2892        * tools/tcl.wse.in:
2893        * unix/configure.in:
2894        * unix/tcl.spec:
2895        * win/configure.in:
2896
2897        * generic/tclParse.c:   Disable and remove the ALLOW_EXPAND sections
2898        * tests/info.test:      that continued to support the deprecated
2899        * tests/mathop.test:    {expand} syntax. Updated the few remaining
2900        users of that syntax in the test suite.
2901
29022007-05-17  Donal K. Fellows  <dkf@users.sf.net>
2903
2904        * generic/tclExecute.c (TclLimitReady): Created a macro version of
2905        Tcl_LimitReady just for TEBC, to reduce the amount of times that the
2906        bytecode engine calls out to external functions on the critical path.
2907        * generic/tclInterp.c (Tcl_LimitReady): Added note to remind anyone
2908        doing maintenance that there is a macro version to update.
2909
29102007-05-17  Daniel Steffen  <das@users.sourceforge.net>
2911
2912        * generic/tcl.decls: workaround 'make checkstubs' failures from
2913        tclStubLib.c MODULE_SCOPE revert. [Bug 1716117]
2914
29152007-05-16  Joe English  <jenglish@users.sourceforge.net>
2916
2917        * generic/tclStubLib.c:  Change Tcl_InitStubs(), tclStubsPtr, and the
2918        auxilliary stubs table pointers back to public visibility.
2919
2920        These symbols need to be exported so that stub-enabled extensions may
2921        be statically linked into an extended tclsh or Big Wish with a
2922        dynamically-linked libtcl. [Bug 1716117]
2923
29242007-05-15  Don Porter  <dgp@users.sourceforge.net>
2925
2926        * win/configure:        autoconf-2.59 (FC6 fork)
2927
2928        * library/reg/pkgIndex.tcl:     Bump to registry 1.2.1 to account for
2929        * win/configure.in:             [Bug 1682211] fix.
2930        * win/makefile.bc:
2931        * win/tclWinReg.c:
2932
29332007-05-11  Pat Thoyts  <patthoyts@users.sourceforge.net>
2934
2935        * generic/tclInt.h: Removed TclEvalObjEx and TclGetSrcInfoForPc from
2936        tclInt.h now they are in the internal stubs table.
2937
29382007-05-09  Don Porter  <dgp@users.sourceforge.net>
2939
2940        * generic/tclInt.h:     TclFinalizeThreadAlloc() is always defined, so
2941        make sure it is also always declared (with MODULE_SCOPE).
2942
29432007-05-09  Daniel Steffen  <das@users.sourceforge.net>
2944
2945        * generic/tclInt.h: fix warning when building threaded with -DPURIFY.
2946
2947        * macosx/Tcl.xcodeproj/project.pbxproj: add 'DebugUnthreaded' &
2948        * macosx/Tcl.xcodeproj/default.pbxuser: 'DebugLeaks' targets and env
2949        var settings needed to run the 'leaks' tool.
2950
29512007-05-07  Don Porter  <dgp@users.sourceforge.net>
2952
2953        [Tcl Bug 1706140]
2954
2955        * generic/tclLink.c (LinkTraceProc):    Update Tcl_VarTraceProcs so
2956        * generic/tclNamesp.c (Error*Read):     they call Tcl_InterpDeleted()
2957        * generic/tclTrace.c (Trace*Proc):      for themselves, and do not
2958        * generic/tclUtil.c (TclPrecTraceProc): rely on (frequently buggy)
2959        setting of the TCL_INTERP_DESTROYED flag by the trace core.
2960
2961        * generic/tclVar.c:     Update callers of TclCallVarTraces to not pass
2962        in the TCL_INTERP_DESTROYED flag. Also apply filters so that public
2963        routines only pass documented flag values down to lower level routines
2964
2965        * generic/tclTrace.c (TclCallVarTraces):        The setting of the
2966        TCL_INTERP_DESTROYED flag is now done entirely within the
2967        TclCallVarTraces routine, the only place it can be done right.
2968
29692007-05-06  Donal K. Fellows  <dkf@users.sf.net>
2970
2971        * generic/tclInt.h (ExtraFrameInfo): Create a new mechanism for
2972        * generic/tclCmdIL.c (InfoFrameCmd): conveying what information needs
2973        to be added to the results of [info frame] to replace the hack that
2974        was there before.
2975        * generic/tclProc.c (Tcl_ApplyObjCmd): Use the new mechanism for the
2976        [apply] command, the only part of Tcl itself that needs it (so far).
2977
2978        * generic/tclInt.decls (TclEvalObjEx, TclGetSrcInfoForPc): Expose
2979        these two functions through the internal stubs table, necessary for
2980        extensions that need to integrate deeply with TIP#280.
2981
29822007-05-05  Donal K. Fellows  <dkf@users.sf.net>
2983
2984        * win/tclWinFile.c (TclpGetUserHome):   Squelch type-pun warnings in
2985        * win/tclWinInit.c (TclpSetVariables):  Win-specific code not found
2986        * win/tclWinReg.c (AppendSystemError):  during earlier work on Unix.
2987
29882007-05-04  Kevin B. Kenny  <kennykb@acm.org>
2989
2990        * generic/tclIO.c (TclFinalizeIOSubsystem): Added an initializer to
2991        silence a spurious gcc warning about use of an uninitialized
2992        variable.
2993        * tests/encoding.test: Modified so that encoding tests happen in a
2994        private namespace, to avoid polluting the global one. This problem was
2995        discovered when running the test suite '-singleproc 1 -skip exec.test'
2996        because the 'path' variable in encoding.test conflicted with the one
2997        in io.test.
2998        * tests/io.test: Made more of the working variables private to the
2999        namespace.
3000
30012007-05-02  Kevin B. Kenny  <kennykb@acm.org>
3002
3003        * generic/tclTest.c (SimpleMatchInDirectory): Corrected a refcount
3004        imbalance that affected the filesystem-[147]* tests in the test suite.
3005        Thanks to Don Porter for the patch. [Bug 1710707]
3006        * generic/tclPathObj.c (Tcl_FSJoinPath, Tcl_FSGetNormalizedPath):
3007        Corrected several memory leaks that caused refcount imbalances
3008        resulting in memory leaks on Windows. Thanks to Joe Mistachkin for the
3009        patch.
3010
30112007-05-01  Miguel Sofer  <msofer@users.sf.net>
3012
3013        * generic/tclVar.c (TclPtrSetVar): fixed leak whenever newvaluePtr had
3014        refCount 0 and was used for appending (but not lappending). Thanks to
3015        mistachkin and kbk. [Bug 1710710]
3016
30172007-05-01  Kevin B. Kenny  <kennykb@acm.org>
3018
3019        * generic/tclIO.c (DeleteChannelTable): Made changes so that
3020        DeleteChannelTable tries to close all open channels, not just the
3021        first. [Bug 1710285]
3022        * generic/tclThread.c (TclFinalizeSynchronization): Make sure that TSD
3023        blocks get freed on non-threaded builds. [Bug 1710825]
3024        * tests/utf.test (utf-25.1--utf-25.4): Modified tests to clean up
3025        after the 'testobj' extension to avoid spurious reports of memory
3026        leaks.
3027
30282007-05-01  Don Porter  <dgp@users.sourceforge.net>
3029
3030        * generic/tclCmdMZ.c (STR_MAP): When [string map] has a pure dict map,
3031        a missing Tcl_DictObjDone() call led to a memleak. [Bug 1710709]
3032
30332007-04-30  Daniel Steffen  <das@users.sourceforge.net>
3034
3035        * unix/Makefile.in: add 'tclsh' dependency to install targets that
3036        rely on tclsh, fixes parallel 'make install' from empty build dir.
3037
30382007-04-30  Andreas Kupries <andreask@gactivestate.com>
3039
3040        * generic/tclIO.c (FixLevelCode): Corrected reference count
3041        mismanagement of newlevel, newcode. Changed to allocate the Tcl_Obj's
3042        as late as possible, and only when actually needed. [Bug 1705778, leak
3043        K29]
3044
30452007-04-30  Kevin B. Kenny  <kennykb@acm.org>
3046
3047        * generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Corrected
3048        reference count mismanagement on the name of the source file in the
3049        TIP 280 code. [Bug 1705778, leak K02 among other manifestations]
3050
30512007-04-25  Donal K. Fellows  <dkf@users.sf.net>
3052
3053        *** 8.5a6 TAGGED FOR RELEASE ***
3054
3055        * generic/tclProc.c (TclObjInterpProcCore): Only allocate objects for
3056        error message generation when associated with argument names that are
3057        really used. [Bug 1705778, leak K15]
3058
30592007-04-25  Kevin B. Kenny  <kennykb@acm.org>
3060
3061        * generic/tclIOUtil.c (Tcl_FSChdir): Changed the memory management so
3062        that the path returned from Tcl_FSGetNativePath is not duplicated
3063        before being stored as the current directory, to avoid a memory leak.
3064        [Bug 1705778, leak K01 among other manifestations]
3065
30662007-04-25  Don Porter  <dgp@users.sourceforge.net>
3067
3068        * generic/tclCompExpr.c (ParseExpr):    Revised to be sure that an
3069        error return doesn't prevent all literals getting placed on the
3070        litList to be returned to the caller for freeing. Corrects some
3071        memleaks. [Bug 1705778, leak K23]
3072
30732007-04-25  Daniel Steffen  <das@users.sourceforge.net>
3074
3075        * unix/Makefile.in (dist): add macosx/*.xcconfig files to src dist;
3076        copy license.terms to dist macosx dir; fix autoheader bits.
3077
30782007-04-24  Miguel Sofer  <msofer@users.sf.net>
3079
3080        * generic/tclListObj.c: reverting [Patch 738900] (committed on
3081        2007-04-20). Causes some Tk test breakage of unknown importance, but
3082        the impact of the patch itself is likely to be so small that it does
3083        not warrant investigation at this time.
3084
30852007-04-24  Donal K. Fellows  <dkf@users.sf.net>
3086
3087        * generic/tclDictObj.c (DictKeysCmd): Rewrote so that the lock on the
3088        internal representation of a dict is only set when necessary. [Bug
3089        1705778, leak K04]
3090        (DictFilterCmd): Added code to drop the lock in the trivial match
3091        case. [Bug 1705778, leak K05]
3092
30932007-04-24  Kevin B. Kenny  <kennykb@acm.org>
3094
3095        * generic/tclBinary.c: Addressed several code paths where the error
3096        return from the 'binary format' command leaked the result buffer.
3097        * generic/tclListObj.c (TclLsetFlat): Fixed a bug where the new list
3098        under construction was leaked in the error case. [Bug 1705778, leaks
3099        K13 and K14]
3100
31012007-04-24  Jeff Hobbs  <jeffh@ActiveState.com>
3102
3103        * unix/Makefile.in (dist): add platform library package to src dist
3104
31052007-04-24  Don Porter  <dgp@users.sourceforge.net>
3106
3107        * generic/tclCompExpr.c (ParseExpr): Memory leak in error case; the
3108        literal Tcl_Obj was not getting freed. [Bug 1705778, leak #1 (new)]
3109
3110        * generic/tclNamesp.c (Tcl_DeleteNamespace):    Corrected flaw in the
3111        flag marking scheme to be sure that global namespaces are freed when
3112        their interp is deleted. [Bug 1705778]
3113
31142007-04-24  Kevin B. Kenny  <kennykb@acm.org>
3115
3116        * generic/tclExecute.c (TclExecuteByteCode): Plugged six memory leaks
3117        in bignum arithmetic.
3118        * generic/tclIOCmd.c (Tcl_ReadObjCmd): Plugged a leak of the buffer
3119        object if the physical read returned an error and the bypass area had
3120        no message.
3121        * generic/tclIORChan.c (TclChanCreateObjCmd): Plugged a leak of the
3122        return value from the "initialize" method of a channel handler.
3123        (All of the above under [Bug 1705778])
3124
31252007-04-23  Daniel Steffen  <das@users.sourceforge.net>
3126
3127        * generic/tclCkalloc.c: fix warnings from gcc build configured with
3128        * generic/tclCompile.c: --enable-64bit --enable-symbols=all.
3129        * generic/tclExecute.c:
3130
3131        * unix/tclUnixFCmd.c: add workaround for crashing bug in fts_open()
3132        * unix/tclUnixInit.c: without FTS_NOSTAT on 64bit Darwin 8 or earlier.
3133
3134        * unix/tclLoadDyld.c (TclpLoadMemory): fix (void*) arithmetic.
3135
3136        * macosx/Tcl-Common.xcconfig: enable more warnings.
3137
3138        * macosx/Tcl.xcodeproj/project.pbxproj: add 'DebugMemCompile' build
3139        configuration that calls configure with --enable-symbols=all; override
3140        configure check for __attribute__((__visibility__("hidden"))) in Debug
3141        configuration to restore availability of ZeroLink.
3142
3143        * macosx/tclMacOSXNotify.c: fix warnings.
3144
3145        * macosx/tclMacOSXFCmd.c: const fixes.
3146
3147        * macosx/Tcl-Common.xcconfig:   fix whitespace.
3148        * macosx/Tcl-Debug.xcconfig:
3149        * macosx/Tcl-Release.xcconfig:
3150        * macosx/README:
3151
3152        * macosx/GNUmakefile:           fix/add copyright and license refs.
3153        * macosx/tclMacOSXBundle.c:
3154        * macosx/Tcl-Info.plist.in:
3155        * macosx/Tcl.xcode/project.pbxproj:
3156        * macosx/Tcl.xcodeproj/project.pbxproj:
3157
3158        * unix/configure.in: install license.terms into Tcl.framework.
3159        * unix/configure: autoconf-2.59
3160
31612007-04-23  Don Porter  <dgp@users.sourceforge.net>
3162
3163        * generic/tclVar.c (UnsetVarStruct):    Make sure the
3164        TCL_INTERP_DESTROYED flags gets passed to unset trace routines so they
3165        can respond appropriately. [Bug 1705778, leak #9]
3166
31672007-04-23  Miguel Sofer  <msofer@users.sf.net>
3168
3169        * generic/tclCompile.c (TclFreeCompileEnv): Tip 280's new field
3170        extCmdMapPtr was not being freed. [Bug 1705778, leak #1]
3171
31722007-04-23  Kevin B. Kenny  <kennykb@acm.org>
3173
3174        * generic/tclCompCmds.c (TclCompileUpvarCmd): Plugged a memory leak in
3175        'upvar' when compiling (a) upvar outside a proc, (b) upvar with a
3176        syntax error, or (c) upvar where the frame index is not known at
3177        compile time.
3178        * generic/tclCompExpr.c (ParseExpr): Plugged a memory leak when
3179        parsing expressions that contain syntax errors.
3180        * generic/tclEnv.c (ReplaceString): Clear memory correctly when
3181        growing the cache to avoid reads of uninitialised data.
3182        * generic/tclIORChan.c (TclChanCreateObjCmd, FreeReflectedChannel):
3183        Plugged two memory leaks.
3184        * generic/tclStrToD.c (AccumulateDecimalDigit): Fixed a mistake where
3185        we'd run beyond the end of the 'pow10_wide' array if a number begins
3186        with a string of more than 'maxpow10_wide' zeroes.
3187        * generic/tclTest.c (Testregexpobjcmd): Removed an invalid access
3188        beyond the end of 'objv' in 'testregexp -about'.
3189        All of these issues reported under [Bug 1705778] - detected with the
3190        existing test suite, no new regression tests required.
3191
31922007-04-22  Miguel Sofer  <msofer@users.sf.net>
3193
3194        * generic/tclVar.c (TclDeleteNamespaceVars): fixed access to freed
3195        memory detected by valgrind: Tcl_GetCurrentNamespace was being
3196        called after freeing root CallFrame (on interp deletion).
3197
31982007-04-20  Miguel Sofer  <msofer@users.sf.net>
3199
3200        * generic/tclListObj.c (SetListFromAny): avoid discarding internal
3201        reps of objects converted to singleton lists. [Patch 738900]
3202
32032007-04-20  Kevin B. Kenny  <kennykb@acm.org>
3204
3205        * doc/clock.n: Corrected a silly error (transposed 'uppercase' and
3206        'lowercase' in clock.n. [Bug 1656002]
3207        Clarified that [clock scan] does not recognize a locale's alternative
3208        calendar.
3209        Deleted an entirely superfluous (and also incorrect) remark about the
3210        effect of Daylight Saving Time on relative times in [clock scan]. [Bug
3211        1582951]
3212        * library/clock.tcl: Corrected an error in skipping over the %Ey field
3213        on input.
3214        * library/msgs/ja.msg:
3215        * tools/loadICU.tcl: Corrected several localisation faults in the
3216        Japanese locale (most notably, incorrect dates for the Emperors'
3217        eras). [Bug 1637471]. Many thanks to SourceForge user 'nyademo' for
3218        pointing this out and developing a fix.
3219        * generic/tclPathObj.c: Corrected a 'const'ness fault that caused
3220        bitter complaints from MSVC.
3221        * tests/clock.test (clock-40.1, clock-58.1, clock-59.1): Corrected a
3222        test case that depended on ":localtime" being able to handle dates
3223        prior to the Posix epoch. [Bug 1618445] Added a test case for the
3224        dates of the Japanese emperors. [Bug 1637471] Added a regression test
3225        for military time zone input conversion. [Bug 1586828]
3226        * generic/tclGetDate.y (MilitaryTable): Fixed an ancient bug where the
3227        military NZA time zones had the signs reversed. [Bug 1586828]
3228        * generic/tclDate.c: Regenerated.
3229        * doc/Notifier.3: Documented Tcl_SetNotifier and Tcl_ServiceModeHook.
3230        Quite against my better judgment. [Bug 414933]
3231        * generic/tclBasic.c, generic/tclCkalloc.c, generic/tclClock.c:
3232        * generic/tclCmdIL.c, generic/tclCmdMZ.c, generic/tclFCmd.c:
3233        * generic/tclFileName.c, generic/tclInterp.c, generic/tclIO.c:
3234        * generic/tclIOUtil.c, generic/tclNamesp.c, generic/tclObj.c:
3235        * generic/tclPathObj.c, generic/tclPipe.c, generic/tclPkg.c:
3236        * generic/tclResult.c, generic/tclTest.c, generic/tclTestObj.c:
3237        * generic/tclVar.c, unix/tclUnixChan.c, unix/tclUnixTest.c:
3238        * win/tclWinLoad.c, win/tclWinSerial.c: Replaced commas in varargs
3239        with string concatenation where possible. [Patch 1515234]
3240        * library/tzdata/America/Tegucigalpa:
3241        * library/tzdata/Asia/Damascus: Olson's tzdata 2007e.
3242
32432007-04-19  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
3244
3245        * generic/regcomp.c, generic/regc_cvec.c, generic/regc_lex.c,
3246        * generic/regc_locale.c: Improve the const-correctness of the RE
3247        compiler.
3248
32492007-04-18  Miguel Sofer  <msofer@users.sf.net>
3250
3251        * generic/tclExecute.c (INST_LSHIFT): fixed a mistake introduced in
3252        version 1.266 ('=' became '=='), which effectively turned the block
3253        that handles native shifts into dead code. This explains why the
3254        testsuite did not pick this mistake. Rewrote to make the intention
3255        clear.
3256
3257        * generic/tclInt.h (TclDecrRefCount): change the order of the
3258        branches, use empty 'if ; else' to handle use in unbraced outer
3259        if/else conditions (as already done in tcl.h)
3260
3261        * generic/tclExecute.c: slight changes in Tcl_Obj management.
3262
32632007-04-17  Kevin B. Kenny  <kennykb@acm.org>
3264
3265        * library/clock.tcl: Fixed the naming of
3266        ::tcl::clock::ReadZoneinfoFile because (yoicks!) it was in the global
3267        namespace.
3268        * doc/clock.n: Clarified the cases in which legacy time zone is
3269        recognized. [Bug 1656002]
3270
32712007-04-17  Miguel Sofer  <msofer@users.sf.net>
3272
3273        * generic/tclExecute.c: fixed checkInterp logic [Bug 1702212]
3274
32752007-04-16  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
3276
3277        * various (including generic/tclTest.c): Complete the purge of K&R
3278        function definitions from manually-written code.
3279
32802007-04-15  Kevin B. Kenny  <kennykb@acm.org>
3281
3282        * generic/tclCompCmds.c: added a cast to silence a compiler error on
3283        VC2005.
3284        * library/clock.tcl: Restored unique-prefix matching of keywords on
3285        the [clock] command. [Bug 1690041]
3286        * tests/clock.test: Added rudimentary test cases for unique-prefix
3287        matching of keywords.
3288
32892007-04-14  Miguel Sofer  <msofer@users.sf.net>
3290
3291        * generic/tclExecute.c: removed some code at INST_EXPAND_SKTOP that
3292        duplicates functionality already present at checkForCatch.
3293
32942007-04-12  Miguel Sofer  <msofer@users.sf.net>
3295
3296        * generic/tclExecute.c: new macros OBJ_AT_TOS, OBJ_UNDER_TOS,
3297        OBJ_AT_DEPTH(n) and CURR_DEPTH that remove all direct references to
3298        tosPtr from TEBC (after initialisation and the code at the label
3299        cleanupV_pushObjResultPtr).
3300
33012007-04-11  Miguel Sofer  <msofer@users.sf.net>
3302
3303        * generic/tclCompCmds.c: moved all exceptDepth management to the
3304        macros - the decreasing half was managed by hand.
3305
33062007-04-10  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
3307
3308        * generic/tclInt.h (TclNewLiteralStringObj): New macro to make
3309        allocating literal string objects (i.e. objects whose value is a
3310        constant string) easier and more efficient, by allowing the omission
3311        of the length argument. Based on [Patch 1529526] (afredd)
3312        * generic/*.c: Make use of this (in many files).
3313
33142007-04-08  Miguel Sofer  <msofer@users.sf.net>
3315
3316        * generic/tclCompile (tclInstructionTable): Fixed bugs in description
3317        of dict instructions.
3318
33192007-04-07  Miguel Sofer  <msofer@users.sf.net>
3320
3321        * generic/tclCompile (tclInstructionTable): Fixed bug in description
3322        of INST_START_COMMAND.
3323
3324        * generic/tclExecute.c (TEBC): Small code reduction.
3325
33262007-04-06  Miguel Sofer  <msofer@users.sf.net>
3327
3328        * generic/tclExecute.c (TEBC):
3329        * generic/tclNamespace.c (NsEnsembleImplementationCmd):
3330        * generic/tclProc.c (InitCompiledLocals, ObjInterpProcEx)
3331        (TclObjInterpProcCore, ProcCompileProc): Code reordering to reduce
3332        branching and improve branch prediction (assume that forward branches
3333        are typically not taken).
3334
33352007-04-03  Miguel Sofer  <msofer@users.sf.net>
3336
3337        * generic/tclExecute.c: INST_INVOKE optimisation. [Patch 1693802]
3338
33392007-04-03  Don Porter  <dgp@users.sourceforge.net>
3340
3341        * generic/tclNamesp.c:  Revised ErrorCodeRead and ErrorInfoRead trace
3342        routines so they guarantee the ::errorCode and ::errorInfo variable
3343        always appear to exist. [Bug 1693252]
3344
33452007-04-03  Miguel Sofer  <msofer@users.sf.net>
3346
3347        * generic/tclInt.decls:  Moved TclGetNamespaceFromObj() to the
3348        * generic/tclInt.h:      internal stubs table; regen.
3349        * generic/tclIntDecls.h:
3350        * generic/tclStubInit.c:
3351
33522007-04-02  Miguel Sofer  <msofer@users.sf.net>
3353
3354        * generic/tclBasic.c:     Added bytecode compilers for the variable
3355        * generic/tclCompCmds.c:  linking commands: 'global', 'variable',
3356        * generic/tclCompile.h:   'upvar', 'namespace upvar' [Patch 1688593]
3357        * generic/tclExecute.c:
3358        * generic/tclInt.h:
3359        * generic/tclVar.c:
3360
33612007-04-02  Don Porter  <dgp@users.sourceforge.net>
3362
3363        * generic/tclBasic.c:   Replace arrays on the C stack and ckalloc
3364        * generic/tclExecute.c: calls with TclStackAlloc calls to use memory
3365        * generic/tclFCmd.c:    on Tcl's evaluation stack.
3366        * generic/tclFileName.c:
3367        * generic/tclIOCmd.c:
3368        * generic/tclIndexObj.c:
3369        * generic/tclInterp.c:
3370        * generic/tclNamesp.c:
3371        * generic/tclTrace.c:
3372        * unix/tclUnixPipe.c:
3373
33742007-04-01  Donal K. Fellows  <dkf@users.sf.net>
3375
3376        * generic/tclCompile.c (TclCompileScript, TclPrintInstruction):
3377        * generic/tclExecute.c (TclExecuteByteCode): Changed the definition of
3378        INST_START_CMD so that it knows how many commands start at the current
3379        location. This makes the interpreter command counter correct without
3380        requiring a large number of instructions to be issued. (See my change
3381        from 2007-01-19 for what triggered this.)
3382
33832007-03-30  Don Porter  <dgp@users.sourceforge.net>
3384
3385        * generic/tclCompile.c:
3386        * generic/tclCompExpr.c:
3387        * generic/tclCompCmds.c:        Replace arrays on the C stack and
3388        ckalloc calls with TclStackAlloc calls to use memory on Tcl's
3389        evaluation stack.
3390
3391        * generic/tclCmdMZ.c:   Revised [string to* $s $first $last]
3392        implementation to reduce number of allocs/copies.
3393
3394        * tests/string.test:  More [string reverse] tests.
3395
33962007-03-30  Miguel Sofer  <msofer@users.sf.net>
3397
3398        * generic/tclExecute.c: optimise the lookup of elements of indexed
3399        arrays.
3400
34012007-03-29  Miguel Sofer  <msofer@users.sf.net>
3402
3403        * generic/tclProc.c (Tcl_ApplyObjCmd):
3404        * tests/apply.test (9.3): Fixed Tcl_Obj leak on error return; an
3405        unneeded ref to lambdaPtr was being set and not released on an error
3406        return path.
3407
34082007-03-28  Don Porter  <dgp@users.sourceforge.net>
3409
3410        * generic/tclCmdMZ.c (STR_REVERSE):     Implement the actual [string
3411        reverse] command in terms of the new TclStringObjReverse() routine.
3412
3413        * generic/tclInt.h (TclStringObjReverse):       New internal routine
3414        * generic/tclStringObj.c (TclStringObjReverse): that implements the
3415        [string reverse] operation, making use of knowledge/surgery of the
3416        String intrep to minimize the number of allocs and copies needed to do
3417        the job.
3418
34192007-03-27  Don Porter  <dgp@users.sourceforge.net>
3420
3421        * generic/tclCmdMZ.c (STR_MAP): Replace ckalloc calls with
3422        TclStackAlloc calls.
3423
34242007-03-24  Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
3425
3426        * win/tclWinThrd.c: Thread exit handler marks the current thread as
3427        un-initialized. This allows exit handlers that are registered later to
3428        re-initialize this subsystem in case they need to use some sync
3429        primitives (cond variables) from this file again.
3430
34312007-03-23  Miguel Sofer  <msofer@users.sf.net>
3432
3433        * generic/tclBasic.c (DeleteInterpProc): pop the root frame pointer
3434        before deleting the global namespace [Bug 1658572]
3435
34362007-03-23  Kevin B. Kenny  <kennykb@acm.org>
3437
3438        * win/Makefile.in: Added code to keep a Cygwin path name from leaking
3439        into LIBRARY_DIR when doing 'make test' or 'make runtest'.
3440
34412007-03-22  Don Porter  <dgp@users.sourceforge.net>
3442
3443        * generic/tclCmdAH.c (Tcl_ForeachObjCmd):       Replaced arrays on the
3444        C stack and ckalloc calls with TclStackAlloc calls to use memory on
3445        Tcl's evaluation stack.
3446
3447        * generic/tclExecute.c: Revised GrowEvaluationStack to take an
3448        argument specifying the growth required by the caller, so that a
3449        single reallocation / copy is the most that will ever be needed even
3450        when required growth is large.
3451
34522007-03-21  Don Porter  <dgp@users.sourceforge.net>
3453
3454        * generic/tclExecute.c: More ckalloc -> ckrealloc conversions.
3455        * generic/tclLiteral.c:
3456        * generic/tclNamesp.c:
3457        * generic/tclParse.c:
3458        * generic/tclPreserve.c:
3459        * generic/tclStringObj.c:
3460        * generic/tclUtil.c:
3461
34622007-03-20  Don Porter  <dgp@users.sourceforge.net>
3463
3464        * generic/tclEnv.c:     Some more ckalloc -> ckrealloc replacements.
3465        * generic/tclLink.c:
3466
34672007-03-20  Kevin B. Kenny  <kennykb@acm.org>
3468
3469        * generic/tclDate.c: Rebuilt, despite Donal Fellows's comment when
3470        committing it that no rebuild was required.
3471        * generic/tclGetDate.y: According to Donal Fellows, "Introduce modern
3472        formatting standards; no need for rebuild of tclDate.c."
3473
3474        * library/tzdata/America/Cambridge_Bay:
3475        * library/tzdata/America/Havana:
3476        * library/tzdata/America/Inuvik:
3477        * library/tzdata/America/Iqaluit:
3478        * library/tzdata/America/Pangnirtung:
3479        * library/tzdata/America/Rankin_Inlet:
3480        * library/tzdata/America/Resolute:
3481        * library/tzdata/America/Yellowknife:
3482        * library/tzdata/Asia/Choibalsan:
3483        * library/tzdata/Asia/Dili:
3484        * library/tzdata/Asia/Hovd:
3485        * library/tzdata/Asia/Jakarta:
3486        * library/tzdata/Asia/Jayapura:
3487        * library/tzdata/Asia/Makassar:
3488        * library/tzdata/Asia/Pontianak:
3489        * library/tzdata/Asia/Ulaanbaatar:
3490        * library/tzdata/Europe/Istanbul: Upgraded to Olson's tzdata2007d.
3491
3492        * generic/tclListObj.c (TclLsetList, TclLsetFlat):
3493        * tests/lset.test: Changes to deal with shared internal representation
3494        for lists passed to the [lset] command. Thanks to Don Porter for
3495        fixing this issue. [Bug 1677512]
3496
34972007-03-19  Don Porter  <dgp@users.sourceforge.net>
3498
3499        * generic/tclCompile.c: Revise the various expansion routines for
3500        CompileEnv fields to use ckrealloc() where appropriate.
3501
3502        * generic/tclBinary.c (Tcl_SetByteArrayLength): Replaced ckalloc() /
3503        memcpy() sequence with ckrealloc() call.
3504
3505        * generic/tclBasic.c (Tcl_CreateMathFunc):      Replaced some calls to
3506        * generic/tclEvent.c (Tcl_CreateThread):        Tcl_Alloc() with calls
3507        * generic/tclObj.c (UpdateStringOfBignum):      to ckalloc(), which
3508        * unix/tclUnixTime.c (SetTZIfNecessary):        better supports memory
3509        * win/tclAppInit.c (setargv):                   debugging.
3510
35112007-03-19  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
3512
3513        * doc/regsub.n: Corrected example so that it doesn't recommend
3514        potentially unsafe practice. Many thanks to Konstantin Kushnir
3515        <chpock@gmail.com> for reporting this.
3516
35172007-03-17  Kevin B. Kenny  <kennykb@acm.org>
3518
3519        * win/tclWinReg.c (GetKeyNames): Size the buffer for enumerating key
3520        names correctly, so that Unicode names exceeding 127 chars can be
3521        retrieved without crashing. [Bug 1682211]
3522        * tests/registry.test (registry-4.9): Added test case for the above
3523        bug.
3524
35252007-03-15  Mo DeJong  <mdejong@users.sourceforge.net>
3526
3527        * generic/tclIOUtil.c (Tcl_Stat): Reimplement workaround to avoid gcc
3528        warning by using local variables. When the macro argument is of type
3529        long long instead of long, the incorrect warning is not generated.
3530
35312007-03-15  Mo DeJong  <mdejong@users.sourceforge.net>
3532
3533        * win/Makefile.in: Fully qualify LIBRARY_DIR so that `make test` does
3534        not depend on working dir.
3535
35362007-03-15  Mo DeJong  <mdejong@users.sourceforge.net>
3537
3538        * tests/parse.test: Add two backslash newline parse tests.
3539
35402007-03-12  Don Porter  <dgp@users.sourceforge.net>
3541
3542        * generic/tclExecute.c (INST_FOREACH_STEP4):    Make private copy of
3543        * tests/foreach.test (foreach-10.1):    value list to be assigned to
3544        variables so that shimmering of that list doesn't lead to invalid
3545        pointers. [Bug 1671087]
3546
3547        * generic/tclEvent.c (HandleBgErrors):  Make efficient private copy
3548        * tests/event.test (event-5.3): of the command prefix for the interp's
3549        background error handling command to avoid panics due to pointers to
3550        memory invalid after shimmering. [Bug 1670155]
3551
3552        * generic/tclNamesp.c (NsEnsembleImplementationCmd):    Make efficient
3553        * tests/namespace.test (namespace-42.8):        private copy of the
3554        command prefix as we invoke the command appropriate to a particular
3555        subcommand of a particular ensemble to avoid panic due to shimmering
3556        of the List intrep. [Bug 1670091]
3557
3558        * generic/tclVar.c (TclArraySet):       Make efficient private copy of
3559        * tests/var.test (var-17.1):    the "list" argument to [array set] to
3560        avoid crash due to shimmering invalidating pointers. [Bug 1669489]
3561
35622007-03-12  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
3563
3564        * generic/tclCmdIL.c (Tcl_LsortObjCmd): Fix problems with declaration
3565        positioning and memory leaks. [Bug 1679072]
3566
35672007-03-11  Donal K. Fellows  <dkf@users.sf.net>
3568
3569        * generic/tclCmdIL.c (Tcl_LreverseObjCmd): Ensure that a list is
3570        correctly reversed even if its internal representation is shared
3571        without the object itself being shared. [Bug 1675044]
3572
35732007-03-10  Miguel Sofer  <msofer@users.sf.net>
3574
3575        * generic/tclCmdIL (Tcl_LsortObjCmd): changed fix to [Bug 1675116] to
3576        use the cheaper TclListObjCopy() instead of Tcl_DuplicateObj().
3577
35782007-03-09  Andreas Kupries  <andreask@activestate.com>
3579
3580        * library/platform/shell.tcl: Made more robust if an older platform
3581        * library/platform/pkgIndex.tcl: package is present in the inspected
3582        * unix/Makefile.in: shell. Package forget it to prevent errors. Bumped
3583        * win/Makefile.in: package version to 1.1.3, and updated the Makefiles
3584        installing it as Tcl Module.
3585
35862007-03-09  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
3587
3588        * generic/tclCmdIL.c (Tcl_LsortObjCmd): Handle tricky case with loss
3589        * tests/cmdIL.test (cmdIL-1.29):        of list rep during sorting due
3590        to shimmering. [Bug 1675116]
3591
35922007-03-09  Kevin B. Kenny  <kennykb@acm.org>
3593
3594        * library/clock.tcl (ReadZoneinfoFile): Added Y2038 compliance to the
3595        code for version-2 'zoneinfo' files.
3596        * tests/clock.test (clock-56.3): Added a test case for Y2038 and
3597        'zoneinfo'. Modified test initialisation to use the
3598        'loadTestedCommands' function of tcltest to bring in the correct path
3599        for the registry library.
3600
36012007-03-08  Don Porter  <dgp@users.sourceforge.net>
3602
3603        * generic/tclListObj.c (TclLsetList):   Rewrite so that the routine
3604        itself does not do any direct intrep surgery. Better isolates those
3605        things into the implementation of the "list" Tcl_ObjType.
3606
36072007-03-08  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
3608
3609        * generic/tclListObj.c (TclLindexList, TclLindexFlat): Moved these
3610        functions to tclListObj.c from tclCmdIL.c to mirror the way that the
3611        equivalent functions for [lset]'s guts are arranged.
3612
36132007-03-08  Kevin B. Kenny  <kennykb@acm.org>
3614
3615        * library/clock.tcl: Further tweaks to the Windows time zone table
3616        (restoring missing Mexican time zones). Added rudimentary handling of
3617        version-2 'zoneinfo' files. Update US DST rules so that zones such as
3618        'EST5EDT' get the correct transition dates.
3619        * tests/clock.test: Added rudimentary test cases for 'zoneinfo'
3620        parsing. Adjusted several tests that depended on obsolete US DST
3621        transition rules.
3622
36232007-03-07  Daniel Steffen  <das@users.sourceforge.net>
3624
3625        * macosx/tclMacOSXNotify.c: add spinlock debugging and sanity checks.
3626
3627        * macosx/Tcl.xcodeproj/project.pbxproj: ensure gcc version used by
3628        * macosx/Tcl.xcodeproj/default.pbxuser: Xcode and configure/make are
3629        * macosx/Tcl-Common.xcconfig:           consistent and independent of
3630        gcc_select default and CC env var; fixes for Xcode 3.0.
3631
3632        * unix/tcl.m4 (Darwin): s/CFLAGS/CPPFLAGS/ in macosx-version-min check
3633        * unix/configure: autoconf-2.59
3634
36352007-03-07  Don Porter  <dgp@users.sourceforge.net>
3636
3637        * generic/tclCmdIL.c (TclLindex*):      Rewrites to make efficient
3638        private copies of the list and indexlist arguments, so we can operate
3639        on the list elements directly with no fear of shimmering effects.
3640        Replaces defensive coding schemes that are otherwise required. End
3641        result is that TclLindexList is entirely a wrapper around
3642        TclLindexFlat, which is now the core engine of all [lindex]
3643        operations.
3644
3645        * generic/tclObj.c (Tcl_AppendAllObjTypes):     Converted to simpler
3646        list validity test.
3647
36482007-03-07  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
3649
3650        * generic/tclRegexp.c (TclRegAbout): Generate information about a
3651        regexp as a Tcl_Obj instead of as a string, which is more efficient.
3652
36532007-03-07  Kevin B. Kenny  <kennykb@acm.org>
3654
3655        * library/clock.tcl: Adjusted Windows time zone table to handle new US
3656        DST rules by locale rather than as Posix time zone spec.
3657        * tests/clock.test (clock-39.6, clock-49.2, testclock::registry):
3658        Adjusted tests to simulate new US rules.
3659        * library/tzdata/America/Indiana/Winamac:
3660        * library/tzdata/Europe/Istanbul:
3661        * library/tzdata/Pacific/Easter:
3662        Olson's tzdata2007c.
3663
36642007-03-05  Andreas Kupries  <andreask@activestate.com>
3665
3666        * library/platform/shell.tcl (::platform::shell::RUN): In the case of
3667        * library/platform/pkgIndex.tcl: a failure put the captured stderr
3668        * unix/Makefile.in: into the error message to aid in debugging. Bumped
3669        * win/Makefile.in: package version to 1.1.2, and updated the makefiles
3670        installing it as Tcl Module.
3671
36722007-03-03  Donal K. Fellows  <dkf@users.sf.net>
3673
3674        * generic/tclLink.c (LinkedVar): Added macro to conceal at least some
3675        of the pointer hackery.
3676
36772007-03-02  Don Porter  <dgp@users.sourceforge.net>
3678
3679        * generic/tclCmdIL.c (Tcl_LreverseObjCmd):      Added missing
3680        TclInvalidateStringRep() call when we directly manipulate the intrep
3681        of an unshared "list" Tcl_Obj. [Bug 1672585]
3682
3683        * generic/tclCmdIL.c (Tcl_JoinObjCmd):  Revised [join] implementation
3684        to append Tcl_Obj's instead of strings. [RFE 1669420]
3685
3686        * generic/tclCmdIL.c (Info*Cmd):        Code simplifications and
3687        optimizations.
3688
36892007-03-02  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
3690
3691        * generic/tclCompile.c (TclPrintInstruction): Added a scheme to allow
3692        * generic/tclCompile.h (AuxDataPrintProc):    aux-data to be printed
3693        * generic/tclCompCmds.c (Print*Info):         out for debugging. For
3694        this to work, immediate operands referring to aux-data must be
3695        identified as such in the instruction descriptor table using
3696        OPERAND_AUX4 (all are always 4 bytes).
3697
3698        * generic/tclExecute.c (TclExecuteByteCode): Rewrote the compiled
3699        * generic/tclCompCmds.c (TclCompileDictCmd): [dict update] so that it
3700        * generic/tclCompile.h (DictUpdateInfo):     stores critical
3701        * tests/dict.test (dict-21.{14,15}):         non-varying data in an
3702        aux-data value instead of a (shimmerable) literal. [Bug 1671001]
3703
37042007-03-01  Don Porter  <dgp@users.sourceforge.net>
3705
3706        * generic/tclCmdIL.c (Tcl_LinsertObjCmd):       Code simplifications
3707        and optimizations.
3708
3709        * generic/tclCmdIL.c (Tcl_LreplaceObjCmd):      Code simplifications
3710        and optimizations.
3711
3712        * generic/tclCmdIL.c (Tcl_LrangeObjCmd):        Rewrite in the same
3713        spirit; avoid shimmer effects rather than react to them.
3714
3715        * generic/tclCmdAH.c (Tcl_ForeachObjCmd):       Stop throwing away
3716        * tests/foreach.test (foreach-1.14):    useful error information when
3717        loop variable sets fail.
3718
3719        * generic/tclCmdIL.c (Tcl_LassignObjCmd):       Rewrite to make an
3720        efficient private copy of the list argument, so we can operate on the
3721        list elements directly with no fear of shimmering effects. Replaces
3722        defensive coding schemes that are otherwise required.
3723
3724        * generic/tclCmdAH.c (Tcl_ForeachObjCmd):       Rewrite to make
3725        efficient private copies of the variable and value lists, so we can
3726        operate on them without any special shimmer defense coding schemes.
3727
37282007-03-01  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
3729
3730        * generic/tclCompCmds.c (TclCompileForeachCmd): Prevent an unexpected
3731        * tests/foreach.test (foreach-9.1):             infinite loop when the
3732        variable list is empty and the foreach is compiled. [Bug 1671138]
3733
37342007-02-26  Andreas Kupries  <andreask@activestate.com>
3735
3736        * generic/tclIORChan.c (FreeReflectedChannel): Added the missing
3737        refcount release between NewRC and FreeRC for the channel handle
3738        object, spotted by Don Porter. [Bug 1667990]
3739
37402007-02-26  Don Porter  <dgp@users.sourceforge.net>
3741
3742        * generic/tclCmdAH.c (Tcl_ForeachObjCmd):       Removed surplus
3743        copying of the objv array that used to be a workaround for [Bug
3744        404865]. That bug is long fixed.
3745
37462007-02-24  Don Porter  <dgp@users.sourceforge.net>
3747
3748        * generic/tclBasic.c:   Use new interface in Tcl_EvalObjEx so that the
3749        recounting logic of the List internal rep need not be repeated there.
3750        Better encapsulation of internal details.
3751
3752        * generic/tclInt.h:     New internal routine TclListObjCopy() used
3753        * generic/tclListObj.c: to efficiently do the equivalent of [lrange
3754        $list 0 end]. After some experience with this, might be a good
3755        candidate for exposure as a public interface. It's useful for callers
3756        of Tcl_ListObjGetElements() who want to control the ongoing validity
3757        of the returned objv pointer.
3758
37592007-02-22  Andreas Kupries  <andreask@activestate.com>
3760
3761        * tests/pkg.test: Added tests for the case of an alpha package
3762        satisfying a require for the regular package, demonstrating a corner
3763        case specified in TIP#280. More notes in the comments to the test.
3764
37652007-02-20  Jan Nijtmans  <nijtmans@users.sf.net>
3766
3767        * generic/tclInt.decls: Added "const" specifiers in TclSockGetPort
3768        * generic/tclIntDecls.h: regenerated
3769        * generic/*.c:
3770        * unix/tclUnixChan.c
3771        * unix/tclUnixPipe.c
3772        * win/tclWinPipe.c
3773        * win/tclWinSock.c: Added many "const" specifiers in implementation.
3774
37752007-02-20  Don Porter  <dgp@users.sourceforge.net>
3776
3777        * doc/tcltest.n:        Typo fix. [Bug 1663539]
3778
37792007-02-20  Pat Thoyts  <patthoyts@users.sourceforge.net>
3780
3781        * generic/tclFileName.c:  Handle extended paths on Windows NT and
3782        * generic/tclPathObj.c:   above. These have a \\?\ prefix. [Bug
3783        * win/tclWinFile.c:       1479814]
3784        * tests/winFCmd.test:     Tests for extended path handling.
3785
37862007-02-19  Jeff Hobbs  <jeffh@ActiveState.com>
3787
3788        * unix/tcl.m4: use SHLIB_SUFFIX=".so" on HP-UX ia64 arch.
3789        * unix/configure: autoconf-2.59
3790
3791        * generic/tclIOUtil.c (Tcl_FSEvalFileEx): safe incr of objPtr ref.
3792
37932007-02-18  Donal K. Fellows  <dkf@users.sf.net>
3794
3795        * doc/chan.n, doc/clock.n, doc/eval.n, doc/exit.n, doc/expr.n:
3796        * doc/interp.n, doc/open.n, doc/platform_shell.n, doc/pwd.n:
3797        * doc/refchan.n, doc/regsub.n, doc/scan.n, doc/tclvars.n, doc/tm.n:
3798        * doc/unload.n: Apply [Bug 1610310] to fix typos. Thanks to Larry
3799        Virden for spotting them.
3800
3801        * doc/interp.n: Partial fix of [Bug 1662436]; rest requires some
3802        policy decisions on what should and shouldn't be safe commands from
3803        the "new in 8.5" set.
3804
38052007-02-13  Kevin B. Kenny  <kennykb@acm.org>
3806
3807        * tools/fix_tommath_h.tcl: Further tweaking for the x86-64. The change
3808        is to make 'mp_digit' be an 'unsigned int' on that platform; since
3809        we're using only 32 bits of it, there's no reason to make it a 64-bit
3810        'unsigned long.'
3811        * generic/tclTomMath.h: Regenerated.
3812
38132007-02-13  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
3814
3815        * doc/re_syntax.n: Corrected description of 'print' class [Bug
3816        1614687] and enhanced description of 'graph' class.
3817
38182007-02-12  Kevin B. Kenny  <kennykb@acm.org>
3819
3820        * tools/fix_tommath_h.tcl: Added code to patch out a check for
3821        __x86_64__ that caused Tommath to use __attributes(TI)__ for the
3822        mp_word type. Tetra-int's simply fail on too many gcc-glibc-OS
3823        combinations to be ready for shipment today, even if they work for
3824        some of us. This change allows reversion of das's change of 2006-08-18
3825        that accomplised the same thing on Darwin. [Bugs 1601380, 1603737,
3826        1609936, 1656265]
3827        * generic/tclTomMath.h: Regenerated.
3828        * library/tzdata/Africa/Asmara:
3829        * library/tzdata/Africa/Asmera:
3830        * library/tzdata/America/Nassau:
3831        * library/tzdata/Atlantic/Faeroe:
3832        * library/tzdata/Atlantic/Faroe:
3833        * library/tzdata/Australia/Eucla:
3834        * library/tzdata/Pacific/Easter: Rebuilt from Olson's tzdata2007b.
3835
38362007-02-09  Joe Mistachkin  <joe@mistachkin.com>
3837
3838        * win/nmakehlp.c: Properly cleanup after nmakehlp, including the
3839        * win/makefile.vc: vcX0.pch file.
3840
38412007-02-08  Jeff Hobbs  <jeffh@ActiveState.com>
3842
3843        * unix/tclUnixInit.c (TclpCheckStackSpace): do stack size checks with
3844        unsigned size_t to correctly validate stackSize in the 2^31+ range.
3845        [Bug 1654104]
3846
38472007-02-08  Don Porter  <dgp@users.sourceforge.net>
3848
3849        * generic/tclNamesp.c:  Corrected broken logic in Tcl_DeleteNamespace
3850        * tests/namespace.test: introduced in Patch 1577278 that caused
3851        [namespace delete ::] to be effective only at level #0. New test
3852        namespace-7.7 should prevent similar error in the future [Bug 1655305]
3853
38542007-02-06  Don Porter  <dgp@users.sourceforge.net>
3855
3856        * generic/tclNamesp.c:  Corrected broken implementation of the
3857        * tests/namespace.test: TclMatchIsTrivial optimization on [namespace
3858        children $namespace $pattern].
3859
38602007-02-04  Daniel Steffen  <das@users.sourceforge.net>
3861
3862        * unix/tcl.m4: use gcc4's __attribute__((__visibility__("hidden"))) if
3863        available to define MODULE_SCOPE effective on all platforms.
3864        * unix/configure.in: add caching to -pipe and zoneinfo checks.
3865        * unix/configure: autoconf-2.59
3866        * unix/tclConfig.h.in: autoheader-2.59
3867
38682007-02-03  Joe Mistachkin  <joe@mistachkin.com>
3869
3870        * win/rules.vc: Fix platform specific file copy macros for downlevel
3871        Windows.
3872
38732007-01-29  Don Porter  <dgp@users.sourceforge.net>
3874
3875        * generic/tclResult.c: Added optimization case to TclTransferResult to
3876        cover common case where there's big savings over the fully general
3877        path. Thanks to Peter MacDonald. [Bug 1626518]
3878
3879        * generic/tclLink.c:    Broken linked float logic corrected. Thanks to
3880        Andy Goth. [Bug 1602538]
3881
3882        * doc/fcopy.n:  Typo fix. [Bug 1630627]
3883
38842007-01-28  Daniel Steffen  <das@users.sourceforge.net>
3885
3886        * macosx/Tcl.xcodeproj/project.pbxproj:   extract build settings that
3887        * macosx/Tcl.xcodeproj/default.pbxuser:   were common to multiple
3888        * macosx/Tcl-Common.xcconfig (new file):  configurations into external
3889        * macosx/Tcl-Debug.xcconfig (new file):   xcconfig files; add extra
3890        * macosx/Tcl-Release.xcconfig (new file): configurations for building
3891        with SDKs and 64bit; convert legacy jam-based 'Tcl' target to native
3892        target with single script phase; correct syntax of build setting
3893        references to use $() throughout.
3894
3895        * macosx/README: document new Tcl.xcodeproj configurations; other
3896        minor updates/corrections.
3897
3898        * generic/tcl.h: update location of version numbers in macosx files.
3899
3900        * macosx/Tcl.xcode/project.pbxproj: restore 'tcltest' target to
3901        * macosx/Tcl.xcode/default.pbxuser: working order by replicating
3902        applicable changes to Tcl.xcodeproj since 2006-07-20.
3903
39042007-01-25  Daniel Steffen  <das@users.sourceforge.net>
3905
3906        * unix/tcl.m4: integrate CPPFLAGS into CFLAGS as late as possible and
3907        move (rather than duplicate) -isysroot flags from CFLAGS to CPPFLAGS
3908        to avoid errors about multiple -isysroot flags from some older gcc
3909        builds.
3910
3911        * unix/configure: autoconf-2.59
3912
39132007-01-22  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
3914
3915        * compat/memcmp.c (memcmp): Reworked so that arithmetic is never
3916        performed upon void pointers, since that is illegal. [Bug 1631017]
3917
39182007-01-19  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
3919
3920        * generic/tclCompile.c (TclCompileScript): Reduce the frequency with
3921        which we issue INST_START_CMD, making bytecode both more compact and
3922        somewhat faster. The optimized case is where we would otherwise be
3923        issuing a sequence of those instructions; in those cases, it is only
3924        ever the first one encountered that could possibly trigger.
3925
39262007-01-19  Joe Mistachkin  <joe@mistachkin.com>
3927
3928        * tools/man2tcl.c: Include stdlib.h for exit() and improve comment
3929        detection.
3930        * win/nmakehlp.c: Update usage.
3931        * win/makefile.vc: Properly build man2tcl.c for MSVC8.
3932
39332007-01-19  Daniel Steffen  <das@users.sourceforge.net>
3934
3935        * macosx/tclMacOSXFCmd.c (TclMacOSXSetFileAttribute): on some versions
3936        of Mac OS X, truncate() fails on resource forks, in that case use
3937        open() with O_TRUNC instead.
3938
3939        * macosx/tclMacOSXNotify.c: accommodate changes to prototypes of
3940        OSSpinLock(Un)Lock API.
3941
3942        * macosx/Tcl.xcodeproj/project.pbxproj: ensure HOME and USER env vars
3943        * macosx/Tcl.xcodeproj/default.pbxuser: are defined when running
3944                                                testsuite from Xcode.
3945
3946        * tests/env.test: add extra system env vars that need to be preserved
3947        on some Mac OS X versions for testsuite to work.
3948
3949        * unix/Makefile.in:  Move libtommath defines into configure.in to
3950        * unix/configure.in: avoid replicating them across multiple
3951        * macosx/Tcl.xcodeproj/project.pbxproj: buildsystems.
3952
3953        * unix/tcl.m4: ensure CPPFLAGS env var is used when set. [Bug 1586861]
3954        (Darwin): add -isysroot and -mmacosx-version-min flags to CPPFLAGS
3955        when present in CFLAGS to avoid discrepancies between what headers
3956        configure sees during preprocessing tests and compiling tests.
3957
3958        * unix/configure: autoconf-2.59
3959        * unix/tclConfig.h.in: autoheader-2.59
3960
39612007-01-18  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
3962
3963        * generic/tclCompile.c (TclCompileScript): Make sure that when parsing
3964        an expanded literal fails, a correct bytecode sequence is still
3965        issued. [Bug 1638414]. Also make sure that the start of the expansion
3966        bytecode sequence falls inside the span of bytecodes for a command.
3967        * tests/compile.test (compile-16.24): Added test for [Bug 1638414]
3968
39692007-01-17  Donal K. Fellows  <dkf@users.sf.net>
3970
3971        * generic/tclIO.c: Added macros to make usage of ChannelBuffers
3972        clearer.
3973
39742007-01-11  Joe English  <jenglish@users.sourceforge.net>
3975
3976        * win/tcl.m4(CFLAGS_WARNING): Remove "-Wconversion". This was removed
3977        from unix/tcl.m4 2004-07-16 but not from here.
3978        * win/configure: Regenerated.
3979
39802007-01-11  Pat Thoyts  <patthoyts@users.sourceforge.net>
3981
3982        * win/makefile.vc: Fixes to work better on Win98. Read version numbers
3983        * win/nmakehlp.c:  from package index file to avoid keeping numbers in
3984        * win/rules.vc:    the makefile where they may become de-synchronized.
3985
39862007-01-10  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
3987
3988        * generic/regcomp.c (compile, freev):        Define a strategy for
3989        * generic/regexec.c (exec):                  managing the internal
3990        * generic/regguts.h (AllocVars, FreeVars):   vars of the RE engine to
3991        * generic/regcustom.h (AllocVars, FreeVars): reduce C stack usage.
3992        This will make Tcl as a whole much less likely to run out of stack
3993        space...
3994
39952007-01-09  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
3996
3997        * generic/tclCompCmds.c (TclCompileLindexCmd):
3998        * tests/lindex.test (lindex-9.2): Fix silly bug that ended up
3999        sometimes compiling list arguments in the wrong order. [Bug 1631364]
4000
40012007-01-03  Kevin B. Kenny  <kennykb@acm.org>
4002
4003        * generic/tclDate.c: Regenerated to recover a lost fix from patthoyts.
4004        [Bug 1618523]
4005
40062006-12-26  Mo DeJong  <mdejong@users.sourceforge.net>
4007
4008        * generic/tclIO.c (Tcl_GetsObj): Avoid checking for for the LF in a
4009        possible CRLF sequence when EOF has already been found.
4010
40112006-12-26  Mo DeJong  <mdejong@users.sourceforge.net>
4012
4013        * generic/tclEncoding.c (EscapeFromUtfProc): Clear the
4014        TCL_ENCODING_END flag when end bytes are written. This fix keep this
4015        method from writing escape bytes for an encoding like iso2022-jp
4016        multiple times when the escape byte overlap with the end of the IO
4017        buffer.
4018        * tests/io.test: Add test for escape byte overlap issue.
4019
40202006-12-19  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
4021
4022        * unix/tclUnixThrd.c (Tcl_GetAllocMutex, TclpNewAllocMutex): Add
4023        intermediate variables to shut up unwanted warnings. [Bug 1618838]
4024
40252006-12-19  Daniel Steffen  <das@users.sourceforge.net>
4026
4027        * unix/tclUnixThrd.c (TclpInetNtoa): fix for 64 bit.
4028
4029        * unix/tcl.m4 (Darwin): --enable-64bit: verify linking with 64bit
4030        -arch flag succeeds before enabling 64bit build.
4031        * unix/configure: autoconf-2.59
4032
40332006-12-17  Daniel Steffen  <das@users.sourceforge.net>
4034
4035        * tests/macOSXLoad.test (new file): add testing of .bundle loading and
4036        * tests/load.test:                  unloading on Darwin (in addition
4037        * tests/unload.test:                to existing tests of .dylib
4038        loading).
4039        * macosx/Tcl.xcodeproj/project.pbxproj: add building of dltest
4040        binaries so that testsuite run from Xcode can use them; fix testsuite
4041        run script
4042        * unix/configure.in:       add support for building dltest binaries as
4043        * unix/dltest/Makefile.in: .bundle (in addition to .dylib) on Darwin.
4044        * unix/Makefile.in: add stub lib dependency to dltest target.
4045        * unix/configure: autoconf-2.59
4046
4047        * tests/append.test: fix cleanup failure when all tests are skipped.
4048
4049        * tests/chan.test (chan-16.9): cleanup chan event handler to avoid
4050        causing error in event.test when running testsuite with -singleproc 1.
4051
4052        * tests/info.test: add !singleTestInterp constraint to tests that fail
4053        when running testsuite with -singleproc 1. [Bug 1605269]
4054
40552006-12-14  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
4056
4057        * doc/string.n: Fix example. [Bug 1615277]
4058
40592006-12-12  Don Porter  <dgp@users.sourceforge.net>
4060
4061        * generic/tclCompExpr.c:        Now that the new internal structs are
4062        in use to support operator commands, might as well make them the
4063        default for [expr] as well and avoid passing every parsed expression
4064        through the inefficient Tcl_Token array format. This addresses most
4065        issues in [RFE 1517602]. Assuming no performance disasters result from
4066        this, much dead code supporting the other implementation might now be
4067        removed.
4068
4069        * generic/tclBasic.c:   Final step routing all direct evaluation forms
4070        * generic/tclCompExpr.c: of the operator commands through TEBC,
4071        * generic/tclCompile.h: dropping all the routines in tclMathOp.c.
4072        * generic/tclMathOp.c:  Still needs Engineering Manual attention.
4073
40742006-12-11  Don Porter  <dgp@users.sourceforge.net>
4075
4076        * generic/tclBasic.c:   Another step with all sorting operator
4077        * generic/tclCompExpr.c: commands now routing through TEBC via
4078        * generic/tclCompile.h: TclSortingOpCmd().
4079
40802006-12-08  Don Porter  <dgp@users.sourceforge.net>
4081
4082        * generic/tclBasic.c:    Another step down the path of re-using
4083        * generic/tclCompExpr.c: TclExecuteByteCode to implement the TIP 174
4084        * generic/tclCompile.h: commands instead of using a mass of code
4085        * generic/tclMathOp.c:  duplication. Now all operator commands that
4086        * tests/mathop.test:    demand exactly one operation are implemented
4087        via TclSingleOpCmd and a call to TEBC.
4088
4089        * generic/tclCompExpr.c: Revised implementation of TclInvertOpCmd to
4090        * generic/tclMathOp.c:  perform a bytecode compile / execute sequence.
4091        This demonstrates a path toward avoiding mountains of code duplication
4092        in tclMathOp.c and tclExecute.c.
4093
4094        * generic/tclCompile.h: Change TclExecuteByteCode() from static to
4095        * generic/tclExecute.c: MODULE_SCOPE so all files including
4096        tclCompile.h may call it.
4097
4098        * generic/tclMathOp.c:  More revisions to make tests pass.
4099        * tests/mathop.test:
4100
41012006-12-08  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
4102
4103        * generic/tclNamesp.c (TclTeardownNamespace): Ensure that dying
4104        namespaces unstitch themselves from their referents. [Bug 1571056]
4105        (NsEnsembleImplementationCmd): Silence GCC warning.
4106
4107        * tests/mathop.test: Full tests for & | and ^ operators
4108
41092006-12-08  Daniel Steffen  <das@users.sourceforge.net>
4110
4111        * library/tcltest/tcltest.tcl: use [info frame] for "-verbose line".
4112
41132006-12-07  Don Porter  <dgp@users.sourceforge.net>
4114
4115        * generic/tclCompCmds.c:        Additional commits correct most
4116        * generic/tclExecute.c:         failing tests illustrating bugs
4117        * generic/tclMathOp.c:          uncovered in [Patch 1578137].
4118
4119        * generic/tclBasic.c:   Biggest source of TIP 174 failures was that
4120        the commands were not [namespace export]ed from the ::tcl::mathop
4121        namespace. More bits from [Patch 1578137] correct that.
4122
4123        * tests/mathop.test:    Commmitted several new tests from Peter Spjuth
4124        found in [Patch 1578137]. Many failures now demonstrate issues to fix
4125        in the TIP 174 implementation.
4126
41272006-12-07  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
4128
4129        * tests/mathop.test: Added tests for ! ~ eq operators.
4130        * generic/tclMathOp.c (TclInvertOpCmd): Add in check for non-integral
4131        numeric values.
4132        * generic/tclCompCmds.c (CompileCompareOpCmd): Factor out the code
4133        generation for the chained comparison operators.
4134
41352006-12-07  Pat Thoyts  <patthoyts@users.sourceforge.net>
4136
4137        * tests/exec.test: Fixed line endings (caused win32 problems).
4138
41392006-12-06  Don Porter  <dgp@users.sourceforge.net>
4140
4141        * generic/tclCompCmds.c:        Revised and consolidated into utility
4142        * tests/mathop.test:            routines some of routines that compile
4143        the new TIP 174 commands. This corrects some known bugs. More to come.
4144
41452006-12-06  Kevin B. Kenny  <kennykb@acm.org>
4146
4147        * tests/expr.test (expr-47.12): Improved error reporting in hopes of
4148        having more information to pursue [Bug 1609936].
4149
41502006-12-05  Andreas Kupries  <andreask@activestate.com>
4151
4152        TIP#291 IMPLEMENTATION
4153
4154        * generic/tclBasic.c: Define tcl_platform element for pointerSize.
4155        * doc/tclvars.n:
4156
4157        * win/Makefile.in: Added installation instructions for the platform
4158        * win/makefile.vc: package. Added the platform package.
4159        * win/makefile.bc:
4160        * unix/Makefile.in:
4161
4162        * tests/platform.test:
4163        * tests/safe.test:
4164
4165        * library/platform/platform.tcl:
4166        * library/platform/shell.tcl:
4167        * library/platform/pkgIndex.tcl:
4168
4169        * doc/platform.n:
4170        * doc/platform_shell.n:
4171
41722006-12-05  Don Porter  <dgp@users.sourceforge.net>
4173
4174        * generic/tclPkg.c:     When no requirements are supplied to a
4175        * tests/pkg.test:       [package require $pkg] and [package unknown]
4176        is invoked to find a satisfying package, pass the requirement argument
4177        "0-" (which means all versions are acceptable). This permits a
4178        registered [package unknown] command to call [package vsatisfies
4179        $testVersion {*}$args] without any special handling of the empty $args
4180        case. This fixes/avoids a bug in [::tcl::tm::UnknownHandler] that was
4181        causing old TM versions to be provided in preference to newer TM
4182        versions. Thanks to Julian Noble for discovering the issue.
4183
41842006-12-04  Donal K. Fellows  <dkf@users.sf.net>
4185
4186        TIP#267 IMPLEMENTATION
4187
4188        * generic/tclIOCmd.c (Tcl_ExecObjCmd): Added -ignorestderr option,
4189        * tests/exec.test, doc/exec.n:         loosely from [Patch 1476191]
4190
41912006-12-04  Don Porter  <dgp@users.sourceforge.net>
4192
4193        * generic/tclCompExpr.c:        Added implementation for the
4194        CompileExprTree() routine that can produce expression bytecode
4195        directly from internal structures with no need to pass through the
4196        Tcl_Token array representation. Still disabled by default. #undef
4197        USE_EXPR_TOKENS to try it out.
4198
41992006-12-03  Don Porter  <dgp@users.sourceforge.net>
4200
4201        * generic/tclCompExpr.c:        Added expr parsing routines that
4202        produce a different set of internal structures representing the parsed
4203        expression, as well as routines that go on to convert those structures
4204        into the traditional Tcl_Token array format. Use of these routines is
4205        currently disabled. #undef PARSE_DIRECT_EXPR_TOKENS to enable them.
4206        These routines will only become really useful when more routines that
4207        compile directly from the new internal structures are completed.
4208
42092006-12-02  Donal K. Fellows  <dkf@users.sf.net>
4210
4211        * doc/file.n: Clarification of [file pathtype] docs. [Bug 1606454]
4212
42132006-12-01  Kevin B. Kenny       <kennykb@acm.org>
4214
4215        * libtommath/bn_mp_add.c:       Corrected the effects of a
4216        * libtommath/bn_mp_div.c:       bollixed 'cvs merge' operation
4217        * libtommath/bncore.c:          that inadvertently committed some
4218        * libtommath/tommath_class.h:   half-developed code.
4219
4220        TIP#299 IMPLEMENTATION
4221
4222        * doc/mathfunc.n:       Added isqrt() function to docs
4223        * generic/tclBasic.c:   Added isqrt() math function (ExprIsqrtFunc)
4224        * tests/expr.test (expr-47.*): Added tests for isqrt()
4225        * tests/info.test (info-20.2): Added isqrt() to expected math funcs.
4226
42272006-12-01  Don Porter  <dgp@users.sourceforge.net>
4228
4229        * tests/chan.test:      Correct timing sensitivity in new test. [Bug
4230        1606860]
4231
4232        TIP#287 IMPLEMENTATION
4233
4234        * doc/chan.n:           New subcommand [chan pending].
4235        * generic/tclBasic.c:   Thanks to Michael Cleverly for proposal
4236        * generic/tclInt.h:     and implementation.
4237        * generic/tclIOCmd.c:
4238        * library/init.tcl:
4239        * tests/chan.test:
4240        * tests/ioCmd.test:
4241
4242        TIP#298 IMPLEMENTATION
4243
4244        * generic/tcl.decls: Tcl_GetBignumAndClearObj -> Tcl_TakeBignumFromObj
4245        * generic/tclObj.c:
4246
4247        * generic/tclDecls.h:   make genstubs
4248        * generic/tclStubInit.c:
4249
4250        * generic/tclExecute.c: Update callers.
4251        * generic/tclMathOp.c:
4252
42532006-11-30  Kevin B. Kenny  <kennykb@acm.org>
4254
4255        * library/tzdata: Olson's tzdata2006p.
4256        * libtommath/bn_mp_sqrt.c: Fixed a bug where the initial approximation
4257        to the square root could be on the wrong side, causing failure of
4258        convergence.
4259
42602006-11-29  Don Porter  <dgp@users.sourceforge.net>
4261
4262        * generic/tclBasic.c (Tcl_AppendObjToErrorInfo):  Added
4263        Tcl_DecrRefCount() on the objPtr argument to plug memory leaks. This
4264        makes the routine a consumer, which makes it easiest to use.
4265
42662006-11-28  Andreas Kupries  <andreask@activestate.com>
4267
4268        * generic/tclBasic.c: TIP #280 implementation.
4269        * generic/tclCmdAH.c:
4270        * generic/tclCmdIL.c:
4271        * generic/tclCmdMZ.c:
4272        * generic/tclCompCmds.c:
4273        * generic/tclCompExpr.c:
4274        * generic/tclCompile.c:
4275        * generic/tclCompile.h:
4276        * generic/tclExecute.c:
4277        * generic/tclIOUtil.c:
4278        * generic/tclInt.h:
4279        * generic/tclInterp.c:
4280        * generic/tclNamesp.c:
4281        * generic/tclObj.c:
4282        * generic/tclProc.c:
4283        * tests/compile.test:
4284        * tests/info.test:
4285        * tests/platform.test:
4286        * tests/safe.test:
4287
42882006-11-27  Kevin B. Kenny  <kennykb@acm.org>
4289
4290        * unix/tclUnixChan.c (TclUnixWaitForFile):
4291        * tests/event.test (event-14.*): Corrected a bug where
4292        TclUnixWaitForFile would present select() with the wrong mask on an
4293        LP64 machine if a fd number exceeds 32. Thanks to Jean-Luc Fontaine
4294        for reporting and diagnosing [Bug 1602208].
4295
42962006-11-27  Don Porter  <dgp@users.sourceforge.net>
4297
4298        * generic/tclExecute.c (TclIncrObj):    Correct failure to detect
4299        floating-point increment values. Thanks to William Coleda [Bug
4300        1602991]
4301
43022006-11-26  Donal K. Fellows  <dkf@users.sf.net>
4303
4304        * tests/mathop.test, doc/mathop.n: More bits and pieces of the TIP#174
4305        implementation. Note that the test suite is not yet complete.
4306
43072006-11-26  Daniel Steffen  <das@users.sourceforge.net>
4308
4309        * unix/tcl.m4 (Linux): --enable-64bit support.  [Patch 1597389]
4310        * unix/configure: autoconf-2.59                 [Bug 1230558]
4311
43122006-11-25  Donal K. Fellows  <dkf@users.sf.net>
4313
4314        TIP#174 IMPLEMENTATION
4315
4316        * generic/tclMathOp.c (new file): Completed the implementation of the
4317        interpreted versions of all the tcl::mathop commands. Moved to a new
4318        file to make tclCompCmds.c more focused in purpose.
4319
43202006-11-23  Donal K. Fellows  <dkf@users.sf.net>
4321
4322        * generic/tclCompCmds.c (Tcl*OpCmd, TclCompile*OpCmd):
4323        * generic/tclBasic.c (Tcl_CreateInterp): Partial implementation of
4324        TIP#174; the commands are compiled, but (mostly) not interpreted yet.
4325
43262006-11-22  Donal K. Fellows  <dkf@users.sf.net>
4327
4328        TIP#269 IMPLEMENTATION
4329
4330        * generic/tclCmdMZ.c (Tcl_StringObjCmd): Implementation of the [string
4331        * tests/string.test (string-25.*):       is list] command, based on
4332        * doc/string.n:                          work by Joe Mistachkin, with
4333        enhancements by Donal Fellows for better failindex behaviour.
4334
43352006-11-22  Don Porter  <dgp@users.sourceforge.net>
4336
4337        * tools/genWinImage.tcl (removed):      Removed two files used in
4338        * win/README.binary (removed):  production of binary distributions
4339        for Windows, a task we no longer perform. [Bug 1476980]
4340        * generic/tcl.h:        Remove mention of win/README.binary in comment
4341
4342        * generic/tcl.h:        Moved TCL_REG_BOSONLY #define from tcl.h to
4343        * generic/tclInt.h:     tclInt.h. Only know user is Expect, which
4344        already #include's tclInt.h. No need to continue greater exposure.
4345        [Bug 926500]
4346
43472006-11-20  Donal K. Fellows  <dkf@users.sf.net>
4348
4349        * generic/tclBasic.c (Tcl_CreateInterp, TclHideUnsafeCommands):
4350        * library/init.tcl: Refactored the [chan] command's guts so that it
4351        does not use aliases to global commands, making the code more robust.
4352
43532006-11-17  Don Porter  <dgp@users.sourceforge.net>
4354
4355        * generic/tclExecute.c (INST_EXPON):    Corrected crash on
4356        [expr 2**(1<<63)]. Was operating on cleared bignum Tcl_Obj.
4357
43582006-11-16  Donal K. Fellows  <dkf@users.sf.net>
4359
4360        * doc/apply.n, doc/chan.n: Added examples.
4361
43622006-11-15  Don Porter  <dgp@users.sourceforge.net>
4363
4364        TIP#270 IMPLEMENTATION
4365
4366        * generic/tcl.decls:            New public routines Tcl_ObjPrintf,
4367        * generic/tclStringObj.c:       Tcl_AppendObjToErrorInfo, Tcl_Format,
4368        * generic/tclInt.h:             Tcl_AppendLimitedToObj,
4369        Tcl_AppendFormatToObj and Tcl_AppendPrintfToObj. Former internal
4370        versions removed.
4371
4372        * generic/tclDecls.h:           make genstubs
4373        * generic/tclStubInit.c:
4374
4375        * generic/tclBasic.c:           Updated callers.
4376        * generic/tclCkalloc.c:
4377        * generic/tclCmdAH.c:
4378        * generic/tclCmdIL.c:
4379        * generic/tclCmdMZ.c:
4380        * generic/tclCompExpr.c:
4381        * generic/tclCompile.c:
4382        * generic/tclDictObj.c:
4383        * generic/tclExecute.c:
4384        * generic/tclIORChan.c:
4385        * generic/tclIOUtil.c:
4386        * generic/tclMain.c:
4387        * generic/tclNamesp.c:
4388        * generic/tclObj.c:
4389        * generic/tclPkg.c:
4390        * generic/tclProc.c:
4391        * generic/tclStrToD.c:
4392        * generic/tclTimer.c:
4393        * generic/tclUtil.c:
4394        * unix/tclUnixFCmd.c:
4395
4396        * tools/genStubs.tcl:   Updated script to no longer produce the
4397        _ANSI_ARGS_ wrapper in generated declarations. Also revised to accept
4398        variadic prototypes with more than one fixed argument. (This is
4399        possible since TCL_VARARGS and its limitations are no longer in use).
4400        * generic/tcl.h:        Some reordering so that macro definitions do
4401        not interfere with the now _ANSI_ARGS_-less stub declarations.
4402
4403        * generic/tclDecls.h:           make genstubs
4404        * generic/tclIntDecls.h:
4405        * generic/tclIntPlatDecls.h:
4406        * generic/tclPlatDecls.h:
4407        * generic/tclTomMathDecls.h:
4408
44092006-11-15  Donal K. Fellows  <dkf@users.sf.net>
4410
4411        * doc/ChnlStack.3, doc/CrtObjCmd.3, doc/GetIndex.3, doc/OpenTcp.3:
4412        * doc/chan.n, doc/fconfigure.n, doc/fcopy.n, doc/foreach.n:
4413        * doc/history.n, doc/http.n, doc/library.n, doc/lindex.n:
4414        * doc/lrepeat.n, doc/lreverse.n, doc/pkgMkIndex.n, doc/re_syntax.n:
4415        Convert \fP to \fR so that man-page scrapers have an easier time.
4416
44172006-11-14  Don Porter  <dgp@users.sourceforge.net>
4418
4419        TIP#261 IMPLEMENTATION
4420
4421        * generic/tclNamesp.c:  [namespace import] with 0 arguments
4422        introspects the list of imported commands.
4423
44242006-11-13  Kevin B. Kenny  <kennykb@users.sourceforge.net>
4425
4426        * generic/tclThreadStorage.c (Tcl_InitThreadStorage):
4427        (Tcl_FinalizeThreadStorage): Silence a compiler warning about
4428        presenting a volatile pointer to 'memset'.
4429
44302006-11-13  Don Porter  <dgp@users.sourceforge.net>
4431
4432        * generic/tclIO.c:      When [gets] on a binary channel needs to use
4433        the "iso8859-1" encoding, save a copy of that encoding per-thread to
4434        avoid repeated freeing and re-loading of it from the file system. This
4435        replaces the cached copy of this encoding that the platform
4436        initialization code used to keep in pre-8.5 releases.
4437
44382006-11-13  Daniel Steffen  <das@users.sourceforge.net>
4439
4440        * generic/tclCompExpr.c:        Fix gcc warnings about 'cast to/from
4441        * generic/tclEncoding.c:        pointer from/to integer of different
4442        * generic/tclEvent.c:           size' on 64-bit platforms by casting
4443        * generic/tclExecute.c:         to intermediate types
4444        * generic/tclHash.c:            intptr_t/uintptr_t via new PTR2INT(),
4445        * generic/tclIO.c:              INT2PTR(), PTR2UINT() and UINT2PTR()
4446        * generic/tclInt.h:             macros. [Patch 1592791]
4447        * generic/tclProc.c:
4448        * generic/tclTest.c:
4449        * generic/tclThreadStorage.c:
4450        * generic/tclTimer.c:
4451        * generic/tclUtil.c:
4452        * unix/configure.in:
4453        * unix/tclUnixChan.c:
4454        * unix/tclUnixPipe.c:
4455        * unix/tclUnixPort.h:
4456        * unix/tclUnixTest.c:
4457        * unix/tclUnixThrd.c:
4458
4459        * unix/configure: autoconf-2.59
4460        * unix/tclConfig.h.in: autoheader-2.59
4461
44622006-11-12  Donal K. Fellows  <dkf@users.sf.net>
4463
4464        * generic/tclInt.h, generic/tclInt.decls: Transfer TclPtrMakeUpvar and
4465        TclObjLookupVar to the internal stubs table.
4466
44672006-11-10  Daniel Steffen  <das@users.sourceforge.net>
4468
4469        * tests/fCmd.test (fCmd-6.26): fix failure when env(HOME) path
4470        contains symlinks.
4471
4472        * macosx/Tcl.xcodeproj/project.pbxproj: remove tclParseExpr.c; when
4473        running testsuite from inside Xcdoe, skip stack-3.1 (it only fails
4474        under those circumstances).
4475
4476        * unix/tcl.m4 (Darwin): suppress linker arch warnings when building
4477        universal for both 32 & 64 bit and no 64bit CoreFoundation is
4478        available; sync with tk tcl.m4 change.
4479        * unix/configure.in: whitespace.
4480        * unix/configure: autoconf-2.59
4481
44822006-11-09  Don Porter  <dgp@users.sourceforge.net>
4483
4484        * generic/tclParseExpr.c (removed):     Moved all the code of
4485        * generic/tclCompExpr.c:        tclParseExpr.c into tclCompExpr.c.
4486        * unix/Makefile.in:     This sets the stage for expr compiling to work
4487        * win/Makefile.in:      directly with the full parse tree structures,
4488        * win/makefile.bc:      and not have to pass through the information
4489        * win/makefile.vc:      lossy format of an array of Tcl_Tokens.
4490        * win/tcl.dsp:
4491
44922006-11-09  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
4493
4494        TIP#272 IMPLEMENTATION
4495
4496        * generic/tclCmdMZ.c (Tcl_StringObjCmd):    Implementation of the
4497        * tests/string.test, tests/stringComp.test: [string reverse] command
4498        * doc/string.n:                             from TIP#272.
4499
4500        * generic/tclCmdIL.c (Tcl_LreverseObjCmd): Implementation of the
4501        * generic/tclBasic.c, generic/tclInt.h:    [lreverse] command from
4502        * tests/cmdIL.test (cmdIL-7.*):            TIP#272.
4503        * doc/lreverse.n:
4504
45052006-11-08  Donal K. Fellows  <dkf@users.sf.net>
4506
4507        * generic/tclIO.c, generic/tclPkg.c: Style & clarity rewrites.
4508
45092006-11-07  Andreas Kupries  <andreask@activestate.com>
4510
4511        * unix/tclUnixFCmd.c (CopyFile): Added code to fall back to a
4512        hardwired default block size should the filesystem report a bogus
4513        value. [Bug 1586470]
4514
45152006-11-04  Don Porter  <dgp@users.sourceforge.net>
4516
4517        * generic/tclStringObj.c:       Changed Tcl_ObjPrintf() response to an
4518        invalid format specifier string. No longer panics; now produces an
4519        error message as output.
4520
4521        TIP#274 IMPLEMENTATION
4522
4523        * generic/tclParseExpr.c:       Exponentiation operator is now right
4524        * tests/expr.test:              associative. [Patch 1556802]
4525
45262006-11-03  Miguel Sofer  <msofer@users.sf.net>
4527
4528        * generic/tclBasic.c (TEOVI): fix por possible leak of a Command in
4529        the presence of execution traces that delete it.
4530
4531        * generic/tclBasic.c (TEOVI):
4532        * tests/trace.test (trace-21.11): fix for [Bug 1590232], execution
4533        traces may cause a second command resolution in the wrong namespace.
4534
45352006-11-03  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
4536
4537        * tests/event.test (event-11.5):        Rewrote tests to stop Tcl from
4538        * tests/io.test (multiple tests):       opening sockets that are
4539        * tests/ioCmd.test (iocmd-15.1,16,17):  reachable from outside hosts
4540        * tests/iogt.test (__echo_srv__.tcl):   where not necessary. This is
4541        * tests/socket.test (multiple tests):   noticably annoying on some
4542        * tests/unixInit.test (unixInit-1.2):   systems (e.g., Windows).
4543
45442006-11-02  Daniel Steffen  <das@users.sourceforge.net>
4545
4546        * macosx/Tcl.xcodeproj/project.pbxproj: check autoconf/autoheader exit
4547        status and stop build if they fail.
4548
45492006-11-02  Jeff Hobbs  <jeffh@ActiveState.com>
4550
4551        * doc/ParseCmd.3, doc/Tcl.n, doc/eval.n, doc/exec.n:
4552        * doc/fconfigure.n, doc/interp.n, doc/unknown.n:
4553        * library/auto.tcl, library/init.tcl, library/package.tcl:
4554        * library/safe.tcl, library/tm.tcl, library/msgcat/msgcat.tcl:
4555        * tests/all.tcl, tests/basic.test, tests/cmdInfo.test:
4556        * tests/compile.test, tests/encoding.test, tests/execute.test:
4557        * tests/fCmd.test, tests/http.test, tests/init.test:
4558        * tests/interp.test, tests/io.test, tests/ioUtil.test:
4559        * tests/iogt.test, tests/namespace-old.test, tests/namespace.test:
4560        * tests/parse.test, tests/pkg.test, tests/pkgMkIndex.test:
4561        * tests/proc.test, tests/reg.test, tests/trace.test:
4562        * tests/upvar.test, tests/winConsole.test, tests/winFCmd.test:
4563        * tools/tclZIC.tcl:
4564        * generic/tclParse.c (Tcl_ParseCommand): Replace {expand} with {*}
4565        officially (TIP #293). Leave -DALLOW_EXPAND=0|1 option to keep
4566        {expand} syntax for transition users. [Bug 1589629]
4567
45682006-11-02  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
4569
4570        * generic/tclBasic.c, generic/tclInterp.c, generic/tclProc.c: Silence
4571        warnings from gcc over signed/unsigned and TclStackAlloc().
4572        * generic/tclCmdMZ.c: Update to more compact and clearer coding style.
4573
45742006-11-02  Don Porter  <dgp@users.sourceforge.net>
4575
4576        * generic/tclCmdAH.c:   Further revisions to produce the routines
4577        * generic/tclInt.h:     TclFormat() and TclAppendFormatToObj() that
4578        * generic/tclNamesp.c:  accept (objc, objv) arguments rather than
4579        * generic/tclStringObj.c:       any varargs stuff.
4580
4581        * generic/tclBasic.c:   Further revised TclAppendPrintToObj() and
4582        * generic/tclCkalloc.c: TclObjPrintf() routines to panic when unable
4583        * generic/tclCmdAH.c:   to complete their formatting operations,
4584        * generic/tclCmdIL.c:   rather than report an error message. This
4585        * generic/tclCmdMZ.c:   means an interp argument for error message
4586        * generic/tclDictObj.c: recording is no longer needed, further
4587        * generic/tclExecute.c: simplifying the interface for callers.
4588        * generic/tclIORChan.c:
4589        * generic/tclIOUtil.c:
4590        * generic/tclInt.h:
4591        * generic/tclMain.c:
4592        * generic/tclNamesp.c:
4593        * generic/tclParseExpr.c:
4594        * generic/tclPkg.c:
4595        * generic/tclProc.c:
4596        * generic/tclStringObj.c:
4597        * generic/tclTimer.c:
4598        * generic/tclUtil.c:
4599        * unix/tclUnixFCmd.c:
4600
46012006-11-02  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
4602
4603        * tests/winPipe.test (winpipe-4.[2345]): Made robust when run in
4604        directory with spaces in its name.
4605
4606        * generic/tclCmdAH.c: Clean up uses of cast NULLs.
4607
4608        * generic/tclInterp.c (AliasObjCmd): Added more explanatory comments.
4609
4610        * generic/tclBasic.c (TclEvalObjvInternal): Rewrote so that comments
4611        are relevant and informative once more. Also made the unknown handler
4612        processing use the Tcl execution stack for working space, and not the
4613        general heap.
4614
46152006-11-01  Daniel Steffen  <das@users.sourceforge.net>
4616
4617        * unix/tclUnixPort.h: ensure MODULE_SCOPE is defined before use, so
4618        that tclPort.h can once again be included without tclInt.h.
4619
4620        * generic/tclEnv.c (Darwin): mark _environ symbol as unexported even
4621        when MODULE_SCOPE != __private_extern__.
4622
46232006-10-31  Don Porter  <dgp@users.sourceforge.net>
4624
4625        * generic/tclBasic.c:   Refactored and renamed the routines
4626        * generic/tclCkalloc.c: TclObjPrintf, TclFormatObj, and
4627        * generic/tclCmdAH.c:   TclFormatToErrorInfo to a new set of routines
4628        * generic/tclCmdIL.c:   TclAppendPrintfToObj, TclAppendFormatToObj,
4629        * generic/tclCmdMZ.c:   TclObjPrintf, and TclObjFormat, with the
4630        * generic/tclDictObj.c: intent of making the latter list, plus
4631        * generic/tclExecute.c: TclAppendLimitedToObj and
4632        * generic/tclIORChan.c: TclAppendObjToErrorInfo, public via a revised
4633        * generic/tclIOUtil.c:  TIP 270.
4634        * generic/tclInt.h:
4635        * generic/tclMain.c:
4636        * generic/tclNamesp.c:
4637        * generic/tclParseExpr.c:
4638        * generic/tclPkg.c:
4639        * generic/tclProc.c:
4640        * generic/tclStringObj.c:
4641        * generic/tclTimer.c:
4642        * generic/tclUtil.c:
4643        * unix/tclUnixFCmd.c:
4644
46452006-10-31  Miguel Sofer  <msofer@users.sf.net>
4646
4647        * generic/tclBasic.c, generic/tcl.h, generic/tclInterp.c:
4648        * generic/tclNamesp.c: removing the flag bit TCL_EVAL_NOREWRITE, the
4649        last remnant of the callObjc/v fiasco. It is not needed, as it is now
4650        always set and checked or'ed with TCL_EVAL_INVOKE.
4651
46522006-10-31  Pat Thoyts  <patthoyts@users.sourceforge.net>
4653
4654        * win/rules.vc: Fix for [Bug 1582769] - options conflict with VC2003.
4655
46562006-10-31  Donal K. Fellows  <dkf@users.sf.net>
4657
4658        * generic/tclBasic.c, generic/tclNamesp.c, generic/tclProc.c:
4659        * generic/tclInt.h: Removed the callObjc and callObjv fields from the
4660        Interp structure. They did not function correctly and made other parts
4661        of the core amazingly complex, resulting in a substantive change to
4662        [info level] behaviour. [Bug 1587618]
4663        * library/clock.tcl: Removed use of [info level 0] for calculating the
4664        command name as used by the user and replace with a literal. What's
4665        there now is sucky, but at least appears to be right to most users.
4666        * tests/namespace.test (namespace-42.7,namespace-47.1): Reverted
4667        changes to these tests.
4668        * tests/info.test (info-9.11,info-9.12): Added knownBug constraint
4669        since these tests require a different behaviour of [info level] than
4670        is possible because of other dependencies.
4671
46722006-10-30  Jeff Hobbs  <jeffh@ActiveState.com>
4673
4674        * tools/tcltk-man2html.tcl (option-toc): handle any kind of options
4675        defined toc section (needed for ttk docs)
4676
46772006-10-30  Miguel Sofer  <msofer@users.sf.net>
4678
4679        * generic/tclBasic.c (TEOVI): insured that the interp's callObjc/v
4680        fields are restored after traces run, as they be spoiled. This was
4681        causing a segfault in tcllib's profiler tests.
4682
46832006-10-30  Don Porter  <dgp@users.sourceforge.net>
4684
4685        * generic/tclExecute.c (INST_MOD): Corrected improper testing of the
4686        * tests/expr.test:                 sign of bignums when applying Tcl's
4687        division rules. Thanks to Peter Spjuth. [Bug 1585704]
4688
46892006-10-29  Miguel Sofer  <msofer@users.sf.net>
4690
4691        * generic/tclNamesp.c (EnsembleImplementationCmd):
4692        * tests/namespace.test (47.7-8): reverted a wrong "optimisation" that
4693        completely broke snit; added two tests.
4694
46952006-10-28  Donal K. Fellows  <dkf@users.sf.net>
4696
4697        * generic/tclProc.c (ObjInterpProcEx, TclObjInterpProcCore): Split the
4698        core of procedures to make it easier to build procedure-like code
4699        without going through horrible contortions. This is the last critical
4700        component to make advanced OO systems workable as simple loadable
4701        extensions. TOIPC is now in the internal stub table.
4702        (MakeProcError, MakeLambdaError): Refactored ProcessProcResultCode to
4703        be simpler, some of which goes to TclObjInterpProcCore, and the rest
4704        of which is now in these far simpler routines which just do errorInfo
4705        stack generation for different types of procedure-like entity.
4706        * tests/apply.test (apply-5.1): Updated to expect the more informative
4707        form of message.
4708
47092006-10-27  Donal K. Fellows  <dkf@users.sf.net>
4710
4711        * generic/tclVar.c (HasLocalVars): New macro to make various bits and
4712        pieces cleaner.
4713
4714        * generic/tclNamesp.c (TclSetNsPath): Expose SetNsPath() through
4715        internal stubs table with semi-external name.
4716
4717        * generic/tclInt.h (CallFrame): Add a field for handling context data
4718        for extensions (like object systems) that should be tied to a call
4719        frame (and not a command or interpreter).
4720
4721        * generic/tclBasic.c (TclRenameCommand): Change to take CONST args;
4722        they were only ever used in a constant way anyway, so this appears to
4723        be a spot that was missed during TIP#27 work.
4724
47252006-10-26  Miguel Sofer  <msofer@users.sf.net>
4726
4727        * generic/tclProc.c (SetLambdaFromAny): minor change, eliminate
4728        redundant call to Tcl_GetString (thanks aku).
4729
4730        * generic/tclInterp.c (ApplyObjCmd):
4731        * generic/tclNamesp.c (EnsembleImplementationCmd): replaced ckalloc
4732        (heap) with TclStackAlloc (execution stack).
4733
47342006-10-24  Miguel Sofer  <msofer@users.sf.net>
4735
4736        * tests/info.test (info-9.11-12): tests for [Bug 1577492]
4737        * tests/apply.test (apply-4.3-5): tests for [Bug 1574835]
4738
4739        * generic/tclProc.c (ObjInterpProcEx): disable itcl hacks for calls
4740        from ApplyObjCmd (islambda==1), as they mess apply's error messages
4741        [Bug 1583266]
4742
47432006-10-23  Miguel Sofer  <msofer@users.sf.net>
4744
4745        * generic/tclProc.c (ApplyObjCmd): fix wrong#args for apply by using
4746        the ensemble rewrite engine. [Bug 1574835]
4747        * generic/tclInterp.c (AliasObjCmd): previous commit missed usage of
4748        TCL_EVAL_NOREWRITE for aliases.
4749
4750        * generic/tclBasic.c (TclEvalObjvInternal): removed redundant check
4751        for ensembles. [Bug 1577628]
4752
4753        * library/clock.tcl (format, scan): corrected wrong # args messages to
4754        * tests/clock.test (3.1, 34.1):     make use of the new rewrite
4755        capabilities of [info level]
4756
4757        * generic/tcl.h:           Lets TEOV update the iPtr->callObj[cv] new
4758        * generic/tclBasic.c:      fields, except when the flag bit
4759        * generic/tclInt.h:        TCL_EVAL_NOREWRITE is present. These values
4760        * generic/tclNamesp.c:     are used by Tcl_PushCallFrame to initialise
4761        * generic/tclProc.c:       the frame's obj[cv] fields, and allows
4762        * tests/namespace.test:    [info level] to know and use ensemble
4763        rewrites. [Bug 1577492]
4764
4765        ***POTENTIAL INCOMPATIBILITY***
4766        The return value from [info level 0] on interp alias calls is changed:
4767        previously returned the target command (including curried values), now
4768        returns the source - what was actually called.
4769
47702006-10-23  Miguel Sofer  <msofer@users.sf.net>
4771
4772        * generic/tcl.h:           Modified the Tcl call stack so there is
4773        * generic/tclBasic.c:      always a valid CallFrame, even at level 0
4774        * generic/tclCmdIL.c:      [Patch 1577278]. Most of the changes
4775        * generic/tclInt.h:        involve removing tests for a NULL
4776        * generic/tclNamesp.c:     iPtr->(var)framePtr. There is now a
4777        * generic/tclObj.c:        CallFrame pushed at interp creation with a
4778        * generic/tclProc.c:       pointer to it stored in iPtr->rootFramePtr.
4779        * generic/tclTrace.c:      A second unused field in Interp is
4780        * generic/tclVar.c:        hijacked to enable further functionality,
4781        currently unused (but with several FRQs depending on it).
4782
4783        ***POTENTIAL INCOMPATIBILITY***
4784        Any user that includes tclInt.h and needs to determine if it is
4785        running at level 0 should change (iPtr->varFramePtr == NULL) to
4786        (iPtr->varFramePtr == iPtr->rootFramePtr).
4787
47882006-10-23  Don Porter  <dgp@users.sourceforge.net>
4789
4790        * README:               Bump version number to 8.5a6
4791        * generic/tcl.h:
4792        * tools/tcl.wse.in:
4793        * unix/configure.in:
4794        * unix/tcl.spec:
4795        * win/README.binary:
4796        * win/configure.in:
4797
4798        * unix/configure:       autoconf-2.59
4799        * win/configure:
4800
48012006-10-21  Miguel Sofer  <msofer@users.sf.net>
4802
4803        * generic/tcl.h, generic/tclHash.c: Tcl_FindHashEntry now calls
4804        Tcl_CreateHashEntry with a newPtr set to NULL: this would have caused
4805        a segfault previously and eliminates duplicated code. A macro has been
4806        added to tcl.h (only used when TCL_PRESERVE_BINARY_COMPATABALITY is
4807        not set - i.e., not by default).
4808
48092006-10-20  Reinhard Max  <max@tclers.tk>
4810
4811        * unix/configure.in: Added autodetection for OS-supplied timezone
4812        * unix/Makefile.in:  files and configure switches to override the
4813        * unix/configure:    detected default.
4814
48152006-10-20  Daniel Steffen  <das@users.sourceforge.net>
4816
4817        *** 8.5a5 TAGGED FOR RELEASE ***
4818
4819        * tools/tcltk-man2html.tcl: add support for alpha & beta versions to
4820        useversion glob pattern. [Bug 1579941]
4821
48222006-10-18  Don Porter  <dgp@users.sourceforge.net>
4823
4824        * changes:              8.5a5 release date set
4825
4826        * doc/Encoding.3:       Missing doc updates (mostly Table of
4827        * doc/Ensemble.3:       Contents) exposed by `make checkdoc`
4828        * doc/FileSystem.3:
4829        * doc/GetTime.3:
4830        * doc/PkgRequire.3:
4831
48322006-10-17  Miguel Sofer  <msofer@users.sf.net>
4833
4834        * generic/tclInterp.c (ApplyObjCmd): fixed bad error in 2006-10-12
4835        commit: interp released too early. Spotted by mistachkin.
4836
48372006-10-16  Miguel Sofer  <msofer@users.sf.net>
4838
4839        * tclProc.c (SetLambdaFromAny):
4840        * tests/apply.test (9.1-9.2): plugged intrep leak [Bug 1578454],
4841        found by mjanssen.
4842
48432006-10-16  Andreas Kupries  <andreask@activestate.com>
4844
4845        * generic/tclBasic.c: Moved TIP#219 cleanup to DeleteInterpProc.
4846
48472006-10-16  Daniel Steffen  <das@users.sourceforge.net>
4848
4849        * changes: updates for 8.5a5 release.
4850
4851        * unix/tclUnixThrd.c (TclpThreadGetStackSize): Darwin: fix for main
4852        thread, where pthread_get_stacksize_np() returns incorrect info.
4853
4854        * macosx/GNUmakefile: don't redo prebinding of non-prebound binaires.
4855
48562006-10-16  Don Porter  <dgp@users.sourceforge.net>
4857
4858        * generic/tclPkg.c (ExactRequirement):  Plugged memory leak. Also
4859        changed Tcl_Alloc()/Tcl_Free() calls to ckalloc()/ckfree() for easier
4860        memory debugging in the future. [Bug 1568373]
4861
4862        * library/tcltest/tcltest.tcl:  Revise tcltest bump to 2.3a1.
4863        * library/tcltest/pkgIndex.tcl: This permits more features to be
4864        * unix/Makefile.in:     added to tcltest before we reach version 2.3.0
4865        * win/Makefile.in:      best timed to match the release of Tcl 8.5.0.
4866        * win/makefile.vc:      This also serves as a demo of TIP 268 features
4867
48682006-10-13  Colin McCormack <coldstore@users.sf.net>
4869
4870        * win/tclWinFile.c: corrected erroneous attempt to protect against
4871        NULL return from Tcl_FSGetNormalizedPath per [Bug 1548263] causing
4872        [Bug 1575837].
4873        * win/tclWinFile.c: alfredd supplied patch to fix [Bug 1575837]
4874
48752006-10-13  Daniel Steffen  <das@users.sourceforge.net>
4876
4877        * unix/tclUnixThrd.c (TclpThreadGetStackSize): on Darwin, use
4878        * unix/tcl.m4: pthread_get_stacksize_np() API to get thread stack size
4879        * unix/configure: autoconf-2.59
4880        * unix/tclConfig.h.in: autoheader-2.59
4881
48822006-10-12  Miguel Sofer  <msofer@users.sf.net>
4883
4884        * generic/tclInterp.c (ApplyObjCmd):
4885        * tests/interp.test (interp-14.5-10): made [interp alias] use the
4886        ensemble rewrite machinery to produce better error messages [Bug
4887        1576006]
4888
48892006-10-12  David Gravereaux <davygrvy@pobox.com>
4890
4891        * win/nmakehlp.c: Replaced all wnsprintf() calls with snprintf().
4892        wnsprintf was not in my shwlapi header file (VC++6)
4893
48942006-10-11  Don Porter  <dgp@users.sourceforge.net>
4895
4896        * generic/tclPkg.c (Tcl_PackageRequireEx):      Corrected crash when
4897        argument version=NULL passed in.
4898
48992006-10-10  Don Porter  <dgp@users.sourceforge.net>
4900
4901        * changes:      Updates for 8.5a5 release.
4902
4903        * generic/tclNamespace.c (TclTeardownNamespace):  After the
4904        commandPathSourceList of a namespace is cleared, set the
4905        commandPathSourceList to NULL so we don't try to walk the list a
4906        second time, possibly after it is freed. [Bug 1566526]
4907        * tests/namespace.test (namespace-51.16):       Added test.
4908
49092006-10-09  Miguel Sofer  <msofer@users.sf.net>
4910
4911        * doc/UpVar.3: brough the docs in accordance to the code. Ever since
4912        8.0, Tcl_UpVar(2)? accepts TCL_NAMESPACE_ONLY as a flag value, and
4913        var-3.4 tests for proper behaviour. The docs only allowed 0 and
4914        TCL_GLOBAL_ONLY. [Bug 1574099]
4915
49162006-10-09  Miguel Sofer  <msofer@users.sf.net>
4917
4918        * tests/*.test: updated all tests to refer explicitly to the global
4919        variables ::errorInfo, ::errorCode, ::env and ::tcl_platform: many
4920        were relying on the alternative lookup in the global namespace, that
4921        feature is tested specifically in namespace and variable tests.
4922
4923        The modified testfiles are: apply.test, basic.test, case.test,
4924        cmdIL.test, cmdMZ.test, compExpr-old.test, error.test, eval.test,
4925        event.test, expr.test, fileSystem.test, for.test, http.test, if.test,
4926        incr-old.test, incr.test, interp.test, io.test, ioCmd.test, load.test,
4927        misc.test, namespace.test, parse.test, parseOld.test, pkg.test,
4928        proc-old.test, set.test, switch.test, tcltest.test, thread.test,
4929        var.test, while-old.test, while.test.
4930
49312006-10-06  Pat Thoyts  <patthoyts@users.sourceforge.net>
4932
4933        * win/rules.vc: [Bug 1571954] avoid /RTCc flag with MSVC8
4934
49352006-10-06  Pat Thoyts  <patthoyts@users.sourceforge.net>
4936
4937        * doc/binary.n:        TIP #275: Support unsigned values in binary
4938        * generic/tclBinary.c: command. Tests and documentation updated.
4939        * tests/binary.test:
4940
49412006-10-05  Andreas Kupries  <andreask@activestate.com>
4942
4943        * library/tm.tcl: Fixed bug in TIP #189 implementation, now allowing
4944        '_' in module names.
4945
49462006-10-05  Jeff Hobbs  <jeffh@ActiveState.com>
4947
4948        * library/http/http.tcl (http::geturl): only do geturl url rfc 3986
4949        validity checking if $::http::strict is true (default true for 8.5).
4950        [Bug 1560506]
4951
4952        * generic/tcl.h: note limitation on changing Tcl_UniChar size
4953        * generic/tclEncoding.c (UtfToUnicodeProc, UnicodeToUtfProc):
4954        * tests/encoding.test (encoding-16.1): fix alignment issues in
4955        unicode <> utf conversion procs. [Bug 1122671]
4956
49572006-10-05  Miguel Sofer  <msofer@users.sf.net>
4958
4959        * generic/tclVar.c (Tcl_LappendObjCmd):
4960        * tests/append.test(4.21-22): fix for longstanding [Bug 1570718],
4961        lappending nothing to non-list. Reported by lvirden
4962
49632006-10-04  Kevin B. Kenny  <kennykb@acm.org>
4964
4965        * tzdata/: Olson's tzdata2006m.
4966
49672006-10-01  Kevin B. Kenny  <kennykb@acm.org>
4968
4969        * tests/clock.test (clock-49.2): Removed a locale dependency that
4970        caused a spurious failure in the German locale. [Bug 1567956]
4971
49722006-10-01  Miguel Sofer  <msofer@users.sf.net>
4973
4974        * doc/Eval.3 (TclEvalObjv): added note on refCount management for the
4975        elements of objv. [Bug 730244]
4976
49772006-10-01  Pat Thoyts  <patthoyts@users.sourceforge.net>
4978
4979        * win/tclWinFile.c: Handle possible missing define.
4980
4981        * win/tclWinFile.c (TclpUtime): [Bug 1420432] file mtime fails for
4982        * tests/cmdAH.test:             directories on windows
4983
4984        * tests/winFile.test: Handle Msys environment a little differently in
4985        getuser function. [Bug 1567956]
4986
49872006-09-30  Miguel Sofer  <msofer@users.sf.net>
4988
4989        * generic/tclUtil.c (Tcl_SplitList): optimisation, [Patch 1344747] by
4990        dgp.
4991
4992        * generic/tclInt.decls:
4993        * generic/tclInt.h:
4994        * generic/tclIntDecls.h:
4995        * generic/tclObj.c:
4996        * generic/tclStubInit.c: added an internal function TclObjBeingDeleted
4997        to provide info as to the reason for the loss of an internal rep. [FR
4998        1512138]
4999
5000        * generic/tclCompile.c:
5001        * generic/tclHistory.c:
5002        * generic/tclInt.h:
5003        * generic/tclProc.c: made Tcl_RecordAndEvalObj not call "history" if
5004        it has been redefined to an empty proc, in order to reduce the noise
5005        when debugging [FR 1190441]. Moved TclCompileNoOp from tclProc.c to
5006        tclCompile.c
5007
50082006-09-28  Andreas Kupries  <andreask@activestate.com>
5009
5010        * generic/tclPkg.c (CompareVersions): Bugfix. Check string lengths
5011        * tests/pkg.test: before comparison. The shorter string is the smaller
5012        number. Added testcases as well. Interestingly all existing test cases
5013        for vcompare compared numbers of the same length with each other. [Bug
5014        1563836]
5015
50162006-09-28  Miguel Sofer  <msofer@users.sf.net>
5017
5018        * generic/tclIO.c (Tcl_GetsObj): added two test'n'panic guards for
5019        possible NULL derefs, [Bug 1566382] and coverity #33.
5020
50212006-09-27  Don Porter  <dgp@users.sourceforge.net>
5022
5023        * generic/tclExecute.c: Corrected error in INST_LSHIFT in the
5024        * tests/expr.test:      calculation done to determine whether a shift
5025        in the (long int) type is possible. The calculation had literal value
5026        "1" where it needed a value "1L" to compute the correct result. Error
5027        detected via testing with the math::bigfloat package [Bug 1567222]
5028
5029        * generic/tclPkg.c (CompareVersion):    Flatten strcmp() results to
5030        {-1, 0, 1} to match expectations of CompareVersion() callers.
5031
50322006-09-27  Miguel Sofer  <msofer@users.sf.net>
5033
5034        * generic/regc_color.c (singleton):
5035        * generic/regc_cvec.c (addmcce):
5036        * generic/regcomp.c (compile, dovec): the static function addmcce does
5037        nothing when called with two NULL pointers; the only call is by
5038        compile with two NULL pointers (regcomp.c #includes regc_cvec.c).
5039        Large parts (all?) the code for mcce (multi character collating
5040        element) that we do not use is ifdef'ed out with the macro
5041        REGEXP_MCCE_ENABLE.
5042        This silences coverity bugs 7, 16, 80
5043
5044        * generic/regc_color.c (uncolorchain):
5045        * generic/regc_nfa.c (freearc): changed tests and asserts to
5046        equivalent formulation, designed to avoid an explicit comparison to
5047        NULL and satisfy coverity that 6 and 9 are not bugs.
5048
50492006-09-27  Andreas Kupries  <andreask@activestate.com>
5050
5051        * tests/pkg.test: Added test for version comparison at the 32bit
5052        boundary. [Bug 1563836]
5053
5054        * generic/tclPkg.c: Rewrote CompareVersion to perform string
5055        comparison instead of numeric. This breaks through the 32bit limit on
5056        version numbers. See code for details (handling of leading zeros,
5057        signs, etc.). un-CONSTed some arguments of CompareVersions,
5058        RequirementSatisfied, and AllRequirementsSatisfied. The new compare
5059        modifies the string (temporary string terminators). All callers use
5060        heap-allocated ver-intreps, so we are good with that. [Bug 1563836]
5061
50622006-09-27  Miguel Sofer  <msofer@users.sf.net>
5063
5064        * generic/tclFileName.c (TclGlob): added a panic for a call with
5065        TCL_GLOBMODE_TAILS and pathPrefix==NULL. This would cause a segfault,
5066        as found by coverity #26.
5067
50682006-09-26  Kevin B. Kenny  <kennykb@acm.org>
5069
5070        * doc/Encoding.3:        Added covariant 'const' qualifier for the
5071        * generic/tcl.decls:     Tcl_EncodingType argument to
5072        * generic/tclEncoding.c: Tcl_CreateEncoding. [Further TIP#27 work.]
5073        * generic/tclDecls.h:    Reran 'make genstubs'.
5074
50752006-09-26  Pat Thoyts  <patthoyts@users.sourceforge.net>
5076
5077        * win/makefile.vc:  Additional compiler flags and amd64 support.
5078        * win/nmakehlp.c:
5079        * win/rules.vc:
5080
50812006-09-26  Don Porter  <dgp@users.sourceforge.net>
5082
5083        * generic/tcl.h:        As 2006-09-22 commit from Donal K. Fellows
5084        demonstrates, "#define NULL 0" is just wrong, and as a quotable chat
5085        figure observed, "If NULL isn't defined, we're not using a C compiler"
5086        Improper fallback definition of NULL removed.
5087
50882006-09-25  Pat Thoyts  <patthoyts@users.sourceforge.net>
5089
5090        * generic/tcl.h:        More fixing which struct stat to refer to.
5091        * generic/tclGetDate.y: Some casts from time_t to int required.
5092        * generic/tclTimer.c:   Tcl_Time structure members are longs.
5093        * win/makefile.vc:      Support for varying compiler options
5094        * win/rules.vc:         and build to platform-specific subdirs.
5095
50962006-09-25  Andreas Kupries  <andreask@activestate.com>
5097
5098        * generic/tclIO.c (Tcl_StackChannel): Fixed [Bug 1564642], aka
5099        coverity #51. Extended loop condition, added checking for NULL to
5100        prevent seg.fault.
5101
51022006-09-25  Andreas Kupries  <andreask@activestate.com>
5103
5104        * doc/package.n: Fixed nits reported by Daniel Steffen in the TIP#268
5105        changes.
5106
51072006-09-25  Kevin B. Kenny   <kennykb@acm.org>
5108
5109        * generic/tclNotify.c (Tcl_DeleteEvents): Simplified the code in hopes
5110        of making the invariants clearer and proving to Coverity that the
5111        event queue memory is managed correctly.
5112
51132006-09-25  Donal K. Fellows  <dkf@users.sf.net>
5114
5115        * generic/tclNotify.c (Tcl_DeleteEvents): Make it clear what happens
5116        when the event queue is mismanaged. [Bug 1564677], coverity bug #10.
5117
51182006-09-24  Miguel Sofer  <msofer@users.sf.net>
5119
5120        * generic/tclParse.c (Tcl_ParseCommand): also return an error if
5121        start==NULL and numBytes<0. This is coverity's bug #20
5122
5123        * generic/tclStringObj.c (STRING_SIZE): fix allocation for 0-length
5124        strings. This is coverity's bugs #54-5
5125
51262006-09-22  Andreas Kupries  <andreask@activestate.com>
5127
5128        * generic/tclInt.h: Moved TIP#268's field 'packagePrefer' to the end
5129        of the structure, for better backward compatibility.
5130
51312006-09-22  Andreas Kupries  <andreask@activestate.com>
5132
5133        TIP#268 IMPLEMENTATION
5134
5135        * generic/tclDecls.h:    Regenerated from tcl.decls.
5136        * generic/tclStubInit.c:
5137
5138        * doc/PkgRequire.3: Documentation of extended API, extended testsuite.
5139        * doc/package.n:
5140        * tests/pkg.test:
5141
5142        * generic/tcl.decls: Implementation.
5143        * generic/tclBasic.c:
5144        * generic/tclConfig.c:
5145        * generic/tclInt.h:
5146        * generic/tclPkg.c:
5147        * generic/tclTest.c:
5148        * generic/tclTomMathInterface.c:
5149        * library/init.tcl:
5150        * library/package.tcl:
5151        * library/tm.tcl:
5152
51532006-09-22  Donal K. Fellows  <donal.k.fellows@man.ac.uk>
5154
5155        * generic/tclThreadTest.c (TclCreateThread): Use NULL instead of 0 as
5156        end-of-strings marker to Tcl_AppendResult; the difference matters on
5157        64-bit machines. [Bug 1562528]
5158
51592006-09-21  Don Porter  <dgp@users.sourceforge.net>
5160
5161        * generic/tclUtil.c:    Dropped ParseInteger() routine. TclParseNumber
5162        covers the task just fine.
5163
51642006-09-19  Donal K. Fellows  <dkf@users.sf.net>
5165
5166        * generic/tclEvent.c (Tcl_VwaitObjCmd): Rewrite so that an exceeded
5167        limit trapped in a vwait cannot cause a dangerous dangling trace.
5168
51692006-09-19  Don Porter  <dgp@users.sourceforge.net>
5170
5171        * generic/tclExecute.c (INST_EXPON):    Native type overflow detection
5172        * tests/expr.test:      was completely broken. Falling back on use of
5173        bignums for all non-trivial ** calculations until
5174        native-type-constrained special cases can be done carefully and
5175        correctly. [Bug 1561260]
5176
51772006-09-15  Jeff Hobbs  <jeffh@ActiveState.com>
5178
5179        * library/http/http.tcl:      Change " " -> "+" url encoding mapping
5180        * library/http/pkgIndex.tcl:  to " " -> "%20" as per RFC 3986.
5181        * tests/http.test (http-5.1): bump http to 2.5.3
5182        * unix/Makefile.in:
5183        * win/Makefile.in:
5184
51852006-09-12  Andreas Kupries  <andreask@activestate.com>
5186
5187        * unix/configure.in (HAVE_MTSAFE_GETHOST*): Modified to recognize
5188        HP-UX 11.00 and beyond as having mt-safe implementations of the
5189        gethost functions.
5190        * unix/configure: Regenerated, using autoconf 2.59
5191
5192        * unix/tclUnixCompat.c (PadBuffer): Fixed bug in calculation of the
5193        increment needed to align the pointer, and added documentation
5194        explaining why the macro is implemented as it is.
5195
51962006-09-11  Pat Thoyts  <patthoyts@users.sourceforge.net>
5197
5198        * win/rules.vc:    Updated to install http, tcltest and msgcat as
5199        * win/makefile.vc: Tcl Modules (as per Makefile.in).
5200        * win/makefile.vc: Added tommath_(super)class headers.
5201
52022006-09-11  Andreas Kupries  <andreask@activestate.com>
5203
5204        * unix/Makefile.in (install-libraries): Fixed typo tcltest 2.3.9 ->
5205        2.3.0.
5206
52072006-09-11  Daniel Steffen  <das@users.sourceforge.net>
5208
5209        * unix/tclUnixCompat.c: make compatLock static and only declare it
5210        when it will actually be used; #ifdef parts of TSD that are not always
5211        needed; adjust #ifdefs to cover all possible cases; fix whitespace.
5212
52132006-09-11  Andreas Kupries  <andreask@activestate.com>
5214
5215        * tests/msgcat.test: Bumped version in auxiliary files as well.
5216        * doc/msgcat.n:
5217
52182006-09-11  Kevin B. Kenny  <kennykb@acm.org>
5219
5220        * unix/Makefile.in:     Bumped msgcat version to 1.4.2 to be
5221        * win/Makefile.in:      consistent with dgp's commits of 2006-09-10.
5222
52232006-09-11  Don Porter  <dgp@users.sourceforge.net>
5224
5225        * library/msgcat/msgcat.tcl:    Removed some unneeded [uplevel]s.
5226
52272006-09-10  Don Porter  <dgp@users.sourceforge.net>
5228
5229        * generic/tclExecute.c:         Corrected INST_EXPON flaw that treated
5230        * tests/expr.test:              $x**1 as $x**3. [Bug 1555371]
5231
5232        * doc/tcltest.n:                Bump to version tcltest 2.3.0 to
5233        * library/tcltest/pkgIndex.tcl: account for new "-verbose line"
5234        * library/tcltest/tcltest.tcl:  feature.
5235        * unix/Makefile.in:
5236        * win/Makefile.in:
5237        * win/makefile.bc:
5238        * win/makefile.vc:
5239
5240        * library/msgcat/msgcat.tcl:    Bump to version msgcat 1.4.2 to
5241        * library/msgcat/pkgIndex.tcl:  account for modifications.
5242
52432006-09-10  Daniel Steffen  <das@users.sourceforge.net>
5244
5245        * library/msgcat/msgcat.tcl (msgcat::Init): on Darwin, add fallback of
5246        * tests/msgcat.test:                        default msgcat locale to
5247        * unix/tclUnixInit.c (TclpSetVariables):    current CFLocale
5248        identifier if available (via private ::tcl::mac::locale global, set at
5249        interp init when on Mac OS X 10.3 or later with CoreFoundation).
5250
5251        * library/tcltest/tcltest.tcl: add 'line' verbose level: prints source
5252        * doc/tcltest.n:               file line information of failing tests.
5253
5254        * macosx/Tcl.xcodeproj/project.pbxproj: add new tclUnixCompat.c file;
5255        revise tests target to use new tcltest 'line' verbose level.
5256
5257        * unix/configure.in: add descriptions to new AC_DEFINEs for MT-safe.
5258        * unix/tcl.m4: add caching to new SC_TCL_* macros for MT-safe wrappers
5259        * unix/configure: autoconf-2.59
5260        * unix/tclConfig.h.in: autoheader-2.59
5261
52622006-09-08  Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
5263
5264        * unix/tclUnixCompat.c: Added fallback to gethostbyname() and
5265        gethostbyaddr() if the implementation is known to be MT-safe
5266        (currently for Darwin 6 or later only).
5267
5268        * unix/configure.in: Assume gethostbyname() and gethostbyaddr() are
5269        MT-safe starting with Darwin 6 (Mac OSX 10.2).
5270
5271        * unix/configure: Regenerated with autoconf V2.59
5272
52732006-09-08  Andreas Kupries  <andreask@activestate.com>
5274
5275        * unix/tclUnixCompat.c: Fixed conditions for CopyArray/CopyString, and
5276        CopyHostent. Also fixed bad var names in TclpGetHostByName.
5277
52782006-09-07  Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
5279
5280        * unix/tclUnixCompat.c: Added fallback to MT-unsafe library calls if
5281        TCL_THREADS is not defined.
5282        Fixed alignment of arrays copied by CopyArray() to be on the
5283        sizeof(char *) boundary.
5284
52852006-09-07  Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
5286
5287        * unix/tclUnixChan.c:   Rewritten MT-safe wrappers to return ptrs to
5288        * unix/tclUnixCompat.c: TSD storage making them all look like their
5289        * unix/tclUnixFCmd.c:   MT-unsafe pendants API-wise.
5290        * unix/tclUnixPort.h:
5291        * unix/tclUnixSock.c:
5292
52932006-09-06  Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
5294
5295        * unix/tclUnixChan.c: Added TCL_THREADS ifdef'ed usage of MT-safe
5296        * unix/tclUnixFCmd.c: calls like: getpwuid, getpwnam, getgrgid,
5297        * unix/tclUnixSock.c: getgrnam, gethostbyname and gethostbyaddr.
5298        * unix/tclUnixPort.h: See [Bug 999544]
5299        * unix/Makefile.in:
5300        * unix/configure.in:
5301        * unix/tcl.m4:
5302        * unix/configure: Regenerated.
5303
5304        * unix/tclUnixCompat.c: New file containing MT-safe implementation of
5305        some library calls.
5306
53072006-09-04  Don Porter  <dgp@users.sourceforge.net>
5308
5309        * generic/tclCompExpr.c:        Removed much complexity that is no
5310        longer needed.
5311
5312        * tests/main.text (Tcl_Main-4.4):       Test corrected to not be
5313        timing sensitive to the Bug 1481986 fix. [Bug 1550858]
5314
53152006-09-04  Jeff Hobbs  <jeffh@ActiveState.com>
5316
5317        * doc/package.n: correct package example
5318
53192006-08-31  Don Porter  <dgp@users.sourceforge.net>
5320
5321        * generic/tclCompExpr.c:        Corrected flawed logic for disabling
5322        the INST_TRY_CVT_TO_NUMERIC instruction at the end of an expression
5323        when function arguments contain operators. [Bug 1541274]
5324
5325        * tests/expr-old.test:  The remaining failing tests reported in
5326        * tests/expr.test:      [Bug 1381715] are all new in Tcl 8.5, so
5327        there's really no issue of compatibility with Tcl 8.4 result to deal
5328        with. Fixed by updating tests to expect 8.5 results.
5329
53302006-08-29  Don Porter  <dgp@users.sourceforge.net>
5331
5332        * generic/tclParseExpr.c:       Dropped the old expr parser.
5333
53342006-08-30  Jeff Hobbs  <jeffh@ActiveState.com>
5335
5336        * generic/tclBasic.c (Tcl_CreateInterp): init iPtr->threadId
5337
5338        * win/tclWinChan.c [Bug 819667] Improve logic for identifying COM
5339        ports.
5340
5341        * generic/tclIOGT.c (ExecuteCallback):
5342        * generic/tclPkg.c (Tcl_PkgRequireEx): replace Tcl_GlobalEval(Obj)
5343        with more efficient Tcl_Eval(Obj)Ex
5344
5345        * unix/Makefile.in (valgrindshell): add valgrindshell target and
5346        update default VALGRINDARGS. User can override, or add to it with
5347        VALGRIND_OPTS env var.
5348
5349        * generic/tclFileName.c (DoGlob): match incrs with decrs.
5350
53512006-08-29  Don Porter  <dgp@users.sourceforge.net>
5352
5353        * generic/tclParseExpr.c:       Use the "parent" field of orphan
5354        ExprNodes to store the closure of left pointers. This lets us avoid
5355        repeated re-scanning leftward for the left boundary of subexpressions,
5356        which in worst case led to near O(N^2) runtime.
5357
53582006-08-29  Joe Mistachkin  <joe@mistachkin.com>
5359
5360        * unix/tclUnixInit.c: Fixed the issue (typo) that was causing
5361        * unix/tclUnixThrd.c (TclpThreadGetStackSize): stack.test to fail on
5362        FreeBSD (and possibly other Unix platforms).
5363
53642006-08-29  Colin McCormack  <coldstore@users.sourceforge.net>
5365
5366        * generic/tclIOUtil.c:  Added test for NULL return from
5367        * generic/tclPathObj.c: Tcl_FSGetNormalizedPath which was causing
5368        * unix/tclUnixFile.c:   segv's per [Bug 1548263]
5369        * win/tclWinFCmd.c:
5370        * win/tclWinFile.c:
5371
53722006-08-28  Kevin B. Kenny  <kennykb@acm.org>
5373
5374        * library/tzdata/America/Havana:      Regenerated from Olson's
5375        * library/tzdata/America/Tegucigalpa: tzdata2006k.
5376        * library/tzdata/Asia/Gaza:
5377
53782006-08-28  Don Porter  <dgp@users.sourceforge.net>
5379
5380        * generic/tclStringObj.c:       Revised ObjPrintfVA to take care to
5381        * generic/tclParseExpr.c:       copy only whole characters when doing
5382        %s formatting. This relieves callers of TclObjPrintf() and
5383        TclFormatToErrorInfo() from needing to fix arguments to character
5384        boundaries. Tcl_ParseExpr() simplified by taking advantage. [Bug
5385        1547786]
5386
5387        * generic/tclStringObj.c:       Corrected TclFormatObj's failure to
5388        count up the number of arguments required by examining the format
5389        string. [Bug 1547681]
5390
53912006-08-27  Joe Mistachkin  <joe@mistachkin.com>
5392
5393        * generic/tclClock.c (ClockClicksObjCmd): Fix nested macro breakage
5394        with TCL_MEM_DEBUG enabled. [Bug 1547662]
5395
53962006-08-26  Miguel Sofer  <msofer@users.sf.net>
5397
5398        * doc/namespace.n:
5399        * generic/tclNamesp.c:
5400        * tests/upvar.test: bugfix, docs clarification and new tests for
5401        [namespace upvar] as follow up to [Bug 1546833], reported by Will
5402        Duquette.
5403
54042006-08-24  Kevin B. Kenny  <kennykb@acm.org>
5405
5406        * library/tzdata: Regenerated, including several new files, from
5407        Olson's tzdata2006j.
5408        * library/clock.tcl:
5409        * tests/clock.test: Removed an early testing hack that allowed loading
5410        'registry' from the build tree rather than an installed one. This is a
5411        workaround for [Bug 15232730], which remains open because it's a
5412        symptom of a deeper underlying problem.
5413
54142006-08-23  Don Porter  <dgp@users.sourceforge.net>
5415
5416        * generic/tclParseExpr.c:       Minimal collection of new tests
5417        * tests/parseExpr.test:         testing the error messages of the new
5418        expr parser. Several bug fixes and code simplifications that appeared
5419        during that effort.
5420
54212006-08-21  Don Porter  <dgp@users.sourceforge.net>
5422
5423        * generic/tclIOUtil.c:  Revisions to complete the thread finalization
5424        of the cwdPathPtr. [Bug 1536142]
5425
5426        * generic/tclParseExpr.c:       Revised mistaken call to
5427        TclCheckBadOctal(), so both [expr 08] and [expr 08z] have same
5428        additional info in error message.
5429
5430        * tests/compExpr-old.test:      Update existing tests to not fail with
5431        * tests/compExpr.test:          the new expr parser.
5432        * tests/compile.test:
5433        * tests/expr-old.test:
5434        * tests/expr.test:
5435        * tests/for.test:
5436        * tests/if.test:
5437        * tests/parseExpr.test:
5438        * tests/while.test:
5439
54402006-08-21  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5441
5442        * win/Makefile.in (gdb): Make this target work so that debugging an
5443        msys build is possible.
5444
54452006-08-21  Daniel Steffen  <das@users.sourceforge.net>
5446
5447        * macosx/tclMacOSXNotify.c (Tcl_WaitForEvent): if the run loop is
5448        already running (e.g. if Tcl_WaitForEvent was called recursively),
5449        re-run it in a custom run loop mode containing only the source for the
5450        notifier thread, otherwise wakeups from other sources added to the
5451        common run loop modes might get lost.
5452
5453        * unix/tclUnixNotfy.c (Tcl_WaitForEvent): on 64-bit Darwin,
5454        pthread_cond_timedwait() appears to have a bug that causes it to wait
5455        forever when passed an absolute time which has already been exceeded
5456        by the system time; as a workaround, when given a very brief timeout,
5457        just do a poll on that platform. [Bug 1457797]
5458
5459        * generic/tclClock.c (ClockClicksObjCmd): add support for Darwin
5460        * generic/tclCmdMZ.c (Tcl_TimeObjCmd):    nanosecond resolution timer
5461        * generic/tclInt.h:                       to [clock clicks] and [time]
5462        * unix/configure.in (Darwin):             when TCL_WIDE_CLICKS defined
5463        * unix/tclUnixTime.c (TclpGetWideClicks, TclpWideClicksToNanoseconds):
5464        * unix/configure: autoconf-2.59
5465        * unix/tclConfig.h.in: autoheader-2.59
5466
5467        * unix/tclUnixPort.h (Darwin): override potentially faulty configure
5468        detection of termios availability in all cases, since termios is known
5469        to be present on all Mac OS X releases since 10.0. [Bug 497147]
5470
54712006-08-18  Daniel Steffen  <das@users.sourceforge.net>
5472
5473        * unix/tcl.m4 (Darwin): add support for --enable-64bit on x86_64, for
5474        universal builds including x86_64, for 64-bit CoreFoundation on
5475        Leopard and for use of -mmacosx-version-min instead of
5476        MACOSX_DEPLOYMENT_TARGET
5477        * unix/configure: autoconf-2.59
5478        * unix/tclConfig.h.in: autoheader-2.59
5479
5480        * generic/tcl.h:          add fixes for building on Leopard and
5481        * unix/tclUnixPort.h:     support for 64-bit CoreFoundation on Leopard
5482        * macosx/tclMacOSXFCmd.c:
5483
5484        * unix/tclUnixPort.h: on Darwin x86_64, disable use of vfork as it
5485        causes execve to fail intermittently. (rdar://4685553)
5486
5487        * generic/tclTomMath.h: on Darwin 64-bit, for now disable use of
5488        128-bit arithmetic through __attribute__ ((mode(TI))), as it leads to
5489        link errors due to missing fallbacks. (rdar://4685527)
5490
5491        * macosx/Tcl.xcodeproj/project.pbxproj: add x86_64 to universal build,
5492        switch native release targets to use DWARF with dSYM, Xcode 3.0
5493        changes
5494        * macosx/README: updates for x86_64 and Xcode 2.4.
5495
5496        * macosx/Tcl.xcodeproj/default.pbxuser: add test suite target that
5497        * macosx/Tcl.xcodeproj/project.pbxproj: runs the tcl test suite at
5498        build time and shows clickable test suite errors in the GUI build
5499        window.
5500
5501        * tests/macOSXFCmd.test: fix use of deprecated resource fork paths.
5502
5503        * unix/tclUnixInit.c (TclpInitLibraryPath): move code that is only
5504        needed when TCL_LIBRARY is defined to run only in that case.
5505
5506        * generic/tclLink.c (LinkTraceProc): fix 64-bit signed-with-unsigned
5507        comparison warning from gcc4 -Wextra.
5508
5509        * unix/tclUnixChan.c (TclUnixWaitForFile): with timeout < 0, if
5510        select() returns early (e.g. due to a signal), call it again instead
5511        of returning a timeout result. Fixes intermittent event-13.8 failures.
5512
55132006-08-17  Don Porter  <dgp@users.sourceforge.net>
5514
5515        * generic/tclCompile.c:         Revised the new set of expression
5516        * generic/tclParseExpr.c:       parse error messages.
5517
55182006-08-16  Don Porter  <dgp@users.sourceforge.net>
5519
5520        * generic/tclParseExpr.c:       Replace PrecedenceOf() function with
5521        prec[] static array.
5522
55232006-08-14  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5524
5525        * library/clock.tcl (::tcl::clock::add): Added missing braces to
5526        clockval validation code. Pointed out on comp.lang.tcl.
5527
55282006-08-11  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5529
5530        * generic/tclNamesp.c: Improvements in buffer management to make
5531        namespace creation faster. Plus selected other minor improvements to
5532        code quality. [Patch 1352382]
5533
55342006-08-10  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5535
5536        Misc patches to make code more efficient. [Bug 1530474] (afredd)
5537        * generic/*.c, macosx/tclMacOSXNotify.c, unix/tclUnixNotfy.c,
5538        * win/tclWinThrd.c: Tidy up invokations of Tcl_Panic() to promote
5539        string constant sharing and consistent style.
5540        * generic/tclBasic.c (Tcl_CreateInterp): More efficient handling of
5541        * generic/tclClock.c (TclClockInit):     registration of commands not
5542                                                 in global namespace.
5543        * generic/tclVar.c (Tcl_UnsetObjCmd): Remove unreachable clause.
5544
55452006-08-09  Don Porter  <dgp@users.sourceforge.net>
5546
5547        * generic/tclEncoding.c:        Replace buffer copy in for loop with
5548        call to memcpy(). Thanks to afredd. [Patch 1530262]
5549
55502006-08-09  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5551
5552        * generic/tclCmdIL.c (Tcl_LassignObjCmd): Make the wrong#args message
5553        a bit more consistent with those used elsewhere. [Bug 1534628]
5554
5555        * generic/tclDictObj.c (DictForCmd): Stop crash when attempting to
5556        iterate over an invalid dictionary. [Bug 1531184]
5557
5558        * doc/ParseCmd.3, doc/expr.n, doc/set.n, doc/subst.n, doc/switch.n:
5559        * doc/tclvars.n: Ensure that uses of [expr] in documentation examples
5560        are also good style (with braces) unless otherwise necessary. [Bug
5561        1526581]
5562
55632006-08-03  Daniel Steffen  <das@users.sourceforge.net>
5564
5565        * unix/tclUnixPipe.c (TclpCreateProcess): for USE_VFORK: ensure
5566        standard channels are initialized before vfork() so that the child
5567        doesn't potentially corrupt global state in the parent's address space
5568
5569        * tests/compExpr-old.test: add 'oldExprParser' constraint to all tests
5570        * tests/compExpr.test:     that depend on the exact format of the
5571        * tests/compile.test:      error messages of the pre-2006-07-05
5572        * tests/expr-old.test:     expression parser. The constraint is on by
5573        * tests/expr.test:         default (i.e those tests still fail), but
5574        * tests/for.test:          can be turned off by passing '-constraints
5575        * tests/if.test:           newExprParser' to tcltest, which will skip
5576        * tests/parseExpr.test:    the 196 failing tests in the testsuite that
5577        * tests/while.test:        are caused by the new expression parser
5578        error messages.
5579
55802006-07-31  Kevin B. Kenny  <kennykb@acm.org>
5581
5582        * generic/tclClock.c (ConvertLocalToUTCUsingC): Corrected a regression
5583        that caused dates before 1969 to be one day off in the :localtime time
5584        zone if TZ is not set. [Bug 1531530]
5585
55862006-07-30  Kevin B. Kenny  <kennykb@acm.org>
5587
5588        * generic/tclClock.c (GetJulianDayFromEraYearMonthDay): Corrected
5589        several errors in converting dates before the Common Era [Bug 1426279]
5590        * library/clock.tcl: Corrected syntax errors in generated code for %EC
5591        %Ey, and %W format groups [Bug 1505383]. Corrected a bug in cache
5592        management for format strings containing [glob] metacharacters [Bug
5593        1494664]. Corrected several errors in formatting/scanning of years
5594        prior to the Common Era, and added the missing %EE format group to
5595        indicate the era.
5596        * tools/makeTestCases.tcl: Added code to make sure that %U and %V
5597        format groups are included in the tests. (The code depends on %U and
5598        %V formatting working correctly when 'makeTestCases.tcl' is run,
5599        rather than making a completely independent check.) Added tests for
5600        [glob] metacharacters in strings. Added tests for years prior to the
5601        Common Era.
5602        * tests/clock.test: Rebuilt with new test cases for all the above.
5603
56042006-07-30  Joe English  <jenglish@users.sourceforge.net>
5605
5606        * doc/AppInit.3: Fix typo [Bug 1496886]
5607
56082006-07-26  Don Porter  <dgp@users.sourceforge.net>
5609
5610        * generic/tclExecute.c: Corrected flawed overflow detection in
5611        * tests/expr.test:      INST_EXPON that caused [expr 2**64] to return
5612        0 instead of the same value as [expr 1<<64].
5613
56142006-07-24  Don Porter  <dgp@users.sourceforge.net>
5615
5616        * win/tclWinSock.c:     Correct un-initialized Tcl_DString. Thanks to
5617        afredd. [Bug 1518166]
5618
56192006-07-21  Miguel Sofer  <msofer@users.sf.net>
5620
5621        * generic/tclExecute.c:
5622        * tests/execute.test (execute-9.1): dgp's fix for [Bug 1522803].
5623
56242006-07-20  Daniel Steffen  <das@users.sourceforge.net>
5625
5626        * macosx/tclMacOSXNotify.c (Tcl_InitNotifier, Tcl_WaitForEvent):
5627        create notifier thread lazily upon first call to Tcl_WaitForEvent()
5628        rather than in Tcl_InitNotifier(). Allows calling exeve() in processes
5629        where the event loop has not yet been run (Darwin's execve() fails in
5630        processes with more than one thread), in particular allows embedders
5631        to call fork() followed by execve(), previously the pthread_atfork()
5632        child handler's call to Tcl_InitNotifier() would immediately recreate
5633        the notifier thread in the child after a fork.
5634
5635        * macosx/tclMacOSXFCmd.c (TclMacOSXCopyFileAttributes):    add support
5636        * macosx/tclMacOSXNotify.c (Tcl_InitNotifier):             for weakly
5637        * unix/tclUnixInit.c (Tcl_GetEncodingNameFromEnvironment): importing
5638        symbols not available on OSX 10.2 or 10.3, enables binaires built on
5639        later OSX versions to run on earlier ones.
5640        * macosx/Tcl.xcodeproj/project.pbxproj: enable weak-linking; turn on
5641                                                extra warnings.
5642        * macosx/README: document how to enable weak-linking; cleanup.
5643        * unix/tclUnixPort.h: add support for weak-linking; conditionalize
5644        AvailabilityMacros.h inclusion; only disable realpath on 10.2 or
5645        earlier when threads are enabled.
5646        * unix/tclLoadDyld.c (TclpLoadMemoryGetBuffer): change runtime Darwin
5647        * unix/tclUnixInit.c (TclpInitPlatform):        release check to use
5648                                                        global initialized
5649                                                        once
5650        * unix/tclUnixFCmd.c (DoRenameFile, TclpObjNormalizePath): add runtime
5651        Darwin release check to determine if realpath is threadsafe.
5652        * unix/configure.in: add check on Darwin for compiler support of weak
5653        * unix/tcl.m4:       import and for AvailabilityMacros.h header; move
5654        Darwin specific checks & defines that are only relevant to the tcl
5655        build out of tcl.m4; restrict framework option to Darwin; clean up
5656        quoting and help messages.
5657        * unix/configure: autoconf-2.59
5658        * unix/tclConfig.h.in: autoheader-2.59
5659
5660        * generic/regc_locale.c (cclass):
5661        * generic/tclExecute.c (TclExecuteByteCode):
5662        * generic/tclIOCmd.c (Tcl_ExecObjCmd):
5663        * generic/tclListObj.c (NewListIntRep):
5664        * generic/tclObj.c (Tcl_GetLongFromObj, Tcl_GetWideIntFromObj)
5665        (FreeBignum, Tcl_SetBignumObj):
5666        * generic/tclParseExpr.c (Tcl_ParseExpr):
5667        * generic/tclStrToD.c (TclParseNumber):
5668        * generic/tclStringObj.c (TclAppendFormattedObjs):
5669        * unix/tclLoadDyld.c (TclpLoadMemory):
5670        * unix/tclUnixPipe.c (TclpCreateProcess): fix signed-with-unsigned
5671        comparison and other warnings from gcc4 -Wextra.
5672
56732006-07-13  Andreas Kupries <andreask@activestate.com>
5674
5675        * unix/tclUnixPort.h: Added the inclusion of <AvailabilityMacros.h>.
5676        The missing header caused the upcoming #if conditions to wrongly
5677        exclude realpath, causing file normalize to ignore symbolic links in
5678        the path.
5679
56802006-07-11  Zoran Vasiljevic <vasiljevic@users.sourceforge.net>
5681
5682        * generic/tclAsync.c: Made Tcl_AsyncDelete() more tolerant when called
5683        after all thread TSD has been garbage-collected.
5684
56852006-07-05  Don Porter  <dgp@users.sourceforge.net>
5686
5687        * generic/tclParseExpr.c:       Completely new expression parser that
5688        builds a parse tree instead of operating with deep recursion. This
5689        corrects reports of stack-blowing crashes parsing long expressions
5690        [Bug 906201] and replaces a fundamentally O(N^2) algorithm with an
5691        O(N) one [RFE 903765]. The new parser is better able to generate error
5692        messages that clearly report both the nature and context of the syntax
5693        error [Bugs 1029267, 1381715]. For now, the code for the old parser is
5694        still present and can be activated with a "#define OLD_EXPR_PARSER
5695        1". This is for the sake of a clean implementation patch, and for ease
5696        of benchmarking. The new parser is non-recursive, so much lighter in
5697        stack consumption, but it does use more heap, so there may be cases
5698        where parsing of long expressions that succeeded with the old parser
5699        will lead to out of memory panics with the new one. There are still
5700        more improvements possible on that point, though significant progress
5701        may require changes to the Tcl_Token specifications documented for the
5702        public Tcl_Parse*() routines.
5703        ***POTENTIAL INCOMPATIBILITY*** for any callers that rely on the exact
5704        (usually terrible) error messages generated by the old parser. This
5705        includes a large number of tests in the test suite.
5706
5707        * generic/tclInt.h:             Replaced TclParseWhiteSpace() with
5708        * generic/tclParse.c:           TclParseAllWhiteSpace() which is what
5709        * generic/tclParseExpr.c:       all the callers really needed.
5710        Breaking whitespace runs at newlines is useful only to the command
5711        parsing function, and it can call the file scoped routine
5712        ParseWhiteSpace() to do that.
5713
5714        * tests/expr-old.test:  Removed knownBug constraints that masked
5715        * tests/expr.test:      failures due to revised error messages.
5716        * tests/parseExpr.test:
5717
57182006-06-20  Don Porter  <dgp@users.sourceforge.net>
5719
5720        * generic/tclIOUtil.c:  Changed default configuration to
5721        * generic/tclInt.decls: #undef USE_OBSOLETE_FS_HOOKS which disables
5722        * generic/tclTest.c:    access to the Tcl 8.3 internal routines for
5723        hooking into filesystem operations. Everyone ought to have migrated to
5724        Tcl_Filesystems by now.
5725        ***POTENTIAL INCOMPATIBILITY*** for any code still stuck in the
5726        pre-Tcl_Filesystem era.
5727
5728        * generic/tclIntDecls.h:        make genstubs
5729        * generic/tclStubInit.c:
5730
5731        * generic/tclStrToD.c:  Removed dead code that permitted disabling of
5732        recognition of the new 0b and 0o numeric formats.
5733
5734        * generic/tclExecute.c: Removed dead code that implemented alternative
5735        * generic/tclObj.c:     design where numeric values did not
5736        automatically narrow to the smallest Tcl_ObjType required to hold them
5737
5738        * generic/tclCmdAH.c:   Removed dead code that was old implementation
5739        of [format].
5740
57412006-06-14  Daniel Steffen  <das@users.sourceforge.net>
5742
5743        * unix/tclUnixPort.h (Darwin): support MAC_OS_X_VERSION_MAX_ALLOWED
5744        define from AvailabilityMacros.h: override configure detection and
5745        only use API available in the indicated OS version or earlier.
5746
57472006-06-14  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5748
5749        * doc/format.n, doc/scan.n: Added examples for converting between
5750        characters and their numeric interpretations following user prompting.
5751
57522006-06-13  Donal K. Fellows  <dkf@users.sf.net>
5753
5754        * unix/tclLoadDl.c (TclpDlopen): Workaround for a compiler bug in Sun
5755        Forte 6. [Bug 1503729]
5756
57572006-06-06  Don Porter  <dgp@users.sourceforge.net>
5758
5759        * doc/GetStdChan.3:     Added recommendation that each call to
5760        Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel().
5761
57622006-06-05  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5763
5764        * doc/Alloc.3: Added documentation of promise that Tcl_Realloc(NULL,x)
5765        is the same as Tcl_Alloc(x), as discussed in comp.lang.tcl. Also fixed
5766        nonsense sentence to say something meaningful.
5767
57682006-05-29  Jeff Hobbs  <jeffh@ActiveState.com>
5769
5770        * generic/tcl.h (Tcl_DecrRefCount): use if/else construct to allow
5771        placement in unbraced outer if/else conditions. (jcw)
5772
57732006-05-27  Daniel Steffen  <das@users.sourceforge.net>
5774
5775        * macosx/tclMacOSXNotify.c: implemented pthread_atfork() handler that
5776        * unix/tcl.m4 (Darwin):     recreates CoreFoundation state and
5777        notifier thread in the child after a fork(). Note that pthread_atfork
5778        is available starting with Tiger only. Because vfork() is used by the
5779        core on Darwin, [exec]/[open] are not affected by this fix, only
5780        extensions or embedders that call fork() directly (such as TclX).
5781        However, this only makes fork() safe from corefoundation tcl with
5782        --disable-threads; as on all platforms, forked children may deadlock
5783        in threaded tcl due to the potential for stale locked mutexes in the
5784        child. [Patch 923072]
5785
5786        * unix/configure: autoconf-2.59
5787        * unix/tclConfig.h.in: autoheader-2.59
5788
57892006-05-24  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5790
5791        * unix/tcl.m4 (SC_CONFIG_SYSTEM): Fixed quoting of command script to
5792        awk; it was a rarely used branch, but it was wrong. [Bug 1494160]
5793
57942006-05-23  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5795
5796        * doc/chan.n, doc/refchan.n: Tighten up the documentation to follow a
5797        slightly more consistent style with regard to argument capitalization.
5798
57992006-05-13  Don Porter  <dgp@users.sourceforge.net>
5800
5801        * generic/tclProc.c (ProcCompileProc): When a bump of the compile
5802        epoch forces the re-compile of a proc body, take care not to overwrite
5803        any Proc struct that may be referred to on the active call stack. This
5804        fixes [Bug 1482718]. Note that the fix will not be effective for code
5805        that calls the private routine TclProcCompileProc() directly.
5806
58072006-05-13  Daniel Steffen  <das@users.sourceforge.net>
5808
5809        * generic/tclEvent.c (HandleBgErrors): fix leak. [Coverity issue 86]
5810
58112006-05-05  Don Porter  <dgp@users.sourceforge.net>
5812
5813        * generic/tclMain.c (Tcl_Main):         Corrected flaw that required
5814        * tests/main.test: (Tcl_Main-4.5):      processing of one interactive
5815        command before passing control to the loop routine registered with
5816        Tcl_SetMainLoop(). [Bug 1481986]
5817
58182006-05-04  Don Porter  <dgp@users.sourceforge.net>
5819
5820        * README:               Bump version number to 8.5a5
5821        * generic/tcl.h:
5822        * tools/tcl.wse.in:
5823        * unix/configure.in:
5824        * unix/tcl.spec:
5825        * win/README.binary:
5826        * win/configure.in:
5827
5828        * unix/configure:       autoconf-2.59
5829        * win/configure:
5830
5831        * generic/tclBasic.c (ExprSrandFunc): Restore acceptance of wide/big
5832        * doc/mathfunc.n: integer values by srand(). [Bug 1480509]
5833
58342006-04-26  Don Porter  <dgp@users.sourceforge.net>
5835
5836        *** 8.5a4 TAGGED FOR RELEASE ***
5837
5838        * changes:      Updates for another RC.
5839
5840        * generic/tclBinary.c:  Revised the handling of the Q and q format
5841        * generic/tclInt.h:     specifiers for [binary] to account for the
5842        * generic/tclStrToD.c:  "middle endian" floating point format used in
5843        Nokia N770.
5844
58452006-04-25  Don Porter  <dgp@users.sourceforge.net>
5846
5847        * doc/DoubleObj.3:      More doc updates for TIP 237.
5848        * doc/expr.n:
5849        * doc/format.n:
5850        * doc/mathfunc.n:
5851        * doc/scan.n:
5852        * doc/string.n:
5853
5854        * generic/tclScan.c:    [scan $s %u] is documented to accept only
5855        * tests/scan.test:      decimal formatted integers. Fixed to match.
5856
58572006-04-19  Kevin B. Kenny  <kennykb@acm.org>
5858
5859        * generic/tclStrToD.c: Added code to support the "middle endian"
5860        floating point format used in the Nokia N770's software-based floating
5861        point. Thanks to Bruce Johnson for reporting this bug, originally on
5862        http://wiki.tcl.tk/15408.
5863        * library/clock.tcl: Fixed a bug with Daylight Saving Time and Posix
5864        time zone specifiers reported by Martin Lemburg in
5865        http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/9a8b15a4dfc0b7a0
5866        (and not at SourceForge).
5867        * tests/clock.test: Added test case for the above bug.
5868
58692006-04-18  Donal K. Fellows  <dkf@users.sf.net>
5870
5871        * doc/IntObj.3: Minor review fixes, including better documentation of
5872        the behaviour of Tcl_GetBignumAndClearObj.
5873
58742006-04-17  Don Porter  <dgp@users.sourceforge.net>
5875
5876        * doc/IntObj.3: Documentation changes to account for TIP 237 changes.
5877        * doc/Object.3: [Bug 1446971]
5878
58792006-04-12  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5880
5881        * generic/regc_locale.c (cclass): Redefined the meaning of [:print:]
5882        to be exactly UNICODE letters, numbers, punctuation, symbols and
5883        spaces (*not* whitespace). [Bug 1376892]
5884
58852006-04-11  Don Porter  <dgp@users.sourceforge.net>
5886
5887        * generic/tclTrace.c:   Stop some interference between enter traces
5888        * tests/trace.test:     and enterstep traces. [Bug 1458266]
5889
58902006-04-07  Don Porter  <dgp@users.sourceforge.net>
5891
5892        * generic/tclPathObj.c: Yet another revised fix for the [Bug 1379287]
5893        * tests/fileSystem.test:        family of path normalization bugs.
5894
58952006-04-06  Jeff Hobbs  <jeffh@ActiveState.com>
5896
5897        * generic/tclRegexp.c (FinalizeRegexp): full reset data to indicate
5898        readiness for reinitialization.
5899
59002006-04-06  Don Porter  <dgp@users.sourceforge.net>
5901
5902        * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct):    It seems there
5903        * tests/indexObj.test:  are extensions that rely on the prior behavior
5904        * doc/GetIndex.3:       that the empty string cannot succeed as a
5905        unique prefix matcher, so I'm restoring Donal Fellows's solution.
5906        Added mention of this detail to the documentation. [Bug 1464039]
5907
5908        * tests/compExpr-old.test:      Updated testmathfunctions constraint
5909        * tests/compExpr.test:          to post-TIP-232 world.
5910        * tests/expr-old.test:
5911        * tests/expr.test:
5912        * tests/info.test:
5913
5914        * tests/indexObj.test:  Corrected other test errors revealed by
5915        * tests/upvar.test:     testing outside the tcltest application.
5916
5917        * generic/tclPathObj.c: Revised fix for the [Bug 1379287] family of
5918        path normalization bugs.
5919
59202006-04-06  Daniel Steffen  <das@users.sourceforge.net>
5921
5922        * unix/tcl.m4: removed TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING
5923        define on Darwin. [Bug 1457515]
5924        * unix/configure: autoconf-2.59
5925        * unix/tclConfig.h.in: autoheader-2.59
5926
59272006-04-05  Don Porter  <dgp@users.sourceforge.net>
5928
5929        * win/tclWinInit.c:     More careful calls to Tcl_DStringSetLength()
5930        * win/tclWinSock.c:     to avoid creating invalid DString states. Bump
5931        * win/tclWinDde.c:      to version 1.3.2. [RFE 1366195]
5932        * library/dde/pkgIndex.tcl:
5933
5934        * library/reg/pkgIndex.tcl:     Bump to registry 1.2 because
5935        * win/tclWinReg.c:      Registry_Unload() is a new public routine
5936        * win/Makefile.in:      compared to the 1.1.* releases.
5937
5938        * win/configure.in:     Bump package version numbers.
5939        * win/configure:        autoconf 2.59
5940
59412006-04-05  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
5942
5943        * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Allow empty
5944        strings to be matched by the Tcl_GetIndexFromObj machinery, in the
5945        same manner as any other key. [Bug 1464039]
5946
59472006-04-03  Andreas Kupries <andreask@activestate.com>
5948
5949        * generic/tclIO.c (ReadChars): Added check, panic and commentary to a
5950        piece of code which relies on BUFFER_PADDING to create enough space at
5951        the beginning of each buffer for the insertion of partial multibyte
5952        data at the beginning of a buffer. Commentary explains why this code
5953        is OK, and the panic is as a precaution if someone twiddled the
5954        BUFFER_PADDING into uselessness.
5955
5956        * generic/tclIO.c (ReadChars): Temporarily suppress the use of
5957        TCL_ENCODING_END set when EOF was reached while the buffer we are
5958        converting is not truly the last buffer in the queue. Together with
5959        the Utf bug below it was possible to completely wreck the buffer data
5960        structures, eventually crashing Tcl. [Bug 1462248]
5961
5962        * generic/tclEncoding.c (UtfToUtfProc): Stop accessing memory beyond
5963        the end of the input buffer when TCL_ENCODING_END is set and the last
5964        bytes of the buffer start a multi-byte sequence. This bug contributed
5965        to [Bug 1462248].
5966
59672006-03-30  Miguel Sofer  <msofer@users.sf.net>
5968
5969        * generic/tclExecute.c: remove unused var and silence gcc warning
5970
59712006-03-29  Jeff Hobbs  <jeffh@ActiveState.com>
5972
5973        * win/Makefile.in: convert _NATIVE paths to use / to avoid ".\"
5974        path-as-escape issue.
5975
59762006-03-29  Don Porter  <dgp@users.sourceforge.net>
5977
5978        * changes:      Updates for another RC.
5979
5980        * generic/tclPathObj.c:  More fixes for path normalization when /../
5981        * tests/fileSystem.test: tries to go beyond root.[Bug 1379287]
5982
5983        * generic/tclExecute.c: Revised INST_MOD implementation to do
5984        calculations in native types as much as possible, moving to mp_ints
5985        only when necessary.
5986
59872006-03-28  Jeff Hobbs  <jeffh@ActiveState.com>
5988
5989        * win/tclWinPipe.c (TclpCreateProcess): change panics to Tcl errors
5990        and do proper refcounting of noe objPtr. [Bug 1194429]
5991
5992        * unix/tcl.m4, win/tcl.m4: []-quote AC_DEFUN functions.
5993
59942006-03-28  Daniel Steffen  <das@users.sourceforge.net>
5995
5996        * macosx/Tcl.xcode/default.pbxuser:     add '-singleproc 1' cli arg to
5997        * macosx/Tcl.xcodeproj/default.pbxuser: tcltest to ease test debugging
5998
5999        * macosx/Tcl.xcode/project.pbxproj:     removed $prefix/share from
6000        * macosx/Tcl.xcodeproj/project.pbxproj: TCL_PACKAGE_PATH as per change
6001        to unix/configure.in of 2006-03-13.
6002
6003        * unix/tclUnixFCmd.c (TclpObjNormalizePath): deal with *BSD/Darwin
6004        realpath() converting relative paths into absolute paths [Bug 1064247]
6005
60062006-03-28  Vince Darley  <vincentdarley@sourceforge.net>
6007
6008        * generic/tclIOUtil.c: fix to nativeFilesystemRecord comparisons
6009        (lesser part of [Bug 1064247])
6010
60112006-03-27  Pat Thoyts  <patthoyts@users.sourceforge.net>
6012
6013        * win/tclWinTest.c:     Fixes for [Bug 1456373] (mingw-gcc issue)
6014
60152006-03-27  Andreas Kupries <andreask@activestate.com>
6016
6017        * doc/CrtChannel.3:    Added TCL_CHANNEL_VERSION_5, made it the
6018        * generic/tcl.h:       version where the "truncateProc" is defined at,
6019        * generic/tclIO.c:     and moved all channel drivers of Tcl to v5.
6020        * generic/tclIOGT.c, generic/tclIORChan.c, unix/tclUnixChan.c:
6021        * unix/tclUnixPipe.c, win/tclWinChan.c, win/tclWinConsole.c:
6022        * win/tclWinPipe.c, win/tclWinSerial.c, win/tclWinSock.c:
6023
60242006-03-27  Don Porter  <dgp@users.sourceforge.net>
6025
6026        * generic/tclExecute.c: Merge INST_MOD computation in with the
6027        INST_?SHIFT instructions, which also operate only on two integral
6028        values. Also corrected flaw that made INST_BITNOT of wide values
6029        require mp_int calculations. Also corrected type that missed optimized
6030        handling of the tclBooleanType by the TclGetBooleanFromObj macro.
6031
6032        * changes:      Updates for another RC.
6033
60342006-03-25  Don Porter  <dgp@users.sourceforge.net>
6035
6036        * generic/tclExecute.c: Corrections to INST_EXPON detection of
6037        overflow to use mp_int calculations.
6038
60392006-03-24  Kevin B. Kenny  <kennykb@acm.org>
6040
6041        * generic/tclExecute.c (TclExecuteByteCode): Added a couple of missing
6042        casts to 'int' that were affecting compilablity on VC6.
6043
60442006-03-24  Don Porter  <dgp@users.sourceforge.net>
6045
6046        * generic/tclEncoding.c: Reverted latest change [Bug 506653] since it
6047        reportedly killed test performance on Windows.
6048
6049        * generic/tclExecute.c: Revised INST_EXPON implementation to do
6050        calculations in native types as much as possible, moving to mp_ints
6051        only when necessary.
6052
60532006-03-23  Don Porter  <dgp@users.sourceforge.net>
6054
6055        * generic/tclExecute.c: Merged INST_EXPON handling in with the other
6056        binary operators that operate on all number types (INST_ADD, etc.).
6057
6058        * tests/env.test: With case preserved (see 2006-03-21 commit) be sure
6059        to do case-insensitive filtering. [Bug 1457065]
6060
60612006-03-23  Reinhard Max  <max@suse.de>
6062
6063        * unix/tcl.spec: Cleaned up and completed the spec file. An RPM can
6064        now be built from the tcl source distribution with "rpmbuild -tb
6065        <tarball>"
6066
60672006-03-22  Reinhard Max  <max@suse.de>
6068
6069        * tests/stack.test: Run the stack tests in subshells, so that they are
6070        reported as failed tests rather than bugs in the test suite if the
6071        recursion causes a segfault.
6072
60732006-03-21  Don Porter  <dgp@users.sourceforge.net>
6074
6075        * changes:      Updates for another RC.
6076
6077        * generic/tclStrToD.c:  One of the branches of AccumulateDecimalDigit
6078        * tests/parseExpr.test: did not. [Bug 1451233]
6079
6080        * tests/env.test:       Preserve case of saved env vars. [Bug 1409272]
6081
60822006-03-21  Daniel Steffen  <das@users.sourceforge.net>
6083
6084        * generic/tclInt.decls:  implement globbing for HFS creator & type
6085        * macosx/tclMacOSXFCmd.c:codes and 'hidden' flag, as documented in
6086        * tests/macOSXFCmd.test: glob.n; objectified OSType handling in [glob]
6087        * unix/tclUnixFile.c:    and [file attributes]; fix globbing for
6088        hidden files with pattern==NULL arg. [Bug 823329]
6089        * generic/tclIntPlatDecls.h:
6090        * generic/tclStubInit.c: make genstubs
6091
60922006-03-20  Andreas Kupries <andreask@activestate.com>
6093
6094        * win/Makefile.in (install-libraries): Generate tcl8/8.4 directory
6095        under Windows as well (cygwin Makefile). Related entry: 2006-03-07,
6096        dgp. This moved the installation of http from 8.2 to 8.4, partially. A
6097        fix of the required directory creation was done for unix on Mar 10,
6098        without entry in the Changelog. This entry is for the fix of the
6099        directory creation under Windows.
6100
6101        * unix/installManPage: There is always one even more broken "sed".
6102        Moved the # comment starting character in the sed script to the
6103        beginning of their respective lines. The AIX sed will not recognize
6104        them as comments otherwise :( The actual text stays indented for
6105        better association with the commands they belong to.
6106
61072006-03-20  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
6108
6109        * tests/cmdAH.test, tests/fCmd.test, tests/unixFCmd.test:
6110        * tests/winFCmd.test: Cleanup of some test constraint handling, and a
6111        few other minor issues.
6112
61132006-03-18  Vince Darley  <vincentdarley@sourceforge.net>
6114
6115        * generic/tclFileName.c:
6116        * doc/FileSystem.3:
6117        * tests/fileName.test: Fix to [Bug 1084705] so that 'glob -nocomplain'
6118        finally agrees with its documentation and doesn't swallow genuine
6119        errors.
6120
6121        ***POTENTIAL INCOMPATIBILITY*** for scripts that assumed '-nocomplain'
6122        removes the need for 'catch' to deal with non-understood path names.
6123
6124        Small optimisation to implementation of pattern==NULL case of TclGlob,
6125        and clarification to the documentation. [Tclvfs bug 1405317]
6126
61272006-03-18  Vince Darley  <vincentdarley@sourceforge.net>
6128
6129        * tests/fCmd.test: added knownBug test case for [Bug 1394972]
6130
6131        * tests/winFCmd.test:
6132        * tests/tcltest.test: corrected tests to better account for behaviour
6133        of writable/non-writable directories on Windows 2000/XP. This, with
6134        the previous patches, closes [Bug 1193497]
6135
61362006-03-17  Andreas Kupries <andreask@activestate.com>
6137
6138        * doc/chan.n: Updated with documentation for the commands 'chan
6139        create' and 'chan postevent' (TIP #219).
6140
6141        * doc/refchan.n: New file. Documentation of the command handler API
6142        for reflected channels (TIP #219).
6143
61442006-03-17  Joe Mistachkin <joe@mistachkin.com>
6145
6146        * unix/tclUnixPort.h: Include pthread.h prior to pthread_np.h [Bug
6147        1444692]
6148
6149        * win/tclWinTest.c: Corrected typo of 'initializeMutex' that prevented
6150        successful compilation.
6151
61522006-03-16  Andreas Kupries <andreask@activestate.com>
6153
6154        * doc/open.n: Documented the changed behaviour of 'a'ppend mode.
6155
6156        * tests/io.test (io-43.1 io-44.[1234]): Rewritten to be self-contained
6157        with regard to setup and cleanup. [Bug 681793]
6158
6159        * generic/tclIOUtil.c (TclGetOpenMode): Added the flag O_APPEND to the
6160        list of POSIX modes used when opening a file for 'a'ppend. This
6161        enables the proper automatic seek-to-end-on-write by the OS. See [Bug
6162        680143] for longer discussion.
6163
6164        * tests/ioCmd.test (iocmd-13.7.*): Extended the testsuite to check the
6165        new handling of 'a'.
6166
61672006-03-15  Andreas Kupries <andreask@activestate.com>
6168
6169        * tests/socket.test: Extended the timeout in socket-11.11 from 10 to
6170        40 seconds to allow for really slow machines. Also extended
6171        actual/expected results with value of variable 'done' to make it
6172        clearer when a test fails due to a timeout. [Bug 792159]
6173
61742006-03-15  Vince Darley  <vincentdarley@sourceforge.net>
6175
6176        * win/fCmd.test: add proper test constraints so the new tests don't
6177        run on Unix.
6178
61792006-03-14  Andreas Kupries <andreask@activestate.com>
6180
6181        * generic/tclPipe.c (TclCreatePipeline): Modified the processing of
6182        pipebars to fail if the last bar is followed only by redirections.
6183        [Bug 768659]
6184
61852006-03-14  Andreas Kupries <andreask@activestate.com>
6186
6187        * doc/fconfigure.n: Clarified that -translation is binary is reported
6188        as lf when queried, because it is identical to lf, except for the
6189        special additional behaviour when setting it. [Bug 666770]
6190
61912006-03-14  Andreas Kupries <andreask@activestate.com>
6192
6193        * doc/clock.n: Removed double-quotes around section title NAME; not
6194        needed.
6195        * unix/installManpage: Reverted part to handle double-quotes in
6196        section NAME, chokes older sed installations.
6197
61982006-03-14  Andreas Kupries <andreask@activestate.com>
6199
6200        * library/tm.tcl (::tcl::tm::Defaults): Fixed handling of environment
6201        variable TCLX.y_TM_PATH, bad variable reference. Thanks to Julian
6202        Noble. [Bug 1448251]
6203
62042006-03-14  Vince Darley  <vincentdarley@sourceforge.net>
6205
6206        * win/tclWinFile.c: updated patch to deal with 'file writable' issues
6207        on Windows XP/2000.
6208        * generic/tclTest.c:
6209        * unix/tclUnixTest.c:
6210        * win/tclWinTest.c:
6211        * tests/fCmd.test: updated test suite to deal with correct permissions
6212        setting and differences between XP/2000 and 95/98 3 tests still fail;
6213        to be dealt with shortly
6214
62152006-03-13  Don Porter  <dgp@users.sourceforge.net>
6216
6217        * generic/tclEncoding.c: Report error when an escape encoding is
6218        missing one of its sub-encodings. [Bug 506653]
6219
6220        * unix/configure.in:    Revert change from 2005-07-26 that sometimes
6221        * unix/configure:       added $prefix/share to the tcl_pkgPath. See
6222        [Patch 1231015]. autoconf-2.59.
6223
62242006-03-10  Miguel Sofer  <msofer@users.sf.net>
6225
6226        * generic/tclProc.c (ObjInterpProcEx):
6227        * tests/apply.test (apply-5.1): Fix [apply] error messages so that
6228        they quote the lambda expression. [Bug 1447355]
6229
62302006-03-10  Zoran Vasiljevic  <vasiljevic@users.sourceforge.net>
6231
6232        -- Summary of changes fixing [Bug 1437595] --
6233
6234        * generic/tclEvent.c: Cosmetic touches and identation
6235        * generic/tclInt.h: Added TclpFinalizeSockets() call.
6236
6237        * generic/tclIO.c: Calls TclpFinalizeSockets() as part of the
6238        TclFinalizeIOSubsystem().
6239
6240        * unix/tclUnixSock.c: Added no-op TclpFinalizeSockets().
6241
6242        * win/tclWinPipe.c, win/tclWinSock.c: Finalization of sockets/pipes is
6243        now solely done in TclpFinalizeSockets() and TclpFinalizePipes() and
6244        not over the thread-exit handler, because the order of actions the Tcl
6245        generic core will impose may result in cores/hangs if the thread exit
6246        handler tears down corresponding subsystem(s) too early.
6247
62482006-03-10  Vince Darley  <vincentdarley@sourceforge.net>
6249
6250        * win/tclWinFile.c: previous patch breaks tests, so removed.
6251
62522006-03-09  Vince Darley  <vincentdarley@sourceforge.net>
6253
6254        * win/tclWinFile.c: fix to 'file writable' in certain XP directories.
6255        Thanks to fvogel and jfg. [Patch 1344540] Modified patch to make use
6256        of existing use of getSecurityProc.
6257
62582006-03-08  Don Porter  <dgp@users.sourceforge.net>
6259
6260        * generic/tclExecute.c: Complete missing bit of TIP 215 implementation
6261        * tests/incr.test:
6262
62632006-03-07  Joe English  <jenglish@users.sourceforge.net>
6264
6265        * unix/tcl.m4: Set SHLIB_LD_FLAGS='${LIBS}' on NetBSD, as per the
6266        other *BSD variants. [Bug 1334613]
6267        * unix/configure: Regenerated.
6268
62692006-03-07  Don Porter  <dgp@users.sourceforge.net>
6270
6271        * changes:      Update in prep. for 8.5a4 release.
6272
6273        * unix/Makefile.in:     Package http 2.5.2 requires Tcl 8.4, so the
6274        * win/Makefile.in:      *.tm installation has to be placed in an "8.4"
6275        directory, not an "8.2" directory.
6276
62772006-03-06  Don Porter  <dgp@users.sourceforge.net>
6278
6279        * generic/tclBasic.c:   Revised handling of TCL_EVAL_* flags to
6280        * tests/parse.test:     simplify TclEvalObjvInternal and to correct
6281        the auto-loading of alias targets (parse-8.12). [Bug 1444291]
6282
62832006-03-03  Don Porter  <dgp@users.sourceforge.net>
6284
6285        * generic/tclPathObj.c: Revised yesterday's fix for [Bug 1379287] to
6286        work on Windows.
6287
6288        * generic/tclObj.c:     Compatibility support for existing code that
6289        calls Tcl_GetObjType("boolean").
6290
62912006-03-02  Don Porter  <dgp@users.sourceforge.net>
6292
6293        * generic/tclPathObj.c:         Fix for failed normalization of paths
6294        * tests/fileSystem.test:        with /../ that lead back to the root
6295        of the filesystem, like /foo/.. [Bug 1379287]
6296
62972006-03-01  Reinhard Max  <max@suse.de>
6298
6299        * unix/installManPage: Fix the script for manpages that have quotes
6300        around the .SH arguments, as doctools produces them. [Bug 1292145]
6301        Some minor cleanups and improvements.
6302
63032006-02-28  Don Porter  <dgp@users.sourceforge.net>
6304
6305        * generic/tclBasic.c:   Corrections to be sure that TCL_EVAL_GLOBAL
6306        * tests/namespace.test: evaluations act the same as [uplevel #0]
6307        * tests/parse.test:     evaluations, even when execution traces or
6308        * tests/trace.test:     invocations of [::unknown] are present. [Bug
6309        1439836]
6310
63112006-02-22  Don Porter  <dgp@users.sourceforge.net>
6312
6313        * generic/tclBasic.c:   Corrected a few bugs in how [namespace
6314        * tests/namespace.test: unknown] interacts with TCL_EVAL_* flags.
6315        [Patch 958222]
6316
63172006-02-17  Don Porter  <dgp@users.sourceforge.net>
6318
6319        * generic/tclIORChan.c: Revised error message generation and handling
6320        * tests/ioCmd.test:     of exceptional return codes in the channel
6321        reflection layer. [Bug 1372348]
6322
63232006-02-16  Don Porter  <dgp@users.sourceforge.net>
6324
6325        * generic/tclIndexObj.c:        Disallow the "ambiguous" error message
6326        * tests/indexObj.test:          when TCL_EXACT matching is requested.
6327        * tests/ioCmd.test:
6328
63292006-02-15  Don Porter  <dgp@users.sourceforge.net>
6330
6331        * generic/tclIO.c:      Made several routines tolerant of
6332        * generic/tclIORChan.c: interp == NULL arguments. [Bug 1380662]
6333        * generic/tclIOUtil.c:
6334
63352006-02-09  Don Porter  <dgp@users.sourceforge.net>
6336
6337        TIP#215 IMPLEMENTATION
6338
6339        * doc/incr.n:           Revised [incr] to auto-initialize when varName
6340        * generic/tclExecute.c: argument is unset. [Patch 1413115]
6341        * generic/tclVar.c:
6342        * tests/compile.test:
6343        * tests/incr-old.test:
6344        * tests/incr.test:
6345        * tests/set.test:
6346
6347        * tests/main.test (Tcl_Main-6.7):       Improved robustness of
6348        command auto-completion test. [Bug 1422736]
6349
63502006-02-08  Donal K. Fellows  <dkf@users.sf.net>
6351
6352        * doc/Encoding.3, doc/encoding.n: Updates due to review at request of
6353        Don Porter. Mostly minor changes.
6354
63552006-02-08  Don Porter  <dgp@users.sourceforge.net>
6356
6357        TIP#258 IMPLEMENTATION
6358
6359        * doc/Encoding.3:       New subcommand [encoding dirs].
6360        * doc/encoding.n:       New routine Tcl_GetEncodingNameFromEnvironment
6361        * generic/tcl.decls:    Made public:
6362        * generic/tclBasic.c:   TclGetEncodingFromObj
6363        * generic/tclCmdAH.c:           -> Tcl_GetEncodingFromObj
6364        * generic/tclEncoding.c:TclGetEncodingSearchPath
6365        * generic/tclInt.decls:         -> Tcl_GetEncodingSearchPath
6366        * generic/tclInt.h:     TclSetEncodingSearchPath
6367        * generic/tclTest.c:            -> Tcl_SetEncodingSearchPath
6368        * library/init.tcl:     Removed commands:
6369        * tests/cmdAH.test:             [tcl::unsupported::EncodingDirs]
6370        * tests/encoding.test:          [testencoding path] (Tcltest)
6371        * unix/tclUnixInit.c:   [Patch 1413934]
6372        * win/tclWinInit.c:
6373
6374        * generic/tclDecls.h:   make genstubs
6375        * generic/tclIntDecls.h:
6376        * generic/tclStubInit.c:
6377
63782006-02-01  Miguel Sofer  <msofer@users.sf.net>
6379
6380        * generic/tclProc.c: minor improvements to [apply]
6381        * tests/apply.test: new tests; apply-5.1 currently fails to indicate
6382        missing work in error reporting
6383
63842006-02-01  Don Porter  <dgp@users.sourceforge.net>
6385
6386        TIP#194 IMPLEMENTATION
6387
6388        * doc/apply.n:  (New file)      New command [apply]. [Patch 944803]
6389        * doc/uplevel.n:
6390        * generic/tclBasic.c:
6391        * generic/tclInt.h:
6392        * generic/tclProc.c:
6393        * tests/apply.test: (New file)
6394        * tests/proc-old.test:
6395        * tests/proc.test:
6396
6397        TIP#181 IMPLEMENTATION
6398
6399        * doc/Namespace.3:      New command [namespace unknown]. New public C
6400        * doc/namespace.n:      routines Tcl_(Get|Set)NamespaceUnknownHandler.
6401        * doc/unknown.n:        [Patch 958222]
6402        * generic/tcl.decls:
6403        * generic/tclBasic.c:
6404        * generic/tclInt.h:
6405        * generic/tclNamesp.c:
6406        * tests/namespace.test:
6407
6408        * generic/tclDecls.h:   make genstubs
6409        * generic/tclStubInit.c:
6410
6411        TIP#250 IMPLEMENTATION
6412
6413        * doc/namespace.n:      New command [namespace upvar]. [Patch 1275435]
6414        * generic/tclInt.h:
6415        * generic/tclNamesp.c:
6416        * generic/tclVar.c:
6417        * tests/namespace.test:
6418        * tests/upvar.test:
6419
64202006-01-26  Donal K. Fellows  <dkf@users.sf.net>
6421
6422        * doc/dict.n: Fixed silly bug in example. Thanks to Heiner Marxen
6423        <heiner.marxen@unsel.de> for catching this! [Bug 1415725]
6424
64252006-01-26  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
6426
6427        * unix/tclUnixChan.c (TclpOpenFileChannel): Tidy up and comment the
6428        mess to do with setting up serial channels. This (deliberately) breaks
6429        a broken FreeBSD port, indicates what we're really doing, and reduces
6430        the amount of conditional compilation sections for better maintenance.
6431
64322006-01-25  Donal K. Fellows  <dkf@users.sf.net>
6433
6434        * unix/tclUnixInit.c (TclpInitPlatform): Improved conditions on when
6435        to update the FP rounding mode on FreeBSD, taken from FreeBSD port.
6436
64372006-01-23  Donal K. Fellows  <dkf@users.sf.net>
6438
6439        * tests/string.test (string-12.21): Added test for [Bug 1410553] based
6440        on original bug report.
6441
64422006-01-23  Miguel Sofer  <msofer@users.sf.net>
6443
6444        * generic/tclStringObj.c: fixed incorrect handling of internal rep in
6445        Tcl_GetRange. Thanks to twylite and Peter Spjuth. [Bug 1410553]
6446
6447        * generic/tclProc.c: fixed args handling for precompiled bodies [Bug
6448        1412695]; thanks to Uwe Traum.
6449
64502006-01-16  Reinhard Max  <max@suse.de>
6451
6452        * generic/tclPipe.c (FileForRedirect): Prevent nameString from being
6453        freed without having been initialized.
6454        * tests/exec.test: Added a test for the above.
6455
64562006-01-12  Zoran Vasiljevic  <vasiljevic@users.sourceforge.net>
6457
6458        * generic/tclPathObj.c (Tcl_FSGetInternalRep): backported patch from
6459        core-8-4-branch. A freed pointer has been overwritten causing all
6460        sorts of coredumps.
6461
64622006-01-12  Vince Darley  <vincentdarley@sourceforge.net>
6463
6464        * win/tclWinFile.c: fix to sharing violation [Bug 1366227]
6465
64662006-01-11  Don Porter  <dgp@users.sourceforge.net>
6467
6468        * generic/tclBasic.c:   Moved Tcl_LogCommandInfo from tclBasic.c to
6469        * generic/tclNamesp.c:  tclNamesp.c to get access to identifier with
6470        * tests/error.test (error-7.0): file scope. Added check for traces on
6471        ::errorInfo, and when present fall back to contruction of the stack
6472        trace in the variable so that write trace notification timings are
6473        compatible with earlier Tcl releases. This reduces, but does not
6474        completely eliminate the ***POTENTIAL INCOMPATIBILITY*** created by
6475        the 2004-10-15 commit. [Bug 1397843]
6476
64772006-01-10  Daniel Steffen  <das@users.sourceforge.net>
6478
6479        * unix/configure:    add caching, use AC_CACHE_CHECK instead of
6480        * unix/configure.in: AC_CACHE_VAL where possible, consistent message
6481        * unix/tcl.m4:       quoting, sync relevant tclconfig/tcl.m4 changes
6482        and gratuitous formatting differences, fix SC_CONFIG_MANPAGES with
6483        default argument, Darwin improvements to SC_LOAD_*CONFIG.
6484
64852006-01-09  Don Porter  <dgp@users.sourceforge.net>
6486
6487        * generic/tclNamesp.c (NamespaceInscopeCmd):    [namespace inscope]
6488        * tests/namespace.test: commands were not reported by [info level].
6489        [Bug 1400572]
6490
64912006-01-09  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
6492
6493        * generic/tclTrace.c: Stop exporting the guts of the trace command;
6494        nothing outside this file needs to see it. [Bug 971336]
6495
64962006-01-05  Donal K. Fellows  <donal.k.fellows@manchester.ac.uk>
6497
6498        * unix/tcl.m4 (TCL_CONFIG_SYSTEM): Factor out the code to determine
6499        the operating system version number, as it was replicated in several
6500        places.
6501
65022006-01-04  David Gravereaux  <davygrvy@pobox.com>
6503
6504        * win/tclAppInit.c: WIN32 native console signal handler removed. This
6505        was found to be interfering with TWAPI extension one. IMO, special
6506        services such as signal handlers should best be done with extensions
6507        to the core after discussions on c.l.t. about Roy Terry's tclsh
6508        children of a real windows service shell.
6509
6510        ******************************************************************
6511        *** CHANGELOG ENTRIES FOR 2005 IN "ChangeLog.2005"             ***
6512        *** CHANGELOG ENTRIES FOR 2004 IN "ChangeLog.2004"             ***
6513        *** CHANGELOG ENTRIES FOR 2003 IN "ChangeLog.2003"             ***
6514        *** CHANGELOG ENTRIES FOR 2002 IN "ChangeLog.2002"             ***
6515        *** CHANGELOG ENTRIES FOR 2001 IN "ChangeLog.2001"             ***
6516        *** CHANGELOG ENTRIES FOR 2000 IN "ChangeLog.2000"             ***
6517        *** CHANGELOG ENTRIES FOR 1999 AND EARLIER IN "ChangeLog.1999" ***
6518        ******************************************************************
Note: See TracBrowser for help on using the repository browser.