On Sun, Nov 21, 2010 at 2:59 PM, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
On Sun, Nov 21, 2010 at 11:55 PM, Schwab,Wilhelm K <bschwab@anest.ufl.edu> wrote:
Mariano,
I see your point, but given the immediate object encoding tricks I'm not sure it's possible. �
:(�� It's a pity. Because most users should not be aware of this. This should be completly transparent for the developer.
�Would the class methods #minVal and #maxVal be of any use to you?
No :( Maybe it is better in this way: I want to know how many instances/temp var have a SmallInetger. This means, how many slots/words have a 1 in the last bit. This is what I understand by "Smallinteger instances".
That's the number of references to SmallInteger. �
If all those slots contain references to 0 then they're still referring to a single object. �The number of instances of SmallInteger is SmallInteger maxVal - SmallInteger minVal + 1, period. �
But they're virtual objects so they don't take any space; only their references take space. �(IMO)
So you could implementSmallInteger class>>instanceCount�� �^self maxVal - self minVal + 1SmallInteger class>>allInstances�� �^self minVal to: self maxValyou could implement the following but it's of academic interest only; it'll take a long time on a 64-bit implementation ;) �If you add this then you have to guard against it being invoked because shure as s**t someone will wonder why the system isn't doing anything when they ask some apparently reasonable question about instance counts...SmallInteger class>>allInstancesDo: aBlock�� �self minVal to: self maxVal do: aBlockbestEliot�
Bill
________________________________________
From: pharo-project-bounces@lists.gforge.inria.fr [pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Mariano Martinez Peck [marianopeck@gmail.com]
Sent: Sunday, November 21, 2010 4:41 PM
To: Pharo Development
Subject: [Pharo-project] is there an easy way to know the SmallInteger �instances?
If I do SmallInteger alIInstances I get an empty array, and of course, with SmallInteger instanceCount I get zero.
Now, I can understand that from the VM point of view, but for the final user, this should be polymorphic. For example, for instanceCount, I would like to know all the "variable slots" that has a 1 in the last bit.
Is this already possible? � if true, which message? � if not, should I hack in the vm and code a primitive that does this?
And the same for allInstances, if I can inspect �5, I should be also to inspect �SmallInteger allInstances, and SmallInteger allInstances first, etc....
thanks
Mariano