On Fri, Sep 03, 2004 at 11:20:05AM -0700, Larry Wall wrote: > On Fri, Sep 03, 2004 at 11:41:05AM +0100, Tim Bunce wrote: > : And that a pointer would be... what? Some platforms has odd > : sizing issues for pointers. Perhaps a "voidp" type is needed? > : (Which would just be an intN where N is sizeof(void*)*8.) > > Eh, pointer? I don't see any pointers around here...but then I > haven't looked very hard on purpose...
The Honeywell 6000 (which is still around as a machine from Bull with a 6 in its name, I believe) was a word addressed machine. (Words were 36 bits long and could hold 4 9-bit characters packed into each one.) Pointers used a few high-order bits to encode the "byte-number" within the word for languages like C which thought that character addresses were a meaningful part of the language. (So did old Control Data machines, come to think of it - 60-bit words containing 6-bit and/or 12-bit characters.) If a int1 (or int2 or nybble or other sub-addressable sized value) is being referred to, a similar issue arises since most machines these days have byte addressing, but do not have bit addressing. If you can't refer directly to it, the value will have to be extracted and re-inserted to provide "is rw" access. --