On Sat, May 9, 2015 at 10:51 AM, Nick Wellnhofer <[email protected]> wrote:

> I merged the branch as-is. Let's make further modifications in a new commit.

Excellent, thanks for the high-volume of work!

As can be expected when there's this much churn, something's gone a little
screwy. :)  Final methods now alias to imaginary implementing functions.

Say that To_Host has a concrete implementation in Obj, and that we declare
Class final.

Old and correct:

    #define CFISH_Class_To_Host(self) \
        CFISH_Obj_To_Host_IMP((cfish_Obj*)self)

New and problematic:

    #define CFISH_Class_To_Host(self) \
        CFISH_Class_To_Host_IMP((cfish_Obj*)self)

I was able to put in a stopgap by only allowing the final-method optimization
when the method is fresh.

But all this would be a lot easier if we eliminate inheritance and limit
ourselves to interface polymorphism. :)

Marvin Humphrey

Reply via email to