aboutsummaryrefslogtreecommitdiffstats
path: root/lib/csc
AgeCommit message (Collapse)AuthorFilesLines
2022-08-27Implement multiple return values.Rose Hogenson5-82/+120
2022-08-23Change argument passing to use lists.Rose Hogenson5-329/+87
Using vectors is just horribly complicated combined with builtins like apply, or procedures that take a rest parameter. Now we pass all arguments in a list. Hopefully optimization can undo this for known functions in the future.
2022-08-23Insert references, not values into the map.Rose Hogenson1-7/+4
This fixes a bug in compiler.csc.
2022-08-22Add a few primitive list operations.Rose Hogenson1-4/+14
2022-08-12Fix bugs in the macro expander.Rose Hogenson2-84/+125
Now I'm following the rule that you should ignore marks that were added after the binding was defined. I also introduced a lexical environment to handle lambdas.
2022-08-09Fix a few small bugs.Rose Hogenson2-3/+3
N lines of code will have about 2N bugs.
2022-08-07Misc test fixup in the compiler.Rose Hogenson5-21/+28
2022-08-07Add include-library-declarations.Rose Hogenson1-13/+50
2022-08-07Fix hoist.Rose Hogenson1-2/+4
Hoist needs to hoist the function bodies as well.
2022-08-07Add int<? and eq?.Rose Hogenson1-0/+5
2022-08-07Fix a bug in expand-body for an empty body.Rose Hogenson1-1/+2
2022-08-07Define last-index.Rose Hogenson2-0/+26
2022-08-07Fix a typo in codegen.Rose Hogenson1-3/+1
2022-08-05Add more of the standard library.Rose Hogenson4-382/+385
2022-08-05Add call-with-values.Rose Hogenson2-1/+21
2022-08-05Add call-with-current-continuation.Rose Hogenson2-0/+15
2022-08-04Add if, and, or, when and friends.Rose Hogenson1-1/+12
2022-08-04Add if and set!.Rose Hogenson2-5/+66
2022-08-01Remove mutable globals.Rose Hogenson2-7/+12
Per a closer reading of R7RS, it's an error to mutate an imported binding with set!. My apologies to Guile when I said they had a bug.
2022-08-01Modify the project structure.Rose Hogenson37-0/+6441
Now the lib directory contains what will eventually end up on the user's /usr/lib/csc. When I write make install, it will copy all of the .csc files from lib into the destination lib directory. This means I can start working on the standard library in lib/scheme.