[INFO] fetching crate linkbot 0.0.2...
[INFO] testing linkbot-0.0.2 against 1.76.0 for beta-1.77-1
[INFO] extracting crate linkbot 0.0.2 into /workspace/builds/worker-7-tc1/source
[INFO] validating manifest of crates.io crate linkbot 0.0.2 on toolchain 1.76.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.76.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate linkbot 0.0.2
[INFO] finished tweaking crates.io crate linkbot 0.0.2
[INFO] tweaked toml for crates.io crate linkbot 0.0.2 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.76.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.76.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d28bcba88b62467be3e9a338ae0805034097a30b11debdef6e38299ada2b16a5
[INFO] running `Command { std: "docker" "start" "-a" "d28bcba88b62467be3e9a338ae0805034097a30b11debdef6e38299ada2b16a5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d28bcba88b62467be3e9a338ae0805034097a30b11debdef6e38299ada2b16a5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d28bcba88b62467be3e9a338ae0805034097a30b11debdef6e38299ada2b16a5", kill_on_drop: false }`
[INFO] [stdout] d28bcba88b62467be3e9a338ae0805034097a30b11debdef6e38299ada2b16a5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ad1647b74e617e997f56f0932da3363281ec156f2efdb0a197583e228d2f3ed9
[INFO] running `Command { std: "docker" "start" "-a" "ad1647b74e617e997f56f0932da3363281ec156f2efdb0a197583e228d2f3ed9", kill_on_drop: false }`
[INFO] [stderr]    Compiling linkbot v0.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:27
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = dyn FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:326:41
[INFO] [stdout]     |
[INFO] [stdout] 326 | ...                   cb: extern fn(i32, i32, i32, *mut Inner),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout]     = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:327:47
[INFO] [stdout]     |
[INFO] [stdout] 327 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:329:42
[INFO] [stdout]     |
[INFO] [stdout] 329 | ...                   cb: Option<extern fn(i32, i32, i32, *mut Inner)>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:330:48
[INFO] [stdout]     |
[INFO] [stdout] 330 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 0.16s
[INFO] running `Command { std: "docker" "inspect" "ad1647b74e617e997f56f0932da3363281ec156f2efdb0a197583e228d2f3ed9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ad1647b74e617e997f56f0932da3363281ec156f2efdb0a197583e228d2f3ed9", kill_on_drop: false }`
[INFO] [stdout] ad1647b74e617e997f56f0932da3363281ec156f2efdb0a197583e228d2f3ed9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c07f7045f7bbe83f8baac69dd459a689df0fc2403ef8f5b946b290c7b8fc909c
[INFO] running `Command { std: "docker" "start" "-a" "c07f7045f7bbe83f8baac69dd459a689df0fc2403ef8f5b946b290c7b8fc909c", kill_on_drop: false }`
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:27
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = dyn FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:326:41
[INFO] [stdout]     |
[INFO] [stdout] 326 | ...                   cb: extern fn(i32, i32, i32, *mut Inner),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout]     = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:327:47
[INFO] [stdout]     |
[INFO] [stdout] 327 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling linkbot v0.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:329:42
[INFO] [stdout]     |
[INFO] [stdout] 329 | ...                   cb: Option<extern fn(i32, i32, i32, *mut Inner)>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:330:48
[INFO] [stdout]     |
[INFO] [stdout] 330 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:27
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = dyn FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button`
[INFO] [stdout]    --> src/lib.rs:342:32
[INFO] [stdout]     |
[INFO] [stdout] 342 |         l.set_button_handler( |button, state, timestamp| {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_button`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/lib.rs:342:40
[INFO] [stdout]     |
[INFO] [stdout] 342 |         l.set_button_handler( |button, state, timestamp| {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]    --> src/lib.rs:342:47
[INFO] [stdout]     |
[INFO] [stdout] 342 |         l.set_button_handler( |button, state, timestamp| {
[INFO] [stdout]     |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:326:41
[INFO] [stdout]     |
[INFO] [stdout] 326 | ...                   cb: extern fn(i32, i32, i32, *mut Inner),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout]     = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:327:47
[INFO] [stdout]     |
[INFO] [stdout] 327 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:329:42
[INFO] [stdout]     |
[INFO] [stdout] 329 | ...                   cb: Option<extern fn(i32, i32, i32, *mut Inner)>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:330:48
[INFO] [stdout]     |
[INFO] [stdout] 330 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 | /         l.set_button_handler( |button, state, timestamp| {
[INFO] [stdout] 343 | |             println!("Button press!");
[INFO] [stdout] 344 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let _ = l.set_button_handler( |button, state, timestamp| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |         l.move_motors(7, 90.0, 90.0, 90.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let _ = l.move_motors(7, 90.0, 90.0, 90.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:348:9
[INFO] [stdout]     |
[INFO] [stdout] 348 |         l.move_wait(7);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 348 |         let _ = l.move_wait(7);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:349:9
[INFO] [stdout]     |
[INFO] [stdout] 349 |         l.move_motors(7, -90.0, -90.0, -90.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 349 |         let _ = l.move_motors(7, -90.0, -90.0, -90.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |         l.move_wait(7);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 350 |         let _ = l.move_wait(7);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |         l.unset_button_handler();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let _ = l.unset_button_handler();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:352:9
[INFO] [stdout]     |
[INFO] [stdout] 352 |         l.set_buzzer_frequency(440.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let _ = l.set_buzzer_frequency(440.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:354:9
[INFO] [stdout]     |
[INFO] [stdout] 354 |         l.set_buzzer_frequency(0.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 354 |         let _ = l.set_buzzer_frequency(0.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcOiV5Pg/symbols.o" "/opt/rustwide/target/debug/deps/linkbot-e2638b7c07c6556b.linkbot.a2d47f0952ff7305-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/linkbot-e2638b7c07c6556b.1i55r9ogt186l9j3.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bdynamic" "-llinkbot" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-5d722ce3e5d0595e.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-76f5006e4e062e57.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-a18ed5fdf4a57b72.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-a14b8d31733ef9e9.rlib" "/opt/rustwide/target/debug/deps/liblibc-50cf0445600f9cae.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-66d8041607d2929b.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-a57e2388c0aea9b1.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-dcd9be90ae2cb505.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-516789932d161b4e.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1ff34b0cf871cb60.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-0c110dd0650d6cb7.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-a6e97aae2681ad8f.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-b93dac2525ec4d1e.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-ce1d65fb391ae98b.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-8933a2fb54d88492.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-306712ebb1ee1a3f.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-349c574f342b0d30.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-65c422a3ad95273d.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-7e6330a6c0cb9441.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-39c59240bfdfab27.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-e9d126c51bb8b2bb.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-5af394d9b1f07bdc.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-693a8f23970c5917.rlib" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-13fc9d1ed9c7a2bc.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/1.76.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/linkbot-e2638b7c07c6556b" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
[INFO] [stdout]   = note: /usr/bin/ld: cannot find -llinkbot: No such file or directory
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error; 16 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `linkbot` (lib test) due to 2 previous errors; 16 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "c07f7045f7bbe83f8baac69dd459a689df0fc2403ef8f5b946b290c7b8fc909c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c07f7045f7bbe83f8baac69dd459a689df0fc2403ef8f5b946b290c7b8fc909c", kill_on_drop: false }`
[INFO] [stdout] c07f7045f7bbe83f8baac69dd459a689df0fc2403ef8f5b946b290c7b8fc909c
[INFO] testing linkbot-0.0.2 against beta-2024-02-10 for beta-1.77-1
[INFO] extracting crate linkbot 0.0.2 into /workspace/builds/worker-7-tc2/source
[INFO] validating manifest of crates.io crate linkbot 0.0.2 on toolchain beta-2024-02-10
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-02-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate linkbot 0.0.2
[INFO] finished tweaking crates.io crate linkbot 0.0.2
[INFO] tweaked toml for crates.io crate linkbot 0.0.2 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-02-10" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-02-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-02-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 52261d766abe6bff8a8c7117fbda2fd871c80dc479d486ac1e9a7ab9a3e3fd33
[INFO] running `Command { std: "docker" "start" "-a" "52261d766abe6bff8a8c7117fbda2fd871c80dc479d486ac1e9a7ab9a3e3fd33", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "52261d766abe6bff8a8c7117fbda2fd871c80dc479d486ac1e9a7ab9a3e3fd33", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "52261d766abe6bff8a8c7117fbda2fd871c80dc479d486ac1e9a7ab9a3e3fd33", kill_on_drop: false }`
[INFO] [stdout] 52261d766abe6bff8a8c7117fbda2fd871c80dc479d486ac1e9a7ab9a3e3fd33
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-02-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ac1d2bf4eefb63514257cba142c09cbf30e30e25aff498401ed7fad65d9594dd
[INFO] running `Command { std: "docker" "start" "-a" "ac1d2bf4eefb63514257cba142c09cbf30e30e25aff498401ed7fad65d9594dd", kill_on_drop: false }`
[INFO] [stderr]    Compiling linkbot v0.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:27
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = dyn FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:326:41
[INFO] [stdout]     |
[INFO] [stdout] 326 | ...                   cb: extern fn(i32, i32, i32, *mut Inner),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout]     = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:327:47
[INFO] [stdout]     |
[INFO] [stdout] 327 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:329:42
[INFO] [stdout]     |
[INFO] [stdout] 329 | ...                   cb: Option<extern fn(i32, i32, i32, *mut Inner)>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:330:48
[INFO] [stdout]     |
[INFO] [stdout] 330 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 0.21s
[INFO] running `Command { std: "docker" "inspect" "ac1d2bf4eefb63514257cba142c09cbf30e30e25aff498401ed7fad65d9594dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ac1d2bf4eefb63514257cba142c09cbf30e30e25aff498401ed7fad65d9594dd", kill_on_drop: false }`
[INFO] [stdout] ac1d2bf4eefb63514257cba142c09cbf30e30e25aff498401ed7fad65d9594dd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-02-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5a1ab4be910787197e27cd773f0bbb741e19bff49d325e5f2ead8532960e70b3
[INFO] running `Command { std: "docker" "start" "-a" "5a1ab4be910787197e27cd773f0bbb741e19bff49d325e5f2ead8532960e70b3", kill_on_drop: false }`
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:27
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = dyn FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:326:41
[INFO] [stdout]     |
[INFO] [stdout] 326 | ...                   cb: extern fn(i32, i32, i32, *mut Inner),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout]     = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:327:47
[INFO] [stdout]     |
[INFO] [stdout] 327 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:329:42
[INFO] [stdout]     |
[INFO] [stdout] 329 | ...                   cb: Option<extern fn(i32, i32, i32, *mut Inner)>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:330:48
[INFO] [stdout]     |
[INFO] [stdout] 330 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling linkbot v0.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:27
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub type ButtonCallback = dyn FnMut(Button, ButtonState, u32);
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button`
[INFO] [stdout]    --> src/lib.rs:342:32
[INFO] [stdout]     |
[INFO] [stdout] 342 |         l.set_button_handler( |button, state, timestamp| {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_button`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/lib.rs:342:40
[INFO] [stdout]     |
[INFO] [stdout] 342 |         l.set_button_handler( |button, state, timestamp| {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timestamp`
[INFO] [stdout]    --> src/lib.rs:342:47
[INFO] [stdout]     |
[INFO] [stdout] 342 |         l.set_button_handler( |button, state, timestamp| {
[INFO] [stdout]     |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:326:41
[INFO] [stdout]     |
[INFO] [stdout] 326 | ...                   cb: extern fn(i32, i32, i32, *mut Inner),
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout]     = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:327:47
[INFO] [stdout]     |
[INFO] [stdout] 327 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:329:42
[INFO] [stdout]     |
[INFO] [stdout] 329 | ...                   cb: Option<extern fn(i32, i32, i32, *mut Inner)>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `Mutex<u8>`, which is not FFI-safe
[INFO] [stdout]    --> src/lib.rs:330:48
[INFO] [stdout]     |
[INFO] [stdout] 330 | ...                   userdata: *mut Inner) -> i32;
[INFO] [stdout]     |                                 ^^^^^^^^^^ not FFI-safe
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]     = note: this struct has unspecified layout
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 | /         l.set_button_handler( |button, state, timestamp| {
[INFO] [stdout] 343 | |             println!("Button press!");
[INFO] [stdout] 344 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let _ = l.set_button_handler( |button, state, timestamp| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |         l.move_motors(7, 90.0, 90.0, 90.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let _ = l.move_motors(7, 90.0, 90.0, 90.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:348:9
[INFO] [stdout]     |
[INFO] [stdout] 348 |         l.move_wait(7);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 348 |         let _ = l.move_wait(7);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:349:9
[INFO] [stdout]     |
[INFO] [stdout] 349 |         l.move_motors(7, -90.0, -90.0, -90.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 349 |         let _ = l.move_motors(7, -90.0, -90.0, -90.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |         l.move_wait(7);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 350 |         let _ = l.move_wait(7);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |         l.unset_button_handler();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let _ = l.unset_button_handler();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:352:9
[INFO] [stdout]     |
[INFO] [stdout] 352 |         l.set_buzzer_frequency(440.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 352 |         let _ = l.set_buzzer_frequency(440.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:354:9
[INFO] [stdout]     |
[INFO] [stdout] 354 |         l.set_buzzer_frequency(0.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 354 |         let _ = l.set_buzzer_frequency(0.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note: LC_ALL="C" PATH="/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/opt/rustwide/cargo-home/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustczAEful/symbols.o" "/opt/rustwide/target/debug/deps/linkbot-07807951a5abf742.linkbot.34732fc5b6cda270-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/linkbot-07807951a5abf742.2esdjj19n5liz6xf.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bdynamic" "-llinkbot" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-7b2522a9e679b88d.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-f94d980056e8955a.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-dfc6ee63d8caa20c.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-113d7bdd8cf56a35.rlib" "/opt/rustwide/target/debug/deps/liblibc-db6d1022cbe7c1eb.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-c3d3f3356130ff3b.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-95df42f89c1d4925.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-0d2835f8aa540844.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-370839a40e011065.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-9649e5e19a7f7d26.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-947cba7c5cf68c1c.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-ced012bebfb4965d.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-ca1b3bc71d252cc2.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-fc6e78e39549a6fa.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-339fe9c79c84af4f.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-1568bb4b0be20e00.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-fe9837fa83c5d69d.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-4c6008bb65e308f5.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-c9bf4c045d493bdb.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-e47cddc003bce885.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-ddda47710dcba33d.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-e46bc3da6d7c462f.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-8d1ac131d3cb2645.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-b4e1725cffd81412.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/beta-2024-02-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/linkbot-07807951a5abf742" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
[INFO] [stdout]   = note: /usr/bin/ld: cannot find -llinkbot: No such file or directory
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error; 16 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `linkbot` (lib test) due to 2 previous errors; 16 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "5a1ab4be910787197e27cd773f0bbb741e19bff49d325e5f2ead8532960e70b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a1ab4be910787197e27cd773f0bbb741e19bff49d325e5f2ead8532960e70b3", kill_on_drop: false }`
[INFO] [stdout] 5a1ab4be910787197e27cd773f0bbb741e19bff49d325e5f2ead8532960e70b3
