Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


The Bag of Holding



Self-hosting the Epoch Compiler: Day Three

Posted by ApochPiQ, 12 December 2013 · 563 views
Epoch, language design
Sat down and figured out some of the annoying bugs that were left in the compiler, mostly surrounding higher order functions and templates. Rigged up a half-dozen more intrinsics and such, and fired off the compiler for yet another pass on itself.

At 8:02PM PST the compiler successfully completed its first semantic analysis on itself, and began attemptin...


Self-hosting the Epoch Compiler: Day Two

Posted by ApochPiQ, 11 December 2013 · 472 views
Epoch, language design
A large number of the errors emitted by attempting to self-host the compiler have turned out to be caused by a relatively small number of bugs.

Hex literals had no support at all in the compiler, so I added that, and crushed a bunch of errors. I forgot to special-case 0 so anything that evaluated to 0 would not be treated as a number (the compiler assume...


Self-hosting the Epoch Compiler: Day One

Posted by ApochPiQ, 10 December 2013 · 492 views
Epoch, language design
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 the gate was the garbage collector. I've had a very naive...


Two steps forward, one step sideways

Posted by ApochPiQ, 09 December 2013 · 485 views
Epoch, language design
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 the way, which will require some tweaking to get fixed....


Breaking down the Epoch parser

Posted by ApochPiQ, 02 December 2013 · 532 views
Epoch, language design
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 related to parsing the command line, opening files, and...


Zeroing in on self-hosting

Posted by ApochPiQ, 30 November 2013 · 448 views
Epoch, language design
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 expanding at a decent pace, and we're very close to being a...


Speculation on semantically-aware version control

Posted by ApochPiQ, 17 October 2013 · 692 views

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:
Create a multi-million line code base
Divide this into over two dozen branches for various independent development efforts
On some given branch, find some popularly-edited code that needs re...


Advice to a Young Programmer

Posted by ApochPiQ, 01 October 2013 · 9,024 views

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, no useless coffee-and-bagel fetching type nonsense, an...


So close, and yet so far

Posted by ApochPiQ, 29 September 2013 · 710 views
Epoch
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 probably eat up a lot of time.

One of those tests is s...


Still rambling about self-hosting

Posted by ApochPiQ, 18 September 2013 · 610 views
Epoch
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 compile itself.

Fun facts:
The compiler in C++, not incl...






May 2015 »

S M T W T F S
     12
3456789
10111213141516
17181920212223
2425262728 29 30
31      

Recent Entries

Recent Comments

PARTNERS