Jump to content

  • Log In with Google      Sign In   
  • Create Account


The Bag of Holding



Epoch self-hosting progress

Posted by ApochPiQ, 25 August 2013 · 280 views
Epoch
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 · 219 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;...


VINDICATION

Posted by ApochPiQ, 02 August 2013 · 120 views
Epoch
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 · 173 views
Epoch
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...





PARTNERS