[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