Toml11 Versions Save

TOML for Modern C++

v3.8.1

4 months ago

Fixed

  • stop using strerror_x variants in toml::parse(FILE*) overload (#235)

v3.8.0

4 months ago

Fixed

  • Remove needless copy of std::string (#189) (by @muggenhor)
  • Report an error when integer overflows (#190)
  • Report an error if a table is inserted to array-of-table
  • Avoid self-assignment (#192)
  • Fix typo in README (#194) (by @spiderman-idog)
  • Avoid possible lexer truncation warnings (#196) (by @Jajauma)
  • Do not set CMAKE_CXX_STANDARD in CMakeLists (#202)
  • Fix function name in error messages (#207) (by @cxw42)
  • Fix invalid-utf8 error in literal string (#208) (by @cxw42)
  • Enable to reopen implicitly defined table (#211)
  • Fix long binary integer (#213)
  • Fix for case when vector iterator is raw pointer (#214) (by @VestniK)
  • Consider locale while serialization (#218)
  • Do not move temporary object (#229)
  • Escape control characters in keys (#230) (by @arp242)
  • Fix function signature of strerror_r on macos (#231, #233) (by @Esonhugh)
  • Limit value recursion depth (#234)

Added

  • Add escape sequence of ESC
  • Support opting out of the default [error] prefix (#187) (by @ken-matsui)
  • Support changing color mode at runtime (#188) (by @ken-matsui)
  • Add toml::parse(FILE*) overload (#193) (by @lukash)
  • Add installation example with checkinstall and cmake (#225) (by @kfirgollan)
  • Add fuzzing test based on ClusterFuzzLite (#232) (by @DavidKorczynski)

Changed

  • Simplify unit test build (#200) (by @ctcmkl)
  • Update github actions checkout v2 to v3 (#210) (by @offa)
  • Update toml-test to v1.3.0
  • Add note for C++17 feature in README (#217)
  • Require CMake 3.5+ (#223) (by @offa)
  • Remove travis ci setup (#224) (by @offa)
  • Use secure version of strerror, instead of std (#226)

v3.7.1

2 years ago

Fixed

Fixed many corner-cases.

  • spelling fixes (#167) (@karl-nilsson)
  • fix condition of inlining while serialization (#169) (@ohdarling)
  • fix warning on MSVC C26478 (#171) (@estshorter)
  • replace not in README by ! (#172) (@estshorter)
  • fix many warnings around macro (#176) (@phlptp)
  • fix g++ free-nonheap-object warning (#173) (#178) (@marascio)
  • make installation optional if embedded (#185) (@ax3l)
  • fix out_of_range exception with malformed toml file (#164)
  • workaround __cplusplus macro on MSVC (#182)
  • fix SFINAE condition while conversion (#177)
  • reorder macro to detect MSVC earlier (#166)
  • fix EOF after comment without line feed (#180)
  • fix serialization of empty key
  • fix serialization of NaN and Inf; use literal string instead of printf
  • fix serialization of an array containing a table; if an array has a table and other value (e.g. integer), the table must be inlined.
  • fix serialization of control chars in a string
  • disallow non-existing datetime
  • disallow 0x0A-1F in a string
  • disallow invalid UTF-8 sequence in a string
  • disallow subtable key conflict
  • disallow null char at the end of input (#181)
  • disallow mixing dotted key and inline table
  • disallow mixing dotted key and table (#183)
  • show better error message for a trailing comma in an inline table

v3.7.0

2 years ago

Added

  • add a macro TOML11_PRESERVE_COMMENTS_BY_DEFAULT
  • add find_or(value, key1, key2, ..., keyN, opt) (#156)
  • add a macro TOML11_DEFINE_CONVERSION_NON_INTRUSIVE (#139)

Fixed

  • show filename of an empty file in error messages (#161) (@founderio)
  • suppress warnings by -Wshadow (#158)
  • fix uneven spacing between tables (#152)

Changed

  • define precedence between conversion function and constructor in toml::get/find (#159)

v3.6.1

3 years ago

Fixed

  • workaround error in SFINAE with MSVC
  • compilation error in <filesystem> with MinGW (@chronoxor) (#136)
  • fix comment duplication while serialization (#131)
  • fix comment disappearance while serialization
  • fix empty array serialization (#142)
  • avoid string::back on an empty string (#141)
  • add missing include files (@amerry) (#144)
  • fix typo in an error message (@sneakypete81) (#148)
  • added TOML11_DISABLE_STD_FILESYSTEM to disable <filesystem> manually (related to: #150)

v3.6.0

3 years ago

Added

  • Supported u8"..."_toml literal in C++20 mode (#104).
  • Allow comments before comma according to the clarification (ABNF change) in the TOML spec.

Changed

  • Improved the error message for the case of invalid key format.
  • Removed templates from internal implementation and it brings ~20% speedup for compilation without runtime speed loss.
  • Made testing optional in the CMakeLists (@MoAlyousef) (#130).

Fixed

  • Fixed the case when the file does not have line feed at the end of the file but 0 value (#128).
  • Fixed include path in the sample code (@kenichiice) (#127).

v3.5.0

3 years ago

Added

  • support conversion from toml array into std::forward_list
  • cut out the need of default constructor when converting a toml value into a user-defined struct (#108)
  • remove TOML11_UNRELEASED_FEATURES because all of them are released in v1.0.0-rc1
  • parse nanoseconds in date-time types (Scott McCaskill) (#117)
  • accept std::filesystem::path in C++17 (#113)
  • add TOML11_VERSION_(MAJOR|MINOR|PATCH) macros to toml.hpp (#114)

Fixed

  • fix "Finding a value in an array" example in README (@halfelf) (#119)
  • fix MSVC warning C4866 (@maass-tv and @SeverinLeonhardt) (#121)
  • workaround min/max macroes defined in windows.h (#123)

v3.4.0

4 years ago

Changed

  • use ExternalProject to retrieve TOML test data (@jwillikers)
  • simplify serializer's template argument
  • format the message in exceptions thrown from .at()
  • show function name from which toml::type_error is thrown

Fixed

  • workaround an error in gcc 4.8.x
  • fix exception section in the README (#107)

v3.3.1

4 years ago

Fixed

  • Fix clang -Wrange-loop-analysis. (#98) (@jwillikers )
    • Avoid the unnecessary copy of strings.
  • Fix clang -Wundef. (#99) (@jwillikers )
    • Check environment-specific macro definition before using it
  • Use cache variables in CMakeLists (#101 ) (@jwillikers )
  • Fix edge cases around TOML strings.
    • Recently TOML spec clarified behaviors in some edge cases around strings.
    • toml11 now works with all the following examples listed in the official spec.
    • toml11 serializer output becomes cleaner in those edge-cases.
# The following examples are copied from the official TOML spec.

str4 = """Here are two quotation marks: "". Simple enough."""
# str5 = """Here are three quotation marks: """."""  # INVALID
str5 = """Here are three quotation marks: ""\"."""
str6 = """Here are fifteen quotation marks: ""\"""\"""\"""\"""\"."""

# "This," she said, "is just a pointless statement."
str7 = """"This," she said, "is just a pointless statement.""""

quot15 = '''Here are fifteen quotation marks: """""""""""""""'''

# apos15 = '''Here are fifteen apostrophes: ''''''''''''''''''  # INVALID
apos15 = "Here are fifteen apostrophes: '''''''''''''''"

# 'That's still pointless', she said.
str = ''''That's still pointless', she said.'''

v3.3.0

4 years ago

Added

  • add find<T>(value, "array", 1) (#79 )
  • enable find<UserDefined>(value, "user-defined") when UserDefined struct has a constructor from toml::value.
  • add toml::value::size() for array, table, and string values.
  • add toml::value::push_back(value), toml::value::emplace_back(Ts...) for array values.
  • add toml::value::count(key), toml::value::contains(key) for table values.

Fixed

  • suppress warnings related to some flags that are not turned on by -Wall and -Wextra

Misc

  • run LLVM address sanitizer and LLVM undefined behavior sanitizer on CI
  • add many other warning flags that are not turned on by -Wall and -Wextra on CI build
  • add -Werror on CI build