> On 6 Sep 2018, at 23:35, Petr Fischer via Pharo-users > <pharo-users@lists.pharo.org> wrote: > > > From: Petr Fischer <petr.fisc...@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