[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Deep __newindex on assignment?
- From: Javier Guerra <javier@...>
- Date: Tue, 22 Dec 2009 17:49:24 -0500
On Tue, Dec 22, 2009 at 5:38 PM, Alexander Gladysh <email@example.com> wrote:
> But I'm also looking for is a more formal one.
i think formally there's no difference between primitives 'value
based' types and 'reference based'
to me, it's more like this:
- values have type
- variables have no type
- variables reference values
- simple assignment and function parameters copy variables (that is,
references), not values
- there are immutable types (number, string, lightuserdata), and
mutable types (table, function, full userdata)
implementation detail: numbers and lightuserdatas are small enough to
reside in the variable themselves and are copied around; but since
they're immutable, it doesn't make any difference.
IOW, the 'by value vs. by reference' is only an implementation detail
and not a formal specification. the behaviour must conform to the
theoretical specification where every variable holds only a reference.