Releases: p4lang/p4c
Releases · p4lang/p4c
v1.2.3.5
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
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
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
- @Trigary made their first contribution in #3465
- @bagohart made their first contribution in #3554
- @fruffy-bfn made their first contribution in #3495
- @hannelita made their first contribution in #3566
Full Changelog: v1.2.3.2...v1.2.3.3
v1.2.3.2
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
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
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
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
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
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
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>