info-gnu
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Gforth and Vmgen 0.6.1 released


From: Anton Ertl
Subject: Gforth and Vmgen 0.6.1 released
Date: Wed, 26 Mar 2003 22:38:00 +0100 (MET)

Gforth 0.6.1 (including Vmgen) has been released.  It is available
from ftp://ftp.gnu.org/gnu/gforth/ and its mirrors (see
http://www.gnu.org/order/ftp.html), and from
http://www.complang.tuwien.ac.at/forth/gforth/.

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 and a powerful locals
facility, and it even has a manual. Gforth employs traditional
implementation techniques: its inner innerpreter is indirect or direct
threaded.  Gforth is distributed under the GNU General Public license
(see COPYING).

Vmgen generates much of the code for efficient virtual machine (VM)
interpreters from simple descriptions of the VM instructions.  It
generates code for executing VM instructions (with optional tracing),
for generating VM code, for disassembling VM code, and for profiling
VM instruction sequences.  Interpreters created with vmgen usually are
faster than competing interpreters and are typically only a factor of
2-10 slower than the code generateed by native-code compilers.

The Vmgen home page is at
<http://www.complang.tuwien.ac.at/anton/vmgen/>.


Changes in Gforth:

User-visible changes between 0.5.0 and 0.6.0:

Changes in behaviour:

S": interpreted use now ALLOCATEs the string (they live until BYE).
Long word names (512MB on 32-bit systems) are now supported (change to
  the header format).
New threaded code execution method: primitive-centric (allows the
  following), hybrid direct/indirect threaded (easier portability),
  with dynamic superinstructions (typical speedup on Athlon: factor
  2).  New engine gforth-itc for dealing with some potential
  backwards-compatibility problems (see "Invoking Gforth" in the
  manual).

Operating environment:

Default dictionary size is now 4MB.
Large file support on OSs that support them (i.e., files with more
  than 2GB on 32-bit machines).
Gforth can now deal well with broken pipes in most situations.
vi tags files can be built with tags.fs (usage like etags.fs).
gforth.el mostly rewritten.
New image file format.

New words:

Keyboard input: EDIT-LINE K-PRIOR K-NEXT K-DELETE
File input: SLURP-FILE SLURP-FID 
Programming tools: ID. .ID WORDLIST-WORDS SIMPLE-SEE
Conditional execution: [DEFINED] [UNDEFINED]
Defining Words: CONST-DOES>
Input stream: PARSE-WORD EXECUTE-PARSING EXECUTE-PARSING-FILE
String comparison: STR= STR< STRING-PREFIX?
String literals: S\" .\" \"-PARSE
Floating point output: F.RDP F>STR-RDP F>BUF-RDP

Miscellaneous:

Generalized prims2x.fs into Vmgen (see README.vmgen etc.); used the
  new capabilities in prims (e.g., automatic handling of the return
  stack and instruction stream).


Changes in Vmgen:

User-visible changes between 0.5.9-20020901 and 0.6.0:

Support for upward-growing stacks (see "Stack growth direction" in the
  manual)
New macro in output: IMM_ARG.
New input flag: include-skipped-insts (currently pointless).
Lazy loading and eager storing of stack items in superinstructiuons;
  this reduces register pressure (useful on 386), but causes compiler
  warnings about unused variables.


User-visible changes between 0.5.9-20020822 and 0.5.9-20020901:

The store optimization is now disabled by default, but can be enabled
by the user.  Documentation for this optimization is also new.


Use-visible changes between 0.5.9-20010501 and 0.5.9-20020822:

There is now a manual (in info, HTML, Postscript, or plain text format).

There is the vmgen-ex2 variant of the vmgen-ex example; the new
variant uses a union type instead of lots of casting.

Both variants of the example can now be compiled with an ANSI C
compiler (using switch dispatch and losing quite a bit of
performance); tested with lcc.

There are several changes in the way you have to define macros (see
node/section "Changes" in the manual).  I recommend keeping the
gforth-0.5.9-20010501 version until you have completed the changes
(note that you can have several versions of Gforth installed at the
same time).


- anton
-- 
M. Anton Ertl                    Some things have to be seen to be believed
address@hidden Most things have to be believed to be seen
http://www.complang.tuwien.ac.at/anton/home.html




reply via email to

[Prev in Thread] Current Thread [Next in Thread]