Funny Floats [WAS OpenSmalltalk current on aarch64]

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

Funny Floats [WAS OpenSmalltalk current on aarch64]

KenDickey
 
Greetings,

OK. So current VM on aarch64.  I have an older VM in which floats work
fine (same machine).

I am doing diffs like:
   diff -r {kens-,oscog}vm/platforms/Cross/plugins/FloatMathPlugin
   diff -r {kens-,oscog}vm/platforms/unix/plugins/FloatMathPlugin
   diff -r {kens-,oscog}vm/platforms/Cross/vm

but not finding differences in float calculations.

Any hints on where to look for "1.0 = 1.1  --> true" ?? [Same w Squeak
or Cuis]

Thanks much,
-KenD



-KenD
Reply | Threaded
Open this post in threaded view
|

Re: Funny Floats [WAS OpenSmalltalk current on aarch64]

Christian Kellermann
 
* [hidden email] <[hidden email]> [191206 17:33]:

>
> Greetings,
>
> OK. So current VM on aarch64.  I have an older VM in which floats work fine
> (same machine).
>
> I am doing diffs like:
>   diff -r {kens-,oscog}vm/platforms/Cross/plugins/FloatMathPlugin
>   diff -r {kens-,oscog}vm/platforms/unix/plugins/FloatMathPlugin
>   diff -r {kens-,oscog}vm/platforms/Cross/vm
>
> but not finding differences in float calculations.
>
> Any hints on where to look for "1.0 = 1.1  --> true" ?? [Same w Squeak or
> Cuis]

Have you tried switching off compiler optimisations? I recall running
into similar problems with a newer gcc and turning off optimisations
has been a workaround.

--
May you be peaceful, may you live in safety, may you be free from
suffering, and may you live with ease.
Reply | Threaded
Open this post in threaded view
|

Re: Funny Floats [WAS OpenSmalltalk current on aarch64]

Tobias Pape
 

> On 06.12.2019, at 17:46, Christian Kellermann <[hidden email]> wrote:
>
>
> * [hidden email] <[hidden email]> [191206 17:33]:
>>
>> Greetings,
>>
>> OK. So current VM on aarch64.  I have an older VM in which floats work fine
>> (same machine).
>>
>> I am doing diffs like:
>>  diff -r {kens-,oscog}vm/platforms/Cross/plugins/FloatMathPlugin
>>  diff -r {kens-,oscog}vm/platforms/unix/plugins/FloatMathPlugin
>>  diff -r {kens-,oscog}vm/platforms/Cross/vm
>>
>> but not finding differences in float calculations.
>>
>> Any hints on where to look for "1.0 = 1.1  --> true" ?? [Same w Squeak or
>> Cuis]
>
> Have you tried switching off compiler optimisations? I recall running
> into similar problems with a newer gcc and turning off optimisations
> has been a workaround.

I recall such a thing from another thread.
Apparently using clang also helped, IIRC

Best regards
        -Tobias


Reply | Threaded
Open this post in threaded view
|

Re: Funny Floats [WAS OpenSmalltalk current on aarch64]

Nicolas Cellier
 
This is because legacy fdlibm relies on pointer aliasing which is forbidden for some times now (it prevents efficient compiler optimization)
It was in our plans to integrate and maintain that replacement in opensmalltalk until we find a better library (both supported and doing the right thing)

Le ven. 6 déc. 2019 à 18:22, Tobias Pape <[hidden email]> a écrit :
 

> On 06.12.2019, at 17:46, Christian Kellermann <[hidden email]> wrote:
>
>
> * [hidden email] <[hidden email]> [191206 17:33]:
>>
>> Greetings,
>>
>> OK. So current VM on aarch64.  I have an older VM in which floats work fine
>> (same machine).
>>
>> I am doing diffs like:
>>  diff -r {kens-,oscog}vm/platforms/Cross/plugins/FloatMathPlugin
>>  diff -r {kens-,oscog}vm/platforms/unix/plugins/FloatMathPlugin
>>  diff -r {kens-,oscog}vm/platforms/Cross/vm
>>
>> but not finding differences in float calculations.
>>
>> Any hints on where to look for "1.0 = 1.1  --> true" ?? [Same w Squeak or
>> Cuis]
>
> Have you tried switching off compiler optimisations? I recall running
> into similar problems with a newer gcc and turning off optimisations
> has been a workaround.

I recall such a thing from another thread.
Apparently using clang also helped, IIRC

Best regards
        -Tobias