scry — a sound static analyzer for WebAssembly — v3.2.7 → v3.3.0 (by stable obligation identity)

What this page claims

This is a comparison of two analyses by stable obligation identity (FEAT-064), not by (func_index, pc). It reports what changed. It does not report that anything was proved.

Adjudication — turning an observed change into a verdict — is deliberately absent. Matching obligations on a positional ordinal was refuted in review (scry#122): a deletion paired with a same-kind insertion leaves an ordinal domain's site set byte-identical, so an unchanged domain does not imply identity held. An adjudicator that can wrongly report success is worse than none, because the cheapest way to satisfy it is to delete the code.

The one claim made here is narrow and its name says so: ordinal-stable. A site whose ordinal domain holds exactly one member in both runs cannot have had its ordinal donated by a same-kind sibling, because ObligationId.v: survivor_inherits_deleted_identity needs one and a singleton domain has none.

That is not a certificate that identity held. The key hashes a region path, and a path is a sibling index at its depth — so deleting a whole region renumbers its later siblings, and a surviving region can move into the deleted one's path. Its sole operator then inherits the entire key while both domains remain singletons. An obligation removed by deleting its region can therefore look, from the keys alone, exactly like one that changed state. This page reports what moved; establishing that a change belongs to a particular site needs corroboration these keys do not carry (scry#122, scry#123).

Everything not ordinal-stable is not excluded — a statement about our knowledge, not about the code.

Summary

module before
b1239f6d2fc11233ccb4ac830f7f18b09195ccf47bb4c92face4134ff2b3b1db
module after
36ff27b5a6fc8d7f52c18053ef02c0fccf8e00884f85c0ab932122f71dcfd880
sites before / after
9897 / 10509
…with a build-local identity
28
present in both
5975
…ordinal-stable
2084 (34.9%)
…ordinal donation not excluded
3891
only in before (site gone)
3922
only in after (site new)
4534
…of the gone/new, id moves on own edit (not evidence)
0
obligation set changed
0
…of those, ordinal-stable
0

The ordinal-stable subtotal is the rows on which one specific hazard — a same-kind sibling donating its ordinal — is excluded. It is a filter, not a warrant: a region-path shift can still move a key between operators, so these are the rows worth looking at FIRST, not the rows that are settled.

A site "only in before" is not a fix: the code that carried the obligation may simply be gone, which proves nothing.

A build-local identity (the count above) is unique within one build only: the function's stripped name is shared (dependency generics), so the raw name — which carries a crate-metadata disambiguator and churns across builds — is hashed. Such a site vanishing or appearing between builds is expected identity churn, not evidence a site came or went (scry#123).

Sites that moved

8456 site(s) moved — 3922 gone, 4534 new, 0 changed in place — showing the first 100.

sitefn:pcfatealiasbeforeafter
0005bf7860daf811fn424:23newnot excluded—unmodeled-control-flow
000be6c4e0042067fn130:49gonenot excludedout-of-bounds—
00231e50b61f7c9afn83:58newnot excluded—unmodeled-branch
00272aa4dd55504afn127:117gonenot excludedout-of-bounds—
0029b27e8b0b0fc7fn101:17newnot excluded—out-of-bounds
002b62717e182aa3fn305:10newnot excluded—out-of-bounds
00324ec8955aa956fn152:119newnot excluded—unmodeled-control-flow
003b1bf80986b5f1fn371:2gonenot excludedout-of-bounds—
003d43caeade283ffn65:12newnot excluded—out-of-bounds
003e418a76c72342fn288:24newnot excluded—out-of-bounds
0044f5631ac8e8fbfn201:79newnot excluded—out-of-bounds
004fd94538435728fn178:104gonenot excludedout-of-bounds—
005ab811afa857acfn143:431gonenot excludedout-of-bounds—
0067d9f656ad1002fn122:250gonenot excludedout-of-bounds—
00699bffe6761c2afn231:2682newnot excluded—out-of-bounds
007a2ca67cc0a8f7fn134:66newnot excluded—out-of-bounds
008674345b562f78fn88:128newnot excluded—out-of-bounds
008a55b65a6ca6b1fn65:116newnot excluded—out-of-bounds
008f619f6b2f2084fn131:59gonenot excludedout-of-bounds—
0092adc173107315fn162:200newnot excluded—out-of-bounds
00a11f165130d788fn84:67newnot excluded—out-of-bounds
00a52375dd335192fn169:74newnot excluded—unmodeled-control-flow
00a99d3be7e4724afn194:34gonenot excludedout-of-bounds—
00c2ebbcb8fa6769fn373:43gonenot excludedout-of-bounds—
00c4848a53853629fn60:511gonenot excludedout-of-bounds—
00c612b96116dce9fn171:112newnot excluded—out-of-bounds
00c91c881e271ed6fn85:6newnot excluded—out-of-bounds
00cf7b1a9e852c67fn296:66newnot excluded—out-of-bounds
00d15ad03d7d41a9fn142:408gonenot excludedout-of-bounds—
00ddb51f216f0462fn162:250newnot excluded—out-of-bounds
00ffce35cf441b92fn132:78newnot excluded—out-of-bounds
0101c835db681fd4fn43:38gonenot excludedout-of-bounds—
011092f4bb5f8f72fn126:52gonenot excludedout-of-bounds—
0113e761ebf81b20fn211:31gonenot excludedout-of-bounds—
011876fe2d019171fn124:94gonenot excludedunmodeled-control-flow—
01283ee831a2550bfn314:58newnot excluded—out-of-bounds
0130f920c258def4fn420:111newnot excluded—out-of-bounds
013132cca5f0fcdefn415:95newnot excluded—out-of-bounds
01316cd955311345fn241:17newnot excluded—out-of-bounds
01420cc87a0cae01fn77:39newnot excluded—out-of-bounds
0151a8ec2226c60bfn162:471newnot excluded—out-of-bounds
01556950707572abfn157:23gonenot excludedout-of-bounds—
01574b71497bf574fn178:168gonenot excludedout-of-bounds—
015f3aac603cc37efn295:83newnot excluded—out-of-bounds
0162d5fdfa96d57afn206:2321gonenot excludedout-of-bounds—
0166a1ae71eb38a9fn147:69gonenot excludedout-of-bounds—
0168d9f628da5cebfn142:328newnot excluded—out-of-bounds
016ab7f7ea8853a1fn379:119gonenot excludedout-of-bounds—
016b98805e951eaffn470:7newnot excluded—out-of-bounds
016fbb181e3ee1e4fn165:53newnot excluded—out-of-bounds
017060624af37ef0fn231:380newnot excluded—unmodeled-control-flow
01805c5f3c1334aafn250:9newnot excluded—out-of-bounds
0181ee7bb7a6a228fn231:181newnot excluded—unmodeled-control-flow
01824deb27a91c66fn206:2356gonenot excludedout-of-bounds—
018385b07c6b1f9dfn224:78gonenot excludedunsupported-op—
01856033bc3fd6e1fn63:3gonenot excludedout-of-bounds unsupported-op—
018b9d398a0f602dfn451:75newnot excluded—out-of-bounds
018c2e5c3bd4341efn252:19newnot excluded—unsupported-op
019012bcff7d823bfn142:241gonenot excludedout-of-bounds—
019ae6bbf7b29a4cfn305:74newnot excluded—out-of-bounds
01a489116377f4b2fn190:180newnot excluded—out-of-bounds
01aa165e1fb211f2fn143:32newnot excluded—out-of-bounds unsupported-op
01bcde1a8a6fa0bffn293:16newnot excluded—unsupported-op
01bede1825e0f48efn56:680newnot excluded—out-of-bounds
01ceb77411cbe873fn269:295newnot excluded—unmodeled-control-flow
01d120877dc9b098fn161:150newnot excluded—out-of-bounds
01d1bc77b14bd863fn92:5gonenot excludedout-of-bounds unsupported-op—
01d4d0ddc52a9fd1fn279:82gonenot excludedout-of-bounds—
01e42749c28a9f8dfn257:74newnot excluded—out-of-bounds
01f817b8d0adab35fn152:108newnot excluded—out-of-bounds
01f926b6578ccac8fn127:744gonenot excludedout-of-bounds—
020183620af92718fn264:10gonenot excludedout-of-bounds—
02235935c128f61bfn164:52newnot excluded—out-of-bounds
02284d3a20298489fn436:57newnot excluded—out-of-bounds
0230bb00921f7339fn124:316gonenot excludedout-of-bounds—
0230c147a745e085fn235:40newnot excluded—out-of-bounds
02351fc888e047b4fn166:104newnot excluded—unmodeled-control-flow
0253294225b4f040fn64:127newnot excluded—out-of-bounds
0262b94b57e6993efn175:139newnot excluded—out-of-bounds
02654f360ef9d6fbfn161:94newnot excluded—out-of-bounds
0265a373795e830afn134:287gonenot excludedunmodeled-control-flow—
02826cdaec7e8deffn86:70newnot excluded—unmodeled-control-flow
028404e56e2bacfcfn143:262newnot excluded—out-of-bounds
0287bf5d8ae1146ffn137:67gonenot excludedout-of-bounds—
028860e6d164d823fn146:54newnot excluded—out-of-bounds
029188f166605da9fn90:9newnot excluded—out-of-bounds
0293894152cbadc3fn165:106newnot excluded—out-of-bounds
02a9dcbcfb89b621fn147:45gonenot excludedout-of-bounds—
02ab9c94835c775efn375:16gonenot excludedunmodeled-control-flow—
02af5ac16bb02cc2fn279:795gonenot excludedout-of-bounds—
02bfc4647a6a1e0efn60:158newnot excluded—unmodeled-control-flow
02cc724ab7f0bd98fn130:99gonenot excludedout-of-bounds—
02d273be91703c82fn122:255gonenot excludedout-of-bounds—
02d3b30bee354cb5fn436:72newnot excluded—unsupported-op
02d46420f3b0f848fn144:237gonenot excludedout-of-bounds—
02d5b3dcb251f216fn457:10newnot excluded—out-of-bounds
02dd6373e340aa7bfn286:56gonenot excludedout-of-bounds—
02e9f1308740fbf5fn302:10newnot excluded—out-of-bounds
02ec01b2c64711a1fn164:77newnot excluded—out-of-bounds
02ec21837aa526f5fn162:262newnot excluded—out-of-bounds

Identity may have moved — not evidence

Every site listed as gone or new carries an identity that survives an edit to its own function — none of the vanishes/appearances above is dismissible as identity churn on this axis.