IntersectMBO / IntersectMBO/plutus

Specify the exact meaning of "pure" in the PIR optimizer

Open
#6,077 0 comments 0 reactions 0 assignees View on GitHub
Good first issue Internal Plutus IR status: triaged
Dominant language
Haskell
Stars
1.6k
Forks
508
Avg merge
3d 10h
Merged PRs (30d)
22

Description

We have that `PlutusIR.Purity.isPure` and its semantics seems to be underspecified. You can see how it causes confusion [here](https://github.com/input-output-hk/plutus/pull/5093#discussion_r1092117897) for example.

We need to properly specify the semantics of this function and the entire concept of purity. Ideally, even formalize it. Otherwise we may run into a situation where the PIR optimizer changes the behavior of the program potentially introducing a severe bug into the smart contract.

And do we need the same for UPLC?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.