Skip to content

Commit 0e895b8

Browse files
committed
Point section 10 at the filed cmdstan_version_compare() issue
The third absence-of-evidence instance now has an issue behind it (#1260), and the note says why fixing it does not close anything here: the adoption invariant in section 7 is what stops a bad version reaching a model.
1 parent 72ba404 commit 0e895b8

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

dev-notes/compilation-state.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2613,7 +2613,9 @@ every comparison. It is wrong for a model.
26132613
The guard is also narrower than "unusable", which matters because it removes the
26142614
temptation to lean on it: a malformed non-empty string never reaches the `-1` at all.
26152615
`".."` errors inside `utils::compareVersion()` and `"garbage"` warns, so the function
2616-
has two distinct bad-input behaviours and neither is a safe fallback. That is why §7
2616+
has two distinct bad-input behaviours and neither is a safe fallback. Filed as #1260,
2617+
separately from this design: the comparison should not answer a question it was not
2618+
asked, but fixing it is defence in depth rather than what closes this. That is why §7
26172619
makes "an adopted executable always yields a valid version" a *checked* invariant rather
26182620
than an observation, and why a model without an executable cannot reach a gate (§8).
26192621

0 commit comments

Comments
 (0)