[INFO] fetching crate avr-oxide 0.4.1...
[INFO] checking avr-oxide-0.4.1 against master#30f74ff0dc4d66debc8b50724c446f817e5f75f4 for pr-121848-1
[INFO] extracting crate avr-oxide 0.4.1 into /workspace/builds/worker-6-tc1/source
[INFO] validating manifest of crates.io crate avr-oxide 0.4.1 on toolchain 30f74ff0dc4d66debc8b50724c446f817e5f75f4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-6-tc1/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-6-tc1/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate avr-oxide 0.4.1
[INFO] finished tweaking crates.io crate avr-oxide 0.4.1
[INFO] tweaked toml for crates.io crate avr-oxide 0.4.1 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "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" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ufmt-macros v0.2.0
[INFO] [stderr]   Downloaded ufmt-write v0.1.0
[INFO] [stderr]   Downloaded oxide-macros v0.4.1
[INFO] [stderr]   Downloaded ufmt v0.1.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6477e3fd53ddbc31e007dc287ccc44d180ae19eef9f4d499187e70bae2113b7e
[INFO] running `Command { std: "docker" "start" "-a" "6477e3fd53ddbc31e007dc287ccc44d180ae19eef9f4d499187e70bae2113b7e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6477e3fd53ddbc31e007dc287ccc44d180ae19eef9f4d499187e70bae2113b7e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6477e3fd53ddbc31e007dc287ccc44d180ae19eef9f4d499187e70bae2113b7e", kill_on_drop: false }`
[INFO] [stdout] 6477e3fd53ddbc31e007dc287ccc44d180ae19eef9f4d499187e70bae2113b7e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+30f74ff0dc4d66debc8b50724c446f817e5f75f4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e632bdc9edb0b4dc5875fdf9bee344cbf94264d34d37dddb39f6f16937e42008
[INFO] running `Command { std: "docker" "start" "-a" "e632bdc9edb0b4dc5875fdf9bee344cbf94264d34d37dddb39f6f16937e42008", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.79
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling proc-macro-hack v0.5.20+deprecated
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling avr-oxide v0.4.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking ufmt-write v0.1.0
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling ufmt-macros v0.2.0
[INFO] [stderr]     Checking ufmt v0.1.2
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling oxide-macros v0.4.1
[INFO] [stdout] error: A clockspeed feature ("16MHz", "20MHz") must be enabled for this crate
[INFO] [stdout]   --> src/deviceconsts.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | compile_error!("A clockspeed feature (\"16MHz\", \"20MHz\") must be enabled for this crate");
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: A processor feature ("atmega4809", "atmega328p") must be enabled for this crate
[INFO] [stdout]   --> src/deviceconsts.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | compile_error!("A processor feature (\"atmega4809\", \"atmega328p\") must be enabled for this crate");
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: A clockspeed feature ("16MHz", "20MHz") must be enabled for this crate
[INFO] [stdout]   --> src/deviceconsts.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | compile_error!("A clockspeed feature (\"16MHz\", \"20MHz\") must be enabled for this crate");
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: A processor feature ("atmega4809", "atmega328p") must be enabled for this crate
[INFO] [stdout]   --> src/deviceconsts.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | compile_error!("A processor feature (\"atmega4809\", \"atmega328p\") must be enabled for this crate");
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `hardware` in the crate root
[INFO] [stdout]    --> src/hal/generic/cpu.rs:15:16
[INFO] [stdout]     |
[INFO] [stdout] 15  | use avr_oxide::hardware::cpu::cpuregs::{IOREG_CONTEXT_FLAGS,IOREG_SREG};
[INFO] [stdout]     |                ^^^^^^^^ could not find `hardware` in the crate root
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/lib.rs:380:39
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub use avr_oxide::hal::atmega4809 as hardware;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/lib.rs:382:39
[INFO] [stdout]     |
[INFO] [stdout] 382 | pub use avr_oxide::hal::atmega328p as hardware;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::sleepctrl`
[INFO] [stdout]    --> src/hal/generic/twi.rs:471:64
[INFO] [stdout]     |
[INFO] [stdout] 471 |     use avr_oxide::{isr_cb_invoke, OxideResult, panic_if_none, sleepctrl};
[INFO] [stdout]     |                                                                ^^^^^^^^^ no `sleepctrl` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::cpu`
[INFO] [stdout]   --> src/concurrency/scheduler.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use avr_oxide::{cpu, OxideResult, thread};
[INFO] [stdout]    |                 ^^^ no `cpu` in the root
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider importing this module instead:
[INFO] [stdout]            crate::hal::generic::cpu
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::cpu`
[INFO] [stdout]    --> src/concurrency/thread.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | use avr_oxide::cpu;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ no `cpu` in the root
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this module instead
[INFO] [stdout]     |
[INFO] [stdout] 103 | use crate::hal::generic::cpu;
[INFO] [stdout]     |     ~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::cpu`
[INFO] [stdout]   --> src/concurrency/interrupt.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use avr_oxide::cpu;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ no `cpu` in the root
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this module instead
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::hal::generic::cpu;
[INFO] [stdout]    |     ~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::clock`
[INFO] [stdout]    --> src/devices/masterclock.rs:150:30
[INFO] [stdout]     |
[INFO] [stdout] 150 | use avr_oxide::deviceconsts::clock::{ MASTER_CLOCK_PRESCALER, MASTER_CLOCK_HZ, MASTER_TICK_FREQ_HZ };
[INFO] [stdout]     |                              ^^^^^ could not find `clock` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]    --> src/hal/generic/port.rs:159:32
[INFO] [stdout]     |
[INFO] [stdout] 159 |   use avr_oxide::deviceconsts::oxide::PIN_ARRAY_SIZE;
[INFO] [stdout]     |                                ^^^^^ could not find `oxide` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::clock`
[INFO] [stdout]    --> src/hal/generic/twi.rs:467:34
[INFO] [stdout]     |
[INFO] [stdout] 467 |     use avr_oxide::deviceconsts::clock::{MASTER_CLOCK_HZ, MASTER_CLOCK_PRESCALER};
[INFO] [stdout]     |                                  ^^^^^ could not find `clock` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]   --> src/concurrency/scheduler.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use avr_oxide::deviceconsts::oxide::MAX_THREADS;
[INFO] [stdout]    |                              ^^^^^ could not find `oxide` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]    --> src/concurrency/thread.rs:104:30
[INFO] [stdout]     |
[INFO] [stdout] 104 | use avr_oxide::deviceconsts::oxide::{DEFAULT_THREAD_STACK_SIZE};
[INFO] [stdout]     |                              ^^^^^ could not find `oxide` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]   --> src/concurrency/util.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::deviceconsts::oxide;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `oxide` in `deviceconsts`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] help: consider importing this module instead
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::oxide;
[INFO] [stdout]    |     ~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]    --> src/oxide.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | use avr_oxide::deviceconsts::oxide;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `oxide` in `deviceconsts`
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/deviceconsts.rs:64:9
[INFO] [stdout]     |
[INFO] [stdout] 64  | pub mod oxide {
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/deviceconsts.rs:75:9
[INFO] [stdout]     |
[INFO] [stdout] 75  | pub mod oxide {
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] help: consider importing this module instead
[INFO] [stdout]     |
[INFO] [stdout] 116 | use crate::oxide;
[INFO] [stdout]     |     ~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]   --> src/util/debug.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use avr_oxide::deviceconsts::oxide;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `oxide` in `deviceconsts`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] help: consider importing this module instead
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::oxide;
[INFO] [stdout]    |     ~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::memory`
[INFO] [stdout]   --> src/alloc.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use avr_oxide::deviceconsts::memory;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `memory` in `deviceconsts`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub mod memory {
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub mod memory {
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `hardware` in the crate root
[INFO] [stdout]    --> src/hal/generic/cpu.rs:15:16
[INFO] [stdout]     |
[INFO] [stdout] 15  | use avr_oxide::hardware::cpu::cpuregs::{IOREG_CONTEXT_FLAGS,IOREG_SREG};
[INFO] [stdout]     |                ^^^^^^^^ could not find `hardware` in the crate root
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/lib.rs:380:39
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub use avr_oxide::hal::atmega4809 as hardware;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/lib.rs:382:39
[INFO] [stdout]     |
[INFO] [stdout] 382 | pub use avr_oxide::hal::atmega328p as hardware;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> src/concurrency/stack.rs:203:25
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let sp = avr_oxide::cpu!().read_sp() as usize;
[INFO] [stdout]     |                         ^^^ unresolved import
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> src/concurrency/stack.rs:239:25
[INFO] [stdout]     |
[INFO] [stdout] 239 |     let sp = avr_oxide::cpu!().read_sp() as usize;
[INFO] [stdout]     |                         ^^^ unresolved import
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::sleepctrl`
[INFO] [stdout]    --> src/hal/generic/twi.rs:471:64
[INFO] [stdout]     |
[INFO] [stdout] 471 |     use avr_oxide::{isr_cb_invoke, OxideResult, panic_if_none, sleepctrl};
[INFO] [stdout]     |                                                                ^^^^^^^^^ no `sleepctrl` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::cpu`
[INFO] [stdout]   --> src/concurrency/scheduler.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use avr_oxide::{cpu, OxideResult, thread};
[INFO] [stdout]    |                 ^^^ no `cpu` in the root
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider importing this module instead:
[INFO] [stdout]            crate::hal::generic::cpu
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::cpu`
[INFO] [stdout]    --> src/concurrency/thread.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | use avr_oxide::cpu;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ no `cpu` in the root
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this module instead
[INFO] [stdout]     |
[INFO] [stdout] 103 | use crate::hal::generic::cpu;
[INFO] [stdout]     |     ~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::cpu`
[INFO] [stdout]   --> src/concurrency/interrupt.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use avr_oxide::cpu;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ no `cpu` in the root
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this module instead
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::hal::generic::cpu;
[INFO] [stdout]    |     ~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::clock`
[INFO] [stdout]    --> src/devices/masterclock.rs:150:30
[INFO] [stdout]     |
[INFO] [stdout] 150 | use avr_oxide::deviceconsts::clock::{ MASTER_CLOCK_PRESCALER, MASTER_CLOCK_HZ, MASTER_TICK_FREQ_HZ };
[INFO] [stdout]     |                              ^^^^^ could not find `clock` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]    --> src/hal/generic/port.rs:159:32
[INFO] [stdout]     |
[INFO] [stdout] 159 |   use avr_oxide::deviceconsts::oxide::PIN_ARRAY_SIZE;
[INFO] [stdout]     |                                ^^^^^ could not find `oxide` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::clock`
[INFO] [stdout]    --> src/hal/generic/twi.rs:467:34
[INFO] [stdout]     |
[INFO] [stdout] 467 |     use avr_oxide::deviceconsts::clock::{MASTER_CLOCK_HZ, MASTER_CLOCK_PRESCALER};
[INFO] [stdout]     |                                  ^^^^^ could not find `clock` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]   --> src/concurrency/scheduler.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use avr_oxide::deviceconsts::oxide::MAX_THREADS;
[INFO] [stdout]    |                              ^^^^^ could not find `oxide` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]    --> src/concurrency/thread.rs:104:30
[INFO] [stdout]     |
[INFO] [stdout] 104 | use avr_oxide::deviceconsts::oxide::{DEFAULT_THREAD_STACK_SIZE};
[INFO] [stdout]     |                              ^^^^^ could not find `oxide` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]   --> src/concurrency/util.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::deviceconsts::oxide;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `oxide` in `deviceconsts`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] help: consider importing this module instead
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::oxide;
[INFO] [stdout]    |     ~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]    --> src/concurrency/util.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |   use avr_oxide::deviceconsts::oxide::MAX_THREADS;
[INFO] [stdout]     |                                ^^^^^ could not find `oxide` in `deviceconsts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]    --> src/oxide.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | use avr_oxide::deviceconsts::oxide;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `oxide` in `deviceconsts`
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/deviceconsts.rs:64:9
[INFO] [stdout]     |
[INFO] [stdout] 64  | pub mod oxide {
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/deviceconsts.rs:75:9
[INFO] [stdout]     |
[INFO] [stdout] 75  | pub mod oxide {
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] help: consider importing this module instead
[INFO] [stdout]     |
[INFO] [stdout] 116 | use crate::oxide;
[INFO] [stdout]     |     ~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::oxide`
[INFO] [stdout]   --> src/util/debug.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use avr_oxide::deviceconsts::oxide;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `oxide` in `deviceconsts`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] help: consider importing this module instead
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::oxide;
[INFO] [stdout]    |     ~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `avr_oxide::deviceconsts::memory`
[INFO] [stdout]   --> src/alloc.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use avr_oxide::deviceconsts::memory;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `memory` in `deviceconsts`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub mod memory {
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub mod memory {
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> src/concurrency/stack.rs:203:25
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let sp = avr_oxide::cpu!().read_sp() as usize;
[INFO] [stdout]     |                         ^^^ unresolved import
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> src/concurrency/stack.rs:239:25
[INFO] [stdout]     |
[INFO] [stdout] 239 |     let sp = avr_oxide::cpu!().read_sp() as usize;
[INFO] [stdout]     |                         ^^^ unresolved import
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `hardware` in the crate root
[INFO] [stdout]    --> src/concurrency/scheduler.rs:136:44
[INFO] [stdout]     |
[INFO] [stdout] 136 |       context_flags_reg = const(avr_oxide::hardware::cpu::cpuregs::IOADR_CONTEXT_FLAGS),
[INFO] [stdout]     |                                            ^^^^^^^^ could not find `hardware` in the crate root
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/lib.rs:380:39
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub use avr_oxide::hal::atmega4809 as hardware;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/lib.rs:382:39
[INFO] [stdout]     |
[INFO] [stdout] 382 | pub use avr_oxide::hal::atmega328p as hardware;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `oxide` in `deviceconsts`
[INFO] [stdout]   --> src/concurrency/sync/eventwait.rs:63:43
[INFO] [stdout]    |
[INFO] [stdout] 63 |     self.release(avr_oxide::deviceconsts::oxide::MAX_THREADS)
[INFO] [stdout]    |                                           ^^^^^ could not find `oxide` in `deviceconsts`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `hardware` in the crate root
[INFO] [stdout]    --> src/concurrency/scheduler.rs:136:44
[INFO] [stdout]     |
[INFO] [stdout] 136 |       context_flags_reg = const(avr_oxide::hardware::cpu::cpuregs::IOADR_CONTEXT_FLAGS),
[INFO] [stdout]     |                                            ^^^^^^^^ could not find `hardware` in the crate root
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/lib.rs:380:39
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub use avr_oxide::hal::atmega4809 as hardware;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> src/lib.rs:382:39
[INFO] [stdout]     |
[INFO] [stdout] 382 | pub use avr_oxide::hal::atmega328p as hardware;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout]     = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `oxide` in `deviceconsts`
[INFO] [stdout]   --> src/concurrency/sync/eventwait.rs:63:43
[INFO] [stdout]    |
[INFO] [stdout] 63 |     self.release(avr_oxide::deviceconsts::oxide::MAX_THREADS)
[INFO] [stdout]    |                                           ^^^^^ could not find `oxide` in `deviceconsts`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega4809` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/deviceconsts.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub mod oxide {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    = note: the item is gated behind the `atmega328p` feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `lang_items` is internal to the compiler or standard library
[INFO] [stdout]    --> src/lib.rs:326:12
[INFO] [stdout]     |
[INFO] [stdout] 326 | #![feature(lang_items)]
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: using it is strongly discouraged
[INFO] [stdout]     = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]  --> src/devices/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Box` is already defined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]    --> src/devices/masterclock.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout]     = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]    --> src/devices/wallclock.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout]     = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/devices/button.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/devices/serialport.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/devices/debouncer.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/devices/inverter.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/devices/nc.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]   --> src/hal/generic/datatypes.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use core::arch::asm;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]    --> src/hal/generic/port.rs:156:7
[INFO] [stdout]     |
[INFO] [stdout] 156 |   use avr_oxide::alloc::vec::Vec;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout]     = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProxyPin`, `handlers`
[INFO] [stdout]    --> src/hal/generic/port.rs:646:41
[INFO] [stdout]     |
[INFO] [stdout] 646 |     use avr_oxide::hal::generic::port::{handlers, InterruptMode, Pin, ProxyPin, PinIsrCallback};
[INFO] [stdout]     |                                         ^^^^^^^^                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BitFieldAccess`, `BitIndex`, `VolatileBitField`, `Volatile`
[INFO] [stdout]    --> src/hal/generic/port.rs:649:38
[INFO] [stdout]     |
[INFO] [stdout] 649 |     use avr_oxide::util::datatypes::{BitFieldAccess, BitIndex, Volatile, VolatileBitField};
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]   --> src/hal/generic/cpu.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use core::arch::asm;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BitFieldAccess`, `BitIndex`
[INFO] [stdout]   --> src/hal/generic/cpu.rs:14:44
[INFO] [stdout]    |
[INFO] [stdout] 14 | use avr_oxide::util::datatypes::{BitField, BitFieldAccess, BitIndex};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ReadHandlerResult`, `SerialError`, `SerialPortIdentity`
[INFO] [stdout]     --> src/hal/generic/serial.rs:1270:59
[INFO] [stdout]      |
[INFO] [stdout] 1270 | ...e, SerialPortIdentity, BaudRate, Parity, StopBits, DataBits, SerialRxTx, SerialWriteEventCallback, SerialReadEventCallback, SerialError, ReadHandlerResult, S...
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^                                                                                                       ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::marker::PhantomData`
[INFO] [stdout]     --> src/hal/generic/serial.rs:1272:9
[INFO] [stdout]      |
[INFO] [stdout] 1272 |     use core::marker::PhantomData;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Cpu`
[INFO] [stdout]   --> src/concurrency/scheduler.rs:12:56
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::hal::generic::cpu::{ContextSaveRestore, Cpu};
[INFO] [stdout]    |                                                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/concurrency/scheduler.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/concurrency/thread.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> src/concurrency/interrupt.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/concurrency/sync/arc.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]   --> src/util/persist.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | use avr_oxide::alloc::vec::Vec;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::concurrency::util::ThreadId`
[INFO] [stdout]   --> src/util/debug.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use avr_oxide::concurrency::util::ThreadId;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::concurrency::stack`
[INFO] [stdout]   --> src/util/debug.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use avr_oxide::concurrency::stack;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::concurrency::scheduler`
[INFO] [stdout]   --> src/util/debug.rs:82:7
[INFO] [stdout]    |
[INFO] [stdout] 82 |   use avr_oxide::concurrency::scheduler;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/util/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]   --> src/private/delayq.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use avr_oxide::alloc::vec::Vec;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/private/delayq.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/staticwrap.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InterruptMode`, `PinMode`
[INFO] [stdout]   --> src/oserror.rs:29:37
[INFO] [stdout]    |
[INFO] [stdout] 29 | use avr_oxide::hal::generic::port::{InterruptMode, Pin, PinMode};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::util::debug`
[INFO] [stdout]   --> src/oserror.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use avr_oxide::util::debug;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `lang_items` is internal to the compiler or standard library
[INFO] [stdout]    --> src/lib.rs:326:12
[INFO] [stdout]     |
[INFO] [stdout] 326 | #![feature(lang_items)]
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: using it is strongly discouraged
[INFO] [stdout]     = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]  --> src/devices/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `Box` is already defined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]    --> src/devices/masterclock.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout]     = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]    --> src/devices/wallclock.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout]     = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/devices/button.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/devices/serialport.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/devices/debouncer.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/devices/inverter.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/devices/nc.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]   --> src/hal/generic/datatypes.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use core::arch::asm;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]    --> src/hal/generic/port.rs:156:7
[INFO] [stdout]     |
[INFO] [stdout] 156 |   use avr_oxide::alloc::vec::Vec;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout]     = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProxyPin`, `handlers`
[INFO] [stdout]    --> src/hal/generic/port.rs:646:41
[INFO] [stdout]     |
[INFO] [stdout] 646 |     use avr_oxide::hal::generic::port::{handlers, InterruptMode, Pin, ProxyPin, PinIsrCallback};
[INFO] [stdout]     |                                         ^^^^^^^^                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BitFieldAccess`, `BitIndex`, `VolatileBitField`, `Volatile`
[INFO] [stdout]    --> src/hal/generic/port.rs:649:38
[INFO] [stdout]     |
[INFO] [stdout] 649 |     use avr_oxide::util::datatypes::{BitFieldAccess, BitIndex, Volatile, VolatileBitField};
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]   --> src/hal/generic/cpu.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use core::arch::asm;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BitFieldAccess`, `BitIndex`
[INFO] [stdout]   --> src/hal/generic/cpu.rs:14:44
[INFO] [stdout]    |
[INFO] [stdout] 14 | use avr_oxide::util::datatypes::{BitField, BitFieldAccess, BitIndex};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ReadHandlerResult`, `SerialError`, `SerialPortIdentity`
[INFO] [stdout]     --> src/hal/generic/serial.rs:1270:59
[INFO] [stdout]      |
[INFO] [stdout] 1270 | ...e, SerialPortIdentity, BaudRate, Parity, StopBits, DataBits, SerialRxTx, SerialWriteEventCallback, SerialReadEventCallback, SerialError, ReadHandlerResult, S...
[INFO] [stdout]      |       ^^^^^^^^^^^^^^^^^^                                                                                                       ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::marker::PhantomData`
[INFO] [stdout]     --> src/hal/generic/serial.rs:1272:9
[INFO] [stdout]      |
[INFO] [stdout] 1272 |     use core::marker::PhantomData;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Cpu`
[INFO] [stdout]   --> src/concurrency/scheduler.rs:12:56
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::hal::generic::cpu::{ContextSaveRestore, Cpu};
[INFO] [stdout]    |                                                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/concurrency/scheduler.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/concurrency/thread.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::arch::asm`
[INFO] [stdout]  --> src/concurrency/interrupt.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use core::arch::asm;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/concurrency/sync/arc.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Debug`, `Formatter`
[INFO] [stdout]    --> src/concurrency/util.rs:105:18
[INFO] [stdout]     |
[INFO] [stdout] 105 |   use std::fmt::{Debug, Formatter};
[INFO] [stdout]     |                  ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ThreadId`
[INFO] [stdout]    --> src/concurrency/util.rs:106:38
[INFO] [stdout]     |
[INFO] [stdout] 106 |   use avr_oxide::concurrency::util::{ThreadId, ThreadSet};
[INFO] [stdout]     |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]   --> src/util/persist.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | use avr_oxide::alloc::vec::Vec;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::concurrency::util::ThreadId`
[INFO] [stdout]   --> src/util/debug.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use avr_oxide::concurrency::util::ThreadId;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::concurrency::stack`
[INFO] [stdout]   --> src/util/debug.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use avr_oxide::concurrency::stack;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::concurrency::scheduler`
[INFO] [stdout]   --> src/util/debug.rs:82:7
[INFO] [stdout]    |
[INFO] [stdout] 82 |   use avr_oxide::concurrency::scheduler;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/util/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BoundedMaths`
[INFO] [stdout]    --> src/private/ringq.rs:247:81
[INFO] [stdout]     |
[INFO] [stdout] 247 |   use avr_oxide::private::ringq::{RingQ, DoesNotCoalesce, Coalesce, QueueError, BoundedMaths};
[INFO] [stdout]     |                                                                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Err`
[INFO] [stdout]    --> src/private/ringq.rs:248:32
[INFO] [stdout]     |
[INFO] [stdout] 248 |   use avr_oxide::OxideResult::{Err,Ok};
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]   --> src/private/delayq.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use avr_oxide::alloc::vec::Vec;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/private/delayq.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::string::String`
[INFO] [stdout]    --> src/private/delayq.rs:244:7
[INFO] [stdout]     |
[INFO] [stdout] 244 |   use std::string::String;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Vec` is imported redundantly
[INFO] [stdout]    --> src/alloc.rs:523:7
[INFO] [stdout]     |
[INFO] [stdout] 523 |   use std::vec::Vec;
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout]    --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout]     = note: the item `Vec` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/alloc.rs:730:66
[INFO] [stdout]     |
[INFO] [stdout] 730 |       heap.set_heap_location(&mut memory as *mut u16 as *mut u8, {SIZE*2});
[INFO] [stdout]     |                                                                  ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 730 -       heap.set_heap_location(&mut memory as *mut u16 as *mut u8, {SIZE*2});
[INFO] [stdout] 730 +       heap.set_heap_location(&mut memory as *mut u16 as *mut u8, SIZE*2);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `Box` is imported redundantly
[INFO] [stdout]   --> src/staticwrap.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::alloc::boxed::Box;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   --> /rustc/30f74ff0dc4d66debc8b50724c446f817e5f75f4/library/std/src/prelude/mod.rs:115:13
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item `Box` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Debug`, `Formatter`
[INFO] [stdout]    --> src/time.rs:231:19
[INFO] [stdout]     |
[INFO] [stdout] 231 |   use core::fmt::{Debug, Formatter};
[INFO] [stdout]     |                   ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InterruptMode`, `PinMode`
[INFO] [stdout]   --> src/oserror.rs:29:37
[INFO] [stdout]    |
[INFO] [stdout] 29 | use avr_oxide::hal::generic::port::{InterruptMode, Pin, PinMode};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::util::debug`
[INFO] [stdout]   --> src/oserror.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use avr_oxide::util::debug;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ProxyPin: PinToPort` is not satisfied
[INFO] [stdout]    --> src/hal/generic/port.rs:591:7
[INFO] [stdout]     |
[INFO] [stdout] 591 |       ProxyPin: PinToPort
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^ the trait `PinToPort` is not implemented for `ProxyPin`
[INFO] [stdout]     |
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> src/hal/generic/port.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub trait PinToPort {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: see issue #48214
[INFO] [stdout]     = help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0747]: unresolved item provided when a constant was expected
[INFO] [stdout]   --> src/concurrency/scheduler.rs:32:50
[INFO] [stdout]    |
[INFO] [stdout] 32 | static mut SCHEDULER: MaybeUninit<SchedulerState<MAX_THREADS>> = MaybeUninit::uninit();
[INFO] [stdout]    |                                                  ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this generic argument was intended as a const parameter, surround it with braces
[INFO] [stdout]    |
[INFO] [stdout] 32 | static mut SCHEDULER: MaybeUninit<SchedulerState<{ MAX_THREADS }>> = MaybeUninit::uninit();
[INFO] [stdout]    |                                                  +             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0747]: unresolved item provided when a constant was expected
[INFO] [stdout]    --> src/concurrency/scheduler.rs:113:64
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub(super) unsafe fn instance() -> &'static mut SchedulerState<MAX_THREADS> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this generic argument was intended as a const parameter, surround it with braces
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub(super) unsafe fn instance() -> &'static mut SchedulerState<{ MAX_THREADS }> {
[INFO] [stdout]     |                                                                +             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ProxyPin: PinToPort` is not satisfied
[INFO] [stdout]    --> src/hal/generic/port.rs:591:7
[INFO] [stdout]     |
[INFO] [stdout] 591 |       ProxyPin: PinToPort
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^ the trait `PinToPort` is not implemented for `ProxyPin`
[INFO] [stdout]     |
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> src/hal/generic/port.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub trait PinToPort {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: see issue #48214
[INFO] [stdout]     = help: add `#![feature(trivial_bounds)]` to the crate attributes to enable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0747]: unresolved item provided when a constant was expected
[INFO] [stdout]   --> src/concurrency/scheduler.rs:32:50
[INFO] [stdout]    |
[INFO] [stdout] 32 | static mut SCHEDULER: MaybeUninit<SchedulerState<MAX_THREADS>> = MaybeUninit::uninit();
[INFO] [stdout]    |                                                  ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this generic argument was intended as a const parameter, surround it with braces
[INFO] [stdout]    |
[INFO] [stdout] 32 | static mut SCHEDULER: MaybeUninit<SchedulerState<{ MAX_THREADS }>> = MaybeUninit::uninit();
[INFO] [stdout]    |                                                  +             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0747]: unresolved item provided when a constant was expected
[INFO] [stdout]    --> src/concurrency/scheduler.rs:113:64
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub(super) unsafe fn instance() -> &'static mut SchedulerState<MAX_THREADS> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this generic argument was intended as a const parameter, surround it with braces
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub(super) unsafe fn instance() -> &'static mut SchedulerState<{ MAX_THREADS }> {
[INFO] [stdout]     |                                                                +             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `~const` can only be applied to `#[const_trait]` traits
[INFO] [stdout]    --> src/oserror.rs:194:22
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl<T, E, F: ~const From<E>> const core::ops::FromResidual<OxideResult<core::convert::Infallible, E>>
[INFO] [stdout]     |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `~const` can only be applied to `#[const_trait]` traits
[INFO] [stdout]    --> src/oserror.rs:194:22
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl<T, E, F: ~const From<E>> const core::ops::FromResidual<OxideResult<core::convert::Infallible, E>>
[INFO] [stdout]     |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/hal/generic/port.rs:52:41
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,Copy,PartialEq,Eq,uDebug,Persist)]
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         unreachable expression
[INFO] [stdout]    |                                         any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Persist` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/mutstatic.rs:24:30
[INFO] [stdout]     |
[INFO] [stdout] 24  |             core::ptr::replace(&mut $name, Some($constructor));
[INFO] [stdout]     |                                ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hal/generic/port.rs:171:3
[INFO] [stdout]     |
[INFO] [stdout] 171 | /   mut_singleton!(
[INFO] [stdout] 172 | |     PinHandlerSet,
[INFO] [stdout] 173 | |     __INSTANCE,
[INFO] [stdout] 174 | |     instance, instance_isolated,
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |       handlers: Vec::with_capacity(4)
[INFO] [stdout] 178 | |     });
[INFO] [stdout]     | |______- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `mut_singleton` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 24  |           core::ptr::replace(addr_of_mut!(__INSTANCE), Some($constructor));
[INFO] [stdout]     |                              ~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/mutstatic.rs:27:15
[INFO] [stdout]     |
[INFO] [stdout] 27  |           match &mut $name {
[INFO] [stdout]     |                 ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hal/generic/port.rs:171:3
[INFO] [stdout]     |
[INFO] [stdout] 171 | /   mut_singleton!(
[INFO] [stdout] 172 | |     PinHandlerSet,
[INFO] [stdout] 173 | |     __INSTANCE,
[INFO] [stdout] 174 | |     instance, instance_isolated,
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |       handlers: Vec::with_capacity(4)
[INFO] [stdout] 178 | |     });
[INFO] [stdout]     | |______- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout]     = note: this warning originates in the macro `mut_singleton` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 27  |         match addr_of_mut!(__INSTANCE) {
[INFO] [stdout]     |               ~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/hal/generic/port.rs:52:41
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,Copy,PartialEq,Eq,uDebug,Persist)]
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         unreachable expression
[INFO] [stdout]    |                                         any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Persist` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/mutstatic.rs:24:30
[INFO] [stdout]     |
[INFO] [stdout] 24  |             core::ptr::replace(&mut $name, Some($constructor));
[INFO] [stdout]     |                                ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hal/generic/port.rs:171:3
[INFO] [stdout]     |
[INFO] [stdout] 171 | /   mut_singleton!(
[INFO] [stdout] 172 | |     PinHandlerSet,
[INFO] [stdout] 173 | |     __INSTANCE,
[INFO] [stdout] 174 | |     instance, instance_isolated,
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |       handlers: Vec::with_capacity(4)
[INFO] [stdout] 178 | |     });
[INFO] [stdout]     | |______- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `mut_singleton` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 24  |           core::ptr::replace(addr_of_mut!(__INSTANCE), Some($constructor));
[INFO] [stdout]     |                              ~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/mutstatic.rs:27:15
[INFO] [stdout]     |
[INFO] [stdout] 27  |           match &mut $name {
[INFO] [stdout]     |                 ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hal/generic/port.rs:171:3
[INFO] [stdout]     |
[INFO] [stdout] 171 | /   mut_singleton!(
[INFO] [stdout] 172 | |     PinHandlerSet,
[INFO] [stdout] 173 | |     __INSTANCE,
[INFO] [stdout] 174 | |     instance, instance_isolated,
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |       handlers: Vec::with_capacity(4)
[INFO] [stdout] 178 | |     });
[INFO] [stdout]     | |______- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout]     = note: this warning originates in the macro `mut_singleton` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 27  |         match addr_of_mut!(__INSTANCE) {
[INFO] [stdout]     |               ~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/hal/generic/twi.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 554 |         &mut INSTANCE
[INFO] [stdout]     |         ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 554 |         addr_of_mut!(INSTANCE)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/hal/generic/twi.rs:554:9
[INFO] [stdout]     |
[INFO] [stdout] 554 |         &mut INSTANCE
[INFO] [stdout]     |         ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 554 |         addr_of_mut!(INSTANCE)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/concurrency/stack.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let base = &mut __ISR_STACK_BOTTOM as *mut u8;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: this will be a hard error in the 2024 edition
[INFO] [stdout]    = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let base = addr_of_mut!(__ISR_STACK_BOTTOM) as *mut u8;
[INFO] [stdout]    |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/concurrency/stack.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |       ((&__ISR_STACK_TOP as *const u8 as usize) - (&__ISR_STACK_BOTTOM as *const u8 as usize))+1
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 118 |       ((addr_of!(__ISR_STACK_TOP) as *const u8 as usize) - (&__ISR_STACK_BOTTOM as *const u8 as usize))+1
[INFO] [stdout]     |         ~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/concurrency/stack.rs:118:52
[INFO] [stdout]     |
[INFO] [stdout] 118 |       ((&__ISR_STACK_TOP as *const u8 as usize) - (&__ISR_STACK_BOTTOM as *const u8 as usize))+1
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 118 |       ((&__ISR_STACK_TOP as *const u8 as usize) - (addr_of!(__ISR_STACK_BOTTOM) as *const u8 as usize))+1
[INFO] [stdout]     |                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/concurrency/stack.rs:124:7
[INFO] [stdout]     |
[INFO] [stdout] 124 |       &__ISR_STACK_TOP as *const u8 as usize
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 124 |       addr_of!(__ISR_STACK_TOP) as *const u8 as usize
[INFO] [stdout]     |       ~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/concurrency/stack.rs:131:14
[INFO] [stdout]     |
[INFO] [stdout] 131 |         if *(&__ISR_STACK_BOTTOM as *const u8).offset(count as isize) != 0xa5 {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 131 |         if *(addr_of!(__ISR_STACK_BOTTOM) as *const u8).offset(count as isize) != 0xa5 {
[INFO] [stdout]     |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/concurrency/stack.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let base = &mut __ISR_STACK_BOTTOM as *mut u8;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: this will be a hard error in the 2024 edition
[INFO] [stdout]    = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 97 |     let base = addr_of_mut!(__ISR_STACK_BOTTOM) as *mut u8;
[INFO] [stdout]    |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/concurrency/stack.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |       ((&__ISR_STACK_TOP as *const u8 as usize) - (&__ISR_STACK_BOTTOM as *const u8 as usize))+1
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 118 |       ((addr_of!(__ISR_STACK_TOP) as *const u8 as usize) - (&__ISR_STACK_BOTTOM as *const u8 as usize))+1
[INFO] [stdout]     |         ~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/concurrency/stack.rs:118:52
[INFO] [stdout]     |
[INFO] [stdout] 118 |       ((&__ISR_STACK_TOP as *const u8 as usize) - (&__ISR_STACK_BOTTOM as *const u8 as usize))+1
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 118 |       ((&__ISR_STACK_TOP as *const u8 as usize) - (addr_of!(__ISR_STACK_BOTTOM) as *const u8 as usize))+1
[INFO] [stdout]     |                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/concurrency/stack.rs:124:7
[INFO] [stdout]     |
[INFO] [stdout] 124 |       &__ISR_STACK_TOP as *const u8 as usize
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 124 |       addr_of!(__ISR_STACK_TOP) as *const u8 as usize
[INFO] [stdout]     |       ~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/concurrency/stack.rs:131:14
[INFO] [stdout]     |
[INFO] [stdout] 131 |         if *(&__ISR_STACK_BOTTOM as *const u8).offset(count as isize) != 0xa5 {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 131 |         if *(addr_of!(__ISR_STACK_BOTTOM) as *const u8).offset(count as isize) != 0xa5 {
[INFO] [stdout]     |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `PortA` found for enum `PinIdentity` in the current scope
[INFO] [stdout]    --> src/event.rs:283:72
[INFO] [stdout]     |
[INFO] [stdout] 283 |     let event2 = OxideEventEnvelope::to(&DES, ButtonEvent(PinIdentity::PortA(0),ButtonState::Pressed));
[INFO] [stdout]     |                                                                        ^^^^^ variant or associated item not found in `PinIdentity`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/hal/generic/port.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout] 53  | pub enum PinIdentity {
[INFO] [stdout]     | -------------------- variant or associated item `PortA` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/stdout.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 |     match &mut STDIO {
[INFO] [stdout]    |           ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: this will be a hard error in the 2024 edition
[INFO] [stdout]    = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 74 |     match addr_of_mut!(STDIO) {
[INFO] [stdout]    |           ~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/oserror.rs:253:26
[INFO] [stdout]     |
[INFO] [stdout] 253 |       core::ptr::replace(&mut DEBUGPIN, Some(pin));
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 253 |       core::ptr::replace(addr_of_mut!(DEBUGPIN), Some(pin));
[INFO] [stdout]     |                          ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::hal::generic::cpu::Cpu`
[INFO] [stdout]   --> src/concurrency/interrupt.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use avr_oxide::hal::generic::cpu::Cpu;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::hal::generic::cpu::Cpu`
[INFO] [stdout]    --> src/concurrency/thread.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | use avr_oxide::hal::generic::cpu::Cpu;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::hal::generic::cpu::SleepControl`
[INFO] [stdout]    --> src/hal/generic/twi.rs:473:9
[INFO] [stdout]     |
[INFO] [stdout] 473 |     use avr_oxide::hal::generic::cpu::SleepControl;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::hal::generic::cpu::Cpu`
[INFO] [stdout]   --> src/concurrency/stack.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use avr_oxide::hal::generic::cpu::Cpu;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ContextSaveRestore`
[INFO] [stdout]   --> src/concurrency/scheduler.rs:12:36
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::hal::generic::cpu::{ContextSaveRestore, Cpu};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/hal/generic/datatypes.rs:254:28
[INFO] [stdout]     |
[INFO] [stdout] 254 |   fn write_byte(&mut self, val: u8) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bit`
[INFO] [stdout]    --> src/hal/generic/datatypes.rs:258:20
[INFO] [stdout]     |
[INFO] [stdout] 258 |   fn is_set(&self, bit: BitIndex) -> bool {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bit`
[INFO] [stdout]    --> src/hal/generic/datatypes.rs:262:20
[INFO] [stdout]     |
[INFO] [stdout] 262 |   fn is_clr(&self, bit: BitIndex) -> bool {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bits`
[INFO] [stdout]    --> src/hal/generic/datatypes.rs:266:67
[INFO] [stdout]     |
[INFO] [stdout] 266 |   fn set_isolated<B: BitMaskable>(&mut self, _isotoken: Isolated, bits: B) {
[INFO] [stdout]     |                                                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bits`
[INFO] [stdout]    --> src/hal/generic/datatypes.rs:278:67
[INFO] [stdout]     |
[INFO] [stdout] 278 |   fn clr_isolated<B: BitMaskable>(&mut self, _isotoken: Isolated, bits: B) {
[INFO] [stdout]     |                                                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/stdout.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 |     match &mut STDIO {
[INFO] [stdout]    |           ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]    = note: this will be a hard error in the 2024 edition
[INFO] [stdout]    = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 74 |     match addr_of_mut!(STDIO) {
[INFO] [stdout]    |           ~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/oserror.rs:253:26
[INFO] [stdout]     |
[INFO] [stdout] 253 |       core::ptr::replace(&mut DEBUGPIN, Some(pin));
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
[INFO] [stdout]     = note: this will be a hard error in the 2024 edition
[INFO] [stdout]     = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
[INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 253 |       core::ptr::replace(addr_of_mut!(DEBUGPIN), Some(pin));
[INFO] [stdout]     |                          ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::hal::generic::cpu::SleepControl`
[INFO] [stdout]    --> src/hal/generic/twi.rs:473:9
[INFO] [stdout]     |
[INFO] [stdout] 473 |     use avr_oxide::hal::generic::cpu::SleepControl;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::hal::generic::cpu::Cpu`
[INFO] [stdout]   --> src/concurrency/stack.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use avr_oxide::hal::generic::cpu::Cpu;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::hal::generic::cpu::Cpu`
[INFO] [stdout]   --> src/concurrency/interrupt.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use avr_oxide::hal::generic::cpu::Cpu;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ContextSaveRestore`
[INFO] [stdout]   --> src/concurrency/scheduler.rs:12:36
[INFO] [stdout]    |
[INFO] [stdout] 12 | use avr_oxide::hal::generic::cpu::{ContextSaveRestore, Cpu};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `avr_oxide::hal::generic::cpu::Cpu`
[INFO] [stdout]    --> src/concurrency/thread.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | use avr_oxide::hal::generic::cpu::Cpu;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]    --> src/hal/generic/timer.rs:787:41
[INFO] [stdout]     |
[INFO] [stdout] 787 |     fn set_clock_calibration(&mut self, source: RtcSource, calibration: RtcCalibration, prescaler: RtcPrescaler) {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `calibration`
[INFO] [stdout]    --> src/hal/generic/timer.rs:787:60
[INFO] [stdout]     |
[INFO] [stdout] 787 |     fn set_clock_calibration(&mut self, source: RtcSource, calibration: RtcCalibration, prescaler: RtcPrescaler) {
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_calibration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prescaler`
[INFO] [stdout]    --> src/hal/generic/timer.rs:787:89
[INFO] [stdout]     |
[INFO] [stdout] 787 |     fn set_clock_calibration(&mut self, source: RtcSource, calibration: RtcCalibration, prescaler: RtcPrescaler) {
[INFO] [stdout]     |                                                                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prescaler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rtcperiod`
[INFO] [stdout]    --> src/hal/generic/timer.rs:802:11
[INFO] [stdout]     |
[INFO] [stdout] 802 |       let rtcperiod : RtcPitPeriod = period.into();
[INFO] [stdout]     |           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rtcperiod`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/hal/generic/timer.rs:807:28
[INFO] [stdout]     |
[INFO] [stdout] 807 |     fn set_mode(&mut self, mode: TimerMode) {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&PinIdentity` is non-empty
[INFO] [stdout]   --> src/hal/generic/port.rs:52:41
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,Copy,PartialEq,Eq,uDebug,Persist)]
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: `PinIdentity` defined here
[INFO] [stdout]   --> src/hal/generic/port.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum PinIdentity {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    = note: the matched value is of type `&PinIdentity`
[INFO] [stdout]    = note: references are always considered inhabited
[INFO] [stdout]    = note: this error originates in the derive macro `Persist` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `get_pin`
[INFO] [stdout]    --> src/hal/generic/port.rs:715:54
[INFO] [stdout]     |
[INFO] [stdout] 715 |       fn isr(&'static mut self, _isotoken: Isolated, get_pin: fn(u8)->&'static dyn Pin) {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_get_pin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/hal/generic/port.rs:718:32
[INFO] [stdout]     |
[INFO] [stdout] 718 |       fn listen(&'static self, p: u8, handler: PinIsrCallback){
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handler`
[INFO] [stdout]    --> src/hal/generic/port.rs:718:39
[INFO] [stdout]     |
[INFO] [stdout] 718 |       fn listen(&'static self, p: u8, handler: PinIsrCallback){
[INFO] [stdout]     |                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp`
[INFO] [stdout]    --> src/hal/generic/cpu.rs:197:33
[INFO] [stdout]     |
[INFO] [stdout] 197 |   unsafe fn write_sp(&mut self, sp: u16) {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_sp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sregval`
[INFO] [stdout]    --> src/hal/generic/cpu.rs:213:35
[INFO] [stdout]     |
[INFO] [stdout] 213 |   unsafe fn write_sreg(&mut self, sregval: u8) {
[INFO] [stdout]     |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sregval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/hal/generic/cpu.rs:564:34
[INFO] [stdout]     |
[INFO] [stdout] 564 |     fn permit_standby(&mut self, token: PermitStandbyToken) {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/hal/generic/cpu.rs:576:31
[INFO] [stdout]     |
[INFO] [stdout] 576 |     fn permit_idle(&mut self, token: PermitIdleToken) {
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:285:28
[INFO] [stdout]     |
[INFO] [stdout] 285 |     fn read_at_into(&self, offset: usize, dest: &mut [u8]) -> usize {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:285:43
[INFO] [stdout]     |
[INFO] [stdout] 285 |     fn read_at_into(&self, offset: usize, dest: &mut [u8]) -> usize {
[INFO] [stdout]     |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:289:33
[INFO] [stdout]     |
[INFO] [stdout] 289 |     fn write_at_from(&mut self, offset: usize, src: &[u8]) -> usize {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:289:48
[INFO] [stdout]     |
[INFO] [stdout] 289 |     fn write_at_from(&mut self, offset: usize, src: &[u8]) -> usize {
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:297:32
[INFO] [stdout]     |
[INFO] [stdout] 297 |     fn writer_at(&'e mut self, offset: usize) -> Self::W {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:305:28
[INFO] [stdout]     |
[INFO] [stdout] 305 |     fn reader_at(&'e self, offset: usize) -> Self::R {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/hal/generic/datatypes.rs:254:28
[INFO] [stdout]     |
[INFO] [stdout] 254 |   fn write_byte(&mut self, val: u8) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bit`
[INFO] [stdout]    --> src/hal/generic/datatypes.rs:258:20
[INFO] [stdout]     |
[INFO] [stdout] 258 |   fn is_set(&self, bit: BitIndex) -> bool {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bit`
[INFO] [stdout]    --> src/hal/generic/datatypes.rs:262:20
[INFO] [stdout]     |
[INFO] [stdout] 262 |   fn is_clr(&self, bit: BitIndex) -> bool {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bits`
[INFO] [stdout]    --> src/hal/generic/datatypes.rs:266:67
[INFO] [stdout]     |
[INFO] [stdout] 266 |   fn set_isolated<B: BitMaskable>(&mut self, _isotoken: Isolated, bits: B) {
[INFO] [stdout]     |                                                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bits`
[INFO] [stdout]    --> src/hal/generic/datatypes.rs:278:67
[INFO] [stdout]     |
[INFO] [stdout] 278 |   fn clr_isolated<B: BitMaskable>(&mut self, _isotoken: Isolated, bits: B) {
[INFO] [stdout]     |                                                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]    --> src/hal/generic/timer.rs:787:41
[INFO] [stdout]     |
[INFO] [stdout] 787 |     fn set_clock_calibration(&mut self, source: RtcSource, calibration: RtcCalibration, prescaler: RtcPrescaler) {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `calibration`
[INFO] [stdout]    --> src/hal/generic/timer.rs:787:60
[INFO] [stdout]     |
[INFO] [stdout] 787 |     fn set_clock_calibration(&mut self, source: RtcSource, calibration: RtcCalibration, prescaler: RtcPrescaler) {
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_calibration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prescaler`
[INFO] [stdout]    --> src/hal/generic/timer.rs:787:89
[INFO] [stdout]     |
[INFO] [stdout] 787 |     fn set_clock_calibration(&mut self, source: RtcSource, calibration: RtcCalibration, prescaler: RtcPrescaler) {
[INFO] [stdout]     |                                                                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prescaler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rtcperiod`
[INFO] [stdout]    --> src/hal/generic/timer.rs:802:11
[INFO] [stdout]     |
[INFO] [stdout] 802 |       let rtcperiod : RtcPitPeriod = period.into();
[INFO] [stdout]     |           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rtcperiod`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> src/hal/generic/timer.rs:807:28
[INFO] [stdout]     |
[INFO] [stdout] 807 |     fn set_mode(&mut self, mode: TimerMode) {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/hal/generic/twi.rs:536:47
[INFO] [stdout]     |
[INFO] [stdout] 536 |       pub(crate) unsafe fn instance_from_addr(addr: u16) -> &'static mut Self {
[INFO] [stdout]     |                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&PinIdentity` is non-empty
[INFO] [stdout]   --> src/hal/generic/port.rs:52:41
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,Copy,PartialEq,Eq,uDebug,Persist)]
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: `PinIdentity` defined here
[INFO] [stdout]   --> src/hal/generic/port.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum PinIdentity {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    = note: the matched value is of type `&PinIdentity`
[INFO] [stdout]    = note: references are always considered inhabited
[INFO] [stdout]    = note: this error originates in the derive macro `Persist` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `get_pin`
[INFO] [stdout]    --> src/hal/generic/port.rs:715:54
[INFO] [stdout]     |
[INFO] [stdout] 715 |       fn isr(&'static mut self, _isotoken: Isolated, get_pin: fn(u8)->&'static dyn Pin) {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_get_pin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/hal/generic/port.rs:718:32
[INFO] [stdout]     |
[INFO] [stdout] 718 |       fn listen(&'static self, p: u8, handler: PinIsrCallback){
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handler`
[INFO] [stdout]    --> src/hal/generic/port.rs:718:39
[INFO] [stdout]     |
[INFO] [stdout] 718 |       fn listen(&'static self, p: u8, handler: PinIsrCallback){
[INFO] [stdout]     |                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp`
[INFO] [stdout]    --> src/hal/generic/cpu.rs:197:33
[INFO] [stdout]     |
[INFO] [stdout] 197 |   unsafe fn write_sp(&mut self, sp: u16) {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_sp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sregval`
[INFO] [stdout]    --> src/hal/generic/cpu.rs:213:35
[INFO] [stdout]     |
[INFO] [stdout] 213 |   unsafe fn write_sreg(&mut self, sregval: u8) {
[INFO] [stdout]     |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sregval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `isotoken`
[INFO] [stdout]    --> src/concurrency/interrupt.rs:101:44
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub(crate) unsafe fn preemptive_reschedule(isotoken: Isolated) {
[INFO] [stdout]     |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_isotoken`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/hal/generic/cpu.rs:564:34
[INFO] [stdout]     |
[INFO] [stdout] 564 |     fn permit_standby(&mut self, token: PermitStandbyToken) {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/hal/generic/cpu.rs:576:31
[INFO] [stdout]     |
[INFO] [stdout] 576 |     fn permit_idle(&mut self, token: PermitIdleToken) {
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:285:28
[INFO] [stdout]     |
[INFO] [stdout] 285 |     fn read_at_into(&self, offset: usize, dest: &mut [u8]) -> usize {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:285:43
[INFO] [stdout]     |
[INFO] [stdout] 285 |     fn read_at_into(&self, offset: usize, dest: &mut [u8]) -> usize {
[INFO] [stdout]     |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:289:33
[INFO] [stdout]     |
[INFO] [stdout] 289 |     fn write_at_from(&mut self, offset: usize, src: &[u8]) -> usize {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:289:48
[INFO] [stdout]     |
[INFO] [stdout] 289 |     fn write_at_from(&mut self, offset: usize, src: &[u8]) -> usize {
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:297:32
[INFO] [stdout]     |
[INFO] [stdout] 297 |     fn writer_at(&'e mut self, offset: usize) -> Self::W {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/hal/generic/eeprom.rs:305:28
[INFO] [stdout]     |
[INFO] [stdout] 305 |     fn reader_at(&'e self, offset: usize) -> Self::R {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/hal/generic/twi.rs:536:47
[INFO] [stdout]     |
[INFO] [stdout] 536 |       pub(crate) unsafe fn instance_from_addr(addr: u16) -> &'static mut Self {
[INFO] [stdout]     |                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `string`
[INFO] [stdout]   --> src/util/debug.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn print(string: &str){
[INFO] [stdout]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `isotoken`
[INFO] [stdout]    --> src/concurrency/interrupt.rs:101:44
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub(crate) unsafe fn preemptive_reschedule(isotoken: Isolated) {
[INFO] [stdout]     |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_isotoken`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evt`
[INFO] [stdout]    --> src/event.rs:231:29
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn process_event(&self, evt: OxideEvent) {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_evt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/event.rs:240:9
[INFO] [stdout]     |
[INFO] [stdout] 240 |     let mut event1 = OxideEventEnvelope::to(&DES, ClockTick(TimerIdentity::Tcb0, 12));
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/event.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 255 |     let mut event1 = OxideEventEnvelope::to(&DES, SerialEvent(SerialPortIdentity::Usart0, SerialState::ReadAvailable));
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/event.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 260 |     let mut event1 = OxideEventEnvelope::to(&DES, SerialEvent(SerialPortIdentity::Usart0, SerialState::BreakDetected));
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/event.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |     let mut event1 = OxideEventEnvelope::to(&DES, SerialEvent(SerialPortIdentity::Usart0, SerialState::ReadAvailable));
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 25 previous errors; 74 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0277, E0432, E0433, E0747.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `avr-oxide` (lib) due to 26 previous errors; 74 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `string`
[INFO] [stdout]   --> src/util/debug.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn print(string: &str){
[INFO] [stdout]    |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `discard`
[INFO] [stdout]    --> src/alloc.rs:665:11
[INFO] [stdout]     |
[INFO] [stdout] 665 |       let discard = global.alloc(Layout::from_size_align(3, 2).unwrap());
[INFO] [stdout]     |           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_discard`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/alloc.rs:729:11
[INFO] [stdout]     |
[INFO] [stdout] 729 |       let mut heap = global.heap.get().as_mut().unwrap();
[INFO] [stdout]     |           ----^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `borrow_one`
[INFO] [stdout]    --> src/staticwrap.rs:246:9
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let borrow_one = thing.borrow();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_borrow_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `borrow_two`
[INFO] [stdout]    --> src/staticwrap.rs:247:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let borrow_two = thing.borrow();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_borrow_two`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `borrow_one`
[INFO] [stdout]    --> src/staticwrap.rs:255:9
[INFO] [stdout]     |
[INFO] [stdout] 255 |     let borrow_one = thing.borrow();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_borrow_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `borrow_two`
[INFO] [stdout]    --> src/staticwrap.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 256 |     let borrow_two = thing.borrow_mut();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_borrow_two`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 27 previous errors; 93 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0277, E0432, E0433, E0599, E0747.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `avr-oxide` (lib test) due to 28 previous errors; 93 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "e632bdc9edb0b4dc5875fdf9bee344cbf94264d34d37dddb39f6f16937e42008", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e632bdc9edb0b4dc5875fdf9bee344cbf94264d34d37dddb39f6f16937e42008", kill_on_drop: false }`
[INFO] [stdout] e632bdc9edb0b4dc5875fdf9bee344cbf94264d34d37dddb39f6f16937e42008
