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

Daml Interfaces PoC #10810

Closed
23 tasks done
cocreature opened this issue Sep 8, 2021 · 1 comment
Closed
23 tasks done

Daml Interfaces PoC #10810

cocreature opened this issue Sep 8, 2021 · 1 comment

Comments

@cocreature
Copy link
Contributor

cocreature commented Sep 8, 2021

Will add details later for now I just need an issue number to reference in TODOs.

  • Protobuf
  • Haskell AST
  • Haskell typechecker
  • Support exercise on interface choice
  • Haskell name collision checker
  • Haskell protobuf decode & encode
  • Scala AST
  • Scala typechecker
  • Scala protobuf decode
  • Daml Parser
  • LF conversion
  • Speedy
  • Speedy compiler
  • Engine Preprocessor
  • Scala LF parser
  • Scala LF encoder
  • Add LF primitives for converting between interfaces & instances
  • Parse & desugar consuming declarations
  • Support interfaces in Daml Script’s exerciseCmd (and maybe more)
  • Support interfaces in Daml Triggers’s exerciseCmd (we probably get that for free via the previous point)
  • Consider how we represent interfaces in the typescript bindings
  • Consider implications of packages not being known upfront (at least for Daml Engine)
  • data-dependencies
@cocreature cocreature added this to the Daml Interfaces milestone Sep 8, 2021
remyhaemmerle-da added a commit that referenced this issue Sep 9, 2021
this is part of #10810

CHANGELOG_BEGIN
CHANGELOG_END
remyhaemmerle-da added a commit that referenced this issue Sep 10, 2021
this is part of #10810

CHANGELOG_BEGIN
CHANGELOG_END
cocreature added a commit that referenced this issue Sep 16, 2021
cocreature added a commit that referenced this issue Sep 16, 2021
cocreature added a commit that referenced this issue Sep 16, 2021
sofiafaro-da added a commit that referenced this issue Sep 16, 2021
Part of #10810
Extracted from #10670

changelog_begin
changelog_end
cocreature added a commit that referenced this issue Sep 16, 2021
* Separate exercise & fetch for interfaces from templates

part of #10810

changelog_begin
changelog_end

* Update compiler/daml-lf-ast/src/DA/Daml/LF/Ast/Base.hs

Co-authored-by: Sofia Faro <[email protected]>

* Update compiler/daml-lf-ast/src/DA/Daml/LF/Ast/Base.hs

Co-authored-by: Sofia Faro <[email protected]>

Co-authored-by: Sofia Faro <[email protected]>
sofiafaro-da added a commit that referenced this issue Sep 16, 2021
Part of #10810
Extracted from #10670

changelog_begin
changelog_end
mergify bot pushed a commit that referenced this issue Sep 17, 2021
* Draft: Daml Interfaces Speedy PoC

Part of #10810
Extracted from #10670

changelog_begin
changelog_end

* Improve cacheing situation, add implements checks

* scalafmt

* Add comment for ImplementsDefRef

* compile the new update expressions
sofiafaro-da added a commit that referenced this issue Sep 20, 2021
Part of #10810

changelog_begin
changelog_end
mergify bot pushed a commit that referenced this issue Sep 20, 2021
* interfaces: Add to/from_interface in proto

Part of #10810

changelog_begin
changelog_end

* fix typo
sofiafaro-da added a commit that referenced this issue Sep 20, 2021
Part of #10810

changelog_begin
changelog_end
sofiafaro-da added a commit that referenced this issue Sep 21, 2021
sofiafaro-da added a commit that referenced this issue Sep 21, 2021
Part of #10810

changelog_begin
changelog_end
mergify bot pushed a commit that referenced this issue Sep 21, 2021
sofiafaro-da added a commit that referenced this issue Sep 22, 2021
Part of #10810

- Implemented ToInterface, FromInterface in speedy
- Added a test that exercises and fetches an interface
- Fixed a bug in SBUChoiceInterface

Hey, interfaces work now!

changelog_begin
changelog_end
sofiafaro-da added a commit that referenced this issue Sep 22, 2021
Part of #10810

- Implemented ToInterface, FromInterface in speedy
- Added a test that exercises and fetches an interface
- Fixed a bug in SBUChoiceInterface

Hey, interfaces work now!

changelog_begin
changelog_end
sofiafaro-da added a commit that referenced this issue Sep 23, 2021
Adds protobuf definitions for interface methods and calling them.
Encoders/decoders just ignore the extra stuff or error out.

Part of #10810 (maybe)

changelog_begin
changelog_end
sofiafaro-da added a commit that referenced this issue Sep 23, 2021
* interface methods: Add protobuf

Adds protobuf definitions for interface methods and calling them.
Encoders/decoders just ignore the extra stuff or error out.

Part of #10810 (maybe)

changelog_begin
changelog_end

* Update issue numbers where appropriate

* update stable protos
remyhaemmerle-da added a commit that referenced this issue Sep 23, 2021
This is part of #10810

We handle only the case of Exercise as Fetch is currenlty used only by
Canton

CHANGELOG_BEGIN
CHANGELOG_END
remyhaemmerle-da added a commit that referenced this issue Sep 23, 2021
This is part of #10810

We handle only the case of Exercise as Fetch is currenlty used only by
Canton

CHANGELOG_BEGIN
CHANGELOG_END
remyhaemmerle-da added a commit that referenced this issue Sep 23, 2021
This is part of #10810

We handle only the case of Exercise as Fetch is currenlty used only by
Canton

CHANGELOG_BEGIN
CHANGELOG_END
mergify bot pushed a commit that referenced this issue Sep 23, 2021
This is part of #10810

We handle only the case of Exercise as Fetch is currenlty used only by
Canton

CHANGELOG_BEGIN
CHANGELOG_END
@ghost ghost mentioned this issue Oct 5, 2021
6 tasks
sofiafaro-da added a commit that referenced this issue Nov 4, 2021
This PR adds a lazy map to match fixed choice names to their
interface, to improve the worst case for choice lookup.

Part of #10810

changelog_begin
changelog_end
sofiafaro-da added a commit that referenced this issue Nov 4, 2021
* interfaces: Improve fixed choice lookup

This PR adds a lazy map to match fixed choice names to their
interface, to improve the worst case for choice lookup.

Part of #10810

changelog_begin
changelog_end

* scalafmt

* apply improvements from remy
@cocreature
Copy link
Contributor Author

I think this issue has served its purpose, closing in favor of more specific ones.

akrmn added a commit that referenced this issue Nov 8, 2021
* Remove virtual choices

* Remove choices without a body in 'interface' definition
* Remove choices in 'template ... implements' section

part of #11372

changelog_begin
changelog_end

* Remove virtual choices cont.

Switch uses of virtual choices to fixed choice with method implementation

* update snapshot after pin on windows

* Disable failing interface tests with TODO #10810
sofiafaro-da added a commit that referenced this issue Nov 25, 2021
Part of #10810 and #11703

changelog_begin
changelog_end
sofiafaro-da added a commit that referenced this issue Nov 29, 2021
* Add a ContractDoesntImplementInterface error

Part of #10810 and #11703

changelog_begin
changelog_end

* use inside

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

No branches or pull requests

1 participant