ISVs providing Linux downloads
Posted Sep 15, 2012 17:31 UTC (Sat) by khim
In reply to: ISVs providing Linux downloads
Parent article: Meeks: Linux on the (consumer) Desktop
I think you have missed one small yet vital letter. I'll highlight: totally incompatible between versions at the C A⇒B⇐I level. ABI, not API. Here we go:
$ objdump -T /usr/lib/libtcl8..so.0 | grep 'g DF' | cut -b 62- | sort | uniq -d | head
$ objdump -T /usr/lib/libtcl8..so.0 | grep 'g DF' | cut -b 62- | sort | uniq -d | wc -l
You can not easily use TCL in any library or plugin because of that. If one plugin will use TCL 8.4 and another plugin will use TCL 8.5 you'll have Russian Roulette: it may work for sime time, but nobody can predict when (and if!) it'll kill you.
Note that even Microsoft is guilty: .NET framework 1.x is totally incompatible with .NET framework 2.x. Thankfully they quickly dropped this insane idea and .NET frameworks 3.x were built on top of the CLR 2. .NET frameworks 4.x use different (and incompatible!) runtimes, but you can use in-process side-by-side hosting to run multiple versions of the CLR in a single process.
Sure, you can do with TCL using some tricks with dlopen and some recompileable shims (nVidia does this even with Linux kernel ABI which is infamous for it's instability!), but… this is not something TCL authors propose and support. They push for the same tried and found wanting "recompile the world" approach.
to post comments)