>>>>> "William" == William Harold Newman <william.newman@...> writes:
William> On Fri, Oct 26, 2001 at 02:18:11PM -0400, Raymond Toy wrote:
>> >>>>> "Robert" == Robert Maclachlan <Robert_Maclachlan@...> writes:
>> [nice discussion snipped]
Robert> type, even when there is a compile time type error. Given that this is not
Robert> really an array problem at all, I'm inclined to leave that optimizer alone.
>> I'll buy that. The code is lying to the compiler in some sense, and I
>> always believe that if you lie, you deserve what you get and get what
>> you deserve. :-)
William> I believe that when SAFETY exceeds SPACE and SPEED, what you deserve
William> is snide backtalk (TYPE-ERRORs, etc.) from Lisp system, not random
William> low-level misbehavior. I know ANSI disagrees (leaving it undefined,
William> saying anything is possible), but I think the Python principle,
William> declarations are assertions, is the appropriate way to go. Otherwise
William> it's really tedious and stressful dealing with type declarations in
William> Lisp code.
Yes, but I don't know enough about how the compiler works to make such
a change that doesn't also negatively impact cases where everything is
Rob also said:
We could use the upgraded type whenever (> safety speed), but
this perversely eliminates any possiblity of enforcing the
declared element type, even when there is a compile time type
error. Given that this is not an array problem at all,...
You could look at the possiblity of changing the optimizer to
not delete the erroneous code when (> safety speed)
I think this is the right place to do. I don't know where that is.