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
Make ScLang's integer 64bits #6242
Make ScLang's integer 64bits #6242
Conversation
Does anyone know why the CI failing to pull in the git submodules? |
Just closing this because I no longer have time to play with it. |
It is not good to make integer 64 bit because it prevents a possible future optimisation. We should just use integer floats if we need higher numbers. |
At least on x86_64, there is no performance difference. It won't get faster nor worse. Although there are 32bit computers around. This change would have to allow different compilations. I think it hasn't been done because it's a massive and repetitive work. |
Just for reference, here are some odd things I found...
I think this is because of the supercollider/lang/LangSource/PyrMathOps.cpp Line 678 in 28a0b12
|
This is the expected behavior. Tthe leftmost bit in a signed integer represents its sign EDIT: I wonder what further bitwise shifting is actually doing. Is it specific to sclang or also cpp? (Maybe there was some work to transition to int64? Would be informative to see the git dates) |
Purpose and Motivation
More numbers good.
There should be no breaking changes.
This is currently more of a test to see what the CI makes of it.
Types of changes
The slot already had a int64 in, this just updates everything else (mostly function signatures) and tries to keep the old behaviour where possible.
There are many many places where integers are just cast around willy nilly, no attempt is made to fix this here, but should happen in the future — I have tried to make some of these casts explicit.
To-do list