Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
d04993d
Docs: Advanced contribution examples
ashvardanian Sep 27, 2024
172bf93
Docs: Weaknesses of LibC
ashvardanian Sep 27, 2024
432fb3d
Fix: Missing, but documented `partition(':')`
ashvardanian Sep 27, 2024
a0e9be7
Docs: Names of `charset` helpers
ashvardanian Sep 27, 2024
b5fcc62
Docs: Avoid AppleClang
ashvardanian Sep 27, 2024
ee6f754
Merge branch 'main-dev' of https://github.com/ashvardanian/StringZill…
ashvardanian Sep 27, 2024
97cf753
Fix: Invoking wrong view constructor
ashvardanian Sep 27, 2024
224a3a0
Make: `-mfloat-abi=softfp` for NEON
ashvardanian Sep 27, 2024
97535bc
Make: Target `arch=armv8.2-a+simd` for NEON
ashvardanian Sep 27, 2024
e4e138c
Fix: `rfind_charset_avx2` compile-time dispatch
ashvardanian Sep 27, 2024
affebc0
Improve: Faster `memcpy` in AVX-512
ashvardanian Sep 28, 2024
a265d3b
Merge branch 'main-dev' of https://github.com/ashvardanian/StringZill…
ashvardanian Sep 28, 2024
36df73d
Improve: SZ-specific breakpoints
ashvardanian Sep 30, 2024
5d522cf
Make: Lighter debugging in VS Code
ashvardanian Sep 30, 2024
5388ab4
Improve: Extend fuzzy testing
ashvardanian Sep 30, 2024
cef29c9
Add: Faster memory ops in AVX2
ashvardanian Oct 1, 2024
6d326d9
Fix: Head and tail slicing in AVX-512
ashvardanian Oct 3, 2024
a383e9e
Improve: Extend drafts & exclude from bench
ashvardanian Oct 3, 2024
69060ac
Add: STL-compatible memory APIs
ashvardanian Oct 3, 2024
696797d
Improve: Using more registers for small moves
ashvardanian Oct 3, 2024
e2f8cc7
Docs: Describe memory algorithms
ashvardanian Oct 3, 2024
02b9d68
Add: SVE kernels
ashvardanian Oct 3, 2024
bba72a6
Merge branch 'main-dev' of https://github.com/ashvardanian/StringZill…
ashvardanian Oct 3, 2024
850e4e8
Add: Look-Up Table transforms
ashvardanian Oct 11, 2024
014bcf2
Add: `sz_look_up_transform_avx2`
ashvardanian Oct 12, 2024
26a0fea
Fix: Missing NEON kernels & casts
ashvardanian Oct 12, 2024
423ad99
Fix: Missing `std::aligned_alloc` on Win32
ashvardanian Oct 12, 2024
11272e5
Fix: NEON cast
ashvardanian Oct 12, 2024
4d8ac78
Fix: Revert AVX-512 override
ashvardanian Oct 12, 2024
82146b0
Fix: Type casting warnings & `free`
ashvardanian Oct 12, 2024
165986f
Fix: Explicit `simsimd_size_t` cast in SVE
ashvardanian Oct 12, 2024
be6c93b
Fix: `sz_move_neon` order
ashvardanian Oct 12, 2024
3898481
Add: `sz_look_up_transform_neon`
ashvardanian Oct 12, 2024
1baa3a9
Fix: Missing `size_t` SVE overload
ashvardanian Oct 12, 2024
1db702a
Fix: `-mfloat-abi=hard` for Clang
ashvardanian Oct 12, 2024
5c1426f
Make: Override `MACOSX_DEPLOYMENT_TARGET`
ashvardanian Oct 12, 2024
78937f9
Fix: Reorder tests
ashvardanian Oct 12, 2024
c0c1dcb
Make: Hard-code GitHub CI OS versions
ashvardanian Oct 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 0 additions & 44 deletions .github/workflows/build_tools.sh

This file was deleted.

24 changes: 13 additions & 11 deletions .github/workflows/prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ permissions:
jobs:
versioning:
name: Update Version
runs-on: ubuntu-latest
runs-on: ubuntu-24
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -100,7 +100,7 @@ jobs:

# Python
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Build Python
Expand Down Expand Up @@ -184,7 +184,7 @@ jobs:

