aboutsummaryrefslogtreecommitdiffstats
path: root/lib/csc/macros.csc
AgeCommit message (Collapse)AuthorFilesLines
2022-09-02Undo the hacky list constant changes.Rose Hogenson1-5/+1
We will eventually implement list constants using some kind of rodata.
2022-09-01Fix some bugs in macros, and add list constants.Rose Hogenson1-57/+158
2022-08-27Implement multiple return values.Rose Hogenson1-1/+1
2022-08-23Change argument passing to use lists.Rose Hogenson1-26/+6
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-12Fix bugs in the macro expander.Rose Hogenson1-84/+98
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 Hogenson1-1/+1
N lines of code will have about 2N bugs.
2022-08-07Misc test fixup in the compiler.Rose Hogenson1-11/+12
2022-08-07Fix a bug in expand-body for an empty body.Rose Hogenson1-1/+2
2022-08-04Add if, and, or, when and friends.Rose Hogenson1-1/+12
2022-08-04Add if and set!.Rose Hogenson1-5/+42
2022-08-01Modify the project structure.Rose Hogenson1-0/+801
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.