logo       

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


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
linux.arklinux....    user-groups.lin...    kde.usability/2...    ietf.ipp/2002-0...    mail.spam.spamc...    os.netbsd.devel...    audio.cd-record...    text.unicode.de...    php.documentati...    games.fps.halfl...    window-managers...    suse.oracle.gen...    bug-tracking.gn...    video.dvdrip.us...    xfree86.cvs/200...    java.netbeans.m...    network.argus/2...    culture.sf.kill...    debian.ports.al...    freebsd.questio...    qplus.devel/200...    handhelds.palm....   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe