John Keiser
379a4e6a01
namespace { -> unnamed namespace
2020-08-01 14:46:23 -07:00
John Keiser
460cfcaf3e
Make parse_structurals inline
2020-08-01 14:43:50 -07:00
John Keiser
8e69103822
Remove computed GOTO
2020-08-01 14:43:50 -07:00
John Keiser
2f67dab2b6
Remove extraneous machine addresses
2020-08-01 14:43:50 -07:00
John Keiser
bb65ebd8be
Remove computed gotos from parse_value
2020-08-01 14:43:50 -07:00
John Keiser
c46ea0390c
Move { and [ to the start of the switch
2020-08-01 14:43:50 -07:00
John Keiser
bc8a6dd2e3
Remove dead code
2020-08-01 14:43:10 -07:00
John Keiser
b1478c37f6
Fix arm64 build
2020-08-01 14:43:10 -07:00
John Keiser
4e944a9f3c
Eliminate unused functions in fallback
2020-08-01 14:43:10 -07:00
John Keiser
c7fa9b5fe8
Make entire implementation namespaces anonymous
2020-08-01 14:43:10 -07:00
John Keiser
65148b123b
Put anonymous namespace in front of everything
2020-08-01 14:43:10 -07:00
John Keiser
3acfc0b630
Merge pull request #1045 from simdjson/jkeiser/generic-2
...
Define namespaces inside generic files
2020-07-24 12:42:39 -07:00
Daniel Lemire
2ce5f69def
fix recently introduced overflow ( #1060 )
...
* Various fixes.
* Clearer comment.
2020-07-24 13:59:24 -04:00
John Keiser
7d347be902
Untangle amalgamated headers
2020-07-24 02:56:41 -07:00
John Keiser
a456d78fe0
really_inline more things
2020-07-24 02:56:41 -07:00
John Keiser
bf67c967d6
Inline jsoncharutils per-implementation
2020-07-24 02:56:41 -07:00
John Keiser
44b7a7145c
Include bitmanip/simd everywhere
2020-07-24 02:56:39 -07:00
John Keiser
3867ee71ed
Include files where they are used
2020-07-24 02:56:37 -07:00
John Keiser
464f4813e3
Define namespaces inside generic files
2020-07-24 02:56:36 -07:00
John Keiser
af8b52e7e8
Target region for entire compilation of an implementation
2020-07-24 02:48:25 -07:00
Daniel Lemire
4beb2ed507
Make simd8 64 uncopyable and other Visual Studio optimizations ( #1031 )
...
* Working on making simd8x64 immutable
* Even less invasive
2020-07-21 18:11:21 -04:00
Daniel Lemire
e9c91a1ce2
lookup4 (new UTF-8 validation) ( #993 )
...
* lookup4
* Self-document lookup4 and clean up extra bits
* Maintenance, to match against upcoming PR.
Co-authored-by: Daniel Lemire <lemire@gmai.com>
Co-authored-by: John Keiser <john@johnkeiser.com>
2020-07-20 18:20:07 -04:00
Daniel Lemire
534632dc52
Minor tweak on number parsing ( #1041 )
...
* Tweak.
2020-07-17 12:14:10 -04:00
Daniel Lemire
8bf5f3d869
Trying to document more carefully the use of memcpy. ( #1038 )
...
* Trying to document more carefully the use of memcpy.
* Patching spelling.
2020-07-17 09:58:34 -04:00
Vitaly Baranov
1e4aa116e5
Choose active implementation only once. ( #1044 )
2020-07-16 18:17:56 -04:00
John Keiser
90cc1411da
Merge pull request #1018 from simdjson/jkeiser/simplify-integer-parse
...
Remove some branches from number parsing
2020-07-16 12:21:43 -07:00
Vitaly Baranov
6bd64c6873
Fix clang warning -Wused-but-marked-unused. ( #1042 )
...
* Fix clang warning -Wused-but-marked-unused.
* Fix build.
2020-07-15 13:28:51 -04:00
Vitaly Baranov
a2f0933d01
Fix undefined behavior: load of misaligned address in atomparsing.h ( #1037 )
2020-07-13 08:46:52 -04:00
John Keiser
6797a6ab56
Use const uint8_t * in number parsing
2020-07-10 09:17:23 -07:00
John Keiser
86b5928f5e
Use parse_digit for decimal and exp parsing as well
2020-07-10 09:16:43 -07:00
John Keiser
6dbd15aa71
Move SIMDJSON_SKIPNUMBERPARSING method out
2020-07-09 15:55:10 -07:00
John Keiser
22e5b081c4
Remove is_integer
2020-07-09 15:55:10 -07:00
John Keiser
d848f33c48
Simplify integer parsing
2020-07-09 15:55:10 -07:00
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