Tcl7.5a2 and Tk4.1a2 on VMS

angel@flipper.rsmas.miami.edu

Introduction

A port of Tcl7.5a2 and Tk4.1a2 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. The VMS port made some minor patches to the core source. Some of these patches will not be needed in some upcoming release of Tcl/Tk. The core files need not be patched if the modified files are separately maintained. It is hoped that John Ousterhout will integrate the patches into the official release.

How to Get It

Using anonymous FTP, connect to mango.rsmas.miami.edu and cd to the directory /pub/VMS-tcl/tcl7.5-tk4.1. The files tcl.diffs and tk.diffs are the patch files that need to be applied to a stock Tcl7.5a2 and Tk4.1a2 source directory. The file tcl-vms.tgz, a tar file compressed by GNU zip, contains the files that implement the VMS specific code for Tcl. The file tk-vms.tgz, a tar file compressed by GNU zip, contains the files that implement the VMS specific code for TK. Both of the tar files should be unpacked in the top-level source directory for both Tcl7.5a2 and Tk4.1a2.

A complete source distribution is also available. Get the files tcl-src.tgz and tk-src.tgz. The VMS-specific files are included in the latter two files.

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 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.

Binary-only Files

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]tcl-tk-setup.com and run that command procedure to define all needed logical names.

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. Unfortunately, I lost some mail files with bug reports from previous ports. Please mail me again if those bugs are persistent.