What are immediate subclass and word variable subclass?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

What are immediate subclass and word variable subclass?

abergel
Hi!

I have stumbled on:

Float immediateSubclass: #SmallFloat64
        instanceVariableNames: ''
        classVariableNames: ''
        package: 'Kernel-Numbers’


Float variableWordSubclass: #BoxedFloat64
        instanceVariableNames: ''
        classVariableNames: ''
        package: 'Kernel-Numbers’


What are immediate subclass and word variable?

Cheers,
Alexandre

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





Reply | Threaded
Open this post in threaded view
|

Re: What are immediate subclass and word variable subclass?

Eliot Miranda-2
Hi Alexandre,

> On Feb 17, 2016, at 7:30 AM, Alexandre Bergel <[hidden email]> wrote:
>
> Hi!
>
> I have stumbled on:
>
> Float immediateSubclass: #SmallFloat64
>    instanceVariableNames: ''
>    classVariableNames: ''
>    package: 'Kernel-Numbers’
>
>
> Float variableWordSubclass: #BoxedFloat64
>    instanceVariableNames: ''
>    classVariableNames: ''
>    package: 'Kernel-Numbers’
>
>
> What are immediate subclass and word variable?

Immediates are objects that are stored in an object pointer using a tag to distinguish them from ordinary object pointers.  In v3 the only immediate is SmallInteger.  In 32-but spur there are SmallInteger and Character.  An implication of this is that in spur all Characters can be compared using #==.  In 64-bit Spur there is also SmallFloat64.  If a float's exponent is in the middle 8-bits of the 11-bit exponent range then it will be immediate.  If a float's exponent is outside of the middle 8-bits it will be boxed.

Objects on the heap are either pointers or bits.  For example instances of Point, Array, BlockClosure etc are pointer objects.  But Bitmap, ByteString, WideString etc are bits objects.  In v3 bits objects are either a sequence of bytes (ByteArray, ByteString, ByteSymbol etc) or 32-bit words (WideString, Float, Bitmap etc).  Spur supports byte, short, word and double-word bits objects even though currently only byte and word classes exist.  16-bit strings will be useful on Windows, for example.

HTH


> Cheers,
> Alexandre

_,,,^..^,,,_ (phone)