diff --git a/.github/actions/setup-randblas-deps-windows/setup.ps1 b/.github/actions/setup-randblas-deps-windows/setup.ps1 index d8027d1e..faf99852 100644 --- a/.github/actions/setup-randblas-deps-windows/setup.ps1 +++ b/.github/actions/setup-randblas-deps-windows/setup.ps1 @@ -89,9 +89,13 @@ function Clone-Pinned { # portability fixes (blaspp#132, lapackpp#87). The latest release of each, # v2025.05.28, predates all of these. $BlasppUrl = "https://github.com/icl-utk-edu/blaspp.git" -$BlasppRef = "2d8d4e937ac46fffab33d4174a4fc7659726dbda" +# TEMPORARY PIN -- head of icl-utk-edu/blaspp#137; replace with the merge +# commit the moment it lands. +$BlasppRef = "c3ef942a0b9c86dc6c66952b58b7151f938747ca" $LapackppUrl = "https://github.com/icl-utk-edu/lapackpp.git" -$LapackppRef = "b9439cf3c26d1655d88e7f510ae8b4f82fbeb687" +# TEMPORARY PIN -- head of icl-utk-edu/lapackpp#90; replace with the merge +# commit the moment it lands. +$LapackppRef = "f891adcb8e06afa7744ac046d96d1282bbe5388a" $Random123Url = "https://github.com/DEShawResearch/Random123.git" $Random123Ref = "v1.14.0" $GTestUrl = "https://github.com/google/googletest.git" @@ -217,6 +221,20 @@ foreach ($path in @($mklInclude, $mklBin) + $mklLibraries) { $env:MKLROOT = $mklRoot $env:PATH = "$mklBin;$env:PATH" +# Deliberately hand BLAS++ the import libraries from a path WITH a space, +# emulating Intel's default install location (C:\Program Files (x86)\...). +# This is the standing regression proof for icl-utk-edu/blaspp#137 (issue +# #188): the pinned BLAS++ must not split BLAS_LIBRARIES entries on spaces. +# Import libraries only name their DLL, which still loads from $mklBin at +# run time, so relocating them is safe. +$spacedLibDir = Join-Path $DependencyRoot "path with spaces" +New-Item -ItemType Directory -Force -Path $spacedLibDir | Out-Null +$mklLibraries = @($mklLibraries | ForEach-Object { + $target = Join-Path $spacedLibDir (Split-Path $_ -Leaf) + Copy-Item -LiteralPath $_ -Destination $target -Force + $target +}) + $gtestSource = Join-Path $DependencyRoot "googletest" $gtestVariant = if ($SanitizeAddress) { "googletest-asan" } else { "googletest" } $gtestBuild = Join-Path $DependencyRoot "$gtestVariant-build" diff --git a/installers/install.sh b/installers/install.sh index dc47c426..49f0707b 100755 --- a/installers/install.sh +++ b/installers/install.sh @@ -442,12 +442,17 @@ BLASPP_URL="https://github.com/icl-utk-edu/blaspp.git" # 2026-08-27); also contains the MSVC portability fix (PR #132). Not in a # release yet -- the latest tag, v2025.05.28, predates both. Move to a tag # once one includes them. -BLASPP_REF="2d8d4e937ac46fffab33d4174a4fc7659726dbda" +# TEMPORARY PIN -- the head of icl-utk-edu/blaspp#137 (space-split fix), +# fetchable from upstream via its pull ref. Replace with the merge commit +# the moment #137 lands; the PR carrying this stays a draft until then. +BLASPP_REF="c3ef942a0b9c86dc6c66952b58b7151f938747ca" LAPACKPP_URL="https://github.com/icl-utk-edu/lapackpp.git" # The commit that merged the LAPACK++ half of new-Accelerate support # (lapackpp PR #88, 2026-08-27). -LAPACKPP_REF="b9439cf3c26d1655d88e7f510ae8b4f82fbeb687" +# TEMPORARY PIN -- the head of icl-utk-edu/lapackpp#90 (Accelerate-ILP64 +# aliasing fix). Replace with the merge commit when #90 lands. +LAPACKPP_REF="f891adcb8e06afa7744ac046d96d1282bbe5388a" RANDOM123_URL="https://github.com/DEShawResearch/Random123.git" RANDOM123_REF="v1.14.0" @@ -988,8 +993,11 @@ build_examples() { # command silently builds something different from what was just installed -- # and for --blas=custom it would not run at all. # -# Written as if-blocks rather than "[[ test ]] && append": under set -e a -# false test at the end of a list exits the script. +# if-blocks rather than "[[ test ]] && append" for readability. Note the +# set -e hazard with that construct is narrower than it looks: a top-level +# "[[ test ]] && cmd" with a false test does NOT exit (the failing command is +# exempt as part of a && list); it only bites as the last statement of a +# function, where the test's failure becomes the function's return status. EXAMPLES_COMMAND="bash $SCRIPT_DIR/install.sh --examples --blas=$BLAS_BACKEND --project-dir=$PROJECT_DIR" if [[ -n "$PREFIX_OVERRIDE" ]]; then EXAMPLES_COMMAND+=" --prefix=$PREFIX_OVERRIDE"