SOURCES AND CHANGES -- Icon 9.0 for OpenVMS VAX kit
===================================================

The Icon sources in [SRC] are the University of Arizona's Icon 9.0 for VMS
(July 1994, "built and tested under VMS 6.0, and VAX C version 3.2") with the
changes below.  Icon 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), 11-OCT-2026, not the Icon Project's.

  00  [SRC.H]DEFINE.H         the line "#define Graphics 1" removed (IPD250,
                              step 3): no DECwindows headers or shareable
                              library are needed.
  01  [SRC.COMMON]TIME.C      struct tms is declared "#ifndef __DECC": Compaq
                              C's <time.h> declares it (%CC-E-REDEFSTRUCT).
  02  [SRC.RUNTIME]MAKE-ICONT.COM
                              (a) object XRGFSYS corrected to XRGFXSYS in the
                              link without Graphics (a typo in the shipped
                              procedure: %LINK-F-OPENIN); (b) [-.VMS]VMSCALL
                              compiled and linked into ICONX.
  03  [SRC.RUNTIME]INIT.R     the MAXMEM lookup, which refers to MEMSIZE (only
                              defined in the sbrk code that FixedRegions
                              leaves out), is compiled only without
                              FixedRegions: %LINK-W-USEUNDEF MEMSIZE otherwise.
  04  [SRC.RUNTIME]EXTCALL.R  the stub extcall() is left out on VMS;
      [SRC.VMS]VMSCALL.C      new: extcall() for VMS, giving callout() the
                              functions vms_getjpi, vms_getsyi, vms_trnlnm,
                              vms_time, vms_getmsg.

Compiler flags (not source changes), in BUILD_ICON.COM of the repository:
  CC/STANDARD=VAXC/NOLIST/DEFINE=("getopt=icon_getopt","optarg=icon_optarg",
  "optopt=icon_optopt","popen=icon_popen","pclose=icon_pclose")
  /WARNINGS=DISABLE=(MISSINGRETURN,NORETURNVAL)
Icon's own getopt, optarg, optopt, popen and pclose are renamed so that they
do not collide with the C library's.

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