Jesse D. McDonald
ffb8e8f86d
Separate statistics for Gen-0 vs. Gen-1 garbage collection.
2012-07-14 13:43:17 -05:00
Jesse D. McDonald
0a6d2f3f73
Control printing of GC stats with GC_STATS env. var rather than #if 0/1.
2012-07-14 13:43:16 -05:00
Jesse D. McDonald
7a651dc9d1
Update main app to use new gc_init() prototype w/ separate Gen-0 size.
2012-07-14 13:43:15 -05:00
Jesse D. McDonald
632ac19adf
Make Gen-0 size semi-independent of Gen-1 minimum size.
2012-07-14 13:43:14 -05:00
Jesse D. McDonald
7f55142d72
Fix several significant bugs in the generational collector.
...
No known issues remaining at this time.
2012-07-14 13:43:10 -05:00
Jesse D. McDonald
311a4c2d55
Don't include gc_poison_region in non-debug builds.
2012-07-14 13:43:09 -05:00
Jesse D. McDonald
12b5976b66
Fix a bug which was cryptically preventing Gen-1 size from increasing.
2012-07-14 13:43:07 -05:00
Jesse D. McDonald
7fb083a5f9
Generational GC. Initial version, may be buggy.
2012-07-14 13:43:05 -05:00
Jesse D. McDonald
075cbac672
Remove some unnecessary write barriers for better performance.
2012-07-14 13:43:04 -05:00
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
da93d60cfd
Adjust build script to capitalize HAVE_MOD_* macros.
2012-07-14 13:43:01 -05:00
Jesse D. McDonald
e8d1a2fa40
Minor performance-related changes.
2012-07-14 13:43:00 -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
62e2095f31
Add standard build targets (distclean, realclean, install, uninstall).
2012-07-14 13:42:54 -05:00
Jesse D. McDonald
06679a2790
Ignore dependency (*.d) files.
2012-07-14 13:42:51 -05:00
Jesse D. McDonald
ca8d68c023
Add automatic dependency tracking to the build rules.
...
Move optional extension modules (e.g. mod_io.c) into mods/ subdir.
Fix missing #include in reader.c.
2012-07-14 13:42:30 -05:00
Jesse D. McDonald
baa2dae345
Rearrange example programs based on new modularity feature.
2012-07-14 13:42:18 -05:00
Jesse D. McDonald
ec306ef31f
Adjust indirect form (#i"path") to be relative to the current file.
2012-07-14 13:42:16 -05:00
Jesse D. McDonald
6254044280
Add #i"pathname" syntax for reading values from modular input files.
2012-07-14 13:42:14 -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
5e36910eab
Rewrite cat.rla to be closer to what a compiler should generate.
2012-07-14 13:42:08 -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
e18863c3ad
Simplify number reader; eliminates potentially invalid double-ungetc().
2012-07-14 13:42:00 -05:00
Jesse D. McDonald
307ed97b45
Rename "core-image.rla" now that there are two such images.
2012-07-14 13:41:56 -05:00
Jesse D. McDonald
912a620c5a
Add some error-handling to cat.rla. Add support for #! lines.
...
Also fix an off-by-one error in the column counter and suppress GC stats.
2012-07-14 13:41:52 -05:00
Jesse D. McDonald
ce3c4f1ce9
Increase block size in cat.rla. Print GC stats to stderr.
2012-07-14 13:41:49 -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
c1a0850bcf
Add builtin wrappers for the basic POSIX file APIs.
2012-07-14 13:41:00 -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
aa461c8574
Add basic support for reading floating-point values.
...
No guarantees are made as to the precision.
2012-07-14 13:40:50 -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
6a12d967ef
If hard limit is exceeded, try to allocate more memory from the OS.
...
Reduce initial allocation to 1 MB now that it can by increased at runtime.
Also remove 'noreturn' attribute from the public API.
If out_of_memory() returns, GC will abort() internally.
2012-07-14 13:40:40 -05:00
Jesse D. McDonald
88ebc7ca77
Print results individually, on separate lines, rather than as a list.
2012-07-14 13:40:34 -05:00
Jesse D. McDonald
c1ac1323bf
Check for errors when opening program file.
...
Add a debug assertion in the reader to catch bugs like the last one.
2012-07-14 13:40:29 -05:00
Jesse D. McDonald
8e34feea0b
Fix an order-of-operations bug in finalize_placeholders().
...
The bug would have prevented the resolution of multiple levels of links.
2012-07-14 13:40:24 -05:00
Jesse D. McDonald
9f0dc52934
Improve number-reading in preparation for supporting floating-point.
2012-07-14 13:40:21 -05:00
Jesse D. McDonald
902c489b90
Resolve all placeholders before patching. Allows direct links (#0=#=0).
...
Definitions and references can be made in any order.
Cyclic placeholders resolve to #<undefined>, as do ones without definitions.
2012-07-14 13:40:17 -05:00
Jesse D. McDonald
48eb22d15b
Update reader to fix corner-cases in the placeholder/back-reference system.
2012-07-14 13:40:16 -05:00
Jesse D. McDonald
fb248d9235
Add a formal public-domain dedication so that others can use this.
2012-07-14 13:40:14 -05:00
Jesse D. McDonald
0404777049
Fix interaction between comments and whitespace in the reader.
...
Add support for fixnums in binary (0b), octal (0), and hexadecimal (0x).
Minor changes to the example input program to improve readability.
2012-07-14 13:40:11 -05:00
Jesse D. McDonald
861f1f7617
Commit first working Rosella program.
...
Takes a string argument, converts it with string->number, and returns the factorial.
2012-07-14 13:40:06 -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
53b1cc213b
Skip reader test by default to allow profiling.
2012-07-14 13:38:47 -05:00
Jesse D. McDonald
439491a80e
Support negative fixnums in input, and perform some extra validation.
2012-07-14 13:38:45 -05:00
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
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
d1dcb77503
Update printer to display 'undefined' values as "#<undefined>".
2012-07-14 13:38:37 -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