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

TODOs :: Road to β #754

Closed
32 of 52 tasks
KtorZ opened this issue Oct 26, 2023 · 3 comments
Closed
32 of 52 tasks

TODOs :: Road to β #754

KtorZ opened this issue Oct 26, 2023 · 3 comments
Assignees

Comments

@KtorZ
Copy link
Member

KtorZ commented Oct 26, 2023

This issue summarizes the work remaining work we foresee for the β-release of Aiken. Items are settled and some may be added as needed. But it gives a general overview.

Off-chain code generation

  • Experiment with extism
    • JavaScript
    • Python
  • Hook extism plugins into a framework for code-gen (parsing & processing blueprints).

Note

We will no longer be addressing this since it has proven to be a non-problem. What we are observing in practice are frameworks (e.g. translucent, bloxbean, Plutus-Tx...) providing their own support for CIP-0057 Plutus blueprints which are bespoke for the language they live in. This is better than a clunky plugin system based on a portable VM.

Language Server Protocol

  • Hovering at fields of a constructor in pattern-match
  • Hovering on nested elements of and and or sections
  • Implement quickfixes for more warnings #842
    • ImplicitlyDiscardedResult
    • SingleWhenClause
    • SingleConstructorExpect
    • UnusedVariable
    • Utf8ByteArrayIsValidHexString

Core Improvements

Plutus V3

Property-based testing framework

  • Property-based testing framework #835
  • Improve existing annotations for unit tests by:
    - [x] Leveraging the new reification capabilities to show operands as Aiken expressions (instead of raw UPLC data)
    - [x] Ensure annotations also support the and and or keywords

Command-line

Aikup

QA

Issues to be drafted

  • Colors for test budget results
@KtorZ KtorZ pinned this issue Oct 26, 2023
@MitchTurner
Copy link
Contributor

Off-chain code generation

Is this for generating types and serialization? Very excited for that. Would appreciate Rust type :)

Also, extism seems like a wasm thing. Curious how that's related to generated types.

@KtorZ
Copy link
Member Author

KtorZ commented Oct 26, 2023

@MitchTurner thats exactly what it is about, generating boilerplate smart constructors and serialisation code for datum and redeemers.

Extism here is used as a decoupling mechanism. We don't want to be writing all the code generation for all languages ourselves. So we need a way for the Aiken cli to delegate part of the generation to "plugins". So that in Aiken, we handle the parsing and processing of the blueprint and we hook onto plugins for generating the actual code.
Now we thought about it and people are most likely going to want to use their own favorite languages for the job, and it will be complicated to package plugins if we simply rely on binaries. Thus the need for a portable target which is widely support across languages -> wasm.

Rust is something we'd like to have eventually and it would be a nice trial if you want to give it a try and build the Rust plug-in!

@MitchTurner
Copy link
Contributor

MitchTurner commented Oct 26, 2023

Nice. Yeah I'd be open to help out on the Rust plugin. That's the biggest pain point with Naumachia rn, manually writing the PlutusData conversions for Rust types. It'll be great to have the types handed to you from your Aiken code 🤝

@KtorZ KtorZ changed the title Milestone :: Road to β TODOs :: Road to β Apr 4, 2024
@KtorZ KtorZ closed this as completed Sep 2, 2024
@KtorZ KtorZ unpinned this issue Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ✅ In Next Release
Development

No branches or pull requests

4 participants