crcx / extended-ngaro forked from Mat2/extended-ngaro

High performance, dynamic vm for parallel processing and system programming

This URL has Read+Write access

name age message
file LICENSE Thu Aug 06 17:05:50 -0700 2009 add LICENSE text [crcx]
file Makefile Loading commit data...
file README
directory bench/
file extend.fs
directory nas/
file retroImage
file retroImage.bak
directory source/
directory tools/ Thu Aug 06 07:30:57 -0700 2009 allow building apart from main retro source tree [Charles Childers]
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 !