Skip to content

Releases: p4lang/p4c

v1.2.4.8

02 Feb 23:49
32893b7
Compare
Choose a tag to compare

What's Changed

  • [P4Testgen] Implement coverage tracking of actions by @vlstill in #4307
  • keep P4Control->body->srcInfo during init move by @grg in #4317
  • Allow constructing PassRepeated from a PassManager by @vlstill in #4319
  • Respect ENABLE_LTO even for static build, but keep LTO default for static by @vlstill in #4320
  • Make sure P4 expression optimization does not strip away types by @vlstill in #4300
  • Rename --with-output-packet to --output-packet-only. by @fruffy-g in #4314
  • Allow constant-folding of arbitrary-precision integer casts by @vlstill in #4325
  • Update status badges by @fruffy-g in #4330
  • [P4Testgen] Extend the CompilerTarget runProgram function with data structures which can pass on more information. by @fruffy in #4323
  • Fix build with system Protobuf by @jkhsjdhjs in #4321
  • Ignore clang-tidy complaints about macro do-while loops. by @fruffy in #4332
  • [P4Testgen] Refactor ProgramInfo to be initialized with CompilerResult instead of a IR::P4Program by @fruffy in #4324
  • Convert deparser header to 'inout' and address casting for functions with control block parameters by @komaljai in #4338
  • Allow unknown fields when parsing P4Info files by @jafingerhut in #4341
  • cstring: Add string literal suffix, add toLower by @vlstill in #4342
  • Documentation & testfix follow-up to #4160 by @thomascalvert-xlnx in #4328
  • Repair the static DPDK PTF tests. by @fruffy in #4210
  • DoConstantFolding: make typeMap param const by @grg in #4346
  • Emit the Protobuf header with the P4 entries and runtime files. by @fruffy in #4350
  • Trigger CI workflows based on assigned label. by @fruffy in #4348
  • [P4Testgen] Introduce the option to produce lowercase hex for the formatting library. by @fruffy-g in #4340
  • Deprecate .txt, support in favour of .txtpb. by @fruffy in #4352
  • [P4Testgen] Introduce a compiler target for P4Testgen. Move computation from the ProgramInfo to the midend. by @fruffy in #4292
  • Improve diagnostics for StructExpression by @kfcripps in #4357
  • Improve diagnostics for BaseListExpression by @kfcripps in #4358
  • Improve diagnostics for AssignmentStatement by @kfcripps in #4360
  • Provide hints on how to fix CI complaints. by @fruffy in #4355
  • Remove P4C options from gtest binary. by @fruffy in #4334
  • Add missing equiv implementation to Type_Any. by @fruffy in #4336
  • Fix the option to pipe stdin to the compiler. by @fruffy in #4367
  • Fixes for MacOS/macports by @ChrisDodd in #4375
  • P4TC - Support const entries by @komaljai in #4329
  • Support ebpf Hash and Checksum by @komaljai in #4378
  • Use std::allocator_traits::rebind_alloc instead of std::allocator::rebind by @vlstill in #4373
  • Remove XDP code generated for TC by @vbnogueira in #4349
  • Remove redundant protobuf installation in the CI build scripts. by @fruffy in #4379
  • Remove unused parser declarations and unused parser type declarations that result from RemoveRedundantParsers pass. by @kfcripps in #4368
  • Tweak optional CI run execution. by @fruffy in #4380
  • [NFC] Eliminate the majority of dynamic_cast usage in the codebase in favor of ICastable interface by @asl in #4382
  • Add a P4Info API to the control-plane folder and P4Tools. by @fruffy in #4381
  • Automated Release v1.2.4.8 by @github-actions in #4386

Full Changelog: v1.2.4.7...v1.2.4.8

v1.2.4.7

04 Jan 08:13
5cb2c18
Compare
Choose a tag to compare

