An automated mirror of Gforth's Git repository on Savannah (https://savannah.gnu.org/projects/gforth/). Updates hourly.
Forth C C++ Makefile Shell Emacs Lisp Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
arch More on ARM64 disassembler Jul 23, 2016
asm updated copyright years Dec 31, 2010
compat compat/stagediv.fs Jul 6, 2016
contrib better division speed benchmark contrib/divspeed2.fs Apr 5, 2016
debian links to default binaries in gforth, binaries now in gforth-bin Mar 7, 2016
doc Merge remote-tracking branch 'refs/remotes/origin/master' Jul 23, 2016
ec updated copyright year after changing license notice Dec 31, 2007
engine symlink into engine for cacheflush files Jul 19, 2016
kernel-ec updated copyright years Dec 31, 2015
kernel Merge remote-tracking branch 'refs/remotes/origin/master' Jul 23, 2016
minos2 resize screen for utf8 linebreaks Jul 20, 2016
netlib Restored +x modes Sep 28, 2013
test defer@ for synonyms Mar 3, 2016
unix Changes for android version Jul 21, 2016
vim Vim syntax file added Feb 27, 2015
vmgen-ex updated copyright years Nov 1, 2008
vmgen-ex2 updated copyright years Nov 1, 2008
wordlibs Change double constants to have a number prefix Jul 2, 2016
.cvsignore More complete .cvsignore Jul 21, 2008
.gitattributes Attributes to select language Mar 9, 2015
.gitignore Build instructions for git added Jul 15, 2016
.travis.yml Build with GCC 4.8 on OS X. Dec 15, 2015
2012words.fs Added 2012 words to ansreport.fs, dropping xwords.fs from distributio… Oct 25, 2014
AUTHORS updated copyright year after changing license notice Dec 31, 2007
Agenda updated Agenda Mar 17, 2009
BUGS updated copyright year after changing license notice Dec 31, 2007
BUILD-FROM-SCRATCH updated copyright years Dec 31, 2013
Benchres More generic support of scopes and other things in dot parser Jun 2, 2016
COPYING Updated COPYING and doc/gpl.texi to GPL v3 Dec 31, 2007
COPYING.DOC documentation changes Aug 13, 2002
COPYING.LIB updated LGPL and files referring to it Dec 31, 2007
ChangeLog added missing extension query answers Nov 2, 2008
INSTALL further INSTALL refinement Jul 15, 2016
INSTALL.BINDIST added copyright messages to a lot of files Mar 9, 2003
INSTALL.DOS added copyright messages to a lot of files Mar 9, 2003
INSTALL.md Markdown version of README added Jul 16, 2016
Makedist.in A bit more Makefile cleanup Jul 21, 2016
Makefile.in More on ARM64 disassembler Jul 22, 2016
NEWS Version number fix Nov 2, 2008
NEWS.vmgen updated copyright years Nov 1, 2008
NEWS.vmgen.future re-enabled installation of vmgen Oct 12, 2008
README updated mailing list information Dec 31, 2009
README.md Markdown version of README added Jul 16, 2016
README.vmgen updated copyright years; related changes in administrative files Dec 31, 2008
ToDo road map updated Jul 17, 2016
ToDo-native updated copyright year after changing license notice Dec 31, 2007
abi-code-test.fs Better compilation of code words (no need to use LIT-EXECUTE for them) May 2, 2010
add.fs updated copyright year after changing license notice Dec 31, 2007
ans-report.fs updated copyright years Dec 31, 2015
ansi.fs Multitasker documentation Jul 16, 2016
answords.fs fixed most problems reported by "make checkdoc" Jul 6, 2007
archive.fs add symbolic link to archive.fs Jul 20, 2016
assert.fs Added arshift and darshift for signed rightshift, fixed decoding of x… Jul 19, 2016
autogen.sh Make m4 directory if not there Apr 3, 2016
backtrac.fs updated copyright years Dec 31, 2013
blocked.fb fixes bug #42604 Dec 19, 2015
blocks.fs updated copyright year Dec 31, 2012
bubble.fs Added cell definition to be ANS compatible. May 17, 1999
bufio.fs updated copyright year after changing license notice Dec 31, 2007
build-ec.in updated copyright year Dec 31, 2012
cache-fast0.vmg updated copyright years Jul 15, 2008
cache-fast1.vmg updated copyright years Jul 15, 2008
cache-fast2.vmg updated copyright years Jul 15, 2008
cache-fast3.vmg updated copyright years Jul 15, 2008
cache-fast4.vmg updated copyright years Jul 15, 2008
cache-fast5.vmg updated copyright notices for GPL v3 Dec 31, 2007
cache-fast6.vmg updated copyright notices for GPL v3 Dec 31, 2007
cache-fast7.vmg updated copyright notices for GPL v3 Dec 31, 2007
cache-fast8.vmg updated copyright notices for GPL v3 Dec 31, 2007
cache-regs1.vmg Added configure variable STACK_CACHE_REGS and set useful defaults Jan 2, 2008
cache-regs2.vmg Added configure variable STACK_CACHE_REGS and set useful defaults Jan 2, 2008
cache-regs3.vmg Added configure variable STACK_CACHE_REGS and set useful defaults Jan 2, 2008
cache-regs4.vmg Added configure variable STACK_CACHE_REGS and set useful defaults Jan 2, 2008
cache0.vmg updated copyright notices for GPL v3 Dec 31, 2007
cache1.vmg updated copyright notices for GPL v3 Dec 31, 2007
callable.fs Blacklist some files which don't need a copyright warning Jan 1, 2016
chains.fs updated copyright year after changing license notice Dec 31, 2007
cilk.fs Patches for bugs #4698[789] Jan 27, 2016
code.fs updated copyright years Dec 31, 2015
colorize.fs updated copyright years Dec 31, 2015
comp-i.fs bugfix Jul 17, 2016
complex.fs updated copyright years Dec 31, 2015
config.bat updated copyright year after changing license notice Dec 31, 2007
configure.ac Bump up version number Jul 21, 2016
configure.cmd updated copyright year after changing license notice Dec 31, 2007
context-struct.fs Makefile changes to compile libraries Jul 19, 2012
cross.fs compact kernel filenames Jul 20, 2016
cstr.fs updated copyright year Dec 31, 2012
date.fs Coding style change: No code after stack comment for multi-line defin… Sep 11, 2015
debug.fs Fix debugger hang problem May 12, 2016
debugs.fs Merge remote-tracking branch 'refs/remotes/origin/master' Jul 23, 2016
depth-changes.fs updated copyright year after changing license notice Dec 31, 2007
dis-gdb.fs updated copyright years Dec 31, 2015
dosconf.h Fixed version strings in the DOS and OS/2 versions Oct 3, 2000
dosekey.fs updated copyright year after changing license notice Dec 31, 2007
doskey.fs updated copyright year after changing license notice Dec 31, 2007
ds2texi.fs updated copyright years Dec 31, 2013
ekey.fs Cut&paste with ^U/^K and ^Y on the Forth command line Mar 18, 2016
elisp-comp updated date in configure.in Jun 2, 2007
endtry-iferror.fs updated copyright notices for GPL v3 Dec 31, 2007
environ.fs use deque for vocstack Jun 10, 2016
envos.dos updated copyright year after changing license notice Dec 31, 2007
envos.fs.in Removed extra include again Jan 14, 2016
envos.os2 updated copyright year after changing license notice Dec 31, 2007
errors.fs updated copyright years Dec 31, 2015
etags.fs updated copyright year Dec 31, 2012
exboot.fs Added kernel-loaded files to included-files Jul 17, 2016
except.fs updated copyright years Dec 31, 2015
extend.fs Added kernel-loaded files to included-files Jul 17, 2016
fflib.fs More compact libcc.fs output Mar 20, 2016
fft-bench.fs Coding style change: No code after stack comment for multi-line defin… Sep 11, 2015
fft.fs updated copyright years Dec 31, 2015
fget.fs updated copyright years Dec 31, 2015
fi2c.fs updated copyright years Dec 31, 2015
fib.fs Added O(1) fib in comment May 3, 2013
filedump.fs updated copyright years Dec 31, 2015
firewall.iss updated copyright years Dec 31, 2015
fixfiles.fs Fixfiles output Jul 20, 2016
fixpath.fs updated copyright years Dec 31, 2015
float.fs updated copyright years Dec 31, 2015
fsl-util.4th Remove code-duplication in fsl-util.4th vs. fsl-util.fs. Also install… Nov 28, 2012
fsl-util.fs Coding style change: No code after stack comment for multi-line defin… Sep 11, 2015
gforth-cgi.fs Restored +x modes Sep 28, 2013
gforth-rpmlintrc readded gforth-rpmlintrc Apr 20, 2016
gforth.dsc Upped gforth.dsc to new release Dec 30, 2010
gforth.el proper spelling of NEXT-CASE Jul 17, 2016
gforth.ico Better Gforth icon Aug 29, 2015
gforth.lsm minor changes May 4, 2003
gforth.spec rpmlintrc for removing devel-file-in-non-devel-packate errors Mar 22, 2016
gforthker.in Fix gforthker.in to actually provide a correct include path Jan 14, 2016
gforthmi.bat updated copyright year after changing license notice Dec 31, 2007
gforthmi.cmd updated copyright year after changing license notice Dec 31, 2007
gforthmi.in Fix gforthmi Apr 19, 2016
gforthmi.sh.in Fix libccdir in gforthmi Jan 14, 2016
gforthrc.fs Extensible command line options Apr 8, 2016
glocals.fs updated copyright years Dec 31, 2015
glosgen.fs updated copyright year after changing license notice Dec 31, 2007
glosgen.glo Initial revision Feb 11, 1994
gray.fs updated copyright years Dec 31, 2015
growable.fs updated copyright year after changing license notice Dec 31, 2007
hash.fs updated copyright years Dec 31, 2013
heartbleed.fs Coding style change: No code after stack comment for multi-line defin… Sep 11, 2015
history.fs Revert deque storing order Jun 10, 2016
html.fs updated copyright year after changing license notice Dec 31, 2007
httpd.fs move shtml definition to after loading /etc/mime.types Jun 25, 2016
i18n.fs Coding style change: No code after stack comment for multi-line defin… Sep 11, 2015
install-deps.sh Try make travis install all of Gforth Jul 19, 2016
install-swig.sh install-swig.sh script Dec 11, 2015
install-tags.fs worked around HP/UX awk limitations by replacing awk script with gfor… Nov 1, 2008
intcomp.fs updated copyright years Dec 31, 2010
iss.sh change for Inno setup generation Jan 14, 2016
lib.fs Added workaround for libltdl Oct 9, 2008
libcc.fs Varargs from swig come as "...", make it programmable in Forth May 11, 2016
libffi.fs More compact libcc.fs output Mar 19, 2016
libforth.in Library generation fixed for Windows Jan 14, 2016
list.fs Removed list stuff for prefixes Feb 18, 2013
locals-test.fs updated copyright year after changing license notice Dec 31, 2007
locals.fs updated copyright years Dec 31, 2015
locate.fs updated copyright years Dec 31, 2015
locate1.fs locate with L N B Jul 23, 2016
look.fs updated copyright years Dec 31, 2015
mach16b.fs updated copyright year after changing license notice Dec 31, 2007
mach16l.fs updated copyright year after changing license notice Dec 31, 2007
mach32b.fs updated copyright year after changing license notice Dec 31, 2007
mach32l.fs updated copyright year after changing license notice Dec 31, 2007
mach64b.fs updated copyright year after changing license notice Dec 31, 2007
mach64l.fs updated copyright year after changing license notice Dec 31, 2007
machpc.fs.in updated copyright years Dec 31, 2015
make-app.fs updated copyright year after changing license notice Dec 31, 2007
matrix.fs minor bugfixes Mar 28, 1999
memory.fs Update to memory.fs proposal Dec 3, 2015
mini-oof.fs Block size made configurable (not completed) May 26, 2012
mini-oof2.fs fix rec:moof2 edits Jun 2, 2016
mkdir.fs updated copyright year Dec 31, 2012
mkdosmf.sed updated copyright year after changing license notice Dec 31, 2007
mkinstalldirs some configure.in cleanups. In particular, I replaced all echos with Dec 24, 2002
mkos2mf.sed updated copyright year after changing license notice Dec 31, 2007
model updated copyright year after changing license notice Dec 31, 2007
modpath.iss Next try on path uninstall Aug 29, 2015
moof-exm.fs updated copyright year after changing license notice Dec 31, 2007
moof2-example.fs Some changes to mini-oof2, use to instead of defines Jan 22, 2013
moofglos.fs Documentation changes Aug 23, 2000
more.fs Replace vt100key.fs semantics by edit-ekey Mar 4, 2016
notfound.fs Recognizer stuff plus iOS icon sizes Oct 19, 2015
objects.fs Make this a uvalue (thread safe) May 26, 2014
objexamp.fs updated dates in copyright messages Dec 8, 1998
oldlib.fs updated copyright notices for GPL v3 Dec 31, 2007
onebench.fs updated copyright year Dec 31, 2012
oof.fs Replace 1 cells - with cell- Sep 20, 2012
oofsampl.fs Steps to make 0.2.0 dist-ready. Sep 19, 1996
options.fs added options.fs file Apr 8, 2016
os2conf.h Fixed version strings in the DOS and OS/2 versions Oct 3, 2000
other.fs updated copyright years Dec 31, 2013
parsedto.fs updated copyright years Dec 31, 2015
peeprules.vmg superinstructions for common compare-and-branch sequences Apr 24, 2016
preforth.in Small fix Jan 13, 2016
prelude.fs started on prelude concept Sep 5, 2009
prim Added arshift and darshift for signed rightshift, fixed decoding of x… Jul 18, 2016
prims2cl.fs updated copyright year Dec 31, 2012
prims2x.fs updated copyright years Dec 31, 2015
prims2x0.6.2.fs updated copyright years Dec 31, 2013
prof-inline.fs updated copyright years part2 Dec 31, 2013
profile.fs updated copyright year after changing license notice Dec 31, 2007
proxy.fs updated copyright years Dec 31, 2010
quotations.fs Changed names for smart compile, to match VFX Mar 3, 2013
quotedstring.fs updated copyright years Dec 31, 2015
quotes.fs updated copyright years Jul 15, 2008
random.fs updated copyright years Dec 31, 2013
rec-env.fs Added rec-env.fs to Makefile Jan 1, 2016
rec-scope.fs wlscope example in rec-scope.fs, not yet activated by default Jun 19, 2016
recognizer2.fs resolved merge conflicts Jul 16, 2016
recover-endtry.fs updated copyright notices for GPL v3 Dec 31, 2007
regexp-test.fs updated copyright years Dec 31, 2010
regexp.fs updated copyright years Dec 31, 2015
savesys.fs Added kernel-loaded files to included-files Jul 17, 2016
script.fs Make system and sh-get thread-safe Jun 19, 2016
search.fs Added kernel-loaded files to included-files Jul 17, 2016
sections.fs extra-section implemented Jul 17, 2016
see-ext.fs updated copyright years Dec 30, 2014
see.fs minor change May 24, 2016
set-compsem.fs Coding style change: No code after stack comment for multi-line defin… Sep 11, 2015
siev.fs Replace 1 cells - with cell- Sep 20, 2012
sieve.fs Replace 1 cells - with cell- Sep 20, 2012
simp-see.fs updated copyright years Dec 30, 2014
siteinit.fs jwilke's changes: May 21, 1997
smartdots.fs More debugging Sep 21, 2012
sokoban.fs updated copyright years Dec 31, 2015
source.fs locate with L N B Jul 23, 2016
startup.fs Extensible command line options Apr 7, 2016
status.fs updated copyright year after changing license notice Dec 31, 2007
str-exec.fs documentation changes Apr 9, 2011
string.fs infinite width, one line $form for $exec Jun 20, 2016
struct-val.fs Mini-OOF2 plugin system Oct 27, 2014
struct.fs updated copyright notices for GPL v3 Dec 31, 2007
struct0x.fs updated copyright years Dec 31, 2015
stuff.fs Make system and sh-get thread-safe Jun 19, 2016
substitute.fs Added kernel-loaded files to included-files Jul 17, 2016
table.fs updated copyright years Dec 31, 2015
tags.fs updated copyright year Dec 31, 2012
tasker.fs updated copyright years Dec 31, 2015
termsize.fs updated copyright year after changing license notice Dec 31, 2007
testall install.TAGS bugfix Nov 1, 2008
testclean updated version number and README Sep 23, 2000
testdist install.TAGS bugfix Nov 1, 2008
testdist1 Bug fixes, consistency improvements, May 29, 1997
timings.sc documentation changes: updated Changelog and NEWS, wrote sections on Feb 28, 2003
traceall.fs Added rec-env.fs to Makefile Jan 1, 2016
tt.fs minor code cleanup Dec 30, 2006
unbuffer.fs updated copyright year after changing license notice Dec 31, 2007
update-copyright updated copyright years Dec 31, 2015
update-copyright-blacklist Update Debian build process; install architecture-dependent files in … Jan 9, 2016
user-object.fs uclass to also set current user-o offset May 24, 2015
utf-8.fs UTF-8 or utf8 both valid in $LANG Jan 11, 2016
utf16.fs Coding style change: No code after stack comment for multi-line defin… Sep 11, 2015
versions.bsh updated copyright year after changing license notice Dec 31, 2007
vmgen.in updated copyright years Nov 1, 2008
vt100.fs updated copyright years Dec 30, 2014
vt100key.fs change order of files so that command line editor can use ekey Mar 3, 2016
webform.fs updated copyright year Dec 31, 2012
wf.fs updated copyright years Dec 31, 2015
wininst.sh More general fixpath to fix other binaries, too - especially cygwin1.… Aug 21, 2015
wordinfo.fs updated copyright years Dec 30, 2014
wordlib.fs updated copyright year after changing license notice Dec 31, 2007
wordlib.mk updated copyright year after changing license notice Dec 31, 2007
wordsets.fs updated copyright year after changing license notice Dec 31, 2007
xhash.fs Added xorshift rng+hash May 22, 2008
xwords.fs updated copyright years Dec 31, 2009
xxxprim updated copyright year after changing license notice Dec 31, 2007

README.md

Gforth README

Gforth is a fast and portable implementation of the ANS Forth language. It works nicely with the Emacs editor, offers some nice features such as input completion and history, backtraces, a decompiler and a powerful locals facility, and it has a comprehensive manual. Gforth combines traditional implementation techniques with newer techniques for portability and performance: its inner interpreter is direct threaded with several optimizations, but you can also use a traditional-style indirect threaded interpreter. Gforth is distributed under the GNU General Public license (see COPYING).

Supported Systems

Gforth runs under GNU, BSD, and similar systems, MS Windows and MacOS X and should not be hard to port to other systems supported by GCC. This version has been tested successfully on the following platforms:

  • GNU/Linux
    • amd64
    • arm64
    • armel
    • armhf
    • i386
    • mips
    • mipsel
    • powerpc
  • Android/Linux
    • amd64
    • arm64
    • arm
    • i386
    • mips
  • Gforth EC(embedded): r8c, 4stack, misc, 8086
  • Windows
    • amd64
    • i386
  • MacOS
    • amd64
    • i386

Installation

Read INSTALL for installation instructions from tarball, or INSTALL.md for from git, or INSTALL.BINDIST if you have a binary package distributed as .tar.xz file. If you received a self-installing executable, just run it and follow the instructions.

To start the system, just say gforth (after installing it).

