Skip to content

Releases: p4lang/p4c

v1.2.5.0

13 Nov 04:53
65b4daa
Compare
Choose a tag to compare

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

Changes to the P4Tools Back End

  • [P4Testgen] Replace absl::btree_map with the P4::flat_map implementation by @fruffy in #4713

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

02 Nov 21:28
fe82ab9
Compare
Choose a tag to compare

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

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

  • Clean up BMv2's run-stf-test script and integrate it with testutils by @fruffy in #4981

Changes to the TC Back End

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

02 Oct 00:38
520b792
Compare
Choose a tag to compare

What's Changed

Breaking Changes 🛠

  • Allow extending ToP4, clean its constructors by @vlstill in #4899

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::Paths inside of IR::ParserState contexts in MoveInitializers 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

  • Added "inst_type" field in introspection.json. by @komaljai in #4905

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

04 Sep 08:36
c0f6e2e
Compare
Choose a tag to compare

What's Changed

Breaking Changes 🛠

P4 Specification Implementation

  • Allow concatenation of string literals at compile time by @vlstill in #4856

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

  • Set the initial default action for tables when generating a P4Info. by @fruffy in #4773

Changes to the BMv2 Back Ends

Changes to the TC Back End

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

Full Changelog: v1.2.4.14...v1.2.4.15

v1.2.4.14

02 Aug 08:45
7104eb3
Compare
Choose a tag to compare

What's Changed

Breaking Changes 🛠

P4 Specification Implementation

  • Forbid case-after-default, tweak error messages by @vlstill in #4831

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< when parent is nullptr 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 LocationSets to program locations (loc_t) instead of IR::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

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

New Contributors

Full Changelog: v1.2.4.13...v1.2.4.14

v1.2.4.13

01 Jul 22:36
061cb5a
Compare
Choose a tag to compare

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 action out args by @kfcripps in #4762
  • Delete unused RemoveComplexExpressions pass. by @fruffy in #4771

Changes to the TC Back End

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

New Contributors

Full Changelog: v1.2.4.12...v1.2.4.13

v1.2.4.12

01 Jun 16:55
b94e80c
Compare
Choose a tag to compare

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 all IR::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

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

Changes to the P4Tools Back End

  • Merge TestgenCompilerTarget into TestgenTarget. by @fruffy in #4650

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

02 May 17:13
5a7eeee
Compare
Choose a tag to compare

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 MethodCallStatements if child MethodCallExpression 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

01 Apr 19:55
0654810
Compare
Choose a tag to compare

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

Full Changelog: v1.2.4.9...v1.2.4.10

v1.2.4.9

02 Mar 16:47
255b005
Compare
Choose a tag to compare

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 for diagnostics 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