Skip to content

Commit 46a5677

Browse files
authored
Merge pull request #865 from p4lang/P4-16-v1.2.1-rc
P4-16-v1.2.1 Release Candidate
2 parents 669279e + 62ffe56 commit 46a5677

File tree

1 file changed

+40
-11
lines changed

1 file changed

+40
-11
lines changed

Diff for: p4-16/spec/P4-16-spec.mdk

+40-11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Title : P4~16~ Language Specification
2-
Title Note: version 1.2.0
2+
Title Note: version 1.2.1-rc
33
Title Footer: &date;
44
Author: The P4 Language Consortium
55
Heading depth: 5
@@ -2839,7 +2839,7 @@ important what the type variable binds to (during type unification the
28392839
don't care type can unify with any other type). An example is given
28402840
Section [#sec-arch-desc-example].
28412841

2842-
## Default values { #default-values }
2842+
## Default values { #sec-default-values }
28432843

28442844
Some P4 types define a "default value," which can be used to
28452845
automatically initialize values of that type. The default values are
@@ -4579,7 +4579,7 @@ values will be.
45794579
## Initializing with default values
45804580

45814581
A left-value can be initialized automatically with a default value of the
4582-
suitable type using the syntax `...` (see Section [#default-values]). A value
4582+
suitable type using the syntax `...` (see Section [#sec-default-values]). A value
45834583
of type `struct`, `header`, or `tuple` can also be initialized using a mix of
45844584
explicit values and default values by using the notation `...` in a list
45854585
expression initializer; in this case all fields not explicitly
@@ -7767,22 +7767,51 @@ The P4 compiler should provide:
77677767
| | | tuples, `@deprecated` annotation, free-form annotations, `int` type |
77687768
| | | `table.apply().miss`, `string` type. |
77697769
|-----|-----|-----|
7770-
| 1.2.1 | TBD, 2020 | |
7770+
| 1.2.1-rc | June 1, 2020 | Added structure-value expressions, default values, concatenation, structured |
7771+
| | | | annotations, generalized typing rules for masks, restricted typing rule for |
7772+
| | | | shifts with infinite-precistion operands, clarified initialization semantics, |
7773+
| | | | fixed several small issues in the grammar |
77717774
|-----|-----|-----|
77727775

77737776
## Summary of changes made in version 1.2.1
77747777

7778+
* Added structure-value expressions (Section
7779+
[#sec-structure-expressions]).
7780+
7781+
* Added support for default values (Section [#sec-default-values]).
7782+
7783+
* Added support for concatenating signed strings (Section
7784+
[#sec-concatenation]).
7785+
7786+
* Added key-value and list-structured annotations (Section
7787+
[#annotations]).
7788+
77757789
* Added `@pure` and `@noSideEffects` annotations (Section
77767790
[#sec-extern-annotations]).
77777791

7778-
## Summary of changes made in version 1.2.1
7779-
77807792
* Added `@noWarn` annotation (Section [#sec-nowarn-anno]).
7781-
* Added structure-valued expressions (Section [#sec-structure-expressions]).
7782-
* Added structured annotations (Section [#sec-annotations]).
7783-
* Allow empty statements in parsers (Section [#sec-parser-state-stmt]).
7784-
* Fixed grammar for right shifts (Section [#sec-grammar]).
7785-
* Allow concatenation of signed strings (Section [#sec-concatenation]).
7793+
7794+
* Generalized typing for masks to allow serializable `enum`s (Section
7795+
[#sec-cubes]).
7796+
7797+
* Restricted the right operands of bit shifts involving
7798+
infinite-precision integers to be constant and positive (Section
7799+
[#sec-varint-ops]).
7800+
7801+
* Clarified copy-out behavior for `return` (Section
7802+
[#sec-return-stmt]) and `exit` (Section [#sec-exit-stmt])
7803+
statements.
7804+
7805+
* Clarified semantics of invalid header stacks (Section
7806+
[#sec-uninitialized-values-and-writing-invalid-headers ]).
7807+
7808+
* Clarified initialization semantics (Section [#sec-lvalues] and
7809+
[#sec-calling-convention]), especially for headers and local
7810+
variables.
7811+
7812+
* Fixed grammar to clarify parsing of right shift operator (`>>`),
7813+
allow empty statements in parser (Section [#sec-parser-state-stmt]),
7814+
and eliminate annotations on const entries (Section [#sec-entries]).
77867815

77877816
## Summary of changes made in version 1.2.0
77887817

0 commit comments

Comments
 (0)