32-bit Forth System for x86-GNU/Linux
Copyright © 1998--2024 Krishna Myneni, [email protected]
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
.zipor.tar.gzfile. -
Change to the
kForth-32-<branch>/src/directory, where branch is the project branch e.g.master, and typemaketo build the executables. A successful build results in two executables,kforth32andkforth32-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_DIRmay 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_profilefile (or.profileon 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 the
forth-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.4thForth-94 words provided in source formstrings.4thString handling libraryfiles.4thStandard Forth words for file i/oansi.4thANSI terminal controldump.4thForthDUMPutilityssd.4thForthSEEutilityasm-x86.4th32-bit x86 assembler ported to kForth-32modules.4thA framework for modular programming in Forthserial.4thLow-level serial port interfacesyscalls.4thOperating System callssignal.4thSignals interface -- seesignals-ex.4thandsigfpe.4thsocket.4thSockets interfacelib-interface.4thHigh-level interface to shared object libraries.ttester.4thTest harness used by automated test code
The 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.