Skip to content

Tags: neosmart/tac

Tags

2.1

Bump to version 2.1.0

2.0

tac 2.0

`tac` is now SIMD-accelerated and avails itself of AVX2 instructions
where possible. Detection is dynamic and happens at runtime, no special
compilation flags are required. See [`README.md`](/README.md) for more
information.

0.2.3

Hiding panics from end user

0.2.2

0.2.2 release with less unsafe code

No longer using print! macros to write unsafe strings to stdout, instead
using stdout directly to write binary content.

0.2.1

Removed manual signal handling and uninitialized memory

Manual signal handling is no longer needed since using try_print instead
of print, and uninitialized memory was causing problems since the
destructor was still being called for the uninitialized data, which is
obviously not what we wanted.

0.2

Fixed issues with hang on SIGPIPE and other panic

For some reason, when rust panics with massive memory mapped files open,
the process hangs until is SIGSEGVs with out-of-bounds memory access.
Now using try_print instead of print and exiting on failure instead of
letting it panic, because std::process::exit does not call destructors.

0.1.1

Now exiting on SIGINT to prevent runaway processing on SIGPIPE

For some reason, when the stdout pipe is broken rust throw the exception as
expected, but does not terminate the actual thread doing the processing.

Now catching SIGINT as well, which is the usual cause of SIGPIPE (but notably
_not_ the only cause).

0.1

Initial release