From: Sam S. <sd...@gn...> - 2008-12-31 19:09:42
|
Bruno, getting back to the original problem, I now get (close *standard-output* :ab) *** - COMMON-LISP::CLOSE-<EMF-1>-1: keyword arguments in (:AB) should occur pairwise this is much better than #:COMPILED-FORM-133-1, but it could be improved, e.g., buy using ;; better naming of effective method functions (defun effective-method-function-name (gf methods) (sys::symbol-suffix (sys::closure-name gf) (princ-to-string (car methods)))) in clos-print.lisp, after CLOS has been built. alas, I run into a bootstrapping problem here: printing a method object for the first time creates an effective method function for PRINT-OBJECT - and the stack blows because of infinite recursion. I tried this: (defun effective-method-function-name (gf methods) (sys::symbol-suffix (sys::closure-name gf) (with-output-to-string (o) (princ "<EMF-[" o) (format o "~{~A~^@~}" (mapcar #'class-name (method-specializers (car methods)))) (princ "]>" o)))) with the exact same result - stack overflow, even though I am only printing symbols, not CLOS objects. any ideas? Sam. |