Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package primesieve for openSUSE:Factory 
checked in at 2026-01-27 16:15:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/primesieve (Old)
 and      /work/SRC/openSUSE:Factory/.primesieve.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "primesieve"

Tue Jan 27 16:15:15 2026 rev:22 rq:1329423 version:12.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/primesieve/primesieve.changes    2025-12-16 
16:03:59.230406265 +0100
+++ /work/SRC/openSUSE:Factory/.primesieve.new.1928/primesieve.changes  
2026-01-27 16:15:24.977796181 +0100
@@ -1,0 +2,10 @@
+Mon Jan 26 09:26:00 UTC 2026 - Kim Walisch <[email protected]>
+
+- Update to primesieve-12.12
+- CMakeLists.txt: Fix CMAKE_PROJECT_VERSION not defined
+- doc/Doxyfile.in: REVERSE workaround for Doxygen/LaTeX broken tables
+- Automated building Windows binaries using GitHub Actions CI
+- build_clang_x64.ps1: New Clang Windows x64 build script
+- build_clang_arm64.ps1: New Clang Windows ARM64 build script
+
+-------------------------------------------------------------------
@@ -4,8 +14,8 @@
-- Update to primesieve-12.11.
-- calculator.hpp: Update to version 2.0 with improved error handling.
-- test/calculator.cpp: Add much more tests for calculator.hpp.
-- PreSieve.cpp: Simplify SIMD runtime dispatching.
-- CountPrintPrimes.cpp: Faster printing of primes to stdout.
-- CmdOptions.cpp: Prevent multiple different --print options.
-- CMakeLists.txt: Set CMAKE_VISIBILITY_INLINES_HIDDEN=ON by default.
-- BUILD.md: Update MSVC build instructions.
+- Update to primesieve-12.11
+- calculator.hpp: Update to version 2.0 with improved error handling
+- test/calculator.cpp: Add much more tests for calculator.hpp
+- PreSieve.cpp: Simplify SIMD runtime dispatching
+- CountPrintPrimes.cpp: Faster printing of primes to stdout
+- CmdOptions.cpp: Prevent multiple different --print options
+- CMakeLists.txt: Set CMAKE_VISIBILITY_INLINES_HIDDEN=ON by default
+- BUILD.md: Update MSVC build instructions

Old:
----
  primesieve-12.11.tar.gz

New:
----
  primesieve-12.12.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ primesieve.spec ++++++
--- /var/tmp/diff_new_pack.Dl1fW2/_old  2026-01-27 16:15:26.069841156 +0100
+++ /var/tmp/diff_new_pack.Dl1fW2/_new  2026-01-27 16:15:26.073841321 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           primesieve
-Version:        12.11
+Version:        12.12
 Release:        0
 Summary:        A prime number generator
 License:        BSD-2-Clause

