This issue should be closed exactly when the bullet item “Clarified restrictions for parameters with default values” in Section 1.1 "P4 Language Version Applicability" is addressed and removed.
This issue is related to the following change made from v1.2.3 to v1.2.4 of the P4_16 language specification:
Clarified restrictions for parameters with default values (Section 6.8.1).
The new text in version 1.2.4 is copied and pasted below:
If parameters with default values do not appear at the end of the list of parameters, invocations that use the default values must use named arguments, as in the following example:
extern void f(in bit a, in bit<3> b = 2, in bit<5> c);
void g()
{
f(a = 1, b = 2, c = 3); // ok
f(a = 1, c = 3); // ok, equivalent to the previous call, b uses default value
f(1, 2, 3); // ok, equivalent to the previous call
// f(1, 3); // illegal, since the parameter b is not the last in the list
}
This issue should be closed exactly when the bullet item “Clarified restrictions for parameters with default values” in Section 1.1 "P4 Language Version Applicability" is addressed and removed.
This issue is related to the following change made from v1.2.3 to v1.2.4 of the P4_16 language specification:
(see https://p4.org/p4-spec/docs/P4-16-v1.2.4.html#sec-summary-of-changes-made-in-version-124 for the item in context of the full list of changes, but there are separate Github issues for each that might impact the P4Runtime API specification).
Seems related to this issue https://github.com/p4lang/p4runtime/issues/433
The new text in version 1.2.4 is copied and pasted below: