SWI-Prolog 3.2.6 for OpenVMS VAX -- provenance of the sources
=============================================================

Original distribution (unchanged copy in [.SOURCE]PROLOG-3_2_6.TGZ):

  prolog-3_2_6.tgz   1,061,797 bytes
  SHA-256 15f02277431a735942a128e035bd2fde8a0004d9b8c4b8dd4c5c6aa01d3c1442
  found in the DECUS/Digiater OpenVMS Freeware archive, "vmslt99a/net/",
  dated 2-MAY-1999 (SWI-Prolog 3.2.6 of Jan Wielemaker, University of
  Amsterdam, http://www.swi-prolog.org/).  VERSION file: 3.2.6; header
  "Last update: Tue Jan 26 13:57:32 1999 (3.2.0)".  No VMS code in it.

  prolog-htmlmanual.html-gz   182,678 bytes   (the HTML manual of that
  version; kept as [.DOC]PROLOG-HTMLMANUAL.TGZ)
  SHA-256 60da71ea362584b5f479160944df7e895aaf7c4b32ae8cbefdbef7e290cd1d18

Licence: the SWI-Prolog LICENCE (clarified 6 August 1990), complete in
LICENSE.TXT.

Our changes (all in [.SOURCE.PATCHES], unified diffs against the original,
to be applied in file-name order; here the type is .PAT, in the project
repository .patch; generated files are not in the patches):

  01-pl-os-vms.patch          pl-os.c: PrologPath/OsPath, temporary file names,
                              hasConsole and okToExec also for __VMS
  02-pl-main-vms.patch        pl-main.c: findHome does not derive the home
                              directory from argv[0] (a VMS file spec); PLHOME
  03-pl-comp-sequence.patch   pl-comp.c: "PC + *PC++ + 1" (unsequenced) split
  04-pl-os-dollar.patch       pl-os.c: no $VAR expansion in file names on VMS
  05-pl-wam-argorder.patch    pl-wam.c: ar_func_n(*PC++, *PC++, ...) argument
                              evaluation order made explicit
  06-pl-os-getcwd.patch       pl-os.c: getcwd(buf, n, 0) (Unix-style result)
  07-pl-arith-vax-float.patch pl-arith.c: refuse + - * / that would overflow
                              VAX D_floating (a hardware fault)
  08-pl-read-vax-float-literal.patch  pl-read.c: float literals out of range
  09-pl-file-access.patch     pl-file.c: access_file(F, write) for a new file in an
                              existing directory (access() of a directory fails)
  10-pl-glob-vms-names.patch  pl-glob.c: directory entries lower-cased, no ;version
                              (so that '*.pl' finds LISTS.PL)
  11-pl-os-system-status.patch pl-os.c: shell/1,2: VMS status odd = success = 0
  12-pl-os-vms-absolute.patch pl-os.c: DEV:[DIR]FILE names are absolute as they stand

Added files ([.SOURCE.BUILD]):  VMS_CONFIG.H (replaces the autoconf config.h),
PARMS.H (parms.h), MALLOC.H (empty wrapper for <stdlib.h>, for [.RC]), BUILD_PL.COM,
RUN_BUILD.COM, STAGE_KIT.COM.  pl-wam.c is compiled with /NOOPTIMIZE: with the optimiser on,
Compaq C 6.4 produces an interpreter that crashes on a stack overflow.

Keep the source tree shallow when you rebuild: the compiler's [.RC.CXX_REPOSITORY]
must stay within the 8 directory levels of ODS-2 (RECREATE.md, step 2).

Build: see [.SOURCE.BUILD]BUILD_PL.COM; the full recipe with timings is
RECREATE.md of the project (https://github.com/LispEngineer/vms-exploration,
kits/prolog/).
