3 ms·
The whole newLISP semantics (everything dynamic, no closures) serves for it to be one of the fastest pure interpreters out there. IIRC it is even significantly
by dfox 10y ago
The whole newLISP semantics (everything dynamic, no closures) serves for it to be one of the fastest pure interpreters out there. IIRC it is even significantly faster than CPython (on microbenchmarks).
The reason for that lies in the fact that newLISP's interpreter does not have to do that much of pointer chasing as other interpreters which implement some kind of lexical scoping. In dfsch I found out that about 80% of time is spent in symbol-lookup related code and had to resort to some ugly tricks (inlining constant references in AST, microoptimalizations in lookup code...) to get it's performance to be somewhere between CPython and newLISP.