Subject: Re: 64bit issues
To: None <port-alpha@netbsd.org>
From: Peter Seebach <seebs@plethora.net>
List: port-alpha
Date: 12/19/1999 11:21:48
In message <Pine.LNX.3.96.991219120041.3816A-100000@guild.net>, Lord Isildur wr
ites:
>Not according to Dennis: "..A pointer to one type may be converted to a
>pointer to another type. The resulting pointer may cause addressing
>exceptions upon use if the subject pointer does not refer to an object
>suitably aligned in storage."
>The only caveat here is alignment, obviously reflecting the PDP111/VAX11
>origins.
However, the resulting object may be invalid; in C89, this is called
"indeterminately valued", in C9X, it's been made more clear as a "possible
trap representation".
Note that this is all completely orthogonal to the question of whether or not
there's additional data in a pointer. *converted* allows for the possibility
that the new pointer and the old pointer, even though they refer to the "same"
location, *have different representations*. One could be bigger than another,
for instance.
>and just who goes about deciding how to 'change' a language???
An ISO standards committee. Which, for the record, appears to have Dennis's
blessing to adapt the language based on requirements that didn't exist on the
original PDP and VAX systems. ;-)
>who declared it a 'standard' and how do they go about doing that? eh?
ISO.
>don't people see how absolutely ridiculous it is to just up and announce
>that all of a sudden the language that is C is no longer C?
That's why we number 'em.
Languages grow and change. If you want to go back to a language with no void
pointers, no prototypes, and no standard library, you're welcome to. :)
>My arguments about linear address spaces stem from a: that [effectively]
>this is the situation in all machines that run NetBSD and are hence the
>scope of this list, and b: that machines which don't possess somethign
>that can be treated as a linear address space are not particularly
>becoming as the targets of C compilers.
Even if the address space is linear, you can have additional information about
types and bounds in pointers, and this is a useful thing to do. Code should
not break these rules without a *VERY* good reason.
It's fine by me if architecture-specific kernel code makes a few assumptions.
;-)
>languages that have all that overhead! C is beautiful for its simplicity!
>I wont even get into the argument about the standard C library.
>Are 'they' trying to make C into C++ or something? Can't they leave well
>enough alone? if they have such a burning desire to make languages, why
>dont they just make new languages instead of destroying old ones?
Mostly because there are certain tasks that the compiler vendor can always do
a better job of than a programmer, because the vendor has a lot more
information.
Not that I'm a big fan of the vast and unwieldy floating-point stuff. On
the other hand, the new standard provides a lot of very useful notational
conveniences.
I'd recommend waiting until you have a copy before you comment. Read the
rationale, too - it explains why these changes were made. We're not *totally*
irrational.
-s