-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Fabric-scoping support in IDL parsing #20819
Fabric-scoping support in IDL parsing #20819
Conversation
…scoped, moved to earley parser instead of lalr. Potentially somewhat slower, but likely still fast enough
PR #20819: Size comparison from c50bacc to 0c33bb6 Increases (3 builds for cc13x2_26x2, esp32, nrfconnect)
Decreases (2 builds for cc13x2_26x2, telink)
Full report (32 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
PR #20819: Size comparison from e4cfa0a to 0c4e17b Increases (2 builds for cyw30739, esp32)
Decreases (2 builds for bl602, telink)
Full report (43 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
* Add fabric scope support in IDL for commands * Add support for fabric scoped attributes. Due to ambiguity of fabric_scoped, moved to earley parser instead of lalr. Potentially somewhat slower, but likely still fast enough * Switch back to lalr parser because it is much faster * Doc updates and one more test * Fix command id in examples * Use common keyword of fabric after updating grammar a bit * Fix extra rule * Restyle
* Add fabric scope support in IDL for commands * Add support for fabric scoped attributes. Due to ambiguity of fabric_scoped, moved to earley parser instead of lalr. Potentially somewhat slower, but likely still fast enough * Switch back to lalr parser because it is much faster * Doc updates and one more test * Fix command id in examples * Use common keyword of fabric after updating grammar a bit * Fix extra rule * Restyle Co-authored-by: Andrei Litvin <[email protected]>
@@ -94,6 +94,10 @@ server cluster AccessControl = 31 { | |||
// These defaults can be modified to any of view/operate/manage/administer roles. | |||
attribute access(read: manage, write: administer) int32u customAcl = 3; | |||
|
|||
// Attributes may be fabric-scoped as well by tagging them as `fabric`. | |||
fabric readonly attribute int16u myFabricAttr = 22; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is wrong. Attributes cannot be fabric-scoped at all...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Offline conversation results:
- fabric scoped on attributes is only for "lists of structures"
- the structures themselves will be tagged as "fabric scoped" as this pulls in a fabric index attribute into them
So followup changes should be:
- remove fabric scoped from attributes
- tag structs as fabric scoped (assuming zap knows about this)
Problem
Need fabric scope support
Change overview
fabric attribute
fabric command
kept lalr parsing because it is fast, so this means:
fabric readonly attribute
is ok, butreadonly fabric attribute
is not.fabric timed command
is ok, buttimed fabric command
is notBasically
fabric
must come first.Testing
Unit tests