Tcl7.5b3 and Tk4.1b3 on VMS
angel.li@rsmas.miami.edu
Introduction
A port of Tcl7.5b3 and Tk4.1b3 is now available for VMS on both
Alphas and Vaxes. Shareable images of the Tcl and Tk
libraries are built by default and tclsh and wish
both link against them. Included in this port is an implementation of
the new Tcl command load, the command used to
dynamically load extensions. The BLT library is included and built as a
loadable module. Minimal testing was done on this port of Tcl. The
widget demo runs as does a medium-sized real-time data
display application written locally.
Tcl7.5/Tk4.1 is the first release that runs on Unix, MacOS and Windows.
What's New
All patches mailed to me since the a2 release have been integrated.
The b3 release of TCL/Tk adds support for TCP sockets. You
will need Multinet's product to
use sockets. I'm hoping someone does a port to UCX.
I've added TCL channel handlers for VMS devices. These are used for
stdin, stdout and stderr. VMS mailboxes
should also work with this channel handler.
One should be able to do asynchronous I/O to sockets and terminal
devices. The geturl program posted by Brent Welch on
comp.lang.tcl worked with this port.
This has been the only test of the socket code.
The exec command can't read from SYS$INPUT:, it is assigned
to NL:. This restriction is due to the fact that there's an associated
mailbox attached to SYS$INPUT and lib$spawn fails. If anyone
knows how to fix this I would appreciate they get in touch with me.
Background processes (i.e. exec'ed with an &) seem
to work better.
I keep telling myself that support for pipes is doable but I haven't
had the need to do it. Hell, I think that
expect should port
to VMS.
I've included a port of Ioi Lam's Tix 4.0.4
library. The file dialog works as expected.
A shareable library
of the library is included in the binary release. To use it, either
edit the file tclIndex and add a load command for the
library or prefix your scripts with the line
load tix tix
This assumes that the logical names TIXSHR and TIX_LIBRARY
are defined. The Tix widget demo runs.
12 April 1996 News
If you copied this Tcl/Tk release prior to noon 12 April 1996 EDT and
you are using sockets, please retrive the distribution again. Sockets
were really broken prior to this release (the DEC C socket routines
were being used by accident). The geturl.tcl source is included
in tcl-src.tgz for those that want to see and use actual
socket code. The only files that changed were
I've been told that porting the socket code to UCX might not be doable.
It seems that it is not possible to do an asynchronous accept. Also,
I could never figure out how to do non-blocking I/O like Unix does it.
How to Get It
Using anonymous FTP, connect to
mango.rsmas.miami.edu and cd
to the directory /pub/VMS-tcl/tcl7.5b3-tk4.1b3.
Here's a description of the files found there:
Building From Sources
To build the release from sources, you'll have to get my port of
the BSD pmake program available in
mango.rsmas.miami.edu.
The file
pmake-alpha.tgz is the Alpha version and
pmake-vax.tgz is the Vax version. Sorry about using
this version of make but that is what I use daily on
both Unix and VMS. If someone converts makefile.vms
to an MMS makefile, I'll include it in the distribution and try to
keep it up to date.
Note that the DEC C compiler, version 5.2, was used to build this release
not the VAX C or GNU C compiler. The include files are all different for each
compiler and it was a major pain in the butt to maintain. If you don't
have this compiler I hope the binary release is sufficiently useful.
A patch needs to be applied to a Multinet header file,
multinet_common_root:[multinet.include.sys]types.h. There's a
conflict if this file and DEC's types.h are both included.
Binary-only Distribution
Binary-only distributions are also available. Included are only the
executables for tclsh and wish, the Tcl
and Tk libraries in .olb and shareable images format,
the Tcl/Tk library files and a command procedure that defines the
needed logical names and symbols to use Tcl/Tk on VMS.
For the Alpha binary-only distribution, fetch the file
alpha-bin.tgz. Fetch
vax-bin.tgz for the Vax version. Create a new directory and extract
the files from the compressed tar file. Edit the file
[.com]setup.com and run that command procedure
to define all needed logical names and DCL symbols.
Running
The logical names TCLSHR and TKSHR need to
point to the location where tclshr.exe and tkshr.exe
are stored. The logical names TCL_LIBRARY and
TK_LIBRARY need to point to the Tcl and Tk run-time library
files. The value of these logical names need to be specified in Unix
syntax, i. e. /dev/dir/tcl75/library
. They are specified
in this format to minimize the number of changes to the core files.
Bugs
I'm very interested in hearing about bugs in this port. Fixes are also
welcome.
Last Modified: 12 April 1996