[INFO] cloning repository https://github.com/8000h/raytracer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/8000h/raytracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F8000h%2Fraytracer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F8000h%2Fraytracer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cb7411bf61b0c7df1e49cc283ca0ee531cabf090
[INFO] testing 8000h/raytracer against 1.76.0 for beta-1.77-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F8000h%2Fraytracer" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/8000h/raytracer on toolchain 1.76.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.76.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/8000h/raytracer
[INFO] finished tweaking git repo https://github.com/8000h/raytracer
[INFO] tweaked toml for git repo https://github.com/8000h/raytracer written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/8000h/raytracer 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.76.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded smallvec v1.12.0
[INFO] [stderr]   Downloaded fdeflate v0.3.3
[INFO] [stderr]   Downloaded libc v0.2.152
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bfc32e07f924b2c1f976a62d99a06681653dfd78357889b0402bf5f79934faba
[INFO] running `Command { std: "docker" "start" "-a" "bfc32e07f924b2c1f976a62d99a06681653dfd78357889b0402bf5f79934faba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bfc32e07f924b2c1f976a62d99a06681653dfd78357889b0402bf5f79934faba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bfc32e07f924b2c1f976a62d99a06681653dfd78357889b0402bf5f79934faba", kill_on_drop: false }`
[INFO] [stdout] bfc32e07f924b2c1f976a62d99a06681653dfd78357889b0402bf5f79934faba
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.76.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0cf708743f429662c613a51409e07f3e6abfba416b64e0803a236b2847aec94e
[INFO] running `Command { std: "docker" "start" "-a" "0cf708743f429662c613a51409e07f3e6abfba416b64e0803a236b2847aec94e", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling rayon-core v1.12.0
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling libc v0.2.152
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling weezl v0.1.7
[INFO] [stderr]    Compiling miniz_oxide v0.7.1
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling fdeflate v0.3.3
[INFO] [stderr]    Compiling zune-inflate v0.2.54
[INFO] [stderr]    Compiling half v2.2.1
[INFO] [stderr]    Compiling flate2 v1.0.28
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling flume v0.11.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling lebe v0.5.2
[INFO] [stderr]    Compiling bit_field v0.10.2
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling getrandom v0.2.12
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling bytemuck v1.14.0
[INFO] [stderr]    Compiling smallvec v1.12.0
[INFO] [stderr]    Compiling png v0.17.11
[INFO] [stderr]    Compiling gif v0.12.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rayon v1.8.0
[INFO] [stderr]    Compiling exr v1.71.0
[INFO] [stderr]    Compiling jpeg-decoder v0.3.1
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling image v0.24.8
[INFO] [stderr]    Compiling raytracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `geometry::Hittable`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use geometry::Hittable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::DerefMut`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::DerefMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/main.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread::{self, JoinHandle};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::DerefMut`
[INFO] [stdout]  --> src/geometry.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::DerefMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:26:20
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn scatter(&self, ray: &Ray, hit_result: &HitResult) -> Option<(Vec3f, Ray)> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fragments`
[INFO] [stdout]    --> src/main.rs:125:6
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let fragments = threads.into_iter().map(|handle| handle.join().unwrap());
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fragments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:129:7
[INFO] [stdout]     |
[INFO] [stdout] 129 |     for (x, y, pixel) in buffer.enumerate_pixels_mut() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 |     for (x, y, pixel) in buffer.enumerate_pixels_mut() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:69:6
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let mut scene: Arc<HittableGroup> = Arc::new(HittableGroup::new());
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow data in an `Arc` as mutable
[INFO] [stdout]   --> src/main.rs:76:2
[INFO] [stdout]    |
[INFO] [stdout] 76 |     scene.group.push(Arc::new(
[INFO] [stdout]    |     ^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout]    = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc<HittableGroup>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow data in an `Arc` as mutable
[INFO] [stdout]   --> src/main.rs:84:2
[INFO] [stdout]    |
[INFO] [stdout] 84 |     scene.group.push(Arc::new(
[INFO] [stdout]    |     ^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout]    = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc<HittableGroup>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow data in an `Arc` as mutable
[INFO] [stdout]   --> src/main.rs:92:2
[INFO] [stdout]    |
[INFO] [stdout] 92 |     scene.group.push(Arc::new(
[INFO] [stdout]    |     ^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout]    = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc<HittableGroup>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow data in an `Arc` as mutable
[INFO] [stdout]    --> src/main.rs:100:2
[INFO] [stdout]     |
[INFO] [stdout] 100 |     scene.group.push(Arc::new(
[INFO] [stdout]     |     ^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout]     = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc<HittableGroup>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `camera`, which is owned by the current function
[INFO] [stdout]    --> src/main.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |         threads.push(std::thread::spawn(|| {
[INFO] [stdout]     |                                         ^^ may outlive borrowed value `camera`
[INFO] [stdout] 121 |             render(Arc::clone(&scene), &camera, 0, 10)
[INFO] [stdout]     |                                         ------ `camera` is borrowed here
[INFO] [stdout]     |
[INFO] [stdout] note: function requires argument type to outlive `'static`
[INFO] [stdout]    --> src/main.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 |           threads.push(std::thread::spawn(|| {
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 121 | |             render(Arc::clone(&scene), &camera, 0, 10)
[INFO] [stdout] 122 | |         }));
[INFO] [stdout]     | |__________^
[INFO] [stdout] help: to force the closure to take ownership of `camera` (and any other referenced variables), use the `move` keyword
[INFO] [stdout]     |
[INFO] [stdout] 120 |         threads.push(std::thread::spawn(move || {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `scene`, which is owned by the current function
[INFO] [stdout]    --> src/main.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |         threads.push(std::thread::spawn(|| {
[INFO] [stdout]     |                                         ^^ may outlive borrowed value `scene`
[INFO] [stdout] 121 |             render(Arc::clone(&scene), &camera, 0, 10)
[INFO] [stdout]     |                                ----- `scene` is borrowed here
[INFO] [stdout]     |
[INFO] [stdout] note: function requires argument type to outlive `'static`
[INFO] [stdout]    --> src/main.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 |           threads.push(std::thread::spawn(|| {
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 121 | |             render(Arc::clone(&scene), &camera, 0, 10)
[INFO] [stdout] 122 | |         }));
[INFO] [stdout]     | |__________^
[INFO] [stdout] help: to force the closure to take ownership of `scene` (and any other referenced variables), use the `move` keyword
[INFO] [stdout]     |
[INFO] [stdout] 120 |         threads.push(std::thread::spawn(move || {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors; 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0373, E0596.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0373`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `raytracer` (bin "raytracer") due to 7 previous errors; 10 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "0cf708743f429662c613a51409e07f3e6abfba416b64e0803a236b2847aec94e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0cf708743f429662c613a51409e07f3e6abfba416b64e0803a236b2847aec94e", kill_on_drop: false }`
[INFO] [stdout] 0cf708743f429662c613a51409e07f3e6abfba416b64e0803a236b2847aec94e
[INFO] testing 8000h/raytracer against beta-2024-02-10 for beta-1.77-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F8000h%2Fraytracer" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/8000h/raytracer on toolchain beta-2024-02-10
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-02-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/8000h/raytracer
[INFO] finished tweaking git repo https://github.com/8000h/raytracer
[INFO] tweaked toml for git repo https://github.com/8000h/raytracer written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/8000h/raytracer 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" "+beta-2024-02-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-02-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 169545415abcc37ef28263887e002156fc7a84e31e07fcbc0ecf53ac8f72336f
[INFO] running `Command { std: "docker" "start" "-a" "169545415abcc37ef28263887e002156fc7a84e31e07fcbc0ecf53ac8f72336f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "169545415abcc37ef28263887e002156fc7a84e31e07fcbc0ecf53ac8f72336f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "169545415abcc37ef28263887e002156fc7a84e31e07fcbc0ecf53ac8f72336f", kill_on_drop: false }`
[INFO] [stdout] 169545415abcc37ef28263887e002156fc7a84e31e07fcbc0ecf53ac8f72336f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-02-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8ecfd68e43f3fe1be6ea4a5ef3c864027964a9e1b4a409e80ce6dcb7893dfa5f
[INFO] running `Command { std: "docker" "start" "-a" "8ecfd68e43f3fe1be6ea4a5ef3c864027964a9e1b4a409e80ce6dcb7893dfa5f", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling rayon-core v1.12.0
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling libc v0.2.152
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling weezl v0.1.7
[INFO] [stderr]    Compiling miniz_oxide v0.7.1
[INFO] [stderr]    Compiling fdeflate v0.3.3
[INFO] [stderr]    Compiling zune-inflate v0.2.54
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling bit_field v0.10.2
[INFO] [stderr]    Compiling flate2 v1.0.28
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling flume v0.11.0
[INFO] [stderr]    Compiling half v2.2.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling getrandom v0.2.12
[INFO] [stderr]    Compiling bytemuck v1.14.0
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling lebe v0.5.2
[INFO] [stderr]    Compiling smallvec v1.12.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling png v0.17.11
[INFO] [stderr]    Compiling gif v0.12.0
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rayon v1.8.0
[INFO] [stderr]    Compiling exr v1.71.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling jpeg-decoder v0.3.1
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling image v0.24.8
[INFO] [stderr]    Compiling raytracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `geometry::Hittable`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use geometry::Hittable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::DerefMut`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::DerefMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/main.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread::{self, JoinHandle};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::DerefMut`
[INFO] [stdout]  --> src/geometry.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::DerefMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material.rs:26:20
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn scatter(&self, ray: &Ray, hit_result: &HitResult) -> Option<(Vec3f, Ray)> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fragments`
[INFO] [stdout]    --> src/main.rs:125:6
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let fragments = threads.into_iter().map(|handle| handle.join().unwrap());
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fragments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:129:7
[INFO] [stdout]     |
[INFO] [stdout] 129 |     for (x, y, pixel) in buffer.enumerate_pixels_mut() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 |     for (x, y, pixel) in buffer.enumerate_pixels_mut() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:69:6
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let mut scene: Arc<HittableGroup> = Arc::new(HittableGroup::new());
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow data in an `Arc` as mutable
[INFO] [stdout]   --> src/main.rs:76:2
[INFO] [stdout]    |
[INFO] [stdout] 76 |     scene.group.push(Arc::new(
[INFO] [stdout]    |     ^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout]    = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc<HittableGroup>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow data in an `Arc` as mutable
[INFO] [stdout]   --> src/main.rs:84:2
[INFO] [stdout]    |
[INFO] [stdout] 84 |     scene.group.push(Arc::new(
[INFO] [stdout]    |     ^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout]    = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc<HittableGroup>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow data in an `Arc` as mutable
[INFO] [stdout]   --> src/main.rs:92:2
[INFO] [stdout]    |
[INFO] [stdout] 92 |     scene.group.push(Arc::new(
[INFO] [stdout]    |     ^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout]    = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc<HittableGroup>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow data in an `Arc` as mutable
[INFO] [stdout]    --> src/main.rs:100:2
[INFO] [stdout]     |
[INFO] [stdout] 100 |     scene.group.push(Arc::new(
[INFO] [stdout]     |     ^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout]     = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc<HittableGroup>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `camera`, which is owned by the current function
[INFO] [stdout]    --> src/main.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |         threads.push(std::thread::spawn(|| {
[INFO] [stdout]     |                                         ^^ may outlive borrowed value `camera`
[INFO] [stdout] 121 |             render(Arc::clone(&scene), &camera, 0, 10)
[INFO] [stdout]     |                                         ------ `camera` is borrowed here
[INFO] [stdout]     |
[INFO] [stdout] note: function requires argument type to outlive `'static`
[INFO] [stdout]    --> src/main.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 |           threads.push(std::thread::spawn(|| {
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 121 | |             render(Arc::clone(&scene), &camera, 0, 10)
[INFO] [stdout] 122 | |         }));
[INFO] [stdout]     | |__________^
[INFO] [stdout] help: to force the closure to take ownership of `camera` (and any other referenced variables), use the `move` keyword
[INFO] [stdout]     |
[INFO] [stdout] 120 |         threads.push(std::thread::spawn(move || {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `scene`, which is owned by the current function
[INFO] [stdout]    --> src/main.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |         threads.push(std::thread::spawn(|| {
[INFO] [stdout]     |                                         ^^ may outlive borrowed value `scene`
[INFO] [stdout] 121 |             render(Arc::clone(&scene), &camera, 0, 10)
[INFO] [stdout]     |                                ----- `scene` is borrowed here
[INFO] [stdout]     |
[INFO] [stdout] note: function requires argument type to outlive `'static`
[INFO] [stdout]    --> src/main.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 |           threads.push(std::thread::spawn(|| {
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 121 | |             render(Arc::clone(&scene), &camera, 0, 10)
[INFO] [stdout] 122 | |         }));
[INFO] [stdout]     | |__________^
[INFO] [stdout] help: to force the closure to take ownership of `scene` (and any other referenced variables), use the `move` keyword
[INFO] [stdout]     |
[INFO] [stdout] 120 |         threads.push(std::thread::spawn(move || {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors; 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0373, E0596.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0373`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `raytracer` (bin "raytracer") due to 7 previous errors; 10 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "8ecfd68e43f3fe1be6ea4a5ef3c864027964a9e1b4a409e80ce6dcb7893dfa5f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8ecfd68e43f3fe1be6ea4a5ef3c864027964a9e1b4a409e80ce6dcb7893dfa5f", kill_on_drop: false }`
[INFO] [stdout] 8ecfd68e43f3fe1be6ea4a5ef3c864027964a9e1b4a409e80ce6dcb7893dfa5f
