[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Painful retraction
The access questions are another story. On stock hardware such as a
Vax, it is essential that (ship-captain foo) expand into something tense
like (svref foo 7), without supplying any helpful type-checking. IF the
access code is not as fast as the user could get by hand, users will
bypass the defstruct package altogether and revert to doing ugly things
by hand. So it is not reasonable on a machine like the Vax to have
(ship-captain nil) return nil and portable code should not depend on
this.
I don't think it would violate the standard for a particular
implementation to return nil in this case -- this sort of extension in a
situation that would otherwise be an error is generally allowed -- but I
would strongly advocate that no implementor do this without a very good
reason. Users of his system will come to depend on this trick,
sacrificing portability without realizing it.
-- Scott