How to install PFE from the dnw branch

Last revision: August 19, 2020

The most recent version of my updates to Guido Draheim's SourceForge svn repository for PFE are to be found in branches/dnw/pfe-33. Since Guido has been inactive, they no longer get merged back into trunk/pfe-33.

On November 26, 2012, we switched entirely away from llvm on OS X, and went with the HPC (High Performance Computing) gcc 4.8.0. Starting with Catalina, macOS supports 64 bits only, with Xcode gcc based on llvm or clang only. Our old pfe64 continued to work with Catalina, but neither HPM gcc 4.8.0 nor Xcode gcc would build it. The update process was not smooth. See How to Install HPC gcc on Catalina for a description of the steps we followed.

The dnw branch adds logic for ABI_32 and ABI_64, which can be used with -D in the configure step to facilitate independent 32- and 64-bit builds on the same system, when the system allows it (Catalina doesn't, and Linux Mint soon will not either). It also revises LOOP+ so that it passes coreplustest.fth, by Gerry Jackson, et al., as well as M*/, so that it does floored division. AFAIK, no version of pfe is currently up to date for Forth 2012.

The following steps assume a 64-bit system. Presumably the dnw branch still works with 32 bits, but I can no longer verify that.

If you already have an svn checkout of the branch, just do  svn update  in the appropriate directory, and proceed with the build starting at step 3 or 4.

The configuration script in step 3 defaults to an installation tree rooted at PREFIX=/usr/local, but can easily be changed to another location, such as PREFIX=$HOME. It compiles a modification which avoids sscanf() in >FLOAT to pass the Gerry Jackson tests. It has worked with macOS 10.15.6 (Catalina) using HPC gcc 9.2.0 and Xcode 11.2.1, and Linux Mint 19.3 using gcc 7.4.0.

  1. Create a directory for an svn checkout. For example:
      /usr/local/svn/pfe_dnw
    
  2. Given the example directory, execute:
      cd /usr/local/svn/pfe_dnw
      svn checkout https://svn.code.sf.net/p/pfe/code/branches/dnw/pfe-33
    
  3. Ensure that the configuration script doconf-pfe64, is in your execution path.

  4. Execute:
      cd /usr/local/svn/pfe_dnw/pfe-33
      doconf-pfe64
    
  5. Still within the pfe-33 directory, execute:
      make
      make check
      make install