What's Changed

  • [P4Testgen] Resolve method call arguments before stepping into an extern - preserve InOut references by @fruffy in #4255
  • [P4Testgen] Move static helpers from TestgenTarget and ProgramInfo to common/lib/utils by @vlstill in #4268
  • Fix problem with bpftool in PTF tests by @tatry in #4277
  • [P4Testgen] Fix accidental system file categorization. by @fruffy in #4278
  • Remove deprecated inheritance from std:binary_function by @fruffy in #4283
  • [P4Testgen] Move P4Testgen's logging function into the common library. by @fruffy in #4279
  • Try to fix some issues with slowness in the MacOS build. by @fruffy in #4280
  • P4TC - Support for set_entry_timer extern by @komaljai in #4269
  • Do not toggle BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP in CMakelists.txt by @fruffy in #4181
  • Add validation of constant enum values fitting by @vlstill in #4287
  • [P4Testgen] Fix behavior of coverage on edge cases with no nodes to cover by @vlstill in #4275
  • Fix initialization order in gtest helper by @vlstill in #4296
  • Remove uses of incompatible_use_toolchain_transition. by @katre in #4299
  • [P4Testgen] Fix stringliteral conversion. Value must be a literal, NOT a constant by @fruffy in #4298
  • Dpdk Backend: Fix incorrect field extraction arithmetic by @usha1830 in #4301
  • Remove -static and rename static build appropriately. by @fruffy in #4284
  • [P4Testgen] Add support for @Format annotations in P4 programs for protobuf-ir tests by @fruffy-g in #4276
  • Support default action in P4TC by @komaljai in #4308
  • [P4Testgen] Move arch spec to ProgramInfo to allow it to depend on P4 program by @vlstill in #4267
  • Fix type field in introspection.json by @komaljai in #4313
  • Fix some problems with the Protobuf CMake file by @fruffy in #4262
  • Automated Release v1.2.4.7 by @github-actions in #4312

Full Changelog: v1.2.4.6...v1.2.4.7

v1.2.4.6

01 Dec 14:18
5e88b4b
Compare
Choose a tag to compare

What's Changed

  • Still parse STF files, even when BMv2 model is not present in system by @fruffy-g in #4222
  • [P4Testgen] Ignore flaky test in P4Testgen eBPF back end. by @fruffy in #4224
  • Fix some issues found by static analysis by @vlstill in #4213
  • #noconstructor should also include the json loader constructor by @fruffy in #4216
  • [P4Testgen] Flatten nesting of BMv2 test back ends and rename the folder appropriately. by @fruffy-g in #4219
  • [P4Testgen] Move common code of BMv2 test back ends into a common class. by @fruffy-g in #4220
  • improved bootstrap.sh by @ChrisDodd in #4227
  • Disable DPDK PTF tests. Remove the deprecated travis.yml file. by @fruffy in #4228
  • Update gRPC python version in install_fedora_deps.sh by @antoninbas in #4241
  • Simplify jsonAssignment in ParserConverter and ActionConverter by @antoninbas in #4232
  • Allow method calls in index expressions in hsIndexSimplify by @vlstill in #4240
  • Report offending node in the type-checker immutability check by @vlstill in #4238
  • [P4Testgen] Add EliminateInvalidHeaders midend pass by @vlstill in #4239
  • Fix some problems and suggestions found by clang-tidy by @vlstill in #4237
  • Allow overriding of 'usage' method in the Options class by @jhavrane in #4244
  • Allow non-const checkedTo cast. by @fruffy in #4243
  • [P4Testgen] Ensure accurate typing for functions that work with references. by @fruffy in #4223
  • Fixed ebpf_packetOffsetInBits field in parser and control_block C file by @komaljai in #4233
  • Added range check of error codes by @dmatousek in #4249
  • [P4Testgen] Change crash message by @p-sawicki in #4252
  • [P4Testgen] Add --assert-min-coverage option to check coverage of generated test cases by @vlstill in #4251
  • [P4Testgen] Fix argument names in GenericDescription trace event by @vlstill in #4257
  • [P4Testgen] Generate NoMatch for selects without default by @vlstill in #4250
  • [P4Testgen] Rename TF to TestFramework by @fruffy-g in #4247
  • [P4Testgen] Add a compiler pass to resolve Type_Name in StructExpressions. by @fruffy in #4215
  • [P4Testgen] Flatten the genEq function and support struct expressions. by @fruffy in #4225
  • More code improvements based on static analysis by @vlstill in #4258
  • Fix clang-tidy config file. by @fruffy in #4253
  • P4tc Runtime issue fix by @komaljai in #4263
  • [P4Testgen] Add struct and header expressions as a first-class expression to P4Testgen. by @fruffy in #4231
  • [P4Testgen] Introduce a new Protobuf backend which uses P4 PDPI instead of P4Runtime by @fruffy-g in #4221
  • Remove stale XFail. by @fruffy in #4270

