It's been a seemingly quiet week, but lots has happened behind the scenes as I gear up for the last feature push of 515 and get ready to button that up.
The SendMaps testing has quieted down, so it appears all is going quite well—at least apart from an fcopy() bug, but servers are working around that for now until a new release is out. I'm thinking of finalizing map threading in 515.1609.
But in 1609 I also want to get out the new call_ext() and API support, and that comes with some challenges. I've met a few of those challenges already by wrestling with the compiler in Windows and creating a byondapi.lib file that users can link their DLLs against in Windows, but the trick is I need to test this stuff in Linux. And hoo boy, that's a nightmare and a half. So I've been building out API functionality while avoiding diving headfirst back into Linux hell.
So far, byondapi is a collection of two useful classes and several functions inside byondcore.dll/libbyond.so that should be accessible by external libraries. Functionality I've built in so far includes reading and writing vars, reading and writing from pointers, grabbing the contents of a list or assigning to it (associative lists aren't handled yet, though), calling procs, and a bit of other miscellany. I figure after the first release with this I'll finally get some feedback from SS13 peeps on how to make it even more functional for them.
This byondapi concept however should be expandable to allowing access to more parts of the backend, so I'm strongly considering opening up the widely used DMString class, and very likely the icon routines at some point in the future (once there's been a little cleanup).
On the soft code side of things, users can prefix the function name they want to call with "byond:" to use a call that sends and receives ByondValue classes instead of strings, and this means they can do a lot more with raw BYOND data (and numbers) without having to convert to and from strings which has proven costly in the past. I do however want to improve how library lookup works, so users won't have to specify .dll or .so in the filename but instead the software will make the appropriate choice based on the operating system.
Thanks to all of you who've thrown in your spare change to support BYOND, whether through Membership or various donation platforms. It all makes a difference and none of this would be possible without you.
Summer is more or less upon us, so throw your picnics and fire up your grills. It's meat season, and this year meat's back on the menu, boys. (I need a new grill though.) I'll be back next week.
Jun 9, 9:42 am