Re: libraries and itclsh missing from Tcl8.4?
- From: "Larry W. Virden" <lvirden@xxxxxxxxx>
- Date: 30 Apr 2007 05:00:16 -0700
On Apr 30, 4:16 am, susara <judi...@xxxxxxxxxx> wrote:
I've inherited a C/Tcl project that has to be upgraded from Tcl8.3 to
Tcl8.4. It builds on Linux and Windows, in Windows under mingw using
gcc and gmake. The upgrade under Linux/Debian was mostly simple;
uninstall the Tcl8.3, install Tcl8.4, and change all Makefile
references to -ltcl8.3 to -ltcl8.4.
I myself seldom uninstall the previous version. I install things in
directories with the version name in it, so that the versions can live
in parallel. That way, until I get a program upgraded to the new
version, it continues to run with the old libraries. Just a thought.
I was puzzled not to find any
itclsh in the new installation, but managed to hack that as the old
itclsh was still on the box. On the production (Slackware) box I had
installed Tcl8.4 as well as itcl3.2, but again no itclsh. Since we
don't need the itclsh run-time I ignored it.
itclsh isn't a library - it is a runtime interpreter. And it wasn't
something that was part of tcl 8.3 - instead, it was an add on
extension. Before Tcl 8.4, library developers sometimes included a
version of tclsh linked with their extension. Thus, itclsh was a
version of itcl linked into tclsh.
With tcl 8.4, it is much easier to load the extensions dynamically. So
generally, extension writers don't do this as often these days.
If you have an application looking for itclsh, you should be able to
use tclsh in its place. Just make certain to perform a
package require Itcl
as the first thing in the program and the effect _should be pretty
much the same. The one other thing I've seen people have to do is deal
with really old itcl code written before namespaces - the itcl
specific commands (class, etc.) now by default are itcl::class, etc.
And there's a namespace import type command one can use to get around
most of that.
Under Windows I had more missing stuff. I replaced the old ActiveTcl
installation with ActiveTcl8.4.9.1.
ActiveTcl is the base Tcl distribution, plus a lot of really useful
extensions that make programming in Tcl easier.
The Windows makefile lists a lot
of Tcl-related libraries, I don't know why and what they're used for.
The best thing to do is drop by http://wiki.tcl.tk/ and search for
ActiveTcl. There will be some info on the various extensions included,
and there might even be links to the specific write ups on the
extensions (if not, there probably will be soon).
I've managed to find the new versions for most of them (itcl32 ->
itcl3.3/itcl33, itk32 => itk3.3/itk33 etc). But these ones I can't
find in the new installation: itclstub32 itkstub32 snackstub21
tkx83.
those numbers are version numbers. So there should be an itclstup33,
itkstub33, and so forth to use in the place of the previous items.
But one
of the Tcl Makefiles calls itclsh32, which needs itcl32.dll - and that
is missing from the installation.
Update the makefile to call tclsh and then include a
package require Itcl
if the script it is calling happens to require Incr tcl.
.
- References:
- libraries and itclsh missing from Tcl8.4?
- From: susara
- libraries and itclsh missing from Tcl8.4?
- Prev by Date: Re: Trying to do a simple time command for procs...can't get output into console...
- Next by Date: Re: Packages and Expect
- Previous by thread: libraries and itclsh missing from Tcl8.4?
- Index(es):
Relevant Pages
|