-(in-package "SB!BYTECODE")
-
-;;; This is defined here so that the printer etc. can call
-;;; INTERPRETED-FUNCTION-P before the full interpreter is loaded.
-
-;;; an interpreted function
-(defstruct (interpreted-function
- (:alternate-metaclass sb!kernel:funcallable-instance
- sb!kernel:funcallable-structure-class
- sb!kernel:make-funcallable-structure-class)
- (:type sb!kernel:funcallable-structure)
- (:constructor %make-interpreted-function)
- (:copier nil)
- ;; FIXME: Binding PRINT-OBJECT isn't going to help unless
- ;; we fix the print-a-funcallable-instance code so that
- ;; it calls PRINT-OBJECT in this case.
- (:print-object
- (lambda (x stream)
- (print-unreadable-object (x stream :identity t)
- (interpreted-function-%name x)))))
- ;; The name of this interpreted function, or NIL if none specified.
- (%name nil)
- ;; This function's debug arglist.
- (arglist nil)
- ;; A lambda that can be converted to get the definition.
- (lambda nil)
- ;; If this function has been converted, then this is the XEP. If this is
- ;; false, then the function is not in the cache (or is in the process of
- ;; being removed.)
- (definition nil :type (or sb!c::clambda null))
- ;; The number of consecutive GCs that this function has been unused.
- ;; This is used to control cache replacement.
- (gcs 0 :type sb!c::index)
- ;; True if Lambda has been converted at least once, and thus warnings should
- ;; be suppressed on additional conversions.
- (converted-once nil)
- ;; For a closure, the closure date vector.
- (closure nil :type (or null simple-vector)))
-\f
-;;; FIXME: Could we make this extra IN-PACKAGE go away, so that all
-;;; this bytecode interpreter implementation stuff was in the
-;;; SB!BYTECODE package?