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

BOGUS-FIXNUMS, again



Since it appears that nobody besides me (and Stan) likes my previous
proposal on this issue and that I'll have to come up with something
less radical that is more acceptable to the rest of the committee, I
thought it would be useful to enumerate some of the possibilities.  I
realize there are still two other issues which would still have to be
addressed when turning any of these into a real proposal, namely
whether to retain MOST-BLETCHEROUS-FIXNUM :-), and whether the BIGNUM
type specifier should remain and whether it must still be a non-empty
set which is disjoint from FIXNUM. 

#0 (what CLtL says):
    - there is no particular type specifier defined for "small integers".
    - the FIXNUM type specifier is defined but nothing is said about its
      range.
    - FIXNUMs are required to have a more efficient representation than
      non-FIXNUMs.

#1 (my original proposal):
    - there is no particular type specifier defined for "small integers".
    - the FIXNUM type specifier goes away.
    - user-defined integer subrange types use the most efficient 
      representation possible in a given implementation.

#2 (Gail Zacharias's counter-proposal):
    - there is no particular type specifier defined for "small integers".
    - the FIXNUM type specifier is defined to be a superset of
      (SIGNED-BYTE n), for some value of "n" which has yet to be
      decided but that we all agree upon.
    - FIXNUMs are not required to coincide with or be a subset of the
      set of integers which are represented most efficiently.

#3 (change CLtL's "typically" to a firm requirement):
    - there is no particular type specifier defined for "small integers".
    - FIXNUMs must be a supertype of (SIGNED-BYTE n).
    - FIXNUMs are defined to be the set of integers which are represented
      most efficiently.

#4 (dumb, but here for completeness):
    - there is no particular type specifier defined for "small integers".
    - the FIXNUM type specifier is defined to be equivalent to
      (SIGNED-BYTE n).
    - FIXNUMs are required to be a subset of the integers which are
      represented most efficiently.

#5: (Kent Pitman's suggestion):
    - a new SMALL-INTEGER type specifier is introduced which is equivalent
      to (SIGNED-BYTE n).
    - the FIXNUM type specifier goes away.
    - nothing is guaranteed about the efficiency of representation of
      SMALL-INTEGERs.

#6 (similar to #3):
    - a new SMALL-INTEGER type specifier is introduced which is equivalent
      to (SIGNED-BYTE n).
    - the set of FIXNUMs is required to be a superset of SMALL-INTEGERs.
    - FIXNUMs are defined as the set of integers with the most efficient
      representation.  (This implies that SMALL-INTEGERS are also
      guaranteed to be efficient.)

#7 (a cross between #0 and #5):
    - a new SMALL-INTEGER type specifier is introduced which is equivalent
      to (SIGNED-BYTE n).
    - the FIXNUM type specifier remains but the range of FIXNUMs is left
      undefined, as is the relationship between FIXNUM and SMALL-INTEGER.
    - FIXNUMs are defined as the set of integers with the most efficient
      representation.  Nothing is guaranteed about the efficiency of 
      SMALL-INTEGERs.

Comments, anyone?  

-Sandra
-------