Although not totally necessary, I think it would be useful for this post to include some information about low-level memory concepts. Although the Lua VM handles all of this for you, at the end of the day, you are still controlling this memory.
I would suggest talking about stack, heap and how local, global and dynamic allocations work in that context. Without that kind of knowledge, I feel as though the term “memory leak” and similar can be confusing and possibly misleading. It is important for people coming to Lua from a C/C++ background (like myself) to understand that they have lost some of the control they are used to, and can’t simply find some places they forgot to de-allocate to reduce memory use.
Also, I think an example of a memory leak and how to spot one would be very helpful for anybody stumbling upon this looking to combat high memory usage in a game. Maybe show a working example and how you would go about fixing it.
Finally, a more in-depth explanation of strong and weak references would be good. At the moment, somebody coming on the thread to find out about that would be at a loss. What do the terms mean? How do they affect GC? People coming for a beginner explanation would like to find out.