# Python
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Build Python
Expand Down Expand Up @@ -281,7 +281,7 @@ jobs:

test_macos:
name: MacOS
runs-on: macos-latest
runs-on: macos-13

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -316,14 +316,16 @@ jobs:

# Python
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Build Python
run: |
python -m pip install --upgrade pip
pip install pytest pytest-repeat numpy pyarrow
python -m pip install .
env:
MACOSX_DEPLOYMENT_TARGET: "11.0"
- name: Test Python
run: pytest scripts/test.py -s -x

Expand All @@ -346,7 +348,7 @@ jobs:

test_windows:
name: Windows
runs-on: windows-latest
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
- uses: ilammy/msvc-dev-cmd@v1
Expand Down Expand Up @@ -387,7 +389,7 @@ jobs:

# Python
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Build Python
Expand All @@ -400,7 +402,7 @@ jobs:

test_alpine:
name: Alpine Linux
runs-on: ubuntu-latest
runs-on: ubuntu-24
container:
image: alpine:latest
options: --privileged # If needed for certain Docker operations
Expand Down Expand Up @@ -449,18 +451,18 @@ jobs:
]
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-24, macos-13, windows-2022]
python-version: ["36", "37", "38", "39", "310", "311", "312"]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v5.2.0
with:
python-version: 3.x

# We only need QEMU for Linux builds
- name: Setup QEMU
if: matrix.os == 'ubuntu-latest'
if: matrix.os == 'ubuntu-24'
uses: docker/setup-qemu-action@v3
- name: Install cibuildwheel
run: python -m pip install cibuildwheel
Expand Down
15 changes: 8 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ permissions:
jobs:
versioning:
name: Update Version
runs-on: ubuntu-latest
runs-on: ubuntu-24
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -49,7 +49,7 @@ jobs:

rebase:
name: Rebase Dev. Branch
runs-on: ubuntu-latest
runs-on: ubuntu-24
if: github.ref == 'refs/heads/main'
needs: versioning
steps:
Expand Down Expand Up @@ -78,26 +78,27 @@ jobs:
needs: versioning
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-24, macos-13, windows-2022]
python-version: ["36", "37", "38", "39", "310", "311", "312"]
steps:
- uses: actions/checkout@v4
with:
ref: "main"

- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v5.2.0
with:
python-version: 3.x
- name: Setup QEMU
if: matrix.os == 'ubuntu-latest' # We only need QEMU for Linux builds
if: matrix.os == 'ubuntu-24' # We only need QEMU for Linux builds
uses: docker/setup-qemu-action@v3
- name: Install cibuildwheel
run: python -m pip install cibuildwheel
- name: Build wheels
run: cibuildwheel --output-dir wheelhouse
env:
CIBW_BUILD: cp${{ matrix.python-version }}-*
MACOSX_DEPLOYMENT_TARGET: "11.0"
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
Expand Down Expand Up @@ -152,7 +153,7 @@ jobs:
# publish_javascript:
# name: Publish JavaScript
# needs: versioning
# runs-on: ubuntu-latest
# runs-on: ubuntu-24
# steps:
# - uses: actions/checkout@v4
# with:
Expand Down Expand Up @@ -297,7 +298,7 @@ jobs:

create_macos_library:
name: Create Library for MacOS ${{ matrix.arch }}
runs-on: macos-latest
runs-on: macos-13
needs: versioning
strategy:
fail-fast: false
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@ node_modules/
leipzig1M.txt
enwik9.txt
xlsum.csv
human_protein_1200row_800len.txt

