Skip to content

Releases: p4lang/p4c

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 <[email protected]>

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 <[email protected]>

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 <[email protected]>

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 <[email protected]>

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 <[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]>