aboutsummaryrefslogtreecommitdiffstats
path: root/csc/macros.csc
AgeCommit message (Collapse)AuthorFilesLines
2022-08-01Modify the project structure.Rose Hogenson1-801/+0
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.
2022-07-30Add call-builtin syntax.Rose Hogenson1-1/+21
This syntax allows calling opcodes directly from scheme code. Very powerful technique.
2022-07-28Use a better interface for macros.Rose Hogenson1-19/+32
2022-07-28Use a better hashing scheme for identifiers.Rose Hogenson1-3/+1
2022-07-24Export some common comparers from hash-map.Rose Hogenson1-8/+12
2022-07-23Add a delete method to the red-black tree.Rose Hogenson1-4/+19
God damn delete is even more complicated than insert. I think it works, at least.
2022-07-12Remove redundant parentheses in the match macro.Rose Hogenson1-20/+20
I'm marginally reducing verbosity with this change, without sacrificing readability.
2022-07-02Write closure conversion.Rose Hogenson1-7/+3
I desperately need a diffing library.
2022-06-28Improve CPS.Rose Hogenson1-24/+13
Goodbye soup. Thanks to "Compiling with Continuations" by Appel.
2022-06-25Continue work on continuation passing style.Rose Hogenson1-5/+6
2022-06-21Comment expand-body.Rose Hogenson1-0/+1
2022-04-22Remove the void type.Rose Hogenson1-7/+5
Why have void? We will just use #f.
2022-04-07Add libraries.Rose Hogenson1-99/+122
Gone is toplevel. Now everyone lives in a library.
2022-04-02Write a test for case-lambda.Rose Hogenson1-12/+25
I'm realizing that I should have started with builtin-exit and implemented the hard stuff later.
2022-03-31Improvements in macros and IR1.Rose Hogenson1-76/+72
We're omitting libraries for now, and I'll add them in later.
2022-03-03Write the compiler frontend.Rose Hogenson1-4/+4
2022-01-24Implement lambda?Rose Hogenson1-12/+110
2022-01-15Finish the macro expander.Rose Hogenson1-83/+291
It works!! At least it passes all the test cases. Next I will: 1. finish the builtins, 2. add a conversion to IR2 in continuation passing style, 3. add a compiler from IR2 to bytecode, 4. and add an option to the frontend compiler to generate a standalone executable.
2022-01-14Write a first draft macro expander.Rose Hogenson1-104/+348
Committing it because it compiles. I have to write tests and debug it still.
2022-01-11Move scheme compiler into a separate directory.Rose Hogenson1-0/+184