Changeset 13202 for trunk/abcl/src/org


Ignore:
Timestamp:
02/03/11 22:40:53 (11 years ago)
Author:
ehuelsmann
Message:

Add some documentation and indicate the direction to work on.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/clos.lisp

    r13201 r13202  
    5252
    5353(in-package #:mop)
     54
     55;;
     56;;
     57;;
     58;; In order to bootstrap CLOS, first implement the required API as
     59;; normal functions which only apply to the "root" metaclass
     60;; STANDARD-CLASS.
     61;;
     62;; After putting the normal functions in place, the building blocks
     63;; are in place to gradually swap the normal functions with
     64;; generic functions and methods.
     65;;
     66;; Some functionality implemented in the temporary regular functions
     67;; needs to be available later as a method definition to be dispatched
     68;; to for the STANDARD-CLASS case.  To prevent repeated code, the
     69;; functions are implemented in functions by the same name as the
     70;; API functions, but with the STD- prefix.
     71;;
     72;; When hacking this file, note that some important parts are implemented
     73;; in the Java world. These Java bits can be found in the files
     74;;
     75;; * LispClass.java
     76;; * SlotClass.java
     77;; * StandardClass.java
     78;; * BuiltInClass.java
     79;; * StandardObject.java
     80;; * StandardObjectFunctions.java
     81;; * Layout.java
     82;;
     83;; In case of function names, those defined on the Java side can be
     84;; recognized by their prefixed percent sign.
     85;;
     86;; The API functions need to be declaimed NOTINLINE explicitly, because
     87;; that prevents inlining in the current FASL (which is allowed by the
     88;; CLHS without the declaration); this is a hard requirement to in order
     89;; to be able to swap the symbol's function slot with a generic function
     90;; later on - with it actually being used.
     91;;
     92;;
     93;;
     94;; ### Note that the "declares all API functions as regular functions"
     95;; isn't true when I write the above, but it's definitely the target.
     96;;
     97;;
    5498
    5599(export '(class-precedence-list class-slots))
Note: See TracChangeset for help on using the changeset viewer.