[INFO] cloning repository https://github.com/InsidiousMind/spcp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/InsidiousMind/spcp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FInsidiousMind%2Fspcp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FInsidiousMind%2Fspcp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 157a7a1567f5e8744f22876874b4df2d3b3fec8f
[INFO] checking InsidiousMind/spcp against try#a3dffdb3a32d0dedc198f9de7d43173f3eb6727b for pr-136303
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FInsidiousMind%2Fspcp" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/InsidiousMind/spcp on toolchain a3dffdb3a32d0dedc198f9de7d43173f3eb6727b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/InsidiousMind/spcp
[INFO] finished tweaking git repo https://github.com/InsidiousMind/spcp
[INFO] tweaked toml for git repo https://github.com/InsidiousMind/spcp written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/InsidiousMind/spcp already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c80049f3b88b82089a44e0f06d0d6029d44b96b7257e55a1cd63dbc9f4c33334" "/opt/rustwide/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 73c9e93ae55db4c9ca84139c6bff58df27736b206ed692241c7a0ed871b957b6
[INFO] running `Command { std: "docker" "start" "-a" "73c9e93ae55db4c9ca84139c6bff58df27736b206ed692241c7a0ed871b957b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "73c9e93ae55db4c9ca84139c6bff58df27736b206ed692241c7a0ed871b957b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "73c9e93ae55db4c9ca84139c6bff58df27736b206ed692241c7a0ed871b957b6", kill_on_drop: false }`
[INFO] [stdout] 73c9e93ae55db4c9ca84139c6bff58df27736b206ed692241c7a0ed871b957b6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:c80049f3b88b82089a44e0f06d0d6029d44b96b7257e55a1cd63dbc9f4c33334" "/opt/rustwide/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 79143d37d5078b05c80affa5b68cf4ddf23527eb2f5844c3858f6d0afc1a9088
[INFO] running `Command { std: "docker" "start" "-a" "79143d37d5078b05c80affa5b68cf4ddf23527eb2f5844c3858f6d0afc1a9088", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking spcp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: lint `exceeding_bitshifts` has been renamed to `arithmetic_overflow`
[INFO] [stdout]  --> src/lib.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![allow(exceeding_bitshifts)]
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^ help: use the new name: `arithmetic_overflow`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `state::State`
[INFO] [stdout]  --> src/macros.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use state::State;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SPC_DSP::counter_mask`
[INFO] [stdout]  --> src/macros.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use SPC_DSP::counter_mask;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `sample_t` should have an upper camel case name
[INFO] [stdout]  --> src/lib.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type sample_t = i16;
[INFO] [stdout]   |          ^^^^^^^^ help: convert the identifier to upper camel case: `SampleT`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr`
[INFO] [stdout]  --> src/SPC_DSP.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ptr;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `state::NULL_U8 as NULL_U8`
[INFO] [stdout]  --> src/SPC_DSP.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use state::NULL_U8 as NULL_U8;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macros`
[INFO] [stdout]   --> src/SPC_DSP.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use macros;
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SPC_DSP` should have an upper camel case name
[INFO] [stdout]   --> src/SPC_DSP.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct SPC_DSP {
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to upper camel case: `SpcDsp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/SPC_DSP.rs:97:26
[INFO] [stdout]    |
[INFO] [stdout] 97 |         self.m.set_phase((new_phase & 31)); //raises can't mutably borrow immutable field
[INFO] [stdout]    |                          ^              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 97 -         self.m.set_phase((new_phase & 31)); //raises can't mutably borrow immutable field
[INFO] [stdout] 97 +         self.m.set_phase(new_phase & 31); //raises can't mutably borrow immutable field
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/SPC_DSP.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             'outer: loop {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of a double negation
[INFO] [stdout]    --> src/SPC_DSP.rs:162:24
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     if --kon_delay >= 0 {
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the prefix `--` could be misinterpreted as a decrement operator which exists in other languages
[INFO] [stdout]     = note: use `-= 1` if you meant to decrement the value
[INFO] [stdout]     = note: `#[warn(double_negations)]` on by default
[INFO] [stdout] help: add parentheses for clarity
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     if -(-kon_delay) >= 0 {
[INFO] [stdout]     |                         +          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/SPC_DSP.rs:148:77
[INFO] [stdout]     |
[INFO] [stdout] 148 | ...                   dir[(v_regs[vreg!(srcn)] * 4 + $i * 2) as usize];
[INFO] [stdout]     |                                                                       ^
[INFO] [stdout] ...
[INFO] [stdout] 165 | ...                   v.brr_addr   =  sample_ptr!(0) as i64;
[INFO] [stdout]     |                                       -------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `sample_ptr` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/SPC_DSP.rs:211:53
[INFO] [stdout]     |
[INFO] [stdout] 211 | ...                   output = unsafe{(*fwd.wrapping_offset(0) * *_in.wrapping_offset(0))}  >> 11;
[INFO] [stdout]     |                                       ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 211 -                                     output = unsafe{(*fwd.wrapping_offset(0) * *_in.wrapping_offset(0))}  >> 11;
[INFO] [stdout] 211 +                                     output = unsafe{*fwd.wrapping_offset(0) * *_in.wrapping_offset(0)}  >> 11;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/SPC_DSP.rs:212:54
[INFO] [stdout]     |
[INFO] [stdout] 212 | ...                   output += unsafe{(*fwd.wrapping_offset(1) * *_in.wrapping_offset(1))} >> 11;
[INFO] [stdout]     |                                        ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 212 -                                     output += unsafe{(*fwd.wrapping_offset(1) * *_in.wrapping_offset(1))} >> 11;
[INFO] [stdout] 212 +                                     output += unsafe{*fwd.wrapping_offset(1) * *_in.wrapping_offset(1)} >> 11;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `exceeding_bitshifts` has been renamed to `arithmetic_overflow`
[INFO] [stdout]  --> src/lib.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![allow(exceeding_bitshifts)]
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^ help: use the new name: `arithmetic_overflow`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `state::State`
[INFO] [stdout]  --> src/macros.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use state::State;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SPC_DSP::counter_mask`
[INFO] [stdout]  --> src/macros.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use SPC_DSP::counter_mask;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `sample_t` should have an upper camel case name
[INFO] [stdout]  --> src/lib.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type sample_t = i16;
[INFO] [stdout]   |          ^^^^^^^^ help: convert the identifier to upper camel case: `SampleT`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr`
[INFO] [stdout]  --> src/SPC_DSP.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ptr;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `state::NULL_U8 as NULL_U8`
[INFO] [stdout]  --> src/SPC_DSP.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use state::NULL_U8 as NULL_U8;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macros`
[INFO] [stdout]   --> src/SPC_DSP.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use macros;
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SPC_DSP` should have an upper camel case name
[INFO] [stdout]   --> src/SPC_DSP.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct SPC_DSP {
[INFO] [stdout]    |            ^^^^^^^ help: convert the identifier to upper camel case: `SpcDsp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/SPC_DSP.rs:97:26
[INFO] [stdout]    |
[INFO] [stdout] 97 |         self.m.set_phase((new_phase & 31)); //raises can't mutably borrow immutable field
[INFO] [stdout]    |                          ^              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 97 -         self.m.set_phase((new_phase & 31)); //raises can't mutably borrow immutable field
[INFO] [stdout] 97 +         self.m.set_phase(new_phase & 31); //raises can't mutably borrow immutable field
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/SPC_DSP.rs:213:54
[INFO] [stdout]     |
[INFO] [stdout] 213 | ...                   output += unsafe{(*rev.wrapping_offset(1) * *_in.wrapping_offset(2))} >> 11;
[INFO] [stdout]     |                                        ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 213 -                                     output += unsafe{(*rev.wrapping_offset(1) * *_in.wrapping_offset(2))} >> 11;
[INFO] [stdout] 213 +                                     output += unsafe{*rev.wrapping_offset(1) * *_in.wrapping_offset(2)} >> 11;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/SPC_DSP.rs:215:54
[INFO] [stdout]     |
[INFO] [stdout] 215 | ...                   output += unsafe{(*rev.wrapping_offset(0) * *_in.wrapping_offset(3))} >> 11;
[INFO] [stdout]     |                                        ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 215 -                                     output += unsafe{(*rev.wrapping_offset(0) * *_in.wrapping_offset(3))} >> 11;
[INFO] [stdout] 215 +                                     output += unsafe{*rev.wrapping_offset(0) * *_in.wrapping_offset(3)} >> 11;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config::*`
[INFO] [stdout]  --> src/voice.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use config::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macros`
[INFO] [stdout]  --> src/state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use macros;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr`
[INFO] [stdout]  --> src/state.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ptr;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config::*`
[INFO] [stdout]   --> src/state.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use config::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `sample_t` should have an upper camel case name
[INFO] [stdout]   --> src/state.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub type sample_t = i16;
[INFO] [stdout]    |          ^^^^^^^^ help: convert the identifier to upper camel case: `SampleT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_mvoll` should have an upper camel case name
[INFO] [stdout]  --> src/registers.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     r_mvoll = 0x0C,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `RMvoll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_mvolr` should have an upper camel case name
[INFO] [stdout]  --> src/registers.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     r_mvolr = 0x1C,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `RMvolr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_evoll` should have an upper camel case name
[INFO] [stdout]  --> src/registers.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     r_evoll = 0x2C,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `REvoll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_evolr` should have an upper camel case name
[INFO] [stdout]  --> src/registers.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     r_evolr = 0x3C,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `REvolr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_kon` should have an upper camel case name
[INFO] [stdout]  --> src/registers.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     r_kon = 0x4C,
[INFO] [stdout]   |     ^^^^^ help: convert the identifier to upper camel case: `RKon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_koff` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     r_koff = 0x5C,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `RKoff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_flg` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     r_flg = 0x6C,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `RFlg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_endx` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     r_endx = 0x7C,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `REndx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_efb` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     r_efb = 0x0D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `REfb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_pmon` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     r_pmon = 0x2D,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `RPmon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_non` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     r_non = 0x3D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `RNon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_eon` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     r_eon = 0x4D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `REon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_dir` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     r_dir = 0x5D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `RDir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_esa` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     r_esa = 0x6D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `REsa`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_edl` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     r_edl = 0x7D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `REdl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_fir` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     r_fir = 0x0F, // 8 coefficients at 0x0F, 0x1F ... 0x7F
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `RFir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_voll` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     v_voll = 0x00,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VVoll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_volr` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     v_volr = 0x01,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VVolr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_pitchl` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     v_pitchl = 0x02,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `VPitchl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_pitchh` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     v_pitchh = 0x03,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `VPitchh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_srcn` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     v_srcn = 0x04,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VSrcn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_adsr0` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     v_adsr0 = 0x05,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `VAdsr0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/SPC_DSP.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             'outer: loop {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of a double negation
[INFO] [stdout]    --> src/SPC_DSP.rs:162:24
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     if --kon_delay >= 0 {
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the prefix `--` could be misinterpreted as a decrement operator which exists in other languages
[INFO] [stdout]     = note: use `-= 1` if you meant to decrement the value
[INFO] [stdout]     = note: `#[warn(double_negations)]` on by default
[INFO] [stdout] help: add parentheses for clarity
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     if -(-kon_delay) >= 0 {
[INFO] [stdout]     |                         +          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/SPC_DSP.rs:148:77
[INFO] [stdout]     |
[INFO] [stdout] 148 | ...                   dir[(v_regs[vreg!(srcn)] * 4 + $i * 2) as usize];
[INFO] [stdout]     |                                                                       ^
[INFO] [stdout] ...
[INFO] [stdout] 165 | ...                   v.brr_addr   =  sample_ptr!(0) as i64;
[INFO] [stdout]     |                                       -------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `sample_ptr` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/SPC_DSP.rs:211:53
[INFO] [stdout]     |
[INFO] [stdout] 211 | ...                   output = unsafe{(*fwd.wrapping_offset(0) * *_in.wrapping_offset(0))}  >> 11;
[INFO] [stdout]     |                                       ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 211 -                                     output = unsafe{(*fwd.wrapping_offset(0) * *_in.wrapping_offset(0))}  >> 11;
[INFO] [stdout] 211 +                                     output = unsafe{*fwd.wrapping_offset(0) * *_in.wrapping_offset(0)}  >> 11;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/SPC_DSP.rs:212:54
[INFO] [stdout]     |
[INFO] [stdout] 212 | ...                   output += unsafe{(*fwd.wrapping_offset(1) * *_in.wrapping_offset(1))} >> 11;
[INFO] [stdout]     |                                        ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 212 -                                     output += unsafe{(*fwd.wrapping_offset(1) * *_in.wrapping_offset(1))} >> 11;
[INFO] [stdout] 212 +                                     output += unsafe{*fwd.wrapping_offset(1) * *_in.wrapping_offset(1)} >> 11;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/SPC_DSP.rs:213:54
[INFO] [stdout]     |
[INFO] [stdout] 213 | ...                   output += unsafe{(*rev.wrapping_offset(1) * *_in.wrapping_offset(2))} >> 11;
[INFO] [stdout]     |                                        ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 213 -                                     output += unsafe{(*rev.wrapping_offset(1) * *_in.wrapping_offset(2))} >> 11;
[INFO] [stdout] 213 +                                     output += unsafe{*rev.wrapping_offset(1) * *_in.wrapping_offset(2)} >> 11;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/SPC_DSP.rs:215:54
[INFO] [stdout]     |
[INFO] [stdout] 215 | ...                   output += unsafe{(*rev.wrapping_offset(0) * *_in.wrapping_offset(3))} >> 11;
[INFO] [stdout]     |                                        ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 215 -                                     output += unsafe{(*rev.wrapping_offset(0) * *_in.wrapping_offset(3))} >> 11;
[INFO] [stdout] 215 +                                     output += unsafe{*rev.wrapping_offset(0) * *_in.wrapping_offset(3)} >> 11;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config::*`
[INFO] [stdout]  --> src/voice.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use config::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macros`
[INFO] [stdout]  --> src/state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use macros;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr`
[INFO] [stdout]  --> src/state.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ptr;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `config::*`
[INFO] [stdout]   --> src/state.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use config::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `sample_t` should have an upper camel case name
[INFO] [stdout]   --> src/state.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub type sample_t = i16;
[INFO] [stdout]    |          ^^^^^^^^ help: convert the identifier to upper camel case: `SampleT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_mvoll` should have an upper camel case name
[INFO] [stdout]  --> src/registers.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     r_mvoll = 0x0C,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `RMvoll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_mvolr` should have an upper camel case name
[INFO] [stdout]  --> src/registers.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     r_mvolr = 0x1C,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `RMvolr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_evoll` should have an upper camel case name
[INFO] [stdout]  --> src/registers.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     r_evoll = 0x2C,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `REvoll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_evolr` should have an upper camel case name
[INFO] [stdout]  --> src/registers.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     r_evolr = 0x3C,
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to upper camel case: `REvolr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_kon` should have an upper camel case name
[INFO] [stdout]  --> src/registers.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     r_kon = 0x4C,
[INFO] [stdout]   |     ^^^^^ help: convert the identifier to upper camel case: `RKon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_koff` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     r_koff = 0x5C,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `RKoff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_flg` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     r_flg = 0x6C,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `RFlg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_endx` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     r_endx = 0x7C,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `REndx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_efb` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     r_efb = 0x0D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `REfb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_pmon` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     r_pmon = 0x2D,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `RPmon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_non` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     r_non = 0x3D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `RNon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_eon` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     r_eon = 0x4D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `REon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_adsr1` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     v_adsr1 = 0x06,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `VAdsr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_dir` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     r_dir = 0x5D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `RDir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_esa` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     r_esa = 0x6D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `REsa`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_gain` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     v_gain = 0x07,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VGain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_edl` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     r_edl = 0x7D,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `REdl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_envx` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     v_envx = 0x08,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VEnvx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `r_fir` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     r_fir = 0x0F, // 8 coefficients at 0x0F, 0x1F ... 0x7F
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to upper camel case: `RFir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_outx` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     v_outx = 0x09,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VOutx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_voll` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     v_voll = 0x00,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VVoll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `env_release` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     env_release,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EnvRelease`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_volr` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     v_volr = 0x01,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VVolr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `env_attack` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     env_attack,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `EnvAttack`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_pitchl` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     v_pitchl = 0x02,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `VPitchl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `env_decay` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     env_decay,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `EnvDecay`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_pitchh` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     v_pitchh = 0x03,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `VPitchh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `env_sustain` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     env_sustain,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EnvSustain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_srcn` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     v_srcn = 0x04,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VSrcn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `associated_consts` has been stable since 1.20.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(associated_consts)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_adsr0` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     v_adsr0 = 0x05,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `VAdsr0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_adsr1` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     v_adsr1 = 0x06,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `VAdsr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_gain` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     v_gain = 0x07,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VGain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_envx` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     v_envx = 0x08,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VEnvx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `v_outx` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     v_outx = 0x09,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `VOutx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `env_release` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     env_release,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EnvRelease`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `env_attack` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     env_attack,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `EnvAttack`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `env_decay` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     env_decay,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `EnvDecay`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `env_sustain` should have an upper camel case name
[INFO] [stdout]   --> src/registers.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     env_sustain,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EnvSustain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `associated_consts` has been stable since 1.20.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(associated_consts)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/SPC_DSP.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut i:i64;
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/SPC_DSP.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut i:i64;
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `break_outer`
[INFO] [stdout]   --> src/SPC_DSP.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let break_outer: bool = true;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_break_outer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `break_outer`
[INFO] [stdout]   --> src/SPC_DSP.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let break_outer: bool = true;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_break_outer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mvoll` is never read
[INFO] [stdout]    --> src/SPC_DSP.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             mvoll = -mvoll;
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mvoll` is never read
[INFO] [stdout]    --> src/SPC_DSP.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             mvoll = -mvoll;
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `main_out_l` is assigned to, but never used
[INFO] [stdout]    --> src/SPC_DSP.rs:135:25
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 let mut main_out_l = 0;
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_main_out_l` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `main_out_l` is assigned to, but never used
[INFO] [stdout]    --> src/SPC_DSP.rs:135:25
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 let mut main_out_l = 0;
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_main_out_l` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `main_out_r` is assigned to, but never used
[INFO] [stdout]    --> src/SPC_DSP.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 136 |                 let mut main_out_r = 0;
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_main_out_r` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `main_out_r` is assigned to, but never used
[INFO] [stdout]    --> src/SPC_DSP.rs:136:25
[INFO] [stdout]     |
[INFO] [stdout] 136 |                 let mut main_out_r = 0;
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_main_out_r` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `echo_out_l` is assigned to, but never used
[INFO] [stdout]    --> src/SPC_DSP.rs:137:25
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 let mut echo_out_l = 0;
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_echo_out_l` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `echo_out_l` is assigned to, but never used
[INFO] [stdout]    --> src/SPC_DSP.rs:137:25
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 let mut echo_out_l = 0;
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_echo_out_l` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `echo_out_r` is assigned to, but never used
[INFO] [stdout]    --> src/SPC_DSP.rs:138:25
[INFO] [stdout]     |
[INFO] [stdout] 138 |                 let mut echo_out_r = 0;
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_echo_out_r` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `echo_out_r` is assigned to, but never used
[INFO] [stdout]    --> src/SPC_DSP.rs:138:25
[INFO] [stdout]     |
[INFO] [stdout] 138 |                 let mut echo_out_r = 0;
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_echo_out_r` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pitch` is never read
[INFO] [stdout]    --> src/SPC_DSP.rs:158:25
[INFO] [stdout]     |
[INFO] [stdout] 158 |                         pitch += ((pmon_input >> 5) * pitch) >> 10;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pitch` is never read
[INFO] [stdout]    --> src/SPC_DSP.rs:158:25
[INFO] [stdout]     |
[INFO] [stdout] 158 |                         pitch += ((pmon_input >> 5) * pitch) >> 10;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pitch` is never read
[INFO] [stdout]    --> src/SPC_DSP.rs:181:25
[INFO] [stdout]     |
[INFO] [stdout] 181 |                         pitch = 0;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pitch` is never read
[INFO] [stdout]    --> src/SPC_DSP.rs:181:25
[INFO] [stdout]     |
[INFO] [stdout] 181 |                         pitch = 0;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v_regs`
[INFO] [stdout]    --> src/SPC_DSP.rs:340:21
[INFO] [stdout]     |
[INFO] [stdout] 340 |                 let v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_v_regs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v_regs`
[INFO] [stdout]    --> src/SPC_DSP.rs:340:21
[INFO] [stdout]     |
[INFO] [stdout] 340 |                 let v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_v_regs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/SPC_DSP.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[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/SPC_DSP.rs:192:33
[INFO] [stdout]     |
[INFO] [stdout] 192 | ...                   let mut offset: isize = (v.interp_pos >> (3 & 0x1FE)) as isize;
[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/SPC_DSP.rs:294:37
[INFO] [stdout]     |
[INFO] [stdout] 294 | ...                   let mut mode: i64;
[INFO] [stdout]     |                           ----^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0503]: cannot use `self.m.regs[_]` because it was mutably borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:157:26
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 148 |                             dir[(v_regs[vreg!(srcn)] * 4 + $i * 2) as usize];
[INFO] [stdout]     |                                  ------------------- borrow later used here
[INFO] [stdout] ...
[INFO] [stdout] 157 |                     if ((self.m.regs[reg!(pmon)] as i64) & vbit) != 0 {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^ use of borrowed `self.m.regs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0503]: cannot use `self.m.regs[_]` because it was mutably borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:210:38
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 210 |                                 if ((self.m.regs[reg!(non)] as i64) & vbit) == 0 {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^ use of borrowed `self.m.regs`
[INFO] [stdout] ...
[INFO] [stdout] 235 |                         v_regs[vreg!(outx)] = (output >> 8) as u8;
[INFO] [stdout]     |                         ------------------- borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0503]: cannot use `self.m.regs[_]` because it was mutably borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:229:34
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 229 |                             if ((self.m.regs[reg!(eon)] as i64) & vbit) != 0 {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^ use of borrowed `self.m.regs`
[INFO] [stdout] ...
[INFO] [stdout] 235 |                         v_regs[vreg!(outx)] = (output >> 8) as u8;
[INFO] [stdout]     |                         ------------------- borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0503]: cannot use `self.m.regs[_]` because it was mutably borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:239:25
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 239 |                     if ((self.m.regs[reg!(flg)]) & 0x80 != 0) || ((brr_header & 3) == 1) {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ use of borrowed `self.m.regs`
[INFO] [stdout] ...
[INFO] [stdout] 269 |                             let adsr0: i64 = v_regs[vreg!(adsr0)] as i64;
[INFO] [stdout]     |                                              -------------------- borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0503]: cannot use `self.m.regs[_]` because it was mutably borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 254 |                             self.m.regs[reg!(endx)] &= !vbit as u8;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of borrowed `self.m.regs`
[INFO] [stdout] ...
[INFO] [stdout] 269 |                             let adsr0: i64 = v_regs[vreg!(adsr0)] as i64;
[INFO] [stdout]     |                                              -------------------- borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0506]: cannot assign to `self.m.regs[_]` because it is borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs[_]` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 254 |                             self.m.regs[reg!(endx)] &= !vbit as u8;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `self.m.regs[_]` is assigned to here but it was already borrowed
[INFO] [stdout] ...
[INFO] [stdout] 269 |                             let adsr0: i64 = v_regs[vreg!(adsr0)] as i64;
[INFO] [stdout]     |                                              -------------------- borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `self.m.regs` as mutable more than once at a time
[INFO] [stdout]    --> src/SPC_DSP.rs:340:35
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- first mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 156 |                     let mut pitch: i64 = (v_regs[vreg!(pitchl)].to_le() & 0x3FFF) as i64;
[INFO] [stdout]     |                                           --------------------- first borrow later used here
[INFO] [stdout] ...
[INFO] [stdout] 340 |                 let v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                   ^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/SPC_DSP.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[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/SPC_DSP.rs:192:33
[INFO] [stdout]     |
[INFO] [stdout] 192 | ...                   let mut offset: isize = (v.interp_pos >> (3 & 0x1FE)) as isize;
[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/SPC_DSP.rs:294:37
[INFO] [stdout]     |
[INFO] [stdout] 294 | ...                   let mut mode: i64;
[INFO] [stdout]     |                           ----^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0503]: cannot use `self.m.regs[_]` because it was mutably borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:157:26
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 148 |                             dir[(v_regs[vreg!(srcn)] * 4 + $i * 2) as usize];
[INFO] [stdout]     |                                  ------------------- borrow later used here
[INFO] [stdout] ...
[INFO] [stdout] 157 |                     if ((self.m.regs[reg!(pmon)] as i64) & vbit) != 0 {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^ use of borrowed `self.m.regs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0503]: cannot use `self.m.regs[_]` because it was mutably borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:210:38
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 210 |                                 if ((self.m.regs[reg!(non)] as i64) & vbit) == 0 {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^ use of borrowed `self.m.regs`
[INFO] [stdout] ...
[INFO] [stdout] 235 |                         v_regs[vreg!(outx)] = (output >> 8) as u8;
[INFO] [stdout]     |                         ------------------- borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0503]: cannot use `self.m.regs[_]` because it was mutably borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:229:34
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 229 |                             if ((self.m.regs[reg!(eon)] as i64) & vbit) != 0 {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^ use of borrowed `self.m.regs`
[INFO] [stdout] ...
[INFO] [stdout] 235 |                         v_regs[vreg!(outx)] = (output >> 8) as u8;
[INFO] [stdout]     |                         ------------------- borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0503]: cannot use `self.m.regs[_]` because it was mutably borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:239:25
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 239 |                     if ((self.m.regs[reg!(flg)]) & 0x80 != 0) || ((brr_header & 3) == 1) {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^ use of borrowed `self.m.regs`
[INFO] [stdout] ...
[INFO] [stdout] 269 |                             let adsr0: i64 = v_regs[vreg!(adsr0)] as i64;
[INFO] [stdout]     |                                              -------------------- borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0503]: cannot use `self.m.regs[_]` because it was mutably borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 254 |                             self.m.regs[reg!(endx)] &= !vbit as u8;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of borrowed `self.m.regs`
[INFO] [stdout] ...
[INFO] [stdout] 269 |                             let adsr0: i64 = v_regs[vreg!(adsr0)] as i64;
[INFO] [stdout]     |                                              -------------------- borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0506]: cannot assign to `self.m.regs[_]` because it is borrowed
[INFO] [stdout]    --> src/SPC_DSP.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- `self.m.regs[_]` is borrowed here
[INFO] [stdout] ...
[INFO] [stdout] 254 |                             self.m.regs[reg!(endx)] &= !vbit as u8;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `self.m.regs[_]` is assigned to here but it was already borrowed
[INFO] [stdout] ...
[INFO] [stdout] 269 |                             let adsr0: i64 = v_regs[vreg!(adsr0)] as i64;
[INFO] [stdout]     |                                              -------------------- borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `self.m.regs` as mutable more than once at a time
[INFO] [stdout]    --> src/SPC_DSP.rs:340:35
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                       ----------- first mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 156 |                     let mut pitch: i64 = (v_regs[vreg!(pitchl)].to_le() & 0x3FFF) as i64;
[INFO] [stdout]     |                                           --------------------- first borrow later used here
[INFO] [stdout] ...
[INFO] [stdout] 340 |                 let v_regs = &mut self.m.regs[vreg_start..Sizes::REGISTER_COUNT];
[INFO] [stdout]     |                                   ^^^^^^^^^^^ second mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `.split_at_mut(position)` to obtain two mutable non-overlapping sub-slices
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/state.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |         let mut n = self.counters[i as usize];
[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/state.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |         let mut n = self.counters[i as usize];
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0499, E0503, E0506.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0499`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0499, E0503, E0506.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0499`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `spcp` (lib) due to 7 previous errors; 68 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `spcp` (lib test) due to 7 previous errors; 68 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "79143d37d5078b05c80affa5b68cf4ddf23527eb2f5844c3858f6d0afc1a9088", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "79143d37d5078b05c80affa5b68cf4ddf23527eb2f5844c3858f6d0afc1a9088", kill_on_drop: false }`
[INFO] [stdout] 79143d37d5078b05c80affa5b68cf4ddf23527eb2f5844c3858f6d0afc1a9088
