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.