From c74364be4c0ab1ca34ba34f02a662708473d62a9 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 5 Oct 2018 19:37:52 +0000 Subject: Bump version numbers for 8.6.9 release. --- README | 2 +- generic/tcl.h | 8 ++------ library/init.tcl | 2 +- unix/configure | 2 +- unix/configure.in | 2 +- unix/tcl.spec | 2 +- win/configure | 2 +- win/configure.in | 2 +- 8 files changed, 9 insertions(+), 13 deletions(-) diff --git a/README b/README index adfdf97..f286244 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ README: Tcl - This is the Tcl 8.6.8 source distribution. + This is the Tcl 8.6.9 source distribution. http://sourceforge.net/projects/tcl/files/Tcl/ You can get any source release of Tcl from the URL above. diff --git a/generic/tcl.h b/generic/tcl.h index 36001ca..17ab2d3 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -42,10 +42,6 @@ extern "C" { * win/configure.in (as above) * win/tcl.m4 (not patchlevel) * README (sections 0 and 2, with and without separator) - * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 1 LOC - * macosx/Tcl.pbproj/default.pbxuser (not patchlevel) 1 LOC - * macosx/Tcl.xcode/project.pbxproj (not patchlevel) 2 LOC - * macosx/Tcl.xcode/default.pbxuser (not patchlevel) 1 LOC * macosx/Tcl-Common.xcconfig (not patchlevel) 1 LOC * win/README (not patchlevel) (sections 0 and 2) * unix/tcl.spec (1 LOC patch) @@ -55,10 +51,10 @@ extern "C" { #define TCL_MAJOR_VERSION 8 #define TCL_MINOR_VERSION 6 #define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE -#define TCL_RELEASE_SERIAL 8 +#define TCL_RELEASE_SERIAL 9 #define TCL_VERSION "8.6" -#define TCL_PATCH_LEVEL "8.6.8" +#define TCL_PATCH_LEVEL "8.6.9" /* *---------------------------------------------------------------------------- diff --git a/library/init.tcl b/library/init.tcl index b3990df..8952172 100644 --- a/library/init.tcl +++ b/library/init.tcl @@ -16,7 +16,7 @@ if {[info commands package] == ""} { error "version mismatch: library\nscripts expect Tcl version 7.5b1 or later but the loaded version is\nonly [info patchlevel]" } -package require -exact Tcl 8.6.8 +package require -exact Tcl 8.6.9 # Compute the auto path to use in this interpreter. # The values on the path come from several locations: diff --git a/unix/configure b/unix/configure index fdf9146..53dc947 100755 --- a/unix/configure +++ b/unix/configure @@ -1335,7 +1335,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu TCL_VERSION=8.6 TCL_MAJOR_VERSION=8 TCL_MINOR_VERSION=6 -TCL_PATCH_LEVEL=".8" +TCL_PATCH_LEVEL=".9" VERSION=${TCL_VERSION} EXTRA_INSTALL_BINARIES=${EXTRA_INSTALL_BINARIES:-"@:"} diff --git a/unix/configure.in b/unix/configure.in index bfa2ef7..52a0648 100644 --- a/unix/configure.in +++ b/unix/configure.in @@ -25,7 +25,7 @@ m4_ifdef([SC_USE_CONFIG_HEADERS], [ TCL_VERSION=8.6 TCL_MAJOR_VERSION=8 TCL_MINOR_VERSION=6 -TCL_PATCH_LEVEL=".8" +TCL_PATCH_LEVEL=".9" VERSION=${TCL_VERSION} EXTRA_INSTALL_BINARIES=${EXTRA_INSTALL_BINARIES:-"@:"} diff --git a/unix/tcl.spec b/unix/tcl.spec index 09920dd..cc36790 100644 --- a/unix/tcl.spec +++ b/unix/tcl.spec @@ -4,7 +4,7 @@ Name: tcl Summary: Tcl scripting language development environment -Version: 8.6.8 +Version: 8.6.9 Release: 2 License: BSD Group: Development/Languages diff --git a/win/configure b/win/configure index 03ad68a..3024594 100755 --- a/win/configure +++ b/win/configure @@ -1311,7 +1311,7 @@ SHELL=/bin/sh TCL_VERSION=8.6 TCL_MAJOR_VERSION=8 TCL_MINOR_VERSION=6 -TCL_PATCH_LEVEL=".8" +TCL_PATCH_LEVEL=".9" VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION TCL_DDE_VERSION=1.4 diff --git a/win/configure.in b/win/configure.in index 82351f1..511cb39 100644 --- a/win/configure.in +++ b/win/configure.in @@ -14,7 +14,7 @@ SHELL=/bin/sh TCL_VERSION=8.6 TCL_MAJOR_VERSION=8 TCL_MINOR_VERSION=6 -TCL_PATCH_LEVEL=".8" +TCL_PATCH_LEVEL=".9" VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION TCL_DDE_VERSION=1.4 -- cgit v0.12 From d918760272b92d4903c0145b612bf8b353c8a51f Mon Sep 17 00:00:00 2001 From: dgp Date: Wed, 10 Oct 2018 23:04:25 +0000 Subject: Backport test fix. --- tests/macOSXFCmd.test | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/macOSXFCmd.test b/tests/macOSXFCmd.test index 071f11b..132b2fe 100644 --- a/tests/macOSXFCmd.test +++ b/tests/macOSXFCmd.test @@ -151,16 +151,16 @@ test macOSXFCmd-4.1 {TclMacOSXMatchType} {macosxFileAttr notRoot} { file attributes dir.test -hidden 1 } set res [list \ - [catch {glob *.test} msg] $msg \ - [catch {glob -types FOOT *.test} msg] $msg \ - [catch {glob -types {{macintosh type FOOT}} *.test} msg] $msg \ - [catch {glob -types FOOTT *.test} msg] $msg \ - [catch {glob -types {{macintosh type FOOTT}} *.test} msg] $msg \ - [catch {glob -types {{macintosh type {}}} *.test} msg] $msg \ - [catch {glob -types {{macintosh creator FOOC}} *.test} msg] $msg \ - [catch {glob -types {{macintosh creator FOOC} {macintosh type FOOT}} *.test} msg] $msg \ - [catch {glob -types hidden *.test} msg] $msg \ - [catch {glob -types {hidden FOOT} *.test} msg] $msg \ + [catch {lsort [glob *.test]} msg] $msg \ + [catch {lsort [glob -types FOOT *.test]} msg] $msg \ + [catch {lsort [glob -types {{macintosh type FOOT}} *.test]} msg] $msg \ + [catch {lsort [glob -types FOOTT *.test]} msg] $msg \ + [catch {lsort [glob -types {{macintosh type FOOTT}} *.test]} msg] $msg \ + [catch {lsort [glob -types {{macintosh type {}}} *.test]} msg] $msg \ + [catch {lsort [glob -types {{macintosh creator FOOC}} *.test]} msg] $msg \ + [catch {lsort [glob -types {{macintosh creator FOOC} {macintosh type FOOT}} *.test]} msg] $msg \ + [catch {lsort [glob -types hidden *.test]} msg] $msg \ + [catch {lsort [glob -types {hidden FOOT} *.test]} msg] $msg \ ] cd .. file delete -force globtest -- cgit v0.12 From f4f6ef461bd3f9e635f4f433c6a732fe4e5e4903 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 11 Oct 2018 11:31:29 +0000 Subject: Update URLs. changes file WIP. --- ChangeLog | 2 +- README | 22 +++++++++++----------- changes | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index e2881a0..84281bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,6 @@ A NOTE ON THE CHANGELOG: Starting in early 2011, Tcl source code has been under the management of -fossil, hosted at http://core.tcl.tk/tcl/ . Fossil presents a "Timeline" +fossil, hosted at https://core.tcl-lang.org/tcl/ . Fossil presents a "Timeline" view of changes made that is superior in every way to a hand edited log file. Because of this, many Tcl developers are now out of the habit of maintaining this log file. You may still find useful things in it, but the Timeline is diff --git a/README b/README index f286244..dae0dda 100644 --- a/README +++ b/README @@ -29,7 +29,7 @@ Tcl is maintained, enhanced, and distributed freely by the Tcl community. Source code development and tracking of bug reports and feature requests takes place at: - http://core.tcl.tk/ + http://core.tcl-lang.org/ Tcl/Tk release and mailing list services are hosted by SourceForge: @@ -37,7 +37,7 @@ Tcl/Tk release and mailing list services are hosted by SourceForge: with the Tcl Developer Xchange hosted at: - http://www.tcl.tk/ + http://www.tcl-lang.org/ Tcl is a freely available open source package. You can do virtually anything you like with it, such as modifying it, redistributing it, @@ -49,21 +49,21 @@ and selling it either in whole or in part. See the file Extensive documentation is available at our website. The home page for this release, including new features, is - http://www.tcl.tk/software/tcltk/8.6.html + http://www.tcl-lang.org/software/tcltk/8.6.html Detailed release notes can be found at the file distributions page by clicking on the relevant version. http://sourceforge.net/projects/tcl/files/Tcl/ Information about Tcl itself can be found at - http://www.tcl.tk/about/ + http://www.tcl-lang.org/about/ There have been many Tcl books on the market. Many are mentioned in the Wiki: - http://wiki.tcl.tk/_/ref?N=25206 + http://wiki.tcl-lang.org/_/ref?N=25206 To view the complete set of reference manual entries for Tcl 8.6 online, visit the URL: - http://www.tcl.tk/man/tcl8.6/ + http://www.tcl-lang.org/man/tcl8.6/ 2a. Unix Documentation ---------------------- @@ -101,7 +101,7 @@ There are brief notes in the unix/README, win/README, and macosx/README about compiling on these different platforms. There is additional information about building Tcl from sources at - http://www.tcl.tk/doc/howto/compile.html + http://www.tcl-lang.org/doc/howto/compile.html 4. Development tools --------------------------- @@ -127,7 +127,7 @@ see the "Support and bug fixes" section below. A Wiki-based open community site covering all aspects of Tcl/Tk is at: - http://wiki.tcl.tk/ + http://wiki.tcl-lang.org/ It is dedicated to the Tcl programming language and its extensions. A wealth of useful information can be found there. It contains code @@ -153,7 +153,7 @@ We are very interested in receiving bug reports, patches, and suggestions for improvements. We prefer that you send this information to us as tickets entered into our tracker at: - http://core.tcl.tk/tcl/reportlist + http://core.tcl-lang.org/tcl/reportlist We will log and follow-up on each bug, although we cannot promise a specific turn-around time. Enhancements may take longer and may not happen @@ -169,13 +169,13 @@ questions for which no one else is likely to know the answer. In addition, see the following Web site for links to other organizations that offer Tcl/Tk training: - http://wiki.tcl.tk/training + http://wiki.tcl-lang.org/training 9. Tracking Development ----------------------- Tcl is developed in public. To keep an eye on how Tcl is changing, see - http://core.tcl.tk/ + http://core.tcl-lang.org/ 10. Thank You ------------- diff --git a/changes b/changes index 040f360..1d5ba66 100644 --- a/changes +++ b/changes @@ -8830,3 +8830,21 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2017-12-19 (bug)[586e71] EvalObjv exception handling at level #0 (sebres,porter) --- Released 8.6.8, December 22, 2017 --- http://core.tcl.tk/tcl/ for details + +2018-02-11 (enhance) stop blocking conversion of object to/from class (coulter) + +2018-02-14 (bug)[9fd5c6] crash in object deletion, test oo-11.5 (coulter) + +2018-02-14 (bug)[3c32a3] crash deleting object with class mixed in (coulter) + +2018-02-15 (platform) stop using -lieee, removed from glibc-2.27 (porter) +***POTENTIAL INCOMPATIBILITY for math programs that embed Tcl*** + +2018-02-23 (bug)[8e6a9a] bad binary [string match], test string-11.55 (porter) + +2018-03-05 (bug)[1873ea] repair multi-thread std channel init (sebres) + + + + +- Released 8.6.9, October 17, 2017 - http://core.tcl-lang.org/tcl/ for details - -- cgit v0.12 From af3a20ad4e5a3f11a36e905a9f550e1e55b7dd38 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 11 Oct 2018 11:48:32 +0000 Subject: Mark test macOSXFCmf-2.8 non-portable. It appears to pass when the older HFS+ filesystem is in use, often on disk drives in older systems. It appears to fail when APFS is in use, more typical on newer SSD storage. --- tests/macOSXFCmd.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/macOSXFCmd.test b/tests/macOSXFCmd.test index 132b2fe..f1758f5 100644 --- a/tests/macOSXFCmd.test +++ b/tests/macOSXFCmd.test @@ -99,7 +99,7 @@ test macOSXFCmd-2.6 {MacOSXSetFileAttribute - hidden} {macosxFileAttr notRoot} { [catch {file attributes foo.test -hidden} msg] $msg \ [file delete -force -- foo.test] } {0 {} 0 1 {}} -test macOSXFCmd-2.7 {MacOSXSetFileAttribute - rsrclength} {macosxFileAttr notRoot} { +test macOSXFCmd-2.7 {MacOSXSetFileAttribute - rsrclength} {macosxFileAttr notRoot nonPortable} { catch {file delete -force -- foo.test} close [open foo.test w] catch { -- cgit v0.12 From a221655e1a955a3408ca1be006697de2cf25be19 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 11 Oct 2018 17:17:37 +0000 Subject: More updates to changes file. --- changes | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/changes b/changes index 1d5ba66..826a322 100644 --- a/changes +++ b/changes @@ -8833,6 +8833,8 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2018-02-11 (enhance) stop blocking conversion of object to/from class (coulter) +2018-02-12 (enhance) NR-enable [package require] (coulter) + 2018-02-14 (bug)[9fd5c6] crash in object deletion, test oo-11.5 (coulter) 2018-02-14 (bug)[3c32a3] crash deleting object with class mixed in (coulter) @@ -8844,7 +8846,41 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2018-03-05 (bug)[1873ea] repair multi-thread std channel init (sebres) +2018-03-09 (bug)[db36fa] broken bytecode for index values (porter) + +2018-03-13 (bug) broken compiled [string replace], test string-14.19 (porter) + +2018-03-14 (bug) [string trim*] engine crashed on invalid UTF (sebres) + +2018-04-17 (bug) missing trace in compiled [array set], test var-20.11 (porter) + +2018-04-22 (bug)[46a241] crash in unset array with search, var-13.[23] (goth) + +2018-04-30 (bug)[27b682] race made [file delete] raise "no such file" (sebres) + +2018-05-04 tzdata updated to Olson's tzdata2017c (jima) + +2018-06-04 (bug)[925643] 32/64 cleanup of filesystem DIR operations (sebres) + +2018-06-18 (bug) leaks in TclSetEnv and env cache (coulter) + +2018-06-24 (bug)[3592747] [yieldto] dying namespace, tailcall-14.1 (coulter) + +2018-07-09 (bug)[270f78] race in [file mkdir] (sebres) + +2018-07-12 (bug)[3f7af0] [file delete] raised "permission denied" (sebres) + +2018-07-26 (bug)[d051b7] overflow crash in [format] (sebres) + +2018-08-29 revised quoting of [exec] args in generated command line (sebres) +***POTENTIAL INCOMPATIBILITY*** + +2018-09-20 HTTP Keep-Alive with pipelined requests (nash) +=> http 2.9.0 +2018-09-27 (new)[TIP 505] [lreplace] accepts all out of range indices (porter) +2018-10-04 (bug) Prevent crash from NULL keyName (nijtmans) +=> registry 1.3.3 -- Released 8.6.9, October 17, 2017 - http://core.tcl-lang.org/tcl/ for details - +- Released 8.6.9, October 17, 2018 - http://core.tcl-lang.org/tcl/ for details - -- cgit v0.12 From 7c859988ba9114dbd02e99ca9bcd621690be101a Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 11 Oct 2018 17:47:05 +0000 Subject: Revert addition of "slowTest" as built-in constraint. (no TIP; no version bump). Let the test file that needs the constraint define it with existing facilities. --- library/tcltest/tcltest.tcl | 4 ---- tests/tcltest.test | 2 +- tests/winPipe.test | 1 + 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl index eb42ff1..f1b6082 100644 --- a/library/tcltest/tcltest.tcl +++ b/library/tcltest/tcltest.tcl @@ -1254,10 +1254,6 @@ proc tcltest::DefineConstraintInitializers {} { ConstraintInitializer interactive \ {expr {[info exists ::tcl_interactive] && $::tcl_interactive}} - # Skip slow tests (to enable slow tests add parameter `-constraints slowTest`) - - ConstraintInitializer slowTest {format 0} - # Some tests can only be run if the installation came from a CD # image instead of a web image. Some tests must be skipped if you # are running as root on Unix. Other tests can only be run if you diff --git a/tests/tcltest.test b/tests/tcltest.test index e176b0c..0bcf342 100644 --- a/tests/tcltest.test +++ b/tests/tcltest.test @@ -312,7 +312,7 @@ test tcltest-5.5 {InitConstraints: list of built-in constraints} \ -result [lsort { 95 98 asyncPipeClose eformat emptyTest exec hasIsoLocale interactive knownBug mac macCrash macOnly macOrPc macOrUnix macOrWin nonBlockFiles - nonPortable notRoot nt pc pcCrash pcOnly root singleTestInterp slowTest socket + nonPortable notRoot nt pc pcCrash pcOnly root singleTestInterp socket stdio tempNotMac tempNotPc tempNotUnix tempNotWin unix unixCrash unixExecs unixOnly unixOrPc unixOrWin userInteraction win winCrash winOnly }] diff --git a/tests/winPipe.test b/tests/winPipe.test index 2f59e96..b3624c2 100644 --- a/tests/winPipe.test +++ b/tests/winPipe.test @@ -30,6 +30,7 @@ testConstraint cat32 [file exists $cat32] testConstraint AllocConsole [catch {puts console1 ""}] testConstraint RealConsole [expr {![testConstraint AllocConsole]}] testConstraint testexcept [llength [info commands testexcept]] +testConstraint slowTest 0 set big bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n -- cgit v0.12 From 4dbcfc37b33a496443fc53bd18c1e6a5c9ada589 Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 15 Oct 2018 12:49:56 +0000 Subject: typo --- changes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changes b/changes index 826a322..62fdd4e 100644 --- a/changes +++ b/changes @@ -8858,7 +8858,7 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2018-04-30 (bug)[27b682] race made [file delete] raise "no such file" (sebres) -2018-05-04 tzdata updated to Olson's tzdata2017c (jima) +2018-05-04 tzdata updated to Olson's tzdata2017e (jima) 2018-06-04 (bug)[925643] 32/64 cleanup of filesystem DIR operations (sebres) -- cgit v0.12 From 691b2ab5c41065dcaf399427499e6ecd6e9b4586 Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 23 Oct 2018 23:34:34 +0000 Subject: update changes --- changes | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/changes b/changes index 62fdd4e..cef7989 100644 --- a/changes +++ b/changes @@ -8858,8 +8858,6 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2018-04-30 (bug)[27b682] race made [file delete] raise "no such file" (sebres) -2018-05-04 tzdata updated to Olson's tzdata2017e (jima) - 2018-06-04 (bug)[925643] 32/64 cleanup of filesystem DIR operations (sebres) 2018-06-18 (bug) leaks in TclSetEnv and env cache (coulter) @@ -8883,4 +8881,6 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2018-10-04 (bug) Prevent crash from NULL keyName (nijtmans) => registry 1.3.3 -- Released 8.6.9, October 17, 2018 - http://core.tcl-lang.org/tcl/ for details - +2018-10-18 tzdata updated to Olson's tzdata2017f (jima) + +- Released 8.6.9, October 31, 2018 - http://core.tcl-lang.org/tcl/ for details - -- cgit v0.12 From ccbbac847ad99b9cbb97ff5183f36c862a303bbe Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 29 Oct 2018 12:36:29 +0000 Subject: update changes --- changes | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/changes b/changes index cef7989..aa794ed 100644 --- a/changes +++ b/changes @@ -8881,6 +8881,9 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2018-10-04 (bug) Prevent crash from NULL keyName (nijtmans) => registry 1.3.3 -2018-10-18 tzdata updated to Olson's tzdata2017f (jima) +2018-10-26 (enhance) advance dde version (nijtmans) +=> dde 1.4.1 -- Released 8.6.9, October 31, 2018 - http://core.tcl-lang.org/tcl/ for details - +2018-10-27 tzdata updated to Olson's tzdata2017g (jima) + +- Released 8.6.9, November 9, 2018 - http://core.tcl-lang.org/tcl/ for details - -- cgit v0.12 From c65da32867fe25ae30a26d154a5a637c734de0c1 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 1 Nov 2018 15:26:12 +0000 Subject: update changes --- changes | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changes b/changes index aa794ed..7800289 100644 --- a/changes +++ b/changes @@ -8886,4 +8886,7 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2018-10-27 tzdata updated to Olson's tzdata2017g (jima) +2018-10-29 Update tcltest package for Travis support (fellows) +=> tcltest 2.5.0 + - Released 8.6.9, November 9, 2018 - http://core.tcl-lang.org/tcl/ for details - -- cgit v0.12 From 2577d3bd45bdf3d447208afa35b8610bd48d0674 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 1 Nov 2018 16:31:00 +0000 Subject: make dist --- unix/tclConfig.h.in | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/unix/tclConfig.h.in b/unix/tclConfig.h.in index 1721a84..a26a48f 100644 --- a/unix/tclConfig.h.in +++ b/unix/tclConfig.h.in @@ -31,6 +31,9 @@ /* Is the cpuid instruction usable? */ #undef HAVE_CPUID +/* Is 'DIR64' in ? */ +#undef HAVE_DIR64 + /* Define to 1 if you have the `freeaddrinfo' function. */ #undef HAVE_FREEADDRINFO @@ -196,9 +199,6 @@ /* Is 'struct dirent64' in ? */ #undef HAVE_STRUCT_DIRENT64 -/* Is 'DIR64' in ? */ -#undef HAVE_DIR64 - /* Define to 1 if the system has the type `struct in6_addr'. */ #undef HAVE_STRUCT_IN6_ADDR @@ -496,9 +496,6 @@ /* Define as int if socklen_t is not available */ #undef socklen_t -/* Do we want to use the strtod() in compat? */ -#undef strtod - /* Define to `int' if doesn't define. */ #undef uid_t -- cgit v0.12 From e2d299f77176b587e8995a54587bddf210af6560 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 2 Nov 2018 17:18:57 +0000 Subject: Fixed memory leak in TclOO.c:ObjectNamespaceDeleted, object mixins and object/class mutation. --- generic/tclOO.c | 9 +++++++-- generic/tclOODefineCmds.c | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/generic/tclOO.c b/generic/tclOO.c index 573df3e..39d3806 100644 --- a/generic/tclOO.c +++ b/generic/tclOO.c @@ -1035,7 +1035,6 @@ TclOOReleaseClassContents( if (IsRootClass(oPtr) && !Deleted(fPtr->objectCls->thisPtr)) { Tcl_DeleteCommandFromToken(interp, fPtr->objectCls->thisPtr->command); } - oPtr->classPtr = NULL; } /* @@ -1149,7 +1148,9 @@ ObjectNamespaceDeleted( TclOORemoveFromInstances(oPtr, mixinPtr); TclOODecrRefCount(mixinPtr->thisPtr); } - ckfree(oPtr->mixins.list); + if (oPtr->mixins.list != NULL) { + ckfree(oPtr->mixins.list); + } } FOREACH(filterObj, oPtr->filters) { @@ -1350,6 +1351,10 @@ TclOORemoveFromMixins( break; } } + if (oPtr->mixins.num == 0) { + ckfree(oPtr->mixins.list); + oPtr->mixins.list = NULL; + } return res; } diff --git a/generic/tclOODefineCmds.c b/generic/tclOODefineCmds.c index d5f4878..0271a43 100644 --- a/generic/tclOODefineCmds.c +++ b/generic/tclOODefineCmds.c @@ -1157,6 +1157,8 @@ TclOODefineClassObjCmd( TclOODeleteDescendants(interp, oPtr); oPtr->flags &= ~DONT_DELETE; TclOOReleaseClassContents(interp, oPtr); + ckfree(oPtr->classPtr); + oPtr->classPtr = NULL; } else if (!wasClass && willBeClass) { TclOOAllocClass(interp, oPtr); } -- cgit v0.12 From dc53840e353c04b7ec46e42347759fa9ca682258 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 8 Nov 2018 17:06:02 +0000 Subject: [86d249bcba] Make sure that tcltest::runAllTests actually returns 1 on failure Repairs TIP 525 implementation. --- library/tcltest/tcltest.tcl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl index 410aa24..d67a900 100644 --- a/library/tcltest/tcltest.tcl +++ b/library/tcltest/tcltest.tcl @@ -2752,6 +2752,7 @@ proc tcltest::runAllTests { {shell ""} } { variable numTests variable failFiles variable DefaultValue + set failFilesAccum {} FillFilesExisted if {[llength [info level 0]] == 1} { @@ -2841,6 +2842,7 @@ proc tcltest::runAllTests { {shell ""} } { } if {$Failed > 0} { lappend failFiles $testFile + lappend failFilesAccum $testFile } } elseif {[regexp [join { {^Number of tests skipped } @@ -2887,7 +2889,7 @@ proc tcltest::runAllTests { {shell ""} } { puts [outputChannel] "" puts [outputChannel] [string repeat ~ 44] } - return [info exists testFileFailures] + return [expr {[info exists testFileFailures] || [llength $failFilesAccum]}] } ##################################################################### -- cgit v0.12 From 13446e004af0e7e4579070f7a39b9b48b7500185 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 8 Nov 2018 17:32:28 +0000 Subject: typo --- changes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changes b/changes index 7800289..f201ac0 100644 --- a/changes +++ b/changes @@ -8884,7 +8884,7 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2018-10-26 (enhance) advance dde version (nijtmans) => dde 1.4.1 -2018-10-27 tzdata updated to Olson's tzdata2017g (jima) +2018-10-27 tzdata updated to Olson's tzdata2018g (jima) 2018-10-29 Update tcltest package for Travis support (fellows) => tcltest 2.5.0 -- cgit v0.12 From d16fc1a584edbda22d31fb06b50f3fe78439cdf2 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 9 Nov 2018 16:42:37 +0000 Subject: [35a8f1c04a] Fix bad lengths when creating string rep of some lists. --- generic/tclListObj.c | 19 ++++++++++++++++++- generic/tclUtil.c | 17 +++++++++++++++++ tests/list.test | 18 ++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/generic/tclListObj.c b/generic/tclListObj.c index 786e1ce..e42567e 100644 --- a/generic/tclListObj.c +++ b/generic/tclListObj.c @@ -1990,7 +1990,21 @@ UpdateStringOfList( * Pass 2: copy into string rep buffer. */ + /* + * We used to set the string length here, relying on a presumed + * guarantee that the number of bytes TclScanElement() calls reported + * to be needed was a precise count and not an over-estimate, so long + * as the same flag values were passed to TclConvertElement(). + * + * Then we saw [35a8f1c04a], where a bug in TclScanElement() caused + * that guarantee to fail. Rather than trust there are no more bugs, + * we set the length after the loop based on what was actually written, + * an not on what was predicted. + * listPtr->length = bytesNeeded - 1; + * + */ + listPtr->bytes = ckalloc(bytesNeeded); dst = listPtr->bytes; for (i = 0; i < numElems; i++) { @@ -1999,7 +2013,10 @@ UpdateStringOfList( dst += TclConvertElement(elem, length, dst, flagPtr[i]); *dst++ = ' '; } - listPtr->bytes[listPtr->length] = '\0'; + dst[-1] = '\0'; + + /* Here is the safe setting of the string length. */ + listPtr->length = dst - 1 - listPtr->bytes; if (flagPtr != localFlags) { ckfree(flagPtr); diff --git a/generic/tclUtil.c b/generic/tclUtil.c index 6eab7b8..d5cc7c2 100644 --- a/generic/tclUtil.c +++ b/generic/tclUtil.c @@ -1046,6 +1046,23 @@ TclScanElement( return 2; } +#if COMPAT + /* + * We have an established history in TclConvertElement() when quoting + * because of a leading hash character to force what would be the + * CONVERT_MASK mode into the CONVERT_BRACE mode. That is, we format + * the element #{a"b} like this: + * {#{a"b}} + * and not like this: + * \#{a\"b} + * This is inconsistent with [list x{a"b}], but we will not change that now. + * Set that preference here so that we compute a tight size requirement. + */ + if ((*src == '#') && !(*flagPtr & TCL_DONT_QUOTE_HASH)) { + preferBrace = 1; + } +#endif + if ((*p == '{') || (*p == '"')) { /* * Must escape or protect so leading character of value is not diff --git a/tests/list.test b/tests/list.test index dff5d50..2686bd7 100644 --- a/tests/list.test +++ b/tests/list.test @@ -128,6 +128,24 @@ test list-3.1 {SetListFromAny and lrange/concat results} { test list-4.1 {Bug 3173086} { string is list "{[list \\\\\}]}" } 1 +test list-4.2 {Bug 35a8f1c04a, check correct str-rep} { + set result {} + foreach i { + {#"} {#"""} {#"""""""""""""""} + "#\"{" "#\"\"\"{" "#\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\{" + "#\"}" "#\"\"\"}" "#\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\}" + } { + set list [list $i] + set list [string trim " $list "] + if {[llength $list] > 1 || $i ne [lindex $list 0]} { + lappend result "wrong string-representation of list by '$i', length: [llength $list], list: '$list'" + } + } + set result [join $result \n] +} {} +test list-4.3 {Bug 35a8f1c04a, check correct string length} { + string length [list #""] +} 5 # cleanup ::tcltest::cleanupTests -- cgit v0.12 From 4dc3934516e231e6d2b5170a2b2834c77840c4e8 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 9 Nov 2018 19:14:07 +0000 Subject: update changes --- changes | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/changes b/changes index f201ac0..1bae43b 100644 --- a/changes +++ b/changes @@ -8889,4 +8889,6 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2018-10-29 Update tcltest package for Travis support (fellows) => tcltest 2.5.0 -- Released 8.6.9, November 9, 2018 - http://core.tcl-lang.org/tcl/ for details - +2018-11-09 (bug)[35a8f1] overlong string length of some lists (owens) + +- Released 8.6.9, November 16, 2018 - details at http://core.tcl-lang.org/tcl/ - -- cgit v0.12