Main Menu

SwiftForth Release History

Update policy

Updating to the latest version of SwiftForth is available to customers with current support subscriptions. The support subscription period included with your original purchase of a SwiftForth license or upgrade is one year. Support subscriptions may be renewed online for $129 per year. Included in the support period are unlimited downloads of new releases as well as engineer-level technical support via email.

SwiftForth-3.6.4 (21-Mar-2017)

ALL

  • Updated SwiftForth reference manual (additions and corrections).
  • Correct name ADDRESS-UNIT-BITS (was ADDRESS-UNITS-BITS) in environment query.

Linux and macOS

  • Expand path if needed, null-terminate filename before dlopen in LIBRARY.
  • Updated some comments to reflect Apple’s name change from OS X to macOS.

Windows

  • Expand path if needed, null-terminate filename before LoadLibrary in LIBRARY.
  • Clean up stack comments in a few source files.

SwiftForth-3.6.3 (29-Jun-2016)

Windows

  • Expanded clipboard text buffer (thanks to Mike Ghan).
  • Fixed >SHELL stack comments.

SwiftForth-3.6.2 (04-Apr-2016)

  • Fixed FATAN (thanks to George Kozlowski).
  • Updated installer script generation.

SwiftForth-3.6.1 (06-Feb-2016)

  • Software updates are now being delivered from our new server dl.forth.com
  • Due to security issues with public link expanders, we have abandoned the fth.link download links.
  • SwiftForth reference manual update. Thanks to John Rible for the corrections and additions.

SwiftForth 3.6.0 (31-Jan-2016)

ALL

  • Updated reference manuals (fixed a few typos).
  • Improved READ-LINE funcion.

Windows

  • Replaced old API function with one that uses a CHM file for Win32 API help.

SwiftForth 3.5.9 (12-Nov-2015)

ALL

  • Our notification emails now contain shortened URLs for the
    download links. A number of people had issues with their email clients
    splitting the long links in plaintext emails. This should solve that
    problem.
  • Updated to the released version of the Forth-2012 standard (PDF file in doc directory).
  • Fixed READ-LINE to comply with Forth standard.
  • Simplified transcendental functions in fpmath option.

Windows

  • Fixed bug in clipboard memory allocation.
  • Corrected some typos in source code comments.

SwiftForth 3.5.8 (24-Sep-2015)

ALL

  • Updated SwiftForth reference manuals.
  • Added type conversions to SwiftForth\lib\options\ip.f.
  • Added WDUMP to the DUMP tools for 16-bit word dump.
  • Added (B.0) and B.0 for formatted binary numeric output.
  • Split optimizer patterns into two sections.
  • Source file comment corrections and enhancements.
  • Updated FATAN2 to be standard compliant. Returned principle angle is in the range [-pi,pi] (formerly [0,2pi]).

Windows

  • Fixed “tabbed” demo.
  • Added UEDIT64 to the known editors list.
  • Replaced low-level Windows date/time access with a SWOOP object.
  • Removed ancient legacy date/time setting functions as these can’t be used in modern versions of Windows.
  • Added reg key and data access functions to registry.f.

SwiftForth 3.5.7 (22-Jan-2015)

All executables, drivers, libraries, and installers released under new GlobalSign code signing certificate.

SwiftForth 3.5.6 (26-Oct-2014)

ALL

  • Converted NR> to ICODE to prevent tail recursion. If you use NR>, you need this change. Thanks to Roelf Toxopeus.

SwiftForth 3.5.5 (19-Oct-2014)

ALL

  • Updated SwiftForth reference manuals.
  • Changed the wording of the error message when opening a library fails. Now says “Error opening library” instead of “not found”.

Linux

  • Added command-line option –uplink for interactive pipe operation.

SwiftForth 3.5.4 (03-Sep-2014)

ALL

  • Source file documenation update (mostly typos).

Linux and OS X

  • Refactored system timer code.
  • Use librt monotonic counter instead of gettime (Linux only). Thanks to Mike Ghan.
  • Enhanced editline features (VEOF, VWERASE, Ctrl-B, Ctrl-F, Ctrl-K, and Ctrl-L). Thanks to Marc Simpson.
  • Updated PDF reference manual (typos and corrections).

Windows

  • Updated Tetris sample code for current color mapping.

SwiftForth 3.5.3 (04-Feb-2014)

ALL

  • Changed all instances of DCOUNTER to uCOUNTER in lib/options files for cross-platform compatibility. (Thanks to Marc Simpson.)

Linux and OS X

  • Extended FUNCTION: to permit single- and double-cell return values (or no return, as before). (Thanks to Roelf Toxopeus.)

Windows

  • Added OPEN-SOCKS call on tcpip.f load and to ONSYSLOAD chain. This is required for the Windows TCP/IP interface only.

SwiftForth 3.5.2 (22-Dec-2013)

Linux

  • FILE-SIZE now uses lseek instead of fstat for better portability.

OS X

  • Improve SIGNAL handler for SIGINT during sleep.
  • Check for SIGINT return from nanosleep.

SwiftForth 3.5.1 (01-Dec-2013)

ALL

Minor update: Removed 3-line offset from LOCATE (by popular demand).

SwiftForth 3.5.0 (12-Oct-2013)

ALL

  • Ported the SwiftForth optimizer to the meta compiler used to
    generate the SFK kernel.
  • Added a subset of the optimizer rules to the kernel sources so the
    SFK kernel code is now optimzed. (Thank you Roelf Toxopius for the
    push to do this.)
  • Added .'(T) address illumination to the meta compiler for use as a
    debug tool when compiling custom kernels.
  • Added new Forth-2012 Standard word TRAVERSE-WORDLIST and ported
    WORDS and the cross-reference UNCALLED to use it instead of each
    having its own variant.
  • Moved COPY-WORDLIST to the PRIVATE section of package NAME-TOOLS
    in the new traverse.f source file.

Windows

  • Added CLASS GUICOMMON, a common ancestor for BASEWINDOW and BASEDIALOG.
  • Ported the word browser tool to use the common TRAVERSE-WORDLIST.

Linux and OS X

  • Added ior/throw codes to signal handlers for user interrupt, memory
    error, and divide by zero signals. Instead of throwing the generic
    IOR_SIGNAL, these signals will now throw their standard ior/throw
    codes.

SwiftForth 3.4.7 (21-Jul-2013)

ALL

  • Updated LOCATE (and friends) to show 3 lines previous to the located line.

Windows

  • Added deferred words for small and big toolbar BMP displays in frame.f.
  • Moved definition for HIDE from warnings.f to winmaker.f.
  • Extended list of common methods for dialog controls in winmaker.f.

