[INFO] cloning repository https://github.com/LinuxRocks2000/anyvm [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LinuxRocks2000/anyvm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLinuxRocks2000%2Fanyvm", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLinuxRocks2000%2Fanyvm'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e879877e0f23eb87418c5bd82da34517e2831279 [INFO] checking LinuxRocks2000/anyvm against try#723ab942d877517caf445dafde0416803ef56501 for pr-143857 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLinuxRocks2000%2Fanyvm" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/LinuxRocks2000/anyvm [INFO] finished tweaking git repo https://github.com/LinuxRocks2000/anyvm [INFO] tweaked toml for git repo https://github.com/LinuxRocks2000/anyvm written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/LinuxRocks2000/anyvm on toolchain 723ab942d877517caf445dafde0416803ef56501 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+723ab942d877517caf445dafde0416803ef56501" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/LinuxRocks2000/anyvm 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" "+723ab942d877517caf445dafde0416803ef56501" "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] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cc v1.2.8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+723ab942d877517caf445dafde0416803ef56501" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8a3ba7a80b413c44947219893b21edc745c7047c1675249d98eb65eebc6e6c19 [INFO] running `Command { std: "docker" "start" "-a" "8a3ba7a80b413c44947219893b21edc745c7047c1675249d98eb65eebc6e6c19", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8a3ba7a80b413c44947219893b21edc745c7047c1675249d98eb65eebc6e6c19", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a3ba7a80b413c44947219893b21edc745c7047c1675249d98eb65eebc6e6c19", kill_on_drop: false }` [INFO] [stdout] 8a3ba7a80b413c44947219893b21edc745c7047c1675249d98eb65eebc6e6c19 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+723ab942d877517caf445dafde0416803ef56501" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 83cb93113f6507ee829b204ac5b9f871415d1642a4d2d80dde6e695997a09a76 [INFO] running `Command { std: "docker" "start" "-a" "83cb93113f6507ee829b204ac5b9f871415d1642a4d2d80dde6e695997a09a76", kill_on_drop: false }` [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking once_cell v1.20.2 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking allocator-api2 v0.2.21 [INFO] [stderr] Compiling cc v1.2.8 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Compiling psm v0.1.24 [INFO] [stderr] Compiling stacker v0.1.17 [INFO] [stderr] Checking chumsky v0.9.3 [INFO] [stderr] Checking anyvm v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: path separator must be a double colon [INFO] [stdout] --> src/invoke.rs:167:76 [INFO] [stdout] | [INFO] [stdout] 167 | let place : i64 = self.get_at_as(loc).map_err(InvokeErr:MemErr)?; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: use a double colon instead [INFO] [stdout] | [INFO] [stdout] 167 | let place : i64 = self.get_at_as(loc).map_err(InvokeErr::MemErr)?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: path separator must be a double colon [INFO] [stdout] --> src/invoke.rs:167:76 [INFO] [stdout] | [INFO] [stdout] 167 | let place : i64 = self.get_at_as(loc).map_err(InvokeErr:MemErr)?; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: use a double colon instead [INFO] [stdout] | [INFO] [stdout] 167 | let place : i64 = self.get_at_as(loc).map_err(InvokeErr::MemErr)?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved imports `crate::RabbitTable`, `crate::AbiFunction` [INFO] [stdout] --> src/invoke.rs:2:23 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{ Machine, RabbitTable, AbiFunction }; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^ no `AbiFunction` in the root [INFO] [stdout] | | [INFO] [stdout] | no `RabbitTable` in the root [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/lib.rs:201:29 [INFO] [stdout] | [INFO] [stdout] 201 | Function(Box>), [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html [INFO] [stdout] help: consider making the bound lifetime-generic with a new `'a` lifetime [INFO] [stdout] | [INFO] [stdout] 201 | Function(Box FnMut<(&'a mut Machine)>>), [INFO] [stdout] | +++++++ ++ [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 200 ~ pub enum ExtData<'a> { [INFO] [stdout] 201 ~ Function(Box>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `pos` in this scope [INFO] [stdout] --> src/invoke.rs:148:45 [INFO] [stdout] | [INFO] [stdout] 148 | self.exec_pointer = pos; [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ffi::CStr` [INFO] [stdout] --> src/invoke.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ffi::CStr; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/invoke.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/lib.rs:201:28 [INFO] [stdout] | [INFO] [stdout] 201 | Function(Box>), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 201 - Function(Box>), [INFO] [stdout] 201 + Function(Box>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::invoke::*` [INFO] [stdout] --> src/lib.rs:462:9 [INFO] [stdout] | [INFO] [stdout] 462 | use super::invoke::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: the precise format of `Fn`-family traits' type parameters is subject to change [INFO] [stdout] --> src/lib.rs:201:22 [INFO] [stdout] | [INFO] [stdout] 201 | Function(Box>), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use parenthetical notation instead: `FnMut(&mut Machine) -> ()` [INFO] [stdout] | [INFO] [stdout] = note: see issue #29625 for more information [INFO] [stdout] = help: add `#![feature(unboxed_closures)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-07-13; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved imports `crate::RabbitTable`, `crate::AbiFunction` [INFO] [stdout] --> src/invoke.rs:2:23 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{ Machine, RabbitTable, AbiFunction }; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^ no `AbiFunction` in the root [INFO] [stdout] | | [INFO] [stdout] | no `RabbitTable` in the root [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0106]: missing lifetime specifier [INFO] [stdout] --> src/lib.rs:201:29 [INFO] [stdout] | [INFO] [stdout] 201 | Function(Box>), [INFO] [stdout] | ^ expected named lifetime parameter [INFO] [stdout] | [INFO] [stdout] = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html [INFO] [stdout] help: consider making the bound lifetime-generic with a new `'a` lifetime [INFO] [stdout] | [INFO] [stdout] 201 | Function(Box FnMut<(&'a mut Machine)>>), [INFO] [stdout] | +++++++ ++ [INFO] [stdout] help: consider introducing a named lifetime parameter [INFO] [stdout] | [INFO] [stdout] 200 ~ pub enum ExtData<'a> { [INFO] [stdout] 201 ~ Function(Box>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `pos` in this scope [INFO] [stdout] --> src/invoke.rs:148:45 [INFO] [stdout] | [INFO] [stdout] 148 | self.exec_pointer = pos; [INFO] [stdout] | ^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ffi::CStr` [INFO] [stdout] --> src/invoke.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ffi::CStr; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/invoke.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/lib.rs:201:28 [INFO] [stdout] | [INFO] [stdout] 201 | Function(Box>), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 201 - Function(Box>), [INFO] [stdout] 201 + Function(Box>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Table` is not dyn compatible [INFO] [stdout] --> src/lib.rs:202:15 [INFO] [stdout] | [INFO] [stdout] 202 | Table(Box) [INFO] [stdout] | ^^^^^^^^^ `Table` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/lib.rs:196:8 [INFO] [stdout] | [INFO] [stdout] 195 | pub trait Table { [INFO] [stdout] | ----- this trait is not dyn compatible... [INFO] [stdout] 196 | fn lookup(data : &str) -> ExtData; [INFO] [stdout] | ^^^^^^ ...because associated function `lookup` has no `self` parameter [INFO] [stdout] help: consider turning `lookup` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 196 | fn lookup(&self, data : &str) -> ExtData; [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `lookup` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 196 | fn lookup(data : &str) -> ExtData where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: the precise format of `Fn`-family traits' type parameters is subject to change [INFO] [stdout] --> src/lib.rs:201:22 [INFO] [stdout] | [INFO] [stdout] 201 | Function(Box>), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use parenthetical notation instead: `FnMut(&mut Machine) -> ()` [INFO] [stdout] | [INFO] [stdout] = note: see issue #29625 for more information [INFO] [stdout] = help: add `#![feature(unboxed_closures)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2025-07-13; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Table` is not dyn compatible [INFO] [stdout] --> src/lib.rs:202:15 [INFO] [stdout] | [INFO] [stdout] 202 | Table(Box) [INFO] [stdout] | ^^^^^^^^^ `Table` is not dyn compatible [INFO] [stdout] | [INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable [INFO] [stdout] for more information, visit [INFO] [stdout] --> src/lib.rs:196:8 [INFO] [stdout] | [INFO] [stdout] 195 | pub trait Table { [INFO] [stdout] | ----- this trait is not dyn compatible... [INFO] [stdout] 196 | fn lookup(data : &str) -> ExtData; [INFO] [stdout] | ^^^^^^ ...because associated function `lookup` has no `self` parameter [INFO] [stdout] help: consider turning `lookup` into a method by giving it a `&self` argument [INFO] [stdout] | [INFO] [stdout] 196 | fn lookup(&self, data : &str) -> ExtData; [INFO] [stdout] | ++++++ [INFO] [stdout] help: alternatively, consider constraining `lookup` so it does not apply to trait objects [INFO] [stdout] | [INFO] [stdout] 196 | fn lookup(data : &str) -> ExtData where Self: Sized; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0592]: duplicate definitions with name `push` [INFO] [stdout] --> src/lib.rs:329:5 [INFO] [stdout] | [INFO] [stdout] 310 | fn push(&mut self, thing : T) -> MemResult<()> { // push a thing to stack [INFO] [stdout] | ------------------------------------------------------------- other definition for `push` [INFO] [stdout] ... [INFO] [stdout] 329 | fn push(&mut self) -> Result<(), InvokeErr> { // get a value from somewhere in memory and push it to stack [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `push` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0592]: duplicate definitions with name `push` [INFO] [stdout] --> src/lib.rs:329:5 [INFO] [stdout] | [INFO] [stdout] 310 | fn push(&mut self, thing : T) -> MemResult<()> { // push a thing to stack [INFO] [stdout] | ------------------------------------------------------------- other definition for `push` [INFO] [stdout] ... [INFO] [stdout] 329 | fn push(&mut self) -> Result<(), InvokeErr> { // get a value from somewhere in memory and push it to stack [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `push` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:9:29 [INFO] [stdout] | [INFO] [stdout] 9 | self.exec_pointer = at as u64; [INFO] [stdout] | ----------------- ^^^^^^^^^ expected `i64`, found `u64` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:10:30 [INFO] [stdout] | [INFO] [stdout] 10 | self.stack_pointer = self.stack_start as u64; [INFO] [stdout] | ------------------ ^^^^^^^^^^^^^^^^^^^^^^^ expected `i64`, found `u64` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/invoke.rs:17:29 [INFO] [stdout] | [INFO] [stdout] 17 | 0 => { self.push::()?; }, // why, do you ask, did I choose this pattern? [INFO] [stdout] | ^^^^^^^^^^^-- argument #1 of type `u64` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | fn push(&mut self, thing : T) -> MemResult<()> { // push a thing to stack [INFO] [stdout] | ^^^^ --------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 17 | 0 => { self.push::(/* u64 */)?; }, // why, do you ask, did I choose this pattern? [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `error::InvokeErr` [INFO] [stdout] --> src/invoke.rs:17:42 [INFO] [stdout] | [INFO] [stdout] 17 | 0 => { self.push::()?; }, // why, do you ask, did I choose this pattern? [INFO] [stdout] | -------------^ the trait `From` is not implemented for `error::InvokeErr` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, error::MemoryErr>` [INFO] [stdout] | [INFO] [stdout] note: `error::InvokeErr` needs to implement `From` [INFO] [stdout] --> src/error.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum InvokeErr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `error::MemoryErr` needs to implement `Into` [INFO] [stdout] --> src/error.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum MemoryErr { // errors specifically related to memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:9:29 [INFO] [stdout] | [INFO] [stdout] 9 | self.exec_pointer = at as u64; [INFO] [stdout] | ----------------- ^^^^^^^^^ expected `i64`, found `u64` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:10:30 [INFO] [stdout] | [INFO] [stdout] 10 | self.stack_pointer = self.stack_start as u64; [INFO] [stdout] | ------------------ ^^^^^^^^^^^^^^^^^^^^^^^ expected `i64`, found `u64` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/invoke.rs:18:29 [INFO] [stdout] | [INFO] [stdout] 18 | 1 => { self.push::()?; }, // you don't want to know. [INFO] [stdout] | ^^^^^^^^^^^-- argument #1 of type `u32` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | fn push(&mut self, thing : T) -> MemResult<()> { // push a thing to stack [INFO] [stdout] | ^^^^ --------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 18 | 1 => { self.push::(/* u32 */)?; }, // you don't want to know. [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/invoke.rs:17:29 [INFO] [stdout] | [INFO] [stdout] 17 | 0 => { self.push::()?; }, // why, do you ask, did I choose this pattern? [INFO] [stdout] | ^^^^^^^^^^^-- argument #1 of type `u64` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | fn push(&mut self, thing : T) -> MemResult<()> { // push a thing to stack [INFO] [stdout] | ^^^^ --------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 17 | 0 => { self.push::(/* u64 */)?; }, // why, do you ask, did I choose this pattern? [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `error::InvokeErr` [INFO] [stdout] --> src/invoke.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | 1 => { self.push::()?; }, // you don't want to know. [INFO] [stdout] | -------------^ the trait `From` is not implemented for `error::InvokeErr` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, error::MemoryErr>` [INFO] [stdout] | [INFO] [stdout] note: `error::InvokeErr` needs to implement `From` [INFO] [stdout] --> src/error.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum InvokeErr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `error::MemoryErr` needs to implement `Into` [INFO] [stdout] --> src/error.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum MemoryErr { // errors specifically related to memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `error::InvokeErr` [INFO] [stdout] --> src/invoke.rs:17:42 [INFO] [stdout] | [INFO] [stdout] 17 | 0 => { self.push::()?; }, // why, do you ask, did I choose this pattern? [INFO] [stdout] | -------------^ the trait `From` is not implemented for `error::InvokeErr` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, error::MemoryErr>` [INFO] [stdout] | [INFO] [stdout] note: `error::InvokeErr` needs to implement `From` [INFO] [stdout] --> src/error.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum InvokeErr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `error::MemoryErr` needs to implement `Into` [INFO] [stdout] --> src/error.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum MemoryErr { // errors specifically related to memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/invoke.rs:19:29 [INFO] [stdout] | [INFO] [stdout] 19 | 2 => { self.push::()?; }, // useful for documentation purposes? [INFO] [stdout] | ^^^^^^^^^^^-- argument #1 of type `u16` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | fn push(&mut self, thing : T) -> MemResult<()> { // push a thing to stack [INFO] [stdout] | ^^^^ --------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 19 | 2 => { self.push::(/* u16 */)?; }, // useful for documentation purposes? [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/invoke.rs:18:29 [INFO] [stdout] | [INFO] [stdout] 18 | 1 => { self.push::()?; }, // you don't want to know. [INFO] [stdout] | ^^^^^^^^^^^-- argument #1 of type `u32` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | fn push(&mut self, thing : T) -> MemResult<()> { // push a thing to stack [INFO] [stdout] | ^^^^ --------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 18 | 1 => { self.push::(/* u32 */)?; }, // you don't want to know. [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `error::InvokeErr` [INFO] [stdout] --> src/invoke.rs:19:42 [INFO] [stdout] | [INFO] [stdout] 19 | 2 => { self.push::()?; }, // useful for documentation purposes? [INFO] [stdout] | -------------^ the trait `From` is not implemented for `error::InvokeErr` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, error::MemoryErr>` [INFO] [stdout] | [INFO] [stdout] note: `error::InvokeErr` needs to implement `From` [INFO] [stdout] --> src/error.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum InvokeErr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `error::MemoryErr` needs to implement `Into` [INFO] [stdout] --> src/error.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum MemoryErr { // errors specifically related to memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `error::InvokeErr` [INFO] [stdout] --> src/invoke.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | 1 => { self.push::()?; }, // you don't want to know. [INFO] [stdout] | -------------^ the trait `From` is not implemented for `error::InvokeErr` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, error::MemoryErr>` [INFO] [stdout] | [INFO] [stdout] note: `error::InvokeErr` needs to implement `From` [INFO] [stdout] --> src/error.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum InvokeErr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `error::MemoryErr` needs to implement `Into` [INFO] [stdout] --> src/error.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum MemoryErr { // errors specifically related to memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/invoke.rs:19:29 [INFO] [stdout] | [INFO] [stdout] 19 | 2 => { self.push::()?; }, // useful for documentation purposes? [INFO] [stdout] | ^^^^^^^^^^^-- argument #1 of type `u16` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | fn push(&mut self, thing : T) -> MemResult<()> { // push a thing to stack [INFO] [stdout] | ^^^^ --------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 19 | 2 => { self.push::(/* u16 */)?; }, // useful for documentation purposes? [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `error::InvokeErr` [INFO] [stdout] --> src/invoke.rs:19:42 [INFO] [stdout] | [INFO] [stdout] 19 | 2 => { self.push::()?; }, // useful for documentation purposes? [INFO] [stdout] | -------------^ the trait `From` is not implemented for `error::InvokeErr` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, error::MemoryErr>` [INFO] [stdout] | [INFO] [stdout] note: `error::InvokeErr` needs to implement `From` [INFO] [stdout] --> src/error.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum InvokeErr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `error::MemoryErr` needs to implement `Into` [INFO] [stdout] --> src/error.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum MemoryErr { // errors specifically related to memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/invoke.rs:20:29 [INFO] [stdout] | [INFO] [stdout] 20 | 3 => { self.push::()?; }, // no. screw off. pretend I didn't do it this way. [INFO] [stdout] | ^^^^^^^^^^-- argument #1 of type `u8` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | fn push(&mut self, thing : T) -> MemResult<()> { // push a thing to stack [INFO] [stdout] | ^^^^ --------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 20 | 3 => { self.push::(/* u8 */)?; }, // no. screw off. pretend I didn't do it this way. [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 1 argument but 0 arguments were supplied [INFO] [stdout] --> src/invoke.rs:20:29 [INFO] [stdout] | [INFO] [stdout] 20 | 3 => { self.push::()?; }, // no. screw off. pretend I didn't do it this way. [INFO] [stdout] | ^^^^^^^^^^-- argument #1 of type `u8` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | fn push(&mut self, thing : T) -> MemResult<()> { // push a thing to stack [INFO] [stdout] | ^^^^ --------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 20 | 3 => { self.push::(/* u8 */)?; }, // no. screw off. pretend I didn't do it this way. [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `error::InvokeErr` [INFO] [stdout] --> src/invoke.rs:20:41 [INFO] [stdout] | [INFO] [stdout] 20 | 3 => { self.push::()?; }, // no. screw off. pretend I didn't do it this way. [INFO] [stdout] | ------------^ the trait `From` is not implemented for `error::InvokeErr` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, error::MemoryErr>` [INFO] [stdout] | [INFO] [stdout] note: `error::InvokeErr` needs to implement `From` [INFO] [stdout] --> src/error.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum InvokeErr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `error::MemoryErr` needs to implement `Into` [INFO] [stdout] --> src/error.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum MemoryErr { // errors specifically related to memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `error::InvokeErr` [INFO] [stdout] --> src/invoke.rs:20:41 [INFO] [stdout] | [INFO] [stdout] 20 | 3 => { self.push::()?; }, // no. screw off. pretend I didn't do it this way. [INFO] [stdout] | ------------^ the trait `From` is not implemented for `error::InvokeErr` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, error::MemoryErr>` [INFO] [stdout] | [INFO] [stdout] note: `error::InvokeErr` needs to implement `From` [INFO] [stdout] --> src/error.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum InvokeErr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `error::MemoryErr` needs to implement `Into` [INFO] [stdout] --> src/error.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum MemoryErr { // errors specifically related to memory [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `cmpv` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/invoke.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | 48 => { self.cmpv::()?; }, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `cmp` with a similar name [INFO] [stdout] | [INFO] [stdout] 86 - 48 => { self.cmpv::()?; }, [INFO] [stdout] 86 + 48 => { self.cmp::()?; }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `cmpv` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/invoke.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | 48 => { self.cmpv::()?; }, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `cmp` with a similar name [INFO] [stdout] | [INFO] [stdout] 86 - 48 => { self.cmpv::()?; }, [INFO] [stdout] 86 + 48 => { self.cmp::()?; }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `cmpv` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/invoke.rs:87:30 [INFO] [stdout] | [INFO] [stdout] 87 | 49 => { self.cmpv::()?; }, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `cmp` with a similar name [INFO] [stdout] | [INFO] [stdout] 87 - 49 => { self.cmpv::()?; }, [INFO] [stdout] 87 + 49 => { self.cmp::()?; }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `cmpv` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/invoke.rs:87:30 [INFO] [stdout] | [INFO] [stdout] 87 | 49 => { self.cmpv::()?; }, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `cmp` with a similar name [INFO] [stdout] | [INFO] [stdout] 87 - 49 => { self.cmpv::()?; }, [INFO] [stdout] 87 + 49 => { self.cmp::()?; }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `cmpv` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/invoke.rs:88:30 [INFO] [stdout] | [INFO] [stdout] 88 | 50 => { self.cmpv::()?; }, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `cmp` with a similar name [INFO] [stdout] | [INFO] [stdout] 88 - 50 => { self.cmpv::()?; }, [INFO] [stdout] 88 + 50 => { self.cmp::()?; }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `cmpv` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/invoke.rs:88:30 [INFO] [stdout] | [INFO] [stdout] 88 | 50 => { self.cmpv::()?; }, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `cmp` with a similar name [INFO] [stdout] | [INFO] [stdout] 88 - 50 => { self.cmpv::()?; }, [INFO] [stdout] 88 + 50 => { self.cmp::()?; }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `cmpv` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/invoke.rs:89:30 [INFO] [stdout] | [INFO] [stdout] 89 | 51 => { self.cmpv::()?; }, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `cmp` with a similar name [INFO] [stdout] | [INFO] [stdout] 89 - 51 => { self.cmpv::()?; }, [INFO] [stdout] 89 + 51 => { self.cmp::()?; }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `cmpv` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/invoke.rs:89:30 [INFO] [stdout] | [INFO] [stdout] 89 | 51 => { self.cmpv::()?; }, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `cmp` with a similar name [INFO] [stdout] | [INFO] [stdout] 89 - 51 => { self.cmpv::()?; }, [INFO] [stdout] 89 + 51 => { self.cmp::()?; }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 15 | / match op { [INFO] [stdout] 16 | | // pushv[l, i, s, b] [INFO] [stdout] 17 | | 0 => { self.push::()?; }, // why, do you ask, did I choose this pattern? [INFO] [stdout] 18 | | 1 => { self.push::()?; }, // you don't want to know. [INFO] [stdout] ... | [INFO] [stdout] 95 | | Ok(()) [INFO] [stdout] | | ^^^^^^ expected `()`, found `Result<(), _>` [INFO] [stdout] ... | [INFO] [stdout] 210 | | } [INFO] [stdout] | |_____________- expected this to be `()` [INFO] [stdout] | [INFO] [stdout] = note: expected unit type `()` [INFO] [stdout] found enum `Result<(), _>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:101:21 [INFO] [stdout] | [INFO] [stdout] 15 | / match op { [INFO] [stdout] 16 | | // pushv[l, i, s, b] [INFO] [stdout] 17 | | 0 => { self.push::()?; }, // why, do you ask, did I choose this pattern? [INFO] [stdout] 18 | | 1 => { self.push::()?; }, // you don't want to know. [INFO] [stdout] ... | [INFO] [stdout] 101 | | Ok(()) [INFO] [stdout] | | ^^^^^^ expected `()`, found `Result<(), _>` [INFO] [stdout] ... | [INFO] [stdout] 210 | | } [INFO] [stdout] | |_____________- expected this to be `()` [INFO] [stdout] | [INFO] [stdout] = note: expected unit type `()` [INFO] [stdout] found enum `Result<(), _>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 15 | / match op { [INFO] [stdout] 16 | | // pushv[l, i, s, b] [INFO] [stdout] 17 | | 0 => { self.push::()?; }, // why, do you ask, did I choose this pattern? [INFO] [stdout] 18 | | 1 => { self.push::()?; }, // you don't want to know. [INFO] [stdout] ... | [INFO] [stdout] 95 | | Ok(()) [INFO] [stdout] | | ^^^^^^ expected `()`, found `Result<(), _>` [INFO] [stdout] ... | [INFO] [stdout] 210 | | } [INFO] [stdout] | |_____________- expected this to be `()` [INFO] [stdout] | [INFO] [stdout] = note: expected unit type `()` [INFO] [stdout] found enum `Result<(), _>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:140:38 [INFO] [stdout] | [INFO] [stdout] 140 | let amnt : i64 = self.pop_arg(); [INFO] [stdout] | --- ^^^^^^^^^^^^^^ expected `i64`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] | [INFO] [stdout] = note: expected type `i64` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 140 | let amnt : i64 = self.pop_arg()?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:101:21 [INFO] [stdout] | [INFO] [stdout] 15 | / match op { [INFO] [stdout] 16 | | // pushv[l, i, s, b] [INFO] [stdout] 17 | | 0 => { self.push::()?; }, // why, do you ask, did I choose this pattern? [INFO] [stdout] 18 | | 1 => { self.push::()?; }, // you don't want to know. [INFO] [stdout] ... | [INFO] [stdout] 101 | | Ok(()) [INFO] [stdout] | | ^^^^^^ expected `()`, found `Result<(), _>` [INFO] [stdout] ... | [INFO] [stdout] 210 | | } [INFO] [stdout] | |_____________- expected this to be `()` [INFO] [stdout] | [INFO] [stdout] = note: expected unit type `()` [INFO] [stdout] found enum `Result<(), _>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:157:41 [INFO] [stdout] | [INFO] [stdout] 157 | self.exec_pointer = addr; [INFO] [stdout] | ----------------- ^^^^ expected `i64`, found `u64` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:163:41 [INFO] [stdout] | [INFO] [stdout] 163 | self.exec_pointer = ret_addr; [INFO] [stdout] | ----------------- ^^^^^^^^ expected `i64`, found `u64` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:188:40 [INFO] [stdout] | [INFO] [stdout] 188 | let target : i64 = self.pop_arg(); [INFO] [stdout] | --- ^^^^^^^^^^^^^^ expected `i64`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] | [INFO] [stdout] = note: expected type `i64` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 188 | let target : i64 = self.pop_arg()?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:193:34 [INFO] [stdout] | [INFO] [stdout] 193 | self.sbm.1 = self.pop_as(); // pop sbm off stack [INFO] [stdout] | ---------- ^^^^^^^^^^^^^ expected `i64`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] = note: expected type `i64` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 193 | self.sbm.1 = self.pop_as()?; // pop sbm off stack [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:194:34 [INFO] [stdout] | [INFO] [stdout] 194 | self.sbm.0 = self.pop_as(); [INFO] [stdout] | ---------- ^^^^^^^^^^^^^ expected `i64`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] = note: expected type `i64` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 194 | self.sbm.0 = self.pop_as()?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:140:38 [INFO] [stdout] | [INFO] [stdout] 140 | let amnt : i64 = self.pop_arg(); [INFO] [stdout] | --- ^^^^^^^^^^^^^^ expected `i64`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] | [INFO] [stdout] = note: expected type `i64` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 140 | let amnt : i64 = self.pop_arg()?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:157:41 [INFO] [stdout] | [INFO] [stdout] 157 | self.exec_pointer = addr; [INFO] [stdout] | ----------------- ^^^^ expected `i64`, found `u64` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:163:41 [INFO] [stdout] | [INFO] [stdout] 163 | self.exec_pointer = ret_addr; [INFO] [stdout] | ----------------- ^^^^^^^^ expected `i64`, found `u64` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:188:40 [INFO] [stdout] | [INFO] [stdout] 188 | let target : i64 = self.pop_arg(); [INFO] [stdout] | --- ^^^^^^^^^^^^^^ expected `i64`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] | [INFO] [stdout] = note: expected type `i64` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 188 | let target : i64 = self.pop_arg()?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:193:34 [INFO] [stdout] | [INFO] [stdout] 193 | self.sbm.1 = self.pop_as(); // pop sbm off stack [INFO] [stdout] | ---------- ^^^^^^^^^^^^^ expected `i64`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] = note: expected type `i64` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 193 | self.sbm.1 = self.pop_as()?; // pop sbm off stack [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:194:34 [INFO] [stdout] | [INFO] [stdout] 194 | self.sbm.0 = self.pop_as(); [INFO] [stdout] | ---------- ^^^^^^^^^^^^^ expected `i64`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to the type of this binding [INFO] [stdout] | [INFO] [stdout] = note: expected type `i64` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 194 | self.sbm.0 = self.pop_as()?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `push_as` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/invoke.rs:197:26 [INFO] [stdout] | [INFO] [stdout] 197 | self.push_as(old_errcode); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `push` with a similar name [INFO] [stdout] | [INFO] [stdout] 197 - self.push_as(old_errcode); [INFO] [stdout] 197 + self.push(old_errcode); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `push_as` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/invoke.rs:197:26 [INFO] [stdout] | [INFO] [stdout] 197 | self.push_as(old_errcode); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `push` with a similar name [INFO] [stdout] | [INFO] [stdout] 197 - self.push_as(old_errcode); [INFO] [stdout] 197 + self.push(old_errcode); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:205:36 [INFO] [stdout] | [INFO] [stdout] 205 | self.start_mmu(pagesize); [INFO] [stdout] | --------- ^^^^^^^^ expected `u32`, found `Result` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected type `u32` [INFO] [stdout] found enum `Result` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:453:8 [INFO] [stdout] | [INFO] [stdout] 453 | fn start_mmu(&mut self, pagesize : u32) { [INFO] [stdout] | ^^^^^^^^^ -------------- [INFO] [stdout] help: use the `?` operator to extract the `Result` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 205 | self.start_mmu(pagesize?); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/invoke.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 11 | / loop { [INFO] [stdout] 12 | | let op = self.pop_arg::().map_err(InvokeErr::MemErr)?; [INFO] [stdout] 13 | | let old_errcode = self.errcode; [INFO] [stdout] 14 | | self.errcode = 0; [INFO] [stdout] ... | [INFO] [stdout] 211 | | } [INFO] [stdout] | |_________- any code following this expression is unreachable [INFO] [stdout] 212 | Ok(InvokeResult::Ok(0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/invoke.rs:205:36 [INFO] [stdout] | [INFO] [stdout] 205 | self.start_mmu(pagesize); [INFO] [stdout] | --------- ^^^^^^^^ expected `u32`, found `Result` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected type `u32` [INFO] [stdout] found enum `Result` [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/lib.rs:453:8 [INFO] [stdout] | [INFO] [stdout] 453 | fn start_mmu(&mut self, pagesize : u32) { [INFO] [stdout] | ^^^^^^^^^ -------------- [INFO] [stdout] help: use the `?` operator to extract the `Result` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 205 | self.start_mmu(pagesize?); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/invoke.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 11 | / loop { [INFO] [stdout] 12 | | let op = self.pop_arg::().map_err(InvokeErr::MemErr)?; [INFO] [stdout] 13 | | let old_errcode = self.errcode; [INFO] [stdout] 14 | | self.errcode = 0; [INFO] [stdout] ... | [INFO] [stdout] 211 | | } [INFO] [stdout] | |_________- any code following this expression is unreachable [INFO] [stdout] 212 | Ok(InvokeResult::Ok(0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `rabbit_top` on type `&mut Machine` [INFO] [stdout] --> src/lib.rs:258:14 [INFO] [stdout] | [INFO] [stdout] 258 | self.rabbit_top += 1; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `memory`, `text_start`, `stack_start`, `end`, `ext_data` ... and 4 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `rabbit_top` on type `&mut Machine` [INFO] [stdout] --> src/lib.rs:259:14 [INFO] [stdout] | [INFO] [stdout] 259 | self.rabbit_top [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `memory`, `text_start`, `stack_start`, `end`, `ext_data` ... and 4 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `rabbit_top` on type `&mut Machine` [INFO] [stdout] --> src/lib.rs:258:14 [INFO] [stdout] | [INFO] [stdout] 258 | self.rabbit_top += 1; [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `memory`, `text_start`, `stack_start`, `end`, `ext_data` ... and 4 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `rabbit_top` on type `&mut Machine` [INFO] [stdout] --> src/lib.rs:259:14 [INFO] [stdout] | [INFO] [stdout] 259 | self.rabbit_top [INFO] [stdout] | ^^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `memory`, `text_start`, `stack_start`, `end`, `ext_data` ... and 4 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `from_be` found for enum `Result` in the current scope [INFO] [stdout] --> src/lib.rs:296:16 [INFO] [stdout] | [INFO] [stdout] 296 | Ok(ret.from_be()) [INFO] [stdout] | ^^^^^^^ method not found in `Result<_, error::MemoryErr>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `numerical::Numerical` defines an item `from_be`, perhaps you need to implement it [INFO] [stdout] --> src/numerical.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Numerical : Copy + Clone + PartialEq + Ord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:331:23 [INFO] [stdout] | [INFO] [stdout] 329 | fn push(&mut self) -> Result<(), InvokeErr> { // get a value from somewhere in memory and push it to stack [INFO] [stdout] | - expected this type parameter [INFO] [stdout] 330 | let loc : i64 = self.pop_arg().map_err(InvokeErr::MemErr)?; [INFO] [stdout] 331 | let val : T = self.get_at_as(loc); [INFO] [stdout] | - ^^^^^^^^^^^^^^^^^^^ expected type parameter `T`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] | [INFO] [stdout] = note: expected type parameter `T` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 331 | let val : T = self.get_at_as(loc)?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:364:23 [INFO] [stdout] | [INFO] [stdout] 361 | fn cpy(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | - expected this type parameter [INFO] [stdout] ... [INFO] [stdout] 364 | let val : T = self.get_at_as(loc_one); [INFO] [stdout] | - ^^^^^^^^^^^^^^^^^^^^^^^ expected type parameter `T`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] | [INFO] [stdout] = note: expected type parameter `T` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 364 | let val : T = self.get_at_as(loc_one)?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `from_be` found for enum `Result` in the current scope [INFO] [stdout] --> src/lib.rs:296:16 [INFO] [stdout] | [INFO] [stdout] 296 | Ok(ret.from_be()) [INFO] [stdout] | ^^^^^^^ method not found in `Result<_, error::MemoryErr>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `numerical::Numerical` defines an item `from_be`, perhaps you need to implement it [INFO] [stdout] --> src/numerical.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub trait Numerical : Copy + Clone + PartialEq + Ord { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:331:23 [INFO] [stdout] | [INFO] [stdout] 329 | fn push(&mut self) -> Result<(), InvokeErr> { // get a value from somewhere in memory and push it to stack [INFO] [stdout] | - expected this type parameter [INFO] [stdout] 330 | let loc : i64 = self.pop_arg().map_err(InvokeErr::MemErr)?; [INFO] [stdout] 331 | let val : T = self.get_at_as(loc); [INFO] [stdout] | - ^^^^^^^^^^^^^^^^^^^ expected type parameter `T`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] | [INFO] [stdout] = note: expected type parameter `T` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 331 | let val : T = self.get_at_as(loc)?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:364:23 [INFO] [stdout] | [INFO] [stdout] 361 | fn cpy(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | - expected this type parameter [INFO] [stdout] ... [INFO] [stdout] 364 | let val : T = self.get_at_as(loc_one); [INFO] [stdout] | - ^^^^^^^^^^^^^^^^^^^^^^^ expected type parameter `T`, found `Result<_, MemoryErr>` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] | [INFO] [stdout] = note: expected type parameter `T` [INFO] [stdout] found enum `Result<_, error::MemoryErr>` [INFO] [stdout] help: use the `?` operator to extract the `Result<_, error::MemoryErr>` value, propagating a `Result::Err` value to the caller [INFO] [stdout] | [INFO] [stdout] 364 | let val : T = self.get_at_as(loc_one)?; [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `T` to `T` [INFO] [stdout] --> src/lib.rs:381:24 [INFO] [stdout] | [INFO] [stdout] 381 | let val = val1 + val2; [INFO] [stdout] | ---- ^ ---- T [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Add` [INFO] [stdout] | [INFO] [stdout] 376 | fn add(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot add `T` to `T` [INFO] [stdout] --> src/lib.rs:381:24 [INFO] [stdout] | [INFO] [stdout] 381 | let val = val1 + val2; [INFO] [stdout] | ---- ^ ---- T [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Add` [INFO] [stdout] | [INFO] [stdout] 376 | fn add(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot subtract `T` from `T` [INFO] [stdout] --> src/lib.rs:391:24 [INFO] [stdout] | [INFO] [stdout] 391 | let val = val1 - val2; [INFO] [stdout] | ---- ^ ---- T [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Sub` [INFO] [stdout] | [INFO] [stdout] 386 | fn sub(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot subtract `T` from `T` [INFO] [stdout] --> src/lib.rs:391:24 [INFO] [stdout] | [INFO] [stdout] 391 | let val = val1 - val2; [INFO] [stdout] | ---- ^ ---- T [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Sub` [INFO] [stdout] | [INFO] [stdout] 386 | fn sub(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot multiply `T` by `T` [INFO] [stdout] --> src/lib.rs:401:24 [INFO] [stdout] | [INFO] [stdout] 401 | let val = val1 * val2; [INFO] [stdout] | ---- ^ ---- T [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Mul` [INFO] [stdout] | [INFO] [stdout] 396 | fn mul(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot divide `T` by `T` [INFO] [stdout] --> src/lib.rs:411:24 [INFO] [stdout] | [INFO] [stdout] 411 | let val = val1 / val2; [INFO] [stdout] | ---- ^ ---- T [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Div` [INFO] [stdout] | [INFO] [stdout] 406 | fn div(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot multiply `T` by `T` [INFO] [stdout] --> src/lib.rs:401:24 [INFO] [stdout] | [INFO] [stdout] 401 | let val = val1 * val2; [INFO] [stdout] | ---- ^ ---- T [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Mul` [INFO] [stdout] | [INFO] [stdout] 396 | fn mul(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: cannot divide `T` by `T` [INFO] [stdout] --> src/lib.rs:411:24 [INFO] [stdout] | [INFO] [stdout] 411 | let val = val1 / val2; [INFO] [stdout] | ---- ^ ---- T [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Div` [INFO] [stdout] | [INFO] [stdout] 406 | fn div(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getreg_as` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/lib.rs:418:29 [INFO] [stdout] | [INFO] [stdout] 418 | let regv : T = self.getreg_as(reg); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `get_at_as` with a similar name [INFO] [stdout] | [INFO] [stdout] 418 - let regv : T = self.getreg_as(reg); [INFO] [stdout] 418 + let regv : T = self.get_at_as(reg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `registers` on type `&mut Machine` [INFO] [stdout] --> src/lib.rs:420:18 [INFO] [stdout] | [INFO] [stdout] 420 | self.registers[reg as usize] = 1u64.to_be(); [INFO] [stdout] | ^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `memory`, `text_start`, `stack_start`, `end`, `ext_data` ... and 4 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `registers` on type `&mut Machine` [INFO] [stdout] --> src/lib.rs:423:18 [INFO] [stdout] | [INFO] [stdout] 423 | self.registers[reg as usize] = 0u64.to_be(); [INFO] [stdout] | ^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `memory`, `text_start`, `stack_start`, `end`, `ext_data` ... and 4 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `getreg_as` found for mutable reference `&mut Machine` in the current scope [INFO] [stdout] --> src/lib.rs:418:29 [INFO] [stdout] | [INFO] [stdout] 418 | let regv : T = self.getreg_as(reg); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `get_at_as` with a similar name [INFO] [stdout] | [INFO] [stdout] 418 - let regv : T = self.getreg_as(reg); [INFO] [stdout] 418 + let regv : T = self.get_at_as(reg); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `registers` on type `&mut Machine` [INFO] [stdout] --> src/lib.rs:420:18 [INFO] [stdout] | [INFO] [stdout] 420 | self.registers[reg as usize] = 1u64.to_be(); [INFO] [stdout] | ^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `memory`, `text_start`, `stack_start`, `end`, `ext_data` ... and 4 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `registers` on type `&mut Machine` [INFO] [stdout] --> src/lib.rs:423:18 [INFO] [stdout] | [INFO] [stdout] 423 | self.registers[reg as usize] = 0u64.to_be(); [INFO] [stdout] | ^^^^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `memory`, `text_start`, `stack_start`, `end`, `ext_data` ... and 4 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: no implementation for `T << i8` [INFO] [stdout] --> src/lib.rs:433:34 [INFO] [stdout] | [INFO] [stdout] 433 | self.setmem(loc, val << -amount).map_err(InvokeErr::MemErr)?; [INFO] [stdout] | --- ^^ ------- i8 [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Shl` [INFO] [stdout] | [INFO] [stdout] 428 | fn shift>(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: no implementation for `T << i8` [INFO] [stdout] --> src/lib.rs:433:34 [INFO] [stdout] | [INFO] [stdout] 433 | self.setmem(loc, val << -amount).map_err(InvokeErr::MemErr)?; [INFO] [stdout] | --- ^^ ------- i8 [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Shl` [INFO] [stdout] | [INFO] [stdout] 428 | fn shift>(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:432:23 [INFO] [stdout] | [INFO] [stdout] 432 | if amount < 0 { [INFO] [stdout] | _______________________^ [INFO] [stdout] 433 | | self.setmem(loc, val << -amount).map_err(InvokeErr::MemErr)?; [INFO] [stdout] 434 | | } [INFO] [stdout] | |_________^ expected `Result<(), InvokeErr>`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<(), error::InvokeErr>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:432:23 [INFO] [stdout] | [INFO] [stdout] 432 | if amount < 0 { [INFO] [stdout] | _______________________^ [INFO] [stdout] 433 | | self.setmem(loc, val << -amount).map_err(InvokeErr::MemErr)?; [INFO] [stdout] 434 | | } [INFO] [stdout] | |_________^ expected `Result<(), InvokeErr>`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<(), error::InvokeErr>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: no implementation for `T >> i8` [INFO] [stdout] --> src/lib.rs:436:34 [INFO] [stdout] | [INFO] [stdout] 436 | self.setmem(loc, val >> amount).map_err(InvokeErr::MemErr)?; [INFO] [stdout] | --- ^^ ------ i8 [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Shr` [INFO] [stdout] | [INFO] [stdout] 428 | fn shift>(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: no implementation for `T >> i8` [INFO] [stdout] --> src/lib.rs:436:34 [INFO] [stdout] | [INFO] [stdout] 436 | self.setmem(loc, val >> amount).map_err(InvokeErr::MemErr)?; [INFO] [stdout] | --- ^^ ------ i8 [INFO] [stdout] | | [INFO] [stdout] | T [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `T` with trait `Shr` [INFO] [stdout] | [INFO] [stdout] 428 | fn shift>(&mut self) -> Result<(), InvokeErr> { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:435:28 [INFO] [stdout] | [INFO] [stdout] 435 | else if amount > 0 { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 436 | | self.setmem(loc, val >> amount).map_err(InvokeErr::MemErr)?; [INFO] [stdout] 437 | | } [INFO] [stdout] | |_________^ expected `Result<(), InvokeErr>`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<(), error::InvokeErr>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:448:24 [INFO] [stdout] | [INFO] [stdout] 448 | return Err(InvokeErr::UncaughtThrow); [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^^^^^^^^ expected `InvokeErr`, found enum constructor [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | UncaughtThrow(u8), [INFO] [stdout] | ------------- `UncaughtThrow` defines an enum variant constructor here, which should be called [INFO] [stdout] | [INFO] [stdout] = note: expected enum `error::InvokeErr` [INFO] [stdout] found enum constructor `fn(u8) -> error::InvokeErr {error::InvokeErr::UncaughtThrow}` [INFO] [stdout] help: the type constructed contains `fn(u8) -> error::InvokeErr {error::InvokeErr::UncaughtThrow}` due to the type of the argument passed [INFO] [stdout] --> src/lib.rs:448:20 [INFO] [stdout] | [INFO] [stdout] 448 | return Err(InvokeErr::UncaughtThrow); [INFO] [stdout] | ^^^^------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the type of `Err` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> /rustc/723ab942d877517caf445dafde0416803ef56501/library/core/src/result.rs:557:5 [INFO] [stdout] help: use parentheses to construct this tuple variant [INFO] [stdout] | [INFO] [stdout] 448 | return Err(InvokeErr::UncaughtThrow(/* u8 */)); [INFO] [stdout] | ++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:435:28 [INFO] [stdout] | [INFO] [stdout] 435 | else if amount > 0 { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 436 | | self.setmem(loc, val >> amount).map_err(InvokeErr::MemErr)?; [INFO] [stdout] 437 | | } [INFO] [stdout] | |_________^ expected `Result<(), InvokeErr>`, found `()` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<(), error::InvokeErr>` [INFO] [stdout] found unit type `()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/lib.rs:448:24 [INFO] [stdout] | [INFO] [stdout] 448 | return Err(InvokeErr::UncaughtThrow); [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^^^^^^^^ expected `InvokeErr`, found enum constructor [INFO] [stdout] | | [INFO] [stdout] | arguments to this enum variant are incorrect [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | UncaughtThrow(u8), [INFO] [stdout] | ------------- `UncaughtThrow` defines an enum variant constructor here, which should be called [INFO] [stdout] | [INFO] [stdout] = note: expected enum `error::InvokeErr` [INFO] [stdout] found enum constructor `fn(u8) -> error::InvokeErr {error::InvokeErr::UncaughtThrow}` [INFO] [stdout] help: the type constructed contains `fn(u8) -> error::InvokeErr {error::InvokeErr::UncaughtThrow}` due to the type of the argument passed [INFO] [stdout] --> src/lib.rs:448:20 [INFO] [stdout] | [INFO] [stdout] 448 | return Err(InvokeErr::UncaughtThrow); [INFO] [stdout] | ^^^^------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the type of `Err` [INFO] [stdout] note: tuple variant defined here [INFO] [stdout] --> /rustc/723ab942d877517caf445dafde0416803ef56501/library/core/src/result.rs:557:5 [INFO] [stdout] help: use parentheses to construct this tuple variant [INFO] [stdout] | [INFO] [stdout] 448 | return Err(InvokeErr::UncaughtThrow(/* u8 */)); [INFO] [stdout] | ++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `program` [INFO] [stdout] --> src/avc.rs:210:31 [INFO] [stdout] | [INFO] [stdout] 210 | Self::Function(_, program) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/avc.rs:213:24 [INFO] [stdout] | [INFO] [stdout] 213 | Self::Sref(to) => {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `program` [INFO] [stdout] --> src/avc.rs:219:14 [INFO] [stdout] | [INFO] [stdout] 219 | pub fn build(program : &str) -> Image { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pagesize` [INFO] [stdout] --> src/lib.rs:453:29 [INFO] [stdout] | [INFO] [stdout] 453 | fn start_mmu(&mut self, pagesize : u32) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pagesize` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `program` [INFO] [stdout] --> src/avc.rs:210:31 [INFO] [stdout] | [INFO] [stdout] 210 | Self::Function(_, program) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/avc.rs:213:24 [INFO] [stdout] | [INFO] [stdout] 213 | Self::Sref(to) => {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `program` [INFO] [stdout] --> src/avc.rs:219:14 [INFO] [stdout] | [INFO] [stdout] 219 | pub fn build(program : &str) -> Image { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0061, E0106, E0277, E0308, E0369, E0425, E0432, E0592... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pagesize` [INFO] [stdout] --> src/lib.rs:453:29 [INFO] [stdout] | [INFO] [stdout] 453 | fn start_mmu(&mut self, pagesize : u32) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pagesize` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output` [INFO] [stdout] --> src/lib.rs:574:13 [INFO] [stdout] | [INFO] [stdout] 574 | let output = machine.invoke(image.lookup("main".to_string())); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0038, E0061, E0106, E0277, E0308, E0369, E0425, E0432, E0592... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0038`. [INFO] [stdout] [INFO] [stderr] error: could not compile `anyvm` (lib) due to 48 previous errors; 8 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `anyvm` (lib test) due to 48 previous errors; 10 warnings emitted [INFO] running `Command { std: "docker" "inspect" "83cb93113f6507ee829b204ac5b9f871415d1642a4d2d80dde6e695997a09a76", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "83cb93113f6507ee829b204ac5b9f871415d1642a4d2d80dde6e695997a09a76", kill_on_drop: false }` [INFO] [stdout] 83cb93113f6507ee829b204ac5b9f871415d1642a4d2d80dde6e695997a09a76