Skip to content

Releases: simdutf/simdutf

Version 7.4.0

24 Aug 00:24
Compare
Choose a tag to compare

What's Changed

  • improving support for legacy GCC and validate_utf16_as_ascii by @lemire in #833 This fixes both #832 and #831

The new feature of this minor release is that we can check whether an UTF-16 string is 'ASCII' meaning that it can be converted to ASCII without any loss. This was requested by @trflynn89 of the Ladybird project.

/**
 * Validate the ASCII string as a UTF-16 sequence.
 * An UTF-16 sequence is considered an ASCII sequence
 * if it could be converted to an ASCII string losslessly.
 *
 * Overridden by each implementation.
 *
 * @param buf the UTF-16 string to validate.
 * @param len the length of the string in bytes.
 * @return true if and only if the string is valid ASCII.
 */
simdutf_warn_unused bool validate_utf16_as_ascii(const char16_t *buf,
                                                 size_t len) noexcept;

Full Changelog: v7.3.6...v7.4.0

Version 7.3.6

14 Aug 18:26
Compare
Choose a tag to compare

What's Changed

This patch should only concern users of the trim_partial_utf16 function.

Full Changelog: v7.3.5...v7.3.6

Version 7.3.5

09 Aug 03:49
Compare
Choose a tag to compare

What's Changed

  • Improving the performance of simdutf::find and adding a benchmark for simdutf::find.

Version 7.3.4

01 Aug 04:11
Compare
Choose a tag to compare

What's Changed

  • fixing Issue 824 by @lemire in #825 We are fixing a minor issued (defined as standard compliance with TC39 base64 proposal). When using last_chunk_handling::stop_before_partial, we would sometimes we would either consume too many or too few characters, the difference being due to ignorable characters. Thus, for a string made entirely of spaces, we might report consuming no character whereas the proposed standard wants us to consume all characters. Conversely, when stopping before a partial chunk, we would consume all characters up to that point, whereas the proposed standard would want us to consume no trailing ignorable characters. Thanks to @syg for the report. Ping to @trflynn89, @Constellation, and @anonrig. We added corresponding tests.

Full Changelog: v7.3.3...v7.3.4

Version 7.3.3

13 Jul 14:54
Compare
Choose a tag to compare

What's Changed

This patch release fixes minor documentation issues, an issue with UTF-8 BOM detection and an issue with stop_before_partial last chunk handling. Thanks to @syg for the report. Ping to @trflynn89, @Constellation, and @anonrig.

New Contributors

Full Changelog: v7.3.2...v7.3.3

Version 7.3.2

26 Jun 03:10
Compare
Choose a tag to compare

What's Changed

  • adding tests to check feature macros by @lemire in #813
  • adding a nice to_well_formed benchmark by @lemire in #814

Full Changelog: v7.3.1...v7.3.2

Version 7.3.1

17 Jun 22:02
Compare
Choose a tag to compare

What's Changed

  • Fix macOS build by replacing --gc-sections with -dead_strip by @weqeqq in #804
  • reduce the binary size under macos by @lemire in #805
  • adds some documentation for std::span overloads by @lemire in #803
  • Support macOS cross-compilation with Clang in osxcross by @weqeqq in #806
  • adding emscripten build test by @lemire in #807
  • Fix MSVC noexcept analysis warnings by @MichalPetryka in #809
  • Implement lsx + lasx find function by @tantei3 in #808
  • CMake: Guard shell-based tests with SIMDUTF_TESTS by @ADKaster in #811
  • Implement rvv find function by @tantei3 in #810

New Contributors

Full Changelog: v7.3.0...v7.3.1

Version 7.3.0

28 May 22:44
Compare
Choose a tag to compare

What's Changed

  • _safe variant of convert_utf16_to_utf8 by @lemire in #802

cc @ryg @anonrig

Full Changelog: v7.2.1...v7.3.0

Version 7.2.1

27 May 13:43
Compare
Choose a tag to compare

What's Changed

  • marking atomic functions as experimental by @lemire in #801

This is mostly a warning for @syg and the Chromium folks. It is unclear to me how atomics interact with sanitizers. @pauldreik wrote a fuzzer for the atomic base64 functions and it finds an endless stream of 'failure' which I cannot reproduce outside the sanitizers. Until this is explained, we warn our users and urge them to do their own validation.

Full Changelog: v7.2.0...v7.2.1

Version 7.2.0

26 May 00:33
03e1f9f
Compare
Choose a tag to compare

What's Changed

The major change in this version is a fix to issue #797 which affects 'stop before partial' base64 decoding. All users of the 'stop before partial' feature should upgrade. Ping to @trflynn89, @Constellation, @syg and @anonrig.

We also adopt the Node.js convention when decoding base64 in 'accept garbage' mode. Importantly, we cut off the base64 stream as soon as a '=' character is found.

We also make publish a fast 'find character' function.

Full Changelog: v7.1.0...v7.2.0