++++++ primesieve-12.11.tar.gz -> primesieve-12.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/primesieve-12.11/.github/workflows/build_windows_binaries.yml 
new/primesieve-12.12/.github/workflows/build_windows_binaries.yml
--- old/primesieve-12.11/.github/workflows/build_windows_binaries.yml   
1970-01-01 01:00:00.000000000 +0100
+++ new/primesieve-12.12/.github/workflows/build_windows_binaries.yml   
2026-01-09 23:18:31.000000000 +0100
@@ -0,0 +1,63 @@
+name: Build Windows binaries
+
+# Run ONLY when manually triggered from the GitHub Actions UI
+on:
+  workflow_dispatch:
+
+permissions:
+  contents: read
+
+jobs:
+  windows-x64:
+    name: Windows x64 / Clang
+    runs-on: windows-2022
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v4
+
+      - name: Build and Package
+        shell: powershell
+        run: |
+          ./scripts/build_clang_x64.ps1
+
+      - name: Get Version for Artifact
+        shell: powershell
+        run: |
+          $VersionString = Select-String -Path "include/primesieve.hpp" 
-Pattern 'PRIMESIEVE_VERSION "(.*)"'
+          echo "PROJECT_VERSION=$($VersionString.Matches.Groups[1].Value)" >> 
$env:GITHUB_ENV
+
+      - name: Upload Windows x64 CI artifact
+        uses: actions/upload-artifact@v4
+        with:
+          name: primesieve-${{ env.PROJECT_VERSION }}-win-x64
+          path: build-release/primesieve-${{ env.PROJECT_VERSION }}-win-x64/*
+          if-no-files-found: error
+          retention-days: 7
+
+  windows-arm64:
+    name: Windows ARM64 / Clang
+    runs-on: windows-11-arm
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v4
+
+      - name: Build and Package
+        shell: powershell
+        run: |
+          ./scripts/build_clang_arm64.ps1
+
+      - name: Get Version for Artifact
+        shell: powershell
+        run: |
+          $VersionString = Select-String -Path "include/primesieve.hpp" 
-Pattern 'PRIMESIEVE_VERSION "(.*)"'
+          echo "PROJECT_VERSION=$($VersionString.Matches.Groups[1].Value)" >> 
$env:GITHUB_ENV
+
+      - name: Upload Windows arm64 CI artifact
+        uses: actions/upload-artifact@v4
+        with:
+          name: primesieve-${{ env.PROJECT_VERSION }}-win-arm64
+          path: build-release/primesieve-${{ env.PROJECT_VERSION }}-win-arm64/*
+          if-no-files-found: error
+          retention-days: 7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/CMakeLists.txt 
new/primesieve-12.12/CMakeLists.txt
--- old/primesieve-12.11/CMakeLists.txt 2025-12-14 09:14:12.000000000 +0100
+++ new/primesieve-12.12/CMakeLists.txt 2026-01-09 23:18:31.000000000 +0100
@@ -1,7 +1,8 @@
-cmake_minimum_required(VERSION 3.9...3.30)
-project(primesieve CXX)
-set(PRIMESIEVE_VERSION "12.11")
-set(PRIMESIEVE_SOVERSION "12.11.0")
+cmake_minimum_required(VERSION 3.9...4.2)
+
+project(primesieve
+        VERSION 12.12
+        LANGUAGES CXX)
 
 # Build options ######################################################
 
@@ -144,10 +145,8 @@
     add_library(libprimesieve SHARED ${LIB_SRC})
     set_target_properties(libprimesieve PROPERTIES OUTPUT_NAME primesieve)
     target_link_libraries(libprimesieve PRIVATE Threads::Threads 
${PRIMESIEVE_LINK_LIBRARIES})
-    string(REPLACE "." ";" SOVERSION_LIST ${PRIMESIEVE_SOVERSION})
-    list(GET SOVERSION_LIST 0 PRIMESIEVE_SOVERSION_MAJOR)
-    set_target_properties(libprimesieve PROPERTIES SOVERSION 
${PRIMESIEVE_SOVERSION_MAJOR})
-    set_target_properties(libprimesieve PROPERTIES VERSION 
${PRIMESIEVE_SOVERSION})
+    set_target_properties(libprimesieve PROPERTIES SOVERSION 
${PROJECT_VERSION_MAJOR})
+    set_target_properties(libprimesieve PROPERTIES VERSION ${PROJECT_VERSION})
     target_compile_definitions(libprimesieve PRIVATE 
${PRIMESIEVE_COMPILE_DEFINITIONS})
 
     if(WIN32_MSVC_COMPATIBLE)
@@ -270,7 +269,7 @@
 
 write_basic_package_version_file(
     "${CMAKE_CURRENT_BINARY_DIR}/primesieveConfigVersion.cmake"
-    VERSION ${PRIMESIEVE_VERSION}
+    VERSION ${PROJECT_VERSION}
     COMPATIBILITY SameMajorVersion)
 
 configure_package_config_file(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/COPYING new/primesieve-12.12/COPYING
--- old/primesieve-12.11/COPYING        2025-12-14 09:14:12.000000000 +0100
+++ new/primesieve-12.12/COPYING        2026-01-09 23:18:31.000000000 +0100
@@ -1,6 +1,6 @@
 BSD 2-Clause License
 
-Copyright (c) 2010 - 2025, Kim Walisch.
+Copyright (c) 2010 - 2026, Kim Walisch.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/ChangeLog 
new/primesieve-12.12/ChangeLog
--- old/primesieve-12.11/ChangeLog      2025-12-14 09:14:12.000000000 +0100
+++ new/primesieve-12.12/ChangeLog      2026-01-09 23:18:31.000000000 +0100
@@ -1,3 +1,12 @@
+Changes in version 12.12, 09/01/2026
+====================================
+
+* CMakeLists.txt: Fix CMAKE_PROJECT_VERSION not defined.
+* doc/Doxyfile.in: REVERSE workaround for Doxygen/LaTeX broken tables #172.
+* Automated building Windows binaries using GitHub Actions CI.
+* build_clang_x64.ps1: New Clang Windows x64 build script.
+* build_clang_arm64.ps1: New Clang Windows ARM64 build script.
+
 Changes in version 12.11, 12/12/2025
 ====================================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/doc/CMakeLists.txt 
new/primesieve-12.12/doc/CMakeLists.txt
--- old/primesieve-12.11/doc/CMakeLists.txt     2025-12-14 09:14:12.000000000 
+0100
+++ new/primesieve-12.12/doc/CMakeLists.txt     2026-01-09 23:18:31.000000000 
+0100
@@ -1,6 +1,6 @@
 find_package(Doxygen)
 
-if(DOXYGEN_FOUND)
+if(Doxygen_FOUND)
     find_package(LATEX)
     find_program(DOT_FONUD dot)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/doc/Doxyfile.in 
new/primesieve-12.12/doc/Doxyfile.in
--- old/primesieve-12.11/doc/Doxyfile.in        2025-12-14 09:14:12.000000000 
+0100
+++ new/primesieve-12.12/doc/Doxyfile.in        2026-01-09 23:18:31.000000000 
+0100
@@ -32,4 +32,3 @@
 GENERATE_LATEX         = @HAVE_LATEX@
 FULL_PATH_NAMES        = NO
 HAVE_DOT               = @HAVE_DOT@
-LATEX_EXTRA_STYLESHEET = @PROJECT_SOURCE_DIR@/doc/override_tables.sty
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/doc/override_tables.sty 
new/primesieve-12.12/doc/override_tables.sty
--- old/primesieve-12.11/doc/override_tables.sty        2025-12-14 
09:14:12.000000000 +0100
+++ new/primesieve-12.12/doc/override_tables.sty        1970-01-01 
01:00:00.000000000 +0100
@@ -1,101 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}
-
-% Packages used by this style file
-\RequirePackage{doxygen}
-
-% Used by parameter lists
-\renewenvironment{DoxyParams}[2][]{%
-    \tabulinesep=1mm%
-    \par%
-    \ifthenelse{\equal{#1}{}}%
-      {\begin{longtable}[l]{|l|l|}}% name + description
-    {\ifthenelse{\equal{#1}{1}}%
-      {\begin{longtable}[l]{|l|l|l|}}% in/out + name + desc
-      {\begin{longtable}[l]{|l|l|l|l|}}% in/out + type + name + desc
-    }
-    
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #2}\\[1ex]%
-    \endfirsthead%
-    
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #2}\\[1ex]%
-    \endhead%
-    \hline%
-}{%
-    \end{longtable}%
-    \vspace{6pt}%
-}
-
-% Used for fields of simple structs
-\renewenvironment{DoxyFields}[1]{%
-    \tabulinesep=1mm%
-    \par%
-    \begin{longtable}[l]{|l|l|l|}%
-    
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #1}\\[1ex]%
-    \endfirsthead%
-    
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #1}\\[1ex]%
-    \endhead%
-    \hline%
-}{%
-    \end{longtable}%
-    \vspace{6pt}%
-}
-
-% Used for fields simple class style enums
-\renewenvironment{DoxyEnumFields}[2][]{%
-    \tabulinesep=1mm%
-    \par%
-    \ifthenelse{\equal{#1}{2}}%
-      {\begin{longtable}[l]{|l|l|}}%
-      {\begin{longtable}[l]{|l|l|l|}}% with init value
-    
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #2}\\[1ex]%
-    \endfirsthead%
-    
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #2}\\[1ex]%
-    \endhead%
-    \hline%
-}{%
-    \end{longtable}%
-    \vspace{6pt}%
-}
-
-% Used by return value lists
-\renewenvironment{DoxyRetVals}[1]{%
-    \tabulinesep=1mm%
-    \par%
-    \begin{longtable}[l]{|l|l|}%
-    
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #1}\\[1ex]%
-    \endfirsthead%
-    
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #1}\\[1ex]%
-    \endhead%
-    \hline%
-}{%
-    \end{longtable}%
-    \vspace{6pt}%
-}
-
-% Used by exception lists
-\renewenvironment{DoxyExceptions}[1]{%
-    \tabulinesep=1mm%
-    \par%
-    \begin{longtable}[l]{|l|l|}%
-    
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #1}\\[1ex]%
-    \endfirsthead%
-    
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #1}\\[1ex]%
-    \endhead%
-    \hline%
-}{%
-    \end{longtable}%
-    \vspace{6pt}%
-}
-
-% Used by template parameter lists
-\renewenvironment{DoxyTemplParams}[1]{%
-    \tabulinesep=1mm%
-    \par%
-    \begin{longtable}[l]{|l|l|}%
-    
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #1}\\[1ex]%
-    \endfirsthead%
-    
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray}
 #1}\\[1ex]%
-    \endhead%
-    \hline%
-}{%
-    \end{longtable}%
-    \vspace{6pt}%
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/include/primesieve.h 
new/primesieve-12.12/include/primesieve.h
--- old/primesieve-12.11/include/primesieve.h   2025-12-14 09:14:12.000000000 
+0100
+++ new/primesieve-12.12/include/primesieve.h   2026-01-09 23:18:31.000000000 
+0100
@@ -15,9 +15,9 @@
 #ifndef PRIMESIEVE_H
 #define PRIMESIEVE_H
 
-#define PRIMESIEVE_VERSION "12.11"
+#define PRIMESIEVE_VERSION "12.12"
 #define PRIMESIEVE_VERSION_MAJOR 12
-#define PRIMESIEVE_VERSION_MINOR 11
+#define PRIMESIEVE_VERSION_MINOR 12
 
 #include <primesieve/iterator.h>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/include/primesieve.hpp 
new/primesieve-12.12/include/primesieve.hpp
--- old/primesieve-12.11/include/primesieve.hpp 2025-12-14 09:14:12.000000000 
+0100
+++ new/primesieve-12.12/include/primesieve.hpp 2026-01-09 23:18:31.000000000 
+0100
@@ -13,9 +13,9 @@
 #ifndef PRIMESIEVE_HPP
 #define PRIMESIEVE_HPP
 
-#define PRIMESIEVE_VERSION "12.11"
+#define PRIMESIEVE_VERSION "12.12"
 #define PRIMESIEVE_VERSION_MAJOR 12
-#define PRIMESIEVE_VERSION_MINOR 11
+#define PRIMESIEVE_VERSION_MINOR 12
 
 #include <primesieve/iterator.hpp>
 #include <primesieve/primesieve_error.hpp>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/scripts/build_clang_arm64.ps1 
new/primesieve-12.12/scripts/build_clang_arm64.ps1
--- old/primesieve-12.11/scripts/build_clang_arm64.ps1  1970-01-01 
01:00:00.000000000 +0100
+++ new/primesieve-12.12/scripts/build_clang_arm64.ps1  2026-01-09 
23:18:31.000000000 +0100
@@ -0,0 +1,92 @@
+# Usage: ./scripts/build_clang_arm64.ps1
+$ErrorActionPreference = "Stop"
+
+# Configuration ######################################################
+
+$LLVM_VER    = "21.1.8"
+$BUILD_DIR   = Join-Path (Get-Location) "build-release"
+$LLVM_DIR    = Join-Path $BUILD_DIR 
"clang+llvm-$LLVM_VER-aarch64-pc-windows-msvc"
+$URL_LLVM    = 
"https://github.com/llvm/llvm-project/releases/download/llvmorg-$LLVM_VER/clang+llvm-$LLVM_VER-aarch64-pc-windows-msvc.tar.xz";
+$URL_PREV    = 
"https://github.com/kimwalisch/primesieve/releases/download/v12.11/primesieve-12.11-win-arm64.zip";
+
+# Clean and Init #####################################################
+
+Remove-Item -Recurse -Force $BUILD_DIR -ErrorAction SilentlyContinue
+New-Item -ItemType Directory -Force -Path $BUILD_DIR | Out-Null
+Set-Location $BUILD_DIR
+
+# Helper: Silent Download (.NET WebClient is faster than Invoke-WebRequest and 
has no progress bar)
+function Download-File ($Url, $Dest) {
+    Write-Host "Downloading $(Split-Path $Dest -Leaf)..."
+    (New-Object System.Net.WebClient).DownloadFile($Url, $Dest)
+}
+
+# Setup LLVM #########################################################
+
+# LLVM/Clang 20.1.6 is installed by default on the windows-11-arm
+# GitHub Actions CI instance. However, that version is unable to
+# compile our ARM SVE code. Hence we download LLVM/Clang 21 which
+# has no problem compiling our code.
+
+Download-File $URL_LLVM "$BUILD_DIR\llvm.tar.xz"
+
+Write-Host "Extracting LLVM..."
+tar.exe -xf "llvm.tar.xz"
+Remove-Item "llvm.tar.xz" -Force
+$env:Path = "$(Join-Path $LLVM_DIR 'bin');$env:Path"
+
+# Compilation ########################################################
+
+$Version = [regex]::Match((Get-Content "../include/primesieve.hpp"), 
'PRIMESIEVE_VERSION "(.*)"').Groups[1].Value
+Write-Host "Compiling Primesieve $Version with Clang $LLVM_VER..." 
-ForegroundColor Cyan
+
+# Gather source files
+$Src = @("../src/*.cpp", "../src/arch/arm/*.cpp", "../src/app/*.cpp") | 
ForEach-Object { Get-Item $_ }
+
+# Compiler options
+$ClangArgs = @(
+    "-I../include", "-I../src", "-O3",
+    "-DNDEBUG", "-DENABLE_MULTIARCH_ARM_SVE",
+    "-o", "primesieve.exe"
+)
+& clang++ $ClangArgs $Src
+
+if ($LASTEXITCODE -ne 0) { throw "Compilation failed." }
+& llvm-strip primesieve.exe
+
+# Packaging ##########################################################
+
+Write-Host "Packaging release..."
+Download-File $URL_PREV "$BUILD_DIR\prev.zip"
+$PkgName = "primesieve-$Version-win-arm64"
+Expand-Archive "prev.zip" -DestinationPath "$PkgName-tmp" -Force
+
+# Verify Size and Move Binary
+Write-Host "Old binary size: $((Get-Item 
"$PkgName-tmp/primesieve.exe").Length)"
+Move-Item "primesieve.exe" "$PkgName-tmp" -Force
+Write-Host "New binary size: $((Get-Item 
"$PkgName-tmp/primesieve.exe").Length)"
+
+# Update version info (Regex replace)
+$Date = Get-Date -Format "MMMM dd, yyyy"
+$Year = Get-Date -Format "yyyy"
+(Get-Content "$PkgName-tmp\README.txt") -replace "^primesieve.*", "primesieve 
$Version" -replace "^\w+ \d+, \d+", $Date | Set-Content 
"$PkgName-tmp\README.txt"
+(Get-Content "$PkgName-tmp\COPYING")    -replace "Copyright \(c\) 2010 - \d+", 
"Copyright (c) 2010 - $Year"    | Set-Content "$PkgName-tmp\COPYING"
+
+# Testing ############################################################
+
+Write-Host "Running Tests..."
+Set-Location "$PkgName-tmp"
+Write-Host 
"================================================================================"
+
+foreach ($arg in @("-v", "--cpu-info", "--test", "1e11")) { 
+    & ./primesieve $arg
+    if ($LASTEXITCODE -ne 0) { throw "Test failed: $arg" }
+    Write-Host 
"================================================================================"
+}
+
+# Compress zip archive ###############################################
+
+Compress-Archive -Path "README.txt", "primesieve.exe", "COPYING" 
-DestinationPath "..\$PkgName.zip" -Force
+Set-Location ..
+Rename-Item "$PkgName-tmp" $PkgName
+Write-Host "Release binary built successfully!" -ForegroundColor Green
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/primesieve-12.11/scripts/build_clang_multiarch_win_x64.bat 
new/primesieve-12.12/scripts/build_clang_multiarch_win_x64.bat
--- old/primesieve-12.11/scripts/build_clang_multiarch_win_x64.bat      
2025-12-14 09:14:12.000000000 +0100
+++ new/primesieve-12.12/scripts/build_clang_multiarch_win_x64.bat      
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-clang++ -I../include -I../src -O3 -mpopcnt -DNDEBUG 
-DENABLE_MULTIARCH_AVX512_BW -DENABLE_MULTIARCH_AVX512_VBMI2 ../src/*.cpp 
../src/arch/x86/*.cpp ../src/app/*.cpp -o primesieve.exe "C:\Program 
Files\LLVM\lib\clang\18\lib\windows\clang_rt.builtins-x86_64.lib"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/scripts/build_clang_x64.ps1 
new/primesieve-12.12/scripts/build_clang_x64.ps1
--- old/primesieve-12.11/scripts/build_clang_x64.ps1    1970-01-01 
01:00:00.000000000 +0100
+++ new/primesieve-12.12/scripts/build_clang_x64.ps1    2026-01-09 
23:18:31.000000000 +0100
@@ -0,0 +1,75 @@
+# Usage: ./scripts/build_clang_x64.ps1
+$ErrorActionPreference = "Stop"
+
+# Configuration ######################################################
+
+$BUILD_DIR = Join-Path (Get-Location) "build-release"
+$URL_PREV  = 
"https://github.com/kimwalisch/primesieve/releases/download/v12.11/primesieve-12.11-win-x64.zip";
+
+# Clean and Init #####################################################
+
+Remove-Item -Recurse -Force $BUILD_DIR -ErrorAction SilentlyContinue
+New-Item -ItemType Directory -Force -Path $BUILD_DIR | Out-Null
+Set-Location $BUILD_DIR
+
+# Helper: Silent Download (.NET WebClient is faster than Invoke-WebRequest and 
has no progress bar)
+function Download-File ($Url, $Dest) {
+    Write-Host "Downloading $(Split-Path $Dest -Leaf)..."
+    (New-Object System.Net.WebClient).DownloadFile($Url, $Dest)
+}
+
+# Compilation ########################################################
+
+$Version = [regex]::Match((Get-Content "../include/primesieve.hpp"), 
'PRIMESIEVE_VERSION "(.*)"').Groups[1].Value
+Write-Host "Compiling primesieve-$Version with Clang" -ForegroundColor Cyan
+
+# Gather source files
+$Src = @("../src/*.cpp", "../src/arch/x86/*.cpp", "../src/app/*.cpp") | 
ForEach-Object { Get-Item $_ }
+
+# Compiler options
+$ClangArgs = @(
+    "-I../include", "-I../src", "-O3", "-mpopcnt", "-DNDEBUG",
+    "-DENABLE_MULTIARCH_AVX512_BW", "-DENABLE_MULTIARCH_AVX512_VBMI2",
+    "-o", "primesieve.exe"
+)
+& clang++ $ClangArgs $Src
+
+if ($LASTEXITCODE -ne 0) { throw "Compilation failed." }
+& llvm-strip primesieve.exe
+
+# Packaging ##########################################################
+
+Write-Host "Packaging release..."
+Download-File $URL_PREV "$BUILD_DIR\prev.zip"
+$PkgName = "primesieve-$Version-win-x64"
+Expand-Archive "prev.zip" -DestinationPath "$PkgName-tmp" -Force
+
+# Verify Size and Move Binary
+Write-Host "Old binary size: $((Get-Item 
"$PkgName-tmp/primesieve.exe").Length)"
+Move-Item "primesieve.exe" "$PkgName-tmp" -Force
+Write-Host "New binary size: $((Get-Item 
"$PkgName-tmp/primesieve.exe").Length)"
+
+# Update version info (Regex replace)
+$Date = Get-Date -Format "MMMM dd, yyyy"
+$Year = Get-Date -Format "yyyy"
+(Get-Content "$PkgName-tmp\README.txt") -replace "^primesieve.*", "primesieve 
$Version" -replace "^\w+ \d+, \d+", $Date | Set-Content 
"$PkgName-tmp\README.txt"
+(Get-Content "$PkgName-tmp\COPYING")    -replace "Copyright \(c\) 2010 - \d+", 
"Copyright (c) 2010 - $Year"    | Set-Content "$PkgName-tmp\COPYING"
+
+# Testing ############################################################
+
+Write-Host "Running Tests..."
+Set-Location "$PkgName-tmp"
+Write-Host 
"================================================================================"
+
+foreach ($arg in @("-v", "--cpu-info", "--test", "1e11")) { 
+    & ./primesieve $arg
+    if ($LASTEXITCODE -ne 0) { throw "Test failed: $arg" }
+    Write-Host 
"================================================================================"
+}
+
+# Compress zip archive ###############################################
+
+Compress-Archive -Path "README.txt", "primesieve.exe", "COPYING" 
-DestinationPath "..\$PkgName.zip" -Force
+Set-Location ..
+Rename-Item "$PkgName-tmp" $PkgName
+Write-Host "Release binary built successfully!" -ForegroundColor Green
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/scripts/build_mingw64_arm64.sh 
new/primesieve-12.12/scripts/build_mingw64_arm64.sh
--- old/primesieve-12.11/scripts/build_mingw64_arm64.sh 2025-12-14 
09:14:12.000000000 +0100
+++ new/primesieve-12.12/scripts/build_mingw64_arm64.sh 2026-01-09 
23:18:31.000000000 +0100
@@ -10,7 +10,7 @@
 # 3) Install MSYS2 x64
 # 4) Open C:/msys64/clangarm64.exe
 # 5) pacman -Syu (exit then run it again)
-# 6) pacman -S mingw-w64-clang-aarch64-clang mingw-w64-clang-aarch64-openmp 
make git zip unzip
+# 6) pacman -S mingw-w64-clang-aarch64-clang make git zip unzip
 # 7) git clone https://github.com/kimwalisch/primesieve.git
 # 8) scripts/build_mingw64_arm64.sh
 
@@ -36,15 +36,8 @@
     exit 1
 }
 
-####################################################################
-
-# The repo must no have any uncommited changes as we
-# switch to another branch during the script.
-git diff --exit-code > /dev/null || handle_error "repo must not have any 
uncommitted changes"
-
 # Build primesieve binary ##########################################
 
-git pull
 mkdir build-release
 cd build-release
 
@@ -52,19 +45,19 @@
 strip primesieve.exe
 
 # Create a release zip archive
-wget 
https://github.com/kimwalisch/primesieve/releases/download/v12.0/primesieve-12.0-win-arm64.zip
-unzip primesieve-12.0-win-arm64.zip -d primesieve-$VERSION-win-arm64
-rm primesieve-12.0-win-arm64.zip
+wget 
https://github.com/kimwalisch/primesieve/releases/download/v12.11/primesieve-12.11-win-arm64.zip
+unzip primesieve-12.11-win-arm64.zip -d primesieve-$VERSION-win-arm64-tmp
+rm primesieve-12.11-win-arm64.zip
 
 echo ""
 echo ""
-echo "Old file size: $(ls -l --block-size=K 
primesieve-$VERSION-win-arm64/primesieve.exe)"
+echo "Old file size: $(ls -l --block-size=K 
primesieve-$VERSION-win-arm64-tmp/primesieve.exe)"
 echo "New file size: $(ls -l --block-size=K primesieve.exe)"
 echo ""
 echo ""
 
-mv -f primesieve.exe primesieve-$VERSION-win-arm64
-cd primesieve-$VERSION-win-arm64
+mv -f primesieve.exe primesieve-$VERSION-win-arm64-tmp
+cd primesieve-$VERSION-win-arm64-tmp
 sed -i "1 s/.*/primesieve $VERSION/" README.txt
 sed -i "2 s/.*/$FULL_DATE/" README.txt
 sed -i "3 s/.*/Copyright \(c\) 2010 - $YEAR, Kim Walisch\./" COPYING
