On 10/31/2015 11:35 PM, Michel Fortin wrote:
I think it'd be more important to talk about auto-nulling weak
references. That's a general concept that is necessary if you want
reference counting to be useful and safe at the same time.
Agreed. We need to put weak pointers in the initial DIP and carry them through.
Regarding opInc/opDec, here are some rules that the compiler may use:
* Both are callable with an unsigned integer, 1 by default
* opInc(n) followed by opDec(n) against the same object, with no call to isUniquelyReferenced in between, may be removed
* opInc(n1) followed by opInc(n2) against the same object may be replaced with opInc(n1 + n2)
* opDec(n1) followed by opDec(n2) against the same object may be replaced with opDec(n1 + n2)
I'm trying to formalize a bit what removals and fusing the compiler should be allowed.