SwiftForth 3.4.6 (24-May-2013)

ALL

  • EXISTS now returns a fully-formed flag.
  • Cleaned up some comments and source documentation.

Windows

  • Cleaned PROTECTION option in protection.f.
  • Added WSOCK32 option, a Winsock interface wrapped in a class. See SwiftForth/lib/options/win32/sockets.f.
  • Added “b” (unsigned binary) to SPRINTF types.
  • Added MI: to menucomp.f.
  • Use PARAMDIALOG instead of GENERICDIALOC in throws.f
  • Updated warnings config dialog to show extra options if PROTECTION option is loaded.
  • Updated winmaker.f for existing application code compatibility.

SwiftForth 3.4.5 (03-Oct-2012)

ALL

  • Improved comments for substring search words.
  • Added comments for floating point option bytes.
  • Standardardized default FP options to $F22. See fpconfig.f for details.

Windows

  • Improved GetDesktopSize in winmgmt.f.

Linux and OS X

  • Added display of CPU context and stacks after a SIGNAL. Includes
    traceback of both return and data stacks.

SwiftForth 3.4.4 (31-Jul-2012)

ALL

  • Fixed L in fileviewer.f for “no current file” case.
  • Gave GLOBAL: its own run-time code to avoid inlining by the optimizer.

Linux and OS X

  • Added sections on command-line arguments and environment variables to SwiftForth Reference Manual.
  • Updated comments in src/kernel/args.f for command-line arguments.

SwiftForth 3.4.3 (23-Jun-2012)

Windows

  • Added advanced layout tools for repetitive dialog boxes in SwiftForth/src/ide/win32/dialogs.f
  • Simplified pkcolor.f using the layout tools above.
  • Increased dictionary size requested by loader to 64MB.

Linux and OS X

  • Move initial stacks down in memory to allow a safety pad before the arg list passed in from the command line.

SwiftForth 3.4.2 (11-Feb-2012)

ALL

  • Added THROW# to system prune chain.
  • Source file comment corrections.

Windows

  • Update turnkey program generator for correct saving of sealed applications.

Linux

  • New ELF header format.
  • New turnkey program generator.
  • Fix program exit with no TTY.

SwiftForth 3.4.1 (14-Sep-2011)

ALL

  • Added output word H.8 (8-digit hex display).
  • Added WARNING bit for exception display.
  • Include info about R-ALLOC and R-BUF in exception output.

Windows

  • Fix Windows console-mode vectored KEY? and KEY functions.
  • Enhanced Windows exception display.
  • Fixed definition of RGB colors.
  • Added option to always show OS exception details.

SwiftForth 3.4.0 (08-Aug-2011)

ALL

  • Modified LIBRARY declaration so it smudges the dictionary entry
    for the library name if the library can’t be opened at the time it is
    defined (or is not marked as optional).
  • Fixed CB: so callbacks that take no parameters assemble the
    correct stack cleanup code.
  • PAGE clears the screen buffer (i.e. does not just scroll up).
  • INCLUDE (INCLUDE-FILE, etc.) will do nothing if the included file
    length is 0.
  • Added STRING operator DIVIDE, which splits a string into two
    parts. LOCATE DIVIDE in the SwiftForth debug window for details.

Windows

  • Overhauled the saving of SwiftForth program options in the Windows
    registry.
  • Added saving of “local” settings (debug window size,
    position, and colors) on a per-directory basis.
  • Removed global value THEKEY in favor of keeping a copy of the
    registry key on the stack or return stack and discarding it with the
    registry entry is closed.
  • The scrolling mode of words that generate lots of output (DUMP,
    WH, etc.) has been made optional. Look for “Pause while scrolling” on
    the Options|Preferences menu.
  • Saving options is no longer optional. On exit from the SwiftForth
    IDE, the configuration and window settings are updated in the registry
    unconditionally.
  • Replaced the old hand-crafted PE header with one built using a
    simple assembler loader and PE header. This provides a more standard
    PE header, which is less likely to be flagged by AV scanners. Another
    nice result of this is that program files (exe, dll, scr, or whatever)
    generated by SwiftForth can be signed with an Authenticode
    certificate using standard signing tool.
  • Added PROGRAM-SEALED, which should be used instead of PROGRAM if
    the turnkey program or DLL being generated is not extensible (does not
    extend the Forth dictionary space when it runs).
  • Both PROGRAM and PROGRAM-SEALED take an optional icon file name.
    The format is the same as previous versions of SwiftForth (single
    icon, 32×32 pixels, 16 colors). However, SwiftForth does a more
    strict format check of the ICO file header. You may need to update
    your custom icon files with an icon editor to be sure they have proper
    headers. As an alternative, you can always use a resource editor to
    replace the default SwiftForth icon with your own icon file in any
    format. The resource editors from Heaven Tools
    do the job nicely.
  • The initial cross-reference table is appended to the code image by
    PROGRAM. The separate XRF file is no longer generated or loaded.
  • Major update to the tools used to export DLL functions and build
    DLLs. The syntax remains the same. This is in support of the new PE
    loader format.
  • Updated the definition of HINST to use the GetModuleHandle API call.
  • Major update to the SwiftForth debug window. The TTY.DLL library
    is no longer required. The entire console window is now loaded from
    source as part of the Windows IDE. The source has been moved to the
    directory SwiftForth/src/ide/win32/tty/

OSX

  • Replaced the old hand-crafted Mach-o header with one built using a
    simple assembler loader. This provides a more standard Macho-o
    header, which is compatible with newer versions of the OSX dynamic
    program loader.
  • SwiftForth requires OS X 10.6 or later.

SwiftForth 3.3.2 (03-Jul-2011)

ALL

  • Changed NH from global variable to user variable.

Windows

  • Fixed warning message dialog box for imported functions from
    libraries that are marked [OPTIONAL] (e.g. TTY.DLL) and are called by
    a turnkey program at runtime. The reference to the called function’s
    pfa was incorrect, causing a program crash. It now functions
    correctly and issues a dialog box with details about the missing
    library and/or function.
  • Added information about Windows AV scanners with poor heuristics
    to the SwiftForth-Win32 installer.

SwiftForth 3.3.1 (20-Jun-2011)

ALL

  • Minor bug fix in PLACE.

Windows

  • Added TOOLTIPS option, with support for the Tooltip control.
  • Added DIALOG_TOOLTIPS, an example of a dialog box with tooltips for its controls.
  • Added DIALOG_APPLICATION, an example with a modeless dialog box as a standalone application.
  • Added IDSTRINGS extension to dialogs.f in Win32 IDE support.
    IDSTRINGS makes dialog boxes easier to build. There are no separate definitions
    of constants, no actual numbers in the dialog box template. The whole
    thing is compiled into the DLGCOMP package as an extension.

