Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site gandalf.cs.cmu.edu Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!rochester!pt.cs.cmu.edu!gandalf.cs.cmu.edu!mct From: mct@gandalf.cs.cmu.edu (Mark Tucker) Newsgroups: net.lang.lisp Subject: Scientific Programming and Immediate Values Message-ID: <289@gandalf.cs.cmu.edu> Date: Tue, 22-Oct-85 09:52:54 EDT Article-I.D.: gandalf.289 Posted: Tue Oct 22 09:52:54 1985 Date-Received: Thu, 24-Oct-85 08:20:31 EDT Organization: Carnegie-Mellon University, CS/RI Lines: 11 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 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