--- gforth/README.vmgen 2001/05/01 13:35:41 1.1 +++ gforth/README.vmgen 2008/12/31 15:29:13 1.9 @@ -1,9 +1,15 @@ -Vmgen generates much of the code for efficient virtual machine (VM) -interpreters from a 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. A VM instruction description looks like -this: +Vmgen supports the construction of interpretive systems by generating +the code for executing and dealing with virtual machine (VM) +instructions from simple descriptions of the VM instructions. + +This file is about Vmgen-specific issues. Issues affecting both +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 ) i = i1+i2; @@ -12,28 +18,51 @@ Vmgen supports several techniques for wr virtual machine interpreters, threaded code, combining VM instructions into superinstructions, keeping the top-of-stack in a register, 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 2-10 slower than the code generateed by native-code compilers. Vmgen has special support for stack-based VMs (but it can also be used to advantage when implementing a register-based VM). -The main shortcoming in the current release is the lack of a user -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 (in directory -vmgen-ex). +Changes in Vmgen from earlier releases are explained in NEWS.vmgen. -If you have bugs to report, suggestions to make, questions, or any -other feedback, mail me (anton@mips.complang.tuwien.ac.at). +After installation the documentation is available in info form and in +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 +. For +discussion on Vmgen (e.g., how to use it), use the +bug-vmgen@mail.freesoftware.fsf.org mailing list (use + to subscribe). You can find vmgen at http://www.complang.tuwien.ac.at/anton/vmgen/. Vmgen is currently distributed with Gforth (because it needs Gforth to 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 -in programs written for the present version (e.g., requiring a few +Note that future versions of vmgen may require small changes in +programs written for the present version (e.g., requiring a few additional macro definitions). + +----- +Copyright (C) 2001, 2002, 2003,2007,2008 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/.