So after discussion the solution would be: - ClassBinding for instance side method literals and globals dictionary (instead of GlobalVariable) - MetaclassBinding for the last literal of class side methods. It will include proper comment about where it is used and how, with description of current trick
2017-09-13 16:45 GMT+02:00 Marcus Denker <marcus.den...@inria.fr>: > > > On 12 Sep 2017, at 17:33, Guillermo Polito <guillermopol...@gmail.com> > wrote: > > > > I don't know... I found the idea of having a Metaclass binding strange... > > > > I mean, > > - metaclasses are not stored in any name dictionary such as Smalltalk > > - nobody references them directly in source code but by their direct > classes > > > > The metaclass binding is there just for one thing really: methods need > an association to know their class in case they have to do a super send. > And transitively this is a compiler problem also. But anybody else accesses > metaclasses' bindings. > > > yes, we need it just for the last literal. > > We added the “if there is a method, get the binding from there” we adde as > else > we would compiler every class side method with a new Association instance, > which > wastes lots of space. > > Marcus >