The Bag of Holding

Profile
Bellevue, WA
A bipolar guy in a pressure-cooker industry
1,455 comments
44 followers
628 entries
Advertisement
ApochPiQ
May 24, 2009
R7 Status Update
Put in some more time on Epoch R7 this weekend; so far the results are slow but promising. Lots of tiny little niceties are working correctly now, mostly to do with infix operators.

I've been pretty lax with keeping track of the changes and updates in R7, but there's a general list a couple posts ag…
389 views
ApochPiQ
May 21, 2009
*Yawn*
I've spent the few rare free moments I have working on Epoch lately; there's a healthy set of things getting checked off the R7 work list (see previous entry) and progress is definitely being made.

There's still a few kinks to work out, but infix operators are now working more or less perfectly. Alo…
472 views
ApochPiQ
April 14, 2009
Syntax improvement FTW
I'm sure some of you will be excited to know that I've finally gotten around to implementing infix operators in Epoch. Right now all I've got is basic arithmetic, but the framework should be very easy to extend to pretty much any operator imaginable.

In fact, the framework is specifically designed t…
519 views
ApochPiQ
April 13, 2009
Woohoo! GDC stuff is done
I've posted the last of my GDC 2009 coverage - finally!

Go check it out and enjoy it, or I will adopt a ghostly form and hang around in your linen closet to scare you every time you need new sheets.
383 views
ApochPiQ
April 12, 2009
GDC Shtuffs trickling in
More GDC coverage posted - this one is about optimizations on in-order CPUs (i.e. on modern consoles). Lots of great stuff, don't miss it.

Yes, I specifically spent my Easter Sunday morning transcribing my barely-legible notes for your benefit. I expect free candy and possibly also your firstborn.


Al…
465 views
ApochPiQ
April 09, 2009
GDC still isn't over!
Eurgh. I've posted about half of my GDC coverage and the rest has just gotten continually shuffled onto the back burner... then perhaps off the stove... maybe into another room... and, once or twice, it was outright banished to another dimension.

So yeah, more coverage still to come, when my brain w…
414 views
ApochPiQ
April 05, 2009
More juiciness
I've posted several more bits of awesome to the GDC coverage, all from the AI summit. I finally finished day 1! Woohoo!

