source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
- [[package]]
- name = "az"
- version = "1.2.1"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973"
-
+[[package]]
+name = "backtrace"
+version = "0.3.67"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
[[package]]
name = "base64"
version = "0.12.3"
"syn 1.0.109",
]
- [[package]]
- name = "gmp-mpfr-sys"
- version = "1.5.3"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "13eabc29d16e4a621b495e3919c71ebb7caaed24380955671e7d417370fea95d"
- dependencies = [
- "libc",
- "windows-sys 0.42.0",
- ]
-
[[package]]
name = "h2"
-version = "0.3.19"
+version = "0.3.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782"
+checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
dependencies = [
"bytes",
"fnv",
"xmlparser",
]
- [[package]]
- name = "rug"
- version = "1.19.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "555e8b44763d034526db899c88cd56ccc4486cd38b444c8aa0e79d4e70ae5a34"
- dependencies = [
- "az",
- "gmp-mpfr-sys",
- "libc",
- ]
-
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
[[package]]
name = "rustix"
-version = "0.37.20"
+version = "0.37.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0"
+checksum = "62f25693a73057a1b4cb56179dd3c7ea21a7c6c5ee7d85781f5749b46f34b79c"
dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
"errno",
"io-lifetimes",
"libc",
ordered-float = "2.6.0"
phf = { version = "0.9", features = ["macros"] }
ref_thread_local = "0.0.0"
- rug = { version = "1.15.0", optional = true }
-rustyline = "9.0.0"
+rustyline = "12.0.0"
ring = "0.16.13"
ripemd160 = "0.8.0"
sha3 = "0.8.2"
sodiumoxide = "0.2.6"
static_assertions = "1.1.0"
ryu = "1.0.9"
-hyper = { version = "0.14", features = ["full"] }
-hyper-tls = "0.5.0"
-tokio = { version = "1.24.2", features = ["full"] }
+hyper = { version = "1.0.0-rc.3", features = ["full"] }
+tokio = { version = "1.28.2", features = ["full"] }
futures = "0.3"
- libffi = "3.1.0"
libloading = "0.7"
derive_deref = "1.1.1"
http-body-util = "0.1.0-rc.2"
Number::arena_from(-Integer::from(n.get_num()), arena)
}
}
- Number::Integer(n) => Number::arena_from(-Integer::from(&*n), arena),
-
+ Number::Integer(n) => {
+ let n_clone: Integer = (*n).clone();
+ Number::arena_from(-Integer::from(n_clone), arena)
+ },
Number::Float(OrderedFloat(f)) => Number::Float(OrderedFloat(-f)),
- Number::Rational(r) => Number::arena_from(-Rational::from(&*r), arena),
+ Number::Rational(r) => {
+ let r_clone: Rational = (*r).clone();
+ Number::arena_from(-Rational::from(r_clone), arena)
+ },
}
}
use std::cell::Cell;
use std::cmp::Ordering;
use std::collections::BTreeSet;
- use std::convert::{TryFrom};
-use std::convert::Infallible;
+ use std::convert::TryFrom;
use std::env;
use std::ffi::CString;
use std::fs;
use roxmltree;
use select;
-use hyper::{Body, Server, Client, HeaderMap, Method, Request, Response, Uri};
-use hyper::header::{HeaderName, HeaderValue};
-use hyper::body::Buf;
-use hyper::service::{make_service_fn, service_fn};
-use hyper_tls::HttpsConnector;
-use tokio::sync::Mutex;
-use tokio::sync::mpsc::channel;
+use hyper::server::conn::http1;
+use hyper::header::{HeaderValue, HeaderName};
+use hyper::{HeaderMap, Method};
+use http_body_util::BodyExt;
+use bytes::Buf;
+use reqwest::Url;
- ref_thread_local! {
- pub(crate) static managed RANDOM_STATE: RandState<'static> = RandState::new();
- }
-
pub(crate) fn get_key() -> KeyEvent {
let key;
enable_raw_mode().expect("failed to enable raw mode");
}
#[inline(always)]
- pub(crate) fn maybe(&mut self) {
+ pub(crate) fn maybe(&mut self) {
+ fn generate_random_bits(num_bits: usize) -> u64 {
+ let mut rng = rand::thread_rng();
+ let rand = rng.borrow_mut();
+ let mut random_bits: u64 = 0;
-
++
+ for _ in 0..num_bits {
+ random_bits <<= 1;
-
++
+ if rand.gen_bool(0.5) {
+ random_bits |= 1;
+ }
+ }
-
++
+ random_bits
+ }
+
let result = {
- let mut rand = RANDOM_STATE.borrow_mut();
- rand.bits(1) == 0
+ generate_random_bits(1) == 0
};
self.machine_st.fail = result;
// n has already been confirmed as an integer, and
// internally, Rational is assumed reduced, so its
// denominator must be 1.
- r.numer().to_u8().unwrap()
- r.numerator().to_i32().unwrap()
++ r.numerator().to_u8().unwrap()
}
_ => {
unreachable!()
#[inline(always)]
pub(crate) fn set_seed(&mut self) {
let seed = self.deref_register(1);
- let mut rand = RANDOM_STATE.borrow_mut();
+
-
+
match Number::try_from(seed) {
- Ok(Number::Fixnum(n)) => rand.seed(&Integer::from(n)),
- Ok(Number::Integer(n)) => rand.seed(&*n),
- Ok(Number::Rational(n)) if n.denom() == &1 => rand.seed(n.numer()),
+ Ok(Number::Fixnum(n)) => {
+ let _: StdRng = SeedableRng::seed_from_u64(Integer::from(n).to_u64().unwrap());
+ },
+ Ok(Number::Integer(n)) => {
+ let _: StdRng = SeedableRng::seed_from_u64(n.to_u64().unwrap());
+ },
+ Ok(Number::Rational(n)) => {
+ if n.denominator() == &UBig::from(1 as u32) {
+ let _: StdRng = SeedableRng::seed_from_u64(n.numerator().to_u64().unwrap());
- }
++ }
+ },
_ => {
self.machine_st.fail = true;
}