dk packages /

CommonsBase_Dk 0.1.20260912015825

Packages the dk0 reference build system and dk1 multithreaded build system.

Apache-2.0 AND LGPL-2.1-only WITH OCaml-LGPL-linking-exception AND OSL-3.0 Source → Generated

Packages the dk0 reference build system and dk1 multithreaded build system.

Dk0 builds MlFront's DkZero_Exec and its transitive dependencies from the opam lock, one resumable build per package, and republishes DkZero_Exec's install prefix as bin/dk0.exe. Dk1 is wired to build the multi-threaded DkOne_Exec (dk1) the same way.

Data flow for building dk0/dk1 from source

Every node names the file that implements it. V4 is the 4-part MlFront source version (for example 2.4.2.310); DRV is the pinned driver version: a previous release of dk0/dk1 that runs this build.

MlFront metadata-release (manual pipeline, DK_GH_TAG)

CommonsBase_Dk (this repo; GitHub Actions on tag 0.1.TS)

MlFront GitLab (dkml/build-tools/MlFront tag pipeline)

url+sha256 pin: etc/dk/v/CommonsBase_Dk/Dk0Localize.RawSrc.values.jsonc

the dk-dist/V4 manifest becomes the NEXT release's DK0_BASE_URL driver pin: driver version N-1 builds product version N

store: none. A source-version repin changes the universal Dk0.MlFrontSource and invalidates every per-package build, so a store: release restore rebuilds ~everything and pays per-object restore overhead on top (hours vs ~35min for a store: none cold build). Keep store: none until the restore path is performant for a full invalidation

git tag V4, gitsign-signed

publish-source: gitsign verify, then ci/publish-source-zip.sh

mlfront-source/V4/MlFront-V4.zip: V4 encoded in the top directory name

Dk0Localize.RawSrc&@2.4.3

Dk0.MlFrontSource&@2.4.3: assets/dk0/localize.sh derives V4 from the directory name, stamps ci/version.source.sh + dune-project.template, runs localize-pristine; emits the mlfront/ tree + dk-opam-lock.jsonc

Dk0.Closure&@2.4.3 / Dk1.Closure&@2.4.3: one CommonsLang_OCaml.Dk.OpamBuild.F_BuildLockedClosure run reads the lock and builds each locked package as its own object; toolchain objects DkML, Dune, MSYS2, VSWhere; the binary's --version constant is baked here when dune builds DkZero_Exec/DkOne_Exec from the stamped tree

Dk0&@2.4.3 / Dk1&@2.4.3: extract the root package install.zip, republish bin/dk0.exe per slot

distribute matrix: .github/workflows/distribute-0.1.yml, one dist/<slot>.u per ABI; driver pinned by DK0_BASE_URL/DK1_BASE_URL = dk-dist/DRV

distribution-<part> artifacts + flat dk-dist/dk{0,1}-<abi> staged by publish-objects

combine job: jsign Authenticode (Windows), rcodesign Developer ID (macOS), SLSA attest, gh-release under tag 0.1.TS

ci/verify-github-release.sh: SLSA attestation + OS code signatures + gitsign source signature, fail-closed

ci/gen-manifest.sh: version=V4, dk0_url_template to the 0.1.TS release, per-ABI sha256; ci/sign-release.sh signify-signs

dk-dist/V4 generic package: manifest.txt + .sig + signed install.ps1/vendor.ps1

verify-install:<abi> smoke jobs: install and assert dk0 --version == 2.4.3+rev-N

launchers + install.sh/install.ps1: signify-verify the manifest, fetch by dk0_url_template

users

V4 has one source and is embedded in files and executables:

V4 = the 4-part version in the MlFront git tag DIR = MlFront-<V4>: the source zip's top directory name (ci/publish-source-zip.sh keeps the tag in the directory name) PIN = MlFront-<V4>.zip: the RawSrc url and filename pin (etc/dk/v/CommonsBase_Dk/Dk0Localize.RawSrc.values.jsonc) STAMP = <V4> written into ci/version.source.sh and dune-project.template (assets/dk0/localize.sh parses <V4> out of DIR) BIN = the dk0/dk1 --version compile-time constant (MlFront's getver reads STAMP's dune-project.template inside the Dk0.Closure / Dk1.Closure builds; nothing after this step can change it) MAN = the version=<V4> line of the dk-dist manifest (ci/gen-manifest.sh)

