[INFO] cloning repository https://github.com/jonas-schievink/breeze-emu
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jonas-schievink/breeze-emu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonas-schievink%2Fbreeze-emu", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonas-schievink%2Fbreeze-emu'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a36eab547e384b1951b589484f8d9251f393efa2
[INFO] testing jonas-schievink/breeze-emu against 1.69.0 for beta-1.70-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonas-schievink%2Fbreeze-emu" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/jonas-schievink/breeze-emu on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/jonas-schievink/breeze-emu
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/jonas-schievink/breeze-emu
[INFO] tweaked toml for git repo https://github.com/jonas-schievink/breeze-emu written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/jonas-schievink/breeze-emu 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" "+1.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sdl2 v0.24.0
[INFO] [stderr]   Downloaded coreaudio-rs v0.5.0
[INFO] [stderr]   Downloaded alsa-sys v0.1.1
[INFO] [stderr]   Downloaded cfg-if v0.1.1
[INFO] [stderr]   Downloaded coreaudio-sys v0.1.2
[INFO] [stderr]   Downloaded cpal v0.2.12
[INFO] [stderr]   Downloaded gl_generator v0.5.4
[INFO] [stderr]   Downloaded core-foundation v0.4.1
[INFO] [stderr]   Downloaded core-foundation-sys v0.4.1
[INFO] [stderr]   Downloaded sdl2-sys v0.24.0
[INFO] [stderr]   Downloaded glium v0.15.0
[INFO] [stderr]   Downloaded slicevec v0.1.0
[INFO] [stderr]   Downloaded rustasm6502 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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2f84d4e016fbbf6b5fe8da5b94d7159df5cb829cf270445809a6ed9daacd8633
[INFO] running `Command { std: "docker" "start" "-a" "2f84d4e016fbbf6b5fe8da5b94d7159df5cb829cf270445809a6ed9daacd8633", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2f84d4e016fbbf6b5fe8da5b94d7159df5cb829cf270445809a6ed9daacd8633", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f84d4e016fbbf6b5fe8da5b94d7159df5cb829cf270445809a6ed9daacd8633", kill_on_drop: false }`
[INFO] [stdout] 2f84d4e016fbbf6b5fe8da5b94d7159df5cb829cf270445809a6ed9daacd8633
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 931a4c4fe71ff86db3a62876deba59fb40109c1eec8449f68ffc41367cb41102
[INFO] running `Command { std: "docker" "start" "-a" "931a4c4fe71ff86db3a62876deba59fb40109c1eec8449f68ffc41367cb41102", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.24
[INFO] [stderr]    Compiling num-traits v0.1.39
[INFO] [stderr]    Compiling lazy_static v0.2.8
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]    Compiling siphasher v0.2.2
[INFO] [stderr]    Compiling log v0.3.8
[INFO] [stderr]    Compiling dtoa v0.4.1
[INFO] [stderr]    Compiling itoa v0.3.1
[INFO] [stderr]    Compiling serde v0.9.15
[INFO] [stderr]    Compiling winapi v0.2.8
[INFO] [stderr]    Compiling pkg-config v0.3.9
[INFO] [stderr]    Compiling bitflags v0.9.1
[INFO] [stderr]    Compiling bitflags v0.7.0
[INFO] [stderr]    Compiling semver v0.1.20
[INFO] [stderr]    Compiling khronos_api v1.0.1
[INFO] [stderr]    Compiling lazy_static v0.1.16
[INFO] [stderr]    Compiling gcc v0.3.51
[INFO] [stderr]    Compiling xml-rs v0.3.6
[INFO] [stderr]    Compiling crossbeam v0.2.10
[INFO] [stderr]    Compiling rustc-serialize v0.3.24
[INFO] [stderr]    Compiling xml-rs v0.6.0
[INFO] [stderr]    Compiling byteorder v0.5.3
[INFO] [stderr]    Compiling phf_shared v0.7.21
[INFO] [stderr]    Compiling breeze_backend v0.1.0 (/opt/rustwide/workdir/src/breeze_backend)
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling dbghelp-sys v0.2.0
[INFO] [stderr]    Compiling rustc_version v0.1.7
[INFO] [stderr]    Compiling ole32-sys v0.2.0
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backend/lib.rs:23:43
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub type BackendResult<T> = Result<T, Box<Error>>;
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/breeze_backend/lib.rs:1:9
[INFO] [stdout]    |
[INFO] [stdout] 1  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub type BackendResult<T> = Result<T, Box<dyn Error>>;
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rand v0.3.15
[INFO] [stderr]    Compiling phf v0.7.21
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling shared_library v0.1.6
[INFO] [stderr]    Compiling x11-dl v2.14.0
[INFO] [stderr]    Compiling alsa-sys v0.1.1
[INFO] [stderr]    Compiling num-integer v0.1.34
[INFO] [stderr]    Compiling backtrace v0.2.3
[INFO] [stderr]    Compiling sdl2-sys v0.24.0
[INFO] [stderr]    Compiling fs2 v0.2.5
[INFO] [stderr]    Compiling tempfile v2.1.5
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling memmap v0.2.3
[INFO] [stderr]    Compiling num-iter v0.1.33
[INFO] [stderr]    Compiling wayland-scanner v0.5.11
[INFO] [stderr]    Compiling gl_generator v0.5.4
[INFO] [stderr]    Compiling rustc-demangle v0.1.4
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling cfg-if v0.1.1
[INFO] [stderr]    Compiling backtrace-sys v0.1.11
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]    Compiling memchr v1.0.1
[INFO] [stderr]    Compiling phf_generator v0.7.21
[INFO] [stderr]    Compiling bitflags v0.6.0
[INFO] [stderr]    Compiling libsavestate v0.1.0 (/opt/rustwide/workdir/src/libsavestate)
[INFO] [stderr]    Compiling phf_codegen v0.7.21
[INFO] [stderr]    Compiling smallvec v0.1.8
[INFO] [stderr]    Compiling cpal v0.2.12
[INFO] [stderr]    Compiling aho-corasick v0.6.3
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/libsavestate/lib.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         try!(read_exact(r, &mut val));
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/libsavestate/lib.rs:5:9
[INFO] [stdout]    |
[INFO] [stdout] 5  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:108:21
[INFO] [stdout]     |
[INFO] [stdout] 108 |             None => try!(false.save_state(w)),
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 try!(true.save_state(w));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 try!(t.save_state(w));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         try!(read_exact(r, &mut val));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |                 try!(t.restore_state(r));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:141:21
[INFO] [stdout]     |
[INFO] [stdout] 141 |                       try!(t.save_state(w))
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 | / impl_fixed_size_array!(
[INFO] [stdout] 158 | |     0 1 2 3 4 5 6 7 8
[INFO] [stdout] 159 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_fixed_size_array` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                       try!(t.restore_state(r));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 | / impl_fixed_size_array!(
[INFO] [stdout] 158 | |     0 1 2 3 4 5 6 7 8
[INFO] [stdout] 159 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_fixed_size_array` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |         try!(self.len().save_state(w));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |             try!(item.save_state(w));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |         try!(len.restore_state(r));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |             try!(obj.restore_state(r));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling thread_local v0.3.4
[INFO] [stderr]    Compiling term_size v0.3.0
[INFO] [stderr]    Compiling unicode-width v0.1.4
[INFO] [stderr]    Compiling regex-syntax v0.4.1
[INFO] [stderr]    Compiling target_build_utils v0.3.1
[INFO] [stderr]    Compiling byte_array v0.1.0 (/opt/rustwide/workdir/src/byte_array)
[INFO] [stderr]    Compiling utf8-ranges v1.0.0
[INFO] [stderr]    Compiling breeze_cpal v0.1.0 (/opt/rustwide/workdir/src/breeze_cpal)
[INFO] [stderr]    Compiling textwrap v0.6.0
[INFO] [stderr]    Compiling spc700 v0.1.0 (/opt/rustwide/workdir/src/spc700)
[INFO] [stderr]    Compiling wayland-client v0.5.12
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_cpal/lib.rs:21:23
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let formats = try!(endpoint.get_supported_formats_list()).collect::<Vec<_>>();
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_cpal/lib.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let voice = try!(Voice::new(&endpoint, &format));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling wdc65816 v0.1.0 (/opt/rustwide/workdir/src/wdc65816)
[INFO] [stderr]    Compiling slicevec v0.1.0
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/spc700/addressing.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         (hi << 8 | lo)
[INFO] [stdout]    |         ^            ^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/spc700/lib.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_parens)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 93 -         (hi << 8 | lo)
[INFO] [stdout] 93 +         hi << 8 | lo
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/dsp.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl_save_state!(Voice { lvol, rvol, pitch, source, adsr1, adsr2, gain, env, out, fir } ignore {});
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/dsp.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl_save_state!(Voice { lvol, rvol, pitch, source, adsr1, adsr2, gain, env, out, fir } ignore {});
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:246:14
[INFO] [stdout]     |
[INFO] [stdout] 246 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/dsp.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | / impl_save_state!(Dsp { voices, lmvol, rmvol, levol, revol, keyon, keyoff, flags, endx, efb, pmod,
[INFO] [stdout] 79 | |     noise, echo, srcdir, echo_buf, echo_delay } ignore {});
[INFO] [stdout]    | |__________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/dsp.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | / impl_save_state!(Dsp { voices, lmvol, rmvol, levol, revol, keyon, keyoff, flags, endx, efb, pmod,
[INFO] [stdout] 79 | |     noise, echo, srcdir, echo_buf, echo_delay } ignore {});
[INFO] [stdout]    | |__________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         try!(f.write_str(if self.negative() { "N" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         try!(f.write_str(if self.overflow() { "V" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         try!(f.write_str(if self.direct_page() { "D" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         try!(f.write_str("x"));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         try!(f.write_str(if self.negative() { "N" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         try!(f.write_str(if self.half_carry() { "H" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         try!(f.write_str(if self.interrupt_enable() { "I" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         try!(f.write_str(if self.zero() { "Z" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         try!(f.write_str(if self.overflow() { "V" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         try!(f.write_str(if self.carry() { "C" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         try!(f.write_str(if self.small_acc() { "M" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/timer.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl_save_state!(Timer { div, val, enabled, stage1, stage2 } ignore {});
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/timer.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl_save_state!(Timer { div, val, enabled, stage1, stage2 } ignore {});
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/lib.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / impl_save_state!(Spc700 { mem, ipl_rom_mapped, reg_dsp_addr, io_vals, timers, dsp, a, x, y, sp, pc,
[INFO] [stdout] 72 | |     psw } ignore { cy, trace });
[INFO] [stdout]    | |_______________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/lib.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / impl_save_state!(Spc700 { mem, ipl_rom_mapped, reg_dsp_addr, io_vals, timers, dsp, a, x, y, sp, pc,
[INFO] [stdout] 72 | |     psw } ignore { cy, trace });
[INFO] [stdout]    | |_______________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |         try!(f.write_str(if self.small_index() { "X" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/spc700/lib.rs:125:18
[INFO] [stdout]     |
[INFO] [stdout] 125 |             0xfa ... 0xfc =>
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         try!(f.write_str(if self.decimal() { "D" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/spc700/lib.rs:129:18
[INFO] [stdout]     |
[INFO] [stdout] 129 |             0xf4 ... 0xf7 => self.io_vals[addr as usize - 0xf4],
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         try!(f.write_str(if self.irq_disable() { "I" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/spc700/lib.rs:146:20
[INFO] [stdout]     |
[INFO] [stdout] 146 |             0xffc0 ... 0xffff if self.ipl_rom_mapped => IPL_ROM[addr as usize - 0xffc0],
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/spc700/lib.rs:185:18
[INFO] [stdout]     |
[INFO] [stdout] 185 |             0xfd ... 0xff => panic!("APU attempted to write to read-only register ${:04X}", addr),
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |         try!(f.write_str(if self.zero() { "Z" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         try!(f.write_str(if self.carry() { "C" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/lib.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | /     impl_save_state_fns!(Cpu {
[INFO] [stdout] 70 | |         a, x, y, s, dbr, pbr, d, pc, p, emulation, wai, mem
[INFO] [stdout] 71 | |     } ignore { cy, trace });
[INFO] [stdout]    | |___________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/lib.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | /     impl_save_state_fns!(Cpu {
[INFO] [stdout] 70 | |         a, x, y, s, dbr, pbr, d, pc, p, emulation, wai, mem
[INFO] [stdout] 71 | |     } ignore { cy, trace });
[INFO] [stdout]    | |___________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:246:14
[INFO] [stdout]     |
[INFO] [stdout] 246 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling unicode-segmentation v1.1.0
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:4:55
[INFO] [stdout]     |
[INFO] [stdout] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 once!(warn!("read from write-only control register"));
[INFO] [stdout]     |                 ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:6:38
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 once!(warn!("read from write-only control register"));
[INFO] [stdout]     |                 ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:4:55
[INFO] [stdout]     |
[INFO] [stdout] 4   |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 | /                     once!({
[INFO] [stdout] 159 | |                         warn!("SPC700 wrote ${:02X} to testing register ($f0)", val);
[INFO] [stdout] 160 | |                         warn!("As a safety measure, only $0a is allowed. This write will be \
[INFO] [stdout] 161 | |                             ignored! (This warning will only be printed for the first illegal \
[INFO] [stdout] 162 | |                             write)");
[INFO] [stdout] 163 | |                     });
[INFO] [stdout]     | |______________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:6:38
[INFO] [stdout]     |
[INFO] [stdout] 6   |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 | /                     once!({
[INFO] [stdout] 159 | |                         warn!("SPC700 wrote ${:02X} to testing register ($f0)", val);
[INFO] [stdout] 160 | |                         warn!("As a safety measure, only $0a is allowed. This write will be \
[INFO] [stdout] 161 | |                             ignored! (This warning will only be printed for the first illegal \
[INFO] [stdout] 162 | |                             write)");
[INFO] [stdout] 163 | |                     });
[INFO] [stdout]     | |______________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:4:55
[INFO] [stdout]     |
[INFO] [stdout] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:652:13
[INFO] [stdout]     |
[INFO] [stdout] 652 |             once!(warn!("`tcall {}` while IPL ROM is mapped!", p));
[INFO] [stdout]     |             ------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:6:38
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:652:13
[INFO] [stdout]     |
[INFO] [stdout] 652 |             once!(warn!("`tcall {}` while IPL ROM is mapped!", p));
[INFO] [stdout]     |             ------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:4:55
[INFO] [stdout]     |
[INFO] [stdout] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/dsp.rs:171:29
[INFO] [stdout]     |
[INFO] [stdout] 171 |                     0x08 => once!(warn!("ignoring write to envelope value")),
[INFO] [stdout]     |                             ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:6:38
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/dsp.rs:171:29
[INFO] [stdout]     |
[INFO] [stdout] 171 |                     0x08 => once!(warn!("ignoring write to envelope value")),
[INFO] [stdout]     |                             ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:4:55
[INFO] [stdout]     |
[INFO] [stdout] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/dsp.rs:172:29
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     0x09 => once!(warn!("ignoring write to sample value")),
[INFO] [stdout]     |                             ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:6:38
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/dsp.rs:172:29
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     0x09 => once!(warn!("ignoring write to sample value")),
[INFO] [stdout]     |                             ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling vec_map v0.8.0
[INFO] [stderr]    Compiling byteorder v1.0.0
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling glutin v0.6.2
[INFO] [stderr]    Compiling glium v0.15.0
[INFO] [stdout] warning: 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling clap v2.25.0
[INFO] [stderr]    Compiling num-bigint v0.1.39
[INFO] [stderr]    Compiling num-complex v0.1.38
[INFO] [stderr]    Compiling regex v0.2.2
[INFO] [stderr]    Compiling breeze_core v0.1.0 (/opt/rustwide/workdir/src/breeze_core)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/dma.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | / impl_save_state!(DmaChannel { params, a_addr, a_addr_bank, b_addr, dma_size, hdma_indirect_bank,
[INFO] [stdout] 57 | |                               hdma_addr, hdma_flags, hdma_do_transfer } ignore {});
[INFO] [stdout]    | |__________________________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/breeze_core/lib.rs:1:9
[INFO] [stdout]    |
[INFO] [stdout] 1  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/dma.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | / impl_save_state!(DmaChannel { params, a_addr, a_addr_bank, b_addr, dma_size, hdma_indirect_bank,
[INFO] [stdout] 57 | |                               hdma_addr, hdma_flags, hdma_do_transfer } ignore {});
[INFO] [stdout]    | |__________________________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:246:14
[INFO] [stdout]     |
[INFO] [stdout] 246 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         try!(write!(writer, "SMV\x1A"));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |         try!(writer.write_u32::<LittleEndian>(4));  // SMV Version
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         try!(writer.write_u32::<LittleEndian>(0));  // uid (Unix timestamp in Snes9x)
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         try!(writer.write_u32::<LittleEndian>(0));  // rerecord count (no idea what this does)
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         try!(writer.write_u32::<LittleEndian>(0xdeadbeef));    // Number of frames
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         try!(writer.write_u8(0));  // controller mask (FIXME)
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         try!(writer.write_u8(1));  // movie opts
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         try!(writer.write_u8(0));  // sync opts
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         try!(writer.write_u8(0));  // more (actual) sync opts
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         try!(writer.write_u32::<LittleEndian>(0x40));  // offset to save state / cart. RAM image
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         try!(writer.write_u32::<LittleEndian>(0x40 + 0x20000));  // offset to controller data
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         try!(writer.write_u32::<LittleEndian>(0xdeadbeef));  // num. of input samples
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         try!(writer.write_u8(get_controller_type(&input.ports.0)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         try!(writer.write_u8(get_controller_type(&input.ports.1)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         try!(writer.write_all(&[0; 18]));       // 18 bytes reserved for future use
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         try!(writer.write_all(&[0; 0x20000]));   // empty SRAM image
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             try!(writer.write_i8(-1));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:73:45
[INFO] [stdout]    |
[INFO] [stdout] 73 |         RecordingFormat::Custom => Box::new(try!(custom::Recorder::new(writer, snes))),
[INFO] [stdout]    |                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:74:42
[INFO] [stdout]    |
[INFO] [stdout] 74 |         RecordingFormat::Smv => Box::new(try!(smv::Recorder::new(writer, snes))),
[INFO] [stdout]    |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:84:45
[INFO] [stdout]    |
[INFO] [stdout] 84 |         RecordingFormat::Custom => Box::new(try!(custom::Replayer::new(reader, snes))),
[INFO] [stdout]    |                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:85:42
[INFO] [stdout]    |
[INFO] [stdout] 85 |         RecordingFormat::Smv => Box::new(try!(smv::Replayer::new(reader, snes))),
[INFO] [stdout]    |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/ppu/rendering.rs:231:15
[INFO] [stdout]     |
[INFO] [stdout] 231 |             2 ... 5 => {
[INFO] [stdout]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/breeze_core/ppu/sprites.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 |     sprite_scanline: [(Option<SpritePixel>); super::SCREEN_WIDTH as usize],
[INFO] [stdout]    |                       ^                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -     sprite_scanline: [(Option<SpritePixel>); super::SCREEN_WIDTH as usize],
[INFO] [stdout] 23 +     sprite_scanline: [Option<SpritePixel>; super::SCREEN_WIDTH as usize],
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/ppu/mod.rs:419:1
[INFO] [stdout]     |
[INFO] [stdout] 419 | / impl_save_state!(Ppu {
[INFO] [stdout] 420 | |     oam, cgram, vram, inidisp, obsel, oamaddl, oamaddh, oamaddr, oam_lsb, bgmode, mosaic, bg1sc,
[INFO] [stdout] 421 | |     bg2sc, bg3sc, bg4sc, bg12nba, bg34nba, bg1hofs, m7hofs, bg1vofs, m7vofs, bg2hofs, bg2vofs,
[INFO] [stdout] 422 | |     bg3hofs, bg3vofs, bg4hofs, bg4vofs, bg_old, m7_old, vmain, vmaddr, vram_prefetch, m7sel, m7a,
[INFO] [stdout] ...   |
[INFO] [stdout] 428 | |     framebuf, sprite_render_state, bg_cache
[INFO] [stdout] 429 | | });
[INFO] [stdout]     | |__^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/ppu/mod.rs:419:1
[INFO] [stdout]     |
[INFO] [stdout] 419 | / impl_save_state!(Ppu {
[INFO] [stdout] 420 | |     oam, cgram, vram, inidisp, obsel, oamaddl, oamaddh, oamaddr, oam_lsb, bgmode, mosaic, bg1sc,
[INFO] [stdout] 421 | |     bg2sc, bg3sc, bg4sc, bg12nba, bg34nba, bg1hofs, m7hofs, bg1vofs, m7vofs, bg2hofs, bg2vofs,
[INFO] [stdout] 422 | |     bg3hofs, bg3vofs, bg4hofs, bg4vofs, bg_old, m7_old, vmain, vmaddr, vram_prefetch, m7sel, m7a,
[INFO] [stdout] ...   |
[INFO] [stdout] 428 | |     framebuf, sprite_render_state, bg_cache
[INFO] [stdout] 429 | | });
[INFO] [stdout]     | |__^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/ppu/mod.rs:507:20
[INFO] [stdout]     |
[INFO] [stdout] 507 |             0x210f ... 0x2114 => self.bg_store(addr, value),
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/ppu/mod.rs:514:20
[INFO] [stdout]     |
[INFO] [stdout] 514 |             0x211b ... 0x2120 => self.m7_store(addr, value),
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/input/mod.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl_save_state!(Input { auto_read_data, latch, latched_this_frame } ignore { ports, mode });
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/input/mod.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl_save_state!(Input { auto_read_data, latch, latched_this_frame } ignore { ports, mode });
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/input/mod.rs:176:20
[INFO] [stdout]     |
[INFO] [stdout] 176 |             0x4218 ... 0x421f => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/breeze_core/rom.rs:95:22
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 0x20 ... 0x7E => {
[INFO] [stdout]    |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/rom.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl_save_state!(Rom { ram } ignore { header, rom });
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/rom.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl_save_state!(Rom { ram } ignore { header, rom });
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:251:20
[INFO] [stdout]     |
[INFO] [stdout] 251 |             0x0000 ... 0x7fff => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:255:26
[INFO] [stdout]     |
[INFO] [stdout] 255 |                     0x70 ... 0x7d => {
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |                     0xfe ... 0xff => {
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:271:20
[INFO] [stdout]     |
[INFO] [stdout] 271 |             0x8000 ... 0xffff => match bank {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:281:22
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 0x80 ... 0xfd | 0x00 ... 0x7d => {
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:281:38
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 0x80 ... 0xfd | 0x00 ... 0x7d => {
[INFO] [stdout]     |                                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:295:18
[INFO] [stdout]     |
[INFO] [stdout] 295 |             0x00 ... 0x3f | 0x80 ... 0xbf if addr >= 0x8000 => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:295:34
[INFO] [stdout]     |
[INFO] [stdout] 295 |             0x00 ... 0x3f | 0x80 ... 0xbf if addr >= 0x8000 => {
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:298:18
[INFO] [stdout]     |
[INFO] [stdout] 298 |             0x20 ... 0x3f | 0xa0 ... 0xbf if addr >= 0x6000 && addr <= 0x7fff => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:298:34
[INFO] [stdout]     |
[INFO] [stdout] 298 |             0x20 ... 0x3f | 0xa0 ... 0xbf if addr >= 0x6000 && addr <= 0x7fff => {
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:302:18
[INFO] [stdout]     |
[INFO] [stdout] 302 |             0x40 ... 0x7d | 0xc0 ... 0xfd => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:302:34
[INFO] [stdout]     |
[INFO] [stdout] 302 |             0x40 ... 0x7d | 0xc0 ... 0xfd => {
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:305:18
[INFO] [stdout]     |
[INFO] [stdout] 305 |             0x7e ... 0x7f => unreachable!(),    // WRAM banks
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 |             0xfe ... 0xff => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/save.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         try!(write!(w, "ZSNES Save State File V0.6"));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/save.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         try!(w.write_all(&[26]));   // ASCII SUBstitute (note that reading can not rely
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/save.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         try!(w.write_all(&[60]));   // version #/100 (= 0.6)
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout] 98  | / impl_save_state!(Peripherals {
[INFO] [stdout] 99  | |     apu, ppu, rom, wram, dma, hdmaen, nmien, wrio, wrmpya, wrmpyb, wrdiv, rddiv, rdmpy, htime,
[INFO] [stdout] 100 | |     vtime, memsel, nmi, irq, cy, input, wmaddl, wmaddm, wmaddh
[INFO] [stdout] 101 | | } ignore {});
[INFO] [stdout]     | |____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout] 98  | / impl_save_state!(Peripherals {
[INFO] [stdout] 99  | |     apu, ppu, rom, wram, dma, hdmaen, nmien, wrio, wrmpya, wrmpyb, wrdiv, rddiv, rdmpy, htime,
[INFO] [stdout] 100 | |     vtime, memsel, nmi, irq, cy, input, wmaddl, wmaddm, wmaddh
[INFO] [stdout] 101 | | } ignore {});
[INFO] [stdout]     | |____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:144:18
[INFO] [stdout]     |
[INFO] [stdout] 144 |             0x00 ... 0x3f => match addr {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:145:24
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 0x0000 ... 0x1fff | 0x6000 ... 0xffff => SLOW,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:145:44
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 0x0000 ... 0x1fff | 0x6000 ... 0xffff => SLOW,
[INFO] [stdout]     |                                            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:146:24
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 0x4000 ... 0x41ff => XSLOW,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:149:18
[INFO] [stdout]     |
[INFO] [stdout] 149 |             0x40 ... 0x7f => SLOW,
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:150:18
[INFO] [stdout]     |
[INFO] [stdout] 150 |             0x80 ... 0xbf => match addr {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:151:24
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 0x0000 ... 0x1fff | 0x6000 ... 0x7fff => SLOW,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:151:44
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 0x0000 ... 0x1fff | 0x6000 ... 0x7fff => SLOW,
[INFO] [stdout]     |                                            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:152:24
[INFO] [stdout]     |
[INFO] [stdout] 152 |                 0x4000 ... 0x41ff => XSLOW,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:153:24
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 0x8000 ... 0xffff => if self.memsel { FAST } else { SLOW },
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:156:18
[INFO] [stdout]     |
[INFO] [stdout] 156 |             0xc0 ... 0xff => if self.memsel { FAST } else { SLOW },
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:178:18
[INFO] [stdout]     |
[INFO] [stdout] 178 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:178:34
[INFO] [stdout]     |
[INFO] [stdout] 178 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:180:24
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 0x0000 ... 0x1fff => self.wram[addr as usize],
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:182:24
[INFO] [stdout]     |
[INFO] [stdout] 182 |                 0x2100 ... 0x2133 => {
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:186:24
[INFO] [stdout]     |
[INFO] [stdout] 186 |                 0x2134 ... 0x213f => self.ppu.load(addr),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:188:24
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 0x2140 ... 0x217f => self.apu.read_port((addr & 0b11) as u8),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:193:24
[INFO] [stdout]     |
[INFO] [stdout] 193 |                 0x2181 ... 0x2183 => {
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:228:24
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 0x4218 ... 0x421f => self.input.load(addr),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:230:24
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 0x4300 ... 0x43ff => self.dma[(addr as usize & 0x00f0) >> 4].load(addr as u8 & 0xf),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:231:24
[INFO] [stdout]     |
[INFO] [stdout] 231 |                 0x6000 ... 0xffff => self.rom.load(bank, addr),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:239:18
[INFO] [stdout]     |
[INFO] [stdout] 239 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.load(bank, addr),
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:239:34
[INFO] [stdout]     |
[INFO] [stdout] 239 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.load(bank, addr),
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:247:18
[INFO] [stdout]     |
[INFO] [stdout] 247 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:247:34
[INFO] [stdout]     |
[INFO] [stdout] 247 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:248:24
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 0x0000 ... 0x1fff => self.wram[addr as usize] = value,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:250:24
[INFO] [stdout]     |
[INFO] [stdout] 250 |                 0x2100 ... 0x2133 => self.ppu.store(addr, value),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:251:24
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 0x2134 ... 0x213f => once!(warn!("store to read-only PPU register ${:04X}", addr)),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:253:24
[INFO] [stdout]     |
[INFO] [stdout] 253 |                 0x2140 ... 0x217f => self.apu.store_port((addr & 0b11) as u8, value),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:261:24
[INFO] [stdout]     |
[INFO] [stdout] 261 |                 0x2184 ... 0x21ff => once!(warn!("invalid store: ${:02X} to ${:02X}:{:04X}", value,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:312:24
[INFO] [stdout]     |
[INFO] [stdout] 312 |                 0x4300 ... 0x43ff => {
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:315:24
[INFO] [stdout]     |
[INFO] [stdout] 315 |                 0x8000 ... 0xffff => self.rom.store(bank, addr, value),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:320:18
[INFO] [stdout]     |
[INFO] [stdout] 320 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.store(bank, addr, value),
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:320:34
[INFO] [stdout]     |
[INFO] [stdout] 320 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.store(bank, addr, value),
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:341:1
[INFO] [stdout]     |
[INFO] [stdout] 341 | / impl_save_state!(Snes { cpu, master_cy, apu_master_cy_debt, ppu_master_cy_debt }
[INFO] [stdout] 342 | |     ignore { trace_start });
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:341:1
[INFO] [stdout]     |
[INFO] [stdout] 341 | / impl_save_state!(Snes { cpu, master_cy, apu_master_cy_debt, ppu_master_cy_debt }
[INFO] [stdout] 342 | |     ignore { trace_start });
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:414:24
[INFO] [stdout]     |
[INFO] [stdout] 414 |                     (0 ... 224, 278) => {
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:421:39
[INFO] [stdout]     |
[INFO] [stdout] 421 |                         for action in try!(render(&self.cpu.mem.ppu.framebuf)) {
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:568:23
[INFO] [stdout]     |
[INFO] [stdout] 568 |         for action in try!(actions) {
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:580:16
[INFO] [stdout]     |
[INFO] [stdout] 580 |         while !try!(self.render_frame()) {}
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:537:40
[INFO] [stdout]     |
[INFO] [stdout] 537 |                 if value & 0xf0 != 0 { once!(warn!("invalid value for $212b: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:537:40
[INFO] [stdout]     |
[INFO] [stdout] 537 |                 if value & 0xf0 != 0 { once!(warn!("invalid value for $212b: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:541:40
[INFO] [stdout]     |
[INFO] [stdout] 541 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212c: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:541:40
[INFO] [stdout]     |
[INFO] [stdout] 541 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212c: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:545:40
[INFO] [stdout]     |
[INFO] [stdout] 545 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212d: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:545:40
[INFO] [stdout]     |
[INFO] [stdout] 545 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212d: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:549:40
[INFO] [stdout]     |
[INFO] [stdout] 549 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212e: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:549:40
[INFO] [stdout]     |
[INFO] [stdout] 549 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212e: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:553:40
[INFO] [stdout]     |
[INFO] [stdout] 553 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212f: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:553:40
[INFO] [stdout]     |
[INFO] [stdout] 553 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212f: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:567:40
[INFO] [stdout]     |
[INFO] [stdout] 567 |                 if value & 0x08 != 0 { once!(warn!("pseudo-hires mode not yet implemented")); }
[INFO] [stdout]     |                                        ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:567:40
[INFO] [stdout]     |
[INFO] [stdout] 567 |                 if value & 0x08 != 0 { once!(warn!("pseudo-hires mode not yet implemented")); }
[INFO] [stdout]     |                                        ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:568:40
[INFO] [stdout]     |
[INFO] [stdout] 568 |                 if value & 0x04 != 0 { once!(warn!("overscan not yet implemented")); }
[INFO] [stdout]     |                                        -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:568:40
[INFO] [stdout]     |
[INFO] [stdout] 568 |                 if value & 0x04 != 0 { once!(warn!("overscan not yet implemented")); }
[INFO] [stdout]     |                                        -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:569:40
[INFO] [stdout]     |
[INFO] [stdout] 569 |                 if value & 0x03 != 0 { once!(warn!("interlace not yet implemented")); }
[INFO] [stdout]     |                                        --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:569:40
[INFO] [stdout]     |
[INFO] [stdout] 569 |                 if value & 0x03 != 0 { once!(warn!("interlace not yet implemented")); }
[INFO] [stdout]     |                                        --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 | /             once!(warn!("latch still active from older frame (might interfere with \
[INFO] [stdout] 125 | |                          recording); latch might be changed by emulator!"));
[INFO] [stdout]     | |___________________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 | /             once!(warn!("latch still active from older frame (might interfere with \
[INFO] [stdout] 125 | |                          recording); latch might be changed by emulator!"));
[INFO] [stdout]     | |___________________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:148:21
[INFO] [stdout]     |
[INFO] [stdout] 148 | /                     once!(warn!("reading data lines without prior latching (this can interfere \
[INFO] [stdout] 149 | |                                  with input recording)"));
[INFO] [stdout]     | |_________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:148:21
[INFO] [stdout]     |
[INFO] [stdout] 148 | /                     once!(warn!("reading data lines without prior latching (this can interfere \
[INFO] [stdout] 149 | |                                  with input recording)"));
[INFO] [stdout]     | |_________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 | /                         once!(warn!("already latched input in this frame! (this might interfere \
[INFO] [stdout] 193 | |                                      with recording)"));
[INFO] [stdout]     | |_______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 | /                         once!(warn!("already latched input in this frame! (this might interfere \
[INFO] [stdout] 193 | |                                      with recording)"));
[INFO] [stdout]     | |_______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:183:21
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     once!(warn!("read from write-only PPU register ${:04X}", addr));
[INFO] [stdout]     |                     --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:183:21
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     once!(warn!("read from write-only PPU register ${:04X}", addr));
[INFO] [stdout]     |                     --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:194:21
[INFO] [stdout]     |
[INFO] [stdout] 194 |                     once!(warn!("open-bus load from WRAM register ${:02X}", addr));
[INFO] [stdout]     |                     -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:194:21
[INFO] [stdout]     |
[INFO] [stdout] 194 |                     once!(warn!("open-bus load from WRAM register ${:02X}", addr));
[INFO] [stdout]     |                     -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:233:21
[INFO] [stdout]     |
[INFO] [stdout] 233 |                     once!(warn!("invalid/unimplemented load from ${:02X}:{:04X}", bank, addr));
[INFO] [stdout]     |                     -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:233:21
[INFO] [stdout]     |
[INFO] [stdout] 233 |                     once!(warn!("invalid/unimplemented load from ${:02X}:{:04X}", bank, addr));
[INFO] [stdout]     |                     -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:251:38
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 0x2134 ... 0x213f => once!(warn!("store to read-only PPU register ${:04X}", addr)),
[INFO] [stdout]     |                                      ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:251:38
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 0x2134 ... 0x213f => once!(warn!("store to read-only PPU register ${:04X}", addr)),
[INFO] [stdout]     |                                      ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:261:38
[INFO] [stdout]     |
[INFO] [stdout] 261 |                   0x2184 ... 0x21ff => once!(warn!("invalid store: ${:02X} to ${:02X}:{:04X}", value,
[INFO] [stdout]     |  ______________________________________-
[INFO] [stdout] 262 | |                     bank, addr)),
[INFO] [stdout]     | |________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:261:38
[INFO] [stdout]     |
[INFO] [stdout] 261 |                   0x2184 ... 0x21ff => once!(warn!("invalid store: ${:02X} to ${:02X}:{:04X}", value,
[INFO] [stdout]     |  ______________________________________-
[INFO] [stdout] 262 | |                     bank, addr)),
[INFO] [stdout]     | |________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:273:44
[INFO] [stdout]     |
[INFO] [stdout] 273 |                     if value & 0x4e != 0 { once!(warn!("Invalid value for NMIEN: ${:02X}", value)) }
[INFO] [stdout]     |                                            ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:273:44
[INFO] [stdout]     |
[INFO] [stdout] 273 |                     if value & 0x4e != 0 { once!(warn!("Invalid value for NMIEN: ${:02X}", value)) }
[INFO] [stdout]     |                                            ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/custom.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |     writer: Box<WriteSeek>,
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 |     writer: Box<dyn WriteSeek>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/custom.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |     reader: Box<BufRead>,
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     reader: Box<dyn BufRead>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |     writer: Box<WriteSeek>,
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     writer: Box<dyn WriteSeek>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |     reader: Box<BufRead>,
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 93 |     reader: Box<dyn BufRead>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/input/port.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 |         imp: Box<JoypadImpl>,
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |         imp: Box<dyn JoypadImpl>,
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/input/mod.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Recorded(Box<Recorder>),
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Recorded(Box<dyn Recorder>),
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/input/mod.rs:63:18
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Replayed(Box<Replayer>),
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Replayed(Box<dyn Replayer>),
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:68:36
[INFO] [stdout]    |
[INFO] [stdout] 68 |                        writer: Box<WriteSeek>,
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |                        writer: Box<dyn WriteSeek>,
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:70:42
[INFO] [stdout]    |
[INFO] [stdout] 70 |                        -> io::Result<Box<Recorder>> {
[INFO] [stdout]    |                                          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |                        -> io::Result<Box<dyn Recorder>> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:79:36
[INFO] [stdout]    |
[INFO] [stdout] 79 |                        reader: Box<BufRead>,
[INFO] [stdout]    |                                    ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |                        reader: Box<dyn BufRead>,
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:81:42
[INFO] [stdout]    |
[INFO] [stdout] 81 |                        -> io::Result<Box<Replayer>> {
[INFO] [stdout]    |                                          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 81 |                        -> io::Result<Box<dyn Replayer>> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:45:24
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn new(writer: Box<WriteSeek>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn new(writer: Box<dyn WriteSeek>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn new(reader: Box<BufRead>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn new(reader: Box<dyn BufRead>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/custom.rs:29:24
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn new(writer: Box<WriteSeek>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn new(writer: Box<dyn WriteSeek>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/custom.rs:45:24
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn new(reader: Box<BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn new(reader: Box<dyn BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn new(mut writer: Box<WriteSeek>, snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn new(mut writer: Box<dyn WriteSeek>, snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:97:24
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn new(reader: Box<BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn new(reader: Box<dyn BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/input/mod.rs:92:48
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn start_recording(&mut self, rec: Box<Recorder>) {
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn start_recording(&mut self, rec: Box<dyn Recorder>) {
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/breeze_core/input/mod.rs:101:50
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn start_replay(&mut self, replayer: Box<Replayer>) {
[INFO] [stdout]     |                                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn start_replay(&mut self, replayer: Box<dyn Replayer>) {
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/input/port.rs:35:32
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new_joypad(imp: Box<JoypadImpl>) -> Self {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new_joypad(imp: Box<dyn JoypadImpl>) -> Self {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/save.rs:26:70
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn create_save_state(&self, format: SaveStateFormat, w: &mut Write) -> io::Result<()> {
[INFO] [stdout]    |                                                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn create_save_state(&self, format: SaveStateFormat, w: &mut dyn Write) -> io::Result<()> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/save.rs:35:75
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn restore_save_state(&mut self, format: SaveStateFormat, r: &mut BufRead) -> io::Result<()> {
[INFO] [stdout]    |                                                                           ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn restore_save_state(&mut self, format: SaveStateFormat, r: &mut dyn BufRead) -> io::Result<()> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/save.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn save_zsnes(&self, w: &mut Write) -> io::Result<()> {
[INFO] [stdout]    |                                  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn save_zsnes(&self, w: &mut dyn Write) -> io::Result<()> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/save.rs:54:39
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn load_zsnes(&mut self, _r: &mut BufRead) -> io::Result<()> {
[INFO] [stdout]    |                                       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn load_zsnes(&mut self, _r: &mut dyn BufRead) -> io::Result<()> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 33 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling num-rational v0.1.38
[INFO] [stderr]    Compiling serde_json v0.9.10
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> src/breeze_core/rom.rs:31:75
[INFO] [stdout]    |
[INFO] [stdout] 31 |         info!("ROM name: '{}'", str::from_utf8(&self.title).unwrap_or("").trim_right());
[INFO] [stdout]    |                                                                           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 31 |         info!("ROM name: '{}'", str::from_utf8(&self.title).unwrap_or("").trim_end());
[INFO] [stdout]    |                                                                           ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/breeze_core/rom.rs:109:64
[INFO] [stdout]     |
[INFO] [stdout] 109 |         debug!("loading '{}'", str::from_utf8(&title).unwrap().trim_right());
[INFO] [stdout]     |                                                                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 109 |         debug!("loading '{}'", str::from_utf8(&title).unwrap().trim_end());
[INFO] [stdout]     |                                                                ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/breeze_core/rom.rs:246:59
[INFO] [stdout]     |
[INFO] [stdout] 246 |         str::from_utf8(&self.header.title).ok().map(|s| s.trim_right())
[INFO] [stdout]     |                                                           ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 246 |         str::from_utf8(&self.header.title).ok().map(|s| s.trim_end())
[INFO] [stdout]     |                                                           ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/breeze_core/rom.rs:288:13
[INFO] [stdout]     |
[INFO] [stdout] 288 |             _ => unreachable!()
[INFO] [stdout]     |             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/breeze_core/snes.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |             _ => FAST,
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/breeze_core/snes.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |             _ => unreachable!(),    // Rust should know this!
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/breeze_core/snes.rs:321:13
[INFO] [stdout]     |
[INFO] [stdout] 321 |             _ => unreachable!(),    // Rust should know this!
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling num v0.1.39
[INFO] [stderr]    Compiling sdl2 v0.24.0
[INFO] [stdout] warning: 161 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling env_logger v0.4.3
[INFO] [stderr]    Compiling breeze_sdl v0.1.0 (/opt/rustwide/workdir/src/breeze_sdl)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_sdl/lib.rs:126:25
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let video = try!(sdl.video());
[INFO] [stdout]     |                         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_sdl/lib.rs:127:26
[INFO] [stdout]     |
[INFO] [stdout] 127 |             let window = try!(video.window("breeze", SCREEN_WIDTH * 3, SCREEN_HEIGHT * 3)
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_sdl/lib.rs:130:28
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let renderer = try!(window.renderer()
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_sdl/lib.rs:134:27
[INFO] [stdout]     |
[INFO] [stdout] 134 |             let texture = try!(renderer.create_texture(
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/breeze_sdl/lib.rs:123:37
[INFO] [stdout]     |
[INFO] [stdout] 123 |     fn create() -> Result<Self, Box<Error>> {
[INFO] [stdout]     |                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     fn create() -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling libloading v0.3.4
[INFO] [stderr]    Compiling dlib v0.3.1
[INFO] [stderr]    Compiling wayland-sys v0.5.11
[INFO] [stderr]    Compiling wayland-window v0.2.3
[INFO] [stderr]    Compiling wayland-kbd v0.3.6
[INFO] [stderr]    Compiling breeze_glium v0.1.0 (/opt/rustwide/workdir/src/breeze_glium)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_glium/lib.rs:114:23
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let display = try!(WindowBuilder::new()
[INFO] [stdout]     |                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_glium/lib.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let mut vbuf = try!(VertexBuffer::empty_dynamic(&display, 4));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_glium/lib.rs:124:22
[INFO] [stdout]     |
[INFO] [stdout] 124 |             program: try!(
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_glium/lib.rs:126:22
[INFO] [stdout]     |
[INFO] [stdout] 126 |             texture: try!(SrgbTexture2d::empty(&display, SCREEN_WIDTH, SCREEN_HEIGHT)),
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/breeze_glium/lib.rs:113:37
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn create() -> Result<Self, Box<Error>> {
[INFO] [stdout]     |                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn create() -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling breeze_backends v0.1.0 (/opt/rustwide/workdir/src/breeze_backends)
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/breeze_backends/lib.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout] 8  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:31:73
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<Renderer>, Box<Error>>>>;
[INFO] [stdout]    |                                                                         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<dyn Renderer>, Box<Error>>>>;
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:31:88
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<Renderer>, Box<Error>>>>;
[INFO] [stdout]    |                                                                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<Renderer>, Box<dyn Error>>>>;
[INFO] [stdout]    |                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:32:70
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<AudioSink>, Box<Error>>>>;
[INFO] [stdout]    |                                                                      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<dyn AudioSink>, Box<Error>>>>;
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:32:86
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<AudioSink>, Box<Error>>>>;
[INFO] [stdout]    |                                                                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<AudioSink>, Box<dyn Error>>>>;
[INFO] [stdout]    |                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:36:56
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout]    |                                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<dyn Renderer>, Box<Error>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:36:71
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout]    |                                                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<dyn Error>> {
[INFO] [stdout]    |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |         type MapEntry = Option<fn() -> Result<Box<Renderer>, Box<Error>>>;
[INFO] [stdout]    |                                                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         type MapEntry = Option<fn() -> Result<Box<dyn Renderer>, Box<Error>>>;
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:40:66
[INFO] [stdout]    |
[INFO] [stdout] 40 |         type MapEntry = Option<fn() -> Result<Box<Renderer>, Box<Error>>>;
[INFO] [stdout]    |                                                                  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         type MapEntry = Option<fn() -> Result<Box<Renderer>, Box<dyn Error>>>;
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:71:57
[INFO] [stdout]    |
[INFO] [stdout] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<AudioSink>, Box<Error>> {
[INFO] [stdout]    |                                                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<dyn AudioSink>, Box<Error>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:71:73
[INFO] [stdout]    |
[INFO] [stdout] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<AudioSink>, Box<Error>> {
[INFO] [stdout]    |                                                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<AudioSink>, Box<dyn Error>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:75:51
[INFO] [stdout]    |
[INFO] [stdout] 75 |         type MapEntry = Option<fn() -> Result<Box<AudioSink>, Box<Error>>>;
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 |         type MapEntry = Option<fn() -> Result<Box<dyn AudioSink>, Box<Error>>>;
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:75:67
[INFO] [stdout]    |
[INFO] [stdout] 75 |         type MapEntry = Option<fn() -> Result<Box<AudioSink>, Box<Error>>>;
[INFO] [stdout]    |                                                                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 |         type MapEntry = Option<fn() -> Result<Box<AudioSink>, Box<dyn Error>>>;
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling breeze v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze/main.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     try!(file.read_to_end(&mut buf));
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/breeze/main.rs:1:9
[INFO] [stdout]    |
[INFO] [stdout] 1  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze/main.rs:96:20
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let mut file = try!(File::open(&filename));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let rom = try!(Rom::from_bytes(&buf));
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:104:24
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut renderer = try!(renderer_fn());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let audio = try!(audio_fn());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         try!(emu.snes.render_frame(|_framebuf| Ok(vec![])));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:144:27
[INFO] [stdout]     |
[INFO] [stdout] 144 |             let actions = try!(emu.renderer.render(&*framebuf));
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         try!(emu.run());
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze/main.rs:31:54
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn process_args(args: &ArgMatches) -> Result<(), Box<Error>> {
[INFO] [stdout]    |                                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn process_args(args: &ArgMatches) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze/input.rs:29:35
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn sdl_kbd_joypad() -> Option<Box<JoypadImpl>> {
[INFO] [stdout]    |                                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn sdl_kbd_joypad() -> Option<Box<dyn JoypadImpl>> {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 19.95s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "931a4c4fe71ff86db3a62876deba59fb40109c1eec8449f68ffc41367cb41102", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "931a4c4fe71ff86db3a62876deba59fb40109c1eec8449f68ffc41367cb41102", kill_on_drop: false }`
[INFO] [stdout] 931a4c4fe71ff86db3a62876deba59fb40109c1eec8449f68ffc41367cb41102
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f8029e0f421a60a355d326d0f2e97129679a8de155192f9384151fb2d13591e6
[INFO] running `Command { std: "docker" "start" "-a" "f8029e0f421a60a355d326d0f2e97129679a8de155192f9384151fb2d13591e6", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.24
[INFO] [stderr]    Compiling lazy_static v0.2.8
[INFO] [stderr]    Compiling num-traits v0.1.39
[INFO] [stderr]    Compiling winapi v0.2.8
[INFO] [stderr]    Compiling bitflags v0.7.0
[INFO] [stderr]    Compiling bitflags v0.9.1
[INFO] [stderr]    Compiling log v0.3.8
[INFO] [stderr]    Compiling lazy_static v0.1.16
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling crossbeam v0.2.10
[INFO] [stderr]    Compiling rustc-serialize v0.3.24
[INFO] [stderr]    Compiling tempfile v2.1.5
[INFO] [stderr]    Compiling dbghelp-sys v0.2.0
[INFO] [stderr]    Compiling x11-dl v2.14.0
[INFO] [stderr]    Compiling backtrace-sys v0.1.11
[INFO] [stderr]    Compiling xml-rs v0.3.6
[INFO] [stderr]    Compiling byteorder v0.5.3
[INFO] [stderr]    Compiling breeze_backend v0.1.0 (/opt/rustwide/workdir/src/breeze_backend)
[INFO] [stderr]    Compiling backtrace v0.2.3
[INFO] [stderr]    Compiling xml-rs v0.6.0
[INFO] [stderr]    Compiling sdl2-sys v0.24.0
[INFO] [stderr]    Compiling ole32-sys v0.2.0
[INFO] [stderr]    Compiling alsa-sys v0.1.1
[INFO] [stderr]    Compiling rustc-demangle v0.1.4
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backend/lib.rs:23:43
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub type BackendResult<T> = Result<T, Box<Error>>;
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/breeze_backend/lib.rs:1:9
[INFO] [stdout]    |
[INFO] [stdout] 1  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub type BackendResult<T> = Result<T, Box<dyn Error>>;
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling cfg-if v0.1.1
[INFO] [stderr]    Compiling smallvec v0.1.8
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]    Compiling rand v0.3.15
[INFO] [stderr]    Compiling fs2 v0.2.5
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling shared_library v0.1.6
[INFO] [stderr]    Compiling serde_json v0.9.10
[INFO] [stderr]    Compiling memmap v0.2.3
[INFO] [stderr]    Compiling num-integer v0.1.34
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling num-iter v0.1.33
[INFO] [stderr]    Compiling wayland-scanner v0.5.11
[INFO] [stderr]    Compiling gl_generator v0.5.4
[INFO] [stderr]    Compiling memchr v1.0.1
[INFO] [stderr]    Compiling bitflags v0.6.0
[INFO] [stderr]    Compiling phf_generator v0.7.21
[INFO] [stderr]    Compiling libsavestate v0.1.0 (/opt/rustwide/workdir/src/libsavestate)
[INFO] [stderr]    Compiling aho-corasick v0.6.3
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/libsavestate/lib.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         try!(read_exact(r, &mut val));
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/libsavestate/lib.rs:5:9
[INFO] [stdout]    |
[INFO] [stdout] 5  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:108:21
[INFO] [stdout]     |
[INFO] [stdout] 108 |             None => try!(false.save_state(w)),
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 try!(true.save_state(w));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 try!(t.save_state(w));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         try!(read_exact(r, &mut val));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |                 try!(t.restore_state(r));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:141:21
[INFO] [stdout]     |
[INFO] [stdout] 141 |                       try!(t.save_state(w))
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 | / impl_fixed_size_array!(
[INFO] [stdout] 158 | |     0 1 2 3 4 5 6 7 8
[INFO] [stdout] 159 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_fixed_size_array` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                       try!(t.restore_state(r));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 | / impl_fixed_size_array!(
[INFO] [stdout] 158 | |     0 1 2 3 4 5 6 7 8
[INFO] [stdout] 159 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_fixed_size_array` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |         try!(self.len().save_state(w));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |             try!(item.save_state(w));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |         try!(len.restore_state(r));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/libsavestate/lib.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |             try!(obj.restore_state(r));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling phf_codegen v0.7.21
[INFO] [stderr]    Compiling cpal v0.2.12
[INFO] [stderr]    Compiling thread_local v0.3.4
[INFO] [stdout] warning: 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling term_size v0.3.0
[INFO] [stderr]    Compiling target_build_utils v0.3.1
[INFO] [stderr]    Compiling byte_array v0.1.0 (/opt/rustwide/workdir/src/byte_array)
[INFO] [stderr]    Compiling utf8-ranges v1.0.0
[INFO] [stderr]    Compiling wayland-client v0.5.12
[INFO] [stderr]    Compiling regex-syntax v0.4.1
[INFO] [stderr]    Compiling unicode-width v0.1.4
[INFO] [stderr]    Compiling spc700 v0.1.0 (/opt/rustwide/workdir/src/spc700)
[INFO] [stderr]    Compiling textwrap v0.6.0
[INFO] [stderr]    Compiling breeze_cpal v0.1.0 (/opt/rustwide/workdir/src/breeze_cpal)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_cpal/lib.rs:21:23
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let formats = try!(endpoint.get_supported_formats_list()).collect::<Vec<_>>();
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_cpal/lib.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let voice = try!(Voice::new(&endpoint, &format));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/spc700/addressing.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         (hi << 8 | lo)
[INFO] [stdout]    |         ^            ^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/spc700/lib.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_parens)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 93 -         (hi << 8 | lo)
[INFO] [stdout] 93 +         hi << 8 | lo
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/dsp.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl_save_state!(Voice { lvol, rvol, pitch, source, adsr1, adsr2, gain, env, out, fir } ignore {});
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/dsp.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl_save_state!(Voice { lvol, rvol, pitch, source, adsr1, adsr2, gain, env, out, fir } ignore {});
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:246:14
[INFO] [stdout]     |
[INFO] [stdout] 246 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/dsp.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | / impl_save_state!(Dsp { voices, lmvol, rmvol, levol, revol, keyon, keyoff, flags, endx, efb, pmod,
[INFO] [stdout] 79 | |     noise, echo, srcdir, echo_buf, echo_delay } ignore {});
[INFO] [stdout]    | |__________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/dsp.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | / impl_save_state!(Dsp { voices, lmvol, rmvol, levol, revol, keyon, keyoff, flags, endx, efb, pmod,
[INFO] [stdout] 79 | |     noise, echo, srcdir, echo_buf, echo_delay } ignore {});
[INFO] [stdout]    | |__________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         try!(f.write_str(if self.negative() { "N" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         try!(f.write_str(if self.overflow() { "V" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         try!(f.write_str(if self.direct_page() { "D" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         try!(f.write_str("x"));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         try!(f.write_str(if self.half_carry() { "H" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         try!(f.write_str(if self.interrupt_enable() { "I" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         try!(f.write_str(if self.zero() { "Z" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/statusreg.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         try!(f.write_str(if self.carry() { "C" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/timer.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl_save_state!(Timer { div, val, enabled, stage1, stage2 } ignore {});
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/timer.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl_save_state!(Timer { div, val, enabled, stage1, stage2 } ignore {});
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/lib.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / impl_save_state!(Spc700 { mem, ipl_rom_mapped, reg_dsp_addr, io_vals, timers, dsp, a, x, y, sp, pc,
[INFO] [stdout] 72 | |     psw } ignore { cy, trace });
[INFO] [stdout]    | |_______________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/spc700/lib.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / impl_save_state!(Spc700 { mem, ipl_rom_mapped, reg_dsp_addr, io_vals, timers, dsp, a, x, y, sp, pc,
[INFO] [stdout] 72 | |     psw } ignore { cy, trace });
[INFO] [stdout]    | |_______________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/spc700/lib.rs:125:18
[INFO] [stdout]     |
[INFO] [stdout] 125 |             0xfa ... 0xfc =>
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/spc700/lib.rs:129:18
[INFO] [stdout]     |
[INFO] [stdout] 129 |             0xf4 ... 0xf7 => self.io_vals[addr as usize - 0xf4],
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/spc700/lib.rs:146:20
[INFO] [stdout]     |
[INFO] [stdout] 146 |             0xffc0 ... 0xffff if self.ipl_rom_mapped => IPL_ROM[addr as usize - 0xffc0],
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/spc700/lib.rs:185:18
[INFO] [stdout]     |
[INFO] [stdout] 185 |             0xfd ... 0xff => panic!("APU attempted to write to read-only register ${:04X}", addr),
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:4:55
[INFO] [stdout]     |
[INFO] [stdout] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 once!(warn!("read from write-only control register"));
[INFO] [stdout]     |                 ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:6:38
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 once!(warn!("read from write-only control register"));
[INFO] [stdout]     |                 ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:4:55
[INFO] [stdout]     |
[INFO] [stdout] 4   |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 | /                     once!({
[INFO] [stdout] 159 | |                         warn!("SPC700 wrote ${:02X} to testing register ($f0)", val);
[INFO] [stdout] 160 | |                         warn!("As a safety measure, only $0a is allowed. This write will be \
[INFO] [stdout] 161 | |                             ignored! (This warning will only be printed for the first illegal \
[INFO] [stdout] 162 | |                             write)");
[INFO] [stdout] 163 | |                     });
[INFO] [stdout]     | |______________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:6:38
[INFO] [stdout]     |
[INFO] [stdout] 6   |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 | /                     once!({
[INFO] [stdout] 159 | |                         warn!("SPC700 wrote ${:02X} to testing register ($f0)", val);
[INFO] [stdout] 160 | |                         warn!("As a safety measure, only $0a is allowed. This write will be \
[INFO] [stdout] 161 | |                             ignored! (This warning will only be printed for the first illegal \
[INFO] [stdout] 162 | |                             write)");
[INFO] [stdout] 163 | |                     });
[INFO] [stdout]     | |______________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:4:55
[INFO] [stdout]     |
[INFO] [stdout] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:652:13
[INFO] [stdout]     |
[INFO] [stdout] 652 |             once!(warn!("`tcall {}` while IPL ROM is mapped!", p));
[INFO] [stdout]     |             ------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:6:38
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/lib.rs:652:13
[INFO] [stdout]     |
[INFO] [stdout] 652 |             once!(warn!("`tcall {}` while IPL ROM is mapped!", p));
[INFO] [stdout]     |             ------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:4:55
[INFO] [stdout]     |
[INFO] [stdout] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/dsp.rs:171:29
[INFO] [stdout]     |
[INFO] [stdout] 171 |                     0x08 => once!(warn!("ignoring write to envelope value")),
[INFO] [stdout]     |                             ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:6:38
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/dsp.rs:171:29
[INFO] [stdout]     |
[INFO] [stdout] 171 |                     0x08 => once!(warn!("ignoring write to envelope value")),
[INFO] [stdout]     |                             ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:4:55
[INFO] [stdout]     |
[INFO] [stdout] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/dsp.rs:172:29
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     0x09 => once!(warn!("ignoring write to sample value")),
[INFO] [stdout]     |                             ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/spc700/once.rs:6:38
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/spc700/dsp.rs:172:29
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     0x09 => once!(warn!("ignoring write to sample value")),
[INFO] [stdout]     |                             ---------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling wdc65816 v0.1.0 (/opt/rustwide/workdir/src/wdc65816)
[INFO] [stderr]    Compiling glutin v0.6.2
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         try!(f.write_str(if self.negative() { "N" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         try!(f.write_str(if self.overflow() { "V" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         try!(f.write_str(if self.small_acc() { "M" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |         try!(f.write_str(if self.small_index() { "X" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         try!(f.write_str(if self.decimal() { "D" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         try!(f.write_str(if self.irq_disable() { "I" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |         try!(f.write_str(if self.zero() { "Z" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/statusreg.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         try!(f.write_str(if self.carry() { "C" } else { "-" }));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/lib.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | /     impl_save_state_fns!(Cpu {
[INFO] [stdout] 70 | |         a, x, y, s, dbr, pbr, d, pc, p, emulation, wai, mem
[INFO] [stdout] 71 | |     } ignore { cy, trace });
[INFO] [stdout]    | |___________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/wdc65816/lib.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | /     impl_save_state_fns!(Cpu {
[INFO] [stdout] 70 | |         a, x, y, s, dbr, pbr, d, pc, p, emulation, wai, mem
[INFO] [stdout] 71 | |     } ignore { cy, trace });
[INFO] [stdout]    | |___________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:246:14
[INFO] [stdout]     |
[INFO] [stdout] 246 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling glium v0.15.0
[INFO] [stderr]    Compiling unicode-segmentation v1.1.0
[INFO] [stderr]    Compiling num-bigint v0.1.39
[INFO] [stderr]    Compiling num-complex v0.1.38
[INFO] [stderr]    Compiling regex v0.2.2
[INFO] [stdout] warning: 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling slicevec v0.1.0
[INFO] [stderr]    Compiling byteorder v1.0.0
[INFO] [stderr]    Compiling vec_map v0.8.0
[INFO] [stderr]    Compiling num-rational v0.1.38
[INFO] [stderr]    Compiling breeze_core v0.1.0 (/opt/rustwide/workdir/src/breeze_core)
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling clap v2.25.0
[INFO] [stderr]    Compiling inflate v0.2.0
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/dma.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | / impl_save_state!(DmaChannel { params, a_addr, a_addr_bank, b_addr, dma_size, hdma_indirect_bank,
[INFO] [stdout] 57 | |                               hdma_addr, hdma_flags, hdma_do_transfer } ignore {});
[INFO] [stdout]    | |__________________________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/breeze_core/lib.rs:1:9
[INFO] [stdout]    |
[INFO] [stdout] 1  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/dma.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | / impl_save_state!(DmaChannel { params, a_addr, a_addr_bank, b_addr, dma_size, hdma_indirect_bank,
[INFO] [stdout] 57 | |                               hdma_addr, hdma_flags, hdma_do_transfer } ignore {});
[INFO] [stdout]    | |__________________________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:246:14
[INFO] [stdout]     |
[INFO] [stdout] 246 |             );*
[INFO] [stdout]     |              ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         try!(write!(writer, "SMV\x1A"));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |         try!(writer.write_u32::<LittleEndian>(4));  // SMV Version
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         try!(writer.write_u32::<LittleEndian>(0));  // uid (Unix timestamp in Snes9x)
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         try!(writer.write_u32::<LittleEndian>(0));  // rerecord count (no idea what this does)
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         try!(writer.write_u32::<LittleEndian>(0xdeadbeef));    // Number of frames
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         try!(writer.write_u8(0));  // controller mask (FIXME)
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         try!(writer.write_u8(1));  // movie opts
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         try!(writer.write_u8(0));  // sync opts
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         try!(writer.write_u8(0));  // more (actual) sync opts
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         try!(writer.write_u32::<LittleEndian>(0x40));  // offset to save state / cart. RAM image
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         try!(writer.write_u32::<LittleEndian>(0x40 + 0x20000));  // offset to controller data
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         try!(writer.write_u32::<LittleEndian>(0xdeadbeef));  // num. of input samples
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         try!(writer.write_u8(get_controller_type(&input.ports.0)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         try!(writer.write_u8(get_controller_type(&input.ports.1)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         try!(writer.write_all(&[0; 18]));       // 18 bytes reserved for future use
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         try!(writer.write_all(&[0; 0x20000]));   // empty SRAM image
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             try!(writer.write_i8(-1));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:73:45
[INFO] [stdout]    |
[INFO] [stdout] 73 |         RecordingFormat::Custom => Box::new(try!(custom::Recorder::new(writer, snes))),
[INFO] [stdout]    |                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:74:42
[INFO] [stdout]    |
[INFO] [stdout] 74 |         RecordingFormat::Smv => Box::new(try!(smv::Recorder::new(writer, snes))),
[INFO] [stdout]    |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:84:45
[INFO] [stdout]    |
[INFO] [stdout] 84 |         RecordingFormat::Custom => Box::new(try!(custom::Replayer::new(reader, snes))),
[INFO] [stdout]    |                                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:85:42
[INFO] [stdout]    |
[INFO] [stdout] 85 |         RecordingFormat::Smv => Box::new(try!(smv::Replayer::new(reader, snes))),
[INFO] [stdout]    |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rustasm6502 v0.1.2
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/ppu/rendering.rs:231:15
[INFO] [stdout]     |
[INFO] [stdout] 231 |             2 ... 5 => {
[INFO] [stdout]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/breeze_core/ppu/sprites.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 |     sprite_scanline: [(Option<SpritePixel>); super::SCREEN_WIDTH as usize],
[INFO] [stdout]    |                       ^                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -     sprite_scanline: [(Option<SpritePixel>); super::SCREEN_WIDTH as usize],
[INFO] [stdout] 23 +     sprite_scanline: [Option<SpritePixel>; super::SCREEN_WIDTH as usize],
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/ppu/mod.rs:419:1
[INFO] [stdout]     |
[INFO] [stdout] 419 | / impl_save_state!(Ppu {
[INFO] [stdout] 420 | |     oam, cgram, vram, inidisp, obsel, oamaddl, oamaddh, oamaddr, oam_lsb, bgmode, mosaic, bg1sc,
[INFO] [stdout] 421 | |     bg2sc, bg3sc, bg4sc, bg12nba, bg34nba, bg1hofs, m7hofs, bg1vofs, m7vofs, bg2hofs, bg2vofs,
[INFO] [stdout] 422 | |     bg3hofs, bg3vofs, bg4hofs, bg4vofs, bg_old, m7_old, vmain, vmaddr, vram_prefetch, m7sel, m7a,
[INFO] [stdout] ...   |
[INFO] [stdout] 428 | |     framebuf, sprite_render_state, bg_cache
[INFO] [stdout] 429 | | });
[INFO] [stdout]     | |__^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/ppu/mod.rs:419:1
[INFO] [stdout]     |
[INFO] [stdout] 419 | / impl_save_state!(Ppu {
[INFO] [stdout] 420 | |     oam, cgram, vram, inidisp, obsel, oamaddl, oamaddh, oamaddr, oam_lsb, bgmode, mosaic, bg1sc,
[INFO] [stdout] 421 | |     bg2sc, bg3sc, bg4sc, bg12nba, bg34nba, bg1hofs, m7hofs, bg1vofs, m7vofs, bg2hofs, bg2vofs,
[INFO] [stdout] 422 | |     bg3hofs, bg3vofs, bg4hofs, bg4vofs, bg_old, m7_old, vmain, vmaddr, vram_prefetch, m7sel, m7a,
[INFO] [stdout] ...   |
[INFO] [stdout] 428 | |     framebuf, sprite_render_state, bg_cache
[INFO] [stdout] 429 | | });
[INFO] [stdout]     | |__^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/ppu/mod.rs:507:20
[INFO] [stdout]     |
[INFO] [stdout] 507 |             0x210f ... 0x2114 => self.bg_store(addr, value),
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/ppu/mod.rs:514:20
[INFO] [stdout]     |
[INFO] [stdout] 514 |             0x211b ... 0x2120 => self.m7_store(addr, value),
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/input/mod.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl_save_state!(Input { auto_read_data, latch, latched_this_frame } ignore { ports, mode });
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/input/mod.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl_save_state!(Input { auto_read_data, latch, latched_this_frame } ignore { ports, mode });
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/input/mod.rs:176:20
[INFO] [stdout]     |
[INFO] [stdout] 176 |             0x4218 ... 0x421f => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/breeze_core/rom.rs:95:22
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 0x20 ... 0x7E => {
[INFO] [stdout]    |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/rom.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl_save_state!(Rom { ram } ignore { header, rom });
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/rom.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl_save_state!(Rom { ram } ignore { header, rom });
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:251:20
[INFO] [stdout]     |
[INFO] [stdout] 251 |             0x0000 ... 0x7fff => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:255:26
[INFO] [stdout]     |
[INFO] [stdout] 255 |                     0x70 ... 0x7d => {
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |                     0xfe ... 0xff => {
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:271:20
[INFO] [stdout]     |
[INFO] [stdout] 271 |             0x8000 ... 0xffff => match bank {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:281:22
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 0x80 ... 0xfd | 0x00 ... 0x7d => {
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:281:38
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 0x80 ... 0xfd | 0x00 ... 0x7d => {
[INFO] [stdout]     |                                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:295:18
[INFO] [stdout]     |
[INFO] [stdout] 295 |             0x00 ... 0x3f | 0x80 ... 0xbf if addr >= 0x8000 => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:295:34
[INFO] [stdout]     |
[INFO] [stdout] 295 |             0x00 ... 0x3f | 0x80 ... 0xbf if addr >= 0x8000 => {
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:298:18
[INFO] [stdout]     |
[INFO] [stdout] 298 |             0x20 ... 0x3f | 0xa0 ... 0xbf if addr >= 0x6000 && addr <= 0x7fff => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:298:34
[INFO] [stdout]     |
[INFO] [stdout] 298 |             0x20 ... 0x3f | 0xa0 ... 0xbf if addr >= 0x6000 && addr <= 0x7fff => {
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:302:18
[INFO] [stdout]     |
[INFO] [stdout] 302 |             0x40 ... 0x7d | 0xc0 ... 0xfd => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:302:34
[INFO] [stdout]     |
[INFO] [stdout] 302 |             0x40 ... 0x7d | 0xc0 ... 0xfd => {
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:305:18
[INFO] [stdout]     |
[INFO] [stdout] 305 |             0x7e ... 0x7f => unreachable!(),    // WRAM banks
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/rom.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 |             0xfe ... 0xff => {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/save.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         try!(write!(w, "ZSNES Save State File V0.6"));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/save.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         try!(w.write_all(&[26]));   // ASCII SUBstitute (note that reading can not rely
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze_core/save.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         try!(w.write_all(&[60]));   // version #/100 (= 0.6)
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout] 98  | / impl_save_state!(Peripherals {
[INFO] [stdout] 99  | |     apu, ppu, rom, wram, dma, hdmaen, nmien, wrio, wrmpya, wrmpyb, wrdiv, rddiv, rdmpy, htime,
[INFO] [stdout] 100 | |     vtime, memsel, nmi, irq, cy, input, wmaddl, wmaddm, wmaddh
[INFO] [stdout] 101 | | } ignore {});
[INFO] [stdout]     | |____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout] 98  | / impl_save_state!(Peripherals {
[INFO] [stdout] 99  | |     apu, ppu, rom, wram, dma, hdmaen, nmien, wrio, wrmpya, wrmpyb, wrdiv, rddiv, rdmpy, htime,
[INFO] [stdout] 100 | |     vtime, memsel, nmi, irq, cy, input, wmaddl, wmaddm, wmaddh
[INFO] [stdout] 101 | | } ignore {});
[INFO] [stdout]     | |____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:144:18
[INFO] [stdout]     |
[INFO] [stdout] 144 |             0x00 ... 0x3f => match addr {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:145:24
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 0x0000 ... 0x1fff | 0x6000 ... 0xffff => SLOW,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:145:44
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 0x0000 ... 0x1fff | 0x6000 ... 0xffff => SLOW,
[INFO] [stdout]     |                                            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:146:24
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 0x4000 ... 0x41ff => XSLOW,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:149:18
[INFO] [stdout]     |
[INFO] [stdout] 149 |             0x40 ... 0x7f => SLOW,
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:150:18
[INFO] [stdout]     |
[INFO] [stdout] 150 |             0x80 ... 0xbf => match addr {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:151:24
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 0x0000 ... 0x1fff | 0x6000 ... 0x7fff => SLOW,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:151:44
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 0x0000 ... 0x1fff | 0x6000 ... 0x7fff => SLOW,
[INFO] [stdout]     |                                            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:152:24
[INFO] [stdout]     |
[INFO] [stdout] 152 |                 0x4000 ... 0x41ff => XSLOW,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:153:24
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 0x8000 ... 0xffff => if self.memsel { FAST } else { SLOW },
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:156:18
[INFO] [stdout]     |
[INFO] [stdout] 156 |             0xc0 ... 0xff => if self.memsel { FAST } else { SLOW },
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:178:18
[INFO] [stdout]     |
[INFO] [stdout] 178 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:178:34
[INFO] [stdout]     |
[INFO] [stdout] 178 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:180:24
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 0x0000 ... 0x1fff => self.wram[addr as usize],
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:182:24
[INFO] [stdout]     |
[INFO] [stdout] 182 |                 0x2100 ... 0x2133 => {
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:186:24
[INFO] [stdout]     |
[INFO] [stdout] 186 |                 0x2134 ... 0x213f => self.ppu.load(addr),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:188:24
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 0x2140 ... 0x217f => self.apu.read_port((addr & 0b11) as u8),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:193:24
[INFO] [stdout]     |
[INFO] [stdout] 193 |                 0x2181 ... 0x2183 => {
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:228:24
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 0x4218 ... 0x421f => self.input.load(addr),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:230:24
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 0x4300 ... 0x43ff => self.dma[(addr as usize & 0x00f0) >> 4].load(addr as u8 & 0xf),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:231:24
[INFO] [stdout]     |
[INFO] [stdout] 231 |                 0x6000 ... 0xffff => self.rom.load(bank, addr),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:239:18
[INFO] [stdout]     |
[INFO] [stdout] 239 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.load(bank, addr),
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:239:34
[INFO] [stdout]     |
[INFO] [stdout] 239 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.load(bank, addr),
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:247:18
[INFO] [stdout]     |
[INFO] [stdout] 247 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:247:34
[INFO] [stdout]     |
[INFO] [stdout] 247 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:248:24
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 0x0000 ... 0x1fff => self.wram[addr as usize] = value,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:250:24
[INFO] [stdout]     |
[INFO] [stdout] 250 |                 0x2100 ... 0x2133 => self.ppu.store(addr, value),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:251:24
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 0x2134 ... 0x213f => once!(warn!("store to read-only PPU register ${:04X}", addr)),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:253:24
[INFO] [stdout]     |
[INFO] [stdout] 253 |                 0x2140 ... 0x217f => self.apu.store_port((addr & 0b11) as u8, value),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:261:24
[INFO] [stdout]     |
[INFO] [stdout] 261 |                 0x2184 ... 0x21ff => once!(warn!("invalid store: ${:02X} to ${:02X}:{:04X}", value,
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:312:24
[INFO] [stdout]     |
[INFO] [stdout] 312 |                 0x4300 ... 0x43ff => {
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:315:24
[INFO] [stdout]     |
[INFO] [stdout] 315 |                 0x8000 ... 0xffff => self.rom.store(bank, addr, value),
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:320:18
[INFO] [stdout]     |
[INFO] [stdout] 320 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.store(bank, addr, value),
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:320:34
[INFO] [stdout]     |
[INFO] [stdout] 320 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.store(bank, addr, value),
[INFO] [stdout]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:341:1
[INFO] [stdout]     |
[INFO] [stdout] 341 | / impl_save_state!(Snes { cpu, master_cy, apu_master_cy_debt, ppu_master_cy_debt }
[INFO] [stdout] 342 | |     ignore { trace_start });
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:341:1
[INFO] [stdout]     |
[INFO] [stdout] 341 | / impl_save_state!(Snes { cpu, master_cy, apu_master_cy_debt, ppu_master_cy_debt }
[INFO] [stdout] 342 | |     ignore { trace_start });
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/breeze_core/snes.rs:414:24
[INFO] [stdout]     |
[INFO] [stdout] 414 |                     (0 ... 224, 278) => {
[INFO] [stdout]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:421:39
[INFO] [stdout]     |
[INFO] [stdout] 421 |                         for action in try!(render(&self.cpu.mem.ppu.framebuf)) {
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:568:23
[INFO] [stdout]     |
[INFO] [stdout] 568 |         for action in try!(actions) {
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_core/snes.rs:580:16
[INFO] [stdout]     |
[INFO] [stdout] 580 |         while !try!(self.render_frame()) {}
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:537:40
[INFO] [stdout]     |
[INFO] [stdout] 537 |                 if value & 0xf0 != 0 { once!(warn!("invalid value for $212b: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:537:40
[INFO] [stdout]     |
[INFO] [stdout] 537 |                 if value & 0xf0 != 0 { once!(warn!("invalid value for $212b: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:541:40
[INFO] [stdout]     |
[INFO] [stdout] 541 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212c: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:541:40
[INFO] [stdout]     |
[INFO] [stdout] 541 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212c: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:545:40
[INFO] [stdout]     |
[INFO] [stdout] 545 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212d: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:545:40
[INFO] [stdout]     |
[INFO] [stdout] 545 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212d: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:549:40
[INFO] [stdout]     |
[INFO] [stdout] 549 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212e: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:549:40
[INFO] [stdout]     |
[INFO] [stdout] 549 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212e: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:553:40
[INFO] [stdout]     |
[INFO] [stdout] 553 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212f: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:553:40
[INFO] [stdout]     |
[INFO] [stdout] 553 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212f: ${:02X}", value)); }
[INFO] [stdout]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:567:40
[INFO] [stdout]     |
[INFO] [stdout] 567 |                 if value & 0x08 != 0 { once!(warn!("pseudo-hires mode not yet implemented")); }
[INFO] [stdout]     |                                        ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:567:40
[INFO] [stdout]     |
[INFO] [stdout] 567 |                 if value & 0x08 != 0 { once!(warn!("pseudo-hires mode not yet implemented")); }
[INFO] [stdout]     |                                        ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:568:40
[INFO] [stdout]     |
[INFO] [stdout] 568 |                 if value & 0x04 != 0 { once!(warn!("overscan not yet implemented")); }
[INFO] [stdout]     |                                        -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:568:40
[INFO] [stdout]     |
[INFO] [stdout] 568 |                 if value & 0x04 != 0 { once!(warn!("overscan not yet implemented")); }
[INFO] [stdout]     |                                        -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:569:40
[INFO] [stdout]     |
[INFO] [stdout] 569 |                 if value & 0x03 != 0 { once!(warn!("interlace not yet implemented")); }
[INFO] [stdout]     |                                        --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/ppu/mod.rs:569:40
[INFO] [stdout]     |
[INFO] [stdout] 569 |                 if value & 0x03 != 0 { once!(warn!("interlace not yet implemented")); }
[INFO] [stdout]     |                                        --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 | /             once!(warn!("latch still active from older frame (might interfere with \
[INFO] [stdout] 125 | |                          recording); latch might be changed by emulator!"));
[INFO] [stdout]     | |___________________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 | /             once!(warn!("latch still active from older frame (might interfere with \
[INFO] [stdout] 125 | |                          recording); latch might be changed by emulator!"));
[INFO] [stdout]     | |___________________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:148:21
[INFO] [stdout]     |
[INFO] [stdout] 148 | /                     once!(warn!("reading data lines without prior latching (this can interfere \
[INFO] [stdout] 149 | |                                  with input recording)"));
[INFO] [stdout]     | |_________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:148:21
[INFO] [stdout]     |
[INFO] [stdout] 148 | /                     once!(warn!("reading data lines without prior latching (this can interfere \
[INFO] [stdout] 149 | |                                  with input recording)"));
[INFO] [stdout]     | |_________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 | /                         once!(warn!("already latched input in this frame! (this might interfere \
[INFO] [stdout] 193 | |                                      with recording)"));
[INFO] [stdout]     | |_______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/input/mod.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 | /                         once!(warn!("already latched input in this frame! (this might interfere \
[INFO] [stdout] 193 | |                                      with recording)"));
[INFO] [stdout]     | |_______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:183:21
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     once!(warn!("read from write-only PPU register ${:04X}", addr));
[INFO] [stdout]     |                     --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:183:21
[INFO] [stdout]     |
[INFO] [stdout] 183 |                     once!(warn!("read from write-only PPU register ${:04X}", addr));
[INFO] [stdout]     |                     --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:194:21
[INFO] [stdout]     |
[INFO] [stdout] 194 |                     once!(warn!("open-bus load from WRAM register ${:02X}", addr));
[INFO] [stdout]     |                     -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:194:21
[INFO] [stdout]     |
[INFO] [stdout] 194 |                     once!(warn!("open-bus load from WRAM register ${:02X}", addr));
[INFO] [stdout]     |                     -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:233:21
[INFO] [stdout]     |
[INFO] [stdout] 233 |                     once!(warn!("invalid/unimplemented load from ${:02X}:{:04X}", bank, addr));
[INFO] [stdout]     |                     -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:233:21
[INFO] [stdout]     |
[INFO] [stdout] 233 |                     once!(warn!("invalid/unimplemented load from ${:02X}:{:04X}", bank, addr));
[INFO] [stdout]     |                     -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:251:38
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 0x2134 ... 0x213f => once!(warn!("store to read-only PPU register ${:04X}", addr)),
[INFO] [stdout]     |                                      ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:251:38
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 0x2134 ... 0x213f => once!(warn!("store to read-only PPU register ${:04X}", addr)),
[INFO] [stdout]     |                                      ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:261:38
[INFO] [stdout]     |
[INFO] [stdout] 261 |                   0x2184 ... 0x21ff => once!(warn!("invalid store: ${:02X} to ${:02X}:{:04X}", value,
[INFO] [stdout]     |  ______________________________________-
[INFO] [stdout] 262 | |                     bank, addr)),
[INFO] [stdout]     | |________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:261:38
[INFO] [stdout]     |
[INFO] [stdout] 261 |                   0x2184 ... 0x21ff => once!(warn!("invalid store: ${:02X} to ${:02X}:{:04X}", value,
[INFO] [stdout]     |  ______________________________________-
[INFO] [stdout] 262 | |                     bank, addr)),
[INFO] [stdout]     | |________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stdout]     |
[INFO] [stdout] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:273:44
[INFO] [stdout]     |
[INFO] [stdout] 273 |                     if value & 0x4e != 0 { once!(warn!("Invalid value for NMIEN: ${:02X}", value)) }
[INFO] [stdout]     |                                            ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/breeze_core/snes.rs:273:44
[INFO] [stdout]     |
[INFO] [stdout] 273 |                     if value & 0x4e != 0 { once!(warn!("Invalid value for NMIEN: ${:02X}", value)) }
[INFO] [stdout]     |                                            ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/custom.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |     writer: Box<WriteSeek>,
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 |     writer: Box<dyn WriteSeek>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/custom.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |     reader: Box<BufRead>,
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     reader: Box<dyn BufRead>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |     writer: Box<WriteSeek>,
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     writer: Box<dyn WriteSeek>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |     reader: Box<BufRead>,
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 93 |     reader: Box<dyn BufRead>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/input/port.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 |         imp: Box<JoypadImpl>,
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |         imp: Box<dyn JoypadImpl>,
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/input/mod.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Recorded(Box<Recorder>),
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Recorded(Box<dyn Recorder>),
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/input/mod.rs:63:18
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Replayed(Box<Replayer>),
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Replayed(Box<dyn Replayer>),
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:68:36
[INFO] [stdout]    |
[INFO] [stdout] 68 |                        writer: Box<WriteSeek>,
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |                        writer: Box<dyn WriteSeek>,
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:70:42
[INFO] [stdout]    |
[INFO] [stdout] 70 |                        -> io::Result<Box<Recorder>> {
[INFO] [stdout]    |                                          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |                        -> io::Result<Box<dyn Recorder>> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:79:36
[INFO] [stdout]    |
[INFO] [stdout] 79 |                        reader: Box<BufRead>,
[INFO] [stdout]    |                                    ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |                        reader: Box<dyn BufRead>,
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:81:42
[INFO] [stdout]    |
[INFO] [stdout] 81 |                        -> io::Result<Box<Replayer>> {
[INFO] [stdout]    |                                          ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 81 |                        -> io::Result<Box<dyn Replayer>> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:45:24
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn new(writer: Box<WriteSeek>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn new(writer: Box<dyn WriteSeek>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/mod.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn new(reader: Box<BufRead>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn new(reader: Box<dyn BufRead>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/custom.rs:29:24
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn new(writer: Box<WriteSeek>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn new(writer: Box<dyn WriteSeek>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/custom.rs:45:24
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn new(reader: Box<BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn new(reader: Box<dyn BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn new(mut writer: Box<WriteSeek>, snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn new(mut writer: Box<dyn WriteSeek>, snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/record/smv.rs:97:24
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn new(reader: Box<BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn new(reader: Box<dyn BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/input/mod.rs:92:48
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn start_recording(&mut self, rec: Box<Recorder>) {
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn start_recording(&mut self, rec: Box<dyn Recorder>) {
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/breeze_core/input/mod.rs:101:50
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn start_replay(&mut self, replayer: Box<Replayer>) {
[INFO] [stdout]     |                                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn start_replay(&mut self, replayer: Box<dyn Replayer>) {
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/input/port.rs:35:32
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new_joypad(imp: Box<JoypadImpl>) -> Self {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new_joypad(imp: Box<dyn JoypadImpl>) -> Self {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/save.rs:26:70
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn create_save_state(&self, format: SaveStateFormat, w: &mut Write) -> io::Result<()> {
[INFO] [stdout]    |                                                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn create_save_state(&self, format: SaveStateFormat, w: &mut dyn Write) -> io::Result<()> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/save.rs:35:75
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn restore_save_state(&mut self, format: SaveStateFormat, r: &mut BufRead) -> io::Result<()> {
[INFO] [stdout]    |                                                                           ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn restore_save_state(&mut self, format: SaveStateFormat, r: &mut dyn BufRead) -> io::Result<()> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/save.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn save_zsnes(&self, w: &mut Write) -> io::Result<()> {
[INFO] [stdout]    |                                  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn save_zsnes(&self, w: &mut dyn Write) -> io::Result<()> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_core/save.rs:54:39
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn load_zsnes(&mut self, _r: &mut BufRead) -> io::Result<()> {
[INFO] [stdout]    |                                       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn load_zsnes(&mut self, _r: &mut dyn BufRead) -> io::Result<()> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling term v0.4.6
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> src/breeze_core/rom.rs:31:75
[INFO] [stdout]    |
[INFO] [stdout] 31 |         info!("ROM name: '{}'", str::from_utf8(&self.title).unwrap_or("").trim_right());
[INFO] [stdout]    |                                                                           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 31 |         info!("ROM name: '{}'", str::from_utf8(&self.title).unwrap_or("").trim_end());
[INFO] [stdout]    |                                                                           ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/breeze_core/rom.rs:109:64
[INFO] [stdout]     |
[INFO] [stdout] 109 |         debug!("loading '{}'", str::from_utf8(&title).unwrap().trim_right());
[INFO] [stdout]     |                                                                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 109 |         debug!("loading '{}'", str::from_utf8(&title).unwrap().trim_end());
[INFO] [stdout]     |                                                                ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/breeze_core/rom.rs:246:59
[INFO] [stdout]     |
[INFO] [stdout] 246 |         str::from_utf8(&self.header.title).ok().map(|s| s.trim_right())
[INFO] [stdout]     |                                                           ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 246 |         str::from_utf8(&self.header.title).ok().map(|s| s.trim_end())
[INFO] [stdout]     |                                                           ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling num v0.1.39
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/breeze_core/rom.rs:288:13
[INFO] [stdout]     |
[INFO] [stdout] 288 |             _ => unreachable!()
[INFO] [stdout]     |             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/breeze_core/snes.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |             _ => FAST,
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/breeze_core/snes.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |             _ => unreachable!(),    // Rust should know this!
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/breeze_core/snes.rs:321:13
[INFO] [stdout]     |
[INFO] [stdout] 321 |             _ => unreachable!(),    // Rust should know this!
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling sdl2 v0.24.0
[INFO] [stderr]    Compiling breeze_sdl v0.1.0 (/opt/rustwide/workdir/src/breeze_sdl)
[INFO] [stderr]    Compiling env_logger v0.4.3
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_sdl/lib.rs:126:25
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let video = try!(sdl.video());
[INFO] [stdout]     |                         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_sdl/lib.rs:127:26
[INFO] [stdout]     |
[INFO] [stdout] 127 |             let window = try!(video.window("breeze", SCREEN_WIDTH * 3, SCREEN_HEIGHT * 3)
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_sdl/lib.rs:130:28
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let renderer = try!(window.renderer()
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_sdl/lib.rs:134:27
[INFO] [stdout]     |
[INFO] [stdout] 134 |             let texture = try!(renderer.create_texture(
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/breeze_sdl/lib.rs:123:37
[INFO] [stdout]     |
[INFO] [stdout] 123 |     fn create() -> Result<Self, Box<Error>> {
[INFO] [stdout]     |                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     fn create() -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling png v0.9.0
[INFO] [stdout] warning: 33 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 161 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling libloading v0.3.4
[INFO] [stderr]    Compiling dlib v0.3.1
[INFO] [stderr]    Compiling wayland-sys v0.5.11
[INFO] [stderr]    Compiling wayland-kbd v0.3.6
[INFO] [stderr]    Compiling wayland-window v0.2.3
[INFO] [stderr]    Compiling breeze_glium v0.1.0 (/opt/rustwide/workdir/src/breeze_glium)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_glium/lib.rs:114:23
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let display = try!(WindowBuilder::new()
[INFO] [stdout]     |                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_glium/lib.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let mut vbuf = try!(VertexBuffer::empty_dynamic(&display, 4));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_glium/lib.rs:124:22
[INFO] [stdout]     |
[INFO] [stdout] 124 |             program: try!(
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze_glium/lib.rs:126:22
[INFO] [stdout]     |
[INFO] [stdout] 126 |             texture: try!(SrgbTexture2d::empty(&display, SCREEN_WIDTH, SCREEN_HEIGHT)),
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/breeze_glium/lib.rs:113:37
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn create() -> Result<Self, Box<Error>> {
[INFO] [stdout]     |                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn create() -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling breeze_backends v0.1.0 (/opt/rustwide/workdir/src/breeze_backends)
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/breeze_backends/lib.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout] 8  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | / lazy_static! {
[INFO] [stdout] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stdout] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stdout] ...  |
[INFO] [stdout] 94 | |     };
[INFO] [stdout] 95 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:31:73
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<Renderer>, Box<Error>>>>;
[INFO] [stdout]    |                                                                         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<dyn Renderer>, Box<Error>>>>;
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:31:88
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<Renderer>, Box<Error>>>>;
[INFO] [stdout]    |                                                                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<Renderer>, Box<dyn Error>>>>;
[INFO] [stdout]    |                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:32:70
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<AudioSink>, Box<Error>>>>;
[INFO] [stdout]    |                                                                      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<dyn AudioSink>, Box<Error>>>>;
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:32:86
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<AudioSink>, Box<Error>>>>;
[INFO] [stdout]    |                                                                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<AudioSink>, Box<dyn Error>>>>;
[INFO] [stdout]    |                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:36:56
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout]    |                                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<dyn Renderer>, Box<Error>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:36:71
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stdout]    |                                                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<dyn Error>> {
[INFO] [stdout]    |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |         type MapEntry = Option<fn() -> Result<Box<Renderer>, Box<Error>>>;
[INFO] [stdout]    |                                                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         type MapEntry = Option<fn() -> Result<Box<dyn Renderer>, Box<Error>>>;
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:40:66
[INFO] [stdout]    |
[INFO] [stdout] 40 |         type MapEntry = Option<fn() -> Result<Box<Renderer>, Box<Error>>>;
[INFO] [stdout]    |                                                                  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         type MapEntry = Option<fn() -> Result<Box<Renderer>, Box<dyn Error>>>;
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:71:57
[INFO] [stdout]    |
[INFO] [stdout] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<AudioSink>, Box<Error>> {
[INFO] [stdout]    |                                                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<dyn AudioSink>, Box<Error>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:71:73
[INFO] [stdout]    |
[INFO] [stdout] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<AudioSink>, Box<Error>> {
[INFO] [stdout]    |                                                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<AudioSink>, Box<dyn Error>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:75:51
[INFO] [stdout]    |
[INFO] [stdout] 75 |         type MapEntry = Option<fn() -> Result<Box<AudioSink>, Box<Error>>>;
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 |         type MapEntry = Option<fn() -> Result<Box<dyn AudioSink>, Box<Error>>>;
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze_backends/lib.rs:75:67
[INFO] [stdout]    |
[INFO] [stdout] 75 |         type MapEntry = Option<fn() -> Result<Box<AudioSink>, Box<Error>>>;
[INFO] [stdout]    |                                                                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 |         type MapEntry = Option<fn() -> Result<Box<AudioSink>, Box<dyn Error>>>;
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling breeze v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze/main.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     try!(file.read_to_end(&mut buf));
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/breeze/main.rs:1:9
[INFO] [stdout]    |
[INFO] [stdout] 1  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze/main.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     try!(file.read_to_end(&mut buf));
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/breeze/main.rs:1:9
[INFO] [stdout]    |
[INFO] [stdout] 1  | #![deny(warnings)]
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze/main.rs:96:20
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let mut file = try!(File::open(&filename));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/breeze/main.rs:96:20
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let mut file = try!(File::open(&filename));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let rom = try!(Rom::from_bytes(&buf));
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let rom = try!(Rom::from_bytes(&buf));
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:104:24
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut renderer = try!(renderer_fn());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:104:24
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut renderer = try!(renderer_fn());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let audio = try!(audio_fn());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let audio = try!(audio_fn());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         try!(emu.snes.render_frame(|_framebuf| Ok(vec![])));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         try!(emu.snes.render_frame(|_framebuf| Ok(vec![])));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:144:27
[INFO] [stdout]     |
[INFO] [stdout] 144 |             let actions = try!(emu.renderer.render(&*framebuf));
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         try!(emu.run());
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:144:27
[INFO] [stdout]     |
[INFO] [stdout] 144 |             let actions = try!(emu.renderer.render(&*framebuf));
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/breeze/main.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         try!(emu.run());
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze/main.rs:31:54
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn process_args(args: &ArgMatches) -> Result<(), Box<Error>> {
[INFO] [stdout]    |                                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn process_args(args: &ArgMatches) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze/main.rs:31:54
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn process_args(args: &ArgMatches) -> Result<(), Box<Error>> {
[INFO] [stdout]    |                                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn process_args(args: &ArgMatches) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze/input.rs:29:35
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn sdl_kbd_joypad() -> Option<Box<JoypadImpl>> {
[INFO] [stdout]    |                                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn sdl_kbd_joypad() -> Option<Box<dyn JoypadImpl>> {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/breeze/input.rs:29:35
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn sdl_kbd_joypad() -> Option<Box<JoypadImpl>> {
[INFO] [stdout]    |                                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn sdl_kbd_joypad() -> Option<Box<dyn JoypadImpl>> {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> rendertest/main.rs:242:38
[INFO] [stdout]     |
[INFO] [stdout] 242 |     let mut emu = Emulator::new(rom, try!(DummyRenderer::create()), try!(DummySink::create()));
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> rendertest/main.rs:242:69
[INFO] [stdout]     |
[INFO] [stdout] 242 |     let mut emu = Emulator::new(rom, try!(DummyRenderer::create()), try!(DummySink::create()));
[INFO] [stdout]     |                                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> rendertest/main.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |         try!(emu.render_frame());
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated trait `std::ascii::AsciiExt`: use inherent methods instead
[INFO] [stdout]   --> rendertest/main.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::ascii::AsciiExt;
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rendertest/main.rs:71:18
[INFO] [stdout]    |
[INFO] [stdout] 71 |     EmuError(Box<Error>),
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 |     EmuError(Box<dyn Error>),
[INFO] [stdout]    |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rendertest/main.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl From<Box<Error>> for TestFailure {
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl From<Box<dyn Error>> for TestFailure {
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rendertest/main.rs:76:20
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn from(e: Box<Error>) -> Self {
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn from(e: Box<dyn Error>) -> Self {
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ascii::AsciiExt`
[INFO] [stdout]   --> rendertest/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::ascii::AsciiExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 8 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [optimized + debuginfo] target(s) in 50.23s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "f8029e0f421a60a355d326d0f2e97129679a8de155192f9384151fb2d13591e6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f8029e0f421a60a355d326d0f2e97129679a8de155192f9384151fb2d13591e6", kill_on_drop: false }`
[INFO] [stdout] f8029e0f421a60a355d326d0f2e97129679a8de155192f9384151fb2d13591e6
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b12b3059feaf1b702214148de0775af919e19947b952dae5c9ad7b930a7ce38f
[INFO] running `Command { std: "docker" "start" "-a" "b12b3059feaf1b702214148de0775af919e19947b952dae5c9ad7b930a7ce38f", kill_on_drop: false }`
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backend/lib.rs:23:43
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub type BackendResult<T> = Result<T, Box<Error>>;
[INFO] [stderr]    |                                           ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/breeze_backend/lib.rs:1:9
[INFO] [stderr]    |
[INFO] [stderr] 1  | #![deny(warnings)]
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub type BackendResult<T> = Result<T, Box<dyn Error>>;
[INFO] [stderr]    |                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: `breeze_backend` (lib) generated 1 warning (run `cargo fix --lib -p breeze_backend` to apply 1 suggestion)
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/libsavestate/lib.rs:92:9
[INFO] [stderr]    |
[INFO] [stderr] 92 |         try!(read_exact(r, &mut val));
[INFO] [stderr]    |         ^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/libsavestate/lib.rs:5:9
[INFO] [stderr]    |
[INFO] [stderr] 5  | #![deny(warnings)]
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:108:21
[INFO] [stderr]     |
[INFO] [stderr] 108 |             None => try!(false.save_state(w)),
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:110:17
[INFO] [stderr]     |
[INFO] [stderr] 110 |                 try!(true.save_state(w));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:111:17
[INFO] [stderr]     |
[INFO] [stderr] 111 |                 try!(t.save_state(w));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:119:9
[INFO] [stderr]     |
[INFO] [stderr] 119 |         try!(read_exact(r, &mut val));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:125:17
[INFO] [stderr]     |
[INFO] [stderr] 125 |                 try!(t.restore_state(r));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:141:21
[INFO] [stderr]     |
[INFO] [stderr] 141 |                       try!(t.save_state(w))
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] ...
[INFO] [stderr] 157 | / impl_fixed_size_array!(
[INFO] [stderr] 158 | |     0 1 2 3 4 5 6 7 8
[INFO] [stderr] 159 | | );
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_fixed_size_array` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:149:21
[INFO] [stderr]     |
[INFO] [stderr] 149 |                       try!(t.restore_state(r));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] ...
[INFO] [stderr] 157 | / impl_fixed_size_array!(
[INFO] [stderr] 158 | |     0 1 2 3 4 5 6 7 8
[INFO] [stderr] 159 | | );
[INFO] [stderr]     | |_- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_fixed_size_array` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:168:9
[INFO] [stderr]     |
[INFO] [stderr] 168 |         try!(self.len().save_state(w));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:170:13
[INFO] [stderr]     |
[INFO] [stderr] 170 |             try!(item.save_state(w));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:177:9
[INFO] [stderr]     |
[INFO] [stderr] 177 |         try!(len.restore_state(r));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/libsavestate/lib.rs:184:13
[INFO] [stderr]     |
[INFO] [stderr] 184 |             try!(obj.restore_state(r));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `libsavestate` (lib) generated 12 warnings
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_cpal/lib.rs:21:23
[INFO] [stderr]    |
[INFO] [stderr] 21 |         let formats = try!(endpoint.get_supported_formats_list()).collect::<Vec<_>>();
[INFO] [stderr]    |                       ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_cpal/lib.rs:36:21
[INFO] [stderr]    |
[INFO] [stderr] 36 |         let voice = try!(Voice::new(&endpoint, &format));
[INFO] [stderr]    |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/wdc65816/statusreg.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 71 |         try!(f.write_str(if self.negative() { "N" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/wdc65816/statusreg.rs:72:9
[INFO] [stderr]    |
[INFO] [stderr] 72 |         try!(f.write_str(if self.overflow() { "V" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/wdc65816/statusreg.rs:73:9
[INFO] [stderr]    |
[INFO] [stderr] 73 |         try!(f.write_str(if self.small_acc() { "M" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/wdc65816/statusreg.rs:74:9
[INFO] [stderr]    |
[INFO] [stderr] 74 |         try!(f.write_str(if self.small_index() { "X" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/wdc65816/statusreg.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 75 |         try!(f.write_str(if self.decimal() { "D" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/wdc65816/statusreg.rs:76:9
[INFO] [stderr]    |
[INFO] [stderr] 76 |         try!(f.write_str(if self.irq_disable() { "I" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/wdc65816/statusreg.rs:77:9
[INFO] [stderr]    |
[INFO] [stderr] 77 |         try!(f.write_str(if self.zero() { "Z" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/wdc65816/statusreg.rs:78:9
[INFO] [stderr]    |
[INFO] [stderr] 78 |         try!(f.write_str(if self.carry() { "C" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/wdc65816/lib.rs:69:5
[INFO] [stderr]    |
[INFO] [stderr] 69 | /     impl_save_state_fns!(Cpu {
[INFO] [stderr] 70 | |         a, x, y, s, dbr, pbr, d, pc, p, emulation, wai, mem
[INFO] [stderr] 71 | |     } ignore { cy, trace });
[INFO] [stderr]    | |___________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_save_state_fns` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:235:14
[INFO] [stderr]     |
[INFO] [stderr] 235 |             );*
[INFO] [stderr]     |              ^ help: remove this semicolon
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:246:14
[INFO] [stderr]     |
[INFO] [stderr] 246 |             );*
[INFO] [stderr]     |              ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]   --> src/spc700/addressing.rs:93:9
[INFO] [stderr]    |
[INFO] [stderr] 93 |         (hi << 8 | lo)
[INFO] [stderr]    |         ^            ^
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/spc700/lib.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | #![deny(warnings)]
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    = note: `#[warn(unused_parens)]` implied by `#[warn(warnings)]`
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 93 -         (hi << 8 | lo)
[INFO] [stderr] 93 +         hi << 8 | lo
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/dsp.rs:31:1
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl_save_state!(Voice { lvol, rvol, pitch, source, adsr1, adsr2, gain, env, out, fir } ignore {});
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stderr]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> /opt/rustwide/workdir/src/libsavestate/lib.rs:235:14
[INFO] [stderr]     |
[INFO] [stderr] 235 |             );*
[INFO] [stderr]     |              ^ help: remove this semicolon
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(redundant_semicolons)]` implied by `#[warn(warnings)]`
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/dsp.rs:31:1
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl_save_state!(Voice { lvol, rvol, pitch, source, adsr1, adsr2, gain, env, out, fir } ignore {});
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/dsp.rs:78:1
[INFO] [stderr]    |
[INFO] [stderr] 78 | / impl_save_state!(Dsp { voices, lmvol, rmvol, levol, revol, keyon, keyoff, flags, endx, efb, pmod,
[INFO] [stderr] 79 | |     noise, echo, srcdir, echo_buf, echo_delay } ignore {});
[INFO] [stderr]    | |__________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/statusreg.rs:47:9
[INFO] [stderr]    |
[INFO] [stderr] 47 |         try!(f.write_str(if self.negative() { "N" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/statusreg.rs:48:9
[INFO] [stderr]    |
[INFO] [stderr] 48 |         try!(f.write_str(if self.overflow() { "V" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/statusreg.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 49 |         try!(f.write_str(if self.direct_page() { "D" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/statusreg.rs:50:9
[INFO] [stderr]    |
[INFO] [stderr] 50 |         try!(f.write_str("x"));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/statusreg.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 51 |         try!(f.write_str(if self.half_carry() { "H" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/statusreg.rs:52:9
[INFO] [stderr]    |
[INFO] [stderr] 52 |         try!(f.write_str(if self.interrupt_enable() { "I" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/statusreg.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 53 |         try!(f.write_str(if self.zero() { "Z" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/statusreg.rs:54:9
[INFO] [stderr]    |
[INFO] [stderr] 54 |         try!(f.write_str(if self.carry() { "C" } else { "-" }));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/timer.rs:18:1
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl_save_state!(Timer { div, val, enabled, stage1, stage2 } ignore {});
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/spc700/lib.rs:71:1
[INFO] [stderr]    |
[INFO] [stderr] 71 | / impl_save_state!(Spc700 { mem, ipl_rom_mapped, reg_dsp_addr, io_vals, timers, dsp, a, x, y, sp, pc,
[INFO] [stderr] 72 | |     psw } ignore { cy, trace });
[INFO] [stderr]    | |_______________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/spc700/lib.rs:125:18
[INFO] [stderr]     |
[INFO] [stderr] 125 |             0xfa ... 0xfc =>
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` implied by `#[warn(warnings)]`
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/spc700/lib.rs:129:18
[INFO] [stderr]     |
[INFO] [stderr] 129 |             0xf4 ... 0xf7 => self.io_vals[addr as usize - 0xf4],
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/spc700/lib.rs:146:20
[INFO] [stderr]     |
[INFO] [stderr] 146 |             0xffc0 ... 0xffff if self.ipl_rom_mapped => IPL_ROM[addr as usize - 0xffc0],
[INFO] [stderr]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/spc700/lib.rs:185:18
[INFO] [stderr]     |
[INFO] [stderr] 185 |             0xfd ... 0xff => panic!("APU attempted to write to read-only register ${:04X}", addr),
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/spc700/once.rs:4:55
[INFO] [stderr]     |
[INFO] [stderr] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/spc700/lib.rs:119:17
[INFO] [stderr]     |
[INFO] [stderr] 119 |                 once!(warn!("read from write-only control register"));
[INFO] [stderr]     |                 ----------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/spc700/once.rs:6:38
[INFO] [stderr]     |
[INFO] [stderr] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/spc700/lib.rs:119:17
[INFO] [stderr]     |
[INFO] [stderr] 119 |                 once!(warn!("read from write-only control register"));
[INFO] [stderr]     |                 ----------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/spc700/once.rs:4:55
[INFO] [stderr]     |
[INFO] [stderr] 4   |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/spc700/lib.rs:158:21
[INFO] [stderr]     |
[INFO] [stderr] 158 | /                     once!({
[INFO] [stderr] 159 | |                         warn!("SPC700 wrote ${:02X} to testing register ($f0)", val);
[INFO] [stderr] 160 | |                         warn!("As a safety measure, only $0a is allowed. This write will be \
[INFO] [stderr] 161 | |                             ignored! (This warning will only be printed for the first illegal \
[INFO] [stderr] 162 | |                             write)");
[INFO] [stderr] 163 | |                     });
[INFO] [stderr]     | |______________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/spc700/once.rs:6:38
[INFO] [stderr]     |
[INFO] [stderr] 6   |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/spc700/lib.rs:158:21
[INFO] [stderr]     |
[INFO] [stderr] 158 | /                     once!({
[INFO] [stderr] 159 | |                         warn!("SPC700 wrote ${:02X} to testing register ($f0)", val);
[INFO] [stderr] 160 | |                         warn!("As a safety measure, only $0a is allowed. This write will be \
[INFO] [stderr] 161 | |                             ignored! (This warning will only be printed for the first illegal \
[INFO] [stderr] 162 | |                             write)");
[INFO] [stderr] 163 | |                     });
[INFO] [stderr]     | |______________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/spc700/once.rs:4:55
[INFO] [stderr]     |
[INFO] [stderr] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/spc700/lib.rs:652:13
[INFO] [stderr]     |
[INFO] [stderr] 652 |             once!(warn!("`tcall {}` while IPL ROM is mapped!", p));
[INFO] [stderr]     |             ------------------------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/spc700/once.rs:6:38
[INFO] [stderr]     |
[INFO] [stderr] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/spc700/lib.rs:652:13
[INFO] [stderr]     |
[INFO] [stderr] 652 |             once!(warn!("`tcall {}` while IPL ROM is mapped!", p));
[INFO] [stderr]     |             ------------------------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/spc700/once.rs:4:55
[INFO] [stderr]     |
[INFO] [stderr] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/spc700/dsp.rs:171:29
[INFO] [stderr]     |
[INFO] [stderr] 171 |                     0x08 => once!(warn!("ignoring write to envelope value")),
[INFO] [stderr]     |                             ------------------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/spc700/once.rs:6:38
[INFO] [stderr]     |
[INFO] [stderr] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/spc700/dsp.rs:171:29
[INFO] [stderr]     |
[INFO] [stderr] 171 |                     0x08 => once!(warn!("ignoring write to envelope value")),
[INFO] [stderr]     |                             ------------------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/spc700/once.rs:4:55
[INFO] [stderr]     |
[INFO] [stderr] 4   |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/spc700/dsp.rs:172:29
[INFO] [stderr]     |
[INFO] [stderr] 172 |                     0x09 => once!(warn!("ignoring write to sample value")),
[INFO] [stderr]     |                             ---------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/spc700/once.rs:6:38
[INFO] [stderr]     |
[INFO] [stderr] 6   |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/spc700/dsp.rs:172:29
[INFO] [stderr]     |
[INFO] [stderr] 172 |                     0x09 => once!(warn!("ignoring write to sample value")),
[INFO] [stderr]     |                             ---------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 6   |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: `breeze_cpal` (lib) generated 2 warnings
[INFO] [stderr] warning: `wdc65816` (lib) generated 12 warnings (1 duplicate)
[INFO] [stderr] warning: `spc700` (lib) generated 33 warnings (4 duplicates) (run `cargo fix --lib -p spc700` to apply 10 suggestions)
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_sdl/lib.rs:126:25
[INFO] [stderr]     |
[INFO] [stderr] 126 |             let video = try!(sdl.video());
[INFO] [stderr]     |                         ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_sdl/lib.rs:127:26
[INFO] [stderr]     |
[INFO] [stderr] 127 |             let window = try!(video.window("breeze", SCREEN_WIDTH * 3, SCREEN_HEIGHT * 3)
[INFO] [stderr]     |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_sdl/lib.rs:130:28
[INFO] [stderr]     |
[INFO] [stderr] 130 |             let renderer = try!(window.renderer()
[INFO] [stderr]     |                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_sdl/lib.rs:134:27
[INFO] [stderr]     |
[INFO] [stderr] 134 |             let texture = try!(renderer.create_texture(
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/breeze_sdl/lib.rs:123:37
[INFO] [stderr]     |
[INFO] [stderr] 123 |     fn create() -> Result<Self, Box<Error>> {
[INFO] [stderr]     |                                     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 123 |     fn create() -> Result<Self, Box<dyn Error>> {
[INFO] [stderr]     |                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/dma.rs:56:1
[INFO] [stderr]    |
[INFO] [stderr] 56 | / impl_save_state!(DmaChannel { params, a_addr, a_addr_bank, b_addr, dma_size, hdma_indirect_bank,
[INFO] [stderr] 57 | |                               hdma_addr, hdma_flags, hdma_do_transfer } ignore {});
[INFO] [stderr]    | |__________________________________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/breeze_core/lib.rs:1:9
[INFO] [stderr]    |
[INFO] [stderr] 1  | #![deny(warnings)]
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stderr]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/dma.rs:56:1
[INFO] [stderr]    |
[INFO] [stderr] 56 | / impl_save_state!(DmaChannel { params, a_addr, a_addr_bank, b_addr, dma_size, hdma_indirect_bank,
[INFO] [stderr] 57 | |                               hdma_addr, hdma_flags, hdma_do_transfer } ignore {});
[INFO] [stderr]    | |__________________________________________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |         try!(write!(writer, "SMV\x1A"));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:25:9
[INFO] [stderr]    |
[INFO] [stderr] 25 |         try!(writer.write_u32::<LittleEndian>(4));  // SMV Version
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |         try!(writer.write_u32::<LittleEndian>(0));  // uid (Unix timestamp in Snes9x)
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:27:9
[INFO] [stderr]    |
[INFO] [stderr] 27 |         try!(writer.write_u32::<LittleEndian>(0));  // rerecord count (no idea what this does)
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 28 |         try!(writer.write_u32::<LittleEndian>(0xdeadbeef));    // Number of frames
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:30:9
[INFO] [stderr]    |
[INFO] [stderr] 30 |         try!(writer.write_u8(0));  // controller mask (FIXME)
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:31:9
[INFO] [stderr]    |
[INFO] [stderr] 31 |         try!(writer.write_u8(1));  // movie opts
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:32:9
[INFO] [stderr]    |
[INFO] [stderr] 32 |         try!(writer.write_u8(0));  // sync opts
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:33:9
[INFO] [stderr]    |
[INFO] [stderr] 33 |         try!(writer.write_u8(0));  // more (actual) sync opts
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |         try!(writer.write_u32::<LittleEndian>(0x40));  // offset to save state / cart. RAM image
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |         try!(writer.write_u32::<LittleEndian>(0x40 + 0x20000));  // offset to controller data
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 38 |         try!(writer.write_u32::<LittleEndian>(0xdeadbeef));  // num. of input samples
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:50:9
[INFO] [stderr]    |
[INFO] [stderr] 50 |         try!(writer.write_u8(get_controller_type(&input.ports.0)));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 51 |         try!(writer.write_u8(get_controller_type(&input.ports.1)));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:58:9
[INFO] [stderr]    |
[INFO] [stderr] 58 |         try!(writer.write_all(&[0; 18]));       // 18 bytes reserved for future use
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 63 |         try!(writer.write_all(&[0; 0x20000]));   // empty SRAM image
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:56:13
[INFO] [stderr]    |
[INFO] [stderr] 56 |             try!(writer.write_i8(-1));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/mod.rs:73:45
[INFO] [stderr]    |
[INFO] [stderr] 73 |         RecordingFormat::Custom => Box::new(try!(custom::Recorder::new(writer, snes))),
[INFO] [stderr]    |                                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/mod.rs:74:42
[INFO] [stderr]    |
[INFO] [stderr] 74 |         RecordingFormat::Smv => Box::new(try!(smv::Recorder::new(writer, snes))),
[INFO] [stderr]    |                                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/mod.rs:84:45
[INFO] [stderr]    |
[INFO] [stderr] 84 |         RecordingFormat::Custom => Box::new(try!(custom::Replayer::new(reader, snes))),
[INFO] [stderr]    |                                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/record/mod.rs:85:42
[INFO] [stderr]    |
[INFO] [stderr] 85 |         RecordingFormat::Smv => Box::new(try!(smv::Replayer::new(reader, snes))),
[INFO] [stderr]    |                                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/ppu/rendering.rs:231:15
[INFO] [stderr]     |
[INFO] [stderr] 231 |             2 ... 5 => {
[INFO] [stderr]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` implied by `#[warn(warnings)]`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/breeze_core/ppu/sprites.rs:23:23
[INFO] [stderr]    |
[INFO] [stderr] 23 |     sprite_scanline: [(Option<SpritePixel>); super::SCREEN_WIDTH as usize],
[INFO] [stderr]    |                       ^                   ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` implied by `#[warn(warnings)]`
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 23 -     sprite_scanline: [(Option<SpritePixel>); super::SCREEN_WIDTH as usize],
[INFO] [stderr] 23 +     sprite_scanline: [Option<SpritePixel>; super::SCREEN_WIDTH as usize],
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_core/ppu/mod.rs:419:1
[INFO] [stderr]     |
[INFO] [stderr] 419 | / impl_save_state!(Ppu {
[INFO] [stderr] 420 | |     oam, cgram, vram, inidisp, obsel, oamaddl, oamaddh, oamaddr, oam_lsb, bgmode, mosaic, bg1sc,
[INFO] [stderr] 421 | |     bg2sc, bg3sc, bg4sc, bg12nba, bg34nba, bg1hofs, m7hofs, bg1vofs, m7vofs, bg2hofs, bg2vofs,
[INFO] [stderr] 422 | |     bg3hofs, bg3vofs, bg4hofs, bg4vofs, bg_old, m7_old, vmain, vmaddr, vram_prefetch, m7sel, m7a,
[INFO] [stderr] ...   |
[INFO] [stderr] 428 | |     framebuf, sprite_render_state, bg_cache
[INFO] [stderr] 429 | | });
[INFO] [stderr]     | |__^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/ppu/mod.rs:507:20
[INFO] [stderr]     |
[INFO] [stderr] 507 |             0x210f ... 0x2114 => self.bg_store(addr, value),
[INFO] [stderr]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/ppu/mod.rs:514:20
[INFO] [stderr]     |
[INFO] [stderr] 514 |             0x211b ... 0x2120 => self.m7_store(addr, value),
[INFO] [stderr]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/input/mod.rs:85:1
[INFO] [stderr]    |
[INFO] [stderr] 85 | impl_save_state!(Input { auto_read_data, latch, latched_this_frame } ignore { ports, mode });
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/input/mod.rs:176:20
[INFO] [stderr]     |
[INFO] [stderr] 176 |             0x4218 ... 0x421f => {
[INFO] [stderr]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]   --> src/breeze_core/rom.rs:95:22
[INFO] [stderr]    |
[INFO] [stderr] 95 |                 0x20 ... 0x7E => {
[INFO] [stderr]    |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_core/rom.rs:174:1
[INFO] [stderr]     |
[INFO] [stderr] 174 | impl_save_state!(Rom { ram } ignore { header, rom });
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:251:20
[INFO] [stderr]     |
[INFO] [stderr] 251 |             0x0000 ... 0x7fff => {
[INFO] [stderr]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:255:26
[INFO] [stderr]     |
[INFO] [stderr] 255 |                     0x70 ... 0x7d => {
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:259:26
[INFO] [stderr]     |
[INFO] [stderr] 259 |                     0xfe ... 0xff => {
[INFO] [stderr]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:271:20
[INFO] [stderr]     |
[INFO] [stderr] 271 |             0x8000 ... 0xffff => match bank {
[INFO] [stderr]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:281:22
[INFO] [stderr]     |
[INFO] [stderr] 281 |                 0x80 ... 0xfd | 0x00 ... 0x7d => {
[INFO] [stderr]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:281:38
[INFO] [stderr]     |
[INFO] [stderr] 281 |                 0x80 ... 0xfd | 0x00 ... 0x7d => {
[INFO] [stderr]     |                                      ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:295:18
[INFO] [stderr]     |
[INFO] [stderr] 295 |             0x00 ... 0x3f | 0x80 ... 0xbf if addr >= 0x8000 => {
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:295:34
[INFO] [stderr]     |
[INFO] [stderr] 295 |             0x00 ... 0x3f | 0x80 ... 0xbf if addr >= 0x8000 => {
[INFO] [stderr]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:298:18
[INFO] [stderr]     |
[INFO] [stderr] 298 |             0x20 ... 0x3f | 0xa0 ... 0xbf if addr >= 0x6000 && addr <= 0x7fff => {
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:298:34
[INFO] [stderr]     |
[INFO] [stderr] 298 |             0x20 ... 0x3f | 0xa0 ... 0xbf if addr >= 0x6000 && addr <= 0x7fff => {
[INFO] [stderr]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:302:18
[INFO] [stderr]     |
[INFO] [stderr] 302 |             0x40 ... 0x7d | 0xc0 ... 0xfd => {
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:302:34
[INFO] [stderr]     |
[INFO] [stderr] 302 |             0x40 ... 0x7d | 0xc0 ... 0xfd => {
[INFO] [stderr]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:305:18
[INFO] [stderr]     |
[INFO] [stderr] 305 |             0x7e ... 0x7f => unreachable!(),    // WRAM banks
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/rom.rs:306:18
[INFO] [stderr]     |
[INFO] [stderr] 306 |             0xfe ... 0xff => {
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/save.rs:46:9
[INFO] [stderr]    |
[INFO] [stderr] 46 |         try!(write!(w, "ZSNES Save State File V0.6"));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/save.rs:47:9
[INFO] [stderr]    |
[INFO] [stderr] 47 |         try!(w.write_all(&[26]));   // ASCII SUBstitute (note that reading can not rely
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze_core/save.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 49 |         try!(w.write_all(&[60]));   // version #/100 (= 0.6)
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_core/snes.rs:98:1
[INFO] [stderr]     |
[INFO] [stderr] 98  | / impl_save_state!(Peripherals {
[INFO] [stderr] 99  | |     apu, ppu, rom, wram, dma, hdmaen, nmien, wrio, wrmpya, wrmpyb, wrdiv, rddiv, rdmpy, htime,
[INFO] [stderr] 100 | |     vtime, memsel, nmi, irq, cy, input, wmaddl, wmaddm, wmaddh
[INFO] [stderr] 101 | | } ignore {});
[INFO] [stderr]     | |____________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:144:18
[INFO] [stderr]     |
[INFO] [stderr] 144 |             0x00 ... 0x3f => match addr {
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:145:24
[INFO] [stderr]     |
[INFO] [stderr] 145 |                 0x0000 ... 0x1fff | 0x6000 ... 0xffff => SLOW,
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:145:44
[INFO] [stderr]     |
[INFO] [stderr] 145 |                 0x0000 ... 0x1fff | 0x6000 ... 0xffff => SLOW,
[INFO] [stderr]     |                                            ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:146:24
[INFO] [stderr]     |
[INFO] [stderr] 146 |                 0x4000 ... 0x41ff => XSLOW,
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:149:18
[INFO] [stderr]     |
[INFO] [stderr] 149 |             0x40 ... 0x7f => SLOW,
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:150:18
[INFO] [stderr]     |
[INFO] [stderr] 150 |             0x80 ... 0xbf => match addr {
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:151:24
[INFO] [stderr]     |
[INFO] [stderr] 151 |                 0x0000 ... 0x1fff | 0x6000 ... 0x7fff => SLOW,
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:151:44
[INFO] [stderr]     |
[INFO] [stderr] 151 |                 0x0000 ... 0x1fff | 0x6000 ... 0x7fff => SLOW,
[INFO] [stderr]     |                                            ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:152:24
[INFO] [stderr]     |
[INFO] [stderr] 152 |                 0x4000 ... 0x41ff => XSLOW,
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:153:24
[INFO] [stderr]     |
[INFO] [stderr] 153 |                 0x8000 ... 0xffff => if self.memsel { FAST } else { SLOW },
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:156:18
[INFO] [stderr]     |
[INFO] [stderr] 156 |             0xc0 ... 0xff => if self.memsel { FAST } else { SLOW },
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:178:18
[INFO] [stderr]     |
[INFO] [stderr] 178 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:178:34
[INFO] [stderr]     |
[INFO] [stderr] 178 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stderr]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:180:24
[INFO] [stderr]     |
[INFO] [stderr] 180 |                 0x0000 ... 0x1fff => self.wram[addr as usize],
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:182:24
[INFO] [stderr]     |
[INFO] [stderr] 182 |                 0x2100 ... 0x2133 => {
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:186:24
[INFO] [stderr]     |
[INFO] [stderr] 186 |                 0x2134 ... 0x213f => self.ppu.load(addr),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:188:24
[INFO] [stderr]     |
[INFO] [stderr] 188 |                 0x2140 ... 0x217f => self.apu.read_port((addr & 0b11) as u8),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:193:24
[INFO] [stderr]     |
[INFO] [stderr] 193 |                 0x2181 ... 0x2183 => {
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:228:24
[INFO] [stderr]     |
[INFO] [stderr] 228 |                 0x4218 ... 0x421f => self.input.load(addr),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:230:24
[INFO] [stderr]     |
[INFO] [stderr] 230 |                 0x4300 ... 0x43ff => self.dma[(addr as usize & 0x00f0) >> 4].load(addr as u8 & 0xf),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:231:24
[INFO] [stderr]     |
[INFO] [stderr] 231 |                 0x6000 ... 0xffff => self.rom.load(bank, addr),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:239:18
[INFO] [stderr]     |
[INFO] [stderr] 239 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.load(bank, addr),
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:239:34
[INFO] [stderr]     |
[INFO] [stderr] 239 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.load(bank, addr),
[INFO] [stderr]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:247:18
[INFO] [stderr]     |
[INFO] [stderr] 247 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:247:34
[INFO] [stderr]     |
[INFO] [stderr] 247 |             0x00 ... 0x3f | 0x80 ... 0xbf => match addr {
[INFO] [stderr]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:248:24
[INFO] [stderr]     |
[INFO] [stderr] 248 |                 0x0000 ... 0x1fff => self.wram[addr as usize] = value,
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:250:24
[INFO] [stderr]     |
[INFO] [stderr] 250 |                 0x2100 ... 0x2133 => self.ppu.store(addr, value),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:251:24
[INFO] [stderr]     |
[INFO] [stderr] 251 |                 0x2134 ... 0x213f => once!(warn!("store to read-only PPU register ${:04X}", addr)),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:253:24
[INFO] [stderr]     |
[INFO] [stderr] 253 |                 0x2140 ... 0x217f => self.apu.store_port((addr & 0b11) as u8, value),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:261:24
[INFO] [stderr]     |
[INFO] [stderr] 261 |                 0x2184 ... 0x21ff => once!(warn!("invalid store: ${:02X} to ${:02X}:{:04X}", value,
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:312:24
[INFO] [stderr]     |
[INFO] [stderr] 312 |                 0x4300 ... 0x43ff => {
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:315:24
[INFO] [stderr]     |
[INFO] [stderr] 315 |                 0x8000 ... 0xffff => self.rom.store(bank, addr, value),
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:320:18
[INFO] [stderr]     |
[INFO] [stderr] 320 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.store(bank, addr, value),
[INFO] [stderr]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:320:34
[INFO] [stderr]     |
[INFO] [stderr] 320 |             0x40 ... 0x7d | 0xc0 ... 0xff => self.rom.store(bank, addr, value),
[INFO] [stderr]     |                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_core/snes.rs:341:1
[INFO] [stderr]     |
[INFO] [stderr] 341 | / impl_save_state!(Snes { cpu, master_cy, apu_master_cy_debt, ppu_master_cy_debt }
[INFO] [stderr] 342 | |     ignore { trace_start });
[INFO] [stderr]     | |___________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `impl_save_state_fns` which comes from the expansion of the macro `impl_save_state` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/breeze_core/snes.rs:414:24
[INFO] [stderr]     |
[INFO] [stderr] 414 |                     (0 ... 224, 278) => {
[INFO] [stderr]     |                        ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_core/snes.rs:421:39
[INFO] [stderr]     |
[INFO] [stderr] 421 |                         for action in try!(render(&self.cpu.mem.ppu.framebuf)) {
[INFO] [stderr]     |                                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_core/snes.rs:568:23
[INFO] [stderr]     |
[INFO] [stderr] 568 |         for action in try!(actions) {
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_core/snes.rs:580:16
[INFO] [stderr]     |
[INFO] [stderr] 580 |         while !try!(self.render_frame()) {}
[INFO] [stderr]     |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:537:40
[INFO] [stderr]     |
[INFO] [stderr] 537 |                 if value & 0xf0 != 0 { once!(warn!("invalid value for $212b: ${:02X}", value)); }
[INFO] [stderr]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:537:40
[INFO] [stderr]     |
[INFO] [stderr] 537 |                 if value & 0xf0 != 0 { once!(warn!("invalid value for $212b: ${:02X}", value)); }
[INFO] [stderr]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:541:40
[INFO] [stderr]     |
[INFO] [stderr] 541 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212c: ${:02X}", value)); }
[INFO] [stderr]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:541:40
[INFO] [stderr]     |
[INFO] [stderr] 541 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212c: ${:02X}", value)); }
[INFO] [stderr]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:545:40
[INFO] [stderr]     |
[INFO] [stderr] 545 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212d: ${:02X}", value)); }
[INFO] [stderr]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:545:40
[INFO] [stderr]     |
[INFO] [stderr] 545 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212d: ${:02X}", value)); }
[INFO] [stderr]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:549:40
[INFO] [stderr]     |
[INFO] [stderr] 549 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212e: ${:02X}", value)); }
[INFO] [stderr]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:549:40
[INFO] [stderr]     |
[INFO] [stderr] 549 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212e: ${:02X}", value)); }
[INFO] [stderr]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:553:40
[INFO] [stderr]     |
[INFO] [stderr] 553 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212f: ${:02X}", value)); }
[INFO] [stderr]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:553:40
[INFO] [stderr]     |
[INFO] [stderr] 553 |                 if value & 0xe0 != 0 { once!(warn!("invalid value for $212f: ${:02X}", value)); }
[INFO] [stderr]     |                                        ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:567:40
[INFO] [stderr]     |
[INFO] [stderr] 567 |                 if value & 0x08 != 0 { once!(warn!("pseudo-hires mode not yet implemented")); }
[INFO] [stderr]     |                                        ----------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:567:40
[INFO] [stderr]     |
[INFO] [stderr] 567 |                 if value & 0x08 != 0 { once!(warn!("pseudo-hires mode not yet implemented")); }
[INFO] [stderr]     |                                        ----------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:568:40
[INFO] [stderr]     |
[INFO] [stderr] 568 |                 if value & 0x04 != 0 { once!(warn!("overscan not yet implemented")); }
[INFO] [stderr]     |                                        -------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:568:40
[INFO] [stderr]     |
[INFO] [stderr] 568 |                 if value & 0x04 != 0 { once!(warn!("overscan not yet implemented")); }
[INFO] [stderr]     |                                        -------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:569:40
[INFO] [stderr]     |
[INFO] [stderr] 569 |                 if value & 0x03 != 0 { once!(warn!("interlace not yet implemented")); }
[INFO] [stderr]     |                                        --------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/ppu/mod.rs:569:40
[INFO] [stderr]     |
[INFO] [stderr] 569 |                 if value & 0x03 != 0 { once!(warn!("interlace not yet implemented")); }
[INFO] [stderr]     |                                        --------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/input/mod.rs:124:13
[INFO] [stderr]     |
[INFO] [stderr] 124 | /             once!(warn!("latch still active from older frame (might interfere with \
[INFO] [stderr] 125 | |                          recording); latch might be changed by emulator!"));
[INFO] [stderr]     | |___________________________________________________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/input/mod.rs:124:13
[INFO] [stderr]     |
[INFO] [stderr] 124 | /             once!(warn!("latch still active from older frame (might interfere with \
[INFO] [stderr] 125 | |                          recording); latch might be changed by emulator!"));
[INFO] [stderr]     | |___________________________________________________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/input/mod.rs:148:21
[INFO] [stderr]     |
[INFO] [stderr] 148 | /                     once!(warn!("reading data lines without prior latching (this can interfere \
[INFO] [stderr] 149 | |                                  with input recording)"));
[INFO] [stderr]     | |_________________________________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/input/mod.rs:148:21
[INFO] [stderr]     |
[INFO] [stderr] 148 | /                     once!(warn!("reading data lines without prior latching (this can interfere \
[INFO] [stderr] 149 | |                                  with input recording)"));
[INFO] [stderr]     | |_________________________________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/input/mod.rs:192:25
[INFO] [stderr]     |
[INFO] [stderr] 192 | /                         once!(warn!("already latched input in this frame! (this might interfere \
[INFO] [stderr] 193 | |                                      with recording)"));
[INFO] [stderr]     | |_______________________________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/input/mod.rs:192:25
[INFO] [stderr]     |
[INFO] [stderr] 192 | /                         once!(warn!("already latched input in this frame! (this might interfere \
[INFO] [stderr] 193 | |                                      with recording)"));
[INFO] [stderr]     | |_______________________________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:183:21
[INFO] [stderr]     |
[INFO] [stderr] 183 |                     once!(warn!("read from write-only PPU register ${:04X}", addr));
[INFO] [stderr]     |                     --------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:183:21
[INFO] [stderr]     |
[INFO] [stderr] 183 |                     once!(warn!("read from write-only PPU register ${:04X}", addr));
[INFO] [stderr]     |                     --------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:194:21
[INFO] [stderr]     |
[INFO] [stderr] 194 |                     once!(warn!("open-bus load from WRAM register ${:02X}", addr));
[INFO] [stderr]     |                     -------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:194:21
[INFO] [stderr]     |
[INFO] [stderr] 194 |                     once!(warn!("open-bus load from WRAM register ${:02X}", addr));
[INFO] [stderr]     |                     -------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:233:21
[INFO] [stderr]     |
[INFO] [stderr] 233 |                     once!(warn!("invalid/unimplemented load from ${:02X}:{:04X}", bank, addr));
[INFO] [stderr]     |                     -------------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:233:21
[INFO] [stderr]     |
[INFO] [stderr] 233 |                     once!(warn!("invalid/unimplemented load from ${:02X}:{:04X}", bank, addr));
[INFO] [stderr]     |                     -------------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:251:38
[INFO] [stderr]     |
[INFO] [stderr] 251 |                 0x2134 ... 0x213f => once!(warn!("store to read-only PPU register ${:04X}", addr)),
[INFO] [stderr]     |                                      ------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:251:38
[INFO] [stderr]     |
[INFO] [stderr] 251 |                 0x2134 ... 0x213f => once!(warn!("store to read-only PPU register ${:04X}", addr)),
[INFO] [stderr]     |                                      ------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |           use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                         ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:261:38
[INFO] [stderr]     |
[INFO] [stderr] 261 |                   0x2184 ... 0x21ff => once!(warn!("invalid store: ${:02X} to ${:02X}:{:04X}", value,
[INFO] [stderr]     |  ______________________________________-
[INFO] [stderr] 262 | |                     bank, addr)),
[INFO] [stderr]     | |________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |           static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:261:38
[INFO] [stderr]     |
[INFO] [stderr] 261 |                   0x2184 ... 0x21ff => once!(warn!("invalid store: ${:02X} to ${:02X}:{:04X}", value,
[INFO] [stderr]     |  ______________________________________-
[INFO] [stderr] 262 | |                     bank, addr)),
[INFO] [stderr]     | |________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:11:55
[INFO] [stderr]     |
[INFO] [stderr] 11  |         use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT};
[INFO] [stderr]     |                                                       ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:273:44
[INFO] [stderr]     |
[INFO] [stderr] 273 |                     if value & 0x4e != 0 { once!(warn!("Invalid value for NMIEN: ${:02X}", value)) }
[INFO] [stderr]     |                                            ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::atomic::ATOMIC_BOOL_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/breeze_core/log_util.rs:13:38
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = ATOMIC_BOOL_INIT;
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/breeze_core/snes.rs:273:44
[INFO] [stderr]     |
[INFO] [stderr] 273 |                     if value & 0x4e != 0 { once!(warn!("Invalid value for NMIEN: ${:02X}", value)) }
[INFO] [stderr]     |                                            ------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `once` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: replace the use of the deprecated constant
[INFO] [stderr]     |
[INFO] [stderr] 13  |         static REACHED: AtomicBool = AtomicBool::new(false);
[INFO] [stderr]     |                                      ~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/custom.rs:25:17
[INFO] [stderr]    |
[INFO] [stderr] 25 |     writer: Box<WriteSeek>,
[INFO] [stderr]    |                 ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 25 |     writer: Box<dyn WriteSeek>,
[INFO] [stderr]    |                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/custom.rs:41:17
[INFO] [stderr]    |
[INFO] [stderr] 41 |     reader: Box<BufRead>,
[INFO] [stderr]    |                 ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 41 |     reader: Box<dyn BufRead>,
[INFO] [stderr]    |                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:17:17
[INFO] [stderr]    |
[INFO] [stderr] 17 |     writer: Box<WriteSeek>,
[INFO] [stderr]    |                 ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 17 |     writer: Box<dyn WriteSeek>,
[INFO] [stderr]    |                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:93:17
[INFO] [stderr]    |
[INFO] [stderr] 93 |     reader: Box<BufRead>,
[INFO] [stderr]    |                 ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 93 |     reader: Box<dyn BufRead>,
[INFO] [stderr]    |                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/input/port.rs:21:18
[INFO] [stderr]    |
[INFO] [stderr] 21 |         imp: Box<JoypadImpl>,
[INFO] [stderr]    |                  ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 21 |         imp: Box<dyn JoypadImpl>,
[INFO] [stderr]    |                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/input/mod.rs:62:18
[INFO] [stderr]    |
[INFO] [stderr] 62 |     Recorded(Box<Recorder>),
[INFO] [stderr]    |                  ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 62 |     Recorded(Box<dyn Recorder>),
[INFO] [stderr]    |                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/input/mod.rs:63:18
[INFO] [stderr]    |
[INFO] [stderr] 63 |     Replayed(Box<Replayer>),
[INFO] [stderr]    |                  ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 63 |     Replayed(Box<dyn Replayer>),
[INFO] [stderr]    |                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/mod.rs:68:36
[INFO] [stderr]    |
[INFO] [stderr] 68 |                        writer: Box<WriteSeek>,
[INFO] [stderr]    |                                    ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 68 |                        writer: Box<dyn WriteSeek>,
[INFO] [stderr]    |                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/mod.rs:70:42
[INFO] [stderr]    |
[INFO] [stderr] 70 |                        -> io::Result<Box<Recorder>> {
[INFO] [stderr]    |                                          ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 70 |                        -> io::Result<Box<dyn Recorder>> {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/mod.rs:79:36
[INFO] [stderr]    |
[INFO] [stderr] 79 |                        reader: Box<BufRead>,
[INFO] [stderr]    |                                    ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 79 |                        reader: Box<dyn BufRead>,
[INFO] [stderr]    |                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/mod.rs:81:42
[INFO] [stderr]    |
[INFO] [stderr] 81 |                        -> io::Result<Box<Replayer>> {
[INFO] [stderr]    |                                          ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 81 |                        -> io::Result<Box<dyn Replayer>> {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/mod.rs:45:24
[INFO] [stderr]    |
[INFO] [stderr] 45 |     fn new(writer: Box<WriteSeek>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stderr]    |                        ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 45 |     fn new(writer: Box<dyn WriteSeek>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stderr]    |                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/mod.rs:57:24
[INFO] [stderr]    |
[INFO] [stderr] 57 |     fn new(reader: Box<BufRead>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stderr]    |                        ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 57 |     fn new(reader: Box<dyn BufRead>, snes: &Snes) -> io::Result<Self> where Self: Sized;
[INFO] [stderr]    |                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/custom.rs:29:24
[INFO] [stderr]    |
[INFO] [stderr] 29 |     fn new(writer: Box<WriteSeek>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stderr]    |                        ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 29 |     fn new(writer: Box<dyn WriteSeek>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stderr]    |                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/custom.rs:45:24
[INFO] [stderr]    |
[INFO] [stderr] 45 |     fn new(reader: Box<BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stderr]    |                        ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 45 |     fn new(reader: Box<dyn BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stderr]    |                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:22:28
[INFO] [stderr]    |
[INFO] [stderr] 22 |     fn new(mut writer: Box<WriteSeek>, snes: &Snes) -> io::Result<Self> {
[INFO] [stderr]    |                            ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 22 |     fn new(mut writer: Box<dyn WriteSeek>, snes: &Snes) -> io::Result<Self> {
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/record/smv.rs:97:24
[INFO] [stderr]    |
[INFO] [stderr] 97 |     fn new(reader: Box<BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stderr]    |                        ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 97 |     fn new(reader: Box<dyn BufRead>, _snes: &Snes) -> io::Result<Self> {
[INFO] [stderr]    |                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/input/mod.rs:92:48
[INFO] [stderr]    |
[INFO] [stderr] 92 |     pub fn start_recording(&mut self, rec: Box<Recorder>) {
[INFO] [stderr]    |                                                ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 92 |     pub fn start_recording(&mut self, rec: Box<dyn Recorder>) {
[INFO] [stderr]    |                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/breeze_core/input/mod.rs:101:50
[INFO] [stderr]     |
[INFO] [stderr] 101 |     pub fn start_replay(&mut self, replayer: Box<Replayer>) {
[INFO] [stderr]     |                                                  ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 101 |     pub fn start_replay(&mut self, replayer: Box<dyn Replayer>) {
[INFO] [stderr]     |                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/input/port.rs:35:32
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn new_joypad(imp: Box<JoypadImpl>) -> Self {
[INFO] [stderr]    |                                ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn new_joypad(imp: Box<dyn JoypadImpl>) -> Self {
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/save.rs:26:70
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub fn create_save_state(&self, format: SaveStateFormat, w: &mut Write) -> io::Result<()> {
[INFO] [stderr]    |                                                                      ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub fn create_save_state(&self, format: SaveStateFormat, w: &mut dyn Write) -> io::Result<()> {
[INFO] [stderr]    |                                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/save.rs:35:75
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn restore_save_state(&mut self, format: SaveStateFormat, r: &mut BufRead) -> io::Result<()> {
[INFO] [stderr]    |                                                                           ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn restore_save_state(&mut self, format: SaveStateFormat, r: &mut dyn BufRead) -> io::Result<()> {
[INFO] [stderr]    |                                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/save.rs:43:34
[INFO] [stderr]    |
[INFO] [stderr] 43 |     fn save_zsnes(&self, w: &mut Write) -> io::Result<()> {
[INFO] [stderr]    |                                  ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 43 |     fn save_zsnes(&self, w: &mut dyn Write) -> io::Result<()> {
[INFO] [stderr]    |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_core/save.rs:54:39
[INFO] [stderr]    |
[INFO] [stderr] 54 |     fn load_zsnes(&mut self, _r: &mut BufRead) -> io::Result<()> {
[INFO] [stderr]    |                                       ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 54 |     fn load_zsnes(&mut self, _r: &mut dyn BufRead) -> io::Result<()> {
[INFO] [stderr]    |                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stderr]   --> src/breeze_core/rom.rs:31:75
[INFO] [stderr]    |
[INFO] [stderr] 31 |         info!("ROM name: '{}'", str::from_utf8(&self.title).unwrap_or("").trim_right());
[INFO] [stderr]    |                                                                           ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]    |
[INFO] [stderr] 31 |         info!("ROM name: '{}'", str::from_utf8(&self.title).unwrap_or("").trim_end());
[INFO] [stderr]    |                                                                           ~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stderr]    --> src/breeze_core/rom.rs:109:64
[INFO] [stderr]     |
[INFO] [stderr] 109 |         debug!("loading '{}'", str::from_utf8(&title).unwrap().trim_right());
[INFO] [stderr]     |                                                                ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 109 |         debug!("loading '{}'", str::from_utf8(&title).unwrap().trim_end());
[INFO] [stderr]     |                                                                ~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stderr]    --> src/breeze_core/rom.rs:246:59
[INFO] [stderr]     |
[INFO] [stderr] 246 |         str::from_utf8(&self.header.title).ok().map(|s| s.trim_right())
[INFO] [stderr]     |                                                           ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 246 |         str::from_utf8(&self.header.title).ok().map(|s| s.trim_end())
[INFO] [stderr]     |                                                           ~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/breeze_core/rom.rs:288:13
[INFO] [stderr]     |
[INFO] [stderr] 288 |             _ => unreachable!()
[INFO] [stderr]     |             ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` implied by `#[warn(warnings)]`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/breeze_core/snes.rs:157:13
[INFO] [stderr]     |
[INFO] [stderr] 157 |             _ => FAST,
[INFO] [stderr]     |             ^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/breeze_core/snes.rs:240:13
[INFO] [stderr]     |
[INFO] [stderr] 240 |             _ => unreachable!(),    // Rust should know this!
[INFO] [stderr]     |             ^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/breeze_core/snes.rs:321:13
[INFO] [stderr]     |
[INFO] [stderr] 321 |             _ => unreachable!(),    // Rust should know this!
[INFO] [stderr]     |             ^
[INFO] [stderr] 
[INFO] [stderr] warning: `breeze_sdl` (lib) generated 5 warnings (run `cargo fix --lib -p breeze_sdl` to apply 1 suggestion)
[INFO] [stderr] warning: `breeze_core` (lib) generated 161 warnings (7 duplicates) (run `cargo fix --lib -p breeze_core` to apply 99 suggestions)
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_glium/lib.rs:114:23
[INFO] [stderr]     |
[INFO] [stderr] 114 |         let display = try!(WindowBuilder::new()
[INFO] [stderr]     |                       ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_glium/lib.rs:119:24
[INFO] [stderr]     |
[INFO] [stderr] 119 |         let mut vbuf = try!(VertexBuffer::empty_dynamic(&display, 4));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_glium/lib.rs:124:22
[INFO] [stderr]     |
[INFO] [stderr] 124 |             program: try!(
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze_glium/lib.rs:126:22
[INFO] [stderr]     |
[INFO] [stderr] 126 |             texture: try!(SrgbTexture2d::empty(&display, SCREEN_WIDTH, SCREEN_HEIGHT)),
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/breeze_glium/lib.rs:113:37
[INFO] [stderr]     |
[INFO] [stderr] 113 |     fn create() -> Result<Self, Box<Error>> {
[INFO] [stderr]     |                                     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 113 |     fn create() -> Result<Self, Box<dyn Error>> {
[INFO] [stderr]     |                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: `breeze_glium` (lib) generated 5 warnings (run `cargo fix --lib -p breeze_glium` to apply 1 suggestion)
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stderr]    |
[INFO] [stderr] 34 | / lazy_static! {
[INFO] [stderr] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stderr] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stderr] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stderr] ...  |
[INFO] [stderr] 94 | |     };
[INFO] [stderr] 95 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/breeze_backends/lib.rs:8:9
[INFO] [stderr]    |
[INFO] [stderr] 8  | #![deny(warnings)]
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/breeze_backends/lib.rs:34:1
[INFO] [stderr]    |
[INFO] [stderr] 34 | / lazy_static! {
[INFO] [stderr] 35 | |     pub static ref RENDERER_MAP: RendererMap = {
[INFO] [stderr] 36 | |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stderr] 37 | |             R::create().map(|r| Box::new(r) as Box<_>)
[INFO] [stderr] ...  |
[INFO] [stderr] 94 | |     };
[INFO] [stderr] 95 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:31:73
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<Renderer>, Box<Error>>>>;
[INFO] [stderr]    |                                                                         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<dyn Renderer>, Box<Error>>>>;
[INFO] [stderr]    |                                                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:31:88
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<Renderer>, Box<Error>>>>;
[INFO] [stderr]    |                                                                                        ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub type RendererMap = BTreeMap<&'static str, Option<fn() -> Result<Box<Renderer>, Box<dyn Error>>>>;
[INFO] [stderr]    |                                                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:32:70
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<AudioSink>, Box<Error>>>>;
[INFO] [stderr]    |                                                                      ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<dyn AudioSink>, Box<Error>>>>;
[INFO] [stderr]    |                                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:32:86
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<AudioSink>, Box<Error>>>>;
[INFO] [stderr]    |                                                                                      ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub type AudioMap = BTreeMap<&'static str, Option<fn() -> Result<Box<AudioSink>, Box<dyn Error>>>>;
[INFO] [stderr]    |                                                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:36:56
[INFO] [stderr]    |
[INFO] [stderr] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stderr]    |                                                        ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<dyn Renderer>, Box<Error>> {
[INFO] [stderr]    |                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:36:71
[INFO] [stderr]    |
[INFO] [stderr] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<Error>> {
[INFO] [stderr]    |                                                                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 36 |         fn make<R: Renderer + 'static>() -> Result<Box<Renderer>, Box<dyn Error>> {
[INFO] [stderr]    |                                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:40:51
[INFO] [stderr]    |
[INFO] [stderr] 40 |         type MapEntry = Option<fn() -> Result<Box<Renderer>, Box<Error>>>;
[INFO] [stderr]    |                                                   ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 40 |         type MapEntry = Option<fn() -> Result<Box<dyn Renderer>, Box<Error>>>;
[INFO] [stderr]    |                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:40:66
[INFO] [stderr]    |
[INFO] [stderr] 40 |         type MapEntry = Option<fn() -> Result<Box<Renderer>, Box<Error>>>;
[INFO] [stderr]    |                                                                  ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 40 |         type MapEntry = Option<fn() -> Result<Box<Renderer>, Box<dyn Error>>>;
[INFO] [stderr]    |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:71:57
[INFO] [stderr]    |
[INFO] [stderr] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<AudioSink>, Box<Error>> {
[INFO] [stderr]    |                                                         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<dyn AudioSink>, Box<Error>> {
[INFO] [stderr]    |                                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:71:73
[INFO] [stderr]    |
[INFO] [stderr] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<AudioSink>, Box<Error>> {
[INFO] [stderr]    |                                                                         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 71 |         fn make<A: AudioSink + 'static>() -> Result<Box<AudioSink>, Box<dyn Error>> {
[INFO] [stderr]    |                                                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:75:51
[INFO] [stderr]    |
[INFO] [stderr] 75 |         type MapEntry = Option<fn() -> Result<Box<AudioSink>, Box<Error>>>;
[INFO] [stderr]    |                                                   ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 75 |         type MapEntry = Option<fn() -> Result<Box<dyn AudioSink>, Box<Error>>>;
[INFO] [stderr]    |                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze_backends/lib.rs:75:67
[INFO] [stderr]    |
[INFO] [stderr] 75 |         type MapEntry = Option<fn() -> Result<Box<AudioSink>, Box<Error>>>;
[INFO] [stderr]    |                                                                   ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 75 |         type MapEntry = Option<fn() -> Result<Box<AudioSink>, Box<dyn Error>>>;
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: `breeze_backends` (lib) generated 20 warnings (6 duplicates) (run `cargo fix --lib -p breeze_backends` to apply 12 suggestions)
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> rendertest/main.rs:242:38
[INFO] [stderr]     |
[INFO] [stderr] 242 |     let mut emu = Emulator::new(rom, try!(DummyRenderer::create()), try!(DummySink::create()));
[INFO] [stderr]     |                                      ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> rendertest/main.rs:242:69
[INFO] [stderr]     |
[INFO] [stderr] 242 |     let mut emu = Emulator::new(rom, try!(DummyRenderer::create()), try!(DummySink::create()));
[INFO] [stderr]     |                                                                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> rendertest/main.rs:244:9
[INFO] [stderr]     |
[INFO] [stderr] 244 |         try!(emu.render_frame());
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated trait `std::ascii::AsciiExt`: use inherent methods instead
[INFO] [stderr]   --> rendertest/main.rs:20:17
[INFO] [stderr]    |
[INFO] [stderr] 20 | use std::ascii::AsciiExt;
[INFO] [stderr]    |                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> rendertest/main.rs:71:18
[INFO] [stderr]    |
[INFO] [stderr] 71 |     EmuError(Box<Error>),
[INFO] [stderr]    |                  ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 71 |     EmuError(Box<dyn Error>),
[INFO] [stderr]    |                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> rendertest/main.rs:75:15
[INFO] [stderr]    |
[INFO] [stderr] 75 | impl From<Box<Error>> for TestFailure {
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 75 | impl From<Box<dyn Error>> for TestFailure {
[INFO] [stderr]    |               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> rendertest/main.rs:76:20
[INFO] [stderr]    |
[INFO] [stderr] 76 |     fn from(e: Box<Error>) -> Self {
[INFO] [stderr]    |                    ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 76 |     fn from(e: Box<dyn Error>) -> Self {
[INFO] [stderr]    |                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ascii::AsciiExt`
[INFO] [stderr]   --> rendertest/main.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | use std::ascii::AsciiExt;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze/main.rs:98:5
[INFO] [stderr]    |
[INFO] [stderr] 98 |     try!(file.read_to_end(&mut buf));
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/breeze/main.rs:1:9
[INFO] [stderr]    |
[INFO] [stderr] 1  | #![deny(warnings)]
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/breeze/main.rs:96:20
[INFO] [stderr]    |
[INFO] [stderr] 96 |     let mut file = try!(File::open(&filename));
[INFO] [stderr]    |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze/main.rs:100:15
[INFO] [stderr]     |
[INFO] [stderr] 100 |     let rom = try!(Rom::from_bytes(&buf));
[INFO] [stderr]     |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze/main.rs:104:24
[INFO] [stderr]     |
[INFO] [stderr] 104 |     let mut renderer = try!(renderer_fn());
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze/main.rs:110:17
[INFO] [stderr]     |
[INFO] [stderr] 110 |     let audio = try!(audio_fn());
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze/main.rs:136:9
[INFO] [stderr]     |
[INFO] [stderr] 136 |         try!(emu.snes.render_frame(|_framebuf| Ok(vec![])));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze/main.rs:144:27
[INFO] [stderr]     |
[INFO] [stderr] 144 |             let actions = try!(emu.renderer.render(&*framebuf));
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/breeze/main.rs:151:9
[INFO] [stderr]     |
[INFO] [stderr] 151 |         try!(emu.run());
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze/main.rs:31:54
[INFO] [stderr]    |
[INFO] [stderr] 31 | fn process_args(args: &ArgMatches) -> Result<(), Box<Error>> {
[INFO] [stderr]    |                                                      ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]`
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 31 | fn process_args(args: &ArgMatches) -> Result<(), Box<dyn Error>> {
[INFO] [stderr]    |                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/breeze/input.rs:29:35
[INFO] [stderr]    |
[INFO] [stderr] 29 | fn sdl_kbd_joypad() -> Option<Box<JoypadImpl>> {
[INFO] [stderr]    |                                   ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 29 | fn sdl_kbd_joypad() -> Option<Box<dyn JoypadImpl>> {
[INFO] [stderr]    |                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: `breeze` (test "rendertest") generated 8 warnings (run `cargo fix --test "rendertest"` to apply 3 suggestions)
[INFO] [stderr] warning: `breeze` (bin "breeze" test) generated 10 warnings (run `cargo fix --bin "breeze" --tests` to apply 2 suggestions)
[INFO] [stderr] warning: `breeze` (bin "breeze") generated 10 warnings (10 duplicates)
[INFO] [stderr]     Finished test [optimized + debuginfo] target(s) in 0.06s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/breeze/main.rs (/opt/rustwide/target/debug/deps/breeze-35bbf0a46b6da3a4)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running rendertest/main.rs (/opt/rustwide/target/debug/deps/rendertest-11083c48fc67612c)
[INFO] [stdout] 
[INFO] [stdout] running 1 rendering test
[INFO] [stderr] thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', rendertest/main.rs:133:34
[INFO] [stderr] stack backtrace:
[INFO] [stderr]    0:     0x559e202ef60a - std::backtrace_rs::backtrace::libunwind::trace::ha9053a9a07ca49cb
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
[INFO] [stderr]    1:     0x559e202ef60a - std::backtrace_rs::backtrace::trace_unsynchronized::h9c2852a457ad564e
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stderr]    2:     0x559e202ef60a - std::sys_common::backtrace::_print_fmt::h457936fbfaa0070f
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:65:5
[INFO] [stderr]    3:     0x559e202ef60a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h5779d7bf7f70cb0c
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stderr]    4:     0x559e2030a37e - core::fmt::write::h5a4baaff1bcd3eb5
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/fmt/mod.rs:1232:17
[INFO] [stderr]    5:     0x559e202ed505 - std::io::Write::write_fmt::h4bc1f301cb9e9cce
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/io/mod.rs:1684:15
[INFO] [stderr]    6:     0x559e202ef3d5 - std::sys_common::backtrace::_print::h5fcdc36060f177e8
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stderr]    7:     0x559e202ef3d5 - std::sys_common::backtrace::print::h54ca9458b876c8bf
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stderr]    8:     0x559e202f0a2f - std::panicking::default_hook::{{closure}}::hbe471161c7664ed6
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:271:22
[INFO] [stderr]    9:     0x559e202f076b - std::panicking::default_hook::ha3500da57aa4ac4f
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:290:9
[INFO] [stderr]   10:     0x559e202f0fd8 - std::panicking::rust_panic_with_hook::h50c09d000dc561d2
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:692:13
[INFO] [stderr]   11:     0x559e202f0e92 - std::panicking::begin_panic_handler::{{closure}}::h9e2b2176e00e0d9c
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:581:13
[INFO] [stderr]   12:     0x559e202efa76 - std::sys_common::backtrace::__rust_end_short_backtrace::h5739b8e512c09d02
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:150:18
[INFO] [stderr]   13:     0x559e202f0be2 - rust_begin_unwind
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5
[INFO] [stderr]   14:     0x559e2026e833 - core::panicking::panic_fmt::hf33a1475b4dc5c3e
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14
[INFO] [stderr]   15:     0x559e2026e8cd - core::panicking::panic::h9533b2fee90b999e
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:114:5
[INFO] [stderr]   16:     0x559e20279229 - core::option::Option<T>::unwrap::hb6b01c4e6b6d0aca
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/option.rs:942:21
[INFO] [stderr]   17:     0x559e20279229 - rendertest::print_success::h6b029c811b178766
[INFO] [stderr]                                at /opt/rustwide/workdir/rendertest/main.rs:133:34
[INFO] [stderr]   18:     0x559e2027a19a - rendertest::main::h277d46ec1711e5e1
[INFO] [stderr]                                at /opt/rustwide/workdir/rendertest/main.rs:299:9
[INFO] [stderr]   19:     0x559e20278593 - core::ops::function::FnOnce::call_once::haff048cacfaf073c
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250:5
[INFO] [stderr]   20:     0x559e20278593 - std::sys_common::backtrace::__rust_begin_short_backtrace::h89d810c60693fae3
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:134:18
[INFO] [stderr]   21:     0x559e202783f9 - std::rt::lang_start::{{closure}}::h9c5018809346d55c
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/rt.rs:166:18
[INFO] [stderr]   22:     0x559e202e8c0c - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hd6efcd3bec896f2c
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:287:13
[INFO] [stderr]   23:     0x559e202e8c0c - std::panicking::try::do_call::hce04e543bb1f4cbb
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:487:40
[INFO] [stderr]   24:     0x559e202e8c0c - std::panicking::try::h3342dd4e1f680968
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:451:19
[INFO] [stderr]   25:     0x559e202e8c0c - std::panic::catch_unwind::h148ce1e59ac0cee7
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panic.rs:140:14
[INFO] [stderr]   26:     0x559e202e8c0c - std::rt::lang_start_internal::{{closure}}::h25f9dda2057a67fe
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/rt.rs:148:48
[INFO] [stderr]   27:     0x559e202e8c0c - std::panicking::try::do_call::h7caaaeaf9401650b
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:487:40
[INFO] [stderr]   28:     0x559e202e8c0c - std::panicking::try::he7d15285746cbbc2
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:451:19
[INFO] [stderr]   29:     0x559e202e8c0c - std::panic::catch_unwind::h89fb4f50c0301fe0
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panic.rs:140:14
[INFO] [stderr]   30:     0x559e202e8c0c - std::rt::lang_start_internal::h078acd489417d3c1
[INFO] [stderr]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/rt.rs:148:20
[INFO] [stderr]   31:     0x559e2027ae3c - main
[INFO] [stderr]   32:     0x7fb91c0c6d90 - <unknown>
[INFO] [stderr]   33:     0x7fb91c0c6e40 - __libc_start_main
[INFO] [stderr]   34:     0x559e2026edb5 - _start
[INFO] [stderr]   35:                0x0 - <unknown>
[INFO] [stderr] error: test failed, to rerun pass `--test rendertest`
[INFO] [stdout] test dummy ... 
[INFO] running `Command { std: "docker" "inspect" "b12b3059feaf1b702214148de0775af919e19947b952dae5c9ad7b930a7ce38f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b12b3059feaf1b702214148de0775af919e19947b952dae5c9ad7b930a7ce38f", kill_on_drop: false }`
[INFO] [stdout] b12b3059feaf1b702214148de0775af919e19947b952dae5c9ad7b930a7ce38f
