Closer Project.
Recommended libraries: Closer to MOP - ContextL - Filtered Functions
  • Main
  • History
  • Feature Tests
  • Closer to MOP
  • ContextL
  • Filtered Functions
  • AspectL
  • Mailing Lists
  • Repositories
  •   AspectL.
    NOTE: AspectL is deprecated, because the pointcut functionality of AspectL does not make a lot of sense in Common Lisp, and the support for dynamically scoped generic functions has been replaced with much better mechanisms in ContextL.

    AspectL is a library that provides some experimental aspect-oriented extensions for Common Lisp / CLOS. See an overview for a description of its functionality.

    New in version 0.75.0:
    • New version number based on semantic versioning.
    • Added support for Allegro Common Lisp 8.2 & 9.0, and LispWorks 6.1.

    Version 0.74 of AspectL is now available. The major news for 0.7 were as follows:
    • AspectL is now part of the Closer Project. This means that it takes advantage of the Closer to MOP compatibility layer, so that it runs on more Common Lisp implementations than ever before.
    • Some of the functionality was previously ported from AspectL to ContextL, mostly because it is not genuine aspect-oriented functionality. Those parts are now removed from AspectL implementation-wise in order to avoid code duplication. Instead, AspectL imports that functionality from ContextL, and exports it again for compatibility reasons. Existing AspectL code should mostly work as before.
    • Likewise, the CLOS MOP wrappers are completely removed because Closer to MOP supports compatibility across different CLOS MOP implementations much better.
    • Finally, the package structure is much simplified. Instead of placing every functionality in its own package, there is now the (previously already available) ASPECTL package from which everything can be imported. The previous scheme was too complicated and offered no obvious advantages.

    Currently, the following Common Lisp implementations are supported:
    • Allegro Common Lisp 10.0 Express Edition
    • Armed Bear Common Lisp 1.3.3
    • CLisp 2.49
    • Clozure Common Lisp 1.11
    • CMU Common Lisp 21a
    • Embeddable Common Lisp 16.0.0
    • LispWorks 6.1.1 Personal Edition
    • LispWorks 7.0.0 Hobbyist Edition
    • Steel Bank Common Lisp 1.3.2
    All tests have been performed on Mac OS X 10.11.3

    The following implementations were supported in the past:
    • Allegro Common Lisp 7.0, 8.0 - 8.2 Enterprise Editions
    • Allegro Common Lisp 9.0 Express Edition
    • Armed Bear Common Lisp 1.1.1, 1.2.1, 1.3.0, 1.3.1, 1.3.2
    • CLisp from 2.35 onward
    • Clozure Common Lisp 1.2 - 1.10
    • CMU Common Lisp 19c-f, 20a-f
    • Embeddable Common Lisp 9.12.3, 10.3.1, 10.4.1, 11.1.1, 12.2.1, 12.12.1, 15.2.21, 15.3.7
    • LispWorks 4.3 & 4.4, Personal and Professional Editions
    • LispWorks 5.0.1, 5.0.2, 5.1.0 - 5.1.2 Personal and Professional Editions
    • LispWorks 6.0, 6.0.1 Enterprise Editions
    • LispWorks 6.1, 6.1.1, Professional Editions
    • Macintosh Common Lisp 5.1, 5.2.1
    • OpenMCL 1.0
    • Scieneer Common Lisp 1.3.9
    • Steel Bank Common Lisp from 0.9.16 onward (except version 1.0.0)
    The respective code conditionalizations are still in the source files, so there is a good chance that they still work, especially for current or newer versions. However, there is no garantuee that this is the case, and active work for these implementations is currently on hold.

    Allegro Common Lisp 7.0 has the limitation that defmethod does not accept more than one qualifier. This means that the :override qualifier of special-method-combination can only be used for primary methods. This has been fixed in Allegro Common Lisp 8.0. That version supports the full functionality of AspectL.

    Special generic functions do not work on CMU Common Lisp, and Macintosh Common Lisp since they currently don't implement the generic function invocation protocol as specified in The Art of the Metaobject Protocol.

    For release notes of versions before 0.7 please see the release notes at the old AspectL homepage.
    Powered by LML!
      (c) 2005-2016 Pascal Costanza. Original site design by Antipop.