@@ -74,9 +67,6 @@
 [ "$(sed -n '2p' < README.txt)" = "$FULL_DATE" ] || handle_error "failed 
updating README.txt"
 [ "$(sed -n '3p' < COPYING)" = "Copyright (c) 2010 - $YEAR, Kim Walisch." ] || 
handle_error "failed updating COPYING"
 
-zip primesieve-$VERSION-win-arm64.zip primesieve.exe README.txt COPYING
-cp primesieve-$VERSION-win-arm64.zip ..
-
 ./primesieve -v
 echo ""
 echo ""
@@ -93,6 +83,13 @@
 echo ""
 echo ""
 
+# Build release zip archive ########################################
+
+zip primesieve-$VERSION-win-arm64.zip primesieve.exe README.txt COPYING
+mv primesieve-$VERSION-win-arm64.zip ..
+cd ..
+mv primesieve-$VERSION-win-arm64-tmp primesieve-$VERSION-win-arm64
+
 ####################################################################
 
 echo "Release binary built successfully!"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/scripts/build_mingw64_x64.sh 
new/primesieve-12.12/scripts/build_mingw64_x64.sh
--- old/primesieve-12.11/scripts/build_mingw64_x64.sh   2025-12-14 
09:14:12.000000000 +0100
+++ new/primesieve-12.12/scripts/build_mingw64_x64.sh   2026-01-09 
23:18:31.000000000 +0100
@@ -33,15 +33,8 @@
     exit 1
 }
 
