Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate adding dropList #6593

Open
1 of 3 tasks
effectfully opened this issue Oct 23, 2024 · 3 comments
Open
1 of 3 tasks

Investigate adding dropList #6593

effectfully opened this issue Oct 23, 2024 · 3 comments

Comments

@effectfully
Copy link
Contributor

effectfully commented Oct 23, 2024

@colll78 created a CIP on adding dropList as a builtin: New Plutus Builtin DropList. There's also a somewhat related issue: #6416.

I believe having such a builtin would allow script writers to meaningfully optimize their scripts across the board and maintaining an extra builtin, particularly such a simple one, doesn't sound like a lot of work. So I believe we should investigate it.

The roadmap:

@colll78
Copy link
Contributor

colll78 commented Oct 26, 2024

SundaeSwap @Quantumplation
Minswap @ljttl3q04t
WingRiders @TechRiderWR

All of the above use some variation of the redeemer indexing design pattern to reorder the inputs, and more generally to obtain certain inputs / elements in lists without needing to perform linear search. They would all benefit from this builtin to some degree, and as such should be asked to bench their scripts with this builtin after costing for it has been completed.

Liqwid @emiflake

Liqwid uses sorting networks to reconstruct the correct ordering of inputs so it might be less relevant, but it's possible other places in the codebase utilize redeemer indexing, so it is another potential candidate for benchmarking the impact of this builtin (also gentle reminder to opensource the liqwid smart contracts in the name of all that is cypherpunk, permissionless and decentralized).

@effectfully
Copy link
Contributor Author

They would all benefit from this builtin to some degree, and as such should be asked to bench their scripts with this builtin after costing for it has been completed.

We now consider it a priority to get this builtin costed, so once costing is done we'll make sure to ask everyone in this issue (and on Twitter just in case) to try this builtin out and see if it helps. Should be done in a few weeks. If we get good results, we'll add the builtin to the default set of builtins.

@colll78 thanks a lot for nudging us about it! I do believe that the ROI for this builtin is very high.

@colll78
Copy link
Contributor

colll78 commented Oct 29, 2024

Thank you guys a ton for being so receptive to external input lately. The community has noticed this and it has not gone unappreciated! DApp developers and even alternate contract language developers (targeting UPLC) are more optimistic than ever about the future of PlutusCore and the onchain applications that these improvements will enable!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants