Repository navigation
v0.17.2
pixtreme-transport 0.17.2: C++ input and output session bodies that live as long as their native session handle. Native ABI 6 and CONFORMANCE_REVISION 6 are unchanged; the C ABI and the shared library are unchanged, and programs and modules built against the 0.17.0 or 0.17.1 public headers keep loading. The new factories are header-only inline code, so a C++ module that wants them must be rebuilt against the 0.17.2 headers.
- Session ownership (issue #164):
pixtreme::transport::session::Entrance::create<T>(args...)andExit::create<T>(args...)build a module's derived input or output bodyTwhose lifetime is tied to the last reference of the C session handle it creates. The C session owns the body through itscontext_owner; the body borrows the handle.Ttakes aSessionConstructiontoken as its first constructor argument and passes it to the newEntrance(SessionConstruction, ...)orExit(SessionConstruction, ...)base constructor. The returnedstd::shared_ptr<T>shares ownership of the C handle. After an explicit close and the end of all callbacks, the body is destroyed exactly once, whichever of the original object, an exported capsule or an imported wrapper is released last. A body's destructor must not use its borrowed session; release external resources in the stop, join and close hooks. The comments oncreate()inpixtreme/transport/session/session.hstate the full contract. The existing constructors keep their behaviour. - Source archive: the sdist includes the new C++ test source, so the standalone C++ tests build from the source archive.
- Wheels: CPython 3.12 and 3.13,
manylinux_2_28_x86_64, built with the imagepixtreme-transport-wheel:cuda13-manylinux_2_28-5dfc35d6a2b1fromwheel-build/at this tag. Each wheel ships the shared librarylibpixtreme_transport.so.6, the public C and C++ headers, the CMake package configuration and thetestingpackage. CUDA's runtime is linked statically; the NVIDIA driver library is not included. - Verify the assets with
sha256sum -c SHA256SUMS.