Jump to content

  • Log In with Google      Sign In   
  • Create Account

Interested in a FREE copy of HTML5 game maker Construct 2?

We'll be giving away three Personal Edition licences in next Tuesday's GDNet Direct email newsletter!

Sign up from the right-hand sidebar on our homepage and read Tuesday's newsletter for details!

The Bag of Holding

Self-hosting the Epoch Compiler: Day One

Posted by ApochPiQ, 10 December 2013 · 474 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 · 463 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 · 515 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 · 426 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 · 669 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 · 8,939 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 · 684 views
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 · 586 views
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...

Speculation and such

Posted by ApochPiQ, 09 September 2013 · 634 views
Just fooling around.

//// Define an Epoch task that does some work//task Worker :{ // // This specifies a "message signature" which can be // used by and instance of this task to receive data // and commands from other code. // Work : integer a, integer b { // Do some computation integer result = a + b // Reply...

Epoch self-hosting progress

Posted by ApochPiQ, 25 August 2013 · 384 views
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 passing, and a lot of the remaining work centers around g...

November 2014 »

161718192021 22

Recent Comments