On 7 January 2018 at 06:19:18, Eliot Miranda (eliot.miranda@gmail.com) wrote:
Hi Ben,
On Sat, Jan 6, 2018 at 8:47 PM, Ben Coman <btc@openinworld.com> wrote:
With Linux 64 bit image��TestRunner running FLBinaryFileStreamSerializationTest produces error "PrimitiveFailed: primitive #basicIdentityHash in SmallFloat64 failed"I suspect the SmallFloat64 basicIdentityHash method is missing or using the wrong primitive number.�� Here's what happens in Squeak:1.0 class -> 1.0 identityHash hex -> ((1.0 class whichClassIncludesSelector: #identityHash) >> #identityHash) primitive SmallFloat64->'16r7F0000000000000'->171And primitive 171 is the primitiveImmediateAsInteger primitive that converts SmallIntegers to themselves, Characters to their integer codes, and SmallFloat64 to an integer representing their��bits. ��e.g.#(-0.0 0.0 -1.0 1.0) collect: [:n| n -> n identityHash hex -> (n identityHash bitAnd: 2 << 64 - 1) hex]{-0.0->'-16r1000000000000000'->'16r1F000000000000000' .�� 0.0->'16r0'->'16r0' .��-1.0->'-16r810000000000000'->'16r1F7F0000000000000' .�� 1.0->'16r7F0000000000000'->'16r7F0000000000000'}SmallFloat64>>identityHash"Answer an integer unique to the receiver."<primitive: 171>^self primitiveFailedHTHThe same error occurs evaluating...�� ��1.0 largeIdentityHashwhich works fine on 32-bit.Build information:��Pharo-7.0+alpha.build.409.sha.bb4eaaf976e3fb148b33b6d8759802 2b77329768 (64 Bit) CoInterpreter VMMaker.oscog-eem.2295�� Dec 21 2017StackToRegisterMappingCogit VMMaker.oscog-eem.2297 Dec 21 2017VM: 201712211450��Unix built on Dec 21 2017 14:53:19 Compiler: 4.8.4cheers -ben
--
_,,,^..^,,,_best,��Eliot