From: <dg...@ni...> - 2009-05-19 20:20:54
|
I wanted to offer a possible support path for those with users on Tiger (Mac OSX 10.4) who wish to use Tcl 8.6, and need to use Tk Aqua as well. As recently mentioned here, the plan is for Tk Aqua version 8.6 to shift to an implementation on Cocoa, and the new implementation also adds a requirement of at least Leopard (Mac OSX 10.5). Those still using Tiger would be left with only Tk 8.5.* to work with. My sense is that the biggest problem with this situation for the Tiger users is that by getting stuck with Tk 8.5.*, the implication is that they are also stuck with Tcl 8.5.* and have to give up the new features arriving in Tcl 8.6. This is especially unwelcome for developers who have been working with Tcl 8.6 features in alpha/beta state and have come to rely on them. My sense (possibly completely wrong) is that there is much less loss within Tk itself getting stuck with version 8.5. Meaning no disrespect to those who have added features to Tk 8.6, there's just not a large number of them, especially when specifically considering their impact in a Tiger environment (corrections welcome). So, from that perspective, the key step to mitigate the loss to Tiger users is to break the linkage between Tk 8.5 and Tcl 8.5. That's what Tk Patch 2794032 does. Apply it to the core-8-5-branch of Tk and the resulting sources produce a Tk 8.5 library that will happily [load] into a Tcl 8.6 interp. The patch is simple. All it is doing is removing some defensive programming which forbade that combination based on a principle of an abundance of caution that changes in Tcl 8.6 *might* break Tk 8.5. We're late enough in Tcl 8.6 development now to have good confidence that's not going to happen, so a Tk 8.5 that assumes [load]ing into any Tcl 8.5+ interp will work makes sense. With Patch 2794032 applied and a Tk 8.5.8 release containing it, then a script application that needed to continue to support Tiger could do so with a package require Tk 8.5.0-8.6 when the app detects it is running on Tiger and just package require Tk 8.5.0 in other environments. The special requirement for Tiger is only necessary as protection against a Tk 8.6 that might somehow get installed on a Tiger system even though it doesn't work there. An app willing to risk an assumption that won't happen could get by with no changes at all. Hope that's a useful contribution to the controversy. DGP |