Word size assumptions
Eric S. Raymond
esr at thyrsus.com
Fri Sep 23 19:56:32 UTC 2016
Gary E. Miller <gem at rellim.com>:
> In C, ints are not guaranteed to be longer than 16 bits.
True, but 32-bit or larger ints is one of our baseline assumptions.
From hacking.txt:
Do not bake in any assumptions about 32-vs-64-bit word size. It is OK
to assume the code will never run on a 16-bit machine. When in doubt,
use the fixed-width integral types from <stdint.h>.
If you want to argue for a different policy, go ahead, but you have
some mountains to climb.
One is that newer parts of the codebase we inherited (including the
protocol machine) assume at least 32-bit ints - noticing that is why I
put that text in there.
You are excused for not knowing this, because older parts of the code
did show some traces of trying to be 16-bit-clean. It's easy to look
at those and believe that the entire Classic codebase had that property,
but no. In that respect, bit-rot set in before the earliest commit in
our repository.
Secondly, I plain don't believe we'll ever need to target a 16-bitter.
If Classic ever successfully did that it was a very long time ago,
like multiple decades. If you want to convince me that *we* should at
this late date, I want to see you cite a specific embedded system and
toolchain, then make a case for why we need to support that platform.
It would be pretty hellish to try to even audit for the 32-bit-minimum
assumption, let alone fix it. I could do it, but I'd need a damn good
reason to try and I don't see one. A huge pile of money on the table
might be motivating; I can't imagine much else that would be.
None of this is to say that I'm not interested in embedded deployments,
it's just that I don't think 16 bits is plausible even there anymore. not
for anything you'd want to put NTP on. Seriously, where are there any
16-bit UDP stacks? Don't just handwave, show me.
--
<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 811 bytes
Desc: not available
URL: <http://lists.ntpsec.org/pipermail/devel/attachments/20160923/7e9c341b/attachment.bin>
More information about the devel
mailing list