(By the way, Richard, I'm sorry for mocking your Day 1 Wall of Text. I did the same thing, just split across 7 different articles - 9 pages, or 3586 words. Eurgh.)


Upcoming coverage…
477 views
ApochPiQ
April 04, 2009
Mmmm, GDC coverage.
Crunchy new coverage of the AI Summit at this year's GDC is now up - check out the coverage page for the goodness.

I'll be covering the AI summit in detail, as well as some exciting programming stuff from the multicore and optimization worlds. Stay tuned; I should hopefully get the bulk of the cover…
436 views
ApochPiQ
March 29, 2009
GDC Postmortem
Well, another GDC has come and gone. It's always a mixed feeling for me when a big show is over; part of me is so exhausted all I want to do is escape and sleep for a week, while another part wishes I could do it all again tomorrow.

The Bad
I normally wouldn't open up a postmortem with the bad news, …
497 views
ApochPiQ
March 26, 2009
Some more GDC
Fairly slow day today; had the second session of the AI roundtable this morning, followed by a lot of lurking around on the expo floor and trying to resist the temptations over at the bar.

Things should pick up a bit over the afternoon, though.

I'd be more specific as to what I've been doing, but my …
357 views
ApochPiQ
March 24, 2009
GDC, Day Something
Spent the morning in a session on making AI characters more interesting, and then snuck out of the AI summit to go see a day-long tutorial on multithreading techniques for games. Intel has some pretty slick tools coming out soon, which really make it a breeze to find and eliminate common threading …
430 views
ApochPiQ
March 23, 2009
GDC 2009 - Day 0
I'm officially checked in and hanging out at the press lounge here at GDC. So far everything has been fairly smooth (at least for me) and it promises to be a nice and busy year.

On the downside, nothing terrifically interesting has happened yet, so I really have very little to say.

I'm covering the A…
387 views
ApochPiQ
March 21, 2009
Epoch GDC'09 Release Now Available
Epoch GDC2009 Preview Release
I've officially completed the GDC 2009 Preview Edition of the Epoch SDK. This release includes quite a few major changes, including the foundations of Epoch's all-important multiprocessing support.

You can get the juicy goodness directly from here on GDNet - or, you can …
511 views
ApochPiQ
March 17, 2009
Celebration time...
I finally got a lockless FIFO implemented for passing messages between Epoch tasks. Like most lockless code, it works by the skin of its teeth, and a little dose or two of pure luck.

Here's the final code for those interested:
class LocklessMailbox
{
public:
//
// Construct and initialize the read and …
442 views
ApochPiQ
March 16, 2009
Stage 1 Completed... Get Ready!
After significant amounts of scouring across the intertron, and after pulling out large clumps of hair, I've managed to get lock-free message passing implemented in Epoch. This is cool because it makes it trivial to throw hundreds of messages around between tasks, and it's much more efficient than …
447 views
ApochPiQ
March 15, 2009
Locklessness is evil!
The bulk of my day has been sacrificed upon the alter of the synchronization gods. I am trying (thus far with little success) to implement a lock-free queue for sending messages between Epoch tasks. While progress is being made, it's slow going, as I'm pretty much entirely in uncharted territory.

As…
404 views
ApochPiQ
March 14, 2009
Talking about Epoch. Again.
Haven't really had any single big focus lately; instead I'm just working on polishing up existing functionality, doing some code cleanup, and doing the occasional bugfix.

The results of this aren't really easy to show, obviously, but there is one advance - the acceptmsg() function can now be passed …
349 views
ApochPiQ
March 13, 2009
Sleep is for the w... we.... weak. *zzz*
Against my better judgment, I decided to press forward on getting message passing functional. It's taken a fair bit of time, but actually it isn't quite as bad as I thought it would be.

At the moment I use a simple mutex-guarded list of messages, referred to as a task's "mailbox". When a message is …
324 views
ApochPiQ
March 11, 2009
Progress, of a kind
After some extended discussions, I've come up with a system that I'm almost completely happy with.


entrypoint : () -> ()
{

task(async)
{
responsemap(responses)
{
some_message(integer(foo)) => { do_stuff(foo) }

other_message(integer(lots), integer(of), integer(params)) =>
{
do()
367 views
ApochPiQ
March 11, 2009
Make yourself famous!
I've been toying around with various syntax options for the message passing model. So far I'm not terribly happy with any of them, but I have settled on one of the lesser evils. I'd like to just kick this out and see if anyone has some thoughts on how to improve it.

Unfortunately I can't afford to l…
382 views
ApochPiQ
March 11, 2009
I do NOT have a sleep problem. OK, yes I do.
Static validation for tasks is now complete.

I found a nice, simple solution to the higher-order-function bug - when a function reference is passed to another function, a binding record is placed on the stack. This record basically links the function parameter to an actual function; this record is h…
461 views
ApochPiQ
March 10, 2009
Oh noes, we aer teh borked!
My happy little scheme to eliminate shared state and cross-task side effects has hit a major speed bump.

The problem, in particular, is that we can't do a naive traversal of the code tree to detect all side effects. As long as we don't use any higher-order functions, it's fine and actually fairly si…
404 views
ApochPiQ
March 10, 2009
Yawn
Today was mostly consumed by hunting down a couple of sneaky memory leaks and a crash or two. Somewhere in there I threw in an update from Boost 1.35.0 to 1.38.0, which made some breaking changes to the boost::spirit code used by the parse grammars. I wasted a couple of hours getting all that clean…
544 views
ApochPiQ
March 09, 2009
Standing atop a mountain of slain bugs
As predicted, solving the multithreading issues has proven very interesting.

The scenario is fairly intricate, but easy enough to understand in hindsight. Here's the rundown:

  • Each code block is attached to a lexical scope - every time a { } block appears, a new scope is created by the compiler

  • Each le…
371 views
ApochPiQ
March 08, 2009
Woohoo!
I have officially run the first multithreaded Epoch application. It's a simple tweak on the old pi calculation program that I tested some time ago.

To demonstrate how easy this is, check out the code:

entrypoint : () -> ()
{
task(asyncjob1)
{
debugwritestring(concat("First: ", cast(string, pi(1000…
533 views
ApochPiQ
March 08, 2009
Running commentary. Because you love it.
0327 Hours
So, here I am, awake at stupid-o'clock, working on adding parallel processing fundamentals to Epoch. Most of my time in the past 18 hours or so has been spent fixing up dozens of small bugs and omissions in the binary loader. On the plus side, this means all the SDK examples work, and the…
546 views
ApochPiQ
March 07, 2009
Wading through a mass of dead bugs
As part of the GDC release package, I'm running each example program in both its original source form and in compiled binary form. (It probably reflects poorly on me to release a set of examples that don't work...)

This has turned up a huge number of bugs, mostly related to the binary side of the co…
367 views
ApochPiQ
March 06, 2009
I should have just written a Lisp clone...
The big project of the day is adding support for anonymous lists. The concept is very simple: for certain functions, it makes sense to send them a list of parameters to operate on. For example, the add function and the boolean or function both can combine multiple parameters.

In order to pass the pa…
455 views
ApochPiQ
March 05, 2009
Bugs - all the vital protein you need!
Today's work has primarily been mundane little bits and pieces, and lots of debugging. The code becomes increasingly clean and readable - not to mention more robust. So while it's fairly boring tasks, they'll go a long way towards giving a good first impression of the language.

Since the last post, …
426 views
ApochPiQ
March 04, 2009
Yayy, cleaning up code
The main dish of the day has been doing minor code cleanup and improvement. There are quite a few things that have been tweaked or gently massaged into more useful forms.

My checklist for the day:
  • Removed unused bytecode instructions

  • Used helper function DetermineEffectiveType() to simplify parser cod…
364 views
Advertisement

Popular Blogs

shawnhar
Generalist
101 Entries
10 Followers
15 Entries
11 Followers
johnhattan
Programmer
1,277 Entries
48 Followers
ApochPiQ
Generalist
628 Entries
44 Followers
dgreen02
Generalist
338 Entries
56 Followers
Advertisement