Jesse D. McDonald
32952e9aa4
Add (empty) write barriers in preparation for more advanced GC.
2012-07-14 13:43:03 -05:00
Jesse D. McDonald
8ca34f40ec
Add a bytecode which returns the type of a given structure.
2012-07-14 13:42:59 -05:00
Jesse D. McDonald
ea9b1734fd
Improve trace output, for debugging.
2012-07-14 13:42:12 -05:00
Jesse D. McDonald
601aa9db67
Re-write factorial.rla to be closer to what a compiler should generate.
2012-07-14 13:42:10 -05:00
Jesse D. McDonald
8f263daffc
Add a reserved input code for 'self', the current lambda.
...
Correct an error in the documentation for the condition bytecode(s).
Adjust the printer to limit the depth of non-cyclic object output.
2012-07-14 13:42:04 -05:00
Jesse D. McDonald
0e62641919
Check in a second program, this time demonstrating basic I/O.
...
Also filter cycles and long byte-strings from print_value() output.
Added three new bytecodes to get the sizes of vectors, strings, and structs.
2012-07-14 13:41:37 -05:00
Jesse D. McDonald
b74f0cddda
Adjust number-reader to allow 'negative zero' FP values.
...
Also add builtins for NaN and +/- infinity, and bytecodes for classification.
2012-07-14 13:40:52 -05:00
Jesse D. McDonald
bc10f59c6e
Allocate space for max. number of frame variables up front.
...
Allows us to avoid reallocating a new vector after every tail-call.
2012-07-14 13:40:47 -05:00
Jesse D. McDonald
c01f0838f1
Misc. reader improvements, plus ability to run *.rla directly.
...
Fix tree_replace() to handle recursive data structures.
Fix some other minor bugs in the reader and interpreter.
Implement comment-escapes in the string parser, for more readable input.
Allow input program files (*.rla) to be invoked directly, with arguments.
Add a simple string->number converter as a builtin function.
2012-07-14 13:38:48 -05:00
Jesse D. McDonald
10fbc269c5
Implement the remaining bytecodes. Adjust some of the numbering.
...
Also, use #<undefined> for "not yet initialized" and #f for "no value".
2012-07-14 13:38:40 -05:00
Jesse D. McDonald
61e0583932
Implement bytecode, other than floating-point operations.
2012-07-14 13:38:38 -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