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

Re: Issue: THE-AMBIGUITY



> Current practice:
> 
>   The Symbolics Genera and VAX LISP V2.2 interpreters signal errors for
> 
> 	(THE (FUNCTION (T T) CONS) #'CONS),
> 
>   but this may not be intentional.  CLtL would seem to allow it.

The TI Explorer permits this, so is consistent with proposal
THE-AMBIGUITY:FOR-DECLARATION. 

> Test case:
> 
>   (THE (FUNCTION (T T) CONS) #'CONS),
> 
>   should return the CONS function under THE-AMBIGUITY:FOR-DISCRIMINATION,
>   and should be an error under THE-AMBIGUITY:FOR-DECLARATION.

Shouldn't that be the other way around?

>   For THE-AMBIGUITY:FOR-DECLARATION, implementations that do not
>   already allow arbitrary type specifiers but which want to check that
>   the type in a THE is satisfied would have to create an internal
>   version of TYPEP which could manage not to signal invalid-type-specifier
>   errors in those situations where TYPEP would because the type is a
>   declaration-only one.

What you really want is an internal function that tests whether a type
specifier is valid for TYPEP and the compiler uses that to decide
whether to generate a call to TYPEP.  Since types should be defined before
being used in a declaration, there shouldn't be any need to postpone this
decision to runtime.