🎉 Celebrating 25 Years of GameDev.net! 🎉
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
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.
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.
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:
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…
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…
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…
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 compil…
Right now there are basically six major things that definitely need to be done before I'd even consider shipping the release:
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…
At long last I've posted a new scribbling. As usual, it was motivated by something I really needed to d…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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:
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…
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:
The results are pleasing, though:
structure outer :
integer foo,
inner bar
structure inner :
string baz,
stri…
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…
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…
As of now, at least four of the compiler test programs are passing. I still need to work through a lot of s…
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…
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…
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…
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…
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…
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…
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. Thes…
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. Thes…
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 i…
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 i…
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…
Things as they stand now
There have been only two notable bursts of activity on the project in the…
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…
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…
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…
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…
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,…
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…
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…
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…
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…
It Begins
I started…
Advertisement
Popular Blogs
Advertisement