2.0.0-1.9 (Dec 8th, 2021)

Ninth errata of the standalone userspace implementation.

This is a pre-release with limited functionality.

New features:

  • The rand() subroutine has been implemented.

  • The ftruncate() subroutine has been implemented.

  • The basename() and dirname() subroutines have been implemented.

  • Thread-local storage (TLS) variables have been implemented. For now, only non-indexed variables are supported.

  • The strtok() subroutine has been implemented.

Obsolete features:

  • The ctf_module_dump tool has been removed. It is no longer needed.

Bugfixes:

  • The substr() and strjoin() subroutines now correctly store the result string length in the string length prefix.

Internal changes:

  • The temporary string (tstring) support in the code generator has been improved to provide better development level diagnostics.

  • The lifecycle handling of temporary strings has been updated to handle assignments and ternary expressions correctly.

  • The substr() and strjoin() subroutines have been reworked to provide a much more optimized implementation.

  • More efficient code is new generated for storing a string value in the trace output buffer.

  • Improvements were made to the generic hashtable (htab) in libdtrace,

Testsuite changes:

  • A results post-processor was added to various tests to work around CTF error message differences between libdtrace-ctf and libctf.

Known problems:

  • Complex nested expressions may cause the code generator to run our of usable registers. This is a known problem with the register lifecycle tracking.