Repository navigation
-
motoko (
moc)- bugfix: the upgrade check of enhanced orthogonal persistence now rejects
changing a record field betweenvar f : [T]andf : [var T],Char
to or fromNat32, and()to or fromNull(or to?T). It used to
accept these upgrades, after which the new code misread the old heap. The
first upgrade frommoc2.2.0 or earlier still accepts them, as the
stable type those releases stored doesn't tell them apart. Before that
upgrade, runmoc --stable-compatible, which rejects them: for example,
a storedNat32read as aCharcan become an invalid code point (a
surrogate or one above0x10FFFF), and avar [T]field read as
[var T]reads the heap out of bounds. Once upgraded, a canister whose
stable type contains[var T],Char, or()(including tags without
payload, such as#on) fails to downgrade tomoc2.2.0 or earlier with
Memory-incompatible program upgrade(#6452).
- bugfix: the upgrade check of enhanced orthogonal persistence now rejects