Jump to content

  • Log In with Google      Sign In   
  • Create Account

The Bag of Holding

On Embedding General-Purpose Scripting Languages

Posted by ApochPiQ, 22 July 2015 - - - - - - · 516 views

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 the vantage of a language creator.

Recently, I've sunk a...

MMOs! Y u no EZ?

Posted by ApochPiQ, 05 February 2015 - - - - - - · 381 views
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 believing that the MMO fascination is somehow peculiar t...

Fun with templates. "Fun." Ha, ha.

Posted by ApochPiQ, 10 December 2014 - - - - - - · 625 views

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) .Multiply(other_data_source) .Display(); The API is mean...

Stupid bit rot

Posted by ApochPiQ, 05 November 2014 - - - - - - · 653 views
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 cleanly, and then I started the program, only to be gre...

More hacking on native executables

Posted by ApochPiQ, 31 October 2014 - - - - - - · 751 views
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 printing out strings, and only statically defined strings at th...

Native Binary Project: Day Whatever

Posted by ApochPiQ, 27 October 2014 - - - - - - · 623 views
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 full capacity.

Now that I can link to DLLs from native Epoch...

Rewrite ALL the things!

Posted by ApochPiQ, 23 October 2014 - - - - - - · 513 views
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:
Destroy the EpochLibrary DLL forever. This is an ancient c...

Slimming down the Epoch runtime and improving program start times

Posted by ApochPiQ, 18 October 2014 - - - - - - · 481 views
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 that every single time you start an Epoch program, it is bas...

Epoch Mailing List

Posted by ApochPiQ, 13 October 2014 - - - - - - · 451 views
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 and talk about the language or just ask questions. I'll...

Three toads and the spit of a badger

Posted by ApochPiQ, 13 October 2014 - - - - - - · 391 views
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<type T> : T | nothingTest : integer x{ print(cast(string, x))}Test : nothing{ print("Nothing")}entrypoint :{ Optional<integer> exists =...

July 2016 »

24 252627282930