SwiftForth Beta Test Page

These are the release notes for the beta test channel for SwiftForth-i386 and SwiftForth-x64 for Windows, Linux, and macOS.

Important: Most of the SwiftForth/lib options have not yet been ported for x64 use. We’re just testing the base system for now.

SwiftForth 4.0.0-RC71 30-Mar-2023

  • Replaced D< and DU< with code versions. Many thanks to Heinrich Hohl for this contribution.
  • Corrected decode of SBB in x64 disassembler (instead of “SBC”)

SwiftForth 4.0.0-RC70 21-Mar-2023

  • Made sign-extend words in disassembler consistent between i386 and x64 versions
  • Removed extraneous BYTE and WORD specifiers in a few core definitions (e.g. C@, W@)
  • Fixed Windows stack display pane to show unsigned when BASE is HEX
  • Fixed stack comments for PUSH and POP macros
  • Added ADDR macro in x64 assembler
  • Added MOVSS to x64 assembler and disassembler
  • Fixed Windows REQUIRES path

SwiftForth 4.0.0-RC69 12-Jan-2023

  • Added code to CATCH and THROW that smudges the former return address (into CATCH) to prevent a discarded frame from being used by the system exception handler.

SwiftForth 4.0.0-RC68 08-Jan-2023

  • Added >L< (swaps bits 0-31 with bits 32-63 of top stack item).
  • Corrected comments for >H< and ><

SwiftForth 4.0.0-RC67 30-Nov-2022

  • Changed Windows ALLOCATE, RESIZE, and FREE to use the Heap functions instead of Global memory management.
  • Added a HeapValidate test to RESIZE and FREE to prevent 64-bit Windows crash
  • Moved the Global memory functions to the IDE window clipboard management (which should be the only place they are still needed)
  • Added the Forth 2012 test suite in SwiftForth/unsupported/forth-2012-tests
  • Corrected 32-bit return values in macOS EXTERN-CALL
  • Corrected arguments passed to Linux ftruncate64

SwiftForth 4.0.0-RC66 26-Nov-2022

  • Updated macOS property list to support library search on Big Sur
  • Updated to latest Cocoa library for macOS

SwiftForth 4.0.0-RC65 23-Nov-2022

  • Fixed macOS Rosetta tcgetattr and tcsetattr termios struct address issues
  • Fixed macOS Rosetta POLLFD address issue

SwiftForth 4.0.0-RC64 22-Nov-2022

  • First Cocoa release for macOS is available in /lib/cocoa.
  • Added test for valid address to vectored TYPE functions that would otherwise just silently fail. These will now generate an exception frame for the bad address.
  • Fixed REQUIRES search paths in Windows and macOS versions.
  • Optimized short literals on all platforms

SwiftForth 4.0.0-RC63 12-Nov-2022

  • Added quotes around the fill path sent to DROP-INCLUDE by drag/drop file handler in Windows GUI.
  • Expanded size of Windows KEYBUF and made the size and wrap constants.

SwiftForth 4.0.0-RC62 09-Nov-2022

  • Fixed CALLBACK: and underlying RUNCB code for macOS, Linux, and Windows versions.
  • Removed deprecated CB: alias. Just use CALLBACK: moving forward.
  • Removed KILL-TASKS, which could deadlock and prevent SwiftForth from exiting cleanly.

SwiftForth 4.0.0-RC61 02-Nov-2022

  • Fixed bug in thread ACTIVATE. Threads should now be working on all platforms.
  • Blocks and DBSS options have been ported.

SwiftForth 4.0.0-RC60 26-Oct-2022

  • The 32-bit binaries have been removed from the Linux version. Moving forward, we will only support 64-bit Linux versions.
  • Added second (optional) stack picture to FUNCTION: for floating point stack on macOS and Linux versions. Floating-point arguments must be doubles (IEEE-754 64-bit).
  • Updated PARAMETERS() to return four values. #RETURN (macOS and Linux) and ?RETURN (Windows) have been removed.
  • The floating-point .S extension can now non-destructively display up to 7 floating-point values.
  • The obsolescent IMPORT:, CFUNCTION:, and CIMPORT: defining words have finally been removed from the Windows version. Use FUNCTION: for all imported library words.

