|
|
CVS: sbcl/src/pcl braid.lisp,1.41,1.42 slots-boot.lisp,1.18,1.19 std-class.: msg#00123
|
Subject: |
CVS: sbcl/src/pcl braid.lisp,1.41,1.42 slots-boot.lisp,1.18,1.19 std-class.lisp,1.54,1.55 |
Update of /cvsroot/sbcl/sbcl/src/pcl
In directory sc8-pr-cvs1:/tmp/cvs-serv17370/src/pcl
Modified Files:
braid.lisp slots-boot.lisp std-class.lisp
Log Message:
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
Index: braid.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/pcl/braid.lisp,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -d -r1.41 -r1.42
--- braid.lisp 10 Oct 2003 09:14:33 -0000 1.41
+++ braid.lisp 18 Oct 2003 10:14:52 -0000 1.42
@@ -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))))
Index: slots-boot.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/pcl/slots-boot.lisp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- slots-boot.lisp 14 Oct 2003 07:31:05 -0000 1.18
+++ slots-boot.lisp 18 Oct 2003 10:14:52 -0000 1.19
@@ -78,8 +78,12 @@
(slot-missing-fun slot-name type)
"generated slot-missing method"
slot-name)))))
- (unless (fboundp fun-name)
- (let ((gf (ensure-generic-function fun-name)))
+ (unless (fboundp 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))
Index: std-class.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/pcl/std-class.lisp,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -d -r1.54 -r1.55
--- std-class.lisp 26 Aug 2003 17:46:57 -0000 1.54
+++ std-class.lisp 18 Oct 2003 10:14:52 -0000 1.55
@@ -797,7 +797,10 @@
(defun fix-slot-accessors (class dslotds add/remove)
(flet ((fix (gfspec name r/w)
- (let ((gf (ensure-generic-function gfspec)))
+ (let* ((ll (case r/w (r '(object)) (w '(new-value object))))
+ (gf (if (fboundp gfspec)
+ (ensure-generic-function gfspec)
+ (ensure-generic-function gfspec :lambda-list ll))))
(case r/w
(r (if (eq add/remove 'add)
(add-reader-method class gf name)
-------------------------------------------------------
This SF.net email sponsored by: Enterprise Linux Forum Conference & Expo
The Event For Linux Datacenter Solutions & Strategies in The Enterprise
Linux in the Boardroom; in the Front Office; & in the Server Room
http://www.enterpriselinuxforum.com
|
| |