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



Epoch Optimizations and Garbage Collection

Posted by ApochPiQ, 10 August 2013 · 317 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 · 187 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 · 240 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...


More adventures in garbage collection

Posted by ApochPiQ, 31 July 2013 · 244 views
Epoch
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,473 views
Epoch
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 · 525 views
Epoch
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 · 521 views
Epoch
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 · 591 views
Epoch
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 · 469 views
Epoch
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...


ArenaNet Internships

Posted by ApochPiQ, 13 June 2013 · 1,106 views
ArenaNet, internship and 1 more...
Wanting to break into the game industry but lacking vital work experience? Come check out ArenaNet's 2013 internship program .

Highlights:
Paid internship program
Do real jobs that are vital to company success, not busy-work
On-site in Bellevue, WA
One year duration

Hit the link to find out more.






November 2014 »

S M T W T F S
      1
2345678
9101112131415
1617181920 21 22
23242526272829
30      

Recent Comments

PARTNERS