🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Epoch Release 8

Published February 08, 2010
Advertisement
Release 8 of the Epoch language project is getting really close to ready to ship... finally!


I scraped together a couple of hours this evening and knocked out the remaining work for thread pooling support. The big caveat to using worker thread pools is that you can't pass messages to a pooled thread, because there is no way to identify which thread(s) are actually idle and ready to receive such a message.

You can send a message from a worker thread, and the target thread can reply to sender(), so it isn't impossible to communicate with pooled threads - just slightly less convenient than with task threads.


This brings R8 down to only a few outstanding items; another thing I got done today is support for building a runnable .EXE given just a standalone .epoch code file. There is no longer any need to set up a project in order to build a distribution-ready Epoch binary.

I also added a compiler switch which lets you choose whether or not to spawn a debug console when the program begins. Console apps can use this flag to get their own console space as they expect, and GUI apps can rest at ease knowing that there won't be an empty console window hovering around in the background.


There's a whopping four outstanding issues for R8, roughly prioritized as follows:

  • Fix bug in the Scribble project (possible parser bug)

  • Ensure that projects, compilation, assembly, disassembly, and binary generation are all functional

  • Improve build configurations in the Epoch project

  • Fix bug in Exegen which can mangle filenames/paths


You can watch the work list for Epoch at any time via our issue tracker. If you're more of an RSS person, check out our feed list. Live previews of the development fork can be browsed via our Mercurial repository, or directly on the web.


R8 will not have a particularly potent implementation of the CUDA integration yet, mainly because I just haven't had the time to play with the cross-compiler much. I intend to get much better support in place for R9/GDC'10 - enough to do a non-trivial demo of using CUDA threads on the GPU vs. using CPU threading.

I also need to implement failover support so that if CUDA is not available on the host machine, the VM falls back to CPU threads rather than trying to use the GPU. There are still a few architectural and syntax questions left to be solved before I can do that, but nothing major.

All in all, assuming I manage to avoid being hit by a bus and/or flying rhinoceros, R8 should be out Very Soon(TM) and R9 will be hot on its heels. With any luck the GDC'10 preview kit will have some nice goodies that'll really turn some heads [smile]
0 likes 1 comments

Comments

EvincarOfAutumn
I've been following Epoch since the original forum post, and I'm glad to see that you're steadily working on it! It's really a lot of fun to use it and watch it grow. I'm working on a general-purpose language of my own, called Prog, and I'd love to bounce a few ideas off you, if it's not too much trouble. No need to worry about competition: I'm making this thing purely out of a lust for programming, and Prog's design goals are significantly different from Epoch's, anyway. Each language to its own problem domain, right?
February 11, 2010 11:28 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement