Daniel Lemire
48152a0326
Fix for issue 1981 ( #1982 )
...
* Fix
* Rewording.
* Doing it differently.
2023-04-08 16:11:40 -04:00
Daniel Lemire
cfd337bb50
This PR adds an 'at_end()' method. ( #1978 )
...
* This PR adds an 'at_end()' method.
* Adding 1111 }
* Tweaking test.
2023-03-30 10:47:13 -04:00
Daniel Lemire
59025bc8b1
Avoiding the issue where doc.get_value().get_object() differs from doc.get_object() in how errors are reported. ( #1975 )
...
* Avoiding the issue where doc.get_value().get_object() differs from doc.get_object() in how errors are reported.
* Minor tweaks
2023-03-24 12:44:18 -04:00
Daniel Lemire
25e7f1765a
Various tweaks.
2023-03-09 10:42:23 -05:00
Daniel Lemire
37e87f6f99
Adding support for wobbly strings to On Demand and lossy trancoding from escaped (with replacement) ( #1947 )
...
* Adding support for wobbly strings.
* Minor tweak.
* Adopt substitution code point.
* Lossy
* Patching
2023-02-28 22:56:44 -05:00
Daniel Lemire
b9234be80f
complete number_in_string for documents, stringify the version macro and improving trailing content errors ( #1934 )
...
* This completes the '*_in_string' support within documents.
* Minor updates.
* Additional fixes.
2023-01-21 15:29:08 -05:00
Daniel Lemire
0a2563e13e
Testing and fixing log issues. ( #1939 )
...
* Testing and fixing log issues.
* Cleaning it a bit.
2023-01-21 15:28:56 -05:00
Daniel Lemire
f151300a76
Disabling fallback kernel on systems where it is not needed ( #1930 )
...
* Fixing issue 1772
* More cleaning.
* Allow disabling other kernels.
* Minor tweaks.
2023-01-03 09:52:41 -05:00
Daniel Lemire
db08d78ed0
Documents better the type method and makes is_null return an error condition in some instances ( #1909 )
2022-10-06 11:47:40 -04:00
Daniel Lemire
5e6be3ed7a
Minor fix (documentation and safety) regarding max. depth in ondemand. ( #1906 )
2022-10-04 12:24:20 -04:00
Daniel Lemire
b92cbbe280
Fixing issue 1898 ( #1899 )
...
* Fixing issue 1898 Preserve sign for number with underflowing exponent (#1900 )
Before this commit, simdjson parsed "-1e-999" and "-0e-999" and "-1e-342"
as 0.0.
After this commit, those JSON strings get parsed as -0.0.
(https://en.wikipedia.org/wiki/Signed_zero )
The old behavior was inconsistent with the way simdjson parsed "-0.0" as -0.0.
Co-authored-by: Daniel Lemire <daniel@lemire.me >
Co-authored-by: Tyson Andre <tysonandre775@hotmail.com >
2022-10-02 16:25:39 -04:00
sean
d4ac1b51d0
Fix various warnings & if constexpr ( #1888 )
2022-09-27 23:22:47 -04:00
Daniel Lemire
fbb46b99e2
Fixes and verifies issue 1878. ( #1880 )
...
* Fixes and verifies issue 1878.
* Changing how NULL is handled.
* Different design.
2022-08-08 22:00:38 -04:00
Daniel Lemire
db3e813aa6
Verifying and fixing issue 1876 ( #1877 )
...
* Verifying and fixing issue 1876
* Typo
2022-07-28 21:45:54 -04:00
Daniel Lemire
5dbe96da96
We change slightly on development checks are enabled. ( #1869 )
...
* We change slightly on development checks are enabled.
* Removing garbagy code.
2022-07-19 16:40:02 -04:00
Daniel Lemire
40b397a3d4
Fixing issue 1870 ( #1871 )
2022-07-19 15:17:12 -04:00
strager
5510089d45
Improve build times for debug builds ( #1859 )
...
* Rename simdjson_really_inline -> simdjson_inline
I want to change the simdjson_really_inline macro to sometimes not force
inlining. After that upcoming change, the name simdjson_really_inline
will no longer makes sense.
Rename simdjson_really_inline to simdjson_inline. This patch should not
change semantics; simdjson_inline still forces inlining as before.
Some functions still need to be really inlined for ABI reasons.
(GCC's -Wpsabi complains otherwise.) Leave those functions marked as
simdjson_really_inline.
* Improve build times for debug builds
simdjson_inline is used for most simdjson functions. It forces inlining.
In unoptimized/debug builds, this can lead to a lot of machine code
being generated (especially with Address Sanitizer), causing slow
compilation.
Change simdjson_inline to force inlining only for optimized builds.
Sometimes, the programmer might want a slightly-optimized build and want
fast compilation (e.g. GCC's -Og mode). Allow simdjson users to define
the simdjson_inline macro themselves (e.g. on the command line:
-Dsimdjson_inline=inline) in cases where the default behavior is
undesired.
This patch reduced build times by over 75% for ondemand_object_tests.cpp
with GCC 9.4.0 and CMAKE_BUILD_TYPE=Debug on my AMD 5950X:
Before: 6.885 6.683 6.971 6.957 6.949 seconds (5 samples)
After: 1.492 1.551 1.494 1.490 1.531 seconds (5 samples)
2022-07-19 15:14:33 -04:00
Daniel Lemire
bd3d67e889
Documenting a specific use case where you need a value if and only if it is another key is not present ( #1865 )
...
* Documenting a specific use case.
* Adding more comments and documentation.
2022-07-09 10:54:28 -04:00
Daniel Lemire
1a195623a5
Improve string performance in ondemand by making the string processing runtime dispatched. ( #1849 )
...
* This should improve string performance in ondemand by making the string processing runtime dispatched.
2022-06-24 09:57:16 -04:00
Daniel Lemire
4e1e002cb0
This verifies and fixes issue 1834. ( #1843 )
2022-06-15 13:42:04 -04:00
Dirk Stolle
82433a67f9
fix a few typos ( #1829 )
2022-05-20 13:31:30 -04:00
Daniel Lemire
8c1bfe782b
Adds 'current_depth()'. ( #1824 )
2022-05-17 18:06:42 -04:00
Daniel Lemire
730939f01c
Better documentation regarding the direct get_number_type() method. ( #1821 )
2022-05-13 15:31:09 -04:00
Daniel Lemire
b169dc2ea7
Fixing get_number_type() ( #1819 )
2022-05-12 12:15:38 -04:00
Piotr Doan
e0788507fe
Missing value::get() template specialization for number ( #1779 )
2022-01-11 12:07:20 -05:00
Daniel Lemire
c6f9c93c33
Use static variables to enforce initialization order. ( #1773 ) ( #1777 )
...
Fixes https://github.com/simdjson/simdjson/issues/1771
Co-authored-by: Hao Chen <chenhao.yalier@gmail.com >
2022-01-03 15:54:57 -05:00
Daniel Lemire
6db8ceb46c
Verify and fix 1768. ( #1769 )
...
* Verify and fix 1768.
* Breaking down the namespaces for C++11 compilers.
2021-12-21 15:12:38 -05:00
N. Kolotov
7e1893db42
Added SIMDJSON_ prefix to STRINGIFY and to NO_SANITIZE_UNDEFINED macros. ( #1766 )
2021-12-21 09:53:06 -05:00
Daniel Lemire
b4b1927b0f
Making the documentation more explicit. ( #1765 )
2021-12-21 09:51:20 -05:00
epoll-reactor
69ee84973a
Fix some typos in source files. ( #1761 )
...
Co-authored-by: epoll-reactor <>
2021-12-06 16:56:15 -05:00
epoll-reactor
003d970cd2
Fix -Wredundant-decls warning in json_type.h. ( #1759 )
...
Co-authored-by: threadpoolexecutor <davidkor77@gmail.com >
2021-12-02 13:49:48 -05:00
Daniel Lemire
1b01969bda
Adding tests for issue 1745. ( #1746 )
...
* Adding tests for issue 1745.
* Tweaking the documentation so that it is clearer.
2021-11-03 10:12:18 -04:00
Daniel Lemire
35b4a48e99
Fixing issue 1742 ( #1743 )
...
* Fix for issue 1742.
* Some additional tests.
2021-10-27 19:25:23 -04:00
mir4cle
c0d18452fc
Add an option to get current location from value ( #1738 )
...
Co-authored-by: Igor Logvanev <igor.logvanev@aimtech.team >
2021-10-24 16:55:49 -04:00
Daniel Lemire
6d308a08c5
Fixing issue 1736 ( #1737 )
...
* Fixing issue 1736
* Updating google benchmark.
* Minor trimming.
* Using the variable (to silence a warning).
* Adding assignment operator.
2021-10-20 12:15:35 -04:00
Daniel Lemire
9e477ddb00
Let us try to improve the documentation so that it is clearer. ( #1733 )
...
* Let us try to improve the documentation so that it is clearer.
* Minor tweaks.
2021-10-19 13:09:41 -04:00
Daniel Lemire
91908ade4d
Additional documentation following issue 1723 ( #1724 )
...
* Some extra documentation regarding issue 1723.
* Adding comments.
* Minor fix.
* [no ci] more documentation
2021-10-09 11:41:20 -04:00
Madhur Chauhan
4e609aa955
fix redundant ; in document-inl.h ( #1715 )
2021-09-17 14:02:03 -04:00
Daniel Lemire
af4ff7cc33
Adding fast "get_number_type()" function, bypassing "get_number()" ( #1713 )
...
* Adding fast "get_number_type" function, bypassing "get_number"
* Minor tweak.
* Adding missing get_number_type().
2021-09-07 14:34:40 -04:00
Nicolas Boyer
c9179ad81d
Add count_fields method for objects ( #1712 )
...
* Implement count_elements for object
* Add count_elements() for simdjson_result
* Add count_elements for documents(arrays,objects).
* Add tests for objects.
* Add tests for documents array. Typos.
* Renaming to count_fields() for objects.
* Update doc.
* Apply patch
2021-09-02 16:18:48 -04:00
Daniel Lemire
cebe3fb299
Tweaking current_location(). ( #1707 )
...
* Tweaking current_location().
* Well.
2021-08-28 20:19:30 -04:00
Nicolas Boyer
ed7343f7f2
Provide current location in JSON input ( #1695 )
...
* Setup.
* Add current_location().
* Make return simdjson_result and fix cast issues.
* Whitespace.
* Add broken JSON tests. Add null parser check.
* Remove unused variables.
* Alive fix.
* Fix merge issues.
* Simplification for out of bounds.
* More tests.
* Move pointer back for unrecoverable errors.
* Add new error OUT_OF_BOUNDS
* Remove unnecessary include and fix OUT_OF_BOUNDS.
* Add more tests. Fix unrecoverable errors.
* Fix tests.
* Modify one test.
* Update doc.
* Typos.
* Add read_me tests.
* Update doc.
* Add current_location for simdjson_result and document_reference
* Typos.
Co-authored-by: Daniel Lemire <lemire@gmail.com >
2021-08-27 13:41:59 -04:00
Daniel Lemire
35158257c6
Implementing get_number for the document instances. ( #1706 )
2021-08-27 10:26:01 -04:00
Daniel Lemire
b935ce2e06
Allowing casts instead of get_double, get_uint64 and get_int64 ( #1705 )
2021-08-27 10:25:17 -04:00
Daniel Lemire
4afe7565b4
ondemand dynamically-typed numbers ( #1704 )
...
* Building up a number type.
* Implemented is_integer and is_negative.
* Implemented get_number in value_iterator.
* Final prototype.
* [no ci] typo
2021-08-26 12:16:44 -04:00
Daniel Lemire
6bed34ad61
This exposes 'reset' for object and array instances. ( #1696 )
...
* This exposes 'rewind' for object and array instances.
* Putting really_inline back to count_elements()
* Update array.h
* Adding empty array rewind.
* Adds "is_empty" method to arrays.
* More fragmentation.
* Tweaking implementation.
* Fixing issue with get_value() on document instances.
* Changing the name of the new rewind functions to reset.
2021-08-21 10:23:59 -04:00
Daniel Lemire
0ad52a7e22
Renaming scalar to is_scalar. ( #1698 )
2021-08-21 10:23:22 -04:00
Daniel Lemire
aa52cf6868
Alive fix. ( #1700 )
2021-08-21 10:22:59 -04:00
Daniel Lemire
de4deb8c4e
Makes it possible to cast a document to a value. ( #1690 )
...
* Makes it possible to cast a document to a value.
2021-08-11 20:02:30 -04:00
Daniel Lemire
19902abaf8
Guarding first/second access. ( #1688 )
...
* Guarding first/second access.
* Correcting our own usage.
* Adding more documentation.
2021-08-06 20:25:05 -04:00