Skip to content

runD 1.0.2 Alpha

Pre-release
Pre-release

Choose a tag to compare

@sigee-min sigee-min released this 01 Aug 11:06
· 104 commits to main since this release

runD 1.0.2 Alpha

This release hard-cuts full-capacity tile recurrence and per-tick checkpoint costs while preserving one deterministic Pipeline authority across CPU, Metal, and Vulkan.

Release source: a3188ee5455cc4abe1c6e1d3a87a705b98a90074

Append-only tile outputs (#2)

  • write_window(...) separates append-only tile publication from recurrent Fold state. The global destination remains O(Max), while each Fold's private publication bank and work are bounded by O(Tile) and total terminal publication is O(Max).
  • tile_repeat<0>(seed, fold) expresses Seed-to-Fold recurrence without a dummy identity Action.
  • CPU publishes the exact active slice directly. Metal uses the retained ICB warm path and Vulkan uses its retained command path; neither performs warm allocation, count readback, rebinding, or fallback.
  • Zero count, partial tails, high-index writes, duplicate/conflicting targets, deterministic failure priority, and atomic poison/unpublication are covered across CPU, Metal, and Vulkan.

Controlled Max=16, Tile=4 CPU evidence: warm median 57,000 ns -> 39,708 ns (-30.34%), Pipeline-owned peak 744 B -> 56 B (-92.47%), and modeled terminal semantic traffic 576 B -> 64 B (-88.89%). These are fixture-specific measurements, not a whole-application speed claim.

Explicit checkpoint tiers (#3)

  • latest_device_state() returns a copyable LatestDeviceState for live same-Device recovery without host payload, hashing, or checkpoint-path allocation.
  • snapshot_storage([capacity]) and snapshot_into(storage) provide a move-only reusable, atomically published two-bank SnapshotStorage for portable host recovery. Existing immutable snapshot() behavior remains available.
  • restore(latest) performs an O(1) selector hand-off when the target shares the publication authority; a disjoint compatible Pipeline performs an exact device-to-device payload copy. Portable restore retains the two-bank host contract.
  • Ordinary run() performs no implicit checkpoint operation. Checkpoint allocation/transfer evidence is separated in checkpoint_stats().

For a 4 MiB state, LatestDeviceState acquisition recorded zero checkpoint allocation, payload transfer, and hash work on CPU, Metal, and Vulkan. Warm reusable host export recorded zero process allocation on CPU and Metal; immutable export allocated 3 owners / 4,194,440 B. MoltenVK's driver-inclusive Vulkan observations were 44 allocations / 11,168 B for reusable export versus 47 / 4,205,608 B for immutable export, and are reported without vendor filtering.

Verification and platform boundary

  • Debug repository contracts: 35/35 passed.
  • Release package contracts: 25/25 passed, including installed SDK consumers.
  • Darwin arm64 clean-source candidate: 25/25 passed; archive extraction, identity, consumer rebuild, and SHA-256 verification passed.
  • Documentation site contract: 13 pages passed.
  • Linux x64: the tag-pinned Ubuntu 24.04 / GCC 13 candidate workflow passed the full release contract, source-identity sealing, SDK candidate packaging, extracted installed consumer, and temporary artifact upload.

Linux validation also closed two portability/verification gaps without weakening product contracts: the official parity example permits only exact AdapterUnavailable at device open on non-Darwin candidates, while Darwin still requires CPU, Metal, and Vulkan; and host-I/O queue verification now distinguishes deterministic FIFO effects from schedule-dependent physical pop retries after lane backpressure.

Linux remains a validated candidate rather than a supported release platform. Its temporary workflow artifact is intentionally not attached to this release; the published SDK asset is Darwin arm64 only.

Assets

  • rund-sdk-1.0.2-darwin-arm64.tar.gz
  • rund-sdk-1.0.2-darwin-arm64.sha256
  • rund-verify

Darwin SDK SHA-256: 8ad23657f437f9afd7e3a74c2190f864027232f5d5314bbba6a2305f8254f6a4