I was just testing out the inspector, and was able to reliably cause it to blow up.
CL-USER(168): (clouseau:inspector *taems-model* :new-process t) #<MULTIPROCESSING:PROCESS Inspector Clouseau: #<TAEMS-MODEL @ #x72023142> @ #x72f7cd42>
...crashes with the followign error:
Error: Attempt to access the plist field of #<TAEMS-MODEL @ #x72023142> which is not a symbol. [condition type: SIMPLE-ERROR]
Restart actions (select using :continue): 0: Return to application command loop 1: Abort entirely from this process. [Current process: Inspector Clouseau: *TAEMS-MODEL*] [1] CL-USER(1):
CL-USER(169): (clouseau:inspector '*taems-model* :new-process t) #<MULTIPROCESSING:PROCESS Inspector Clouseau: *TAEMS-MODEL* @ #x728a4da2>
This works ok (presumably because it's a symbol it has a property list?), but when I click on the value cell of the *taems-model* variable, Clouseau blows up with the same error.
The proximate cause seems to be PRINT-DOCUMENTATION, which pulls the documentation and then tries to print it, as can be seen in this error:
CL-USER(171): (documentation *taems-model* t) Error: Attempt to access the plist field of #<TAEMS-MODEL @ #x72023142> which is not a symbol. [condition type: SIMPLE-ERROR]
Restart actions (select using :continue): 0: Return to Top Level (an "abort" restart). 1: Abort entirely from this process.
Does this mean that ACL is not doing the Right Thing with the documentation function? Or is CLOUSEAU wrong to assume that everything will have documentation? Seems like documentation might not be defined on objects, if I read the CLHS correctly.
The following change to PRINT-DOCUMENTATION seems to fix my problem. Not sure how right it is, though.
(defun print-documentation (object pane) "Print OBJECT's documentation, if any, to PANE" (when (catch 'no-docs (handler-bind ((warning #'muffle-warning) (error #'(lambda (c) (declare (ignore c)) (throw 'no-docs nil)))) (documentation object t))) (with-heading-style (pane) (format pane "~&Documentation: ")) (princ (documentation object t) pane)))