Daniel Lemire
09bd7e8ef8
Verification and fix for issue 1063 (JSON Pointers) ( #1064 )
...
* Specification is not followed.
* Fixes.
* Do not pass string_view by reference.
* Better documentation.
* The example is written for exceptions.
* Better documentation.
* Updating with deprecation.
* Updating example.
* Updating example.
2020-08-18 17:23:18 -04:00
Daniel Lemire
74870a8189
Fixing issue 1013. ( #1016 )
...
* Fixing issue 1013.
* Bumping to 0.4.6
Co-authored-by: Daniel Lemire <lemire@gmai.com>
2020-07-01 14:14:51 -04:00
Daniel Lemire
ccc94c9b05
Mingw tests (32-bit and 64-bit) ( #1004 )
2020-06-29 21:10:54 -04:00
Daniel Lemire
f6e9a8eee4
Making the cmake more verbose so we can figure out what is happening.
2020-06-24 15:44:22 -04:00
Daniel Lemire
cb8a9ef2c0
This removes git as a dependency
2020-06-24 15:13:47 -04:00
John Keiser
d9929edbc1
Run -Weffc++ in CI
2020-06-23 13:44:25 -07:00
John Keiser
1ff55c2729
Replace auto [x,error] with .get() everywhere
2020-06-21 16:26:59 -07:00
John Keiser
a7fc7d4ffb
Switch from get(v,e) to e = get(v)
2020-06-20 17:57:09 -07:00
John Keiser
f336103f63
Convert tools/docs/benchmarks to bool get() idiom
2020-06-20 17:55:46 -07:00
John Keiser
56e2b38048
Add bool result from tie()/get(), get<T>(T&,error_code&)
2020-06-20 17:55:46 -07:00
John Keiser
1aab4752e2
Store all parser state in the implementation
2020-06-01 12:15:54 -07:00
yoannlr
f772bf4fbc
Port tools to cxxopts ( #904 )
...
* Port tools to cxxopts
* Fix minify tool architecture argument
* Fix wrong return code in json2json
* Change return codes
* Better handling of the errors.
* Updating to latest version.
* cxxopts outside of SIMDJSON_COMPETITION
Co-authored-by: Daniel Lemire <lemire@gmail.com>
2020-05-29 15:39:23 -04:00
Daniel Lemire
f346362b00
The jsonstats utility becomes ever more powerful. ( #890 )
2020-05-19 10:31:27 -04:00
Daniel Lemire
1f79200db8
This fixes how we count integers in jsonstats. ( #878 )
...
* This fixes how we count integers in jsonstats.
2020-05-13 09:31:32 -04:00
Furkan Usta
064eb0b24f
CMake: Make simdjson-internal-flags subsume simdjson-flags
2020-05-03 02:48:29 +03:00
Furkan Usta
293c104cc4
CMake: Separate public and private compilation flags
...
simdjson-internal-flags for macros and warnings
simdjson-flags for pthread, sanitizer, and libcpp
2020-05-02 04:08:47 +03:00
John Keiser
0e6ea76e88
Make checkperf work on Windows ( #799 )
...
* Make command line arguments work for Windows
* Run checkperf on Windows
2020-04-27 14:20:05 -04:00
Daniel Lemire
0d1c574cb1
A few more changes... ( #775 )
...
* More nitpicking.
2020-04-23 11:36:52 -04:00
John Keiser
d3e44b1108
Add amalgamation support to cmake
2020-04-20 19:50:51 -07:00
John Keiser
22b9a53bef
Add SIMDJSON_FORCE_IMPLEMENTATION
2020-04-18 18:21:56 -07:00
John Keiser
09cf18a646
Add C++11 tests to cmake
...
- Add simdjson-flags target so callers don't have flags forced on them
2020-04-15 17:26:25 -07:00
Daniel Lemire
6d7c77ddc1
Let us try to check with the exceptions disabled. ( #707 )
...
* Tweaking code so that we can run all tests with exceptions off.
* Removing SIMDJSON_DISABLE_EXCEPTIONS
2020-04-15 16:45:36 -04:00
John Keiser
3c91690e55
Don't run parsing competitions on Windows
...
(They currently use linux-specific stuff.)
2020-04-09 08:52:29 -07:00
John Keiser
3b1b1bfd48
Merge pull request #684 from simdjson/jkeiser/cmake
...
Simplify cmake, add more of our tests into it
2020-04-08 16:02:47 -07:00
Daniel Lemire
2bc12f9730
Removing useless line.
2020-04-08 17:55:25 -04:00
Daniel Lemire
5e564a8e0c
Improving the doxygen. ( #687 )
2020-04-08 17:53:04 -04:00
John Keiser
beaa6a9a7a
Create simdjson-windows-headers interface library
2020-04-08 14:52:56 -07:00
John Keiser
3dcc188d93
Add more tests to cmake
2020-04-08 14:52:56 -07:00
John Keiser
10b7556a37
Specify cmake tests, benchmarks and tools idiomatically
2020-04-08 14:52:56 -07:00
John Keiser
1e30b6e334
Compile under C++ 11
2020-04-08 14:00:13 -07:00
Daniel Lemire
7dad9fca0f
In the future, we will bump the so version with even minor releases. ( #664 )
2020-04-01 16:08:28 -04:00
Daniel Lemire
3116e29d16
Release candidate ( #655 )
...
* Release candidate
2020-03-31 17:47:25 -04:00
John Keiser
622d9c9480
Replace as_X and is_X with get<T> and is<T>
2020-03-28 15:29:53 -07:00
John Keiser
03746b966b
Move document/element/etc. under dom
2020-03-28 13:42:21 -07:00
John Keiser
5ad405006c
Return document::element from parse, load, parse_many, load_many
2020-03-27 12:24:41 -07:00
Daniel Lemire
8f34e6714a
Removing dead code.
2020-03-26 17:01:51 -04:00
John Keiser
2e420169c3
Remove document::parse and document::load
2020-03-26 10:13:09 -07:00
Daniel Lemire
8769e42a56
Fixes issue 600 ( #614 )
...
* Fixes issue 600
2020-03-25 18:01:23 -04:00
Daniel Lemire
65f999b7b7
Fixes issue 598. ( #608 )
...
* Fixes issue 598.
* Dropping old code.
2020-03-25 11:22:16 -04:00
John Keiser
06d6636b97
Update jsonpointer tool to use new API
2020-03-24 16:35:39 -07:00
Daniel Lemire
5d1e3efce8
faster minifier ( #568 )
...
* Fallback should use our scalar code.
* parse should have a nicer error message.
* Making it so that "minify" can use different architectures.
* Let us change the minifier competition so that it tests all implementations.
* Documenting the untaken optimization opportunity.
Co-authored-by: John Keiser <john@johnkeiser.com>
2020-03-20 16:14:47 -04:00
John Keiser
7cf3a7511b
Add fallback implementation to CI
...
- Also add SIMDJSON_IMPLEMENTATION_HASWELL/WESTMERE/ARM64/FALLBACK=1/0 to
enable/disable various implemnentations
2020-03-17 14:59:47 -07:00
John Keiser
8e2c06cb0e
Compile with -fno-exceptions
2020-03-17 13:54:37 -07:00
John Keiser
1a5d8f1957
Add tests for SIMDJSON_EXCEPTIONS=0, add `tie()` support
2020-03-17 13:54:37 -07:00
Daniel Lemire
06c1dc3a29
Adding NDEBUG to release ( #557 )
...
* Adding NDEBUG to release
* Asserts are deleted with NDEBUG. We want hard asserts.
2020-03-13 14:37:02 -04:00
John Keiser
a5afec1f94
Make #defines into simdjson::constants
2020-03-11 19:16:29 -07:00
John Keiser
40c6213d7e
Add parser.load() and load_many() to load files
2020-03-11 17:19:41 -07:00
John Keiser
d140bc23f5
Automatically allocate memory as needed in parse
2020-03-11 16:14:54 -07:00
John Keiser
99667f7c55
Create top level simdjson.h ( #515 )
...
- Allows everyone to #include the same way, singleheader or not.
2020-03-04 10:12:27 -08:00
John Keiser
8e7d1a5f09
Separate document state from ParsedJson
...
This creates a "document" class with only user-facing document state (no parser internals).
- document: user-facing document state
- document::iterator: iterator (equivalent of ParsedJsonIterator)
- document::parser: parser state plus a "docked" document we parse into (equivalent of ParsedJson)
Usage:
```c++
auto doc = simdjson::document::parse(buf, len); // less efficient but simplest
```
```c++
simdjson::document::parser parser; // reusable parser
parser.allocate_capacity(len);
simdjson::document* doc = parser.parse(buf, len); // pointer to doc inside parser
doc = parser.parse(buf2, len); // reuses all buffers and overwrites doc; more efficient
```
2020-02-07 10:02:36 -08:00