[INFO] cloning repository https://github.com/dobrakmato/rust-brainfuck [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dobrakmato/rust-brainfuck" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdobrakmato%2Frust-brainfuck", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdobrakmato%2Frust-brainfuck'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8fa3572c26c888987b9519d610f3b59b9d5aefee [INFO] testing dobrakmato/rust-brainfuck against 1.98.0-beta.8+cargoflags=--release for beta-release-1.99-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdobrakmato%2Frust-brainfuck" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/dobrakmato/rust-brainfuck [INFO] finished tweaking git repo https://github.com/dobrakmato/rust-brainfuck [INFO] tweaked toml for git repo https://github.com/dobrakmato/rust-brainfuck written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/dobrakmato/rust-brainfuck on toolchain 1.98.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/dobrakmato/rust-brainfuck already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded matches v0.1.8 [INFO] [stderr] Downloaded memmap v0.7.0 [INFO] [stderr] Downloaded redox_syscall v0.1.54 [INFO] [stderr] Downloaded textwrap v0.11.0 [INFO] [stderr] Downloaded strsim v0.8.0 [INFO] [stderr] Downloaded atty v0.2.11 [INFO] [stderr] Downloaded redox_termios v0.1.1 [INFO] [stderr] Downloaded vec_map v0.8.1 [INFO] [stderr] Downloaded unicode-width v0.1.5 [INFO] [stderr] Downloaded bitflags v1.2.1 [INFO] [stderr] Downloaded termion v1.5.1 [INFO] [stderr] Downloaded ansi_term v0.11.0 [INFO] [stderr] Downloaded clap v2.33.3 [INFO] [stderr] Downloaded libc v0.2.51 [INFO] [stderr] Downloaded winapi v0.3.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921 [INFO] running `Command { std: "docker" "start" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.51 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling unicode-width v0.1.5 [INFO] [stderr] Compiling vec_map v0.8.1 [INFO] [stderr] Compiling ansi_term v0.11.0 [INFO] [stderr] Compiling strsim v0.8.0 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling atty v0.2.11 [INFO] [stderr] Compiling memmap v0.7.0 [INFO] [stderr] Compiling clap v2.33.3 [INFO] [stderr] Compiling bfjit v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/main.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `docsrs`, `feature`, and `test` and 32 more [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/main.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/main.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `mul_unsigned` and `mov_to_mem_offset` are never used [INFO] [stdout] --> src/assembler.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl<'a> Assembler<'a> { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn mul_unsigned(&mut self, reg: X64Register) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub fn mov_to_mem_offset(&mut self, to_memory: X64Register, from_reg: X64Register, offset: i8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `1` is never read [INFO] [stdout] --> src/ir.rs:24:25 [INFO] [stdout] | [INFO] [stdout] 24 | JumpIfNotZero(Link, Link), [INFO] [stdout] | ------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `IrOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 24 - JumpIfNotZero(Link, Link), [INFO] [stdout] 24 + JumpIfNotZero(Link, ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Noop` is never constructed [INFO] [stdout] --> src/ir.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum IrOp { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 11 | Noop(Link), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IrOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ir.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn iter(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 246 | pub fn iter(&self) -> Iter<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/compiler.rs:30:34 [INFO] [stdout] | [INFO] [stdout] 30 | putchar_ptr: putchar as usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(function_casts_as_integer)]` on by default [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 30 | putchar_ptr: putchar as *const () as usize, [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/compiler.rs:31:34 [INFO] [stdout] | [INFO] [stdout] 31 | getchar_ptr: getchar as usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 31 | getchar_ptr: getchar as *const () as usize, [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `extern` fn uses type `Brainfuck`, which is not FFI-safe [INFO] [stdout] --> src/compiler.rs:146:31 [INFO] [stdout] | [INFO] [stdout] 146 | pub extern "C" fn execute(self) { [INFO] [stdout] | ^^^^ not FFI-safe [INFO] [stdout] | [INFO] [stdout] = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct [INFO] [stdout] = note: this struct has unspecified layout [INFO] [stdout] note: the type is defined here [INFO] [stdout] --> src/compiler.rs:126:1 [INFO] [stdout] | [INFO] [stdout] 126 | pub struct Brainfuck { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(improper_ctypes_definitions)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 12.99s [INFO] running `Command { std: "docker" "inspect" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling matches v0.1.8 [INFO] [stderr] Compiling bfjit v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/main.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `docsrs`, `feature`, and `test` and 32 more [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/main.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stdout] --> src/main.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | #[cfg_attr(tarpaulin, skip)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `1` is never read [INFO] [stdout] --> src/ir.rs:24:25 [INFO] [stdout] | [INFO] [stdout] 24 | JumpIfNotZero(Link, Link), [INFO] [stdout] | ------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `IrOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 24 - JumpIfNotZero(Link, Link), [INFO] [stdout] 24 + JumpIfNotZero(Link, ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ir.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn iter(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 246 | pub fn iter(&self) -> Iter<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/compiler.rs:30:34 [INFO] [stdout] | [INFO] [stdout] 30 | putchar_ptr: putchar as usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(function_casts_as_integer)]` on by default [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 30 | putchar_ptr: putchar as *const () as usize, [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/compiler.rs:31:34 [INFO] [stdout] | [INFO] [stdout] 31 | getchar_ptr: getchar as usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 31 | getchar_ptr: getchar as *const () as usize, [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `extern` fn uses type `Brainfuck`, which is not FFI-safe [INFO] [stdout] --> src/compiler.rs:146:31 [INFO] [stdout] | [INFO] [stdout] 146 | pub extern "C" fn execute(self) { [INFO] [stdout] | ^^^^ not FFI-safe [INFO] [stdout] | [INFO] [stdout] = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct [INFO] [stdout] = note: this struct has unspecified layout [INFO] [stdout] note: the type is defined here [INFO] [stdout] --> src/compiler.rs:126:1 [INFO] [stdout] | [INFO] [stdout] 126 | pub struct Brainfuck { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(improper_ctypes_definitions)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/compiler.rs:187:75 [INFO] [stdout] | [INFO] [stdout] 187 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as usize }); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 187 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as *const () as usize, getchar_ptr: getchar as usize }); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/compiler.rs:187:106 [INFO] [stdout] | [INFO] [stdout] 187 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as usize }); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 187 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as *const () as usize }); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/compiler.rs:208:75 [INFO] [stdout] | [INFO] [stdout] 208 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as usize }); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 208 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as *const () as usize, getchar_ptr: getchar as usize }); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/compiler.rs:208:106 [INFO] [stdout] | [INFO] [stdout] 208 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as usize }); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 208 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as *const () as usize }); [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/interpreter.rs:71:34 [INFO] [stdout] | [INFO] [stdout] 71 | fn make_interpreter(program: &Program) -> Interpreter { [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 71 | fn make_interpreter(program: &Program) -> Interpreter<'_, Stdin, Stdout> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 2.08s [INFO] running `Command { std: "docker" "inspect" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stderr] --> src/main.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | #[cfg_attr(tarpaulin, skip)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: expected names are: `docsrs`, `feature`, and `test` and 32 more [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stderr] --> src/main.rs:71:12 [INFO] [stderr] | [INFO] [stderr] 71 | #[cfg_attr(tarpaulin, skip)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `tarpaulin` [INFO] [stderr] --> src/main.rs:90:12 [INFO] [stderr] | [INFO] [stderr] 90 | #[cfg_attr(tarpaulin, skip)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tarpaulin)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: field `1` is never read [INFO] [stderr] --> src/ir.rs:24:25 [INFO] [stderr] | [INFO] [stderr] 24 | JumpIfNotZero(Link, Link), [INFO] [stderr] | ------------- ^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `IrOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 24 - JumpIfNotZero(Link, Link), [INFO] [stderr] 24 + JumpIfNotZero(Link, ()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/ir.rs:246:17 [INFO] [stderr] | [INFO] [stderr] 246 | pub fn iter(&self) -> Iter { [INFO] [stderr] | ^^^^^ ^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 246 | pub fn iter(&self) -> Iter<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/compiler.rs:30:34 [INFO] [stderr] | [INFO] [stderr] 30 | putchar_ptr: putchar as usize, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(function_casts_as_integer)]` on by default [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 30 | putchar_ptr: putchar as *const () as usize, [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/compiler.rs:31:34 [INFO] [stderr] | [INFO] [stderr] 31 | getchar_ptr: getchar as usize, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 31 | getchar_ptr: getchar as *const () as usize, [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: `extern` fn uses type `Brainfuck`, which is not FFI-safe [INFO] [stderr] --> src/compiler.rs:146:31 [INFO] [stderr] | [INFO] [stderr] 146 | pub extern "C" fn execute(self) { [INFO] [stderr] | ^^^^ not FFI-safe [INFO] [stderr] | [INFO] [stderr] = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct [INFO] [stderr] = note: this struct has unspecified layout [INFO] [stderr] note: the type is defined here [INFO] [stderr] --> src/compiler.rs:126:1 [INFO] [stderr] | [INFO] [stderr] 126 | pub struct Brainfuck { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = note: `#[warn(improper_ctypes_definitions)]` on by default [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/compiler.rs:187:75 [INFO] [stderr] | [INFO] [stderr] 187 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as usize }); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 187 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as *const () as usize, getchar_ptr: getchar as usize }); [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/compiler.rs:187:106 [INFO] [stderr] | [INFO] [stderr] 187 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as usize }); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 187 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as *const () as usize }); [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/compiler.rs:208:75 [INFO] [stderr] | [INFO] [stderr] 208 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as usize }); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 208 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as *const () as usize, getchar_ptr: getchar as usize }); [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/compiler.rs:208:106 [INFO] [stderr] | [INFO] [stderr] 208 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as usize }); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 208 | let brainfuck = ir_code.compile(IoFn { putchar_ptr: value_putchar as usize, getchar_ptr: getchar as *const () as usize }); [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/interpreter.rs:71:34 [INFO] [stderr] | [INFO] [stderr] 71 | fn make_interpreter(program: &Program) -> Interpreter { [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 71 | fn make_interpreter(program: &Program) -> Interpreter<'_, Stdin, Stdout> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: `bfjit` (bin "bfjit" test) generated 13 warnings (run `cargo fix --bin "bfjit" -p bfjit --tests` to apply 8 suggestions) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.10s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/bfjit-7727b3f91cde6f22) [INFO] [stdout] [INFO] [stdout] running 46 tests [INFO] [stdout] test assembler::test::add_to_mem_offset ... ok [INFO] [stdout] test assembler::test::call ... ok [INFO] [stdout] test assembler::test::add_indirect ... ok [INFO] [stdout] test assembler::test::add ... ok [INFO] [stdout] test assembler::test::je ... ok [INFO] [stdout] test assembler::test::cmp_indirect ... ok [INFO] [stdout] test assembler::test::jne ... ok [INFO] [stdout] test assembler::test::mov ... ok [INFO] [stdout] test assembler::test::mov_to_memory ... ok [INFO] [stdout] test assembler::test::mov_to_reg ... ok [INFO] [stdout] test assembler::test::mul_signed ... ok [INFO] [stdout] test assembler::test::mul_unsigned ... ok [INFO] [stdout] test assembler::test::pop ... ok [INFO] [stdout] test assembler::test::push ... ok [INFO] [stdout] test assembler::test::ret ... ok [INFO] [stdout] test assembler::test::sub ... ok [INFO] [stdout] test assembler::test::sub_indirect ... ok [INFO] [stdout] test brainfuck::test::check_supported_ops ... ok [INFO] [stdout] test brainfuck::test::find_matching_parentheses ... ok [INFO] [stdout] test brainfuck::test::ignores_comments ... ok [INFO] [stdout] test interpreter::test::can_read_input ... ok [INFO] [stdout] test compiler::test::does_not_crash ... ok [INFO] [stdout] test interpreter::test::can_write_output ... ok [INFO] [stdout] test compiler::test::copy_multiplied ... ok [INFO] [stdout] test interpreter::test::increment_memory ... ok [INFO] [stdout] test interpreter::test::decrement_memory ... ok [INFO] [stdout] test interpreter::test::move_ptr ... ok [INFO] [stdout] test interpreter::test::loops_work ... ok [INFO] [stdout] test ir::test::can_print_debug ... ok [INFO] [stdout] test ir::test::len ... ok [INFO] [stdout] test ir::test::iter ... ok [INFO] [stdout] test ir::test::optimizes_adds_following_preceding_clear_loops ... ok [INFO] [stdout] test ir::test::optimizes_clear_loops ... ok [INFO] [stdout] test ir::test::multiplication_loop_negative_bug ... ok [INFO] [stdout] test ir::test::optimizes_consecutive_adds ... ok [INFO] [stdout] test ir::test::optimizes_consecutive_lefts_rights ... ok [INFO] [stdout] test ir::test::optimizes_consecutive_subtractions ... ok [INFO] [stdout] test ir::test::optimizes_consecutive_mixed_lefts_rights ... ok [INFO] [stdout] test ir::test::optimizes_consecutive_sets ... ok [INFO] [stdout] test ir::test::optimizes_consecutive_mixed_adds ... ok [INFO] [stdout] test ir::test::optimizes_multiplication_loops ... ok [INFO] [stdout] test ir::test::optimizes_tail_instructions ... ok [INFO] [stdout] test compiler::test::can_run_pi_bf ... FAILED [INFO] [stdout] test assembler::test::mov_indirect ... ok [INFO] [stdout] test assembler::test::mov_to_mem_offset ... ok [INFO] [stdout] test interpreter::test::can_run_pi_bf ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- compiler::test::can_run_pi_bf stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'compiler::test::can_run_pi_bf' (389) panicked at src/compiler.rs:214:9: [INFO] [stdout] assertion `left == right` failed [INFO] [stdout] left: 77 [INFO] [stdout] right: 51 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5d4d261cdb51 - <::print::DisplayBacktrace as core[832e9a552fc17241]::fmt::Display>::fmt [INFO] [stdout] 1: 0x5d4d261e1fda - core[832e9a552fc17241]::fmt::write [INFO] [stdout] 2: 0x5d4d261d24fc - as std[97b98282bc616a66]::io::Write>::write_fmt [INFO] [stdout] 3: 0x5d4d261ac106 - std[97b98282bc616a66]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x5d4d261c5c89 - std[97b98282bc616a66]::panicking::default_hook [INFO] [stdout] 5: 0x5d4d261606a0 - test[39766f3d73431624]::test_main_inner::::{closure#0} [INFO] [stdout] 6: 0x5d4d261c5e42 - std[97b98282bc616a66]::panicking::panic_with_hook [INFO] [stdout] 7: 0x5d4d261ac1b2 - std[97b98282bc616a66]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x5d4d261a3a59 - std[97b98282bc616a66]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x5d4d261ace2d - __rustc[e3d8617bb01b7f69]::rust_begin_unwind [INFO] [stdout] 10: 0x5d4d261e270c - core[832e9a552fc17241]::panicking::panic_fmt [INFO] [stdout] 11: 0x5d4d261e2623 - core[832e9a552fc17241]::panicking::assert_failed_inner [INFO] [stdout] 12: 0x5d4d2614d93c - core[832e9a552fc17241]::panicking::assert_failed:: [INFO] [stdout] 13: 0x5d4d2614e7b0 - bfjit[9d876e35d8d136a1]::compiler::test::can_run_pi_bf [INFO] [stdout] 14: 0x5d4d26152fe9 - >::call_once [INFO] [stdout] 15: 0x5d4d261539db - test[39766f3d73431624]::__rust_begin_short_backtrace::, fn() -> core[832e9a552fc17241]::result::Result<(), alloc[3ecab9f82c41dc7d]::string::String>> [INFO] [stdout] 16: 0x5d4d26161025 - test[39766f3d73431624]::run_test::{closure#0} [INFO] [stdout] 17: 0x5d4d2615bad4 - std[97b98282bc616a66]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 18: 0x5d4d26164172 - ::{closure#1} as core[832e9a552fc17241]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 19: 0x5d4d261cd3df - ::new::thread_start [INFO] [stdout] 20: 0x79ae7393507a - [INFO] [stdout] 21: 0x79ae739c8534 - clone [INFO] [stdout] 22: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] compiler::test::can_run_pi_bf [INFO] [stdout] [INFO] [stdout] test result: FAILED. 45 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--bin bfjit` [INFO] running `Command { std: "docker" "inspect" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921", kill_on_drop: false }` [INFO] [stdout] 4fbe9390c584816978e42da606a7b3b4fcc1c48988ea83ddff5be84869172921