[gambit-list] Meroon
David St-Hilaire
sthilaid at iro.umontreal.ca
Tue Mar 2 16:48:27 EST 2010
Hey guys!
I just wanted to let you know that I also wrote an object system for
gambit. It's supporting multiple inheritance and a bunch of other
features. It's extensively described in my master's thesis, but the
document is written in French. I'm sure that with the help of google
translations, you proably be able to get most of the content. It also
contains benchmarks comparing my system to meroon, oops and clos (if I
remember correctly).
For a good usage example, you can refer to my Lode Runner implentation
that is based on it.
The thesis, the object system and the lode runner sources can all be
found in my github (user: sthilaid).
I'll send you the direct links when I get back home.
Cheers!
--
David
Le 2010-03-02 à 16:01, Christian Jaeger <chrjae at gmail.com> a écrit :
>> Thanks, Christian. I don't need multiple inheritance; I think it
>> generally is bad design anyway. Meroon is really fast and the most
>> sophisticated one I've seen, but I will check out Oops. I'm
>> writing a
>> scene graph and it'll be fun to run some benchmarks soon.
>
> The point of Oops is not to be faster than Meroon in the
> single-inheritance case! So doing those benchmarks probably won't make
> much sense.
>
> I've once written an object system in Perl (based on arrays instead of
> hashes, using integer constants as field names, for compile-time typo
> checking and "performance") and thought that single inheritance should
> suffice; only a couple years later I wanted to implement an object
> hierarchy with multiple implementations and realized that I needed
> multiple inheritance; I hacked around the object system and added the
> common classes ("interfaces") to the inheritance tree manually, and
> luckily Perl would still allow code in those common classes, but I was
> unable to add fields there. That project never became a success, and
> so it didn't matter so much, but I implemented a new object system
> layer for Perl later (there are so many of those in the meantime that
> it didn't really matter anymore whether I'd create another one),
> providing for multiple inheritance, and using the only implementation
> strategy there is for it on Perl, hashes; of course I would still use
> the old system for all existing classes, because the way objects were
> implemented (array access) would mean I'd have to change the syntax of
> all field accesses... Maybe what this taught me was that you can't
> foresee what you need and what not. (And that abstract syntax is a
> good thing.)
>
> I'm not claiming that you'll need MI (*), but you better be prepared
> to adapt your code once you do.
>
> Christian.
>
> (*) there *may* be alternatives
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
More information about the Gambit-list
mailing list