Releases: p4lang/p4c
Releases · p4lang/p4c
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]>