("src/compiler/target/alloc")
("src/compiler/target/call")
("src/compiler/target/nlx")
+ ("src/compiler/generic/late-nlx")
("src/compiler/target/show")
("src/compiler/target/array"
;; KLUDGE: Compiling this file for X86 raises alarming warnings of
;;;; the specifications of target packages, except for a few things
;;;; which are handled elsewhere by other mechanisms:
-;;;; * the creation of the trivial SB-SLOT-ACCESSOR-NAME package
-;;;; * any SHADOWing and nickname hackery
+;;;; * any SHADOWing and nickname hackery;
;;;; * the standard, non-SBCL-specific packages COMMON-LISP,
-;;;; COMMON-LISP-USER, and KEYWORD
+;;;; COMMON-LISP-USER, and KEYWORD.
;;;;
;;;; The packages are named SB!FOO here and elsewhere in
;;;; cross-compilation, in order to avoid collision with possible
;;;; before sbcl-0.7.0), then this would be the place to restore the
;;;; top pointers.
-;;; Return a list of TNs that can be used to snapshot the dynamic
-;;; state for use with the SAVE- and RESTORE-DYNAMIC-ENVIRONMENT VOPs.
-(!def-vm-support-routine make-dynamic-state-tns ()
- (list (make-normal-tn *backend-t-primitive-type*)
- (make-normal-tn *backend-t-primitive-type*)
- (make-normal-tn *backend-t-primitive-type*)
- (make-normal-tn *backend-t-primitive-type*)))
-
(define-vop (save-dynamic-state)
(:results (catch :scs (descriptor-reg))
(nfp :scs (descriptor-reg))
--- /dev/null
+;;;; some help for the definition of generic non-local exit
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; This software is derived from the CMU CL system, which was
+;;;; written at Carnegie Mellon University and released into the
+;;;; public domain. The software is in the public domain and is
+;;;; provided with absolutely no warranty. See the COPYING and CREDITS
+;;;; files for more information.
+
+(in-package "SB!VM")
+\f
+;;; Return a list of TNs that can be used to snapshot the dynamic
+;;; state for use with the SAVE- and RESTORE-DYNAMIC-ENVIRONMENT VOPs.
+(!def-vm-support-routine make-dynamic-state-tns ()
+ (make-n-tns #.(let ((nsave
+ (sb!c::vop-info-num-results
+ (template-or-lose 'save-dynamic-state)))
+ (nrestore
+ (sb!c::vop-info-num-args
+ (template-or-lose 'restore-dynamic-state))))
+ (aver (= nsave nrestore))
+ nsave)
+ *backend-t-primitive-type*))
+
;;; were any additional stacks, then this would be the place to restore the top
;;; pointers.
-
-;;; Return a list of TNs that can be used to snapshot the dynamic state for
-;;; use with the Save/Restore-DYNAMIC-ENVIRONMENT VOPs.
-(!def-vm-support-routine make-dynamic-state-tns ()
- (make-n-tns 4 *backend-t-primitive-type*))
-
(define-vop (save-dynamic-state)
(:results (catch :scs (descriptor-reg))
(nfp :scs (descriptor-reg))
;;; were any additional stacks, then this would be the place to restore the top
;;; pointers.
-
-;;; Return a list of TNs that can be used to snapshot the dynamic state for
-;;; use with the Save/Restore-DYNAMIC-ENVIRONMENT VOPs.
-(!def-vm-support-routine make-dynamic-state-tns ()
- (make-n-tns 4 *backend-t-primitive-type*))
-
(define-vop (save-dynamic-state)
(:results (catch :scs (descriptor-reg))
(nfp :scs (descriptor-reg))
;;; additional stacks, then this would be the place to restore the top
;;; pointers.
-
-;;; Return a list of TNs that can be used to snapshot the dynamic state for
-;;; use with the Save/Restore-DYNAMIC-ENVIRONMENT VOPs.
-(!def-vm-support-routine make-dynamic-state-tns ()
- (make-n-tns 4 *backend-t-primitive-type*))
-
(define-vop (save-dynamic-state)
(:results (catch :scs (descriptor-reg))
(nfp :scs (descriptor-reg))
;;; additional stacks, then this would be the place to restore the top
;;; pointers.
-
-;;; Return a list of TNs that can be used to snapshot the dynamic
-;;; state for use with the Save/Restore-Dynamic-Environment VOPs.
-(!def-vm-support-routine make-dynamic-state-tns ()
- (make-n-tns 4 *backend-t-primitive-type*))
-
(define-vop (save-dynamic-state)
(:results (catch :scs (descriptor-reg))
(nfp :scs (descriptor-reg))
;;;;
;;;; We don't need to save the BSP, because that is handled automatically.
-;;; Return a list of TNs that can be used to snapshot the dynamic
-;;; state for use with the SAVE- and RESTORE-DYNAMIC-ENVIRONMENT VOPs.
-(!def-vm-support-routine make-dynamic-state-tns ()
- (make-n-tns 2 *backend-t-primitive-type*))
-
(define-vop (save-dynamic-state)
(:results (catch :scs (descriptor-reg))
(alien-stack :scs (descriptor-reg)))
--- /dev/null
+;;;; tests for problems in the interface presented to the user/programmer
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; While most of SBCL is derived from the CMU CL system, the test
+;;;; files (like this one) were written from scratch after the fork
+;;;; from CMU CL.
+;;;;
+;;;; This software is in the public domain and is provided with
+;;;; absolutely no warranty. See the COPYING and CREDITS files for
+;;;; more information.
+
+(load "assertoid.lisp")
+(use-package "ASSERTOID")
+
+(defun (setf foo) (x)
+ "(setf foo) documentation"
+ x)
+
+(assert (string= (documentation '(setf foo) 'function)
+ "(setf foo) documentation"))
+(assert (string= (documentation #'(setf foo) 'function)
+ "(setf foo) documentation"))
+
+(defun (sb-pcl::class-predicate foo) (x)
+ "(class-predicate foo) documentation"
+ x)
+
+(assert (string= (documentation '(setf foo) 'function)
+ "(setf foo) documentation"))
+(assert (string= (documentation #'(setf foo) 'function)
+ "(setf foo) documentation"))
+(assert (string= (documentation '(sb-pcl::class-predicate foo) 'function)
+ "(class-predicate foo) documentation"))
+(assert (string= (documentation #'(sb-pcl::class-predicate foo) 'function)
+ "(class-predicate foo) documentation"))
+
+\f
+;;;; success
+(sb-ext:quit :unix-code 104)
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.7.13.16"
+"0.7.13.17"