Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Tcl / Tk 8.6.11 RELEASED

923 views
Skip to first unread message

Don Porter

unread,
Jan 4, 2021, 8:10:05 AM1/4/21
to

Tcl/Tk 8.6.11 Release Announcement
December 31, 2020

The Tcl Core Team is pleased to announce the 8.6.11 releases of the Tcl
dynamic language and the Tk toolkit. This is the eleventh patch release
of Tcl/Tk 8.6. More details can be found below. We would like to
express our gratitude to all those who submit bug reports and patches.
This information is invaluable in enabling us to identify and eliminate
problems in the core.

Where to get the new releases:
------------------------------

Tcl/Tk 8.6.11 sources are freely available as open source from the
Tcl Developer Xchange web site at:

http://www.tcl-lang.org/software/tcltk/8.6.html

This web page also contains additional information about the releases,
including new features and notes about installing and compiling the
releases. Sources are always available from the Tcl SourceForge
project's file distribution area:

http://sourceforge.net/projects/tcl/files/

This distribution is source code only. We keep links to some third
parties offering pre-built binaries for various systems here:

http://www.tcl-lang.org/software/tcltk/bindist.html

For additional information:
---------------------------

Please visit the Tcl Developer Xchange web site:

http://www.tcl-lang.org/

This site contains a variety of information about Tcl/Tk in general, the
core Tcl and Tk distributions, Tcl development tools, and much more.

Summary of Changes since Tcl/Tk 8.6.10:
--------------------------------------

This is a patch release, so it primarily includes bug fixes and corrections
to erratic behavior. Highlighted changes are noted below. The changes file
at the root of the source tree contains a more complete list. The Timelines
of all changes are online.

http://core.tcl-lang.org/tcl/
http://core.tcl-lang.org/tk/

* Tk improvements on Mac OSX (including Big Sur) / Aqua
- Support that Big Sur calls itself Mac OSX version 11
- Startup improvements in Tk applications
- Keyboard: Rewrite of the Key event system, improved PressAndHold
- Menubar: unresponsive, special menus, standard about dialog
- Dark mode: white cursors, combobox focus ring, [winfo rgb]
- Full screen: tiled window support, introspection and events
- Mouse: revised default middle button bindings, drags across
title bar
*** POTENTIAL INCOMPATIBILITY ***
- Appearance: complete floating windows, progressbar animation,
colored text, compound buttons, boundaries, virtual events
- Semantic colors: systemControlAccentColor, systemLinkColor
- consistent finalization by different exit scenarios
- Fix frame offset after [wm manage]
- Fix -filetypes option for file dialogs

* [TIP 581] disfavor Master/Slave terminology

* Tk improvements on Windows
- Workaround Win 10 bug related to mouse warping, bind-34.3
- Stop [$treeview -show] growing width by 1 pixel
- Broken appearance of long angled text line display
- Ttk widget scaling on high resolution displays
- Improvements in default theme selection

* Revised handling of 4-byte UTF-8 sequences
*** POTENTIAL INCOMPATIBILITY ***

* Revised [binary (en|de)code base64] for RFC compliance and roundtrip
*** POTENTIAL INCOMPATIBILITY ***

* Tcl_DStringAppendElement # quoting precision, dstring-2.13,
dstring-3.10
*** POTENTIAL INCOMPATIBILITY ***

* Extended [clock scan] ISO format and time zone support
*** POTENTIAL INCOMPATIBILITY ***

* Allow for select/copy from disabled text widget on all platforms
*** POTENTIAL INCOMPATIBILITY ***

* Revised case of [info loaded] module names
*** POTENTIAL INCOMPATIBILITY ***

* [info hostname] reports DNS name, not NetBIOS name
*** POTENTIAL INCOMPATIBILITY ***

* Force -eofchar \032 when evaluating library scripts
*** POTENTIAL INCOMPATIBILITY ***

* Revised error messages: "too few" => "not enough"
*** POTENTIAL INCOMPATIBILITY ***

* Support system encoding init to utf-8 on Windows

* Fix crashes or hangs in...
- [lsort [lrepeat 89478486 {}]]
- program startup with NULL environment on Windows.
- errors in parser initialization
- Aqua window management interactions with Touchbar
- Aqua full screen toggle
- Aqua widget resizes during display callback
- Aqua color caching scheme
- Aqua button destruction during active animation
- X11: font initialization when no fonts installed
- X11: xft attempt to use Noto Color Emoji font
- X11: attempt to display angled text w/o xft, canvText-20.2

