Compare commits

...

15 Commits

Author SHA1 Message Date
Daniel Lemire 3177cd1b5d Fix. 2023-02-06 19:08:11 -05:00
Daniel Lemire 63d9ce3c58 Patch release. 2023-02-06 18:31:02 -05:00
Daniel Lemire 8e8180560d Fix for issue 1950 (#1951) 2023-02-06 18:28:54 -05:00
Daniel Lemire 1594af5d5d Tweak. 2023-02-06 08:51:11 -05:00
Dirk Stolle b207338365 Remove trailing whitespace in README.md (#1949)
This should make the whitespace test pass again.
2023-01-31 17:53:35 -05:00
Daniel Lemire 68be9c2170 Update README.md 2023-01-30 16:17:42 -05:00
Daniel Lemire 5347771091 Update documentation.yml 2023-01-30 15:14:27 -05:00
Daniel Lemire 8bf8315651 Update README.md 2023-01-30 14:50:06 -05:00
Daniel Lemire 269ae7ad6b [skip ci] stupid mistake 2023-01-30 14:37:40 -05:00
Daniel Lemire 2aa91f741f [skip ci] new doc runner 2023-01-30 14:29:48 -05:00
Daniel Lemire 5430544bbb [skip ci] improving documentation. (#1948) 2023-01-30 14:27:35 -05:00
Daniel Lemire 7b55f16682 Trying s390x in CI (#1945)
* Trying s390x

* Providing big endian testing.

* adding token.

* Fixing branch
2023-01-27 11:34:00 -05:00
Daniel Lemire d8fec59e85 Safer add-dependency script. (#1946) 2023-01-26 22:40:26 -05:00
Daniel Lemire 57b6034a0c Let verbose 2023-01-26 21:12:23 -05:00
Daniel Lemire 7500d7bb4f Patching. 2023-01-25 22:19:40 -05:00
19 changed files with 148 additions and 28 deletions
+34
View File
@@ -0,0 +1,34 @@
name: Doxygen GitHub Pages
on:
push:
branches:
- master
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
permissions:
contents: write
pages: write
id-token: write
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Doxygen
run: sudo apt-get install doxygen graphviz -y
- run: mkdir docs
- name: Install theme
run: ./tools/prepare_doxygen.sh
- name: Generate Doxygen Documentation
run: doxygen
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: doc/api/html
+29
View File
@@ -0,0 +1,29 @@
name: Ubuntu s390x (GCC 11)
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: uraimo/run-on-arch-action@v2
name: Test
id: runcmd
with:
arch: s390x
distro: ubuntu_latest
githubToken: ${{ github.token }}
install: |
apt-get update -q -y
apt-get install -y cmake make g++
run: |
cmake -DCMAKE_BUILD_TYPE=Release -B build
cmake --build build -j=2
ctest --output-on-failure --test-dir build
+5 -5
View File
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.14)
project(
simdjson
# The version number is modified by tools/release.py
VERSION 3.1.0
VERSION 3.1.1
DESCRIPTION "Parsing gigabytes of JSON per second"
HOMEPAGE_URL "https://simdjson.org/"
LANGUAGES CXX C
@@ -188,11 +188,11 @@ endif()
# ---- Developer mode extras ----
if(NOT SIMDJSON_DEVELOPER_MODE)
message(STATUS "Building only the library. Advanced users may want to turn SIMDJSON_DEVELOPER_MODE to ON, e.g., via -D SIMDJSON_DEVELOPER_MODE=ON.")
if(is_top_project AND NOT SIMDJSON_DEVELOPER_MODE)
message(STATUS "Building only the library. Advanced users and contributors may want to turn SIMDJSON_DEVELOPER_MODE to ON, e.g., via -D SIMDJSON_DEVELOPER_MODE=ON.")
return()
elseif(NOT is_top_project)
message(AUTHOR_WARNING "Developer mode is intended for developers of simdjson")
elseif(SIMDJSON_DEVELOPER_MODE AND NOT is_top_project)
message(AUTHOR_WARNING "Developer mode in simdjson is intended for the developers of simdjson")
endif()
simdjson_apply_props(simdjson-internal-flags)
+11 -5
View File
@@ -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 = "3.1.0"
PROJECT_NUMBER = "3.1.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
@@ -829,7 +829,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = doc include
INPUT = doc include/simdjson include/simdjson/dom include/simdjson/generic
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -1246,7 +1246,10 @@ HTML_STYLESHEET =
# list). For an example see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_STYLESHEET = theme/doxygen-awesome.css \
theme/doxygen-awesome-sidebar-only.css \
theme/doxygen-awesome-sidebar-only-darkmode-toggle.css
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
@@ -1256,7 +1259,10 @@ HTML_EXTRA_STYLESHEET =
# files will be copied as-is; there are no commands or markers available.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_FILES =
HTML_EXTRA_FILES = theme/doxygen-awesome-darkmode-toggle.js \
theme/doxygen-awesome-interactive-toc.js \
theme/doxygen-awesome-fragment-copy-button.js \
theme/doxygen-awesome-paragraph-link.js
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
@@ -1543,7 +1549,7 @@ DISABLE_INDEX = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_TREEVIEW = NO
GENERATE_TREEVIEW = YES
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.
+3 -1
View File
@@ -3,7 +3,9 @@
[![Ubuntu 20.04 CI](https://github.com/simdjson/simdjson/workflows/Ubuntu%2020.04%20CI%20(GCC%209)/badge.svg)](https://simdjson.org/plots.html)
![VS16-CI](https://github.com/simdjson/simdjson/workflows/VS16-CI/badge.svg)
![MinGW64-CI](https://github.com/simdjson/simdjson/workflows/MinGW64-CI/badge.svg)
[![][license img]][license] [![Doxygen Documentation](https://img.shields.io/badge/docs-doxygen-green.svg)](https://simdjson.org/api/3.0.0/index.html)
[![][license img]][license]
[![Doxygen Documentation](https://img.shields.io/badge/docs-doxygen-green.svg)](https://simdjson.github.io/simdjson/)
simdjson : Parsing gigabytes of JSON per second
===============================================
+1 -1
View File
@@ -40,7 +40,7 @@ macro(add_dependency NAME)
message(FATAL_ERROR "Missing ${NAME}_SOURCE_DIR variable")
endif()
add_subdirectory("${${NAME}_SOURCE_DIR}" "${PROJECT_BINARY_DIR}/_deps/${NAME}")
add_subdirectory("${${NAME}_SOURCE_DIR}" "${PROJECT_BINARY_DIR}/_deps/${NAME}" EXCLUDE_FROM_ALL)
endmacro()
function(set_off NAME)
+1 -1
View File
@@ -43,7 +43,7 @@ Requirements
Support for AVX-512 require a processor with AVX512-VBMI2 support (Ice Lake or better) under a 64-bit system and a recent compiler (LLVM clang 6 or better, GCC 8 or better, Visual Studio 2019 or better). You need a correspondingly recent assembler such as gas (2.30+) or nasm (2.14+): recent compilers usually come with recent assemblers. If you mix a recent compiler with an incompatible/old assembler (e.g., when using a recent compiler with an old Linux distribution), you may get errors at build time because the compiler produces instructions that the assembler does not recognize: you should update your assembler to match your compiler (e.g., upgrade binutils to version 2.30 or better under Linux) or use an older compiler matching the capabilities of your assembler.
Because big-endian systems are effectively limited commercially to IBM mainframes today, the simdjson library is only tested on little-endian systems. Users who require big-endian support are invited to contribute to the library.
We test the library on a big-endian system (IBM s390x with Linux) .
Including simdjson
------------------
+1 -1
View File
@@ -21,7 +21,7 @@ The current implementations are:
* haswell: AVX2 (2013 Intel Haswell or later)
* westmere: SSE4.2 (2010 Westmere or later).
* arm64: 64-bit ARMv8-A NEON
* ppc64: 64-bit POWER8 and POWER9 with VSX and ALTIVEC extensions. Both big endian and little endian are implemented, depends on the compiler you are using. Users are advised that the library is not tested on big-endian systems.
* ppc64: 64-bit POWER8 and POWER9 with VSX and ALTIVEC extensions. Both big endian and little endian are implemented, depends on the compiler you are using. The library is tested on recent, little-endian, POWER systems.
* fallback: A generic implementation that runs on any 64-bit processor.
In many cases, you don't know where your compiled binary is going to run, so simdjson automatically
+3
View File
@@ -12,6 +12,9 @@ using namespace simdjson;
using namespace simdjson::dom;
}
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation() : simdjson::implementation("arm64", "ARM NEON", internal::instruction_set::NEON) {}
@@ -11,6 +11,9 @@ using namespace simdjson;
using namespace simdjson::dom;
}
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation() : simdjson::implementation(
@@ -9,6 +9,9 @@ namespace haswell {
using namespace simdjson;
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation() : simdjson::implementation(
@@ -9,6 +9,9 @@ namespace icelake {
using namespace simdjson;
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation() : simdjson::implementation(
-4
View File
@@ -79,13 +79,9 @@ namespace simd {
template<int N=1>
simdjson_inline simd8<T> prev(const simd8<T> prev_chunk) const {
#if SIMDJSON_GCC8
// workaround for compilers unable to figure out that 16 - N is a constant (GCC 8)
constexpr int shift = 16 - N;
return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), shift);
#else
return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), 16 - N);
#endif
}
};
+3
View File
@@ -12,6 +12,9 @@ using namespace simdjson;
using namespace simdjson::dom;
} // namespace
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation()
+2 -2
View File
@@ -4,7 +4,7 @@
#define SIMDJSON_SIMDJSON_VERSION_H
/** The version of simdjson being used (major.minor.revision) */
#define SIMDJSON_VERSION 3.1.0
#define SIMDJSON_VERSION "3.1.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
@@ -12,6 +12,9 @@ using namespace simdjson;
using namespace simdjson::dom;
}
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation() : simdjson::implementation("westmere", "Intel/AMD SSE4.2", internal::instruction_set::SSE42 | internal::instruction_set::PCLMULQDQ) {}
+1 -1
View File
@@ -1,4 +1,4 @@
/* auto-generated on 2023-01-21 15:29:08 -0500. Do not edit! */
/* auto-generated on 2023-02-06 18:28:54 -0500. Do not edit! */
/* begin file src/simdjson.cpp */
#include "simdjson.h"
+21 -7
View File
@@ -1,4 +1,4 @@
/* auto-generated on 2023-01-21 15:29:08 -0500. Do not edit! */
/* auto-generated on 2023-02-06 18:28:54 -0500. Do not edit! */
/* begin file include/simdjson.h */
#ifndef SIMDJSON_H
#define SIMDJSON_H
@@ -43,7 +43,7 @@
#define SIMDJSON_SIMDJSON_VERSION_H
/** The version of simdjson being used (major.minor.revision) */
#define SIMDJSON_VERSION 3.1.0
#define SIMDJSON_VERSION 3.1.1
namespace simdjson {
enum {
@@ -58,7 +58,7 @@ enum {
/**
* The revision (major.minor.REVISION) of simdjson being used.
*/
SIMDJSON_VERSION_REVISION = 0
SIMDJSON_VERSION_REVISION = 1
};
} // namespace simdjson
@@ -9697,6 +9697,9 @@ using namespace simdjson;
using namespace simdjson::dom;
}
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation() : simdjson::implementation("arm64", "ARM NEON", internal::instruction_set::NEON) {}
@@ -12037,6 +12040,9 @@ using namespace simdjson;
using namespace simdjson::dom;
}
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation() : simdjson::implementation(
@@ -13745,6 +13751,9 @@ namespace icelake {
using namespace simdjson;
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation() : simdjson::implementation(
@@ -14088,13 +14097,9 @@ namespace simd {
template<int N=1>
simdjson_inline simd8<T> prev(const simd8<T> prev_chunk) const {
#if SIMDJSON_GCC8
// workaround for compilers unable to figure out that 16 - N is a constant (GCC 8)
constexpr int shift = 16 - N;
return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), shift);
#else
return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), 16 - N);
#endif
}
};
@@ -15943,6 +15948,9 @@ namespace haswell {
using namespace simdjson;
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation() : simdjson::implementation(
@@ -18118,6 +18126,9 @@ using namespace simdjson;
using namespace simdjson::dom;
} // namespace
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation()
@@ -20424,6 +20435,9 @@ using namespace simdjson;
using namespace simdjson::dom;
}
/**
* @private
*/
class implementation final : public simdjson::implementation {
public:
simdjson_inline implementation() : simdjson::implementation("westmere", "Intel/AMD SSE4.2", internal::instruction_set::SSE42 | internal::instruction_set::PCLMULQDQ) {}
+21
View File
@@ -0,0 +1,21 @@
#!/bin/sh
set -e
PACKAGE_URL="https://github.com/jothepro/doxygen-awesome-css.git"
PACKAGE_VERSION="v2.1.0"
BASE_DIR=$(pwd)
THEME_DIR="$BASE_DIR/theme"
WORKSPACE=$(mktemp -d 2> /dev/null || mktemp -d -t 'tmp')
cleanup () {
EXIT_CODE=$?
[ -d "$WORKSPACE" ] && rm -rf "$WORKSPACE"
exit $EXIT_CODE
}
trap cleanup INT TERM EXIT
cd "$WORKSPACE"
git clone --depth=1 --branch "$PACKAGE_VERSION" "$PACKAGE_URL" theme
rm -rf "$THEME_DIR"
mv "$WORKSPACE/theme" "$BASE_DIR"