X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fearly-full-eval.lisp;h=7114306d52b79f70fa23db79fd763b4d91af46ab;hb=119d1c157e519573074720b7897a9fa918329ac5;hp=fd7f2039945ae96441675d8bd1801248093fc015;hpb=970dd272dc84f7420252eadb4829cc193f795716;p=sbcl.git diff --git a/src/code/early-full-eval.lisp b/src/code/early-full-eval.lisp index fd7f203..7114306 100644 --- a/src/code/early-full-eval.lisp +++ b/src/code/early-full-eval.lisp @@ -25,7 +25,7 @@ ;; RECOMPILE restart doesn't work on it. This is the main reason why ;; this stuff is split out into its own file. Also, it lets the ;; INTERPRETED-FUNCTION type be declared before it is used in -;; compiler/main. +;; compiler/main and code/deftypes-for-target. (sb!kernel::!defstruct-with-alternate-metaclass interpreted-function :slot-names (name lambda-list env declarations documentation body source-location) @@ -36,21 +36,23 @@ :dd-type funcallable-structure :runtime-type-checks-p nil) -(defun make-interpreted-function - (&key name lambda-list env declarations documentation body source-location) - (let ((function (%make-interpreted-function - name lambda-list env declarations documentation body - source-location))) - (setf (sb!kernel:funcallable-instance-fun function) - #'(lambda (&rest args) - (interpreted-apply function args))) - function)) - -(defun interpreted-function-p (function) - (typep function 'interpreted-function)) - -(sb!int:def!method print-object ((obj interpreted-function) stream) - (print-unreadable-object (obj stream - :identity (not (interpreted-function-name obj))) - (format stream "~A ~A" '#:interpreted-function - (interpreted-function-name obj)))) +#-sb-xc-host +(progn + (defun make-interpreted-function + (&key name lambda-list env declarations documentation body source-location) + (let ((function (%make-interpreted-function + name lambda-list env declarations documentation body + source-location))) + (setf (sb!kernel:funcallable-instance-fun function) + #'(lambda (&rest args) + (interpreted-apply function args))) + function)) + + (defun interpreted-function-p (function) + (typep function 'interpreted-function)) + + (sb!int:def!method print-object ((obj interpreted-function) stream) + (print-unreadable-object (obj stream + :identity (not (interpreted-function-name obj))) + (format stream "~A ~A" '#:interpreted-function + (interpreted-function-name obj)))))