Port of Tcl7.0/Tk3.3 to VMS	   Sept 93

THIS IS SORT OF A 'BETA' RELEASE -- IT HASN'T BEEN EXTENSIVELY TESTED.
PLEASE FORWARD ANY PROBLEMS/FIXES;  I'LL FOLD THEM INTO A MORE BLESSED
RELEASE IN A FEW WEEKS.  THANKS!

I took Angel Li's port of tcl 7.0b2 and tk3.3b2 to Alpha/OpenVMS 1.5 and
Vax/VMS (see below), and got it working on our VAX/VMS v5.5 system.

o I created a descrip.mms file for [.tcl70] and for [.tk33].  We don't have
  the ported version of make used by makefile.vms.

  In the process I added a "test :" target that will run the Tcl and Tk
  test suites.  Many tests in the Tcl suite pass;  several don't.  All the
  Tk tests pass for me, except the last one (wm.test), which randomly gets
  hung.

  You can see logfiles of the builds and test-runs in
  [.tcl70]vms-make-test.log and [.tk33]vms-make-test.log.

o I included some patches that fix various problems, provided by 
  Scott Snyder and Bob LaGesse.  Also, several other people provided help
  with mods I needed to make to work around problems with the VAX C RTL and
  the VAX C compiler.

  The changes I had to make to the source, over and above the work Angel Li
  did, was:

      o I made it use the strtoul() from the Tcl distribution rather than
        the VAX C RTL one.  This may be a bug in my rev of the RTL;  other
        people have reported that strtoul() behaves fine for them.

      o I modified the #include in tkconfig.h which included
        "compat/unistd.h".  On the Alpha, you can convince the C compiler
        to read from a relative subdirectory.  On my VAX I can't.
  
o I also included the new Tcl command "vms" (by Scott Snyder) which gives
  the beginnings of access to VMS system services.

There is a (temporary?) mailing list vms-tcl@src.honeywell.com, for people
interested in Tcl and Tk on VMS.  Send mail to
vms-tcl-request@src.honeywell.com to join.

                                           John Kimball
                                           jkimball@src.honeywell.com

----------------------------------------------------------------------------
Port of Tcl7.0/Tk3.3 to VMS	   August 93

This is a port of tcl 7.0b2 and tk3.3b2 to Alpha/OpenVMS 1.5 and Vax/VMS.

o The file "makefile.vms" is a makefile accepted by our port of BSD/Reno
  pmake. Edit the file "arch.com" to echo either "vax" or "alpha" as
  appropriate. There must be a f$something that tells me if its a vax
  or an alpha.

o The logical name TCL_LIBRARY needs to be defined as a Unix-format directory
  e.g.

	$ define/job	TCL_LIBRARY	"/dka100/angel/tcl70/library"

  Defining it so simplifies the porting of unix .tcl scripts.

o The "glob" command now accepts Unix-style file specs.

o The "format" command on OpenVMS seems to work much better than on the
  VAX. "source tests/format.test" to see.

o The "open" command can't open a pipe. I'll probably get this working
  soon, it isn't too difficult to do (for a single pipe i.e. 
  [open "|show sys" r].

o To build, copy all the files in the [.vms] directory up one level.

o wish.exe only works when reading from a terminal. Redirecting sys$input
  to a file doesn't.

o Read the rest of this file, most caveats still apply.

Later,

angel@flipper.rsmas.miami.edu

Port of Tcl 6.7 to VMS     Apr 93

Done by Bhavesh Damania, with some assistance from John Kimball 
(jkimball@src.honeywell.com).

This file contains additional details regarding making the 6.7 version of
tcl run on the vms side.

Most Tcl stuff works.  The following tests blow up (they were deleted from
the [.tests] subdirectory] --
    cd.test  env.test   exec.text  file.text  glob.test  info.test
    open.test  scan.test  source.test
Most of these Tcl features do *something* -- most work, even usefully --
but the VMS behavior is different enough from the Unix that the tests
would need serious rewriting.

In [.tests]test-results.vms you can view the log of a sample run of the
(remaining) tests. You'll note that "format.test" runs oddly, due to VMS C
oddness.

The following files are notable:

makefile: The makefile for the vms-hosted version. It generates an
          executable version of tcltest.exe. Make sure that the variable
          TCL_DIR and CFLAGS fit your setup.

          We build this with "mms/descrip=makefile."

diff_unix_vms: Differences between the unix and the vms version.
           This is created using unix 'diff'.

[.library]diff_unix_vms: Differences between the unix and the vms version.



Port of Tcl 6.2 to VMS

Done by Angel Li

Hola,

This is my initial attempt at porting tk 1.4 and tcl 6.2 to VMS.  For tcl,
everything seems to work except for

	o pipelines in the "exec" command
	o opening a pipe with the "open" command
	o the "scan" command doesn't work like Unix's scan
	o the "format" command doesn't work like Unix's scan

I've tried to minimize the number of changes to the sources, it might have
a better chance of being integrated with the official release of tcl and tk.
The only major edit I've done was changing the filename "tclInt.h" to
"tclint.h".  Usually my sources are NFS mounted and Multinet maps "tclInt.h"
to some other similar name on the VMS side.  I could try putting a link in.
Anyhow, for now, the sources have the lower case names.

The "exec" command seems to work, even the asynchronous calls but currently
it is not possible to run an interactive program like an editor.  sys$output
is being redirected to a file so it can be trapped.  Any hints on how to
do this right are welcome.

The "times" command is only accurate to the nearest second because of my
emulation of the gettimeofday(2) call.  I could not get better accuracy than
a second by converting the VMS quadtime format to the Unix seconds-from-1-1-70
format.

The "glob" commands only accepts valid RMS wildcard specs.  It currently
returns fully qualified filenames i.e. "glob *.c" returns "dd:[dir]name.c"
instead of just "name.c".  If this really bothers me I'll parse the input
mask and output names and strip out the junk.

The "format" command returns results that are very unlike those expected by
the script format.test.  The results look right though, just mis-formatted,
way mis-formatted.  Look at tcl-format.out for results of the format test.
Sigh...

The "scan" command is broken and I haven't tried to debug it.  Both are probably
due to the funky VMS C runtime support.  Someone should port Torek's stdio
or the GNU libc or libg++'s stdio or ...

The file "makefile.vms" is what I use to build this package.  It defines
the logical name "TCL_LIBRARY" as the directory where the files in [.library]
are kept.  Install these any where you wish.  The make program I use is a
port of the BSD NET-2 pmake program.  The ":V" qualifier is a local mod
that generates a list of comma separated tokens.

Filenames may be specified in Unix format to those commands that have
filename-type arguments.  This is my preferred format.

Run all the tests to see what actually works.  Those tests that play with
files fail usually because of illegal file names or "exec" of Unix commands.


Good luck,

angel@flipper.rsmas.miami.edu
