The document describes Picrin, a R7RS-compatible Scheme implementation, and EROS, a new object system being developed for Picrin. EROS is based on set theory and relations, allowing classes to define their membership rather than objects knowing their class. This inversion allows class-of to be a simple method lookup. EROS also uses generic functions and methods, with methods dispatched based on argument types. The author hopes to merge EROS into Picrin but notes define-relation needs to be implemented first.
3. Picrin Features
● R7RS compatibility
● reentrant design (all VM states are stored in single global state object)
● bytecode interpreter (based on stack VM)
● direct threaded VM
● internal representation by nan-boxing
● conservative call/cc implementation (users can freely interleave native stack
with VM stack)
4. Picrin Features (Cont.)
● exact GC (simple mark and sweep, partially reference count is used as well)
● string representation by rope data structure
● support full set hygienic macro transformers, including implicit renaming
macros
● extended library syntax
● advanced REPL support (multi-line input, etc)
● tiny & portable library (all functions will be in libpicrin.so)