When I run this sample inspector form:
(clouseau:inspector #'documentation)
from the Clouseau documentation in Apps/Inspector/INSTALL, I get the error and backtrace included below. I use the latest McCLIM CVS sources (rebuilt from source after deleting old fasl files) with CMUCL Snapshot 2005-02 under Slackware Linux 10.0.
Paolo
------------------------------------------------------------------------- Error in function CLIM-INTERNALS::PROTOTYPE-OR-ERROR: STANDARD-GENERIC-FUNCTION is an unknown presentation type [Condition of type SIMPLE-ERROR]
Restarts: 0: [ABORT] Return to application command loop 1: Return to Top-Level.
Debug (type H for help)
(CLIM-INTERNALS::PROTOTYPE-OR-ERROR STANDARD-GENERIC-FUNCTION) Source: ; File: /home/paolo/src/mcclim/presentations.lisp (ERROR "~S is an unknown presentation type" NAME) 0] backtrace
0: (CLIM-INTERNALS::PROTOTYPE-OR-ERROR STANDARD-GENERIC-FUNCTION) 1: (CLIM-INTERNALS::PRESENTATION-CONTAINS-POSITION #<CLIM:STANDARD-PRESENTATION 0.0:400,0.0:365.0 STANDARD-GENERIC-FUNCTION {58242285}> 367 296) 2: (CLIM-INTERNALS::MAP-OVER-PRESENTATIONS-CONTAINING-POSITION #<Closure Over Function "DEFUN MAP-APPLICABLE-TRANSLATORS" {58727589}> #<CLIM:STANDARD-PRESENTATION 0.0:400,0.0:365.0 STANDARD-GENERIC-FUNCTION {58242285}> 367 296) 3: ((METHOD CLIM:MAP-OVER-OUTPUT-RECORDS-CONTAINING-POSITION NIL (T CLIM:STANDARD-SEQUENCE-OUTPUT-RECORD T T)) (#(6) . #()) #<unused-arg> #<Closure Over Function "DEFUN MAP-OVER-PRESENTATIONS-CONTAINING-POSITION" {587275C1}> #<CLIM:STANDARD-TREE-OUTPUT-HISTORY X 0.0:400 Y 0.0:365.0 {5816BCED}> ...) 4: (CLIM-INTERNALS::MAP-OVER-PRESENTATIONS-CONTAINING-POSITION #<Closure Over Function "DEFUN MAP-APPLICABLE-TRANSLATORS" {58727589}> #<CLIM:STANDARD-TREE-OUTPUT-HISTORY X 0.0:400 Y 0.0:365.0 {5816BCED}> 367 296) 5: (CLIM-INTERNALS::MAP-APPLICABLE-TRANSLATORS #<Closure Over Function "DEFUN FIND-INNERMOST-PRESENTATION-MATCH" {58727559}> #<CLIM:STANDARD-TREE-OUTPUT-HISTORY X 0.0:400 Y 0.0:365.0 {5816BCED}> ((# . #) (# . #) (CLIM:MENU-ITEM . #)) #<CLOUSEAU:INSPECTOR {58EEFEF5}> ...) 6: (CLIM-INTERNALS::FIND-INNERMOST-PRESENTATION-MATCH ((# . #) (# . #) (CLIM:MENU-ITEM . #)) #<CLIM:STANDARD-TREE-OUTPUT-HISTORY X 0.0:400 Y 0.0:365.0 {5816BCED}> #<CLOUSEAU:INSPECTOR {58EEFEF5}> #<CLIM:APPLICATION-PANE CLOUSEAU::APP {581199FD}> ...) 7: (CLIM:FIND-INNERMOST-APPLICABLE-PRESENTATION ((# . #) (# . #) (CLIM:MENU-ITEM . #)) #<CLIM:APPLICATION-PANE CLOUSEAU::APP {581199FD}> 367 296 ...) 8: (CLIM-INTERNALS::FRAME-HIGHLIGHT-AT-POSITION #<CLOUSEAU:INSPECTOR {58EEFEF5}> #<CLIM:APPLICATION-PANE CLOUSEAU::APP {581199FD}> 367 296 ...) 9: ((METHOD CLIM-INTERNALS::FRAME-INPUT-CONTEXT-TRACK-POINTER (:BEFORE) (CLIM:STANDARD-APPLICATION-FRAME T CLIM:OUTPUT-RECORDING-STREAM T)) #<unused-arg> #<unused-arg> #<CLOUSEAU:INSPECTOR {58EEFEF5}> ((# . #) (# . #) (CLIM:MENU-ITEM . #)) ...) 10: ("LAMBDA (G4238 G4239 G4240)" #<unused-arg> #<unused-arg> #<CLOUSEAU:INSPECTOR {58EEFEF5}> ((# . #) (# . #) (CLIM:MENU-ITEM . #)) ...) 11: (CLIM:HIGHLIGHT-APPLICABLE-PRESENTATION #<CLOUSEAU:INSPECTOR {58EEFEF5}> #<CLIM:INTERACTOR-PANE CLOUSEAU::INT {5800378D}> ((# . #) (# . #) (CLIM:MENU-ITEM . #)) T) 12: ((METHOD CLIM:STREAM-READ-GESTURE NIL (CLIM:STANDARD-EXTENDED-INPUT-STREAM)) (#(60) . #(#)) #<unused-arg> #<CLIM:INTERACTOR-PANE CLOUSEAU::INT {5800378D}> (:TIMEOUT NIL :INPUT-WAIT-TEST #<Function CLIM-INTERNALS::INPUT-CONTEXT-WAIT-TEST {1155E391}> :INPUT-WAIT-HANDLER ...)) 13: ((METHOD CLIM:STREAM-READ-GESTURE NIL (CLIM:STANDARD-INPUT-EDITING-STREAM)) (#(3 4 7 5 0 ...) . #()) #<unused-arg> #<CLIM:STANDARD-INPUT-EDITING-STREAM {58604CED}> (:TIMEOUT NIL :PEEK-P NIL :INPUT-WAIT-TEST ...)) 14: ((METHOD CLIM:STREAM-READ-GESTURE (:AROUND) (CLIM-INTERNALS::EMPTY-INPUT-MIXIN)) #<unused-arg> #S(PCL::FAST-METHOD-CALL :FUNCTION #<Function # {1142FC09}> :PV-CELL (# . #) :NEXT-METHOD-CALL #S(PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL # :NEXT-METHOD-CALL NIL :ARG-INFO #) :ARG-INFO (1 . T)) #<CLIM:STANDARD-INPUT-EDITING-STREAM {58604CED}> (:TIMEOUT NIL :PEEK-P NIL :INPUT-WAIT-TEST ...)) 15: (CLIM-INTERNALS::READ-COMPLETION-GESTURE #<CLIM:STANDARD-INPUT-EDITING-STREAM {58604CED}> (#\ ) T) 16: (CLIM:COMPLETE-INPUT #<CLIM:STANDARD-INPUT-EDITING-STREAM {58604CED}> #<Closure Over Function "DEFINE-PRESENTATION-METHOD ACCEPT" {58606E29}> :PARTIAL-COMPLETERS (#\ ) ...) 17: ((METHOD CLIM-INTERNALS::%ACCEPT NIL (CLIM-INTERNALS::|(presentation-type CLIM::COMMAND-NAME)| T T CLIM:TEXTUAL-VIEW)) #<unused-arg> #<unused-arg> #<CLIM-INTERNALS::|(presentation-type CLIM::COMMAND-NAME)| {28430CF5}> (CLIM:COMMAND-NAME :COMMAND-TABLE #<CLIM:STANDARD-COMMAND-TABLE CLOUSEAU:INSPECTOR {58C75FAD}>) ...) 18: ("DEFUN ACCEPT-1" #<CLIM:STANDARD-INPUT-EDITING-STREAM {58604CED}>) 19: (CLIM:ACCEPT (CLIM:COMMAND-NAME :COMMAND-TABLE #<CLIM:STANDARD-COMMAND-TABLE CLOUSEAU:INSPECTOR {58C75FAD}>) :STREAM #<CLIM:STANDARD-INPUT-EDITING-STREAM {58604CED}> :PROMPT ...) 20: (CLIM:COMMAND-LINE-COMMAND-PARSER #<CLIM:STANDARD-COMMAND-TABLE CLOUSEAU:INSPECTOR {58C75FAD}> #<CLIM:STANDARD-INPUT-EDITING-STREAM {58604CED}>) 21: ((METHOD CLIM-INTERNALS::%ACCEPT NIL (CLIM-INTERNALS::|(presentation-type CLIM::COMMAND)| T T CLIM:TEXTUAL-VIEW)) #<unused-arg> #<unused-arg> #<CLIM-INTERNALS::|(presentation-type CLIM::COMMAND)| {28430995}> (CLIM:COMMAND :COMMAND-TABLE #<CLIM:STANDARD-COMMAND-TABLE CLOUSEAU:INSPECTOR {58C75FAD}>) ...) 22: ("DEFUN ACCEPT-1" #<CLIM:STANDARD-INPUT-EDITING-STREAM {58604CED}>) 23: ((METHOD CLIM-INTERNALS::INVOKE-WITH-INPUT-EDITING NIL (CLIM:EXTENDED-INPUT-STREAM T T T T)) #<unused-arg> #<unused-arg> #<CLIM:INTERACTOR-PANE CLOUSEAU::INT {5800378D}> #<Closure Over Function "DEFUN ACCEPT-1" {586047F9}> ...) 24: ((METHOD CLIM-INTERNALS::INVOKE-WITH-INPUT-EDITING (:AROUND) (CLIM:EXTENDED-OUTPUT-STREAM T T T T)) (#(49) . #()) #S(PCL::FAST-METHOD-CALL :FUNCTION #<Function # {11539EC1}> :PV-CELL NIL :NEXT-METHOD-CALL #S(PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO #) :ARG-INFO (5)) #<CLIM:INTERACTOR-PANE CLOUSEAU::INT {5800378D}> #<Closure Over Function "DEFUN ACCEPT-1" {586047F9}> ...) 25: (CLIM:ACCEPT (CLIM:COMMAND :COMMAND-TABLE #<CLIM:STANDARD-COMMAND-TABLE CLOUSEAU:INSPECTOR {58C75FAD}>) :STREAM #<CLIM:INTERACTOR-PANE CLOUSEAU::INT {5800378D}> :PROMPT ...) 26: (CLIM:READ-COMMAND #<CLIM:STANDARD-COMMAND-TABLE CLOUSEAU:INSPECTOR {58C75FAD}> :STREAM #<CLIM:INTERACTOR-PANE CLOUSEAU::INT {5800378D}> :COMMAND-PARSER ...) 27: (CLIM:READ-COMMAND-USING-KEYSTROKES #<CLIM:STANDARD-COMMAND-TABLE CLOUSEAU:INSPECTOR {58C75FAD}> NIL :STREAM #<CLIM:INTERACTOR-PANE CLOUSEAU::INT {5800378D}> ...) 28: (CLIM:READ-COMMAND #<CLIM:STANDARD-COMMAND-TABLE CLOUSEAU:INSPECTOR {58C75FAD}> :STREAM #<CLIM:INTERACTOR-PANE CLOUSEAU::INT {5800378D}> :COMMAND-PARSER ...) 29: ((METHOD CLIM:READ-FRAME-COMMAND (:AROUND) (CLIM:APPLICATION-FRAME)) (#(5) . #()) #S(PCL::FAST-METHOD-CALL :FUNCTION #<Function # {11566721}> :PV-CELL (# . #) :NEXT-METHOD-CALL NIL :ARG-INFO (1 . T)) #<CLOUSEAU:INSPECTOR {58EEFEF5}> (:STREAM #<CLIM:INTERACTOR-PANE CLOUSEAU::INT {5800378D}>)) 30: ((METHOD CLIM:DEFAULT-FRAME-TOP-LEVEL NIL (CLIM:APPLICATION-FRAME)) (#() . #(# # # # # ...)) #<unused-arg> #<CLOUSEAU:INSPECTOR {58EEFEF5}> NIL) 31: ("LAMBDA (.KEYARGS-START. .VALID-KEYS. G4230)" #<unused-arg> #<unused-arg> #<CLOUSEAU:INSPECTOR {58EEFEF5}> NIL) 32: ((METHOD CLIM:RUN-FRAME-TOP-LEVEL NIL (CLIM:APPLICATION-FRAME)) (#(20) . #()) #<unused-arg> #<CLOUSEAU:INSPECTOR {58EEFEF5}> #<unused-arg>) 33: ((METHOD CLIM:RUN-FRAME-TOP-LEVEL (:AROUND) (CLIM:APPLICATION-FRAME)) (#(16 15) . #(#)) #S(PCL::FAST-METHOD-CALL :FUNCTION #<Function # {116898C1}> :PV-CELL (# . #) :NEXT-METHOD-CALL NIL :ARG-INFO (1 . T)) #<CLOUSEAU:INSPECTOR {58EEFEF5}> NIL) 34: ((FLET CLOUSEAU::RUN CLOUSEAU:INSPECTOR)) 35: (INTERACTIVE-EVAL (CLOUSEAU:INSPECTOR #'DOCUMENTATION)) 36: (LISP::%TOP-LEVEL) 37: ((LABELS LISP::RESTART-LISP SAVE-LISP))
0] -------------------------------------------------------------------------
This ugly quick fix might help:
;; Ugly and weird, and written without much understanding of the ;; real issues that it fixes. Beware. (defmethod clim:presentation-type-of ((object standard-generic-function)) 'clim:expression)
I don't know why CMUCL is saying that (clim:presentation-type-of #'documentation) is STANDARD-GENERIC-FUNCTION, which doesn't seem to be defined as a presentation type. It doesn't happen for me on SBCL. Perhaps a more CMUCL-knowledgable person could weigh in?
-Peter
| | ;; Ugly and weird, and written without much understanding of the | ;; real issues that it fixes. Beware. | (defmethod clim:presentation-type-of ((object standard-generic-function)) | 'clim:expression) | | I don't know why CMUCL is saying that (clim:presentation-type-of | #'documentation) is STANDARD-GENERIC-FUNCTION, which doesn't seem to | be defined as a presentation type. It doesn't happen for me on SBCL. | Perhaps a more CMUCL-knowledgable person could weigh in?
FWIW, LWW CLIM also returns STANDARD-GENERIC-FUNCTION. Are not all CLOS classes presentation-types by default?
Paul
They are indeed. I think this is retarded, personally, but that's what the spec says..
On Tue, 15 Feb 2005 15:54:42 -0500, Paul Werkowski pw@snoopy.mv.com wrote:
FWIW, LWW CLIM also returns STANDARD-GENERIC-FUNCTION. Are not all CLOS classes presentation-types by default?
Paul