-####################################################################
-
-# The repo must no have any uncommited changes as we
-# switch to another branch during the script.
-git diff --exit-code > /dev/null || handle_error "repo must not have any 
uncommitted changes"
-
 # Build primesieve binary ##########################################
 
-git pull
 mkdir build-release
 cd build-release
 
@@ -49,19 +42,19 @@
 strip primesieve.exe
 
 # Create a release zip archive
-wget 
https://github.com/kimwalisch/primesieve/releases/download/v12.0/primesieve-12.0-win-x64.zip
-unzip primesieve-12.0-win-x64.zip -d primesieve-$VERSION-win-x64
-rm primesieve-12.0-win-x64.zip
+wget 
https://github.com/kimwalisch/primesieve/releases/download/v12.11/primesieve-12.11-win-x64.zip
+unzip primesieve-12.11-win-x64.zip -d primesieve-$VERSION-win-x64-tmp
+rm primesieve-12.11-win-x64.zip
 
 echo ""
 echo ""
-echo "Old file size: $(ls -l --block-size=K 
primesieve-$VERSION-win-x64/primesieve.exe)"
+echo "Old file size: $(ls -l --block-size=K 
primesieve-$VERSION-win-x64-tmp/primesieve.exe)"
 echo "New file size: $(ls -l --block-size=K primesieve.exe)"
 echo ""
 echo ""
 
