gcl-devel
[Top][All Lists]
Advanced

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

[Gcl-devel] Re: side-effects


From: Camm Maguire
Subject: [Gcl-devel] Re: side-effects
Date: 07 Mar 2006 10:05:30 -0500
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings, and thanks for your reply!

David McAllester <address@hidden> writes:

> What is your language for expressing types (what are the possible types)?
>     David

Normalized atomic type specifiers are lists of at most length three.

(t) -- everything
(nil) -- nothing

Real numbers:

(type minbound maxbound)  type in '(INTEGER RATIO SHORT-FLOAT LONG-FLOAT)
                          bounds -- '* for unbounded, number for
                          inclusive bound, (number) for exclusive
                          bound

Complex numbers:

(complex real-tp-spec)

Cons:

(cons tp-spec tp-spec)

Classes/Structures:

(class-or-structure-name-or-class-name)

Vectors:

(vector el-type dimension) el-type in '* for anything, or tp-spec
                            tp-spec is upgraded to one of 
                                '(nil character bit
                                 non-negative-char signed-char unsigned-char
                                 non-negative-short signed-short
                                 unsigned-short non-negative-fixnum fixnum
                                 short-float long-float t )
                            dimension '* for any, or integer
                            (simple-vectors are vectors in GCL)

Arrays:

(array el-type dimensions) el-type in '* for anything, or tp-spec
                            tp-spec is upgraded to one of 
                                '(nil character bit
                                 non-negative-char signed-char unsigned-char
                                 non-negative-short signed-short
                                 unsigned-short non-negative-fixnum fixnum
                                 short-float long-float t )
                            dimensions '* for any, or integer for
                            rank, or list of vector dimensions
                            (simple-arrays are arrays in GCL)

Non-overlapping single atomic types:

(tp)                       tp in '(non-keyword-symbol
                         keyword standard-char non-standard-base-char package
                         broadcast-stream concatenated-stream echo-stream
                         file-stream string-stream synonym-stream two-way-stream
                         non-logical-pathname logical-pathname readtable 
hash-table
                         random-state interpreted-function
                         compiled-function)


Boolean Sigma algebra combinations of the above using and, or and not.

The subset of interest in the compiler is considerably smaller.

This is complete to the best of my knowledge, but I may of course have
overlooked something.

Take care,
-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

[Prev in Thread] Current Thread [Next in Thread]