| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2023-07-16 | Rewrite the macro expander to use set of scopes.HEADmain | Rose Hogenson | 2 | -158/+327 | |
| I no longer have confidence that the timestamp approach will work for all of the different cases that aren't discussed in the original paper. The original paper was only about expanding a fixed set of syntax transformers, and didn't consider defining new transformers. Set of scopes is an extremely intuitive system, and hopefully that will mean it's easier to implement without bugs. I think I finally understand how it works after watching this video: https://youtu.be/Or_yKiI3Ha4 | |||||
| 2023-05-01 | Fix an encoding issue for negative numbers. | Rose Hogenson | 1 | -2/+2 | |
| 2023-05-01 | Rewrite most of the compiler. | Rose Hogenson | 44 | -6440/+1724 | |
| This represents a major step back in terms of functionality, and amount of code. The latter I think constitutes a major win. Next steps are to reimplement syntax-rules, call/cc, and call-with-values. | |||||
| 2022-09-02 | Fix bugs with recursive macros and empty template. | Rose Hogenson | 2 | -38/+91 | |
| 2022-09-02 | Undo the hacky list constant changes. | Rose Hogenson | 2 | -41/+4 | |
| We will eventually implement list constants using some kind of rodata. | |||||
| 2022-09-01 | Fix some bugs in macros, and add list constants. | Rose Hogenson | 2 | -94/+236 | |
| 2022-08-27 | Use reg 255 for swapping. | Rose Hogenson | 2 | -3/+3 | |
| I wanted to use the top reg, for some reason I thought at the time that 127 was the biggest 8-bit number. Obviously it's 255. | |||||
| 2022-08-27 | Enable nil constants. | Rose Hogenson | 1 | -2/+3 | |
| 2022-08-27 | Implement multiple return values. | Rose Hogenson | 5 | -82/+120 | |
| 2022-08-23 | Change argument passing to use lists. | Rose Hogenson | 5 | -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-23 | Insert references, not values into the map. | Rose Hogenson | 1 | -7/+4 | |
| This fixes a bug in compiler.csc. | |||||
| 2022-08-22 | Add a few primitive list operations. | Rose Hogenson | 1 | -4/+14 | |
| 2022-08-12 | Fix bugs in the macro expander. | Rose Hogenson | 2 | -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-09 | Fix a few small bugs. | Rose Hogenson | 2 | -3/+3 | |
| N lines of code will have about 2N bugs. | |||||
| 2022-08-07 | Misc test fixup in the compiler. | Rose Hogenson | 5 | -21/+28 | |
| 2022-08-07 | Add include-library-declarations. | Rose Hogenson | 1 | -13/+50 | |
| 2022-08-07 | Fix hoist. | Rose Hogenson | 1 | -2/+4 | |
| Hoist needs to hoist the function bodies as well. | |||||
| 2022-08-07 | Add int<? and eq?. | Rose Hogenson | 1 | -0/+5 | |
| 2022-08-07 | Fix a bug in expand-body for an empty body. | Rose Hogenson | 1 | -1/+2 | |
| 2022-08-07 | Define last-index. | Rose Hogenson | 2 | -0/+26 | |
| 2022-08-07 | Fix a typo in codegen. | Rose Hogenson | 1 | -3/+1 | |
| 2022-08-05 | Add more of the standard library. | Rose Hogenson | 4 | -382/+385 | |
| 2022-08-05 | Add call-with-values. | Rose Hogenson | 2 | -1/+21 | |
| 2022-08-05 | Add call-with-current-continuation. | Rose Hogenson | 2 | -0/+15 | |
| 2022-08-04 | Add if, and, or, when and friends. | Rose Hogenson | 1 | -1/+12 | |
| 2022-08-04 | Add if and set!. | Rose Hogenson | 2 | -5/+66 | |
| 2022-08-01 | Remove mutable globals. | Rose Hogenson | 2 | -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-01 | Modify the project structure. | Rose Hogenson | 37 | -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. | |||||
