Skip to content

Commit

Permalink
Update to latest libprimesieve
Browse files Browse the repository at this point in the history
  • Loading branch information
kimwalisch committed Sep 11, 2023
1 parent 1afca85 commit 6c98518
Show file tree
Hide file tree
Showing 9 changed files with 284 additions and 139 deletions.
2 changes: 2 additions & 0 deletions lib/primesieve/.github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
github: kimwalisch
custom: "https://paypal.com/donate/?hosted_button_id=N3NHLPNYQFBRA"
265 changes: 265 additions & 0 deletions lib/primesieve/.github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,265 @@
name: ci

on:
push:
branches-ignore:
- gh-pages
pull_request:
branches-ignore:
- gh-pages

jobs:
linux_gcc_sanitizers:
runs-on: ubuntu-latest
env:
CC: gcc
CXX: g++
steps:
- uses: actions/checkout@v3
- name: Build primesieve
run: |
cmake . -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror -Wno-long-long -O1 -g -fsanitize=address -fsanitize=undefined -fno-sanitize-recover=all -fno-omit-frame-pointer" -DCMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -Werror -Wno-long-long -O1 -g -fsanitize=address -fsanitize=undefined -fno-sanitize-recover=all -fno-omit-frame-pointer"
make -j2 VERBOSE=1
- name: CTest (unit tests)
run: ctest -j2
- name: primesieve --test option
run: ./primesieve --test
# Run primesieve binary
- name: primesieve --cpu-info
run: ./primesieve --cpu-info
- name: primesieve 1e10
run: ./primesieve 1e10
- name: primesieve 1e9 --nth-prime
run: ./primesieve 1e9 --nth-prime
- name: primesieve --dist=1e9 --size=32 --print=6
run: ./primesieve 1e13 --dist=1e9 --size=32 --print=6
#Test printing primes and prime k-tuplets
- name: primesieve 1e8 -p | md5sum
run: if [ "$(./primesieve 1e8 -p | md5sum | cut -f1 -d' ')" != "4e2b0027288a27e9c99699364877c9db" ]; then exit 1; fi
- name: primesieve 1e8 -p2 | md5sum
run: if [ "$(./primesieve 1e8 -p2 | md5sum | cut -f1 -d' ')" != "5076d235d5b03389034ec107227eab98" ]; then exit 1; fi
- name: primesieve 1e8 -p3 | md5sum
run: if [ "$(./primesieve 1e8 -p3 | md5sum | cut -f1 -d' ')" != "1b40d7e67868ccc857df11c3e0f7e0f5" ]; then exit 1; fi
- name: primesieve 1e8 -p4 | md5sum
run: if [ "$(./primesieve 1e8 -p4 | md5sum | cut -f1 -d' ')" != "b998d7cdbeae6623cdecba1b921cb2e1" ]; then exit 1; fi
- name: primesieve 1e8 -p5 | md5sum
run: if [ "$(./primesieve 1e8 -p5 | md5sum | cut -f1 -d' ')" != "1ec7d5704d7399caf43667090b5bf836" ]; then exit 1; fi
- name: primesieve 1e8 -p6 | md5sum
run: if [ "$(./primesieve 1e8 -p6 | md5sum | cut -f1 -d' ')" != "0fb813d345c94cf2012588d1f71328b5" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p | md5sum | cut -f1 -d' ')" != "5fbe254a97ad3bbc07c224908c9d59b2" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p2 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p2 | md5sum | cut -f1 -d' ')" != "7a7a770c1841a17a9a63b92b7b6532b9" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p3 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p3 | md5sum | cut -f1 -d' ')" != "72323b08c62ad8342f7331e3d6d45a64" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p4 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p4 | md5sum | cut -f1 -d' ')" != "c2b0818499f77aa35681db3826caf3f6" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p5 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p5 | md5sum | cut -f1 -d' ')" != "11b50e4f75899891a62465f6d68fb76e" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p6 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p6 | md5sum | cut -f1 -d' ')" != "5a0bc83fdef0bb116d60f356adfde52f" ]; then exit 1; fi

