Skip to content

Commit

Permalink
Jsonifier Release v0.9.97
Browse files Browse the repository at this point in the history
* Added likely/unlikely to a bunch of if/else statements.
* Swapped std::copy_n for std::memcpy in a few places.
* Moved a couple masks for the Neon functions out into global scope.
* Replaced jsonifier_internal::const_iterator with jsonifier_internal::iterator.
* Moved the vector of prettifier states out of the function scope to the prettifier classes' scope.
* Separated jsonifier_internal::string_literal out into its own header.
* Moved a bunch of string-utility functions out into the derailleur class.
* Replaced the join function with combineLiterals.
* Modified the logic of the parse_impl classes.
* Implemented a compile-time jump table to improve parsing performance significantly.
* Replaced the float/double parsing/serializing methods with more conformant version.
* Modified the serializing code to no longer rely on hash-maps for serializing member.
* Marked a bunch of additional functions as noexcept.
* Added an ALWAYS_INLINE macro in addition to the INLINE one.
* Modified the CPU-architecture selection method.
  • Loading branch information
RealTimeChris committed Oct 13, 2024
1 parent 09b36a8 commit abbaaca
Show file tree
Hide file tree
Showing 328 changed files with 1,096,697 additions and 1,344,166 deletions.
46 changes: 46 additions & 0 deletions .github/workflows/CLANG-MacOS-XCode.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Build-and-Test-CLANG-MacOS

on:
workflow_dispatch:
push:
branches:
- main
- dev

jobs:
Build:
runs-on: macos-latest

strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]

steps:
- uses: actions/checkout@v4

- name: Set up Xcode
run: |
sudo xcode-select -s /Applications/Xcode_15.4.app/Contents/Developer
xcodebuild -version
- name: Configure CMake
run: cmake -B build -G Xcode -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DJSONIFIER_TEST="TRUE"

- name: Build the Test
working-directory: ./Build
run: |
cmake --build . --config=${{matrix.build_type}}
- name: Install the Test
working-directory: ./Build
run: |
sudo cmake --install . --config=${{matrix.build_type}}
- name: Run the Test
working-directory: /usr/local/bin/
run: |
sudo chmod +x ./Json-Performance
./Json-Performance
continue-on-error: true

9 changes: 5 additions & 4 deletions .github/workflows/CLANG-MacOS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ on:
branches:
- main
- dev
- newerBranch

jobs:
Build:
Expand All @@ -15,9 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
clang: [17]
build_type: [Debug, Release]
std: [20]

steps:
- uses: actions/checkout@v4
Expand All @@ -26,14 +23,18 @@ jobs:
run: |
brew install llvm
- name: Install Seaborn
run: |
pip install seaborn
- name: Install Nasm.
run: |
brew install nasm
- name: Configure CMake
working-directory: ./
run: |
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++ -DDEV="TRUE" -DJSONIFIER_TEST=true
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++ -DJSONIFIER_TEST="TRUE"
- name: Build the Test
working-directory: ./Build
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/CLANG-Ubuntu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Build-and-Test-CLANG-Ubuntu

on:
workflow_dispatch:
push:
branches:
- main
- dev

jobs:
Build:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]

steps:
- uses: actions/checkout@v4

- name: Install the latest Clang compiler.
working-directory: Tests
run: |
sudo apt update && sudo apt upgrade
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 20
- name: Install Seaborn
run: |
pip install seaborn
- name: Configure CMake
working-directory: ./
run: |
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=/usr/bin/clang++-20 -DJSONIFIER_TEST="TRUE"
- name: Build the Test
working-directory: ./Build
run: |
cmake --build . --config=${{matrix.build_type}} -v
- name: Install the Test
working-directory: ./Build
run: |
sudo cmake --install . --config=${{matrix.build_type}}
- name: Run the Test
working-directory: ./Build/Tests
run: |
./Json-Performance
continue-on-error: true

13 changes: 7 additions & 6 deletions .github/workflows/GCC-Ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ on:
branches:
- main
- dev
- newerBranch

jobs:
Build:
Expand All @@ -15,9 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
gcc: [12]
build_type: [Debug, Release]
std: [20]

steps:
- uses: actions/checkout@v4
Expand All @@ -26,17 +23,21 @@ jobs:
working-directory: Tests
run: |
sudo apt-get install build-essential
sudo apt-get install g++-12
sudo apt-get install g++-14
- name: Install Seaborn
run: |
pip install seaborn
- name: Configure CMake
working-directory: ./
run: |
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=/usr/bin/g++-12 -DDEV="TRUE" -DJSONIFIER_TEST=true
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_CXX_COMPILER=/usr/bin/g++-12 -DJSONIFIER_TEST="TRUE"
- name: Build the Test
working-directory: ./Build
run: |
cmake --build . --config=${{matrix.build_type}}
cmake --build . --config=${{matrix.build_type}} -v
- name: Install the Test
working-directory: ./Build
Expand Down
20 changes: 11 additions & 9 deletions .github/workflows/MSVC-Windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ on:
branches:
- main
- dev
- newerBranch

jobs:
Build:
Expand All @@ -15,9 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
msvc: [2022]
build_type: [Debug, Release]
std: [20]

steps:
- uses: actions/checkout@v4
Expand All @@ -28,20 +25,25 @@ jobs:
name: PATH
value: $env:PATH;C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build

- name: Configure CMake for Jsonifier
run: |
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
- name: Install Seaborn
run: |
pip install seaborn
- name: Configure CMake
working-directory: ./
run: |
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DDEV="TRUE" -DJSONIFIER_TEST=true
cmake -S . -B ./Build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DJSONIFIER_TEST="TRUE"
- name: Build the Test
working-directory: ./Build
run: |
cmake --build . --config=${{matrix.build_type}}
cmake --build ./Build --config=${{matrix.build_type}} -v
- name: Install the Test
working-directory: ./Build
run: |
cmake --install . --config=${{matrix.build_type}}
cmake --install ./Build --config=${{matrix.build_type}}
- name: Run the Test
working-directory: C:/Program Files (x86)/Jsonifier/bin/
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/Update-LoC-Repo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Update-Loc-Repo

on:
workflow_dispatch:
push:
branches:
- main
- dev

jobs:
Build:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
build_type: [Release]

steps:
- uses: actions/checkout@v4
with:
persist-credentials: true

- name: Clone the repo.
run: |
sudo git config --global user.email "[email protected]"
sudo git config --global user.name "realtimechris"
sudo git clone https://realtimechris:${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/realtimechris/Jsonifier-Code-Only --depth=1
- name: Copy the files over.
run: |
sudo cp -r ./Include/* ./Jsonifier-Code-Only/
- name: Commit and push the changes to the repo.
working-directory: ./Jsonifier-Code-Only
run: |
sudo git checkout --orphan newBranch
sudo git add .
sudo git commit -m "Updates."
sudo git branch -D main
sudo git branch -m main
sudo git push origin main -f
2 changes: 1 addition & 1 deletion CMake/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.10)
project(FeatureDetection)

set(CMAKE_CXX_STANDARD 17)
# Add your source file(s)
add_executable(feature_detector main.cpp)
Loading

0 comments on commit abbaaca

Please sign in to comment.