Skip to content

Releases: p4lang/p4c

v1.2.3.5

01 Jan 16:50
59d3d45
Compare
Choose a tag to compare

What's Changed

  • Disallow Type_Control as a tuple argument by @mbudiu-vmw in #3753
  • Clean up the includes in the IR folder by @fruffy in #3701
  • Raise minimum required CMake version to Ubuntu 18.04 version. by @fruffy in #3745
  • PSA/ebpf backend: add support for generating programs for XDP hook by @tatry in #3752
  • Check that value sets have a constant constructor argument by @mbudiu-vmw in #3754
  • Testgen: Switch cases can fall through. by @fruffy-bfn in #3756
  • Refactor add_cpplint_files and add_clang_format files to support downstream projects, large file numbers. by @fruffy-bfn in #3762
  • Dpdk Backend: Fix non-consecutive table keys for add_on_miss table by @usha1830 in #3763
  • Apply clang-format to ir and lib files. by @fruffy in #3759
  • Add missing semicolon at end of Bison rule in p4parser.ypp by @jafingerhut in #3764
  • Ignore formatting PR from blame. by @fruffy in #3766
  • Fixed missing invocation of Address Sanitizer by @davidbolvansky in #3735
  • Dpdk Backend: Fix action selector and action profile to apply the group/member tables only on base table hit by @usha1830 in #3758
  • Check whether a test back end has been provided. by @fruffy-bfn in #3777
  • Remove backends from CMake include paths. by @fruffy in #3769
  • Fix non-contiguous table keys for learner and exact match tables by @usha1830 in #3780
  • Option to produce tests exclusively with output packets by @hannelita in #3783
  • Run MacOS tests in correct directory. by @fruffy in #3718
  • eBPF/PSA: add support for parser input metadata by @tatry in #3778
  • Run build and tests directly on Ubuntu 20.04, 22.04 without docker by @davidbolvansky in #3770
  • Fix container build by @davidbolvansky in #3786
  • Generate warning when 0 tests are produced by @hannelita in #3784
  • Build (only) container images for new PRs by @davidbolvansky in #3788
  • ci: update actions by @rst0git in #3789
  • Fix bazel version to 5.4.0 by @smolkaj in #3796
  • Remove execute permissions from nonexecutable files. by @fruffy in #3791
  • Use https with opensuse repositories by @rst0git in #3797
  • ebpf/PSA: improve support for wide fields by @tatry in #3790
  • Forbid generic externs for in parameter values by @mbudiu-vmw in #3793
  • Dpdk backend: Always emit the action selector constants in hex by @usha1830 in #3800
  • Constant-fold isValid calls when possible by @mbudiu-vmw in #3794
  • ebpf/PSA: Checksum support for fields wider than 64 bits by @tatry in #3801
  • Use big_int for match_t so can match wider that 64 bits by @ChrisDodd in #3809

Full Changelog: v1.2.3.4...v1.2.3.5

v1.2.3.4

02 Dec 10:27
d0056fc
Compare
Choose a tag to compare

