[Pharo-project] SIXX problem for ScaledDecimal

Serge Stinckwich serge.stinckwich at gmail.com
Thu May 19 04:47:47 EDT 2011


You need to talk with umezawa-sensei about your problem with SIXX

On Thu, May 19, 2011 at 3:42 PM, Dario Trussardi
<dario.trussardi at tiscali.it> wrote:
> Hi,
>
>        i found some problem into Gemstone relative to   SIXX support for manage ScaledDecimal instances.
>
>
>        I do some test into Pharo and i found error when i read the sixx declaration relative to ScaledDecimal :
>
>                <sixx.object sixx.id="0" sixx.type="ScaledDecimal" >123.456s3</sixx.object>
>
>
>        For solve this error i define the ScaledDecimal :
>
>                readSixxContentStringFrom: aStream
>
>
>                        | numerator scale |
>
>                        numerator := aStream upTo: $s .
>
>                        scale := aStream upToEnd.
>
>
>                        ^ self newFromNumber:  numerator asNumber scale: scale asNumber
>
>
> Now my doubt is relative to string size and performance.
>
> A)      If i write
>
>                <sixx.object sixx.id="0" sixx.type="ScaledDecimal" >123.456s3</sixx.object>
>
>
>        i have small string in sixx declartion but when create a ScaledDecimal from sixx the system execute the:
>
>                newFromNumber: aNumber scale: anInteger
>                        | aFraction |
>                        aFraction := aNumber asFraction.
>                        ^aFraction isFraction
>                        ifTrue: [self new setNumerator: aFraction numerator denominator: aFraction denominator scale: anInteger]
>                        ifFalse: [self new setNumerator: aFraction denominator: 1 scale: anInteger]
>
>
>        What is the performance relative to :                   aFraction := aFloat asFraction.    ????
>
>
>
>
> B)      The alternative is to write a sixx declaration with:
>
>                <sixx.object sixx.id="0" sixx.type="ScaledDecimal" >(8687443681197687/70368744177664s3)</sixx.object>
>
>
>        in this case the sixx string is big but the ScaledDecimal instance creation is direct:
>
>
>                readSixxContentStringFromA: aStream
>
>                        " with numerator and denominator "
>                | numerator denominator scale |
>                aStream next. "skip $("
>                numerator := aStream upTo: $/ .
>                denominator := aStream upTo: $s.
>                scale := aStream upTo: $).
>
>                ^ self new setNumerator:  numerator asNumber denominator: denominator asNumber scale:  scale asNumber
>
>
>
> Any pointers would be greatly appreciated !
>
>        Thanks,
>
>                Dario
>
>
>
>



-- 
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/




More information about the Pharo-dev mailing list