diff --git a/.github/workflows/merge.yaml b/.github/workflows/merge.yaml index e2ee420..ba73fa1 100644 --- a/.github/workflows/merge.yaml +++ b/.github/workflows/merge.yaml @@ -35,31 +35,12 @@ jobs: platform_matrix: uses: NWChemEx/.github/.github/workflows/platform_matrix.yaml@master - # SCF has a known, tracked, macOS-only segfault (see - # scf-macos-pybind11-segfault.md) -- skip publishing a macOS wheel until - # it's fixed, rather than ship a broken one. Filters platform_matrix's - # release_matrix down to ubuntu-latest only; drop this job and go back to - # consuming platform_matrix.outputs.release_matrix directly once macOS is - # re-enabled. - filter_release_matrix: - needs: platform_matrix - runs-on: ubuntu-latest - outputs: - release_matrix: ${{ steps.filter.outputs.release_matrix }} - steps: - - id: filter - shell: bash - run: | - filtered=$(echo '${{ needs.platform_matrix.outputs.release_matrix }}' \ - | jq -c '[.[] | select(.os != "macos-14")]') - echo "release_matrix=$filtered" >> "$GITHUB_OUTPUT" - build_pypi_dist: - needs: [tag-commit, filter_release_matrix] + needs: [tag-commit, platform_matrix] strategy: fail-fast: false matrix: - include: ${{ fromJSON(needs.filter_release_matrix.outputs.release_matrix) }} + include: ${{ fromJSON(needs.platform_matrix.outputs.release_matrix) }} runs-on: ${{ matrix.os }} steps: - name: Build PyPI Distribution diff --git a/.licenserc.yaml b/.licenserc.yaml index da06fad..224f16e 100644 --- a/.licenserc.yaml +++ b/.licenserc.yaml @@ -24,6 +24,6 @@ header: - src/scf/common/ - src/scf/scf/ - LICENSE - - build + - build* comment: never diff --git a/cxx/src/scf/xc/grid_from_integratorxx.cpp b/cxx/src/scf/xc/grid_from_integratorxx.cpp index 64a2c6d..376b3dc 100644 --- a/cxx/src/scf/xc/grid_from_integratorxx.cpp +++ b/cxx/src/scf/xc/grid_from_integratorxx.cpp @@ -161,7 +161,19 @@ MODULE_CTOR(GridFromIntegratorXX) { } MODULE_RUN(GridFromIntegratorXX) { - const auto& [molecule] = pt::unwrap_inputs(inputs); + // Rebound to an ordinary reference because the dispatch lambda below + // captures it. Capturing a structured binding is C++20 (P1091); GCC + // accepts it, but AppleClang -- which is what builds the macOS release + // wheel, since cibuildwheel uses /usr/bin/clang++ -- still rejects it: + // + // error: reference to local binding 'molecule' declared in enclosing + // function 'scf::xc::GridFromIntegratorXX::run_' + // + // The dev matrix cannot catch this. It builds macOS with Homebrew + // clang-18 and gcc-14, both of which implement P1091; AppleClang is + // exercised only by the wheel build. + const auto& [molecule_input] = pt::unwrap_inputs(inputs); + const auto& molecule = molecule_input; const auto& float_type = inputs.at("Float Type").value();