John Keiser
c64367536d
Eliminate "found_minus" parse_number() parameter
2020-07-09 15:55:09 -07:00
John Keiser
fc0102b079
Use common parse_digit() funtion in int parsing
2020-07-09 15:33:22 -07:00
Daniel Lemire
d0ce2f0b5a
Fixing clang under visual studio ( #1028 )
...
* Lots of fixes
* Removing some lambdas
* Removing some functional programming.
Co-authored-by: Daniel Lemire <lemire@gmai.com>
2020-07-06 18:58:19 -04:00
John Keiser
82fb45aa2a
Merge pull request #990 from simdjson/jkeiser/fast-large-integer
...
Don't reparse large integers
2020-07-01 12:49:43 -07: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
John Keiser
7a9f6b48f4
Replace TODOs with comments about why we DIDNTDO
2020-07-01 10:31:10 -07:00
John Keiser
d3c089130d
Check overflow without reparsing integers
2020-07-01 09:51:48 -07:00
John Keiser
e0f3060527
Add negative/positive integer writing
2020-07-01 09:51:48 -07:00
John Keiser
4c1256acc4
Reduce nesting somewhat with different if() order
2020-07-01 09:51:48 -07:00
John Keiser
85f6f5bd29
Use macros to remove #ifdefs on every write
2020-07-01 09:51:48 -07:00
John Keiser
4d9eac663a
Use a macro to get rid of #ifdefs on each invalid number check
2020-07-01 09:51:48 -07:00
Daniel Lemire
0ef4d90ad0
Fix for issue 1014. ( #1015 )
...
* Fix for issue 1014.
* Explanation.
Co-authored-by: Daniel Lemire <lemire@gmai.com>
2020-06-30 19:36:26 -04:00
Daniel Lemire
444ec4ad27
Stupid me
2020-06-26 19:29:28 -04:00
Daniel Lemire
bb5ce007e6
Something better.
2020-06-26 19:03:28 -04:00
Daniel Lemire
deaa74d378
Re-enabling tests generally.
2020-06-26 18:57:34 -04:00
Daniel Lemire
b6997a56df
Patching things up and adding tests.
2020-06-26 12:15:16 -04:00
Brendan Knapp
41f33ecbb9
Permit 32-bit GCC compilation
2020-06-25 17:07:17 -07:00
John Keiser
b4b968ff44
Fix #953
2020-06-23 09:53:24 -07:00
Daniel Lemire
2bb101bd19
Code reformatting.
2020-06-22 16:50:57 -04:00
Daniel Lemire
a6cbf1f922
Going generic...
2020-06-22 16:25:11 -04:00
Daniel Lemire
b836164a38
Fix.
2020-06-22 02:12:49 +00:00
Daniel Lemire
058507badf
Putting back the loop
2020-06-21 21:21:49 -04:00
Daniel Lemire
ad40e90790
Patching.
2020-06-21 20:14:00 -04:00
Daniel Lemire
066269153e
Explaining decision.
2020-06-21 18:02:34 -04:00
Daniel Lemire
5dbcdf1484
Ok
2020-06-21 17:52:30 -04:00
Daniel Lemire
f03a6ab5a4
Tweaking.
2020-06-21 17:39:24 -04:00
Daniel Lemire
5dc07ed295
It builds.
2020-06-21 17:20:33 -04:00
Daniel Lemire
064d4255d5
Ok.
2020-06-21 17:09:06 -04:00
Daniel Lemire
04139eb82e
Ok.
2020-06-21 17:05:55 -04:00
John Keiser
76c9f4f5a6
Merge pull request #941 from simdjson/jkeiser/forgot
...
Remove unnecessary functions
2020-06-17 09:09:28 -07:00
Daniel Lemire
942ef3b7f2
Merge pull request #939 from simdjson/dlemire/lookup3
...
Introducing lookup3 (UTF-8 validation).
2020-06-17 11:19:09 -04:00
John Keiser
f8f36c085c
Remove unnecessary functions
2020-06-17 07:11:53 -07:00
John Keiser
7339f67dd7
Merge pull request #462 from simdjson/jkeiser/if-backslash
...
Wrap backslash processing in a branch
2020-06-17 07:07:58 -07:00
Daniel Lemire
71a889ed73
Introducing lookup3 (UTF-8 validation).
2020-06-16 19:08:25 -04:00
John Keiser
610c79fbf3
Don't use backslash branch on ARM
2020-06-13 07:51:28 -07:00
John Keiser
fd44c2a2ff
Merge pull request #927 from simdjson/dlemire/exposingthestringminifier
...
Exposing the string minifier.
2020-06-13 07:47:20 -07:00
John Keiser
a86a82b39c
Rename minify class to minifier so the minify() method is cleared up
2020-06-12 17:05:25 -07:00
Daniel Lemire
bd2d0f769f
One unlikely too many ( #930 )
2020-06-12 17:58:10 -04:00
John Keiser
664b03bb13
Short circuit find escapes if there is a backslash
2020-06-12 10:10:35 -07:00
John Keiser
bbd61eb13f
Let tape writing be put in a register
2020-06-12 09:18:20 -07:00
John Keiser
e15e1e253d
peek_char -> peek_next_char
2020-06-12 09:10:16 -07:00
Daniel Lemire
a6e4933d93
Exposing the string minifier.
2020-06-11 13:07:18 -04:00
John Keiser
ea08e7d192
Remove unused extra copy of find_next_document_index
2020-06-09 17:52:13 -07:00
John Keiser
d178e089a6
Stop caching current structural, keep current index around instead of
...
next
2020-06-08 15:21:54 -07:00
John Keiser
5f00b37e21
Stop caching the buffer index
2020-06-08 15:21:54 -07:00
John Keiser
8a8792d47f
Remove most uses of current_char()
2020-06-08 15:21:54 -07:00
John Keiser
59d9bc9e48
Store the pointer to the next structural instead of base
...
structural_indexes and an index
2020-06-08 15:21:54 -07:00
John Keiser
8793dd3ceb
Don't store len locally
2020-06-08 15:21:54 -07:00
John Keiser
48062380fa
Move parser to structural_iterator
2020-06-08 15:21:54 -07:00
John Keiser
3636aa5522
Extend structural_parser from structural_iterator
2020-06-08 15:21:54 -07:00
John Keiser
a1aea4588f
Move document stream state to implementation
2020-06-08 15:21:54 -07:00
John Keiser
1d4fffb799
Fix fallback implementation
2020-06-08 15:21:52 -07:00
John Keiser
6f90f5dc5f
Remove templating from finish() method
2020-06-08 15:20:56 -07:00
John Keiser
9dd6972d26
Remove impossible checks, add EMPTY check to normal parser
2020-06-08 15:20:56 -07:00
John Keiser
d731a7d52c
Privatize structural_parser
2020-06-08 15:20:56 -07:00
John Keiser
059468b74e
Eliminate streaming_structural_parser subclass with templates
2020-06-08 15:20:56 -07:00
John Keiser
5e69fb782a
Call a function to parse structurals
2020-06-08 15:20:56 -07:00
John Keiser
a5beffda78
Remove streaming_structural_parser.h
2020-06-08 15:20:56 -07:00
John Keiser
7de7ce5fdc
Move document stream state to implementation
2020-06-08 15:20:56 -07:00
John Keiser
0dbda65e44
Fix fallback implementation
2020-06-08 14:52:23 -07:00
John Keiser
d43a4e9df9
Remove SUCCESS_AND_HAS_MORE (internal only value)
2020-06-07 16:20:55 -07:00
John Keiser
ef63a84a3e
Move document stream state to implementation
2020-06-07 16:20:44 -07:00
John Keiser
8c16ba372e
Acknowledge that we always have a remainder
2020-06-06 16:46:38 -07:00
John Keiser
9be4a17687
Separate definition from declaration, arrange top down
2020-06-06 16:46:38 -07:00
John Keiser
ed0c815735
Move unclosed array check to stage 2
2020-06-05 12:39:13 -07:00
Daniel Lemire
7a69da16e4
Fixing issue 906 ( #912 )
...
* Fixing issue 906
* Safe patching.
* Now with explanations.
* Bumping up memory allocation.
* Putting the patch back.
* fallback fixes.
Co-authored-by: Daniel Lemire <lemire@gmai.com>
2020-06-05 15:37:09 -04:00
Daniel Lemire
52f44de257
This introduces a tiny simplification in number parsing. ( #910 )
...
* This introduces a tiny simplification in number parsing.
* Removing unnecessary function.
Co-authored-by: Daniel Lemire <lemire@gmai.com>
2020-06-04 17:13:02 -04:00
John Keiser
b75fa26dc1
Move containing_scope and ret_address to .cpp
2020-06-01 12:15:55 -07:00
John Keiser
3d22a2d845
One weird trick: set a bogus error value in the parser impl
...
This makes us faster under both gcc and clang somehow.
2020-06-01 12:15:55 -07:00
John Keiser
1aab4752e2
Store all parser state in the implementation
2020-06-01 12:15:54 -07:00
John Keiser
86f8a4a9d2
Don't set parser.valid or parser.error
...
This regresses performance and is ONLY here because the next
two commits are here; this lets us see the impact of removing
parser.error separately from the impact of the next commit.
2020-06-01 12:14:09 -07:00
John Keiser
db2cb061cb
Remove on_error function
...
Solely here to make the next patch smaller and more isolatable
2020-06-01 12:14:09 -07:00
John Keiser
6a71b24495
Reuse stored buf and len from parser
2020-06-01 12:14:09 -07:00
John Keiser
84712a8bbc
Store buf and len in parser implementation
2020-06-01 12:14:09 -07:00
John Keiser
b86fb95306
Rename doc_parser -> parser
2020-06-01 12:14:09 -07:00
John Keiser
a3a9bde83e
Move DOM parsing into concrete interface implementation
2020-06-01 12:14:09 -07:00
Daniel Lemire
12150baa5e
Using just ASCII. ( #899 )
...
* Using just ASCII.
* Let us prune checkperf.
* Moving the description of lookup2 to the HACKING.md file.
2020-05-21 21:59:06 -04:00
John Keiser
4551e60f8b
Don't write start object/array until the end
2020-05-21 14:28:47 -07:00
John Keiser
5651fbedc4
Add logging to stage 2
2020-05-21 09:47:19 -07:00
Daniel Lemire
40d57da83c
fixes issue 891 ( #893 )
2020-05-20 11:54:53 -04:00
John Keiser
e6c9dfbd91
Make include files more fine-grained
2020-05-19 14:42:04 -07:00
John Keiser
64abc3e86c
Include top-level .h files outside #if statements
2020-05-19 13:33:14 -07:00
John Keiser
7ad4020829
Make main compilation chunks into .cpp files
2020-05-19 13:32:35 -07:00
John Keiser
72ab0d11ff
Move stage 1 and 2 files to their own directories
2020-05-19 13:30:34 -07:00
John Keiser
4ea866f050
Move stage2 classes into their own files
2020-05-19 13:30:34 -07:00
John Keiser
a476531524
Share ref_address everywhere it's used
2020-05-19 13:30:34 -07:00
John Keiser
dbb3316511
Move current_string_buf_loc to stage 2
2020-05-11 06:11:32 -07:00
John Keiser
cd6f204c77
Move write_tape() to stage 2 code
2020-05-11 06:09:48 -07:00
John Keiser
269131ed21
Move on_number_* to stage 2 code
2020-05-11 06:04:54 -07:00
John Keiser
65d784e88e
Move on_start/end_string to stage 2 code
2020-05-11 05:49:40 -07:00
John Keiser
35afb6cae0
Move on_error, on_success to stage 2 code
2020-05-11 05:46:18 -07:00
John Keiser
27bce09be8
Consolidate start_scope/end_scope
2020-05-11 05:40:02 -07:00
John Keiser
4f25b6ac0c
Move on_end_* to stage 2 code
2020-05-11 05:34:49 -07:00
John Keiser
3d5ed1a7e3
Move on_start_* to stage 2 code
2020-05-11 05:30:35 -07:00
John Keiser
a03115a4a6
Move end_scope to stage 2 code
2020-05-11 05:24:12 -07:00
John Keiser
7219d28a31
Call end_scope directly from stage 2 code
2020-05-11 05:20:04 -07:00
John Keiser
0875bce68f
Don't pass depth to on_end_*
2020-05-11 05:15:39 -07:00
John Keiser
54fe302907
Don't pass depth to end_scope
2020-05-11 05:06:41 -07:00
John Keiser
edaa8f811f
Move on_start_* depth management to stage 2 code
2020-05-11 05:03:25 -07:00
John Keiser
2c8fd109de
Move increment_count to stage 2
2020-05-11 04:58:50 -07:00
John Keiser
07fe7ad1a2
Use the same increment_count() everywhere
2020-05-11 04:48:15 -07:00
John Keiser
16d88cc095
Don't pass depth to increment_count
2020-05-11 04:15:02 -07:00
Daniel Lemire
3c3a4db54e
Compile under Visual Studio for ARM64 ( #861 )
...
* Modifications so that we can compile under Visual Studio for ARM64
* Let us throw appveyor at this beast.
2020-05-06 23:08:10 -04:00
John Keiser
afb369950c
Disable Intellisense-only warnings in simdjson.h/cpp
2020-05-04 11:47:04 -07:00
John Keiser
1d06624d38
Unset /D_CRT_SECURE_NO_WARNINGS
...
- Also localize DISABLE_DEPRECATED_WARNING so that we catch other
deprecations
2020-05-04 11:35:05 -07:00
Pavel P
d40069a018
Disable deprecation warnings for VS builds
...
fopen/getenv are standard c++ that are not deprecated.
2020-05-04 11:34:00 -07:00
Furkan Usta
af968c5b44
Merge branch 'master' of github.com:simdjson/simdjson into cmake-flags
2020-05-03 02:12:23 +03:00
Daniel Lemire
1c34707925
A gift to John.
2020-05-02 15:01:22 -04: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
Daniel Lemire
9863f62321
Trying to avoid unused warnings in isa detection. ( #846 )
2020-05-01 11:43:31 -04:00
Daniel Lemire
8c45a18524
Hiding cpuid_*_bit as well as related enum. ( #843 )
2020-04-30 21:08:08 -04:00
Daniel Lemire
073ad0dada
This function is unused. ( #842 )
2020-04-30 19:45:45 -04:00
Furkan Usta
73d7d704c1
CMake: Remove export_private_library
...
Since we are exporting all the targets as part of the main simdjson target we do not need private
exports anymore
2020-04-30 02:06:19 +03:00
Daniel Lemire
2a1f8fa8f1
Provides support for clang under Windows. ( #817 )
2020-04-27 22:09:27 -04:00
PavelP
0514588175
Improves clang-cl build with Visual Studio ( #809 )
2020-04-27 08:59:32 -04:00
Pavel P
24a185d26b
Amalgamate src/simdjson.cpp as-is
...
amalgamation.sh shouldn't change contents of src/simdjson.cpp by forcing dmalloc.h that didn't exist in non-amalgamated version and shouldn't change order of includes by placing simdjson.h at the top
fixes #739
2020-04-26 08:27:19 +06:00
Daniel Lemire
c750095241
Trying to improve a bit. ( #791 )
...
* Trying to improve a bit.
* Correcting typo
2020-04-23 22:36:08 -04:00
John Keiser
66acab4130
Enable /sdl warnings on Windows
2020-04-23 15:12:21 -07:00
ostri
87acab0846
elimination of most of g++ -Weffc++ warnings ( #764 )
...
Co-authored-by: Matjaž Ostroveršnik <ostri@localhost.localdomain>
Co-authored-by: Daniel Lemire <lemire@gmail.com>
2020-04-23 10:06:44 -04:00
John Keiser
a198abc485
Use int as index to reduce cast operations
...
Decreases the number of instructions per block by almost 1
2020-04-22 14:21:33 -07:00
John Keiser
d4a37f6ef5
Enable conversion warnings on Linux and Windows
2020-04-22 14:21:30 -07:00
John Keiser
a116e68a47
Merge pull request #729 from simdjson/jkeiser/cmake-amalgamate
...
Add amalgamation support to cmake
2020-04-22 14:16:10 -07:00
Daniel Lemire
536fe28f8f
Being explicit regarding the initialization of two member variables. ( #765 )
2020-04-22 12:46:55 -04:00
Daniel Lemire
5f04208dbd
This removes the problematic use of the intrinsic _addcarry_u64 for Visual Studio ( #758 )
...
in the ARM 64-bit kernel. This intrinsic does not appear in the documentation
https://docs.microsoft.com/en-us/cpp/intrinsics/arm64-intrinsics?view=vs-2019
and should probably not be used. Note that we expect the compiler to produce
efficient code out of our implementation.
2020-04-21 17:13:22 -04:00
PavelP
ffaa292006
Master vs2019 x86 compile fixes ( #743 )
...
* Added bitexact implementations of _BitScanForward64 and _BitScanReverse64 for VS2019 32-bit builds
* Added bitexact implementations of _umul128 for VS2019 x86, arm, arm64 builds
* Implement mul_overflow for VS2019 arm64 builds
+ implement mul_overflow using __umulh (msvc/clang results: https://godbolt.org/z/smRwA7 )
* Added Win32 for VS2019 to .appveyor.yml
* Update amalgamated headers (fix x86 builds with VS2019)
2020-04-21 14:42:53 -04:00
John Keiser
d3e44b1108
Add amalgamation support to cmake
2020-04-20 19:50:51 -07:00
John Keiser
fbf274a42b
Merge pull request #727 from simdjson/jkeiser/cmake-checkperf
...
Add checkperf to cmake
2020-04-20 19:45:45 -07:00
Daniel Lemire
3c1b403c4e
Fixing typo.
2020-04-20 18:19:38 -04:00
John Keiser
9bf9fba2ec
Add checkperf to cmake
2020-04-20 11:14:46 -07:00
John Keiser
22b9a53bef
Add SIMDJSON_FORCE_IMPLEMENTATION
2020-04-18 18:21:56 -07:00
John Keiser
289cc3e7a0
Treat warnings as errors during compilation
2020-04-15 19:59:38 -07:00
John Keiser
fd418f568c
Fix c++11 warnings on clang
...
- namespace x::y is C++17
- static_assert requires message in C++11
2020-04-15 17:27:48 -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
b523c43927
Can we provide a size() function to arrays and objects? (eager approach) [TO BE MERGED] ( #690 )
...
* This is an implementation of "size()" for arrays and objects.
* Adding benchmark
* Adding a size() remark in the documentation.
* Extending size() to result types.
2020-04-15 10:15:48 -04:00
John Keiser
6835dd73bc
Only apply compile flags to simdjson
2020-04-09 08:52:29 -07:00
John Keiser
beaa6a9a7a
Create simdjson-windows-headers interface library
2020-04-08 14:52:56 -07:00
John Keiser
a9c8224f40
Add numberparsingcheck and stringparsingcheck tests
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
54b7291c34
Reference simdjson by name, don't specify include files individually
2020-04-08 14:52:55 -07:00
John Keiser
1e30b6e334
Compile under C++ 11
2020-04-08 14:00:13 -07:00
John Keiser
406240bae3
Support C++ 14
2020-04-08 14:00:13 -07:00
John Keiser
7656bd50ee
Generate API docs at /api/docs
2020-03-29 17:01:12 -07:00
John Keiser
03746b966b
Move document/element/etc. under dom
2020-03-28 13:42:21 -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
f1744f5495
Break out string/structural scanning from tokenizer
2020-03-18 10:40:06 -07: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
1a5d8f1957
Add tests for SIMDJSON_EXCEPTIONS=0, add `tie()` support
2020-03-17 13:54:37 -07:00
Daniel Lemire
758dc511fb
Better comment.
2020-03-17 14:22:40 -04:00
Daniel Lemire
0164723a8e
Adding comments.
2020-03-16 20:17:48 -04:00
Daniel Lemire
da3e064fc7
Added a comment.
2020-03-15 22:35:21 -04:00
Daniel Lemire
317fc6ba0e
accurate number parsing ( #558 )
2020-03-15 22:30:21 -04:00
John Keiser
1aaad223c0
Simplify atom parsing
2020-03-13 19:00:08 -07:00
John Keiser
81c86d7090
Structural iterator
2020-03-13 19:00:08 -07:00
John Keiser
40c6213d7e
Add parser.load() and load_many() to load files
2020-03-11 17:19:41 -07:00
Daniel Lemire
f669aafcf2
Correcting typo
2020-03-09 17:55:26 -04: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
b2220d6157
Fix amalgamation
2020-03-05 11:13:25 -08:00
John Keiser
5ff941ae3d
Include <simdjson> directly, move document_parser_callbacks to top level
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
John Keiser
910f272467
Add parser implementation interface and selection API ( #501 )
...
* Make architecture implementations virtual functions
- Easier to add new architectures (add implementation to implementation.cpp)
- Easier to add new algorithms / functions to architecture selection
(add to implementation.h, implement)
- Automatically select best implementation in static initialization
- Allow user to explicitly select implementation with a string (i.e.
parameter)
- Allow user to inspect current implementation name/description
- Allow user to list available implementations
- Eliminate architecture enum and architecture-based templating
- Add noexcept in non-inline functions
* Move implementation static methods to their own classes
* Detect best supported implementation on first use
* available_implementationsI() -> available_implementations
2020-02-21 16:34:27 -05:00
John Keiser
1f76737510
Make valstat-ish parse APIs
2020-02-18 08:37:07 -08:00
John Keiser
bc8bc7d1a8
Lowercase Architecture and ErrorValues ( #487 )
...
ErrorValues -> error_code, Architecture -> architecture
2020-02-14 15:21:28 -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
Daniel Lemire
c879b56f41
Fixing logical error.
2020-02-07 10:44:17 -05:00
John Keiser
76c706644a
Move stage 2 tape writing to ParsedJson ( #477 )
...
This is a first step to allowing alternate tape formats.
2020-02-04 14:28:42 -08:00
Daniel Lemire
c924aaede9
Fix issue472: make JsonStream a template. ( #473 )
...
* Fix issue472: make JsonStream a template.
* Adding missing include.
* Tweaking headers and some minor formatting.
* Removing file from aggregation.
* Moving jsoncharutils
* Adding new header.
* Trying another header.
* Let us try to route around Visual Studio's nonesense.
2020-01-30 17:16:41 -05:00
Daniel Lemire
28710f8ad5
fix for Issue 467 ( #469 )
...
* Fix for issue467
* Updating single-header
* Let us make it so that JsonStream is constructed from a padded_string which will avoid dangerous overruns.
* Fixing parse_stream
* Updating documentation.
2020-01-29 19:00:18 -05:00
Daniel Lemire
3488c49d0a
Basically, haswell processor should be able to count on lzcnt. ( #458 )
2020-01-22 16:52:55 -05:00
John Keiser
adaef43bc6
Find all escaped characters with simpler algorithm ( #450 )
2020-01-22 14:11:14 -05:00
Daniel Lemire
80b4dd2e8a
Removing all stdout, stderr from main library. ( #455 )
...
* Removing all stdout,stderr from main library.
2020-01-20 16:03:15 -05:00
Daniel Lemire
ab6d4871d8
Adding haswell amal. tests ( #447 )
...
* Adding an extra test.
* Disabling the AVX-accelerated minifier.
* Updating amalgamation.
2020-01-15 19:49:11 -05:00
Daniel Lemire
f611b65bc0
This updates the minifier. ( #446 )
2020-01-15 13:45:32 -05:00
Daniel Lemire
a804351a76
I think that i and idx should be size_t (64-bit). ( #438 )
2020-01-13 17:42:52 -05:00
dbj
85e84fc1fa
improved string padded ( #440 )
...
* dirent portable latest version
* improved
std::string argument passed by const reference
ctor added with std::string_view argument
`allocate_padded_buffer()` moved here with **optional** check on `length < 1`
* allocate_padded_buffer moved to padded_string.h
2020-01-10 10:15:48 -05:00
Daniel Lemire
951c4bedf8
Simpler jsonstream ( #436 )
...
* One simplification.
* Removing untested functions.
2020-01-07 19:10:02 -05:00
Daniel Lemire
4c0c1c9830
Updating a comment.
2020-01-06 22:01:23 -05:00
Daniel Lemire
a9e990251d
removing left over debug
2020-01-04 12:50:04 -05:00
Daniel Lemire
7bde23590a
Debugging jsonstream ( #432 )
...
Fixes #424 (and provide tests for it), as well as #401
2020-01-03 22:22:47 -05:00
Daniel Lemire
5042dd52ce
This is implementing @jkeiser optimization idea. ( #431 )
2020-01-03 09:21:36 -05:00
Daniel Lemire
a2d05b21ff
Merge branch 'master' of github.com:lemire/simdjson
2020-01-02 15:27:00 -05:00
Daniel Lemire
f4f5f670a2
Better documentation of the padding.
2020-01-02 15:25:03 -05:00
John Keiser
165e23773f
Refactor stage 2 into structural_parser class
2020-01-02 13:12:22 -07:00
Paul Dreik
399d08c86c
use unique_ptr in class parsedjson ( #417 )
...
* refactor parsedjson to use unique_ptr instead of owning raw pointer
* fix a potential undefined behavior
* output only first cpu in /proc/cpuinfo
2019-12-31 14:31:45 -05:00
Daniel Lemire
6f799435b6
Removing commented out stuff.
2019-12-30 22:21:04 -05:00
John Keiser
d7c83397e4
lookup+cont-check algorithm
2019-12-18 14:37:21 -08:00
Daniel Lemire
1d621bba37
Being more explicit about EMPTY errors.
2019-12-18 14:39:48 +00:00
John Keiser
e2f349e7bd
Measure impact of utf-8 blocks and structurals per block directly
2019-12-17 11:41:13 -08:00
Daniel Lemire
102262c7ab
Fixing issue386 ( #396 )
...
* Creating arch-specific bitmanipulation.h files.
* Improving system and compiler portability.
* We want to allow trailing_zeroes on zero inputs.
2019-12-16 19:09:18 -05:00
Daniel Lemire
f02babe427
Adding analysis by @sebpop from https://github.com/lemire/simdjson/pull/391#issuecomment-565551462
2019-12-13 13:39:15 -05:00
Daniel Lemire
fc6133b58f
Fixes issue 388 ( #394 )
2019-12-11 08:13:29 -05:00
mswilson
d33208c7db
Correct detection of NEON support ( #392 )
...
... as the test as it is currently implemented will always evaluate to true.
Fixes #389
2019-12-10 13:12:17 -05:00
Daniel Lemire
c9cd8e6211
PMULL is slow on ARM64, let us not rely on it? ( #391 )
2019-12-09 17:15:34 -05:00
Daniel Lemire
1211c01ca1
Resolves issue 186 ( #383 )
...
* Resolves issue 186
https://github.com/lemire/simdjson/issues/186
2019-12-02 12:23:45 -05:00