Skip to content

Releases: marzer/tomlplusplus

v2.1.0

11 Aug 15:50
Compare
Choose a tag to compare

Fixes:

  • fixed inconsistent emission of leading/trailing newlines when writing a table to an ostream (#48) (@levicki)
  • fixed Wcast-align warning spam on ARM
  • fixed array::insert not working correctly in some cases
  • fixed node::value_or() not having the same semantics as node::value() (#50) (@whiterabbit963)
  • fixed 'misleading assignment' of rvalue node_views (#52) (@Reedbeta)
  • fixed some issues handling infinities and NaNs (#51) (@Reedbeta)
  • fixed some minor documentation issues

Additions:

  • added support for __fp16, _Float16, __float128, __int128_t and __uint128_t
  • added copy construction/assignment for arrays, tables and values
  • added insert, emplace, push_back etc. compatibility with node_views
  • added node::is_homogenous
  • added table::is_homogenous
  • added value::is_homogenous (just for generic code's sake)
  • added is_homogenous overload for identifying failure-causing element
  • added implicit conversion operator from node to node_view (#52) (@Reedbeta)

Changes:

  • renamed TOML_ALL_INLINE to TOML_HEADER_ONLY (the old name will still work, but is no longer documented)
  • general cleanup

v2.0.0

20 Jul 14:53
Compare
Choose a tag to compare

This release contains a fairly significant number of 'quality of life' improvements, yay! But also necessitates an ABI break (hence the version number bump). Changes that might block a migration are annotated with '⚠️'.

Fixes:

  • fixed infinity and NaN-related code breaking when using -ffast-math and friends
  • fixed narrowing conversion warnings when constructing int values from unsigned
  • fixed Visual Studio debugger native visualizations for date, time, time_offset, date_time
  • fixed some static assert messages being badly formatted on clang
  • fixed internal macro assert_or_assume leaking out of toml_parser.hpp

Additions:

  • added additional types allowed in node::value() and node::value_or() (see value() dox for examples)
  • added additional types allowed in node_view::value() and node_view::value_or()
  • added node::value_exact() and node_view::value_exact()
  • added support for interop with wide strings on Windows:
    • added wide-string path arg overloads of parse() and parse_file()
    • added wide-string support to all relevant table and array ops
    • added wide-string support to node::value(), node::value_or()
    • added wide-string support to node_view::value(), node_view::value_or()
    • added wide-string support to value<string> constructor
    • added wide-string overloads of node_view::operator[]
    • added source_region::wide_path()
    • added TOML_WINDOWS_COMPAT switch for explicitly enabling/disabling this stuff
  • added emission of 'literal' strings to the TOML serializer
  • added lots of minor documentation fixes and improvements
  • added Visual Studio debugger native visualizations for table, array, parse_result, and parse_error (#46) (@Reedbeta)
  • added non-template version of array::is_homogeneous()
  • added explicit instantiations of more template types when !TOML_ALL_INLINE

Changes:

  • improved the quality of many static_assert error messages
  • simplified internal ABI namespaces ⚠️

Removals and Deprecations:

  • deprecated node_view::get() in favour of node_view::node() ⚠️
  • deprecated parse_result::get() in favour of parse_result::table() ⚠️
  • removed TOML_CHAR_8_STRINGS since it no longer makes sense ⚠️
  • renamed date_time::time_offset to just 'offset' ⚠️

v1.3.3

29 Jun 16:44
Compare
Choose a tag to compare

Fixes:

  • fixed some minor TOML spec conformance bugs
  • fixed BOM check causing EOF on very short iostream inputs
  • fixed std::numeric_limits::max() getting broken by macros in some environments
  • fixed 'unknown pragma' warning spam in older versions of GCC
  • fixed a few minor documentation issues

Additions:

  • added rvalue overload of array::flatten
  • added conformance tests from BurntSushi/toml-test and iarna/toml-spec-tests
  • added toml::inserter as a workaround for nested construction of single-element toml::arrays performing move-construction instead
  • added license boilerplate to test files

Changes:

  • refactored the parser to reduce binary size

v1.3.2

19 Jun 18:42
Compare
Choose a tag to compare

Fixes:

  • fixed single-digit negative integers parsing as positive
  • fixed parse failure when parsing an empty file
  • fixed multi-line strings being allowed in keys
  • fixed overflow for very long binary integer literals

Changes:

  • improved the performance of toml::parse_file
  • improved the performance of printing to streams for deepy-nested TOML data

v1.3.0

02 Jun 15:54
Compare
Choose a tag to compare

Fixes:

  • fixed formatter::print_inline() causing compilation failures in DLL builds
  • fixed BOMs occasionally causing overflow/crash in char8 mode
  • fixed some spurious warnings in GCC 10
  • fixed clang static analyzer warning in BOM handling code

Additions:

  • added table_iterator::operator ->
  • added array::resize() and array::truncate()
  • added array::capacity(), array::shrink_to_fit(), array::max_size()
  • added non-const -> const conversion for table and array iterators

Changes:

  • renamed table iterator proxy pair members to first and second to match STL

v1.2.5

24 Apr 12:51
992e703
Compare
Choose a tag to compare

Fixes:

  • fixed some multi-line string parsing issues
  • fixed pedantic warnings on gcc 10 and clang 11
  • fixed is_unicode_XXXXXX functions being wrong in some cases
  • fixed TOML_LIKELY not being correct on older versions of gcc and clang
  • fixed minor documentation issues (#26, #38) (@prince-chrismc)

Additions:

  • added additional error message cases to the parser
  • added error_printer example
  • added toml_generator example

Changes:

  • improved unicode-related codegen

v1.2.3

11 Apr 17:32
Compare
Choose a tag to compare

Fixes:

  • fixed printing of inf and nan
  • fixed parser not handling floats with leading '.' characters
  • fixed pedantic vtable warnings on clang with -Weverything
  • fixed a number of documentation bugs
  • fixed TOML_UNRELEASED_FEATURES default being 1 (it should have been 0)

Additions:

  • added TOML_PARSER configuration option
  • added TOML_LIB_SINGLE_HEADER indicator
  • added doxygen page for the configuration options
  • added SPDX-License-Identifiers around the place

Changes:

  • split some header files up to make future maintenance easier
  • refactored and greatly simplified parser

v1.2.0

07 Apr 20:01
Compare
Choose a tag to compare

Fixes:

  • fixed some parsing and printing ops being locale-dependent
  • fixed some parsing errors at EOF when TOML_EXCEPTIONS = 0
  • fixed some unreferenced variable warnings on older compilers
  • fixed some 'maybe-uninitialized' false-positives on GCC9
  • fixed pkgconfig subdir being wrong

Additions:

  • added support for implementations without <charconv>
  • added cmake package config generator (#22) (@GiulioRomualdi)
  • added build config feature option GENERATE_CMAKE_CONFIG
  • added many new tests

v1.1.0

03 Apr 13:59
Compare
Choose a tag to compare

Fixes:

  • fixed some parser error paths not returning early enough TOML_EXCEPTIONS=0
  • fixed a number of minor documentation issues

Additions:

  • added support for TOML 1.0.0-rc.1 🎉
  • added operator[], begin(), end() to toml::parse_result for TOML_EXCEPTIONS=0
  • added additional compilation speed improvements for TOML_ALL_INLINE=0
  • added more specific error messages for parsing errors relating to prohibited codepoints
  • added a large number of additional tests
  • added support for installation with meson (#16) (@ximion)
  • added the array and table iterators to the toml namespace

v1.0.0 🎉

28 Mar 17:03
Compare
Choose a tag to compare

Fixes:

  • fixed minor documentation issues

Changes:

  • refactoring of ABI-based inline namespaces