[INFO] cloning repository https://github.com/apoloval/simproc [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/apoloval/simproc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fapoloval%2Fsimproc", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fapoloval%2Fsimproc'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9cea797591c4a6f84fe36dfc68286286aa9924a6 [INFO] documenting apoloval/simproc against beta-2020-08-29 for beta-1.47-rustdoc-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fapoloval%2Fsimproc" "/workspace/builds/worker-8/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-8/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/apoloval/simproc on toolchain beta-2020-08-29 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-08-29" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/apoloval/simproc [INFO] finished tweaking git repo https://github.com/apoloval/simproc [INFO] tweaked toml for git repo https://github.com/apoloval/simproc written to /workspace/builds/worker-8/source/Cargo.toml [INFO] crate git repo https://github.com/apoloval/simproc already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-08-29" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded proc-macro2 v0.3.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-08-29" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a034ef616d24f83fe60528bd51a506a1d7e8507130bb92b6a7ad01c604b3a49e [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "a034ef616d24f83fe60528bd51a506a1d7e8507130bb92b6a7ad01c604b3a49e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a034ef616d24f83fe60528bd51a506a1d7e8507130bb92b6a7ad01c604b3a49e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a034ef616d24f83fe60528bd51a506a1d7e8507130bb92b6a7ad01c604b3a49e", kill_on_drop: false }` [INFO] [stdout] a034ef616d24f83fe60528bd51a506a1d7e8507130bb92b6a7ad01c604b3a49e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-08-29" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 260aafb1b276ee3b2fcfa73d5a3c5a70d381fb47a38426b58794423a76a42fdd [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "260aafb1b276ee3b2fcfa73d5a3c5a70d381fb47a38426b58794423a76a42fdd", kill_on_drop: false }` [INFO] [stderr] Compiling regex v0.2.10 [INFO] [stderr] Checking serde v1.0.37 [INFO] [stderr] Checking strsim v0.6.0 [INFO] [stderr] Checking byteorder v1.2.2 [INFO] [stderr] Checking time v0.1.39 [INFO] [stderr] Compiling proc-macro2 v0.3.5 [INFO] [stderr] Checking regex-syntax v0.5.3 [INFO] [stderr] Checking aho-corasick v0.6.4 [INFO] [stderr] Checking aho-corasick v0.5.3 [INFO] [stderr] Checking thread-id v2.0.0 [INFO] [stderr] Checking thread_local v0.2.7 [INFO] [stderr] Compiling quote v0.5.1 [INFO] [stderr] Checking regex v0.1.80 [INFO] [stderr] Compiling syn v0.13.1 [INFO] [stderr] Compiling serde_derive_internals v0.23.0 [INFO] [stderr] Compiling serde_derive v1.0.37 [INFO] [stderr] Checking docopt v0.8.3 [INFO] [stderr] Checking simproc v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Documenting simproc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:24:54 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn exec(inst: &RuntimeInst, ctx: &mut ExecCtx) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:79:34 [INFO] [stdout] | [INFO] [stdout] 79 | fn exec_add(ctx: &mut ExecCtx, dst: Reg, src: Reg, carry: bool) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:86:35 [INFO] [stdout] | [INFO] [stdout] 86 | fn exec_addi(ctx: &mut ExecCtx, dst: Reg, src: u8) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:91:32 [INFO] [stdout] | [INFO] [stdout] 91 | fn do_add(ctx: &mut ExecCtx, dst: Reg, src: u8, carry: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:105:34 [INFO] [stdout] | [INFO] [stdout] 105 | fn exec_sub(ctx: &mut ExecCtx, dst: Reg, src: Reg, carry: bool) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:112:35 [INFO] [stdout] | [INFO] [stdout] 112 | fn exec_subi(ctx: &mut ExecCtx, dst: Reg, src: u8) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:117:32 [INFO] [stdout] | [INFO] [stdout] 117 | fn do_sub(ctx: &mut ExecCtx, dst: Reg, src: u8, carry: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:132:15 [INFO] [stdout] | [INFO] [stdout] 132 | ctx: &mut ExecCtx, dst: Reg, logic: L) -> Cycle [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:148:15 [INFO] [stdout] | [INFO] [stdout] 148 | ctx: &mut ExecCtx, dst: Reg, src: Reg, logic: L) -> Cycle [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:165:34 [INFO] [stdout] | [INFO] [stdout] 165 | fn exec_inc(ctx: &mut ExecCtx, dst: Reg, positive: bool) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:179:35 [INFO] [stdout] | [INFO] [stdout] 179 | fn exec_incw(ctx: &mut ExecCtx, dst: AddrReg, positive: bool) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:194:15 [INFO] [stdout] | [INFO] [stdout] 194 | ctx: &mut ExecCtx, dst: Reg, f: F, g: G) -> Cycle [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:209:34 [INFO] [stdout] | [INFO] [stdout] 209 | fn exec_mov(ctx: &mut ExecCtx, dst: Reg, src: Reg) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:217:33 [INFO] [stdout] | [INFO] [stdout] 217 | fn exec_ld(ctx: &mut ExecCtx, dst: Reg, src: AddrReg) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:225:34 [INFO] [stdout] | [INFO] [stdout] 225 | fn exec_ldd(ctx: &mut ExecCtx, dst: Reg, src: Addr) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:231:34 [INFO] [stdout] | [INFO] [stdout] 231 | fn exec_ldi(ctx: &mut ExecCtx, dst: Reg, val: u8) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:236:34 [INFO] [stdout] | [INFO] [stdout] 236 | fn exec_ldw(ctx: &mut ExecCtx, dst: AddrReg, addr: Addr) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:241:33 [INFO] [stdout] | [INFO] [stdout] 241 | fn exec_st(ctx: &mut ExecCtx, dst: AddrReg, src: Reg) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:249:34 [INFO] [stdout] | [INFO] [stdout] 249 | fn exec_std(ctx: &mut ExecCtx, dst: Addr, src: Reg) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:255:35 [INFO] [stdout] | [INFO] [stdout] 255 | fn exec_ldsp(ctx: &mut ExecCtx, src: AddrReg) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:262:35 [INFO] [stdout] | [INFO] [stdout] 262 | fn exec_push(ctx: &mut ExecCtx, src: Reg) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:270:34 [INFO] [stdout] | [INFO] [stdout] 270 | fn exec_pop(ctx: &mut ExecCtx, dst: Reg) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:278:33 [INFO] [stdout] | [INFO] [stdout] 278 | fn exec_in(ctx: &mut ExecCtx, dst: Reg, port: IoPort) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:285:34 [INFO] [stdout] | [INFO] [stdout] 285 | fn exec_out(ctx: &mut ExecCtx, port: IoPort, src: Reg) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:293:15 [INFO] [stdout] | [INFO] [stdout] 293 | ctx: &mut ExecCtx, offset: RelAddr, f: F, is_call: bool) -> Cycle [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:308:34 [INFO] [stdout] | [INFO] [stdout] 308 | fn exec_jmp(ctx: &mut ExecCtx, addr: Addr, is_call: bool) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:320:35 [INFO] [stdout] | [INFO] [stdout] 320 | fn exec_ijmp(ctx: &mut ExecCtx, src: AddrReg, is_call: bool) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:325:34 [INFO] [stdout] | [INFO] [stdout] 325 | fn exec_ret(ctx: &mut ExecCtx, enable_int: bool) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:336:34 [INFO] [stdout] | [INFO] [stdout] 336 | fn exec_nop(ctx: &mut ExecCtx) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/exec.rs:342:38 [INFO] [stdout] | [INFO] [stdout] 342 | fn exec_set_int(ctx: &mut ExecCtx, enabled: bool) -> Cycle { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn ExecCtx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu/io.rs:17:43 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Io<'a> { devs: HashMap> } [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn IoDevice + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/mem/bank.rs:25:44 [INFO] [stdout] | [INFO] [stdout] 25 | fn select_page(&self, addr: Addr) -> (&Memory, Addr) { [INFO] [stdout] | ^^^^^^ help: use `dyn`: `dyn Memory` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/mem/bank.rs:32:56 [INFO] [stdout] | [INFO] [stdout] 32 | fn select_page_mut(&mut self, addr: Addr) -> (&mut Memory, Addr) { [INFO] [stdout] | ^^^^^^ help: use `dyn`: `dyn Memory` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 33 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/bin/spasm/asm/lexer.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | '1' ... '9' => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/bin/spasm/asm/lexer.rs:250:17 [INFO] [stdout] | [INFO] [stdout] 250 | 'a' ... 'z' | 'A' ... 'Z' | '_' => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/bin/spasm/asm/lexer.rs:250:31 [INFO] [stdout] | [INFO] [stdout] 250 | 'a' ... 'z' | 'A' ... 'Z' | '_' => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 27.11s [INFO] running `Command { std: "docker" "inspect" "260aafb1b276ee3b2fcfa73d5a3c5a70d381fb47a38426b58794423a76a42fdd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "260aafb1b276ee3b2fcfa73d5a3c5a70d381fb47a38426b58794423a76a42fdd", kill_on_drop: false }` [INFO] [stdout] 260aafb1b276ee3b2fcfa73d5a3c5a70d381fb47a38426b58794423a76a42fdd