John Keiser
94563328c4
Make ctest succeed after running make all_tests
2021-03-20 14:01:52 -07:00
Daniel Lemire
ddf610125f
Easy fix. ( #1507 )
2021-03-19 19:53:22 -04:00
Daniel Lemire
6dc98561a9
Port the performance notes to "on demand". ( #1496 )
...
* Port the performance notes to "on demand".
* No more white space.
* Trimmed another space.
2021-03-16 17:32:38 -04:00
Daniel Lemire
02f9b83353
This moves us to On Demand as the default front-end. ( #1494 )
...
* This moves us to On Demand as the default front-end.
* Made casting magical
* Adding another section
* Undoing my damage.
2021-03-12 14:19:11 -05:00
Daniel Lemire
8e8fbc4cff
fixing issue 1480 ( #1485 )
2021-03-08 19:31:42 -05:00
John Keiser
bad582c2d3
Add value.raw_json_token()
2021-03-05 09:07:41 -08:00
John Keiser
f0e92e3bdd
Pass "capacity" straight to iterate, support std::string
2021-03-03 12:51:00 -08:00
John Keiser
3db1a214ce
Support user-provided buffers via promise_padded
2021-03-03 12:50:56 -08:00
John Keiser
9944db6d73
Move json_type to ondemand to prevent target mismatch inline errors
2021-03-02 18:31:17 -08:00
John Keiser
2ed24666b5
Add value.type()
2021-03-02 17:02:50 -08:00
Daniel Lemire
036151c1e3
Test that we can copy the iterators. ( #1466 )
2021-03-01 18:46:50 -05:00
Daniel Lemire
9577c54999
Provide the CMake install the necessarily information (and flags) to hand Windows DLL and add Windows installation tests ( #1457 )
...
* This gives the CMake install the necessarily information (and flags) to know
whether we have a Windows DLL and in such cases how to handle the linkage.
2021-02-26 16:17:05 -05:00
John Keiser
bcab8d3abf
Check for end object/array at top level
...
This avoids a very unlikely buffer overrun that can occur in a particular kind of invalid JSON:
- the document is invalid with an unclosed top level array or object
- the last thing in the document is a number that ends at EOF
- the padding is filled entirely with numeric digits
2021-02-22 09:35:21 -08:00
John Keiser
9d747642fe
Merge pull request #1452 from simdjson/jkeiser/safe-iter-fix
...
Fix bug reporting out of order iteration
2021-02-22 09:34:49 -08:00
John Keiser
814726e5d4
Merge pull request #1432 from simdjson/jkeiser/safe-lookup
...
Alert user when they use object indexing incorrectly
2021-02-22 09:31:59 -08:00
Daniel Lemire
81609393f1
Fixing issue 1449. ( #1451 )
2021-02-21 16:33:05 -05:00
John Keiser
74d6658f39
Make out of order iteration tests actually test errors in the loop
2021-02-21 11:43:36 -08:00
John Keiser
3076de0405
Use SIMDJSON_DEVELOPMENT_CHECKS instead of SIMDJSON_PRODUCTION
...
Don't enable in retail
2021-02-20 11:46:01 -08:00
John Keiser
4a0a0ed4c6
Split more tests into separate methods
2021-02-20 11:22:24 -08:00
Daniel Lemire
610b3ad302
Adds Visual Studio 2017 to CI (for real) and adapt our build/tests ( #1444 )
2021-02-15 19:49:12 -05:00
Daniel Lemire
4c63a929bc
This makes it possible to a have document instance (DOM) that is separate from the parser if you would like. ( #1430 )
...
* This makes it possible to a have document instance that is separate from the parser if you would like.
2021-02-10 14:44:53 -05:00
David CARLIER
6e9ada2d6c
unit test macos build fix ( #1434 )
2021-02-08 14:12:39 -05:00
John Keiser
9651efe626
Split up tests for compile times
2021-02-06 11:07:14 -08:00
John Keiser
14315ec5cd
Default SIMDJSON_PRODUCTION to OFF for bare header usage
2021-02-06 11:06:37 -08:00
John Keiser
a33bf40a7d
Add tests for sibling indexing detection
2021-02-05 16:39:52 -08:00
John Keiser
3801ea7777
Disable all OUT_OF_ORDER_ITERATION checks when SIMDJSON_API_USAGE_CHECKS
...
is off
2021-02-05 16:39:44 -08:00
John Keiser
e4626d233c
Descend into fields at the value position, not the key
2021-02-05 10:18:01 -08:00
John Keiser
9934f65987
Store start index of each depth for safety
2021-02-05 10:17:28 -08:00
John Keiser
b2de2dfd1b
Merge pull request #1416 from simdjson/jkeiser/safe-iterators-2
...
Add safety checks for out of order array/object iteration+indexing
2021-02-05 09:47:03 -08:00
John Keiser
3f2639a655
Merge pull request #1414 from simdjson/jkeiser/array-assert
...
Fix #1409 (assert when trying to get one value as multiple types)
2021-02-05 09:45:49 -08:00
Daniel Lemire
5449365658
This should make issue 1370 easier to track. ( #1429 )
...
* This should make issue 1370 easier to track.
* Avoiding exceptions.
2021-02-02 16:12:16 -05:00
Daniel Lemire
777202e1f1
Why would you use a reference when looping? ( #1422 )
...
* Why would you use a reference?
* I missed a few cases.
2021-02-01 12:30:36 -05:00
John Keiser
1bfbb6448a
Check out-of-order error in object index
2021-01-26 20:49:14 -08:00
John Keiser
fe726b0f80
Split up ondemand_dom_api_tests for sanitize build times
2021-01-26 19:42:37 -08:00
John Keiser
18ecc0032d
Reenable test that is now working
2021-01-26 15:15:09 -08:00
John Keiser
1a1532c8cc
Return INCORRECT_TYPE when numbers fail to parse
...
Also add tests for trying to get multiple types in a row
2021-01-26 14:59:13 -08:00
John Keiser
e6d2b7759a
Fix assertion when getting array after failing to get a scalar
...
Also remove distinction between & and && for array start, acting like
other types
2021-01-26 14:09:54 -08:00
Daniel Lemire
2a714f4e37
Hide the std::pair inheritance in our result instances ( #1396 )
...
* Fixing issue 1243
* The tie must go.
* Having std::pair be a protected inheritance breaks on demand.
* Putting it back.
* You really want to use emplace.
* Fixing one botched test.
* Prettier test.
* Using safer code.
* Fixing unsafe code.
* Simplifying the fuzzer.
* Trying another way.
* Ok. It should work without exceptions.
* Removing trailing spaces.
2021-01-18 12:00:02 -05:00
Daniel Lemire
73063e2dab
This adds a test to explain better the issue 1341: Support conversion of simdjson_result lvalue to dom::element ( #1397 )
...
* This adds a test to explain better the issue.
* Guarding it since it can throw.
2021-01-16 15:08:27 -05:00
John Keiser
55faf4c5bc
Recommend simdjson::ondemand over simdjson::builtin::ondemand ( #1380 )
...
Co-authored-by: Daniel Lemire <lemire@gmail.com>
2021-01-14 17:33:49 -05:00
Daniel Lemire
990da22249
Merge branch 'master' into jkeiser/ondemand-scalar-order
2021-01-13 14:21:16 -05:00
ihsinme
84b0e84447
fix function was exited without releasing ( #1389 )
...
* Update jsoncheck.cpp
* Update minefieldcheck.cpp
* Update jsoncheck.cpp
* Update minefieldcheck.cpp
2021-01-12 18:08:27 -05:00
Nicolai Grodzitski
095691160b
Add element representation trivially_copyable property test ( #1377 )
...
* Add element representation trivially_copyable property test
Releates to issue #1374
* Change test label
2021-01-11 19:06:59 -05:00
John Keiser
3279c2f15b
Remove unnecessary "try_get_XXX" methods
...
Also don't distinguish between & and && (instead, advance the first time
you encounter a scalar no matter what)
2021-01-11 15:19:26 -08:00
John Keiser
0f515785c6
Support reading scalars out of order
2021-01-11 15:17:46 -08:00
Daniel Lemire
7dbe4caf3f
Taking a float and adding hundreds of zeros, you may get a truncated value that is just one over the desired value (bug fix) ( #1388 )
...
* Found a bug where if take some float and add many zeros, you may get a truncated value that is just one over the desired value.
2021-01-11 17:07:25 -05:00
John Keiser
0039c5b981
Disallow parser.iterate("1"_padded), as it won't work
2021-01-01 19:18:00 -08:00
John Keiser
17f4f82827
Ondemand usage docs (and associated tests)
...
Also disallowed parsing a temporary padded_string, since the JSON *must*
live through the whole parse.
2021-01-01 19:17:58 -08:00
John Keiser
158a3c53d8
Merge pull request #1351 from simdjson/jkeiser/unordered-lookup
...
Make `object["field"]` order-insensitive in On Demand
2020-12-24 13:33:09 -08:00
John Keiser
92443772d2
Enable all acceptance tests on mingw
2020-12-23 09:14:45 -08:00
John Keiser
041d59cc17
Create acceptance_tests, all_tests, etc. make targets
...
And use them for mingw build and test
2020-12-23 09:14:45 -08:00
John Keiser
a405173d59
Break up ondemand_basictests into smaller executables
...
(Allows for faster compilation speeds)
2020-12-23 09:14:44 -08:00
John Keiser
ad4f718e0c
Make assert test succeed (not run anything) in Release builds
2020-12-21 10:52:01 -08:00
John Keiser
a1cf588d5f
Fix GCC 7 warning when inlining does its job
2020-12-21 09:19:07 -08:00
John Keiser
195acc3e45
Add find_field / find_field_unordered to object
2020-12-20 11:39:50 -08:00
John Keiser
b8426584fc
Make field lookup order-insensitive.
2020-12-19 13:57:29 -08:00
Daniel Lemire
85001c55fb
Fixing UTF-8 validation under PPC64 ( #1346 )
...
* Entering a new UTF-8 test
* Maybe *I* had a bug in the tests.
* Replacing nulls with 1s.
* Let us try to be more verbose.
* Return 0.
* Fixing issue.
* Adding puzzler scenario.
* Fixing PPC64
Co-authored-by: Daniel Lemire <dlemire@rcs-power9-talos>
2020-12-19 10:42:27 -05:00
John Keiser
f785f76d98
Merge pull request #1342 from simdjson/jkeiser/iter-safety
...
Safety: assert in debug mode when on demand values are used out of order
2020-12-16 15:58:29 -08:00
John Keiser
d670906ff3
Don't keep a separate at_start boolean in object
2020-12-15 11:29:31 -08:00
Daniel Lemire
c578f63f34
Fixing issue 1337 ( #1338 )
...
* Fixing issue 1337
* This test should always run.
* Removing bad attribute access.
2020-12-14 16:20:36 -05:00
Daniel Lemire
9a404bdcdc
Reenabling the optimized kernels (main branch). ( #1344 )
...
* Reenabling the optimized kernels (main branch).
* Defining SIMDJSON_CAN_ALWAYS_RUN_PPC64 and SIMDJSON_CAN_ALWAYS_RUN_ARM64
* Adding the bad UTF8 string from the fuzzer.
* Taking into account John's comments.
* Bumping the lib version.
* Update CMakeLists.txt
2020-12-14 14:28:45 -05:00
John Keiser
f9c6dedca1
Add test for out-of-order parse asserts
2020-12-13 13:39:47 -08:00
John Keiser
806cb39103
Clean up some more benchmark/test code
2020-12-07 13:44:58 -08:00
John Keiser
3aa3175378
Add tests for recovering from partial child iteration
2020-12-06 16:19:06 -08:00
John Keiser
4c63956624
Enable object["x"]["y"]
2020-12-06 15:23:52 -08:00
John Keiser
c89647af9e
Make all values use same underlying iterator
2020-12-06 15:23:52 -08:00
John Keiser
1303a88769
Unconditionally track depth
2020-12-06 15:23:52 -08:00
Daniel Lemire
aaa12c8fb6
more thread testing ( #1324 )
...
* Adding a few tests.
* More tests.
* Trailing.
* More links/documentations.
2020-12-02 11:33:36 -05:00
Daniel Lemire
9304d88920
Prototype test for issue 1299: using parse_many, find the location of the end of the last document ( #1301 )
...
* Prototype test for issue 1299.
* This improves the documentation.
* Removing trailing white spaces.
* Removing trailing spaces
* Trailing.
2020-12-01 15:59:20 -05:00
Daniel Lemire
d9c4191e8a
This should fix an issue we have with unclosed strings with document_stream ( #1321 )
...
* This should fix an issue we have with unclosed strings.
* Patching the fallback kernel.
* Better guarding the code.
* Patching the fallback.
2020-11-30 13:43:57 -05:00
Daniel Lemire
dc69bc28ae
Trying to verify recent document stream issues. ( #1318 )
...
* Trying to verify recent document stream issues.
* Adding another one.
* More thorough tests.
* Removing trailing spaces.
* Working toward exposing some issues.
* Tweaking.
2020-11-27 17:04:10 -05:00
Daniel Lemire
1abb64f6f6
This fixes issue 1302 ( #1303 )
...
* This verifies issue 1302
* I believe that this fixes the issue.
* Let us do it differently.
* Better comments.
2020-11-27 14:19:36 -05:00
Daniel Lemire
5609851747
This will guard the batch_size so it cannot be so low as to accidentally burn through your CPU. ( #1319 )
...
* This will guard the batch_size so it cannot be so low as to accidentally burn through your CPU.
2020-11-27 09:37:54 -05:00
friendlyanon
c805fc28a4
Remove git modules ( #1258 )
...
* Bump minimum CMake version
* Remove unnecessary git checks
* Move benchmark options where they are used
* Declare helper functions for dependencies
The custom solution here is tailored for fast configure times, but only
works for dependencies on Github.
* Import dependencies using the declared commands
* Remove git submodules
* Call target_link_libraries properly
target_link_libraries must not be called without a requirement
specifier.
* Fix includes for competition
Co-authored-by: friendlyanon <friendlyanon@users.noreply.github.com>
2020-11-04 13:34:29 -05:00
Paul Dreik
af4db55e66
remove trailing whitespace ( #1284 )
2020-11-03 21:48:09 +01:00
Paul Dreik
47669566da
fix unintended early return in ondemand unit test loops ( #1263 )
...
fix uninteded early return in ondemand unit test loops
go through and fix warnings appearing in qtcreator,
qualify with std::, add const, abort on error
get rid of ulp_distance, not needed anymore when parsing is exact
2020-11-01 19:08:40 +01:00
Paul Dreik
0b82f07115
fix segfault in numberparsing #1273 ( #1274 )
...
This was a read overflow.
2020-11-01 18:27:21 +01:00
Paul Dreik
f93fb21c95
optionally disable deprecated apis ( #1271 )
...
Introduce cmake option SIMDJSON_DISABLE_DEPRECATED_API (default Off)
which turns off deprecated simdjson api functions by setting the macro
SIMDJSON_DISABLE_DEPRECATED_API.
For non-cmake users, users will have to set SIMDJSON_DISABLE_DEPRECATED_API
by some other means to disable the api.
Closes #1264
2020-11-01 06:38:52 +01:00
Daniel Lemire
a8bf10ea5a
Minor patch.
2020-10-30 14:51:50 -04:00
Daniel Lemire
a75c07065f
Fix for issue 1246. We document the relationship between parser instances and elements ( #1250 )
...
* Fix for issue 1246.
* Adopting John's wording.
2020-10-26 08:40:45 -04:00
Daniel Lemire
14039d05a9
Adding a new benchmark for ondemand: distinct user id ( #1239 )
...
* Adding a distinct user id benchmark
* reenabling everything
* Removing an unnecessary "value()".
* Better tests of the examples and some fixes.
* Guarding exception code.
2020-10-23 08:47:01 -04:00
Daniel Lemire
61fb4244f2
There are a couple of extra value() that should not be there ( #1242 )
2020-10-21 12:37:22 -04:00
Daniel Lemire
0d6919dd99
Reenable the on-demand tests and allows us to convert a raw string into a C++ string. ( #1232 )
...
* Reenable the on-demand tests and allows us to convert a raw string into a C++ string.
* Fixing a 1-byte buffer overrun.
* More documentation.
* Adding more tests.
* Enabling the new tests
* Committing a nicer example.
* Not yet happy but this should fix our failures.
* Duh.
* Ok. Making it easier to get string_view instances from field instances.
* It is a struct.
* Trying to satisfy VS.
* Adopting John's name.
2020-10-19 20:22:24 -04:00
Paul Dreik
f1b4a54991
add fuzz element ( #1204 )
...
* add definitions for is_number and tie (by lemire)
* add fuzzer for element
* update fuzz documentation
* fix UB in creating an empty padded string
* don't bother null terminating padded_string, it is done by the std::memset already
* refactor fuzz data splitting into a separate class
2020-10-17 05:48:50 +02:00
Daniel Lemire
07a6e098c8
This would allow users to find out what builtin is. ( #1227 )
...
* This would allow users to find out what builtin is.
* Trying another approach.
* Added instructions.
* Cleaning up the printout.
* Let us be less invasive.
* Adding a comment.
2020-10-15 21:58:42 -04:00
Daniel Lemire
3cd98df30d
This adds new tests regarding ordering. ( #1233 )
...
* This adds new tests regarding ordering.
* Updating the documentation with more examples.
* Adding compilation tests.
* Pruning code for exceptions.
* Guarding exceptionless.
2020-10-15 16:41:14 -04:00
Daniel Lemire
bb2bc98a22
Fix issue https://github.com/simdjson/simdjson/issues/1127 ( #1224 )
2020-10-13 09:18:54 -04:00
Daniel Lemire
37e6d1e9c7
new number parsing ( #1222 )
...
* Remove our dependency on strtod_l by bundling our own slow path.
* Ok. Let us drop strtod entirely.
* Trimming down the powers to -342.
* Removing useless line.
* Many more comments.
* Adding some DLL exports.
* Let the gods help those who rely on windows+gcc.
* Marking the subnormals as unlikely. This is pretty much "performance neutral", but it might help just a bit with twitter.json.
2020-10-10 12:47:49 -04:00
John Keiser
676a3d068c
Add non-top-level array iteration test
2020-10-06 11:29:46 -07:00
John Keiser
5533f8d87b
Add object iteration error tests
2020-10-06 11:29:46 -07:00
John Keiser
93af7b61ce
Add array iteration error tests
2020-10-06 11:29:46 -07:00
John Keiser
364ad5529d
Add basic error tests
2020-10-06 11:29:46 -07:00
John Keiser
1974a46fe0
Remove validate tests and unimplemented cast tests from ondemand
2020-10-06 11:29:46 -07:00
John Keiser
5327ab9903
Remove ondemand minify and format tests
2020-10-06 11:29:46 -07:00
John Keiser
235d191bae
Add Twitter exception tests
2020-10-06 11:29:46 -07:00
John Keiser
4eb80ec75a
Add DOM API exception tests
2020-10-06 11:29:45 -07:00
John Keiser
2900459222
Separate twitter tests from DOM API tests
2020-10-06 11:29:45 -07:00
John Keiser
9088792b0e
Disable value["x"] (unsafe, convert to object first)
2020-10-06 11:29:45 -07:00
John Keiser
b41fe7beab
Add object indexing tests
2020-10-06 11:29:45 -07:00
John Keiser
00f9bb8a07
Add null tests
2020-10-06 11:29:45 -07:00