You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+17-10Lines changed: 17 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,30 +2,37 @@
2
2
3
3
All notable changes to this project are documented in this file.
4
4
5
-
## [1.2.0] - 2025-12-20
6
-
### Changed
7
-
-`reverse/1` now uses the BEAM stdlib grapheme segmentation (`string.to_graphemes`) for better Unicode correctness and consistency across the library.
8
-
9
-
### Performance
10
-
- Optimized `count/3` internals to avoid repeated `list.length` calls inside recursive loops, improving performance on long strings.
11
-
12
-
13
-
Contributed by: Daniele (`lupodevelop`)
14
-
15
5
## [1.2.1] - 2026-01-02
16
6
### Fixed
17
7
- Made `repeat_str/2` iterative to avoid deep recursion and improve performance on large repetition counts.
18
8
- Fixed `wrap_at/2` to measure word lengths using grapheme clusters to avoid splitting emoji and other multi-codepoint graphemes.
19
9
- Replaced several `string.length(part) == 0` checks with `string.is_empty(part)` for clarity.
20
10
11
+
### Performance
12
+
- Optimized `find_common_prefix` to accept pre-segmented grapheme lists (`List(List(String))`) to avoid repeated `string.to_graphemes` conversions and expensive string concatenation/drop operations in recursive calls, reducing allocations and improving performance on lists of long strings (contributed by Miao `lemorage`).
13
+
14
+
21
15
### Tests
22
16
- Added `wrap_at_emoji_grapheme_test` to verify grapheme-aware wrapping behavior.
0 commit comments