On Mon, Nov 22, 2010 at 12:10 AM, Eliot Miranda <[email protected]>wrote:
> > > On Sun, Nov 21, 2010 at 2:59 PM, Mariano Martinez Peck < > [email protected]> wrote: > >> >> >> On Sun, Nov 21, 2010 at 11:55 PM, Schwab,Wilhelm K <[email protected] >> > 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. > ok...and how can I know this then? ;) > 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. > isn't that all the MAX possible instances??? If in my whole image, I never use the number 42, why would you count it? > But they're virtual objects so they don't take any space; only their > references take space. (IMO) > > Ok, at least we agree it cannot be zero. At least it is not clear from a normal developer that doesnt know anything about the VM. > > So you could implement > SmallInteger class>>instanceCount > ^self maxVal - self minVal + 1 > > SmallInteger class>>allInstances > ^self minVal to: self maxVal > > you 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: aBlock > > best > Eliot > >> >> >>> >>> Bill >>> >>> >>> ________________________________________ >>> From: [email protected] [ >>> [email protected]] On Behalf Of Mariano >>> Martinez Peck [[email protected]] >>> 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 >>> >>> >> >
