[squeak-dev] [Vm-dev] VM Maker: VMMaker.oscog-eem.2606.mcz

Levente Uzonyi leves at caesar.elte.hu
Fri Dec 13 00:30:32 UTC 2019


Hi Eliot,

On Thu, 12 Dec 2019, Eliot Miranda wrote:

> Hi Levente,
>
>>> On Thu, 12 Dec 2019, Levente Uzonyi wrote:
>>> 
>>> Hi Eliot,
>>> 
>>>> On Thu, 12 Dec 2019, Eliot Miranda wrote:
>>>> 
>>>> Hi Chris,
>>>>>      On Dec 11, 2019, at 8:03 PM, Chris Muller <asqueaker at gmail.com> wrote:
>>>>
>>>>      Is this a fix we should want in the 5.3 release?
>>>> I do t think it affects the release.  This only affects builds that use a particular version of gcc on ARM64. As far as we’re aware, it doesn’t affect x86-64 builds.  But if anyone sees the issue in a current build they
>>>> should say so asap.
>>> 
>>> This seems to be the same bug described in this thread: http://forum.world.st/Primitive-40-asFloat-fails-for-me-tp5095689p5095908.html
>
>> On Dec 12, 2019, at 2:45 AM, Levente Uzonyi <leves at caesar.elte.hu> wrote:
>> 
>> And the point is that the bug causes issues on x86.
>
> Thanks!  Will fix asap and communicate with the board if this implies we need a different release candidate VM.

I just built a new 64-bit VM with gcc 8.3, and the floating point issue 
with #basicAt: seems fixed. I ran some tests in the image, and they all 
passed.

Levente

P.S.: there is a configuration issue with the new sndio sound plugin. The 
build script tries to build it on linux and fails.

>
>>> Levente
>>> 
>>>>
>>>>>      On Wed, Dec 11, 2019 at 2:09 PM <commits at source.squeak.org> wrote:
>>>>
>>>>      Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
>>>>      http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2606.mcz
>>>>
>>>>      ==================== Summary ====================
>>>>
>>>>      Name: VMMaker.oscog-eem.2606
>>>>      Author: eem
>>>>      Time: 11 December 2019, 12:08:45.007873 pm
>>>>      UUID: be1eac72-340a-4ed5-bfe7-6051597847a4
>>>>      Ancestors: VMMaker.oscog-eem.2605
>>>>
>>>>      Fix the "funny floats" issue with gcc et al.  Casting the address of an automatic long to an int * is no longer allowed.  Thanks to Pablo Tessone for the analysis and fix.
>>>>
>>>>      =============== Diff against VMMaker.oscog-eem.2605 ===============
>>>>
>>>>      Item was changed:
>>>>        ----- Method: Spur64BitMemoryManager>>fetchLong32:ofFloatObject: (in category 'object access') -----
>>>>        fetchLong32: fieldIndex ofFloatObject: oop
>>>>              "index by word size, and return a pointer as long as the word size"
>>>>
>>>>              | bits |
>>>>              (self isImmediateFloat: oop) ifFalse:
>>>>                      [^self fetchLong32: fieldIndex ofObject: oop].
>>>>              bits := self smallFloatBitsOf: oop.
>>>>      +       ^fieldIndex = 0
>>>>      +               ifTrue: [bits bitAnd: 16rFFFFFFFF]
>>>>      +               ifFalse: [bits >> 32]!
>>>>      -       ^self
>>>>      -               cCode: [(self cCoerceSimple: (self addressOf: bits) to: #'int *') at: fieldIndex]
>>>>      -               inSmalltalk:
>>>>      -                       [self flag: #endian.
>>>>      -                        fieldIndex = 0
>>>>      -                               ifTrue: [bits bitAnd: 16rFFFFFFFF]
>>>>      -                               ifFalse: [bits >> 32]]!
>>


More information about the Squeak-dev mailing list