DRV appears only in the DK0_BASE_URL/DK1_BASE_URL driver pins and in the producer.application provenance metadata of the published stores: that metadata names the dk0 that RAN the build (by design), so a rev-<N-1> there is correct provenance.

Regenerating the Closure drivers

Dk0.Closure, Dk1.Closure, and TestPkg.Closure (plus the final-exe pair-files Dk0.values.jsonc/Dk1.values.jsonc) are GENERATED from the opam lock that Dk0.MlFrontSource carries (mlfront/dk.opam-lock.jsonc, and the with-test dk-opam-lock-test.jsonc). Each driver stamps its full parameter set into a top-level generated member.

Each driver invokes CommonsLang_OCaml.Dk.OpamBuild.F_BuildLockedClosure: one run-function precommand reads the lock once and registers every per-package form (CommonsBase_Dk.Dk0.Pkg.<Pkg>@<VER>) plus the aggregate .Built output, and the merged prefix is archived deterministically with the in-process --zip INSIDE the rule (so the form shows a cp built/prefix.zip line). TestPkg.Closure builds MlFront's --with-test external transitive dependencies (astring, tezt, crowbar, sedlex, ...) as one merged-prefix object so the gate imports it and skips their cold build; it reuses Dk0's packages via impdep_<Pkg>=CommonsBase_Dk.Dk0.Pkg.<Pkg>@<VER> (skiplocal=t/mergedprefix=t/implib[]=CommonsBase_Dk.Dk0.Pkg), so those ids MUST match what Dk0.Closure exposes.

First-time generation (a brand-new driver, no stamp to adopt) uses GenerateDriver directly: pkgpath=CommonsBase_Dk.Dk0 for Dk0 (the generator appends .Pkg.<Pkg>); Dk1 differs only in out/formid/pkgpath/roots[]=DkOne_Exec; TestPkg adds skiplocal=t mergedprefix=t implib[]=CommonsBase_Dk.Dk0.Pkg impver[]=<new> impsrclock[]=dk.opam-lock.jsonc and roots[] = the gate's TestDeps.

For an existing driver, regeneration is a Refresh that reads the stamps back: Refresh takes the rule family and pkgpath from the stamp. Regenerating with a newer GenerateDriver version is a module change and needs the maintainer's version decision first: the generator's version is part of the drivers' behavior, including the emitted build mechanism and the per-package object namespace.

mode=check compares each driver's stamped rule versions against the pinned CommonsLang_OCaml import and fails with the fix command when one is stale; it runs in distribute-0.1.yml before the build:

dk0 dialog CommonsLang_OCaml.Dk.OpamLock.Refresh@1.1.16 mode=check drivers[]=etc/dk/v/CommonsBase_Dk/Dk0.Closure.values.jsonc drivers[]=etc/dk/v/CommonsBase_Dk/Dk1.Closure.values.jsonc drivers[]=etc/dk/v/CommonsBase_Dk/TestPkg.Closure.values.jsonc

mode=check does not catch an impdep id mismatch; the CI TestPkg build fails on one with [917b6e5f] ... does not exist.

Lock content change (a source repin, i.e. every release): materialize the lock from its source object, then Refresh with version=<new> and the lock on disk. Build Dk0.MlFrontSource@<new> (get-object ... -d out) for dk-opam-lock.jsonc; the with-test dk-opam-lock-test.jsonc is inside that output.zip at mlfront/dk.opam-lock-test.jsonc. Refresh reads each driver's OWN stamped lock name, so run the two lock families separately (a single lock= overrides every driver, which is wrong for the mixed set), and stage the dotted dk.opam-lock.jsonc that TestPkg's impsrclock names:

# Dk0/Dk1 (+ their pair-files): the non-test lock. dk0 dialog CommonsLang_OCaml.Dk.OpamLock.Refresh@<DRIVER_VER> drivers[]=etc/dk/v/CommonsBase_Dk/Dk0.Closure.values.jsonc drivers[]=etc/dk/v/CommonsBase_Dk/Dk1.Closure.values.jsonc version=2.4.3 lock=dk-opam-lock.jsonc

