ID:2346228
 
Okay, single peeps, you can come out now. I don't know what it means if you see your shadow, but it's probably nothing good so don't look down.

Gah! The image hang is the bug that keeps on giving. I've been playing whack-a-mole with this thing forever its seems like, but even though there's now no logical reason I can see for it to happen, it's still happening. Past test-case projects I've had haven't caused the issue to recur, so this is perplexing. I'm hoping to get a new test case soon so I can diagnose the problem.

Work on the webclient stuff proceeds, albeit slowly because it's really hard to change gears on that while also having to go back and look at the same bug over and over.

Nevertheless I'm hoping I can get past all that soon and start looking to 512, and it's really time to think about new features. I've got a few really bizarre big-picture things in mind, like maybe--maybe--trying to open up some support for UTF-8. As you might imagine, nothing about that is simple with a frontend that explicitly compiles with Unicode off, and the backend is the same. My thought there is that maybe on the backend I can keep a simple string format and an "advanced" flag that tells the existing routines to work differently. UTF-8 makes nothing simple; even routines like copytext() have to change because the way character counts work is no longer an ironclad guarantee, so it might be better to go with a wide character instead of something variable. But yeah, I've been thinking about that for some time.

Inlining procs to reduce call overhead is also huge on my wish list. Init procs for instance are prime candidates for inlining, if I can load them up in an already-running proc, because the sets of instructions they encompass are very simple compared to what a generic proc can do. But more than that, things that are currently done fastest with #define could be done cleaner and in some cases faster by inlining.

Just bouncing ideas around at this point, but this is the time to do it.

If you haven't become a BYOND Member yet, please consider chipping in your support for the project. I'm gonna work on a better way to do that soon, too. And with 512 nearing a stable release, take a little time to work new features into your games! You could have something really awesome ready for summer.
Inlining procs to reduce call overhead is also huge on my wish list...

If you make an operator for inline procs, another use for it could be inlined vars: variables that can only be accessed via src, but are resolved at compile time, and don't have the changed-vars overhead.

I've got a few really bizarre big-picture things in mind, like maybe--maybe--trying to open up some support for UTF-8

It will be wonderful!
In response to MrStonedOne
MrStonedOne wrote:
If you make an operator for inline procs, another use for it could be inlined vars: variables that can only be accessed via src, but are resolved at compile time, and don't have the changed-vars overhead.

I don't really see how that would be able to work, though. Datums--and all other objects--with those kinds of vars would have to set aside memory for those vars and would also still have to do runtime resolution just for the type. The only way this would work would be some kind of strict typing, where a var could only have a value of that type or null.
and would also still have to do runtime resolution just for the type.

See:

variables that can only be accessed via src

The idea is you can avoid having to mess with that by only allowing local access.
I am single and have now emerged back into society! Thanks Lummox, for letting me know it's safe! Really hoping for some cheap chocolates to appear!

P.S. Time to share a V-day comedy sketch:
https://www.youtube.com/watch?v=o3T_o4WM-n8
Have you ever taken full advantage of VS' super powerful performance debugger? Might help narrow down some speed issues.

UTF-8 support should be really easy to add. You'd have to add additional procs for processing the string as if it were a binary string for people who need such info (like length_bytes(str)), but otherwise any time you interact with the UI you can just MultiByteToWideChar. Mind you, this is a significant undertaking and it might be worth using Find All Instances on LPCTSTR in your project.

If you need any assistance creating a UTF-8 implementation, feel free to page me and I'll help you work out the specifics of it.

In addition, regarding donations, it might be worth looking into supporting Stripe as well.