✗
Failing This test is currently failing.
Failed: output
Failure Output
[import gate] wiring:7: `import app/test_lib/tracer` excluded — no entry true
`profile` -> false [profile = false (absent)]
[import gate] wiring:7: `import app/test_lib/tracer` excluded — no entry true
`profile` -> false [profile = false (absent)] Code
// Pins that the import gate sees the compiler flags from INSIDE an imported
// module, not only in the entry file.
//
// 310_104 pins `~[profile]import` in the entry file and is green. This moves
// the SAME gate one module deeper: the entry imports `test_lib/wiring`, and
// `wiring` is the one carrying the gated `import test_lib/tracer`. Run with
// --profile (COMPILER_FLAGS), so the gate must KEEP the tracer import and its
// [TAP] line must appear.
//
// If the gate evaluates against an empty provider chain one level down, the
// import is dropped and the [TAP] line vanishes — a code-membership decision
// made silently on a flag the build actually passed, which is the exact
// failure class the gate's loud-evaluation contract exists to prevent.
const std = @import("std");
~import app/test_lib/wiring
~tor compute { x: i32 } -> i32
~proc compute|zig {
std.debug.print("compute({d})\n", .{x});
return x * 2;
}
~tor display { value: i32 }
~proc display|zig {
std.debug.print("Final: {d}\n", .{value});
}
~compute(x: 21): r |> display(value: r)
Actual
compute(21)
Final: 42
Expected output
compute(21)
[TAP] compute
Final: 42
Flows
flow ~compute click a branch to expand · @labels scroll to their anchor
compute (x: 21)
Imported Files
// Tap module — importing it is what wires the tap (the 310_001 mechanism).
// The pin's gated import makes that wiring conditional: this module's output
// appears exactly when the import survives the annotation gate.
const std = @import("std");
~import std/taps
~pub tor log { event_name: string }
~proc log|zig {
std.debug.print("[TAP] {s}\n", .{event_name});
}
// compute is a bare-return `-> T` event, so the tap binds the produced value
// with `: r` (call-site bind rule, Lars-ruled 2026-06-25; 310_001 is the green
// precedent) — a branch tap has no named branch to match on a bare return.
~tap(input:compute -> input:display): r |> log(event_name: "compute")
// The gated import lives HERE — one module below the entry file — which is the
// whole point of the pin.
~[
- profile
Tracing is opt-in; the tracer module only rides along when asked for.
]import app/test_lib/tracer
Test Configuration
MUST_RUN
Compiler Flags:
--profile