HN user

fsfod

84 karma
Posts0
Comments48
View on HN
No posts found.

I think it was more the extra layers of indirection added to function environment\effectively global variable access added in 5.2 .

The removal of scanning for changed userdata finalizer meta method in 5.2 is just a commonsense fix for bad design that made GC atomic phase run time, thats not incremental scale up with the number of GC userdata objects alive no matter if they have a finalizer or not.

I think they just swapped out LuaJIT's modified built-it dlmalloc[1] with some standard allocator. Then just set some turning values of the allocator to make to more eager to return pages with no allocations left to the OS. LuaJIT has always had pluggable allocator system you can set at state construction time[2], it did have a restriction you could only use the built-it allocator for 64 bit builds if you don't use the GC64 build option, but thats been default enabled for a while now.

[1] https://github.com/LuaJIT/LuaJIT/blob/v2.1/src/lj_alloc.c

[2] https://github.com/LuaJIT/LuaJIT/blob/707c12bf00dafdfd3899b1...

That binary search benchmark probably triggers a trace explosion in LuaJIT like I've found quicksort does. If your lucky the function gets trace blacklisted, if not it ends up hitting the default max number of traces and throwing away all the JIT'ed code and repeating the same thing over and over.

Its a book https://whenitsready.com/wowdiary/ originally sold as a kickstarter by one of the original Blizzard mappers made from notes they wrote while working on original wow. They did some AMAs[1][2] with other wow developers that sort of touch on some of the topics discussed here.

[1] https://www.reddit.com/r/wow/comments/9huows/ama_former_wow_...

[2] https://www.reddit.com/r/classicwow/comments/9fb2bo/john_sta...

At least AMD kept AVX-512 in there small Zen4C cores and just sacrificed some cache instead. I have to wonder if it was intel marketing that killed off working AVX-512 in consumer P-cores after they were released because the E-cores just become dead weight with AVX-512 enabled.