-mv -f primesieve.exe primesieve-$VERSION-win-x64
-cd primesieve-$VERSION-win-x64
+mv -f primesieve.exe primesieve-$VERSION-win-x64-tmp
+cd primesieve-$VERSION-win-x64-tmp
 sed -i "1 s/.*/primesieve $VERSION/" README.txt
 sed -i "2 s/.*/$FULL_DATE/" README.txt
 sed -i "3 s/.*/Copyright \(c\) 2010 - $YEAR, Kim Walisch\./" COPYING
@@ -71,9 +64,6 @@
 [ "$(sed -n '2p' < README.txt)" = "$FULL_DATE" ] || handle_error "failed 
updating README.txt"
 [ "$(sed -n '3p' < COPYING)" = "Copyright (c) 2010 - $YEAR, Kim Walisch." ] || 
handle_error "failed updating COPYING"
 
-zip primesieve-$VERSION-win-x64.zip primesieve.exe README.txt COPYING
-cp primesieve-$VERSION-win-x64.zip ..
-
 ./primesieve -v
 echo ""
 echo ""
@@ -90,6 +80,13 @@
 echo ""
 echo ""
 
+# Build release zip archive ########################################
+
+zip primesieve-$VERSION-win-x64.zip primesieve.exe README.txt COPYING
+mv primesieve-$VERSION-win-x64.zip ..
+cd ..
+mv primesieve-$VERSION-win-x64-tmp primesieve-$VERSION-win-x64
+
 ####################################################################
 
 echo "Release binary built successfully!"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/scripts/update_version.sh 
