Skip to content
  1. Feb 02, 2010
  2. Sep 11, 2009
  3. May 23, 2009
  4. Sep 10, 2007
  5. Apr 21, 2007
    • Pascal Costanza's avatar
      Several minor and major changes. · 2619daeb
      Pascal Costanza authored
      This version of ContextL (0.4) incorporates several minor and major changes as a preparation towards a 1.0 release. Here is a list of the changes:
      
      --- Changes in the visible API ---
      
      + The functions activate-layer and activate-layer-using-class have been renamed to adjoin-layer and adjoin-layer-using-class, and deactivate-layer and deactivate-layer-using-class have been renamed to remove-layer and remove-layer-using-class. The new names reflect better what these functions actually do.
      
      + Removed the functions funcall-with-layers and apply-with-layers. Use the functions funcall-with-layer-context and apply-with-layer-context instead.
      
      + The deflayer macro doesn't take a :layer-class option anymore, but instead a :metaclass option. (I have tried to abstract from the internal representation as CLOS classes, but that turns out to be useless for the time being.)
      
      --- Additions to the visible API ---
      
      + Added the functions funcall-with-layer-context and apply-with-layer-context.
      
      + Added the function current-layer-context. This captures the set of currently active layers, which can later be reinstalled with funcall-with-layer-context and apply-with-layer-context.
      
      + Added the metaclasses layered-function and layered-method. However, they should better not be used directly. For programmatically creating layered functions and methods, better use the functions ensure-layered-function and ensure-layered-method.
      
      + Added the readers layered-function-definer, layered-function-argument-precedence-order, layered-function-lambda-list.
      
      + Added the readers layered-method-lambda-list, layered-method-specializers, layered-method-layer.
      
      + Added the readers partial-class-defining-classes, partial-class-defining-metaclass and the class partial-object, which is the default superclass for partial classes.
      
      + Added the readers slot-definition-layered-readers and slot-definition-layered-writers.
      
      + You can now specify an :in-layer option in slot specifiers. This means that a slot within a define-layered-class form can be declared to be in a different layer than the respective class itself. This allows, for example, to group slots of different layers in the same define-layered-class form.
      
      + Layers and layered functions can now also have uninterned symbols as names. This enables a form of anonymous layers and anonymous layered functions when gensym is used to create names for them.
      
      + Added the function ensure-layer for programmatically creating layers.
      
      --- Internal changes, which are not necessarily visible ---
      
      + If someone tries to define default initargs for singleton classes or layers, ContextL emits a warning. The error handling is improved for the case when the :allocation for a singleton or layer-specific slot is set to something else than :class.
      
      + Some of the :in-layer keyword parameters to internal functions have previously taken lists of layers for technical reasons. This is not the case anymore.
      
      + Changed the handling of the :defining-metaclass option for partial classes.
      
      + Layered direct slot definition metaobjects don't take :layered-reader, :layered-writer and :layered-accessor initargs anymore, but rather :layered-readers and :layered-writers, which is closer to how the CLOS MOP works as well.
      
      + Added methods for print-object for the major classes and metaclasses, such that, for example, debug output now prints more nicely.
      
      darcs-hash:592a90c3f26522c79fcebd6c89449ae62c44dd41
      2619daeb
  6. Oct 19, 2005
  7. Sep 10, 2005
  8. Aug 22, 2005