Skip to content

DCDart v0.1.0 — initial public release

Choose a tag to compare

@squirelboy360 squirelboy360 released this 08 Sep 20:56
· 2 commits to main since this release

First public release of DCDart.

Highlights

  • Native AOT compiler: dcc build --mode bare compiles DCDart source to real object files (ELF, Mach-O, COFF) through the DC-IR pipeline and LLVM. No VM, no interpreter, no JIT.
  • ARC memory management with compile-time elision and a local cycle collector — retain/release you can count with dc-objdump --arc.
  • Ten codegen targets, including freestanding bare-x86_64 for kernel work: zero undefined symbols, enforced mechanically on every change.
  • C ABI at every boundary: --emit-header writes a C header for FFI, so C, Rust, and Python can call into compiled DCDart directly.
  • Verified: all 48 conformance suites pass on Darwin/arm64 (hosted link mode).
  • The full design-decision record is public: 72 ADRs, 13 escalations, and the known-gaps ledger — including the benchmarks that were rewritten when the numbers were initially dishonest.

Install

Homebrew (macOS, Apple Silicon):

brew tap dotcorr/tap https://github.com/DotCorr/homebrew-tap
brew install dotcorr/tap/dcdart

Then compile a program (pass the shipped prelude — its path is matched lexically, so spell it the same in your import):

dcc build --mode bare --target host main.dart -o main.o --emit-header main.h \
  --prelude $(brew --prefix)/opt/dcdart/libexec/core/runtime/dc-core-bare/prelude.dart

Tarball: dcdart-v0.1.0-darwin-arm64.tar.gz — a self-contained AOT dcc binary plus the freestanding prelude. Extract and run core/dcc/bin/dcc build --mode bare <source.dart> -o <out.o>. A Dart SDK 3.12.2 on PATH (or DCDART_DART) is required for the kernel-frontend stage.

License

Apache-2.0 with LLVM exceptions. The exception guarantees that programs compiled with dcc are entirely yours — no conditions of the license attach to the binaries you build and distribute.