From: Andreas F. <as...@vo...> - 2003-05-19 22:04:44
Attachments:
defmethod-keyword.patch
|
Hi, in a specialized-lambda-list, &rest after &key, or &optional after &key, etc. used to work in current sbcl's PCL; According to http://www-2.cs.cmu.edu/Groups/AI/html/hyperspec/HyperSpec/Body/mac_defmethod.html, this is not compliant behaviour. This patch ought to fix this, and add a few more simple-error diagnostics for error cases which might pop up. Added benefit: it probably slows defmethod down even more. (-: |
From: Andreas F. <as...@vo...> - 2003-05-20 16:35:15
Attachments:
defmethod-keyword_aak.patch
|
Have fun, -- Andreas Fuchs, <as...@ac...>, as...@ja..., antifuchs |
From: Christophe R. <cs...@ca...> - 2003-05-28 12:17:21
|
Andreas Fuchs <as...@vo...> writes: > On 2003-05-19, Andreas Fuchs <as...@vo...> wrote: >> This patch ought to fix this, and add a few more simple-error >> diagnostics for error cases which might pop up. > > And to continue in my glorious reply-to-a-patch message tradition, here > is a patch which adds another check (and not, as before, fixes a stupid > bug in the previous patch (-;), namely that for an &allow-other-keys > without a &key keyword. Thank you, I've merged this into sbcl-0.8.0.11. As a general rule, I'd like to encourage patch submitters at least to run their patched version through the test suite. In this case, it caught one malformed specialized lambda list that wasn't flagged as such (in tests/clos.impure.lisp); it didn't cause me too much worry, because the problem was fairly obvious, but at least from my point of view having a cogent argument as to why the test in the test suite is wrong would be a good thing. Added extra bonus points are available if submitters include tests to go with their patches; in this case, working on the tests would have revealed a problem -- namely, that the compiler was relying on PARSE-SPECIALIZED-LAMBDA-LIST not to throw an error when going through to find the relevant source context to print a condition. This problem has now been fixed, too. :-) All that notwithstanding, thank you again for the patch. Happy millennium, Christophe -- 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) |