saving octet-stream png file

Random832 random832 at fastmail.com
Fri Aug 19 23:23:48 EDT 2016


On Fri, Aug 19, 2016, at 21:09, Steve D'Aprano wrote:
> Depends what you mean by "byte", but the short answer is "Yes".
> 
> In the C/C++ standard, bytes must be at least eight bytes. As the below
> FAQ
> explains, that means that on machines like the PDP-10 a C++ compiler will
> define bytes to be 32 bits.

I assume you mean 36, but I think this is mixing up two separate parts
of the FAQ along with some theory discussion. AFAIK all historical C
implementations for the PDP-10 and other 18- or 36-bit word systems have
used the "9-bit bytes, and an extra offset member in char and void
pointers if necessary" solution rather than the "word-sized byte"
solution.

In principle, I think a close reading of the standard would allow for an
implementation can have 'skipped bits' as discussed there so long as
there is no significance to the 'missing' bits in *any* type - so you
could legally have 8-bit bytes on a PDP-10 so long as you also had
16-bit shorts, 32-bit long/pointer/float, and in general *never ever*
broke the illusion that only the bits addressable via char pointers
exist. Modern implementations aren't expected to expose ECC bits, after
all.

Such an implementation would probably be best done by ignoring the high
bits of each word, which are easily masked off and often have no real
use anyway in pointers (How many of these systems supported 2^36 words =
288 modern gigabytes of memory?), rather than by ignoring a single bit
"between" each byte. AIUI many PDP-10 applications only used 18 bits for
word pointers.



More information about the Python-list mailing list