Skip to content

LDWG meeting minutes, December 3, 2018

Mihai Budiu edited this page Dec 4, 2018 · 1 revision

There were 9 participants in the Zoom meeting.

We have covered the following topics, which are all present on the main LDWG wiki page: https://github.com/p4lang/p4-spec/wiki/Language-Design-Working-Group. Some of these already have Pull Requests in the Spec and the compiler repositories.

  • @deprecated annotations https://github.com/p4lang/p4-spec/pull/655
  • Free form annotations: a proposal to allow an arbitrary grammar for annotations, as long as the grammar contains balanced parentheses. There is already a PR against the compiler with the implementation https://github.com/p4lang/p4-spec/issues/695, @liujed will write a PR against the spec
  • Requiring the default label in a switch statement to come last. This will make the evaluation of switch statements more obvious to humans: unlike select expressions, the order of labels in a switch statement does not matter. https://github.com/p4lang/p4-spec/pull/704
  • Statically obtaining the size of header https://github.com/p4lang/p4-spec/issues/660. This is most useful for headers with fixed sizes. Support for structs or variable-sized headers could be added later.
  • Allowing parsers/controls as type arguments (and not parser/control prototypes): https://github.com/p4lang/p4c/issues/1604. It is not clear whether this is necessary.
  • Allowing empty tuples in the language, written as tuple<>. https://github.com/p4lang/p4-spec/issues/282
  • Extending the bit-slicing operation x[10:2] to signed values. https://github.com/p4lang/p4-spec/pull/701 We did not agree whether slices should inherit the type of the source bitstring or should always be unsigned. Both designs make sense.
  • Support for an int type in the language https://github.com/p4lang/p4-spec/pull/706. This will allow constants that have arbitrary width to be declared const int x = 5;
  • We will have a separate meeting to discuss bitstring structs in headers, due to timing constraints of some participants.
  • Structure field overlays. This is an early proposal https://github.com/p4lang/p4-spec/pull/656 which allows defining a struct that stores its data in the fields of another struct. We have discussed requirements that make this unambiguous. We have to come up with a clear set of rules about what overlays are permitted. This is especially tricky since overlays can be left-values.

The discussion of these issues will continue using the github mechanisms (issues, comments, code reviews).

The next meeting will be Monday January 7 at 1:30PM Pacific Time. An email will be sent on the p4-design mailing list with the online meeting coordinates; we will probably reuse the same zoom meeting.

Clone this wiki locally