-
Notifications
You must be signed in to change notification settings - Fork 2
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
Allow group entries to have keys #32
Labels
Huddle
Issues relating to the Huddle language
Comments
nc6
added a commit
to IntersectMBO/cardano-ledger
that referenced
this issue
Jul 5, 2024
This is the final set of changes to the Conway CDDL spec made via comparison with the original cddl files for Conway. As of this commit, the remaining changes with the original cddl are as follows: - Various fields in crypto were defined with /= and are now defined with =. This does not affect the semantics, being instead a convention as per https://datatracker.ietf.org/doc/html/rfc8610#section-3.9 - The index keys in auxiliary_data are written as if they were value and not type keys: ``` 39,43c30,34 < / #6.259({? 0 : metadata < , ? 1 : [* native_script] < , ? 2 : [* plutus_v1_script] < , ? 3 : [* plutus_v2_script] < , ? 4 : [* plutus_v3_script]}) --- > / #6.259({? 0 => metadata > , ? 1 => [* native_script] > , ? 2 => [* plutus_v1_script] > , ? 3 => [* plutus_v2_script] > , ? 4 => [* plutus_v3_script]}) ``` This is a simpler formulation with identical semantics. - The alternatives in 'certificate', 'relay', 'native_script' and 'gov_action' are encoded using type1 choice semantics ('/') rather than group choice semantics ('//'). In the context, this is an equivalent formulation. - nonempty_oset has been removed, pending explanation of what it means. nonempty_set is used instead. - In various places, null is replaced with nil. They are synonyms. - The names of type parameters are changed; typically a is replaced with a0. - A few rules using references as the bounds in ranges are now inlined. This will be fixed once input-output-hk/cuddle#29 is addressed. - `distinct` is not currently possible to implement as a generic function, since `sized` is currently specialised to work on values. input-output-hk/cuddle#31 addresses. Until this is fixed, distinct<bytes> is instead distinct_bytes. - tstr is replaced with text. They are synonyms. - The keys in the 'pool_params' and 'script_n_of_k' groups are lost. This is due to input-output-hk/cuddle#32. However, since pool_params is included into an array, this does not alter the semantics, only the documentation. - datum_hash is of type datum_hash, not hash32. This seems an overlooked item in the original cddl.
nc6
added a commit
to IntersectMBO/cardano-ledger
that referenced
this issue
Jul 25, 2024
This is the final set of changes to the Conway CDDL spec made via comparison with the original cddl files for Conway. As of this commit, the remaining changes with the original cddl are as follows: - Various fields in crypto were defined with /= and are now defined with =. This does not affect the semantics, being instead a convention as per https://datatracker.ietf.org/doc/html/rfc8610#section-3.9 - The index keys in auxiliary_data are written as if they were value and not type keys: ``` 39,43c30,34 < / #6.259({? 0 : metadata < , ? 1 : [* native_script] < , ? 2 : [* plutus_v1_script] < , ? 3 : [* plutus_v2_script] < , ? 4 : [* plutus_v3_script]}) --- > / #6.259({? 0 => metadata > , ? 1 => [* native_script] > , ? 2 => [* plutus_v1_script] > , ? 3 => [* plutus_v2_script] > , ? 4 => [* plutus_v3_script]}) ``` This is a simpler formulation with identical semantics. - The alternatives in 'certificate', 'relay', 'native_script' and 'gov_action' are encoded using type1 choice semantics ('/') rather than group choice semantics ('//'). In the context, this is an equivalent formulation. - nonempty_oset has been removed, pending explanation of what it means. nonempty_set is used instead. - In various places, null is replaced with nil. They are synonyms. - The names of type parameters are changed; typically a is replaced with a0. - A few rules using references as the bounds in ranges are now inlined. This will be fixed once input-output-hk/cuddle#29 is addressed. - `distinct` is not currently possible to implement as a generic function, since `sized` is currently specialised to work on values. input-output-hk/cuddle#31 addresses. Until this is fixed, distinct<bytes> is instead distinct_bytes. - tstr is replaced with text. They are synonyms. - The keys in the 'pool_params' and 'script_n_of_k' groups are lost. This is due to input-output-hk/cuddle#32. However, since pool_params is included into an array, this does not alter the semantics, only the documentation. - datum_hash is of type datum_hash, not hash32. This seems an overlooked item in the original cddl.
Soupstraw
pushed a commit
to IntersectMBO/cardano-ledger
that referenced
this issue
Aug 1, 2024
This is the final set of changes to the Conway CDDL spec made via comparison with the original cddl files for Conway. As of this commit, the remaining changes with the original cddl are as follows: - Various fields in crypto were defined with /= and are now defined with =. This does not affect the semantics, being instead a convention as per https://datatracker.ietf.org/doc/html/rfc8610#section-3.9 - The index keys in auxiliary_data are written as if they were value and not type keys: ``` 39,43c30,34 < / #6.259({? 0 : metadata < , ? 1 : [* native_script] < , ? 2 : [* plutus_v1_script] < , ? 3 : [* plutus_v2_script] < , ? 4 : [* plutus_v3_script]}) --- > / #6.259({? 0 => metadata > , ? 1 => [* native_script] > , ? 2 => [* plutus_v1_script] > , ? 3 => [* plutus_v2_script] > , ? 4 => [* plutus_v3_script]}) ``` This is a simpler formulation with identical semantics. - The alternatives in 'certificate', 'relay', 'native_script' and 'gov_action' are encoded using type1 choice semantics ('/') rather than group choice semantics ('//'). In the context, this is an equivalent formulation. - nonempty_oset has been removed, pending explanation of what it means. nonempty_set is used instead. - In various places, null is replaced with nil. They are synonyms. - The names of type parameters are changed; typically a is replaced with a0. - A few rules using references as the bounds in ranges are now inlined. This will be fixed once input-output-hk/cuddle#29 is addressed. - `distinct` is not currently possible to implement as a generic function, since `sized` is currently specialised to work on values. input-output-hk/cuddle#31 addresses. Until this is fixed, distinct<bytes> is instead distinct_bytes. - tstr is replaced with text. They are synonyms. - The keys in the 'pool_params' and 'script_n_of_k' groups are lost. This is due to input-output-hk/cuddle#32. However, since pool_params is included into an array, this does not alter the semantics, only the documentation. - datum_hash is of type datum_hash, not hash32. This seems an overlooked item in the original cddl.
9 tasks
nc6
added a commit
that referenced
this issue
Nov 22, 2024
This addresses part of #36 - comments are still not supported _everywhere_, but they are allowed on group entries, which represent the area (other than top-level rules) where comments are the most useful. The same "comment" syntax is used as with top-level rules. Note that this does not (yet) work within groups - that will be addressed as part of #32. As yet, the parser still does not deal with comments, or attribute them to any entity. The tests are likewise oblivious to comments. But this does allow Huddle to define comments and have them reflected in the generated CDDL, which was the principal outcome.
nc6
added a commit
that referenced
this issue
Dec 2, 2024
This addresses #32, at least for the function of adding keys for descriptive purposes to arrays. Maps still require additional support to handle including groups, since currently map entries are required to have keys.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Currently, any keys in group entries are ignored. This prevents them from being used in maps, and means that they lack the helpful documentation when used in arrays.
The text was updated successfully, but these errors were encountered: