On Mon, Oct 21, 2002 at 07:42:13AM -0500, William Harold Newman wrote:
> > [ I /think/ we have already committed the optimization related to the
> > "structure slots are never unbound"; if not, that would be a fourth
> > one outstanding ]
> ported by NJF in 0.7.8.14
> > The :ARGUMENTS fix is I think out of scope for 0.7.9, in that it's still
> > in flux for cmucl (Gerd's got a new version which seems significantly
> > better than his old version, which in turn is better than the
> > non-functional version :); which of these others am I allowed to commit?
> My preference would be not to change code at this point unless we're
> fixing bugs, and even then to be conservative. (Except comments should
> be OK, and, since the subject is PCL maintenance after all, deleting
> clearly-unused code should also be OK.) That standard would probably
> accommodate the ERROR-to-PROGRAM-ERROR changes. Arguably it would
> allow the DEFGENERIC fix -- use your judgment as to how likely it is
> to help people by catching programming errors rather than hurt people
> by introducing bugs. I don't remember the :ARGUMENTS problem, so I'm
> not sure about that.
I'll probably punt them all into 0.7.9.x, then; which changes my
preference from a "later" release to an "earlier" release, now that
Alexey's worked around the "compiler too smart" problem in FLOAT-RADIX.
The :ARGUMENTS problem is essentially that we don't get it right in any
way to DEFINE-METHOD-COMBINATION; the consolation is that no other
implementation currently gets it right either, as I understand it :-/
--- begin test case from cmucl-imp ---
(define-method-combination foo ()
(:arguments &whole args)
`(format t "~&generic function ~A applied to ~A~%"
;; use of the MOP here is not relevant to the test, which is
;; probing ANSI-specified behaviour.
(mop:generic-function-name ,gf) ,args))
(defgeneric foo (x)
(defmethod foo (x)
--- end test case from cmucl-imp ---
http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge)