<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Hi Chris,<div dir="ltr"><br><blockquote type="cite">On Dec 11, 2019, at 8:03 PM, Chris Muller <asqueaker@gmail.com> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="ltr">Is this a fix we should want in the 5.3 release?</div></div></blockquote><div><br></div>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.<div><br><blockquote type="cite"><div dir="ltr"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Dec 11, 2019 at 2:09 PM <<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <br>
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2606.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2606.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-eem.2606<br>
Author: eem<br>
Time: 11 December 2019, 12:08:45.007873 pm<br>
UUID: be1eac72-340a-4ed5-bfe7-6051597847a4<br>
Ancestors: VMMaker.oscog-eem.2605<br>
<br>
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.<br>
<br>
=============== Diff against VMMaker.oscog-eem.2605 ===============<br>
<br>
Item was changed:<br>
  ----- Method: Spur64BitMemoryManager>>fetchLong32:ofFloatObject: (in category 'object access') -----<br>
  fetchLong32: fieldIndex ofFloatObject: oop<br>
        "index by word size, and return a pointer as long as the word size"<br>
<br>
        | bits |<br>
        (self isImmediateFloat: oop) ifFalse:<br>
                [^self fetchLong32: fieldIndex ofObject: oop].<br>
        bits := self smallFloatBitsOf: oop.<br>
+       ^fieldIndex = 0<br>
+               ifTrue: [bits bitAnd: 16rFFFFFFFF]<br>
+               ifFalse: [bits >> 32]!<br>
-       ^self<br>
-               cCode: [(self cCoerceSimple: (self addressOf: bits) to: #'int *') at: fieldIndex]<br>
-               inSmalltalk:<br>
-                       [self flag: #endian.<br>
-                        fieldIndex = 0<br>
-                               ifTrue: [bits bitAnd: 16rFFFFFFFF]<br>
-                               ifFalse: [bits >> 32]]!<br>
<br>
</blockquote></div>
<span></span><br></div></blockquote></div></body></html>