* Fix memory issues...
- proper ref counts for failed [superclass], oo-1.18.[45]
- index input validation for Tcl_Get(Range|UniChar)
- checking for trailing / on an empty path
- revise extensible structs to make more compiler checks happy
- invalid mem read buffer in Tk_PhotoPut(Zoomed)Block
- double free when entry validation sets text variable, entry-19.21
- read from before buffer in Tk_FreeSavedOptions

* Repair regressions in...
- \U1E2165 and \U10E2165 parsing stops, utf-10.[67]
- [string match \[a\u0000 a\x80] should return 0, util-5.52
- [string trim $invalid-utf-8], string-20.[78]
- support for com1: as Windows serial port
- handling of notebook option -compound
- Some bind scripts not eval'd in global scope
- <Escape><Control-c> bind sequence, bind-33.(16-21)

* Rewrite of zlib inflation for multi-stream and completeness

* Run fileevents in proper thread after [thread::attach $channel]

* Make combobox -postoffset option work with default style

* Support MouseWheel bindings for ttk::scrollbar

* Improve appearance of text selection in [*entry] widgets

* Make Ttk widgets respect -cursor option

* Make spinbox use proper names in query of option database

* Prevent unspecified fontchooser options reverting to defaults

* Internationalize font styles in fontchooser dialog

* Prevent cycle in command resolution, namespace-57.0

* Proper rejection of overlong sequences by Tcl_UtfPrev, utf-7.(24-46)

* Fix auto_path initialization by Safe Base interps

* Fix [expr 1e2147483648] to not return 0.0

* Treeview scrolling, entry-2.1.1, treeview-9.2

* Provide mouse binding for ttk::scrollbar grip

* Display treeview focus ring when -selectmode none

* Fix cascade tearoff menu redraw artifacts

* Corrupt result from [$c postscript] with -file or -channel

* Stop [unload] corruption of list of loaded packages

* Preserve canvas tag list order during add/delete

* Fix bad interaction between grab and mouse pointer warp, bind-36.1

* Fix errno management in socket full close

* Don't let focus events break entry validation, entry-10.1

* Handle duplicates in spinbox -values list, spinbox-4.[0-2]

* Fix [$canvas icursor] for non-default scroll region.

* Fix focus on unmapped windows, focus-7.1

* Win: env var encoding, env-2.5

* Encoding tis-620 failed to load

* Support for Unicode 13

* tzdata updated to Olson's tzdata2020e

* Updated bundled packages
- Itcl 4.2.1
- sqlite3 3.34.0
- Thread 2.8.6
- TDBC* 1.1.2
- http 2.9.5, binary POST, -keepalive, -headers type safety
- tcltest 2.5.3, -singleproc 1 exit codes
- registry 1.3.5, C++ compat
- dde 1.4.3, C++ compat
- opt 0.4.8
- platform 1.0.15

--
Tcl Core Team and Maintainers
Don Porter, Tcl Core Release Manager

--
| Don Porter Applied and Computational Mathematics Division |
| donald...@nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|

Harald Oehlmann

unread,
Jan 4, 2021, 8:31:03 AM1/4/21
to
Am 04.01.2021 um 14:09 schrieb Don Porter:
>
> Tcl/Tk 8.6.11 Release Announcement

Congratulation to Don and the great team to make this happen!
Thank you for your constant work on high quality TCL/Tk !
With appreciations,
Harald

Ralf Fassel

unread,
Jan 4, 2021, 1:05:59 PM1/4/21
to
* Don Porter <donald...@nist.gov>
| Tcl/Tk 8.6.11 Release Announcement
| December 31, 2020
>
| The Tcl Core Team is pleased to announce the 8.6.11 releases of the Tcl
| dynamic language and the Tk toolkit. This is the eleventh patch release
| of Tcl/Tk 8.6. More details can be found below. We would like to
| express our gratitude to all those who submit bug reports and patches.
| This information is invaluable in enabling us to identify and eliminate
| problems in the core.

Grrr... one time I do not check the pre-release et voila...

Ticket UUID: b89209f5cd549ecda8658c44616d29ba56fa78d7

When compiling with Visual Studio 2019 on Windows, using the Msys shell to
run the configure script, I get an error:

/bin/bash ./configure --enable-threads --disable-symbols --enable-64bit
...
make RC=rc STLIB_LD="link.exe -lib -nologo" SHLIB_LD="link.exe -dll -incremental:no -nologo"
...
cl -nologo [...] tclAppInit.obj tcl86.dll.a tclstub86.lib [...] \
tclsh.res -Fe"tclsh86.exe" -link [...]
cl : Befehlszeile warning D9024 : Unbekannter Typ der Quelldatei "tcl86.dll.a", Objektdatei wird angenommen.
LINK : fatal error LNK1181: Eingabedatei "tcl86.dll.a" kann nicht geöffnet werden.

Reason for the error is the "tcl86.dll.a" argument which is wrong IMHO (it
should be tcl86.lib, see below).

The same process runs fine with 8.6.10:

/bin/bash ./configure --enable-threads --disable-symbols --enable-64bit
...
make RC=rc STLIB_LD="link.exe -lib -nologo" SHLIB_LD="link.exe -dll -incremental:no -nologo"
...
cl -nologo [...] tclAppInit.obj tcl86.lib tclstub86.lib [...] \
tclsh.res -Fe"tclsh86.exe" -link [...]

As you can see, here "tcl86.lib" is used.

Reason is to be found in the win/configure script, where the single line
from 8.6.10
eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${LIBSUFFIX}\""
was replaced in 8.6.11 by
if test ${SHARED_BUILD} = 0 ; then
eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${LIBSUFFIX}\""
else
eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${DLLSUFFIX}.a\""
fi


But this is plain wrong when using the Visual Studio compiler.

Unfortunately I'm not fluent in configure, so I can't provide a patch
to resolve this.

TNX
R'

Óscar Fuentes

unread,
Jan 4, 2021, 8:15:37 PM1/4/21
to
Ralf Fassel <ral...@gmx.de> writes:

> Reason is to be found in the win/configure script, where the single line
> from 8.6.10
> eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${LIBSUFFIX}\""
> was replaced in 8.6.11 by
> if test ${SHARED_BUILD} = 0 ; then
> eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${LIBSUFFIX}\""
> else
> eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${DLLSUFFIX}.a\""
> fi
>
>
> But this is plain wrong when using the Visual Studio compiler.
>
> Unfortunately I'm not fluent in configure, so I can't provide a patch
> to resolve this.

The former code was correct for VC and wrong for MinGW. Now it's fixed
for MinGW and broken for VC. The correct thing is to detect MinGW (or
VC).

Christian Gollwitzer

unread,
Jan 5, 2021, 4:15:16 AM1/5/21
to
Am 05.01.21 um 02:15 schrieb Óscar Fuentes:
Now that we have Github Actions set up, would it be possible to run a VC
build there?

Christian

Ralf Fassel

unread,
Jan 5, 2021, 8:53:16 AM1/5/21
to
* Óscar Fuentes <osc...@telefonica.net>
(also added to ticket b89209f5cd549ecda8658c44616d29ba56fa78d7)

There is a section in win/configure.in which addresses the same issue for zlib:

AS_IF([test "$GCC" == "yes"],[
AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64/libz.dll.a])
], [
AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64/zdll.lib])
])

