Repository navigation
Important
This is a prototype release. It is known to have incomplete functionality with respect to the Phlex conceptual design; backwards compatibility of API is not guaranteed. The following API is intended for use:
PHLEX_REGISTER_ALGORITHMS(...)opener for registering physics algorithmsPHLEX_REGISTER_PROVIDERS(...)opener for registering explicit data-product providersPHLEX_REGISTER_SOURCE(...)opener for registering a user-defined input sourcePHLEX_REGISTER_DRIVER(...)opener for registering a user-defined framework-driver functionPHLEX_REGISTER_RESOURCES(...)opener for registering resource plugins- Anything in the top-level
phlexnamespace
Interfaces in phlex::experimental may change; interfaces containing internal or detail should not be directly used.
Phlex v0.4.3 is a patch release that adds a safeguard against an unsupported unfold configuration present in Phlex v0.4.2:
- Unfolds accepting inputs from differently-named layers could leave higher-layer products cached and prevent folds partitioned by those layers from emitting results
No new features are introduced. Such configurations now fail during algorithm registration with an explicit diagnostic rather than proceeding with incorrect processing behavior. Users whose workflows include multi-layer unfold inputs must restructure those inputs to use a single layer; support for multi-layer unfolds is planned for Phlex v0.5.
Instructions for building code that uses Phlex and running simple Phlex jobs can be found in the phlex-examples repository.
Note
Phlex v0.4.3 uses C++23. You will need a compiler with sufficient C++23 support to build and install this release (GCC 15, LLVM 21, etc.).
Bug Fixes
- Reject unsupported multi-layer unfold inputs (#961)
As reported in #955, a nested unfold whose object also accepts a product from a higher layer could prevent that layer from flushing, leaving products and fold accumulators cached without emitting the expected results. Unfold registration now throws std::invalid_argument when the input products span more than one distinct layer name. The diagnostic identifies the unfold node and its input layers. Multiple inputs from the same layer remain supported.
This is a temporary restriction, not an implementation of multi-layer unfold support. As a workaround, users can perform the multi-layer work in a transform and pass its result to an unfold with single-layer inputs.
Included Pull Requests
Full Changelog: v0.4.2...v0.4.3