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 , 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/).