e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #opal
Zackio has quit [Ping timeout: 264 seconds]
Kilo`byte has quit [Ping timeout: 264 seconds]
Kilo`byte has joined #opal
DavidEGrayson has quit [Quit: Leaving.]
Zackio has joined #opal
e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #opal
e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #opal
e_dub has quit [Read error: Connection reset by peer]
e_dub has joined #opal
elia has joined #opal
e_dub has quit [Quit: ZZZzzz…]
<elia>
adambeynon_, saw the issue about module inclusion, any specific plan on how to solve it? bc that's what I was trying to solve in my experiments on the inheritance chain
<adambeynon_>
elia: its tricky. Firstly, every method body will need to keep a track of which module it is defined in
<adambeynon_>
then inside Opal.donate()
<adambeynon_>
we will have to do some comparisons
<adambeynon_>
if there is already a method defined with the same name
<adambeynon_>
we will have to keep a sorted list of the modules
e_dub has joined #opal
<adambeynon_>
so we know whether the module donating the method comes before or after the module which defined the method that already exists
<elia>
adambeynon_, my first idea was to have a class for each included module, and then rewrite __proto__
<elia>
but that would probably kill most jit optimizations
<elia>
an alternative would be to build a parallel inheritance chain and take it's leafs while donating methods
<elia>
and that's what I think it's better, that chain (probably on $$parent) would be the same used to find super
<elia>
not sure if I explained myself clearly
<adambeynon_>
elia: we can only rely on __proto__ in fairly modern browsers can’t we?
<adambeynon_>
elia: I think I see where you’re coming from
<elia>
adambeynon_, yes, but I think changing __proto__ would kill performance bc all jitted methods would be invalidated (but really not an expert)
<elia>
adambeynon_, __proto__ would be the purest anyway
<elia>
adambeynon_, sorry, just realized I misread what you wrote about __proto__, thought you were proposing it :-S
<adambeynon_>
elia: __proto__ would be the most ideal way to go, but it doesnt work on ie 6, 7, 8