Poplog 15.53 for OpenVMS VAX 7.3 ================================ Douglas P. Fields, Jr. (symbolics@lisp.engineer), 30-SEP-2026. Poplog from the University of Sussex: Pop-11 with the VED editor, Prolog 3.2, Common Lisp 2.0 and Standard ML 2.1 in one system, plus the POPC/POPLINK/POPLIBR toolchain. Built natively on a simulated MicroVAX 3900 (SIMH) from the original VAX/VMS sources, with a recreated Linux bootstrap; installed and tested on a VAXstation 4000/60 and a VAXstation 4000/96. Not included: the REF, TEACH and DOC trees and the X Window System parts. Files ----- POPLOG1553_VAX_20260929.BCK the kit: BACKUP saveset of the whole tree, 3315 files, 50143 blocks POPLOG_INSTALL.COM installer (as SYSTEM) POPLOG_UNINSTALL.COM uninstaller (as SYSTEM) POPLOG_STARTUP.COM shares the saved images (as SYSTEM) POPLOG_SETUP.COM per-user setup (also in the kit) POPLOG_IMAGE_CHECK.COM image checksums (also in the kit) POPLOG1553_VAX_20260929_LIST.LIS BACKUP/LIST of the saveset POPLOG_STARTER_MANUAL.PDF, .HTML the Poplog Starter Manual poplog-15.53-openvms-vax-examples-20260930.zip 16 example programs, DCL tests, expected output, short snippets poplog-15.53-openvms-vax-source-kit-20260930.zip the original sources, patches, the recreated Linux bootstrap, generated files and rebuild guide README.TXT this file SHA256SUMS.TXT SHA-256 of every file here Requirements ------------ * OpenVMS VAX 7.3 (tested). No compiler or other product is needed. * Disk space on the system disk: about 59,000 blocks for the copy of the saveset, and then 110,286 free blocks when the installer starts (it checks). The installed tree takes about 70,000 blocks (measured on a VAXstation 4000/96); the saveset can be deleted afterwards. * The SYSTEM account (SYSPRV) to install; SYSGBL and PRMGBL to share the saved images, which SYSTEM has. * Ordinary users need no privileges. Installing (as SYSTEM) ---------------------- 1. Copy the saveset and the .COM files into one directory on the system disk: the saveset in binary, the procedures as text (FTP "ascii"; RCP also works). 2. A binary copy loses the saveset's record attributes. Put them back: $ SET FILE/ATTRIBUTE=(RFM:FIX,LRL:32256,MRS:32256,RAT:NONE) - POPLOG1553_VAX_20260929.BCK (The installer checks this and prints the command if it is needed.) 3. Install: $ @POPLOG_INSTALL or, over an existing Poplog installed by this kit: $ @POPLOG_INSTALL "" REPLACE It restores the tree to SYS$COMMON:[SYSLIB.POPLOG...], makes SYSTEM the owner with world read and execute, writes POPLOG_MANIFEST.LIS (every file it installed), sets LIB POPHOST for the machine, checks the 11 images, runs a test, shares the saved images and tests again. Measured: 1.5 minutes on a simulator, 6 on a VAXstation 4000/96, 12 on a VAXstation 4000/60. 4. Optional: to share the saved images again after every reboot, add this line to your site startup: $ IF F$SEARCH("SYS$COMMON:[SYSLIB.POPLOG]POPLOG_STARTUP.COM") - .NES. "" THEN @SYS$COMMON:[SYSLIB.POPLOG]POPLOG_STARTUP.COM On a standard system that is SYS$MANAGER:SYSTARTUP_VMS.COM. Where SYSTARTUP_VMS.COM is managed centrally, use the site hook it calls (for example SYS$COMMON:[SYSMGR]SYSTARTUP_SITE.COM). The installer says which. The installer changes no startup file, SYLOGIN, DCLTABLES, system logical name, UAF record, quota or known image. The only system-wide state it makes is the four shared images (permanent global sections, 2,458 global pages), which a reboot removes. Using it (any user) ------------------- $ @SYS$COMMON:[SYSLIB.POPLOG]POPLOG_SETUP.COM $ POP11 ! Pop-11; type ved hello.p for the editor $ PROLOG $ CLISP $ PML ! Standard ML Run a file directly with, for example, PROLOG FILE.PL or CLISP FILE.LSP. For Pop-11 use POP11 \%nort \%noinit FILE.P: VMS Poplog reads an unescaped % or * in an argument as an RMS wildcard. Site Pop-11 code goes in USEPOP:[POP.LOCAL.AUTO] (autoloaded) or [POP.LOCAL.LIB]; the uninstaller keeps such files. The Starter Manual's first chapter says how to start each language; the rest is Poplog's own primer, VED guides and introductions. Uninstalling (as SYSTEM) ------------------------ $ @POPLOG_UNINSTALL CHECK ! shows what would be deleted and kept $ @POPLOG_UNINSTALL It stops sharing the saved images, deletes each unchanged file the manifest lists by name and version, then the empty directories. It keeps, and lists in POPLOG_UNINSTALL_REPORT.LIS, any file that was changed or that it did not install. It refuses to run, changing nothing, if the manifest is missing or inconsistent. Run it when nobody is using Poplog. A startup line written as in step 4 above does nothing once Poplog is gone. What was changed, and why ------------------------- No running VAX Poplog survives, so the first compiler was recreated: the original POPC, POPLINK and POPLIBR sources run on Linux inside GetPoplog Seed's Pop-11 and write VAX MACRO, which the VAX assembled and linked. From there everything was built natively on the VAX with Sussex's own procedures. Two source patches were needed, both only for building; the [POP.SRC] in the kit is the original. The source kit's examples/poplog/source/README.md lists every difference. Measured results ---------------- * Example programs (Pop-11, Prolog, Common Lisp, ML): 32 of 32 checks pass on the simulator, the VAXstation 4000/60 and the 4000/96. * Hardest Sudoku in Prolog: 110 s on the simulator, 621 s on the 4000/60, 188 s on the 4000/96. Licence ------- Poplog is Copyright (C) 1981-1999 The University of Sussex, under an XFree86-style permission notice (see the source kit, directory examples/poplog/source/licences). The installer, procedures, scripts and documents written for this kit are offered under the same terms. "Poplog" is a trade mark of the University of Sussex. Credits: Aaron Sloman and the Poplog team at Sussex and Birmingham; the GetPoplog project (Seed), which runs the compiler on Linux today. Kit: Douglas P. Fields, Jr., with Claude Code.