6 karma · joined April 18, 2026
Inline assembly, which also hadn't been invented yet other than by embedding raw opcodes in DATA statements, is absolutely required to get the performance required for gaming: I still cherish my HiSoft Devpac tape (officially purchased and shipped from the UK at great expense and requiring extensive negotiations with the local customs people, for whom this entire 'software' thing was a bit new...) and Z80 assembly reference (pirated from a library with the school photocopier). So, in one sense, the limited BASIC was a blessing: it required you to really get to know your machine, which is probably the first and last time in my life that happened: I've not considered the timing implications of the CRT and optimized my code around that for a long time.
Nice to see people are still enjoying a 44-year-old platform!
The whole YOLO-ing signature inputs and storage ops aside, something like this should never pass even cursory code review:
catch (EntityNotFoundException) when (upsert)
It's a red-fag bonanza: 'upsert' is not related to the exception at all (so has no place in an exception filter), no exception details are accessed to begin with, and a new record needing to be created on an upsert does not seem to be an exceptional situation at all?So, yeah, all they're doing here is adding an 'if' that is literally 100s of times more expensive than a regular function call, which isn't great for a database-ish storage system, where you'd expect concepts like 'indexes' and 'table stats' to come into play.
Not trying to be unnecessarily dismissive or anything, but at this rate, this codebase is not going in the direction that matches the ambitions of the project website.