diff --git a/Cargo.lock b/Cargo.lock index f9741bc50..e03c12217 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1822,9 +1822,9 @@ dependencies = [ [[package]] name = "malachite-base" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0c91cb6071ed9ac48669d3c79bd2792db596c7e542dbadd217b385bb359f42d" +checksum = "5eb2a098b227df48779e28ed4125dd3161b792a9254961377cea6f5c19e5b417" dependencies = [ "hashbrown 0.16.1", "itertools 0.14.0", @@ -1834,9 +1834,9 @@ dependencies = [ [[package]] name = "malachite-bigint" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff3af5010102f29f2ef4ee6f7b1c5b3f08a6c261b5164e01c41cf43772b6f90" +checksum = "6eaf19f1b8ba023528050372eafd72ca11f80f70c9dc2af9bb22f888bf079013" dependencies = [ "malachite-base", "malachite-nz", @@ -1847,9 +1847,9 @@ dependencies = [ [[package]] name = "malachite-nz" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9ecf4dd76246fd622de4811097966106aa43f9cd7cc36cb85e774fe84c8adc" +checksum = "ab7c0ddc4e2681459d70591baf30ca5abd31c25969e76d3605838bec794c8077" dependencies = [ "itertools 0.14.0", "libm", @@ -1859,9 +1859,9 @@ dependencies = [ [[package]] name = "malachite-q" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7bc9d9adf5b0a7999d84f761c809bec3dc46fe983e4de547725d2b7730462a0" +checksum = "e13d19f04fc672f251d477c8d58c13c6c5550553dfba6a665c9ad3604466ac9a" dependencies = [ "itertools 0.14.0", "malachite-base", diff --git a/Cargo.toml b/Cargo.toml index a0c4a1493..1ef31f825 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -181,9 +181,9 @@ libc = "0.2.179" libffi = "5" log = "0.4.29" nix = { version = "0.30", features = ["fs", "user", "process", "term", "time", "signal", "ioctl", "socket", "sched", "zerocopy", "dir", "hostname", "net", "poll"] } -malachite-bigint = "0.8" -malachite-q = "0.8" -malachite-base = "0.8" +malachite-bigint = "0.9" +malachite-q = "0.9" +malachite-base = "0.9" memchr = "2.7.4" num-complex = "0.4.6" num-integer = "0.1.46" diff --git a/crates/vm/src/stdlib/ctypes/simple.rs b/crates/vm/src/stdlib/ctypes/simple.rs index de13dab22..b2ae0f7cc 100644 --- a/crates/vm/src/stdlib/ctypes/simple.rs +++ b/crates/vm/src/stdlib/ctypes/simple.rs @@ -141,11 +141,12 @@ fn set_primitive(_type_: &str, value: &PyObject, vm: &VirtualMachine) -> PyResul // Handle int specially to check overflow if let Some(int_obj) = value.downcast_ref_if_exact::(vm) { // Check if int can fit in f64 - if int_obj.as_bigint().to_f64().is_some() { + if let Some(f) = int_obj.as_bigint().to_f64() + && f.is_finite() + { return Ok(value.to_owned()); - } else { - return Err(vm.new_overflow_error("int too large to convert to float")); } + return Err(vm.new_overflow_error("int too large to convert to float")); } // __float__ protocol if value.try_float(vm).is_ok() {