diff --git a/CMakeLists.txt b/CMakeLists.txt index fa3dccf3d..cbab98bf7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,8 +20,8 @@ project(simdjson) set(SIMDJSON_LIB_NAME simdjson) set(PROJECT_VERSION_MAJOR 0) set(PROJECT_VERSION_MINOR 2) -set(PROJECT_VERSION_PATCH 0) -set(SIMDJSON_LIB_VERSION "0.2.0" CACHE STRING "simdjson library version") +set(PROJECT_VERSION_PATCH 1) +set(SIMDJSON_LIB_VERSION "0.2.1" CACHE STRING "simdjson library version") set(SIMDJSON_LIB_SOVERSION "0" CACHE STRING "simdjson library soversion") if(NOT MSVC) diff --git a/include/simdjson/simdjson_version.h b/include/simdjson/simdjson_version.h index 12617e2b4..75d183545 100644 --- a/include/simdjson/simdjson_version.h +++ b/include/simdjson/simdjson_version.h @@ -2,12 +2,12 @@ // do not change by hand #ifndef SIMDJSON_INCLUDE_SIMDJSON_VERSION #define SIMDJSON_INCLUDE_SIMDJSON_VERSION -#define SIMDJSON_VERSION 0.2.0 +#define SIMDJSON_VERSION 0.2.1 namespace simdjson { enum { SIMDJSON_VERSION_MAJOR = 0, SIMDJSON_VERSION_MINOR = 2, - SIMDJSON_VERSION_REVISION = 0 + SIMDJSON_VERSION_REVISION = 1 }; } #endif // SIMDJSON_INCLUDE_SIMDJSON_VERSION diff --git a/singleheader/amalgamation_demo.cpp b/singleheader/amalgamation_demo.cpp index 6bd75870c..789e0b529 100644 --- a/singleheader/amalgamation_demo.cpp +++ b/singleheader/amalgamation_demo.cpp @@ -1,4 +1,4 @@ -/* auto-generated on Thu 1 Aug 2019 16:18:07 EDT. Do not edit! */ +/* auto-generated on Sun Aug 4 15:43:41 EDT 2019. Do not edit! */ #include #include "simdjson.h" diff --git a/singleheader/simdjson.cpp b/singleheader/simdjson.cpp index 3ea37a970..63a7349a9 100644 --- a/singleheader/simdjson.cpp +++ b/singleheader/simdjson.cpp @@ -1,4 +1,4 @@ -/* auto-generated on Thu 1 Aug 2019 16:18:07 EDT. Do not edit! */ +/* auto-generated on Sun Aug 4 15:43:41 EDT 2019. Do not edit! */ #include "simdjson.h" /* used for http://dmalloc.com/ Dmalloc - Debug Malloc Library */ @@ -362,6 +362,29 @@ size_t json_minify(const uint8_t *buf, size_t len, uint8_t *out) { namespace simdjson { +// The function that users are expected to call is json_parse. +// We have more than one such function because we want to support several +// instruction sets. + +// function pointer type for json_parse +using json_parse_functype = int(const uint8_t *buf, size_t len, ParsedJson &pj, + bool realloc_if_needed); + +// Pointer that holds the json_parse implementation corresponding to the +// available SIMD instruction set +extern json_parse_functype *json_parse_ptr; + +int json_parse(const uint8_t *buf, size_t len, ParsedJson &pj, + bool realloc_if_needed) { + return json_parse_ptr(buf, len, pj, realloc_if_needed); +} + +int json_parse(const char *buf, size_t len, ParsedJson &pj, + bool realloc_if_needed) { + return json_parse_ptr(reinterpret_cast(buf), len, pj, + realloc_if_needed); +} + Architecture find_best_supported_implementation() { constexpr uint32_t haswell_flags = instruction_set::AVX2 | instruction_set::PCLMULQDQ | diff --git a/singleheader/simdjson.h b/singleheader/simdjson.h index ff8d6d381..fcd3ae696 100644 --- a/singleheader/simdjson.h +++ b/singleheader/simdjson.h @@ -1,15 +1,18 @@ -/* auto-generated on Thu 1 Aug 2019 16:18:07 EDT. Do not edit! */ +/* auto-generated on Sun Aug 4 15:43:41 EDT 2019. Do not edit! */ /* begin file include/simdjson/simdjson_version.h */ -// /include/simdjson/simdjson_version.h automatically generated by release.py, do not change by hand -#ifndef SIMDJSON_INCLUDE_SIMDJSON_VERSION -#define SIMDJSON_INCLUDE_SIMDJSON_VERSION -#define SIMDJSON_VERSION 0.2.0 -enum { - SIMDJSON_VERSION_MAJOR = 0, - SIMDJSON_VERSION_MINOR = 2, - SIMDJSON_VERSION_REVISION = 0 -}; -#endif // SIMDJSON_INCLUDE_SIMDJSON_VERSION +// /include/simdjson/simdjson_version.h automatically generated by release.py, +// do not change by hand +#ifndef SIMDJSON_INCLUDE_SIMDJSON_VERSION +#define SIMDJSON_INCLUDE_SIMDJSON_VERSION +#define SIMDJSON_VERSION 0.2.1 +namespace simdjson { +enum { + SIMDJSON_VERSION_MAJOR = 0, + SIMDJSON_VERSION_MINOR = 2, + SIMDJSON_VERSION_REVISION = 1 +}; +} +#endif // SIMDJSON_INCLUDE_SIMDJSON_VERSION /* end file include/simdjson/simdjson_version.h */ /* begin file include/simdjson/portability.h */ #ifndef SIMDJSON_PORTABILITY_H @@ -37507,8 +37510,7 @@ really_inline void flatten_bits(uint32_t *base_ptr, uint32_t &base, #endif // SIMDJSON_NAIVE_FLATTEN } // namespace simdjson -#endif // SIMDJSON_STAGE1_FIND_MARKS_FLATTEN_H -/* end file include/simdjson/stage1_find_marks_flatten.h */ +#endif // SIMDJSON_STAGE1_FIND_MARKS_FLATTEN_H/* end file include/simdjson/stage1_find_marks_flatten.h */ /* begin file include/simdjson/stage1_find_marks_flatten_haswell.h */ #ifndef SIMDJSON_STAGE1_FIND_MARKS_FLATTEN_HASWELL_H #define SIMDJSON_STAGE1_FIND_MARKS_FLATTEN_HASWELL_H @@ -37843,8 +37845,7 @@ UNTARGET_REGION return check_utf8_errors(utf8_state); \ } -#endif // SIMDJSON_STAGE1_FIND_MARKS_MACROS_H -/* end file include/simdjson/stage1_find_marks_macros.h */ +#endif // SIMDJSON_STAGE1_FIND_MARKS_MACROS_H/* end file include/simdjson/stage1_find_marks_macros.h */ /* begin file include/simdjson/stage1_find_marks_westmere.h */ #ifndef SIMDJSON_STAGE1_FIND_MARKS_WESTMERE_H #define SIMDJSON_STAGE1_FIND_MARKS_WESTMERE_H @@ -38035,8 +38036,7 @@ really_inline void find_whitespace_and_structurals( UNTARGET_REGION #endif // IS_X86_64 -#endif // SIMDJSON_STAGE1_FIND_MARKS_WESTMERE_H -/* end file include/simdjson/stage1_find_marks_westmere.h */ +#endif // SIMDJSON_STAGE1_FIND_MARKS_WESTMERE_H/* end file include/simdjson/stage1_find_marks_westmere.h */ /* begin file include/simdjson/stage1_find_marks_haswell.h */ #ifndef SIMDJSON_STAGE1_FIND_MARKS_HASWELL_H #define SIMDJSON_STAGE1_FIND_MARKS_HASWELL_H @@ -38243,8 +38243,7 @@ really_inline void find_whitespace_and_structurals( UNTARGET_REGION #endif // IS_X86_64 -#endif // SIMDJSON_STAGE1_FIND_MARKS_HASWELL_H -/* end file include/simdjson/stage1_find_marks_haswell.h */ +#endif // SIMDJSON_STAGE1_FIND_MARKS_HASWELL_H/* end file include/simdjson/stage1_find_marks_haswell.h */ /* begin file include/simdjson/stage1_find_marks_arm64.h */ #ifndef SIMDJSON_STAGE1_FIND_MARKS_ARM64_H #define SIMDJSON_STAGE1_FIND_MARKS_ARM64_H @@ -38451,8 +38450,7 @@ really_inline void find_whitespace_and_structurals( } // namespace simdjson #endif // IS_ARM64 -#endif // SIMDJSON_STAGE1_FIND_MARKS_ARM64_H -/* end file include/simdjson/stage1_find_marks_arm64.h */ +#endif // SIMDJSON_STAGE1_FIND_MARKS_ARM64_H/* end file include/simdjson/stage1_find_marks_arm64.h */ /* begin file include/simdjson/stringparsing.h */ #ifndef SIMDJSON_STRINGPARSING_H #define SIMDJSON_STRINGPARSING_H @@ -38642,8 +38640,7 @@ WARN_UNUSED ALLOW_SAME_PAGE_BUFFER_OVERRUN_QUALIFIER LENIENT_MEM_SANITIZER return true; \ } -#endif -/* end file include/simdjson/stringparsing_macros.h */ +#endif/* end file include/simdjson/stringparsing_macros.h */ /* begin file include/simdjson/stringparsing_westmere.h */ #ifndef SIMDJSON_STRINGPARSING_WESTMERE_H #define SIMDJSON_STRINGPARSING_WESTMERE_H @@ -38683,8 +38680,7 @@ WARN_UNUSED ALLOW_SAME_PAGE_BUFFER_OVERRUN_QUALIFIER LENIENT_MEM_SANITIZER UNTARGET_REGION #endif -#endif -/* end file include/simdjson/stringparsing_westmere.h */ +#endif/* end file include/simdjson/stringparsing_westmere.h */ /* begin file include/simdjson/stringparsing_haswell.h */ #ifndef SIMDJSON_STRINGPARSING_HASWELL_H #define SIMDJSON_STRINGPARSING_HASWELL_H @@ -38726,8 +38722,7 @@ WARN_UNUSED ALLOW_SAME_PAGE_BUFFER_OVERRUN_QUALIFIER LENIENT_MEM_SANITIZER UNTARGET_REGION #endif -#endif -/* end file include/simdjson/stringparsing_haswell.h */ +#endif/* end file include/simdjson/stringparsing_haswell.h */ /* begin file include/simdjson/stringparsing_arm64.h */ #ifndef SIMDJSON_STRINGPARSING_ARM64_H #define SIMDJSON_STRINGPARSING_ARM64_H @@ -39463,18 +39458,6 @@ int unified_machine(const char *buf, size_t len, ParsedJson &pj) { #endif namespace simdjson { -// The function that users are expected to call is json_parse. -// We have more than one such function because we want to support several -// instruction sets. - -// function pointer type for json_parse -using json_parse_functype = int(const uint8_t *buf, size_t len, ParsedJson &pj, - bool realloc_if_needed); - -// Pointer that holds the json_parse implementation corresponding to the -// available SIMD instruction set -extern json_parse_functype *json_parse_ptr; - // json_parse_implementation is the generic function, it is specialized for // various architectures, e.g., as // json_parse_implementation or @@ -39488,7 +39471,7 @@ int json_parse_implementation(const uint8_t *buf, size_t len, ParsedJson &pj, bool reallocated = false; if (realloc_if_needed) { #if ALLOW_SAME_PAGE_BUFFER_OVERRUN - // realloc is needed if the end of the memory crosses a page +// realloc is needed if the end of the memory crosses a page #ifdef _MSC_VER SYSTEM_INFO sysInfo; GetSystemInfo(&sysInfo); @@ -39556,10 +39539,8 @@ int json_parse_implementation(const uint8_t *buf, size_t len, ParsedJson &pj, // realloc_if_needed is false, all bytes at and after buf + len are ignored // (can be garbage). The ParsedJson object can be reused. -inline int json_parse(const uint8_t *buf, size_t len, ParsedJson &pj, - bool realloc_if_needed = true) { - return json_parse_ptr(buf, len, pj, realloc_if_needed); -} +int json_parse(const uint8_t *buf, size_t len, ParsedJson &pj, + bool realloc_if_needed = true); // Parse a document found in buf. // @@ -39585,11 +39566,8 @@ inline int json_parse(const uint8_t *buf, size_t len, ParsedJson &pj, // buf should be readable up to buf + len + SIMDJSON_PADDING if // realloc_if_needed is false, all bytes at and after buf + len are ignored // (can be garbage). The ParsedJson object can be reused. -inline int json_parse(const char *buf, size_t len, ParsedJson &pj, - bool realloc_if_needed = true) { - return json_parse_ptr(reinterpret_cast(buf), len, pj, - realloc_if_needed); -} +int json_parse(const char *buf, size_t len, ParsedJson &pj, + bool realloc_if_needed = true); // We do not want to allow implicit conversion from C string to std::string. int json_parse(const char *buf, ParsedJson &pj) = delete;