Commit Graph

3047 Commits

Author SHA1 Message Date
Niels Lohmann
d300a8e268
🚨 fixed warnings #776 2017-10-13 08:46:29 +02:00
Perry Kundert
0b803d0a5f Simplify the json/src/benchmarks.cpp to allow more optimal code gen.
o For some unknown reason, the complexity of the benchmark platform
  prevented some C++ compilers from generating optimal code, properly
  reflective of the real performance in actual deployment.
o Added the json_benchmarks_simple target, which performs the same
  suite of tests as json_benchmarks.
o Simplified the benchmark platform, and emit an "Average" TPS
  (Transactions Per Second) value reflective of aggregate parse/output
  performance.
2017-10-07 15:50:19 -07:00
Perry Kundert
23440eb86e Remove outdated commentary about the value of eof(), retain input type
o We assume the same character int_type as the unerlying std::istream
o There are no assumptions on the value of eof(), other than that it
  will not be a valid unsigned char value.
o To retain performance, we do not allow swapping out the underlying
  std::streambuf during our use of the std::istream for parsing.
2017-10-06 12:54:43 -07:00
Perry Kundert
45e1e3d48a Revert some unnecessary member initializer changes. 2017-10-06 07:53:31 -07:00
Perry Kundert
5e480b56d8 Further simplify character type handling 2017-10-06 07:37:49 -07:00
Perry Kundert
1b43a45bec Implement correct handling of std::streambuf int_type, eof()
o Make no assumptions about eof(), other than that it is somewhere
  outside of the valid range of char_type.
2017-10-05 16:16:41 -07:00
Perry Kundert
184dab60e6 Accelerate access to underlying std::istream streambuf 2017-10-05 16:16:41 -07:00
Perry Kundert
f775922ca8 Specify initializers for yytest, token_string using initializer-lists
o We can retain -Weffc++ and specify default initializers by using
  initializer lists.  The risks are low (of additional non-conformat
  compilers), because there is already one other such initialization
  used in the code-base.
