Skip to content

v0.17.2

Choose a tag to compare

@minamikik minamikik released this 23 Oct 04:05
· 7 commits to main since this release

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...) and Exit::create<T>(args...) build a module's derived input or output body T whose lifetime is tied to the last reference of the C session handle it creates. The C session owns the body through its context_owner; the body borrows the handle. T takes a SessionConstruction token as its first constructor argument and passes it to the new Entrance(SessionConstruction, ...) or Exit(SessionConstruction, ...) base constructor. The returned std::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 on create() in pixtreme/transport/session/session.h state 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 image pixtreme-transport-wheel:cuda13-manylinux_2_28-5dfc35d6a2b1 from wheel-build/ at this tag. Each wheel ships the shared library libpixtreme_transport.so.6, the public C and C++ headers, the CMake package configuration and the testing package. CUDA's runtime is linked statically; the NVIDIA driver library is not included.
  • Verify the assets with sha256sum -c SHA256SUMS.