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

Make time checks work again #92

Open
uhbif19 opened this issue Jun 30, 2024 · 0 comments
Open

Make time checks work again #92

uhbif19 opened this issue Jun 30, 2024 · 0 comments
Labels
cem-interfaces enhancement New feature or request

Comments

@uhbif19
Copy link
Contributor

uhbif19 commented Jun 30, 2024

Stages was removed in M4 for number of reasons.

API wise:

  1. Turns out timing constraints can depend on state, so Stages cannot be used to implement for example vesting
  2. They complicate CEMScript class and in conversations it seem to be an issue for understanding API

Implementation wise:

  1. Plutus has problems with nested type families, needs hacks to work with that
  2. Without Stages now user can completely remove Plutus compilation step (if they want to).
  3. Probably would increase script size and in general bring different compilation path/API from all other constraints

Proposed solution:

  1. Create new CheckInterval constraint. Enforce single such constraint per transition.
  2. One could add String names to them, to discover "Stage of Transition"-like labels on state graph , if one wants to.
@uhbif19 uhbif19 added enhancement New feature or request cem-interfaces labels Jun 30, 2024
uhbif19 added a commit that referenced this issue Jun 30, 2024
…piler

Changes:

* Completely change API to declarative DSL (closes #24 #81, part of #29)
* Implement Plutarch transpiler (closes #48 #79)
* Support lifting Plutus functions to declarative DSL (closes #68)
* Compilation pass changing all error messages to codes
  and saving their correspondence to table
* Remove `Stages` concept altogeter (see issue #92)
uhbif19 added a commit that referenced this issue Jun 30, 2024
…piler

Changes:

* Completely change API to declarative DSL (closes #24 #81, part of #29)
* Implement Plutarch transpiler (closes #48 #79)
* Support lifting Plutus functions to declarative DSL (closes #68)
* Compilation pass changing all error messages to codes
  and saving their correspondence to table
* Remove `Stages` concept altogeter (see issue #92)
uhbif19 added a commit that referenced this issue Jul 1, 2024
…piler

Changes:

* Completely change API to declarative DSL (closes #24 #81, part of #29)
* Implement Plutarch transpiler (closes #48 #79)
* Support lifting Plutus functions to declarative DSL (closes #68)
* Compilation pass changing all error messages to codes
  and saving their correspondence to table
* Remove `Stages` concept altogeter (see issue #92)
uhbif19 added a commit that referenced this issue Jul 1, 2024
…piler

Changes:

* Completely change API to declarative DSL (closes #24 #81, part of #29)
* Implement Plutarch transpiler (closes #48 #79, part of #50)
* Support lifting Plutus functions to declarative DSL (closes #68)
* Compilation pass changing all error messages to codes
  and saving their correspondence to table
* Remove `Stages` concept altogeter (see issue #92)
uhbif19 added a commit that referenced this issue Jul 1, 2024
…piler

Changes:

* Completely change API to declarative DSL (closes #24 #81, part of #29)
* Implement Plutarch transpiler (closes #48 #79, part of #50)
* Support lifting Plutus functions to declarative DSL (closes #68)
* Compilation pass changing all error messages to codes
  and saving their correspondence to table
* Remove `Stages` concept altogeter (see issue #92)
uhbif19 added a commit to uhbif19/cem-script that referenced this issue Jul 4, 2024
…piler

Changes:

* Completely change API to declarative DSL (closes mlabs-haskell#24 mlabs-haskell#81, part of mlabs-haskell#29)
* Implement Plutarch transpiler (closes mlabs-haskell#48 mlabs-haskell#79, part of mlabs-haskell#50)
* Support lifting Plutus functions to declarative DSL (closes mlabs-haskell#68)
* Compilation pass changing all error messages to codes
  and saving their correspondence to table
* Remove `Stages` concept altogeter (see issue mlabs-haskell#92)
uhbif19 added a commit to uhbif19/cem-script that referenced this issue Jul 4, 2024
…piler

Changes:

* Completely change API to declarative DSL (closes mlabs-haskell#24 mlabs-haskell#81, part of mlabs-haskell#29)
* Implement Plutarch transpiler (closes mlabs-haskell#48 mlabs-haskell#79, part of mlabs-haskell#50)
* Support lifting Plutus functions to declarative DSL (closes mlabs-haskell#68)
* Compilation pass changing all error messages to codes
  and saving their correspondence to table
* Remove `Stages` concept altogeter (see issue mlabs-haskell#92)
uhbif19 added a commit to uhbif19/cem-script that referenced this issue Jul 4, 2024
…piler

Changes:

* Completely change API to declarative DSL (closes mlabs-haskell#24 mlabs-haskell#81, part of mlabs-haskell#29)
* Implement Plutarch transpiler (closes mlabs-haskell#48 mlabs-haskell#79, part of mlabs-haskell#50)
* Support lifting Plutus functions to declarative DSL (closes mlabs-haskell#68)
* Compilation pass changing all error messages to codes
  and saving their correspondence to table
* Remove `Stages` concept altogeter (see issue mlabs-haskell#92)
uhbif19 added a commit to uhbif19/cem-script that referenced this issue Jul 4, 2024
…piler

Changes:

* Completely change API to declarative DSL (closes mlabs-haskell#24 mlabs-haskell#81, part of mlabs-haskell#29)
* Implement Plutarch transpiler (closes mlabs-haskell#48 mlabs-haskell#79, part of mlabs-haskell#50)
* Support lifting Plutus functions to declarative DSL (closes mlabs-haskell#68)
* Compilation pass changing all error messages to codes
  and saving their correspondence to table
* Remove `Stages` concept altogeter (see issue mlabs-haskell#92)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cem-interfaces enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant