[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 38/61: Commenting in goops.scm
From: |
Andy Wingo |
Subject: |
[Guile-commits] 38/61: Commenting in goops.scm |
Date: |
Thu, 22 Jan 2015 18:53:12 +0000 |
wingo pushed a commit to branch wip-goops-refactor
in repository guile.
commit 4888e34e85d1ba6b4d3ac86ffa8b9ec1432bf6a4
Author: Andy Wingo <address@hidden>
Date: Tue Jan 13 23:16:40 2015 +0100
Commenting in goops.scm
* module/oop/goops.scm: More narrative cleanup.
---
module/oop/goops.scm | 28 +++++++++++++++++++---------
1 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/module/oop/goops.scm b/module/oop/goops.scm
index 5fc76da..7d5b956 100644
--- a/module/oop/goops.scm
+++ b/module/oop/goops.scm
@@ -593,7 +593,6 @@ subclasses of @var{c}."
;;; Now, to build out the class hierarchy.
;;;
-;; Applicables and their classes.
(define-standard-class <procedure-class> (<class>))
(define-standard-class <applicable-struct-class>
(<procedure-class>))
@@ -630,7 +629,6 @@ subclasses of @var{c}."
<extended-generic-with-setter>)
#:metaclass <applicable-struct-with-setter-class>)
-;; Methods
(define-standard-class <method> (<object>)
generic-function
specializers
@@ -641,7 +639,6 @@ subclasses of @var{c}."
(define-standard-class <accessor-method> (<method>)
(slot-definition #:init-keyword #:slot-definition))
-;; Primitive types classes
(define-standard-class <boolean> (<top>))
(define-standard-class <char> (<top>))
(define-standard-class <list> (<top>))
@@ -702,6 +699,18 @@ function."
(struct-set! <applicable> class-index-direct-subclasses
(cons class subclasses)))))
+
+
+
+;;;
+;;; At this point we have defined the class hierarchy, and it's time to
+;;; move on to instance allocation and generics. Once we have generics,
+;;; we'll fill out the metaobject protocol.
+;;;
+;;; Here we define a limited version of `make', so that we can allocate
+;;; instances of specific classes. This definition will be replaced
+;;; later.
+;;;
(define (%invalidate-method-cache! gf)
(slot-set! gf 'procedure (delayed-compile gf))
(slot-set! gf 'effective-methods '()))
@@ -726,12 +735,6 @@ followed by its associated value. If @var{l} does not
hold a value for
(scm-error 'wrong-type-arg #f "Not a keyword: ~S" (list kw) #f))
(if (eq? kw key) arg (lp l))))))
-;; A simple make which will be redefined later. This version handles
-;; only creation of gf, methods and classes (no instances).
-;;
-;; Since this code will disappear when Goops will be fully booted,
-;; no precaution is taken to be efficient.
-;;
(define (%allocate-instance class)
(let ((obj (allocate-struct class (struct-ref class class-index-nfields))))
(%clear-fields! obj)
@@ -778,6 +781,13 @@ followed by its associated value. If @var{l} does not
hold a value for
@code{#f} otherwise."
(and (memq class (class-precedence-list (class-of obj))) #t))
+
+
+
+;;;
+;;; Slot access.
+;;;
+
;; In the future, this function will return the effective slot
;; definition associated with SLOT_NAME. Now it just returns some of
;; the information which will be stored in the effective slot
- [Guile-commits] 26/61: Reimplement %allocate-instance in Scheme, (continued)
- [Guile-commits] 26/61: Reimplement %allocate-instance in Scheme, Andy Wingo, 2015/01/22
- [Guile-commits] 28/61: goops.c no longer knows about <class> slot allocation, Andy Wingo, 2015/01/22
- [Guile-commits] 34/61: Fold (oop goops util) into (oop goops), Andy Wingo, 2015/01/22
- [Guile-commits] 33/61: GOOPS utils module cleanups, Andy Wingo, 2015/01/22
- [Guile-commits] 27/61: Reimplement inherit-applicable! in Scheme, Andy Wingo, 2015/01/22
- [Guile-commits] 12/61: goops: use computed class slot offsets; untabify and fix whitepace, Andy Wingo, 2015/01/22
- [Guile-commits] 37/61: Narrative reordering in goops.scm, Andy Wingo, 2015/01/22
- [Guile-commits] 36/61: scm_make cleanup, Andy Wingo, 2015/01/22
- [Guile-commits] 39/61: More GOOPS comments, Andy Wingo, 2015/01/22
- [Guile-commits] 42/61: Convert emit-linear-dispatch to use match, Andy Wingo, 2015/01/22
- [Guile-commits] 38/61: Commenting in goops.scm,
Andy Wingo <=
- [Guile-commits] 43/61: `match' refactor in goops.scm, Andy Wingo, 2015/01/22
- [Guile-commits] 40/61: when and unless for one-armed ifs in goops.scm, Andy Wingo, 2015/01/22
- [Guile-commits] 44/61: GOOPS class slot indices defined as inline values, Andy Wingo, 2015/01/22
- [Guile-commits] 47/61: change-object-class refactor, Andy Wingo, 2015/01/22
- [Guile-commits] 45/61: Manipulate GOOPS vtable flags from Scheme, for speed, Andy Wingo, 2015/01/22
- [Guile-commits] 41/61: More GOOPS cleanups, Andy Wingo, 2015/01/22
- [Guile-commits] 48/61: GOOPS: Deprecate "using-class" procs like slot-ref-using-class, Andy Wingo, 2015/01/22
- [Guile-commits] 46/61: slot-ref, slot-set! et al bypass "using-class" variants, Andy Wingo, 2015/01/22
- [Guile-commits] 50/61: Beginnings of <slot> slot definition class, Andy Wingo, 2015/01/22
- [Guile-commits] 52/61: Use a vtable bit to mark <slot> instances, Andy Wingo, 2015/01/22