Skip to main content

15 posts tagged with "plutus-core"

View All Tags

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary

The Plutus team has recently made a number of significant improvements to Plinth, including:

  • Compiler improvements:
    • Added a type checker plugin that preserves source locations, resulting in significantly clearer error messages (#7640).
    • Added a second type checker plugin to detect unsupported Haskell features, further improving error reporting (#7659).
    • Added a driver plugin that automatically sets the required compiler flags and enables the Strict extension (#7687).
  • Language improvements:
    • AsData now generates a destructor function for the data type (#7664). For matching on sum types, the destructor function is more efficient than the pattern synonyms.

The Plinth user guide will be updated soon. In the meantime, please refer to the linked PR descriptions for further details.

Additionally, a new UPLC optimization has been implemented: applications with three or more arguments are now transformed into case-constr form.

Low level summary

Key Pull Requests Merged

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary

The Plutus team has finished implementing and costing the Value primitives, as well as completing all other development required for the upcoming intra-era hard fork.

We've recently published a blog post recapping the recent UPLC 2025 event: https://www.iog.io/news/uplc-2025-conference-recap

In collaboration with Koz Ross from MLabs, we've implemented optimized byteStringToInteger and integerToByteString primitives. Both primitives will now take linear time instead of quadratic time. These improvements leverage the ghc-bignum library, which was made possible by dropping support for GHC 8.

In parallel, we continue to make progress across several other areas, including the initial work on Plutus V4, ongoing discussions around formally verifying the UPLC inliner in collaboration with Professor Philip Wadler, further optimization of UPLC runtime performance, and continued improvements to the usability of Plinth.

Low level summary

Key Pull Requests Merged

Issues and Pull Requests In Progress

  • Formally verifying the UPLC inliner
  • Adding a new Array constructor for UPLC, which can be accessed in Plutus V4
  • End-to-end testing for intra-era Hard Fork features

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary

The Plutus team is finalizing work for the upcoming intra-era hard fork.

Four of the Value primitives have now been costed, and the remaining three are currently in progress. After this, the final step before will be performing end-to-end testing for all new features to be introduced in the hard fork.

We are also preparing a blog post on UPLC 2025, which will be published soon.

In parallel, we continue progressing on other tasks, including support case analysis related to Data.

Low level summary

Key Pull Requests Merged

Issues and Pull Requests In Progress

  • End-to-end testing for dropList
  • End-to-end testing for modular exponentiation
  • End-to-end testing for multi-scalar multiplication
  • End-to-end testing for Array primitives
  • End-to-end testing for Value primitives
  • End-to-end testing for unification of primitives across Plutus V1, V2 and V3

Plutus Core Team Update

· One min read
Ziyang Liu
Software Engineering Lead

High level summary

The Plutus team organized and attended UPLC 2025, an event dedicated to the UPLC language, held in Edinburgh last week. Session recordings will be available soon.

Based on community feedback, we have added a new Value primitive, scaleValue, to the upcoming intra-era hard fork, along with several minor refinements to other Value primitives.

We have also continued improving the performance of the UPLC evaluator, specifically by optimizing the inlining of the geq function.

Finally, we are progressing with costing for all Value primitives.

Low level summary

Key Pull Requests Merged

Issues and Pull Requests In Progress

  • Costing for Value primitives (in plutus-private)

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary

We’ve completed the implementation of CIP-0153, introducing the Value built-in type and its associated functions. Our current focus is on finalizing the costing for these built-ins. Once this is complete, Plutus will be ready for the intra-era hard fork. All other features scheduled for the hard fork are already finished.

We’ve improved the Flat decoding of built-in lists, which has noticeably sped up Plutus script deserialization. In our benchmarks, some scripts' deserialization now runs with double-digit performance gains.

We’ve updated the Plutus Core specification and the Agda formalization to include the multi-scalar multiplication primitives (CIP-0133). Additional property and conformance tests have also been added for these primitives.

The team is also gearing up for UPLC 2025, a UPLC event scheduled to take place in approximately three weeks.

Low level summary

Key Pull Requests Merged

Issues and Pull Requests In Progress

  • Built-in Value: costing (in plutus-private)