ID:1912404
 
Applies to:DM Language
Status: Open

Issue hasn't been assigned a status value.
It's simple really!(famous last words)[citation needed]

One of the things that has become a source of frustration is the 2416bit limit to bitwise operations. We can keep splitting the flag var(s) up, but every time we have to, it's annoying.

What if, we could have GASP! 53 *whole* bits of bitwise operations! =P

So I had assumed this hadn't been done because 32bit, but as it turns out, the double datatype exists on 32bit compiles/32bit cpus and works fully (And is slightly faster than a float on 64bit cpus even when compiled in 32bit)

The memory usage is of *almost* no significance, like I said before, most projects hit a cpu limit long before a memory one.
The problem is it's not simple at all. The Value type is a struct with a 4-byte union member and an 1-byte type; it expands to 8 bytes with padding. For BYOND to use doubles, it'd need to change the union to an 8-byte value. (A lot of other stuff would also have to change under the hood.) The Value type would then expand to either 12 or 16 bytes, depending on what the compiler decides (I'm not sure which) This means all non-appearance vars, and all user-defined lists, would gain at least 50% if not 100% in size. I'm also not sure savefiles would be compatible with this setup, which would either require vars to be truncated to floats or would require a whole new savefile version.

Moving to doubles has come to mind many times for me; I'd really love to do it, but a lot of considerations like the ones above have held me back.

Of course, one thing that'd help you currently is expanding bitwise operators to use the full 24 bits available, instead of limiting them to 16, which is already another request.