I am having a little trouble understanding how adding instance
variables to Object is supposed to work.  Where would an immediate
object like a SmallInteger *put* such variables?  What does it even
*mean* for 0 and 1 to have instance variables?  Do you really want
to give an extra word of storage to *every* object in your system,
or to just some, but potentially of any kind?

The usual technique is to use something like a WeakIdentityKeyDictionary.

On Mon, 14 Jan 2019 at 13:54, Petr Fischer via Pharo-users <
[email protected]> wrote:

> It looks like I can't simply add statefull trait to the Object like this:
>
> ProtoObject subclass: #Object
>         uses: TMyTrait
>         instanceVariableNames: ''
>         classVariableNames: 'DependentsFields'
>         package: 'Kernel-Objects'
>
> After this, Pharo 7 VM goes to 100% of CPU usage, several GB of RAM usage
> and then crash.
>
> Or... what do you mean by "talents"? I found also this:
> https://github.com/tesonep/pharo-talents
>
> Thanks, pf
>
>
> > Talents with statefull traits will help you
> >
> > пт, 7 сент. 2018 г., 9:08 Marcus Denker <[email protected]>:
> >
> > >
> > >
> > > On 6 Sep 2018, at 23:35, Petr Fischer via Pharo-users <
> > > [email protected]> wrote:
> > >
> > >
> > > *From: *Petr Fischer <[email protected]>
> > > *Subject: **adding instance variables (data) to the Object class*
> > > *Date: *6 September 2018 at 23:35:26 CEST
> > > *To: *[email protected]
> > >
> > >
> > > Hello! Weird question: why I can't add instance variables to the Object
> > > class (for example "oid" or something else)? Is it due to some internal
> > > (and different) VM "class layouts"?
> > >
> > > Or - can I inject my own information to all existing objects (any
> class)?
> > >
> > >
> > > Behavior is a subclass of Object, too. So that means that you would
> add a
> > > ivar to all the classes, but for the VM an object can only be a class
> that
> > > has three ivars, and those
> > > are accessed by offset. So if you add an ivar, you shift the offset —>
> > > problem.
> > >
> > > As for “I want to add object specific state”: it would be nice to add
> an
> > > easy to use (and efficient) mechanism to do it.
> > >
> > > Marcus
> > >
>
>

Reply via email to