Plutus Core Team Update
High level summary
Plutus Core
-
Following the support for case analysis on booleans, integers and lists, we are now working on supporting case analysis for unit, pairs, and Data.
-
The required changes to enable all built-in functions, as well as sums-of-products, in all Plutus ledger languages (Plutus V1, V2 and V3) have been implemented in preparation for the upcoming intra-era hard fork.
-
We started developing a surface language benchmark for UPLC, aimed to compare the performances of different surface languages targeting UPLC. We have introduced the first scenario for comparison - computing Fibonacci numbers. More scenarios will be added in the near future.
Plinth
-
The Plinth compiler now compiles Haskell
Boolinto UPLC's built-in boolean type, instead of sums-of-products or Scott encoded boolean. This makes many scripts smaller and faster. -
We are planning additional performance and usability improvements, such as inlining recursive bindings, and showing line numbers in compilation errors.
Low level summary
Key Pull Requests Merged
- Enable SoPs and all builtins in PlutusV1/V2 at PV11
- Compile Haskell Bool to UPLC Built-in Bool
- UPLC-CAPE benchmarking framework, and the Fibonacci scenario
Issues and Pull Requests In Progress
- Add constant casing for builtin unit and pair
- Add BuiltinValue type to plutus-core
- Add MSM builtin
- Improve the efficiency of checking whether a built-in function is available in a given Protocol Version and ledger language version (in plutus-private)
- Retrieve validator inputs from a network for testing (in plutus-private)
- Define a two-party escrow scenario for the surface language benchmark for UPLC (in plutus-private)




