Releases: Meta-Real/MRFStr
MRFStr version 1.2.0
MetaReal Fast String Library version 1.2.0
Exciting News! 🚀 MRFStr version 1.2.0 has just hit the shelves, bringing a host of new features and improvements to supercharge your string manipulation experience. In this release, we've amped up the library with dynamic allocations, meaning no more headaches for programmers dealing with memory management. We've put the "carefree" back into coding!
What's New in MRFStr 1.2.0:
- Dynamic Allocations: Forget about memory worries! MRFStr now handles all allocations dynamically, freeing you from the intricacies of memory management. Enjoy the peace of mind that comes with streamlined development.
- Extended Functionality: We've expanded the library's repertoire with new functions, adding even more tools to your string manipulation arsenal. Whether you're searching, copying, or comparing, MRFStr has got your back with enhanced capabilities.
- Shared Library Support: MRFStr now plays well with others as a shared library. Seamlessly integrate it into your projects, harnessing its power without any hassle. The versatility of MRFStr extends further as it becomes an even more collaborative team player.
Upgrade to MRFStr 1.2.0 today and experience a liberating shift in your string manipulation endeavors. Your code deserves the best, and MRFStr delivers just that efficiency, simplicity, and a whole lot of power under the hood. Happy coding! 🚀✨
Added Features:
- Capacity field for dynamic memory allocation.
- Compiler support for building MRFStr as a shared library.
- C++ compiler support. The developer can now build the MRFStr library using a C++ compiler.
- Added functions:
// concat functions
mrfstr_insert
// remove functions
mrfstr_remove
mrfstr_n_remove
// repeat functions
mrfstr_fill
mrfstr_rfill
// contain functions
mrfstr_startswith
mrfstr_startswith_str
mrfstr_startswith_nstr
mrfstr_endswith
mrfstr_endswith_str
mrfstr_endswith_nstr
// count functions
mrfstr_count_chr
mrfstr_n_count_chr
// io functions
mrfstr_import
mrfstr_n_import
mrfstr_fexport
mrfstr_n_fexport
mrfstr_fimport
mrfstr_n_fimport
// config functions
mrfstr_config_stdalloc- Added macros:
MRFSTR_CAPAImproved Features
- Changed the algorithm for finding a character in the string.
Instead of dividing the string into large chunks and processing them, search pointers point to the string's starting position and increment through it according to the reserved thread count. - Data functions are now inline for better performance.
Changes:
- Renamed functions:
// io functions
- mrfstr_print
+ mrfstr_export
- mrfstr_n_print
+ mrfstr_n_export
// config functions
- mrfstr_config_tcount
+ mrfstr_config_thread_count
- mrfstr_config_nlimit
+ mrfstr_config_normal_limit
- mrfstr_config_tlimit
+ mrfstr_config_thread_limit- Renamed structs and enums:
// mrfstr_config_simd_enum_t
- MRFSTR_CONFIG_TYPE_REV
+ MRFSTR_CONFIG_TYPE_REVERSE
- MRFSTR_CONFIG_TYPE_CMP
+ MRFSTR_CONFIG_TYPE_COMPARE- Function changes (return value):
// set functions
- void mrfstr_set(...)
+ mrfstr_res_enum_t mrfstr_set(...)
- void mrfstr_set_str(...)
+ mrfstr_res_enum_t mrfstr_set_str(...)
- void mrfstr_set_nstr(...)
+ mrfstr_res_enum_t mrfstr_set_nstr(...)
- void mrfstr_set_chr(...)
+ mrfstr_res_enum_t mrfstr_set_chr(...)
// repeat functions
- void mrfstr_repeat_chr(...)
+ mrfstr_res_enum_t mrfstr_repeat_chr(...)
// reverse functions
- void mrfstr_reverse(...)
+ mrfstr_res_enum_t mrfstr_reverse(...)
// replace functions
- void mrfstr_replace_chr(...)
+ mrfstr_res_enum_t mrfstr_replace_chr(...)
- void mrfstr_n_replace_chr(...)
+ mrfstr_res_enum_t mrfstr_n_replace_chr(...)- Function changes (arguments):
// data functions
- mrfstr_chr_t mrfstr_get_chr(mrfstr_res_enum_t *error, ...)
+ mrfstr_res_enum_t mrfstr_get_chr(mrfstr_chr_t *chr, ...)Bug Fixes:
- Alignment bug fix in these functions:
// replace functions
mrfstr_replace
mrfstr_n_replace_chr
// reverse functions
mrfstr_reverse
// compare functions
mrfstr_equal
mrfstr_n_equal
mrfstr_equal_str
mrfstr_n_equal_str
mrfstr_equal_nstr
mrfstr_n_equal_nstr- Incorrect index returns in
mrfstr_find_chrandmrfstr_n_find_chrwithMRFSTR_CONFIG_SIMD_NONEconfiguration. - GCC compile time error for
avx512.c,avx.c, andsse.c(if their corresponding instruction set was not supported by the CPU).
Contributors
Full Changelog: v1.1.0...v1.2.0
MRFStr version 1.1.0
MetaReal Fast String Library version 1.1.0
This release focuses on the performance of the memory functions (mrfstr_set, mrfstr_repeat_chr, mrfstr_concat, etc.) on small data sizes.
For copying 1MB of data, the improved version is about two times faster than the previous version (on Intel corei7-1185G7).
The other added features are the mrfstr_config_tlimit and mrfstr_config_nlimit functions. These allow the programmer to decide when the library switches from single-threaded to multi-threaded processing.
Features of this release:
- improved versions of memory functions for small data sizes.
- config functions for
tlimit(threading limit) andnlimit(normal limit) mrfstr_concatfunction now supports theresandstr2pointers to be the same.
Full Changelog: v1.0.0...v1.1.0
MRFStr version 1.0.0
MetaReal Fast String Library version 1.0.0
The bedrock release includes all the essential features of the MRFStr library.
The future releases will all be compatible with this version.
The MRFStr library supports POSIX-based systems and Windows with GCC, Clang, and MSVC compilers.
Features of this release:
- primitive data types.
- initialization and memory allocation functions.
- set and get functions
- concat, repeat, replace, and reverse functions.
- equal, contain, and find functions
- a faster alternative to the
strlenfunction. - MRFStr configure system.