E6004

E6004 — Transfer violates the boundary contract at a seam (per-seam local-completeness / soundness obligation is sat; a stale read can violate the contract).

What the compiler reports

E6004

The fragments the test suite holds the compiler to. An ellipsis marks text the test does not constrain; the emitted message also carries a source location.

A program that triggers it

//
// Part of the Vx Project, under the Apache License v2.0 with LLVM Exceptions.
// See LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// A *relaxed* transfer into a `managed: explicit` (programmer-managed) space
// must discharge the coherence seam -- the buffer carries no synchronizing release, so a
// consumer may read it stale (E6004). Requires seam verification.
//
// VERIFY-SEAMS

Memory Local_SRAM {
  managed: explicit
}

fn main() -> i32 {
  let t : Tensor<f32, []> = 1.0;
  let staged = t.to_sram_relaxed();
  return 0;
}

From tests/frontend/fail/memory_relaxed_into_explicit.vx, which asserts this diagnostic on every commit.

Related