John Keiser
748df8d109
Use string_view instead of string/char* where possible
2020-03-27 13:11:41 -07:00
John Keiser
5ad405006c
Return document::element from parse, load, parse_many, load_many
2020-03-27 12:24:41 -07:00
John Keiser
e3efbcddc1
Cast padded_string to string_view instead of string
2020-03-27 09:13:11 -07:00
John Keiser
c14b2fb36c
Remove const char* variants for at_key()
...
- Remove const char * variants for at_key(), string_view covers them
- Add at_key_case_insensitive variants on *_result
- Add at(), at_key(), at_key_case_insensitive() tests
2020-03-27 09:09:08 -07:00
John Keiser
f0f111b387
Make ParsedJson::Iterator backcompat test
2020-03-27 09:07:39 -07:00
Daniel Lemire
abb0bf9247
Fixed basictests
2020-03-26 19:40:29 -04:00
John Keiser
56841bcede
Fix conversion error on Windows
2020-03-26 12:48:07 -07:00
John Keiser
006cc2ed60
Remove simdjson_move_result
2020-03-26 12:48:03 -07:00
John Keiser
2e420169c3
Remove document::parse and document::load
2020-03-26 10:13:09 -07:00
John Keiser
5aec2671ea
Remove JsonStream. Use parse_many() instead.
2020-03-26 09:25:07 -07:00
John Keiser
06587824be
Deprecate ParsedJson::Iterator
2020-03-25 18:26:51 -07:00
John Keiser
a0bce440a6
Remove document_iterator, document::iterator, ParsedJsonIterator
...
Keep ParsedJson::Iterator only, without template, in same form as
it was in 0.2
2020-03-25 18:26:51 -07:00
Daniel Lemire
8769e42a56
Fixes issue 600 ( #614 )
...
* Fixes issue 600
2020-03-25 18:01:23 -04:00
John Keiser
7cde65aa6e
This deprecates json_parse() and build_parsed_json().
2020-03-25 14:19:24 -07:00
John Keiser
e1b1500e3b
Make _padded available without using namespace simdjson
2020-03-25 09:37:18 -07:00
John Keiser
b28cafc1d1
Remove backslash unescaping from JSON pointer impl
...
Also speed up non-escaped key lookup
2020-03-25 08:56:40 -07:00
John Keiser
0bcda5e384
Support JSON pointer in DOM navigation model
2020-03-23 15:05:20 -07:00
Daniel Lemire
3e39a998ce
Merge branch 'master' of github.com:lemire/simdjson
...
Conflicts:
include/simdjson/jsonstream.h
2020-03-22 12:40:34 -04:00
Daniel Lemire
2867dc50fa
Minor typo.
2020-03-22 12:39:01 -04:00
Bruce Mitchener
c3c43769ae
Fix typos.
2020-03-22 09:14:14 -07:00
John Keiser
36ceaa4452
Keep loaded_bytes in parser to reduce allocation
...
Also centralized memory ownership to make it easy to keep data around
2020-03-21 18:12:16 -07:00
John Keiser
e8b3f9eaad
Support document::parse("[1,2,3]"_padded)
2020-03-21 11:15:20 -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
Daniel Lemire
6cefeb338b
std::tie does not work on some compilers ( #567 )
...
* std::tie workaround.
* Cleaner solution
2020-03-19 16:56:45 -04:00
John Keiser
5a071c1907
Remove TARGET_FALLBACK
2020-03-17 14:59:47 -07: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
af203aaf86
Add fallback parser for pre-SSE4.2 machines
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
John Keiser
03c828c7ad
Add SIMDJSON_EXCEPTIONS=ON to turn on exception interface
2020-03-17 13:54:37 -07:00
John Keiser
acc7bd79b0
Support cout << json, cout << minify(json)
2020-03-13 18:59:15 -07:00
Daniel Lemire
89d9de2353
Adding a check to see whether document::stream copy constructor and assignment actually compile ( #556 )
...
* Currently, document::stream contains an attribute that is a reference:
```
document::parser &parser;
```
Yet we try to have it default on the move operator:
```
stream &operator=(document::stream &&other) = default;
stream &operator=(const document::stream &) = delete; // Disallow copying
```
```
stream(document::stream &&other) = default;
stream(const document::stream &) = delete; // Disallow copying
```
I am not sure what the move is supposed to do with the reference.
I cannot find where we test the copy constructor and assignment. This has been concerned that it is either dead code or buggy code.
* Remove non-working, unnecessary move constructors
* We still want to disallow copies.
Co-authored-by: John Keiser <john@johnkeiser.com>
2020-03-13 12:53:42 -04:00
John Keiser
a5afec1f94
Make #defines into simdjson::constants
2020-03-11 19:16:29 -07:00
John Keiser
ac0899c043
Add error tests, doc_ref_result[] chaining
2020-03-11 17:19:41 -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
66a2807210
Rename invalid_json to simdjson_error
2020-03-06 16:12:51 -08:00
John Keiser
3bdfe167de
Support cout << error
2020-03-06 15:41:51 -08:00
John Keiser
31e8a12e88
Make error_message(error_code) return C string
...
- Also move all error message logic to include inline
2020-03-06 15:41:51 -08:00
John Keiser
9a7c8fb5be
Use parse_many in examples/tests/docs
2020-03-05 12:04:45 -08:00
John Keiser
cfef4ff2ad
Create parser.parse_many() API
2020-03-05 12:04:45 -08:00
John Keiser
1c922d3b73
Fix JsonStream reference to parser on_error
2020-03-04 14:26:54 -08:00
John Keiser
b23dd28a06
Declare functions inline to surface "undefined" errors earlier
2020-03-04 14:26:54 -08:00
John Keiser
a55f41a24a
Move JsonStream inline implementation to inline .h
2020-03-04 14:26:54 -08:00
John Keiser
5525c6f729
Stop using jsoncharutils.h in JsonStream
2020-03-04 14:26:54 -08:00
John Keiser
eb147d9868
Mark jsonformatutils.h/isadetection.h internal
...
- Move jsonformatutils.h to internal/jsonformatutils.h (it is used by
document::print_json)
- Move isadetection.h to src/ (it is only used internally)
2020-03-04 14:26:54 -08:00
John Keiser
f58a5d534e
Move parser inline implementation to .cpp
2020-03-04 14:26:54 -08:00
John Keiser
b3ea8c406e
Add simdjson.cpp for unified use ( #515 )
2020-03-04 10:12:27 -08: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
0b21203141
Document navigation API
2020-03-02 14:49:03 -08:00