Linux and OSX

  • Updated FILE-SIZE and RESIZE-FILE and their underlying system
    calls to correctly use 64-bit file offsets.

SwiftForth 3.3.0 (02-May-2011)

ALL

  • First general release of SwiftForth including support for Linux and Mac OS X.
  • Documentation updates.
  • Added code to force top stack item to zero on launch.

Windows

  • Added simple parallel port access words to winio.f option.

SwiftForth 3.2.5 (10-Feb-2011)

ALL

  • Added BYE after ‘MAIN vectoring in START to handle a return from
    the vectored word.

Windows

  • Corrected processing of Windows message to fix broken “Break” button.
  • >PROCESS-WAIT now saves the process exit code in the variable
    ExitCodeProcess.
  • Added interfaces to InpOut32 and WinIO libraries as alternatives
    to GiveIO driver. REQUIRES INPOUT32 or REQUIRES WINIO to load them.
    See source files in lib/options/win32 for details.

Linux and OSX

  • Updated SwiftForth reference manual.
  • Added handlers for SIGCONT to correctly restore SwiftForth console
    I/O on ‘fg’ after Ctrl-Z.

SwiftForth 3.2.4 (11-Jan-2011)

ALL

  • Updated SwiftForth Reference Manuals multitasking sections.
  • Refactor ACTIVATE with separate CONSTRUCT so task’s user variables can be initialized before the task is activated.

Windows

  • Add TerminateThread function to fork.f option source.
  • Remove WaitForSingleObject function definition from commfunction.f option source.

SwiftForth 3.2.3 (05-Jan-2011)

ALL

  • Updated SwiftForth Reference Manuals.
  • Updated environment query support.
  • Improved the comments and made a general clean-up pass through aswoop.f, moving the obsolete swoop.f to the unsupported directory.

Windows

  • Removed superfluous :: references in many source files. These are no longer needed before Windows API calls.
  • Cleaned up callback code.
  • Improved A-TYPE< output in editline.f.
  • Updated Help menu.
  • Updated web browser URLs.
  • Wrapped runtime code for MI_PRINT, MI_SAVECOMMAND, and MI_SAVEHISTORY menu items inside an exception frame to handle the throw from cancel.
  • Added second cell to ‘MAIN for the application type (0=GUI; 1=Console; default is GUI).
  • Major overhaul of multitasking (threads) to better support 64-bit Windows versions.
  • Improved MOVEWIN and FONTMETRICS.
  • Added RESTART, which relaunches the SwiftForth environment just as it was
    originally started and quits the current instance. This is useful
    when working with Windows callbacks where an EMPTY tends to
    confuse Windows badly.

Linux and OSX

  • Added callback support (using CB: based on Windows version).
  • Split requires.f support for REQUIRES into separate Linux and OSX versions.
  • Fixed file type check so IS-FILE and IS-DIR work in both environments.
  • Made the multitasking (threads) support more compatible with the Windows version.
  • The root path is now derived from the path to the current executable. The FORTHINC environment variable is no longer used.

OSX

  • Ported sio.f serial port interface from Linux version.
  • Updated fp-passing.f (contributed by George Kozlowski).
  • Added timer callback sample itimer.f (contributed by Roelf Toxopeus).
  • Made OSX copy of fpconfig.f (not sharing the Linux one any more).

SwiftForth 3.2.2 (08-Jul-2010)

ALL

  • Updated SwiftForth Reference Manuals.
  • Modified FP control word default to mask underflow exception.
  • Added SWOOP Class Browser in lib/options.
  • Updated auxiliary trig functions in fpmath support.

Windows

  • Corrected +EXT stack problem in ofn.f.
  • Added GetWindowSize to winmgmt.f.

Linux and OSX

  • Fixed IS-DIR and IS-FILE tests.
  • Corrected FILE-SIZE operation.
  • Updated Linux stat and fstat functions to use libc calls.

SwiftForth 3.2.1 (28-Dec-2009)

ALL

  • Changed output in decompiler/disassembler to display unsigned
    32-bit literals and addresses where needed.
  • Fixed [IF], [THEN], etc. in the kernel meta compiler.

Windows

  • Fixed FUNCTION-EXISTS? so it correctly uses the new FIND-PROC parameters.
  • Added Notepad++
    to the list of known editors.
  • Extended the test in USE-NOTEPAD? to look for “NOTEPAD.EXE”
    instead of just “NOTEPAD” to allow for user-configured Notepad++
    editor.
  • Fixed -P in configuration.f so it parses the entire pathname
    passed in from the command line, even if it has spaces in it. This is
    primarily in support of the cross compilers that are built on top of
    SwiftForth.

Linux and OSX

  • Updated Section 7 of the SwiftForth Reference Manual.
  • Reorganized IDE source directories with common source files (most
    of them are common) in %SwiftForth/src/ide/ul. Subdirectories
    ul/linux and ul/osx have the platform-specific IDE source files.
  • Fixed GLOBAL: in ide and added GLOBAL: to kernel.
  • Add errno to kernel (defined with GLOBAL:) to support error
    checking after libc function calls.
  • Cleaned up Linux signal exception handling. Now using
    sa_sigaction instead of sa_handler and getting the user-level context
    pointer from from the ucontext_t structure whose pointer is passed to
    the sa_sigaction function.
  • Fixed KEY? in Linux sio.f.

SwiftForth 3.2.0 (24-Nov-2009)

ALL

  • Updated SwiftForth Reference Manuals.
  • /FORTH default search order has been simplified.
    Important: There is exactly and only one instance of FORTH in the
    search order after /FORTH.
    So don’t forget to use ALSO before you
    add to the search order.
  • AS has been moved to preamble.f (common to all).
  • SUPREME versions of DUMP, IDUMP, etc. have been moved to
    src/ide/tools.f (with the rest of the dump words).
  • Fixed CONVERT so its behavior conforms to ANS.
  • Fixed memory leak in }}free in fslib.
  • Fixed stray source comment in gaussj.f (part of fslib).
  • Adjusted case and source file path names in fslib/sciload.f so it
    works on all platforms.