linux_gcc_valgrind:
runs-on: ubuntu-latest
env:
CC: gcc
CXX: g++
steps:
- uses: actions/checkout@v3
- name: Install valgrind
run: |
sudo apt update
sudo apt install valgrind asciidoc libxml2-utils xmlto
- name: Build primesieve
run: |
cmake . -DBUILD_TESTS=ON -DBUILD_MANPAGE=ON -DCMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -Werror -g"
make -j2 VERBOSE=1
- name: CTest (unit tests)
run: ctest -j2
- name: primesieve --test option
run: ./primesieve --test
- name: Valgrind primesieve count test
run: valgrind --error-exitcode=1 ./primesieve 1e9
- name: Valgrind primesieve print test
run: valgrind --error-exitcode=1 ./primesieve 10000 --print
# Run primesieve binary
- name: primesieve --cpu-info
run: ./primesieve --cpu-info
- name: primesieve 1e10
run: ./primesieve 1e10
- name: primesieve 1e9 --nth-prime
run: ./primesieve 1e9 --nth-prime
- name: primesieve --dist=1e9 --size=32 --print=6
run: ./primesieve 1e13 --dist=1e9 --size=32 --print=6
#Test printing primes and prime k-tuplets
- name: primesieve 1e8 -p | md5sum
run: if [ "$(./primesieve 1e8 -p | md5sum | cut -f1 -d' ')" != "4e2b0027288a27e9c99699364877c9db" ]; then exit 1; fi
- name: primesieve 1e8 -p2 | md5sum
run: if [ "$(./primesieve 1e8 -p2 | md5sum | cut -f1 -d' ')" != "5076d235d5b03389034ec107227eab98" ]; then exit 1; fi
- name: primesieve 1e8 -p3 | md5sum
run: if [ "$(./primesieve 1e8 -p3 | md5sum | cut -f1 -d' ')" != "1b40d7e67868ccc857df11c3e0f7e0f5" ]; then exit 1; fi
- name: primesieve 1e8 -p4 | md5sum
run: if [ "$(./primesieve 1e8 -p4 | md5sum | cut -f1 -d' ')" != "b998d7cdbeae6623cdecba1b921cb2e1" ]; then exit 1; fi
- name: primesieve 1e8 -p5 | md5sum
run: if [ "$(./primesieve 1e8 -p5 | md5sum | cut -f1 -d' ')" != "1ec7d5704d7399caf43667090b5bf836" ]; then exit 1; fi
- name: primesieve 1e8 -p6 | md5sum
run: if [ "$(./primesieve 1e8 -p6 | md5sum | cut -f1 -d' ')" != "0fb813d345c94cf2012588d1f71328b5" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p | md5sum | cut -f1 -d' ')" != "5fbe254a97ad3bbc07c224908c9d59b2" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p2 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p2 | md5sum | cut -f1 -d' ')" != "7a7a770c1841a17a9a63b92b7b6532b9" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p3 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p3 | md5sum | cut -f1 -d' ')" != "72323b08c62ad8342f7331e3d6d45a64" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p4 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p4 | md5sum | cut -f1 -d' ')" != "c2b0818499f77aa35681db3826caf3f6" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p5 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p5 | md5sum | cut -f1 -d' ')" != "11b50e4f75899891a62465f6d68fb76e" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p6 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p6 | md5sum | cut -f1 -d' ')" != "5a0bc83fdef0bb116d60f356adfde52f" ]; then exit 1; fi

