Commit Graph

165 Commits

Author SHA1 Message Date
Niels Lohmann
5773e164bb
🚨 fixed a linter warning 2018-02-28 19:59:54 +01:00
Niels Lohmann
21352c4d8e
♻️ refactored SAX parser 2018-02-26 20:08:12 +01:00
Niels Lohmann
447f5421eb
🔨 overworked release target 2018-02-11 16:50:01 +01:00
Niels Lohmann
548f488941
🔨 overworked Makefile 2018-02-10 14:46:39 +01:00
Niels Lohmann
0111f3187e
🔨 working on #953 2018-02-09 21:30:15 +01:00
Niels Lohmann
2b7b39c72d
🚀 added release target #956 2018-02-04 13:29:23 +01:00
Théo DELRIEU
14cd019861
fix cmake install directory (for real this time)
* Rename 'develop' folder to 'include/nlohmann'
* Rename 'src' folder to 'single_include/nlohmann'
* Use <nlohmann/*> headers in sources and tests
* Change amalgamate config file
2018-02-01 11:06:51 +01:00
Niels Lohmann
1483d39c91
🔨 moved class json_pointer into separate file #920 2018-01-28 15:36:56 +01:00
Niels Lohmann
6855bbb902
🔨 split "parsing" directory to "input" and "output" 2018-01-28 13:15:03 +01:00
Niels Lohmann
f0b26c8f38
added fuzzer for UBJSON input 2018-01-27 18:38:11 +01:00
Niels Lohmann
3c68a796df
🔥 deprecated iterator_wrapper #874
Also fixed some warnings from GCC.
2018-01-23 16:33:08 +01:00
Niels Lohmann
3cca630836
🔨 cleanup after #915 2018-01-21 15:55:35 +01:00
Niels Lohmann
3ac674562f
🔨 clean up 2018-01-14 22:26:20 +01:00
Niels Lohmann
d9446b0e6e
Merge pull request #911 from theodelrieu/fix/cmake_install
Fix/cmake install
2018-01-14 20:08:49 +01:00
Niels Lohmann
411c16cbb2
📝 overworked documentation wrt. amalgamation #906 2018-01-14 13:08:28 +01:00
Niels Lohmann
420dcf1f25
🚧 added check whether code is amalgamated 2018-01-14 10:10:23 +01:00
Théo DELRIEU
84bffd5d36
move amalgamate tool to third_party folder 2018-01-13 13:05:42 +01:00
Niels Lohmann
ce53537ba2
replaces amalgamation tool
The tool used before created a lot of duplicates inside the generated amalgamation. The new tool is a single Python file which seems to do the same job.
2018-01-09 23:15:06 +01:00
Niels Lohmann
0a2920e0fd
♻️ reorganized code 2018-01-09 18:30:02 +01:00
Théo DELRIEU
7e4ee23f40
add single_header CMake target 2018-01-08 20:09:43 +01:00
Théo DELRIEU
9cab30cfce
add adl_serializer.hpp 2018-01-08 20:09:38 +01:00
Théo DELRIEU
8e9714fe3d
add detail/json_ref.hpp 2018-01-08 20:09:35 +01:00
Théo DELRIEU
a3473fda6a
add detail/serializer.hpp 2018-01-08 20:09:33 +01:00
Théo DELRIEU
c117515e31
add detail/parsing/binary_writer.hpp 2018-01-08 20:09:29 +01:00
Théo DELRIEU
d620f76f0d
add detail/parsing/binary_reader.hpp 2018-01-08 20:09:27 +01:00
Théo DELRIEU
4dbb433a79
add detail/parsing/output_adapters.hpp 2018-01-08 20:09:24 +01:00
Théo DELRIEU
ae6f66048c
add detail/iterators/json_reverse_iterator.hpp 2018-01-08 20:09:21 +01:00
Théo DELRIEU
5fc9ef2b90
add detail/iterators/iteration_proxy.hpp 2018-01-08 20:09:18 +01:00
Théo DELRIEU
bf06cf6c22
add detail/iterators/iter_impl.hpp 2018-01-08 20:09:15 +01:00
Théo DELRIEU
3e65a65290
add detail/iterators/internal_iterator.hpp 2018-01-08 20:09:13 +01:00
Théo DELRIEU
51ecc31db7
add detail/iterators/primitive_iterator.hpp 2018-01-08 20:09:10 +01:00
Théo DELRIEU
9ea25685a8
add detail/parsing/parser.hpp 2018-01-08 20:09:06 +01:00
Théo DELRIEU
3a0743db97
add detail/parsing/lexer.hpp 2018-01-08 20:09:04 +01:00
Théo DELRIEU
7ab3e8d7b3
add detail/parsing/input_adapters.hpp 2018-01-08 20:09:01 +01:00
Théo DELRIEU
21881606f2
add detail/conversions/to_json.hpp 2018-01-08 20:08:58 +01:00
Théo DELRIEU
e0c02c14f0
add detail/conversions/from_json.hpp 2018-01-08 20:08:55 +01:00
Théo DELRIEU
7056b375c4
add detail/value_t.hpp 2018-01-08 20:08:52 +01:00
Théo DELRIEU
8c555db970
add detail/exceptions.hpp 2018-01-08 20:08:50 +01:00
Théo DELRIEU
f364f5ac5a
add detail/meta.hpp 2018-01-08 20:08:47 +01:00
Théo DELRIEU
d686713f91
add detail/macro_{un}scope.hpp 2018-01-08 20:08:44 +01:00
Théo DELRIEU
5bffc95773
add json_fwd.hpp 2018-01-08 20:08:38 +01:00
Niels Lohmann
9a51fb4da2
🚨 fixed some warnings 2017-12-16 22:19:30 +01:00
Niels Lohmann
615366447a
🔧 removing -Weffc++ warnings 2017-10-05 19:43:19 +02:00
Niels Lohmann
7b82e4b4c8
🔨 added Makefile target to calculate lcov coverage 2017-10-05 00:17:09 +02:00
Niels Lohmann
99ee4c1eaf
🔨 cleaned up Makefiles and docs #698 2017-10-04 19:27:35 +02:00
Niels Lohmann
8b123107c0
🔨 fixed some pedantic GCC warnings 2017-07-07 22:41:22 +02:00
Niels Lohmann
2fd214c14b
🔨 adjusted pedantic flags 2017-06-20 23:05:37 +02:00
Niels Lohmann
89efe627fe
🔨 a lot of restructuring
- removed uncached input stream adapter; it was too slow anyway
- implemented a class binary_read which parses CBOR based on input
adapters
- in the CBOR parser, numbers are created via memcpy to avoid undefined
behavior
2017-04-02 18:46:21 +02:00
Niels Lohmann
a690a9f2d2
Merge branch 'develop' into feature/manual_lexer 2017-03-29 00:57:09 +02:00
Niels Lohmann
c2e80a72d7
🔨 deprecated j << istream / j >> ostream functions #367
The implementation is non-standard. Deprecation allows a simpler API in
the future without removing any features.
2017-03-29 00:39:47 +02:00
Niels Lohmann
40160f482a
🚧 manual lexer
This commit removed the re2c lexer and replaced it by a manual version.
Its integration is not yet complete: number parsing does not respect
locales or overflows. Furthermore, parsing does not need to end with
EOF. Therefore, a lot of test cases fail. The idea is to push this
branch forward so we can conduct performance comparisons. So far, a
nice side effect are better diagnosis messages in case of parse errors.
2017-03-24 19:49:02 +01:00
Krzysztof Woś
b9c3b8d688 Exit with an error if re2c is not available
Instead of overwriting src/json.hpp with an empty file
2017-03-20 16:00:58 +09:00
Niels Lohmann
483a58f625
🚨 added pedantic flags for GCC
With GCC 7, there are even more diagnostic flags.
2017-03-16 18:35:45 +01:00
Niels Lohmann
21ec0e7806
🔨 added user-defined exception 110 2017-03-06 21:00:13 +01:00
Niels Lohmann
7b8fd864e2
🔥 removed deprecated constructor #480
The constructor basic_json(std::istream&, const parser_callback_t) has
been deprecated since version 2.0.0. This commit removes it together
with its code example, deprecation macro, and test cases. The code now
also compiles with -W-deprecated-declarations.
2017-03-01 17:49:03 +01:00
Niels Lohmann
8cec55a271
🚧 fixed more warnings 2017-02-22 18:14:29 +01:00
Niels Lohmann
c8191c8172
🔨 further cleanup 2017-02-12 18:50:17 +01:00
Niels Lohmann
db33629990 💄 cleanup after #410 2017-01-01 21:34:58 +01:00
Daniel Cohen
010ea126f3 going to try clang_sanitize with libstdc++ with g++-6 implementation
Conflicts:
	.travis.yml
	Makefile
2016-12-30 14:24:22 +02:00
Niels Lohmann
e3b036348b 🚧 added targets for parallel AFL fuzzing 2016-12-25 16:36:43 +01:00
Niels Lohmann
1399abc583 🚧 added MessagePack fuzz target 2016-12-25 16:18:56 +01:00
Niels Lohmann
e4cc62e653 🐛 fixed Makefile to work with proper CBOR files 2016-12-25 16:07:10 +01:00
Niels Lohmann
f87f4c06f9 🚧 cleanup 2016-12-22 12:10:52 +01:00
Niels Lohmann
33be4e7f1f 🚧 cleanup 2016-12-22 12:08:36 +01:00
Niels Lohmann
a084e90f39 🔨 split AFL test in driver and test file 2016-12-22 11:09:26 +01:00
Niels Lohmann
e1f98fbfc0 🚧 splitting tests into several binaries 2016-11-27 16:19:26 +01:00
Niels
ed611119d9 📈 reducing benchmark variance (#365) 2016-11-23 08:47:40 +01:00
Niels
b820bb3b1f fixed a lot of unicode errors (#344)
BOMs currently yield an error.
2016-10-29 19:35:17 +02:00
Niels
29c5f32d42 fixed performance degradation (#272) 2016-08-29 22:36:33 +02:00
Niels
d2564c6100 added cppcheck target for travis 2016-08-18 18:29:19 +02:00
Niels
bd75ef9f27 added check-fast flag 2016-08-04 22:05:16 +02:00
Niels
d80329034e split test suite in one file per test case 2016-08-04 21:55:47 +02:00
Niels
5541e6f6f9 split unit tests 2016-08-04 07:24:46 +02:00
Niels
263e6af48d switch off assertions for benchmarks 2016-07-31 23:03:14 +02:00
Niels
a05df038cd prepared release 2016-07-31 13:37:04 +02:00
Niels
4c98c971b8 added benchmarks for numbers 2016-07-20 23:06:45 +02:00
Niels
6542ae5766 fixed re2c warnings 2016-06-23 22:49:48 +02:00
Niels
04e1e7b586 cleanup 2016-05-29 14:56:08 +02:00
Niels
aa8aa3ba9f overworked coverity stuffy 2016-05-29 14:06:43 +02:00
Chris Kitching
af76508fe7
Introduce structure to the test/ directory
This introduces a clear separation between test data and test
binaries. Test data is moved into test/data, and the test binaries
move into test/src. A new CMake script specific to building the
tests is introduced in /test to slightly clean up the toplevel
one.

As well as tidying things up, this makes the next step trivial...
2016-05-11 01:30:08 +01:00
Niels
76a5a776eb cleanup after #234 2016-04-16 12:19:10 +02:00
Niels
f160f33fb5 update from master 2016-02-14 21:44:00 +01:00
Niels
153e105164 cleanup after #207 2016-02-14 18:38:29 +01:00
Niels
a69b1a6f0b added noexcept and constexpr 2016-02-14 16:42:48 +01:00
Michael Macnair
9e500b49ac Add support for afl-fuzz testing
"make fuzz" creates a simple executable that de-serialises stdin
and re-serialises to stdout.
"make fuzz_testcases" extracts the smaller json test cases into
a testcases directory.

The library can then be fuzzed as follows:
    CC=afl-clang-fast make fuzz
    make fuzz_testcases
    mkdir out
    afl-fuzz -i testcases -o out ./fuzz
2016-02-12 09:35:08 +00:00
Niels
ff6f723195 removed token 2016-01-26 23:30:51 +01:00
Niels
3dfa56795f added note 2016-01-26 23:27:07 +01:00
Niels
1c80c2231f linked releases in ChangeLog 2016-01-26 23:10:52 +01:00
Niels
89b07bd3af added (generated) changelog 2016-01-26 22:59:57 +01:00
Niels
5bc1b65676 clean up (for #154) 2015-12-14 16:58:49 +01:00
Niels
258f04c561 fixed #154 (no more warnings for incomplete switches) 2015-12-14 16:32:37 +01:00
Niels
bb0d01e597 better compiler matrix 2015-08-21 19:05:47 +02:00
Niels
c85dbef98f more documentation 2015-06-21 22:42:32 +02:00
Niels
91c330ae01 reorganized repo 2015-06-21 21:24:03 +02:00
Niels
4bb5126502 more documentation 2015-06-21 18:30:08 +02:00
Niels
d972483b33 overworked documentation configuration 2015-06-21 13:39:10 +02:00
Niels
f6040ea3bc minor change 2015-06-21 13:16:52 +02:00
Niels
e0fa56f84f clean up 2015-06-21 13:14:39 +02:00
Niels
332b10998a clean up 2015-06-21 13:12:17 +02:00
Niels
022c11bf86 broke Makefile 2015-06-21 12:48:18 +02:00