Windows

  • Reorganized both kernel and IDE support for imported library (DLL)
    functions:

    • IMPORT: and CIMPORT: are obsolescent. Functions imported by
      SwiftForth are now all done using FUNCTION: (both in the kernel and
      the IDE). You are encouraged to transition to the use of FUNCTION:
      instead of IMPORT: for imported DLL functions.
      See section 8.2.1
      of the SwiftForth Reference Manual for details.
    • CFUNCTION: is no longer needed. FUNCTION: works for both Stdcall
      and C calling conventions. CFUNCTION: is still available, but it’s
      just a synonym for FUNCTION:.
    • Words defined by FUNCTION: are now just Forth words in the FORTH
      wordlist. The private, single-threaded wordlist and special extension
      to the compiler just to handle imported functions have been
      eliminated. This is a nice simplification and allows the use of all
      browsing tools (and even the decompiler) on FUNCTION: words as with
      any other Forth words in the dictionary.
    • IDE source file dllaccess.f has been replaced by imports.f.
    • Memory allocation words moved to separate source file allocate.f
      for consistency with Linux implementation.
    • /DLLS and /INTERNAL-DLLS have been replaced by /IMPORTS, which is
      defined in the kernel for basic library initialization and then
      extended in the IDE as needed.
  • Fixed broken samples in lib/options and lib/samples.
  • Added EMEDIT to the list of known editors in pickedit.f.
  • Added NO-XREF to turn off additions to the cross reference list.

Linux

  • Added library function import support to the kernel.
  • Replaced syscall interface with imported libc functions.
  • Memory allocation words moved to the kernel for consistency with
    Win32 implementation.
  • Signal trap handler has been split out from except.f and moved to
    its own source file trap.f to support the load order for the imported
    library functions.

SwiftForth 3.1.12 (24-Jul-2009)

ALL

  • Strip trailing spaces in >FLOAT.
  • Add +BAL to CS-PICK.
  • Use -13 throw code (as suggested in ANS Forth-94 standard) for word not found in dictionary.
  • ROOT-WORDLIST is the default set by -1 SET-ORDER (per ANS).
  • Added user variable >MAPPED to manage “mapped” files (mainly in support of INCLUDE-FILE).
  • Added CONVERT, the old number conversion primitive. This word is
    obsolescent and is included in support of legacy applications. Its
    function is superseded by >NUMBER.

Windows

  • Added support for all DCBflags bits in sio.f serial driver.
  • Fixed include paths in some Win32 samples (e.g. sokoban).
  • Use a local buffer instead of HERE for calendar.f Windows time and date functions.
  • Removed obsolete names DLL: and WINPROC: from Windows library support. Please use LIBRARY and FUNCTION: instead.
  • Updated KNOWN-EDITORS list in pickedit.f to support TextPad latest exe name.
  • Made DISPATCHER public in tasker.f (as it used to be before tasker reorg).
  • Simplified Windows constants interface in winconstants.f.
  • Simplified extern proc call in kernel/win32/imports.f.

SwiftForth 3.1.11 (03-Mar-2009)

ALL

  • Added NO-TAIL-RECURSION directive (used after a definition, like
    IMMEDIATE) to prevent tail recursion (converting a CALL to a
    JMP) by the optimizer.
  • Applied NO-TAIL-RECURSION to RESTORE in the DBSS package.
  • Updated \ to work inside block files.
  • Updated SwiftForth Reference Manual.

SwiftForth 3.1.10 (07-Jan-2009)

ALL

  • Added CMPXCHG instruction (32-bit only) to support multitasker
    facility variable operators.
  • Added common tasking.f for facility variables.

Windows

  • Replaced facility variable support with common one referenced
    above. No longer requires Windows critical section support.

Linux

  • Added multitasker support using POSIX threads.

SwiftForth 3.1.9 (22-Dec-2008)

ALL

  • Added kernel constants |FPSTACK|, |USER|, and |TIB| so these are
    available at runtime.

Windows

  • Fixed LIBRARY so it does not leave extra stack item if library is
    already defined.

Linux

  • Fixed SERIAL= and COM= in sio.f serial port support.
  • Use /proc/self/exe (or its equivalent) to determine path to
    executable when generating turnkey program.
  • Added pthreads multitasking support. See source file
    SwiftForth/src/ide/linux/tasking.f for details.
  • Added -NAME to strip off name and trailing / from a full path name string.
  • Added THIS-EXE-NAME to provide same function as Win32 version.
  • Correct number of parameters passed to sys_unlink.
  • Added sys_mkdir and sys_readlink system calls.

SwiftForth 3.1.8 (07-Oct-2008)

ALL

  • Perform addition of file name to files list both at beginning and
    conditionally at end of INCLUDED and MACRO-INCLUDED so file name is
    available for text macros.

Windows

  • Persistent command-line history (saved in “%USERPROFILE%\Application Data\ForthInc\SwiftForth_history.dat”).
  • Force high byte of DCBflags in sio.f to 0 when setting comm port
    parameters to clear XON/XOFF flow control.
  • Move “requires blocks” earlier in dbss.f to be within first 10
    lines for automatic options menu discovery.
  • New tty.dll with smaller virtual screen buffer size. The larger
    buffer caused a serious startup delay on some older versions of
    Windows.

Linux

  • Added sio.f serial port support with API based on the Win32 version. See source file for usage rules.

SwiftForth 3.1.7 (08-Aug-2008)

ALL

  • Added generic option to support run-time source macro
    interpretation. See SwiftForth/lib/options/macros.f for details.
    “REQUIRES macros” to load the source from the command line.
  • Put head back on ‘FNAME in kernel/src/files.f for use by the source macro
    interpreter.

Windows

  • Fixed long-standing bug in copy to clipboard from debug window.
    The buffer being passed to the clipboard is now truncated, which
    should provide better performance.
  • Removed unused source file SwiftForth/src/console/bufman.f.

SwiftForth 3.1.6 (24-Jun-2008)

Windows

  • Fixed column-width issue in debug window.
  • Fixed paste text to handle tab character as whitespace (instead of tab expansion) in debug window.

Linux

  • Moved the path to the editor to the buffer EDITPATH to allow
    turnkey programs to specify a different location for the editor
    script.
  • Fixed bug in LOCATE for words ending in ‘|’ (and not a cross-reference file/line pair).

SwiftForth 3.1.5 (13-Jun-2008)

ALL

  • Updated SwiftForth Reference Manual.
  • Expanded data formats in calendar.f.
  • .HISTORY displays command-line history.

Windows

  • Added modem status line tests to sio.f.
  • Added Komodo Edit to known editors list.
  • Added F8 (INCLUDE BUILD) and F9 (INCLUDE DEBUG) to editline input functions (like SwiftX).
  • Local directory added to the beginning of the list of paths used by REQUIRES.
  • New word .LAST-ERROR displays text message (if available) for most
    recent GetLastError result. Must be used immediately after returning from the
    function that returns the error.
  • Enhanced warning to display name of user variable whose definition breaks the callback limit.
  • Added environment query and display words FIND-ENV and PRINTENV.

