Releases: p4lang/p4c
Releases · p4lang/p4c
v1.2.5.10
What's Changed
Changes to the Compiler Core
- Fixes for P4-14 Tofino compilation. by @fruffy in #5414
- fix return types of fromJSON to match NodeFactoryFn by @ChrisDodd in #5420
- Add validation to make sure source info generated from the parser is actually valid by @fruffy in #5417
Changes to the TC Back End
- Temporarily disable use of p4lang-bmv2 Debian package until it is working again by @jafingerhut in #5424
- Add p4tc IP-in-IP testcases by @vbnogueira in #5431
Changes to the Tofino Back End
- Silence 'unused' warnings for stuff in tofino headers by @ChrisDodd in #5427
Other Changes
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #5426
- Automated Release v1.2.5.10 by @github-actions[bot] in #5429
Full Changelog: v1.2.5.9...v1.2.5.10
v1.2.5.9
What's Changed
Breaking Changes 🛠
- Switch compilation from C++17 to C++20. by @fruffy in #4347
- [#5350] Replace underscores with hyphens for diagnostic types in the
ErrorCatalogby @kfcripps in #5360
Changes to the Compiler Core
- Loop unrolling fix by @ChrisDodd in #5344
- Fix type unification bug with `int' args by @ChrisDodd in #5346
- Moved warnings about unused instances before the first constant folding by @dmatousek in #5342
- Fix unification of serializable enums by @ChrisDodd in #5348
- Print warnings in a deterministic order by @kfcripps in #5352
- ensure child of IR::SwitchCase remains a BlockStatement by @ChrisDodd in #5349
- Extended Type_InfInt handling in ExpressionEvaluator by @MichalKekely in #5355
- Fixed SIGSEGV crash in struct assign by @MichalKekely in #5356
- Extension to strength reduction for issue 5280 by @ChrisDodd in #5281
- Remove GetV1ModelVersion from front end by @fruffy in #5390
- Support for arrays of extern instances by @ChrisDodd in #5338
- Extend CopyStructures to optionally copy tuples by @ChrisDodd in #5364
- Fix simplifySwitch handling of enums by @ChrisDodd in #5365
- Fix EliminateTuples bug with nested struct/tuples by @ChrisDodd in #5362
- Avoid 'fatal error : Broken pipe' from preprocessor by @ChrisDodd in #5400
- JSON error checking when loading by @ChrisDodd in #5401
- Fix/reorganize to/fromJSON code by @ChrisDodd in #5403
Changes to the Control Plane
Changes to the eBPF Back Ends
- Add support for operations on value with sizes > 64-bit by @vbnogueira in #5345
Changes to the TC Back End
- Make struct used by digest in p4tc packed by @vbnogueira in #5329
- Add Checksum extern support to the TC backend by @vbnogueira in #5357
- Add Random extern support to the TC backend by @vbnogueira in #5354
- Add redirect_l2 test case by @vbnogueira in #5406
- Add p4tc routing testcases by @vbnogueira in #5409
Changes to the P4Tools Back End
- Remove unnecessary table stepper object from pna exr_stepper by @dparker01 in #5366
Changes to the Tofino Back End
- Fix gtestasm (tests now throw CompilerBug rather than aborting) by @ChrisDodd in #5393
Other Changes
- Add back test case for #5333 by @kfcripps in #5351
- Print message when P4TEST_IGNORE_STDERR is used by @chreekat in #5358
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #5363
- Bump actions/github-script from 7 to 8 by @dependabot[bot] in #5374
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #5373
- [docs] Added test guide by @Vineet1101 in #5215
- Add 248 negative tests to
p4_16_errorsby @KunJeong in #5369 - Small build cleanups by @chreekat in #5388
- Disable ptf-ebpf-kernels-weekly workflow by @chreekat in #5391
- Bump peter-evans/find-comment from 3 to 4 by @dependabot[bot] in #5396
- Bump peter-evans/create-or-update-comment from 4 to 5 by @dependabot[bot] in #5395
- Prevent unintended backtick parsing by @chreekat in #5397
- Increase minimum required BISON version to 3.1 by @kfcripps in #5398
- Bump grpcio for Mac by @chreekat in #5404
- Automated Release v1.2.5.9 by @github-actions[bot] in #5413
New Contributors
Full Changelog: v1.2.5.8...v1.2.5.9
v1.2.5.8
What's Changed
Breaking Changes 🛠
- Add
DeclarationLookup*parameter toLocalCopyPropagationpolicydeclaration. UseDoLocalCopyPropagationinstead ofrefMapinLocalCopyPropagationpolicy. by @kfcripps in #5307 - Global rename Type_Stack -> Type_Array by @ChrisDodd in #5337
Changes to the Compiler Core
- Propagate source info to new
StructExpressions by @kfcripps in #5309 - Code Metrics Collection by @stan-leetasi in #5250
- More side effects cleanups by @ChrisDodd in #5235
- Improved check of entries in key-less tables by @dmatousek in #5310
- Do not emit a warning when a
switchexpression is constant by @kfcripps in #5314 - [#5254] Emit error message for duplicate
switchcase labels by @kfcripps in #5316 - Fixes and improvements for loop unrolling by @ChrisDodd in #5312
- Miscellaneous minor contributions from AMD backend by @kfcripps in #5321
- Fix copy & paste typo in flattenStructExpression by @asl in #5322
- Make useful driver arguments available on all targets by @ChrisDodd in #5328
- Compilation fixes for C++20. by @fruffy in #5278
- [#5331] Propagate source info when substituting parameters during inlining by @kfcripps in #5333
- [#5335] Properly handle default-initialized stacks of non-header types. by @kfcripps in #5336
- Avoid crash after error in typechecking by @ChrisDodd in #5332
- [#5331] Do not emit
mismatchoroverflowwarnings for explicit casts by @kfcripps in #5334
Changes to the P4Tools Back End
- [P4Testgen] Add global table hit variable to testgen table stepper by @dparker01 in #5324
Changes to the Tofino Back End
Other Changes
- Upgrade
clang-formatto v18.1.8 by @kfcripps in #5325 - Automated Release v1.2.5.8 by @github-actions in #5339
New Contributors
- @dparker01 made their first contribution in #5324
Full Changelog: v1.2.5.7...v1.2.5.8
v1.2.5.7
What's Changed
P4 Specification Implementation
- Generalized array support by @ChrisDodd in #5115
Changes to the Compiler Core
- Decimal numbers support for the json lib by @stan-leetasi in #5283
- Clean up IRDumper to use visitor infra properly by @ChrisDodd in #5282
- Midend pass to detect entries with duplicate or unmatchable keys by @ChrisDodd in #5248
- def_use: Avoid ProgramPoints merge where possible by @iand-xilinx in #5273
- Limit warnings about unused things by @ChrisDodd in #5239
Changes to the eBPF Back Ends
- Add bpftool to eBPF back end instead libbpf. Rework ebpf kernel header and Python loaders for Ubuntu 24.04 support by @fruffy in #5183
- Add sys/types.h include to ebpf_kernel and disable failng PSA-eBPF test. by @fruffy in #5275
Changes to the TC Back End
Changes to the P4Tools Back End
- [P4Testgen] Print and error instead of throwing a BUG when the architecture package does not match. by @fruffy in #5277
- [Testgen] Always terminate testgen midend passes with
MidEndLastby @kfcripps in #5306
Other Changes
- Only push docker image when the branch is main. Not on the merge queue. by @fruffy in #5274
- Update some specific Github actions to Ubuntu 24.04 by @fruffy in #5290
- Automated Release v1.2.5.7 by @github-actions in #5308
New Contributors
- @stan-leetasi made their first contribution in #5283
- @iand-xilinx made their first contribution in #5273
Full Changelog: v1.2.5.6...v1.2.5.7
v1.2.5.6
What's Changed
Breaking Changes 🛠
Changes to the Compiler Core
- [#5211] Run
UniqueNamesbeforeSimplifyParserspass by @kfcripps in #5216 - [Core] Fix namespace mismatch in irutils.h by @fruffy in #5220
- Fixed P4C driver utility find_bin to return on first match by @psivanup in #5226
- improve SideEffects and StrengthReduction by @ChrisDodd in #5229
- Avoid crashing compiler after a self-nested type specialization error by @vlstill in #5236
- Fix compile-time concatenation with negative right operand by @vlstill in #5233
- Fix ERR/WARN_UNREACHABLE error classification by @ChrisDodd in #5244
Changes to the BMv2 Back Ends
Changes to the eBPF Back Ends
- Skip PSATernaryTest on Ubuntu 22.04 and add Black formatting by @AkarshSahlot in #5209
Changes to the P4Tools Back End
- Remove confidential & proprietary notices from Tofino testgen test programs by @jafingerhut in #5189
Changes to the Tofino Back End
- [Tofino] Try to fix the dependency of mksizes in bf-asm CMake. by @fruffy in #5221
- Fix missing include in alloc.h causing compilation failure by @nuqleo in #5245
Other Changes
- Replace proprietary notice and CC license on two test files with Apache-2.0 by @jafingerhut in #5191
- [infra] Adding Smart caching to bazel builds by @Vineet1101 in #5238
- Make sure Github action workflows are correctly canceled. by @fruffy in #5232
- Deprecate Ubuntu 18.04 CI checks. by @fruffy in #5242
- Fix failing Fedora tests. by @fruffy in #5241
- Update cpplint to fix deprecation problems with recent Ubuntu versions. by @fruffy in #5230
- Automated Release v1.2.5.6 by @github-actions in #5247
New Contributors
- @AkarshSahlot made their first contribution in #5209
- @nuqleo made their first contribution in #5245
Full Changelog: v1.2.5.5...v1.2.5.6
v1.2.5.5
What's Changed
P4 Specification Implementation
- Support for op= assignments in the frontend/midend by @ChrisDodd in #5108
- Add @likely/@unlikely annotations for blocks by @ChrisDodd in #4979
Changes to the Compiler Core
- Mark inline locations with annotation. by @asl in #5150
- Fix wrong references to return value when function is inlined multiple times into the same scope by @asl in #5163
- Add statement splitter utility by @vlstill in #5158
- Updated the no start state error message to include only parser name by @psivanup in #5164
- Pass to get rid of action_run() calls by @ChrisDodd in #5053
- fix warnings from -Wswitch-enum by @ChrisDodd in #5170
- frontend: Fix SpecializeGenericTypes by @vlstill in #5133
- make DumpPipe from Tofino available to all by @grg in #5184
Changes to the BMv2 Back Ends
- BMv2: DirectCounter and InternetChecksum fixes by @grg in #5194
- BMv2: ActionSelector fix + enable backends by @grg in #5195
- [BMv2] PNA: hash default + enum fix by @grg in #5196
- [bmv2]: allow BoolLiteral in ternary table entry by @grg in #5199
- [bmv2]: output the scalar metadata fields by @grg in #5200
- [bmv2]: support Random extern for psa/pna by @grg in #5213
Changes to the TC Back End
- First take at p4tc automated tests by @vbnogueira in #5011
- Replace unnecessary use of Scapy with ptf.pcap_writer in p4tc tests by @jafingerhut in #5165
- Update p4tc CI tests to run on Ubuntu 22.04 by @jafingerhut in #5168
- Update p4tc's iproute2 to v17-rc8 by @fruffy in #5172
- Replace most mentions of Ubuntu 20.04 with 22.04 by @jafingerhut in #5156
- Automatically disable p4tc tests when the necessary environment is missing by @fruffy in #5177
Changes to the Tofino Back End
- Do not return nullpointer in the evaluator pass when there is nothing to do. by @fruffy in #5178
- Add the Barefoot Tofino Assembler to the Tofino back end. by @fruffy in #5121
- Fix tofino license regeneration by @Vineet1101 in #5161
- Correctly attach the dontmerge annotation in the desugar_varbit_extract pass. by @fruffy in #5193
- [Tofino] Replace bf-asm BUG macros with top-level BUG macros. Remove GNU extensions flags. by @fruffy in #5188
Other Changes
- [#4365] [#4907] Add test cases related to issue #4365 by @kfcripps in #5175
- Add Auto-Labeling for Issues using GitHub Actions by @Vineet1101 in #5136
- Update validate-p4c CI test to use Ubuntu 22.04 by @jafingerhut in #5160
- Fix missing space when emitting error enum with toP4. by @fruffy in #5179
- Do not throw a Python exception when the binary to execute is not found. by @fruffy in #5180
- Add SPDX-License-Identifier: GPL-2.0-only to Python source files using scapy by @jafingerhut in #5111
- [infra] Change permissions of label update workflow. by @fruffy in #5197
- [psa]: minor spacing adjustments in dpdk/psa.p4 by @grg in #5202
- [infra] Fixing auto-label workflow by @Vineet1101 in #5198
- Update ptf-ebpf CI test to Ubuntu 22.04 by @jafingerhut in #5159
- Automated Release v1.2.5.5 by @github-actions in #5210
New Contributors
- @Vineet1101 made their first contribution in #5136
Full Changelog: v1.2.5.4...v1.2.5.5
v1.2.5.4
What's Changed
Breaking Changes 🛠
Changes to the Compiler Core
- Add iterator constructor to IndexedVector by @vlstill in #5124
- Silence some warnings by @asl in #5125
- Consistently set & propagate child names by @asl in #5134
- @command_line annotation by @ChrisDodd in #5123
- JSONGenerator/Loader cleanups by @ChrisDodd in #5146
Changes to the TC Back End
Changes to the P4Tools Back End
Other Changes
- Docs: Changelogs for
v1.2.5.3by @AdarshRawat1 in #5119 - Use the Github repository directly instead of the pypi package for Python dependencies owned by P4 org. by @fruffy in #5126
- Remove some unnecessary imports of Scapy module by @jafingerhut in #5128
- Replace scapy pcap read write with apache 2.0 implementation in ptf by @jafingerhut in #5132
- Use prebuilt buildifier binary: it's faster and less brittle. by @smolkaj in #5143
- Bazel build: use Clang and bump rules_foreign and protobuf versions. by @smolkaj in #5148
- Automated Release v1.2.5.4 by @github-actions in #5154
Full Changelog: v1.2.5.3...v1.2.5.4
v1.2.5.3
What's Changed
Changes to the Compiler Core
- Switch to abseil symbolization / stack tracing routines by @asl in #5077
- lib: Add P4::warningCount() and P4::infoCount() by @vlstill in #5098
- Move all config handling into a single place – a config.h file, do not clutter the command line with these additional project-wide defines. by @asl in #5102
- Combo of duplication action name check and LocalizeAllActions fix by @jafingerhut in #4975
- Fix EnumeratorHandle compilation by @qobilidop in #5109
Changes to the TC Back End
- Small fixes for p4tc by @vbnogueira in #5097
Changes to the Tofino Back End
Other Changes
- Remove occurrences of confidential and proprietary by @jafingerhut in #5112
- Docs : Changelogs update for
v1.2.5.1&v1.2.5.2by @AdarshRawat1 in #5117 - Bump Doxygen
v1.13.0->v1.13.2by @AdarshRawat1 in #5116 - Automated Release v1.2.5.3 by @github-actions in #5118
Full Changelog: v1.2.5.2...v1.2.5.3
v1.2.5.2
What's Changed
Changes to the Compiler Core
- Fix FlattenLogMsg not properly working on nested structures by @jhavrane in #5036
- Add checks to annotation getters. by @fruffy in #5052
- Mark RTTI methods as const / pure, so compiler could optimize subsequent calls, if necessary. by @asl in #5049
- Ignore typeless structs in unstructured annotations by @ChrisDodd in #5058
- Teach functions inliner to inline into if condition by @asl in #5073
Changes to the TC Back End
- Introduce the SKB metadata extern by @vbnogueira in #4916
Changes to the DPDK Back End
- Added support for 128 bit constants usage in dpdk backend by @maheswari-s in #5074
Changes to the Tofino Back End
- Fix incorrect annotation parsing in Tofino. by @fruffy in #5051
- Remove unnecessary file lists from Tofino CMake. by @fruffy in #5039
- Add a flag to enable bf-asm for open-p4studio by @pkotikal in #5056
- Clean up Tofino dynamic hash library. by @fruffy in #5059
- Fix missing indentation of bfasm-related commands. by @fruffy in #5069
- Remove dynhash library variable from Tofino library dependencies. by @fruffy in #5072
- Add a bf-asm command line option in addition to environment variables. by @fruffy in #5070
Other Changes
- Remove empty v1.def by @fruffy in #5029
- Docs: Changelogs for
v1.2.5.0by @AdarshRawat1 in #5045 - Update to use Bazel 7.4.1. by @katre in #5071
- Remove obsolete implicit attribute
_cc_toolchainby @katre in #5062 - Clean up clang-format and add a .clangd configuration. by @fruffy in #5075
- Remove unused files from testdata by @jafingerhut in #5079
- Bump Doxygen
v1.12.0->v1.13.0by @AdarshRawat1 in #5080 - Automated Release v1.2.5.2 by @github-actions in #5081
Full Changelog: v1.2.5.1...v1.2.5.2
v1.2.5.1
What's Changed
Breaking Changes 🛠
Changes to the Compiler Core
- Remove some trivial leaks in codebase by @asl in #5012
- Fix modifyAllMatching visitor helper by @vlstill in #5020
- Inline some IR methods and constructors by @asl in #5030
- Looks like PIE workaround is not needed anymore. Remove it by @asl in #5044
- Add typed version of
isInContext()and make use of it instead offindContext()by @asl in #5048
Changes to the TC Back End
- Generate JSON actions and keys fields array even when they are empty by @vbnogueira in #5022
Changes to the Tofino Back End
- minor fix to tofino cmake file by @hanw in #5016
- More Tofino include fixes. by @fruffy in #5006
- Fix many Tofino warnings. by @fruffy in #5007
- Crude port of Tofino dynamic hash to C++ by @asl in #5043
Other Changes
- Add Tofino to release.yml by @fruffy in #5017
- Fix Mac dependency installation. by @fruffy in #5028
- Automated Release v1.2.5.1 by @github-actions in #5040
Full Changelog: v1.2.5.0...v1.2.5.1