# TestPkg (with-test merged prefix): the test lock. cp # mlfront/dk.opam-lock.jsonc dk.opam-lock.jsonc first so the impsrclock # resolves: dk0 dialog CommonsLang_OCaml.Dk.OpamLock.Refresh@<DRIVER_VER> driver=etc/dk/v/CommonsBase_Dk/TestPkg.Closure.values.jsonc version=2.4.3 lock=dk-opam-lock-test.jsonc

Rule version-only bump (same generator, newer rulefn): drop mode=check. Refresh rewrites in place from the stamp, with no lock on disk needed and no reformatting drift.

dist/Linux_x86_64.u, dist/Windows_x86_64.u, dist/Darwin_arm64.u and dist/Darwin_x86_64.u get-object the TestPkg object so it is built and published for the gate to import. The 32-bit cross slots dist/Linux_x86.u and dist/Windows_x86.u do not self-test it yet.

Usage

Dk0 executable

  $ get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.Darwin_arm64 -m ./bin/dk0.exe -f ${RUNTIME}/Darwin_arm64-dk0.exe
  \test(pass)
  \dk.object(abi: "Release.Darwin_arm64", value-id: "onudqoopgaegmlgmrzjjloxze5ciceftfgtlc5ix56md7d7hzdknq")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk0.exe
  \test(pass)
  \dk.target(abi: "Darwin_arm64")[Mach-O 64-bit executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|WEAK_DEFINES|BINDS_TO_WEAK|PIE>
  ]\;

  $ get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.Darwin_x86_64 -m ./bin/dk0.exe -f ${RUNTIME}/Darwin_x86_64-dk0.exe
  \test(pass)
  \dk.object(abi: "Release.Darwin_x86_64", value-id: "om5yekdsfba7oplvceaphvzdx4dfxtftvwzgpyium5bsbbx3uu5aq")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk0.exe
  \test(pass)
  \dk.target(abi: "Darwin_x86_64")[Mach-O 64-bit executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|WEAK_DEFINES|BINDS_TO_WEAK|PIE>
  ]\;

  $ get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.Linux_x86 -m ./bin/dk0.exe -f ${RUNTIME}/Linux_x86-dk0.exe
  \test(pass)
  \dk.object(abi: "Release.Linux_x86", value-id: "oldvj2ymwhxhc7m6re6ccx2ioas7ejpmxhnqpqzzeal6xovdxqsca")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk0.exe
  \test(pass)
  \dk.target(abi: "Linux_x86")[ELF 32-bit LSB executable, Intel i386, version 1 (SYSV)
  ]\;

  $ get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.Linux_x86_64 -m ./bin/dk0.exe -f ${RUNTIME}/Linux_x86_64-dk0.exe
  \test(pass)
  \dk.object(abi: "Release.Linux_x86_64", value-id: "ozqijirqfxqrsgrexumlips7itof7hqe6etczrp6bjkxxd23u3clq")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk0.exe
  \test(pass)
  \dk.target(abi: "Linux_x86_64")[ELF 64-bit LSB executable, x86-64, version 1 (SYSV)
  ]\;

  $ get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.Windows_x86 -m ./bin/dk0.exe -f ${RUNTIME}/Windows_x86-dk0.exe
  \test(pass)
  \dk.object(abi: "Release.Windows_x86", value-id: "o7na4zqqxtr2eycvnxyqq27l4czatozb7boxp7vnapxfiaj5dte4q")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk0.exe
  \test(pass)
  \dk.target(abi: "Windows_x86")[PE32 executable for MS Windows 6.00 (console),, 5 sections
  ]\;

  $ get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.Windows_x86_64 -m ./bin/dk0.exe -f ${RUNTIME}/Windows_x86_64-dk0.exe
  \test(pass)
  \dk.object(abi: "Release.Windows_x86_64", value-id: "ocqh6xxdtjjqjo7duh5wkqrvzcyuxyp7ecpzumqhbttwjuppqaccq")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk0@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk0.exe
  \test(pass)
  \dk.target(abi: "Windows_x86_64")[PE32+ executable for MS Windows 6.00 (console),, 7 sections
  ]\;

