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

Scala codegen support for interfaces #13349

Closed
3 tasks done
S11001001 opened this issue Mar 21, 2022 · 5 comments
Closed
3 tasks done

Scala codegen support for interfaces #13349

S11001001 opened this issue Mar 21, 2022 · 5 comments
Assignees
Labels
component/scala-ecosystem Scala development experience roadmap/interfaces https://digitalasset.atlassian.net/browse/DAML-56 team/ledger-clients Related to the Ledger Clients team's components.

Comments

@S11001001
Copy link
Contributor

S11001001 commented Mar 21, 2022

@S11001001 S11001001 added component/scala-ecosystem Scala development experience team/ledger-clients Related to the Ledger Clients team's components. labels Mar 21, 2022
@stefanobaghino-da
Copy link
Contributor

I don't think we should work on this, unless there's a very good reason to do so.

@S11001001 S11001001 added the discussion Things to be discussed and decided label Mar 21, 2022
@S11001001
Copy link
Contributor Author

I don't think we should work on this, unless there's a very good reason to do so.

I agree; it exists first to determine whether there is a very good reason, so we don't forget to check that.

stefanobaghino-da added a commit that referenced this issue Apr 11, 2022
Contributes to #13324

changelog_begin
changelog_end

This work can be reused to address #13349 and I left `TODO`s where appropriate.
stefanobaghino-da added a commit that referenced this issue Apr 11, 2022
* Remove unused field from `Node`

* Add interface support to `transitiveClosure`

Contributes to #13324

changelog_begin
changelog_end

This work can be reused to address #13349 and I left `TODO`s where appropriate.

* Address #13557 (comment)

* Address #13557 (comment)

* Turn the bulk of the logic of `transitiveClosure` into a smart constructor
@stefanobaghino-da stefanobaghino-da added the roadmap/interfaces https://digitalasset.atlassian.net/browse/DAML-56 label May 9, 2022
@stefanobaghino-da
Copy link
Contributor

Prioritizing rationale: this item is a roadblock towards working with interfaces. We need to unblock other teams from implementing tests for interfaces. This is meant as a short-term measure to make use of the team's expertise. I still believe we should have a clear understanding, shared with other teams, regarding the longer-term strategy with regards to the Scala bindings. I'll be very happy to talk more about it with you soon.

@S11001001
Copy link
Contributor Author

There are three "levels" of implementation:

  1. What I mentioned at the beginning of conformance test for interface #13655 (comment)
  2. Equivalent functionality to Java codegen support for interfaces #11350
  3. The full Investigate app-runtime changes to allow templates to implement interfaces with clashing-name choices #13668 (comment) -compatible implementation

From what @remyhaemmerle-da mentioned, there is a good chance that only doing (1) will unblock testing. It only implements the first checkbox item above, and that in a way that creates slightly invalid exercise commands according to (3), but that might be good enough, since you can technically just patch in the correct interface ID on those exercise commands.

If it is not quite good enough, we should probably not just do #11350, instead doing a full #13668-like implementation.

@remyhaemmerle-da
Copy link
Collaborator

Thanks Steven. I will let you known if it is enough.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/scala-ecosystem Scala development experience roadmap/interfaces https://digitalasset.atlassian.net/browse/DAML-56 team/ledger-clients Related to the Ledger Clients team's components.
Projects
None yet
Development

No branches or pull requests

4 participants