4 ms·
Python actually uses prototypal inheritance behind the scenes. Pypy is a tracing JIT though which is quite different. JSC and v8 compile a method at a time. Sp
by hajile 6y ago
Python actually uses prototypal inheritance behind the scenes.
Pypy is a tracing JIT though which is quite different. JSC and v8 compile a method at a time. Spidermonkey used to use tracing, but switched to methods too (though I think it still does limited tracing in some situations).
- jashmatthews 6y agoTraceMonkey was removed almost a decade ago https://bugzilla.mozilla.org/show_bug.cgi?id=698201 https://bugzilla.mozilla.org/show_bug.cgi?id=698201
- hajile 6y agoJaegerMonkey used both approaches. I don't know if IonMonkey still does though. https://hacks.mozilla.org/2010/03/improving-javascript-performance-with-jagermonkey/ https://hacks.mozilla.org/2010/03/improving-javascript-perfo... EDIT: It looks like a couple trace-like techniques are still used in IonMonkey (maybe the devs have some input there though). https://wiki.mozilla.org/IonMonkey/Overview#Modus_Operandi https://wiki.mozilla.org/IonMonkey/Overview#Modus_Operandi
- jashmatthews 6y agoThere’s no tracing in either JägerMonkey or IonMonkey. That’s just a confusing statement about the similarity of speculation guards and OSR exits to trace guards and side exits. For a while TraceMonkey was used as a higher tier above JägerMonkey which might be what you’re thinking of? I don’t work for Mozilla but spent a ton of time studying TraceMonkey for building my own tracing JIT.