Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site g.cs.cmu.edu Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!rochester!pt.cs.cmu.edu!g.cs.cmu.edu!unilog From: unilog@g.cs.cmu.edu (Unilogic) Newsgroups: net.lang.lisp Subject: Re: Re: Using LISP for scientific programming? (gasp!) Message-ID: <319@g.cs.cmu.edu> Date: Thu, 24-Oct-85 00:35:11 EDT Article-I.D.: g.319 Posted: Thu Oct 24 00:35:11 1985 Date-Received: Fri, 25-Oct-85 04:34:44 EDT Organization: Carnegie-Mellon University, CS/RI Lines: 20 Close, but not quite. Limiting the discussion to Vaxen, which seems reasonable given the comparisons to Franz: PSL has 3 different representations for integers: INUMs, FIXNUMs, and BIGNUMs. I will ignore BIGNUMs in this discussion as they are a seperate issue and are a loadable option in PSL anyway. FIXNUMs are indeed stored on the heap and have a tag of xxx (PSL tags are 5 bits). INUMs are not stored on the heap and have two distinct tags, xxx (POSINT) and xxx (NEGINT). Using this representation, so long as you keep your integers in the range -2^27 to 2^27-1 there will be no use of the heap when performing arithmetic. In fact, there is a package which causes the compiler to use in-line machine instructions (ADDL, SUBL, etc.) if you are "sure" that you will not need any integers > 27 bits. Every math function must check its result and if it is outside of INUM range, allocate a longword on the heap and return a tagged address. David Gentzel ---------------- ARPA: unilog@cmu-cs-g UUCP: seismo!cmu-cs-g!unilog