Commit Graph

116 Commits

Author SHA1 Message Date
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 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 4136b74e1b If (any) option is given, run GC test forever. Otherwise just run it once. 2012-07-14 13:38:20 -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 080906fa72 Move documentation into a subdirectory. 2012-07-14 13:37:48 -05:00
Jesse D. McDonald f9f3cae062 Test new weak-box and finalizer functions. Includes value-printer. 2012-07-14 13:37:47 -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 5a0789c788 Fix an infinite-recursion bug in the DEBUG=yes condition. 2012-07-14 13:37:40 -05:00
Jesse D. McDonald d8d11f2da2 Initial revision of low-level representation and compiler design. 2012-07-14 13:37:39 -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 6829d550f5 Increase optimization level. 2012-07-14 13:37:35 -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 a464397e64 Add rules to control generation and use of profile data. 2012-07-14 13:37:04 -05:00
Jesse D. McDonald 9fa0a09509 Initial check-in. 2012-07-14 13:36:26 -05:00