Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
V4 gains full musl parity on Linux: new ABIs Linux_x86_musl and Linux_arm64_musl join Linux_x86_64_musl. The <features.h> / __GLIBC__ test now covers the __i386__ and __aarch64__ branches of the C header (new macros DKML_ABI_linux_x86_musl and DKML_ABI_linux_arm64_musl).V1-V3 report the new musl ABIs under their glibc names (Linux_x86, Linux_arm64), matching the existing Linux_x86_64_musl -> Linux_x86_64 behavior. In V1, an x86 musl host gets the pre-existing Result.error because V1 never had Linux_x86.V4.t_abi constructor list stays alphabetical, so the insertions change the ranks of later constructors. Rebuild anything that marshalled V4.t_abi values. 3.3.0 was tagged but never published to opam; use 4.0.0 instead.C_conf.load () now uses V4 (was V3): on musl hosts the ABI-specific environment variable suffix is now e.g. DEFAULT_LINUX_X86_64_MUSL instead of DEFAULT_LINUX_X86_64. glibc, Windows, and macOS hosts are unchanged.V<n> ships in major version n (V4 <-> 4.0.0, as V3 <-> 3.0.0 and V2 <-> 2.0.0).linux_arm32v6, linux_arm32v7) have no musl variants yet.Tests workflow now also covers musl: a C-header probe on Alpine (musl) and Debian (glibc) across x86_64, x86 and arm64, and the full dune-configurator path on a real musl host, alongside the BSD guests (upgraded cross-platform-actions) and the Windows/macOS/Linux matrix on ocaml/setup-ocaml (replacing the former DkML MSVC/MSYS2 + manylinux reusable-workflow matrix, whose actions are not allowlisted). syntax.yml upgraded to pinned markdown-link-check and action-shellcheck.V4 with the new ABI Linux_x86_64_musl: a Linux x86_64 host whose C compiler targets a non-glibc libc (musl). Detection pulls in <features.h> (when available) inside the Linux x86_64 branch of the C header and treats the absence of __GLIBC__ as musl.V1-V3 report a musl host as Linux_x86_64 rather than an error. Those interfaces predate musl detection and always reported Linux_x86_64 on musl hosts, so existing consumers keep working unchanged. This intentionally differs from the Result.error downgrade used for the ABIs introduced in V2 and V3.get_os_name. Unlike the ABI name the operating system name is mixed-case (ex. Windows) to aid in scenarios where the operating system name is presented to users. The ABI name is canonically lowercase and will stay that way.rresultfailwithUnknown to t_abi and other sum typesUnknown in the C headerC_conf moduleLinux_x86.(t_os, Rresult.msg) result to (t_os, string) result (ditto for t_abi).Internal version.