![Stupid bit rot](https://uploads.gamedev.net/monthly_2017_06/321649.thumb.png.c7e3a9cb02b37a485d4cf9b8c638b8e7.png)
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 …
I had been mucking around for a little while when it came time to compile and test my changes. Everything seemed to build …
![More hacking on native executables](https://uploads.gamedev.net/monthly_2017_06/321649.thumb.png.c7e3a9cb02b37a485d4cf9b8c638b8e7.png)
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…
So far the only thing that works is printin…
![Native Binary Project: Day Whatever](https://uploads.gamedev.net/monthly_2017_06/321649.thumb.png.c7e3a9cb02b37a485d4cf9b8c638b8e7.png)
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…
![Rewrite ALL the things!](https://uploads.gamedev.net/monthly_2017_06/321649.thumb.png.c7e3a9cb02b37a485d4cf9b8c638b8e7.png)
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:
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…
![Slimming down the Epoch runtime and improving program start times](https://uploads.gamedev.net/monthly_2017_06/321649.thumb.png.c7e3a9cb02b37a485d4cf9b8c638b8e7.png)
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…
![Epoch Mailing List](https://uploads.gamedev.net/monthly_2017_06/321649.thumb.png.c7e3a9cb02b37a485d4cf9b8c638b8e7.png)
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…
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…
![Three toads and the spit of a badger](https://uploads.gamedev.net/monthly_2017_06/321649.thumb.png.c7e3a9cb02b37a485d4cf9b8c638b8e7.png)
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 …
![Watching syntax evolve](https://uploads.gamedev.net/monthly_2017_06/321649.thumb.png.c7e3a9cb02b37a485d4cf9b8c638b8e7.png)
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…
I still really like keeping tasks as the si…
![Epoch Release 15 is now available](https://uploads.gamedev.net/monthly_2017_06/321649.thumb.png.c7e3a9cb02b37a485d4cf9b8c638b8e7.png)
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…
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…
![Plodding ever onward](https://uploads.gamedev.net/monthly_2017_06/321649.thumb.png.c7e3a9cb02b37a485d4cf9b8c638b8e7.png)
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…
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…
Advertisement
Popular Blogs
Advertisement