lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Dirk Laurie <> writes:

> On Tue, Jun 14, 2011 at 06:05:17PM +0200, Florian Weimer wrote:
>> * Xavier Wang:
>> > in beta:
>> | The length of a table t is only defined if the table is a
>> | *sequence*, that is, all its numeric keys comprise the set *{1..n}*
>> | for some integer *n*. In that case, *n* is its length.
>> So it is no longer advisable to store something in t[0] if you want to
>> use #t?  Would it be possible to change that to "positive numeric
>> keys", at least?
> The present implementation makes #t well-defined and equal to n if all 
> its positive integer keys comprise the set {1..n}.  That would not be
> a problem.

You are using "present implementation" and "well-defined" in a
nonsensical combination.  It's like trying to have your cake recipe and
eat it too.  You can change a definition without changing the
implementation (by changing the scope of undefined behavior), and you
can change the implementation's behavior without changing the definition
(by changing undefined behavior to a different undefined behavior).

David Kastrup