linux_clang:
runs-on: ubuntu-latest
env:
CC: clang
CXX: clang++
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt update
sudo apt install libomp-dev
- name: Build primesieve
run: |
cmake . -DBUILD_TESTS=ON -DCMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -Werror"
make -j2 VERBOSE=1
- name: CTest (unit tests)
run: ctest -j2
- name: primesieve --test option
run: ./primesieve --test
# Run primesieve binary
- name: primesieve --cpu-info
run: ./primesieve --cpu-info
- name: primesieve 1e10
run: ./primesieve 1e10
- name: primesieve 1e9 --nth-prime
run: ./primesieve 1e9 --nth-prime
- name: primesieve --dist=1e9 --size=32 --print=6
run: ./primesieve 1e13 --dist=1e9 --size=32 --print=6
#Test printing primes and prime k-tuplets
- name: primesieve 1e8 -p | md5sum
run: if [ "$(./primesieve 1e8 -p | md5sum | cut -f1 -d' ')" != "4e2b0027288a27e9c99699364877c9db" ]; then exit 1; fi
- name: primesieve 1e8 -p2 | md5sum
run: if [ "$(./primesieve 1e8 -p2 | md5sum | cut -f1 -d' ')" != "5076d235d5b03389034ec107227eab98" ]; then exit 1; fi
- name: primesieve 1e8 -p3 | md5sum
run: if [ "$(./primesieve 1e8 -p3 | md5sum | cut -f1 -d' ')" != "1b40d7e67868ccc857df11c3e0f7e0f5" ]; then exit 1; fi
- name: primesieve 1e8 -p4 | md5sum
run: if [ "$(./primesieve 1e8 -p4 | md5sum | cut -f1 -d' ')" != "b998d7cdbeae6623cdecba1b921cb2e1" ]; then exit 1; fi
- name: primesieve 1e8 -p5 | md5sum
run: if [ "$(./primesieve 1e8 -p5 | md5sum | cut -f1 -d' ')" != "1ec7d5704d7399caf43667090b5bf836" ]; then exit 1; fi
- name: primesieve 1e8 -p6 | md5sum
run: if [ "$(./primesieve 1e8 -p6 | md5sum | cut -f1 -d' ')" != "0fb813d345c94cf2012588d1f71328b5" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p | md5sum | cut -f1 -d' ')" != "5fbe254a97ad3bbc07c224908c9d59b2" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p2 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p2 | md5sum | cut -f1 -d' ')" != "7a7a770c1841a17a9a63b92b7b6532b9" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p3 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p3 | md5sum | cut -f1 -d' ')" != "72323b08c62ad8342f7331e3d6d45a64" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p4 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p4 | md5sum | cut -f1 -d' ')" != "c2b0818499f77aa35681db3826caf3f6" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p5 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p5 | md5sum | cut -f1 -d' ')" != "11b50e4f75899891a62465f6d68fb76e" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p6 | md5sum
run: if [ "$(./primesieve 1e10 -d1e8 -p6 | md5sum | cut -f1 -d' ')" != "5a0bc83fdef0bb116d60f356adfde52f" ]; then exit 1; fi

