I have found a bug that can be reproduced this way. Run the CLIM Listener, enter the command "Show Command Table" and hit ENTER without providing an argument. An ACCEPTING-VALUES dialog prompting for the missing argument appears. Left-clicking the input field generates this error:
No matching method for the generic function #<STANDARD-GENERIC-FUNCTION CLIM:COMMAND-TABLE-NAME (1) {284FF439}>, when called with arguments (NIL). [Condition of type PCL::NO-APPLICABLE-METHOD-ERROR]
Restarts: 0: [CONTINUE ] Retry call to :FUNCTION. 1: [ABORT ] Return to application command loop 2: [RETURN-TO-LISTENER] Return to listener. 3: [DESTROY ] Destroy the process
Debug (type H for help)
("DEFMETHOD NO-APPLICABLE-METHOD (T)" #<unused-arg> #<unused-arg> #<STANDARD-GENERIC-FUNCTION CLIM:COMMAND-TABLE-NAME (1) {284FF439}> (NIL)) Source: Error finding source: Error in function DEBUG::GET-FILE-TOP-LEVEL-FORM: Source file no longer exists: target:pcl/braid.lisp. 0]
I use the latest McCLIM CVS sources with CMUCL Snapshot 2005-01 under Slackware Linux 10.0.
Paolo
I was trying to replicate this bug, and I find now that loading the clim listener crashes when it's unable to find a compiled version of "/home/rpg/lisp/mcclim/Apps/Listener/icons/CVS".
As far as I can tell, this is because the REMOVE-IF #'directoryp in PRECACHE-ICONS is not working for me.
Here's the unpleasant behavior that's responsible for the bug:
[1] CLIM-LISTENER(9): (setf pn *) #p"/home/rpg/lisp/mcclim/Apps/Listener/icons/CVS" [1] CLIM-LISTENER(10): (directoryp pn) NIL [1] CLIM-LISTENER(11): (pathname-name pn) "CVS"
The relevant code snippet:
; There has to be a better way.. (defun directoryp (pathname) "Returns pathname when supplied with a directory, otherwise nil" (if (or (pathname-name pathname) (pathname-type pathname)) nil pathname))
Reasonable-patch-p?
(defun directoryp (pathname) "Returns pathname when supplied with a directory, otherwise nil" #+allegro (excl:file-directory-p pathname) #-allegro (if (or (pathname-name pathname) (pathname-type pathname)) nil pathname))
Cheers, r
Argh. Sorry about the command line --- had started out to edit Paolo's message, and didn't successfully remove all of his command line...