Repository navigation
2.1.0
-
motoko (
moc)-
feat: added
Prim.subnetSelfNodeCount() : Nat32and
Prim.costHttpRequestV2(params : Blob) : Nat, exposing
ic0.subnet_self_node_countandic0.cost_http_request_v2for
pay-as-you-go HTTPS outcall pricing (#6461). -
bugfix: an
awaitorawait?of a future whose reply callback already
trapped now runs the awaiting computation'sfinallyclauses instead
of suspending forever. This includes Candid decoding failures before
a waiter was registered (#5909, #6469). -
bugfix: timers no longer stop for good when a canister runs short of
cycles. If the self-call that dispatches expired timers was rejected
before it ran (for example,IC0207out of cycles), no timer fired again,
even after a top-up. A one-shot timer whose job was rejected that way is
now retried instead of dropped (#6440). -
bugfix: the compiler no longer crashes with "Ill-typed intermediate code
after Async Lowering" when anasyncorasync*value is widened, for
example fromasync (Nat, Nat)toasync Any, or fromasync* Noneto
async* ()as inawait* async* throw e(#6451). -
bugfix: fixed an out-of-bounds access in the upgrade compatibility check
for a shared function stored in a mutable (aliased) position, such as a
stablevarof[var (shared R -> ())]. Its parameters are checked under
type invariance, and the memoization cache indexed the old and new type
tables transposed, which could read past the end of the cache or wrongly
accept an incompatible upgrade once the two versions had different
type-table sizes (#6463). -
M0276 no longer reports a comparison whose operands both already have the
single-valued type, such asstatus == #activewith
status : { #active }: the type was declared that way on purpose. It
still reports operands of different types compared atAnyor{}, and
a literal compared with anAnyvalue, as inx == 10. Its message now
names the operand types (#6470).
-