Dk1 executable

  $ get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.Darwin_arm64 -m ./bin/dk1.exe -f ${RUNTIME}/Darwin_arm64-dk1.exe
  \test(pass)
  \dk.object(abi: "Release.Darwin_arm64", value-id: "oyl7zumao4shqwkdlu27vno4ubc3rteiunaadxvoxtbsribgkbqaq")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk1.exe
  \test(pass)
  \dk.target(abi: "Darwin_arm64")[Mach-O 64-bit executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|WEAK_DEFINES|BINDS_TO_WEAK|PIE>
  ]\;

  $ get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.Darwin_x86_64 -m ./bin/dk1.exe -f ${RUNTIME}/Darwin_x86_64-dk1.exe
  \test(pass)
  \dk.object(abi: "Release.Darwin_x86_64", value-id: "ok5ivaeichsfovyxkqy2bpyqenn3fvto2533qlcixx47wr3qac27a")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk1.exe
  \test(pass)
  \dk.target(abi: "Darwin_x86_64")[Mach-O 64-bit executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|WEAK_DEFINES|BINDS_TO_WEAK|PIE>
  ]\;

  $ get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.Linux_x86 -m ./bin/dk1.exe -f ${RUNTIME}/Linux_x86-dk1.exe
  \test(pass)
  \dk.object(abi: "Release.Linux_x86", value-id: "otar2mlztqkkzdiaczxphrpryiglyoxbezqf5kxehoeeowd3cq3ta")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk1.exe
  \test(pass)
  \dk.target(abi: "Linux_x86")[ELF 32-bit LSB executable, Intel i386, version 1 (SYSV)
  ]\;

  $ get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.Linux_x86_64 -m ./bin/dk1.exe -f ${RUNTIME}/Linux_x86_64-dk1.exe
  \test(pass)
  \dk.object(abi: "Release.Linux_x86_64", value-id: "obcc6cigogketddlyweawnx32jlln7cgtsqhxveu2zf5wtrrinnjq")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk1.exe
  \test(pass)
  \dk.target(abi: "Linux_x86_64")[ELF 64-bit LSB executable, x86-64, version 1 (SYSV)
  ]\;

  $ get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.Windows_x86 -m ./bin/dk1.exe -f ${RUNTIME}/Windows_x86-dk1.exe
  \test(pass)
  \dk.object(abi: "Release.Windows_x86", value-id: "oqug4srqx35wibzfv5wkk6tgitgqds6lmb77qt23azxb4b27yey2q")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk1.exe
  \test(pass)
  \dk.target(abi: "Windows_x86")[PE32 executable for MS Windows 6.00 (console),, 5 sections
  ]\;

  $ get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.Windows_x86_64 -m ./bin/dk1.exe -f ${RUNTIME}/Windows_x86_64-dk1.exe
  \test(pass)
  \dk.object(abi: "Release.Windows_x86_64", value-id: "odjzklarmamtfqieup64zxllr2s34glpkplyhqvjszmp6t5axddma")\;

  $ run-object CommonsBase_FileMagic.File@7.8.50407 -s Release.execution_abi -m ./bin/file.exe -e bin/file.exe --
  >   -b $(get-object CommonsBase_Dk.Dk1@2.4.3 -s Release.target_abi -d : -e file.exe)/bin/dk1.exe
  \test(pass)
  \dk.target(abi: "Windows_x86_64")[PE32+ executable for MS Windows 6.00 (console),, 7 sections
  ]\;