New Contributors

Full Changelog: v1.2.4.5...v1.2.4.6

v1.2.4.5

02 Nov 12:04
4703465
Compare
Choose a tag to compare

What's Changed

  • [P4Testgen] Add an option to only generate tests which improve coverage. by @fruffy in #4163
  • [P4Testgen] Add more trace information to P4Testgen by @fruffy in #4157
  • [P4Testgen] Encode more P4Runtime constraints for the behavioral model by @fruffy in #4103
  • Simplify the DPDK PTF build and test scripts. by @fruffy in #4168
  • Update the dash-pipeline programs. by @fruffy in #4060
  • Show annotations in actions' dbprint by @vlstill in #4183
  • Run Gauntlet validation, sanitizers, and Ubuntu 18 build/test as nightly actions. by @fruffy in #4105
  • Delete top-level dash-pipeline file. by @fruffy in #4187
  • [P4Testgen] Do not treat an array index as a symbolic variable and resolve the index in the stepper. by @fruffy in #4186
  • Move the solver file from the lib folder to the ir folder. by @fruffy in #4188
  • Added support of info messages by @dmatousek in #4184
  • Update the Bazel build files by @fruffy-g in #4190
  • Update BUILD.bazel by @smolkaj in #4192
  • Stop endianess conversion in parser by @komaljai in #4193
  • backends/ebpf: Output error if a header is not byte-aligned (#4176). by @thomascalvert-xlnx in #4185
  • [P4Testgen] Support string types in the Z3 solver. by @fruffy in #4195
  • [P4Testgen] Only look ahead for the else branch when it is not null. by @fruffy-g in #4191
  • [P4Testgen] Fixes for the artifact evaluation. by @fruffy in #4199
  • Ensured that error messages cannot be demoted to info messages by @dmatousek in #4197
  • [P4Testgen] Change Protobuf backend test case file extension to .txtpb by @qobilidop in #4201
  • [P4Testgen] Match switch labels directly using string literal expressions by @fruffy in #4161
  • ParserUnroll: fix seg. fault for uninitialized variables inside header stack indexes by @VolodymyrPeschanenkoLitSoft in #4200
  • [P4Testgen] Add a DPDK-PTF P4Testgen back end and the corresponding test runner by @Hoooao in #4173
  • [P4Testgen] Fix another segmentation fault when using the coverable nodes scanner. by @fruffy in #4203
  • generic -O option to set optimization level/options by @ChrisDodd in #4206
  • Fix P4TC issues by @komaljai in #4209
  • [P4Testgen] Fix textproto generation and escape traces properly. by @fruffy in #4207
  • [P4Testgen] Add a testgen.p4 file with custom extern definitions by @fruffy in #4214
  • [P4Testgen] Clean up small issues with test back ends and plotting scripts. by @fruffy in #4205

New Contributors

Full Changelog: v1.2.4.4...v1.2.4.5

v1.2.4.4

01 Oct 19:37
af1a789
Compare
Choose a tag to compare

What's Changed

  • ci/release: enable push by @rst0git in #4128
  • Resolve P4tc ebpf c issues by @komaljai in #4115
  • Fix incorrect installation link in P4Testgen README by @fruffy in #4131
  • Perform type inference after constant-folding a code fragment by @mihaibudiu in #4135
  • Fix invalid string format specifier by @jhavrane in #4145
  • Add error message for slice with negative indexes by @jhavrane in #4137
  • Separate Parser and Post-parser code C code by @komaljai in #4138
  • Sane handling of P4C_DEFAULT_X envvars in p4c by @ChrisDodd in #4130
  • Dpdk backend: Fix incorrect learn action in case of learner table invoked from nested controls by @usha1830 in #4152
  • Allow lookahead of structs with size of 0 by @mihaibudiu in #4149
  • eBPF backend: generate P4Runtime files if required by @tatry in #4113
  • [P4Testgen] Do not use Equ for mandating a minimum size. by @fruffy in #4154
  • Add error message for non-package main declaration by @jhavrane in #4141
  • Dpdk Backend: Fix whole header move instructions for DPDK by @usha1830 in #4153
  • [P4Testgen] Move P4Testgen solver class to lib folder by @fruffy in #4091
  • Hashvec-based maps to save memory by @ChrisDodd in #4150
  • [P4Testgen] Minor improvements and fixes for P4Testgen. by @fruffy in #4162
  • Increase the timeout of the switch.p4 p4_14 program by @fruffy in #4164
  • Do not allow 'void' for lookahead type by @mihaibudiu in #4148
  • backends/ebpf: Fix #4098 by renaming conflicting write_partial macro. by @thomascalvert-xlnx in #4134
  • Do not panic when user specifies impossible types for declarations by @mihaibudiu in #4169
  • [P4Testgen] Remove untested/unreliable P4Testgen features. by @fruffy in #4165
  • Dpdk backend: Remove illegal instruction generation, reject operations on >64bit operands by @usha1830 in #4171
  • backends/ebpf: Add support for XDP model. by @thomascalvert-xlnx in #4160
  • Build the libbpf library during the cmake configuration process by @fruffy in #4166
  • [P4Testgen] Change PNA port width to 32 instead of 9 by @fruffy in #4177
  • Get host architecture dynamically while downloading protoc binary by @Skazza94 in #4179

New Contributors

Full Changelog: v1.2.4.3...v1.2.4.4

v1.2.4.3

01 Sep 16:51
5b66fa4
Compare
Choose a tag to compare

What's Changed

  • Update GoogleTest and install it via FetchContent by @fruffy in #4092
  • [P4Testgen] Add target-specifc P4Testgen gtests by @fruffy-bfn in #4093
  • Dpdk Backend :Fix header stack assignment in p4c-dpdk by @usha1830 in #4100
  • Migrate STF scripts to the STF parser library. Modernize stale run-bmv2-test.py code. by @fruffy in #4040
  • Add a PTF test CI pipeline for p4c-dpdk on the DPDK SoftNIC by @Hoooao in #4072
  • Pull in libbpf only when the eBPF back end is active. Pull libbpf using FetchContent instead of a custom script. by @fruffy in #3970
  • Use libbacktrace for stack dumps if available by @ChrisDodd in #4088
  • [P4Testgen] Allow building p4testgen without BMV2 target by @vlstill in #4109
  • Minor tweaks by @ChrisDodd in #4106
  • Continuing the implementation of initial entries support in p4c by @jafingerhut in #4080
  • [P4Testgen] Add documentation to P4Testgen by @fruffy in #4097
  • Added hooks in p4RuntimeArch and p4RuntimeSerializer by @ChrisDodd in #4112
  • Use namespace for dpdk PTF tests by @Hoooao in #4111
  • Add a comment on a not strictly necessary grammar rule by @jafingerhut in #3016
  • Fix MAC Address endianness issue by @komaljai in #4089
  • Fix linking with Protobuf 23 by @jkhsjdhjs in #4104
  • Migrate Automatic Exec Groups by adding a toolchain parameter to the affected actions by @kotlaja in #4116
  • Remove P4Testgen codeowners file by @fruffy in #4119
  • ci/release: create tagged container images by @rst0git in #4125
  • Automated Release v1.2.4.3 by @github-actions in #4124

New Contributors

Full Changelog: v1.2.4.2...v1.2.4.3

v1.2.4.2

02 Aug 11:09
b1b0fde
Compare
Choose a tag to compare
Automated Release v1.2.4.2 (#4090)

* Release v1.2.4.2

Changelog:
- Update P4Runtime and use FetchContent instead of a submodule. (4082) [Fabian Ruffy]
- Fix missing header for intmax_t typedef (4084) [Felipe Magno de Almeida]
- Install Protobuf using FetchContent. (4056) [Fabian Ruffy]
- Add test program that uses 'priority' as identifier of a few kinds (4079) [Andy Fingerhut]
- Allow building testgen without P4TEST enabled (4078) [Vladimír Štill]
- Add an option to the DPDK P4C back end to generate TDI builder configurations. (4068) [fruffy-bfn]
- Try to fix Opensuse certificate errors. (4075) [fruffy-bfn]
- Update the plotting script. (4061) [fruffy-bfn]
- Fix an infinite loop in the coverable nodes scanner. (4073) [Fabian Ruffy]
- Fix 4067: Add static casts required by newer versions of G++ (4074) [Andy Fingerhut]
- Fix MacOS installation typo. (4071) [Fabian Ruffy]

* Update version.

---------

Co-authored-by: rst0git <[email protected]>
Co-authored-by: fruffy <[email protected]>

v1.2.4.1

18 Jul 20:41
b9775ee
Compare
Choose a tag to compare
Release v1.2.4.1 (#4052)

Changelog:
- Add Bazel build rules for P4TestGen (4050) [Ali Kheradmand]
- Include annotations for new_type messages. (4047) [Robert J. Halstead]
- [P4Testgen] BMv2 test generation improvements (4046) [Fabian Ruffy]
- Change Dockerfile to build p4tools by default. (4049) [Chris Sommers]
- Wrap the TC defines in a namespace, use constexpr. (4048) [Fabian Ruffy]
- Fixed tc table type (4045) [Sosutha]
- Cleaner dbprint of if-else if chains (4044) [Chris Dodd]
- Fix race condition for parallel PTF nanomsg tests by using network namespaces. (4042) [Fabian Ruffy]
- [P4Testgen] Control the Z3 dependency in CMake using fetchcontent, generalize FindZ3.cmake (4034) [fruffy-bfn]
- Remove old ipaddr python module (4037) [Andy Fingerhut]
- Use a version of simple switch that uses nanomsg instead of virtual interfaces for PTF tests. (3951) [Fabian Ruffy]
- Fix incorrect boolean cast in the Z3 solver implementation. (4039) [Fabian Ruffy]
- [P4Testgen] Miscellaneous fixes for P4testgen (4036) [Fabian Ruffy]
- Remove execution state from the symbolic executor, make it a parameter. Simplify SelectedBranches. (4031) [fruffy-bfn]
- Reduce overtainting by short-circuiting some expressions and extern invocations. (4030) [fruffy-bfn]
- Hotfix for failing MacOS tests. Pin boost.  (4027) [Fabian Ruffy]
- Dpdk Backend: Fixed target_name and action parameter bitwidth (4025) [Usha Gupta]
- Remove the array indices conversions and handle indices in the interpreter. (4024) [fruffy-bfn]
- [P4Testgen] Simplify the model (4021) [Fabian Ruffy]
- p4c-pna-p4tc : new TC backend for p4c (4018) [Sosutha]
- [P4Testgen] Remove complete from the model, make it part of the evaluation step instead.  (4015) [fruffy-bfn]
- Implement support for non-const table entries (3748) [Mihai Budiu]
- Also suppress no-gnu-zero-variadic-macro-arguments warnings for MacOs. (4023) [Fabian Ruffy]

Co-authored-by: rst0git <[email protected]>

v1.2.4.0

02 Jun 13:08
71a06fe
Compare
Choose a tag to compare
Release v1.2.4

Changelog:
- [P4Testgen] Open up P4Testgen interface.  (4014) [fruffy-bfn]
- [P4Testgen] Create abstract execution state with utility functions - move copy-in/out to control/parser blocks. (4011) [Fabian Ruffy]
- cmake: Fix include search for Z3 in testgen library (4012) [Vladimír Štill]
- [P4Testgen] Move some table code into helper functions, move gen_eq to "common" folder (4010) [Fabian Ruffy]
- Properly track indices when removing parser value sets from the select cases (4008) [fruffy-bfn]
- Open up ResolutionContext interface a bit (4009) [Chris Dodd]
- Add a simple PSA test program and STF test to verify parser_error ope… (2571) [Andy Fingerhut]
- lib/crash.cpp: :  calls in  initializations fixed. (3298) [DoctorNoobingstoneIPresume]
- [P4Testgen] More P4Tools refactoring work. (4005) [Fabian Ruffy]
- [P4Testgen] Fix small issues with metadata test backend. Add more functions to IR utilities. Merge default value function. (4004) [fruffy-bfn]
- [P4Testgen] Also include table entries in the coverage set. (3999) [Fabian Ruffy]
- Allowing local_copyprop to propagate MethodCallExpression into table … (4003) [Han Wang]
- [P4Testgen] Fix include paths (3997) [Fabian Ruffy]
- [P4Testgen] More StateVariable refactoring. Allow PathExpression to be state variables.  (3990) [Fabian Ruffy]
- Make P4_16 the default parser option. (4002) [Fabian Ruffy]
- misc helper functions (3995) [Chris Dodd]
- NVFMSA-2399 Fix initialization-order-fiasco of P4CoreLibrary instance (3994) [Chris Dodd]
- [P4Testgen] Implement meter support for the BMv2 V1model PTF test back end (3974) [Fabian Ruffy]

v1.2.3.9

02 May 15:31
b611206
Compare
Choose a tag to compare

What's Changed

  • DPDK Backend: Minor fixes w.r.t bfrt and context json output and name shortening by @usha1830 in #3958
  • Remove boost variant from P4Tools by @fruffy in #3960
  • Remove the inja submodule and replace it with a CMake fetchcontent by @fruffy in #3959
  • Remove gsl-lite module from P4Tools. Introduce std::referencewrapper. by @fruffy in #3961
  • Clean up the trace event class of P4Tools. by @fruffy in #3950
  • DPDK Backend: Change array index[] in table keys in context.json to $ to match with the key name in bfrt.json by @usha1830 in #3963
  • P4Testgen: Resolve types in the prepend/append internal extern. by @fruffy-bfn in #3964
  • ebpf/PSA: Fix weekly PTF tests by @tatry in #3969
  • initialize json pointer (coverity fix) by @grg in #3972
  • ir generator fixes + cleanup by @ChrisDodd in #3975
  • Always insert instantiation statement at the end of the local statement list by @qobilidop in #3962
  • Implement support for default initializers (...) by @mbudiu-vmw in #3968
  • Add style and formating files for Python. Format Python code. by @fruffy in #3870
  • Bump Bazel dependency versions to enable using latest Bazel by @qobilidop in #3979
  • Cleanup some P4Testgen code. by @fruffy in #3978
  • Make StateVariable an IR class that accepts IR::Member. Use ICastable for some nodes. by @fruffy in #3741
  • Set up P4C for IWYU by @fruffy in #3981
  • Also include the backend IR files in the ir-generated library file. by @fruffy in #3985
  • FreeBSD patches by @outpaddling in #3991
  • Add some more type information to the strength reduction pass. by @fruffy in #3993
  • Run linters across test folder. by @fruffy in #3982
  • Split state variables and symbolic variables. Stricter type checking. by @fruffy in #3987
  • [P4Testgen] Clean up the implementation of the BMv2 clone externs. by @fruffy in #3976

New Contributors

Full Changelog: v1.2.3.8...v1.2.3.9