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…
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…
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…
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…
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…
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:
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…
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:
To demonstrate how easy this is, check out the code:
entrypoint : () -> ()
{
task(asyncjob1)
{
debugwritestring(concat("First: ", cast(string, pi(1000…
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…
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…
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…
This has turned up a huge number of bugs, mostly related to the binary side of the co…
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…
In order to pass the pa…
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, …
Since the last post, …
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:
My checklist for the day:
- Removed unused bytecode instructions
- Used helper function DetermineEffectiveType() to simplify parser cod…
Advertisement
Popular Blogs
Advertisement