The Bag of Holding

Profile
Bellevue, WA
A bipolar guy in a pressure-cooker industry
1,455 comments
44 followers
628 entries
Advertisement
ApochPiQ
April 23, 2012
It's Finally Here!
I've finally launched Release 12 of the Epoch programming language!

Go check out the sources and binaries and also the full web site.


I'll be working on updating the wiki and getting some release notes up over the next few hours.
2,033 views
ApochPiQ
April 19, 2012
Software at Scale: Practice Like You Play
I recently learned an interesting lesson in developing software that needs to scale to large capacities.

I can't get into the specifics of what I was working on, but the essential facts are more or less as follows:

  • It includes a cache algorithm
  • I tested it with as much load as my workstation could gen…
3,478 views
ApochPiQ
April 19, 2012
Epoch Release 12 - Final Phases of Preparation!
At long last, the checklist of major items to do for Epoch Release 12 is empty!

There are a few lingering TODOs in the code which I will probably try and knock out over the next few days, and then it's down to deciding how much additional work I really feel like doing before shipping R12. Considerin…
1,858 views
ApochPiQ
April 14, 2012
Homing in on Epoch Release 12
The task list for Epoch Release 12 continues to shrink!

Right now there are basically six major things that definitely need to be done before I'd even consider shipping the release:
  • Operator precedence reimplementation (basically just need to do a quick Shunting Yard implementation in the new compile…
  • 1,706 views
    ApochPiQ
    April 10, 2012
    New scribbling!
    A while ago I launched a site called Scribblings by Apoch with the intent of occasionally publishing little bits and pieces of useful code that didn't have any other particularly appropriate home.

    At long last I've posted a new scribbling. As usual, it was motivated by something I really needed to d…
    1,833 views
    ApochPiQ
    April 08, 2012
    Epoch runtime: now with StupidFast
    Did some more experimentation with LLVM and Epoch's JIT system; and damn I am pleased with the results.

    After finally muddling through enough of the llvm-opt source code to figure out how to order all the optimization passes that LLVM offers, I got a lot of basic optimization and dead-code eliminati…
    2,498 views
    ApochPiQ
    April 07, 2012
    LLVM Madness
    More hackery on Epoch/LLVM integration today; got some very promising results.

    For comparison: at the end of my hacking marathon the other night, I had the VM running at about 950ms for the benchmark, and the JITted native code at around 720ms.


    I'm now down to 920ms for the VM and 370ms for the nativ…
    1,745 views
    ApochPiQ
    April 04, 2012
    Epoch JIT Compilation
    What a hell of a night.


    After much tinkering with the Epoch compiler and its internals, I decided to take some time and explore a diversion, just for fun. While the core language is much better off than it was a couple of weeks ago, I've spent so much energy on mundane bug fixes and tiny feature rei…
    1,499 views
    ApochPiQ
    March 14, 2012
    Introducing the Game Networking Guild
    A funny thing happened on the way home from GDC the other day.

    I was in the San Francisco airport, after having finished my previous journal post on the experiences of GDC 2012. I packed up my laptop, wandered over to the gate, and happened to spot a familiar face. We'll call him Steve, because that…
    2,423 views
    ApochPiQ
    March 10, 2012
    GDC 2012 - personal thoughts
    I waffled for a bit on posting this to the "official" GDNet coverage for GDC 2012, but eventually settled on putting it here because honestly it's much more for my own personal wrap-up of the week than for stuff that most people would find interesting. I'm not even sure this is worth a public journ…
    1,619 views
    ApochPiQ
    February 27, 2012
    LLVM... it LIVES!
    So I decided that I was tired of not working on the VM side of things, and rigged up a simple test harness for LLVM.

    Basically, this creates the following situation:

    • getstuff() is a function defined in the native .EXE which returns a simple integer
    • answer() is a function defined in LLVM bitcode at run…
    2,041 views
    ApochPiQ
    February 27, 2012
    Variable syntax is finally sane
    At long last, the Epoch syntax for defining and initializing variables has gotten some love.

    Here's how R12 Epoch looks:

    add : integer a, integer b -> integer c = a + b

    entrypoint :
    {
    integer forty = 40
    integer two = 2
    integer the_answer = add(forty, two)
    debugwritestring(cast(string…
    1,499 views
    ApochPiQ
    February 21, 2012
    Epoch: Structure definitions get an overhaul
    Instead of working on changing variable initialization syntax (which is hard) I decided to make structures work again in the R12 compiler, which turned out to be more or less just as hard.

    The results are pleasing, though:

    structure outer :
    integer foo,
    inner bar

    structure inner :
    string baz,
    stri…
    1,547 views
    ApochPiQ
    February 18, 2012
    Gentlemen... BEHOLD!
    I give you Epoch, now with a much better function definition syntax:

    //
    // FUNCTIONS.EPOCH
    //
    // Compiler test for higher-order functions
    //

    entrypoint :
    {
    apply("test", debugwritestring)
    debugwritestring(apply("test", mutate))
    }


    apply : string param, (thefunction : string)
    {
    thefunction(param)
    }

    apply : st…
    2,050 views
    ApochPiQ
    February 14, 2012
    More syntax speculation
    I'll just leave this here:


    entrypoint :
    {
    integer total = sum(1, 10)
    printinteger(total)
    }

    sum : integer begin, integer end -> integer ret = 0
    {
    while(begin < end)
    {
    ret += begin
    ++begin
    }
    }



    foo :
    {
    complex i = 0, 1
    assert(i * i == -1)
    }


    fib : 0 -> 1
    fib : 1 -> 1
    fib : integer n -> …
    1,725 views
    ApochPiQ
    February 12, 2012
    Quick Epoch stuffs
    It's been a productive weekend for Epoch! Today I got postfix entities working correctly, implemented a bunch of overload resolution logic, and made a few other miscellaneous fixes and tweaks.

    As of now, at least four of the compiler test programs are passing. I still need to work through a lot of s…
    1,575 views
    ApochPiQ
    February 12, 2012
    Epoch Update of the Week
    Plugged away at Epoch tonight for a few hours; I'm pretty happy with the results.

    The Release 12 compiler is officially generating workable bytecode now - to the point where I can run a (very small) subset of the compiler tests in the VM.

    One of these tests is the old "pi" program, which simply compu…
    1,501 views
    ApochPiQ
    February 08, 2012
    The Making of Epoch, Part 3 - Prototyping
    The Making of a Pragmatic Programming Language for the Future
    Part 3: Prototyping

    The first part of creating any major project is prototyping, or at least, that's how it should be. When first embarking on an undertaking like building a major piece of software, it is essential to scope out the size an…
    1,928 views
    ApochPiQ
    February 05, 2012
    Epoch - quick status update
    So after the little existential whine-fest about Epoch a few days ago, I've found myself miraculously rejuvenated.

    I credit this to two things. First, I started writing about the development process, which got me thinking about what's left to do and how much I really want the language. Second, I att…
    2,058 views
    ApochPiQ
    February 04, 2012
    The Making of Epoch, Part 2 - WTF?
    The Making of a Pragmatic Programming Language for the Future
    Part 2: WTF is up with about Epoch?

    Welcome to part 2 of the series on the Epoch language's creation and development. In this installment, I'd like to present a sort of FAQ, or more accurately, a list of "frequent WTFs" about Epoch. These…
    6,894 views
    ApochPiQ
    February 01, 2012
    The Making of Epoch, Part 1 - Why?
    The Making of a Pragmatic Programming Language for the Future
    Part 1: Why do this in the first place?

    Welcome to the first of what I hope to make a semi-regular series, chronicling the experiences I've had thus far with the Epoch programming language. Across the span of the series, I plan to delve in…
    10,113 views
    ApochPiQ
    January 29, 2012
    Epoch Status Update
    It's been a fairly long time since I've posted here, for a number of reasons; but I felt like it was time to post some of my recent thoughts on the Epoch language project and what's been going on there.

    Things as they stand now
    There have been only two notable bursts of activity on the project in the…
    1,856 views
    ApochPiQ
    November 01, 2011
    Lies, damned lies, and API function names
    One of the most difficult parts of writing really good code is coming up with names for things.

    A good name is a tricky deal. It shouldn't be too short, or too long, or too specific, or too vague, or too likely to become incorrect due to changes in implementation detail, and on and on and on. Goldil…
    1,698 views
    ApochPiQ
    October 16, 2011
    There are many kinds of ugly
    As I've gained experience in the software development world, I've moved through several stages of perspective on how code should look. In the early days, it wasn't even an issue; most code was equally mysterious and inscrutable, and if it did something cool, well, that was great. It didn't bother m…
    10,133 views
    ApochPiQ
    October 09, 2011
    More Arduino goodness
    Built out a breadboard with the Snowball prototype this evening:


    Still the same functionality (thank goodness; these things are never guaranteed when hacking electronics!) but now much nicer looking and less fragile. My next step is t…
    1,200 views
    ApochPiQ
    October 09, 2011
    The Triumph of the Unix Philosophy
    Software development, I suppose like pretty much any field, is rife with camps, schools, doctrines, philosophies, and other assortments of ways of thinking about various things. And, as with most things, these can be over-generalized into two basic groups: the monolithic, and the decentralized. Thi…
    3,038 views
    ApochPiQ
    October 07, 2011
    Snowball: An Arduino Project
    Way back in the day, on my Sharp PC-1500 Pocket Computer, I had a "game" called Snowball. As I recall, it was actually authored by a friend of mine originally, and I made trivial modifications to it in transcribing it from his machine to mine. I don't think I managed to improve on the concept much,…
    1,624 views
    ApochPiQ
    September 27, 2011
    The Book of Apoch?
    I'm going to leave this brief in hopes of garnering some unbiased opinions.


    If - purely hypothetically - I were to collect, edit, update, and publish some of the better Bag of Holding entries in book form, would anyone be interested? Maybe as a proper paper-and-binding book, or an e-book, or whateve…
    1,415 views
    ApochPiQ
    September 26, 2011
    Epoch, capsules, and separate compilation
    The recent project I've undertaken to optimize the Epoch compiler has left me with plenty of open-ended questions. On the one hand, it's important to restore functionality as soon as possible and get the (hopefully faster!) compiler design in place. The flip side, though, is that rewriting the comp…
    1,271 views
    ApochPiQ
    September 25, 2011
    Waxing Nostalgic
    I'm going to take a big risk here, and date myself rather severely. Feel free to relentlessly mock me as the ancient geezer that I will probably appear to be. Also, be prepared for a rather lengthy entry; I haven't had a nice brain-dump in a long time, and I have a lot on my mind.



    It Begins
    I started…
    2,441 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