The Bag of Holding

Profile
Bellevue, WA
A bipolar guy in a pressure-cooker industry
1,455 comments
44 followers
628 entries
Advertisement
ApochPiQ
September 29, 2014
Spaces for all the things, and everything in its space
So Epoch has managed to self-host (as of an embarrassingly long time ago) and the Era IDE is slowly turning into something actually worth using. Over the past few days I got a rudimentary symbol lookup feature done, where you can press F11 to process a project and F12 with the text caret over a sym…
1,708 views
ApochPiQ
September 23, 2014
Playing with colors!
Been playing around with a dark theme for Era:



Syntax highlighting still needs some love, but it's getting there.


Note that the IDE now highlights structure type names and function names. This is currently activated by pressing F12, wh…
1,227 views
ApochPiQ
September 19, 2014
Argh, bitrot.
Turns out that leaving a project alone for six months is a great way to discover that it's full of mysterious bugs you don't remember having.

I noticed some weird behavior with Era, the Epoch IDE, earlier this evening, and started poking around looking for explanations. It turns out that in some wei…
1,278 views
ApochPiQ
September 18, 2014
A Quick Introduction to Sampler-Based Profiling
Sampler-Based Profiling: The Quick Version
So you're happily working on some code, and suddenly it happens: everything is just too damn slow! Something is eating up all your performance, but it's not immediately obvious what to do about it.

One of the first things any experienced programmer will tell…
4,598 views
ApochPiQ
September 09, 2014
Brain dump: considerations for organizing code
No structure or real nice formatting will be found in this post. This is a stream-of-consciousness blathering process wherein I contemplate how to organize code in a way that escapes the limitations of the file paradigm.



Considerations for organizing code
Main goal: aid in discoverability and navigat…
1,802 views
ApochPiQ
September 08, 2014
The Right Taxonomy of Code
I've written before about how much I want to get away from the "code goes in files" model of programming. The more code I write, and the larger the project, the less it makes sense to organize everything strictly by file names.

Yes, folder hierarchies can be one reasonable way to group related code.…
1,530 views
ApochPiQ
September 04, 2014
Time sure flies...
It's been well over a year since I embarked on the monumental project of self-hosting the Epoch language compiler. In all that time, there have been a whopping ZERO releases of the language or any of its accompanying tools/examples/etc.

I'd been taking some time off from Epoch for a number of reason…
1,232 views
ApochPiQ
June 30, 2014
VISUAL STUDIO IS A SELFISH WANKER
Why in the ever living FUCK does Visual Studio 2012 insist on bringing itself to the foreground every time the debugger starts?

This is fucking horseshit. I have multiple projects that I have to work on concurrently, each with a separate VS instance. So if I want to fire up one instance's debugger, …
1,712 views
ApochPiQ
June 19, 2014
Barfing out some thoughts
It's an interesting time, that's for sure.

