ID:2357721
 
Development was slowed a little bit this week by events beyond my control: namely, a foot injury. I woke up Monday with a sprain, which seemed manageable until I went to bed at which point it was throbbing and in a lot of pain. Tuesday was much worse. I managed to get upstairs a couple of times and also iced it as I could, but if anything I only managed to aggravate it further. Which meant Wednesday, I was couchbound. The good news is, the thing has started to slowly get better and I've been able to make it up the stairs again. But I suspect this is gonna be a problem for a while.

Speaking of problems, one of the big ones I solved early in the week related to a crash that an SS13 server was having. It turned out I had some not-so-solid logic handling the way the dynamic DMI format was read--that is, client-side icon processing--and an issue with file load timing was causing problems. I fixed that logic in build 512.1417, which I put out Thursday due to the aforementioned injury, along with a number of other issues.

Of course in the process, I broke something server-side, and had to handle that in a new fix which is out today. Doh!

I have an outstanding report from Yut Put that there may still be a new crasher issue in play, although it's conceivable my 1418 fix took care of that. If it didn't, I'll need to address that. Otherwise however, I think some games will see big stability improvements from the new code. In particular there's been a longstanding SS13 bug related to icon operations that is probably resolved by this change.

And speaking of SS13, MrStonedOne mentioned to me that his server has a crapload of #define statements, and it seemed like that was causing massive slowdowns on the compilation side. I looked into the problem, and found out that words are resolved into macro tokens via a linear search--so if you have a lot of macros, that's a problem. In 512.1418 that's been changed to a binary search, which should speed up compilation. By how much, it's hard to say, but at least the word-resolving portion changed from O(N) to O(log N), and when you've got over 4000 #defines that's well over 300 times faster.

Huge thanks to everyone who's supported BYOND this month with their Memberships or through donations, and also to those who've signed up on Patreon. You deserve a big ol' Cadbury Creme Egg, and not the modern tiny ones but the bigger ones they used to make. Remember, when I become a beloved supervillain I'll force them to go back to the old size, so you're doing the world a huge favor with your support.

Easter is on April Fool's Day, so remember: If you have a church play, be sure to fill up the tomb with spring snakes. It'll be hilarious. God has a sense of humor too, so it's all good.
Binary all the things.