> On 26 Apr 2018, at 09:28, Guillermo Polito <guillermopol...@gmail.com> wrote: > > Hi, > > It looks you got bit by this issue: > > https://pharo.fogbugz.com/f/cases/21519/RemoveFromSystem-does-not-work-well-with-Undeclareds > > It's not particular to Epicea. There should be a better management of > Undeclareds in general in all Pharo. >
It can be fixed by moving the binding to undeclared in #removeFromSystem: This is done by adding Undeclared declare: self name asSymbol from: Smalltalk globals. before the "forgetClass: self logged:" line. What we need to do in addition: Only do that when the class is referenced. #isUsedClass: does that, but it does integrate over all methods in the system. (I sometimes wonder if we should not late-bind accesses to globals, that is, just compile them as message sends to the environment). Marcus