Work has been consuming a monumental portion of my time and energy lately; and while I can't talk about it yet, I can say that it has definitively been a lot of fun and I really can't wait to unleash what I've been working on. There's a ton of potential in …
1,544 views
ApochPiQ
June 09, 2014
The Five Stages of Programming
All programmers undergo a transformation, from the moment they first start typing code, until the moment they realize that there's more important things in life than making computers obey one's whims. (I hypothesize that this latter moment occurs after death, because I sure can't think of anything …
4,093 views
ApochPiQ
May 07, 2014
VS2012 SUCKS AND I CAN PROVE IT
I am thoroughly PISSED THE HELL OFF right now.


One of my favorite text editor options in old versions of Visual Studio was "Go to selection anchor after pressing escape." If you never experienced the blissful joy of this, here's what it did:

- Open some long code file
- Hold Shift
- Accidentally pre…
2,552 views
ApochPiQ
March 31, 2014
Why YOU should embed a web server in your game engine
I'm going to give you a sales pitch. It might sound outlandish at first, but bear with me - I think, by the end, you'll agree that this is a Good Thing(TM).

You should embed a tiny web server in your game engine.


It doesn't need to ship with the game, of course; this is a development tool. If you're …
13,851 views
ApochPiQ
January 29, 2014
More diversion
I got tired of having my IRC bot be a plugin to a Chrome plugin, so I started tearing apart the CIRC Chrome extension and stripping it down to serve as a bot hosting platform. The UI already has some tweaks to support bot features, and having direct access to the whole Chrome extension API is very …
1,769 views
ApochPiQ
January 27, 2014
And now for a brief diversion
So I got bored last summer, and started writing an IRC bot in JavaScript.

This weekend I got bored again, and polished it up and posted it on my scribblings site. You can view the entire beast here.

Note that I make no claim whatsoever to have written "good" JavaScript code.
1,553 views
ApochPiQ
January 16, 2014
Epoch IDE screenshot
Just wanted to share some of the recent progress on the Era IDE:



There's a lot of stuff going on under the hood here, and not much in the way of outwardly visible changes, but it's still moving forward at a decent rate and I'm pretty …
2,581 views
ApochPiQ
January 14, 2014
Carpentry and Magic Resizing Logs
Once, there was a carpenter.

He was a pretty good carpenter, too, and knew a lot about his trade. He made a decent living selling his wares in the local market.

As the carpenter wandered through the forest looking for good trees to use for his next project, he stubbed his toe on a small lamp. He pick…
1,797 views
ApochPiQ
January 12, 2014
{Re}birth of an IDE
Tonight witnessed the first fully operational build of the Era IDE compiled under the end-to-end Epoch toolchain.

This is cool for a number of reasons: it means that the Epoch compiler can build Windows .EXEs with embedded resources correctly; it means that the entire language toolset is now self-su…
1,635 views
ApochPiQ
January 09, 2014
All this pain over something so small...
My mid-term goal for the Epoch language project remains the same: I want to get Era back up to speed and start developing a better IDE now that the compiler is more or less solid.

However, the short-term implication of this is that I need support for GUI apps in the compiler, and that means resource…
1,356 views
ApochPiQ
January 04, 2014
Garbage! Garbage Everywhere!
I've been slowly narrowing down my garbage collection issue, and I think I've landed on a reasonable hypothesis.


Background: I'm working on a mark/sweep-based garbage collector for the Epoch language. The full details are far too intricate for a single journal entry, but the basic theory is this: st…
1,514 views
ApochPiQ
January 01, 2014
Cleaning Up Garbage
Earlier today I decided to go ahead and turn the garbage collector back on, and see just how bad things are.

On the plus side, the compiler still self-hosts in only a few seconds, so it's not nearly as horrid as it could be.

On the down side, there's a persistent crash deep in the garbage collector t…
1,581 views
ApochPiQ
January 01, 2014
Death to 2013
This time last year, I was obsessing over putting the finishing touches on the Epoch realtime raytracing demo. The emphasis then was on runtime speed, much like the recent focus has been on compilation speed. I think it's fitting that the work on runtime speed directly contributed to the ability to…
1,405 views
ApochPiQ
December 29, 2013
Drink Your Ovaltine, Kiddies
There is a special trick to optimizing code, one that I usually drag out as a weapon of last resort when all algorithmic stuff is taken care of and it's time to give up or start trying to micro-optimize.

The secret, of course, is to eliminate dynamic memory allocations. This isn't a huge revelation …
1,415 views
ApochPiQ
December 28, 2013
Still Addicted to Speed (no, not that kind)
Over the past few days I've managed to hit what seems to be a local minimum in the compiler's speed: 1.1 seconds. Of course, this is slightly inflated, because the compiler is now substantially larger than it was before. If I do a pure apples-to-apples comparison, the compiler hits about 850 millis…
1,449 views
ApochPiQ
December 22, 2013
Return to Fast-Land
A few days ago, the Epoch compiler could self-host in about 60 seconds.

My last run of the self-hosting process clocked in at 6.59 seconds - nearly ten times faster than when I started out. That's not bad for a couple afternoons worth of work.

As I suspected, there was a lot of lazy nonsense in the c…
1,513 views
ApochPiQ
December 19, 2013
What's Next for Epoch?
As I wrote up in the previous several entries, the Epoch programming language recently achieved self-hosting. I've had a few people ask what happens next, so I figured I'd write up my plans for Epoch's immediate future.


First and foremost, I need to fix the garbage collector. It's currently stupidly…
1,403 views
ApochPiQ
December 15, 2013
Self-hosting the Epoch Compiler: Day Six
Tackling problems with a fresh mind makes a world of difference.

The first thing I needed to solve this morning was a miscompile involving constructors. Deeper investigation showed that sum-typed members were to blame. Thankfully, this bug had an easy repro, so I built out a test case and set out to…
1,702 views
ApochPiQ
December 14, 2013
Self-hosting the Epoch Compiler: Day Five
After a nice night of rest, it's time to come back in force and really hammer on this compiler.

The first bug I decided to tackle involved incorrect type annotations when passing sum-typed variables to a pattern matched function (say that ten times fast). The fix was to look more carefully at the or…
1,424 views
ApochPiQ
December 14, 2013
Self-hosting the Epoch Compiler: Day Four
Mostly hammering away on a variety of miscompiles and other tiny bugs tonight; I've squished a ton of problems but they all blur together and I can't clearly remember what all they were.

Almost everything at this stage manifests as the JIT engine vomiting when trying to turn the compiled Epoch progr…
1,274 views
ApochPiQ
December 13, 2013
Self-hosting the Epoch Compiler: Day Three
Sat down and figured out some of the annoying bugs that were left in the compiler, mostly surrounding higher order functions and templates. Rigged up a half-dozen more intrinsics and such, and fired off the compiler for yet another pass on itself.

At 8:02PM PST the compiler successfully completed it…
1,382 views
ApochPiQ
December 12, 2013
Self-hosting the Epoch Compiler: Day Two
A large number of the errors emitted by attempting to self-host the compiler have turned out to be caused by a relatively small number of bugs.

Hex literals had no support at all in the compiler, so I added that, and crushed a bunch of errors. I forgot to special-case 0 so anything that evaluated to…
1,509 views
Advertisement

Popular Blogs

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