You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A couple of programs were getting stuck at `#applyUnOp` for
unimplemented operations, this enables thunking unary operations. In
particular:
- `#applyUnOp` is put in sort `Evaluation` so that thunking can happen.
- `#compute` is renamed to `#applyBinOp`.
- The P-token test is limited to 7 iterations of the prover maximum to
keep it from running too long (arbitrary limit, still takes about 10
minutes).
- Test output is updated: there are 2 tests where the rename `#compute
=> #applyBinOp` has an effect, and 2 where we get further into execution
of programs because we thunk up `#applyUnOp` (including the P-token
test).
---------
Co-authored-by: devops <[email protected]>
Copy file name to clipboardExpand all lines: kmir/src/kmir/kdist/mir-semantics/rt/data.md
+17-17Lines changed: 17 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -894,20 +894,20 @@ This is specific to Stable MIR, the MIR AST instead uses `<OP>WithOverflow` as t
894
894
895
895
[^checkedbinaryop]: See [description in `stable_mir` crate](https://doc.rust-lang.org/nightly/nightly-rustc/stable_mir/mir/enum.Rvalue.html#variant.CheckedBinaryOp) and the difference between [MIR `BinOp`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/enum.BinOp.html) and its [Stable MIR correspondent](https://doc.rust-lang.org/nightly/nightly-rustc/stable_mir/mir/enum.BinOp.html).
896
896
897
-
For binary operations generally, both arguments have to be read from the provided operands, followed by checking the types and then performing the actual operation (both implemented in `#compute`), which can return a `TypedLocal` or an error. A flag carries the information whether to perform an overflow check through to this function for `CheckedBinaryOp`.
897
+
For binary operations generally, both arguments have to be read from the provided operands, followed by checking the types and then performing the actual operation (both implemented in `#applyBinOp`), which can return a `TypedLocal` or an error. A flag carries the information whether to perform an overflow check through to this function for `CheckedBinaryOp`.
There are also a few _unary_ operations (`UnOpNot`, `UnOpNeg`, `UnOpPtrMetadata`) used in `RValue:UnaryOp`. These operations only read a single operand and do not need a `#suspend` helper.
0 commit comments