-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix the itruncalypse #8549
Fix the itruncalypse #8549
Conversation
@JeffBezanson What do you want to do about things such as these tests? We have some kind of interesting behavior here:
|
This bootstraps on Win32, nice work, but fails the numbers tests as you saw.
|
That's strange. All those tests should still pass. |
The The crux of the problem is that
This is due to the multiplication of |
Reinterpreting u1 as unsigned will probably work since that's basically |
Unfortunately I don't really have the time to figure out what to do with these functions. There is a lot of mixing uint and int in this file, basically every time you have |
for x in s | ||
h $= hash(x) | ||
end | ||
return h | ||
end | ||
|
||
const hashis_seed = Uint === Uint64 ? 0x88989f1fc7dea67d : 0xc7dea67d | ||
function hash(s::IntSet, h::Uint) | ||
h += uint(0x88989f1fc7dea67d) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like you forgot to use hashis_seed
here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks.
(Do we need to do this for *(u::Int128, v::Int128) as well?)
6ba85f8
to
23da008
Compare
Not a big deal, but all the |
I like saving harddrive space by cutting down on character counts just as much as anyone. |
I have to give credit to @nolta for a name that has kept me smiling all afternoon.
This tries to excise all mention in Base of
uint(LITERAL)
whereLITERAL
is 64 bits wide. This builds on my 32-bit VM, but I'd like a human eye to go over this and make sure I'm not doing anything horrendously stupid here.