[Newbies] Problem filing out change set

Yoshiki Ohshima yoshiki at vpri.org
Fri Oct 17 22:46:47 UTC 2008

> But, in trying to decipher the error message, I thought it might be referring to the new constant. I'm still mystified
> as to what the error message means, or what it refers to, or why I got it. Perhaps, as Yoshiki suggests, it's a bug.
> (The image which I'm using is 3.9-final-7067.)

  Perhaps?  It is a bug, and that is nasty enough to confuse a newbie.
In a sense, the logic bug has been around since 2001, when
DeepCopier>>checkClass: as written in a way that provides a short-term
fulfilment with some assumptions.  Then, the casual addition of method
properties at 3.9 broke the assumptions and now you see the problem.

> What fixed it? I recompiled Float, and then reinitialized it. Now I can file out the new change set without getting the
> error message. But, being a newbie, I don't know why this fixed it (since it was recompiled when I first added the new
> class constant, and I had also reinitialized the Float class after that). And I still have no idea what the error
> message means. And looking at the comments in DeepCopier didn't help a bit.

  Heh, you also need to look at the code^^;

  If you add Phi to Float, and open the change sorter and select
Float, you see a message that says: "Class definition was changed."

  Then, if you look at the code ChangeSet>>fileOutClassDefinition:on:,
  it has a block:

  (self atClass: class includes: #change) ifTrue: [...]

the check is wrong. if the change is only the class variables, it
shouldn't be true.

  So, you probably created a new change by entering a new project or
such.  And the change doesn't know about the class var addition.
Then, it wouldn't complain.

-- Yoshiki

More information about the Beginners mailing list