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

Painful retraction



    What do you (Scott) think are similar situations "that would otherwise
    be an error" that are really parallel?

For example, those implementations that add a new Instance data type to
support flavors have to extend several of the basic operators to cover
this new type.  Implementations that have extra I/O options must extend
the stream operators to take new keywords.  Implemenations with new
number types (continued fractions, anyone?) have to overload the
arithmetic operators.  And so on.  It seems to me that the spirit of
Common Lisp says that everything legal according to the manual ought to
work in all implementations, and that the way you create a superset is
to make combinations that are otherwise undefined work in some
particular way.

So it seems to me that Frederking's extension is technically legal, in
that it wouldn't break any portable code and wouldn't fail to signal an
error in those cases that are specifically required to signal an error.
I also feel that it is unwise, because in the cases cited above it will
be very clear to users that they are delaing with entities or
combinations outside the base language, while users doing (SHIP-CAPTAIN
NIL) might imagine that they are still within the portable standard.

-- Scott