The Bag of Holding

Profile
Bellevue, WA
A bipolar guy in a pressure-cooker industry
1,455 comments
44 followers
628 entries
Advertisement
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…
539 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…
485 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…
605 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…
435 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…
583 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…
610 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…
425 views
Advertisement
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…
514 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, …
483 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…
441 views
Advertisement

Popular Blogs

shawnhar
Generalist
101 Entries
13 Followers
klg71
Generalist
53 Entries
1 Followers
ApochPiQ
Generalist
628 Entries
44 Followers
15 Entries
13 Followers
johnhattan
Programmer
1,277 Entries
50 Followers
Advertisement