Scheme vs. CommonLisp vs. the World

Dwight Hughes
Tue, 13 May 1997 11:55:29 -0500

| From: Henry G. Baker <>
| Probably the most conservative solution is adding specific types to
| the compiler on an as-needed basis.  Thus, rather than providing for
| arbitrary numeric ranges, one might provide fixnum16's, which are
| _exactly_ 16-bit 2's complement integers (with associated functions to
| gain access to overflow bits).  This solves the C problem, because it
| pins down exactly what size the integers are, without eliminating the
| possibility of adding new datatypes as the need should arise.  Of
| course, good programming practise would suggest hiding these decisions
| carefully within small, separate modules, so that the entire module
| could be replaced with a different module if one wanted to utilize a
| different sized fixnum.

Specifying exactly the size of the various primitive types is a very good
idea if we plan to be portable to various architectures (a "fixnum16" would
be a "fixnum16" *everywhere*, no ambiguity) and also to let us talk to the
hardware efficiently and precisely. A set of signed and unsigned "fixnums"
(or whatever you would like to call them) from 8 to 64 bits should hold us
for a couple of years. How about bit-vectors? Would they be worth their 

-- Dwight