Jump to content

May 2017 »

21222324 25 2627

The Bag of Holding

4: Adsense

Watching syntax evolve

I'm still thinking a lot about the question of task syntax in Epoch. The more I contemplate the matter, the less I like the idea of having tasks be overloaded as the "only" way to do namespacing. I also don't like the idea of static methods/data very much.

I still really like keeping tasks as the single mechanism for packaging functionality with data. I...

Epoch Release 15 is now available

Release notes .

I didn't get a ton of votes, but all the votes I got were for doing a release sooner rather than later. So here you go, with all the warts and incomplete stuff.

This is mostly a milestone preview for those (few) of you who are really watching the project; think of it as a sneak peek more than a stable development platform. Even still, y...

Plodding ever onward

I've begun the mammoth task of refitting the Epoch compiler to believe in namespaces.

Up until now, all names have been global, and all named entities have existed as peers in the global space. (The exception of course being local variables and function parameters/return slots.)

So far, I've moved algebraic sum types and scope metadata to be tracked in...

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 symbol to jump immediately to the definition of the symbol. T...

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, which triggers a parse of the entire project. The parse stores off relevant identifiers for use in syntax highlighting...

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 weird combination of circumstances, the Epoch program (Era...

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 you is to profile . In a nutshell, this is a grizzl...

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 navigation of complex code bases. Secondary benefit could b...

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... but they're still file-based, and they still assume...

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 reasons, but this week I found myself with the inevitable itch...