On Sat, Jun 8, 2013 at 5:48 AM, Nick Wellnhofer <[email protected]> wrote:
> On Jun 7, 2013, at 02:00 , Marvin Humphrey <[email protected]> wrote:
> Looking at the code in CFCPerlClass_method_bindings where we need the
> metadata from other parcels, it turns out that the same problem applies to
> "excluded" methods.

That makes sense.  Really, it could be anything that we put into the Perl
binding specification -- i.e. anything in
`$REPOS/perl/buildlib/Lucy/Build/Binding/*.pm`.

For instance, say that we inherited method documentation -- that would also be
lost.

The issue is that we generate the method binding spec programatically rather
than via a spec file.  It's more flexible, but introduces some complications.

I don't imagine we'll ultimately decide to do this, but we should at least
consider that installing those Lucy::Build::Binding::* modules would be one
path to solving this problem.

> I think the best place to store that information is in the Method objects.
> The bootstraping code in boot.c could add method aliases and exclusions like
> this:
>
>     VTable_Add_Host_Method_Alias(LUCY_OBJ, "Load", "_load");
>     VTable_Exclude_Host_Method(LUCY_HASH, "Store");

+1

Adding this information to the introspection data makes sense regardless of
how we solve the larger problem of preserving binding spec data.

> By the way, I'm really in favor of renaming Clownfish::VTable to
> Clownfish::Class.

+1

For previous discussion, see <http://markmail.org/message/bdxdrcyxgbum627g>,
near the end.

Marvin Humphrey

Reply via email to