Gforth mirror on GitHub (original is on Savannah)
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
arch Java fixes Nov 8, 2018
asm updated copyright years Dec 31, 2010
compat string-prefix? needs umin, because lengths are u Jul 3, 2018
contrib replaced MS@ with UTIME Jun 19, 2017
debian Add a better set of dependencies for gforth-minos2 Nov 13, 2018
doc Check for recode and iconv Nov 5, 2018
ec updated copyright year after changing license notice Dec 31, 2007
engine Some more MINOS2 fixes Nov 4, 2018
kernel-ec updated copyright years Dec 31, 2015
kernel Improve warning of redefinition (show original location) Oct 26, 2018
m4 Replace builtins if not available Aug 10, 2016
minos2 Add tabs Nov 14, 2018
netlib Restored +x modes Sep 28, 2013
test postpone xt: locals Aug 26, 2018
unix Harfbuzz stuff Nov 13, 2018
vim Vim syntax file added Feb 27, 2015
vmgen-ex bugfix in fib.mini <https://savannah.gnu.org/bugs/?48644> Jul 27, 2016
vmgen-ex2 bugfix in fib.mini <https://savannah.gnu.org/bugs/?48644> Jul 27, 2016
wordlibs Change double constants to have a number prefix Jul 2, 2016
.cvsignore More complete .cvsignore Jul 21, 2008
.gitattributes Bump version number Jun 13, 2018
.gitignore Build instructions for git added Jul 15, 2016
.gitlab-ci.yml Another try to get rid of config.h workaround Sep 1, 2018
.travis.yml Use gsed on MacOS, because sed is not capable of inserting newlines Oct 29, 2018
2012words.fs Added 2012 words to ansreport.fs, dropping xwords.fs from distributio… Oct 24, 2014
AUTHORS Updated AUTHORS file Sep 17, 2018
Agenda updated Agenda Mar 17, 2009
BUGS updated copyright year after changing license notice Dec 31, 2007
BUILD-FROM-SCRATCH updated copyrights Dec 31, 2017
Benchres added Goldmont+ result Apr 18, 2018
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 updated copyrights Dec 31, 2017
ChangeLog.git-unprocessed Changelog stuff Oct 29, 2017
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 updated copyrights Dec 31, 2017
Makedist.in Debian build improved a bit more Jun 13, 2018
Makefile.in Added glib swig interface as helper for gstreamer Nov 11, 2018
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 More on Gitlab CI Jun 13, 2018
README.vmgen updated copyright years; related changes in administrative files Dec 31, 2008
ToDo Use closure-style implementation to print c(warning") Sep 3, 2018
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 copyrights Dec 31, 2017
ansi.fs Removed double checks for unset environment variables Oct 29, 2018
answords.fs fixed most problems reported by "make checkdoc" Jul 6, 2007
archive.fs updated copyright years Dec 31, 2016
assert.fs updated copyrights Dec 31, 2017
autogen.sh updated copyright years Dec 31, 2016
backtrac.fs Some more MINOS2 fixes Nov 4, 2018
bits.fs updated copyrights Dec 31, 2017
blocked.fb fixes bug #42604 Dec 19, 2015
blocks.fs updated copyright years Dec 31, 2016
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 updated copyright years Dec 31, 2016
chains.fs updated copyright year after changing license notice Dec 31, 2007
cilk.fs start worker word for cilk.fs Jul 25, 2016
closures.fs Change man-or-boy values from float to integer Sep 1, 2018
code.fs updated copyright years Dec 31, 2016
colorize.fs updated copyright years Dec 31, 2015
comp-i.fs updated copyrights Dec 31, 2017
complex.fs updated copyright years Dec 31, 2015
config.bat updated copyright year after changing license notice Dec 31, 2007
config.fs Recognizer words renamed according to Forth 200x meeting (part 3) Sep 13, 2017
configure.ac Added glib swig interface as helper for gstreamer Nov 11, 2018
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 Reorder LIBCC_BUILD_SRC Oct 31, 2018
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 updated copyrights Dec 31, 2017
debugs.fs Improve warning of redefinition (show original location) Oct 26, 2018
depth-changes.fs updated copyright year after changing license notice Dec 31, 2007
dis-gdb.fs updated copyright years Dec 31, 2016
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 Capscompare in ds2texi.fs Jun 12, 2018
ekey.fs setcur/setsel modified Aug 4, 2018
elisp-comp updated date in configure.in Jun 2, 2007
endtry-iferror.fs updated copyright notices for GPL v3 Dec 31, 2007
environ.fs updated copyrights Dec 31, 2017
envos.dos updated copyright year after changing license notice Dec 31, 2007
envos.fs.in Fix for gstreamer Feb 2, 2018
envos.os2 updated copyright year after changing license notice Dec 31, 2007
errors.fs postpone locals Aug 26, 2018
etags.fs updated copyright year Dec 31, 2012
exboot.fs Change recognizer structure to simple table Jan 1, 2018
except.fs updated copyrights Dec 31, 2017
extend.fs Fix order after marker execution Jun 22, 2018
fflib.fs updated copyrights Dec 31, 2017
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 Remove debugging stuff from fixfiles.fs Aug 9, 2016
fixpath.fs updated copyright years Dec 31, 2015
float.fs Use guard page to check for dictionary overflow and small-allot to ma… Aug 31, 2018
forward.fs updated copyrights Dec 31, 2017
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 19, 2016
gforth.dsc Upped gforth.dsc to new release Dec 30, 2010
gforth.el Some pthread documentation Aug 27, 2018
gforth.ico Better Gforth icon Aug 29, 2015
gforth.lsm minor changes May 4, 2003
gforth.spec Gforth spec improved, so that RPMs can be built again Oct 21, 2016
gforthker.in Another try to get rid of config.h workaround Sep 1, 2018
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 Remove debugging option in gforthmi again Oct 29, 2018
gforthmi.sh.in Fix libccdir in gforthmi Jan 14, 2016
gforthrc.fs Change config/cache/history paths to Pöttering-style .local/share, .c… Sep 5, 2018
glocals.fs POSTPONE now also works for variable-flavoured locals Nov 3, 2018
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 copyrights Dec 31, 2017
heartbleed.fs Coding style change: No code after stack comment for multi-line defin… Sep 11, 2015
help.txt Add a freetype-gl install script similar to swig Sep 1, 2018
history.fs Change config/cache/history paths to Pöttering-style .local/share, .c… Sep 5, 2018
html.fs updated copyright year after changing license notice Dec 31, 2007
httpd.fs updated copyrights Dec 31, 2017
i18n.fs A bit work on i18n Apr 19, 2018
install-deps.sh More work on gstreamer Nov 11, 2018
install-freetype-gl.sh Add +x flag to install-freetype-gl.sh Sep 1, 2018
install-swig.sh Start gitlab CI Jun 12, 2018
install-tags.fs worked around HP/UX awk limitations by replacing awk script with gfor… Nov 1, 2008
intcomp.fs updated copyrights Dec 31, 2017
iss.sh inno setup install of swig outputs Aug 11, 2018
lib.fs Added workaround for libltdl Oct 9, 2008
libcc.fs Debug gforthmi failing on Travis CI Oct 29, 2018
libffi.fs updated copyrights Dec 31, 2017
libforth.in add $libccnameddir as environmental control of libcc.fs instead of co… Sep 1, 2018
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 help is now case-insensitive Aug 26, 2018
logo.png Added logo.png Nov 7, 2018
look.fs updated copyrights Dec 31, 2017
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, 2016
make-app.fs updated copyright year after changing license notice Dec 31, 2007
matrix.fs minor bugfixes Mar 28, 1999
mini-oof.fs Block size made configurable (not completed) May 26, 2012
mini-oof2.fs Small fixes for Android Oct 30, 2018
mkdir.fs updated copyright years Dec 31, 2016
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 28, 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 updated copyright years Dec 31, 2016
notfound.fs Rename recognizer files into rec-<something>.fs, added tab completion… Apr 11, 2018
objects.fs refactored FIELD (compat/struct.fs) to make use of +FIELD if available Aug 28, 2016
objex1.fs split objexamp.fs into a before-save and after-save part Aug 27, 2016
objex2.fs added non-copyright to objex2.fs Aug 27, 2016
objexamp.fs split objexamp.fs into a before-save and after-save part Aug 27, 2016
obsolete.fs reimplemented SFIND Jun 17, 2017
oldlib.fs updated copyright notices for GPL v3 Dec 31, 2007
onebench.fs updated copyright year Dec 31, 2012
oof.fs Make another snapshot Mar 8, 2017
oofsampl.fs Steps to make 0.2.0 dist-ready. Sep 19, 1996
options.fs updated copyrights Dec 31, 2017
os2conf.h Fixed version strings in the DOS and OS/2 versions Oct 3, 2000
other.fs updated copyright years Dec 31, 2013
peeprules.vmg updated copyright years Dec 31, 2016
preforth.in updated copyright years Dec 31, 2016
prelude.fs started on prelude concept Sep 5, 2009
prim Documentation and Forth code for SCAN and SKIP Oct 29, 2018
prims2cl.fs updated copyright year Dec 31, 2012
prims2x.fs updated copyrights Dec 31, 2017
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
quotes.fs Enhanced S\" documentation Oct 29, 2018
random.fs updated copyrights Dec 31, 2017
rec-env.fs updated copyrights Dec 31, 2017
rec-meta.fs Travis build status in README.md Oct 28, 2017
rec-scope.fs nested tab expansion for rec-scope.fs Apr 11, 2018
rec-string.fs Added moved recognizers Apr 14, 2018
rec-tick.fs tick-recognizer: rectype-num used Aug 25, 2018
rec-to.fs preserve to-style# in postpone of rec-to Jul 21, 2018
recognizer2.fs updated copyrights Dec 31, 2017
record-locs.fs move record locations to kernel Sep 30, 2017
recover-endtry.fs updated copyright notices for GPL v3 Dec 31, 2007
regexp-test.fs updated copyright years Dec 31, 2010
regexp.fs Bump version number Oct 10, 2018
reverse-words.fs More creative solutions for reverse words May 20, 2017
savesys.fs Replace prefix on startup with android Jul 2, 2018
script.fs scroll wheel for viewports Jun 21, 2018
search.fs updated copyrights Dec 31, 2017
sections.fs added location-printing for the backtrace (not yet in image) Aug 5, 2016
see-ext.fs updated copyright years Dec 30, 2014
see.fs Remove alias-mask Oct 2, 2018
set-compsem.fs updated copyrights Dec 31, 2017
siev.fs Replace 1 cells - with cell- Sep 20, 2012
sieve.fs Replace 1 cells - with cell- Sep 20, 2012
simp-see.fs updated copyrights Dec 31, 2017
siteinit.fs jwilke's changes: May 21, 1997
smartdots.fs (back-)tick recognizer added; ... output adopted Aug 25, 2018
sokoban.fs updated copyright years Dec 31, 2015
source.fs Fix loadfilename#>str; replace new color words in minos2 Aug 25, 2018
startup.fs added closures to gforth.fi Aug 27, 2018
status.fs updated copyright year after changing license notice Dec 31, 2007
str-exec.fs updated copyright years Dec 31, 2016
string.fs updated copyrights Dec 31, 2017
struct-val.fs Bump version number Oct 18, 2018
struct.fs updated copyright notices for GPL v3 Dec 31, 2007
struct0x.fs Bump version number Oct 18, 2018
stuff.fs added HELP <name> Aug 25, 2018
substitute.fs Fix substitution to really check for the right does-code Oct 14, 2016
table.fs updated copyrights Dec 31, 2017
tags.fs updated copyright year Dec 31, 2012
tasker.fs updated copyrights Dec 31, 2017
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 updated copyrights Dec 31, 2017
tt.fs minor code cleanup Dec 30, 2006
unbuffer.fs updated copyright year after changing license notice Dec 31, 2007
update-copyright updated copyrights Dec 31, 2017
update-copyright-blacklist updated copyright years Dec 31, 2016
user-object.fs Separate user-o from mini-oof2.fs May 30, 2017
utf-8.fs setcur/setsel modified Aug 4, 2018
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 make event| bullet proof, drop backspaces from vt100-at-deltaxy Apr 16, 2018
vt100key.fs updated copyright years Dec 31, 2016
webform.fs updated copyright year Dec 31, 2012
wf.fs updated copyright years Dec 31, 2015
wininst.sh Progress on paragraph typesetting Jul 25, 2018
wordinfo.fs Remove alias-mask Oct 2, 2018
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

Build Status Travis pipeline status pipeline status

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


Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2006,2007,2008,2009,2016,2017 Free Software Foundation, Inc.

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/.