chiark / gitweb /
src/class-finalize-impl.lisp (check-sod-class): Remove `w/del' wrapper.
[sod] / src / module-impl.lisp
index 908a017a5b82afd5c1ffa3c6ee1f58eb2a18169b..cb3a8ad8b51612b40627045b942969fab08b9756 100644 (file)
@@ -56,8 +56,10 @@ (defmethod finalize-module ((module module))
 ;;;--------------------------------------------------------------------------
 ;;; Module objects.
 
 ;;;--------------------------------------------------------------------------
 ;;; Module objects.
 
-(defparameter *module-map* (make-hash-table :test #'equal)
+(defvar-unbound *module-map*
   "Hash table mapping true names to module objects.")
   "Hash table mapping true names to module objects.")
+(define-clear-the-decks reset-module-map
+  (setf *module-map* (make-hash-table :test #'equal)))
 
 (defun build-module
     (name thunk &key (truename (probe-file name)) location)
 
 (defun build-module
     (name thunk &key (truename (probe-file name)) location)
@@ -151,8 +153,8 @@ (defclass c-fragment ()
   (:documentation
    "Represents a fragment of C code to be written to an output file.
 
   (:documentation
    "Represents a fragment of C code to be written to an output file.
 
-   A C fragment is aware of its original location, and will bear proper #line
-   markers when written out."))
+   A C fragment is aware of its original location, and will bear proper
+   `#line' markers when written out."))
 
 (defun output-c-excursion (stream location func)
   "Invoke FUNC surrounding it by writing #line markers to STREAM.
 
 (defun output-c-excursion (stream location func)
   "Invoke FUNC surrounding it by writing #line markers to STREAM.
@@ -205,7 +207,8 @@ (defmethod make-load-form ((fragment c-fragment) &optional environment)
 (export '(code-fragment-item code-fragment code-fragment-reason
          code-fragment-name code-fragment-constraints))
 (defclass code-fragment-item ()
 (export '(code-fragment-item code-fragment code-fragment-reason
          code-fragment-name code-fragment-constraints))
 (defclass code-fragment-item ()
-  ((fragment :initarg :fragment :type c-fragment :reader code-fragment)
+  ((fragment :initarg :fragment :type (or string c-fragment)
+            :reader code-fragment)
    (reason :initarg :reason :type keyword :reader code-fragment-reason)
    (name :initarg :name :type t :reader code-fragment-name)
    (constraints :initarg :constraints :type list
    (reason :initarg :reason :type keyword :reader code-fragment-reason)
    (name :initarg :name :type t :reader code-fragment-name)
    (constraints :initarg :constraints :type list