What's Changed

  • Allow implicit casts in switch labels; improve error message by @mbudiu-vmw in #3634
  • Handle correctly general switch statements when simplifying by @mbudiu-vmw in #3624
  • Fix and improve ordered_map & ordered_set by @vlstill in #3577
  • PSA/eBPF: retrieve interface numbers from OS in PTF tests by @osinstom in #3659
  • Check if 'match_kind.exact' is defined when expanding switch statements by @mbudiu-vmw in #3654
  • Tighten checks for NoAction by @mbudiu-vmw in #3651
  • Clone empty blocks before def-use analysis by @mbudiu-vmw in #3653
  • Do not allow action invocations with type arguments by @mbudiu-vmw in #3661
  • 'size' is always a legal table property by @mbudiu-vmw in #3662
  • DPDK Backend: Direct counter and direct meter support by @usha1830 in #3631
  • Remove useless grammar rule by @mbudiu-vmw in #3664
  • Dpdk backend: Use vector to populate checksum struct by @usha1830 in #3668
  • Make RemoveUnusedDeclarations constructor protected. by @fruffy in #3670
  • DPDK Backend : Minor fixes by @usha1830 in #3674
  • Build DCG if pattern flag was enabled by @VolodymyrPeschanenkoIntel in #3673
  • Migrate P4Testgen tooling to core P4C (IWYU, clang-format, cpplint, clang-tidy, git hooks) by @fruffy in #3663
  • Dpdk backend: Initialize drop metadata to 1 as per PSA specification by @usha1830 in #3681
  • Rename psabpf repository into NIKSS by @tatry in #3677
  • Fix cpplint CMake check. by @fruffy in #3684
  • Update PSA include files to match recent changes in version from PSA spec by @jafingerhut in #3618
  • Add a p4-constraints and @refers_to parser to P4Tools. by @OleksandrLetychevskyiIntel in #3568
  • Experimental: literal for invalid header by @mbudiu-vmw in #3667
  • Dpdk backend: Fix dpdk test infrastructure to enable comparison of error output by @usha1830 in #3680
  • Insert casts in action call arguments by @mbudiu-vmw in #3675
  • Fix tmpMask alignment by @kamleshbhalui in #3687
  • create dpdk specific pna.p4 and extend it by @kamleshbhalui in #3658
  • PSA/eBPF: use slice-by-8 algorithm for CRC-32 by @majchwo in #3688
  • Enable permissive by default. by @fruffy in #3690
  • Correctly infer argument types for constructor calls by @mbudiu-vmw in #3686
  • Migrate away from deprecated Bazel option by @smolkaj in #3698
  • Add a dedicated target for cpplint, if no files are set. by @fruffy in #3697
  • Fix name shortening by @kamleshbhalui in #3692
  • Cleanup warnings produced by Clang by @davidbolvansky in #3693
  • Enforce clang-format on the entire code base. by @fruffy in #3679
  • Support for list types and literals by @mbudiu-vmw in #3520
  • Alternate strength reduction and constant folding to eliminate constants by @mbudiu-vmw in #3706
  • Add ignore revs file for clang-format PR. by @fruffy in #3712
  • Linter usability improvements. by @fruffy in #3709
  • Add PINS examples to test suite. by @fruffy in #3694
  • Dags needs to be revisited when renaming metadata by @mbudiu-vmw in #3713
  • Run IWYU on P4Tools. by @fruffy in #3678
  • Do not allow type arguments that are generic if they are not specialized by @mbudiu-vmw in #3714
  • Try to avoid gcc-specific include headers for IWYU. by @fruffy in #3717
  • P4Tools: Implement default action override for BMv2 STF. by @fruffy in #3685
  • P4Tools: Unify packet sizing options. by @fruffy in #3695
  • Restructure P4Tools to easily add new modules. by @fruffy in #3646
  • PSA/eBPF: Enable passing packets up to the kernel stack by @osinstom in #3691
  • P4Testgen: Fix off-by-one bug in taint checking for slices by @vhavel in #3722
  • Fix advance condition calculation. by @fruffy in #3721
  • Fix bug caused by uninitialized variable in typechecker by @mbudiu-vmw in #3720
  • Off by one warning error in constant-folding for large shifts by @mbudiu-vmw in #3715
  • Arithmetic and bitwise operations are typechecked the same way by @mbudiu-vmw in #3716
  • Method calls in the actions list must invoke actions by @mbudiu-vmw in #3728
  • Defensive programming suggested by static analysis - check iterator bound by @mbudiu-vmw in #3725
  • Enable auto var initialization with pattern in Clang CI build by @davidbolvansky in #3729
  • Emit table config by @kamleshbhalui in #3710
  • Remove unused files in p4_16_samples_outputs directory by @jafingerhut in #3733
  • Expand google.protobuf.Any when emit p4info in text format by @psivanup in #3731
  • Fixed issues found by static analysis by @MichalKekely in #3732
  • Small clang-format and P4Tools README fixes. by @fruffy in #3736
  • Move some P4Tool compiler passes to the midend folder. by @fruffy in #3726
  • Dpdk Backend: Register extern support for bfrt.json by @usha1830 in #3723
  • Try to merge copyHeaders into copyStructures. by @fruffy in #3739
  • Unroll finite loops in the programs with infinite ones by @VolodymyrPeschanenkoIntel in #3689
  • eBPF/PSA: Implement caching for ActionSelector, LPM and ternary tables by @tatry in #3738
  • List contributors to P4Tools backend by @jnfoster in #3742
  • Propagate def files upwards in the correct order from extensions/modules by @fruffy-bfn in #3744
  • Automated Release v1.2.3.4 by @github-actions in #3747

New Contributors

Full Changelog: v1.2.3.3...v1.2.3.4

v1.2.3.3

02 Nov 16:29
8a7e71d
Compare
Choose a tag to compare