SwiftForth 4.0.0-RC59 15-Oct-2022

  • Restored ‘FONT (short for FONTS ADDR ) in the Windows font chooser.
  • Ported TCP/IP support on all three platforms in /lib/options.
  • Updated page zero size in macOS loader to 0x1000 for smaller size.

SwiftForth 4.0.0-RC58 10-Oct-2022

  • Fixed [R12] index mode in assembler and disassembler.
  • Began porting /lib/options. SINGLESTEP is ready to try.

SwiftForth 4.0.0-RC57 09-Oct-2022

  • Updated CASE and LOOP control structures to work correctly with 64-bit addresses on all platforms
  • Force cell alignment for PFAs in the SwiftForth kernel
  • Updated macOS installer package to install to /Applications/ForthInc-Beta instead of in the user’s home folder
  • Fixed macOS console input to work under Rosetta on Apple M1 and M2 systems

SwiftForth 4.0.0-RC56 03-Oct-2022

  • The macOS version is now installed as an Apple Package installer with code signing an Apple notarization as a trusted developer to make Gatekeeper happy on macOS Catalina and higher. Be sure to uninstall any macOS beta version before running the package installer.
  • The 32-bit binaries have been removed from the macOS installer as they are no longer usable
  • The Linux version is still a tarball and no longer includes the macOS components
  • The macOS sf-loader has been converted to a text file that is loaded in the sf binary image so the installer passes Apple notarization

SwiftForth 4.0.0-RC55 29-Sep-2022

  • Fixed Windows startup order so ROOTPATH is established before the ONSYSLOAD chain runs
  • Windows uninstaller is now correctly code signed
  • Fixed options loader and dialog boxes*

SwiftForth 4.0.0-RC54 28-Sep-2022

  • Fixed WIN32_FIND_DATA and FILETIME for Windows x64
  • Changed simple DIR to use class structures instead of PAD with offsets
  • Added some diagnostic info to the WINDOWS-CONSTANTS package
  • macOS executables are now code signed

SwiftForth 4.0.0-RC53 27-Sep-2022

  • Fixed WNDCLASSEX for Windows x64. This fixes a few broken dialog boxes (color picker, options -> warnings box)
  • Fixed the font in the Windows installer license and readme files to use a standard Windows font.

Installation Notes

Windows

SwiftForth for Windows is supplied as a Windows installer. It will use a different default installation path from your existing SwiftForth install to keep it separate for testing.

SwiftForth requires Windows 10 20H2 or later.

macOS

SwiftForth for macOS is supplied as an Apple installer package. After you download it, run the .pkg installer. It will install in your Applications folder as /Applications/ForthInc-Beta/SwiftForth. It will also add symlinks in /usr/local/bin so you can run sf and sfk from any Terminal session.

SwiftForth x64 requires macOS 11 (Big Sur) or later. (Apple ended support for macOS 10.15 Catalina in September 2022.)

Linux

SwiftForth for Linux is supplied as a tarball. After you download it, cd to the location in which you want it expanded (should be a different directory from your current SwiftForth) and unpack the tarball:

cd <new SwifForth parent directory>
tar -xzf <path to downloaded tarball>

Then cd to the new SwiftForth directory and run the install.sh script. It will install sf and sfk symlinks from /usr/local/bin back to the SwiftForth/bin/linux. It will also remove any ~/bin/sf* symlinks (so restore those later if needed).

cd SwiftForth
./install.sh

When you run sf from the command line, you should see this:

~$ sf
SwiftForth x64-<os> 4.0.0-RCnn <date>

General

A few notes:

*The SwiftForth/lib options have not yet been ported for x64 use. We’re just testing the base system for now.

Floating point support is now built in and fully tested to be Forth-2012 Standard compliant.

Please report any and all issues to support@forth.com.