IMHO something along these lines should be applied to TCL_LIB_FILE, too.

R'

Ralf Fassel

unread,
Jan 5, 2021, 11:37:39 AM1/5/21
to
* Ralf Fassel <ral...@gmx.de>
| * Óscar Fuentes <osc...@telefonica.net>
| | The former code was correct for VC and wrong for MinGW. Now it's fixed
| | for MinGW and broken for VC. The correct thing is to detect MinGW (or VC).
>
| (also added to ticket b89209f5cd549ecda8658c44616d29ba56fa78d7)
>
| There is a section in win/configure.in which addresses the same issue for zlib:
>
| AS_IF([test "$GCC" == "yes"],[
| AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64/libz.dll.a])
| ], [
| AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64/zdll.lib])
| ])
>
| IMHO something along these lines should be applied to TCL_LIB_FILE, too.

(also added to ticket b89209f5cd549ecda8658c44616d29ba56fa78d7)

Maybe this patch should do it:

diff -u tcl8.6.11/win/configure.in\~ tcl8.6.11/win/configure.in
--- tcl8.6.11/win/configure.in~ 2020-12-11 18:46:23.000000000 +0100
+++ tcl8.6.11/win/configure.in 2021-01-05 17:15:36.311792936 +0100
@@ -311,7 +311,7 @@
eval "TCL_BUILD_STUB_LIB_PATH=\"`$CYGPATH $(pwd)`/${TCL_STUB_LIB_FILE}\""
eval "TCL_STUB_LIB_PATH=\"${libdir}/${TCL_STUB_LIB_FILE}\""

