John Keiser
64cf18aa1e
Merge pull request #1079 from simdjson/jkeiser/no-error
...
[3/3] Return errors immediately instead of using goto
2020-08-02 12:22:53 -07:00
John Keiser
66a68ce264
Return errors immediately instead of using goto
2020-08-02 12:04:12 -07:00
John Keiser
86162aaddb
Merge pull request #1078 from simdjson/jkeiser/no-computed-goto
...
[2/3] Remove computed GOTOs
2020-08-02 11:49:35 -07:00
John Keiser
9cc7a94a94
Merge pull request #1065 from simdjson/jkeiser/anonymous-namespace
...
[1/3] Wrap simdjson kernels in anonymous namespaces
2020-08-02 11:37:11 -07:00
John Keiser
6bca1225e6
Add unlikely in strategic places
2020-08-01 18:19:36 -07:00
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
Daniel Lemire
2f92a34bb7
Turns out that passing dom::element by reference can be a performance killer. ( #1086 )
...
* Turns out that passing dom::element by reference can be a performance killer.
* Tweaking.
2020-08-01 10:31:47 -04:00
Daniel Lemire
54ed24f481
Update README.md
2020-07-31 15:47:42 -04:00
Daniel Lemire
268df9f67a
Update basics.md
2020-07-31 15:43:34 -04:00
Daniel Lemire
84dc398d32
Adding a couple of tests.
2020-07-31 15:29:10 -04:00
Daniel Lemire
f6a3205d10
Avoid allocations in global objects ( #1082 )
2020-07-30 13:14:56 -04:00
Christoph Reiter
522cb66582
Make MSYS2 CI jobs actually use MSYS2 ( #1081 )
...
The jobs were executed in powershell using the globally installed cmake.
This makes things actually run in a MSYS2 shell.
This also removes the msys/cygwin job because it doesn't build
(it complains about undeclared posix_memalign)
2020-07-29 19:34:14 -04:00
Daniel Lemire
f873a140ce
Tweaking
2020-07-27 16:24:27 -04:00
PavelP
36dfc5bbd1
Add missing strings.h include for non-windows builds (required by strcasecmp) ( #1067 )
...
addresses #1066
2020-07-27 16:23:06 -04:00
Daniel Lemire
f80668e87f
This removes the crazy alignment requirements. ( #1073 )
...
* This removes the crazy alignment requirements.
2020-07-27 16:19:01 -04:00
Daniel Lemire
dcb5d47ee6
Being clearer.
2020-07-26 15:58:35 -04:00
PavelP
e95c22eb21
Add MSYS target for msys2 github workflow ( #1075 )
...
* Add MSYS target for msys2 github workflow
* Minimized differences in mingw/mingw64 CI workflows
2020-07-26 15:33:57 -04:00
Daniel Lemire
9fb83e61ea
We want the tests to run on PR.
2020-07-26 14:39:47 -04:00
Pavel P
1513cdf7bc
Add a quick example at the top of simdjson.h
2020-07-26 14:31:03 -04:00
Daniel Lemire
e33af1a3f8
Adding strings.h header. ( #1074 )
2020-07-25 15:27:19 -04:00
Daniel Lemire
857d77a10a
Adding msys2 tests.
2020-07-25 14:32:30 -04:00
PavelP
0e431a0250
Use Unix line endings for c/c++ code ( #1069 )
...
This is required for amalgamate.sh to produce correct results
2020-07-25 13:53:31 -04: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
796588900c
Reenabling C++ 20 features. ( #1059 )
2020-07-21 18:12:04 -04: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
0ff6833e96
Update basics.md
2020-07-21 17:29:10 -04:00
Daniel Lemire
e2cfcc52b3
Disabling cxx20 ( #1058 )
...
* Disabling C++ 20 features.
* Updating single-header.
2020-07-21 17:15:31 -04:00
Daniel Lemire
fc8a46025e
Better documentation of default_batch_size ( #1056 )
...
* Better documentation of default_batch_size
* Retweaking.
2020-07-21 15:15:21 -04:00
Joe Jevnik
d2bea0c228
Add support for C++ 20 ranges. ( #1050 )
...
C++ 20 adds a new feature called "ranges", which provides components for dealing
with sequences of values: https://en.cppreference.com/w/cpp/ranges .
A range is like a normal object containing `begin` and `end`, except there are
also composable operations like maps, filters, joins, etc.
The iterator objects returned by a range's `begin` and `end` require a more
strict set of operations than is needed for a range-for loop.
This PR adds the extra operations needed to support turning `dom::array` and
`dom::object` into a range.
This PR does not depend on any C++ 20 behavior, the added operators are all
valid C++ 11, and are already part of the LegacyIterator concepts.
This PR adds extra code behind: `#if defined(__cpp_lib_ranges)` guards, which is
the new C++ 20 specified feature test macro for ranges support. When ranges
support is detected, extra compile time checks are added to ensure that
`dom::array` and `dom::object` satisfy the range concept. No runtime tests have
been added yet because these compile time checks should be sufficient.
If desired, the `static_assert` code could be moved out of the actual code
headers and put into a test file.
2020-07-21 13:27:39 -04:00
Daniel Lemire
f016c2b72f
Update README.md
2020-07-21 12:02:30 -04:00
Daniel Lemire
be62058696
Adds some C++20 tests (only headers). ( #1053 )
...
* Adds some C++20 tests (only headers).
* Tweaking.
2020-07-21 10:37:52 -04:00
Daniel Lemire
af18d5ed81
This adds a validation benchmark ( #1040 )
2020-07-20 18:56:39 -04:00