docs/04-changelog.markdown @ 72bbdd515725
Rewrite the compiler A few days ago I found a bug in the compiler that I decided merited basically an entire rewrite of it. This was long overdue. The compiler kind of grew organically and unhealthily over time as I wrapped my head around how the whole WAM is structured, and now that I understand a lot more I can do things right. This new implementation is a lot "flatter" than the old one. It makes use of CLOS classes and generic methods to un-nest a lot of the crap that was previously happening in bigass `labels` blocks. This is a lot easier to read and understand because you can take things a piece at a time. Unfortunately, it's currently a lot slower than the old one. But at least it's *correct*, and now I can start taking a look at optimizing the performance with a cleaner base to start from. Notes/ideas for the near future: * Switch to structs instead of CLOS classes for all the bits and bobs in the compilation process. * Inline hot functions in the compilation process. * Type hint the fucking compiler already. I've put this off for far too long. * Move the compiler to its own package for easier profiling and to maintain my shreds of sanity. * Look into that generic-function-inlining library thing I saw on Reddit... * Remove the last vestiges of `match` and kill the dependency on optima.
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Tue, 07 Jun 2016 14:49:20 +0000 |
| parents | c60cac27a0a7 |
| children | (none) |