macos_clang:
runs-on: macos-latest
env:
CC: clang
CXX: clang++
steps:
- uses: actions/checkout@v3
- name: Build primesieve
run: |
cmake . -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$(pwd)
make -j2 VERBOSE=1
make install
- name: CTest (unit tests)
run: ctest -j2
- name: primesieve --test option
run: ./primesieve --test
# Run primesieve binary
- name: primesieve --cpu-info
run: ./primesieve --cpu-info
- name: primesieve 1e10
run: ./primesieve 1e10
- name: primesieve 1e9 --nth-prime
run: ./primesieve 1e9 --nth-prime
- name: primesieve --dist=1e9 --size=32 --print=6
run: ./primesieve 1e13 --dist=1e9 --size=32 --print=6
#Test printing primes and prime k-tuplets
- name: primesieve 1e8 -p | md5
run: if [ "$(./primesieve 1e8 -p | md5 | cut -f1 -d' ')" != "4e2b0027288a27e9c99699364877c9db" ]; then exit 1; fi
- name: primesieve 1e8 -p2 | md5
run: if [ "$(./primesieve 1e8 -p2 | md5 | cut -f1 -d' ')" != "5076d235d5b03389034ec107227eab98" ]; then exit 1; fi
- name: primesieve 1e8 -p3 | md5
run: if [ "$(./primesieve 1e8 -p3 | md5 | cut -f1 -d' ')" != "1b40d7e67868ccc857df11c3e0f7e0f5" ]; then exit 1; fi
- name: primesieve 1e8 -p4 | md5
run: if [ "$(./primesieve 1e8 -p4 | md5 | cut -f1 -d' ')" != "b998d7cdbeae6623cdecba1b921cb2e1" ]; then exit 1; fi
- name: primesieve 1e8 -p5 | md5
run: if [ "$(./primesieve 1e8 -p5 | md5 | cut -f1 -d' ')" != "1ec7d5704d7399caf43667090b5bf836" ]; then exit 1; fi
- name: primesieve 1e8 -p6 | md5
run: if [ "$(./primesieve 1e8 -p6 | md5 | cut -f1 -d' ')" != "0fb813d345c94cf2012588d1f71328b5" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p | md5
run: if [ "$(./primesieve 1e10 -d1e8 -p | md5 | cut -f1 -d' ')" != "5fbe254a97ad3bbc07c224908c9d59b2" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p2 | md5
run: if [ "$(./primesieve 1e10 -d1e8 -p2 | md5 | cut -f1 -d' ')" != "7a7a770c1841a17a9a63b92b7b6532b9" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p3 | md5
run: if [ "$(./primesieve 1e10 -d1e8 -p3 | md5 | cut -f1 -d' ')" != "72323b08c62ad8342f7331e3d6d45a64" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p4 | md5
run: if [ "$(./primesieve 1e10 -d1e8 -p4 | md5 | cut -f1 -d' ')" != "c2b0818499f77aa35681db3826caf3f6" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p5 | md5
run: if [ "$(./primesieve 1e10 -d1e8 -p5 | md5 | cut -f1 -d' ')" != "11b50e4f75899891a62465f6d68fb76e" ]; then exit 1; fi
- name: primesieve 1e10 -d1e8 -p6 | md5
run: if [ "$(./primesieve 1e10 -d1e8 -p6 | md5 | cut -f1 -d' ')" != "5a0bc83fdef0bb116d60f356adfde52f" ]; then exit 1; fi

# See documentation: https://www.msys2.org/docs/ci/
windows_mingw64:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v3
- uses: msys2/setup-msys2@v2
with:
update: true
install: base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake
- name: Build primesieve
run: |
cmake . -G "Unix Makefiles" -DBUILD_TESTS=ON -DCMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -Werror"
make -j2 VERBOSE=1
- name: CTest (unit tests)
run: ctest -j2
- name: primesieve --test option
run: ./primesieve --test
- name: primesieve --cpu-info
run: ./primesieve --cpu-info
- name: primesieve --print
run: ./primesieve 1000 --print

windows_msvc2022:
runs-on: windows-2022
steps:
- uses: actions/checkout@v3
- name: Build primesieve
run: |
cmake . -G "Visual Studio 17 2022" -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON
cmake --build . --config Release --target install
- name: CTest (unit tests)
run: ctest -j2 -C Release --output-on-failure
- name: primesieve --test option
run: Release\primesieve.exe --test
- name: primesieve --cpu-info
run: Release\primesieve.exe --cpu-info
- name: primesieve --print
run: Release\primesieve.exe 1000 --print
1 change: 1 addition & 0 deletions lib/primesieve/.gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.*
*~
!/.github
!/.gitignore
*.exe
*.tar.gz
Expand Down
4 changes: 2 additions & 2 deletions lib/primesieve/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.4...3.22)
project(primesieve CXX)
set(PRIMESIEVE_VERSION "11.1")
set(PRIMESIEVE_SOVERSION "11.1.0")
set(PRIMESIEVE_VERSION "11.2")
set(PRIMESIEVE_SOVERSION "11.2.0")

# Build options ######################################################

Expand Down
9 changes: 9 additions & 0 deletions lib/primesieve/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
Changes in version 11.2, 11/09/2023
===================================

* .github/workflows/ci.yml: Port AppVeyor CI tests to GitHub Actions.
* doc/C_API.md: Fix off by 1 error in OpenMP example #137.
* doc/CPP_API.md: Fix off by 1 error in OpenMP example #137.
* iterator.h: Improve documentation.
* iterator.hpp: Improve documentation.

Changes in version 11.1, 12/05/2023
===================================

Expand Down
2 changes: 1 addition & 1 deletion lib/primesieve/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# primesieve

[![Build Status](https://ci.appveyor.com/api/projects/status/github/kimwalisch/primesieve?branch=master&svg=true)](https://ci.appveyor.com/project/kimwalisch/primesieve)
[![Build status](https://github.com/kimwalisch/primesieve/actions/workflows/ci.yml/badge.svg)](https://github.com/kimwalisch/primesieve/actions/workflows/ci.yml)
[![Github Releases](https://img.shields.io/github/release/kimwalisch/primesieve.svg)](https://github.com/kimwalisch/primesieve/releases)

primesieve is a command-line program and C/C++ library for quickly generating prime numbers.
Expand Down
Loading

0 comments on commit 6c98518

Please sign in to comment.