Dear internals,
I'd like to discuss the concept of ownership in PHP, from the point of
view of a new interface UniqueInterface (or SplUniqueInterface or
something), which will throw a UniqueException if refcount > 1.
Use-case: Mutable objects that cannot be shared (without (deep) cloning).
Rational: Immutable objects are considered "easier to reason about"
and generally more safe, and as a way to avoid
spooky-action-at-a-distance. I argue that mutability is totally fine
as long as it's not *being shared*. Currently, there's no way to
enforce this in PHP, *but* PHP has a refcounting GC which could do
this. This would be a more performant alternative than to build lots
of immutable objects using $obj->whereSomething('bla') constructs.
Cons: If PHP switches to tracing GC, it will be unusable.
What do you think? Should I write it down as an RFC? Implementation
should be straight-forward, assuming refcount is manipulated at a
single place in the source.
Regards
Olle
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php