Skip to content

Commit

Permalink
Add release 1.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jkbonfield committed Dec 7, 2023
1 parent ecc49b9 commit ffda731
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 3 deletions.
51 changes: 51 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,54 @@
Release 1.6.0: 7th December 2023
--------------------------------

This release is primarily bug fixes, mostly spotted through improved fuzz
testing.

One big change however is the SIMD rANS codecs are now performant on Intel
CPUs with the DownFall mitigation microcode applied.


Changes

- Replaced the rANS codec SIMD gathers with simulated gathers via scalar
memory fetches. This helps AMD Zen4, but importantly it also fixes a
disastrous performance regression caused by Intel's DownFall microcode fix.

There is an impact on pre-DownFall speeds, but we should focus on patched
CPUs as a priority.

- A small speed up to the rans_F_to_s3 function used by order-0 rans decode.

- Small speed up to SIMD rans32x16 order-1 encoder by reducing cache misses.
Also sped up the rans4x8 order-1 encoder, particularly on AMD Zen4.

- Now supports building with "zig cc"
(Issue #109, reported by David Jackson)


Bug fixes

- Improve robustness of name tokeniser when given non 7-bit ASCII and on
machines where "char" defaults to unsigned.
(Issue #105, reported by Shubham Chandak)

- Also fixed a 1 byte buffer read-overrun in name tokeniser.

- Fix name tokeniser encoder failure with some duplicated streams.

- Fixed rans_set_cpu to work multiple times, as well as reinstating the
ability to change decode and encode side independently (accidentally lost in
commit 958032c). No effect on usage, but it improves the test coverage.

- Added a round-trip fuzz tester to test the ability to encode. The old fuzz
testing was decode streams only.

- Fixed bounds checking in rans_uncompress_O0_32x16_avx2, fixing buffer read
overruns.

- Removed undefined behaviour in transpose_and_copy(), fixing zig cc builds.


Release 1.5.2: 6th October 2023
-------------------------------

Expand Down
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(htscodecs, 1.5.2)
AC_INIT(htscodecs, 1.6.0)

# Some functions benefit from -O3 optimisation, so if the user didn't
# explicitly set any compiler flags, we'll plump for O3.
Expand Down Expand Up @@ -61,7 +61,7 @@ AM_EXTRA_RECURSIVE_TARGETS([fuzz])
# libhtscodecs.so.1.1.0

VERS_CURRENT=3
VERS_REVISION=4
VERS_REVISION=5
VERS_AGE=1
AC_SUBST(VERS_CURRENT)
AC_SUBST(VERS_REVISION)
Expand Down
2 changes: 1 addition & 1 deletion htscodecs/htscodecs.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
* Note currently this needs manually editing as it isn't automatically
* updated by autoconf.
*/
#define HTSCODECS_VERSION 100502
#define HTSCODECS_VERSION 100600

/*
* A const string form of the HTSCODECS_VERSION define.
Expand Down

0 comments on commit ffda731

Please sign in to comment.