High performance, dynamic vm for parallel processing and system programming
C
Pull request Compare This branch is 4 commits ahead, 5 commits behind Mat2:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bench
nas
source
tools
LICENSE
Makefile
README
extend.fs
retroImage
retroImage.bak

README

Extended Ngaro VM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is a very low-level, but platform independent, vm written
in C. It evolved from Ngaro (see Retro Forth 10) and is binary
compatible with it.

It is uncommon mainly in tree aspects:

* New instructions can be generated at runtime (which extend
  the instruction set) from vm-code sequences.

* The vm encoding is extended though a native-code compiler
  with added support for stack and register operations. This 
  way optimized machine code can be generated in a platform 
  independent way.

* It's a accumulator/store design with efficient interpretation
  in mind.

Current status:

* The vm is usable and the compiler can be invoked from Ngaro
  with opcode 31 (stream). Compiled traces are executable with
  opcode 32 (aot).

Compilation:

* "make"

To do:

- Compiler back-ends for x86-64, ARM, PowerPC and TMS320C64x.
- Assembler for the extended-instruction set.
- Documentation: Ngaro ISA reference guide, Compiler Manual. 

Remark:

The replicated-switch threading method performs better on my
Athlon64 3000x than the older indirect-token threading
interpreter (see ngaro-fast [retro10.1]) and results in an
equal performance on Celeron M and possibly Atom based cpu's.
So, for performance reasons use this vm !