Commit Graph

9 Commits

Author SHA1 Message Date
Jesse D. McDonald 449b0cf478 Implement fixed-function reader for getting data into the interpreter. 2012-07-14 13:38:44 -05:00
Jesse D. McDonald 56a67a263d Add an 'undefined' value and a function to convert booleans into values. 2012-07-14 13:38:36 -05:00
Jesse D. McDonald d80e0c1fd3 CLOCK_MONOTONIC and uint64_t aren't entirely portable. 2012-07-14 13:38:32 -05:00
Jesse D. McDonald dc35896174 Need to parenthesize "n" in SPECIAL_VALUE macro for precedence.
This was causing the type tags to overlap with fixnums.
2012-07-14 13:38:26 -05:00
Jesse D. McDonald 0a2f13b523 Added built-in structure types and interpreter core (w/o bytecode).
Improved timing resolution by using clock_gettime() instead of clock().
Also gave project a name: Rosella. Play on 'Parrot' (Perl 6 VM).
2012-07-14 13:38:02 -05:00
Jesse D. McDonald 7bd6e616ff Add support for weak boxes and wills/finalizers.
Also refactored some GC code into smaller functions.

Weak boxes and wills will be useful for implementing weak hash tables,
which in turn will be used to store dynamic parameters efficiently.
2012-07-14 13:37:41 -05:00
Jesse D. McDonald 0867f66767 Add structure type; allow GC to be disabled; unify object-moving code. 2012-07-14 13:37:37 -05:00
Jesse D. McDonald f8e04f1b86 Add full support for remaining data type (box, vector, byte string).
Improve inline accessors for cases where value type is known.
Move GC stats into a single global structure to reduce proliferation of globals.
2012-07-14 13:37:31 -05:00
Jesse D. McDonald 8db40406a0 Refactor into a GC library (gc.c and gc.h) and a test program (gc_test.c).
Also, allocate GC memory ranges dynamically during startup (gc_init()) rather than statically.
2012-07-14 13:37:19 -05:00