Download

You can find new versions of Gforth at gforth.org/gforth or at ftp://ftp.gnu.org/gnu/gforth/

Files

On popular request, here are the meanings of unusual file extensions:

*.fs Forth stream source file (include with "include " from within gforth, or start with "gforth ...") *.fi Forth image files (start with "gforth -i ") *.fb Forth blocks file (load with "use 1 load") *.i C include files *.texi.in documenation source *TAGS etags files

A number of Forth source files are included in this package that are not necessary for building Gforth. Not all of them are mentioned in the rest of the documentation, so here's a short overview:

Add-ons: code.fs random.fs more.fs ansi.fs colorize.fs oof.fs oofsampl.fs objects.fs blocked.fb tasker.fs

Utilities: ans-report.fs etags.fs glosgen.fs filedump.fs

Games: tt.fs sokoban.fs

Test programs (for testing Forth systems): test/*.fs

Benchmarks: bubble.fs siev.fs matrix.fs fib.fs

ANS Forth implementations of Gforth extensions: compat/*.fs

C-Bindings: unix/*.fs

Support

For discussions about Gforth, use the Usenet newsgroup comp.lang.forth. If you prefer not to post on Usenet, there is also a mailing list: gforth@gnu.org. You have to subsribe to post there. You can subscribe through http://lists.gnu.org/mailman/listinfo/gforth. The list is archived at http://lists.gnu.org/pipermail/gforth/.

You can also report bugs through these channels, or you can report them through our bug database:

https://savannah.gnu.org/bugs/?func=addbug&group=gforth

This file is part of Gforth.

Gforth is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.#See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.