From: Alexandre Ferrieux on
On May 19, 9:25 pm, Alexandre Ferrieux <alexandre.ferri...(a)gmail.com>
wrote:
> On 19 mai, 13:58, "MartinLemburg(a)Siemens-PLM"
>
> <martin.lemburg.siemens-...(a)gmx.net> wrote:
> > Hi Miguel,
>
> > why this is a bug?
> > tcl shimmers "always"!
>
> Because shimmering is only an aspect of underlying data (the internal
> rep), while the semantics of Tcl values is strictly defined by their
> (extended UTF8) string representation.
>
> So yes, shimmering is allowed, but it does not have the right to
> discard the string rep !
> Only a direct change to the value (like [dict set], [incr], [lappend])
> can do that. In that case the internal rep is updated and the string
> rep discarded; later on a new string rep may be requested and
> computed. That's the essence of the Tcl_Obj internal representation
> cache, which by design always respects EIAS.

To be more precise, what happen(ed) here is that a pure-list (no
string rep) was going through the list->dict shortcut without special
care for the loss of information of duplicate keys. This was fixed in
the 8.6 branch by Donal on 2010-02-24, by forcing the computation of
the whole list's string rep as soon as one duplicate key was
encountered. A backport may be indicated if a 8.5.9 is due.

-Alex
From: Alexandre Ferrieux on
On May 19, 11:25 pm, Alexandre Ferrieux <alexandre.ferri...(a)gmail.com>
wrote:
> On May 19, 9:25 pm, Alexandre Ferrieux <alexandre.ferri...(a)gmail.com>
> wrote:
>
>
>
>
>
> > On 19 mai, 13:58, "MartinLemburg(a)Siemens-PLM"
>
> > <martin.lemburg.siemens-...(a)gmx.net> wrote:
> > > Hi Miguel,
>
> > > why this is a bug?
> > > tcl shimmers "always"!
>
> > Because shimmering is only an aspect of underlying data (the internal
> > rep), while the semantics of Tcl values is strictly defined by their
> > (extended UTF8) string representation.
>
> > So yes, shimmering is allowed, but it does not have the right to
> > discard the string rep !
> > Only a direct change to the value (like [dict set], [incr], [lappend])
> > can do that. In that case the internal rep is updated and the string
> > rep discarded; later on a new string rep may be requested and
> > computed. That's the essence of the Tcl_Obj internal representation
> > cache, which by design always respects EIAS.
>
> To be more precise, what happen(ed) here is that a pure-list (no
> string rep) was going through the list->dict shortcut without special
> care for the loss of information of duplicate keys. This was fixed in
> the 8.6 branch by Donal on 2010-02-24, by forcing the computation of
> the whole list's string rep as soon as one duplicate key was
> encountered. A backport may be indicated if a 8.5.9 is due.
>
> -Alex

Backport done.

-Alex
From: Bruce on
Bruce wrote:
>> some incorrect stuff....

please ignore my post - i was thinking about the shimmering since
a dict command was used, not the missign/invlaidated string rep
tha should have remained - please read Alex's msgs for correct
info

Sorry,
bruce