wanted: compute-slot-value-using-class-form or equivalent MOP extension

Bug #520877 reported by Attila Lendvai on 2010-02-12
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Wishlist
Unassigned

Bug Description

As briefly discussed on SBCL10, with a relatively simple extension it could be possible to avoid degrading the performance of slot-value when a custom SVUC is defined.

The idea is to have a MOP extension, a generic method called something like COMPUTE-SLOT-VALUE-USING-CLASS-FORM, that user libraries could customize to build the SVUC body. Using the returned form the current optimizations could continue doing what they are doing currently.

This would mean a 10-fold speed-up in some of our customizations, mostly due to not circumventing the current MAKE-INSTANCE optimizations.

Somewhat related is the problem of merging two metaclasses, e.g. merging persistent-class and computed-class... even without optimizations in the picture, it requires a similar thing: the two SVUC bodies, the lisp forms themselves, coming from two different libraries need to be merged by hand. We do that by using an ad-hoc simple protocol provided by the computed-class library. This protocol is a simple DEFUN that returns the computed-class's SVUC with extra stuff optionally inserted at certain points in the SVUC body.

Tags: pcl Edit Tag help
tags: added: pcl
description: updated
Changed in sbcl:
status: New → Confirmed
importance: Undecided → Wishlist
summary: - extend CLOS MOP with a compute-slot-value-using-class-form
+ wanted: compute-slot-value-using-class-form or equivalent MOP extension
Attila Lendvai (attila-lendvai) wrote :

maybe this could even be turned into a CDR (http://cdr.eurolisp.org/) once the implementation is settled in sbcl.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers