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
96536239c2
Deleting the function. ( #1428 )
2021-02-02 09:48:01 -05:00
Daniel Lemire
0e18453e34
Potential optimizations applied to jkeiser/array-assert ( #1421 )
...
* Some tuning.
* Using table lookups...
2021-02-01 12:39:10 -05:00
Daniel Lemire
d6f33e4830
This adds a little test to see if we can compiler with very strict flags (conventional casts) ( #1417 )
...
* This adds a little test to see if we can compiler with very strict flags.
* Trimming a leftover old-style cast.
* More cleaning.
* A few more pedantic casts.
2021-01-27 18:37:30 -05:00
Tibbel
5613d30e97
partly replacement old-style-cast to c++ *_cast ( #1403 )
...
Co-authored-by: Tibbel <tibbel@ma-gi.de >
2021-01-27 13:33:48 -05:00
John Keiser
1bfbb6448a
Check out-of-order error in object index
2021-01-26 20:49:14 -08:00
John Keiser
c5b44f44f9
Add partial out-of-order check for field lookup
2021-01-26 20:00:39 -08:00
John Keiser
22b3ea93a8
Emit an error if user tries to iterate arrays out of order
2021-01-26 20:00:19 -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
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
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
38da15b501
Rename checkpoint() -> position(), add token_position type
2021-01-11 15:19:24 -08:00
John Keiser
0f515785c6
Support reading scalars out of order
2021-01-11 15:17:46 -08:00
John Keiser
6fed8d2a26
Use active implementation for stage 1 on demand
2021-01-11 14:57:52 -08:00
John Keiser
0039c5b981
Disallow parser.iterate("1"_padded), as it won't work
2021-01-01 19:18:00 -08:00
John Keiser
a1cf588d5f
Fix GCC 7 warning when inlining does its job
2020-12-21 09:19:07 -08:00
John Keiser
e7e09e444c
Use find_field in benchmark
2020-12-20 11:39:56 -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
John Keiser
d670906ff3
Don't keep a separate at_start boolean in object
2020-12-15 11:29:31 -08:00
John Keiser
f9c6dedca1
Add test for out-of-order parse asserts
2020-12-13 13:39:47 -08:00
John Keiser
73c7b7db3d
Safety: check index of scalar values before use
2020-12-11 11:57:09 -08:00
John Keiser
806cb39103
Clean up some more benchmark/test code
2020-12-07 13:44:58 -08:00
John Keiser
3baba73cf5
Don't call functions in assume (VS2019 Clang doesn't like it)
2020-12-07 11:17:24 -08:00
John Keiser
db6bf15361
Allow all array/object/etc. to be copied
2020-12-06 16:29:53 -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
Mikhail Matrosov
b442b29ccf
Mark comparison operators as const ( #1320 )
...
Co-authored-by: Mikhail Matrosov <mikhail.matrosov@aimtech.com >
2020-11-27 14:18:42 -05:00
Daniel Lemire
268f26a84f
Tweak of the documentation.
2020-11-07 16:33:12 -05:00
Paul Dreik
d9456b3030
fix numeric_limits usage problem on windows caused by the max macro ( #1293 )
...
See https://stackoverflow.com/questions/2789481/problem-calling-stdmax/2789509#2789509
2020-11-06 06:55:27 +01:00
Daniel Lemire
218c274090
Updating main branch for legacy libc++ support ( #1288 )
...
* Updating main branch for legacy libc++ support
* Adopting
* Removing unnecessary math header.
* Updating the single-header files so we can pass the new tests.
* Portable infinite-value detection is hard.
* Working toward disabling boost json selectively.
* Selectively disabling Boost JSON
* More work toward selectively disabling boost json.
2020-11-04 12:24:42 -05:00
Paul Dreik
af4db55e66
remove trailing whitespace ( #1284 )
2020-11-03 21:48:09 +01:00
Paul Dreik
54ffbbe7db
remove asserts from compute_float_64 ( #1276 )
2020-11-01 18:34:42 +01:00
Paul Dreik
0b82f07115
fix segfault in numberparsing #1273 ( #1274 )
...
This was a read overflow.
2020-11-01 18:27:21 +01:00
Daniel Lemire
b1444b4dfb
Mostly tiny changes, with one optimization to fallback for number parsing. ( #1265 )
...
* Mostly tiny changes, with one optimization to fallback for number parsing.
* Missed an update.
2020-10-29 11:18:11 -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
58e7106df1
remove unused function parse_unsigned
2020-10-16 22:17:11 +02: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
364ad5529d
Add basic error tests
2020-10-06 11:29:46 -07:00
John Keiser
9088792b0e
Disable value["x"] (unsafe, convert to object first)
2020-10-06 11:29:45 -07:00
John Keiser
00f9bb8a07
Add null tests
2020-10-06 11:29:45 -07:00