new/primesieve-12.12/scripts/update_version.sh
--- old/primesieve-12.11/scripts/update_version.sh      2025-12-14 
09:14:12.000000000 +0100
+++ new/primesieve-12.12/scripts/update_version.sh      2026-01-09 
23:18:31.000000000 +0100
@@ -32,37 +32,32 @@
 echo "Old year: $old_year"
 echo ""
 
-# Update version
-for i in $(echo README.md \
-                CMakeLists.txt \
-                include/primesieve.hpp \
+# 1. Update VERSION in CMakeLists.txt
+echo "Update version in CMakeLists.txt"
+sed "s/VERSION $old_version/VERSION $new_version/" CMakeLists.txt > 
CMakeLists.txt.tmp
+mv -f CMakeLists.txt.tmp CMakeLists.txt
+
+# 2. Update version string in headers
+for i in $(echo include/primesieve.hpp \
                 include/primesieve.h)
 do
-    echo "Update version in $i"
+    echo "Update version string in $i"
     sed "s/$old_major\.$old_minor/$new_version/g" $i > $i.tmp
     mv -f $i.tmp $i
 done
 
-# Update shared libprimesieve version
-for i in $(echo CMakeLists.txt)
-do
-    echo "Update shared libprimesieve version in $i"
-    new_so_version="$new_major.$new_minor.0"
-    sed "s/$old_major\.$old_minor\.0/$new_so_version/g" $i > $i.tmp
-    mv -f $i.tmp $i
-done
-
-# Update version
+# 3. Update version macros in headers (MAJOR/MINOR)
 for i in $(echo include/primesieve.hpp \
                 include/primesieve.h)
 do
+    echo "Update version macros in $i"
     sed "s/PRIMESIEVE_VERSION_MAJOR $old_major/PRIMESIEVE_VERSION_MAJOR 
$new_major/g" $i > $i.tmp
     mv -f $i.tmp $i
     sed "s/PRIMESIEVE_VERSION_MINOR $old_minor/PRIMESIEVE_VERSION_MINOR 
$new_minor/g" $i > $i.tmp
     mv -f $i.tmp $i
 done
 
-# Update year
+# 4. Update copyright year
 for i in $(echo COPYING \
                 src/app/help.cpp)
 do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/primesieve-12.11/src/app/help.cpp 
new/primesieve-12.12/src/app/help.cpp
--- old/primesieve-12.11/src/app/help.cpp       2025-12-14 09:14:12.000000000 
+0100
+++ new/primesieve-12.12/src/app/help.cpp       2026-01-09 23:18:31.000000000 
+0100
@@ -3,7 +3,7 @@
 /// @brief  help() and version() functions of the primesieve
 ///         console application.
 ///
-/// Copyright (C) 2025 Kim Walisch, <[email protected]>
+/// Copyright (C) 2026 Kim Walisch, <[email protected]>
 ///
 /// This file is distributed under the BSD License. See the COPYING
 /// file in the top level directory.
@@ -64,6 +64,6 @@
 {
   std::cout << "primesieve " << primesieve::primesieve_version();
   std::cout << ", <https://github.com/kimwalisch/primesieve>" << std::endl;
-  std::cout << "Copyright (C) 2010 - 2025 Kim Walisch" << std::endl;
+  std::cout << "Copyright (C) 2010 - 2026 Kim Walisch" << std::endl;
   std::cout << "BSD 2-Clause License 
<https://opensource.org/licenses/BSD-2-Clause>" << std::endl;
 }

Reply via email to