Diff for /gforth/README.vmgen between versions 1.3 and 1.8

version 1.3, 2002/06/02 17:02:56 version 1.8, 2008/11/08 15:54:06
Line 1 Line 1
 Vmgen generates much of the code for efficient virtual machine (VM)  Vmgen supports the construction of interpretive systems by generating
 interpreters from simple descriptions of the VM instructions.  It  the code for executing and dealing with virtual machine (VM)
 generates code for executing VM instructions (with optional tracing),  instructions from simple descriptions of the VM instructions.
 for generating VM code, for disassembling VM code, and for profiling  
 VM instruction sequences.  A VM instruction description looks like  This file is about Vmgen-specific issues.  Issues affecting both
 this:  Gforth and Vmgen (e.g., platform compatibility) are discussed in
   README.
   
   Vmgen generates code for executing VM instructions (with optional
   tracing), for generating VM code, for disassembling VM code, and for
   profiling VM instruction sequences.  A VM instruction description
   looks like this:
   
 add  ( i1 i2 -- i )  add  ( i1 i2 -- i )
 i = i1+i2;  i = i1+i2;
Line 12  Vmgen supports several techniques for wr Line 18  Vmgen supports several techniques for wr
 virtual machine interpreters, threaded code, combining VM instructions  virtual machine interpreters, threaded code, combining VM instructions
 into superinstructions, keeping the top-of-stack in a register,  into superinstructions, keeping the top-of-stack in a register,
 scheduling the dispatch of the next VM instruction, and a couple of  scheduling the dispatch of the next VM instruction, and a couple of
 minor optimizations.  Interpreters created with vmgen usually are  minor optimizations.  Interpreters created with Vmgen usually are
 faster than competing interpreters and are typically only a factor of  faster than competing interpreters and are typically only a factor of
 2-10 slower than the code generateed by native-code compilers.  2-10 slower than the code generateed by native-code compilers.
   
 Vmgen has special support for stack-based VMs (but it can also be  Vmgen has special support for stack-based VMs (but it can also be
 used to advantage when implementing a register-based VM).  used to advantage when implementing a register-based VM).
   
 The main shortcoming in the current release is the lack of a user  Changes in Vmgen from earlier releases are explained in NEWS.vmgen.
 manual; however, there is a paper describing vmgen's operation (at  
 http://www.complang.tuwien.ac.at/anton/vmgen/), and there is a simple,  
 working and somewhat commented example of using vmgen.  
   
 There are two versions of the example: in directory vmgen-ex you find  
 a version using many casts; in directory vmgen-ex2 you find a version  
 using unions instead of casts.  
   
 The current release requires GCC both for building and for compiling  
 the resulting interpreters (threaded code cannot be implemented in  
 ANSI C).  
   
 If you have bugs to report, suggestions to make, questions, or any  After installation the documentation is available in info form and in
 other feedback, mail me (anton@mips.complang.tuwien.ac.at).  printable form (doc/vmgen.ps).
   
   There is a simple usage example in vmgen-ex (and a variation on that
   in vmgen-ex2).  See the documentation for more information on that.
   
   To report a bug, use
   <https://savannah.gnu.org/bugs/?func=addbug&group_id=2672>.  For
   discussion on Vmgen (e.g., how to use it), use the
   bug-vmgen@mail.freesoftware.fsf.org mailing list (use
   <http://mail.gnu.org/mailman/listinfo/help-vmgen> to subscribe).
   
 You can find vmgen at http://www.complang.tuwien.ac.at/anton/vmgen/.  You can find vmgen at http://www.complang.tuwien.ac.at/anton/vmgen/.
   
 Vmgen is currently distributed with Gforth (because it needs Gforth to  Vmgen is currently distributed with Gforth (because it needs Gforth to
 run, and Gforth needs it to build), and is installed together with  run, and Gforth needs it to build), and is installed together with
 Gforth (read INSTALL for instructions).    Gforth (read INSTALL for instructions).
   
 Note that future versions of vmgen will probably require small changes  Note that future versions of vmgen may require small changes in
 in programs written for the present version (e.g., requiring a few  programs written for the present version (e.g., requiring a few
 additional macro definitions).  additional macro definitions).
   
   -----
   Copyright (C) 2001, 2002, 2003,2007 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/.

Removed from v.1.3  
changed lines
  Added in v.1.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>