-if test ${SHARED_BUILD} = 0 ; then
+if test ${SHARED_BUILD} = 0 -o "$GCC" != "yes" ; then
eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${LIBSUFFIX}\""
else
eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${DLLSUFFIX}.a\""

Diff finished. Tue Jan 5 17:15:43 2021

R'

Donal K. Fellows

unread,
Jan 6, 2021, 11:09:06 AM1/6/21
to
On Tuesday, 5 January 2021 at 09:15:16 UTC, Christian Gollwitzer wrote:
> Now that we have Github Actions set up, would it be possible to run a VC
> build there?

I believe we already build with MSVC there, of at least some version. Not that that forces people to pay attention to it.

Donal.

Harald Oehlmann

unread,
Jan 6, 2021, 12:33:32 PM1/6/21
to
Ralf,
great work.

IMHO you should open a ticket on tcl core to get this is the distribution.

Just an idea,
Harald

Ralf Fassel

unread,
Jan 7, 2021, 5:39:47 AM1/7/21
to
* Harald Oehlmann <wort...@yahoo.de>
| Am 05.01.2021 um 17:37 schrieb Ralf Fassel:
--<snip-snip>--
| > Maybe this patch should do it:
| >
| > diff -u tcl8.6.11/win/configure.in\~ tcl8.6.11/win/configure.in
| > --- tcl8.6.11/win/configure.in~ 2020-12-11 18:46:23.000000000 +0100
| > +++ tcl8.6.11/win/configure.in 2021-01-05 17:15:36.311792936 +0100
| > @@ -311,7 +311,7 @@
| > eval "TCL_BUILD_STUB_LIB_PATH=\"`$CYGPATH $(pwd)`/${TCL_STUB_LIB_FILE}\""
| > eval "TCL_STUB_LIB_PATH=\"${libdir}/${TCL_STUB_LIB_FILE}\""
| > -if test ${SHARED_BUILD} = 0 ; then
| > +if test ${SHARED_BUILD} = 0 -o "$GCC" != "yes" ; then
| > eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${LIBSUFFIX}\""
| > else
| > eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl${VER}${DLLSUFFIX}.a\""
| >
| > Diff finished. Tue Jan 5 17:15:43 2021
--<snip-snip>--
| IMHO you should open a ticket on tcl core to get this is the distribution.

Already did

https://core.tcl-lang.org/tcl/info/b89209f5cd549ecd

(that's what I meant with

| > (also added to ticket b89209f5cd549ecda8658c44616d29ba56fa78d7)

:-)

R'

Ralf Fassel

unread,
Jan 7, 2021, 5:47:43 AM1/7/21
to
* "Donal K. Fellows" <donal.k...@manchester.ac.uk>
According to win/README, there are at least ways to build on Windows:

- If you are building with Visual C++, in the "win" subdirectory of the
source release, you will find "makefile.vc". This is the makefile for
the Visual C++ compiler and uses the stock NMAKE tool.

- If you are building with Linux, Cygwin or Msys, you can use the
configure script that lives in the win subdirectory.

I *think* the latter assumes that you're *not* using VC but the Mingw
toolchain (and thus gcc).

In our experience, the configure/vc combo was better suited within our
build environment than nmake/makefile.vc (too many assumptions in there
where the VC toolchain is, what the preferred compiler flags are, where
the output should go etc).

So we used

CC=cl configure ...

and up to now this worked well...

R'

Harald Oehlmann

unread,
Jan 7, 2021, 6:05:14 AM1/7/21
to
Hi Ralf,

great, thank you.

To my knowledge, Activestate has build with:
- Microsoft compiler (MS-VC6 at this time for 32 bit)
- msys / configure toolchain

The Makefile.vc toolchain is highly improved by Ashok now and to my
experience very relyable. Also, new targets were added for 8.7 zip file
support and deployment.

