diff --git a/CMakeLists.txt b/CMakeLists.txt index 50c872b9e..0d96f55af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,8 +7,8 @@ project(simdjson set(PROJECT_VERSION_MAJOR 0) set(PROJECT_VERSION_MINOR 6) -set(PROJECT_VERSION_PATCH 0) -set(SIMDJSON_SEMANTIC_VERSION "0.6.0" CACHE STRING "simdjson semantic version") +set(PROJECT_VERSION_PATCH 1) +set(SIMDJSON_SEMANTIC_VERSION "0.6.1" CACHE STRING "simdjson semantic version") set(SIMDJSON_LIB_VERSION "4.0.0" CACHE STRING "simdjson library version") set(SIMDJSON_LIB_SOVERSION "4" CACHE STRING "simdjson library soversion") set(SIMDJSON_GITHUB_REPOSITORY https://github.com/simdjson/simdjson) diff --git a/Doxyfile b/Doxyfile index 74829df1f..224bf6d41 100644 --- a/Doxyfile +++ b/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = simdjson # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "0.6.0" +PROJECT_NUMBER = "0.6.1" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/include/simdjson/simdjson_version.h b/include/simdjson/simdjson_version.h index 3ec377ea0..50f5857ab 100644 --- a/include/simdjson/simdjson_version.h +++ b/include/simdjson/simdjson_version.h @@ -4,7 +4,7 @@ #define SIMDJSON_SIMDJSON_VERSION_H /** The version of simdjson being used (major.minor.revision) */ -#define SIMDJSON_VERSION 0.6.0 +#define SIMDJSON_VERSION 0.6.1 namespace simdjson { enum { @@ -19,7 +19,7 @@ enum { /** * The revision (major.minor.REVISION) of simdjson being used. */ - SIMDJSON_VERSION_REVISION = 0 + SIMDJSON_VERSION_REVISION = 1 }; } // namespace simdjson diff --git a/singleheader/simdjson.cpp b/singleheader/simdjson.cpp index acb59db4c..26a87c117 100644 --- a/singleheader/simdjson.cpp +++ b/singleheader/simdjson.cpp @@ -1,4 +1,4 @@ -/* auto-generated on Fri 23 Oct 2020 09:30:48 EDT. Do not edit! */ +/* auto-generated on Tue 3 Nov 2020 22:14:23 EST. Do not edit! */ /* begin file src/simdjson.cpp */ #include "simdjson.h" @@ -922,8 +922,13 @@ format. Returns an iterator pointing past-the-end of the decimal representation. */ char *to_chars(char *first, const char *last, double value) { static_cast(last); // maybe unused - fix warning - // Use signbit(value) instead of (value < 0) since signbit works for -0. - if (std::signbit(value)) { + // It would be better to use signbit(value) instead of (value < 0) since signbit works for -0. + //if(std::signbit(value)) { + // value = -value; + // *first++ = '-'; + //} + // However, under older libc++, std::signbit causes build errors, so falling back: + if((value < 0) || (value == -0)){ value = -value; *first++ = '-'; } diff --git a/singleheader/simdjson.h b/singleheader/simdjson.h index 5568896e3..fcdde38bf 100644 --- a/singleheader/simdjson.h +++ b/singleheader/simdjson.h @@ -1,4 +1,4 @@ -/* auto-generated on Fri 23 Oct 2020 09:30:48 EDT. Do not edit! */ +/* auto-generated on Tue 3 Nov 2020 22:14:23 EST. Do not edit! */ /* begin file include/simdjson.h */ #ifndef SIMDJSON_H #define SIMDJSON_H @@ -2009,7 +2009,7 @@ SIMDJSON_DISABLE_UNDESIRED_WARNINGS #define SIMDJSON_SIMDJSON_VERSION_H /** The version of simdjson being used (major.minor.revision) */ -#define SIMDJSON_VERSION 0.6.0 +#define SIMDJSON_VERSION 0.6.1 namespace simdjson { enum { @@ -2024,7 +2024,7 @@ enum { /** * The revision (major.minor.REVISION) of simdjson being used. */ - SIMDJSON_VERSION_REVISION = 0 + SIMDJSON_VERSION_REVISION = 1 }; } // namespace simdjson @@ -10076,8 +10076,9 @@ simdjson_really_inline bool compute_float_64(int64_t power, uint64_t i, bool neg // one digit. static bool parse_float_fallback(const uint8_t *ptr, double *outDouble) { *outDouble = simdjson::internal::from_chars((const char *)ptr); - // We do not accept infinite values. - if (!std::isfinite(*outDouble)) { + // We do not accept infinite values. Yes, there is a std::isfinite function, but + // it appears to be broken in legacy libc++. + if ((*outDouble > 1.7976931348623157e308) || (*outDouble < -1.7976931348623157e308)) { return false; } return true; @@ -15896,8 +15897,9 @@ simdjson_really_inline bool compute_float_64(int64_t power, uint64_t i, bool neg // one digit. static bool parse_float_fallback(const uint8_t *ptr, double *outDouble) { *outDouble = simdjson::internal::from_chars((const char *)ptr); - // We do not accept infinite values. - if (!std::isfinite(*outDouble)) { + // We do not accept infinite values. Yes, there is a std::isfinite function, but + // it appears to be broken in legacy libc++. + if ((*outDouble > 1.7976931348623157e308) || (*outDouble < -1.7976931348623157e308)) { return false; } return true; @@ -21669,8 +21671,9 @@ simdjson_really_inline bool compute_float_64(int64_t power, uint64_t i, bool neg // one digit. static bool parse_float_fallback(const uint8_t *ptr, double *outDouble) { *outDouble = simdjson::internal::from_chars((const char *)ptr); - // We do not accept infinite values. - if (!std::isfinite(*outDouble)) { + // We do not accept infinite values. Yes, there is a std::isfinite function, but + // it appears to be broken in legacy libc++. + if ((*outDouble > 1.7976931348623157e308) || (*outDouble < -1.7976931348623157e308)) { return false; } return true; @@ -27001,8 +27004,9 @@ simdjson_really_inline bool compute_float_64(int64_t power, uint64_t i, bool neg // one digit. static bool parse_float_fallback(const uint8_t *ptr, double *outDouble) { *outDouble = simdjson::internal::from_chars((const char *)ptr); - // We do not accept infinite values. - if (!std::isfinite(*outDouble)) { + // We do not accept infinite values. Yes, there is a std::isfinite function, but + // it appears to be broken in legacy libc++. + if ((*outDouble > 1.7976931348623157e308) || (*outDouble < -1.7976931348623157e308)) { return false; } return true;