mct@gandalf.cs.cmu.edu (Mark Tucker) (10/22/85)
Most lisps implement integers as immedate data. Roughly, a Lisp value is a 32bit quantity. The top 8 bits are a tag describing how to interpret the low 24. If the tag says CONS, then the low 24 point to a 64 bit hunk of storage that is a cons cell. If the tag says SMALL-INTEGER, then the low 24 bits @u<are the integer itself.> Incrementing such a small integer just twiddles the bits of the 32-bit Lisp value that you've got in your hand. It doesn't mess with the heap unless the SMALL-INTEGER overflows into a BIGNUM. -- Mark Tucker