[INFO] fetching crate gjio 0.1.3...
[INFO] testing gjio-0.1.3 against beta-2021-08-01 for beta-1.55-1
[INFO] extracting crate gjio 0.1.3 into /workspace/builds/worker-6/source
[INFO] validating manifest of crates.io crate gjio 0.1.3 on toolchain beta-2021-08-01
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate gjio 0.1.3
[INFO] finished tweaking crates.io crate gjio 0.1.3
[INFO] tweaked toml for crates.io crate gjio 0.1.3 written to /workspace/builds/worker-6/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded gj v0.2.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9a98882b983e6122832a5b659662753e271f888c8a2cfe8b0bda298f9da2647d
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "9a98882b983e6122832a5b659662753e271f888c8a2cfe8b0bda298f9da2647d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9a98882b983e6122832a5b659662753e271f888c8a2cfe8b0bda298f9da2647d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9a98882b983e6122832a5b659662753e271f888c8a2cfe8b0bda298f9da2647d", kill_on_drop: false }`
[INFO] [stdout] 9a98882b983e6122832a5b659662753e271f888c8a2cfe8b0bda298f9da2647d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5de62552b1af44d79a5c8412d507d1870bd899592def59d616c4725c95d1dfa4
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "5de62552b1af44d79a5c8412d507d1870bd899592def59d616c4725c95d1dfa4", kill_on_drop: false }`
[INFO] [stderr]    Compiling gj v0.2.0
[INFO] [stderr]    Compiling nix v0.5.1
[INFO] [stderr]    Compiling gjio v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:108:36
[INFO] [stdout]     |
[INFO] [stdout] 108 | ...                   try!(::nix::sys::socket::UnixAddr::new(addr.as_ref())))
[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/sys/unix/mod.rs:152:30
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let fd = AutoCloseFd(try!(socket::socket(self.addr.family(), socket::SockType::Stream,
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:160:22
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let handle = try!(self.reactor.borrow_mut().new_observer(fd.0));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:271:23
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let handle0 = try!(reactor.borrow_mut().new_observer(fd0.0));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:272:23
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let handle1 = try!(reactor.borrow_mut().new_observer(fd1.0));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:282:22
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let handle = try!(reactor.borrow_mut().new_observer(fd.0));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sys/unix/mod.rs:289:90
[INFO] [stdout]     |
[INFO] [stdout] 289 |         where F: FnOnce(::SocketStream, &::gj::WaitScope, ::EventPort) -> Result<(), Box<::std::error::Error>>,
[INFO] [stdout]     |                                                                                          ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sys/unix/mod.rs:288:94
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...                   -> Result<(::std::thread::JoinHandle<()>, SocketStreamInner), Box<::std::error::Error>>
[INFO] [stdout]     |                                                                                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:298:23
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let handle0 = try!(reactor.borrow_mut().new_observer(fd0.0));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:302:34
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 let event_port = try!(::EventPort::new());
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:304:31
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 let handle1 = try!(network.reactor.borrow_mut().new_observer(fd1.0));
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:165:43
[INFO] [stdout]     |
[INFO] [stdout] 165 |             reactor: Rc::new(RefCell::new(try!(sys::Reactor::new()))),
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         try!(self.reactor.borrow_mut().run_once(timeout));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:215:31
[INFO] [stdout]     |
[INFO] [stdout] 215 |         Ok(SocketAddress::new(try!(SocketAddressInner::new_unix(self.reactor.clone(), addr))))
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let (inner0, inner1) = try!(SocketStreamInner::new_pair(self.reactor.clone()));
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:254:21
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let inner = try!(SocketStreamInner::wrap_raw_socket_descriptor(self.reactor.clone(), fd));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:264:86
[INFO] [stdout]     |
[INFO] [stdout] 264 |         where F: FnOnce(SocketStream, &::gj::WaitScope, EventPort) -> Result<(), Box<::std::error::Error>>,
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:263:89
[INFO] [stdout]     |
[INFO] [stdout] 263 | ...                   -> Result<(::std::thread::JoinHandle<()>, SocketStream), Box<::std::error::Error>>
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:267:36
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let (join_handle, inner) = try!(SocketStreamInner::socket_spawn(self.reactor.clone(), start_func));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:296:32
[INFO] [stdout]     |
[INFO] [stdout] 296 |         Ok(SocketListener::new(try!(self.inner.listen())))
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 |             if event.events.contains(epoll::EPOLLIN) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unaligned_references)]` on by default
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |                event.events.contains(epoll::EPOLLERR)
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:62:57
[INFO] [stdout]    |
[INFO] [stdout] 62 |             if event.events.contains(epoll::EPOLLIN) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:73:16
[INFO] [stdout]    |
[INFO] [stdout] 73 |             if event.events.contains(epoll::EPOLLOUT) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:74:16
[INFO] [stdout]    |
[INFO] [stdout] 74 |                event.events.contains(epoll::EPOLLERR)
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:73:58
[INFO] [stdout]    |
[INFO] [stdout] 73 |             if event.events.contains(epoll::EPOLLOUT) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.58s
[INFO] running `Command { std: "docker" "inspect" "5de62552b1af44d79a5c8412d507d1870bd899592def59d616c4725c95d1dfa4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5de62552b1af44d79a5c8412d507d1870bd899592def59d616c4725c95d1dfa4", kill_on_drop: false }`
[INFO] [stdout] 5de62552b1af44d79a5c8412d507d1870bd899592def59d616c4725c95d1dfa4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 3d4310b639d30b58447c8d53a3747af0f4992b72f4f5ead8c1cb69a86256aa43
[INFO] running `Command { std: "docker" "start" "-a" "3d4310b639d30b58447c8d53a3747af0f4992b72f4f5ead8c1cb69a86256aa43", kill_on_drop: false }`
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:108:36
[INFO] [stdout]     |
[INFO] [stdout] 108 | ...                   try!(::nix::sys::socket::UnixAddr::new(addr.as_ref())))
[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/sys/unix/mod.rs:152:30
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let fd = AutoCloseFd(try!(socket::socket(self.addr.family(), socket::SockType::Stream,
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:160:22
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let handle = try!(self.reactor.borrow_mut().new_observer(fd.0));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:271:23
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let handle0 = try!(reactor.borrow_mut().new_observer(fd0.0));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:272:23
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let handle1 = try!(reactor.borrow_mut().new_observer(fd1.0));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:282:22
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let handle = try!(reactor.borrow_mut().new_observer(fd.0));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sys/unix/mod.rs:289:90
[INFO] [stdout]     |
[INFO] [stdout] 289 |         where F: FnOnce(::SocketStream, &::gj::WaitScope, ::EventPort) -> Result<(), Box<::std::error::Error>>,
[INFO] [stdout]     |                                                                                          ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sys/unix/mod.rs:288:94
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...                   -> Result<(::std::thread::JoinHandle<()>, SocketStreamInner), Box<::std::error::Error>>
[INFO] [stdout]     |                                                                                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:298:23
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let handle0 = try!(reactor.borrow_mut().new_observer(fd0.0));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:302:34
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 let event_port = try!(::EventPort::new());
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:304:31
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 let handle1 = try!(network.reactor.borrow_mut().new_observer(fd1.0));
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:165:43
[INFO] [stdout]     |
[INFO] [stdout] 165 |             reactor: Rc::new(RefCell::new(try!(sys::Reactor::new()))),
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         try!(self.reactor.borrow_mut().run_once(timeout));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:215:31
[INFO] [stdout]     |
[INFO] [stdout] 215 |         Ok(SocketAddress::new(try!(SocketAddressInner::new_unix(self.reactor.clone(), addr))))
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let (inner0, inner1) = try!(SocketStreamInner::new_pair(self.reactor.clone()));
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:254:21
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let inner = try!(SocketStreamInner::wrap_raw_socket_descriptor(self.reactor.clone(), fd));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:264:86
[INFO] [stdout]     |
[INFO] [stdout] 264 |         where F: FnOnce(SocketStream, &::gj::WaitScope, EventPort) -> Result<(), Box<::std::error::Error>>,
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:263:89
[INFO] [stdout]     |
[INFO] [stdout] 263 | ...                   -> Result<(::std::thread::JoinHandle<()>, SocketStream), Box<::std::error::Error>>
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gjio v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:267:36
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let (join_handle, inner) = try!(SocketStreamInner::socket_spawn(self.reactor.clone(), start_func));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:296:32
[INFO] [stdout]     |
[INFO] [stdout] 296 |         Ok(SocketListener::new(try!(self.inner.listen())))
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 |             if event.events.contains(epoll::EPOLLIN) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unaligned_references)]` on by default
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |                event.events.contains(epoll::EPOLLERR)
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:62:57
[INFO] [stdout]    |
[INFO] [stdout] 62 |             if event.events.contains(epoll::EPOLLIN) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:73:16
[INFO] [stdout]    |
[INFO] [stdout] 73 |             if event.events.contains(epoll::EPOLLOUT) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:74:16
[INFO] [stdout]    |
[INFO] [stdout] 74 |                event.events.contains(epoll::EPOLLERR)
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:73:58
[INFO] [stdout]    |
[INFO] [stdout] 73 |             if event.events.contains(epoll::EPOLLOUT) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> examples/echo.rs:145:30
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let mut event_port = try!(gjio::EventPort::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]    --> examples/echo.rs:147:20
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let addr = try!(args[1].to_socket_addrs()).next().expect("could not parse address");
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> examples/echo.rs:149:24
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let listener = try!(address.listen());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> examples/proxy.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> examples/proxy.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let mut event_port = try!(gjio::EventPort::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]   --> examples/proxy.rs:86:20
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let addr = try!(args[1].to_socket_addrs()).next().expect("could not parse address");
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> examples/proxy.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let listener = try!(address.listen());
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> examples/proxy.rs:90:29
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let outbound_addr = try!(args[2].to_socket_addrs()).next().expect("could not parse address");
[INFO] [stdout]    |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> tests/io.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> tests/io.rs:31:30
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let mut event_port = try!(gjio::EventPort::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]   --> tests/io.rs:35:24
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let listener = try!(address.listen());
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> tests/io.rs:45:24
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let (buf, _) = try!(read_promise.wait(wait_scope, &mut event_port));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> tests/io.rs:56:30
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut event_port = try!(gjio::EventPort::new());
[INFO] [stdout]    |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> tests/io.rs:60:24
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let listener = try!(address.listen());
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> tests/io.rs:78:24
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let (buf, _) = try!(client_promise.wait(wait_scope, &mut event_port));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> tests/io.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |         try!(Promise::all(vec![p1,p2,p3].into_iter()).wait(wait_scope, &mut event_port));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> tests/io.rs:90:30
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let mut event_port = try!(gjio::EventPort::new());
[INFO] [stdout]    |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> tests/io.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |         try!(p2.wait(wait_scope, &mut event_port));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> tests/io.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         try!(p3.wait(wait_scope, &mut event_port));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> tests/io.rs:129:30
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let mut event_port = try!(gjio::EventPort::new());
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> examples/threads.rs:62:85
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn child(network: ::gjio::Network, delay: Duration) -> Result<SocketStream, Box<::std::error::Error>> {
[INFO] [stdout]    |                                                                                     ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> examples/threads.rs:63:27
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let (_, stream) = try!(network.socket_spawn(move |parent_stream, wait_scope, mut event_port| {
[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]   --> examples/threads.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |             try!(child_loop(delay, parent_stream, vec![0u8]).lift::<Box<::std::error::Error>>().wait(wait_scope, &mut event_port));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> examples/threads.rs:64:73
[INFO] [stdout]    |
[INFO] [stdout] 64 |             try!(child_loop(delay, parent_stream, vec![0u8]).lift::<Box<::std::error::Error>>().wait(wait_scope, &mut event_port));
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> examples/threads.rs:89:67
[INFO] [stdout]    |
[INFO] [stdout] 89 |         ::gj::EventLoop::top_level(|wait_scope| -> Result<(), Box<::std::error::Error>> {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> examples/threads.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |             try!(Promise::all(children.into_iter()).wait(wait_scope, &mut event_port));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> examples/threads.rs:90:34
[INFO] [stdout]    |
[INFO] [stdout] 90 |             let mut event_port = try!(::gjio::EventPort::new());
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> examples/threads.rs:95:44
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 listen_to_child("CHILD 1", try!(child(network.clone(), Duration::from_millis(700))), vec![0]),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> examples/threads.rs:96:44
[INFO] [stdout]    |
[INFO] [stdout] 96 |                 listen_to_child("CHILD 2", try!(child(network.clone(), Duration::from_millis(1900))), vec![0]),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> examples/threads.rs:97:44
[INFO] [stdout]    |
[INFO] [stdout] 97 |                 listen_to_child("CHILD 3", try!(child(network.clone(), Duration::from_millis(2600))), vec![0])];
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:108:36
[INFO] [stdout]     |
[INFO] [stdout] 108 | ...                   try!(::nix::sys::socket::UnixAddr::new(addr.as_ref())))
[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/sys/unix/mod.rs:152:30
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let fd = AutoCloseFd(try!(socket::socket(self.addr.family(), socket::SockType::Stream,
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:160:22
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let handle = try!(self.reactor.borrow_mut().new_observer(fd.0));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:271:23
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let handle0 = try!(reactor.borrow_mut().new_observer(fd0.0));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:272:23
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let handle1 = try!(reactor.borrow_mut().new_observer(fd1.0));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:282:22
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let handle = try!(reactor.borrow_mut().new_observer(fd.0));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sys/unix/mod.rs:289:90
[INFO] [stdout]     |
[INFO] [stdout] 289 |         where F: FnOnce(::SocketStream, &::gj::WaitScope, ::EventPort) -> Result<(), Box<::std::error::Error>>,
[INFO] [stdout]     |                                                                                          ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sys/unix/mod.rs:288:94
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...                   -> Result<(::std::thread::JoinHandle<()>, SocketStreamInner), Box<::std::error::Error>>
[INFO] [stdout]     |                                                                                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:298:23
[INFO] [stdout]     |
[INFO] [stdout] 298 |         let handle0 = try!(reactor.borrow_mut().new_observer(fd0.0));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:302:34
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 let event_port = try!(::EventPort::new());
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sys/unix/mod.rs:304:31
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 let handle1 = try!(network.reactor.borrow_mut().new_observer(fd1.0));
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:165:43
[INFO] [stdout]     |
[INFO] [stdout] 165 |             reactor: Rc::new(RefCell::new(try!(sys::Reactor::new()))),
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         try!(self.reactor.borrow_mut().run_once(timeout));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:215:31
[INFO] [stdout]     |
[INFO] [stdout] 215 |         Ok(SocketAddress::new(try!(SocketAddressInner::new_unix(self.reactor.clone(), addr))))
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let (inner0, inner1) = try!(SocketStreamInner::new_pair(self.reactor.clone()));
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:254:21
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let inner = try!(SocketStreamInner::wrap_raw_socket_descriptor(self.reactor.clone(), fd));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:264:86
[INFO] [stdout]     |
[INFO] [stdout] 264 |         where F: FnOnce(SocketStream, &::gj::WaitScope, EventPort) -> Result<(), Box<::std::error::Error>>,
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:263:89
[INFO] [stdout]     |
[INFO] [stdout] 263 | ...                   -> Result<(::std::thread::JoinHandle<()>, SocketStream), Box<::std::error::Error>>
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:267:36
[INFO] [stdout]     |
[INFO] [stdout] 267 |         let (join_handle, inner) = try!(SocketStreamInner::socket_spawn(self.reactor.clone(), start_func));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:296:32
[INFO] [stdout]     |
[INFO] [stdout] 296 |         Ok(SocketListener::new(try!(self.inner.listen())))
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 |             if event.events.contains(epoll::EPOLLIN) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unaligned_references)]` on by default
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |                event.events.contains(epoll::EPOLLERR)
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:62:57
[INFO] [stdout]    |
[INFO] [stdout] 62 |             if event.events.contains(epoll::EPOLLIN) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:73:16
[INFO] [stdout]    |
[INFO] [stdout] 73 |             if event.events.contains(epoll::EPOLLOUT) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:74:16
[INFO] [stdout]    |
[INFO] [stdout] 74 |                event.events.contains(epoll::EPOLLERR)
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reference to packed field is unaligned
[INFO] [stdout]   --> src/sys/unix/epoll.rs:73:58
[INFO] [stdout]    |
[INFO] [stdout] 73 |             if event.events.contains(epoll::EPOLLOUT) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stdout]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.44s
[INFO] running `Command { std: "docker" "inspect" "3d4310b639d30b58447c8d53a3747af0f4992b72f4f5ead8c1cb69a86256aa43", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d4310b639d30b58447c8d53a3747af0f4992b72f4f5ead8c1cb69a86256aa43", kill_on_drop: false }`
[INFO] [stdout] 3d4310b639d30b58447c8d53a3747af0f4992b72f4f5ead8c1cb69a86256aa43
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 21e07ee5913ad5879832ddf8857d0181acbe8d5f95458883202af0be74267e1b
[INFO] running `Command { std: "docker" "start" "-a" "21e07ee5913ad5879832ddf8857d0181acbe8d5f95458883202af0be74267e1b", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/sys/unix/mod.rs:108:36
[INFO] [stderr]     |
[INFO] [stderr] 108 | ...                   try!(::nix::sys::socket::UnixAddr::new(addr.as_ref())))
[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/sys/unix/mod.rs:152:30
[INFO] [stderr]     |
[INFO] [stderr] 152 |         let fd = AutoCloseFd(try!(socket::socket(self.addr.family(), socket::SockType::Stream,
[INFO] [stderr]     |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/sys/unix/mod.rs:160:22
[INFO] [stderr]     |
[INFO] [stderr] 160 |         let handle = try!(self.reactor.borrow_mut().new_observer(fd.0));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/sys/unix/mod.rs:271:23
[INFO] [stderr]     |
[INFO] [stderr] 271 |         let handle0 = try!(reactor.borrow_mut().new_observer(fd0.0));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/sys/unix/mod.rs:272:23
[INFO] [stderr]     |
[INFO] [stderr] 272 |         let handle1 = try!(reactor.borrow_mut().new_observer(fd1.0));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/sys/unix/mod.rs:282:22
[INFO] [stderr]     |
[INFO] [stderr] 282 |         let handle = try!(reactor.borrow_mut().new_observer(fd.0));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/sys/unix/mod.rs:289:90
[INFO] [stderr]     |
[INFO] [stderr] 289 |         where F: FnOnce(::SocketStream, &::gj::WaitScope, ::EventPort) -> Result<(), Box<::std::error::Error>>,
[INFO] [stderr]     |                                                                                          ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` on by default
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/sys/unix/mod.rs:288:94
[INFO] [stderr]     |
[INFO] [stderr] 288 | ...                   -> Result<(::std::thread::JoinHandle<()>, SocketStreamInner), Box<::std::error::Error>>
[INFO] [stderr]     |                                                                                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/sys/unix/mod.rs:298:23
[INFO] [stderr]     |
[INFO] [stderr] 298 |         let handle0 = try!(reactor.borrow_mut().new_observer(fd0.0));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/sys/unix/mod.rs:302:34
[INFO] [stderr]     |
[INFO] [stderr] 302 |                 let event_port = try!(::EventPort::new());
[INFO] [stderr]     |                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/sys/unix/mod.rs:304:31
[INFO] [stderr]     |
[INFO] [stderr] 304 |                 let handle1 = try!(network.reactor.borrow_mut().new_observer(fd1.0));
[INFO] [stderr]     |                               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:165:43
[INFO] [stderr]     |
[INFO] [stderr] 165 |             reactor: Rc::new(RefCell::new(try!(sys::Reactor::new()))),
[INFO] [stderr]     |                                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:184:9
[INFO] [stderr]     |
[INFO] [stderr] 184 |         try!(self.reactor.borrow_mut().run_once(timeout));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:215:31
[INFO] [stderr]     |
[INFO] [stderr] 215 |         Ok(SocketAddress::new(try!(SocketAddressInner::new_unix(self.reactor.clone(), addr))))
[INFO] [stderr]     |                               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:220:32
[INFO] [stderr]     |
[INFO] [stderr] 220 |         let (inner0, inner1) = try!(SocketStreamInner::new_pair(self.reactor.clone()));
[INFO] [stderr]     |                                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:254:21
[INFO] [stderr]     |
[INFO] [stderr] 254 |         let inner = try!(SocketStreamInner::wrap_raw_socket_descriptor(self.reactor.clone(), fd));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:264:86
[INFO] [stderr]     |
[INFO] [stderr] 264 |         where F: FnOnce(SocketStream, &::gj::WaitScope, EventPort) -> Result<(), Box<::std::error::Error>>,
[INFO] [stderr]     |                                                                                      ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:263:89
[INFO] [stderr]     |
[INFO] [stderr] 263 | ...                   -> Result<(::std::thread::JoinHandle<()>, SocketStream), Box<::std::error::Error>>
[INFO] [stderr]     |                                                                                    ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:267:36
[INFO] [stderr]     |
[INFO] [stderr] 267 |         let (join_handle, inner) = try!(SocketStreamInner::socket_spawn(self.reactor.clone(), start_func));
[INFO] [stderr]     |                                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:296:32
[INFO] [stderr]     |
[INFO] [stderr] 296 |         Ok(SocketListener::new(try!(self.inner.listen())))
[INFO] [stderr]     |                                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: reference to packed field is unaligned
[INFO] [stderr]   --> src/sys/unix/epoll.rs:62:16
[INFO] [stderr]    |
[INFO] [stderr] 62 |             if event.events.contains(epoll::EPOLLIN) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stderr]    |                ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unaligned_references)]` on by default
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stderr]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stderr] 
[INFO] [stderr] warning: reference to packed field is unaligned
[INFO] [stderr]   --> src/sys/unix/epoll.rs:63:16
[INFO] [stderr]    |
[INFO] [stderr] 63 |                event.events.contains(epoll::EPOLLERR)
[INFO] [stderr]    |                ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stderr]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stderr] 
[INFO] [stderr] warning: reference to packed field is unaligned
[INFO] [stderr]   --> src/sys/unix/epoll.rs:62:57
[INFO] [stderr]    |
[INFO] [stderr] 62 |             if event.events.contains(epoll::EPOLLIN) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stderr]    |                                                         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stderr]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stderr] 
[INFO] [stderr] warning: reference to packed field is unaligned
[INFO] [stderr]   --> src/sys/unix/epoll.rs:73:16
[INFO] [stderr]    |
[INFO] [stderr] 73 |             if event.events.contains(epoll::EPOLLOUT) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stderr]    |                ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stderr]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stderr] 
[INFO] [stderr] warning: reference to packed field is unaligned
[INFO] [stderr]   --> src/sys/unix/epoll.rs:74:16
[INFO] [stderr]    |
[INFO] [stderr] 74 |                event.events.contains(epoll::EPOLLERR)
[INFO] [stderr]    |                ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stderr]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stderr] 
[INFO] [stderr] warning: reference to packed field is unaligned
[INFO] [stderr]   --> src/sys/unix/epoll.rs:73:58
[INFO] [stderr]    |
[INFO] [stderr] 73 |             if event.events.contains(epoll::EPOLLOUT) || event.events.contains(epoll::EPOLLHUP) ||
[INFO] [stderr]    |                                                          ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
[INFO] [stderr]    = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
[INFO] [stderr] 
[INFO] [stderr] warning: `gjio` (lib) generated 26 warnings
[INFO] [stderr] warning: `gjio` (lib test) generated 26 warnings (26 duplicates)
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> examples/threads.rs:62:85
[INFO] [stderr]    |
[INFO] [stderr] 62 |     fn child(network: ::gjio::Network, delay: Duration) -> Result<SocketStream, Box<::std::error::Error>> {
[INFO] [stderr]    |                                                                                     ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> examples/threads.rs:63:27
[INFO] [stderr]    |
[INFO] [stderr] 63 |         let (_, stream) = try!(network.socket_spawn(move |parent_stream, wait_scope, mut event_port| {
[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]   --> examples/threads.rs:64:13
[INFO] [stderr]    |
[INFO] [stderr] 64 |             try!(child_loop(delay, parent_stream, vec![0u8]).lift::<Box<::std::error::Error>>().wait(wait_scope, &mut event_port));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> examples/threads.rs:64:73
[INFO] [stderr]    |
[INFO] [stderr] 64 |             try!(child_loop(delay, parent_stream, vec![0u8]).lift::<Box<::std::error::Error>>().wait(wait_scope, &mut event_port));
[INFO] [stderr]    |                                                                         ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> examples/threads.rs:89:67
[INFO] [stderr]    |
[INFO] [stderr] 89 |         ::gj::EventLoop::top_level(|wait_scope| -> Result<(), Box<::std::error::Error>> {
[INFO] [stderr]    |                                                                   ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[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 issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> examples/threads.rs:99:13
[INFO] [stderr]    |
[INFO] [stderr] 99 |             try!(Promise::all(children.into_iter()).wait(wait_scope, &mut event_port));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> examples/threads.rs:90:34
[INFO] [stderr]    |
[INFO] [stderr] 90 |             let mut event_port = try!(::gjio::EventPort::new());
[INFO] [stderr]    |                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> examples/threads.rs:95:44
[INFO] [stderr]    |
[INFO] [stderr] 95 |                 listen_to_child("CHILD 1", try!(child(network.clone(), Duration::from_millis(700))), vec![0]),
[INFO] [stderr]    |                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> examples/threads.rs:96:44
[INFO] [stderr]    |
[INFO] [stderr] 96 |                 listen_to_child("CHILD 2", try!(child(network.clone(), Duration::from_millis(1900))), vec![0]),
[INFO] [stderr]    |                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> examples/threads.rs:97:44
[INFO] [stderr]    |
[INFO] [stderr] 97 |                 listen_to_child("CHILD 3", try!(child(network.clone(), Duration::from_millis(2600))), vec![0])];
[INFO] [stderr]    |                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `#[macro_use]` import
[INFO] [stderr]   --> examples/proxy.rs:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | #[macro_use]
[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]   --> examples/proxy.rs:84:30
[INFO] [stderr]    |
[INFO] [stderr] 84 |         let mut event_port = try!(gjio::EventPort::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]   --> examples/proxy.rs:86:20
[INFO] [stderr]    |
[INFO] [stderr] 86 |         let addr = try!(args[1].to_socket_addrs()).next().expect("could not parse address");
[INFO] [stderr]    |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> examples/proxy.rs:88:24
[INFO] [stderr]    |
[INFO] [stderr] 88 |         let listener = try!(address.listen());
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> examples/proxy.rs:90:29
[INFO] [stderr]    |
[INFO] [stderr] 90 |         let outbound_addr = try!(args[2].to_socket_addrs()).next().expect("could not parse address");
[INFO] [stderr]    |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> examples/echo.rs:145:30
[INFO] [stderr]     |
[INFO] [stderr] 145 |         let mut event_port = try!(gjio::EventPort::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]    --> examples/echo.rs:147:20
[INFO] [stderr]     |
[INFO] [stderr] 147 |         let addr = try!(args[1].to_socket_addrs()).next().expect("could not parse address");
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> examples/echo.rs:149:24
[INFO] [stderr]     |
[INFO] [stderr] 149 |         let listener = try!(address.listen());
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `#[macro_use]` import
[INFO] [stderr]   --> tests/io.rs:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | #[macro_use]
[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]   --> tests/io.rs:31:30
[INFO] [stderr]    |
[INFO] [stderr] 31 |         let mut event_port = try!(gjio::EventPort::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]   --> tests/io.rs:35:24
[INFO] [stderr]    |
[INFO] [stderr] 35 |         let listener = try!(address.listen());
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> tests/io.rs:45:24
[INFO] [stderr]    |
[INFO] [stderr] 45 |         let (buf, _) = try!(read_promise.wait(wait_scope, &mut event_port));
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> tests/io.rs:56:30
[INFO] [stderr]    |
[INFO] [stderr] 56 |         let mut event_port = try!(gjio::EventPort::new());
[INFO] [stderr]    |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> tests/io.rs:60:24
[INFO] [stderr]    |
[INFO] [stderr] 60 |         let listener = try!(address.listen());
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> tests/io.rs:78:24
[INFO] [stderr]    |
[INFO] [stderr] 78 |         let (buf, _) = try!(client_promise.wait(wait_scope, &mut event_port));
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> tests/io.rs:116:9
[INFO] [stderr]     |
[INFO] [stderr] 116 |         try!(Promise::all(vec![p1,p2,p3].into_iter()).wait(wait_scope, &mut event_port));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> tests/io.rs:90:30
[INFO] [stderr]    |
[INFO] [stderr] 90 |         let mut event_port = try!(gjio::EventPort::new());
[INFO] [stderr]    |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> tests/io.rs:144:9
[INFO] [stderr]     |
[INFO] [stderr] 144 |         try!(p2.wait(wait_scope, &mut event_port));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> tests/io.rs:147:9
[INFO] [stderr]     |
[INFO] [stderr] 147 |         try!(p3.wait(wait_scope, &mut event_port));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> tests/io.rs:129:30
[INFO] [stderr]     |
[INFO] [stderr] 129 |         let mut event_port = try!(gjio::EventPort::new());
[INFO] [stderr]     |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `gjio` (example "threads") generated 10 warnings
[INFO] [stderr] warning: `gjio` (example "proxy") generated 5 warnings
[INFO] [stderr] warning: `gjio` (example "echo") generated 3 warnings
[INFO] [stderr] warning: `gjio` (test "io") generated 12 warnings
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.01s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/gjio-4e119bfb2835fab2)
[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 tests/io.rs (/opt/rustwide/target/debug/deps/io-4b2e0d4532292ca7)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test echo ... ok
[INFO] [stdout] test hello ... ok
[INFO] [stdout] test timer_cancelation ... ok
[INFO] [stdout] test timers_ordering ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests gjio
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 26) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.01s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "21e07ee5913ad5879832ddf8857d0181acbe8d5f95458883202af0be74267e1b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "21e07ee5913ad5879832ddf8857d0181acbe8d5f95458883202af0be74267e1b", kill_on_drop: false }`
[INFO] [stdout] 21e07ee5913ad5879832ddf8857d0181acbe8d5f95458883202af0be74267e1b
