Greetings!

Robert Boyer <[EMAIL PROTECTED]> writes:

> > We start with a return type of nil, and repeat until consistency.
> 
> Suggestion: While logically starting empty makes perfect, elegant sense,
> practically, probably, one should start with an assumption of a single
> return value of unknown type because that is the most common.  I'd make a
> special case of the rare return of no values, e.g., if someone calls
> (values), 'describe', 'apropos', or 'pprint', send him to purgatory with a
> * in his crown.
> 

Thanks for your suggestions!

1) If we start with t instead of nil, we'll never infer fixnum, which
   is less than t, as we type-or the new result with the previous in
   the iteration until consistency.

2) We could compile all (values) functions as '*, which would be
   slower that what has been don traditionally.  Again, the issue is
   likely a confusion of the logically empty return type with what GCL
   actually does at the C level.

   Consider how such a function could be used.  In all cases but the
   use as the return of another function, the function might as well
   be a compiled as fast link which always returns one value nil. The
   proper way of course is to support yet another fast link type (one
   value return, mv return, and no return), i.e. a C function
   returning void, and write each use in a let binding as (progn (foo)
   nil).  

I'll try to look into cleaning this up.  

Take care,

> Bob
> 
> 

-- 
Camm Maguire                                            [EMAIL PROTECTED]
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah


_______________________________________________
Gcl-devel mailing list
Gcl-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/gcl-devel

Reply via email to