Skip to content

Release Notes

Upcoming release: PV11 builtin contract correction

Section titled “Upcoming release: PV11 builtin contract correction”

JuLC’s current compiler targets the Plutus V3/PV11 feature set. This contract was verified against Plutus 1.63.0.0 (f92b7d7d82622a26caf456a6be33859f697e2cfc), as shipped by cardano-node 11.0.1.

The released PV11 Batch 6 is exactly:

TagsBuiltinsSpecification
87ExpModIntegerCIP-109
88DropListCIP-132
89-91LengthOfArray, ListToArray, IndexArrayCIP-138
92-93BLS12-381 G1/G2 multi-scalar multiplicationCIP-133
94-100Native MaryEraValue operationsCIP-153

Earlier JuLC previews exposed Builtins.multiIndexArray as if it were a PV11 builtin and could generate FLAT tag 101. Tag 101 is the future CIP-156 operation; it is not part of PV11, and scripts containing it are not valid for that target.

The current compiler now rejects multiIndexArray with a compile-time diagnostic. Recompile affected scripts and replace the call with repeated IndexArray operations (for typed arrays, repeated array.get(index) calls). There is no automatic bytecode migration for an already-generated tag-101 script.

The tag remains in JuLC’s AST/FLAT support and Java VM for forward-development experiments only. That experimental implementation does not make it ledger-valid for PV11. It also retains JuLC’s legacy (array, indices) argument order rather than CIP-156’s proposed indices-first signature, so it is not a conformant preview of the future builtin.