| ▲ | chasil 5 hours ago | |
"Some Honeywell machines, for example, had nine-bit bytes." OS 2200 has 36-bit words. It is still a supported platform. https://en.wikipedia.org/wiki/UNIVAC_1100/2200_series This platform was the first SMP UNIX implementation: "Any configuration supplied by Sperry, including multiprocessor ones, can run the UNIX system." https://www.nokia.com/bell-labs/about/dennis-m-ritchie/other... | ||
| ▲ | strenholme an hour ago | parent | next [-] | |
The last Unisys release, the Dorado from 2015 (ClearPath Dorado 8300 to be exact), used Xeon processors (which are 64-bit x86_64). But, for argument’s sake, let’s suppose there’s a Unisys 2200 out there with 36-bit registers and GCC/clang makes a C2y compiler for it. If so, then said compiler should still have support for (u)int_8/16/32/64_t. Said compiler already needs to have that support with (unsigned) _BitInt(8/16/32/64)—and, yes, one can also have 36-bit ints on x86_64 in C23 with _BitInt(36) if one must—and allowing stuff like int32_t and uint32_t will allow said (imaginary) 2200 system to cleanly compile a lot of pre-C23 open source code out there. Yes, uint32_t will look a little ugly at the assembly level, just as _BitInt(36) will look a little ugly on, say, a Xeon processor, but the code will compile and run the same. Of course, these days they can buy tokens so an agent can do any relevant porting, but still. | ||
| ▲ | eru 5 hours ago | parent | prev [-] | |
> OS 2200 has 36-bit words. It is still a supported platform. Yes, but that's perhaps an argument for 'implementation defined behaviour', not in favour of 'undefined behaviour'. | ||