Linux

  • Added recvfrom and sento functions to sockets.f.
  • Added GLOBAL: to dlaccess.f; defines a global data address in a library.
  • Ctrl-H backspaces in editline input.

SwiftForth 3.1.4 (27-Mar-2008)

ALL

  • Fixed bug in PRUNE that was allowing a MARKER (or REMEMBER) to
    roll back before the point protected by GILD.
  • Moved block (and block editor) support to SwiftForth/lib/options,
    renamed as blocks.f and blockedit.f.
  • Updated items in the word list searched by ENVIRONMENT?
  • Added initial port of the polyFORTH database support system
    (DBSS). ‘REQUIRES dbss’ to load.
  • Added .\” which is like .” but adds the quoted characters feature from S\”. Read
    the comment block at the top of src/ide/strings.f for details.
  • Updated the SwiftForth/unsupported/src2txt utility to use the new blocks support.

Windows

  • Updated Block Support appendix in SwiftForth Reference Manual.
  • Removed forced upper case in PROGRAM, the turnkey generator.
    Executable file will be as you type it, not forced to upper case.
    Automatically appended “exe” and “xrf” extensions are in lower
    case.
  • The SwiftForth kernel has been renamed from kernel.exe to sfk.exe
    and has also been given its own icon to distinguish it from the sf.exe
    turnkey GUI app. Change any kernel.exe references in your local
    batch files or Windows shortcuts to use sfk.exe instead. Use
    SwiftForth/bin/turnkey.bat as a model for generating a turnkey with
    the sf.ico icon.
    The installer will generate both sfk.exe and
    kernel.exe (which are identical) for the next few releases. The use
    of kernel.exe is deprecated (and it will go away in the near future).
  • Changed sfk.exe and sf.exe icons. The batch files
    that generate
    sf.exe replace the kernel’s “console” icon with a different one for
    the turnkey “GUI” program.
  • Added command .OPTIONS to display the entire LOADED-OPTIONS wordlist.

Linux

  • Preliminary draft of SwiftForth Reference Manual (Linux Version)
    is in SwiftForth/doc/swiftforth-linux.pdf.
  • Added $ command to send the rest of the command line to the Linux
    shell. LOCATE $ for details. Use >SHELL to send any command string to
    the shell.
  • The new $ shell command makes our limit LS obsolete, so LS will
    now just remind you to use $ instead.
  • Added the sendmail example to SwiftForth/lib/samples/linux.
    ‘REQUIRES sendmail’ to load.
  • Moved all syscalls to the kernel source to keep them in one place.

SwiftForth 3.1.3 (29-Feb-2008)

ALL

  • New word INCLUDING returns the address and length of the full
    filename currently being included. If you were digging down in the
    kernel source and using the undocumented variable ‘FNAME, this is now
    the official API. ‘FNAME is now headless (and subject to change). See
    the glossary at the end of Section 3.1 of the SwiftForth reference
    manual, or LOCATE INCLUDING, for details.
  • Fixed the case of the filenames after REQUIRES in the common
    lib/options and lib/samples directories for compatibility with the
    Linux case-sensitive file system.
  • Changed CD so it no longer does 0 WORD (thus consuming the whole
    line), but instead will honor quoted path names (which may contain
    spaces), or unquoted (no spaces). This permits comments to follow on
    the same line if a CD is done in a source file.
  • The cross-reference output now has the system “file number” along
    with the line number for each line displayed. This resolves a very old
    bug that prevents editing or locating cross-reference lines in any but
    the most recent xref output. This should be a great improvement for
    those who rely on the cross-reference utility.
  • Moved src/ide/win32/verbose.f from the shared src/ide directory so
    it can be used by the Win32 and Linux versions.
  • Added names for the terminal I/O “personality” vectors (the
    stucture pointed to by user variable ‘PERSONALITY). For example,
    ‘TYPE now returns the address of the TYPE vector. LOCATE ‘TYPE to
    find the kernel source file.
  • Changed the file viewer output routines (used by LOCATE) to start
    with the exact line located. N and B (“next” and “back”) are no
    longer confusing in their behaviors. Try it.
  • Moved envq.f (environment queries) to common src/ide
    directory.
  • Escaped characters in strings parsed by S\” (C\”, etc.) are case
    sensitive. This was the original intent for this function and is the
    direction the next Forth standard is heading. If you use these
    functions, be sure your escaped characters are in lower case.
    Read
    the comment block at the top of src/ide/strings.f for details.
  • Moved ANS Forth ENVIRONMENT? query function to common src/ide
    directory so it can also be used by the Linux version.
  • Suppress duplicate output in single-step utility.
  • Moved FILE-EXISTS to common preamble.f so it’s available to both
    Windows and Linux versions.

Windows

  • Updated SwiftForth Reference Manual.
  • New installer, splash screen, and About box artwork.
  • Changed the interpretation of file/line references in cross-
    reference output to handle click/right-click LOCATE and EDIT for new
    output format.
  • Increased the total dictionary size from 4 MB to 8 MB, consistent
    with the Linux version.
  • Changed REQUIRES to restrict it to common and Win32 lib
    directories. LOCATE REQUIRES to see the list of directories
    traversed.
  • Fixed sender and recipient address formats in the sendmail.f
    sample application.
  • Incorporated changes to BITMAP rendering from SFTalk posts
    submitted by Mike Ghan, extending the BITMAP class to handle 24-bit
    “TrueColor” BMP files.

Linux

Although SwiftForth-Linux is not yet in general release, enough
people are alpha-testing it to make it worthwhile maintaining the
release notes here. If you are interested in being on the alpha test
list and have a current SwiftForth support subscription, please send an email to
support@forth.com
with the subject line “SwiftForth-Linux testing”.

  • The editline function in the ‘sf’ turnkey now saves the command-
    line history in $HOME/.SwiftForth_history. When the turnkey command-
    line environment is loaded, it loads the saved history (used for up-
    arrrow and tab completion).
  • Added REQUIRES for library support. LOCATE REQUIRES to see the
    list (and order) of paths searched when loading library source.
  • Added several more syscalls to support the I/O needed by SwiftX
    cross compilers.
  • Improved the extended key decoding facility, which is now located
    in src/ide/linux/keydecode.f. Input line editing, history, tab
    completion, etc., all rely on this. We’re trying to make the command-
    line behavior as common to both Linux and Windows versions. We would
    have loved to use the GNU Readline library here, but can’t due to its
    licensing.
  • Floating math support now working in the Linux version. The
    configuration tool has not been ported yet, so we’re using defaults.
    “REQUIRES fpmath” to load it.
  • Added time and modified Julian date (MJD) calendar support. Note
    that words to set the date and time are not supplied as these are
    properly privileged system-level functions.
  • Added method to return to the most recent working directory using
    “cd -“. As with the bash version of cd, one level of OLDPWD is
    supplied. Repeated “cd -” commands will toggle the working
    directory.
  • Added parsing of cross reference file/line number pairs (ending in
    ‘|’) to LOCATE. Example: LOCATE 10 32| goes to line 32 of the source
    file from a recent WH (cross-reference) listing.
  • Ported the sendmail.f sample application from Windows to Linux.
    This uses the socket interface to establish a TCP connection with an
    SMTP server and send a text file as email.
  • Extended BYE so it calls ONENVEXIT and ONSYSEXIT chains before
    exit.
  • Changed the console terminal’s vectored PAGE behavior to scroll
    instead of clearing. This preserves “scrollback” in terminal emulator
    windows.
  • Fixed ANS file access methods such that they are no longer file
    creation methods. These codes are still passed to both OPEN-FILE and
    CREATE-FILE, but in the case of CREATE-FILE, they do not set the
    permission bits.

