[INFO] updating cached repository zcash-hackworks/pay-to-sudoku [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/zcash-hackworks/pay-to-sudoku [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/zcash-hackworks/pay-to-sudoku" "work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/zcash-hackworks/pay-to-sudoku"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/zcash-hackworks/pay-to-sudoku'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/zcash-hackworks/pay-to-sudoku" "work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/zcash-hackworks/pay-to-sudoku"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/zcash-hackworks/pay-to-sudoku'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e80e165ab50495606c59edded993e193dc506dc0 [INFO] sha for GitHub repo zcash-hackworks/pay-to-sudoku: e80e165ab50495606c59edded993e193dc506dc0 [INFO] validating manifest of zcash-hackworks/pay-to-sudoku on toolchain master#60960a260f7b5c695fd0717311d72ce62dd4eb43 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of zcash-hackworks/pay-to-sudoku on toolchain try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing zcash-hackworks/pay-to-sudoku [INFO] finished frobbing zcash-hackworks/pay-to-sudoku [INFO] frobbed toml for zcash-hackworks/pay-to-sudoku written to work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/zcash-hackworks/pay-to-sudoku/Cargo.toml [INFO] started frobbing zcash-hackworks/pay-to-sudoku [INFO] finished frobbing zcash-hackworks/pay-to-sudoku [INFO] frobbed toml for zcash-hackworks/pay-to-sudoku written to work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/zcash-hackworks/pay-to-sudoku/Cargo.toml [INFO] crate zcash-hackworks/pay-to-sudoku already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] error: the lock file /mnt/big/crater/work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/zcash-hackworks/pay-to-sudoku/Cargo.lock needs to be updated but --locked was passed to prevent this [INFO] the lockfile is outdated, regenerating it [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking zcash-hackworks/pay-to-sudoku against try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 for pr-63376 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63376/worker-1/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/zcash-hackworks/pay-to-sudoku:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 6f3b822037c7aee6ff5abf37c7ac4f47ea1e54edbdf23b2478f3ca29587824d1 [INFO] running `"docker" "start" "-a" "6f3b822037c7aee6ff5abf37c7ac4f47ea1e54edbdf23b2478f3ca29587824d1"` [INFO] [stderr] Checking language-tags v0.0.7 [INFO] [stderr] Checking ansi_term v0.7.5 [INFO] [stderr] Checking strsim v0.4.1 [INFO] [stderr] Checking vec_map v0.4.0 [INFO] [stderr] Checking whiteread v0.2.0 [INFO] [stderr] Checking thread-scoped v1.0.2 [INFO] [stderr] Checking hex v0.1.0 [INFO] [stderr] Compiling miniz-sys v0.1.12 [INFO] [stderr] Compiling bzip2-sys v0.1.7 [INFO] [stderr] Checking num-complex v0.1.43 [INFO] [stderr] Checking num-bigint v0.1.44 [INFO] [stderr] Checking uuid v0.1.18 [INFO] [stderr] Checking rust-crypto v0.2.36 [INFO] [stderr] Checking clap v1.5.6 [INFO] [stderr] Checking url v0.2.38 [INFO] [stderr] Checking flate2 v0.2.20 [INFO] [stderr] Checking cookie v0.1.21 [INFO] [stderr] Checking bzip2 v0.2.4 [INFO] [stderr] Checking num-rational v0.1.42 [INFO] [stderr] Checking num v0.1.42 [INFO] [stderr] Checking serde v0.6.15 [INFO] [stderr] Checking mime v0.1.3 [INFO] [stderr] Checking strason v0.3.4 [INFO] [stderr] Checking bincode v0.4.1 [INFO] [stderr] Checking hyper v0.6.16 [INFO] [stderr] Checking jsonrpc v0.7.6 [INFO] [stderr] Checking pay-to-sudoku v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | #[macro_use] extern crate jsonrpc; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Read`, `Write`, `self` [INFO] [stderr] --> src/main.rs:18:15 [INFO] [stderr] | [INFO] [stderr] 18 | use std::io::{self, Read, Write}; [INFO] [stderr] | ^^^^ ^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FromHex` [INFO] [stderr] --> src/main.rs:25:18 [INFO] [stderr] | [INFO] [stderr] 25 | use hex::{ToHex, FromHex}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::Sudoku` [INFO] [stderr] --> src/sudoku.rs:242:9 [INFO] [stderr] | [INFO] [stderr] 242 | use super::Sudoku; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `test::Bencher` [INFO] [stderr] --> src/sudoku.rs:243:9 [INFO] [stderr] | [INFO] [stderr] 243 | use test::Bencher; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ffi.rs:50:32 [INFO] [stderr] | [INFO] [stderr] 50 | let closure: &mut &mut for<'a> FnMut(&'a [u8], &'a [i8]) = mem::transmute(cb); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn for<'a> FnMut(&'a [u8], &'a [i8])` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ffi.rs:62:32 [INFO] [stderr] | [INFO] [stderr] 62 | let closure: &mut &mut for<'a> FnMut(&'a [i8], &'a [i8]) = mem::transmute(cb); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn for<'a> FnMut(&'a [i8], &'a [i8])` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ffi.rs:69:22 [INFO] [stderr] | [INFO] [stderr] 69 | let mut cb: &mut for<'a> FnMut(&'a [u8], &'a [u8]) = &mut f; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn for<'a> FnMut(&'a [u8], &'a [u8])` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ffi.rs:93:22 [INFO] [stderr] | [INFO] [stderr] 93 | let mut cb: &mut for<'a> FnMut(&'a [u8], &'a [u8]) = &mut f; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn for<'a> FnMut(&'a [u8], &'a [u8])` [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde` [INFO] [stderr] --> src/bitcoin.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use serde; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ToHex` [INFO] [stderr] --> src/bitcoin.rs:8:11 [INFO] [stderr] | [INFO] [stderr] 8 | use hex::{ToHex, FromHex}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:310:28 [INFO] [stderr] | [INFO] [stderr] 310 | if (rx.lock().unwrap().try_recv().is_ok()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | #[macro_use] extern crate jsonrpc; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Read`, `Write`, `self` [INFO] [stderr] --> src/main.rs:18:15 [INFO] [stderr] | [INFO] [stderr] 18 | use std::io::{self, Read, Write}; [INFO] [stderr] | ^^^^ ^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FromHex` [INFO] [stderr] --> src/main.rs:25:18 [INFO] [stderr] | [INFO] [stderr] 25 | use hex::{ToHex, FromHex}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ffi.rs:50:32 [INFO] [stderr] | [INFO] [stderr] 50 | let closure: &mut &mut for<'a> FnMut(&'a [u8], &'a [i8]) = mem::transmute(cb); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn for<'a> FnMut(&'a [u8], &'a [i8])` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ffi.rs:62:32 [INFO] [stderr] | [INFO] [stderr] 62 | let closure: &mut &mut for<'a> FnMut(&'a [i8], &'a [i8]) = mem::transmute(cb); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn for<'a> FnMut(&'a [i8], &'a [i8])` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ffi.rs:69:22 [INFO] [stderr] | [INFO] [stderr] 69 | let mut cb: &mut for<'a> FnMut(&'a [u8], &'a [u8]) = &mut f; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn for<'a> FnMut(&'a [u8], &'a [u8])` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ffi.rs:93:22 [INFO] [stderr] | [INFO] [stderr] 93 | let mut cb: &mut for<'a> FnMut(&'a [u8], &'a [u8]) = &mut f; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn for<'a> FnMut(&'a [u8], &'a [u8])` [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde` [INFO] [stderr] --> src/bitcoin.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use serde; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ToHex` [INFO] [stderr] --> src/bitcoin.rs:8:11 [INFO] [stderr] | [INFO] [stderr] 8 | use hex::{ToHex, FromHex}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:310:28 [INFO] [stderr] | [INFO] [stderr] 310 | if (rx.lock().unwrap().try_recv().is_ok()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:8:28 [INFO] [stderr] | [INFO] [stderr] 8 | use libc::{size_t, c_char, uint8_t, uint32_t, int32_t, c_void}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:8:37 [INFO] [stderr] | [INFO] [stderr] 8 | use libc::{size_t, c_char, uint8_t, uint32_t, int32_t, c_void}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:8:47 [INFO] [stderr] | [INFO] [stderr] 8 | use libc::{size_t, c_char, uint8_t, uint32_t, int32_t, c_void}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:22:23 [INFO] [stderr] | [INFO] [stderr] 22 | fn gen_keypair(n: uint32_t, h: *mut c_void, cb: extern fn(*mut c_void, *const c_char, size_t, *const c_char, size_t)); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:23:48 [INFO] [stderr] | [INFO] [stderr] 23 | fn load_keypair(pk_s: *const c_char, pk_l: int32_t, vk_s: *const c_char, vk_l: int32_t) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:23:84 [INFO] [stderr] | [INFO] [stderr] 23 | fn load_keypair(pk_s: *const c_char, pk_l: int32_t, vk_s: *const c_char, vk_l: int32_t) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:26:45 [INFO] [stderr] | [INFO] [stderr] 26 | cb: extern fn(*mut c_void, uint32_t, *const uint8_t, *const c_char, int32_t), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:26:62 [INFO] [stderr] | [INFO] [stderr] 26 | cb: extern fn(*mut c_void, uint32_t, *const uint8_t, *const c_char, int32_t), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:26:86 [INFO] [stderr] | [INFO] [stderr] 26 | cb: extern fn(*mut c_void, uint32_t, *const uint8_t, *const c_char, int32_t), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | n: uint32_t, puzzle: *const uint8_t, solution: *const uint8_t, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:27:46 [INFO] [stderr] | [INFO] [stderr] 27 | n: uint32_t, puzzle: *const uint8_t, solution: *const uint8_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:27:72 [INFO] [stderr] | [INFO] [stderr] 27 | n: uint32_t, puzzle: *const uint8_t, solution: *const uint8_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:28:30 [INFO] [stderr] | [INFO] [stderr] 28 | key: *const uint8_t, h_of_key: *const uint8_t) -> bool; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:28:56 [INFO] [stderr] | [INFO] [stderr] 28 | key: *const uint8_t, h_of_key: *const uint8_t) -> bool; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:29:28 [INFO] [stderr] | [INFO] [stderr] 29 | fn decrypt_solution(n: uint32_t, enc: *mut uint8_t, key: *const uint8_t); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:29:48 [INFO] [stderr] | [INFO] [stderr] 29 | fn decrypt_solution(n: uint32_t, enc: *mut uint8_t, key: *const uint8_t); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:29:69 [INFO] [stderr] | [INFO] [stderr] 29 | fn decrypt_solution(n: uint32_t, enc: *mut uint8_t, key: *const uint8_t); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:31:24 [INFO] [stderr] | [INFO] [stderr] 31 | n: uint32_t, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:32:35 [INFO] [stderr] | [INFO] [stderr] 32 | proof: *const uint8_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:33:32 [INFO] [stderr] | [INFO] [stderr] 33 | proof_len: int32_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:34:36 [INFO] [stderr] | [INFO] [stderr] 34 | puzzle: *const uint8_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:35:38 [INFO] [stderr] | [INFO] [stderr] 35 | h_of_key: *const uint8_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:36:42 [INFO] [stderr] | [INFO] [stderr] 36 | enc_solution: *const uint8_t [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:44:57 [INFO] [stderr] | [INFO] [stderr] 44 | extern "C" fn handle_proof_callback(cb: *mut c_void, n: uint32_t, encrypted_solution: *const uint8_t, proof: *const c_char, proof_len: int32_t) [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:44:94 [INFO] [stderr] | [INFO] [stderr] 44 | extern "C" fn handle_proof_callback(cb: *mut c_void, n: uint32_t, encrypted_solution: *const uint8_t, proof: *const c_char, proof_len: int32_t) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:44:136 [INFO] [stderr] | [INFO] [stderr] 44 | extern "C" fn handle_proof_callback(cb: *mut c_void, n: uint32_t, encrypted_solution: *const uint8_t, proof: *const c_char, proof_len: int32_t) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:119:80 [INFO] [stderr] | [INFO] [stderr] 119 | unsafe { snark_verify(ctx.keypair, ctx.n as u32, &proof[0], proof.len() as int32_t, &puzzle[0], &h_of_key[0], &encrypted_solution[0]) } [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:8:28 [INFO] [stderr] | [INFO] [stderr] 8 | use libc::{size_t, c_char, uint8_t, uint32_t, int32_t, c_void}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:8:37 [INFO] [stderr] | [INFO] [stderr] 8 | use libc::{size_t, c_char, uint8_t, uint32_t, int32_t, c_void}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:8:47 [INFO] [stderr] | [INFO] [stderr] 8 | use libc::{size_t, c_char, uint8_t, uint32_t, int32_t, c_void}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:22:23 [INFO] [stderr] | [INFO] [stderr] 22 | fn gen_keypair(n: uint32_t, h: *mut c_void, cb: extern fn(*mut c_void, *const c_char, size_t, *const c_char, size_t)); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:23:48 [INFO] [stderr] | [INFO] [stderr] 23 | fn load_keypair(pk_s: *const c_char, pk_l: int32_t, vk_s: *const c_char, vk_l: int32_t) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:23:84 [INFO] [stderr] | [INFO] [stderr] 23 | fn load_keypair(pk_s: *const c_char, pk_l: int32_t, vk_s: *const c_char, vk_l: int32_t) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:26:45 [INFO] [stderr] | [INFO] [stderr] 26 | cb: extern fn(*mut c_void, uint32_t, *const uint8_t, *const c_char, int32_t), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:26:62 [INFO] [stderr] | [INFO] [stderr] 26 | cb: extern fn(*mut c_void, uint32_t, *const uint8_t, *const c_char, int32_t), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:26:86 [INFO] [stderr] | [INFO] [stderr] 26 | cb: extern fn(*mut c_void, uint32_t, *const uint8_t, *const c_char, int32_t), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | n: uint32_t, puzzle: *const uint8_t, solution: *const uint8_t, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:27:46 [INFO] [stderr] | [INFO] [stderr] 27 | n: uint32_t, puzzle: *const uint8_t, solution: *const uint8_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:27:72 [INFO] [stderr] | [INFO] [stderr] 27 | n: uint32_t, puzzle: *const uint8_t, solution: *const uint8_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:28:30 [INFO] [stderr] | [INFO] [stderr] 28 | key: *const uint8_t, h_of_key: *const uint8_t) -> bool; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:28:56 [INFO] [stderr] | [INFO] [stderr] 28 | key: *const uint8_t, h_of_key: *const uint8_t) -> bool; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:29:28 [INFO] [stderr] | [INFO] [stderr] 29 | fn decrypt_solution(n: uint32_t, enc: *mut uint8_t, key: *const uint8_t); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:29:48 [INFO] [stderr] | [INFO] [stderr] 29 | fn decrypt_solution(n: uint32_t, enc: *mut uint8_t, key: *const uint8_t); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:29:69 [INFO] [stderr] | [INFO] [stderr] 29 | fn decrypt_solution(n: uint32_t, enc: *mut uint8_t, key: *const uint8_t); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:31:24 [INFO] [stderr] | [INFO] [stderr] 31 | n: uint32_t, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:32:35 [INFO] [stderr] | [INFO] [stderr] 32 | proof: *const uint8_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:33:32 [INFO] [stderr] | [INFO] [stderr] 33 | proof_len: int32_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:34:36 [INFO] [stderr] | [INFO] [stderr] 34 | puzzle: *const uint8_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:35:38 [INFO] [stderr] | [INFO] [stderr] 35 | h_of_key: *const uint8_t, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:36:42 [INFO] [stderr] | [INFO] [stderr] 36 | enc_solution: *const uint8_t [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint32_t': Use u32 instead. [INFO] [stderr] --> src/ffi.rs:44:57 [INFO] [stderr] | [INFO] [stderr] 44 | extern "C" fn handle_proof_callback(cb: *mut c_void, n: uint32_t, encrypted_solution: *const uint8_t, proof: *const c_char, proof_len: int32_t) [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::uint8_t': Use u8 instead. [INFO] [stderr] --> src/ffi.rs:44:94 [INFO] [stderr] | [INFO] [stderr] 44 | extern "C" fn handle_proof_callback(cb: *mut c_void, n: uint32_t, encrypted_solution: *const uint8_t, proof: *const c_char, proof_len: int32_t) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:44:136 [INFO] [stderr] | [INFO] [stderr] 44 | extern "C" fn handle_proof_callback(cb: *mut c_void, n: uint32_t, encrypted_solution: *const uint8_t, proof: *const c_char, proof_len: int32_t) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'libc::int32_t': Use i32 instead. [INFO] [stderr] --> src/ffi.rs:119:80 [INFO] [stderr] | [INFO] [stderr] 119 | unsafe { snark_verify(ctx.keypair, ctx.n as u32, &proof[0], proof.len() as int32_t, &puzzle[0], &h_of_key[0], &encrypted_solution[0]) } [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `encrypted_solution` [INFO] [stderr] --> src/main.rs:178:16 [INFO] [stderr] | [INFO] [stderr] 178 | |encrypted_solution, proof| {})); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_encrypted_solution` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `proof` [INFO] [stderr] --> src/main.rs:178:36 [INFO] [stderr] | [INFO] [stderr] 178 | |encrypted_solution, proof| {})); [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_proof` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `a` [INFO] [stderr] --> src/main.rs:351:13 [INFO] [stderr] | [INFO] [stderr] 351 | fn from(a: bincode::serde::SerializeError) -> ProtoError { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_a` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `a` [INFO] [stderr] --> src/main.rs:357:13 [INFO] [stderr] | [INFO] [stderr] 357 | fn from(a: bincode::serde::DeserializeError) -> ProtoError { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_a` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dimension` [INFO] [stderr] --> src/sudoku.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 15 | fn new(dimension: usize) -> Possible { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_dimension` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `undo` [INFO] [stderr] --> src/sudoku.rs:218:21 [INFO] [stderr] | [INFO] [stderr] 218 | let undo = cell.set(candidate); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_undo` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `res` [INFO] [stderr] --> src/bitcoin.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | let res = client.send_request(&request).unwrap(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_res` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `res` [INFO] [stderr] --> src/bitcoin.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | let res = client.send_request(&request).unwrap(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_res` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `res` [INFO] [stderr] --> src/bitcoin.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | let res = client.send_request(&request).unwrap(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_res` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `encrypted_solution` [INFO] [stderr] --> src/main.rs:178:16 [INFO] [stderr] | [INFO] [stderr] 178 | |encrypted_solution, proof| {})); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_encrypted_solution` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `proof` [INFO] [stderr] --> src/main.rs:178:36 [INFO] [stderr] | [INFO] [stderr] 178 | |encrypted_solution, proof| {})); [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_proof` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `a` [INFO] [stderr] --> src/main.rs:351:13 [INFO] [stderr] | [INFO] [stderr] 351 | fn from(a: bincode::serde::SerializeError) -> ProtoError { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_a` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `a` [INFO] [stderr] --> src/main.rs:357:13 [INFO] [stderr] | [INFO] [stderr] 357 | fn from(a: bincode::serde::DeserializeError) -> ProtoError { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_a` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dimension` [INFO] [stderr] --> src/sudoku.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 15 | fn new(dimension: usize) -> Possible { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_dimension` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `undo` [INFO] [stderr] --> src/sudoku.rs:218:21 [INFO] [stderr] | [INFO] [stderr] 218 | let undo = cell.set(candidate); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_undo` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `solution` [INFO] [stderr] --> src/sudoku.rs:249:17 [INFO] [stderr] | [INFO] [stderr] 249 | let solution = Sudoku::import_and_solve(8, &puzzle); [INFO] [stderr] | ^^^^^^^^ help: consider prefixing with an underscore: `_solution` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `res` [INFO] [stderr] --> src/bitcoin.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | let res = client.send_request(&request).unwrap(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_res` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `res` [INFO] [stderr] --> src/bitcoin.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | let res = client.send_request(&request).unwrap(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_res` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `res` [INFO] [stderr] --> src/bitcoin.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | let res = client.send_request(&request).unwrap(); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_res` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | let mut h_of_key: Vec = try!(deserialize_from(stream, Infinite)); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:323:13 [INFO] [stderr] | [INFO] [stderr] 323 | let mut txid; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:324:13 [INFO] [stderr] | [INFO] [stderr] 324 | let mut vout; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/sudoku.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | let mut grid = Sudoku::new(n); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | let mut h_of_key: Vec = try!(deserialize_from(stream, Infinite)); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:323:13 [INFO] [stderr] | [INFO] [stderr] 323 | let mut txid; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:324:13 [INFO] [stderr] | [INFO] [stderr] 324 | let mut vout; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/sudoku.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | let mut grid = Sudoku::new(n); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `print` [INFO] [stderr] --> src/sudoku.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | pub fn print(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_sudoku_from_stdin` [INFO] [stderr] --> src/util.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn get_sudoku_from_stdin(dimension: usize) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | handle_server(&mut stream, &ctx, n, &mut rpc); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:141:21 [INFO] [stderr] | [INFO] [stderr] 141 | handle_client(&mut stream, &ctx, n, &mut rpc); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:275:9 [INFO] [stderr] | [INFO] [stderr] 275 | serialize_into(stream, &proof, Infinite); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | serialize_into(stream, &encrypted_solution, Infinite); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:277:9 [INFO] [stderr] | [INFO] [stderr] 277 | serialize_into(stream, &h_of_key, Infinite); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | serialize_into(stream, &solving_pubkey, Infinite); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:317:17 [INFO] [stderr] | [INFO] [stderr] 317 | tx.send(()); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/sudoku.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | grid.solve(&mut rng); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `extern` block uses type `ffi::Keypair` which is not FFI-safe: this struct has no fields [INFO] [stderr] --> src/ffi.rs:24:12 [INFO] [stderr] | [INFO] [stderr] 24 | -> *const Keypair; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(improper_ctypes)]` on by default [INFO] [stderr] = help: consider adding a member to this struct [INFO] [stderr] note: type defined here [INFO] [stderr] --> src/ffi.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | struct Keypair; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `extern` block uses type `ffi::Keypair` which is not FFI-safe: this struct has no fields [INFO] [stderr] --> src/ffi.rs:25:27 [INFO] [stderr] | [INFO] [stderr] 25 | fn gen_proof(keypair: *const Keypair, h: *mut c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider adding a member to this struct [INFO] [stderr] note: type defined here [INFO] [stderr] --> src/ffi.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | struct Keypair; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `extern` block uses type `ffi::Keypair` which is not FFI-safe: this struct has no fields [INFO] [stderr] --> src/ffi.rs:30:30 [INFO] [stderr] | [INFO] [stderr] 30 | fn snark_verify(keypair: *const Keypair, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider adding a member to this struct [INFO] [stderr] note: type defined here [INFO] [stderr] --> src/ffi.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | struct Keypair; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/util.rs:64:17 [INFO] [stderr] | [INFO] [stderr] 64 | decoder.finish(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: method is never used: `print` [INFO] [stderr] --> src/sudoku.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | pub fn print(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_sudoku_from_stdin` [INFO] [stderr] --> src/util.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn get_sudoku_from_stdin(dimension: usize) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | handle_server(&mut stream, &ctx, n, &mut rpc); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:141:21 [INFO] [stderr] | [INFO] [stderr] 141 | handle_client(&mut stream, &ctx, n, &mut rpc); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:275:9 [INFO] [stderr] | [INFO] [stderr] 275 | serialize_into(stream, &proof, Infinite); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | serialize_into(stream, &encrypted_solution, Infinite); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:277:9 [INFO] [stderr] | [INFO] [stderr] 277 | serialize_into(stream, &h_of_key, Infinite); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | serialize_into(stream, &solving_pubkey, Infinite); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:317:17 [INFO] [stderr] | [INFO] [stderr] 317 | tx.send(()); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/sudoku.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | grid.solve(&mut rng); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `extern` block uses type `ffi::Keypair` which is not FFI-safe: this struct has no fields [INFO] [stderr] --> src/ffi.rs:24:12 [INFO] [stderr] | [INFO] [stderr] 24 | -> *const Keypair; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(improper_ctypes)]` on by default [INFO] [stderr] = help: consider adding a member to this struct [INFO] [stderr] note: type defined here [INFO] [stderr] --> src/ffi.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | struct Keypair; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `extern` block uses type `ffi::Keypair` which is not FFI-safe: this struct has no fields [INFO] [stderr] --> src/ffi.rs:25:27 [INFO] [stderr] | [INFO] [stderr] 25 | fn gen_proof(keypair: *const Keypair, h: *mut c_void, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider adding a member to this struct [INFO] [stderr] note: type defined here [INFO] [stderr] --> src/ffi.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | struct Keypair; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `extern` block uses type `ffi::Keypair` which is not FFI-safe: this struct has no fields [INFO] [stderr] --> src/ffi.rs:30:30 [INFO] [stderr] | [INFO] [stderr] 30 | fn snark_verify(keypair: *const Keypair, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider adding a member to this struct [INFO] [stderr] note: type defined here [INFO] [stderr] --> src/ffi.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | struct Keypair; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/util.rs:64:17 [INFO] [stderr] | [INFO] [stderr] 64 | decoder.finish(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 24.42s [INFO] running `"docker" "inspect" "6f3b822037c7aee6ff5abf37c7ac4f47ea1e54edbdf23b2478f3ca29587824d1"` [INFO] running `"docker" "rm" "-f" "6f3b822037c7aee6ff5abf37c7ac4f47ea1e54edbdf23b2478f3ca29587824d1"` [INFO] [stdout] 6f3b822037c7aee6ff5abf37c7ac4f47ea1e54edbdf23b2478f3ca29587824d1