[Vm-dev] primitiveTranslateStringWithTable

Florin Mateoc florin.mateoc at gmail.com
Wed Apr 21 19:53:46 UTC 2021


Done
https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/561

On Wed, Apr 21, 2021 at 3:02 PM Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com> wrote:

>
> Florin, would you mind opening an issue here?
> https://github.com/OpenSmalltalk/opensmalltalk-vm/issues
>
> Le mer. 21 avr. 2021 à 19:59, Florin Mateoc <florin.mateoc at gmail.com> a
> écrit :
> >
> >
> > Yes, you are most likely getting the errorNoModification only because of
> the primitive fallback code
> >
> > On Wed, Apr 21, 2021 at 1:52 PM Nicolas Cellier <
> nicolas.cellier.aka.nice at gmail.com> wrote:
> >>
> >>
> >> Hmm OK,
> >> on a recently recompiled spur 64bits VM I've got errorNoModification,
> >> maybe because the optional primitive is missing?
> >> On 32 bits spur VM though, I get the behavior that you described.
> >>
> >> Le mer. 21 avr. 2021 à 14:54, Florin Mateoc <florin.mateoc at gmail.com>
> a écrit :
> >> >
> >> >
> >> > Hi Nicolas,
> >> >
> >> > I did try it. After making sure a string was not interned, ( "Symbol
> findInterned: 'test123'" return nil ), I did
> >> >
> >> > | s | s := #TEST123.
> >> > s translateToLowercase.
> >> > Symbol findInterned: s
> >> >
> >> > and the resulting s is a Symbol and it is not interned
> >> >
> >> > Florin
> >> >
> >> > On Wed, Apr 21, 2021 at 2:06 AM Nicolas Cellier <
> nicolas.cellier.aka.nice at gmail.com> wrote:
> >> >>
> >> >>
> >> >> Hi Florin,
> >> >> did you try it? It should fail if passing a literal
> (ModificationForbidden).
> >> >> I see that it's only ever sent to copy asString, for case translation
> >> >> or converting lineEndings...
> >> >>
> >> >> Le mer. 21 avr. 2021 à 01:17, Florin Mateoc <florin.mateoc at gmail.com>
> a écrit :
> >> >> >
> >> >> >
> >> >> > Hi,
> >> >> >
> >> >> > While looking at some of the more exotic primitives, I stumbled
> upon this little gem.
> >> >> > I think it's bad enough that it modifies strings in place (some of
> those could be method literals), but it even modifies symbols in place,
> without adding them to the symbol table.
> >> >> >
> >> >> > I would say this is a bug, I don't think symbols should be
> modified in place (other than by the #intern: method), but this does not
> look unintentional - apparently ByteSymbol class >>
> #translate:from:to:table: was added specifically to make the primitive work
> on symbols too.
> >> >> >
> >> >> > Does anybody have any insight into this, is this functionality
> (modifying symbols in place) used anywhere?
> >> >> >
> >> >> > Thank you,
> >> >> > Florin
> >> >> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20210421/ab2e1ec9/attachment.html>


More information about the Vm-dev mailing list