SwiftForth 3.1.2 (29-Jan-2008)

  • Fix initial memory allocation in xref. If you use SwiftForth to
    generate turnkey programs that call EVALUATE or use the interpreter
    but do not instantiate the debug window and have the cross reference
    turned off (FLOOR set to -1), you need this update.
  • Corrected check for error return in FILE-SIZE. If you run
    SwiftForth on older versions of Windows (95/98/Me), you need this
    update.
  • Fixed test for control character while parsing from included files
    such that it does not convert accented characters (codes in the range
    $80..$FF) to spaces. If you use accented characters in your source
    code, you need this update.
  • Replaced old windowed single-step debug utility with one that
    works in the main debug window, thus offering scrollback history of
    debug activity. This is now found in the SwiftForth/lib/options
    directory. The SSTEST example is in SwiftForth/lib/samples.
  • Moved Windows-specific user variables from the kernel to
    SwiftForth/src/ide/Win32/preamble.f.
  • Removed extra formatting from output message in REQUIRES.
  • Ensure ‘WF is properly initialized in turnkey startup.
  • Add pause before scrolling in words that generate large amounts of
    output in the debug window. Implemented in DUMP tools, cross
    reference, and disassembler.
  • Added filter to prevent cross reference output from displaying
    duplicate lines if more than one reference occurs on the same
    line.
  • Updated SwiftForth Reference Manual.

SwiftForth 3.1.1 (22-Jan-2008)

  • Added global kernel-specific <EOL> (line-end sequence) for cross-platform compatibility.
  • Changed most <CRLF> references to use <EOL>.
  • Turnkey program generator will not save the cross-reference list
    if ‘FLOOR is -1. ‘FLOOR is public so you can set it to -1.
  • Changed .CATCH behavior on the command-line to be a bit more user friendly.
  • Improved the output display when a THROW occurs while including a
    source file. Generally, the error message should only display next to
    the formatted display of the source line on which the THROW occurs. The source
    traceback shows the nested includes in reverse order, then ends
    without any additional error messages.
  • Windows console-mode I/O in kernel.exe has been extensively re-written to support re-directed console input.
  • The kernel start code has been reorganized to support common start
    behavior in Windows and Linux versions.
  • Improved the behavior of command-line processing in console and
    GUI modes. On failure, an option menu is presented. On success,
    falls through to QUIT without displaying a system greeting message.
  • This release notes file has been updated to use a less ambiguous date format.

SwiftForth 3.1.0 (17-Jan-2008)

