-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Introduce Math.frexp method. #4560
Conversation
PS: It may be used by Float64.hash (to solve crystal-lang#3932).
@Sija It's a bug because of LLVM 3.5 |
@asterite |
Ah, well. Then there's something wrong with how we are using LLVM but unfortunately I have no idea why. Probably something gets disposed and still being used. |
Doesn't mean the compiler was compiled using LLVM 3.8 @Sija. |
@RX14 Ah, that's probably it. At least on my machine, where I have the compiler compiled with 4.0, I never got that error. In any case it's a minor issue because it only affects the compiler, randomly, but not the executables produced by the compiler. |
@asterite Compiler works fine on LLVM 3.9 and 4.0. Looks like it failed or earlier LLVMs. |
* Additions to Big arithmetics. Follows #4560. * Follow @RX14 review (single line blocks, extract mantissa bits constants). * Int cast is implicit here. * Format src/big/big_rational.cr * BigRational is not float, and frexp should be not used on it. * frexp should not be used on BigInt. * rework BigFloat./ * rename bsi, bfsi, bsf, bfsf etc. in spec. * rework def BigFloat.<=>(other : Int) * Simplify a bit, thanks to @RX14 * just remove commen. looks like single Number constructor looks OK in every case. * more verbose naming for used variables. * just explanation of workaround, refs #4897 * For now overloads work (i don't know why). * dedup * Forward declarations of Big Arithmentics types.
PS: It may be used by Float64.hash (to solve #3932).