Commit a53deb94 authored by Christophe Rhodes's avatar Christophe Rhodes
Browse files

0.8.4.30:

	Be more careful over automatically generated generic function
	lambda lists
	... when generating PCL-internal GFs, pass :LAMBDA-LIST to
		ENSURE-GENERIC-FUNCTION
	... when generating accessor GFs, pass :LAMBDA-LIST if the
		function is not already created (where you want to
		preserve the user's lambda list instead)
	... tests for required behaviour
	Adjust INVALID-FASL patch slightly
	... comment in package-data-list.lisp-expr
	... remove unneccessary sb!ext:: prefixes
parent 4b57a491
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -553,6 +553,10 @@ like *STACK-TOP-HINT* and unsupported stuff like *TRACED-FUN-LIST*."
	     "DEFCONSTANT-UNEQL" "DEFCONSTANT-UNEQL-NAME"
	     "DEFCONSTANT-UNEQL-NEW-VALUE" "DEFCONSTANT-UNEQL-OLD-VALUE"

	     ;; error signalled when attempt to load an invalid fasl
	     ;; is made, so that user code can try to recompile, etc.
 	     "INVALID-FASL"

	     ;; conditions that can be handled to reduce compiler
	     ;; verbosity
	     "CODE-DELETION-NOTE" "COMPILER-NOTE"
@@ -591,11 +595,6 @@ like *STACK-TOP-HINT* and unsupported stuff like *TRACED-FUN-LIST*."
             ;; to hide it from them..
             "INTERACTIVE-EVAL"

	     ;; Subtype of SIMPLE-ERROR signalled when attempt to
 	     ;; load an invalid fasl is made, so that user-code can
 	     ;; try to recompile, etc.
 	     "INVALID-FASL"

             ;; weak pointers and finalization
             "CANCEL-FINALIZATION"
             "FINALIZE"
+5 −5
Original line number Diff line number Diff line
@@ -211,7 +211,7 @@
;;;; make only condition INVALID-FASL part of the public interface,
;;;; and keep the guts internal.

(define-condition sb!ext::invalid-fasl (error)
(define-condition invalid-fasl (error)
  ((stream :reader invalid-fasl-stream :initarg :stream)
   (expected :reader invalid-fasl-expected :initarg :expected))
  (:report
@@ -219,7 +219,7 @@
     (format stream "~S is an invalid fasl file."
	     (invalid-fasl-stream condition)))))

(define-condition invalid-fasl-header (sb!ext::invalid-fasl)
(define-condition invalid-fasl-header (invalid-fasl)
  ((byte :reader invalid-fasl-byte :initarg :byte)
   (byte-nr :reader invalid-fasl-byte-nr :initarg :byte-nr))
  (:report
@@ -231,7 +231,7 @@
	     (invalid-fasl-byte condition)
	     (invalid-fasl-expected condition)))))

(define-condition invalid-fasl-version (sb!ext::invalid-fasl)
(define-condition invalid-fasl-version (invalid-fasl)
  ((variant :reader invalid-fasl-variant :initarg :variant)
   (version :reader invalid-fasl-version :initarg :version))
  (:report
@@ -243,7 +243,7 @@
	     (invalid-fasl-version condition)
	     (invalid-fasl-expected condition)))))

(define-condition invalid-fasl-implementation (sb!ext::invalid-fasl)
(define-condition invalid-fasl-implementation (invalid-fasl)
  ((implementation :reader invalid-fasl-implementation
		   :initarg :implementation))
  (:report 
@@ -253,7 +253,7 @@
	     (invalid-fasl-implementation condition)
	     (invalid-fasl-expected condition)))))

(define-condition invalid-fasl-features (sb!ext::invalid-fasl)
(define-condition invalid-fasl-features (invalid-fasl)
  ((potential-features :reader invalid-fasl-potential-features
		       :initarg :potential-features)
   (features :reader invalid-fasl-features :initarg :features))
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@

;;;; LOAD itself

(define-condition fasl-header-missing (sb!ext::invalid-fasl)
(define-condition fasl-header-missing (invalid-fasl)
  ((fhsss :reader invalid-fasl-fhsss :initarg :fhsss))
  (:report
   (lambda (condition stream)
+3 −2
Original line number Diff line number Diff line
@@ -436,7 +436,8 @@
			(list class-name)
			(list class-name)
			"automatically generated boundp method")))
    (let ((gf (ensure-generic-function accessor-name)))
    (let ((gf (ensure-generic-function accessor-name
				       :lambda-list arglist)))
      (if (find specls (early-gf-methods gf)
		:key #'early-method-specializers
		:test 'equal)
@@ -601,7 +602,7 @@
(pushnew 'maybe-reinitialize-structure-class sb-kernel::*defstruct-hooks*)

(defun make-class-predicate (class name)
  (let* ((gf (ensure-generic-function name))
  (let* ((gf (ensure-generic-function name :lambda-list '(object)))
	 (mlist (if (eq *boot-state* 'complete)
		    (generic-function-methods gf)
		    (early-gf-methods gf))))
+6 −2
Original line number Diff line number Diff line
@@ -79,7 +79,11 @@
                                             "generated slot-missing method"
                                             slot-name)))))
    (unless (fboundp fun-name)
      (let ((gf (ensure-generic-function fun-name)))
      (let ((gf (ensure-generic-function
		 fun-name
		 :lambda-list (ecase type
				((reader boundp) '(object))
				(writer '(new-value object))))))
        (ecase type
          (reader (add-slot-missing-method gf slot-name 'slot-value))
          (boundp (add-slot-missing-method gf slot-name 'slot-boundp))
Loading