32-bit Forth System for x86-linux
32-bit Forth System for x86-GNU/Linux
Copyright © 1998—2024 Krishna Myneni, krishna.myneni@ccreweb.org
kForth-32 for x86-GNU/Linux is provided under the terms of the GNU
Affero General Public License (AGPL), v3.0 or later.
The following packages are required to build and maintain kForth-32 from
its source package, on a GNU/Linux system:
binutils
gcc
gcc-c++
glibc
glibc-devel
libstdc++-devel
make
readline
readline-devel
patchutils
Some or all of these packages may already be installed on your GNU/Linux
system, but if they are not, you should install them for your GNU/Linux
distribution. GNU C/C++ version 4.0 or later should be used.
To build:
Unpack the files if you obtained them as a .zip
or .tar.gz
file.
Change to the kForth-32-<branch>/src/
directory, where branch is the project
branch e.g. master
, and type make
to build the executables. A successful
build results in two executables, kforth32
and kforth32-fast
.
Move the executables into the search path. It is recommended to move
the kForth-32 executables to /usr/local/bin
. You must have superuser
privileges to do this.
Specify the default directory in which kforth32 will search for Forth source
files not found in the current directory. The environment variable KFORTH_DIR
may be set to this directory. For example, under the BASH shell, if you want
the default directory to be your ~/kForth-32-branch/forth-src/
directory, add the
following lines to your .bash_profile
file (or .profile
on some systems):
KFORTH_DIR=~/kForth-32-branch/forth-src
export KFORTH_DIR
Sample source code files, typically with the extension .4th
, are
included in the kForth-32-branch/forth-src/
directory. These files serve as
programming examples for kForth-32, in addition to providing useful
libraries of Forth words and applications written in Forth. Within theforth-src/
subdirectory, you will find additional subdirectories containing
different categories of Forth libraries or applications. These include:
system-test/
A set of automated tests to validate the Forth system against
the Forth-2012 standard
fsl/
modules for numeric computation from the Forth Scientific Library, including test code;
also note the subdirs, fsl/extras/
and fsl/demo/
games/
console games written in Forth
libs/
Forth interfaces to C and Fortran shared object libraries, such
as X11 the GNU Multiprecision Library, gmp, and the GNU
Multiprecision Floating-Point Library, mpfr.
x11/
A collection of X11 utilities providing a simple interfaces
for plotting, bitmap font handling and text rendering, and
a framework for X11 multi-page applications.
benchmarks/
simple benchmarks to compare the relative speed of Forth systems
Important system-level files in the forth-src/
subdirectory include,
ans-words.4th
Forth-94 words provided in source formstrings.4th
String handling libraryfiles.4th
Standard Forth words for file i/oansi.4th
ANSI terminal controldump.4th
Forth DUMP
utilityssd.4th
Forth SEE
utilityasm-x86.4th
32-bit x86 assembler ported to kForth-32modules.4th
A framework for modular programming in Forthserial.4th
Low-level serial port interface syscalls.4th
Operating System callssignal.4th
Signals interface — see signals-ex.4th
and sigfpe.4th
socket.4th
Sockets interfacelib-interface.4th
High-level interface to shared object libraries.ttester.4th
Test harness used by automated test codeThe current version of the kForth User’s Guide is located in kForth-32-branch/doc/
. A copy of the Forth-2012 standards document is also provided here. Please note important differences between kForth and Forth-2012/ANS Forth, discussed in section 4 of the User’s Guide.