aboutsummaryrefslogtreecommitdiffstats
path: root/csc/encoding.csc
AgeCommit message (Collapse)AuthorFilesLines
2022-08-01Modify the project structure.Rose Hogenson1-184/+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 the typeof opcode.Rose Hogenson1-0/+4
2022-07-29Fix the bytecode interpreter.Rose Hogenson1-0/+4
I'm too scared to actually try to run it right now.
2022-07-29Insert an exit op at the end of the program.Rose Hogenson1-2/+3
2022-07-25Re-write the encoding library.Rose Hogenson1-35/+149
I greatly improved the library, and changed it to expect register bytecode instead of stack-based.
2022-07-24Improve the match syntax for constants.Rose Hogenson1-19/+19
I guess you can pattern match using quote as a literal. That's pretty cool.
2022-07-20Perform argument conversion.Rose Hogenson1-0/+8
The point of argument conversion is to validate on each function call that the right number of arguments were passed, and to ensure that no function has more than 1 argument. This second condition makes CPS slightly simpler, and ensures that the arguments will all fit in locals. We take the strategy of allocating a vector for each function call. Ideally we would optimize away most of these allocations, but for now I just want it to work.
2022-01-11Move scheme compiler into a separate directory.Rose Hogenson1-0/+53