Release Notes for version 6.10.05

Contributors (in alphabetical order)

  • Ezra Boyce
  • Dirk Busch
  • Bruno Gauthier
  • George Hubert
  • Alex McDonald
  • Rod Oakford
  • Andrew Stephenson
  • Jos van de Ven
  • and some others...
  • Distributions

  • SourceForge distributions at
  • CVS at
  • Prebuilt CVS distributions at
  • Mailing lists

  • Discussion group at
  • Bug reports at
  • CVS Commit List at , subscriptions at
  • Overview

    Back to SourceForge! We're grateful to Ron Aaron, who provided us with a bug tracking system and a full CVS for a considerable period. Unfortunately, due to several successful hacking attempts on the CVSTrak bug tracker, and because of the risk to the CVS source, a decision was made to return to SF for CVS use for the forseeable future. We're grateful to Ron for his efforts to keep the show on the road. We're disappointed that a single lone script-kiddy could cause so much damage to our project. The hacking attempts and the move to SF caused us to loose several months worth of change log, so the code committed to the SF CVS is missing detailed change information from October 16, 2003 (version 6.08.00) to December 21, 2004 (base commit to SF). As a result, the changes documented here are considerably less detailed than we would wish. Our little experiment in truly open open-source has ended; SF is more secure, but more difficult to use, and not as open as we would like.

    System Changes

    6.10 is a significant update from 6.08, but the basic philosophy of ANS Forth compliance and trying to support as much legacy version 4.2 code as possible is still our primary goal.


    The documentation has been beefed up considerably, and is now almost all HTML based.

    Professor Julian V. Noble has kindly allowed us to distribute his "A Beginner's Guide to Forth" and some of his formula translation source code. Anton Ertl has given his permission to modify the documentation for gforth under the GNU Free Documentation License; work is currently underway on it. We are grateful to them and other contributors.

    Help messages now more closely conform to ANS standard; the help system can be loaded with the word help-system.

    Native executables

    Win32Forth now produces native executables (.EXEs) for Windows. The original system of using a wrapper that provided console facilities and loaded a relocatable image has been changed in favour of a native executable and a set of supporting DLLs (still written in C) that provide the console. The effect of this change is to make Win32Forth a class 1 Forth (a definition of Forth addressing mechanisms developed by Michael L Gassanenko ); effectively, all addresses in Win32forth are absolute, and the return stack and other address based variables and values are real addresses, not relative addresses.

    This means that rel>abs and abs>rel are no longer required. The advantages are significant;

    Other than that, there are no end-user changes required; FSAVE, TURNKEY and APPLICATION work without change.

    True Windows multi-tasking support

    Support is provided for multiple threads of execution in Win32Forth. Many changes have been made to the internals to make end-user words thread safe without requiring end user code changes to support it. Currently, how to invoke words as threads is poorly documented.

    Assembler changes

    Specifically, for Win32Forth only, the assembler is now issued under the LGPL, not the GPL. Several small changes have been made;

    Bug fixes

    A large number of bugs have been fixed.

    The bug in \ which was causing the stack check warnings to try to print 4,000,000 spaces if the line has a comment has been fixed..

    REPRESENT has been modified so zero is output as 0.0e0 by FS.

    SYNONYM now leaves the new name as hidden if the old name isn't found. Also it correctly finds an earlier version of old name (if it's in the search order) where the two names are the same and the current and context vocabularies are also the same.

    LOCALS-INIT has been modified not to throw an error when used in control structures, since this was causing problems when values where placed on the stack by the program, while compiling.

    New Applications

    New Demos

    Document $Id: p-relnotes.6.10.htm,v 1.6 2006/10/30 12:01:42 georgeahubert Exp $