2026-05-19 17:07.18: New job: test ocaml-multicore/eio https://github.com/ocaml-multicore/eio.git#refs/heads/main (f1c49da7371efbc1bbc0d23df3c8fe516864ec73) (macos-arm64:macos-homebrew-5.4_arm64_opam-2.5)Base: macos-homebrew-ocaml-5.4Opam project buildTo reproduce locally:git clone --recursive "https://github.com/ocaml-multicore/eio.git" -b "main" && cd "eio" && git reset --hard f1c49da7cat > Dockerfile <<'END-OF-DOCKERFILE'FROM macos-homebrew-ocaml-5.4# macos-homebrew-5.4_arm64_opam-2.5USER 1000:1000ENV CLICOLOR_FORCE="1"ENV OPAMCOLOR="always"RUN ln -f ~/local/bin/opam-2.5 ~/local/bin/opamRUN cd ~/opam-repository && (git cat-file -e df6ab556b4610df043dd3ef62a0ddf23f8661b1c || git fetch origin master) && git reset -q --hard df6ab556b4610df043dd3ef62a0ddf23f8661b1c && git log --no-decorate -n1 --onelineRUN opam init --reinit -niRUN uname -rs && opam exec -- ocaml -version && opam --versionRUN opam update -uCOPY --chown=1000:1000 eio_windows.opam eio_posix.opam eio_main.opam eio_linux.opam eio.opam ./src/./RUN opam pin add -yn eio_windows.dev './src/./' && \opam pin add -yn eio_posix.dev './src/./' && \opam pin add -yn eio_main.dev './src/./' && \opam pin add -yn eio_linux.dev './src/./' && \opam pin add -yn eio.dev './src/./'RUN echo '(lang dune 3.0)' > './src/./dune-project'ENV DEPS="afl-persistent.1.4 alcotest.1.9.1 astring.0.8.5 backoff.0.1.1 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigstringaf.0.10.0 camlp-streams.5.0.1 cmdliner.2.1.1 conf-bash.1 containers.3.18 cppo.1.8.0 crowbar.0.2.2 csexp.1.5.2 cstruct.6.2.0 domain-local-await.1.0.1 domain-local-timeout.1.0.1 dscheck.0.5.0 dune.3.23.1 dune-configurator.3.23.1 either.1.0.0 fmt.0.11.0 hmap.0.8.1 iomux.0.4 kcas.0.7.0 logs.0.10.0 lwt-dllist.1.1.0 mdx.2.5.2 mtime.2.1.0 multicore-magic.2.3.2 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.1.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 optint.0.3.0 oseq.0.5.1 psq.0.2.1 re.1.14.0 result.1.5 seq.base stdlib-shims.0.3.0 thread-table.1.0.0 topkg.1.1.1 tsort.2.2.0 uutf.1.0.4 yojson.3.0.0"ENV CI="true"ENV OCAMLCI="true"RUN opam update --depexts && opam install --cli=2.5 --depext-only -y eio_windows.dev eio_posix.dev eio_main.dev eio.dev $DEPSRUN opam install $DEPSCOPY --chown=1000:1000 . ./srcRUN cd ./src && opam exec -- dune build --only-packages=eio_windows,eio_posix,eio_main,eio @install @check @runtest && rm -rf _buildEND-OF-DOCKERFILEdocker build .END-REPRO-BLOCK2026-05-19 17:07.18: Using cache hint "ocaml-multicore/eio-macos-homebrew-ocaml-5.4-macos-homebrew-5.4_arm64_opam-2.5-d518244513a118d319044bc9d460fa91"2026-05-19 17:07.18: Using OBuilder spec:((from macos-homebrew-ocaml-5.4)(comment macos-homebrew-5.4_arm64_opam-2.5)(user (uid 1000) (gid 1000))(env CLICOLOR_FORCE 1)(env OPAMCOLOR always)(run (shell "ln -f ~/local/bin/opam-2.5 ~/local/bin/opam"))(run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))(network host)(shell "cd ~/opam-repository && (git cat-file -e df6ab556b4610df043dd3ef62a0ddf23f8661b1c || git fetch origin master) && git reset -q --hard df6ab556b4610df043dd3ef62a0ddf23f8661b1c && git log --no-decorate -n1 --oneline"))(run (shell "opam init --reinit -ni"))(run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))(run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))(network host)(shell "opam update -u"))(copy (src eio_windows.opam eio_posix.opam eio_main.opam eio_linux.opam eio.opam)(dst ./src/./))(run (network host)(shell "opam pin add -yn eio_windows.dev './src/./' && \\nopam pin add -yn eio_posix.dev './src/./' && \\nopam pin add -yn eio_main.dev './src/./' && \\nopam pin add -yn eio_linux.dev './src/./' && \\nopam pin add -yn eio.dev './src/./'"))(run (shell "echo '(lang dune 3.0)' > './src/./dune-project'"))(env DEPS "afl-persistent.1.4 alcotest.1.9.1 astring.0.8.5 backoff.0.1.1 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigstringaf.0.10.0 camlp-streams.5.0.1 cmdliner.2.1.1 conf-bash.1 containers.3.18 cppo.1.8.0 crowbar.0.2.2 csexp.1.5.2 cstruct.6.2.0 domain-local-await.1.0.1 domain-local-timeout.1.0.1 dscheck.0.5.0 dune.3.23.1 dune-configurator.3.23.1 either.1.0.0 fmt.0.11.0 hmap.0.8.1 iomux.0.4 kcas.0.7.0 logs.0.10.0 lwt-dllist.1.1.0 mdx.2.5.2 mtime.2.1.0 multicore-magic.2.3.2 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.1.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 optint.0.3.0 oseq.0.5.1 psq.0.2.1 re.1.14.0 result.1.5 seq.base stdlib-shims.0.3.0 thread-table.1.0.0 topkg.1.1.1 tsort.2.2.0 uutf.1.0.4 yojson.3.0.0")(env CI true)(env OCAMLCI true)(run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))(network host)(shell "opam update --depexts && opam install --cli=2.5 --depext-only -y eio_windows.dev eio_posix.dev eio_main.dev eio.dev $DEPS"))(run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))(network host)(shell "opam install $DEPS"))(copy (src .) (dst ./src))(run (shell "cd ./src && opam exec -- dune build --only-packages=eio_windows,eio_posix,eio_main,eio @install @check @runtest && rm -rf _build")))2026-05-19 17:07.18: Waiting for resource in pool OCluster2026-05-19 20:58.30: Waiting for worker…2026-05-19 23:17.20: Got resource from pool OClusterBuilding on m1-worker-03All commits already cachedHEAD is now at f1c49da Merge pull request #823 from patricoferris/with-env(from macos-homebrew-ocaml-5.4)2026-05-19 23:17.20 ---> using "338135fbf1889e924a607b47198b8b308c32a925cc9436066d65a9bdc402cad5" from cache/: (comment macos-homebrew-5.4_arm64_opam-2.5)/: (user (uid 1000) (gid 1000))/: (env CLICOLOR_FORCE 1)/: (env OPAMCOLOR always)/: (run (shell "ln -f ~/local/bin/opam-2.5 ~/local/bin/opam"))2026-05-19 23:17.20 ---> using "0e9d0f8ed44ab1f77ef30c8d8456629e6c63f869a24319cbb64657a84e315111" from cache/: (run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))(network host)(shell "cd ~/opam-repository && (git cat-file -e df6ab556b4610df043dd3ef62a0ddf23f8661b1c || git fetch origin master) && git reset -q --hard df6ab556b4610df043dd3ef62a0ddf23f8661b1c && git log --no-decorate -n1 --oneline"))From https://github.com/ocaml/opam-repository* branch master -> FETCH_HEAD28d044eb9c..df6ab556b4 master -> origin/masterdf6ab556b4 Merge pull request #29903 from shonfeder/release-dune-3.23.12026-05-19 23:17.20 ---> using "2cc33fa32e901412c3798b0043ad2c517b318c788b86499b10985b46d6ce473a" from cache/: (run (shell "opam init --reinit -ni"))No configuration file found, using built-in defaults.Checking for available remotes: rsync and local, git.- you won't be able to use mercurial repositories unless you install the hg command on your system.- you won't be able to use darcs repositories unless you install the darcs command on your system.This version of opam requires an update to the layout of /Users/mac1000/.opam from version 2.1 to version 2.2, which can't be reverted.You may want to back it up before going further.Continue? [Y/n] y[NOTE] The 'jobs' option was reset, its value was 1 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:opam option jobs=1 --globalFormat upgrade done.<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>[default] synchronised from git+file:///Users/mac1000/opam-repositorydefault (at git+file:///Users/mac1000/opam-repository):[WARNING] opam is out-of-date. Please consider updating it (https://opam.ocaml.org/doc/Install.html)default (at git+file:///Users/mac1000/opam-repository):[INFO] opam 2.5.1 includes security fixes; please consider upgrading (https://opam.ocaml.org/doc/Install.html)2026-05-19 23:17.20 ---> using "b533e709053dd01ebb93c07414cb2e573d2372df7eccdf178cf93bd7fa77f68b" from cache/: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))Darwin 24.5.0The OCaml toplevel, version 5.4.02.5.02026-05-19 23:17.20 ---> using "bb8ed8175efcec81aabef4bc8542400d5290c14983dd162c434f1209e7628364" from cache/: (run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))(network host)(shell "opam update -u"))<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>[default] no changes from git+file:///Users/mac1000/opam-repositoryEverything as up-to-date as possibleThe following packages are not being upgraded because the new versions conflict with other installed packages:- ocaml.5.5.0- ocaml-compiler.5.4.1However, you may "opam upgrade" these packages explicitly at these versions (e.g. "opam upgrade ocaml.5.5.0"), which will ask permission to downgrade or uninstall the conflicting packages.Nothing to do.# To update the current shell environment, run: eval $(opam env)2026-05-19 23:17.21 ---> using "5071f46d1672edddc4b4908fd6767ac889e7184cf9a5efd791738dc6864daa89" from cache/: (copy (src eio_windows.opam eio_posix.opam eio_main.opam eio_linux.opam eio.opam)(dst ./src/./))2026-05-19 23:17.21 ---> using "6aff67c4c683ab9f46c0ef9ee8f2db47a422f9ceee338f8508d706d5e0249134" from cache/: (run (network host)(shell "opam pin add -yn eio_windows.dev './src/./' && \\nopam pin add -yn eio_posix.dev './src/./' && \\nopam pin add -yn eio_main.dev './src/./' && \\nopam pin add -yn eio_linux.dev './src/./' && \\nopam pin add -yn eio.dev './src/./'"))[eio_windows.dev] synchronised (file:///Users/mac1000/src)eio_windows is now pinned to file:///Users/mac1000/src (version dev)[eio_posix.dev] synchronised (file:///Users/mac1000/src)eio_posix is now pinned to file:///Users/mac1000/src (version dev)[eio_main.dev] synchronised (file:///Users/mac1000/src)eio_main is now pinned to file:///Users/mac1000/src (version dev)[eio_linux.dev] synchronised (file:///Users/mac1000/src)eio_linux is now pinned to file:///Users/mac1000/src (version dev)[eio.dev] synchronised (file:///Users/mac1000/src)eio is now pinned to file:///Users/mac1000/src (version dev)2026-05-19 23:17.21 ---> using "cfc476b0d02b0ce575af645aebdaac01f9e323d954d92fe3b516ac0604060de4" from cache/: (run (shell "echo '(lang dune 3.0)' > './src/./dune-project'"))2026-05-19 23:17.21 ---> using "8ceee3b2349c26525d308527294742bc5481f5bbfdd9f188f42e112c976ba70e" from cache/: (env DEPS "afl-persistent.1.4 alcotest.1.9.1 astring.0.8.5 backoff.0.1.1 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigstringaf.0.10.0 camlp-streams.5.0.1 cmdliner.2.1.1 conf-bash.1 containers.3.18 cppo.1.8.0 crowbar.0.2.2 csexp.1.5.2 cstruct.6.2.0 domain-local-await.1.0.1 domain-local-timeout.1.0.1 dscheck.0.5.0 dune.3.23.1 dune-configurator.3.23.1 either.1.0.0 fmt.0.11.0 hmap.0.8.1 iomux.0.4 kcas.0.7.0 logs.0.10.0 lwt-dllist.1.1.0 mdx.2.5.2 mtime.2.1.0 multicore-magic.2.3.2 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.1.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 optint.0.3.0 oseq.0.5.1 psq.0.2.1 re.1.14.0 result.1.5 seq.base stdlib-shims.0.3.0 thread-table.1.0.0 topkg.1.1.1 tsort.2.2.0 uutf.1.0.4 yojson.3.0.0")/: (env CI true)/: (env OCAMLCI true)/: (run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))(network host)(shell "opam update --depexts && opam install --cli=2.5 --depext-only -y eio_windows.dev eio_posix.dev eio_main.dev eio.dev $DEPS"))+ /opt/homebrew/bin/brew "update"- ==> Updating Homebrew...- Already up-to-date.<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>[eio_posix.dev] synchronised (file:///Users/mac1000/src)[eio_main.dev] synchronised (file:///Users/mac1000/src)[eio.dev] synchronised (file:///Users/mac1000/src)[eio_windows.dev] synchronised (file:///Users/mac1000/src)[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).[NOTE] Package ocaml-config is already installed (current version is 3).[NOTE] Package ocaml-compiler is already installed (current version is 5.4.0).[NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.0).[NOTE] Package ocaml is already installed (current version is 5.4.0).[NOTE] Package base-unix is already installed (current version is base).[NOTE] Package base-threads is already installed (current version is base).[NOTE] Package base-nnp is already installed (current version is base).[NOTE] Package base-effects is already installed (current version is base).[NOTE] Package base-domains is already installed (current version is base).[NOTE] Package base-bigarray is already installed (current version is base).# To update the current shell environment, run: eval $(opam env)2026-05-19 23:17.21 ---> using "129d5c0459a90f92817337b36892c5685328cc044d2b5ed01d93dc1ebb5fa9c8" from cache/: (run (cache (opam-archives (target /Users/mac1000/.opam/download-cache)) (homebrew (target /Users/mac1000/Library/Caches/Homebrew)))(network host)(shell "opam install $DEPS"))[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).[NOTE] Package ocaml-config is already installed (current version is 3).[NOTE] Package ocaml-compiler is already installed (current version is 5.4.0).[NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.0).[NOTE] Package ocaml is already installed (current version is 5.4.0).[NOTE] Package base-unix is already installed (current version is base).[NOTE] Package base-threads is already installed (current version is base).[NOTE] Package base-nnp is already installed (current version is base).[NOTE] Package base-effects is already installed (current version is base).[NOTE] Package base-domains is already installed (current version is base).[NOTE] Package base-bigarray is already installed (current version is base).The following actions will be performed:=== install 44 packages- install afl-persistent 1.4- install alcotest 1.9.1- install astring 0.8.5- install backoff 0.1.1- install bigstringaf 0.10.0- install camlp-streams 5.0.1- install cmdliner 2.1.1- install conf-bash 1- install containers 3.18- install cppo 1.8.0- install crowbar 0.2.2- install csexp 1.5.2- install cstruct 6.2.0- install domain-local-await 1.0.1- install domain-local-timeout 1.0.1- install dscheck 0.5.0- install dune 3.23.1- install dune-configurator 3.23.1- install either 1.0.0- install fmt 0.11.0- install hmap 0.8.1- install iomux 0.4- install kcas 0.7.0- install logs 0.10.0- install lwt-dllist 1.1.0- install mdx 2.5.2- install mtime 2.1.0- install multicore-magic 2.3.2- install ocaml-syntax-shims 1.0.0- install ocaml-version 4.1.1- install ocamlbuild 0.16.1- install ocamlfind 1.9.8- install optint 0.3.0- install oseq 0.5.1- install psq 0.2.1- install re 1.14.0- install result 1.5- install seq base- install stdlib-shims 0.3.0- install thread-table 1.0.0- install topkg 1.1.1- install tsort 2.2.0- install uutf 1.0.4- install yojson 3.0.0<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>-> retrieved astring.0.8.5 (cached)-> retrieved alcotest.1.9.1 (cached)-> retrieved bigstringaf.0.10.0 (cached)-> retrieved camlp-streams.5.0.1 (cached)-> retrieved cmdliner.2.1.1 (cached)-> installed conf-bash.1-> retrieved afl-persistent.1.4 (https://github.com/stedolan/ocaml-afl-persistent/archive/refs/tags/v1.4.tar.gz)-> retrieved cppo.1.8.0 (cached)-> retrieved backoff.0.1.1 (https://github.com/ocaml-multicore/backoff/releases/download/0.1.1/backoff-0.1.1.tbz)-> retrieved csexp.1.5.2 (cached)-> retrieved cstruct.6.2.0 (cached)-> retrieved domain-local-await.1.0.1 (cached)-> retrieved domain-local-timeout.1.0.1 (https://github.com/ocaml-multicore/domain-local-timeout/releases/download/1.0.1/domain-local-timeout-1.0.1.tbz)-> retrieved crowbar.0.2.2 (https://github.com/stedolan/crowbar/archive/v0.2.2.tar.gz)-> retrieved dscheck.0.5.0 (https://github.com/ocaml-multicore/dscheck/releases/download/0.5.0/dscheck-0.5.0.tbz)-> retrieved either.1.0.0 (cached)-> retrieved fmt.0.11.0 (cached)-> retrieved hmap.0.8.1 (cached)-> retrieved iomux.0.4 (cached)-> retrieved containers.3.18 (https://github.com/c-cube/ocaml-containers/releases/download/v3.18/containers-3.18.tbz)-> retrieved logs.0.10.0 (cached)-> retrieved lwt-dllist.1.1.0 (cached)-> retrieved mdx.2.5.2 (cached)-> retrieved mtime.2.1.0 (cached)-> retrieved kcas.0.7.0 (https://github.com/ocaml-multicore/kcas/archive/refs/tags/0.7.0.tar.gz)-> retrieved multicore-magic.2.3.2 (https://github.com/ocaml-multicore/multicore-magic/releases/download/2.3.2/multicore-magic-2.3.2.tbz)-> retrieved ocaml-syntax-shims.1.0.0 (cached)-> retrieved ocaml-version.4.1.1 (cached)-> retrieved ocamlfind.1.9.8 (cached)-> retrieved optint.0.3.0 (cached)-> retrieved ocamlbuild.0.16.1 (cached)-> retrieved psq.0.2.1 (cached)-> retrieved dune.3.23.1, dune-configurator.3.23.1 (cached)-> retrieved result.1.5 (cached)-> retrieved seq.base (cached)-> installed seq.base-> retrieved re.1.14.0 (cached)-> retrieved stdlib-shims.0.3.0 (cached)-> retrieved oseq.0.5.1 (https://github.com/c-cube/oseq/releases/download/v0.5.1/oseq-0.5.1.tbz)-> retrieved topkg.1.1.1 (cached)-> retrieved thread-table.1.0.0 (cached)-> retrieved uutf.1.0.4 (cached)-> retrieved yojson.3.0.0 (cached)-> installed cmdliner.2.1.1-> retrieved tsort.2.2.0 (https://github.com/dmbaturin/ocaml-tsort/archive/refs/tags/2.2.0.tar.gz)-> installed ocamlfind.1.9.8-> installed ocamlbuild.0.16.1-> installed topkg.1.1.1-> installed hmap.0.8.1-> installed uutf.1.0.4-> installed mtime.2.1.0-> installed fmt.0.11.0-> installed astring.0.8.5-> installed logs.0.10.0-> installed dune.3.23.1-> installed csexp.1.5.2-> installed backoff.0.1.1-> installed lwt-dllist.1.1.0-> installed afl-persistent.1.4-> installed either.1.0.0-> installed cstruct.6.2.0-> installed cppo.1.8.0-> installed camlp-streams.5.0.1-> installed crowbar.0.2.2-> installed optint.0.3.0-> installed ocaml-version.4.1.1-> installed multicore-magic.2.3.2-> installed ocaml-syntax-shims.1.0.0-> installed oseq.0.5.1-> installed psq.0.2.1-> installed thread-table.1.0.0-> installed stdlib-shims.0.3.0-> installed result.1.5-> installed tsort.2.2.0-> installed domain-local-timeout.1.0.1-> installed domain-local-await.1.0.1-> installed dune-configurator.3.23.1-> installed re.1.14.0-> installed bigstringaf.0.10.0-> installed kcas.0.7.0-> installed yojson.3.0.0-> installed iomux.0.4-> installed alcotest.1.9.1-> installed mdx.2.5.2-> installed containers.3.18-> installed dscheck.0.5.0Done.<><> afl-persistent.1.4 installed successfully ><><><><><><><><><><><><><><><><>=> afl-persistent is installed, but since the current OCaml compiler doesnot enable AFL instrumentation by default, most packages will not beinstrumented and fuzzing with afl-fuzz may not be effective.To globally enable AFL instrumentation, create an OCaml switch like:opam switch create 5.4.0+afl ocaml-variants.5.4.0+options ocaml-option-afl# To update the current shell environment, run: eval $(opam env)2026-05-19 23:17.21 ---> using "1d45cba5d44bdb959cfc5d504a8762520e301f4c2ef72c31d0614ba0f982924d" from cache/: (copy (src .) (dst ./src))2026-05-19 23:17.22 ---> using "b2182ab749d737090d210e32674e276f21e26ba4342e1868aebbf705fa163db8" from cache/: (run (shell "cd ./src && opam exec -- dune build --only-packages=eio_windows,eio_posix,eio_main,eio @install @check @runtest && rm -rf _build"))(cd _build/default/fuzz && ./fuzz_buf_read.exe)random ops: PASS(cd _build/default/fuzz && ./fuzz_inherit_fds.exe)inherit_fds: PASS(cd _build/default/fuzz && ./fuzz_buf_write.exe)random ops: PASS2026-05-19 23:17.22 ---> using "bbd9ccf780303d84fc3a017c471cc510a994491c9b2a36926bf5d0f5a0c473aa" from cacheJob succeeded2026-05-19 23:17.28: Job succeeded