Background
The Rosette C++ VM was written in the early 1990's using techniques of the day. As such it is tightly integrated and difficult to understand.
We propose to separate the subsystems into more clear to understand, stand-alone software implementations that can be used individually and in sets to test and verify the Scala version of the VM.
We propose to create specifications for the following subsystems:
- Data Types and Primitives
- RBL Syntax
- Opcodes
- VM & Actor model
- RBL Compiler
Action items
- Refactor pointer piggy-backed data and reimplement as a pOb object that stores the piggy-backed data in separate member data items.
- Remove 32-bit dependencies and replace with 64-bit capable
- Understand Opcodes and Data Type interaction
- Separate RBL Compiler into stand-alone implementation
- Implement / re-implement data memory image dump
- Understand and separate Tuple space implementation
- Additional cleanups as they present themselves
- Add Multi-threading
Notes
object_ptr<T>
T * obj
type_info typebits
...