| Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
|
|
I was hesitant to add a diff library, but it was surprisingly easy. A
straightforward application of dynamic programming.
|
|
I desperately need a diffing library.
|
|
I like scheme because it's possible to add any convenient language
feature I can think of.
|
|
Goodbye soup. Thanks to "Compiling with Continuations" by Appel.
|
|
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.
|
|
|
|
|
|
Why have void? We will just use #f.
|
|
Gone is toplevel. Now everyone lives in a library.
|
|
I'm realizing that I should have started with builtin-exit and
implemented the hard stuff later.
|
|
We're omitting libraries for now, and I'll add them in later.
|
|
|
|
Committing it because it compiles. I have to write tests and debug
it still.
|
|
|