Tcl versions with threads enabled

Gustaf Neumann neumann at wu.ac.at
Mon Feb 6 08:15:01 PST 2012


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-dev/attachments/20120206/511f62ce/attachment-0001.html>


More information about the macports-dev mailing list