Am 05.02.12 23:29, schrieb Ryan Schmidt:
three weeks ago, i asked on macports-users how to proceed in cases where ports 
depending on Tcl with thread support should be realized. From my distant view, 
there are three options:

a) port variants (no good idea, since we can't have dependencies on these)
b) making tcl threaded by default (my personal favorite, other tcl unix distros 
went this way)
If that doesn't cause any problems for any ports using Tcl, then that seems 
easiest.
Is there any decision process in this regard on the way?
Should i simply wait a few weeks and bring this topic up again?
Or should i open a ticket, and submit a patch for the tcl portfile?
Other usages of subports i have seen are for version number management.
Like what? I've not seen that.

Currently subports are primarily used to offer multiple versions of each python 
module -- one for each version of python -- but the version number of the 
module usually remains the same. Same for each perl module -- one subport for 
each version of perl.
i have looked at subport usages in the python Portfiles; this is what i called "version number management".
Currently there is just a "tcl" port, no tcl8.4, tcl8.5 or tcl 8.6 port.
Correct; it was hoped that any software not compatible with tcl 8.5 would be 
updated soon to be compatible.
most but not all packages can be simply recompiled for tcl 8.5, some require at least changes in the portfiles (e.g. https://trac.macports.org/browser/trunk/dports/lang/tclx/Portfile).
tcl 8.6 appears to be in beta; presumably, when it's finalized, the tcl port 
will be updated to version 8.6 (and then no port for version 8.5 will remain).

Alternately, we could decide to offer separate ports for each tcl version, like 
we already do for python and perl, if that is deemed to be useful.
tcl 8.6 is in beta since a while (b1 dec 2009, b2 aug 2011), where the betas have a very good quality. The best cocoa support for tk is currently actually in the 8.6 head version in fossil (while the current tcl/tk port uses the X11 interface). From the survey at the last tcl conference, most people use Tcl 8.5, some use Tcl 8.6 (some use even still tcl 8.4).

Unfortunately, i expect more troubles for c-based extensions to upgrade from tcl 8.5 to 8.6 than for the upgrade from tcl 8.4 to 8.5. One reason is the NRE machinery (non recursive evaluation, allowing support for coroutines), which requires trampoline and non-trampoline implementations for c-functions (see http://www.tcl.tk/man/tcl8.6/TclLib/NRE.htm). Language level extensions (like http://next-scripting.org/) require a recompile with the tcl sources for Tcl 8.6. Furthermore, several people report worse performance from Tcl 8.6 compared to 8.5.

It looks to me as a good idea to provide in parallel a tcl8.5 and tcl8.6 port + subports for the packages.

Anyhow, currently i would be already much happier with thread support in tcl 8.5.

-gustaf neumann

_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Reply via email to