[CM] FTH Forth Scripting

Michael Scholz scholz-micha@gmx.de
Sat, 22 Apr 2006 17:39:56 +0200


After solving a bunch of installation problems with a great help of
Bill, I'm announcing the first public release of FTH!

FTH is a software package which includes the Forth interpreter `fth'
and the Forth extension library `libfth'.  You can use `fth' as a
command line interpreter like Awk, Perl or Ruby, you can write Forth
scripts and use the repl for interactive input, or you can link
`libfth' into an application using it as Forth extension library.  As
an example of the latter, Snd has now the configure option
--with-forth to compile it with `libfth'.

FTH's core language is Ficl, Forth-inspired command language, written
by John Sadler <john_sadler@alum.mit.edu>.  The manipulated Ficl
source is included in FTH's source tree, so no extern `libficl' is
needed.  The original Ficl source (`http://ficl.sourceforge.net') is
slightly changed because of special needs.  Ficl is an ANS Forth
interpreter while FTH contains at most object type extensions, for
example arrays, hashs, strings, regexp, lists, symbols and others.  A
garbage collector handles the memory management of object types.

You can get the latest `fth-0.8.14.tar.gz' or `fth-0.8.14.tar.bz2'
from `http://sourceforge.net/projects/fth', if you prefer anonymous
CVS, the following example may show the way.  The first time you have
to login and checkout the whole source tree, but afterwards a CVS
session is much simpler:

     mkdir ~/src
     cd ~/src
     # When prompted for a password for anonymous, simply press the 
Enter key.
     cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/fth login
     cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/fth co -P fth

A new directory ~/src/fth exists now with a copy of the source tree of
FTH.  Later on, say, two days later, you have to type only

     cd ~/src/fth
     cvs update -P -d

The `-P' option means "prune empty directories" and the `-d' option
means "create directories".

SourceForge's public cvs server isn't temporary synced to the
developer cvs server.  So the current cvs files are old and may not
compile.  Use the tarball instead until SourceForge solves the public
cvs issue.

Mike