🎉 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!

Epoch, again.

Published February 10, 2009
Advertisement
Took a bit of effort, but I've managed to implement if/elseif/else chains in the Epoch VM. This makes it substantially simpler to write complex conditional chains.

It may seem odd that something so simple took a lot of work; surely it's just a matter of popping a couple of conditional jump statements in, right?

Well, not really. The Fugue virtual machine is not a standard Von Neumann architecture: code is stored in a totally separate manner than data. There literally is no address system for the bytecode, so it's impossible to write a "jump to this instruction" operation.

Instead, I create a dummy layer that surrounds all the elseif() alternatives in a chain. This layer can be exited using the magic instruction EXIT_IF, which is automatically inserted after the end of each elseif() code block. So we have a mechanism that says "stop executing the current block/layer" which is functionally equivalent to a "jump out of the if chain's code area" instruction in a more typical architecture.



Aside from that, I've done a fair bit of bugfixing and some cleanup work. During all the renovation and screwing around, I managed to break or invalidate serialization in several ways, so fixing that is next on the list.


My big question now is where next to go with the language. On the one hand, there's a lot of features and functionality that remain to be implemented. On the other hand, doing any nontrivial coding in the language is a righteous pain in the neck.

So at the moment it's a toss-up between cramming more features in, and starting to build an IDE for the language.

I'm leaning towards the IDE project, if for no reason other than the fact that it'll be good to get some tools built - especially a debugger and disassembler that can step through the VM instructions. As a bonus, this will reveal any major missing functionality that is needed to do nontrivial Win32 apps; and I can use that information to prioritize what gets added.


In any case, things continue to shape up very nicely. And I'm still pumped that actual Win32 apps can be written in my own language... [grin]
Previous Entry Epoch Success!
0 likes 3 comments

Comments

evolutional
For someone who's been absent for a while (sorry!) can you give us a rundown of the language features of Epoch thus far?

PS: Bookmarked your Memory Management entries; you should compile them into a gdnet article
February 10, 2009 03:42 PM
Telastyn
Personally, I've found that making 'trivial' applications in a developing language is a fantastic driving force.
February 10, 2009 09:21 PM
nolongerhere
Youre going to write the IDE in Epoch right?
:)
February 10, 2009 10:32 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement