// Render with Asciidoctor = Babeltrace 2.0.0-rc3 release notes Jérémie Galarneau, Simon Marchi, Philippe Proulx 15 November 2019 :toc: :toclevels: 5 :bt2: Babeltrace{nbsp}2 Hi everyone! Two weeks after https://diamon.org/babeltrace/docs/release-notes/babeltrace-2.0.0-rc2-release-notes.html[having released] {bt2}'s second release candidate, today we're releasing Babeltrace{nbsp}2.0.0-rc3. == What's new since Babeltrace{nbsp}2.0.0-rc2? === Improvements General:: + -- * Introduce the `BABELTRACE_EXEC_ON_ABORT` environment variable. `BABELTRACE_EXEC_ON_ABORT` can contain a shell command line to execute when any part of the Babeltrace project aborts (for example, when an internal assertion fails) before the process exits. + See https://github.com/efficios/babeltrace/commit/8403432f[`8403432f`]. * Add precondition assertions to verify that the current ihread has no error when you call a libbabeltrace2 function (except reference count functions). + See https://github.com/efficios/babeltrace/commit/7c7324d3[`7c7324d3`]. * Add postcondition assertions to verify that the user functions which libbabeltrace2 calls return an error status code when the current thread has an error. + See https://github.com/efficios/babeltrace/commit/d6f6a5aa[`d6f6a5aa`]. * Emit dedicated bright terminal color codes if supported by the terminal emulator. + This makes the https://diamon.org/babeltrace/docs/v2.0/man1/babeltrace2.1/[`babeltrace2`] CLI tool and some project plugins emit correct bright color codes for the kitty terminal emulator, for example. + You can override this behaviour with the new `BABELTRACE_TERM_COLOR_BRIGHT_MEANS_BOLD` environment variable. + See https://github.com/efficios/babeltrace/commit/4253e1eb[`4253e1eb`]. * In libbabeltrace2's API: make the `bt_value_map_foreach_entry_func` and `bt_value_map_foreach_entry_const_func` function types return a status code instead of `bt_bool`. + This makes it possible for the user function to append a cause to the current thread's error and return an error status code. When the user function returns a general error status code, `bt_value_map_foreach_entry()` returns `BT_VALUE_MAP_FOREACH_ENTRY_STATUS_USER_ERROR` (and an equivalent code for `bt_value_map_foreach_entry_const()`). + The new way to interrupt the outer loop from the user function is to return `BT_VALUE_MAP_FOREACH_ENTRY_FUNC_STATUS_INTERRUPT`. -- Command-line interface:: + -- * Exit with status{nbsp}2 when the process receives the `SIGINT` signal. + This makes it possible to distinguish a successful execution (status{nbsp}0) from an execution that ends because of an error (status{nbsp}1). + See https://github.com/efficios/babeltrace/commit/851802b1[`851802b1`]. -- `source.ctf.fs` component class:: + -- * Check the version of https://lttng.org/[LTTng] index files to avoid reading files of future backwards-incompatible versions. + See https://github.com/efficios/babeltrace/commit/2068d50b[`2068d50b`]. + * Handle reading overlapping snapshots of the same trace. Even if some packets are present in multiple snapshots, they will only be read once. + See https://github.com/efficios/babeltrace/commit/FIXME[`FIXME`]. -- `source.ctf.lttng-live` component class:: + -- * Better handle signal interruptions during I/O syscalls. + Return `BT_COMPONENT_CLASS_MESSAGE_ITERATOR_NEXT_METHOD_STATUS_AGAIN` when I/O syscalls are interrupted by a `SIGINT` signal and restart the syscall on other signals. + See https://github.com/efficios/babeltrace/commit/f79c2d7a[`f79c2d7a`]. -- `filter.utils.muxer` component class:: + -- * Append error causes when encountering some error conditions. + See See https://github.com/efficios/babeltrace/commit/FIXME[`FIXME`]. -- === Bug fixes Simple sink component class:: + -- * Append error causes only when returning an error status code. + See https://github.com/efficios/babeltrace/commit/eb657c7b[`eb657c7b`]. -- == Upcoming We are still hard at work putting the finishing touches on our way to the final 2.0.0 release. We invite you to try this release candidate and report any problems you may encounter to the https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev[`lttng-dev@lists.lttng.org`] mailing list or through the https://bugs.lttng.org/projects/babeltrace[Babeltrace bug tracker]. === Documentation We are currently documenting the entire {bt2}{nbsp}C{nbsp}API to make the development of new component classes as easy as possible. We'll also work on the Python bindings documentation. The documentation of the API will be made available on the official https://diamon.org/babeltrace/[Babeltrace website]. === Other tasks * Improve test coverage. * Improve resilience to corrupted/malformed CTF traces. * Minor internal cleanups and bug fixes. == Important links * https://www.efficios.com/files/babeltrace/babeltrace-2.0.0-rc3.tar.bz2[Babeltrace 2.0.0-rc3 tarball] * https://diamon.org/babeltrace[Babeltrace website] * https://lists.lttng.org[Mailing list] for support and development: `lttng-dev@lists.lttng.org` * irc://irc.oftc.net/lttng[IRC channel]: `#lttng` on `irc.oftc.net` * https://bugs.lttng.org/projects/babeltrace[Git repository] * https://github.com/efficios/babeltrace[GitHub project] * https://ci.lttng.org/view/Babeltrace/[Continuous integration] * https://review.lttng.org/q/project:babeltrace[Code review]