3 ms·
Machines with a word size that's not a multiple of 8 cannot support POSIX at all. POSIX requires CHAR_BIT==8, and to support the POSIX and C11 memory model for
by dalias 14y ago
Machines with a word size that's not a multiple of 8 cannot support POSIX at all. POSIX requires CHAR_BIT==8, and to support the POSIX and C11 memory model for threads, bytes must be individually addressible without a read-modify-write cycle on a larger memory unit. So this kind of thing really is irrelevant as far as POSIX is concerned.
- malkia 14y agofunny, because POSIX came as an idea from RMS, an ex lisp machine hacker, where non-power of two words were tobe found at large
- dalias 14y agoThe lore is that the the name POSIX, not the idea for POSIX, came from RMS and was a form of disguised spite for the process (i.e. that he intended it to be read as Piece Of Shit *IX, or similar). I'm not sure whether there's any evidence to corroborate this part of the lore, but in the early days POSIX was definitely not representative of RMS's ideas/vision. These days the standards process and even the document itself are a lot more open (though still not up to RMS's standards). CHAR_BIT==8 was not mandated by POSIX until 2001 when it was aligned with C99, and seems to have been mandated as a consequence of C99's requirement that [u]intXX_t types not have any padding bits, and the requirement (in POSIX) that network-related interfaces use uint8_t, uint16_t, and uint32_t (which, per C99, cannot all exist unless CHAR_BIT==8).
- deleted 14y ago[deleted]