SOURCES AND CHANGES -- SNOBOL4 (CSNOBOL4 0.99.4) for OpenVMS VAX kit
====================================================================

The sources in [SRC] are "The Macro Implementation of SNOBOL4 in C" (C-MAINBOL),
version 0.99.4, 11-AUG-1997, by Philip L. Budne, from the DECUS Symposium
collection VMS LT98A (net98a, snobol-0_99_4.tgz, SHA-256
f5ca03e4d2fe276d470c38bb6e75815949ff53853a3ee084c1b5e8b0090ec0df), with the
changes below.  The distribution is in the public domain; its notice (DOC,
README.) asks that a modified version "clearly identify your modifications as
well as the original source".  These are ours, made by Douglas P. Fields, Jr.
(symbolics@lisp.engineer), 12-OCT-2026, not Mr. Budne's.

  01  [SRC.LIB.AUXIL]GETOPT.C, [SRC.LIB]INIT.C
                              the private getopt() and its variables are
                              renamed snobol_getopt etc. (after the system
                              headers): the Compaq C library has getopt()
                              (%CC-E-PROMOTMATCH, MULDEF).
  02  [SRC.LIB.VMS]MSTIME.C   clock() instead of the VAX C struct tbuffer.
  03  [SRC.LIB.DUMMY]LOAD.C, [SRC]ISNOBOL4.C
                              the SIL procedure LINK (C function link()) is
                              renamed snobol_link: DEC C has link(2).
  04  [SRC.LIB.VMS]SYS.C      new: hwname() and osname() for HOST().
  05  [SRC.LIB.VMS]GETREDIRECT.C
                              ">file" creates the file with freopen(); the
                              creat()/dup2() with "rfm=var" made the C library
                              write every byte as a record.
  06  [SRC.LIB.VMS]VMSCALL.C, [SRC]PML.H
                              new: the VMS system-service and RMS functions
                              (Poor Man's LOAD), declared in pml.h.
  07  [SRC.LIB]IO.C           the -INCLUDE library directory is the logical
                              name SNOLIB: (VMS file specification rules).
  08  [SRC.LIB]IO.C           fwrite(cp, len, 1, f) instead of fwrite(cp, 1,
                              len, f): on a record file made by DCL (SPAWN
                              /OUTPUT=, a batch log) the C library wrote each
                              byte as a record of its own.

The shipped CONFIG.VMS]BUILD.COM and DESCRIP.MMS (tested "on AXP OpenVMS 6.1
using DECC 4.0" with 0.91.2) do not fit 0.99.4 and are not used:
[SRC]BUILD_SNOBOL.COM and BUILD_SNOBOL.LIS replace them.  Compiler flags (not
source changes): CC/NOLIST/NAMES=AS_IS/OPTIMIZE/DEFINE=(ANSI_STRINGS,NO_OFF_T)
/WARNINGS=(DISABLE=IMPLICITFUNC)/INCLUDE_DIRECTORY=([],[.INCLUDE]).

The full procedure to rebuild, with the changes as files and the recorded
timings, is SNOBOL_VAX_REBUILD.md in the vms-exploration repository.
