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