[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Implicit contracts
- To: Rob MacLachlan <RAM@CMU-CS-C>
- Subject: Implicit contracts
- From: David A. Moon <Moon%SCRC-TENEX@MIT-MC>
- Date: Mon, 19 Sep 1983 19:23:00 -0000
- Cc: common-lisp@SU-AI
- In-reply-to: The message of 19 Sep 83 08:50-EDT from Rob MacLachlan <RAM at CMU-CS-C>
Date: Mon, 19 Sep 1983 08:50 EDT
From: Rob MacLachlan <RAM@CMU-CS-C.ARPA>
I think that the specification of a language by implementation as
implied by Dyer's message is an extremely bad idea. If it is legal to
depend on any possible behavior of a function then it becomes
impossible to ever change any function because someone might depend on
a particular idiosyncratic behavior.
Precisely the problem that Interlisp has.
It seems to me that the best approach in Common Lisp is to have
that manual describe every important behavior of an operation, and for
any code which depends on something not guaranteed by the manual to be
considered erroneous.
As far as assuring agreement with the manual, I think that the
best solution would be to have a comprehensive validation suite, or
lacking that, a number of large portable applications.
I am in complete agreement with this. We should definitely have a
comprehensive validation suite. Even one that isn't comprehensive
would be helpful. I wrote one for the division-related functions
(/, mod, floor, etc.), but that is hardly a drop in the bucket.