Jesse D. McDonald
d80e0c1fd3
CLOCK_MONOTONIC and uint64_t aren't entirely portable.
2012-07-14 13:38:32 -05:00
Jesse D. McDonald
26819cafdc
Update list of weak boxes *after* processing finalizers.
...
It's a bit unlikely, but a finalizer could be arranged for a weak box.
Also add more assertions, clear old range in debug builds, and misc. cleanup.
2012-07-14 13:38:23 -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
Jesse D. McDonald
61b83a1293
Add support for (strong) boxes, value vectors, and byte strings.
2012-07-14 13:37:15 -05:00
Jesse D. McDonald
9fa0a09509
Initial check-in.
2012-07-14 13:36:26 -05:00