[Ecls-list] MOP changes

Juan Jose Garcia-Ripoll juanjose.garciaripoll at gmail.com
Sun Oct 7 20:44:22 UTC 2012

I admit that all this is not 100% tested, but since Closer-MOP is not yet
updated, I believe I have the freedom to push the MOP stuff a bit further.
My goal is to make closer-ecl.lisp a two-line file, as in SBCL, and provide
a complete set of patches for that.

The boot process in ECL is changed. It is simpler and now hopefully also
easier to maintain, following this line:
- The class hierarchy is stored in a separate file: all classes together
with their interdependencies and slot definitions.
- All classes are created together in boot.lsp
- All direct and effective slot definitions are now instances. Formerly
they were lists at boot time and had to be fixed.
- All slot accessors are created shortly after boot.lsp, directly as
methods. No need for a second pass redefining accessors, which are all
generic functions, but this phase has yet to be optimized.
- slot-value and friends now include specializations for
standard/funcallable/structure classes. This relies on the restriction that
users who want to override slot-value-using-classes must do it with their
own metaclasses.

The idea is that ECL now has all classes almost from the very beginning and
there is no need for a "fixup" phase. All slot accessors are also now
generic functions, except for slot-definition-* This is a minor
technicality that I expect to fix soon. I also expect that further
optimizations be possible.

This set of patches also solves the problem by which certain slot accessors
would be replaced with direct calls to their standard-class specializations.


Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20121007/dc5eddee/attachment.html>

More information about the ecl-devel mailing list