| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2022-04-22 | Fix image caption. | Rose Hogenson | 1 | -2/+4 | |
| I think this will look the best, just repeating the same information in the alt text and in the main text. The pandoc generated version will be slightly repetitive, but it's not too bad. | |||||
| 2022-04-22 | Add a diagram of the compiler phases. | Rose Hogenson | 2 | -1/+298 | |
| 2022-04-22 | Improve the README for Github. | Rose Hogenson | 1 | -3/+3 | |
| 2022-04-22 | Update the README for Github markdown. | Rose Hogenson | 1 | -12/+8 | |
| 2022-04-22 | Update the README. | Rose Hogenson | 1 | -3/+351 | |
| 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-03-03 | Start the garbage collector. | Rose Hogenson | 7 | -77/+561 | |
| I don't think we finished it, but I wrote this code a while ago and I'm just trying to get it committed. | |||||
| 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 | Add a README. | Rose Hogenson | 1 | -0/+5 | |
| 2022-01-11 | Move scheme compiler into a separate directory. | Rose Hogenson | 27 | -0/+0 | |
| 2022-01-11 | Add a first implementation of a macro expander. | Rose Hogenson | 3 | -0/+422 | |
| This half-finished macro expander is the most satisfying piece of code I have ever written. | |||||
| 2022-01-11 | Make bindings visible while a guard is evaluated. | Rose Hogenson | 2 | -5/+15 | |
| The current implementation repeats the bindings twice, but I guess it's fine. It seems to work. | |||||
| 2022-01-11 | Add guards to the match syntax. | Rose Hogenson | 2 | -1/+20 | |
| I'm not sure the syntax is great, but it's very helpful to have. | |||||
| 2022-01-09 | Write the linker. | Rose Hogenson | 13 | -102/+450 | |
| 2022-01-09 | Remove str- prefixes from the strings library. | Rose Hogenson | 3 | -47/+45 | |
| Not very scheme. | |||||
| 2022-01-09 | Redo the testing framework. | Rose Hogenson | 9 | -637/+310 | |
| We can lean more on the power of scheme to make the testing framework a little less verbose. | |||||
| 2022-01-09 | Add some magic to detect symbols. | Rose Hogenson | 2 | -26/+41 | |
| I still don't understand this snippet. | |||||
| 2022-01-09 | Define helper intercalate. | Rose Hogenson | 2 | -2/+44 | |
| 2022-01-09 | Improve match syntax. | Rose Hogenson | 2 | -29/+44 | |
| Now ! is required to match against a constant, and by default a name is bound. | |||||
| 2022-01-09 | Simplify macro definitions in match. | Rose Hogenson | 1 | -31/+9 | |
| 2022-01-09 | Add wildcard to pattern syntax. | Rose Hogenson | 2 | -7/+25 | |
| 2022-01-09 | Add a library for pattern matching. | Rose Hogenson | 2 | -0/+102 | |
| 2022-01-09 | Use load to evaluate each library's tests. | Rose Hogenson | 2 | -1/+2 | |
| 2022-01-09 | Initial commit. | Rose Hogenson | 25 | -0/+1987 | |
| Not sure if everything here will be needed eventually, but we have a working bytecode interpreter. Next I will write the linker, then the core compiler, and finish with the macro expander. | |||||
