Appearance
Upgrading to 1.4.0
Release 1.4.0 makes the string methods linear in time and memory and fixes their edge cases. Three changes can alter the results of existing programs:
replaceis not recursive. The replaced text is not searched again, as in Pythonstr.replace:'aaaa'with'aa'replaced by'a'gives'aa'(it gave'a'), and anewcontainingoldno longer loops forever.count=0replaces nothing (it replaced one occurrence).- Unformatted I/O of a
stringstores its length.write(unit) astringwrites the length (anI8Pinteger) then the characters, andreadreads them back exactly; strings were truncated at 100 characters. Unformatted files written by an earlier version are not readable. - Defined results on edge cases.
to_numberon a string that is not a number gives 0 (integer kinds) or a quiet NaN (real kinds), it was undefined;splitof a string made only of separators gives no tokens, it gave the string itself;count(of characters) no longer undercounts;count('')andunique('')no longer loop forever.
Changelog
All notable changes to this project are documented here. Versions follow Semantic Versioning. Format follows Keep a Changelog.
[1.8.0] — 2026-10-04
Added
- string_t: Fast exact number casting, count/index/strip options
Documentation
- Cover the new methods in tutorial, cookbook and home pages
[1.7.0] — 2026-10-04
Added
- string_t: Add character classes, tr-like and padding methods
[1.6.0] — 2026-10-03
Added
- string_t: Add read_number with an error status, keep empty fields in split
[1.5.0] — 2026-10-03
Added
- string_t: Add match of wildcard patterns, make glob safe
[1.4.0] — 2026-10-03
Documentation
- Add the 1.4.0 upgrade notes, sync run_tests.sh and release.sh
Performance
- string_t: Make split, replace, unique, escape, join and read_* linear
[1.3.1] — 2026-10-03
Changed
- cmake: Find PENF and FACE by their standard config names
Fixed
makefile: Repair the make build and keep the doctests in sync
cmake: Make the installed package usable by find_package
string_t: Return a not allocated string for an unknown codec
release: Sync fpm.toml version on release, unblock docs build
[1.3.0] — 2026-10-02
Added
- string_t: Add six string methods from the issue #3 wishlist
Documentation
- Rebuild README and site on compiled examples, fix I/O bugs
Fixed
string_t: Prevent out-of-bounds on blank and null strings
fobos: Repair makecoverage rule and adopt double-dash fobis CLI
string_t: Correct is_real and base64 decode, extend slice/strip
[1.2.0] — 2026-10-02
Fixed
docs: Untrack package-lock and pin esbuild for lock-free vite build
string_t: Guard R16P generic bindings with PENF_R16P macro
[1.1.6] — 2026-02-18
Fixed
- docs: Correct project name casing to StringiFor throughout
[1.1.5] — 2026-02-18
Documentation
- Add VitePress site, rework CI/CD, and refactor README
[1.1.4] — 2026-02-18
Fixed
- Fix GNU gfortran issue with recursive procedure