tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: strftime(3) oddities with %s, %z



>> Unless POSIX was stupid enough to mandate that all-bits-0 is nil for
>> any pointer type and something well-defined for floating-point.
> The former is definetely true.  (Or will be.)

Sad.  Well, their mistake.

> And i think on the TZ list it just came up it is generally true for
> all "modern" machines.

Oh, it is, it is, especially since the current definition of "modern"
seems to be "Linux/x86_64". :-þ

Portability is not - or at least in my opinion should not be - about
"does it run on most machines now" but "will it run on tomorrow's weird
new machine".  This is why I don't generate/parse wire protocol by
overlaying structs onto octet streams.  This is why I don't bzero
structs with pointers and floats, even though every machine I either
use now or expect to use uses all-0-bits for nil pointers and zero
floats.  I want my code to be an instance of "What did you have to do
to port it to the new system?" "We typed `make'.".

Of course, it's not quite that simple in full generality.  But that's
the aspect that I see as relevant to this thread.

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse%rodents-montreal.org@localhost
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index