| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2022-07-12 | Add builtin operations to IR1. | Rose Hogenson | 3 | -14/+80 | |
| 2022-07-12 | Slightly improve diff formatting. | Rose Hogenson | 2 | -51/+51 | |
| 2022-07-12 | Remove redundant parentheses in the match macro. | Rose Hogenson | 4 | -28/+28 | |
| I'm marginally reducing verbosity with this change, without sacrificing readability. | |||||
| 2022-07-03 | Update a comment in compare.csc. | Rose Hogenson | 1 | -4/+0 | |
| 2022-07-03 | Add a diff library. | Rose Hogenson | 12 | -191/+549 | |
| I was hesitant to add a diff library, but it was surprisingly easy. A straightforward application of dynamic programming. | |||||
| 2022-07-02 | Write closure conversion. | Rose Hogenson | 8 | -163/+356 | |
| I desperately need a diffing library. | |||||
| 2022-07-01 | Add update conversion. | Rose Hogenson | 3 | -145/+345 | |
| Now variables can't be updated after they're created, so they can be freely copied into closures. | |||||
| 2022-06-30 | Add a function for getting the gensym ID. | Rose Hogenson | 1 | -2/+3 | |
| 2022-06-29 | Add pattern matching for record types. | Rose Hogenson | 5 | -152/+233 | |
| I like scheme because it's possible to add any convenient language feature I can think of. | |||||
| 2022-06-28 | Improve CPS. | Rose Hogenson | 9 | -431/+357 | |
| Goodbye soup. Thanks to "Compiling with Continuations" by Appel. | |||||
| 2022-06-26 | Finish CPS. | Rose Hogenson | 6 | -12/+182 | |
| Wow we actually finished CPS. Next is closure conversion, then codegen, and then we should be able to run some end to end tests. Then we can look at garbage collection, and from there continue building features down the long road to self hosting. | |||||
| 2022-06-26 | More CPS. | Rose Hogenson | 3 | -62/+151 | |
| I improved the abstraction in to-cps. | |||||
| 2022-06-25 | More CPS. | Rose Hogenson | 5 | -4/+72 | |
| 2022-06-25 | Continue work on continuation passing style. | Rose Hogenson | 6 | -43/+235 | |
| 2022-06-21 | Add shell.nix. | Rose Hogenson | 1 | -0/+5 | |
| 2022-06-21 | More progress on CPS. | Rose Hogenson | 3 | -69/+57 | |
| 2022-06-21 | Comment expand-body. | Rose Hogenson | 1 | -0/+1 | |
| 2022-06-21 | Start CPS :) | Rose Hogenson | 2 | -0/+30 | |
| 2022-04-22 | Remove the void type. | Rose Hogenson | 3 | -23/+11 | |
| Why have void? We will just use #f. | |||||
| 2022-04-07 | Add libraries. | Rose Hogenson | 3 | -126/+189 | |
| Gone is toplevel. Now everyone lives in a library. | |||||
| 2022-04-02 | Write a test for case-lambda. | Rose Hogenson | 3 | -18/+49 | |
| I'm realizing that I should have started with builtin-exit and implemented the hard stuff later. | |||||
| 2022-03-31 | Improvements in macros and IR1. | Rose Hogenson | 4 | -184/+171 | |
| We're omitting libraries for now, and I'll add them in later. | |||||
| 2022-03-31 | Allow overriding the cmp function in assert-equal. | Rose Hogenson | 2 | -93/+6 | |
| 2022-03-03 | Write the compiler frontend. | Rose Hogenson | 4 | -54/+186 | |
| 2022-01-25 | Nitpick on loop style. | Rose Hogenson | 1 | -3/+4 | |
| 2022-01-25 | Use an exception for loop return. | Rose Hogenson | 1 | -18/+12 | |
| This makes everything a lot easier, as it handles nested loops automatically. My brain wave was storing the returned values in a thunk. | |||||
| 2022-01-25 | Fix the bugs in loop. | Rose Hogenson | 2 | -44/+230 | |
| It works! Sometimes it emits nested loops! | |||||
| 2022-01-24 | Implement lambda? | Rose Hogenson | 2 | -12/+209 | |
| 2022-01-24 | Finish the loop macro. | Rose Hogenson | 3 | -164/+362 | |
| I also cleaned everything up a lot. Maybe there are still bugs because the test coverage is awful, but for now I'm happy to be done. | |||||
| 2022-01-22 | Store the list length in sort. | Rose Hogenson | 1 | -8/+12 | |
| Computing length each time is very unnecessary. | |||||
| 2022-01-22 | Add a loop macro. | Rose Hogenson | 3 | -12/+313 | |
| 2022-01-15 | Finish the macro expander. | Rose Hogenson | 6 | -105/+501 | |
| 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-14 | Write a first draft macro expander. | Rose Hogenson | 6 | -161/+414 | |
| Committing it because it compiles. I have to write tests and debug it still. | |||||
| 2022-01-13 | Rewrite match to use exceptions. | Rose Hogenson | 1 | -17/+43 | |
| This makes the control flow more clear, and eliminates the need to scan the pattern twice. It also makes it easier to add new forms by consolidating the pattern logic in one procedure. | |||||
| 2022-01-13 | Use := instead of = for variable assignment. | Rose Hogenson | 1 | -1/+1 | |
| I was reading about the difference, and := does what you want more often than not. | |||||
| 2022-01-13 | Generalize the hash map. | Rose Hogenson | 3 | -35/+48 | |
| Before we were assuming keys could be compared with eqv?. But it seems like that assumption isn't true when we want to hold identifiers in the hash map. | |||||
| 2022-01-11 | Move scheme compiler into a separate directory. | Rose Hogenson | 27 | -0/+1749 | |
