IntersectMBO/plutus

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

Open

#6.077 aberto em 21 de mai. de 2024

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)Haskell (511 forks)batch import
Good first issueInternalPlutus IRstatus: triaged

Métricas do repositório

Stars
 (1.637 stars)
Métricas de merge de PR
 (Mesclagem média 15d 11h) (13 fundiu PRs em 30d)

Description

We have that PlutusIR.Purity.isPure and its semantics seems to be underspecified. You can see how it causes confusion here 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?

Guia do colaborador