Skip to content

Remove deferred builtin applications from the specification - #7928

Merged
kwxm merged 1 commit into
masterfrom
kwxm/spec/remove-deferred-applications
Aug 28, 2026
Merged

Remove deferred builtin applications from the specification#7928
kwxm merged 1 commit into
masterfrom
kwxm/spec/remove-deferred-applications

Conversation

@kwxm

@kwxm kwxm commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Fixes https://github.com/IntersectMBO/plutus-private/issues/1685.

New builtins caseList and caseData were added to UPLC in this PR in October 2024, but then we decided to extend UPLC's case costructor to case on built-in values instead and the builtins were removed again in this PR in July 2025.

Correspondingly I added caseList and caseData to the specification in this PR and removed them again in this PR. However, in the first PR I added "deferred applications" (HeadSpine in the implementation) which allowed a builtin to return an object of the form (v|v1,...,vn) (all of the v's values), which would then be evaluated as v applied to v1,..., vn by the CEK machine. When I removed caseList and caseData I left these deferred applications in the specification in case we needed them again later. However I'm now adding the new form of casing to the specification and that needs deferred applications of the form (e|e1, ..., en), where the e's are expressions, not values, and it's just confusing to keep the old deferred applications. I'm removing them in this PR separately from adding the new ones so that we can see what was removed in case we ever need it again.

I've added a rendered version of the PDF below. That may not be very helpful though: it's difficult to tell whether removing a bunch of stuff leaves the remainder of the specification in a sensible state (I think it does, but I could have missed something).

plutus-core-specification.pdf

@kwxm kwxm added Specification Builtins No Changelog Required Add this to skip the Changelog Check labels Aug 27, 2026

@ana-pantilie ana-pantilie left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks good, but I am not that familiar with the part of the spec that got removed, so I might also have missed something.

@basetunnel

Copy link
Copy Markdown
Contributor

I have wondered before why the sequence of values was there in the spec. So caseData and caseList were never released on-chain then? Looks good.

@kwxm

kwxm commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

So caseData and caseList were never released on-chain then?

Correct. We put them in then took them back out.

@kwxm
kwxm merged commit 0c0fd25 into master Aug 28, 2026
11 checks passed
@kwxm
kwxm deleted the kwxm/spec/remove-deferred-applications branch August 28, 2026 05:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Builtins No Changelog Required Add this to skip the Changelog Check Specification

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants