On Wed, Jun 19, 2013 at 7:36 PM, Marvin Humphrey <[email protected]> wrote: > On Wed, Jun 19, 2013 at 2:02 PM, Nick Wellnhofer <[email protected]> wrote: >> Yes, the possibility that the first definition of a method could be moved to >> a parent class is the main reason why we need all those offset variables. >> But it's just an implementation detail. It would be nice to find a better >> solution, but the current approach doesn't pose any serious problems. > > Part of what's driving this line of development is that I've personally spent > a good part of the last year studying language implementation and other > low-level computer science topics and I'm circling back to see if any > of the new techniques I've learned suggest any improvements.
It sounds like you two are much better informed in this area than I am. I tried to do some research to catch up. As/if Clownfish moves to having more of a runtime role (which I think it has to if truly non-fragile ABI is desired) it seems like it would have a lot in common with the Objective C runtimes. In particular, the Étoilé runtime seems to have a lot of the same features you are looking for. You're probably familiar, but I hadn't heard of it . It's mostly dead code at this point (with it's ideas incorporated into GNUstep), but short, well-described, and seemingly well-researched. http://www.jot.fm/issues/issue_2009_01/article4.pdf http://svn.gna.org/viewcvs/etoile/branches/libobjc_tr/code/ It also sounds like it mostly worked, and that the reason for its lack of adoption was mostly compatibility with legacy code: http://etoileos.com/news/archive/2009/09/10/1744/ http://queue.acm.org/detail.cfm?id=2331170 Have either of you looked at it? Are there things you want to support that it does not? --nate --nate
