Skip to content

Releases: p4lang/p4c

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

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