TestPkg (with-test external closure, imported by the MlFront test gate)

  $ get-object CommonsBase_Dk.TestPkg.Closure@2.4.3 -s Release.Darwin_arm64 -m ./prefix.zip -d ./testpkg
  \test(pass)
  \dk.object(abi: "Release.Darwin_arm64", value-id: "o2gfpubcmsqsus7tum6ynvgbadofdcwhp4rbtefq6lruhqshj2ndq")\;

  $ get-object CommonsBase_Dk.TestPkg.Closure.Built@2.4.3 -s Release.Darwin_arm64 -m ./prefix.zip -d ./testpkg-built
  \test(pass)
  \dk.object(abi: "Release.Darwin_arm64", value-id: "otltt63y4ukj34y4mst4p5yhkeoscicekwdmzkawxlkqlmph5zacq")\;
  $ get-object CommonsBase_Dk.TestPkg.Closure@2.4.3 -s Release.Darwin_x86_64 -m ./prefix.zip -d ./testpkg
  \test(pass)
  \dk.object(abi: "Release.Darwin_x86_64", value-id: "omtemy66cvhiozx4eyeejez7fvohxljexgy3bfufryhh2mvf4jqbq")\;

  $ get-object CommonsBase_Dk.TestPkg.Closure.Built@2.4.3 -s Release.Darwin_x86_64 -m ./prefix.zip -d ./testpkg-built
  \test(pass)
  \dk.object(abi: "Release.Darwin_x86_64", value-id: "okow27eavuzctae7xfb6dmp7hzcdwzuu3ah2fsnpuhcx2v6ysqtza")\;
  $ get-object CommonsBase_Dk.TestPkg.Closure@2.4.3 -s Release.Linux_x86 -m ./prefix.zip -d ./testpkg
  \test(pass)
  \dk.object(abi: "Release.Linux_x86", value-id: "oj7sv5oa7ppnv5g23bdifkqiti6a5kg5tfplrhzcso5amijrjqj5a")\;

  $ get-object CommonsBase_Dk.TestPkg.Closure.Built@2.4.3 -s Release.Linux_x86 -m ./prefix.zip -d ./testpkg-built
  \test(pass)
  \dk.object(abi: "Release.Linux_x86", value-id: "ow5n7wxuniq7a4hlzvu26qegny72s6krixuwyxwmtfy62j2nlvjta")\;
  $ get-object CommonsBase_Dk.TestPkg.Closure@2.4.3 -s Release.Linux_x86_64 -m ./prefix.zip -d ./testpkg
  \test(pass)
  \dk.object(abi: "Release.Linux_x86_64", value-id: "opp6jbp5q2eu7ak5f2bdvlp6uw5h4m6tgwmmvuwake7d2zrts2nja")\;

  $ get-object CommonsBase_Dk.TestPkg.Closure.Built@2.4.3 -s Release.Linux_x86_64 -m ./prefix.zip -d ./testpkg-built
  \test(pass)
  \dk.object(abi: "Release.Linux_x86_64", value-id: "om7lzzxwbsdlc7ki3i2rq6fdefk5mlf2hg2fuorhpjkpqvbfzac3a")\;
  $ get-object CommonsBase_Dk.TestPkg.Closure@2.4.3 -s Release.Windows_x86 -m ./prefix.zip -d ./testpkg
  \test(pass)
  \dk.object(abi: "Release.Windows_x86", value-id: "olttkil6cw2ntdovnymuhhydymacc3vyc6awut74e446idcg5re3q")\;

  $ get-object CommonsBase_Dk.TestPkg.Closure.Built@2.4.3 -s Release.Windows_x86 -m ./prefix.zip -d ./testpkg-built
  \test(pass)
  \dk.object(abi: "Release.Windows_x86", value-id: "ov5qvhbnu4u2krxh3ovx5elbn3sxgc5hbxrvixa6x3jfpgjxlcmwq")\;
  $ get-object CommonsBase_Dk.TestPkg.Closure@2.4.3 -s Release.Windows_x86_64 -m ./prefix.zip -d ./testpkg
  \test(pass)
  \dk.object(abi: "Release.Windows_x86_64", value-id: "onm47z3ludo72mlpshpyicn2rtyt5vjgswagecyv4yx4lno5ug7ba")\;

  $ get-object CommonsBase_Dk.TestPkg.Closure.Built@2.4.3 -s Release.Windows_x86_64 -m ./prefix.zip -d ./testpkg-built
  \test(pass)
  \dk.object(abi: "Release.Windows_x86_64", value-id: "oejeu35bkbza3z7fgj6dxs5y7vz6iccandno6hv47gbfvpogo5csq")\;

CommonsBase_Dk distribution

