The Bag of Holding

Profile
Bellevue, WA
A bipolar guy in a pressure-cooker industry
1,455 comments
43 followers
628 entries
Advertisement
ApochPiQ
February 27, 2018
A Few Farewells

I’m going to depart from my habit of posting predominantly technical stuff here, and write a bit about some issues that I find very important on a personal level. This is going to be more for my own benefit than anything else, but I truly hope that the exploration is helpful to someone out ther…

14,392 views
ApochPiQ
October 25, 2017
Code Reuse In Actual Practice

It’s very common to hear engineers talking about "code reuse" - particularly in a positive light. We love to say that we’ll make our designs "reusable". Most of the time the meaning of this is pretty well understood; someday, we want our code to be able to be applied to some different use case …

16,223 views
ApochPiQ
July 09, 2017
Source-Level Debugging For Epoch Programs

This weekend marks a major milestone for the development of the Epoch programming language. For the first time, Windows debuggers such as Visual Studio and WinDbg can perform source-level debugging on Epoch programs.

In a nutshell, this means that the comfortable modern development features o…

4,766 views
ApochPiQ
June 13, 2017
Using Poison to Reverse Engineer Code

Recently I’ve been working on a rather difficult task, namely creating PDB debug database files from the Epoch Language compiler toolchain.

This is difficult in part because the format of PDB files is generally not well-understood, and is certainly poorly documented. I can’t go much further w…

3,381 views
ApochPiQ
June 13, 2017
Using Poison to Reverse Engineer Code




Recently IaEUR(TM)ve been working on a rather difficult task, namely creating PDB debug database files from the href="https://github.com/apoch/epoch-language">Epoc…

147,631 views
ApochPiQ
June 07, 2017
Debugging Information Success

Early this morning, Epoch achieved a minor success in the debugging department. I was able to generate a working PDB file with symbols for a small test program, run the program in Visual Studio and WinDbg, and step through the disassembly.

Along the way, the current Epoch function was correctly…

2,738 views
ApochPiQ
June 07, 2017
Debugging Information Success


Early this morning, Epoch achieved a minor success in the debugging department. I was able to generate a working PDB file with symbols for a small test program, run the program in Visual Studio and WinDbg, and step through the disassembly.




Along the w…

4,254 views
ApochPiQ
June 03, 2017
Debugging Epoch Programs

My recent adventures in self-hosting the 64-bit Epoch compiler have led me to a significant conclusion: it isn’t worth trying to self-host a compiler when you can’t debug the target language.

A much better use of my time would be to improve the languishing PDB generation experiment and get the …

2,931 views
ApochPiQ
June 03, 2017
Debugging Epoch Programs


My recent adventures in self-hosting the 64-bit Epoch compiler have led me to a significant conclusion: it isnaEUR(TM)t worth trying to self-host a compiler when you canaEUR(TM)t debug the target language.




A much better use of my time would be to improve the Read more in The Bag of Holding

5,523 views
ApochPiQ
May 30, 2017
Epoch 64-bit compiler progress

Just a short while ago, the first working 64-bit compiler for Epoch was produced!

Well, "working" might be a minor stretch; it launches, prints a simple text banner message, and then exits cleanly. But that represents a lot of operational code by itself.

  • The 32-bit compiler is able to lex, p…

2,451 views
ApochPiQ
May 30, 2017
Epoch 64-bit compiler progress


Just a short while ago, the first working 64-bit compiler for Epoch was produced!




Well, "working" might be a minor stretch; it launches, prints a simple text banner message, and then exits cleanly. But that represents a lot of operational code by itse…

4,839 views
ApochPiQ
May 29, 2017
Epoch 64-bit self-hosting progress

For a decent while now, I’ve been working on self-hosting the Epoch 64-bit compiler. This involves getting the compiler to a point where it is robust enough to actually compile itself. In order to do this, I’m using a modified 32-bit compiler which generates 64-bit binaries. Once a working 64-bit…

1,436 views
ApochPiQ
May 29, 2017
Epoch Code-Generation Update

A few minutes ago, the first 64-bit self-hosted compiler for Epoch finished the code-generation process…​ unsuccessfully.

For context, this means that the 64-bit compiler (as built by the existing 32-bit compiler) was lexed, parsed, type-checked, and turned into LLVM IR. What didn’t happen is…

1,661 views
ApochPiQ
May 29, 2017
Epoch Code-Generation Update




A few minutes ago, the first 64-bit self-hosted compiler for Epoch finished the code-generation processaEUR|aEUR' unsuccessfully.




For context, this means that the 64-bit compiler (as built by the existing 32-bit compiler) was lexed, parsed, type-checked, and turned into LLVM IR. What didnaEUR(TM)t h…

3,695 views
ApochPiQ
May 29, 2017
Epoch 64-bit self-hosting progress

