Skip to content

Unexpected `can_fail` and/or `has_side_effects` attributes for some primops?

Summary

Some primops I would expect to have a can_fail attribute don't. Similar primops that do suggest that the attribute should be present:

- CasArrayOp  "casArray#"
- CasSmallArrayOp  "casSmallArray#"

Perhaps there are more, the above list may not be comprehensive.

Some primops may have excess has_side_effects (can reading have side-effects)?

- ReadArrayOp "readArray#"
- ReadArrayArrayOp_ByteArray "readByteArrayArray#"
- ReadArrayArrayOp_MutableByteArray "readMutableByteArrayArray#"
- ReadArrayArrayOp_ArrayArray "readArrayArrayArray#"
- ReadArrayArrayOp_MutableArrayArray "readMutableArrayArrayArray#"
- ReadOffAddrOp_Char "readCharOffAddr#"
- ReadOffAddrOp_WideChar "readWideCharOffAddr#"
- ReadOffAddrOp_Int "readIntOffAddr#"
- ...
- AtomicReadByteArrayOp_Int "atomicReadIntArray#"
- AtomicReadAddrOp_Word "atomicReadWordAddr#"
- ReadMutVarOp "readMutVar#"
  • GHC version used: HEAD
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information