[Newbies] Problem filing out change set
k1 at indra.com
Fri Oct 17 15:10:08 UTC 2008
Yoshiki, Burt --
Thanks for your comments. I seem to have fixed the problem, and no
longer get the error message.
Burt, there is no instance variable. Rather, I set up Phi as a class
variable, with phi as a class method (exactly as pi was set up). This is
one reason why the error message was so confusing. It refers to an
instance variable (which I never added- I referred to it as an instance
variable in my original email, which was incorrect. It's a class method,
the same as the other constants in Float.)
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
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.
Yoshiki Ohshima wrote:
> At Wed, 15 Oct 2008 00:23:25 -0600,
> Chris Kermiet wrote:
>> Hi, Folks --
>> I'm new to this list. I'm learning squeak by by creating some artsy objects which create designs according to
>> mathematical algorithms (based on Schillinger's Mathematical Basis of the Arts). It seemed like a good idea to add the
>> constant Phi to the Float class to keep from recalculating it. (Phi is the Golden Ratio -- the limit ratio of the
>> Fibonacci series.)
>> Now, when I try to file out my change set, I get the error message:
>> "An instance variable was added to class Float and it is not copied in the method veryDeepCopyWith:
>> Please rewrite it to handle all instance variables.
>> See DeepCopier class comment."
>> When I look at the DeepCopier class comment, I have no clue what I'm supposed to do. Does this new instance variable
>> need to be copied somewhere?
> In a general case, you are supposed to edit #veryDeepCopyWith:
> method for the object.
> But, the system is not supposed to let you add an instance variable
> to Float, and adding a class variable to Float shouldn't bring up the
> dialog... Ok, it seems to me that you found a bug in some versions of
> Squeak. I tried it in 3.9 and 3.10.2 and I could reproduce the
> problem. (It used to work fine in more stable versions.)
>> In addition, this error message seems unnecessarily vague. Please
>> rewrite "it" -- what does "it" refer to?
> I think you got a new browser window that shows a method. "It"
> refers to the method (#veryDeepCopyWith:) in the browser.
>> The instance
>> variable (phi), the Float class, the veryDeepCopyWith: method? Or the class variable (Phi)? When I look carefully at all
>> of these, none of them look like they should need rewriting.
>> Unless I should do (just a guess):
>> Float veryDeepCopyWith: phi
>> in a workspace. But I'd like to know why before I try it. Anyone have any ideas on this? Any help would be appreciated.
> What you can do is to ignore the dialog. I think you did get the
> change set on the disk. So the mission is actually accomplished.
> -- Yoshiki
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners