(lambda (x stream)
(print-unreadable-object (x stream :type t :identity t)
(prin1 (byte-function-name (byte-closure-function x))
- stream)))))
+ stream))))
+ (:copier nil))
;; the byte function that we call
(function (required-argument) :type byte-function)
;; the closure data vector
;;; object for a closure)
(defstruct (byte-function (:include byte-function-or-closure)
(:type funcallable-structure)
- (:constructor nil))
+ (:constructor nil)
+ (:copier nil))
;; The component that this XEP is an entry point into. NIL until
;; LOAD or MAKE-CORE-BYTE-COMPONENT fills it in. They count on this
;; being the first slot.
;;; fixed-argument byte function
(defstruct (simple-byte-function (:include byte-function)
- (:type funcallable-structure))
+ (:type funcallable-structure)
+ (:copier nil))
;; The number of arguments expected.
(num-args 0 :type (integer 0 #.call-arguments-limit))
;; The start of the function.
;;; variable-arg-count byte function
(defstruct (hairy-byte-function (:include byte-function)
- (:type funcallable-structure))
+ (:type funcallable-structure)
+ (:copier nil))
;; The minimum and maximum number of args, ignoring &REST and &KEY.
(min-args 0 :type (integer 0 #.call-arguments-limit))
(max-args 0 :type (integer 0 #.call-arguments-limit))
(rest-arg-p nil :type (member t nil))
;; True if there are keywords. Note: keywords might still be NIL
;; because having &KEY with no keywords is valid and should result
- ;; in allow-other-keys processing. If :allow-others, then allow
+ ;; in &ALLOW-OTHER-KEYS processing. If :ALLOW-OTHERS, then allow
;; other keys.
(keywords-p nil :type (member t nil :allow-others))
- ;; List of keyword arguments. Each element is a list of:
- ;; key, default, supplied-p.
+ ;; list of &KEY arguments. Each element is a list of:
+ ;; key, default, supplied-p.
(keywords nil :type list))
#!-sb-fluid (declaim (freeze-type byte-function-or-closure))