64-bit Forth System for x86_64-GNU/Linux
Copyright © 1998--2024 Krishna Myneni, [email protected]
- David P. Wallace
- Matthias Urlichs
- Guido Draheim
- Brad Knotwell
- Alaric B. Snell
- Todd Nathan
- Bdale Garbee
- Christopher M. Brannon
- David N. Williams
- Iruatã M. S. Souza
kForth-64 for x86_64-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-64 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 is recommended.
To build:
-
Unpack the files if you obtained them as a
.zip
or.tar.gz
file. -
Change to the
kForth-64-branch/src/
directory, where "branch" is the project branch, e.g.master
, and typemake
to build the executables. A successful build results in two executables,kforth64
andkforth64-fast
. -
Move the executables into the search path. It is recommended to move the kForth-64 executables to
/usr/local/bin
. You must have root privileges to do this. -
Specify the default directory in which kforth64 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-64-branch/forth-src/
directory, add the following lines to your.bash_profile
file (or.profile
on some systems):KFORTH_DIR=~/kForth-64-branch/forth-src export KFORTH_DIR
Sample source code files, typically with the extension .4th
, are
included in the kForth-64-branch/forth-src/
directory. These files serve as
programming examples for kForth-64, 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
games/
console games written in Forth
libs/
Forth interfaces to C shared object libraries, such as the
GNU Multiprecision Library, gmp, and the GNU Multiprecision
Floating-Point Library, mpfr.
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
ForthDUMP
utilityssd.4th
ForthSEE
utilitymodules.4th
A framework for modular programming in Forthserial.4th
Low-level serial port interfacesyscalls.4th
Operating System callssignal.4th
Signals interface (seesignals-ex.4th
andsigfpe.4th
)socket.4th
Sockets interfacelib-interface.4th
Interface to shared object libraries.ttester.4th
Test harness used by the automated test code
The current version of the kForth-64 User's Guide is located in doc/
. A copy of the Forth-2012 standards document is also provided here. Please note important differences between kForth-64 and Forth-2012, discussed in section 4 of the User's Guide.
The portable modular programming framework documentation is provided in doc/
.