From 23d0f8bea97f6f593eeec90b8c30addd97c5f629 Mon Sep 17 00:00:00 2001 From: swayaminsync Date: Sun, 18 Jan 2026 14:21:33 +0530 Subject: [PATCH 1/4] switch to released sleef-3.9 --- meson.build | 12 +++++++++--- subprojects/packagefiles/sleef/meson.build | 2 +- subprojects/sleef.wrap | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index d530b96..d24a749 100644 --- a/meson.build +++ b/meson.build @@ -16,12 +16,14 @@ endif qblas_dep = dependency('qblas', fallback: ['qblas', 'qblas_dep']) # Try to find SLEEF system-wide first, fall back to subproject if not found -sleef_dep = dependency('sleef', fallback: ['sleef', 'sleef_dep'], required: false) +# Required SLEEF version (must match sleef.wrap revision) +required_sleef_version = '3.9.0' +sleef_dep = dependency('sleef', version: '>=' + required_sleef_version, fallback: ['sleef', 'sleef_dep'], required: false) use_system_sleef = false fallback_reason = '' -if sleef_dep.found() and sleef_dep.type_name() != 'internal' +if sleef_dep.found() and sleef_dep.type_name() != 'internal' and sleef_dep.version().startswith(required_sleef_version) # SLEEF found system-wide - verify quad-precision support cpp = meson.get_compiler('cpp') sleefquad_lib = cpp.find_library('sleefquad', required: false) @@ -60,7 +62,11 @@ if sleef_dep.found() and sleef_dep.type_name() != 'internal' fallback_reason = 'System-wide SLEEF installation does not have a sleefquad library.' endif else - fallback_reason = 'Cannot find system-wide SLEEF installation.' + if sleef_dep.found() and sleef_dep.type_name() != 'internal' + fallback_reason = 'System SLEEF version @0@ does not match required version @1@'.format(sleef_dep.version(), required_sleef_version) + else + fallback_reason = 'Cannot find system-wide SLEEF installation.' + endif endif if use_system_sleef diff --git a/subprojects/packagefiles/sleef/meson.build b/subprojects/packagefiles/sleef/meson.build index 4e3713d..c911924 100644 --- a/subprojects/packagefiles/sleef/meson.build +++ b/subprojects/packagefiles/sleef/meson.build @@ -77,5 +77,5 @@ sleefquad_dep = declare_dependency( tlfloat_dep = declare_dependency( dependencies: [sleef_build_dep], compile_args: compile_args_list, - link_args: ['-L' + meson.current_build_dir() / sleef_install_dir / 'lib', '-L' + meson.current_build_dir() / sleef_install_dir / 'lib64', '-ltlfloat'] + link_args: ['-L' + meson.current_build_dir() / sleef_install_dir / 'lib', '-L' + meson.current_build_dir() / sleef_install_dir / 'lib64', '-L' + meson.current_build_dir() / sleef_build_dir / 'submodules' / 'tlfloat' / 'lib', '-L' + meson.current_build_dir() / sleef_build_dir / 'submodules' / 'tlfloat' / 'lib64', '-ltlfloat'] ) \ No newline at end of file diff --git a/subprojects/sleef.wrap b/subprojects/sleef.wrap index bac3126..920f61e 100644 --- a/subprojects/sleef.wrap +++ b/subprojects/sleef.wrap @@ -1,7 +1,7 @@ [wrap-git] directory=sleef url=https://github.com/shibatch/sleef.git -revision=43a0252ba9331adc7fb10755021f802863678c38 +revision=3.9.0 patch_directory=sleef [provide] From 478cb073b1718a7a143e4e3b6b1495d8218cdba8 Mon Sep 17 00:00:00 2001 From: swayaminsync Date: Sun, 18 Jan 2026 19:56:25 +0530 Subject: [PATCH 2/4] update runtime dependency to numpy 2.4 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5da7884..462ab02 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ classifiers = [ ] requires-python = ">=3.11.0" dependencies = [ - "numpy>=2.0" + "numpy>=2.4" ] [project.optional-dependencies] From 8b6877df2390bf4764c382a1f702e885cf434e0e Mon Sep 17 00:00:00 2001 From: swayaminsync Date: Sun, 18 Jan 2026 21:06:51 +0530 Subject: [PATCH 3/4] better fallback messages --- meson.build | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index d24a749..05cd31a 100644 --- a/meson.build +++ b/meson.build @@ -59,7 +59,13 @@ if sleef_dep.found() and sleef_dep.type_name() != 'internal' and sleef_dep.versi fallback_reason = 'System-wide SLEEF installation found but a test for quad precision support failed.' endif else - fallback_reason = 'System-wide SLEEF installation does not have a sleefquad library.' + if not sleefquad_lib.found() and not tlfloat_lib.found() + fallback_reason = 'System-wide SLEEF installation does not have sleefquad and tlfloat libraries.' + elif not sleefquad_lib.found() + fallback_reason = 'System-wide SLEEF installation does not have the sleefquad library.' + else + fallback_reason = 'System-wide SLEEF installation does not have the tlfloat library.' + endif endif else if sleef_dep.found() and sleef_dep.type_name() != 'internal' From b6956edcf70955bc226f0c76800658d14c7727a3 Mon Sep 17 00:00:00 2001 From: swayaminsync Date: Mon, 19 Jan 2026 00:44:20 +0530 Subject: [PATCH 4/4] disable tlfloat, as its only for sleef testing --- meson.build | 19 ++++--------------- subprojects/packagefiles/sleef/meson.build | 7 +------ 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/meson.build b/meson.build index 05cd31a..af0d62e 100644 --- a/meson.build +++ b/meson.build @@ -27,9 +27,8 @@ if sleef_dep.found() and sleef_dep.type_name() != 'internal' and sleef_dep.versi # SLEEF found system-wide - verify quad-precision support cpp = meson.get_compiler('cpp') sleefquad_lib = cpp.find_library('sleefquad', required: false) - tlfloat_lib = cpp.find_library('tlfloat', required: false) - if sleefquad_lib.found() and tlfloat_lib.found() + if sleefquad_lib.found() sleefquad_test_code = ''' #include @@ -43,7 +42,7 @@ if sleef_dep.found() and sleef_dep.type_name() != 'internal' and sleef_dep.versi # this should compile and link quad_works = cpp.links( sleefquad_test_code, - dependencies: [sleef_dep, sleefquad_lib, tlfloat_lib], + dependencies: [sleef_dep, sleefquad_lib], name: 'SLEEF quad-precision support' ) @@ -51,21 +50,12 @@ if sleef_dep.found() and sleef_dep.type_name() != 'internal' and sleef_dep.versi sleefquad_dep = declare_dependency( dependencies: [sleef_dep, sleefquad_lib] ) - tlfloat_dep = declare_dependency( - dependencies: [tlfloat_lib] - ) use_system_sleef = true else fallback_reason = 'System-wide SLEEF installation found but a test for quad precision support failed.' endif else - if not sleefquad_lib.found() and not tlfloat_lib.found() - fallback_reason = 'System-wide SLEEF installation does not have sleefquad and tlfloat libraries.' - elif not sleefquad_lib.found() - fallback_reason = 'System-wide SLEEF installation does not have the sleefquad library.' - else - fallback_reason = 'System-wide SLEEF installation does not have the tlfloat library.' - endif + fallback_reason = 'System-wide SLEEF installation does not have the sleefquad library.' endif else if sleef_dep.found() and sleef_dep.type_name() != 'internal' @@ -81,7 +71,6 @@ else sleef_subproj = subproject('sleef') sleef_dep = sleef_subproj.get_variable('sleef_dep') sleefquad_dep = sleef_subproj.get_variable('sleefquad_dep') - tlfloat_dep = sleef_subproj.get_variable('tlfloat_dep') warning(fallback_reason) message('Proceeding with vendored SLEEF subproject instead') endif @@ -105,7 +94,7 @@ message('Using NumPy version: @0@'.format(numpy_version)) npymath_path = incdir_numpy / '..' / 'lib' npymath_lib = c.find_library('npymath', dirs: npymath_path) -dependencies = [py_dep, qblas_dep, sleef_dep, sleefquad_dep, tlfloat_dep, npymath_lib] +dependencies = [py_dep, qblas_dep, sleef_dep, sleefquad_dep, npymath_lib] # Add OpenMP dependency (optional, for threading) openmp_dep = dependency('openmp', required: false, static: false) diff --git a/subprojects/packagefiles/sleef/meson.build b/subprojects/packagefiles/sleef/meson.build index c911924..524a550 100644 --- a/subprojects/packagefiles/sleef/meson.build +++ b/subprojects/packagefiles/sleef/meson.build @@ -32,6 +32,7 @@ sleef_configure = run_command([ '-DSLEEF_BUILD_SHARED_LIBS=OFF', '-DSLEEF_BUILD_TESTS=OFF', '-DSLEEF_BUILD_INLINE_HEADERS=OFF', + '-DSLEEF_ENABLE_TLFLOAT=OFF', # this is only used for testing in SLEEF, not runtime '-DCMAKE_POSITION_INDEPENDENT_CODE=ON', '-DCMAKE_INSTALL_PREFIX=' + meson.current_build_dir() / sleef_install_dir ] + sleef_simd_flags, check: false, capture: true) @@ -72,10 +73,4 @@ sleefquad_dep = declare_dependency( dependencies: [sleef_build_dep, sleef_dep], compile_args: compile_args_list, link_args: ['-L' + meson.current_build_dir() / sleef_install_dir / 'lib', '-L' + meson.current_build_dir() / sleef_install_dir / 'lib64', '-lsleefquad'] -) - -tlfloat_dep = declare_dependency( - dependencies: [sleef_build_dep], - compile_args: compile_args_list, - link_args: ['-L' + meson.current_build_dir() / sleef_install_dir / 'lib', '-L' + meson.current_build_dir() / sleef_install_dir / 'lib64', '-L' + meson.current_build_dir() / sleef_build_dir / 'submodules' / 'tlfloat' / 'lib', '-L' + meson.current_build_dir() / sleef_build_dir / 'submodules' / 'tlfloat' / 'lib64', '-ltlfloat'] ) \ No newline at end of file