diff options
Diffstat (limited to 'src/interp/types.boot')
-rw-r--r-- | src/interp/types.boot | 109 |
1 files changed, 3 insertions, 106 deletions
diff --git a/src/interp/types.boot b/src/interp/types.boot index 6022a5cb..915279ee 100644 --- a/src/interp/types.boot +++ b/src/interp/types.boot @@ -34,117 +34,14 @@ import boot_-pkg namespace BOOT ---% Basic types used throughout Boot codes. - -++ Type of nothing. Bottom of the abstract machine type lattice. -++ Since Lisp functions always returns something, we cannot -++ use the `nil' type specifier (the ideal answer). Second -++ best possibility is to have Void-returning functions -++ systematically return `nil'. However, until the Lisp -++ backend is fixed, we will use the interpretation that a -++ Void-returning function may return anything, but nobody cares. -++ Hence, the choice below which contradicts the very first line -++ of this description. -%Void <=> - true - -++ Type of truth values. -%Boolean <=> - BOOLEAN - -++ Type of a bit value. -%Bit <=> - BIT - -++ Type of 8-bit sized unsigned integer values. -%Byte <=> - UNSIGNED_-BYTE 8 - -++ Type of characters -- no distinction yet. -%Char <=> - CHARACTER - -++ Type of fixnums. -%Short <=> - FIXNUM - -++ Type of unlimited precision integers. -%Bignum <=> - BIGNUM - -%Integer <=> - INTEGER - -%IntegerSection n <=> - INTEGER n - -++ Type of single precision floating point numbers. Most of the -++ time, this is a 32-bit datatype on IEEE-754 host. -%SingleFloat <=> -)if %hasFeature KEYWORD::GCL - SHORT_-FLOAT -)else - SINGLE_-FLOAT -)endif - -++ Type of double precision floating point numbers. Most of the time, -++ this is a 64-bit sized datatype on IEEE-756 host. -%DoubleFloat <=> - DOUBLE_-FLOAT - -++ General type for numbers. -%Number <=> - NUMBER - -++ Type of identifiers. Ideally, we want actually want to exclude -++ Lisp oddities such as NIL and T. -%Symbol <=> - SYMBOL - -++ The type of literal strings -%String <=> - STRING - -++ Anything that is not a cons cell. -%Atom <=> atom - -++ nil or a cons cell. Ideally, this should be parameterized, but -++ we cannot afford that luxury with Lisp. -%List <=> - LIST - -++ The type of a linear homogeneous non-extensible array. -%SimpleArray a <=> - SIMPLE_-ARRAY a - -%Vector a <=> VECTOR a - -%BitVector <=> %Vector %Bit - -%Thing <=> true - -%Sequence <=> SEQUENCE - -%Pair <=> CONS +--% Data structures for the compiler -%Maybe a <=> null or a +%Alist(s,t) <=> %List %Pair(s,t) -- association list ---% Data structures for the compiler %Constructor <=> %Symbol -- constructor -%Form <=> %Number or %Symbol or %String or %Pair -- input syntax form %Instantiation <=> [%Constructor,:%Form] -- constructor instance -%Env <=> %List -- compiling env -%Mode <=> %Symbol or %String or %List -- type of forms -%Code <=> %Form or %Char -- generated code -%Triple <=> -- form + type + env - [%Code,:[%Mode,:[%Env,:null]]] - -%Signature -- signature - <=> %Symbol or %Pair -%Modemap <=> %List -- modemap +%Modemap <=> %List(%Form) -- modemap %ConstructorKind <=> -- kind of ctor instances MEMBER(category,domain,package) - -%Shell <=> SIMPLE_-VECTOR -- constructor instantiation |