Subject: Re: 64bit issues
To: None <port-alpha@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: port-alpha
Date: 12/19/1999 01:53:15
[isildur writes]

> it's heresy to speak of pointers which _cant_ be manipulated as
> integers!! ;-)

> a pointer is an lvalue that has to be manipulated as an integer
> inside the processor anyhow!

You seem to be under the (mistaken) impression that all processors work
the same way.

Read up on the C compiler for the Lisp Machine, and the underlying
hardware, for example.  Practically nothing about the Lisp Machine
works the way you'll expect if you think all processors are slight
variations on the same theme, a la the x86, 68k, VAX, etc.

[isildur quotes seebs, and replies]

>> you can make a *VERY* nice environment for writing bulletproof code
>> if you make sure that every "pointer" contains a substantial amount
>> of additional data about what it points to.

>> Now, no one is likely to build a CPU that way, but it's a viable
>> compiler setting.

> Not in a language like C!!!!  this kind of stuff has no place in C!
> [...] In C, a pointer means a memory address.

I don't know what this language you're calling C is, but whatever it
is, it's only tangentially related to the language the rest of the
world calls C.  (Or to put it another way, I think you need to read up
on C itself as well as some of the more exotic implementations of it.)
As seebs says, a C pointer "means a memory address" only if you define
"memory address" to mean, basically, the same thing as "pointer": a
reference to some object, or a part thereof.

[seebs also writes]

> My favorite example of a C implementation consists of me, a few
> pencils, and a stack of post-it notes of various colors.  With
> accompanying documentation, I can be a functional C implementation.
> :)

A rather slow (and probably error-prone) one, as C implementations go,
I daresay. :-)

					der Mouse

			       mouse@rodents.montreal.qc.ca
		     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B