Thank you,
Harald

Dave

unread,
Jan 7, 2021, 8:52:01 AM1/7/21
to
On 1/7/2021 5:05 AM, Harald Oehlmann wrote:
>
> To my knowledge, Activestate has build with:
> - Microsoft compiler (MS-VC6 at this time for 32 bit)
> - msys / configure toolchain
>
> The Makefile.vc toolchain is highly improved by Ashok now and to my
> experience very relyable. Also, new targets were added for 8.7 zip file
> support and deployment.
>
> Thank you,
> Harald

I just built 8.6.11 a couple of days ago using msys/configure/mingw. It
worked perfectly.
--
computerjock AT mail DOT com

Donal K. Fellows

unread,
Jan 8, 2021, 9:30:11 AM1/8/21
to
On Thursday, 7 January 2021 at 10:47:43 UTC, Ralf Fassel wrote:
> According to win/README, there are at least ways to build on Windows:

You'll have to check the code to see for sure what ways we build on a daily basis, but I think we check at least that cl/nmake and msys-gcc/make work. The single-file executable builds are more restricted, but those aren't intended to do anything other than provide a simple preview.

Donal.

Ralf Fassel

unread,
Jan 11, 2021, 6:22:59 AM1/11/21
to
* "Donal K. Fellows" <donal.k...@manchester.ac.uk>
| On Thursday, 7 January 2021 at 10:47:43 UTC, Ralf Fassel wrote:
| > According to win/README, there are at least ways to build on Windows:
>
| You'll have to check the code to see for sure what ways we build on a
| daily basis, but I think we check at least that cl/nmake and
| msys-gcc/make work.

Please don't get me wrong here, I think the Tcl team does a great job
providing these options on Windows. I understand completely that you
can't check/test all possible combinations of compilers and
make/nmake/whatnot on Windows.

TNX
R'

Don Porter

unread,
Jan 15, 2021, 10:49:37 AM1/15/21
to


Tk 8.6.11 was recently released. It has been discovered that a typo in
its script library causes MouseWheel bindings to fail on a number of ttk
widgets. This problem is typically encountered on the Windows platform.
A ticket describing the problem is here:

https://core.tcl-lang.org/tk/info/7beaed7db6

The patch below corrects the syntax error. It should be applied to the
Tk 8.6.11 release before installing it or redistributing it.

Index: library/ttk/utils.tcl
==================================================================
--- library/ttk/utils.tcl
+++ library/ttk/utils.tcl
@@ -303,11 +303,11 @@
}
if {[tk windowingsystem] eq "aqua"} {
bind $bindtag <MouseWheel> "$callback \[expr {-%D}\]"
bind $bindtag <Option-MouseWheel> "$callback \[expr {-10*%D}\]"
} else {
- bind $bindtag <MouseWheel> "$callback \[expr {-%D/120)}\]"
+ bind $bindtag <MouseWheel> "$callback \[expr {-%D/120}\]"
}
}

## Mousewheel bindings for standard scrollable widgets.
#

For convenience, two alternative download files have been prepared with
this patch already applied. Other than the change made by the patch,
they both have the same contents as the Tk 8.6.11 release. The
alternative files are named tk8.6.11.1-src.tar.gz and tk86111-src.zip
and they are found in the same download area as the original release.

https://sourceforge.net/projects/tcl/files/Tcl/8.6.11/

We regret the error in the original release.

Glenn Jackman

unread,
Jan 18, 2021, 6:10:18 PM1/18/21
to
On Monday, January 4, 2021 at 8:10:05 AM UTC-5, Don Porter wrote:
> * Revised handling of 4-byte UTF-8 sequences
> *** POTENTIAL INCOMPATIBILITY ***

Where can I find more info about this? Is there a TIP?

--


--





welle ozean

unread,
Jan 19, 2021, 2:45:15 PM1/19/21
to
Does Tk 8.6.11 for macOS contain all mac enhancements of what was known as the mac branch?
Welle

Brad Lanam

unread,
Jan 19, 2021, 3:55:13 PM1/19/21
to
On Tuesday, January 19, 2021 at 11:45:15 AM UTC-8, welle ozean wrote:
> Does Tk 8.6.11 for macOS contain all mac enhancements of what was known as the mac branch?
> Welle

No. You need to build from the mac_styles-8_6_11 branch.
0 new messages