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

*To*: RWK at MIT-MC (Robert W. Kerns)*Subject*: Re: #o, picky picky*From*: Guy.Steele at CMU-10A*Date*: Thu, 6 Nov 80 18:50:00 GMT*Cc*: bug-lisp at MIT-MC*In-reply-to*: RWK@MIT-MC's message of 5 Nov 80 12:34-EST*Original-date*: 6 November 1980 1350-EST (Thursday)

Your answer to my question about the VAX indicates your confusion about my confusion about your ambiguity. My point is that unless you are worrying about fitting some bits into a finite box of definite size (i.e., a fixnum) then the distinction between signed and unsigned numbers is unimportant. After all, the difference between them is merely that a certain bit at a fixed distance from bit 0 gets interpreted differently (as a sign bit or just another data bit). The problem is that you have underspecified your notion of the semantics of the proposed "unsigned number syntax". Supposing fixnums are 28 bits long, and all larger numbers are bignums, then as I understand your proposal: #o*777777777 (nine sevens) is the same as #o777777777 (uninteresting case) #o*1777777777 internally becomes the same as -1, but you don't care because the 28 bits of interest are all there. Two points: (a) if the above descriptions are substantially correct, then would you care whether #o*7777777777 (ten sevens) read in as -1 (low 30 bits are still all ones)? How about #o*7000000000 reading as #o-1000000000 ? (b) on the other hand, the second point of understanding above is *not consistent*. I claim that it is incorrect to convert the syntax #o*1777777777 to an internal fixnum -1, because there is nothing whatsoever in the syntax that says that only 28 bits are significant. Perhaps I intend there to be 30 significant bits there, of which the two high-order bits happen to be zero.

- Prev by Date:
**defstruct in MacLisp** - Next by Date:
**# ("O" or otherwise)** - Previous by thread:
**defstruct in MacLisp** - Next by thread:
**# ("O" or otherwise)** - Index(es):