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 > > > > >