Significant Changes

  • Reorganized kernel and IDE source directories. The upcoming
    SwiftForth-Linux version (later this year 🙂 will share much of the
    common code in the SwiftForth source tree.
  • INCLUDE-FILE (the inner working of INCLUDED and INCLUDE) has been
    completely re-written to read in an entire source file into virtual
    memory and parse it from there. This makes loading source files about
    25% faster than the old way (using READ-LINE) and also removes the
    arbitrary 250-character limitation on line length.
  • Extended the kernel target compiler to generate a cross-reference
    list. Cross references are now avaiable all the way back into the
    kernel source (nice feature if you use the cross reference tool).
  • Added cross-reference tool to evaluation versions.
  • Converted kernel into a Windows console app. GUI mode is optional
    and is loaded with the system extensions.
  • Re-wrote internals of the DLL library and function import routines.
  • Added more decriptive error messages for missing DLLs and imported functions.
  • Made DLLs and imported functions optional: Precede the definition
    with [OPTIONAL]. LOCATE [OPTIONAL] and read its comment block for
    details.
  • Added a new section to the SwiftForth reference manual:
    “Recompiling SwiftForth.”
  • Moved DUMP from IDE extensions to kernel.
  • Changed the kernel definition HI such that it first looks for a
    hi.f source file in the current working directory before falling back
    to the default location (SwiftForth\src\ide\win32).
  • Passwords are no longer needed for downloaded SwiftForth
    installers. The install key is now part of the download path.
  • Replaced the output PE file generation method in the kernel target
    compiler. Requires pehead.img in the kernel source directory, so don’t
    delete it.
  • Added ‘%’ filename expansion to the turnkey save routine. You can
    now type PROGRAM %SwiftForth\bin\sf1 and it will work.
  • Added -BALANCE and +BALANCE to turn on and off control structure
    checking done at the end of each colon definition. Default is +BALANCE
    (balance checking enabled).
  • Renamed the SwiftForth Reference Manual to swiftforth-win32.pdf (in the swiftforth/doc directory).
  • Updated SwiftForth/doc/handbook.pdf to the new 3rd Edition of Forth Programmer’s Handbook.
  • Added direct MSDN Win32 API Library link to Help menu.

Maintenance

  • Added line numbers to LOCATE output.
  • Modified WHERE and LOCATE output formatting to make them similar in appearance.
  • Cleaned up several source files: added comments, corrected typos, general clean-up. Lots more to be done here in subsequent releases.
  • Added PARSE-WORD (as described in the ANS Forth standard supplemental information).
  • Added [COMPILE] for legacy application support.
  • Moved SPRINTF support to options.
  • Fixed some minor issues in aswoop.f.
  • Updated SQLite source with changes from original author.
  • Removed single-step debug utility.
  • Added decode method for (CREATE) words in the disassembler.
  • Added check for runaway disassembly. This still needs some improvement, but it’s much improved.


SwiftForth 3.0.13 (04-Dec-2007)

  • NEW! Added directory SwiftForth/Unsupported/Contrib for contributions and sample code from SwiftForth users. If you have code to contribute, please email it to support@forth.com with “SwiftForth Contribution” in the subject line.”
  • NEW! Added directory SwiftForth/Unsupported/SQLite with sample SQLite interface.
  • Added missing BSF and BSR opcodes to the disassembler.
  • Updated the “HelloWin” sample code: changed “Windows 95” to just plain “Windows”. Replaced the WAV file, too (voice of Leon Wagner, in case you wonder).

SwiftForth 3.0.12 (18-Sep-2007)

  • Changed the definition of NAMED in class ENTITIES, and ANOTHER in class LOCAL-VARIABLES to correct a bug where the use of (LOCAL) was not handled correctly for the “0 0 (LOCAL)” case.
  • Added >PROCESS-WAIT which launches a process given the full text string for the Windows command line and waits until the process terminates before returning to SwiftForth. LOCATE >PROCESS-WAIT and read its comment block for details.
  • Force DECIMAL during cross-reference output. Preserve oroginal base across call to WH ( WHERE )

SwiftForth 3.0.11 (11-Jul-2007)

  • Added CFunction: which works just like Function: but is used instead for C-prototype DLL calls. Use Function: only for Pascal-prototype function calls.
  • Corrected TAB-NOTIFY in Samples\Win32\Tabbed.f.
  • Updated SwiftForth Reference Manual.

SwiftForth 3.0.10 (04-May-2007)

  • Changed reference to ?.STATUS in Lib\Samples\Win32\Terminal.f to SIO.STATUS to call the correct support function in Sio.f.
  • Corrected comments in various source files.

SwiftForth 3.0.9 (21-Apr-2007)

  • Changed “REQUIRES CommonDlgConstants” to “REQUIRES CommonDialogConstants” in Lib\Options\Win32\Choosepath.f to match the actual filename.
  • Changed reference to .STATUS in Lib\Samples\Win32\Serial.f to SIO.STATUS to call the correct support function in Sio.f.
  • Added DEFER BAD-DLL and DEFER BAD-PROC hooks to allow the handers in Src\Ide\Win32\Dllaccess.f for bad library and function names to be changed.
  • Enhancements to command-line editor in Src\Ide\Win32\Editline.f:
    1. Allow up/down arrow keys to invoke auto-complete if not at line start.
    2. Save all lines one or more chars long into history buffer.
    3. Ctl Shift Del = Delete to End of Line.
    4. Ctl Home = Show History.
    5. F3 = Append Last to EOL (like DOS).
    6. Auto-complete comparison is now case-insensitive.
    7. Fixed a few zero length bugs (ie DO >> ?DO).
  • Corrected reference to release history file in the Help menu.
  • Increased NOBJECTS in LOCAL-OBJECTS from 8 to 20.
  • Added toggle window function to wordlist browser.
  • Updated SwiftForth Reference Manual.
  • Fixed IS-SUBDIR test in REQUIRES to descend into subdirectories only based on DIR flag.

SwiftForth 3.0.8 (18-Feb-2007)

  • Replaced ANS forth reference DPANS94.pdf with an updated PDF. The original had a problem displaying pages past 25. This has been corrected.
  • Added “launch SwiftForth” to the end of the installer.
  • Removed clipping of saved debug window origin to (0,0) to better support multi-display environments.

SwiftForth 3.0.7 (05-Jan-2007)

  • Added RStruct.f (from Charles Melice) to Lib\Options. See source file for details.
  • Added ASwoop.f (from Gene LeFave) to Src\Ide\Win32, included in Hi.f. See source file for details.
  • Changed window placement handling at startup to confine the
    SwiftForth debug window to the Windows “Work Area” to prevent it from
    being hidden under the taskbar.

SwiftForth 3.0.6 (27-Nov-2006)

  • Changed the behavior of INCLUDE-FILE-COMMAND (invoked by Include on the File menu) to wrap double quotes around the included file name for compatibility with the new INCLUDE, introduced in SwiftForth 3.0.5. Thanks, Randy.

SwiftForth 3.0.5 (22-Nov-2006)

  • Cleaned up single-step debug code, removed unused ‘?’ button, removed DEBUG-HELP and expanded comment block at the start of the source file.
  • Modified TTY.DLL and added the function SET-CARET which sets the width (in pixels) of the overstrike caret. A value of 0 sets the default (character width). This new feature is for compatibility with the JAWS screen reader for the visually impaired.
  • Changed the FILENAME parsing used by INCLUDE. Instead of repeatedly parsing for a space character and checking for file existence (which causes problems with file/directory name ambiguity), INCLUDE now uses the more standard technique of allowing optional double-quote delimited path names. The quotes are only required when the path name contains a space. In all other cases, this change has no impact.IMPORTANT: If you have any instances of INCLUDE that look like this:INCLUDE MY LONG DIRECTORY\MY FILEChange them to look like this:INCLUDE “MY LONG DIRECTORY\MY FILE”

SwiftForth 3.0.4 (17-Oct-2006)

  • Updated SwiftForth Reference Manual with corrections to single-step debug section.
  • Fixed a bug in the mod to Frame.f from the previous release that incorrectly recalls the size of the saved SwiftForth window on exit. This becomes more evident when the window is closed farther away from the upper left corner of the screen. Thanks, Jeff.
  • Updated SwiftForth Reference Manual with corrections, new graphics and screen shots, and a new format.
  • Fixed a bug in the mod to Frame.f from the previous release that incorrectly recalls the size of the saved SwiftForth window on exit. This becomes more evident when the window is closed farther away from the upper left corner of the screen. Thanks, Jeff.
  • Removed the extra ‘r’ from the word “derived” both in word names and in comments (examples: DERIVEDWINDOW, DERIVED-CLASS-MESSAGE)
  • Renamed FCOMPLEMENT as FSUPPLEMENT and made a new definition for FCOMPLEMENT that uses PI/2 instead of PI. Two angles are said to be supplementary if they produce a right angle (PI/2 radians) when combined and complementary if they produce a straight angle (PI radians) when combined. Thanks, Anil.
  • Removed obsolete reference to DIRTY in \Samples\Win32\Terminal.f.
  • Deleted some old debugging code from \Src\Ide\Win32\Help.f.
  • Fixed the initialization of ROOTPATH such that it is set to the “root” of the SwiftForth directory tree. This is the “grandparent” of the directory holding the SwiftForth executable. The version of /ROOTPATH introduced in release 3.0.2 incorrectly started from the root of the drive, which broke SwiftForth installations in any but the path level.

SwiftForth 3.0.3 (27-Sep-2006)

  • Added PortIO.f to the Samples directory. This shows how to perform direct port I/O using the installed Giveio.sys driver. Note that the driver is not required for Windows 9x and Me systems, but the same set of operators is used on all Windows systems.
  • New fixes to Frame.f which better enable SwiftForth to remember its size and position. Exiting when the window is maximized will restart with the window maximized, and will remember what the restored size was. Exiting when the window is minimzed will restart with the window in the restored size.
  • Added a system menu item (right-click on SwiftForth in the taskbar) to force the window to appear in a safe default onscreen placement where it can be resized and moved as needed.
  • Added a few more API calls to Dllfunctions.f, which are used to support window sizing.
  • Reversed the direction of the mouse wheel scrolling in the debug window. This results in a new TTY.DLL which is located in the SwiftForth\Bin directory.
  • Automatically append the default file extension when saving a log or text file.

SwiftForth 3.0.2 (08-Sep-2006)

  • Cleaned up SwiftForth Reference Manual, fixed broken links to Forth Programmer’s Handbook.
  • Reversed the direction of the mouse wheel scrolling in the debug window. This results in a new TTY.DLL which is located in the SwiftForth\Bin directory.
  • Corrected the exit condition in SUPERCLASS-DLGMESSAGE.
  • Improved inline code for some primitives in Inline.f.
  • Added ICODE SWAP-@ to optimizer rules.
  • Removed the Forth Source extensions from the TEXT-FILES list (used in Save File dialogs for text files).
  • Fixed a long-standing optimizer bug where the following compiled very bad code:: TRY 10 0 TEST ;The solution limits which “parent” xts are valid to consider for optimization to the set of defining words like (CREATE)
  • Fixed a bug in .’ that caused an exception if the name field address was below the origin.
  • Fixed COMPARE and SEARCH for 0 length case.
  • Changed the library search function in REQUIRES to search for a Lib directory in the current working directory, then in SwiftForth, and in SwiftX (which is itself a SwiftForth application).
  • Added a small dictionary alignment that attempts to prevent code from residing in the address space of same cache line as the PFA of the previous CREATE definition (which includes VARIABLEs and other data types built from CREATE. A serious slowdown occurs when a write occurs to the same cache line that a tight loop is also executing in.
  • Converted a few of the common math and double-number operators from CODE to ICODE so they will be inlined. This gives a nice performance improvement for compute-intensive applications.
  • Added the deferred word WHEN-CAUGHT in the exception handler to make troublesome debugs of exceptions easier.
  • Changed /ROOTPATH to back all the way up to the drive letter in the path before the root path determination is made.
  • INCLUDE-ERROR now always prints line # in DECIMAL.

SwiftForth 3.0.1 (09-Aug-2006)

  • Updated SwiftForth Reference Manual PDF so only top-level bookmarks are displayed in initial view.
  • Fixed an omission in the optimizer which resulted in seriously degraded performance in some instances.
  • Added a new optimizer rule to improve adding a literal to a CREATE address.
  • Changed the method for launching PDF files such to allow a path with spaces.

SwiftForth 3.0.0 (07-Aug-2006)

Significant Changes

  • SwiftForth and SwiftForth Pro have been merged in to a single version. All features formerly available only in the Pro version (kernel source, cross-compiler, etc.) are now fully integrated into SwiftForth. The ‘Pro’ designation has been dropped.
  • The previously unreleased source for the SwiftForth console window TTY.DLL is included for reference. This is actually a SwiftX/i386 application and requires SwiftX to compile it. In the unlikely event you need to modify it or wish to generate your own tiny Windows DLL or application, you will need SwiftX/i386.

Maintenance

  • The optimizer had several bugs, which have been fixed.
  • The GIVEIO.SYS driver has been moved into the Windows system drivers directory for compatibility with SwiftX. Any former instance of the service is removed.
  • A bug in COMPARE(NC) (version of COMPARE that is not case-sensitive) has been fixed.
  • The edit selection command-line parameter string for UltraEdit32 was incorrect and has been changed.
  • Added VIM and GVIM parameter strings to editor selection.
  • An advisory has been added to the installer to warn against installing SwiftForth in a path containing a blank (space).
  • The word HELP has been removed, as its original function is irrelevant.
  • In the Floating Point package, the words MAKE-ROUND-UP and MAKE-TRUNCATE contained incorrect constants (inconsistent with ROUND-UP and TRUNCATE).
  • F>D in the floating point library has been made to truncate regardless of rounding mode, as required by ANS Forth.
  • Floating point literals are now dumped as hex bytes in the decompiler.
  • The behavior of the dialog box that displays WORDS from the toolbar has been improved.
  • The character range for special characters processed by WITHIN has been fixed; it previously allowed @ to be considered a valid digit for BASE > 16.
  • Many minor bug fixes and improvements based on user feedback.
  • Newly revised SwiftForth Reference Manual.
  • Fixed DEL in Linked List support (Lib\Options\Win32\Linked.f).
  • Improved the SIO serial support (\Lib\Options\Win32\Sio.f).
  • Added warning messages to options not available for use in the SwiftForth Evaluation version.
  • Corrected the definitions of floating-point assembler mnemonics FDIV and FDIVR (they were swapped).
  • Added the DPANS94 copy of the ANS Forth standard to the Doc directory (also available from the SwiftForth Help menu).
  • If SwiftForth is launched after having been closed with the debug window minimized, it forces the debug window to be visible. Previously, closing SwiftForth with the debug window minimized was difficult to recover from.
  • Fixed default .THROW to handle -1 (ABORT) correctly.
  • Changed default error display method to debug window only. (Dialog box still available as a user option, but it is not the default.)
  • Cleaned up the import proc lists in Src\Kernel\Win32\Imports.f.
  • INCLUDED now resets FENCE to preserve the GILD space. This prevents the compiled source file name from being stomped on.
  • Optimized TNEGATE.


SwiftForth 2.2.3 (Legacy)

  • Z, and U, now have a max string length of 4096, up from 256.
  • The address in the ABOUT box is correct.
  • The ATTACH method in the PAINTCANVAS class now requires a window handle.
  • A new word \” is in the dialog compiler, allowing the use of strings with extended escape sequences in dialog control texts.
  • The GENERICWINDOW class method VISIBLE is now deferred, so an application can replace it with its own method of showing itself.
  • The COMMDRIVER extension has been revised again. Changes include additional words to make using it simpler, such as SER-EMIT and SER-KEY. The other principle feature is the addition of a hook for using the CommConfigDialog.
  • A new extension ENUMCOMM has been added to allow an application to discover all known serial devices in the system.
  • Various new extensions added: BMPANIMATION BMPFICHE XBITMAP STATUSLINE BUFOUT and CRC16. See the source files for details.