Revision history for Punk-OpenTelemetry 0.07 2026-08-26 - An outbound call joins the trace it was made from. - A traceparent the caller already set is honoured as the parent and replaced in place. - Punk::OpenTelemetry::SpanRef, a BORROWED span handle with no DESTROY: the request's span belongs to the instrumentation, and a handle to it in the owning class would free what the response side is about to end. - Span: add sampled, child_of and traceparent. - The logs signal is the application's own logger: $c->log is tapped through pk_abi v4 and exported with its request's trace id. - REMOVED: the $c->otel_log helper 0.06 2026-08-26 - Metrics and logs encode. Both encoders existed in the header and the exporter never dispatched to them, so every signal but traces was refused at the last step. - One eval per signal in flush. A failure in any one signal aborted the block, so metrics failing to encode meant logs were never drained: two signals lost to one broken encoder. 0.05 2026-08-23 - Fixed the module failing to load with "undefined symbol: clock_gettime" on glibc before 2.17 (Debian wheezy, reported by CPAN Testers on 5.20, 5.22 and 5.24). clock_gettime lives in librt there, so the configure probe now retries with -lrt and links it when that is what makes it work. 0.04 2026-08-20 - FIX: change abi version checks from == to <= - Fixed a SEGFAULT on perls before 5.32, POPs - Fixed t/07-metrics.t failing on every perl built uselongdouble 0.03 2026-08-20 - Fixed a SEGFAULT on perls before 5.20, reported by CPAN Testers against 0.01 on 5.18.2 (FreeBSD 9.2, gcc 4.2.1) and 5.18.4 (Linux, gcc 12). Eleven XSUBs returned by assigning &PL_sv_undef to an SV* RETVAL. The typemap mortalises RETVAL, so each of those returns decremented the refcount of an IMMORTAL and before 5.20 immortals have no refcount protection, so the decrements are real and the SV is eventually freed underneath the interpreter. 0.02 2026-08-19 - Fixed a SEGFAULT on perls before 5.20, reported by CPAN Testers against 0.01 on 5.18.2 (FreeBSD 9.2, gcc 4.2.1) and 5.18.4 (Linux, gcc 12). Eleven XSUBs returned by assigning &PL_sv_undef to an SV* RETVAL. The typemap mortalises RETVAL, so each of those returns decremented the refcount of an IMMORTAL and before 5.20 immortals have no refcount protection, so the decrements are real and the SV is eventually freed underneath the interpreter. 0.01 2026-08-19 First version