[INFO] updating cached repository araneavalon/cpu-emulator [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/araneavalon/cpu-emulator [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/araneavalon/cpu-emulator" "work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/araneavalon/cpu-emulator"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/araneavalon/cpu-emulator'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/araneavalon/cpu-emulator" "work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/araneavalon/cpu-emulator"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/araneavalon/cpu-emulator'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 80bab73fa7173f8df42c42db8de0e8f4ff918069 [INFO] sha for GitHub repo araneavalon/cpu-emulator: 80bab73fa7173f8df42c42db8de0e8f4ff918069 [INFO] validating manifest of araneavalon/cpu-emulator on toolchain master#60960a260f7b5c695fd0717311d72ce62dd4eb43 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of araneavalon/cpu-emulator on toolchain try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing araneavalon/cpu-emulator [INFO] removed path dependency assembler from araneavalon/cpu-emulator [INFO] finished frobbing araneavalon/cpu-emulator [INFO] frobbed toml for araneavalon/cpu-emulator written to work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/araneavalon/cpu-emulator/Cargo.toml [INFO] started frobbing araneavalon/cpu-emulator [INFO] removed path dependency assembler from araneavalon/cpu-emulator [INFO] finished frobbing araneavalon/cpu-emulator [INFO] frobbed toml for araneavalon/cpu-emulator written to work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/araneavalon/cpu-emulator/Cargo.toml [INFO] crate araneavalon/cpu-emulator already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Updating crates.io index [INFO] [stderr] error: the lock file /mnt/big/crater/work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/araneavalon/cpu-emulator/Cargo.lock needs to be updated but --locked was passed to prevent this [INFO] the lockfile is outdated, regenerating it [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking araneavalon/cpu-emulator against try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 for pr-63376 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63376/worker-3/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/araneavalon/cpu-emulator:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 98e82e2cd1214d5116fec89cfff4253a568d3d177d1a829cd20a3c6eb7e6874c [INFO] running `"docker" "start" "-a" "98e82e2cd1214d5116fec89cfff4253a568d3d177d1a829cd20a3c6eb7e6874c"` [INFO] [stderr] warning: dependency (assembler) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions [INFO] [stderr] Checking likely v0.1.0 [INFO] [stderr] Checking assembler v0.10.1 [INFO] [stderr] Checking cpu v0.1.0 (/opt/crater/workdir) [INFO] [stderr] error[E0425]: cannot find function `from_file` in crate `assembler` [INFO] [stderr] --> src/main.rs:133:26 [INFO] [stderr] | [INFO] [stderr] 133 | match assembler::from_file(filename) { [INFO] [stderr] | ^^^^^^^^^ not found in `assembler` [INFO] [stderr] [INFO] [stderr] error[E0603]: trait `Error` is private [INFO] [stderr] --> src/error.rs:29:32 [INFO] [stderr] | [INFO] [stderr] 29 | Assembler(String, assembler::Error), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/error.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | Assembler(String, assembler::Error), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn assembler::Error` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/io/screen.rs:139:14 [INFO] [stderr] | [INFO] [stderr] 139 | 0xC000 ... 0xDDFF | [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/io/screen.rs:140:14 [INFO] [stderr] | [INFO] [stderr] 140 | 0xDE00 ... 0xDE03 => true, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/io/screen.rs:147:14 [INFO] [stderr] | [INFO] [stderr] 147 | 0xC000 ... 0xDDFF => Ok(self.data[(address as usize) - RAM_OFFSET]), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/io/screen.rs:158:14 [INFO] [stderr] | [INFO] [stderr] 158 | 0xC000 ... 0xDDFF => self.data[(address as usize) - RAM_OFFSET] = value, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] error[E0425]: cannot find function `from_file` in crate `assembler` [INFO] [stderr] --> src/main.rs:133:26 [INFO] [stderr] | [INFO] [stderr] 133 | match assembler::from_file(filename) { [INFO] [stderr] | ^^^^^^^^^ not found in `assembler` [INFO] [stderr] [INFO] [stderr] error[E0603]: trait `Error` is private [INFO] [stderr] --> src/error.rs:29:32 [INFO] [stderr] | [INFO] [stderr] 29 | Assembler(String, assembler::Error), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/error.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | Assembler(String, assembler::Error), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn assembler::Error` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/io/screen.rs:139:14 [INFO] [stderr] | [INFO] [stderr] 139 | 0xC000 ... 0xDDFF | [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/io/screen.rs:140:14 [INFO] [stderr] | [INFO] [stderr] 140 | 0xDE00 ... 0xDE03 => true, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/io/screen.rs:147:14 [INFO] [stderr] | [INFO] [stderr] 147 | 0xC000 ... 0xDDFF => Ok(self.data[(address as usize) - RAM_OFFSET]), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/io/screen.rs:158:14 [INFO] [stderr] | [INFO] [stderr] 158 | 0xC000 ... 0xDDFF => self.data[(address as usize) - RAM_OFFSET] = value, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/error.rs:82:6 [INFO] [stderr] | [INFO] [stderr] 82 | impl From for Error { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/error.rs:88:6 [INFO] [stderr] | [INFO] [stderr] 88 | impl From for Error { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/error.rs:94:6 [INFO] [stderr] | [INFO] [stderr] 94 | impl From for Error { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/error.rs:100:6 [INFO] [stderr] | [INFO] [stderr] 100 | impl From for fmt::Error { [INFO] [stderr] | ^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/main.rs:62:1 [INFO] [stderr] | [INFO] [stderr] 62 | / fn run(cpu: &mut Cpu) -> Result<()> { [INFO] [stderr] 63 | | let bg = Color::RGB(255, 255, 255); [INFO] [stderr] 64 | | let fg = Color::RGB( 0, 0, 0); [INFO] [stderr] 65 | | [INFO] [stderr] ... | [INFO] [stderr] 106 | | Ok(()) [INFO] [stderr] 107 | | } [INFO] [stderr] | |_^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/main.rs:109:1 [INFO] [stderr] | [INFO] [stderr] 109 | / fn init() -> Result<()> { [INFO] [stderr] 110 | | let args = App::new("cpu-emulator") [INFO] [stderr] 111 | | .arg(Arg::with_name("asm") [INFO] [stderr] 112 | | .long("asm") [INFO] [stderr] ... | [INFO] [stderr] 158 | | result [INFO] [stderr] 159 | | } [INFO] [stderr] | |_^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/error.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | Assembler(String, assembler::Error), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: no field of an enum variant may have a dynamically sized type [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/mod.rs:27:3 [INFO] [stderr] | [INFO] [stderr] 27 | fn load(&mut self, value: u16) -> Result<()>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/mod.rs:28:3 [INFO] [stderr] | [INFO] [stderr] 28 | fn data(&self) -> Result> { Ok(None) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/mod.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | fn address(&self) -> Result> { Ok(None) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/addressable.rs:8:3 [INFO] [stderr] | [INFO] [stderr] 8 | fn read(&self, address: u16) -> Result; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/addressable.rs:9:3 [INFO] [stderr] | [INFO] [stderr] 9 | fn peek(&self, address: u16) -> Result { self.read(address) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/addressable.rs:10:3 [INFO] [stderr] | [INFO] [stderr] 10 | fn write(&mut self, address: u16, value: u16) -> Result<()>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/address_register.rs:51:3 [INFO] [stderr] | [INFO] [stderr] 51 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 52 | | if self.control.a.load { [INFO] [stderr] 53 | | self.value = value; [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | Ok(()) [INFO] [stderr] 56 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/address_register.rs:58:3 [INFO] [stderr] | [INFO] [stderr] 58 | / fn address(&self) -> Result> { [INFO] [stderr] 59 | | if let Address::A = self.control.address { [INFO] [stderr] 60 | | Ok(Some(self.value)) [INFO] [stderr] 61 | | } else { [INFO] [stderr] 62 | | Ok(None) [INFO] [stderr] 63 | | } [INFO] [stderr] 64 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/alu.rs:117:3 [INFO] [stderr] | [INFO] [stderr] 117 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 118 | | for i in 0..2 { [INFO] [stderr] 119 | | if self.control.alu.t[i].load { [INFO] [stderr] 120 | | self.t[i] = value; [INFO] [stderr] ... | [INFO] [stderr] 123 | | Ok(()) [INFO] [stderr] 124 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/alu.rs:126:3 [INFO] [stderr] | [INFO] [stderr] 126 | / fn data(&self) -> Result> { [INFO] [stderr] 127 | | if self.control.alu.out { [INFO] [stderr] 128 | | Ok(Some(self.calculate().0)) [INFO] [stderr] 129 | | } else { [INFO] [stderr] 130 | | Ok(None) [INFO] [stderr] 131 | | } [INFO] [stderr] 132 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/flags.rs:110:3 [INFO] [stderr] | [INFO] [stderr] 110 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 111 | | if self.control.flags.load { [INFO] [stderr] 112 | | for i in 0..16 { [INFO] [stderr] 113 | | self.flags[i] = ((value >> i) & 1) != 0; [INFO] [stderr] ... | [INFO] [stderr] 116 | | Ok(()) [INFO] [stderr] 117 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/flags.rs:119:3 [INFO] [stderr] | [INFO] [stderr] 119 | / fn data(&self) -> Result> { [INFO] [stderr] 120 | | if self.control.flags.out { [INFO] [stderr] 121 | | Ok(Some(self.value())) [INFO] [stderr] 122 | | } else { [INFO] [stderr] 123 | | Ok(None) [INFO] [stderr] 124 | | } [INFO] [stderr] 125 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/instruction_register.rs:62:3 [INFO] [stderr] | [INFO] [stderr] 62 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 63 | | if self.control.i.load { [INFO] [stderr] 64 | | self.value = value; [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | Ok(()) [INFO] [stderr] 67 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/instruction_register.rs:69:3 [INFO] [stderr] | [INFO] [stderr] 69 | / fn data(&self) -> Result> { [INFO] [stderr] 70 | | match self.control.i.mode { [INFO] [stderr] 71 | | IMode::SignedByte => Ok(Some((((self.value >> 3) & 0x00FF) as i8) as u16)), [INFO] [stderr] 72 | | IMode::UnsignedByte => Ok(Some((self.value >> 3) & 0x00FF)), [INFO] [stderr] ... | [INFO] [stderr] 77 | | } [INFO] [stderr] 78 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/link_register.rs:62:3 [INFO] [stderr] | [INFO] [stderr] 62 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 63 | | if self.control.lr.load { [INFO] [stderr] 64 | | self.value = value; [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | Ok(()) [INFO] [stderr] 67 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/link_register.rs:69:3 [INFO] [stderr] | [INFO] [stderr] 69 | / fn data(&self) -> Result> { [INFO] [stderr] 70 | | if self.control.lr.out { [INFO] [stderr] 71 | | Ok(Some(self.value)) [INFO] [stderr] 72 | | } else { [INFO] [stderr] 73 | | Ok(None) [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/program_counter.rs:66:3 [INFO] [stderr] | [INFO] [stderr] 66 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 67 | | if self.control.pc.load { [INFO] [stderr] 68 | | self.value = value; [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | Ok(()) [INFO] [stderr] 71 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/program_counter.rs:73:3 [INFO] [stderr] | [INFO] [stderr] 73 | / fn data(&self) -> Result> { [INFO] [stderr] 74 | | if self.control.pc.out { [INFO] [stderr] 75 | | Ok(Some(self.value)) [INFO] [stderr] 76 | | } else { [INFO] [stderr] 77 | | Ok(None) [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/program_counter.rs:81:3 [INFO] [stderr] | [INFO] [stderr] 81 | / fn address(&self) -> Result> { [INFO] [stderr] 82 | | if let Address::ProgramCounter = self.control.address { [INFO] [stderr] 83 | | Ok(Some(self.value)) [INFO] [stderr] 84 | | } else { [INFO] [stderr] 85 | | Ok(None) [INFO] [stderr] 86 | | } [INFO] [stderr] 87 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/register_file.rs:70:3 [INFO] [stderr] | [INFO] [stderr] 70 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 71 | | let register = self.control.register.load as usize; [INFO] [stderr] 72 | | if register < self.values.len() { [INFO] [stderr] 73 | | self.values[register] = value; [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | Ok(()) [INFO] [stderr] 76 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/register_file.rs:78:3 [INFO] [stderr] | [INFO] [stderr] 78 | / fn data(&self) -> Result> { [INFO] [stderr] 79 | | let register = self.control.register.out as usize; [INFO] [stderr] 80 | | if register < self.values.len() { [INFO] [stderr] 81 | | Ok(Some(self.values[register])) [INFO] [stderr] ... | [INFO] [stderr] 84 | | } [INFO] [stderr] 85 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/stack_pointers.rs:80:3 [INFO] [stderr] | [INFO] [stderr] 80 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 81 | | for i in 0..2 { [INFO] [stderr] 82 | | if self.control.s[i].load { [INFO] [stderr] 83 | | self.values[i] = value; [INFO] [stderr] ... | [INFO] [stderr] 86 | | Ok(()) [INFO] [stderr] 87 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/stack_pointers.rs:89:3 [INFO] [stderr] | [INFO] [stderr] 89 | / fn data(&self) -> Result> { [INFO] [stderr] 90 | | for i in 0..2 { [INFO] [stderr] 91 | | if self.control.s[i].out { [INFO] [stderr] 92 | | return Ok(Some(self.values[i])) [INFO] [stderr] ... | [INFO] [stderr] 95 | | Ok(None) [INFO] [stderr] 96 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/stack_pointers.rs:98:3 [INFO] [stderr] | [INFO] [stderr] 98 | / fn address(&self) -> Result> { [INFO] [stderr] 99 | | match self.control.address { [INFO] [stderr] 100 | | Address::StackZero => Ok(Some(self.values[0])), [INFO] [stderr] 101 | | Address::StackOne => Ok(Some(self.values[1])), [INFO] [stderr] 102 | | _ => Ok(None), [INFO] [stderr] 103 | | } [INFO] [stderr] 104 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/ram.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | / fn read(&self, address: u16) -> Result { [INFO] [stderr] 30 | | Ok(self.data[(address as usize) - RAM_OFFSET]) [INFO] [stderr] 31 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/ram.rs:33:3 [INFO] [stderr] | [INFO] [stderr] 33 | / fn write(&mut self, address: u16, value: u16) -> Result<()> { [INFO] [stderr] 34 | | self.data[(address as usize) - RAM_OFFSET] = value; [INFO] [stderr] 35 | | Ok(()) [INFO] [stderr] 36 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/rom.rs:36:3 [INFO] [stderr] | [INFO] [stderr] 36 | / fn read(&self, address: u16) -> Result { [INFO] [stderr] 37 | | Ok(self.data[(address as usize) - ROM_OFFSET]) [INFO] [stderr] 38 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/rom.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | / fn write(&mut self, address: u16, _: u16) -> Result<()> { [INFO] [stderr] 41 | | Err(Error::InvalidWrite(address, "Unable to write ROM.")) [INFO] [stderr] 42 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:84:3 [INFO] [stderr] | [INFO] [stderr] 84 | / pub fn screen(&self) -> Result<&Screen> { [INFO] [stderr] 85 | | self.io.screen() [INFO] [stderr] 86 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | / pub fn keyboard(&mut self) -> Result<&mut Keyboard> { [INFO] [stderr] 89 | | self.io.keyboard() [INFO] [stderr] 90 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:92:3 [INFO] [stderr] | [INFO] [stderr] 92 | / fn component(&self, address: u16) -> Result<&dyn Addressable> { [INFO] [stderr] 93 | | if self.ram.valid(address) { [INFO] [stderr] 94 | | Ok(&self.ram) [INFO] [stderr] 95 | | } else if self.rom.valid(address) { [INFO] [stderr] ... | [INFO] [stderr] 101 | | } [INFO] [stderr] 102 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:104:3 [INFO] [stderr] | [INFO] [stderr] 104 | / fn component_mut(&mut self, address: u16) -> Result<&mut dyn Addressable> { [INFO] [stderr] 105 | | if self.ram.valid(address) { [INFO] [stderr] 106 | | Ok(&mut self.ram) [INFO] [stderr] 107 | | } else if self.rom.valid(address) { [INFO] [stderr] ... | [INFO] [stderr] 113 | | } [INFO] [stderr] 114 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:126:3 [INFO] [stderr] | [INFO] [stderr] 126 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 127 | | if self.control.memory.load { [INFO] [stderr] 128 | | let address = self.address; [INFO] [stderr] 129 | | self.component_mut(address)?.write(address, value) [INFO] [stderr] ... | [INFO] [stderr] 132 | | } [INFO] [stderr] 133 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:135:3 [INFO] [stderr] | [INFO] [stderr] 135 | / fn data(&self) -> Result> { [INFO] [stderr] 136 | | if self.control.memory.out { [INFO] [stderr] 137 | | let address = self.address; [INFO] [stderr] 138 | | Ok(Some(self.component(address)?.read(address)?)) [INFO] [stderr] ... | [INFO] [stderr] 141 | | } [INFO] [stderr] 142 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/keyboard.rs:167:3 [INFO] [stderr] | [INFO] [stderr] 167 | / fn read(&self, address: u16) -> Result { [INFO] [stderr] 168 | | match address { [INFO] [stderr] 169 | | 0xDE04 if self.keys.borrow().len() > 0 => Ok(self.keys.borrow_mut().remove(0)), [INFO] [stderr] 170 | | 0xDE04 => Ok(0x0000), [INFO] [stderr] 171 | | _ => Err(Error::InvalidRead(address, "Invalid read from Keyboard.")), [INFO] [stderr] 172 | | } [INFO] [stderr] 173 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/keyboard.rs:175:3 [INFO] [stderr] | [INFO] [stderr] 175 | / fn peek(&self, address: u16) -> Result { [INFO] [stderr] 176 | | match address { [INFO] [stderr] 177 | | 0xDE04 if self.keys.borrow().len() > 0 => Ok(self.keys.borrow()[0]), [INFO] [stderr] 178 | | 0xDE04 => Ok(0x0000), [INFO] [stderr] 179 | | _ => Err(Error::InvalidRead(address, "Invalid peek from Keyboard.")), [INFO] [stderr] 180 | | } [INFO] [stderr] 181 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/keyboard.rs:183:3 [INFO] [stderr] | [INFO] [stderr] 183 | / fn write(&mut self, address: u16, value: u16) -> Result<()> { [INFO] [stderr] 184 | | match address { [INFO] [stderr] 185 | | 0xDE04 => self.mode = value, [INFO] [stderr] 186 | | _ => return Err(Error::InvalidWrite(address, "Invalid write to Keyboard.")), [INFO] [stderr] 187 | | } [INFO] [stderr] 188 | | Ok(()) [INFO] [stderr] 189 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/screen.rs:108:3 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn draw(&self, canvas: &mut Canvas, _bg: Color, fg: Color) -> Result<()> { [INFO] [stderr] 109 | | canvas.set_draw_color(fg); [INFO] [stderr] 110 | | [INFO] [stderr] 111 | | let chars = self.chars(); [INFO] [stderr] ... | [INFO] [stderr] 128 | | Ok(()) [INFO] [stderr] 129 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/screen.rs:145:3 [INFO] [stderr] | [INFO] [stderr] 145 | / fn read(&self, address: u16) -> Result { [INFO] [stderr] 146 | | match address { [INFO] [stderr] 147 | | 0xC000 ... 0xDDFF => Ok(self.data[(address as usize) - RAM_OFFSET]), [INFO] [stderr] 148 | | 0xDE00 => Ok(self.mode), [INFO] [stderr] ... | [INFO] [stderr] 153 | | } [INFO] [stderr] 154 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/screen.rs:156:3 [INFO] [stderr] | [INFO] [stderr] 156 | / fn write(&mut self, address: u16, value: u16) -> Result<()> { [INFO] [stderr] 157 | | match address { [INFO] [stderr] 158 | | 0xC000 ... 0xDDFF => self.data[(address as usize) - RAM_OFFSET] = value, [INFO] [stderr] 159 | | 0xDE00 => self.mode = value, [INFO] [stderr] ... | [INFO] [stderr] 165 | | Ok(()) [INFO] [stderr] 166 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/mod.rs:42:3 [INFO] [stderr] | [INFO] [stderr] 42 | / pub fn screen(&self) -> Result<&Screen> { [INFO] [stderr] 43 | | Ok(&self.screen) [INFO] [stderr] 44 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/mod.rs:46:3 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn keyboard(&mut self) -> Result<&mut Keyboard> { [INFO] [stderr] 47 | | Ok(&mut self.keyboard) [INFO] [stderr] 48 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/mod.rs:60:3 [INFO] [stderr] | [INFO] [stderr] 60 | / fn read(&self, address: u16) -> Result { [INFO] [stderr] 61 | | if self.screen.valid(address) { [INFO] [stderr] 62 | | self.screen.read(address) [INFO] [stderr] 63 | | } else if self.keyboard.valid(address) { [INFO] [stderr] ... | [INFO] [stderr] 67 | | } [INFO] [stderr] 68 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/mod.rs:70:3 [INFO] [stderr] | [INFO] [stderr] 70 | / fn peek(&self, address: u16) -> Result { [INFO] [stderr] 71 | | if self.screen.valid(address) { [INFO] [stderr] 72 | | self.screen.peek(address) [INFO] [stderr] 73 | | } else if self.keyboard.valid(address) { [INFO] [stderr] ... | [INFO] [stderr] 77 | | } [INFO] [stderr] 78 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/mod.rs:80:3 [INFO] [stderr] | [INFO] [stderr] 80 | / fn write(&mut self, address: u16, value: u16) -> Result<()> { [INFO] [stderr] 81 | | if self.screen.valid(address) { [INFO] [stderr] 82 | | self.screen.write(address, value) [INFO] [stderr] 83 | | } else if self.keyboard.valid(address) { [INFO] [stderr] ... | [INFO] [stderr] 87 | | } [INFO] [stderr] 88 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:69:3 [INFO] [stderr] | [INFO] [stderr] 69 | / fn decode(&self, op: u16, d: bool, c: &mut Control) -> Result<()> { [INFO] [stderr] 70 | | match self { [INFO] [stderr] 71 | | DataSelect::None => (), [INFO] [stderr] 72 | | [INFO] [stderr] ... | [INFO] [stderr] 146 | | Ok(()) [INFO] [stderr] 147 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:149:3 [INFO] [stderr] | [INFO] [stderr] 149 | / fn parse_register(op: u16, offset: u16) -> Result { [INFO] [stderr] 150 | | match (op >> offset) & 0x0007 { [INFO] [stderr] 151 | | 0x0 => Ok(control::Register::Zero), [INFO] [stderr] 152 | | 0x1 => Ok(control::Register::One), [INFO] [stderr] ... | [INFO] [stderr] 160 | | } [INFO] [stderr] 161 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:197:3 [INFO] [stderr] | [INFO] [stderr] 197 | / fn decode(&self, op: u16, c: &mut Control) -> Result<()> { [INFO] [stderr] 198 | | match self { [INFO] [stderr] 199 | | AluMode::None => (), [INFO] [stderr] 200 | | [INFO] [stderr] ... | [INFO] [stderr] 221 | | Ok(()) [INFO] [stderr] 222 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:224:3 [INFO] [stderr] | [INFO] [stderr] 224 | / fn decode_binary(op: u16, c: &mut Control) -> Result<()> { [INFO] [stderr] 225 | | match op { [INFO] [stderr] 226 | | 0 => c.alu.mode = control::AluMode::Add, // ADD [INFO] [stderr] 227 | | 1 => c.alu.mode = control::AluMode::And, // AND [INFO] [stderr] ... | [INFO] [stderr] 262 | | Ok(()) [INFO] [stderr] 263 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:265:3 [INFO] [stderr] | [INFO] [stderr] 265 | / fn decode_unary(op: u16, c: &mut Control) -> Result<()> { [INFO] [stderr] 266 | | match op { [INFO] [stderr] 267 | | 0b000 => { // NEG [INFO] [stderr] 268 | | c.alu.mode = control::AluMode::Add; [INFO] [stderr] ... | [INFO] [stderr] 295 | | Ok(()) [INFO] [stderr] 296 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:336:3 [INFO] [stderr] | [INFO] [stderr] 336 | / pub fn decode(&self, op: u16, branch: Option<(bool, u16)>) -> Result { [INFO] [stderr] 337 | | let mut c = Control::new(); [INFO] [stderr] 338 | | [INFO] [stderr] 339 | | self.address.decode(op, &mut c); [INFO] [stderr] ... | [INFO] [stderr] 381 | | Ok(c) [INFO] [stderr] 382 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:87:3 [INFO] [stderr] | [INFO] [stderr] 87 | / pub fn decode(&self, microcode: &MicrocodeArray, op: u16) -> Result { [INFO] [stderr] 88 | | match self { [INFO] [stderr] 89 | | Instruction::Stack(v) => v.decode(microcode, op), [INFO] [stderr] 90 | | Instruction::Normal(v) => v.decode(microcode, op), [INFO] [stderr] 91 | | Instruction::A(v) => v.decode(microcode, op), [INFO] [stderr] 92 | | } [INFO] [stderr] 93 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:107:3 [INFO] [stderr] | [INFO] [stderr] 107 | / pub fn decode(&self, microcode: &MicrocodeArray, op: u16) -> Result { [INFO] [stderr] 108 | | let mut out = Vec::new(); [INFO] [stderr] 109 | | [INFO] [stderr] 110 | | let direction = (op & 0x0400) != 0; [INFO] [stderr] ... | [INFO] [stderr] 135 | | Ok(Iter::new(self.name, op, out)) [INFO] [stderr] 136 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:151:3 [INFO] [stderr] | [INFO] [stderr] 151 | / pub fn decode(&self, microcode: &MicrocodeArray, op: u16) -> Result { [INFO] [stderr] 152 | | let branch = self.branch.mask(); [INFO] [stderr] 153 | | let vec = self.microcode.iter() [INFO] [stderr] 154 | | .map(|index| Ok((*index, microcode[*index].decode(op, branch)?))) [INFO] [stderr] 155 | | .collect::>>()?; [INFO] [stderr] 156 | | Ok(Iter::new(self.name, op, vec)) [INFO] [stderr] 157 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:176:3 [INFO] [stderr] | [INFO] [stderr] 176 | / pub fn decode(&self, microcode: &MicrocodeArray, op: u16) -> Result { [INFO] [stderr] 177 | | let mode = ARGUMENT_DECODE_TABLE[((op as usize) & 0x03C0) >> 6]; [INFO] [stderr] 178 | | let branch = self.branch.mask(); [INFO] [stderr] 179 | | let vec = self.microcode[mode].1.iter() [INFO] [stderr] ... | [INFO] [stderr] 182 | | Ok(Iter::new(self.microcode[mode].0, op, vec)) [INFO] [stderr] 183 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:230:3 [INFO] [stderr] | [INFO] [stderr] 230 | / pub fn new(microcode: &MicrocodeArray) -> Result { [INFO] [stderr] 231 | | Ok(Instructions { [INFO] [stderr] 232 | | fetch: microcode[0].decode(0x0000, None)?, // Opcode doesn't matter for fetch. [INFO] [stderr] 233 | | init: Instructions::init_iter(microcode)?, [INFO] [stderr] 234 | | instructions: Instructions::array(), [INFO] [stderr] 235 | | }) [INFO] [stderr] 236 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:238:3 [INFO] [stderr] | [INFO] [stderr] 238 | / fn init_iter(microcode: &MicrocodeArray) -> Result { [INFO] [stderr] 239 | | Instruction::normal("INIT", Branch::None, vec![45, 43]).decode(microcode, 0x0000) [INFO] [stderr] 240 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:304:3 [INFO] [stderr] | [INFO] [stderr] 304 | / pub fn interrupt(&self, microcode: &MicrocodeArray, interrupt: u16) -> Result<(u16, Iter)> { [INFO] [stderr] 305 | | let op = 0x0400 | (interrupt << 3); [INFO] [stderr] 306 | | Ok((op, self.instructions[21].decode(µcode, op)?)) [INFO] [stderr] 307 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:309:3 [INFO] [stderr] | [INFO] [stderr] 309 | / pub fn decode(&self, microcode: &MicrocodeArray, op: u16) -> Result { [INFO] [stderr] 310 | | self.instructions[DECODE_TABLE[(op as usize) >> 7]].decode(µcode, op) [INFO] [stderr] 311 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/mod.rs:37:3 [INFO] [stderr] | [INFO] [stderr] 37 | / pub fn new() -> Result { [INFO] [stderr] 38 | | let microcode = self::microcode::array(); [INFO] [stderr] 39 | | Ok(ControlLogic { [INFO] [stderr] 40 | | microcode, [INFO] [stderr] ... | [INFO] [stderr] 47 | | }) [INFO] [stderr] 48 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/mod.rs:50:3 [INFO] [stderr] | [INFO] [stderr] 50 | / pub fn interrupt(&mut self, interrupt: u16) -> Result<()> { [INFO] [stderr] 51 | | if interrupt > 7 { [INFO] [stderr] 52 | | Err(Error::InvalidInterrupt(interrupt)) [INFO] [stderr] 53 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 56 | | } [INFO] [stderr] 57 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/mod.rs:59:3 [INFO] [stderr] | [INFO] [stderr] 59 | / pub fn decode(&mut self, op: u16, flags: &Flags, ir: &mut InstructionRegister) -> Result { [INFO] [stderr] 60 | | match &mut self.state { [INFO] [stderr] 61 | | State::Fetch => { [INFO] [stderr] 62 | | let instruction = self.instructions.decode(&self.microcode, op)?; [INFO] [stderr] ... | [INFO] [stderr] 98 | | Ok(out) [INFO] [stderr] 99 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | / pub fn new(hz: f64, rom: Vec) -> Result { [INFO] [stderr] 53 | | Ok(Cpu { [INFO] [stderr] 54 | | hz: hz, [INFO] [stderr] 55 | | clock: Duration::from_nanos((1_000_000_000.0 / (hz * 2.0)) as u64), [INFO] [stderr] ... | [INFO] [stderr] 70 | | }) [INFO] [stderr] 71 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:94:3 [INFO] [stderr] | [INFO] [stderr] 94 | / fn load(&mut self, value: Option) -> Result<()> { [INFO] [stderr] 95 | | if let Some(value) = value { [INFO] [stderr] 96 | | for i in self.components_mut() { [INFO] [stderr] 97 | | i.load(value)?; [INFO] [stderr] ... | [INFO] [stderr] 100 | | Ok(()) [INFO] [stderr] 101 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:103:3 [INFO] [stderr] | [INFO] [stderr] 103 | / fn data(&mut self) -> Result> { [INFO] [stderr] 104 | | let mut out = None; [INFO] [stderr] 105 | | for component in self.components() { [INFO] [stderr] 106 | | match (out, component.data()?) { [INFO] [stderr] ... | [INFO] [stderr] 118 | | } [INFO] [stderr] 119 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:121:3 [INFO] [stderr] | [INFO] [stderr] 121 | / fn address(&self) -> Result { [INFO] [stderr] 122 | | let mut out = None; [INFO] [stderr] 123 | | for component in self.components() { [INFO] [stderr] 124 | | match (out, component.address()?) { [INFO] [stderr] ... | [INFO] [stderr] 133 | | } [INFO] [stderr] 134 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:136:3 [INFO] [stderr] | [INFO] [stderr] 136 | / fn half_cycle(&mut self) -> Result<()> { [INFO] [stderr] 137 | | let c = self.control.decode(self.i.get(), &self.flags, &mut self.i)?; [INFO] [stderr] 138 | | self.set_control(c); [INFO] [stderr] 139 | | self.memory.set_address(self.address()?); [INFO] [stderr] 140 | | self.lr.link(self.pc.link()); [INFO] [stderr] 141 | | Ok(()) [INFO] [stderr] 142 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:144:3 [INFO] [stderr] | [INFO] [stderr] 144 | / fn cycle(&mut self) -> Result<()> { [INFO] [stderr] 145 | | let data = self.data()?; [INFO] [stderr] 146 | | self.load(data)?; [INFO] [stderr] 147 | | self.flags.set_alu(self.alu.get_flags()); [INFO] [stderr] 148 | | Ok(()) [INFO] [stderr] 149 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:155:3 [INFO] [stderr] | [INFO] [stderr] 155 | / pub fn run(&mut self, cycles: u32) -> Result<()> { [INFO] [stderr] 156 | | if !self.halt { [INFO] [stderr] 157 | | for cycle in 0..cycles { [INFO] [stderr] 158 | | thread::sleep(self.clock); [INFO] [stderr] ... | [INFO] [stderr] 174 | | } [INFO] [stderr] 175 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:181:3 [INFO] [stderr] | [INFO] [stderr] 181 | / pub fn screen(&self) -> Result<&Screen> { [INFO] [stderr] 182 | | self.memory.screen() [INFO] [stderr] 183 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:185:3 [INFO] [stderr] | [INFO] [stderr] 185 | / pub fn keyboard(&mut self) -> Result<&mut Keyboard> { [INFO] [stderr] 186 | | self.memory.keyboard() [INFO] [stderr] 187 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:189:3 [INFO] [stderr] | [INFO] [stderr] 189 | / pub fn interrupt(&mut self, interrupt: u16) -> Result<()> { [INFO] [stderr] 190 | | self.control.interrupt(interrupt) [INFO] [stderr] 191 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error: aborting due to 81 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0425, E0603. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: Could not compile `cpu`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/error.rs:82:6 [INFO] [stderr] | [INFO] [stderr] 82 | impl From for Error { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/error.rs:88:6 [INFO] [stderr] | [INFO] [stderr] 88 | impl From for Error { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/error.rs:94:6 [INFO] [stderr] | [INFO] [stderr] 94 | impl From for Error { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/error.rs:100:6 [INFO] [stderr] | [INFO] [stderr] 100 | impl From for fmt::Error { [INFO] [stderr] | ^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/main.rs:62:1 [INFO] [stderr] | [INFO] [stderr] 62 | / fn run(cpu: &mut Cpu) -> Result<()> { [INFO] [stderr] 63 | | let bg = Color::RGB(255, 255, 255); [INFO] [stderr] 64 | | let fg = Color::RGB( 0, 0, 0); [INFO] [stderr] 65 | | [INFO] [stderr] ... | [INFO] [stderr] 106 | | Ok(()) [INFO] [stderr] 107 | | } [INFO] [stderr] | |_^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/main.rs:109:1 [INFO] [stderr] | [INFO] [stderr] 109 | / fn init() -> Result<()> { [INFO] [stderr] 110 | | let args = App::new("cpu-emulator") [INFO] [stderr] 111 | | .arg(Arg::with_name("asm") [INFO] [stderr] 112 | | .long("asm") [INFO] [stderr] ... | [INFO] [stderr] 158 | | result [INFO] [stderr] 159 | | } [INFO] [stderr] | |_^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/error.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | Assembler(String, assembler::Error), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: no field of an enum variant may have a dynamically sized type [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/mod.rs:27:3 [INFO] [stderr] | [INFO] [stderr] 27 | fn load(&mut self, value: u16) -> Result<()>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/mod.rs:28:3 [INFO] [stderr] | [INFO] [stderr] 28 | fn data(&self) -> Result> { Ok(None) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/mod.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | fn address(&self) -> Result> { Ok(None) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/addressable.rs:8:3 [INFO] [stderr] | [INFO] [stderr] 8 | fn read(&self, address: u16) -> Result; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/addressable.rs:9:3 [INFO] [stderr] | [INFO] [stderr] 9 | fn peek(&self, address: u16) -> Result { self.read(address) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/addressable.rs:10:3 [INFO] [stderr] | [INFO] [stderr] 10 | fn write(&mut self, address: u16, value: u16) -> Result<()>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/address_register.rs:51:3 [INFO] [stderr] | [INFO] [stderr] 51 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 52 | | if self.control.a.load { [INFO] [stderr] 53 | | self.value = value; [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | Ok(()) [INFO] [stderr] 56 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/address_register.rs:58:3 [INFO] [stderr] | [INFO] [stderr] 58 | / fn address(&self) -> Result> { [INFO] [stderr] 59 | | if let Address::A = self.control.address { [INFO] [stderr] 60 | | Ok(Some(self.value)) [INFO] [stderr] 61 | | } else { [INFO] [stderr] 62 | | Ok(None) [INFO] [stderr] 63 | | } [INFO] [stderr] 64 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/alu.rs:117:3 [INFO] [stderr] | [INFO] [stderr] 117 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 118 | | for i in 0..2 { [INFO] [stderr] 119 | | if self.control.alu.t[i].load { [INFO] [stderr] 120 | | self.t[i] = value; [INFO] [stderr] ... | [INFO] [stderr] 123 | | Ok(()) [INFO] [stderr] 124 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/alu.rs:126:3 [INFO] [stderr] | [INFO] [stderr] 126 | / fn data(&self) -> Result> { [INFO] [stderr] 127 | | if self.control.alu.out { [INFO] [stderr] 128 | | Ok(Some(self.calculate().0)) [INFO] [stderr] 129 | | } else { [INFO] [stderr] 130 | | Ok(None) [INFO] [stderr] 131 | | } [INFO] [stderr] 132 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/flags.rs:110:3 [INFO] [stderr] | [INFO] [stderr] 110 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 111 | | if self.control.flags.load { [INFO] [stderr] 112 | | for i in 0..16 { [INFO] [stderr] 113 | | self.flags[i] = ((value >> i) & 1) != 0; [INFO] [stderr] ... | [INFO] [stderr] 116 | | Ok(()) [INFO] [stderr] 117 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/flags.rs:119:3 [INFO] [stderr] | [INFO] [stderr] 119 | / fn data(&self) -> Result> { [INFO] [stderr] 120 | | if self.control.flags.out { [INFO] [stderr] 121 | | Ok(Some(self.value())) [INFO] [stderr] 122 | | } else { [INFO] [stderr] 123 | | Ok(None) [INFO] [stderr] 124 | | } [INFO] [stderr] 125 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/instruction_register.rs:62:3 [INFO] [stderr] | [INFO] [stderr] 62 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 63 | | if self.control.i.load { [INFO] [stderr] 64 | | self.value = value; [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | Ok(()) [INFO] [stderr] 67 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/instruction_register.rs:69:3 [INFO] [stderr] | [INFO] [stderr] 69 | / fn data(&self) -> Result> { [INFO] [stderr] 70 | | match self.control.i.mode { [INFO] [stderr] 71 | | IMode::SignedByte => Ok(Some((((self.value >> 3) & 0x00FF) as i8) as u16)), [INFO] [stderr] 72 | | IMode::UnsignedByte => Ok(Some((self.value >> 3) & 0x00FF)), [INFO] [stderr] ... | [INFO] [stderr] 77 | | } [INFO] [stderr] 78 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/link_register.rs:62:3 [INFO] [stderr] | [INFO] [stderr] 62 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 63 | | if self.control.lr.load { [INFO] [stderr] 64 | | self.value = value; [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | Ok(()) [INFO] [stderr] 67 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/link_register.rs:69:3 [INFO] [stderr] | [INFO] [stderr] 69 | / fn data(&self) -> Result> { [INFO] [stderr] 70 | | if self.control.lr.out { [INFO] [stderr] 71 | | Ok(Some(self.value)) [INFO] [stderr] 72 | | } else { [INFO] [stderr] 73 | | Ok(None) [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/program_counter.rs:66:3 [INFO] [stderr] | [INFO] [stderr] 66 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 67 | | if self.control.pc.load { [INFO] [stderr] 68 | | self.value = value; [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | Ok(()) [INFO] [stderr] 71 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/program_counter.rs:73:3 [INFO] [stderr] | [INFO] [stderr] 73 | / fn data(&self) -> Result> { [INFO] [stderr] 74 | | if self.control.pc.out { [INFO] [stderr] 75 | | Ok(Some(self.value)) [INFO] [stderr] 76 | | } else { [INFO] [stderr] 77 | | Ok(None) [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/program_counter.rs:81:3 [INFO] [stderr] | [INFO] [stderr] 81 | / fn address(&self) -> Result> { [INFO] [stderr] 82 | | if let Address::ProgramCounter = self.control.address { [INFO] [stderr] 83 | | Ok(Some(self.value)) [INFO] [stderr] 84 | | } else { [INFO] [stderr] 85 | | Ok(None) [INFO] [stderr] 86 | | } [INFO] [stderr] 87 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/register_file.rs:70:3 [INFO] [stderr] | [INFO] [stderr] 70 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 71 | | let register = self.control.register.load as usize; [INFO] [stderr] 72 | | if register < self.values.len() { [INFO] [stderr] 73 | | self.values[register] = value; [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | Ok(()) [INFO] [stderr] 76 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/register_file.rs:78:3 [INFO] [stderr] | [INFO] [stderr] 78 | / fn data(&self) -> Result> { [INFO] [stderr] 79 | | let register = self.control.register.out as usize; [INFO] [stderr] 80 | | if register < self.values.len() { [INFO] [stderr] 81 | | Ok(Some(self.values[register])) [INFO] [stderr] ... | [INFO] [stderr] 84 | | } [INFO] [stderr] 85 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/stack_pointers.rs:80:3 [INFO] [stderr] | [INFO] [stderr] 80 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 81 | | for i in 0..2 { [INFO] [stderr] 82 | | if self.control.s[i].load { [INFO] [stderr] 83 | | self.values[i] = value; [INFO] [stderr] ... | [INFO] [stderr] 86 | | Ok(()) [INFO] [stderr] 87 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/stack_pointers.rs:89:3 [INFO] [stderr] | [INFO] [stderr] 89 | / fn data(&self) -> Result> { [INFO] [stderr] 90 | | for i in 0..2 { [INFO] [stderr] 91 | | if self.control.s[i].out { [INFO] [stderr] 92 | | return Ok(Some(self.values[i])) [INFO] [stderr] ... | [INFO] [stderr] 95 | | Ok(None) [INFO] [stderr] 96 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/components/stack_pointers.rs:98:3 [INFO] [stderr] | [INFO] [stderr] 98 | / fn address(&self) -> Result> { [INFO] [stderr] 99 | | match self.control.address { [INFO] [stderr] 100 | | Address::StackZero => Ok(Some(self.values[0])), [INFO] [stderr] 101 | | Address::StackOne => Ok(Some(self.values[1])), [INFO] [stderr] 102 | | _ => Ok(None), [INFO] [stderr] 103 | | } [INFO] [stderr] 104 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/ram.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | / fn read(&self, address: u16) -> Result { [INFO] [stderr] 30 | | Ok(self.data[(address as usize) - RAM_OFFSET]) [INFO] [stderr] 31 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/ram.rs:33:3 [INFO] [stderr] | [INFO] [stderr] 33 | / fn write(&mut self, address: u16, value: u16) -> Result<()> { [INFO] [stderr] 34 | | self.data[(address as usize) - RAM_OFFSET] = value; [INFO] [stderr] 35 | | Ok(()) [INFO] [stderr] 36 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/rom.rs:36:3 [INFO] [stderr] | [INFO] [stderr] 36 | / fn read(&self, address: u16) -> Result { [INFO] [stderr] 37 | | Ok(self.data[(address as usize) - ROM_OFFSET]) [INFO] [stderr] 38 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/rom.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | / fn write(&mut self, address: u16, _: u16) -> Result<()> { [INFO] [stderr] 41 | | Err(Error::InvalidWrite(address, "Unable to write ROM.")) [INFO] [stderr] 42 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:84:3 [INFO] [stderr] | [INFO] [stderr] 84 | / pub fn screen(&self) -> Result<&Screen> { [INFO] [stderr] 85 | | self.io.screen() [INFO] [stderr] 86 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | / pub fn keyboard(&mut self) -> Result<&mut Keyboard> { [INFO] [stderr] 89 | | self.io.keyboard() [INFO] [stderr] 90 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:92:3 [INFO] [stderr] | [INFO] [stderr] 92 | / fn component(&self, address: u16) -> Result<&dyn Addressable> { [INFO] [stderr] 93 | | if self.ram.valid(address) { [INFO] [stderr] 94 | | Ok(&self.ram) [INFO] [stderr] 95 | | } else if self.rom.valid(address) { [INFO] [stderr] ... | [INFO] [stderr] 101 | | } [INFO] [stderr] 102 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:104:3 [INFO] [stderr] | [INFO] [stderr] 104 | / fn component_mut(&mut self, address: u16) -> Result<&mut dyn Addressable> { [INFO] [stderr] 105 | | if self.ram.valid(address) { [INFO] [stderr] 106 | | Ok(&mut self.ram) [INFO] [stderr] 107 | | } else if self.rom.valid(address) { [INFO] [stderr] ... | [INFO] [stderr] 113 | | } [INFO] [stderr] 114 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:126:3 [INFO] [stderr] | [INFO] [stderr] 126 | / fn load(&mut self, value: u16) -> Result<()> { [INFO] [stderr] 127 | | if self.control.memory.load { [INFO] [stderr] 128 | | let address = self.address; [INFO] [stderr] 129 | | self.component_mut(address)?.write(address, value) [INFO] [stderr] ... | [INFO] [stderr] 132 | | } [INFO] [stderr] 133 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/memory/mod.rs:135:3 [INFO] [stderr] | [INFO] [stderr] 135 | / fn data(&self) -> Result> { [INFO] [stderr] 136 | | if self.control.memory.out { [INFO] [stderr] 137 | | let address = self.address; [INFO] [stderr] 138 | | Ok(Some(self.component(address)?.read(address)?)) [INFO] [stderr] ... | [INFO] [stderr] 141 | | } [INFO] [stderr] 142 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/keyboard.rs:167:3 [INFO] [stderr] | [INFO] [stderr] 167 | / fn read(&self, address: u16) -> Result { [INFO] [stderr] 168 | | match address { [INFO] [stderr] 169 | | 0xDE04 if self.keys.borrow().len() > 0 => Ok(self.keys.borrow_mut().remove(0)), [INFO] [stderr] 170 | | 0xDE04 => Ok(0x0000), [INFO] [stderr] 171 | | _ => Err(Error::InvalidRead(address, "Invalid read from Keyboard.")), [INFO] [stderr] 172 | | } [INFO] [stderr] 173 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/keyboard.rs:175:3 [INFO] [stderr] | [INFO] [stderr] 175 | / fn peek(&self, address: u16) -> Result { [INFO] [stderr] 176 | | match address { [INFO] [stderr] 177 | | 0xDE04 if self.keys.borrow().len() > 0 => Ok(self.keys.borrow()[0]), [INFO] [stderr] 178 | | 0xDE04 => Ok(0x0000), [INFO] [stderr] 179 | | _ => Err(Error::InvalidRead(address, "Invalid peek from Keyboard.")), [INFO] [stderr] 180 | | } [INFO] [stderr] 181 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/keyboard.rs:183:3 [INFO] [stderr] | [INFO] [stderr] 183 | / fn write(&mut self, address: u16, value: u16) -> Result<()> { [INFO] [stderr] 184 | | match address { [INFO] [stderr] 185 | | 0xDE04 => self.mode = value, [INFO] [stderr] 186 | | _ => return Err(Error::InvalidWrite(address, "Invalid write to Keyboard.")), [INFO] [stderr] 187 | | } [INFO] [stderr] 188 | | Ok(()) [INFO] [stderr] 189 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/screen.rs:108:3 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn draw(&self, canvas: &mut Canvas, _bg: Color, fg: Color) -> Result<()> { [INFO] [stderr] 109 | | canvas.set_draw_color(fg); [INFO] [stderr] 110 | | [INFO] [stderr] 111 | | let chars = self.chars(); [INFO] [stderr] ... | [INFO] [stderr] 128 | | Ok(()) [INFO] [stderr] 129 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/screen.rs:145:3 [INFO] [stderr] | [INFO] [stderr] 145 | / fn read(&self, address: u16) -> Result { [INFO] [stderr] 146 | | match address { [INFO] [stderr] 147 | | 0xC000 ... 0xDDFF => Ok(self.data[(address as usize) - RAM_OFFSET]), [INFO] [stderr] 148 | | 0xDE00 => Ok(self.mode), [INFO] [stderr] ... | [INFO] [stderr] 153 | | } [INFO] [stderr] 154 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/screen.rs:156:3 [INFO] [stderr] | [INFO] [stderr] 156 | / fn write(&mut self, address: u16, value: u16) -> Result<()> { [INFO] [stderr] 157 | | match address { [INFO] [stderr] 158 | | 0xC000 ... 0xDDFF => self.data[(address as usize) - RAM_OFFSET] = value, [INFO] [stderr] 159 | | 0xDE00 => self.mode = value, [INFO] [stderr] ... | [INFO] [stderr] 165 | | Ok(()) [INFO] [stderr] 166 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/mod.rs:42:3 [INFO] [stderr] | [INFO] [stderr] 42 | / pub fn screen(&self) -> Result<&Screen> { [INFO] [stderr] 43 | | Ok(&self.screen) [INFO] [stderr] 44 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/mod.rs:46:3 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn keyboard(&mut self) -> Result<&mut Keyboard> { [INFO] [stderr] 47 | | Ok(&mut self.keyboard) [INFO] [stderr] 48 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/mod.rs:60:3 [INFO] [stderr] | [INFO] [stderr] 60 | / fn read(&self, address: u16) -> Result { [INFO] [stderr] 61 | | if self.screen.valid(address) { [INFO] [stderr] 62 | | self.screen.read(address) [INFO] [stderr] 63 | | } else if self.keyboard.valid(address) { [INFO] [stderr] ... | [INFO] [stderr] 67 | | } [INFO] [stderr] 68 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/mod.rs:70:3 [INFO] [stderr] | [INFO] [stderr] 70 | / fn peek(&self, address: u16) -> Result { [INFO] [stderr] 71 | | if self.screen.valid(address) { [INFO] [stderr] 72 | | self.screen.peek(address) [INFO] [stderr] 73 | | } else if self.keyboard.valid(address) { [INFO] [stderr] ... | [INFO] [stderr] 77 | | } [INFO] [stderr] 78 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/io/mod.rs:80:3 [INFO] [stderr] | [INFO] [stderr] 80 | / fn write(&mut self, address: u16, value: u16) -> Result<()> { [INFO] [stderr] 81 | | if self.screen.valid(address) { [INFO] [stderr] 82 | | self.screen.write(address, value) [INFO] [stderr] 83 | | } else if self.keyboard.valid(address) { [INFO] [stderr] ... | [INFO] [stderr] 87 | | } [INFO] [stderr] 88 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:69:3 [INFO] [stderr] | [INFO] [stderr] 69 | / fn decode(&self, op: u16, d: bool, c: &mut Control) -> Result<()> { [INFO] [stderr] 70 | | match self { [INFO] [stderr] 71 | | DataSelect::None => (), [INFO] [stderr] 72 | | [INFO] [stderr] ... | [INFO] [stderr] 146 | | Ok(()) [INFO] [stderr] 147 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:149:3 [INFO] [stderr] | [INFO] [stderr] 149 | / fn parse_register(op: u16, offset: u16) -> Result { [INFO] [stderr] 150 | | match (op >> offset) & 0x0007 { [INFO] [stderr] 151 | | 0x0 => Ok(control::Register::Zero), [INFO] [stderr] 152 | | 0x1 => Ok(control::Register::One), [INFO] [stderr] ... | [INFO] [stderr] 160 | | } [INFO] [stderr] 161 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:197:3 [INFO] [stderr] | [INFO] [stderr] 197 | / fn decode(&self, op: u16, c: &mut Control) -> Result<()> { [INFO] [stderr] 198 | | match self { [INFO] [stderr] 199 | | AluMode::None => (), [INFO] [stderr] 200 | | [INFO] [stderr] ... | [INFO] [stderr] 221 | | Ok(()) [INFO] [stderr] 222 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:224:3 [INFO] [stderr] | [INFO] [stderr] 224 | / fn decode_binary(op: u16, c: &mut Control) -> Result<()> { [INFO] [stderr] 225 | | match op { [INFO] [stderr] 226 | | 0 => c.alu.mode = control::AluMode::Add, // ADD [INFO] [stderr] 227 | | 1 => c.alu.mode = control::AluMode::And, // AND [INFO] [stderr] ... | [INFO] [stderr] 262 | | Ok(()) [INFO] [stderr] 263 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:265:3 [INFO] [stderr] | [INFO] [stderr] 265 | / fn decode_unary(op: u16, c: &mut Control) -> Result<()> { [INFO] [stderr] 266 | | match op { [INFO] [stderr] 267 | | 0b000 => { // NEG [INFO] [stderr] 268 | | c.alu.mode = control::AluMode::Add; [INFO] [stderr] ... | [INFO] [stderr] 295 | | Ok(()) [INFO] [stderr] 296 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/microcode.rs:336:3 [INFO] [stderr] | [INFO] [stderr] 336 | / pub fn decode(&self, op: u16, branch: Option<(bool, u16)>) -> Result { [INFO] [stderr] 337 | | let mut c = Control::new(); [INFO] [stderr] 338 | | [INFO] [stderr] 339 | | self.address.decode(op, &mut c); [INFO] [stderr] ... | [INFO] [stderr] 381 | | Ok(c) [INFO] [stderr] 382 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:87:3 [INFO] [stderr] | [INFO] [stderr] 87 | / pub fn decode(&self, microcode: &MicrocodeArray, op: u16) -> Result { [INFO] [stderr] 88 | | match self { [INFO] [stderr] 89 | | Instruction::Stack(v) => v.decode(microcode, op), [INFO] [stderr] 90 | | Instruction::Normal(v) => v.decode(microcode, op), [INFO] [stderr] 91 | | Instruction::A(v) => v.decode(microcode, op), [INFO] [stderr] 92 | | } [INFO] [stderr] 93 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:107:3 [INFO] [stderr] | [INFO] [stderr] 107 | / pub fn decode(&self, microcode: &MicrocodeArray, op: u16) -> Result { [INFO] [stderr] 108 | | let mut out = Vec::new(); [INFO] [stderr] 109 | | [INFO] [stderr] 110 | | let direction = (op & 0x0400) != 0; [INFO] [stderr] ... | [INFO] [stderr] 135 | | Ok(Iter::new(self.name, op, out)) [INFO] [stderr] 136 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:151:3 [INFO] [stderr] | [INFO] [stderr] 151 | / pub fn decode(&self, microcode: &MicrocodeArray, op: u16) -> Result { [INFO] [stderr] 152 | | let branch = self.branch.mask(); [INFO] [stderr] 153 | | let vec = self.microcode.iter() [INFO] [stderr] 154 | | .map(|index| Ok((*index, microcode[*index].decode(op, branch)?))) [INFO] [stderr] 155 | | .collect::>>()?; [INFO] [stderr] 156 | | Ok(Iter::new(self.name, op, vec)) [INFO] [stderr] 157 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:176:3 [INFO] [stderr] | [INFO] [stderr] 176 | / pub fn decode(&self, microcode: &MicrocodeArray, op: u16) -> Result { [INFO] [stderr] 177 | | let mode = ARGUMENT_DECODE_TABLE[((op as usize) & 0x03C0) >> 6]; [INFO] [stderr] 178 | | let branch = self.branch.mask(); [INFO] [stderr] 179 | | let vec = self.microcode[mode].1.iter() [INFO] [stderr] ... | [INFO] [stderr] 182 | | Ok(Iter::new(self.microcode[mode].0, op, vec)) [INFO] [stderr] 183 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:230:3 [INFO] [stderr] | [INFO] [stderr] 230 | / pub fn new(microcode: &MicrocodeArray) -> Result { [INFO] [stderr] 231 | | Ok(Instructions { [INFO] [stderr] 232 | | fetch: microcode[0].decode(0x0000, None)?, // Opcode doesn't matter for fetch. [INFO] [stderr] 233 | | init: Instructions::init_iter(microcode)?, [INFO] [stderr] 234 | | instructions: Instructions::array(), [INFO] [stderr] 235 | | }) [INFO] [stderr] 236 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:238:3 [INFO] [stderr] | [INFO] [stderr] 238 | / fn init_iter(microcode: &MicrocodeArray) -> Result { [INFO] [stderr] 239 | | Instruction::normal("INIT", Branch::None, vec![45, 43]).decode(microcode, 0x0000) [INFO] [stderr] 240 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:304:3 [INFO] [stderr] | [INFO] [stderr] 304 | / pub fn interrupt(&self, microcode: &MicrocodeArray, interrupt: u16) -> Result<(u16, Iter)> { [INFO] [stderr] 305 | | let op = 0x0400 | (interrupt << 3); [INFO] [stderr] 306 | | Ok((op, self.instructions[21].decode(µcode, op)?)) [INFO] [stderr] 307 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/instructions.rs:309:3 [INFO] [stderr] | [INFO] [stderr] 309 | / pub fn decode(&self, microcode: &MicrocodeArray, op: u16) -> Result { [INFO] [stderr] 310 | | self.instructions[DECODE_TABLE[(op as usize) >> 7]].decode(µcode, op) [INFO] [stderr] 311 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/mod.rs:37:3 [INFO] [stderr] | [INFO] [stderr] 37 | / pub fn new() -> Result { [INFO] [stderr] 38 | | let microcode = self::microcode::array(); [INFO] [stderr] 39 | | Ok(ControlLogic { [INFO] [stderr] 40 | | microcode, [INFO] [stderr] ... | [INFO] [stderr] 47 | | }) [INFO] [stderr] 48 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/mod.rs:50:3 [INFO] [stderr] | [INFO] [stderr] 50 | / pub fn interrupt(&mut self, interrupt: u16) -> Result<()> { [INFO] [stderr] 51 | | if interrupt > 7 { [INFO] [stderr] 52 | | Err(Error::InvalidInterrupt(interrupt)) [INFO] [stderr] 53 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 56 | | } [INFO] [stderr] 57 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/control/mod.rs:59:3 [INFO] [stderr] | [INFO] [stderr] 59 | / pub fn decode(&mut self, op: u16, flags: &Flags, ir: &mut InstructionRegister) -> Result { [INFO] [stderr] 60 | | match &mut self.state { [INFO] [stderr] 61 | | State::Fetch => { [INFO] [stderr] 62 | | let instruction = self.instructions.decode(&self.microcode, op)?; [INFO] [stderr] ... | [INFO] [stderr] 98 | | Ok(out) [INFO] [stderr] 99 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | / pub fn new(hz: f64, rom: Vec) -> Result { [INFO] [stderr] 53 | | Ok(Cpu { [INFO] [stderr] 54 | | hz: hz, [INFO] [stderr] 55 | | clock: Duration::from_nanos((1_000_000_000.0 / (hz * 2.0)) as u64), [INFO] [stderr] ... | [INFO] [stderr] 70 | | }) [INFO] [stderr] 71 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:94:3 [INFO] [stderr] | [INFO] [stderr] 94 | / fn load(&mut self, value: Option) -> Result<()> { [INFO] [stderr] 95 | | if let Some(value) = value { [INFO] [stderr] 96 | | for i in self.components_mut() { [INFO] [stderr] 97 | | i.load(value)?; [INFO] [stderr] ... | [INFO] [stderr] 100 | | Ok(()) [INFO] [stderr] 101 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:103:3 [INFO] [stderr] | [INFO] [stderr] 103 | / fn data(&mut self) -> Result> { [INFO] [stderr] 104 | | let mut out = None; [INFO] [stderr] 105 | | for component in self.components() { [INFO] [stderr] 106 | | match (out, component.data()?) { [INFO] [stderr] ... | [INFO] [stderr] 118 | | } [INFO] [stderr] 119 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:121:3 [INFO] [stderr] | [INFO] [stderr] 121 | / fn address(&self) -> Result { [INFO] [stderr] 122 | | let mut out = None; [INFO] [stderr] 123 | | for component in self.components() { [INFO] [stderr] 124 | | match (out, component.address()?) { [INFO] [stderr] ... | [INFO] [stderr] 133 | | } [INFO] [stderr] 134 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:136:3 [INFO] [stderr] | [INFO] [stderr] 136 | / fn half_cycle(&mut self) -> Result<()> { [INFO] [stderr] 137 | | let c = self.control.decode(self.i.get(), &self.flags, &mut self.i)?; [INFO] [stderr] 138 | | self.set_control(c); [INFO] [stderr] 139 | | self.memory.set_address(self.address()?); [INFO] [stderr] 140 | | self.lr.link(self.pc.link()); [INFO] [stderr] 141 | | Ok(()) [INFO] [stderr] 142 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:144:3 [INFO] [stderr] | [INFO] [stderr] 144 | / fn cycle(&mut self) -> Result<()> { [INFO] [stderr] 145 | | let data = self.data()?; [INFO] [stderr] 146 | | self.load(data)?; [INFO] [stderr] 147 | | self.flags.set_alu(self.alu.get_flags()); [INFO] [stderr] 148 | | Ok(()) [INFO] [stderr] 149 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:155:3 [INFO] [stderr] | [INFO] [stderr] 155 | / pub fn run(&mut self, cycles: u32) -> Result<()> { [INFO] [stderr] 156 | | if !self.halt { [INFO] [stderr] 157 | | for cycle in 0..cycles { [INFO] [stderr] 158 | | thread::sleep(self.clock); [INFO] [stderr] ... | [INFO] [stderr] 174 | | } [INFO] [stderr] 175 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:181:3 [INFO] [stderr] | [INFO] [stderr] 181 | / pub fn screen(&self) -> Result<&Screen> { [INFO] [stderr] 182 | | self.memory.screen() [INFO] [stderr] 183 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:185:3 [INFO] [stderr] | [INFO] [stderr] 185 | / pub fn keyboard(&mut self) -> Result<&mut Keyboard> { [INFO] [stderr] 186 | | self.memory.keyboard() [INFO] [stderr] 187 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error[E0277]: the size for values of type `(dyn std::error::Error + 'static)` cannot be known at compilation time [INFO] [stderr] --> src/cpu.rs:189:3 [INFO] [stderr] | [INFO] [stderr] 189 | / pub fn interrupt(&mut self, interrupt: u16) -> Result<()> { [INFO] [stderr] 190 | | self.control.interrupt(interrupt) [INFO] [stderr] 191 | | } [INFO] [stderr] | |___^ doesn't have a size known at compile-time [INFO] [stderr] | [INFO] [stderr] = help: within `error::Error`, the trait `std::marker::Sized` is not implemented for `(dyn std::error::Error + 'static)` [INFO] [stderr] = note: to learn more, visit [INFO] [stderr] = note: required because it appears within the type `error::Error` [INFO] [stderr] = note: required by `std::result::Result` [INFO] [stderr] [INFO] [stderr] error: aborting due to 81 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0425, E0603. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: Could not compile `cpu`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "98e82e2cd1214d5116fec89cfff4253a568d3d177d1a829cd20a3c6eb7e6874c"` [INFO] running `"docker" "rm" "-f" "98e82e2cd1214d5116fec89cfff4253a568d3d177d1a829cd20a3c6eb7e6874c"` [INFO] [stdout] 98e82e2cd1214d5116fec89cfff4253a568d3d177d1a829cd20a3c6eb7e6874c