What's Changed

  • Add note to DPDK README that PSA egress is not implemented by @jafingerhut in #3525
  • New class ICastable; new type constraint added by @mbudiu-vmw in #3542
  • Change warrning messages in ParserUnroll by @VolodymyrPeschanenkoLitSoft in #3548
  • PSA/ebpf backed: update psabpf-ctl to the latest version by @tatry in #3539
  • BMv2: fix hashing non-tuple causing segfault by @Trigary in #3465
  • Entries can be implicitly cast to the key type by @mbudiu-vmw in #3551
  • Use prefixedNonTypeName to simplify the expression production in parser by @qobilidop in #3553
  • Switch to C++17 standard by @davidbolvansky in #3547
  • fixed spelling in CMakelists.txt in 2 different lines by @bagohart in #3554
  • Fixing bug for ParserUnroll application to a p4 program with a header union by @VolodymyrPeschanenkoIntel in #3121
  • Contribute the P4Tools platform and P4Testgen by @fruffy-bfn in #3495
  • add ICastable interface to Backtrack::trigger by @mvido in #3561
  • Update gitmodule to fix cloning with https by @usha1830 in #3562
  • Several small compilation fixes for P4Tools. by @fruffy-bfn in #3558
  • Switch to macOS 11 by @davidbolvansky in #3556
  • Merge P4Tools cpplint with P4C cpplint. by @fruffy-bfn in #3564
  • More fixes to the P4Tools repository. by @fruffy-bfn in #3565
  • Add CODEOWNERS file for P4Tools. by @fruffy-bfn in #3567
  • Introduce cmake option to enable -Werror; use it for CI/docker builds by @davidbolvansky in #3555
  • Reachability feature by @VolodymyrPeschanenkoLitSoft in #3569
  • Dpdk Backend: Fix shift overlimit error for valid bit slicing operation by @usha1830 in #3578
  • made "errorCount", "warningCount", and "maxErrorCount" [all "unsigned int"] be "protected" rather than "private" in "class ErrorReporter" in "error_reporter.h" by @Abe149 in #3582
  • Dpdk backend: Support for large keysize >64 bytes with additional restrictions by @usha1830 in #3580
  • Fix taint analysis that was too conservative. by @fruffy in #3583
  • [p4Tools and p4Testgen] New exploration strategy for test generation by @hannelita in #3566
  • Implement the eBPF extension for P4Tools' P4Testgen by @fruffy in #3510
  • Remove header field size constraints, now by @kamleshbhalui in #3579
  • Tables cannot be compared by @mbudiu-vmw in #3590
  • Remove expected output for non-existent action_param_serenum.p4 test program by @jafingerhut in #3596
  • Remove unused expected output file by @jafingerhut in #3597
  • Remove unused expected output file by @jafingerhut in #3598
  • Add missing P4 test program issue2495-bmv2.p4 by @jafingerhut in #3599
  • Add missing test program fwd-bmv2-psa.p4 by @jafingerhut in #3604
  • Add missing test program precedence-lt.p4 by @jafingerhut in #3603
  • Remove unused expected output files key_ebpf-issue-1020*.p4 by @jafingerhut in #3602
  • Remove obsolete expected output files issue1409*.p4 by @jafingerhut in #3601
  • Add missing select-struct.p4 test program to p4_16_samples directory by @jafingerhut in #3600
  • Disable libcall optimizations for wrappers of memory allocation functions by @davidbolvansky in #3586
  • Run def-use analysis again after inlining by @mbudiu-vmw in #3591
  • Fix extra toP4 whitespace by @fruffy in #3606
  • Remove unncessary v1model include in P4 test programs - fix up programs that use v1model externs. by @fruffy in #3608
  • CI: added build with clang by @davidbolvansky in #3607
  • Remove unused expected output files -- their test programs were renamed by @jafingerhut in #3621
  • Allow serenum members initializers refer to other serenum members by @mbudiu-vmw in #3617
  • Dpdk Backend: Minor changes to add error check for mask operands and adding optional match kind to pna.p4 by @usha1830 in #3588
  • switch labels must be path expressions by @mbudiu-vmw in #3615
  • Clean up two desynced tests. by @fruffy in #3605
  • Fix typo in test program for reachability tests. by @fruffy in #3628
  • Remove GMP support. by @fruffy in #3485
  • An action profile implementation for v1model protobuf. by @fruffy in #3626
  • Do not constant fold mux before it has been typechecked by @mbudiu-vmw in #3633
  • Rename .stf file to match corresponding default_action_ubpf.p4 file by @jafingerhut in #3638
  • Update comments in issue2201-bmv2.p4 to match current behavior by @jafingerhut in #3637
  • Fix PTF eBPF weekly CI job by @osinstom in #3642
  • Modify test script running PTF tests for PSA/eBPF by @osinstom in #3643
  • Add more code owners to tools back end. by @fruffy in #3629
  • Migrate some P4Testgen utilities to lib folder. by @fruffy in #3630
  • Dpdk backend: Update hex constants to use uppercase by @usha1830 in #3645
  • Tighten p4c for add-on-miss by @hesingh in #3614
  • Fix incorrect tests : totalLen field of ipv4 header, action name in add_entry call by @usha1830 in #3647
  • Reachability Engine for P4Tools by @VolodymyrPeschanenkoIntel in #3609
  • Fix compilation issues after reachability merge by @fruffy in #3649
  • CI: add sanitizers by @davidbolvansky in #3625
  • Automated Release v1.2.3.3 by @github-actions in #3648

