Daniel Lemire
771e9cd68a
Trying again... ( #235 )
2019-07-29 13:55:13 -04:00
Daniel Lemire
c328afee57
This should fix master.
2019-07-29 13:44:25 -04:00
Daniel Lemire
3dae86223d
Changing intrinsic name.
2019-07-29 13:39:54 -04:00
Daniel Lemire
85e31a5479
This fixes the "big exp" bug, although we need to assess the performance and maybe do some tuning. ( #233 )
2019-07-29 13:28:16 -04:00
Daniel Lemire
a53d95099c
Intrinsic-based flatten ( #234 )
...
* Providing a flatten function with intrinsics (for Visual Studio).
2019-07-29 13:28:02 -04:00
Daniel Lemire
eba02dc1b9
Runtime dispatch
...
* Attempt 1 - fn targeting
GCC won't work with templates with different targets, need to specialize all the way up the call stack.
* Compiles properly with cmake. Does not with the Makefile.
* Compilation works with Makefile
* instruction_set changes to architecture
* some aesthetic changes
* fix amalgation and tests + aesthetic changes
* This now compiles and passes tests under CLANG
* Minor correction.
* Trying to make it work on ARM
* Adding missing namespace
* Missing bracket
* Fixing minor compilation issues.
* Getting parse to use runtime dispatch
* Fixing amalgamation script.
* Making sure that NEON is supported.
* Fixing typo
* Merging https://github.com/lemire/simdjson/pull/229
* Manual merge of
https://github.com/lemire/simdjson/pull/229
by @jkeiser (second part)
* Trying another way.
* Removing the paral.
* Fixing the make file
* Let us make the practice run long enough.
* Resolved the awful slowness.
* Cleaning the README.md
* With runtime dispatching, we should not need flags anymore.
* Changing isa detection file's name + fixing typos.
2019-07-28 22:46:33 -04:00
ioioioio
bcabdfc1ae
Json pointer ( #220 )
...
* json pointer support
* Addition of tests for the json pointer
* Adding a new tool for the JSON Pointer support, and some documentation.
2019-07-26 18:38:10 -04:00
Daniel Lemire
a3beac8d13
This simplifies back the number parsing code... The extra work introduced recently is seemingly unnecessary. ( #218 )
2019-07-18 11:50:26 -04:00
Daniel Lemire
e926b4b3c9
More accurate number parsing ( #217 )
...
* This drastically improves the accuracy (down to to a ULP of 1)
* More comments and documentation.
2019-07-15 22:17:49 -04:00
Daniel Lemire
6c168f046d
Optimizing stage1 ( #216 )
...
* Optimizing stage 1-- avx edition
* Optimizing sse.
* Saving 0.5% in instruction count (NEON).
2019-07-11 20:59:21 -04:00
Daniel Lemire
4b7e87ec7f
Removing garbage. ( #213 )
2019-07-09 21:51:16 -04:00
Daniel Lemire
98b387aac3
Fixing a messed up interleaved #ifdef/namespace. ( #211 )
2019-07-09 19:48:20 -04:00
Daniel Lemire
be956654b2
Minor cleaning = annotating simdjson namespaces and making sure that we don't have headers all over.
2019-07-09 19:24:08 -04:00
Daniel Lemire
977f57fd37
We need to guard the simdutf8check files.
2019-07-09 16:53:28 -04:00
ioioioio
7369339c88
Neon utf8validation ( #207 )
...
* utf8 validation on neon works
2019-07-09 15:14:34 -04:00
Daniel Lemire
3f79385160
Removing some fprintf. ( #209 )
2019-07-09 13:04:44 -04:00
ioioioio
b0d9c074e1
check_utf8_helper has a more meaningful name
2019-07-05 11:09:28 -04:00
Daniel Lemire
fba27ef4b9
I missed a few. Building up VS support.
2019-07-04 17:45:45 -04:00
Daniel Lemire
19cdc09928
Improving support for VS
2019-07-04 17:36:26 -04:00
Daniel Lemire
2b2d93b05f
Various minor tweaks.
2019-07-04 17:19:05 -04:00
ioioioio
f7ea2629e4
Fixing warnings and Microsoft intinsics.
2019-07-04 10:13:40 -04:00
ioioioio
861a6a17e4
SSE implementation integrated
2019-07-03 17:15:21 -04:00
ioioioio
0df6d83f08
deleting useless comments and namespace indications
2019-07-03 10:47:45 -04:00
ioioioio
036f9d5a45
Merge branch 'master' of https://github.com/lemire/simdjson into Multiple_implementation_refactoring_stage2
2019-07-03 10:34:58 -04:00
ioioioio
3f24879157
Stage2 refactored to simplify multiple implementations
2019-07-02 17:12:00 -04:00
ioioioio
9230588ce8
conflicts are solved
2019-07-02 15:21:00 -04:00
Daniel Lemire
aa78b70d69
Introducing a "native" instruction set so that you do not need to do #ifdef to select the right SIMD set all the time.
...
Fixing indentation.
Removing some obsolete WARN_UNUSED.
Fixing a weird warning with optind variable.
2019-07-01 14:18:30 -04:00
Daniel Lemire
1b81e7c928
Correcting ugly indentation.
2019-07-01 11:55:39 -04:00
ioioioio
de08df6a7e
Correction of identation.
2019-06-28 15:33:30 -04:00
ioioioio
6723221a42
Refactoring stage1 to facilitate multiple implementations.
2019-06-28 15:14:42 -04:00
Daniel Lemire
d7f7f1b200
Fixing issue. ( #193 )
2019-06-20 18:49:47 -04:00
Daniel Lemire
3db8c5a0eb
Fixing the issue ( #191 )
2019-06-12 16:32:46 -04:00
Daniel Lemire
b0e6bfa84c
Simpler iteration code ( #190 )
...
* Adding convenience method to simplify code.
* Simplifying the iteration code.
2019-06-12 16:29:24 -04:00
Daniel Lemire
b1e8990654
Moving iterator functions in the header file ( #189 )
...
We want the compiler to inline hot functions in the iterators. Let us leave them in the header file. Please.
2019-06-11 21:09:58 -04:00
Daniel Lemire
14016743be
fixing typo in comment.
2019-06-05 21:29:46 -04:00
Daniel Lemire
59194dcf4d
Issue182: fixed ( #183 )
...
* Verifying issue 182.
* Fixing the corresponding bug.
2019-06-05 18:51:29 -04:00
Daniel Lemire
642132920f
Fixing performance regression caused by helpful code contributions
...
that moved inlineable functions into the source file combined with
helpful compilers which aren't smart enough to do the inlinining in
any case.
2019-05-31 18:16:12 -04:00
Daniel Lemire
f00be30318
Being clearer as to what TAPE_ERROR means.
2019-05-28 19:32:56 -04:00
Daniel Lemire
8526387acb
Improving error codes. ( #176 )
...
* This commit adds new error codes.
2019-05-24 17:28:56 -04:00
Daniel Lemire
bf82288ab1
Preventing implicit conversions for C strings to C++ strings (with evil results). ( #172 )
2019-05-21 13:32:23 -04:00
alexey-milovidov
576914ed54
Remove MMX code ( #170 )
...
#169
2019-05-20 14:41:58 -04:00
Daniel Lemire
dcd0cb8080
Fix for https://github.com/lemire/simdjson/issues/58 ( #168 )
2019-05-19 12:25:27 -04:00
Daniel Lemire
47beaff152
Adding white-listing for memory sanitizer.
2019-05-19 11:18:54 -04:00
Dong Xie
b98454d213
Add explicit conversion for leading and tailing zeros. ( #161 )
2019-05-09 20:56:13 -04:00
Daniel Lemire
954b89e762
New version (0.1.2).
2019-05-09 20:55:26 -04:00
Daniel Lemire
f75280ac9c
Fix for issue 150 ( #162 )
...
* Checks for issue 150. We run through the test files with sanitizers on.
* Fix for issue 150: the remaining issues were an overrun on the depth capacity and an "off-by-1" overrun on tape capacity.
* Improving makefile.
* Safer git submodule command.
* Getting get 'git' on circleci
2019-05-09 20:51:33 -04:00
Daniel Lemire
e370a65383
Fix for issues 32, 50, 131, 137
...
* Improving portability.
* Revisiting faulty logic regarding same-page overruns.
* Disabling same-page overruns under VS.
* Clarifying the documentation
* Fix for issue 131 + being more explicit regarding memory realloc.
* Fix for issue 137.
* removing "using namespace std" throughout. Fix for 50
* Introducing typed malloc/free.
* Introducing a custom class (padded_string) that solves several minor usability issues.
* Updating amalgamation for testing.
2019-05-09 17:59:51 -04:00
Heinz N. Gies
c5a3f9ccd4
Add failing test for a json with content zero ( #134 )
...
* Add failing test for a json with content zero
* Mark 0 byte as false in structural_or_whitespace_or_exponent_or_decimal_negated
2019-05-09 12:24:22 -04:00
Daniel Lemire
f0574d492c
Fix for issue 154 ( #157 )
...
* Changes necessary to reproduce
https://github.com/lemire/simdjson/issues/154
* Fixing issue 154.
2019-05-08 22:33:11 -04:00
Daniel Lemire
39fcc62e85
Fixed typo
2019-05-08 13:42:30 -04:00
saka1
719dff1312
Add predicates to ParsedJson::iterator ( #153 )
2019-05-07 14:11:33 -04:00
Daniel Lemire
0d81fd287e
With this commit we can do all tests with full sanitizers on, and get no warning ( #132 )
...
* Making sure we can run with the sanitizers on.
* Minor code simplification in the number parsing.
* Following @EmilGedda 's recommendations regarding the makefile.
* Reference to blog post.
* Adding link to https://johnnylee-sde.github.io/Fast-numeric-string-to-int/
* Better hex parsing.
2019-04-24 17:31:47 -04:00
Daniel Lemire
681cd33698
Making the iterator a tad safer (tweaking the constructor so that it can throw).
2019-04-22 10:53:25 -04:00
Geoff Langdale
777b9c9a9e
Unbreak x86. Durp.
2019-03-30 15:50:35 +11:00
Geoff Langdale
5ba29122fd
First cut of ARM port. Needs hand-hacked Makefile.
2019-03-30 00:47:35 -04:00
saka1
ddc2867f94
Adjust format and comments on avxcheckOverlong ( #129 )
2019-03-25 10:06:27 -04:00
Geoff Langdale
2c23b375b2
Temporarily added a non-x86 definition of SIMDJSON_PADDING
2019-03-21 11:37:40 +11:00
Geoff Langdale
9b6d32346b
Fixup portability.h to be more portable.
2019-03-21 11:25:51 +11:00
Daniel Lemire
374fe1af1e
Updating comments regarding usage
2019-03-15 12:10:10 -04:00
Daniel Lemire
bf9b1b1457
New version (mostly setting the singleheader version in sync).
2019-03-13 21:02:39 -04:00
Daniel Lemire
d5a185b13e
new release.
2019-03-13 20:02:44 -04:00
Daniel Lemire
df8f792183
Store the string lengths on the string tape ( #101 )
...
* Store string length in the string-tape item.
* Files are now limited to 4GB.
* Moving detection of unescaped chars to stage 1 to reduce the burden due to string parsing.
Fixes https://github.com/lemire/simdjson/issues/114
Fixes https://github.com/lemire/simdjson/issues/87
2019-03-13 19:32:57 -04:00
Daniel Lemire
609e96b5d1
Fix for https://github.com/lemire/simdjson/issues/119
2019-03-13 11:01:31 -04:00
myd7349
d2fa086198
Fix C4146 build error on UWP with MSVC ( #113 )
...
* Fix C4146 build error on UWP with MSVC
* Regenerate single header version
* Fix typo in parsedjson.h
* Regenerate single header version
2019-03-09 08:46:06 -05:00
Thomas Navennec
352dd5e7fa
Change parse_json return type from bool to int ( #82 )
...
* Added simdjerr namespace
* Updated jsonparser files
* updated stage1 and stage2
* removed stage2 inline function
* Added forgotten return statements
* Updated tools and benchmarks
* Corrected parenthesis
* Removed extra =
* Accidentally undid reinterpret_cast
* Better comments, undid a header name fuckup
* Added an errorMsg method, updated readme
* Removed useless header from stage2
* Updated single-header file
* added simdjerr.cpp contents to simdjson.cpp
* Made single header version work
* Updated singleheader test, fixed simdjson.cpp
* Renamed simdjerr namespace and files to simdjson
* Updating the amalgamation.
2019-03-02 17:18:45 -05:00
Daniel Lemire
a24e701b4e
First release (0.0.1)
2019-02-26 10:14:49 -05:00
geofflangdale
bdc2bc693f
Merge pull request #61 from NewProggie/fix_minor_problems
...
Fix minor problems
2019-02-26 20:50:03 +11:00
Kai Wolf
33341b60d8
Apply code review suggestions
...
- Undo explicit bool conversion
- Don't check for NULL before deleting pointer
2019-02-26 09:36:28 +01:00
Geoff Langdale
5289bf3eeb
Fixing Utf8 validation question #72
2019-02-26 13:17:29 +11:00
Kai Wolf
e7683820d5
Merge branch 'master' into fix_minor_problems
2019-02-25 21:05:29 +01:00
Kai Wolf
95e6fc2844
Fix CI errors
2019-02-25 20:55:07 +01:00
Wojciech Muła
7830b1be87
Use nothrow ( #65 )
...
* Use C++11 features
* Use std::nothrow
By default new throws std::bad_alloc, so no check code would be executed.
2019-02-25 14:36:45 -05:00
Egor Bogatov
83ab72079f
Add link to C# version ( #66 )
...
* fix noiline for MSVC
* Add SimdJsonSharp link to README.md
2019-02-25 14:17:43 -05:00
Kai Wolf
b521719b6f
Fix old-style C-Casts
2019-02-23 17:31:38 +01:00
Kai Wolf
ff22e75f95
Apply minor readability fixes
2019-02-23 17:28:20 +01:00
Daniel Lemire
3640ab9dd3
Fixing the makefile build.
2019-02-22 15:34:35 -05:00
Thomas Navennec
9606343b2c
ParsedJson & ParsedJson::iterator definitions in .cpp files ( #47 )
...
* Minor change to benchmark cmake
* Moved ParsedJson and its Iterator to separate .cpp files
* Uncommented functions, that has nothing to do with this pr
* Removed really_inline comments
* Reinstated some inline functions to restore previous performance
* Re-merged iterator in ParsedJson
* Uncommented some WARN_UNUSED
2019-02-22 14:38:35 -05:00
Daniel Lemire
4d6ed2b2c1
Tape capacity increase by 32 bytes to allow for expected overflow.
2019-02-22 13:08:46 -05:00
Daniel Lemire
90c881a3de
Invoking -mbmi
2019-01-16 13:26:24 -05:00
Daniel Lemire
b5a2c41049
We need the Intel intrinsic.
2019-01-16 13:13:03 -05:00
Daniel Lemire
388f89f185
Working on improving portability
2019-01-16 12:33:06 -05:00
Daniel Lemire
a00df9b992
Number parsing fix.
2019-01-04 17:36:52 -05:00
Daniel Lemire
d94e8ee973
Fixing dead code.
2019-01-02 12:16:29 -05:00
Daniel Lemire
3ce1dd8087
Cleaning.
2018-12-31 17:13:32 -05:00
Daniel Lemire
58d41923fd
Porting to visual studio
...
Now builds on Visual Studio
2018-12-30 21:00:19 -05:00
Daniel Lemire
46ef59c679
Cleaning.
2018-12-27 20:19:10 -05:00
Daniel Lemire
bf4089b33b
Removing custom types (more standard code).
2018-12-27 20:09:25 -05:00
Daniel Lemire
20133963bc
Trying a detailed analysis.
2018-12-19 21:23:37 -05:00
Daniel Lemire
0a109508de
Added documentation of the tape format.
2018-12-18 15:09:27 -05:00
Daniel Lemire
779ce184fb
Getting ready to document the tape format.
2018-12-18 14:21:22 -05:00
Daniel Lemire
0769c39e27
Ok. Looks complete.
2018-12-14 21:32:42 -05:00
Daniel Lemire
05a2547829
Adding benchmark.
2018-12-12 22:42:19 -05:00
Daniel Lemire
751dce98f5
Getting there slowly.
2018-12-11 22:39:39 -05:00
Daniel Lemire
e8d3d784ab
More fixing.
2018-12-10 22:21:03 -05:00
Daniel Lemire
058eb917d1
Better doc.
2018-12-10 22:00:16 -05:00
Daniel Lemire
e4703a383b
Even safer.
2018-12-10 20:54:31 -05:00
Daniel Lemire
7296d4d48b
Fixing...
2018-12-10 17:39:19 -05:00
Daniel Lemire
05636f3a1d
Cleaning.
2018-12-10 16:47:02 -05:00
Daniel Lemire
7fda77d51a
Mostly fixed performance regression.
2018-12-10 15:35:42 -05:00
Daniel Lemire
8615760331
Should now pass.
2018-12-10 15:16:31 -05:00