As I've written about here previously, I have a personal goal of self-hosting the Epoch language compiler by the end of 2013. The other night I actually ran the first attempt at passing the compiler source code through itself; the results were underwhelming, to say the least.
My main enemy out of th…
My main enemy out of th…
Over the weekend, I finished the last of the Epoch compiler support for templates. This means that, in theory, the Epoch-implemented compiler is capable of passing every test in the compiler test suite that I use for the C++ version of the compiler.
Unfortunately, I introduced two regressions along …
Unfortunately, I introduced two regressions along …
I've had several requests for a detailed look at how the Epoch compiler parser works, so I figured I'd write up a summary of how everything fits together.
All Epoch programs begin their life in the entrypoint function. The compiler's entrypoint is fairly simple, but it contains a lot of extra stuff …
All Epoch programs begin their life in the entrypoint function. The compiler's entrypoint is fairly simple, but it contains a lot of extra stuff …
After a short break, I'm back to hacking on Epoch again.
Today was pretty productive; made several additions to the parser, added support for a few lingering language features that have been neglected up until now, and fixed a couple minor bugs. The compiler is getting richer, the test suite is expa…
Today was pretty productive; made several additions to the parser, added support for a few lingering language features that have been neglected up until now, and fixed a couple minor bugs. The compiler is getting richer, the test suite is expa…
Working on a massive code base comes with some interesting challenges.
Consider this scenario, loosely based on a real-world problem we recently encountered at work:
Consider this scenario, loosely based on a real-world problem we recently encountered at work:
- Create a multi-million line code base
- Divide this into over two dozen branches for various independent development efforts
- On some given …
One of the awesome things about ArenaNet is that we run a programming internship program that actually does a phenomenal job of preparing people to work in the games industry. This is accomplished by focusing on three primary principles:
- Everything you do will matter. There is no pointless busy-work…
After implementing a bit of value-based pattern matching support, the Epoch compiler is now down to 7 tests remaining before it's ready for self-hosting.
Of those 7, four are related to templates, which will be the last major endeavor required to get self-hosting viable. Templates are scary and will…
Of those 7, four are related to templates, which will be the last major endeavor required to get self-hosting viable. Templates are scary and will…
Down to 9 tests in the compiler suite that still need some love before they will pass.
For those not keeping score at home, this means that 58 out of 67 compiler tests are passing in the Epoch implementation of the Epoch compiler. In other words, Epoch is getting very, very close to being able to co…
For those not keeping score at home, this means that 58 out of 67 compiler tests are passing in the Epoch implementation of the Epoch compiler. In other words, Epoch is getting very, very close to being able to co…
So the Epoch compiler is now written end-to-end in Epoch. There is no C++ left in the bootstrapping process aside from the runtime environment which does garbage collection and such.
Sadly this doesn't mean that we're quite to self-hosting just yet. Only about a third of the compiler test suite is p…
Sadly this doesn't mean that we're quite to self-hosting just yet. Only about a third of the compiler test suite is p…
Advertisement
Popular Blogs
Advertisement