Commit Graph

38 Commits

Author SHA1 Message Date
Mark Gillard
2cee913b6d fix spurious warnings with MSVC /Wall (fixes #94) 2021-04-23 00:51:25 +03:00
Mark Gillard
53f29d9365 restructuring and minor refactoring
There's no new functionality here. It's purely tooling + CI stuff:
- moved `python` => `tools`
- moved documentation images to subfolder
- moved `vs/tests` to tests/vs projects
- moved `vs` solution etc to root
- added semicolons to macros
- added cpp.hint to help VS intellisense
- migrated documentation generation to external lib
2021-04-18 22:58:41 +03:00
Mark Gillard
b11f28af78 fixed dotted kvps being unable to add subtables (fixes #61)
also:
- fixed extremely weird linker error on linux ICC (fixes #83)
- added some missing GNU attributes
- added additional tests
2021-01-16 12:59:10 +02:00
Mark Gillard
1ef6c0c6c8 update copyright year [skip ci] 2021-01-02 17:48:47 +02:00
Mark Gillard
44c7da27d6 fixed toml::literals namespace ambiguity (closes #69) 2020-10-22 16:25:26 +03:00
Mark Gillard
30b756f993 fixed parser not handling overlong float literals correctly
also a few other edge cases (see #65)
2020-10-10 11:45:53 +03:00
Mark Gillard
33f7d732a1 fixed issue handling malformed utf-8 2020-10-10 00:30:12 +03:00
Mark Gillard
6255dd765c fixed issue handling malformed utf-8 at EOF (closes #65) 2020-10-09 23:49:06 +03:00
Mark Gillard
fe0ac89500 fixed parser memory leak (fixes #64)
also:
- build/infra improvements
- updated submodules
- updated conformance tests
- misc code review/refactors
- library version bump
- TOML version bump
2020-10-09 11:44:40 +03:00
Mark Gillard
dc29f80a4d added value_flags
Allows controlling the output format of integers, and round-trips their format when serializing after parsing.
2020-09-06 13:01:14 +03:00
Mark Gillard
40d87de5b5 cleaned up some compiler warning management spam
also:
- removed `std::endl` from example code in documentation
- trimmed some fat from the toml.hpp generator
2020-08-11 18:07:02 +03:00
Mark Gillard
2ac735054a updated TOML version to v1.0.0-rc.2
also:
- simplified warning handling macros
- minor version bump
2020-08-09 12:32:17 +03:00
Mark Gillard
82616e734c fix some issues handling infinities and NaNs
fixes #51
2020-08-03 09:10:06 +03:00
Mark Gillard
f6450f6ff9 moved is_homogenous to toml::node
also:
- added is_homogenous overload for identifying failure-causing element (to assist with implementing #45)
- added table::is_homogenous
- added value::is_homogenous (just for generic code's sake)
2020-08-02 17:02:10 +03:00
Mark Gillard
539aad89f4 fixed array::insert not working correctly in some cases
also:
- improved the documentation for table and array
- fixed documentation font on mobile
2020-07-26 15:03:33 +03:00
Mark Gillard
fd07301bae improved support for __fp16, _Float16 and __float128
also:
- fixed a bunch of doxygen parsing issues
- added `#define` leak detection to the single-header script
- renamed `TOML_ALL_INLINE` to `TOML_HEADER_ONLY` (the old one still works too)
- simplified abi namespace definitions
2020-07-25 20:50:24 +03:00
Mark Gillard
9afa43e7c2 fixed leading/trailing newlines with printing to ostreams (fixes #48)
also:
- change internal nan constant to match qNaN bits on x86/ARM
2020-07-21 16:11:32 +03:00
Mark Gillard
ca6f639fb9 fixed narrowing conversion warnings when constructing int values from unsigned
also:
- added ability to construct values from wide strings and u8 strings
- added non-template version of array::is_homogeneous()
- added explicit instantiations for more template types when `!TOML_ALL_INLINE`
- cleaned up abi namespaces
- simplified build and test machinery on windows
- removed TOML_CHAR_8_STRINGS since it no longer makes sense
2020-07-20 00:40:55 +03:00
Mark Gillard
cb791fe0ef expanded allowable conversion semantics of value and value_or
also:
- fixed infinity and NaN-related code breaking when using -ffast-math and friends
- added much more detail to many static_assert error messages
- added more test permutations of various compiler flags
- added many more static checks to test code
2020-07-17 16:33:56 +03:00
Mark Gillard
de07ba7187 string value serialization now emits literals where possible (closes #43)
also added support for wide strings on Windows (closes #42):
- added wide-string path arg overloads of `parse()` and `parse_file()`
- added wide-string support to all relevant `table` and `array` ops
- added `std::wstring` support to `node::value()` and `node::value_or()`
- added `std::wstring` support to `node_view::value()` and `node_view::value_or()`
- added wide-string overloads of `table::operator[]`
- added wide-string overloads of `node_view::operator[]`
- added `source_region::wide_path()`
- added `TOML_WINDOWS_COMPAT` switch for explicitly enabling/disabling this stuff

also:
- fixed internal macro `assert_or_assume` leaking out of `toml_parser.hpp`
- deprecated `node_view::get()` in favour of `node_view::node()`
- minor documentation fixes
- minor cleanup
2020-07-14 20:50:24 +03:00
Mark Gillard
8d958fcc54 documentation improvements and minor cleanup
- split conformance tests into multiple TU's
- added "Try this code on Compiler Explorer" links to the main page
- minor preprocessor cleanup
2020-07-06 01:03:07 +03:00
Mark Gillard
f52949a481 refactoring parser to reduce binary sizes
Basically boils down to eliminating excessive template instantiations.
2020-06-29 17:49:48 +03:00
Mark Gillard
0b334fd7d2 added rvalue overload of array::flatten
also:
- made array::flatten return a reference to the array
- minor documentation fixes
2020-06-28 15:26:18 +03:00
Mark Gillard
b8438b3258 fixed ML strings not allowing whitespace after line-ending backslashes
also:
- fixed value comparison with special floats
- added all the remaining conformance tests from BurntSushi/toml-test and iarna/toml-spec-tests
- added toml::inserter
- added license boilerplate to test files
2020-06-27 15:55:15 +03:00
Mark Gillard
761690d4a6 fixed BOM check causing EOF on very short iostream inputs
also fixed a number of small parsing conformance issues
2020-06-25 17:33:01 +03:00
Mark Gillard
00a8d14a49 minor preprocessor/doxygen cleanup 2020-06-23 13:04:05 +03:00
Mark Gillard
965a707fe2 deleted some duplicated preprocessor handling
also:
- updated test and dox submodules
- updated README
2020-06-23 00:35:02 +03:00
Mark Gillard
7fb4dbbb6d fixed std::numeric_limits::max() getting broken by macros in some environments 2020-06-21 00:02:59 +03:00
Mark Gillard
ab85988d59 fixed single-digit negative integer parsing bug (closes #39)
also:
- fixed overflow for very long binary integer literals
- added optimization for parsing string views containing trailing null characters
- added more tests
2020-06-19 14:17:52 +03:00
Mark Gillard
83315a3912 fixed multi-line strings being allowed in keys
also:
- significantly improved the performance of toml::parse_file
- improved the performance of printing to streams for deepy-nested TOML data
- simplified some of the examples
- added more tests
- cleaned up some of the test code
2020-06-08 18:31:23 +03:00
Mark Gillard
da024510c5 fixed parse failure when parsing an empty file
Blank files are in fact totally valid TOML and should not cause a parse failure (fixes #35).
2020-06-07 16:28:08 +03:00
Mark Gillard
5e683e9a73 fixed is_unicode_XXXXXX functions being wrong in some cases
also:
- added tests for unicode functions
- changed `TOML_LIKELY` semantics to work with gcc-style intrinsics
- greatly improved unicode-related codegen
- parser refactoring
2020-04-18 23:42:33 +03:00
Mark Gillard
0c2279d15a minor improvements to the wording of some error messages
also:
- added 'error_printer' example
2020-04-14 12:45:32 +03:00
Mark Gillard
cd9b3d2198 fixed some multi-line string parsing issues
also:
- fixed pedantic warnings on gcc 10 and clang 11
2020-04-13 23:23:11 +03:00
Mark Gillard
42af364887 refactored parser
Mainly to simplify a the error handling code (it had gotten a bit verbose), but also to reduce compiled binary sizes.

also:
- moved windows terminal code page stuff in examples to a separate file
2020-04-11 19:43:38 +03:00
Mark Gillard
f3990256ce moved preprocessor machinery to a separate header
- added doxygen page for the configuration options
- added SPDX-License-Identifiers around the place
- changed TOML_UNRELEASED_FEATURES default to 0
- simplified ABI namespace machinery
- fixed a number of doxygen bugs
2020-04-10 19:46:00 +03:00
Mark Gillard
682436aa2e fixed printing of inf and nan
also:
- fixed parser not handling floats with leading '.' characters
- added `TOML_PARSER` configuration option
- added `TOML_LIB_SINGLE_HEADER` indicator
- moved parse_error and the utf8 stream machinery to separate headers
- updated catch2
2020-04-09 16:49:16 +03:00
Mark Gillard
104b2741d1 minor refactoring in the parser to reduce binary sizes
also:
- fixed pedantic vtable warnings on clang with -Weverything
- renamed `_impl.h` headers to `.hpp`
- build system and CI config tweaks
2020-04-08 16:33:57 +03:00