Indeed I will probably be going with a weak table to track "back references" myself, for all the reasons noted. I was just wondering if there was some way maybe to leverage the GC system to help do that more automatically. I don't want to alter the VM though.
I'll explain a bit about why I was thinking about this, in case anyone has suggestions.
I've been wondering if I could somehow automate publish/subscribe (observer) to make reactive programming a little easier. I only want to do it for some sets of objects. In my case, for keeping various view objects in sync with model objects. Basically, a way to automagically hook up the view objects to the model obejcts, or individual view properties to model properties, possibly with transformations (processing) in between. Such that when the model changes, the view changes. Normally this would involve the view (or view construction) code subscribing, and the model code knowing enough to publish changes. I wanted to avoid (or somehow automate) more of the hook up code, subscribing, maybe even publishing, to some extent. Probably not perfectly, but some kind of improvement.
I have read a bit about LuaGravity (reactive programming in Lua) but it requires an altered VM, I don't want to do that.
So, in that context, any suggestions? Some way to automate the hook ups or the actual update of objects referring to objects when the referred objects change? (Or their properties?)