The Tcl Core Team is pleased to announce the 8.5.4 releases of the Tcl
dynamic language and the Tk toolkit. This is the fourth patch release
of Tcl/Tk 8.5. 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.5.4 sources are freely available as open source from the
Tcl Developer Xchange web site at:
http://www.tcl.tk/software/tcltk/8.5.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/project/showfiles.php?group_id=10894
Binaries for most major platforms are available from:
http://www.activestate.com/Tcl
For additional information:
---------------------------
Please visit the Tcl Developer Xchange web site:
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.5.3:
--------------------------------------
The following were the main changes in Tcl/Tk 8.5.4. A complete list
can be found in the changes file at the root of the source tree. The
more complete ChangeLog is also included with each source release. This
is a patch release, so it primarily included bug fixes and corrections
to erratic behavior. Below are only the most notable changes.
* Restored ability to compile Tk against the latest X header files
from X.org, which are incompatible with earlier Tk releases.
* Restored ability to embed non-stub-enabled Tk in a C program as a
static package using MSVC compilers, by providing a missing export.
* Restored ability to find packages on Samba shares on Windows.
* Fixed duplicate inode errors accessing native filesystem on Windows.
* Fixed crash in [ttk::scale].
* Fixed crashes in unmapped toplevel windows.
* Better internal rep preservation shimmering lists and dicts.
* Improved Tcl Module maintenance with automatic [package provide].
* Improved portability of value returned by [winfo id].
* Fixed rare panic in [scan].
--
Tcl Core Team and Maintainers
Don Porter, Tcl Core Release Manager
--
| Don Porter Mathematical and Computational Sciences Division |
| donald...@nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|
There was long dispute and some of you guys were saying "slip-up" etc.
I`ve just compiled 8.5.4 and couldn`t belive the bug was still there though
(quoting Ron Fox):
1.) the bug was extraordinarily simple
2.) there already existed a patch in the tracker
3.) but it was still missed again and again.
Sabotage or something? Repeating my question: how am I to consider Tk as a
serious toolkit?
--
Witek
http://trimen.pl/witek/
It would have been nice if you posted the bug number instead of the above URL.
> There was long dispute and some of you guys were saying "slip-up" etc.
>
> I`ve just compiled 8.5.4 and couldn`t belive the bug was still there though
> (quoting Ron Fox):
>
> 1.) the bug was extraordinarily simple
> 2.) there already existed a patch in the tracker
> 3.) but it was still missed again and again.
>
> Sabotage or something? Repeating my question: how am I to consider Tk as a
> serious toolkit?
By attempting to use the ones from Microsoft over two or three releases.
--
+--------------------------------+---------------------------------------+
| Gerald W. Lester |
|"The man who fights for his ideals is the man who is alive." - Cervantes|
+------------------------------------------------------------------------+
Here you are, 1936220
> By attempting to use the ones from Microsoft over two or three releases.
Why then tcl.tk website states that "applications that run unchanged across
Windows, Mac OS X, Linux and more." ?
--
Witek
http://trimen.pl/witek/
You might remember my reply to you.
http://groups.google.com/group/comp.lang.tcl/msg/998508cb960d9c4a
Or you might not, since you didn't answer back, or take the advice
I offered.
* First, since the bug is currently assigned to Jeff Hobbs, contact
him directly and courteously ask him what the status of this bug is,
pointing out that apparently a patch has been submitted.
* Second, take your local copy of tkfbox.tcl, where the bug resides,
patch it, and package it with your application. Then your program
will contain a file dialog that behaves properly, regardless of what
the dialog in the official distribution does.
It is assigned to "Jeffrey Hobbs". Ping him and seek out the answer.
Robert
It's not sabotage. Most likely the maintainer it's assigned to is too
busy with other things to fix it.
If you check the bug tracker you'll see we have many bugs to fix in Tcl
and Tk. There's forward momentum that occurs nearly everyday. I'm
sorry it's not enough for you though.
I have 3 patches that I'm waiting to hear some more about, before I
commit changes:
1967630 tclLoadDl.c using dlerror in a thread-unsafe way. I still
haven't heard from the maintainer of that area of the code.
2001201 Tcl_Finalize with multiple threads upon Tcl_Exit. This patch
fixes multiple bugs with different types of error paths in the Tcl
tracker AFAIK.
1828178 A TclExecuteByteCode virtual machine statistics patch I started
that Miguel Sofer extended. It seems most of the patches in the patch
section of tcl.sf.net go unreviewed, and uncommented on. I want to
finish this soon. I'm going to update it for the latest HEAD and try to
get it commited for 8.6.x.
So, my point is that you're not alone with your frustration, but it's
certainly not sabotage or some sort of conscious effort to leave the
source distribution broken.
I try to make a game out of it and fix a bug or help fix a bug once a week.
The TCT and maintainers/developers are here to help.
George
As the assigned maintainer in that area, I should note that indeed I'm
very busy most of the time. I should also reassign to Donal, as it
looks like a regression introduced by some Ttk upgrades of his.
> So, my point is that you're not alone with your frustration, but it's
> certainly not sabotage or some sort of conscious effort to leave the
> source distribution broken.
>
> I try to make a game out of it and fix a bug or help fix a bug once a week.
>
> The TCT and maintainers/developers are here to help.
Yes, to help, but not solve all the problems. Let's put this in
perspective for my particular (over)load ... looking at my 'My
SourceForge' page, I have 444 items assigned to me amongst multiple
projects (mostly Tcl and Tk, includes bugs, patches and feature
requests). In comparison, Tcl itself only has 365 open bugs. That
also doesn't include items in the ActiveTcl tracker, and numerous
other items I know need addressing.
ActiveState does offer support to enterprises that require it for
ActiveTcl and other dynamic languages. That doesn't mean I ignore
requests from non-customers or that I sit on my hands waiting for
people to sign on. Rather, I have healthy dose of daily items (oh,
they day job) that fill my plate, and only after that can I get to the
multitude of other items.
I do encourage others to sign on as maintainers to lighten the load.
While it can seem overwhelming, it is also rewarding.
Jeff
Witek,
Would you forward to me your suggested patches to fix this bug.
I agree with you that the error occurs
because ::tk::IconList_CurSelection{} returns a null list.
Jeff has assigned this bug to me. I'll help you get it resolved.
-Todd
Because most do.
I do encourage others to sign on as maintainers to lighten the load.
While it can seem overwhelming, it is also rewarding.
Jeff
How does one sign on as a maintainer ?
Sonya
See TIP 28. http://tip.tcl.tk/28
Not everything on that page is up to date, but the general information
should still be good enough to get you in the door.
Comment and a workaroud provided by Ian Gay
on 2008-04-09 can be found in followups of bug tracker:
http://sourceforge.net/tracker/index.php?func=detail&aid=1936220&grou...
and consists simply in adding a '-takefocus 0' option, in tkfbox.tcl
line 1155, when creating the Ok/Open button.
--
Witek
http://trimen.pl/witek/
It all boils down to popularity. The more users/companies who utilize
the software the more people/resources are available to act as maintainers.
Just from following the discussion, this doesn't look like a good
solution, afterall.
I'd find it a pity, if I couldn't <Tab> to the Ok/Open-button
(no matter how rarely I'd do it and instead just press enter).
Perhaps this is the reason, why it still isn't long done yet.
I've created a patch that does not require removing the focus.
I'm waiting for feedback before committing it to the 8.6 CVS head.
Try this out and see if you like it.
Index: library/tkfbox.tcl
===================================================================
RCS file: /cvsroot/tktoolkit/tk/library/tkfbox.tcl,v
retrieving revision 1.68
diff -r1.68 tkfbox.tcl
1615,1617c1615,1617
< set selIcos [::tk::IconList_CurSelection $data(icons)]
< set data(selectFile) ""
< if {[llength $selIcos] == 0 && $text ne ""} {
---
> #set selIcos [::tk::IconList_CurSelection $data(icons)]
> #set data(selectFile) ""
> #if {[llength $selIcos] == 0 && $text ne ""} {
1620,1624c1620,1627
< VerifyFileName $w $text
< } else {
< foreach item $selIcos {
< VerifyFileName $w [::tk::IconList_Get $data(icons) $item]
< }
---
> #VerifyFileName $w $text
> #} else {
> #foreach item $selIcos {
> #VerifyFileName $w [::tk::IconList_Get $data(icons) $item]
> #}
> #}
> foreach t $text {
> VerifyFileName $w $t
-Todd
> I'm waiting for feedback before committing it to the 8.6 CVS head.
The patch works well for me. I think it should be incorporated into next
release of 8.5 (not only 8.6 CVS)
--
Witek
http://trimen.pl/witek/
No, that doesn't work when selecting a single filename containing a space.
I recommend the following additional patch:
--- tkfbox.tcl#org 2008-08-21 15:03:39.000000000 +0200
+++ tkfbox.tcl 2008-08-25 11:48:52.052875837 +0200
@@ -1783,7 +1771,7 @@
if {[llength $text] == 0} {
return
}
- if { [llength $text] > 1 } {
+ if {$data(-multiple)} {
set newtext {}
foreach file $text {
set fullfile [JoinFile $data(selectPath) $file]
The code contains another small bug. Can you also apply the following patch when committing your code?
@@ -614,7 +614,7 @@
return
}
IconList_Selection $w clear 0 end
- IconList_Selection $w set anchor $i
+ IconList_Selection $w anchor $i
}
Koen
This is the revised patch:
Index: tkfbox.tcl
===================================================================
RCS file: /cvsroot/tktoolkit/tk/library/tkfbox.tcl,v
retrieving revision 1.68
diff -r1.68 tkfbox.tcl
617c617
< IconList_Selection $w set anchor $i
---
> IconList_Selection $w anchor $i
1611,1624c1611,1612
< # For the multiple case we have to be careful to get the file
< # names as a true list, watching out for a single file with a
< # space in the name. Thus we query the IconList directly.
<
< set selIcos [::tk::IconList_CurSelection $data(icons)]
< set data(selectFile) ""
< if {[llength $selIcos] == 0 && $text ne ""} {
< # This assumes the user typed something in without
selecting
< # files - so assume they only type in a single filename.
< VerifyFileName $w $text
< } else {
< foreach item $selIcos {
< VerifyFileName $w [::tk::IconList_Get $data(icons)
$item]
< }
---
> foreach t $text {
> VerifyFileName $w $t
1786c1774
< if { [llength $text] > 1 } {
---
> if {$data(-multiple)} {
Thanks for the feedback.
A bit more testing before I commit this to the CVS tree.
-Todd
About this last bug: it happens when you press and hold <Shift-Button1> in the dialog, and then move the mouse.
But the patch above is probably not right either; the following would be better:
@@ -581,12 +581,11 @@
if {$i eq ""} {
return
}
- set a [IconList_Index $w anchor]
- if {$a eq ""} {
- set a $i
+ if {[IconList_Index $w anchor] eq ""} {
+ IconList_Selection $w anchor $i
}
IconList_Selection $w clear 0 end
- IconList_Selection $w set $a $i
+ IconList_Selection $w set anchor $i
}
}
Koen
Hello Koen,
This does not work properly for me. when Shift_Button1 is used,
Nothing shows as selected, but filesnames appear in the File_Names:
entry widget.
-Todd
Are you sure? It seems to work properly for me.
Below is the complete patch I have for tkfbox.tcl.
Koen
--- tkfbox.tcl#org 2008-08-21 15:03:39.000000000 +0200
+++ tkfbox.tcl 2008-08-25 14:33:48.233159560 +0200
@@ -581,12 +581,11 @@
if {$i eq ""} {
return
}
- set a [IconList_Index $w anchor]
- if {$a eq ""} {
- set a $i
+ if {[IconList_Index $w anchor] eq ""} {
+ IconList_Selection $w anchor $i
}
IconList_Selection $w clear 0 end
- IconList_Selection $w set $a $i
+ IconList_Selection $w set anchor $i
}
}
@@ -1608,21 +1607,9 @@
set text [$data(ent) get]
if {$data(-multiple)} {
- # For the multiple case we have to be careful to get the file
- # names as a true list, watching out for a single file with a
- # space in the name. Thus we query the IconList directly.
-
- set selIcos [::tk::IconList_CurSelection $data(icons)]
- set data(selectFile) ""
- if {[llength $selIcos] == 0 && $text ne ""} {
- # This assumes the user typed something in without selecting
- # files - so assume they only type in a single filename.
- VerifyFileName $w $text
- } else {
- foreach item $selIcos {
- VerifyFileName $w [::tk::IconList_Get $data(icons) $item]
- }
- }
+ foreach t $text {
+ VerifyFileName $w $t
+ }
} else {
VerifyFileName $w $text
}
@@ -1783,7 +1770,7 @@
Yes this looks good, I misapplied your changes.
-Todd
-Todd
Don't forget, it's sometimes necessary to push the maintainers a bit
too. They've got their own priorities (of course) and otherwise worthy
patches can get omitted by accident. Squeaky wheels *do* get grease.
Donal.
> Don't forget, it's sometimes necessary to push the maintainers a bit
> too. They've got their own priorities (of course) and otherwise worthy
> patches can get omitted by accident. Squeaky wheels *do* get grease.
>
Maintainers, please consider building your code against Tcl/Tk 8.5.4,
then making certain your package's test suite runs successfully.
If the package makes it through that, then developers and users will
have a greater confidence in the latest Tcl release.