Skip to content

DCDart v0.1.3 — safety and Windows interoperability

Latest

Choose a tag to compare

@squirelboy360 squirelboy360 released this 13 Sep 22:37

DCDart v0.1.3 fixes four reproduced correctness problems:

  • Misaligned atomic loads, stores and read-modify-write operations now deliberately trap before the access.
  • Raw and packed memory accesses explicitly permit byte alignment instead of making an invalid LLVM alignment promise.
  • Result.propagate() cleans up owned locals, weak references, owned parameters, and references held by unfinished calls, constructors, methods and assignments.
  • Windows x64 Result arguments and returns now follow the C calling convention, including external and indirect calls.

The audit also corrects an outdated claim: unchecked nullable source access is already rejected by the frontend. Foreign pointer validity, read-only pointer provenance, text lifetimes, multi-object runtime linking and other recorded language gaps remain open; this release does not claim they are all resolved.

Validation: 54 conformance suites with zero failures/skips on macOS ARM64 and Linux x86-64/ARM64; backend and optimizer tests; packaged compiler execution on all four release hosts, including Windows aggregate interoperability. Native archives require Dart SDK exactly 3.12.2 and Clang/LLVM. Linux baseline is Ubuntu 24.04/glibc 2.39+. Windows linking requires Visual Studio C++ tools.

Install using the DotCorr Homebrew tap on macOS ARM64/Linux, or DotCorr Scoop bucket on Windows x86-64. Compiler hosts are distinct from generated-code targets. Existing iOS/Android target support is preserved; this release does not add device execution evidence or phone-hosted packages.