`CommonsBase_Dk` ships the `dk0` (MlFront `DkZero_Exec`) and `dk1` (`DkOne_Exec`)
build-system executables. Each is built from source as a per-package,
content-addressed opam closure (`CommonsBase_Dk.Dk0.Closure` /
`CommonsBase_Dk.Dk1.Closure`) and republished as a single native executable per
slot:

- `CommonsBase_Dk.Dk0@2.4.3` -> `bin/dk0.exe`
- `CommonsBase_Dk.Dk1@2.4.3` -> `bin/dk1.exe`

The executable slots are `Linux_x86_64`, `Linux_x86`, `Darwin_x86_64`,
`Darwin_arm64`, `Windows_x86_64`, and `Windows_x86`. Each slot's distribution
script (`dist/<slot>.u`) `get-object`s the `bin/dk0.exe` and `bin/dk1.exe`
members for that slot. `Linux_x86_64_musl` was retired (2026-08-12): its
musl-linked host tools collided with the glibc `Linux_x86_64` slot at combine,
and proper musl support is blocked on CommonsLang_OCaml issues #2/#3; Linux
consumers use the manylinux (glibc) container until then. `Windows_arm64` is
not shipped: there is no DkML arm64 toolchain slice yet.

Provides

ModuleVersionPlatformvalue-id
CommonsBase_Dk.Dk0 2.4.3 Darwin_arm64 onudqoopgaeg…
CommonsBase_Dk.Dk0 2.4.3 Darwin_x86_64 om5yekdsfba7…
CommonsBase_Dk.Dk0 2.4.3 Linux_x86 oldvj2ymwhxh…
CommonsBase_Dk.Dk0 2.4.3 Linux_x86_64 ozqijirqfxqr…
CommonsBase_Dk.Dk0 2.4.3 Windows_x86 o7na4zqqxtr2…
CommonsBase_Dk.Dk0 2.4.3 Windows_x86_64 ocqh6xxdtjjq…
CommonsBase_Dk.Dk1 2.4.3 Darwin_arm64 oyl7zumao4sh…
CommonsBase_Dk.Dk1 2.4.3 Darwin_x86_64 ok5ivaeichsf…
CommonsBase_Dk.Dk1 2.4.3 Linux_x86 otar2mlztqkk…
CommonsBase_Dk.Dk1 2.4.3 Linux_x86_64 obcc6cigogke…
CommonsBase_Dk.Dk1 2.4.3 Windows_x86 oqug4srqx35w…
CommonsBase_Dk.Dk1 2.4.3 Windows_x86_64 odjzklarmamt…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Darwin_arm64 o2gfpubcmsqs…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Darwin_arm64 otltt63y4ukj…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Darwin_x86_64 omtemy66cvhi…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Darwin_x86_64 okow27eavuzc…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Linux_x86 oj7sv5oa7ppn…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Linux_x86 ow5n7wxuniq7…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Linux_x86_64 opp6jbp5q2eu…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Linux_x86_64 om7lzzxwbsdl…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Windows_x86 olttkil6cw2n…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Windows_x86 ov5qvhbnu4u2…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Windows_x86_64 onm47z3ludo7…
CommonsBase_Dk.TestPkg.Closure 2.4.3 Windows_x86_64 oejeu35bkbza…

Workspace assets

Files and directories in the package repo, bundled into the build.

AssetProject pathType
Dk0BuildWin assets/dk0/dk0-build-win.bat file
Script assets/dk0/localize.sh file

Dependencies

PackageVersionsha256
CommonsBase_Std 2.6.20260813134421 f932d71bd74c858f…
CommonsBase_Build 0.1.20260718232516 b894642bd11e8571…
CommonsBase_GNU 0.1.20260803042217 e4e77c1e3e625835…
CommonsLang_OCaml 0.1.20260910155123 4b345f4e6b3e889d…
CommonsBase_FileMagic 0.1.20260820155756 b4b75a98463ac565…

Producer signing key

Releases of this package are signed with this OpenBSD signify key. After you import the package, dk1 trust list prints the same public key and fingerprint; compare them here to confirm you are trusting the intended publisher over a channel independent of the download.

Fingerprint 7457b62e3a48e8c0
Public key RWR0V7YuOkjowOzjI9eRXrpE3XR6Wfky2AEfyAZ89inqlL05eZ06U+JM