New Contributors

Full Changelog: v1.2.3.2...v1.2.3.3

v1.2.3.2

01 Oct 18:53
76b22fd
Compare
Choose a tag to compare
Release v1.2.3.2 (#3546)

Changelog:
- Run PTF tests under different kernel versions (3535) [Jan Palimąka]
- add set_member_id in action list for action selector (3540) [Usha Gupta]
- Dpdk backend: Flatten header union into individual fields (3524) [Usha Gupta]
- Set C++ standard only if it is not set at parent scope (3541) [Vladimír Štill]
- Fixing bug in ParserUnroll for infinite loops without header stacks  (3538) [VolodymyrPeschanenkoLitSoft]
- remove unused lib/alloc.h [Chris Dodd]
- Constant-fold static_assert calls (3533) [Mihai Budiu]
- Dpdk Backend: Update default timeout values for learner table entries (3530) [Usha Gupta]
- Since dpdk now Support large struct fields(more than 64 bits) as key (3528) [Kamlesh Kumar]
- Fix hdr align (3521) [Kamlesh Kumar]
- Forbid use of .lastIndex outside of parsers (3523) [Mihai Budiu]
- Fixing bug in parserUnroll (3503) [VolodymyrPeschanenkoLitSoft]
- Fix: prevent copy elimination for statement which does not support constant values (3512) [Kamlesh Kumar]
- Fixes related to type and function specialization (3458) [Mihai Budiu]
- Prototype implementation of static_assert (3196) [Mihai Budiu]
- Silence -Warray-bounds for generated code for protobuf (3515) [Dávid Bolvanský]
- cmake: Fixed multi line comment (3513) [Dávid Bolvanský]
- Add new option to build p4c with LTO (3470) [Dávid Bolvanský]
- Load table action from json without 'name' field for BMV2 (3435) [VolodymyrPeschanenkoIntel]
- Add null check for default action property (3500) [Usha Gupta]

Co-authored-by: rst0git <rst0git@users.noreply.github.com>

v1.2.3.1

01 Sep 15:26
8e6a547
Compare
Choose a tag to compare
Release v1.2.3.1 (#3505)

Changelog:
- Update protobuf installation instructions link (3501) [Bili Dong]
- Handle table.apply().hit correctly in ubpf backend (3498) [Mihai Budiu]
- fixing bug for loop with one parser state only (3492) [VolodymyrPeschanenkoIntel]
- Update README.md (3497) [Sean M. Collins]
- Dpdk Backend: Fix support for non-zero action arguments for default action in a table using action selector (3496) [Usha Gupta]
- Fix action param processing (3493) [Usha Gupta]
- Fix incorrect CFG generated for BMV2 backend for switch statements (3490) [Mihai Budiu]
- Fix bug related to varbits width (3487) [Mihai Budiu]
- Delete keys that are empty tuples (3489) [Mihai Budiu]
- Support GCC-style options for writing dependencies to a file. (3484) [Ben Pfaff]
- Support inverted ranges (3482) [Mihai Budiu]
- Improve generation of unique strings (3350) [Dávid Bolvanský]
- missing return [Chris Dodd]
- Dpdk Backend: Allow non-constant arguments to mirror_packet extern (3473) [Usha Gupta]
- Log/IndentCtl sanity/cleanup [Chris Dodd]
- readme: Update supported Ubuntu versions (3476) [Radostin Stoyanov]
- Fix ir_frontend_midend_control_plane build target (3475) [Ali Kheradmand]
- Remove GMP dependency from BUILD.bazel (3474) [Ali Kheradmand]
- Dpdk backend: optional and range match kinds translate to wildcard match for dpdk (3472) [Usha Gupta]

v1.2.3.0

02 Aug 15:30
1576090
Compare
Choose a tag to compare
Release v1.2.3.0 (#3466)

Changelog:
- Add a compiler pass that adds missing IDs to control plane objects. (3455) [fruffy]
- Forbid packages, controls, etc as tuple fields (3461) [Mihai Budiu]
- Do not allow constructor calls of externs with abstract methods (3460) [Mihai Budiu]
- Fix include headers for lib/stringify.h (3457) [Mihai Budiu]
- Use Type_Dontcare for _ expressions in table entries (3444) [Mihai Budiu]
- pft-ebpf tests: update psabpf to fix tests (3456) [Jan Palimąka]
- Fix Missing metadata for temporary variables added for Mask operation (3452) [Usha Gupta]
- DPDK Backend: Add support for tdi.json (3440) [Usha Gupta]
- P4C-DPDK - Incorrect constant value when there is a substract operation involved with a constant (3411) [github-sajan]
- Fixed build with older bison on Ubuntu 18 (3454) [Dávid Bolvanský]
- Add bazel support for p4c-dpdk compiler (3441) [Zhang Liu]
- initial commit (3447) [VolodymyrPeschanenkoIntel]
- Values with type int are legal constants (3446) [Vojtěch Havel]
- Fixed usage of yyFlexLexer with multiple parsers (3445) [Dávid Bolvanský]
- Prevent crash caused by incorrect error message (3443) [Mihai Budiu]
- ordered_set: operator<: Fix for a case of strict inclusion. (3431) [DoctorNoobingstoneIPresume]
- DPDK Backend: Avoid compiler crash by handling possible types of length argument in packet extract for header containing varbit field (3439) [Usha Gupta]
- DPDK Backend: Emit name information for externs in context json (3433) [Usha Gupta]
- [dpdk] shorten label names and header instance type (3436) [Kamlesh Kumar]
- remove debug info (3438) [VolodymyrPeschanenkoIntel]
- Added new P4C option (3425) [OleksandrLetychevskyiIntel]
- Avoid crash in ebpf backend by checking expected IR node kinds (3427) [Mihai Budiu]
- remove unused include (3428) [Vojtěch Havel]
- Do not remove externs which are defined not in system files. (3424) [VolodymyrPeschanenkoIntel]
- Implement Copy Elimination for dpdk backend (3406) [Kamlesh Kumar]
- save annotations after parser unroll (3422) [VolodymyrPeschanenkoIntel]
- Handle constant folding for tuple/list constants (3421) [Mihai Budiu]
- loop unrolling: Use type of original expression (3420) [Mihai Budiu]

Co-authored-by: rst0git <rst0git@users.noreply.github.com>

v1.2.2.3

02 Jul 05:57
e350bc3
Compare
Choose a tag to compare
Release v1.2.2.3 (#3418)

Changelog:
- Only crash if the error count exceeds the maximum (3413) [Andrew Kvapil]
- Use a helper to to define the cpp toolchain type (3416) [John Cater]
- Fix incorrect overload resolution for specialized (package) types (3412) [Mihai Budiu]
- Always prepend local gtest include paths (3414) [Anton Korobeynikov]
- Add support of path expressions for a header stack inside parserUnroll (3405) [VolodymyrPeschanenkoIntel]
- Values with type int are legal constants (3408) [Mihai Budiu]
- collects decls from parser and control block (3392) [Kamlesh Kumar]
- Update BUILD.bazel to remove constat patterns from glob (3397) [Zhang Liu]
- Remove apply() calls to redundant parsers (3356) [Brian Leibig]
- psabpf-ctl: update action-selector CLI - rename commands (3404) [Jan Palimąka]
- Fix incorrect copy propagation into table match keys (3399) [Vojtěch Havel]
- Solving problems with HeaderUnion (3342) [OleksandrLetychevskyiIntel]
- Update rules that require a cpp toolchain to use a helper function that defines the toolchain type. (3401) [John Cater]
- Improve the way we wait for commands in driver (3398) [Vladimír Štill]
- Fixing parserUnroll bug for sequential next operator usage (3193) [VolodymyrPeschanenkoIntel]
- Fix missing key initialization when header/metadata fields used as table keys are copied in new metadata fields (3395) [Usha Gupta]
- actionSynthesis: add original source info to synthesized actions (3396) [Matej Vido]
- Use width_bits() instead of size for constantFolding. (3400) [fruffy]
- BUILD_USE_COLOR=OFF disables colors for the C++ compiler (3389) [Dávid Bolvanský]
- Make bitvec helpers available as global, don't polute top-level namespace (3393) [Vladimír Štill]
- Bring commonly used builtin options under lib directory (3381) [Kamlesh Kumar]
- Update reference outputs (3388) [Usha Gupta]
- Dpdk Backend: Enable header stack dynamic index elimination (3375) [Usha Gupta]
- Add metadata fields uses as Member Expression (3387) [Kamlesh Kumar]
- Enable Automated Releases (3386) [Radostin Stoyanov]
- DPDK Backend: Fix action name used in learn instruction, minor fix in context json (3385) [Usha Gupta]
- Fixing bug in HSIndexSimplifier path (3382) [VolodymyrPeschanenkoIntel]
- PSA-eBPF PTF tests: update psabpf to the latest version (3383) [Jan Palimąka]
- Dpdk backend: Add target_name field for tables to context json.  (3380) [Usha Gupta]
- Fixed comparison between two Type_Bits (3377) [Michal Kekely]
- accept PSA_MeterColor_t in action parameter (3365) [Kamlesh Kumar]
- Type unification should always use the canonical type (3370) [Mihai Budiu]
- Dpdk backend: Minor changes in context json and learner table timeout values. Supercedes PR 3369 (3372) [Usha Gupta]
- P4C-DPDK : Add support for Hash extern (3368) [github-sajan]
- Add types for tables keys after switchElimination (3064) [VolodymyrPeschanenkoIntel]
- Do not allow variables with type Type_Parser/Control (3361) [Mihai Budiu]
- Remove unused variables in psa/ebpf backend (3362) [Mihai Budiu]
- String utility functions (3366) [Mihai Budiu]
- crash.cpp: Register names fixed for building under Cygwin. (3296) [DoctorNoobingstoneIPresume]
- Added nullptr check into graphs backend (3367) [Michal Kekely]
- Add old parser state in loopsUnroll if ExpressionEvaluator returns a error (3150) [VolodymyrPeschanenkoIntel]
- Use 0 as default PSA_PORT_RECIRCULATE value (3360) [Mateusz Kossakowski]
- Add support for ternary const entries (3347) [Mateusz Kossakowski]
- Improve error message when select types do not match (3352) [Mihai Budiu]
- Do not crash if constant width is 0 (3358) [Mihai Budiu]
- Allow value sets as labels when select() is done on a constant (3353) [Mihai Budiu]
- Allow unification between serenum and underlying type (3341) [Mihai Budiu]
- Allow shifts with serenums on the RHS (3355) [Mihai Budiu]
- Unification of generic types can reduce to unification of Type_Name (3354) [Mihai Budiu]
- Fixed start state renaming for p4-14 translation using @packet_entry (3348) [Michal Kekely]
- Validate value_set element types (3351) [Mihai Budiu]
- Do not generate TC Egress program if PSA Egress pipeline is empty (3349) [Tomasz Osiński]
- Improve error message when validating select expressions (3340) [Mihai Budiu]
- Require a start state in parsers (3339) [Mihai Budiu]
- Use psabpf-ctl register command in PTF tests (3337) [Mateusz Kossakowski]
- Dpdk:  Fix missing initialization for table properties for add_on_miss tables in context json (3334) [Usha Gupta]
- Do not specialize functions when arguments are type variables (3328) [Mihai Budiu]
- Add generic structs to P4Runtime digest example (3332) [Antonin Bas]
- Fix control-plane generation for headers containing structs (3331) [Mihai Budiu]
- Check that parameter default values are compile-time known (3330) [Mihai Budiu]
- Fix handling of keys without name annotation in graphs (3327) [Vladimír Štill]
- [dpdk]  Fix calculation of direction from input port (3326) [Kamlesh Kumar]
- DPDK Backend: Connection tracking support (3290) [Usha Gupta]
- Update PSA-eBPF documentation (3320) [Tomasz Osiński]
- Expand 'emit' calls in the ebpf backend (3323) [Mihai Budiu]
- Fix warnings generated by XDP helper program (3322) [Tomasz Osiński]
- Fixes for Graph generation for switch(t.apply().action_run) (3314) [Michal Kekely]
- Allow shifts with constant signed positive amounts (3303) [Mihai Budiu]
- Correctly handle don't care named arguments  (3278) [Mihai Budiu]
- Avoid dereferencing nullptr in GetStackItemRef::baseRef (3315) [Vladimír Štill]
- Not all returns in parsers are disallowed (3309) [Mihai Budiu]
- Do not allow structure have specialized parsers as type arguments (3310) [Mihai Budiu]
- Fixing bug for concat elimination in SimpleSwitch (3300) [VolodymyrPeschanenkoIntel]
- Require generic return types to be specialized (3302) [Mihai Budiu]
- p4test does not support switch statements in actions (3301) [Mihai Budiu]
- Forbid instantiations in functions or methods (3279) [Mihai Budiu]
- Forbid methods to return int or string (3280) [Mihai Budiu]
- Emit table apply for switch expression with action_run (3284) [Usha Gupta]
- Test for isValid as a header field (3275) [Mihai Budiu]
- Improvement of p4c-graphs backend (3268) [Timotej Ponek]
- Add support for LLD linker, cmake options for LLD and Gold (3263) [Vladimír Štill]
- Update used psabpf library for PTF tests (PSA/eBPF) (3261) [Jan Palimąka]
- Preserve build failure semantics. (3270) [fruffy]
- [dpdk] Eliminate header copy (3257) [Kamlesh Kumar]
- DPDK Backend: PNA Pass metadata support (3245) [Usha Gupta]
- Add UPF sample program for PSA/eBPF backend (3267) [Tomasz Osiński]
- Add BNG sample program for PSA/eBPF backend (3266) [Tomasz Osiński]
- Use ccache with Github actions (3073) [fruffy]
- Add cmake option to force-enable colors in build (3269) [Vladimír Štill]
- Do not crash on illegal uses of 'this' (3265) [Mihai Budiu]
- Allow specialized types for direct control/parser invocations (3260) [Mihai Budiu]
- Add support for ternary match kind to eBPF backend (3256) [Tomasz Osiński]
- Stricter type checking for built-in methods (3259) [Mihai Budiu]
- Add L2L3-ACL sample program for PSA/eBPF backend (3255) [Tomasz Osiński]
- Improve padding calculation in eBPF parser (3254) [Jan Palimąka]
- UBPF backend header files were not cpplinted (3252) [Mihai Budiu]
- Fix incorrect C code generation for ebpf control plane (3253) [Jan Palimąka]
- Add support for Random extern to PSA/eBPF backend (3251) [Tomasz Osiński]
- Fix support for verify() and error type to fully support verify() in PSA/eBPF backend (3250) [Jan Palimąka]
- Implement DirectMeter extern for eBPF backend (3243) [Mateusz Kossakowski]
- p4c: Handle spaces in file name (3249) [Radostin Stoyanov]
- Fix a typo in README (3248) [Jan Ziak]

Co-authored-by: p4lang <p4lang@users.noreply.github.com>

v1.2.2.2

23 Apr 16:57
45e5d70
Compare
Choose a tag to compare
Release 1.2.2.2 (#3247)

Changelog:

- Extend eBPF kernel target with support for additional BPF helpers and more types of BPF maps (3119)
- loop_revisit method for dealing with recursive loops in the IR (3106)
- Added nullptr checks for l/rtype (3138)
- DPDK: Implementation for non byte aligned metadata and header fields (3114)
- Fix expansion of signed ranges to masks (3212)
- Forbid egress pipeline in dpdk by default (3104)
- Point to PSA/eBPF implementation in main README (3244)
- Remove unnecessary check in conversion of log_msg to a JSON (3067)
- Represent unary plus in the IR (3157)
- Use 0 as action ID for NoAction and refactor eBPF table implementation (3129)
- Add PTF test infra for eBPF backend (3158)
- Add support for ActionSelector extern to PSA/eBPF backend (3216)
- Add support for Checksum extern and CRC16/32 algorithms to eBPF backend (3167)
- Add support for parser value_set to eBPF backend (3235)
- DPDK Backend: Insert table keys generated by compiler closer to the standard and user metadata (3160)
- Fix cpplint errors for dpdk sources (3111)
- P4C-DPDK: Emit error when struct fields >64-bit is present in the P4 (3217)
- Replace pna direction with register read (3224)
- Solving problems with Header Union verify function (reopened) (3214)
- Add --xdp2tc compiler flag for eBPF backend (3187)
- DPDK: Add support for "mirror_packet" PNA extern (3128)
- Eliminate typedefs in bmv2-ss backend (3123)
- Fix off-by-one bug in source file position calculation (3124)
- Add support for Counter extern to PSA/eBPF backend (3165)
- Add support for Register extern to PSA/eBPF backend (3202)
- Comparisons of list expressions, structure-valued expressions, tuples and structs (3122)
- Disable 'unused' warning for some psa.p4 externs (3147)
- [dpdk] Shorten the Identifer name, including dots(.) in Member expression (3175)
- Improve error message for count() in dpdk (3101)
- improving the driver re: the checking of input pathnames, improving error messages, trying to prevent misleading error - ssages. (3218)
- Insert type specializations before functions (3207)
- Moved FindRecirculated from .cpp to .h (3088)
- Add Digest extern to PSA/eBPF backend (3164)
- DPDK: Fix core dump while generating bfrt json for PNA programs with action selector (3115)
- Improve efficiency of range translation to mask  (3133)
- PSA-eBPF: Add missing header name substitution in deparser (3162)
- Split psa_switch.h into two files (3144)
- Add debug messages for generated eBPF programs (3097)
- Compile the P4 compiler tools in host configuration (3148)
- Do not allow casts to struct types (3234)
- Fix Context json to emit target_action_name and NoAction (3213)
- Fixed underflow during row-access in the SymBitMatrix (3143) (3169)
- from1.0: fix register type signess (3117)
- Removed execute permission bits from all 3 of the P4 files that had them.
- typeChecker: make error message less confusing (3152)
- Enable generation of pointer variables by eBPF codeGen (3131)
- Fixed bitvec.h (3239)
- P4C-DPDK - Support Non-zero arguments for default action (3206)
- Treat match_kind as a regular type (3099)
- Add support for Hash extern to eBPF backend (3215)
- Implement Meter extern for eBPF backend (3231)
- Keep track of source position for p4-14 switch statement labels (3141)
- Print the current node type name when checkedTo fails (3116)
- Remove incorrect test for recursion (3199)
- Strength reduction should not remove some casts (3226)
- Add support for InternetChecksum extern to eBPF backend (3194)
- Emit semicolon after method call (3093)
- Flatten local struct decl in dpdk (3108)
- Handle bfrt Info for new type (3103)
- Add correct and error test cases for structure-values expressions (3100)
- Allow casts int to int (3220)
- dpdk: Eliminate unused metadata fields (3096)
- Implement PSA for eBPF backend (3139)
- Improve error messages during type checking (3182)
- Struct expressions can be ConstantExpressions (3125)
- adding tests re the driver (1) missing error messages and (2) giving misleading error messages (3198)
- Add support for ActionProfile extern to PSA/eBPF backend (3177)
- Add support for DirectCounter extern to PSA/eBPF backend (3195)
- Implement EBPF deparser (3136)
- test: Update install_fedora_deps.sh (3190)
- Type of a unary expression is not always the same as the input type (3135)
- Allow P4 filenames containing spaces (3242)
- Constant fold casts of serializble enums (3181)
- DPDK Backend: Move learn instructions constant argument to metadata (3163)
- [dpdk] Emit key name in context file as in bfrt and p4info (3205)
- manage lifetimes of Visitor::visited (3168)
- Refactor SetupJoinPoints to make it more extensible
- sfinae-protect operator== StringRef overload (3132)
- typedef with generic types requires type arguments (3174)
- Dismantle Mux expression in dpdk (3087)
- DPDK Backend: Add support for recirculate() extern (3236)
- Fix error message for cast to 'type' (3241)
- Solution for "Non Type_Bits type bool for expression" error (3120)
- Add packet_in.length() and packet_in.advance() methods to a eBPF target (3137)
- Add dpdk version string (3105)
- DPDK Backend: Fix binary operations with 1st operand is not same as dst operand (3209)
- DPDK: Fix missing action definitions in spec file (3109)
- Handle struct expression in ebfp backend (3173)
- P4C-DPDK-Support header field with Slice as a Table key (3151)
- Preserve some types in constant folding. (3094)
- Try to cancel previous Jenkins runs (3230)

Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>

v1.2.2.1

16 Feb 12:06
a89bac3
Compare
Choose a tag to compare
Release 1.2.2.1 (#3085)

The current versioning scheme of the P4 compiler corresponds to the P4
language specification. In particular, the current compiler version
corresponds to v1.2.2 of P4_16 Language Specification.

This patch updates the P4 compiler version to the following format

	<major>.<minor>.<patchlevel>.<releasenumber>

Where <releasenumber> increments with each release of the compiler.
The increment in version number allows to distribute updates for the
P4 compiler using package management systems such as
DPKG (Debian/Ubuntu) and RPM (Fedora/CentOS).

This change was discussed at the P4 open source developer days on
November 23, 2021.

Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>

v1.2.2

29 Jun 16:48
df0ca8b
Compare
Choose a tag to compare
Enable automatic release on version change (#2829)

* Use version file

This commit create a VERSION file that can be used to obtain the current
version of P4C.

The current version string "1.2.0+g202103291035~a69e52" contains a semantic
version, date and current git commit. However, the date makes sense only in
packages. Building the same P4C compiler code on a different day should not
result in a different version name. The current git commit is automatically
from the git history.

Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>

* ci: rename 'release' action to 'static-build'

This GitHub action doesn't create a release, it only tests if a static
build works on Ubuntu 20.04. Thus, using the name "static build" looks
more accurately describes what it does.

Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>

* Enable automatic releases

This GitHub action creates a release in GitHub every time
the Version.txt file has been changed.

Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>