[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#18c1d185ac7a6a3bf399296b35e4b2736809a756 for pr-146972
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLinuxRocks2000%2Fanyvm" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-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-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/LinuxRocks2000/anyvm on toolchain 18c1d185ac7a6a3bf399296b35e4b2736809a756
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "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" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "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-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0dab9ad3c63b619f4dad21e15fb3e79a3616cfa9a64f3c9640e1cc5a4dbc5a40
[INFO] running `Command { std: "docker" "start" "-a" "0dab9ad3c63b619f4dad21e15fb3e79a3616cfa9a64f3c9640e1cc5a4dbc5a40", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0dab9ad3c63b619f4dad21e15fb3e79a3616cfa9a64f3c9640e1cc5a4dbc5a40", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0dab9ad3c63b619f4dad21e15fb3e79a3616cfa9a64f3c9640e1cc5a4dbc5a40", kill_on_drop: false }`
[INFO] [stdout] 0dab9ad3c63b619f4dad21e15fb3e79a3616cfa9a64f3c9640e1cc5a4dbc5a40
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4f88bffabc860e54dcc3ba2619268b021b05d3b9cffa9c4f3ca80ca3aeb2208b
[INFO] running `Command { std: "docker" "start" "-a" "4f88bffabc860e54dcc3ba2619268b021b05d3b9cffa9c4f3ca80ca3aeb2208b", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.2.8
[INFO] [stderr]     Checking once_cell v1.20.2
[INFO] [stderr]     Checking 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<dyn FnMut<(&mut Machine)>>),
[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<dyn for<'a> 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<dyn FnMut<(&'a mut Machine)>>),
[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)]` (part of `#[warn(unused)]`) 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<dyn FnMut<(&mut Machine)>>),
[INFO] [stdout]     |                            ^            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 201 -     Function(Box<dyn FnMut<(&mut Machine)>>),
[INFO] [stdout] 201 +     Function(Box<dyn FnMut<&mut Machine>>),
[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<dyn FnMut<(&mut Machine)>>),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^ help: use parenthetical notation instead: `FnMut(&mut Machine) -> ()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #29625 <https://github.com/rust-lang/rust/issues/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-11-28; 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<dyn FnMut<(&mut Machine)>>),
[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<dyn for<'a> 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<dyn FnMut<(&'a mut Machine)>>),
[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)]` (part of `#[warn(unused)]`) 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<dyn FnMut<(&mut Machine)>>),
[INFO] [stdout]     |                            ^            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 201 -     Function(Box<dyn FnMut<(&mut Machine)>>),
[INFO] [stdout] 201 +     Function(Box<dyn FnMut<&mut Machine>>),
[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[E0038]: the trait `Table` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:202:15
[INFO] [stdout]     |
[INFO] [stdout] 202 |     Table(Box<dyn Table>)
[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 <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[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<dyn FnMut<(&mut Machine)>>),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^ help: use parenthetical notation instead: `FnMut(&mut Machine) -> ()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #29625 <https://github.com/rust-lang/rust/issues/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-11-28; 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<dyn Table>)
[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 <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[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<T : Numerical>(&mut self, thing : T) -> MemResult<()> { // push a thing to stack
[INFO] [stdout]     |     ------------------------------------------------------------- other definition for `push`
[INFO] [stdout] ...
[INFO] [stdout] 329 |     fn push<T : Numerical>(&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[E0592]: duplicate definitions with name `push`
[INFO] [stdout]    --> src/lib.rs:329:5
[INFO] [stdout]     |
[INFO] [stdout] 310 |     fn push<T : Numerical>(&mut self, thing : T) -> MemResult<()> { // push a thing to stack
[INFO] [stdout]     |     ------------------------------------------------------------- other definition for `push`
[INFO] [stdout] ...
[INFO] [stdout] 329 |     fn push<T : Numerical>(&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[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::<u64>()?; }, // 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<T : Numerical>(&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>(/* 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::<u64>()?; }, // why, do you ask, did I choose this pattern?
[INFO] [stdout]    |                             -------------^ the trait `From<error::MemoryErr>` 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<error::MemoryErr>`
[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<error::InvokeErr>`
[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:18:29
[INFO] [stdout]     |
[INFO] [stdout]  18 |                 1 => { self.push::<u32>()?; }, // 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<T : Numerical>(&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>(/* 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:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 |                 1 => { self.push::<u32>()?; }, // you don't want to know.
[INFO] [stdout]    |                             -------------^ the trait `From<error::MemoryErr>` 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<error::MemoryErr>`
[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<error::InvokeErr>`
[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::<u16>()?; }, // 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<T : Numerical>(&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>(/* 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::<u16>()?; }, // useful for documentation purposes?
[INFO] [stdout]    |                             -------------^ the trait `From<error::MemoryErr>` 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<error::MemoryErr>`
[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<error::InvokeErr>`
[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::<u8>()?; },  // 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<T : Numerical>(&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>(/* 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::<u8>()?; },  // no. screw off. pretend I didn't do it this way.
[INFO] [stdout]    |                             ------------^ the trait `From<error::MemoryErr>` 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<error::MemoryErr>`
[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<error::InvokeErr>`
[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[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::<u64>()?; },
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `cmp` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 86 -                 48 => { self.cmpv::<u64>()?; },
[INFO] [stdout] 86 +                 48 => { self.cmp::<u64>()?; },
[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::<u64>()?; }, // 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<T : Numerical>(&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>(/* 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::<u64>()?; }, // why, do you ask, did I choose this pattern?
[INFO] [stdout]    |                             -------------^ the trait `From<error::MemoryErr>` 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<error::MemoryErr>`
[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<error::InvokeErr>`
[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:18:29
[INFO] [stdout]     |
[INFO] [stdout]  18 |                 1 => { self.push::<u32>()?; }, // 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<T : Numerical>(&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>(/* u32 */)?; }, // you don't want to know.
[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::<u32>()?; },
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `cmp` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 87 -                 49 => { self.cmpv::<u32>()?; },
[INFO] [stdout] 87 +                 49 => { self.cmp::<u32>()?; },
[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::<u32>()?; }, // you don't want to know.
[INFO] [stdout]    |                             -------------^ the trait `From<error::MemoryErr>` 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<error::MemoryErr>`
[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<error::InvokeErr>`
[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::<u16>()?; }, // 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<T : Numerical>(&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>(/* 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::<u16>()?; }, // useful for documentation purposes?
[INFO] [stdout]    |                             -------------^ the trait `From<error::MemoryErr>` 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<error::MemoryErr>`
[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<error::InvokeErr>`
[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::<u8>()?; },  // 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<T : Numerical>(&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>(/* u8 */)?; },  // no. screw off. pretend I didn't do it this way.
[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::<u16>()?; },
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `cmp` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 88 -                 50 => { self.cmpv::<u16>()?; },
[INFO] [stdout] 88 +                 50 => { self.cmp::<u16>()?; },
[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::<u8>()?; },  // no. screw off. pretend I didn't do it this way.
[INFO] [stdout]    |                             ------------^ the trait `From<error::MemoryErr>` 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<error::MemoryErr>`
[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<error::InvokeErr>`
[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:89:30
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 51 => { self.cmpv::<u8>()?; },
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `cmp` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 89 -                 51 => { self.cmpv::<u8>()?; },
[INFO] [stdout] 89 +                 51 => { self.cmp::<u8>()?; },
[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::<u64>()?; }, // why, do you ask, did I choose this pattern?
[INFO] [stdout]  18 | |                 1 => { self.push::<u32>()?; }, // 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[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::<u64>()?; },
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `cmp` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 86 -                 48 => { self.cmpv::<u64>()?; },
[INFO] [stdout] 86 +                 48 => { self.cmp::<u64>()?; },
[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::<u64>()?; }, // why, do you ask, did I choose this pattern?
[INFO] [stdout]  18 | |                 1 => { self.push::<u32>()?; }, // 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: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[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::<u32>()?; },
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `cmp` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 87 -                 49 => { self.cmpv::<u32>()?; },
[INFO] [stdout] 87 +                 49 => { self.cmp::<u32>()?; },
[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 `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::<u16>()?; },
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `cmp` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 88 -                 50 => { self.cmpv::<u16>()?; },
[INFO] [stdout] 88 +                 50 => { self.cmp::<u16>()?; },
[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::<u8>()?; },
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `cmp` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 89 -                 51 => { self.cmpv::<u8>()?; },
[INFO] [stdout] 89 +                 51 => { self.cmp::<u8>()?; },
[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<u32, InvokeErr>`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected type `u32`
[INFO] [stdout]                found enum `Result<u32, error::InvokeErr>`
[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<u32, error::InvokeErr>` 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::<u8>().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)]` (part of `#[warn(unused)]`) on by default
[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::<u64>()?; }, // why, do you ask, did I choose this pattern?
[INFO] [stdout]  18 | |                 1 => { self.push::<u32>()?; }, // 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::<u64>()?; }, // why, do you ask, did I choose this pattern?
[INFO] [stdout]  18 | |                 1 => { self.push::<u32>()?; }, // 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: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[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 `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<u32, InvokeErr>`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected type `u32`
[INFO] [stdout]                found enum `Result<u32, error::InvokeErr>`
[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<u32, error::InvokeErr>` 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::<u8>().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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from_be` found for enum `Result<T, E>` 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<T : Numerical>(&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<T : Numerical>(&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<T: Numerical + std::ops::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<T: Numerical + std::ops::Sub>(&mut self) -> Result<(), InvokeErr> {
[INFO] [stdout]     |                         +++++++++++++++
[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[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<T: Numerical + std::ops::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<T: Numerical + std::ops::Div>(&mut self) -> Result<(), InvokeErr> {
[INFO] [stdout]     |                         +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `from_be` found for enum `Result<T, E>` 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<T : Numerical>(&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[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[E0308]: mismatched types
[INFO] [stdout]    --> src/lib.rs:364:23
[INFO] [stdout]     |
[INFO] [stdout] 361 |     fn cpy<T : Numerical>(&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[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]: 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<T: Numerical + std::ops::Add>(&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<T : Numerical + std::ops::Shl<i8>>(&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[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<T : Numerical + std::ops::Shr<i8>>(&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<T: Numerical + std::ops::Sub>(&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/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:566:4
[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[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<T: Numerical + std::ops::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<T: Numerical + std::ops::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[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<T : Numerical + std::ops::Shl<i8>>(&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[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<T : Numerical + std::ops::Shr<i8>>(&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/18c1d185ac7a6a3bf399296b35e4b2736809a756/library/core/src/result.rs:566:4
[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)]` (part of `#[warn(unused)]`) 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: `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] [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)]` (part of `#[warn(unused)]`) 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] 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 test) due to 48 previous errors; 10 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `anyvm` (lib) due to 48 previous errors; 8 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "4f88bffabc860e54dcc3ba2619268b021b05d3b9cffa9c4f3ca80ca3aeb2208b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4f88bffabc860e54dcc3ba2619268b021b05d3b9cffa9c4f3ca80ca3aeb2208b", kill_on_drop: false }`
[INFO] [stdout] 4f88bffabc860e54dcc3ba2619268b021b05d3b9cffa9c4f3ca80ca3aeb2208b
