I think "good grief" is the only polite response here...
> On 2021-06-16, at 4:47 PM, Ken Dickey <[hidden email]> wrote:
> 16r80000000 < 16r8000000000000000. "==> false "
> [Intel reports true]
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub, or unsubscribe.
That is indeed a great test case that might help narrow it down:
If you "debug into it" you should see that primitive 3 failed for SmallInteger, and it falls back to Integer's version of <. If it doesn't, then it's either the JIT incorrectly short-circuiting the comparison, or primitive 3 incorrectly succeeding.
If instead you do see the super send (as is the case on Intel), then it must be primitive primDigitCompare in LargeIntegers plugin.
> That is indeed a great test case that might help narrow it down:
> If you "debug into it" you should see that primitive 3 failed for
> SmallInteger, and it falls back to Integer's version of <. If it
> doesn't, then it's either the JIT incorrectly short-circuiting the
> comparison, or primitive 3 incorrectly succeeding.
Tried "Debug It" + "Setp Into" in Squeak and Cuis. Both return 'false'
without interior detail.
Also same with current
as well as the "ARMv8 BitBLT speedups provided by RPi/Ben Avison" VM.
Chromebook:Linux:Arm64:~/Squeak5.3 >>> squeak --version
5.0-202103220146 Sat May 22 19:42:47 PDT 2021 gcc 8 [Production Spur
CoInterpreter VMMaker.oscog-eem.2948 uuid:
935d1ee7-0e61-47a5-92e2-953224c7ffcf May 22 2021
StackToRegisterMappingCogit VMMaker.oscog-eem.2946 uuid:
461911e1-d450-4f05-8a40-7b0470487041 May 22 2021
VM: 202103220146 ***@***.***:OpenSmalltalk/Bavison
Date: Sun Mar 21 21:46:24 2021 CommitHash: d494240
Plugins: 202103220146 ***@***.***:OpenSmalltalk/Bavison
Linux penguin 5.4.99-12983-g8b7876ab9f5e #1 SMP PREEMPT Sun Feb 21
11:49:16 PST 2021 aarch64 GNU/Linux
plugin path: /usr/local/bin/../lib/squeak/5.0-202103220146 [default:
>>> ./squeak --version
5.0-202106162331 Wed Jun 16 16:39:14 PDT 2021 gcc 8 [Production Spur
CoInterpreter VMMaker.oscog-eem.2967 uuid:
57b9e5f9-0212-436d-acaf-4e501e470621 Jun 16 2021
StackToRegisterMappingCogit VMMaker.oscog-eem.2953 uuid:
9f3d924e-9226-4242-9b6f-3dad93c7a837 Jun 16 2021
VM: 202106162331 ***@***.***:OpenSmalltalk/oscogvm
Date: Wed Jun 16 16:31:37 2021 CommitHash: 58e8b33db
Plugins: 202106162331 ***@***.***:OpenSmalltalk/oscogvm
Linux penguin 5.4.109-26077-g12746d86825a #1 SMP PREEMPT Mon May 17
21:46:50 PDT 2021 aarch64 GNU/Linux
Thanks for testing that. My guess then would be that the jitted code for < fails to recognize 16r8000000000000000 as being a LargeInteger (which is unlikely), or knowing it's a LargeInt but thinking it can handle the comparison quickly and failing to do so correctly.