Skip to content

Releases: ashvardanian/StringZilla

v1.2.0

18 Sep 19:08
Compare
Choose a tag to compare

1.2.0 (2023-09-18)

Add

Make

v1.1.3

31 Aug 11:23
Compare
Choose a tag to compare

1.1.3 (2023-08-31)

Make

  • Explicitly UTF-8 encoding on Windows (50d78ca)

v1.1.2

31 Aug 11:14
Compare
Choose a tag to compare

1.1.2 (2023-08-31)

Docs

Make

v1.1.1

29 Aug 19:02
Compare
Choose a tag to compare

1.1.1 (2023-08-29)

Docs

Improve

  • Loading large files into memory (0cf1388)
  • Test reproducibility of the shuffle (50ac20a)

Make

v1.1.0

06 Aug 16:53
Compare
Choose a tag to compare

1.1.0 (2023-08-06)

New Functionality

Do you want to work with large arrays of separate strings? There is a way! The following code is now valid:

from stringzilla import Str, File, Strs

text: Str = Str('... very large string or file ...')
lines: Strs = text.split(separator='\n')
lines.sort()
lines.shuffle(seed=42)

sorted_copy: Strs = lines.sorted()
shuffled_copy: Strs = lines.shuffled(seed=42)

lines.append(shuffled_copy.pop(0))
lines.append('Pythonic string')
lines.extend(shuffled_copy)

Performance

You can expect even those trivial operations to be 8x faster than native Python 🤯

Screenshot 2023-08-06 at 21 11 37

Add

  • Collection-level append, extend (9a2b357)
  • random shuffle for strings collections (36c1a58)

Fix

  • static_cast for Clang builds (bd0a671)
  • Counting substrings with allowoverlap (5234e8a)

v1.0.3

31 Jul 06:59
Compare
Choose a tag to compare

1.0.3 (2023-07-31)

Make

  • Pass compilation flags depending on which architecture and compiler (a12b8d0)
  • Pre-set target hardware generation (189a9e8)

v1.0.2

30 Jul 18:27
Compare
Choose a tag to compare

1.0.2 (2023-07-30)

Docs

Fix

Improve

  • Bypass GIL on long tasks (17d2107)

Make

v1.0.1

13 Jul 17:22
Compare
Choose a tag to compare

1.0.1 (2023-07-13)

Fix

  • reporting if step defined (4b626e5)

v1.0.0

13 Jul 17:18
Compare
Choose a tag to compare

1.0.0 (2023-07-13)

Add

  • sort() interface for Python (3fddfff)
  • Arm Neon character counter (db2f523)
  • Auto-fetching Google Benchmark (28311f3)
  • Benchmarks on synthetic strings (d146196)
  • comparsion operators (febf8b1)
  • Counting specific characters or subtrings (67e71d8)
  • Examples of lcoating unique strings (8f5a09b)
  • get item with slice (c31de96)
  • Hybrid sorting with Radix and Quick Sorts (7fd8e26)
  • Merge-, Insertion-, Quick-sorting algos (826d8ee)
  • Merge-sort for strings (37076b5)
  • Python bindings (1c759c2)
  • Search benchmark (7868c0e)
  • String conversion functionality (46ef2b7)
  • support of negative slices (e020181)
  • test for slice operator (a3518e0)
  • tests for slices (c3b44ff)
  • tests for Slices (c7e8b2f)
  • Windows support (f2279d3)

Fix

  • comparator function signature (16dade3)
  • misaligned_len estimate (b3a1a93)
  • qsort_s vs qsort_r on MacOS (ba58a29)
  • Compilation (b896f77)
  • Compilation (71ff4df)
  • Identical overlapping semantics to Python (f1ffe51)
  • Matching Python string semantics (1067090)
  • Misaligned count and non C99 features (c84fa94)
  • remove unnecessary include (16c7daf)
  • slice function logic (40db4f2)
  • Slices (fa017e2)
  • speculative_neon_t count (571e0a5)
  • Switch to shared mappings to reduce RAM use (07bc055)
  • Using the right pragma for GCC ivdep (ca3b62d)

Fixes

  • RNG instantiation UB, reducing avoiding compiler optimization for the callback. (1ae31a0)

Improve

  • Mimic hyper-scalar code (f2d4e28)

Make

Refacot

Refactor