2 ms·
Redefining things are generally a no-no, especially top level things. Knowing what things are and where they are makes things much easier to implement. For inl
by bjoli 8y ago
Redefining things are generally a no-no, especially top level things. Knowing what things are and where they are makes things much easier to implement. For inline caches it is much better if you don't redefine things, which applies to JITs.
I remember reading that Mike Pall said about pypy that most of the optimizations he did for luajit were possible for python, but just a lot more work.
Using mutation is a really good way to make most scheme implementations run slowly, since mutation is generally avoided, and thus most flow analysis is spent on checking recursion. A while-loop using set! is generally a lot slower than a recursive named let loop.
Flow analysis is simply easier without mutation, even though it might not look easier for the person reading the code.