From: Leslie P. P. <sk...@vi...> - 2009-07-23 12:09:21
Attachments:
describe-assumed-function.diff
|
Using 1.0.30.4 this snippet (flet ((zoo () (gogo))) (defmethod gogo nil nil) (describe 'gogo)) yields COMMON-LISP-USER::GNAT [symbol] debugger invoked on a SB-KERNEL:CASE-FAILURE in thread #<THREAD "initial thread" RUNNING {A902989}>: :ASSUMED fell through ECASE expression. Wanted one of (:DEFINED-METHOD :DEFINED :DECLARED). Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. restarts (invokable by number or by possibly-abbreviated name): 0: [ABORT] Exit debugger, returning to top level. (SB-IMPL::DESCRIBE-FUNCTION GNAT NIL #<SB-PRETTY:PRETTY-STREAM {AD66D19}>) 0] It's clear that DESCRIBE should be able to cope with that, and the patch is trivial (attached). But I'm mainly wondering whether its WHERE-FROM shouldn't be set to :DEFINED when the DEFMETHOD occurs. Leslie -- http://www.linkedin.com/in/polzer |
From: Nikodemus S. <nik...@ra...> - 2009-07-28 17:56:01
|
2009/7/23 Leslie P. Polzer <sk...@vi...>: > Using 1.0.30.4 this snippet > > (flet ((zoo () (gogo))) > (defmethod gogo nil nil) > (describe 'gogo)) > > yields > > COMMON-LISP-USER::GNAT > [symbol] > > debugger invoked on a SB-KERNEL:CASE-FAILURE in thread #<THREAD "initial thread" RUNNING > {A902989}>: > :ASSUMED fell through ECASE expression. > Wanted one of (:DEFINED-METHOD :DEFINED :DECLARED). Fixed in 1.0.30.6, thank you. I opted to omit the type information completely in this case in favor of adding an "Assumed type" to the output -- since that type information is never going to be very interesting. > But I'm mainly wondering whether its WHERE-FROM shouldn't > be set to :DEFINED when the DEFMETHOD occurs. Actually I would have expected it to be :DEFINED-METHOD -- not immediately sure if my expectations are wrong or if something is going wrong. Cheers, -- Nikodemus |
From: Leslie P. P. <sk...@vi...> - 2009-07-28 21:43:06
|
Nikodemus Siivola wrote: > Fixed in 1.0.30.6, thank you. Your log entry says: * Generic functions defined by non-toplevel DEFMETHODs may have an :ASSUMED :WHERE-FROM in globaldb. Note that the important condition is usage of the function name before the definition happens. It doesn't matter whether we're at the toplevel or not. > Actually I would have expected it to be :DEFINED-METHOD -- not > immediately sure if my expectations are wrong or if something is going > wrong. Yes, I meant :DEFINED-METHOD. Perhaps a janitorial bug should be filed for this harmless deviation. Leslie -- http://www.linkedin.com/in/polzer |
From: Nikodemus S. <nik...@ra...> - 2009-07-29 14:52:59
|
2009/7/29 Leslie P. Polzer <sk...@vi...>: > Note that the important condition is usage of the function name > before the definition happens. It doesn't matter whether we're > at the toplevel or not. You are perfectly correct. I don't know what I was thinking... > Yes, I meant :DEFINED-METHOD. Perhaps a janitorial bug should > be filed for this harmless deviation. Fixed in 1.0.30.10. Cheers, -- Nikodemus |