Skip to content

Commit 2637ab0

Browse files
committed
Fixing CHANGELOG
1 parent ca90ba0 commit 2637ab0

1 file changed

Lines changed: 0 additions & 132 deletions

File tree

CHANGELOG.md

Lines changed: 0 additions & 132 deletions
Original file line numberDiff line numberDiff line change
@@ -13,130 +13,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
1313
- Bogus warnings on newer clang-cl
1414
- Debug assertions when using Python strings with Python 3.14
1515

16-
## [3.7] - 2025-10-14
17-
18-
### Added
19-
- This library now builds and works properly on Haiku OS
20-
21-
## [3.6] - 2025-09-26
22-
23-
### Added
24-
- On Emscripten it is now possible to construct `sys_string` directly from `__externref_t` and convert `sys_string` back to it.
25-
This is faster and usually more ergonomic that going through `Emval`.
26-
- On Emscripten it is now possible to make `sys_string` use [WASM JavaScript Builtins](https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/JavaScript_builtins) (if your WASM platform supports them). This can make construction of `sys_string` from `__externref_t` significantly faster.
27-
Define `SYS_STRING_USE_WASM_JS_STRING` to 1 to enable this functionality.
28-
29-
### Fixed
30-
- This library can now be used with `clang-cl` on Windows
31-
- Bugs in BSTR storage support on 32-bit x86
32-
- Warnings on clang 21
33-
34-
## [3.5] - 2025-07-16
35-
36-
### Fixed
37-
- Incorrect CMake test for Python presence at build time
38-
39-
## [3.4] - 2025-06-27
40-
41-
### Fixed
42-
- Inadvertent pessimization in `compare_no_case`
43-
- Concepts rejecting `Char *` as eligible for addition to `sys_string`
44-
45-
## [3.3] - 2025-05-12
46-
47-
### Fixed
48-
49-
- CMake build now correctly handles when Python detected on the build machine is too old to be used
50-
- Tests now run correctly with PyPy Python installation
51-
52-
## [3.2] - 2025-02-10
53-
54-
### Added
55-
56-
- `sys_string` can now be `normalize()`-ed to NFC and NFD.
57-
- It is now possible to use ICU instead of internal data/code for case conversion, grapheme
58-
iteration and normalization. This makes those operations a tiny bit slower but saves
59-
~100kB in a final executable if you use all of them.
60-
61-
### Changed
62-
63-
- This library is now header only
64-
- Speed improvements to case conversions, case insensitive comparisons and grapheme iteration.
65-
66-
### Fixed
67-
68-
- Addressed some false positive sanitizer warnings.
69-
70-
## [3.1] - 2025-01-10
71-
72-
### Added
73-
74-
- `grapheme_view` and `graphemes` adapter which provide ability to iterate over grapheme clusters in `sys_string` and any UTF range.
75-
76-
### Changed
77-
78-
- Unicode data has been optimized for better size/speed balance
79-
- `sys_string_t::hash_type` has been changed from `unsigned` to `size_t` on some platforms.
80-
81-
### Fixed
82-
83-
- Invalid character access in unicode mappings.
84-
- Crash when sys_string_builder is re-used after `build()` on Apple and Python platforms.
85-
- `utf_ref_view` and `utf_owning_view` now actually work with forward and input underlying ranges
86-
- MSVC warnings when using `std::hash<sys_string>`
87-
88-
## [3.0] - 2024-12-02
89-
90-
This is a major release with some breaking changes
91-
92-
### Changed
93-
94-
- C++20 or higher is now required for compilation. In particular, the following C++20 features must be available:
95-
- Ranges support in standard library (`__cpp_lib_ranges >= 201911`)
96-
- Three-way comparison (spaceship operator)
97-
- `char8_t` type
98-
- `std::endian` support in standard library (`__cpp_lib_endian >= 201907`)
99-
- Minimal compilers known to work include: GCC 12, Clang 16, Apple Clang 15.4 and MSVC 17.6.
100-
- The library has been _range_-ified.
101-
- All methods that used to accept iterator pairs now take iterator/sentinel pairs.
102-
- All these methods now also have overloads that accept ranges
103-
- Existing informal ranges (`sys_string::char_access`, `sys_string::utf_view`, etc.) are now
104-
formal ranges or views.
105-
- As part of the above `sys_string::utfX_view` classes has been renamed to `sys_string::utfX_access` (because they are
106-
not formally views as defined by standard library). The old names have been retained for compatibility but annotated
107-
as deprecated. Note that `sys_string_builder::utf_view` remains under the same name since it *is* a view.
108-
- Breaking change: as part of the above change the `sys_string::utf_access` and `sys_string_builder::utf_view` now
109-
return distinct iterators and sentinels (that is they no longer satisfy `std::ranges::common_range` concept).
110-
You will need to use ranges algorithms with their iterators (e.g. `std::ranges::for_each` rather than `std::for_each`).
111-
- The global `utf_view` template has been split into two: `utf_ref_view` that takes underlying range by reference (similar
112-
to `std::ref_view`) and `utf_owning_view` that owns a movable underlying range (similar to `std::owning_view`). These
113-
are automatically produced by `as_utf` range adapter closures (see below in Added section)
114-
- Breaking change: the non-standard `Cursor` classes has been removed.
115-
- The library has been _concept_-ified.
116-
- Most templated library calls now have concepts checks that validate their argument types.
117-
- Primitive `std::enable_if` used before have been subsumed by these and removed.
118-
- Unicode data used for case folding and whitespace detection has been updated to version 16.0.0
119-
120-
### Added
121-
- `sys_string_t` can now be `+`-ed with any forward range of any type of character (including C strings and std::string).
122-
This results in a the same optimized addition as when adding `sys_string_t` objects.
123-
- `sys_string_t` objects can now be formatted via `std::format` (if available in your library). On platforms
124-
where `wchar_t` is UTF-16 or UTF-32 you can also use wide character formatting.
125-
- `sys_string_t::std_format` method. This formats a new `sys_string_t` (similar to the existing `sys_string_t::format`)
126-
but uses `std::format` machinery and formatting string syntax.
127-
- Range adapter closures: `as_utf8`, `as_utf18`, `as_utf32` and generic `as_utf<encoding>` .
128-
- These can be used to create `utf_ref_view`/`utf_owning_view` from any range/view. For example `as_utf16(std::string("abc"))`
129-
- If you library supports custom adapter closures (usually `__cpp_lib_ranges >= 202202L`) they can be used in
130-
view pipelines like `std::string("abc") | as_utf16 | std::views::take(2)` etc.
131-
132-
### Fixed
133-
- Printing `sys_string_t` objects into `std::ostream` (and `std::wostream` if available) now functions correctly in presence
134-
of stream formatting flags. Flags are currently ignored. This might change in a future version.
135-
- Printing/formatting `sys_string_t` objects that use `char` storage type now does not perform sanitizing transcoding. The content
136-
of the string is printed as-is. This allows faithful round-tripping and support for invalid Unicode for those scenarios. Similar
137-
behavior applies to `wchar_t` on platform where it is UTF-16 or UTF-32.
138-
- `operator<<` no longer pollutes global namespace
139-
14016
## [2.22] - 2025-10-14
14117

14218
## Added
@@ -358,11 +234,3 @@ This is a major release with some breaking changes
358234
[2.20]: https://github.com/gershnik/sys_string/releases/v2.20
359235
[2.21]: https://github.com/gershnik/sys_string/releases/v2.21
360236
[2.22]: https://github.com/gershnik/sys_string/releases/v2.22
361-
[3.0]: https://github.com/gershnik/sys_string/releases/v3.0
362-
[3.1]: https://github.com/gershnik/sys_string/releases/v3.1
363-
[3.2]: https://github.com/gershnik/sys_string/releases/v3.2
364-
[3.3]: https://github.com/gershnik/sys_string/releases/v3.3
365-
[3.4]: https://github.com/gershnik/sys_string/releases/v3.4
366-
[3.5]: https://github.com/gershnik/sys_string/releases/v3.5
367-
[3.6]: https://github.com/gershnik/sys_string/releases/v3.6
368-
[3.7]: https://github.com/gershnik/sys_string/releases/v3.7

0 commit comments

Comments
 (0)