-
c20ceeb544
Define some additional utility functions. (WIP)
master
Jesse D. McDonald
2015-10-23 22:46:11 -0500
-
70dc717257
Ignore vim swap files (.*.sw?)
Jesse D. McDonald
2012-07-20 13:33:26 -0500
-
8cb67bf7bb
Improve performance by grouping GC flag bits together.
Jesse D. McDonald
2012-07-17 19:43:53 -0500
-
fde689fb50
(add-top-level-variable) should return accessors as list, not values.
Jesse D. McDonald
2012-07-14 14:57:06 -0500
-
66d3ff9d38
Fix a reader issue which prevented reading numbers.
Jesse D. McDonald
2012-07-14 14:55:17 -0500
-
3bd580d398
Increase memory limit before GC kicks in (2x last active and >= 16MB).
Jesse D. McDonald
2012-07-14 14:53:08 -0500
-
8c683a2451
Fix up remaining references to boolean_value, fixnum_value, and cons.
Jesse D. McDonald
2012-07-14 13:52:25 -0500
-
3d478c85ee
Replace .hgignore with .gitignore.
Jesse D. McDonald
2012-07-14 13:23:13 -0500
-
9e789dce14
First version of simplified garbage collector.
Jesse D. McDonald
2012-07-14 12:59:27 -0500
-
8f9ce6122e
Read numbers as a subset of symbol syntax.
Jesse D. McDonald
2012-07-13 00:29:18 -0500
-
b923693c61
Update test code for various library routine API changes.
Jesse D. McDonald
2012-07-06 10:55:07 -0500
-
b4be240d6f
Miscellaneous improvements to the self-hosting compiler.
Jesse D. McDonald
2012-07-06 10:54:10 -0500
-
4a98f4eb21
Use builtin exit function as initial continuation and add some debug info.
Jesse D. McDonald
2012-07-06 10:53:07 -0500
-
8ba3fa0860
Add built-in functions to exit the program and format floats as strings.
Jesse D. McDonald
2012-07-06 10:51:27 -0500
-
dcacdecfff
Initial commit of RLA-style output library, src/lib/writer.rls.
Jesse D. McDonald
2011-12-08 17:19:59 -0600
-
33ef2ce582
Add the ability to print the empty list to src/lib/display.rls.
Jesse D. McDonald
2011-12-08 17:19:10 -0600
-
704c473015
Add a new syntax macro, compose-if.
Jesse D. McDonald
2011-12-08 17:18:32 -0600
-
173c117d86
Improve calculation of hash values.
Jesse D. McDonald
2011-12-08 17:14:04 -0600
-
d473552806
byte-string-ref should return unsigned fixnums (0 <= x <= 255).
Jesse D. McDonald
2011-12-08 17:13:12 -0600
-
d79eab3848
For vectors, spaces come before 2nd-Nth values; #(1 2 3) vs. #(12 3 ).
Jesse D. McDonald
2011-12-08 17:12:14 -0600
-
f3458173c4
Implement simple self-hosting compiler (src/compiler.rls).
Jesse D. McDonald
2011-12-07 15:11:53 -0600
-
c3a4a0fc57
Remove profiling code, which doesn't appear to work anyway.
Jesse D. McDonald
2011-04-27 13:50:46 -0500
-
9fbd3d0212
Use hash table for *symbols* in reader, instead of a list.
Jesse D. McDonald
2011-04-25 16:02:05 -0500
-
99da463f84
Add the ability to remove keys from a hash table.
Jesse D. McDonald
2011-04-25 15:48:46 -0500
-
a2a5532703
Add basic (non-balancing binary tree) hash-table implementation & test.
Jesse D. McDonald
2011-04-25 13:59:44 -0500
-
da3b000312
Reimplement map-variables to handle captured variables properly.
Jesse D. McDonald
2011-04-25 13:58:28 -0500
-
ded5b4851d
Add support for named (let ...) forms. (Does not yet include let* or letrec.)
Jesse D. McDonald
2011-04-25 13:53:20 -0500
-
647fcd59d7
Remove transient/instance-variable?, which is no longer used.
Jesse D. McDonald
2011-04-25 13:52:26 -0500
-
b14f75d946
Add -E option to dump result of module reader before simplification.
Jesse D. McDonald
2011-04-25 13:51:35 -0500
-
be48535995
Change bytecode from 'frame' vars to 'transient' values.
Jesse D. McDonald
2011-04-10 13:50:11 -0500
-
6da373201c
Fix printing of fixnums on 64-bit platforms by using %lld and "long long int".
Jesse D. McDonald
2011-03-30 12:24:37 -0500
-
3b56fdb5fc
Properly define INTPTR_MIN and INTPTR_MAX on x86_64 platforms.
Jesse D. McDonald
2011-03-27 19:08:51 -0500
-
b6271bf13e
Ensure correct types are passed to printf() when size_t != int.
Jesse D. McDonald
2011-03-27 17:45:09 -0500
-
cb0d7b62e5
Support writing recursive data structures and quoted symbols.
Jesse D. McDonald
2010-10-08 21:39:51 -0500
-
cc16957256
Add "#@" to lambdas/templates and their string/vector fields.
Jesse D. McDonald
2010-10-08 20:52:00 -0500
-
03c3dec091
Extend reader with placeholders for immutable values and structures.
Jesse D. McDonald
2010-10-07 23:34:45 -0500
-
42312e394a
Add a helper function for creating structure types.
Jesse D. McDonald
2010-07-27 23:43:23 -0500
-
892af308ce
Add support for immutable vectors, byte-strings, and structures.
Jesse D. McDonald
2010-06-27 16:20:51 -0500
-
00718b410b
Split 'unbox' and 'weak-unbox' operations (different optimizations).
Jesse D. McDonald
2010-06-26 22:50:43 -0500
-
960d7917c9
Enforce that all structures have types derived from 'structure'.
Jesse D. McDonald
2010-06-20 13:30:26 -0500
-
b993d6617f
Add support for reading symbols.
Jesse D. McDonald
2010-06-05 22:56:08 -0500
-
1cd72fc8e0
Add support for reading vectors and strings.
Jesse D. McDonald
2010-06-05 22:32:14 -0500
-
61b6a76205
Fix a bug in (read-string) which affects non-special characters.
Jesse D. McDonald
2010-05-27 23:11:08 -0500
-
e1662ca4b8
Convert tail-call parameters to a byte-string.
Jesse D. McDonald
2010-05-27 22:48:03 -0500
-
a9427d2ec5
In-VM reader for high-level Scheme syntax, initial revision.
Jesse D. McDonald
2010-05-26 21:53:14 -0500
-
fd62415dee
Fix pattern-matching for (value-list (#%apply ...)), etc.
Jesse D. McDonald
2010-05-26 21:38:57 -0500
-
9e4286b49e
Refactor (define) parser to work in (let), (lambda), (begin), etc.
Jesse D. McDonald
2010-05-25 22:36:04 -0500
-
061364c75c
Remove structure/field names from builtin structure type.
Jesse D. McDonald
2010-05-24 22:23:40 -0500
-
85eed3da7a
Fix mismatched parentheses.
Jesse D. McDonald
2010-05-12 21:19:14 -0500
-
96b3bded17
Add a primitive operation to calculate a 30-bit hash from any value.
Jesse D. McDonald
2010-05-07 23:36:21 -0500
-
5d8a302225
More compiler performance tweaks.
Jesse D. McDonald
2010-05-06 00:22:27 -0500
-
e375edfc83
Improve on struct_is_a() and expose it as a VM primitive operation.
Jesse D. McDonald
2010-05-05 00:31:36 -0500
-
50d9e0e0fc
Commit high-level version of existing primitive functions.
Jesse D. McDonald
2010-05-04 22:06:47 -0500
-
b1add2caf1
Simplify some compiler functions, while tuning for performance.
Jesse D. McDonald
2010-05-04 01:37:55 -0500
-
269a512e20
Commit function wrappers for builtin primitive operations.
Jesse D. McDonald
2010-05-04 00:34:48 -0500
-
a76e86013a
Fix loading from relative paths, and output of empty lists.
Jesse D. McDonald
2010-05-02 18:52:47 -0500
-
2f67f502f7
Convert cat.rla to high-level language and rename as cat.rls.
Jesse D. McDonald
2010-05-02 04:27:06 -0500
-
387ff63a48
Fix some reader-bugs introduced in the conversion to scheme/match.
Jesse D. McDonald
2010-05-02 04:21:01 -0500
-
cbcea20701
Lots of misc. cleanup, and a few bug fixes.
Jesse D. McDonald
2010-05-02 04:13:38 -0500
-
b3fd7bf6fc
Adjust initial allocations to improve memory efficiency.
Jesse D. McDonald
2010-05-01 16:13:04 -0500
-
8318db755f
Fix module syntax; should be (define ...), not (declare ...).
Jesse D. McDonald
2010-04-30 22:15:12 -0500
-
723f52dc1d
Rather than a single form, accept an entire module as input.
Jesse D. McDonald
2010-04-29 23:57:42 -0500
-
4b96515362
Split compiler into separate modules.
Jesse D. McDonald
2010-04-29 23:32:04 -0500
-
786258f144
Add the rest of the FP math primitives.
Jesse D. McDonald
2010-04-21 22:26:19 -0500
-
67ea700ac2
Fix handling of (set! var (let (var) ...)) and similar cases.
Jesse D. McDonald
2010-04-21 11:31:11 -0500
-
5c8625a1f1
Check in some sample programs demonstrating the compiler.
Jesse D. McDonald
2010-04-20 23:00:12 -0500
-
cc8dc5d9b6
Add many additional primitives, and centralize definitions.
Jesse D. McDonald
2010-04-20 22:32:13 -0500
-
03fc616b7a
Add basic support for outputting values suitable for the Rosella reader.
Jesse D. McDonald
2010-04-20 17:37:58 -0500
-
c5cf95b867
Implement basic value-propogation and support for multiple return values.
Jesse D. McDonald
2010-04-20 11:44:10 -0500
-
4ab23f6877
Thread context register (%ctx) through %apply and %call/cc forms.
Jesse D. McDonald
2010-04-18 17:25:38 -0500
-
35059dfebf
Implement register allocation.
Jesse D. McDonald
2010-04-18 05:14:43 -0500
-
c3e46525db
Implement conversion of shared variables to boxes.
Jesse D. McDonald
2010-04-17 19:26:53 -0500
-
b899f0c3b0
Implement support for (call/cc), and shorthand form (let/cc).
Jesse D. McDonald
2010-04-16 14:05:14 -0500
-
14b2a1570a
Add support for (quote) literal forms in compiler.ss.
Jesse D. McDonald
2010-04-15 23:08:21 -0500
-
0b0b352dd6
Clean up handling of (let) and (%bind), plus misc. cleanup.
Jesse D. McDonald
2010-04-15 12:23:09 -0500
-
6b51229c48
Raise an error if (set! ...) is applied to a form without a value.
Jesse D. McDonald
2010-04-15 00:19:52 -0500
-
8e147f7989
Don't create extra lambdas when both results of (if ...) are trivial.
Jesse D. McDonald
2010-04-15 00:11:32 -0500
-
46b18c07d6
Implement conversion to tail-call form (CPS).
Jesse D. McDonald
2010-04-14 23:02:14 -0500
-
a98ecda079
Commit other half of doc/compiler.txt -> compiler.ss move.
Jesse D. McDonald
2010-04-14 13:44:28 -0500
-
988d4264b2
Improve representation of tail-calls, and normalize primitive operations.
Jesse D. McDonald
2010-04-14 11:11:58 -0500
-
fd17fcd99c
Update compiler description (now a working Scheme program).
Jesse D. McDonald
2010-04-14 00:23:22 -0500
-
885a1ebdbb
Fix a missing-root error in interp.c:perform_tail_call().
Jesse D. McDonald
2010-04-12 21:38:22 -0500
-
9f351abd86
Commit simple script to run regression tests: src/examples/test-*.rla.
Jesse D. McDonald
2010-04-12 21:12:23 -0500
-
314e167e6e
Commit initial notes on compilation from Scheme-like source code.
Jesse D. McDonald
2010-04-12 21:10:35 -0500
-
f542fa2bd5
Add bytecodes to skip the rest of a block based on a condition.
Jesse D. McDonald
2010-04-12 14:28:41 -0500
-
6dd02a5d6e
Stop reading at EOF, and signal an error when EOF occurs inside a string.
Jesse D. McDonald
2010-04-12 14:08:34 -0500
-
7e5014ab07
Correct oversight - 0xfe was not changed to 0xff in lambda args.
Jesse D. McDonald
2010-04-12 14:05:37 -0500
-
bc3df6dd17
Swap continuation & context in the lambda and template structures.
Jesse D. McDonald
2010-04-11 19:18:46 -0500
-
9af29f28da
Commit basic (and ...) & (or ...) *functions*, with lambda args.
Jesse D. McDonald
2010-04-11 17:38:21 -0500
-
893b7e122e
Commit (append ...) function, implemented as nested (foldr ...) calls.
Jesse D. McDonald
2010-04-11 16:13:20 -0500
-
a6715b0922
More primitive functions: map, reverse, acons.
Jesse D. McDonald
2010-04-11 07:29:28 -0500
-
2d7b079dd8
Make (foldl ...) state the second argument, as with (foldr ...).
Jesse D. McDonald
2010-04-11 07:28:59 -0500
-
c6500a53b3
Commit implementation of (foldl ...) function.
Jesse D. McDonald
2010-04-11 05:50:29 -0500
-
3a418484c8
Commit (foldr ...) function, and refactor (list ...) to use it.
Jesse D. McDonald
2010-04-11 05:50:12 -0500
-
a1db12d1e2
Commit implementation of (list ...) primitive function.
Jesse D. McDonald
2010-04-10 22:50:09 -0500
-
ffb8e8f86d
Separate statistics for Gen-0 vs. Gen-1 garbage collection.
Jesse D. McDonald
2010-04-10 22:49:44 -0500
-
0a6d2f3f73
Control printing of GC stats with GC_STATS env. var rather than #if 0/1.
Jesse D. McDonald
2010-04-10 15:54:52 -0500
-
7a651dc9d1
Update main app to use new gc_init() prototype w/ separate Gen-0 size.
Jesse D. McDonald
2010-04-10 03:15:34 -0500
-
632ac19adf
Make Gen-0 size semi-independent of Gen-1 minimum size.
Jesse D. McDonald
2010-04-10 03:14:58 -0500
-
7f55142d72
Fix several significant bugs in the generational collector.
Jesse D. McDonald
2010-04-08 21:15:02 -0500