Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.

The Bag of Holding

Epoch self-hosting progress

Posted by ApochPiQ, 25 August 2013 · 394 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...

Epoch Optimizations and Garbage Collection

Posted by ApochPiQ, 10 August 2013 · 328 views
Epoch, language design
Following the Great Garbage Collection Debug Spree of the past few weeks, I've noticed a general trend towards bad performance in the realtime raytracer benchmark. At one point it was down to ~6.5FPS peak performance, which is just unacceptably bad.

Profiling revealed two main causes of this slowdown. One is the garbage collector invocations themselves;...


Posted by ApochPiQ, 02 August 2013 · 193 views
Turns out my garbage collection woes are over.

I was strongly suspicious of the inliner in my last post, and it turns out that this hunch was (albeit indirectly) completely correct.

The obvious thing to do when facing a bug like this is to compare the code generated; dump out a listing of the version that works, and a listing of the version that doesn'...

The ongoing mission

Posted by ApochPiQ, 02 August 2013 · 248 views
Nailed down some more quirks in the GC over the past day; unfortunately the last one is a real bugger.

It appears that LLVM's function inlining optimizations cause the GC to go slightly insane. I have yet to ascertain the exact interaction between the inliner and the GC, but disabling all inline functions makes the GC run beautifully.

I also remembered...

More adventures in garbage collection

Posted by ApochPiQ, 31 July 2013 · 249 views
One of my least favorite types of bug to unravel is the Ball of Yarn.

A Ball of Yarn is not just one bug. It's a large number of bugs, all in close proximity, which influence and interact with each other. If you pull on one of the threads, one of two things will happen: either you will slowly gain insight into the mess, or (more likely), you'll inadverte...

Hard lessons

Posted by ApochPiQ, 25 July 2013 · 1,484 views
I've learned three nasty lessons this week.

First, exception handling in C++ is a knotted mess of undefined behavior, especially when you start blending JIT compiled native code with C++ code that can throw exceptions.

Second, as a result of this, when testing code you should always run it under a debugger so you can tell if an exception is getting thr...

IDE hackery

Posted by ApochPiQ, 20 July 2013 · 529 views
As I continue to mess with self-hosting the Epoch compiler, I'm spending a lot more time actually editing Epoch code than C++ code. This is a wonderful thing overall, since I basically created the language precisely so I could quit writing apps in C++.

Writing a lot of Epoch code in Notepad is pretty brutal, and I was kind of tired of just working on th...

I'll just leave this here...

Posted by ApochPiQ, 16 July 2013 · 527 views
Here's the kicker: the compiler that produced this working program is written entirely in Epoch.

Yes, the test program is extremely minimalistic, but it passed .

Self-hosting completion is now just a matter of getting the parser to understand the entire language grammar, and finishing out the last bits of semantic analysis/type system enforcement t...

Self-hosting: major milestone on the path has been reached!

Posted by ApochPiQ, 14 July 2013 · 596 views
I exulted over this rather vocally on Twitter, but in case you don't follow me (@ApochPiQ), I'll repeat it here:

At 12:15AM this morning, Epoch's compiler successfully generated itself, when provided with a decorated AST from the C++ compiler front-end.

What this means is that I have a fully working layer that translates the decorated Epoch AST into ma...

Epoch Self-Hosting Progress

Posted by ApochPiQ, 06 July 2013 · 475 views
I've been working off and on for a few months now on creating a self-hosting compiler for the Epoch programming language .

In brief, this means that the language itself is robust enough to implement a complete compiler, which in turn is an implementation of the Epoch language. (Presently, Epoch is implemented by a compiler written in C++.)

Progress is s...

December 2014 »

14151617 18 1920

Recent Entries

Recent Comments