0.pre7.36
[sbcl.git] / src / code / force-delayed-defbangmethods.lisp
1 ;;;; This software is part of the SBCL system. See the README file for
2 ;;;; more information.
3 ;;;;
4 ;;;; This software is derived from the CMU CL system, which was
5 ;;;; written at Carnegie Mellon University and released into the
6 ;;;; public domain. The software is in the public domain and is
7 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
8 ;;;; files for more information.
9
10 (in-package "SB-IMPL") ;(SB-IMPL, not SB!IMPL, since we're built in warm load.)
11
12 (macrolet ((force-delayed-def!methods ()
13              `(progn
14                 ,@(mapcar (lambda (args)
15                             `(progn
16                                #+sb-show
17                                (format t
18                                        "~&/about to do ~S~%"
19                                        '(defmethod ,@args))
20                                (defmethod ,@args)
21                                #+sb-show
22                                (format t
23                                        "~&/done with DEFMETHOD ~S~%"
24                                        ',(first args))))
25                           *delayed-def!method-args*)
26                 (defmacro def!method (&rest args) `(defmethod ,@args))
27                 ;; We're no longer needed, ordinary DEFMETHOD is enough now.
28                 (makunbound '*delayed-def!method-args*))))
29   (force-delayed-def!methods))