This issue explores one possible solution to #67, ie equipping the analyser with a more sophisticated notion of status from the basic flags
Invocation status (ok, run-fail, etc);
Per-compiler status (cartesian product of above and flags like filtered, ice);
Overall status (something like ok, filtered, us, them);
The analyser would calculate per-compiler statuses by scrutinising compiler logs and suchlike, and then merge them together. Much as happens now, but it'd stop being a simple flag union and be somewhat more sophisticated.
Possible ways to calculate overall status:
if all subject statuses are ok, return ok;
if all subject statuses are ok or filtered, return filtered;
if all subject statuses are bad, but in the same way, (and if there is more than one compiler?), return us (potential bug on our side);
else, return them (potential bug on their side).
Saving under this regime would probably merge the overall and per-compiler status into the path, producing something like, iunno, us/run-fail+filtered, or maybe us/filtered/run-fail, etc.
This issue explores one possible solution to #67, ie equipping the analyser with a more sophisticated notion of status from the basic flags
ok
,run-fail
, etc);filtered
,ice
);ok
,filtered
,us
,them
);The analyser would calculate per-compiler statuses by scrutinising compiler logs and suchlike, and then merge them together. Much as happens now, but it'd stop being a simple flag union and be somewhat more sophisticated.
Possible ways to calculate overall status:
ok
, returnok
;ok
orfiltered
, returnfiltered
;us
(potential bug on our side);them
(potential bug on their side).Saving under this regime would probably merge the overall and per-compiler status into the path, producing something like, iunno,
us/run-fail+filtered
, or maybeus/filtered/run-fail
, etc.