[INFO] cloning repository https://github.com/WBRK-dev/opengl-test
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/WBRK-dev/opengl-test" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWBRK-dev%2Fopengl-test", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWBRK-dev%2Fopengl-test'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] eb7b2cd8dd8f791ad9b56008d99247c9a531b20e
[INFO] testing WBRK-dev/opengl-test against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWBRK-dev%2Fopengl-test" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/WBRK-dev/opengl-test
[INFO] finished tweaking git repo https://github.com/WBRK-dev/opengl-test
[INFO] tweaked toml for git repo https://github.com/WBRK-dev/opengl-test written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/WBRK-dev/opengl-test on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/WBRK-dev/opengl-test 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fbb6716255557494fd81ee519410d9c35020b6d28eb6789f5f54c92718431c02
[INFO] running `Command { std: "docker" "start" "-a" "fbb6716255557494fd81ee519410d9c35020b6d28eb6789f5f54c92718431c02", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fbb6716255557494fd81ee519410d9c35020b6d28eb6789f5f54c92718431c02", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fbb6716255557494fd81ee519410d9c35020b6d28eb6789f5f54c92718431c02", kill_on_drop: false }`
[INFO] [stdout] fbb6716255557494fd81ee519410d9c35020b6d28eb6789f5f54c92718431c02
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3996fb163a3fec4d815705836785506d1a182a39f3d700ceaf1126a1894ec390
[INFO] running `Command { std: "docker" "start" "-a" "3996fb163a3fec4d815705836785506d1a182a39f3d700ceaf1126a1894ec390", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling xml-rs v0.8.28
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling cc v1.2.45
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling bytemuck v1.24.0
[INFO] [stderr]    Compiling scoped-tls v1.0.1
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling servo-fontconfig-sys v5.1.0
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling crossfont v0.5.2
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]    Compiling foreign-types-shared v0.3.1
[INFO] [stderr]    Compiling vec_map v0.8.2
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling dlib v0.5.2
[INFO] [stderr]    Compiling xcursor v0.3.10
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]    Compiling tiny-skia-path v0.7.0
[INFO] [stderr]    Compiling safe_arch v0.5.2
[INFO] [stderr]    Compiling arrayvec v0.5.2
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling cty v0.2.2
[INFO] [stderr]    Compiling weezl v0.1.12
[INFO] [stderr]    Compiling imgref v1.12.0
[INFO] [stderr]    Compiling zune-jpeg v0.4.21
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling flate2 v1.1.5
[INFO] [stderr]    Compiling loop9 v0.1.5
[INFO] [stderr]    Compiling raw-window-handle v0.4.3
[INFO] [stderr]    Compiling avif-serialize v0.8.6
[INFO] [stderr]    Compiling pxfm v0.1.25
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling rgb v0.8.52
[INFO] [stderr]    Compiling bit_field v0.10.3
[INFO] [stderr]    Compiling lebe v0.5.3
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling raw-window-handle v0.5.2
[INFO] [stderr]    Compiling gif v0.13.3
[INFO] [stderr]    Compiling png v0.18.0
[INFO] [stderr]    Compiling nix v0.24.3
[INFO] [stderr]    Compiling nix v0.25.1
[INFO] [stderr]    Compiling memmap2 v0.5.10
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling freetype-sys v0.13.1
[INFO] [stderr]    Compiling expat-sys v2.1.6
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.6
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling servo-fontconfig v0.5.1
[INFO] [stderr]    Compiling freetype-rs v0.26.0
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]    Compiling tiny-skia v0.7.0
[INFO] [stderr]    Compiling wayland-commons v0.29.5
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]    Compiling shared_library v0.1.9
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling image-webp v0.2.4
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling libloading v0.7.4
[INFO] [stderr]    Compiling glm v0.3.0
[INFO] [stderr]    Compiling moxcms v0.7.9
[INFO] [stderr]    Compiling maybe-rayon v0.1.1
[INFO] [stderr]    Compiling wayland-cursor v0.29.5
[INFO] [stderr]    Compiling wayland-egl v0.29.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling foreign-types-macros v0.2.3
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling profiling v1.0.17
[INFO] [stderr]    Compiling fax v0.2.6
[INFO] [stderr]    Compiling foreign-types v0.5.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling equator v0.4.2
[INFO] [stderr]    Compiling calloop v0.10.6
[INFO] [stderr]    Compiling aligned-vec v0.6.4
[INFO] [stderr]    Compiling v_frame v0.3.9
[INFO] [stderr]    Compiling av1-grain v0.2.5
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling exr v1.74.0
[INFO] [stderr]    Compiling tiff v0.10.3
[INFO] [stderr]    Compiling ravif v0.11.20
[INFO] [stderr]    Compiling image v0.25.8
[INFO] [stderr]    Compiling sctk-adwaita v0.4.3
[INFO] [stderr]    Compiling winit v0.27.5
[INFO] [stderr]    Compiling glutin v0.29.1
[INFO] [stderr]    Compiling opengl-test v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenBuffers` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         gl::GenBuffers(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     pub unsafe fn new(target: GLuint) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         gl::BindBuffer(self.target, self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         gl::BindBuffer(self.target, 0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub unsafe fn unbind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::buffer::Buffer::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub unsafe fn set_data<D>(&self, data: &[D], usage: GLuint) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::slice::<impl [T]>::align_to` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let (_, data_bytes, _) = data.align_to::<u8>();
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BufferData` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | /         gl::BufferData(
[INFO] [stdout] 27 | |             self.target,
[INFO] [stdout] 28 | |             data_bytes.len() as GLsizeiptr,
[INFO] [stdout] 29 | |             data_bytes.as_ptr() as *const _,
[INFO] [stdout] 30 | |             usage,
[INFO] [stdout] 31 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CreateShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |             id: gl::CreateShader(shader_type),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub unsafe fn new(source_code: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::ShaderSource` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         gl::ShaderSource(shader.id, 1, &source_code.as_ptr(), ptr::null());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CompileShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         gl::CompileShader(shader.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         gl::GetShaderiv(shader.id, gl::COMPILE_STATUS, &mut success);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |             gl::GetShaderiv(shader.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderInfoLog` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | /             gl::GetShaderInfoLog(
[INFO] [stdout] 35 | |                 shader.id,
[INFO] [stdout] 36 | |                 error_log_size,
[INFO] [stdout] 37 | |                 &mut error_log_size,
[INFO] [stdout] 38 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stdout] 39 | |             );
[INFO] [stdout]    | |_____________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             error_log.set_len(error_log_size as usize);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::shader::Shader::new` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         Self::new(content.as_str(), shader_type)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub unsafe fn from_file(path: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CreateProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |             id: gl::CreateProgram(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub unsafe fn new(shaders: &[Shader]) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::AttachShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |             gl::AttachShader(program.id, shader.id);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::LinkProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         gl::LinkProgram(program.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         gl::GetProgramiv(program.id, gl::LINK_STATUS, &mut success);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |             gl::GetProgramiv(program.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramInfoLog` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 | /             gl::GetProgramInfoLog(
[INFO] [stdout] 37 | |                 program.id,
[INFO] [stdout] 38 | |                 error_log_size,
[INFO] [stdout] 39 | |                 &mut error_log_size,
[INFO] [stdout] 40 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stdout] 41 | |             );
[INFO] [stdout]    | |_____________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |             error_log.set_len(error_log_size as usize);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::UseProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         gl::UseProgram(self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub unsafe fn apply(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetAttribLocation` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 |         Ok(gl::GetAttribLocation(self.id, attrib.as_ptr()) as GLuint)
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub unsafe fn get_attrib_location(&self, attrib: &str) -> Result<GLuint, NulError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetUniformLocation` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |         Ok(gl::GetUniformLocation(self.id, attrib.as_ptr()))
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub unsafe fn get_uniform_attrib_location(&self, attrib: &str) -> Result<GLint, NulError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenTextures` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         gl::GenTextures(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub unsafe fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindTexture` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         gl::BindTexture(gl::TEXTURE_2D, self.id)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::texture::Texture::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub unsafe fn load(&self, path: &Path) -> Result<(), ImageError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::TexImage2D` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | /         gl::TexImage2D(
[INFO] [stdout] 26 | |             gl::TEXTURE_2D,
[INFO] [stdout] 27 | |             0,
[INFO] [stdout] 28 | |             gl::RGBA as i32,
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |             img.as_bytes().as_ptr() as *const _,
[INFO] [stdout] 35 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenVertexArrays` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |         gl::GenVertexArrays(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 |     pub unsafe fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |         gl::BindVertexArray(self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         gl::BindVertexArray(0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub unsafe fn unbind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::vertex_array::VertexArray::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     pub unsafe fn set_attribute<V: Sized>(
[INFO] [stdout] 23 | |         &self,
[INFO] [stdout] 24 | |         attrib_pos: GLuint,
[INFO] [stdout] 25 | |         components: GLint,
[INFO] [stdout] 26 | |         offset: GLint,
[INFO] [stdout] 27 | |     ) {
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::VertexAttribPointer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | /         gl::VertexAttribPointer(
[INFO] [stdout] 30 | |             attrib_pos,
[INFO] [stdout] 31 | |             components,
[INFO] [stdout] 32 | |             gl::FLOAT,
[INFO] [stdout] ...  |
[INFO] [stdout] 35 | |             offset as *const _,
[INFO] [stdout] 36 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::EnableVertexAttribArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         gl::EnableVertexAttribArray(attrib_pos);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 35s
[INFO] running `Command { std: "docker" "inspect" "3996fb163a3fec4d815705836785506d1a182a39f3d700ceaf1126a1894ec390", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3996fb163a3fec4d815705836785506d1a182a39f3d700ceaf1126a1894ec390", kill_on_drop: false }`
[INFO] [stdout] 3996fb163a3fec4d815705836785506d1a182a39f3d700ceaf1126a1894ec390
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4b94ac0df7844f176663638974ed0ad52bfbc27063f8a9cbdc663fd5a006b0ac
[INFO] running `Command { std: "docker" "start" "-a" "4b94ac0df7844f176663638974ed0ad52bfbc27063f8a9cbdc663fd5a006b0ac", kill_on_drop: false }`
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenBuffers` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         gl::GenBuffers(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     pub unsafe fn new(target: GLuint) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         gl::BindBuffer(self.target, self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         gl::BindBuffer(self.target, 0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub unsafe fn unbind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::buffer::Buffer::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub unsafe fn set_data<D>(&self, data: &[D], usage: GLuint) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::slice::<impl [T]>::align_to` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let (_, data_bytes, _) = data.align_to::<u8>();
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BufferData` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | /         gl::BufferData(
[INFO] [stdout] 27 | |             self.target,
[INFO] [stdout] 28 | |             data_bytes.len() as GLsizeiptr,
[INFO] [stdout] 29 | |             data_bytes.as_ptr() as *const _,
[INFO] [stdout] 30 | |             usage,
[INFO] [stdout] 31 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CreateShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |             id: gl::CreateShader(shader_type),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub unsafe fn new(source_code: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::ShaderSource` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         gl::ShaderSource(shader.id, 1, &source_code.as_ptr(), ptr::null());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CompileShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         gl::CompileShader(shader.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         gl::GetShaderiv(shader.id, gl::COMPILE_STATUS, &mut success);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |             gl::GetShaderiv(shader.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderInfoLog` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | /             gl::GetShaderInfoLog(
[INFO] [stdout] 35 | |                 shader.id,
[INFO] [stdout] 36 | |                 error_log_size,
[INFO] [stdout] 37 | |                 &mut error_log_size,
[INFO] [stdout] 38 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stdout] 39 | |             );
[INFO] [stdout]    | |_____________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             error_log.set_len(error_log_size as usize);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::shader::Shader::new` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         Self::new(content.as_str(), shader_type)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub unsafe fn from_file(path: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CreateProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |             id: gl::CreateProgram(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub unsafe fn new(shaders: &[Shader]) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::AttachShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |             gl::AttachShader(program.id, shader.id);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::LinkProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         gl::LinkProgram(program.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         gl::GetProgramiv(program.id, gl::LINK_STATUS, &mut success);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |             gl::GetProgramiv(program.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramInfoLog` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 | /             gl::GetProgramInfoLog(
[INFO] [stdout] 37 | |                 program.id,
[INFO] [stdout] 38 | |                 error_log_size,
[INFO] [stdout] 39 | |                 &mut error_log_size,
[INFO] [stdout] 40 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stdout] 41 | |             );
[INFO] [stdout]    | |_____________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |             error_log.set_len(error_log_size as usize);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::UseProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         gl::UseProgram(self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub unsafe fn apply(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetAttribLocation` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 |         Ok(gl::GetAttribLocation(self.id, attrib.as_ptr()) as GLuint)
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub unsafe fn get_attrib_location(&self, attrib: &str) -> Result<GLuint, NulError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetUniformLocation` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |         Ok(gl::GetUniformLocation(self.id, attrib.as_ptr()))
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub unsafe fn get_uniform_attrib_location(&self, attrib: &str) -> Result<GLint, NulError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenTextures` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         gl::GenTextures(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub unsafe fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindTexture` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         gl::BindTexture(gl::TEXTURE_2D, self.id)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::texture::Texture::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub unsafe fn load(&self, path: &Path) -> Result<(), ImageError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::TexImage2D` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | /         gl::TexImage2D(
[INFO] [stdout] 26 | |             gl::TEXTURE_2D,
[INFO] [stdout] 27 | |             0,
[INFO] [stdout] 28 | |             gl::RGBA as i32,
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |             img.as_bytes().as_ptr() as *const _,
[INFO] [stdout] 35 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenVertexArrays` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |         gl::GenVertexArrays(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 |     pub unsafe fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |         gl::BindVertexArray(self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         gl::BindVertexArray(0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub unsafe fn unbind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::vertex_array::VertexArray::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     pub unsafe fn set_attribute<V: Sized>(
[INFO] [stdout] 23 | |         &self,
[INFO] [stdout] 24 | |         attrib_pos: GLuint,
[INFO] [stdout] 25 | |         components: GLint,
[INFO] [stdout] 26 | |         offset: GLint,
[INFO] [stdout] 27 | |     ) {
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::VertexAttribPointer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | /         gl::VertexAttribPointer(
[INFO] [stdout] 30 | |             attrib_pos,
[INFO] [stdout] 31 | |             components,
[INFO] [stdout] 32 | |             gl::FLOAT,
[INFO] [stdout] ...  |
[INFO] [stdout] 35 | |             offset as *const _,
[INFO] [stdout] 36 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::EnableVertexAttribArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         gl::EnableVertexAttribArray(attrib_pos);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]    Compiling opengl-test v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenBuffers` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         gl::GenBuffers(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     pub unsafe fn new(target: GLuint) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         gl::BindBuffer(self.target, self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         gl::BindBuffer(self.target, 0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub unsafe fn unbind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::buffer::Buffer::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/buffer.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub unsafe fn set_data<D>(&self, data: &[D], usage: GLuint) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::slice::<impl [T]>::align_to` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let (_, data_bytes, _) = data.align_to::<u8>();
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BufferData` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/buffer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | /         gl::BufferData(
[INFO] [stdout] 27 | |             self.target,
[INFO] [stdout] 28 | |             data_bytes.len() as GLsizeiptr,
[INFO] [stdout] 29 | |             data_bytes.as_ptr() as *const _,
[INFO] [stdout] 30 | |             usage,
[INFO] [stdout] 31 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CreateShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |             id: gl::CreateShader(shader_type),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub unsafe fn new(source_code: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::ShaderSource` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         gl::ShaderSource(shader.id, 1, &source_code.as_ptr(), ptr::null());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CompileShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         gl::CompileShader(shader.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         gl::GetShaderiv(shader.id, gl::COMPILE_STATUS, &mut success);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |             gl::GetShaderiv(shader.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetShaderInfoLog` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | /             gl::GetShaderInfoLog(
[INFO] [stdout] 35 | |                 shader.id,
[INFO] [stdout] 36 | |                 error_log_size,
[INFO] [stdout] 37 | |                 &mut error_log_size,
[INFO] [stdout] 38 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stdout] 39 | |             );
[INFO] [stdout]    | |_____________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             error_log.set_len(error_log_size as usize);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::shader::Shader::new` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         Self::new(content.as_str(), shader_type)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub unsafe fn from_file(path: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::CreateProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |             id: gl::CreateProgram(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub unsafe fn new(shaders: &[Shader]) -> Result<Self, ShaderError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::AttachShader` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |             gl::AttachShader(program.id, shader.id);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::LinkProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |         gl::LinkProgram(program.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         gl::GetProgramiv(program.id, gl::LINK_STATUS, &mut success);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |             gl::GetProgramiv(program.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetProgramInfoLog` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 | /             gl::GetProgramInfoLog(
[INFO] [stdout] 37 | |                 program.id,
[INFO] [stdout] 38 | |                 error_log_size,
[INFO] [stdout] 39 | |                 &mut error_log_size,
[INFO] [stdout] 40 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stdout] 41 | |             );
[INFO] [stdout]    | |_____________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |             error_log.set_len(error_log_size as usize);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::UseProgram` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         gl::UseProgram(self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub unsafe fn apply(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetAttribLocation` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 |         Ok(gl::GetAttribLocation(self.id, attrib.as_ptr()) as GLuint)
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub unsafe fn get_attrib_location(&self, attrib: &str) -> Result<GLuint, NulError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GetUniformLocation` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/shader_program.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |         Ok(gl::GetUniformLocation(self.id, attrib.as_ptr()))
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/shader_program.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub unsafe fn get_uniform_attrib_location(&self, attrib: &str) -> Result<GLint, NulError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenTextures` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         gl::GenTextures(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub unsafe fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindTexture` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         gl::BindTexture(gl::TEXTURE_2D, self.id)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::texture::Texture::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/texture.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub unsafe fn load(&self, path: &Path) -> Result<(), ImageError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::TexImage2D` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/texture.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | /         gl::TexImage2D(
[INFO] [stdout] 26 | |             gl::TEXTURE_2D,
[INFO] [stdout] 27 | |             0,
[INFO] [stdout] 28 | |             gl::RGBA as i32,
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |             img.as_bytes().as_ptr() as *const _,
[INFO] [stdout] 35 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::GenVertexArrays` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |         gl::GenVertexArrays(1, &mut id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 |     pub unsafe fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |         gl::BindVertexArray(self.id);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub unsafe fn bind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         gl::BindVertexArray(0);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub unsafe fn unbind(&self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `shaders::vertex_array::VertexArray::bind` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         self.bind();
[INFO] [stdout]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/shaders/vertex_array.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     pub unsafe fn set_attribute<V: Sized>(
[INFO] [stdout] 23 | |         &self,
[INFO] [stdout] 24 | |         attrib_pos: GLuint,
[INFO] [stdout] 25 | |         components: GLint,
[INFO] [stdout] 26 | |         offset: GLint,
[INFO] [stdout] 27 | |     ) {
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::VertexAttribPointer` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | /         gl::VertexAttribPointer(
[INFO] [stdout] 30 | |             attrib_pos,
[INFO] [stdout] 31 | |             components,
[INFO] [stdout] 32 | |             gl::FLOAT,
[INFO] [stdout] ...  |
[INFO] [stdout] 35 | |             offset as *const _,
[INFO] [stdout] 36 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `gl::EnableVertexAttribArray` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shaders/vertex_array.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         gl::EnableVertexAttribArray(attrib_pos);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.68s
[INFO] running `Command { std: "docker" "inspect" "4b94ac0df7844f176663638974ed0ad52bfbc27063f8a9cbdc663fd5a006b0ac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b94ac0df7844f176663638974ed0ad52bfbc27063f8a9cbdc663fd5a006b0ac", kill_on_drop: false }`
[INFO] [stdout] 4b94ac0df7844f176663638974ed0ad52bfbc27063f8a9cbdc663fd5a006b0ac
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a539037fc9491d639ce1b126a556646d4d510581c7301ff5995e4077f4150549
[INFO] running `Command { std: "docker" "start" "-a" "a539037fc9491d639ce1b126a556646d4d510581c7301ff5995e4077f4150549", kill_on_drop: false }`
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GenBuffers` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/buffer.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 |         gl::GenBuffers(1, &mut id);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/buffer.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr]  9 |     pub unsafe fn new(target: GLuint) -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/buffer.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 |         gl::BindBuffer(self.target, self.id);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/buffer.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub unsafe fn bind(&self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::BindBuffer` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/buffer.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 20 |         gl::BindBuffer(self.target, 0);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/buffer.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub unsafe fn unbind(&self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `shaders::buffer::Buffer::bind` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/buffer.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |         self.bind();
[INFO] [stderr]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/buffer.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub unsafe fn set_data<D>(&self, data: &[D], usage: GLuint) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `core::slice::<impl [T]>::align_to` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/buffer.rs:25:34
[INFO] [stderr]    |
[INFO] [stderr] 25 |         let (_, data_bytes, _) = data.align_to::<u8>();
[INFO] [stderr]    |                                  ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::BufferData` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/buffer.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 | /         gl::BufferData(
[INFO] [stderr] 27 | |             self.target,
[INFO] [stderr] 28 | |             data_bytes.len() as GLsizeiptr,
[INFO] [stderr] 29 | |             data_bytes.as_ptr() as *const _,
[INFO] [stderr] 30 | |             usage,
[INFO] [stderr] 31 | |         );
[INFO] [stderr]    | |_________^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::CreateShader` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader.rs:17:17
[INFO] [stderr]    |
[INFO] [stderr] 17 |             id: gl::CreateShader(shader_type),
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/shader.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub unsafe fn new(source_code: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::ShaderSource` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 21 |         gl::ShaderSource(shader.id, 1, &source_code.as_ptr(), ptr::null());
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::CompileShader` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader.rs:22:9
[INFO] [stderr]    |
[INFO] [stderr] 22 |         gl::CompileShader(shader.id);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |         gl::GetShaderiv(shader.id, gl::COMPILE_STATUS, &mut success);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GetShaderiv` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader.rs:32:13
[INFO] [stderr]    |
[INFO] [stderr] 32 |             gl::GetShaderiv(shader.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GetShaderInfoLog` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader.rs:34:13
[INFO] [stderr]    |
[INFO] [stderr] 34 | /             gl::GetShaderInfoLog(
[INFO] [stderr] 35 | |                 shader.id,
[INFO] [stderr] 36 | |                 error_log_size,
[INFO] [stderr] 37 | |                 &mut error_log_size,
[INFO] [stderr] 38 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stderr] 39 | |             );
[INFO] [stderr]    | |_____________^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader.rs:41:13
[INFO] [stderr]    |
[INFO] [stderr] 41 |             error_log.set_len(error_log_size as usize);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `shaders::shader::Shader::new` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 53 |         Self::new(content.as_str(), shader_type)
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/shader.rs:47:5
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub unsafe fn from_file(path: &str, shader_type: GLenum) -> Result<Self, ShaderError> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::CreateProgram` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader_program.rs:15:17
[INFO] [stderr]    |
[INFO] [stderr] 15 |             id: gl::CreateProgram(),
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/shader_program.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub unsafe fn new(shaders: &[Shader]) -> Result<Self, ShaderError> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::AttachShader` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader_program.rs:20:13
[INFO] [stderr]    |
[INFO] [stderr] 20 |             gl::AttachShader(program.id, shader.id);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::LinkProgram` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader_program.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |         gl::LinkProgram(program.id);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader_program.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 28 |         gl::GetProgramiv(program.id, gl::LINK_STATUS, &mut success);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GetProgramiv` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader_program.rs:34:13
[INFO] [stderr]    |
[INFO] [stderr] 34 |             gl::GetProgramiv(program.id, gl::INFO_LOG_LENGTH, &mut error_log_size);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GetProgramInfoLog` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader_program.rs:36:13
[INFO] [stderr]    |
[INFO] [stderr] 36 | /             gl::GetProgramInfoLog(
[INFO] [stderr] 37 | |                 program.id,
[INFO] [stderr] 38 | |                 error_log_size,
[INFO] [stderr] 39 | |                 &mut error_log_size,
[INFO] [stderr] 40 | |                 error_log.as_mut_ptr() as *mut _,
[INFO] [stderr] 41 | |             );
[INFO] [stderr]    | |_____________^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader_program.rs:43:13
[INFO] [stderr]    |
[INFO] [stderr] 43 |             error_log.set_len(error_log_size as usize);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::UseProgram` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader_program.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 51 |         gl::UseProgram(self.id);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/shader_program.rs:49:5
[INFO] [stderr]    |
[INFO] [stderr] 49 |     pub unsafe fn apply(&self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GetAttribLocation` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader_program.rs:56:12
[INFO] [stderr]    |
[INFO] [stderr] 56 |         Ok(gl::GetAttribLocation(self.id, attrib.as_ptr()) as GLuint)
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/shader_program.rs:54:5
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub unsafe fn get_attrib_location(&self, attrib: &str) -> Result<GLuint, NulError> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GetUniformLocation` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/shader_program.rs:61:12
[INFO] [stderr]    |
[INFO] [stderr] 61 |         Ok(gl::GetUniformLocation(self.id, attrib.as_ptr()))
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/shader_program.rs:59:5
[INFO] [stderr]    |
[INFO] [stderr] 59 |     pub unsafe fn get_uniform_attrib_location(&self, attrib: &str) -> Result<GLint, NulError> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GenTextures` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/texture.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |         gl::GenTextures(1, &mut id);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/texture.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     pub unsafe fn new() -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::BindTexture` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/texture.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |         gl::BindTexture(gl::TEXTURE_2D, self.id)
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/texture.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub unsafe fn bind(&self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `shaders::texture::Texture::bind` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/texture.rs:22:9
[INFO] [stderr]    |
[INFO] [stderr] 22 |         self.bind();
[INFO] [stderr]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/texture.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub unsafe fn load(&self, path: &Path) -> Result<(), ImageError> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::TexImage2D` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/texture.rs:25:9
[INFO] [stderr]    |
[INFO] [stderr] 25 | /         gl::TexImage2D(
[INFO] [stderr] 26 | |             gl::TEXTURE_2D,
[INFO] [stderr] 27 | |             0,
[INFO] [stderr] 28 | |             gl::RGBA as i32,
[INFO] [stderr] ...  |
[INFO] [stderr] 34 | |             img.as_bytes().as_ptr() as *const _,
[INFO] [stderr] 35 | |         );
[INFO] [stderr]    | |_________^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::GenVertexArrays` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/vertex_array.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |         gl::GenVertexArrays(1, &mut id);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/vertex_array.rs:8:5
[INFO] [stderr]    |
[INFO] [stderr]  8 |     pub unsafe fn new() -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/vertex_array.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 |         gl::BindVertexArray(self.id);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/vertex_array.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub unsafe fn bind(&self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::BindVertexArray` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/vertex_array.rs:19:9
[INFO] [stderr]    |
[INFO] [stderr] 19 |         gl::BindVertexArray(0);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/vertex_array.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 |     pub unsafe fn unbind(&self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `shaders::vertex_array::VertexArray::bind` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/vertex_array.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 28 |         self.bind();
[INFO] [stderr]    |         ^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]   --> src/shaders/vertex_array.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | /     pub unsafe fn set_attribute<V: Sized>(
[INFO] [stderr] 23 | |         &self,
[INFO] [stderr] 24 | |         attrib_pos: GLuint,
[INFO] [stderr] 25 | |         components: GLint,
[INFO] [stderr] 26 | |         offset: GLint,
[INFO] [stderr] 27 | |     ) {
[INFO] [stderr]    | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::VertexAttribPointer` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/vertex_array.rs:29:9
[INFO] [stderr]    |
[INFO] [stderr] 29 | /         gl::VertexAttribPointer(
[INFO] [stderr] 30 | |             attrib_pos,
[INFO] [stderr] 31 | |             components,
[INFO] [stderr] 32 | |             gl::FLOAT,
[INFO] [stderr] ...  |
[INFO] [stderr] 35 | |             offset as *const _,
[INFO] [stderr] 36 | |         );
[INFO] [stderr]    | |_________^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: call to unsafe function `gl::EnableVertexAttribArray` is unsafe and requires unsafe block
[INFO] [stderr]   --> src/shaders/vertex_array.rs:37:9
[INFO] [stderr]    |
[INFO] [stderr] 37 |         gl::EnableVertexAttribArray(attrib_pos);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0133`.
[INFO] [stderr] warning: `opengl-test` (lib) generated 34 warnings (run `cargo fix --lib -p opengl-test` to apply 17 suggestions)
[INFO] [stderr] warning: `opengl-test` (lib test) generated 34 warnings (34 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.32s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/opengl_test-b8440eee54436b79)
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests opengl_test
[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] [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] running `Command { std: "docker" "inspect" "a539037fc9491d639ce1b126a556646d4d510581c7301ff5995e4077f4150549", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a539037fc9491d639ce1b126a556646d4d510581c7301ff5995e4077f4150549", kill_on_drop: false }`
[INFO] [stdout] a539037fc9491d639ce1b126a556646d4d510581c7301ff5995e4077f4150549
