Skip to content

LDWG meeting minutes, March 2, 2020

Nate Foster edited this page Mar 2, 2020 · 1 revision

Attendees

  • Antonin Bas (VMware)
  • Gordon Brebner (Xilinx)
  • Mihai Budiu (VMware)
  • Andy Fingerhut (Cisco)
  • Vladimir Gurevich (Barefoot)
  • Marko Stanojlovic (RT-RK)
  • Nate Foster (Cornell)
  • Steffen Smolka (Google)
  • Chris Sommers (Keysight)
  • Han Wang (Barefoot)

Structured Annotations

Summary

  • Proposal allows annotations to have certain generic kinds of structure -- e.g., key-value lists.

References

Status

  • A lot of discussion on the technical issues has taken place already and consensus has largely been reached.

Discussion

  • The pull request requires expressions to be compile-time known values.

  • Q: why not fixed-width integers? A: this is simple and what P4Runtime needs.

  • Q: Do we need a new IR node for this? If so, then every tool that uses the p4c IR needs to handle it. We'll add a struct to the IR node to indicate whether it's unstructured, list, or key-value.

  • Q: are annotations tied to particular objects or can they be hanging? A: they must still be attached to a declaration.

Action Items

  • @mbudiu-vmw will do his best to implement this feature in the upcoming week.

  • @mbudiu-vmw will add an item to the Wiki to discuss pragmas at a future meeting.

  • We'll merge at a future meeting.


Forbid shifts by on infinite-precision values by unknown widths

Summary

  • There was a bug in the compiler due to such shifts. This proposal forbids them.

References

Status

  • There is a pull request on the specification and compiler

Discussion

  • None.

Action Items

  • Folks should take a look. This seems like an easy bug fix.

Structure-Valued expressions

Summary

  • This proposal seeks to add structure values as expressions.

References

Status

  • There is a pull request and an implemention in the compiler.

Discussion

  • We discussed cases where the compiler cannot infer the type:
    • Passing a structure expression to a generic function
    • Projecting a field from a structure expression

Action Items

  • We resolved to change the implementation to elimiante casts.

  • Then we should be free to merge the pull request.


Default values

Summary

  • This proposal seeks to add default initializers for various types of P4 values

References

Status

  • There is a pull request on the language specification

Discussion

  • Should the default for a header be valid or invalid?

  • If invalid, do we have a way to initialize a header as valid using the default values for the fields?

  • There is a related issue for header stacks too.

  • Note: there is a difference between default values and uninitialized values.

Action Items

  • @marko-stanoj to take the token on this issue to drive it toward a proposal

Module System

Summary

  • There is a proposal to add a simple module system to P4 to replace use of the C preprocessor at least.

References

Status

  • We have a simple proposal, possibly with some holes, and some design documents with additional discussion, linked from the Wiki.

Discussion

  • We reviewed @jafingerhut's questions in the linked Google document.

Action Items

  • Folks should comment on the pull request

Next meeting

  • We will definitely meet on April 6th.

  • @jnfoster and @mbudiu-vmw may announce a mid-March meeting in about a week

Clone this wiki locally