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 <pharo-users@lists.pharo.org> 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 <marcus.denker@inria.fr>:
>
> >
> >
> > On 6 Sep 2018, at 23:35, Petr Fischer via Pharo-users <
> > pharo-users@lists.pharo.org> wrote:
> >
> >
> > *From: *Petr Fischer <petr.fischer@me.com>
> > *Subject: **adding instance variables (data) to the Object class*
> > *Date: *6 September 2018 at 23:35:26 CEST
> > *To: *pharo-users@lists.pharo.org
> >
> >
> > 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
> >