Releases: marzer/tomlplusplus
Releases · marzer/tomlplusplus
v3.4.0
Fixes
- fixed
value_flagsnot being preserved correctly when inserting into tables and arrays (#108) (@LebJe) - fixed
toml::value::flags()not being cleared whenstd::move-ing a value - fixed error in README (#195) (@andrewkcorcoran)
- fixed compiler error when using NVCC (#198) (@thompsonnoahe)
- fixed
noexcept(...)sometimes being incorrectly derived onfor_each() - fixed
for_each()compilation error on GCC <= 7 (#197) (@sagi-ottopia, @damirbarr) - fixed
FLT_RADIXcheck getting broken by Intel MKL headers (#202) (@iago-lito) - fixed keys containing
\tincorrectly formatting as bare keys (@jasmine-zhu, @arp242) - fixed keys containing
\tand\nnot round-tripping correctly (@arp242)
Additions
- added support for using enums with
value_or()
Changes:
- renamed header files to have
.hppextension (toml.his still present for backwards-compatibility)
Build system:
v3.3.0
Fixes:
- fixed null pointer dereference in parser when exceptions are disabled (#169) (@ncaklovic)
- fixed spurious warnings in MSVC 19.34
- fixed
toml::parse_file()on windows for non-ASCII paths - fixed a spurious table redefinition error (#187) (@jorisvr)
- fixed UB edge-case in integer parsing (#188) (@jorisvr)
- fixed some build issues with Apple-flavoured Clang (#189) (@eddelbuettel)
Additions:
- added
toml::format_flags::terse_key_value_pairs - added
TOML_ENABLE_FLOAT16config (#178) (@Scrumplex)
Removals:
- removed automatic detection of
_Float16(you must explicitly setTOML_ENABLE_FLOAT16to enable it) (#186) (@benthetechguy)
Build system:
- re-wrote the meson scripts to fix a number of issues (#185, #186) (@Tachi107, @benthetechguy)
- increased the minimum required meson version to
0.61.0
v3.2.0
Fixes:
- fixed
[dotted.table]source columns sometimes being off by one (#152) (@vaartis) - fixed spurious
Wnull-dereferencewarning on GCC (#164) (@zaporozhets) - fixed
print_to_streamambiguity forsize_t(#167) (@acronce)
Additions:
- added value type deduction to
emplace()methods - added
toml::pathutility type (#153, #156, #168) (@jonestristand, @kcsaul) - added config option
TOML_CALLCONV - added missing relational operators for
source_position
Changes:
- relaxed cvref requirements of
is_homogeneous(),emplace(),emplace_back(),emplace_hint() - relaxed mantissa and digits10 requirements of extended float support
v3.1.0
Fixes:
- Fixed potential segfault when calling
at_path()with an empty string - Fixed UB in internal unicode machinery (#144) (@kchalmer)
- Fixed a number of spurious warnings with Clang 10 (#145, #146) (@chronoxor)
Additions:
- Added
toml::array::for_each() - Added
toml::table::for_each() - Added config options
TOML_EXPORTED_CLASS,TOML_EXPORTED_MEMBER_FUNCTION,TOML_EXPORTED_STATIC_FUNCTION&TOML_EXPORTED_FREE_FUNCTION - Added support for escape sequence
\ewhen usingTOML_ENABLE_UNRELEASED_FEATURES(toml/790) - Added support for more unicode in bare keys when using
TOML_ENABLE_UNRELEASED_FEATURES(toml/891)
Removals/Deprecations:
- Deprecated old
TOML_APIoption in favour newTOML_EXPORTED_Xoptions
(it will continue to work as it did before if none of the new function export options are defined)
Build system:
v3.0.1
This is a single-bugfix release to fix an ODR issue for people using header-only mode in multiple
translation units. If you aren't seeing linker errors because of toml::array::insert_at(),
this release holds nothing of value over v3.0.0.
Fixes:
v3.0.0
This release is a major version bump, so it's ABI breaks all around.
Any changes that are likely to cause migration issues (API changes, build system breakage, etc.) are indicated with
Fixes:
⚠️ fixedtoml::tableinit-list constructor requiring double-brackets⚠️ fixedTOML_API+ extern templates causing linker errors in some circumstances⚠️ fixed incorrectnoexceptspecifications on many functions⚠️ fixed missingTOML_APIon some interfaces- fixed
toml::json_formatternot formatting inf and nan incorrectly - fixed a number of spec conformance issues (#127, #128, #129, #130, #131, #132, #135) (@moorereason)
- fixed an illegal table redefinition edge case (#112) (@python36)
- fixed documentation issues
- fixed GCC bug causing memory leak during parse failures (#123, #124) (@rsmmr, @ronalabraham)
- fixed incorrect handling of vertical whitespace in keys when printing TOML to streams
- fixed incorrect source position in redefinition error messages
- fixed missing includes
<initializer_list>,<utility> - fixed parser not correctly round-tripping the format of binary and octal integers in some cases
- fixed some incorrect unicode scalar sequence transformations (#125)
- fixed strong exception guarantee edge-cases in
toml::tableandtoml::array
Additions:
- added value flags to array + table insert methods (#44) (@levicki)
- added support for Unicode 14.0
- added support for ref categories and cv-qualifiers in
toml::node::ref() - added magic
toml::value_flagsconstanttoml::preserve_source_value_flags - added clang's enum annotation attributes to all enums
- added
TOML_ENABLE_FORMATTERSoption - added
toml::yaml_formatter - added
toml::valuecopy+move constructor overloads with flags override - added
toml::table::prune() - added
toml::table::lower_bound()(same semantics asstd::map::lower_bound()) - added
toml::table::emplace_hint()(same semantics asstd::map::emplace_hint()) - added
toml::table::at()(same semantics asstd::map::at()) - added
toml::node_view::operator== - added
toml::key- provides a facility to access the source_regions of parsed keys (#82) (@vaartis) - added
toml::is_key<>andtoml::is_key_or_convertible<>metafunctions - added
toml::format_flags::relaxed_float_precision(#89) (@vaartis) - added
toml::format_flags::quote_infinities_and_nans - added
toml::format_flags::indent_sub_tables(#120) (@W4RH4WK) - added
toml::format_flags::indent_array_elements(#120) (@W4RH4WK) - added
toml::format_flags::allow_unicode_strings - added
toml::format_flags::allow_real_tabs_in_strings - added
toml::format_flags::allow_octal_integers - added
toml::format_flags::allow_hexadecimal_integers - added
toml::format_flags::allow_binary_integers - added
toml::date_timeconverting constructors fromtoml::dateandtoml::time - added
toml::at_path(),toml::node::at_path()andtoml::node_view::at_path()for qualified path-based lookups (#118) (@ben-crowhurst) - added
toml::array::resize()paramdefault_init_flags - added
toml::array::replace()(#109) (@LebJe) - added
toml::array::prune() - added
toml::array::at()(same semantics asstd::vector::at()) - added
parse_benchmarkexample - added
operator->totoml::valuefor class types
Changes:
⚠️ toml::format_flagsis now backed byuint64_t(was previouslyuint8_t)⚠️ toml::source_indexis now an alias foruint32_tunconditionally (was previously dependent onTOML_LARGE_FILES)⚠️ toml::tablenow usestoml::keyas the key type (was previouslystd::string)⚠️ toml::value_flagsis now backed byuint16_t(was previouslyuint8_t)⚠️ made all overloaded operators 'hidden friends' where possible⚠️ renamedtoml::default_formattertotoml::toml_formatter(toml::default_formatteris now an alias)⚠️ renamedTOML_PARSERoption toTOML_ENABLE_PARSER(TOML_PARSERwill continue to work but is deprecated)⚠️ renamedTOML_UNRELEASED_FEATUREStoTOML_ENABLE_UNRELEASED_FEATURES(TOML_UNRELEASED_FEATURESwill continue to work but is deprecated)⚠️ renamedTOML_WINDOWS_COMPATtoTOML_ENABLE_WINDOWS_COMPAT(TOML_WINDOWS_COMPATwill continue to work but is deprecated)- applied clang-format to all the things 🎉️
- exposed
TOML_NAMESPACE_STARTandTOML_NAMESPACE_ENDmacros to help with ADL specialization scenarios - improved performance of parser
- made date/time constructors accept any integral types
- moved all implementation headers to
/impl - renamed all implementation headers to
.hand 'source' headers to.inl - updated conformance tests
Removals:
⚠️ removedtoml::format_flags::allow_value_format_flags⚠️ removedTOML_LARGE_FILES(it is now default - explicitly settingTOML_LARGE_FILESto0will invoke an#error)⚠️ removed unnecessary template machinery (esp. where ostreams were involved)- removed unnecessary uses of
final
Build system:
⚠️ increased minimum required meson version to0.54.0- disabled 'install' path when being used as a meson subproject (#114) (@Tachi107)
- fixed builds failing with meson 0.6.0 (#117) (@Tachi107)
- general meson improvements and fixes (#115) (@Tachi107)
- used
override_dependencywhere supported (#116) (@Tachi107)
v2.5.0
Fixes:
- fixed linkage error with windows compat mode
- fixed
TOML_CONSTEVALbroken in MSVC (again) - fixed minor documentation bugs
- fixed cmake project version being incorrect (#110) (@GiulioRomualdi)
Additions:
- added support for lowercase 't' and 'z' in datetimes (per spec)
- added natvis file to cmake install (#106) (@Ryan-rsm-McKenzie)
- added VS cpp.hint file to cmake install
- added metafunctions
is_container,is_chronological,is_value,is_node,inserted_type_of
Changes:
- improved debug code size by removing unnecessary std::forwards and std::moves
- modernized the CMake build files (#102, #103, #105) (@friendlyanon)
- updated conformance tests
v2.4.0
Fixes:
- fixed
node::value()not retrieving inf and nan correctly - fixed dotted kvps being unable to add subtables (#61) (@Validark)
- fixed linker error on linux ICC (#83) (@blackwer)
- fixed segfault JSON-formatting a failed
parse_result(#96) (@proydakov) - fixed spurious newline after JSON formatting a table
- fixed VS intellisense not detecting
TOML_COMPILER_EXCEPTIONScorrectly - fixed crash with pathologically-nested inputs (#100) (@geeknik)
- fixed
parse_resultnatvis - fixed false-positive
char8_tsupport detection on older compilers - fixed unnecessary
#include <Windows.h>Windows builds (@BeastLe9enD) - fixed
TOML_CONSTEVALbreaking on VS 16.10.0pre2 - fixed spurious warnings with MSVC /Wall
- fixed missing blank lines between consecutive empty tables/A-o-T
- fixed unnecessary
TOML_APIdeclarations - fixed many small documentation issues
Additions:
- added proper cmake support (#85) (@ClausKlein)
- added cmake FetchContent information to documentation (#101) (@proydakov)
Removals and Deprecations:
- removed explicit
#include <fstream>requirement forparse_file()
v2.3.0
Fixes:
- fixed compiler errors caused by
<charconv>with Apple-flavoured clang - fixed array and table iterators missing
iterator_category(#77) (@HazardyKnusperkeks) - fixed
Wuseless-castwarnings on GCC 10 (#75) (@HazardyKnusperkeks) - fixed formatter not correctly line wrapping in some rare circumstances (#73) (@89z)
- fixed an unnecessary global compiler flag breaking builds when used as a meson subproject (#72) (@jamabr)
- fixed link error caused by
<charconv>on emscripten (#71) (@suy) - fixed ambiguity with the
toml::literalsinline namespace (#69) (@std-any-emplace) - fixed formatter emitting superfluous newlines after printing tables (#68) (@std-any-emplace)
- fixed array and table iterators not converting between const and non-const versions of themselves (#67) (@std-any-emplace)
- fixed some parser crashes when given pathologically-malformed UTF-8 (#65) (@sneves)
v2.2.0
Fixes:
- fixed some issues building with VS2017 (#55) (@sobczyk)
- fixed
_Float16erroneously detected as supported on g++ (#57) (@sobczyk) - fixed
<Windows.h>causing compilation failure on mingw (#63) (@rezahousseini) - fixed CMake and pkg-config files not being installed into architecture-agnostic directories (#59) (@tambry)
- fixed memory leak during parsing (#64) (@sneves)
- fixed ambiguous
operator==error on MSVC (#56) (@HellsingDarge)
Additions:
- added additional node_view constructors
- added ability to specify serialization format of integer values
- added integer value serialization format round trip (e.g. hex in, hex out)
Changes:
- updated conformance tests
- TOML version bump to v1.0.0-rc.3
- refactors and cleanups based on feedback given here
Build system:
- renamed build options to
snake_case - tests, examples and cmake config now explicitly disabled when used as a subproject
- removed small_binaries (it's now implicit when building as release)
- bumped minimum meson version to 0.53