Evo change history.
- Version 0.5.1 - May 2019
- Add EVO_ENUM_TRAITS() and EVO_ENUM_CLASS_TRAITS()
- Add Additional Formatting with FmtTable, fmt_table(), fmt_table_nocache()
- Add PureBase for a common empty base class
- Add STL
string_view
compatibility to StringBase
- Updated and simplified Cortex, removed cortex_module.h and moved contents to cortex.h
- Updated Benchmark: Add warmup_count to constructor, simplify helper macros, improved report output
- Updated StrTok (and variants) to use
const StringBase&
arguments to support for STL string compatibility
- Updated List and String methods: add/prepend/insert/replace now support copying from SubString or pointer in the same list/string (previously undefined behavior)
- Note that String::replace() where source and destination overlap still results in undefined behavior
- Bug fix: EventThreadPool not working correctly in MSVC 2017, MSVC 2013, FreeBSD
- Bug fix: Cortex items not "relocatable", insert order no longer tracked
- Bug fix: GCC 4.6 and 4.4 compiler errors
- Bug fix: GCC warnings in var.h
- Bug fix: MSVC security warning on _open()
- Bug fix: Cygwin GCC x86 signed/unsigned warnings
- Bug fix: Fixed missing async dir in previous release
- Various documentation updates
- Add FAQ and benchmarks in Github Home
- Version 0.5 - Apr 2019
- Async I/O:
- Tools:
- Date/Time:
- Strings:
- Misc containers:
- Add Var class for general variable types and structures
- Add
asconst()
, begin()
, end()
, cbegin()
, cend()
to Evo containers
- Add IsNullable and is_null()
- Add List methods:
addmin()
, firstM()
, lastM()
, advFirst()
, advLast()
- Add mutable
value()
and operator*()
methods in Nullable
- Synchronization:
- Enum Conversion:
- C++11:
- Add C++11 features to Evo containers: range-based for loop, initializer lists, move semantics
- Add C++11 UTF-16 string iteral (
u
prefix) support to UnicodeString
- Updated MSVC compiler detection for MSVC 2017 15.9
- Bug fix: BitArrayT::Iter doesn't find first bit with small array size
- Bug fix: BitArrayT edge case in:
store()
, setbits()
, countbits()
, checkall()
, checkany()
, toggle_multi()
- Fix maphash.h compiler errors in GCC 4.8
- Many documentation updates
- Version 0.4 - Oct 2018
- Now using BSD 2-Clause License
- Add initial Unicode support to String, add UnicodeString
- Add updated String Formatting and Stream Formatting
- Replaced PREC_AUTO constant with fPREC_AUTO
- Stream interface tweaks, using void* instead of char*
- Add String and SubString
find*()
methods for string searching
- Add ConsoleMT and support for thread-safe (synchronized) I/O
- Add Threads and atomics support
- Add Socket streams
- Add Pair, now used with Map types
- Add SetList and SetHash types
- Add StrTokLine
- Add SubStringMapList and fixed_array_size()
- Add SubString::token*() methods
- Add additional stripl() and stripr() methods to String and SubString
- Add BitArray and BitArraySubset and related Bits helpers
- Nullable:
- Add Nullable::denull()
- Add comparison operators and compare() method
- Made Nullable::value() return const reference
- No longer uses implicit conversion, which causes tricky problems with comparisons
- Made List/String reserve() unslice by default, add "prefer_realloc" param to prefer realloc vs unslice
- Add sleepns() and add return value to sleepms() and sleepus()
- sleepus() now uses better than msec precision under Windows
- Fixed enum constants to use consistent convention, including:
- Cleanup and some refactoring in container and meta internals, including DataType, Compare, CompareHash, and Map types
- Refined compiler detection – see: EVO_COMPILER, EVO_COMPILER_VER
- Bug fix: SubString::splitat_setl() reset on null index
- Bug fix: StrTok and StrTokR on space or tab delim
- Bug fix: String::setn() on floats rounding up unexpectedly in some cases
- Bug fix: String::numull() returned ulongl when it should be ULongL
- Many documentation updates
- Version 0.3 - Dec 2016
- I/O stream refinements
- Support C++11 and clang compilers
- Add STL compatibility: std::string
- Add StrTok::nextanyq()
- Improved quoting with StrTokQ and Convert
- Rename setnull() to set() for consistency
- Bug fix: SharedPtr::clear() crash
- Many documentation updates, added Mini Tutorials