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.<div>
<br></div><div>The boot process in ECL is changed. It is simpler and now hopefully also easier to maintain, following this line:</div><div>- The class hierarchy is stored in a separate file: all classes together with their interdependencies and slot definitions.</div>
<div>- All classes are created together in boot.lsp</div><div>- All direct and effective slot definitions are now instances. Formerly they were lists at boot time and had to be fixed.</div><div><div></div></div><div>- 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.</div>
<div>- 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.</div>
<div><br></div><div>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.</div>
<div><br></div><div>This set of patches also solves the problem by which certain slot accessors would be replaced with direct calls to their standard-class specializations.</div><div><br></div><div>Juanjo</div><div><div>
<div>
<div><br></div>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a><br>
</div></div></div><div><br></div>