Releases: p4lang/p4c
Releases · p4lang/p4c
v1.2.5.0
What's Changed
🎉The Tofino compiler is now open-source and available as a P4C back end (#4964). 🎉
Breaking Changes 🛠
- Add abseil string helpers by @asl in #4971
- Remove IR::Annotations and make IAnnotated to carry annotations inline by @asl in #4992
P4 Specification Implementation
Changes to the Compiler Core
Changes to the BMv2 Back Ends
- Enable handling of arbitrary if statements within actions for BMv2 back end by @jafingerhut in #4999
Changes to the TC Back End
- Small TC fixes by @vbnogueira in #5002
Changes to the P4Tools Back End
Changes to the Tofino Back End
- Miscellaneous small Tofino fixes for compilation. by @fruffy in #4996
- Remove superfluous Tofino include. Make Tofino include paths fully qualified. by @fruffy in #4998
- Try to unbreak Tofino backend due to recent annotations changes by @asl in #5015
Other Changes
- Remove CMAKE_BUILD_TYPE values that do not work when building Z3 by @jafingerhut in #4997
- Try to fix clang compilation failures with the
-fsized-deallocation
option. by @fruffy in #4995 - Docs : Changelogs release update for
v1.2.4.16
&v1.2.4.17
by @AdarshRawat1 in #5003
Full Changelog: v1.2.4.17...v1.2.5.0
v1.2.4.17
What's Changed
Breaking Changes 🛠
- Remove ReferenceMap from majority of midend passes by @asl in #4936
- Remove reference map from another set of midend passes by @asl in #4939
P4 Specification Implementation
- Support for [lsb+:width] slices by @ChrisDodd in #4917
Changes to the Compiler Core
- Fix parser symbolic interpreter to evaluate StringLiteral by @jhavrane in #4937
- Add Vector::dbprint by @vlstill in #4943
- extend type checking to mark extern function call that returns enum a… by @hanw in #4941
- Reorder subdirectory additions in CMakeLists.txt by @hanw in #4938
- Add LOGGING_FEATURE macro by @vlstill in #4953
- Add utilities for running modifications inside nested IR nodes by @vlstill in #4940
- set PathExpression type in ExpandLookahead by @grg in #4959
- Do not print confusing warning when a parser state contains an assignment to an l-value slice by @kfcripps in #4948
- Minor code/comments cleanup in
SimplifyDefUse
by @kfcripps in #4963 - wrap <64bit types properly in loop unrolling by @ChrisDodd in #4967
- Fix warning about delete not matching new by @ChrisDodd in #4989
Changes to the BMv2 Back Ends
Changes to the TC Back End
- Change tc template define by @vbnogueira in #4949
- Make number of masks default to 1 for exact tables by @vbnogueira in #4954
- Handle pna_main_parser_input_metadata_t fields in the tc backend's parser by @vbnogueira in #4955
- P4TC - Implementation of Hash Extern by @komaljai in #4980
Changes to the DPDK Back End
Changes to the P4Tools Back End
- [P4Testgen] Move newline stripping from trace to TestFramework by @vlstill in #4946
- [P4Testgen] Run typechecking after front and mid end. by @fruffy in #4834
- Build Z3 from source instead of downloading precompiled binaries. by @fruffy in #4697
Other Changes
- Ignore brew dependency installation to fix breakages on MacOS CI. by @fruffy in #4950
- Remove ReferenceMap from top-level frontend passes by @asl in #4947
- Add instructions on Github CI tests, including triggering optional ones by @jafingerhut in #4956
- Fix a recently introduced typo by @jafingerhut in #4960
- Fix Fedora CI build. by @fruffy in #4957
- Add a couple of missing ENABLE_* flags to README by @jafingerhut in #4968
- bump up grpcio version to fix mac m1 ci issue by @hanw in #4976
- Require the driver binary as a test input. by @fruffy in #4977
- [P4fmt]: attaching comments to IR Nodes by @snapdgn in #4845
- Contributing Intel Tofino compiler backend to p4c by @hanw in #4964
- Remove Tofino-specific Python packages from requirements.txt by @fruffy in #4984
- Fix Fedora build and fix CMake warnings on versions greater than CMake 3.24. by @fruffy in #4986
- Fix case of default CMake build mode. by @fruffy in #4993
- Automated Release v1.2.4.17 by @github-actions in #4990
Full Changelog: v1.2.4.16...v1.2.4.17
v1.2.4.16
What's Changed
Breaking Changes 🛠
Changes to the Compiler Core
- Reduce the number of memory allocations in def-use by @asl in #4904
- Split the
start
state more conservatively when a parser contains decl initializers by @kfcripps in #4902 - Add missed include by @asl in #4915
- Only process
IR::Path
s inside ofIR::ParserState
contexts inMoveInitializers
by @kfcripps in #4910 - Factor common base ExternCall for ExternMethod/ExternFunction by @ChrisDodd in #4898
- [#4883] Remove unused actions whose
@name
name starts with "__" by @kfcripps in #4900 - Allow
--Wdisable
to take precedence over--Werror
for warning messages by @kfcripps in #4894 - Allow keywords to be used as annotation names. by @ChrisDodd in #4897
- Avoid copying out/inout args when inlining functions by @ChrisDodd in #4877
- Clean up the P4-14 dependent code. by @fruffy in #4925
- Fix Type_Indexed::at by @ChrisDodd in #4927
- Make --top4 matching case-insensitive. by @fruffy in #4924
Changes to the TC Back End
Changes to the P4Tools Back End
- [P4Tools] Also track invocations in the timer to measure per function statistics. by @fruffy in #4929
- [P4Testgen] Unify compiler options and tool options. Ensure options context is always initialized correctly. by @fruffy in #4787
- [P4Tools] Clean up use of ::P4 prefix for errors, warnings, and logs. by @fruffy in #4930
Other Changes
- Bump peter-evans/create-pull-request from 6 to 7 by @dependabot in #4903
- Docs: Update Documentation Instructions by @AdarshRawat1 in #4875
- Remove the workaround that was required for MacOS CI installation. by @fruffy in #4921
- Docs : Changelogs release update for v1.2.4.15 by @AdarshRawat1 in #4934
- Automated Release v1.2.4.16 by @github-actions in #4935
Full Changelog: v1.2.4.15...v1.2.4.16
v1.2.4.15
What's Changed
Breaking Changes 🛠
- Fixup/cleanup IR::Type::width_bits() by @ChrisDodd in #4858
- Promote
P4
to be THE project-wise top-level namespace by @qobilidop in #4825
P4 Specification Implementation
Changes to the Compiler Core
- Ensure correct overload for diagnose() is called even in Transform context by @asl in #4830
- Fix ASAN issue in lib/cstring. by @matthewtlam in #4865
- Ensure we are finding proper
operator<<
during debug printing by @asl in #4860 - Fix linter complaints in the validateStringAnnotations pass and enable -werror for MacOS. by @fruffy in #4881
- Trim overlong source fragments in error messages by @ChrisDodd in #4885
- Pass to reduce added flags from RemoveReturn by @ChrisDodd in #4878
- Add operator< to some compiler classes by @fruffy in #4851
- Make isSystemFile() part of the parser options file. by @fruffy in #4888
- Add empty block for trailing case(s) with no code. by @ChrisDodd in #4889
- Silence -Wswitch-enum from bison generated file by @ChrisDodd in #4886
- Sync dump.h with dump.cpp by @qobilidop in #4896
- Make type checking true read-only visitor by @asl in #4829
Changes to the Control Plane
Changes to the BMv2 Back Ends
Changes to the TC Back End
- Support of Digest extern in P4TC by @komaljai in #4842
- Support of is_net_port and is_host_port externs. by @komaljai in #4873
- Reduce extern parameters size to 64 bytes by @vbnogueira in #4880
- Remove priority field from ternary table's action by @vbnogueira in #4879
- P4TC - Support for Meter and DirectMeter extern by @komaljai in #4884
Changes to the P4Tools Back End
- [P4Testgen] Represent bits of width zero as an empty string. by @fruffy in #4852
- Reenable compilation tests for P4Smith. by @zzmic in #4791
- [P4Tools] Clean up the P4Tools GTest infrastructure. by @fruffy in #4841
- [P4Smith] Remove a stray print in the smith code. by @fruffy in #4891
Other Changes
- Docs : Changelogs release update for v1.2.4.14 by @AdarshRawat1 in #4849
- Feat: PR Preview Workflow via GitHub Pages by @AdarshRawat1 in #4848
- Fix: PR Preview URL to Use Base Repository by @AdarshRawat1 in #4855
- Bump Documentation build workflow action from Doxygen
v1.11.0
tov1.12.0
by @AdarshRawat1 in #4861 - Bump actions/github-script from 6 to 7 by @dependabot in #4864
- Docs : Content Organization and Documentation Updates by @AdarshRawat1 in #4850
- [p4fmt]: Add a pretty printer for p4fmt. by @snapdgn in #4862
- Docs:Content Organization & Add 'Frontend' and 'Midend' Sections by @AdarshRawat1 in #4876
- Update BDWGC. by @fruffy in #4868
- Remove 4 tests that are completely identical to other tests that remain by @jafingerhut in #4890
- simplifyDefUse: Report the specific uninitialized struct field by @ChrisDodd in #4892
- Update namespace usage in .gdbinit by @qobilidop in #4895
- Automated Release v1.2.4.15 by @github-actions in #4893
Full Changelog: v1.2.4.14...v1.2.4.15
v1.2.4.14
What's Changed
Breaking Changes 🛠
- P4C Options cleanup by @fruffy in #4790
- Make preprocess and getIncludePath const functions. by @fruffy in #4785
P4 Specification Implementation
Changes to the Compiler Core
- Improve cstring cache internals by @asl in #4780
- Fix loop unrolling bugs related to issue4739 by @ChrisDodd in #4783
- Make HasTableApply a resolution context, so it could resolve declarations on its own if desired by @asl in #4781
- [#4661] Do not unconditionally mark extern method calls as compile-time constants. by @kfcripps in #4726
- Fix
loc_t::operator<
whenparent
isnullptr
by @kfcripps in #4798 - Introduce string map class and switch to it by @asl in #4774
- Require type decl in for..in loops by @ChrisDodd in #4808
- Add UnrollLoops::Policy to control unrolling per backend by @ChrisDodd in #4809
- Extend & fix FunctionInliner by @asl in #4801
- [NFC] Split TypeInference by @asl in #4814
- Map written
LocationSet
s to program locations (loc_t
) instead ofIR::Expression*
s by @kfcripps in #4797 - Store exact type, not one of the base class to inhibit assertion by @asl in #4818
- misc fixes/additions by @ChrisDodd in #4820
- Remove multimap usage from
memoizeDeclsByName
by @asl in #4821 - Make don't care args action-local when used in actions by @kfcripps in #4817
- Add string literal support in constant folding. by @fruffy in #4837
- Truncate shifts to the maximum constant bit-width in the constant folding pass. by @fruffy in #4836
- Make SymbolicVariable part of the core IR. by @fruffy in #4840
Changes to the BMv2 Back Ends
- Move ProgramStructure out the BMv2 folder such that it can be used in other back ends. by @fruffy in #4770
- Add skeleton implementation for BMv2 PNA Backend by @rupesh-chiluka-marvell in #4729
Changes to the TC Back End
- Support of InternetChecksum in P4TC by @komaljai in #4782
- Fix broken CI runs because missing override in TC code. by @fruffy in #4794
Changes to the P4Tools Back End
- P4Testgen logging cleanups. by @fruffy in #4684
- For-loop and for-in-loop support for P4Smith by @zzmic in #4772
- [P4Testgen] Refactor the P4Testgen extern implementation. by @fruffy in #4728
- [P4Testgen] Initialize the testgen targets when invoking the library API by @fruffy in #4706
- [P4Testgen] Pass compiler options as argument, instead of getting them with static methods. by @fruffy in #4833
- [P4Testgen] Hotfix for failing P4Testgen benchmark test. by @fruffy in #4839
- [P4Testgen] Fix problems with the reachability pass. by @fruffy in #4789
- Replace boost::container::flat_map with absl::btree_map in P4Tools. by @fruffy in #4768
Other Changes
- Docs : Changelogs release update for v1.2.4.13 by @AdarshRawat1 in #4788
- Docs : Add Home page for documentation by @AdarshRawat1 in #4764
- P4Fmt reference checker by @snapdgn in #4778
- Update the PINS programs. by @fruffy in #4799
- Add test program to verify compile-time error if no type in for-in loop by @jafingerhut in #4812
- Add tests from issue #4507 by @kfcripps in #4816
- Update README.md instructions for running doxygen by @jafingerhut in #4807
- Fix: Links in Generated Documentation by @AdarshRawat1 in #4793
- Minor Fix: links in P4Smith page by @AdarshRawat1 in #4828
- Add missing BUILD file dependencies. by @matthewtlam in #4846
- Minor fix : Heading of portable_common by @AdarshRawat1 in #4847
- Automated Release v1.2.4.14 by @github-actions in #4844
New Contributors
- @zzmic made their first contribution in #4772
- @rupesh-chiluka-marvell made their first contribution in #4729
- @matthewtlam made their first contribution in #4846
Full Changelog: v1.2.4.13...v1.2.4.14
v1.2.4.13
What's Changed
Breaking Changes 🛠
- Get rid of implicit char* => cstring conversions by @asl in #4694
- Format-related string fixes and refactorings by @asl in #4704
- Get rid of custom implementation of Utils::PathName by @asl in #4721
- cstring-related cleanup, switch to std::string_view for some cstring API by @asl in #4716
- Remove ReferenceMap recalculation (almost) everywhere and switch to more fine-grained solutions by @asl in #4757
Changes to the Compiler Core
- Refactor error_helper and around by @asl in #4686
- Add freestanding RTTI::to, RTTI::is, RTTI::isAny by @vlstill in #4696
- More compilation fixes for C++20: hvec_map and copy_bitref by @fruffy in #4703
- Add a constant folding pass after inlining by @mihaibudiu in #4727
- [#4006] Remove confusing warning when the same header is extracted multiple times in a parse path by @kfcripps in #4725
- Emit true and false instead of 1 and 0 for BoolLiteral dbprint. by @fruffy in #4741
- [#4760] Create empty
SetOfLocations
for don't care arguments passed as actionout
args by @kfcripps in #4762 - Delete unused RemoveComplexExpressions pass. by @fruffy in #4771
Changes to the TC Back End
- P4TC - Support for DirectCounter extern by @komaljai in #4711
- Implementation of Counter extern in p4tc by @komaljai in #4734
- Make sure compiler_meta__->drop starts out false by @vbnogueira in #4722
Changes to the DPDK Back End
- Update some stale DPDK error reference files. by @fruffy in #4705
- Fix a nullptr access in the DPDK back end. by @fruffy in #4712
Changes to the P4Tools Back End
- Add P4Smith, a random program generator to the P4Tools framework by @fruffy in #4182
- [P4Smith] Fix broken links in Smith README by @fruffy in #4754
Other Changes
- Configure: DOXYGEN for documentation generation by @AdarshRawat1 in #4701
- Add a formatter binary skeleton as P4C back end by @snapdgn in #4710
- Invalid include fix in
p4fmt.cpp
by @snapdgn in #4718 - Test building P4C with
ENABLE_GTESTS=OFF
in CI by @qobilidop in #4719 - Fix up the Bazel sed command. by @fruffy in #4720
- Docs : Configure Doxygen and GitHub pages deploy Action by @AdarshRawat1 in #4702
- Fix : Compatibility issues with Doxygen version in runner and configuration by @AdarshRawat1 in #4732
- Docs : Update community link from Slack to Zulip by @AdarshRawat1 in #4735
- [Docs] Add initial CHANGELOG.md with changelogs from previous release by @AdarshRawat1 in #4708
- Docs : Configuring Doxygen Awesome CSS by @AdarshRawat1 in #4737
- Minor Fix: Graphs Backend Example Images by @AdarshRawat1 in #4749
- Fix spurious P4Testgen failure occuring because of a problem when running PTF tests in parallel. by @fruffy in #4750
- Make different Markdown files have different titles in Doxygen output by @jafingerhut in #4745
- Bump docker/build-push-action from 5 to 6 by @dependabot in #4751
- Docs: Fixing diagram paths in generated docs by @AdarshRawat1 in #4755
- Docs: Add theme dependency and instructions by @AdarshRawat1 in #4747
- Add back in heading for P4Smith README file by @jafingerhut in #4756
- Docs: Initial sequence of pages in Documentation by @AdarshRawat1 in #4758
- Docs: Update compiler file structure by @AdarshRawat1 in #4761
- Fix naming of CMake Release configuration. by @fruffy in #4765
- Simplify dependabot label generation. by @fruffy in #4766
- Add DCO description to the contribution guidelines. by @fruffy in #4743
- Add a signature for the release bot for DCO support. by @fruffy in #4769
- Automated Release v1.2.4.13 by @github-actions in #4767
New Contributors
Full Changelog: v1.2.4.12...v1.2.4.13
v1.2.4.12
What's Changed
Breaking Changes 🛠
- Replace IR::getBitType with IR::Type_Bits::get. by @fruffy in #4669
- Make the new operator protected for some IR types. by @fruffy in #4670
P4 Specification Implementation
- [#4656] Explicitly delay constant folding of only action enum
IR::SwitchCase
label
expressions, instead of delaying constant folding of allIR::Mux
expressions by @kfcripps in #4657 - Changes for for loops by @ChrisDodd in #4562
Changes to the Compiler Core
- Use check_include_file_cxx instead of check_include_file to find mm_malloc.h by @fruffy in #4649
- Move IRUtils Literal get functions to the respective IR members. Add stringliteral get function. by @fruffy in #4623
- Improve error message when shifting int by non-const by @vlstill in #4653
- Fixes to lib/hash and lib/big_int_util. by @fruffy in #4655
- Link against the Boehm-Demers-Weiser Garbage Collector using FetchContent. by @fruffy in #3930
- Explicitly include hash.hpp for Ubuntu 18.04. by @fruffy in #4664
- RemoveUnusedDeclarations - make helpers protected by @ChrisDodd in #4668
- Generalization & minor refactoring in RenameMap by @vlstill in #4677
- Add string_view and string conversion operators and functions to cstring by @vlstill in #4676
- Facilitate inheritance from RenameSymbols pass, deduplicate code by @vlstill in #4682
- Set type for LAnd, LOr, LNot to be Type_Boolean if unknown. by @fruffy in #4612
- Improve
BUG_CHECK
internals by @asl in #4678 - Workaround for gcc-11.4/draft 2x spec flaw by @ChrisDodd in #4679
- irgen: Generate explicit instantiations by @ChrisDodd in #4681
Changes to the Control Plane
- Add support for new platform property annotations for P4Runtime. by @jonathan-dilorenzo in #4611
Changes to the eBPF Back Ends
- Fix missing declaration of custom externs in the generated eBPF/uBPF header file. by @fruffy in #4644
Changes to the TC Back End
- Support for Register Extern in P4TC by @komaljai in #4671
- Added changes for default hit actions for tc backend by @Sosutha in #4673
- Fix extern pipeline name in template file by @komaljai in #4675
Changes to the P4Tools Back End
Other Changes
- P4Tc - Change parameter for kfunc 'bpf_p4tc_entry_create_on_miss' by @komaljai in #4637
- Add support for a clang-tidy linter to CMake. Add a files utility function to P4CUtils.cmake. by @fruffy in #4254
- Only emit the warning on EXPORT_COMPILE_COMMANDS when there are clang-tidy files to lint. by @fruffy in #4665
- Aggressively clean up the Protobuf CMake dependency. by @fruffy in #4543
- Remove no-longer-used *.p4info.txt files by @jafingerhut in #4687
- Add a release template to the compiler. by @fruffy in #4692
- Automated Release v1.2.4.12 by @github-actions in #4699
Full Changelog: v1.2.4.11...v1.2.4.12
v1.2.4.11
What's Changed
- Handle Arithmetic operations for fields which are in network order by @komaljai in #4566
- Create CONTRIBUTING.md by @AdarshRawat1 in #4581
- Revert using Abseil system includes. by @fruffy in #4594
- [DOCS][Refactor] Replace direct links with word links by @AdarshRawat1 in #4577
- Fix spurious failure when two tests try to remove
ptf.log
at the same time. by @fruffy in #4591 - Improve & Move "How to contribute" section to Top level readme by @AdarshRawat1 in #4580
- allow disabling of p4 input count check by @grg in #4446
- [Docs] Add Table of Content by @AdarshRawat1 in #4590
- Do not swallow the output when checking for existence of the static binary in the PTF eBPF test. by @fruffy in #4601
- restore missing parentheses by @grg in #4600
- Make the tree cloner also clone Member(TypeNameExpression) to ensure the result is a DAG by @mihaibudiu in #4539
- Update the comment format of common by @sumit7754 in #4602
- Update the DASH programs. by @fruffy in #4593
- Update the Commenting Style in the BMv2 Backend. by @sumit7754 in #4603
- P4TC - kfunc definition changes by @komaljai in #4604
- Fix a warning emerging from a testsuite in GTest on newer versions of Clang. by @fruffy in #4605
- Add option to build with dynamic libc and c++, but static other dependencies; change static option name by @vlstill in #4597
- Add missing include to map.h by @smolkaj in #4607
- Inspector: clear the done flag when revisiting node by @grg in #4608
- [Docs] Improve formatting for consistency by @AdarshRawat1 in #4616
- Miscellaneous cleanups for P4Testgen. by @fruffy in #4613
- Fix missing override in the visitor test compilation unit. by @fruffy in #4621
- Force black to use the pytoml file as configuration. by @fruffy in #4588
- Update the Commenting Style in the DPDK backend by @sumit7754 in #4619
- P4TC - Add permission annotations to tables by @komaljai in #4610
- [Docs] Non-Breaking change of "p4c" to "P4C" by @AdarshRawat1 in #4620
- Use
IR::Annotation::nameAnnotation
everywhere instead of hard-coding@name
annotation name by @kfcripps in #4628 - Ensure we take compiler-provided declaration of posix_memalign by @asl in #4609
- Call PassManager's debug hook even after a failing pass by @vlstill in #4626
- Update ebpf comment format by @sumit7754 in #4624
- [#4614] Unconditionally copy
dpdk
p4include files to the binary directory by @kfcripps in #4615 - [#4625] Prune
MethodCallStatement
s if childMethodCallExpression
resolves to a compile-time constant. by @kfcripps in #4627 - [Docs] capitalize "GCC" acronym in docs and comment by @AdarshRawat1 in #4632
- Update graphs comment formatting. by @sumit7754 in #4630
- P4TC - Emit 'NoAction' in table actions list in template file by @komaljai in #4622
- allow disabling of subtraction transform by @grg in #4633
- Contribute DiagnosticCountInPassHook by @vlstill in #4629
- Update MacOS brew version. by @fruffy in #4642
- Fix: Outdated links by @AdarshRawat1 in #4618
- Rename reused-counter.p4 as reused-counter-bmv2.p4 so a test is created for it by @jafingerhut in #4636
- Add -mbmi flag to Abseil for GCC versions greater than 14. by @fruffy in #4638
- Introduce guard for aarch64 GCC compilation. by @fruffy in #4647
- Automated Release v1.2.4.11 by @github-actions in #4646
Full Changelog: v1.2.4.10...v1.2.4.11
v1.2.4.10
What's Changed
- [P4Testgen] Add a rudimentary P4Testgen benchmark with via GTest. by @fruffy in #4475
- warn on unused controls/parsers by @grg in #4440
- restore underscore after DISABLED in test name by @grg in #4497
- Fix comment typos in frontend.h by @kfcripps in #4498
- [P4Testgen] Make more functions of the P4Tools Z3 API accessible. by @fruffy in #4322
- Move CI Mac and Fedora tests to separate test runs. by @fruffy in #4495
- Replace boost string algorithms with their abseil counterparts by @asl in #4482
- Build P4Testgen on MacOS. by @fruffy in #4492
- Link Bazel badge in the Bazel README section to the actual CI test by @Sanket-0510 in #4505
- HalfOpenRange/ClosedRange classes by @grg in #4496
- Update formatters (clang-format, isort, black) by @fruffy in #4515
- Fix broken MacOS and Ubuntu18.04 runs. by @fruffy in #4517
- [docs] Add Backend to directory structure by @AdarshRawat1 in #4503
- [Docs] Added tools to directory structure by @AdarshRawat1 in #4504
- YAML formatting from Redhead YAML language server. by @fruffy in #4521
- Bump softprops/action-gh-release from 1 to 2 by @dependabot in #4518
- [docs] subdirectories and description for control plane by @Sanket-0510 in #4506
- gc: implement posix_memalign by @ChrisDodd in #4508
- help compiler folding for divideFloor/moduloFloor by @grg in #4512
- Add 4 digit uid to dump file names by @ChrisDodd in #4509
- Allow annotations on functions by @ChrisDodd in #4452
- tc struct fields addition and memory initialization by @Sosutha in #4524
- tc_may_override annotation implementation by @Sosutha in #4529
- Extend parser to allow parentheses in lvalues by @jnfoster in #4530
- Add ninja as a default build system for some runners. by @fruffy in #4491
- Preserve annotations on functions properly by @ChrisDodd in #4532
- [docs] Sync Directory structure of P4tools by @AdarshRawat1 in #4516
- Midend def-use pass by @grg in #4489
- Clean up P4Tools and control-plane linking. by @fruffy in #4520
- [P4Testgen] Fix append and prepend invocation. by @fruffy in #4306
- Remove obsolete
output_to_genfiles = True
. by @tjgq in #4541 - [documentation] Add hyperlinks to the actual directory in the README file. by @AdarshRawat1 in #4531
- Bump softprops/action-gh-release from 1 to 2 by @dependabot in #4545
- Use Abseil system includes by @fruffy in #4511
- Add policy controlling RemoveUnusedDeclarations by @ChrisDodd in #4528
- Fix a warning on missing override in def use class. by @fruffy-g in #4547
- Move the network hashes implementation from Bmv2 testgen to lib/ by @vlstill in #4526
- Allow constructing an IR::ID from a std::string by @ChrisDodd in #4549
- P4TC - Support add_on_miss, add entry externs by @komaljai in #4522
- Bump black from 24.2.0 to 24.3.0 by @dependabot in #4551
- Add 2 more CRC checksum variants to lib/nethash by @vlstill in #4550
- Refactor Util::Enumerator by @asl in #4513
- Corrected version in README.md by @sumit7754 in #4555
- Implict cast fix by @ChrisDodd in #4399
- Add width to parameters of entries in template file. by @komaljai in #4557
- Support new ActionProfile annotations for P4Runtime. by @jonathan-dilorenzo in #4533
- [P4Testgen] Clean up the direct extern map implementation for BMv2. by @fruffy-g in #4546
- Suppress Abseil warnings. by @fruffy in #4556
- [P4Testgen] Add a missing nullopt check. by @fruffy-g in #4560
- Add p4tc_filter_fields in add_entry by @komaljai in #4559
- Added default action code for tc backend by @Sosutha in #4561
- Fix missing Bazel dependency and move deprecation notice to right location by @fruffy-g in #4564
- Fix broken Debian CI test badge in the README. Add Fedora and MacOS CI badge. by @Abhinavcode13 in #4569
- Fix Resource links in Doxygen documentation. by @AdarshRawat1 in #4565
- Update rules_boost which pulled in the compromised xz dependency. by @fruffy in #4584
- [docs] Add Comment Style Guide by @AdarshRawat1 in #4573
- doc: backends: Add Doxygen-style documentation for BMV2 JSONObjects by @thrilseekr in #4554
- Automated Release v1.2.4.10 by @github-actions in #4587
New Contributors
- @Sanket-0510 made their first contribution in #4505
- @tjgq made their first contribution in #4541
- @Abhinavcode13 made their first contribution in #4569
- @thrilseekr made their first contribution in #4554
Full Changelog: v1.2.4.9...v1.2.4.10
v1.2.4.9
What's Changed
- Allow one more round of type inference after specialization by @mihaibudiu in #4291
- Try to fix Github actions syntax. by @fruffy in #4394
- backends/tc: Honour P4TEST_REPLACE environment variable like other backends by @thomascalvert-xlnx in #4395
- backends/ebpf: Track header offset in bytes rather than bits. by @thomascalvert-xlnx in #4327
- [P4Testgen] Hotfixes and improvements to the P4Constraints parsers. by @fruffy in #4387
- Fixes from static analysis by @vlstill in #4391
- Rename eBPF section names for tc backend by @vbnogueira in #4361
- [#4365] Do not allow
--Wdisable
or--Wwarn
to demote errors. Allow--Winfo=diagnostic
to work fordiagnostic
s that can be both warnings and errors. by @kfcripps in #4366 - Dpdk backend:Explicitly use method toString() while moving isValid() Methodcall used as table key, to metadata. by @usha1830 in #4383
- [P4Testgen] Fix failing P4Testgen gtest. by @fruffy in #4397
- [P4Testgen] Use P4Runtime in the protobuf test back end. by @fruffy in #4303
- Improve diagnostics for
MethodCallExpression
by @kfcripps in #4354 - [P4Testgen] Fix generation of specific fields in the Protobuf-IR test backend. by @fruffy-g in #4400
- Implement copy assignment operator for hvec_map by @asl in #4388
- [P4Testgen] Introduce a configuration structure for the test back ends. by @fruffy in #4372
- [P4Testgen] Add a silent mode to P4Tools. Add performance counting at the top level. by @fruffy in #4369
- [P4Testgen] Add an option to override the test name. by @fruffy in #4401
- Do not check for shadowing repeatedly in inlining passes. by @kfcripps in #4396
- [P4Testgen] Stop when an error is throwing in the P4Runtime serializer. Make stop-on-error explicit in the Midend class. by @fruffy in #4408
- Memoize & improve name lookup in
ResolveReferences
by @kfcripps in #4376 - Add buildifier to Bazel workspace and run it on the bazel build files. by @fruffy in #4413
- Implement lightweight RTTI for (not only) IR::Node class hierarchies by @asl in #4377
- [P4Testgen] Add a test case generation API to P4Testgen. by @fruffy in #4374
- Introduce a frontend policy as a customization point for frontend by @vlstill in #4406
- Emit a reasonable error if someone uses type in place where expression is exprected by @vlstill in #4411
- Add IR utility that helps with return of multiple statements from Transform by @vlstill in #4414
- test for ContantFolding + policy by @grg in #4421
- gtest include: quotes -> angled brackets by @grg in #4422
- frontend policy fix: missed ConstantFolding instance by @grg in #4423
- [P4Testgen] Look up the alias in the P4Info instead of using the fully-qualified control plane name for Protobuf IR tests. by @fruffy-g in #4425
- [P4Testgen] Add an option to only generate tests with dropped packets. by @fruffy in #4416
- Add a missing build rule to P4Testgen's bazel build. by @fruffy-g in #4429
- [P4Testgen] Basic support for
@p4runtime_translation
and@p4runtime_translation_mappings
. by @fruffy-g in #4363 - Pass FrontEndPolicy to unit tests by @vlstill in #4433
- allow json output format to be modified by @grg in #4407
- Provide better hash functions and boilerplate by @asl in #4424
- Error casting bool const to other than bit<1> by @ChrisDodd in #4419
- Don't apply defaultArguments in table action lists by @ChrisDodd in #4434
- -lldb arg run run lldb on the compiler in tests by @ChrisDodd in #4435
- Fix Python linters and clean up run-bmv2-ptf-test.py, testutils, and ebpfenv by @fruffy in #4437
- [P4Testgen] Move seed logging to toplevel. by @fruffy in #4436
- add missing srcInfo to ParserState by @grg in #4438
- Avoid to-after-is double calls to RTTI in the type checker by @vlstill in #4441
- P4TC - CRC32 Initialisation by @komaljai in #4427
- Change minimum key struct alignment to 8 by @vbnogueira in #4426
- Fix comment by @kfcripps in #4449
- Create a dependabot.yml for Github actions by @fruffy in #4405
- Refactor some visitor internals by @asl in #4447
- Bump docker/login-action from 2 to 3 by @dependabot in #4453
- Bump peter-evans/create-pull-request from 5 to 6 by @dependabot in #4454
- Bump docker/setup-buildx-action from 2 to 3 by @dependabot in #4455
- Bump actions/cache from 2 to 4 by @dependabot in #4456
- Bump actions/checkout from 3 to 4 by @dependabot in #4457
- Refactor ReferenceResolver to use native C++-enumerators in some places by @asl in #4432
- Add merge group label to relevant CI runs. by @fruffy in #4462
- [P4Testgen] Add more API options to the P4Testgen api. by @fruffy-g in #4451
- [P4Testgen] Handle value suffixes in the asserts parser. by @fruffy-g in #4450
- Remove some unused boost headers and switch from boost code to alternatives by @asl in #4464
- Fix hvec_map insert/emplace by @ChrisDodd in #4458
- Bump actions/setup-python from 4 to 5 by @dependabot in #4466
- Bump docker/build-push-action from 3 to 5 by @dependabot in #4467
- Add support for parser errors in tc backend by @vbnogueira in #4443
- Add some more global operator new / delete overrides by @asl in #4465
- Try to speed up the CI build process by @fruffy in #4470
- Bump protobuf version and add Abseil as compiler dependency. by @asl in #4463
- Dowload pre-built Z3 on Macs as well by @asl in #4476
- [P4Testgen] Implement a library for common control-plane symbolic variables. by @fruffy in #4398
- Use better maps to store visitor state by @asl in #4459
- Try to clean up the Protobuf includes. by @fruffy in #4474
- Fix for pipeline id for tc backend by @Sosutha in #4480
- Fix for default_action in tc backend by @Sosutha in #4485
- backends/tc: Fix issues reported in #4327 by @thomascalvert-xlnx in #4484
- [P4Testgen] Add an option to selectively ignore control plane elements. by @fruffy in #4417
- Update MacOS runner to Ventura, add MacOS Sonoma (M1) runner by @fruffy in #4393
- Add missing Bazel targets. by @fruffy-g in #4486
- Fixes from static analysis by @vlstill in #4442
- Distinguish runner OS. by @fruffy-g in #4487
- Generalize get in map utils by @asl in #4483
- Fetch latest brew formulae by @asl in #4488
- Use abseil maps even more by @asl in #4473
- Move out of place comment in gc.cpp by @kfcripps in #4494
- Automated Release v1.2.4.9 by @github-actions in #4490
Full Changelog: v1.2.4.8...v1.2.4.9