-
Notifications
You must be signed in to change notification settings - Fork 606
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #10106 from ydb-platform/mergelibs-241004-1426
Library import 241004-1426
- Loading branch information
1 parent
ed8df5c
commit 43a388b
Showing
90 changed files
with
16,676 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
#ifndef SIMDJSON_H | ||
#define SIMDJSON_H | ||
|
||
/** | ||
* @mainpage | ||
* | ||
* Check the [README.md](https://github.com/simdjson/simdjson/blob/master/README.md#simdjson--parsing-gigabytes-of-json-per-second). | ||
* | ||
* Sample code. See https://github.com/simdjson/simdjson/blob/master/doc/basics.md for more examples. | ||
#include "simdjson.h" | ||
int main(void) { | ||
// load from `twitter.json` file: | ||
simdjson::dom::parser parser; | ||
simdjson::dom::element tweets = parser.load("twitter.json"); | ||
std::cout << tweets["search_metadata"]["count"] << " results." << std::endl; | ||
// Parse and iterate through an array of objects | ||
auto abstract_json = R"( [ | ||
{ "12345" : {"a":12.34, "b":56.78, "c": 9998877} }, | ||
{ "12545" : {"a":11.44, "b":12.78, "c": 11111111} } | ||
] )"_padded; | ||
for (simdjson::dom::object obj : parser.parse(abstract_json)) { | ||
for(const auto key_value : obj) { | ||
cout << "key: " << key_value.key << " : "; | ||
simdjson::dom::object innerobj = key_value.value; | ||
cout << "a: " << double(innerobj["a"]) << ", "; | ||
cout << "b: " << double(innerobj["b"]) << ", "; | ||
cout << "c: " << int64_t(innerobj["c"]) << endl; | ||
} | ||
} | ||
} | ||
*/ | ||
|
||
#include "simdjson/common_defs.h" | ||
|
||
// This provides the public API for simdjson. | ||
// DOM and ondemand are amalgamated separately, in simdjson.h | ||
#include "simdjson/simdjson_version.h" | ||
|
||
#include "simdjson/base.h" | ||
|
||
#include "simdjson/error.h" | ||
#include "simdjson/error-inl.h" | ||
#include "simdjson/implementation.h" | ||
#include "simdjson/minify.h" | ||
#include "simdjson/padded_string.h" | ||
#include "simdjson/padded_string-inl.h" | ||
#include "simdjson/padded_string_view.h" | ||
#include "simdjson/padded_string_view-inl.h" | ||
|
||
#include "simdjson/dom.h" | ||
#include "simdjson/ondemand.h" | ||
|
||
#endif // SIMDJSON_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#ifndef SIMDJSON_ARM64_ONDEMAND_H | ||
#define SIMDJSON_ARM64_ONDEMAND_H | ||
|
||
#include "simdjson/arm64/begin.h" | ||
#include "simdjson/generic/ondemand/amalgamated.h" | ||
#include "simdjson/arm64/end.h" | ||
|
||
#endif // SIMDJSON_ARM64_ONDEMAND_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
#ifndef SIMDJSON_BUILTIN_H | ||
#define SIMDJSON_BUILTIN_H | ||
|
||
#include "simdjson/builtin/base.h" | ||
#include "simdjson/builtin/implementation.h" | ||
|
||
#include "simdjson/generic/dependencies.h" | ||
|
||
#define SIMDJSON_CONDITIONAL_INCLUDE | ||
|
||
#if SIMDJSON_BUILTIN_IMPLEMENTATION_IS(arm64) | ||
#include "simdjson/arm64.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(fallback) | ||
#include "simdjson/fallback.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(haswell) | ||
#include "simdjson/haswell.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(icelake) | ||
#include "simdjson/icelake.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(ppc64) | ||
#include "simdjson/ppc64.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(westmere) | ||
#include "simdjson/westmere.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(lsx) | ||
#include "simdjson/lsx.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(lasx) | ||
#include "simdjson/lasx.h" | ||
#else | ||
#error Unknown SIMDJSON_BUILTIN_IMPLEMENTATION | ||
#endif | ||
|
||
#undef SIMDJSON_CONDITIONAL_INCLUDE | ||
|
||
#endif // SIMDJSON_BUILTIN_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
#ifndef SIMDJSON_BUILTIN_BASE_H | ||
#define SIMDJSON_BUILTIN_BASE_H | ||
|
||
#include "simdjson/base.h" | ||
#include "simdjson/implementation_detection.h" | ||
|
||
namespace simdjson { | ||
#if SIMDJSON_BUILTIN_IMPLEMENTATION_IS(arm64) | ||
namespace arm64 {} | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(fallback) | ||
namespace fallback {} | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(haswell) | ||
namespace haswell {} | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(icelake) | ||
namespace icelake {} | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(ppc64) | ||
namespace ppc64 {} | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(westmere) | ||
namespace westmere {} | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(lsx) | ||
namespace lsx {} | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(lasx) | ||
namespace lasx {} | ||
#else | ||
#error Unknown SIMDJSON_BUILTIN_IMPLEMENTATION | ||
#endif | ||
|
||
/** | ||
* Represents the best statically linked simdjson implementation that can be used by the compiling | ||
* program. | ||
* | ||
* Detects what options the program is compiled against, and picks the minimum implementation that | ||
* will work on any computer that can run the program. For example, if you compile with g++ | ||
* -march=westmere, it will pick the westmere implementation. The haswell implementation will | ||
* still be available, and can be selected at runtime, but the builtin implementation (and any | ||
* code that uses it) will use westmere. | ||
*/ | ||
namespace builtin = SIMDJSON_BUILTIN_IMPLEMENTATION; | ||
} // namespace simdjson | ||
|
||
#endif // SIMDJSON_BUILTIN_BASE_H |
42 changes: 42 additions & 0 deletions
42
contrib/libs/simdjson/include/simdjson/builtin/implementation.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
#ifndef SIMDJSON_BUILTIN_IMPLEMENTATION_H | ||
#define SIMDJSON_BUILTIN_IMPLEMENTATION_H | ||
|
||
#include "simdjson/builtin/base.h" | ||
|
||
#include "simdjson/generic/dependencies.h" | ||
|
||
#define SIMDJSON_CONDITIONAL_INCLUDE | ||
|
||
#if SIMDJSON_BUILTIN_IMPLEMENTATION_IS(arm64) | ||
#include "simdjson/arm64/implementation.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(fallback) | ||
#include "simdjson/fallback/implementation.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(haswell) | ||
#include "simdjson/haswell/implementation.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(icelake) | ||
#include "simdjson/icelake/implementation.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(ppc64) | ||
#error #include "simdjson/ppc64/implementation.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(westmere) | ||
#include "simdjson/westmere/implementation.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(lsx) | ||
#include "simdjson/lsx/implementation.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(lasx) | ||
#include "simdjson/lasx/implementation.h" | ||
#else | ||
#error Unknown SIMDJSON_BUILTIN_IMPLEMENTATION | ||
#endif | ||
|
||
#undef SIMDJSON_CONDITIONAL_INCLUDE | ||
|
||
namespace simdjson { | ||
/** | ||
* Function which returns a pointer to an implementation matching the "builtin" implementation. | ||
* The builtin implementation is the best statically linked simdjson implementation that can be used by the compiling | ||
* program. If you compile with g++ -march=haswell, this will return the haswell implementation. | ||
* It is handy to be able to check what builtin was used: builtin_implementation()->name(). | ||
*/ | ||
const implementation * builtin_implementation(); | ||
} // namespace simdjson | ||
|
||
#endif // SIMDJSON_BUILTIN_IMPLEMENTATION_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
#ifndef SIMDJSON_BUILTIN_ONDEMAND_H | ||
#define SIMDJSON_BUILTIN_ONDEMAND_H | ||
|
||
#include "simdjson/builtin.h" | ||
#include "simdjson/builtin/base.h" | ||
|
||
#include "simdjson/generic/ondemand/dependencies.h" | ||
|
||
#define SIMDJSON_CONDITIONAL_INCLUDE | ||
|
||
#if SIMDJSON_BUILTIN_IMPLEMENTATION_IS(arm64) | ||
#include "simdjson/arm64/ondemand.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(fallback) | ||
#include "simdjson/fallback/ondemand.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(haswell) | ||
#include "simdjson/haswell/ondemand.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(icelake) | ||
#include "simdjson/icelake/ondemand.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(ppc64) | ||
#error #include "simdjson/ppc64/ondemand.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(westmere) | ||
#include "simdjson/westmere/ondemand.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(lsx) | ||
#include "simdjson/lsx/ondemand.h" | ||
#elif SIMDJSON_BUILTIN_IMPLEMENTATION_IS(lasx) | ||
#include "simdjson/lasx/ondemand.h" | ||
#else | ||
#error Unknown SIMDJSON_BUILTIN_IMPLEMENTATION | ||
#endif | ||
|
||
#undef SIMDJSON_CONDITIONAL_INCLUDE | ||
|
||
namespace simdjson { | ||
/** | ||
* @copydoc simdjson::SIMDJSON_BUILTIN_IMPLEMENTATION::ondemand | ||
*/ | ||
namespace ondemand = SIMDJSON_BUILTIN_IMPLEMENTATION::ondemand; | ||
} // namespace simdjson | ||
|
||
#endif // SIMDJSON_BUILTIN_ONDEMAND_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#ifndef SIMDJSON_DOM_H | ||
#define SIMDJSON_DOM_H | ||
|
||
#include "simdjson/dom/base.h" | ||
#include "simdjson/dom/array.h" | ||
#include "simdjson/dom/document_stream.h" | ||
#include "simdjson/dom/document.h" | ||
#include "simdjson/dom/element.h" | ||
#include "simdjson/dom/object.h" | ||
#include "simdjson/dom/parser.h" | ||
#include "simdjson/dom/serialization.h" | ||
|
||
// Inline functions | ||
#include "simdjson/dom/array-inl.h" | ||
#include "simdjson/dom/document_stream-inl.h" | ||
#include "simdjson/dom/document-inl.h" | ||
#include "simdjson/dom/element-inl.h" | ||
#include "simdjson/dom/object-inl.h" | ||
#include "simdjson/dom/parser-inl.h" | ||
#include "simdjson/internal/tape_ref-inl.h" | ||
#include "simdjson/dom/serialization-inl.h" | ||
|
||
#endif // SIMDJSON_DOM_H |
Oops, something went wrong.