[Home^][4stack>][b16>][Gforth*][bigFORTH>][Changesv]

[Mailing Listv]

Gforth gforth

Gforth is the Forth implementation of the GNU project ([tar.gz]Current release 0.6.2, have a look to the [html]User Manual). Binary distributions for popular platforms such as DOS, Windows 95, Linux, OS/2 can be found in [html]Home of Gforth, as well as [html]snapshots of the [html]development version in the CVS repository. Last Source [tar.gz]Snapshot 0.6.9-20080405.

Gforth uses GCC to compile a fast direct or indirect threaded Forth; Gforth is fully ANS FORTH compliant. Authors of Gforth are [html]Anton Ertl, [html]Bernd Paysan, [html]Jens Wilke, Neal Crook, and others.

The goal of the Gforth Project is to develop a standard model for ANSI Forth. This can be split into several subgoals:

To achieve these goals Gforth should be

There's an [zip]object oriented package, written in almost plain ANS Forth.

[Gforth^]
[Changes*][Mailing Listv]

News

User-visible changes between 0.6.2 and 0.6.9 (up to 2007-06-01):

Installation:
support for DESTDIR, POST_INSTALL, INSTALL_SCRIPT
report performance and functionality problems at end of "make"
Bug fixes
Now works with address-space randomization.
The single-step debugger works again in some engines.
Many others.
Ports:
AMD64, ARM, IA-64 (Itanium): better performance
PPC: disassembler and assembler (32-bit)
Gforth EC: R8C, Lego NXT (complete?)
Invocation:
New flags --ignore-async-signals, --vm-commit (default overcommit)
Forth 200x:
extension queries (produce true for all implemented extensions)
REQUIRED etc. (not new)
DEFINED and UNDEFINED
PARSE-NAME (new name)
deferred words (new: DEFER@ DEFER! ACTION-OF)
Unicode support (incomplete, documentation probably not up-to-date):
added xchars words for dealing with variable-width multi-byte characters
provide 8bit (ISO Latin 1) and UTF-8 support for xchars
Number prefixes:
0x is a hex prefix: 0xff and 0XfF now produces (decimal) 255
# is a decimal prefix: #10 now produces (decimal) 10
' now only handles a single (x)char: 'ab is no longer accepted,
'a' now produces (decimal) 97
New words:
OUTFILE-EXECUTE INFILE-EXECUTE BASE-EXECUTE (limited change of global state)
16-bit and 32-bit memory acces: UW@ UL@ SW@ SL@ W! L! W@ L@ /W /L
NEXT-ARG SHIFT-ARGS (OS command-line argument processing)
NOTHROW (for backtrace control)
FTRUNC FMOD (undocumented)
Improvements/changes of existing words:
TRY...ENDTRY changed significantly, compatibility files available (see docs).
The disassembler (DISCODE) can now use gdb to disassemble code
Uninitialized defered words now give a warning when executed
Division is floored (disable with "configure --enable-force-cdiv")
Gforth (not gforth-fast) reports division by zero and overflow on division on all platforms.
Newly documented words:
S>NUMBER? S>UNUMBER?
EKEY keypress names: K-LEFT K-RIGHT K-UP K-DOWN K-HOME K-END K-PRIOR K-NEXT K-INSERT K-DELETE K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 S-K1 S-K2 S-K3 S-K4 S-K5 S-K6 S-K7 S-K8 S-K9 S-K10 S-K11 S-K12
CLEARSTACKS
FORM
Environment variable GFORTHSYSTEMPREFIX (used by word SYSTEM and friends)
C interface:
exported symbols now start with "gforth_" (for referencing them from C code)
support for use of libffi (supplied with gcc) and
a C-compiler-based approach (requires C compiler at run-time) (incomplete).
Libraries:
depth-changes.fs: report stack depth changes during interpretation
ans-report.fs now reports CfV extensions
fsl-util.4th: FSL support files (undocumented)
regexp.fs for regular expressions (undocumented)
complex.fs for complex numbers (undocumented)
fft.fs for Fast Fourier Transform (undocumented)
wf.fs, a Wiki implementation (undocumented)
httpd.fs, a web server (undocumented)
status.fs, show interpreter status in separate xterm (undocumented)
profile.fs for profiling (undocumented, incomplete)
endtry-iferror.fs, recover-endtry.fs to ease the TRY change transition
compat library:
compat/execute-parsing.fs
Speed improvements:
static stack caching (good speedup on PPC)
mixed-precision division is now faster
support for int128 types on AMD64
workarounds for gcc performance bugs (in particular, PR 15242)

User-visible changes between 0.6.1 and 0.6.2:

Bug fixes
(in particular, gforth-0.6.2 compiles with gcc-3.3)
New words:
LATEST, LATESTXT (LASTXT deprecated)
Operating environment:
Added optional support for a C interface built on the ffcall libraries (more portable and powerful than the old one, but still not documented). To use it, the ffcall libraries have to be installed before building Gforth (see INSTALL).
Miscellaneous:
Gforth-fast now uses static superinstructions (some speedup on some platforms); generally this is transparent (apart from the speedup), but there are lots of command-line options for controlling the static superinstruction generation.

User-visible changes between 0.6.0 and 0.6.1:

Bug fixes (installation on big-endian machines sometimes did not work)

User-visible changes between 0.5.0 and 0.6.0:

Changes in behaviour:

Operating environment:

New words:

Miscellaneous:

User-visible changes between 0.4.0 and 0.5.0:

Changes in behaviour:

Operating environment:

Ports:

New words:

Miscellaneous:

User-visible changes between 0.3.0 and 0.4.0:

Operating environment:

Ports:

New, changed, and removed words:

Miscellaneous:

[Gforth^]
[Changesv][Mailing List*]

Mailing List

There's a mailing list around Gforth-related topics: [org]GForth@ChaosSolutions.org.

Read old postings in the list archive of the [html]Gforth list.

Subscribe by sending a message to [org]gforth-subscribe@ChaosSolutions.org.


Visitors since 19feb1999: [htm]WebCounter


Created 21may1997. Last modified: 28jul2008 by MailBernd Paysan