[Pharo-project] is there an easy way to know the SmallInteger instances?

Mariano Martinez Peck marianopeck at gmail.com
Mon Nov 22 00:48:03 CET 2010


On Mon, Nov 22, 2010 at 12:10 AM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

>
>
> On Sun, Nov 21, 2010 at 2:59 PM, Mariano Martinez Peck <
> marianopeck at gmail.com> wrote:
>
>>
>>
>> On Sun, Nov 21, 2010 at 11:55 PM, Schwab,Wilhelm K <bschwab at 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.
>

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: pharo-project-bounces at lists.gforge.inria.fr [
>>> pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of Mariano
>>> Martinez Peck [marianopeck at 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
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20101122/1ac96151/attachment.htm>


More information about the Pharo-project mailing list