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