For a decent while now, IaEUR(TM)ve been working on self-hosting the Epoch 64-bit compiler. This involves getting the compiler to a point where it is robust enough to actually compile itself. In order to do this, IaEUR(TM)m using a modified 32-bit compiler which generates 64-bit binaries. Once a wo…

3,994 views
ApochPiQ
May 28, 2017
Welcome to the Bag of Holding

This is a quick test of HubPress.io to see how I like it. Assuming all goes well, I will probably resume posting Bag of Holding entries here soon. Ancient archives from the Bag of Holding are on GameDev.net if you happen to like my writing. They are very, very old t…

1,669 views
ApochPiQ
May 28, 2017
Welcome to the Bag of Holding

This is a quick test of HubPress.io to see how I like it. Assuming all goes well, I will probably resume posting Bag of Holding entries here soon. Ancient archives from the Bag of Holding are on GameDev.net if you happen to like my writing. They are very, very old though.

For now, hereaEUR(TM)s a sn…

3,529 views
ApochPiQ
July 22, 2015
On Embedding General-Purpose Scripting Languages
I spend a lot of time thinking about programming languages. Most often it's from the perspective of a consumer, i.e. a programmer using Language X. Sometimes it's from the viewpoint of someone who wants to explore Language Y, either for fun or for practical usage. Occasionally I see languages from …
4,213 views
ApochPiQ
February 06, 2015
MMOs! Y u no EZ?
A common aspiration among nascent game developers is to make an MMO. It's actually a pretty common aspiration in many perfectly functional, well-established studios, as well; but at least on GDNet, we mainly see newbies who want to make the next World of Warcraft, and so it's easy to be misled into…
3,881 views
ApochPiQ
December 10, 2014
Fun with templates. "Fun." Ha, ha.
So I have an interesting situation where I wrote a math-intensive API to allow easy composition of various functions. The details are pretty easy so I'll just show an example of what the API usage looks like:

formula.Create() .Set(0.0f) .AddWithWeight(some_data_source, 0.5f) .Multi…
2,879 views
ApochPiQ
November 06, 2014
Stupid bit rot
After a couple of days of preoccupation with other things, I sat down tonight to start hacking on Epoch. I was unprepared for the bizarre puzzle that unfolded immediately after.


I had been mucking around for a little while when it came time to compile and test my changes. Everything seemed to build …
2,742 views
ApochPiQ
October 31, 2014
More hacking on native executables
I've started the long and tedious process of slowly but surely hooking up every single Epoch language feature to the new LLVM bindings, so that the compiler can emit 100% native binaries instead of JIT compiling the native code when the program is started.

So far the only thing that works is printin…
3,048 views
ApochPiQ
October 27, 2014
Native Binary Project: Day Whatever
I continue to hack on the Epoch compiler, slowly shaping it into a powerhouse of executable binary generation. So far I've gotten the program string table and DLL import table built in a flexible and extensible manner. This is the first step towards getting actual code generation back online at ful…
2,432 views
ApochPiQ
October 24, 2014
Rewrite ALL the things!
OK so I'm not really rewriting everything... just... a lot of it.

The current runtime infrastructure for Epoch is precarious at best, and desperately needs some improvements. There are a number of things I want to do that all happen to coincide nicely with a desire to rewrite the runtime system:

  • Dest…
2,426 views
ApochPiQ
October 18, 2014
Slimming down the Epoch runtime and improving program start times
Right now a big limitation of the Epoch program execution model is the fact that .EXEs generated by the compiler are not in fact native binaries. They are compact bytecode wrapped in a thin shim that churns said bytecode through an LLVM wrapper layer each time the program is launched. This means th…
2,194 views
ApochPiQ
October 14, 2014
Epoch Mailing List
I've spun up a mailing list for the Epoch project, mostly because I'm tired of having conversations about it span half a dozen websites and PMs and blah blah.

Here's the link: clicky. Or you can email epoch-language@googlegroups.com to accomplish the same thing.

It should be open to anyone to come an…
1,936 views
ApochPiQ
October 13, 2014
Three toads and the spit of a badger
So Epoch has a couple of warts that I'm looking at smoothing out. One of them has to do with overloads that do type decomposition of algebraic sum types:

//// How things look today//type Optional : T | nothingTest : integer x{ print(cast(string, x))}Test : nothing{ print("Nothing")}entrypoint …
2,105 views
ApochPiQ
October 08, 2014
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 si…
2,123 views
ApochPiQ
October 07, 2014
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 mo…
2,065 views
ApochPiQ
October 06, 2014
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 al…
1,838 views
Advertisement

Popular Blogs

shawnhar
Generalist
101 Entries
8 Followers
15 Entries
9 Followers
johnhattan
Programmer
1,277 Entries
46 Followers
ApochPiQ
Generalist
628 Entries
43 Followers
dgreen02
Generalist
338 Entries
55 Followers
Advertisement