Remix.run Logo
maplant 3 hours ago

This is called a method based JIT, and is generally the more common approach to JIT compilation. Tracing JIT is a deliberate design choice that is quite different from method based JITs

pansa2 2 hours ago | parent | next [-]

IIRC Julia's is a particularly simple method-based JIT for a dynamically-typed language.

I'm not sure exactly how it differs from most JavaScript JITs, but I believe it just compiles each method once for each set of function argument types - for example, it doesn't try to dynamically determine the types of local variables.

wbpaelias an hour ago | parent [-]

I think the compiler figures that if a new method comes up, it’ll just compile that when it needs to.

wbpaelias an hour ago | parent | prev [-]

That makes sense. Why exactly would python need a tracing JIT instead of a method one though? It seems like either could work.