OK, I'm a lying little bugger and should be viciously and repeatedly punched in the face.
I decided to go ahead and package up R5 tonight. There's really not much left that needs to be implemented - at least, nothing that's worth delaying the release.
As mentioned in my previous post, R6 will basical…
I decided to go ahead and package up R5 tonight. There's really not much left that needs to be implemented - at least, nothing that's worth delaying the release.
As mentioned in my previous post, R6 will basical…
I started implementing bitwise operators in Epoch this afternoon, and stumbled across a couple of massive refactorings that I'd like to do. The specifics aren't interesting, but the bottom line is I can make the instruction-emitter part of the compiler work much more efficiently and consistently, e…
Amid a horde of distractions, I managed to hunt down and viciously kill the stack corruption bug. There were actually several minor bugs that all conspired to drag me out into undefined-behaviour-land.
The specifics aren't really interesting to anyone who isn't deeply familiar with the VM code (whic…
The specifics aren't really interesting to anyone who isn't deeply familiar with the VM code (whic…
Spent a few minutes earlier playing around with what I thought was the finalized version of nested structure support... and then I discovered a pretty serious bug. Somehow, the stack management is getting out of sync with the actual instructions, and the code is reading and writing data in effectiv…
As of 1650 hours today, this is where the release task list for R5 stands:
Requirements for Win32 Programming
Major implementation items
Requirements for Win32 Programming
- Named constants
- Hex literals
- Bitwise operation instructions
- Byte buffer entity
- (Some fixes to nested structures)
Major implementation items
- FileLoader::LoadScope needs tuple and structure support
- Fi…
It was quite a ride, and involved far more use of hex editors and obscure console commands than should be legal, but I've finally got it working - it is now possible to embed Epoch programs inside a stub EXE, allowing you to run purely from binary form - no source code required.
Give it a shot. It's…
Give it a shot. It's…
Not much to say, just wanted to note that I've finished the disassembler (aside from a few obscure instructions I haven't added yet).
This gives us five major tools for working with Epoch:
The Fugue virtual machine
EpochASM assembly language for the VM
Compiler that translates raw syntax into EpochASM…
This gives us five major tools for working with Epoch:
Spent the last couple of hours putting together an assembler for the VM bytecode format. This converts nice assembly language like this:
00DE4DD8 PUSH_INT 0
00DE4D58 PUSH 00DE43A0 INVOKE 00DD8D30
00DE5090 WRITE hInstance
00DE5D98 PUSH_INT 0
00DE5DF8 PUSH_STR 13 ScribbleClass
00DE5918 PUSH_STR 0
00DE5D50…
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 statement…
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 statement…
Bask in the utter awesome:
As the screenshot says, this app is written 100% in the Epoch programming language. The complete listing is fairly long, but most of it is declaring API function calls and structure types. Eventually I'll add support for multi-file compilation, and we can then move all the…
As the screenshot says, this app is written 100% in the Epoch programming language. The complete listing is fairly long, but most of it is declaring API function calls and structure types. Eventually I'll add support for multi-file compilation, and we can then move all the…
Advertisement
Popular Blogs
Advertisement