# StringZilla-specific log files
/failed_sz_*
8 changes: 2 additions & 6 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"name": "Debug C++ Unit Tests",
"type": "cppdbg",
"request": "launch",
"preLaunchTask": "Build Test: Debug",
"program": "${workspaceFolder}/build_debug/stringzilla_test_cpp20",
"cwd": "${workspaceFolder}",
"environment": [
Expand All @@ -18,16 +19,13 @@
],
"stopAtEntry": false,
"linux": {
"preLaunchTask": "Build with GCC: Debug",
"MIMode": "gdb"
},
"osx": {
"preLaunchTask": "Build with LLVM: Debug",
"MIMode": "lldb"
},
"windows": {
"program": "${workspaceFolder}\\build_debug\\stringzilla_test_cpp20.exe",
"preLaunchTask": "Build with MSVC: Debug",
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGw\\bin\\gdb.exe"
}
Expand All @@ -48,17 +46,15 @@
}
],
"stopAtEntry": false,
"preLaunchTask": "Build Benchmarks: Debug",
"linux": {
"preLaunchTask": "Build with GCC: Debug",
"MIMode": "gdb"
},
"osx": {
"preLaunchTask": "Build with LLVM: Debug",
"MIMode": "lldb"
},
"windows": {
"program": "${workspaceFolder}\\build_debug\\stringzilla_${fileBasenameNoExtension}.exe",
"preLaunchTask": "Build with MSVC: Debug",
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGw\\bin\\gdb.exe"
}
Expand Down
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,8 @@
"xtr1common": "cpp",
"xtree": "cpp",
"xutility": "cpp",
"errno.h": "c"
"errno.h": "c",
"text_encoding": "cpp"
},
"python.pythonPath": "~/miniconda3/bin/python"
}
74 changes: 46 additions & 28 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,58 @@
"version": "2.0.0",
"tasks": [
{
"label": "Build with GCC: Debug",
"command": "./.github/workflows/build_tools.sh Debug GCC",
"label": "Build Test: Debug",
"command": "cmake -D CMAKE_BUILD_TYPE=Debug -D STRINGZILLA_BUILD_TEST=1 -B build_debug && cmake --build build_debug --config Debug --target stringzilla_test_cpp20",
"args": [],
"type": "shell",
"problemMatcher": [
"$gcc"
]
"osx": {
"environment": [
{
"name": "CXX",
"value": "$(brew --prefix llvm)/bin/clang++"
},
{
"name": "CC",
"value": "$(brew --prefix llvm)/bin/clang"
}
]
}
},
{
"label": "Build with GCC: Release",
"command": "./.github/workflows/build_tools.sh Release GCC",
"label": "Build Benchmarks: Debug",
"command": "cmake -D CMAKE_BUILD_TYPE=Debug -D STRINGZILLA_BUILD_TEST=0 -D STRINGZILLA_BUILD_BENCHMARK=1 -B build_debug && cmake --build build_debug --config Debug",
"args": [],
"type": "shell",
"problemMatcher": [
"$gcc"
]
"osx": {
"environment": [
{
"name": "CXX",
"value": "$(brew --prefix llvm)/bin/clang++"
},
{
"name": "CC",
"value": "$(brew --prefix llvm)/bin/clang"
}
]
}
},
{
"label": "Build with LLVM: Debug",
"command": "./.github/workflows/build_tools.sh Debug LLVM",
"type": "shell"
},
{
"label": "Build with LLVM: Release",
"command": "./.github/workflows/build_tools.sh Release LLVM",
"type": "shell"
},
{
"label": "Build with MSVC: Debug",
"command": "./.github/workflows/build_tools.sh Debug MSVC",
"type": "shell"
"label": "Build Benchmarks: Release",
"command": "cmake -D CMAKE_BUILD_TYPE=Release -D STRINGZILLA_BUILD_TEST=0 -D STRINGZILLA_BUILD_BENCHMARK=1 -B build_release && cmake --build build_release --config Release",
"args": [],
"type": "shell",
"osx": {
"environment": [
{
"name": "CXX",
"value": "$(brew --prefix llvm)/bin/clang++"
},
{
"name": "CC",
"value": "$(brew --prefix llvm)/bin/clang"
}
]
}
},
{
"label": "Build with MSVC: Release",
"command": "./.github/workflows/build_tools.sh Release MSVC",
"type": "shell"
}
]
}
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@ if(${STRINGZILLA_BUILD_BENCHMARK})
define_launcher(stringzilla_bench_sort scripts/bench_sort.cpp 17 "${STRINGZILLA_TARGET_ARCH}")
define_launcher(stringzilla_bench_token scripts/bench_token.cpp 17 "${STRINGZILLA_TARGET_ARCH}")
define_launcher(stringzilla_bench_container scripts/bench_container.cpp 17 "${STRINGZILLA_TARGET_ARCH}")
define_launcher(stringzilla_bench_memory scripts/bench_memory.cpp 17 "${STRINGZILLA_TARGET_ARCH}")
endif()

if(${STRINGZILLA_BUILD_TEST})
Expand Down
Loading
Loading