<div dir="ltr"><div>Hi Esteban,<br>primitiveFFIIntegerAtPut can't operate on 64 int in a 32 bits vm as it is now.<br></div>I'll commit a fix.<br></div><div class="gmail_extra"><br><div class="gmail_quote">2017-01-05 9:59 GMT+01:00 Esteban Lorenzano <span dir="ltr"><<a href="mailto:estebanlm@gmail.com" target="_blank">estebanlm@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi,<br>
<br>
I found that this change:<br>
<br>
unsignedLongLongAt: byteOffset<br>
        "Answer a 64-bit integer in Smalltalk order (little-endian)."<br>
        ^self integerAt: byteOffset size: 8 signed: false<br>
<br>
unsignedLongLongAt: byteOffset put: value<br>
        "I store 64-bit integers in Smalltalk (little-endian) order."<br>
        ^self integerAt: byteOffset put: value size: 8 signed: false<br>
<br>
… which makes sense at fist sight does not work at least for me. In 32bits scenario, this test will fail:<br>
<br>
 { -9223372036854775808. -9223372036854775807. <a href="tel:-2147483649" value="+12147483649">-2147483649</a>. -<a href="tel:2147483648" value="+12147483648">2147483648</a>. -<a href="tel:2147483647" value="+12147483647">2147483647</a>. -32769. -32768. -32767. -129. -128. -127. 0. 126. 127. 128. 254. 255. 256. 32766. 32767. 32768. 65534. 65535. 65536. 2147483646. 2147483647. 2147483648. 9223372036854775806. 9223372036854775807 } do: [ :int |<br>
                |ref|<br>
                ref := ByteArray new: 8.<br>
                ref signedLongLongAt: 1 put: int.<br>
                self assert: (ref signedLongLongAt: 1) = int ]<br>
<br>
can you confirm it?<br>
<br>
cheers,<br>
Esteban</blockquote></div><br></div>