2017-10-05 16:16:41 -07:00
Perry Kundert
546e148b24 Further performance improvements, and corrections in get_token_string
o An (-'ve valued, typically -1) EOF must never be allowed in
  token_string, as it be converted to 255 -- a legitimate value.
o Comparing against a specific eof() (-1, typically) is more costly than
  detecting +'ve/-'ve.  Since EOF is the only non-positive value allowed
  we can use the simpler test.
o Removed unnecessary test for token_string size, as it is already
  tested in the method, and must never occur in correct code; used an
  assert instead.
2017-10-05 16:16:41 -07:00
Perry Kundert
8665e25942 Rename get_string to move_string to imply side-effect 2017-10-05 16:16:41 -07:00
Perry Kundert
e0d890cc23 Corrected unnnecessary const restriction on returned std::string 2017-10-05 16:16:41 -07:00
Perry Kundert
97a388802d Improve performance by constructing yytext as a std::string
o Return its contents when necessary.  In many cases, this avoids
  construction of multiple copies of the yytext token.  Exceeds
  performance of current develop branch.
2017-10-05 16:15:46 -07:00
Perry Kundert
7c523338c5 Remove unnnecessary NUL termination of yytext (as it may contain NULs) 2017-10-05 16:01:41 -07:00
Perry Kundert
14ca1f6f09 Restore istream performance #764
o Use std::streambuf I/O instead of std::istream; does not maintain
  (unused) istream flags.
o Further simplify get/unget handling.
o Restore original handling of NUL in input stream; ignored during
  token_string escaping.
2017-10-05 16:01:41 -07:00
Perry Kundert
12efeadc2e Further simplify istream handling; use native unget 2017-10-05 16:01:41 -07:00
Perry Kundert
f585fe4eec Test to confirm parsing of multiple JSON records in a istream #367 2017-10-05 16:01:41 -07:00
Perry Kundert
90adf6ec20 Simplify get_token_string, unnecessary buffering, handle Byte Order Mark 2017-10-05 16:01:41 -07:00
Niels Lohmann
0c0851dbea
📝 comment how to integrate tsl::ordered_map (#546) 2017-10-05 20:36:18 +02:00
Niels Lohmann
bab4a15748
📝 comment how to integrate fifo_map (#485) 2017-10-05 20:33:27 +02:00
Niels Lohmann
60439aff05
📝 different cmake call 2017-10-05 19:43:59 +02:00
Niels Lohmann
73d1b55aba
🔧 executing tests in parallel 2017-10-05 19:43:39 +02:00
Niels Lohmann
615366447a
🔧 removing -Weffc++ warnings 2017-10-05 19:43:19 +02:00
Niels Lohmann
73727c989c
Merge branch 'feature/coveralls' into develop 2017-10-05 19:08:28 +02:00
Niels Lohmann
75f4678b96
🔨 added filter script for branch coverage 2017-10-05 19:08:15 +02:00
Niels Lohmann
c204ac82e0
🔨 adjusted Coverity script to work without Makefile 2017-10-05 07:13:59 +02:00
Niels Lohmann
7b82e4b4c8
🔨 added Makefile target to calculate lcov coverage 2017-10-05 00:17:09 +02:00
Niels Lohmann
1b3df3a63f
🔨 trying to use Coveralls with CMake #698 2017-10-04 22:18:21 +02:00
Niels Lohmann
99ee4c1eaf
🔨 cleaned up Makefiles and docs #698 2017-10-04 19:27:35 +02:00
Niels Lohmann
5cb6d7187d
🚨 fixing last warning in #755 2017-10-04 17:28:35 +02:00
Niels Lohmann
4e81c1db47 Merge pull request #765 from nlohmann/feature/issue698
using more CMake
2017-10-04 10:39:56 +02:00
Niels Lohmann
e2045eae53
🏁 and another try 2017-10-03 18:47:08 +02:00
Niels Lohmann
a85bc358f7
🏁 another try 2017-10-03 18:21:40 +02:00
Niels Lohmann
3457e7bc5b
🏁 try to get MSVC 2017 running again 2017-10-03 17:57:40 +02:00
Niels Lohmann
54bd1b5124
Merge branch 'develop' into feature/issue698 2017-10-03 17:23:05 +02:00
Niels Lohmann
7435d54e97
🔨 clean up 2017-10-02 23:06:41 +02:00
Niels Lohmann
4912231450
Merge branch 'develop' into feature/issue698 2017-10-02 18:25:25 +02:00
Niels Lohmann
b91805e1f0
🚨 removing a compiler warning #755 2017-10-02 18:11:36 +02:00
Niels Lohmann
f89f8b2d0b
Merge branch 'develop' into feature/issue698 2017-10-02 17:47:53 +02:00
Niels Lohmann
8be303d4fb
🏁 fixing a min() call for MSVC #762 2017-10-02 13:54:14 +02:00
Niels Lohmann
1df836ce40
removed call to std::signbit #761 2017-10-01 15:48:29 +02:00
Niels Lohmann
8af49d4be5
🚨 removing compiler warnings #755 2017-09-30 11:00:26 +02:00
Niels Lohmann
1a66527dca
📝 fixed documentation #745 2017-09-30 10:18:18 +02:00
Niels Lohmann
b05ea3de55 Merge pull request #753 from gregmarr/patch-1
Add info for the vcpkg package.
2017-09-26 22:36:36 +02:00
gregmarr
ec60ff3451 Add info for the vcpkg package. 2017-09-26 08:39:38 -07:00
Niels Lohmann
647711fad1
improved test coverage 2017-09-14 17:31:28 +02:00
Niels Lohmann
737816d0cd
👷 another try with Travis 2017-09-14 17:31:14 +02:00
Niels Lohmann
e75adc21a5
Merge branch 'develop' into feature/issue698 2017-09-13 18:57:25 +02:00
Niels Lohmann
b90529c36d
improved test coverage 2017-09-13 18:56:54 +02:00
Niels Lohmann
82c93680d1
Merge branch 'develop' into feature/issue698 2017-09-10 22:38:23 +02:00
Niels Lohmann
e2e0ecd867
improved test coverage 2017-09-10 22:38:04 +02:00