8000 CI: show meson-log.txt in Cirrus wheel builds by rgommers · Pull Request #25440 · numpy/numpy · GitHub
[go: up one dir, main page]

Skip to content

CI: show meson-log.txt in Cirrus wheel builds #25440

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 21, 2023

Conversation

rgommers
Copy link
Member

To do this, we need to be able to locate the log file in a fixed location, hence the need to add build-dir=build to the flags passed to meson-python. And to make that work, it turns out pypa/build is the better build front-end to use. It's also going to be the future default for cibuildwheel, so this change makes sense anyway.

Extracted from gh-25012, this is a standalone change that is mergeable.

[wheel build]

To do this, we need to be able to locate the log file in a fixed
location, hence the need to add `build-dir=build` to the flags
passed to meson-python. And to make that work, it turns out
pypa/build is the better build front-end to use. It's also
going to be the future default for cibuildwheel, so this change
makes sense anyway.

[skip azp] [skip circle]
@rgommers rgommers added the 36 - Build Build related PR label Dec 20, 2023
@rgommers
Copy link
Member Author

eh oh, trouble with highway_qsort:

                 from ../numpy/_core/src/npysort/highway_qsort.dispatch.cpp:3:
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h: In instantiation of ‘hwy::N_NEON_WITHOUT_AES::VFromD<D> hwy::N_NEON_WITHOUT_AES::MinOfLanes(D, hwy::N_NEON_WITHOUT_AES::VFromD<D>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes > 1)>* <anonymous> = 0; hwy::N_NEON_WITHOUT_AES::VFromD<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>; hwy::N_NEON_WITHOUT_AES::TFromD<D> = double]’:
../numpy/_core/src/highway/hwy/contrib/sort/traits-inl.h:324:22:   required from ‘hwy::N_NEON_WITHOUT_AES::Vec<D> hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<T>::FirstOfLanes(D, hwy::N_NEON_WITHOUT_AES::Vec<D>, T*) const [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; T = double; hwy::N_NEON_WITHOUT_AES::Vec<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1685:28:   required from ‘void hwy::N_NEON_WITHOUT_AES::detail::PrintMinMax(D, Traits, const T*, size_t, T*) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1710:16:   required from ‘void hwy::N_NEON_WITHOUT_AES::detail::Recurse(D, Traits, T*, size_t, T*, uint64_t*, size_t) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int; uint64_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1900:20:   required from ‘void hwy::N_NEON_WITHOUT_AES::Sort(D, Traits, T*, size_t, T*) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1932:14:   required from ‘void hwy::N_NEON_WITHOUT_AES::Sort(D, Traits, T*, size_t) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1991:7:   required from ‘void hwy::N_NEON_WITHOUT_AES::VQSortStatic(T*, size_t, hwy::SortAscending) [with T = double; size_t = long unsigned int]’
../numpy/_core/src/npysort/highway_qsort.dispatch.cpp:29:69:   required from here
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7480:26: error: call of overloaded ‘ReduceMin(hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>&, hwy::N_NEON_WITHOUT_AES::VFromD<hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0> >&)’ is ambiguous
 7480 |   return Set(d, ReduceMin(d, v));
      |                 ~~~~~~~~~^~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7430:35: note: candidate: ‘hwy::float64_t hwy::N_NEON_WITHOUT_AES::ReduceMin(D, hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes == 2)>* <anonymous> = 0; hwy::float64_t = double]’
 7430 | HWY_NEON_DEF_REDUCTION_CORE_TYPES(ReduceMin, vminv)
      |                                   ^~~~~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7395:20: note: in definition of macro ‘HWY_NEON_DEF_REDUCTION’
 7395 |   HWY_API type##_t name(D /* tag */, Vec128<type##_t, size> v) {        \
      |                    ^~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7430:1: note: in expansion of macro ‘HWY_NEON_DEF_REDUCTION_CORE_TYPES’
 7430 | HWY_NEON_DEF_REDUCTION_CORE_TYPES(ReduceMin, vminv)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7445:19: note: candidate: ‘hwy::N_NEON_WITHOUT_AES::TFromD<D> hwy::N_NEON_WITHOUT_AES::ReduceMin(D, hwy::N_NEON_WITHOUT_AES::VFromD<D>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes == 2)>* <anonymous> = 0; hwy::N_NEON_WITHOUT_AES::TFromD<D> = double; hwy::N_NEON_WITHOUT_AES::VFromD<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>]’
 7445 | HWY_API TFromD<D> ReduceMin(D /* tag */, VFromD<D> v10) {
      |                   ^~~~~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h: In instantiation of ‘hwy::N_NEON_WITHOUT_AES::VFromD<D> hwy::N_NEON_WITHOUT_AES::MaxOfLanes(D, hwy::N_NEON_WITHOUT_AES::VFromD<D>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes > 1)>* <anonymous> = 0; hwy::N_NEON_WITHOUT_AES::VFromD<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>; hwy::N_NEON_WITHOUT_AES::TFromD<D> = double]’:
../numpy/_core/src/highway/hwy/contrib/sort/traits-inl.h:330:22:   required from ‘hwy::N_NEON_WITHOUT_AES::Vec<D> hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<T>::LastOfLanes(D, hwy::N_NEON_WITHOUT_AES::Vec<D>, T*) const [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; T = double; hwy::N_NEON_WITHOUT_AES::Vec<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1686:26:   required from ‘void hwy::N_NEON_WITHOUT_AES::detail::PrintMinMax(D, Traits, const T*, size_t, T*) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1710:16:   required from ‘void hwy::N_NEON_WITHOUT_AES::detail::Recurse(D, Traits, T*, size_t, T*, uint64_t*, size_t) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int; uint64_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1900:20:   required from ‘void hwy::N_NEON_WITHOUT_AES::Sort(D, Traits, T*, size_t, T*) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1932:14:   required from ‘void hwy::N_NEON_WITHOUT_AES::Sort(D, Traits, T*, size_t) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1991:7:   required from ‘void hwy::N_NEON_WITHOUT_AES::VQSortStatic(T*, size_t, hwy::SortAscending) [with T = double; size_t = long unsigned int]’
../numpy/_core/src/npysort/highway_qsort.dispatch.cpp:29:69:   required from here
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7484:26: error: call of overloaded ‘ReduceMax(hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>&, hwy::N_NEON_WITHOUT_AES::VFromD<hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0> >&)’ is ambiguous
 7484 |   return Set(d, ReduceMax(d, v));
      |                 ~~~~~~~~~^~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7431:35: note: candidate: ‘hwy::float64_t hwy::N_NEON_WITHOUT_AES::ReduceMax(D, hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes == 2)>* <anonymous> = 0; hwy::float64_t = double]’
 7431 | HWY_NEON_DEF_REDUCTION_CORE_TYPES(ReduceMax, vmaxv)
      |                                   ^~~~~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7395:20: note: in definition of macro ‘HWY_NEON_DEF_REDUCTION’
 7395 |   HWY_API type##_t name(D /* tag */, Vec128<type##_t, size> v) {        \
      |                    ^~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7431:1: note: in expansion of macro ‘HWY_NEON_DEF_REDUCTION_CORE_TYPES’
 7431 | HWY_NEON_DEF_REDUCTION_CORE_TYPES(ReduceMax, vmaxv)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7450:19: note: candidate: ‘hwy::N_NEON_WITHOUT_AES::TFromD<D> hwy::N_NEON_WITHOUT_AES::ReduceMax(D, hwy::N_NEON_WITHOUT_AES::VFromD<D>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes == 2)>* <anonymous> = 0; hwy::N_NEON_WITHOUT_AES::TFromD<D> = double; hwy::N_NEON_WITHOUT_AES::VFromD<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>]’
 7450 | HWY_API TFromD<D> ReduceMax(D /* tag */, VFromD<D> v10) {
      |                   ^~~~~~~~~
ninja: build stopped: subcommand failed.

ERROR Backend subprocess exited when trying to invoke build_wheel

Trying to figure out if this happened before, it should be unrelated to this PR.

@rgommers
Copy link
Member Author

A search for that error comes up empty, however we haven't run these wheel builds in 1 months and 8 days I think (that was the last nightly upload for aarch64 to https://anaconda.org/scientific-python-nightly-wheels/numpy/files).

That last successful build was before the initial merge of highway_qsort (gh-24018), so this probably never worked in the wheel builds. @Mousius @seiko2plus does that error look familiar perhaps?

@andyfaff
Copy link
Member

I guess one issue is that we don't have visibility for when a nightly wheel build fails.

@rgommers
Copy link
Member Author
rgommers commented Dec 20, 2023

Indeed, that is pretty unhelpful. We could add something like https://cirrus-ci.org/guide/notifications/#email-action, only for failures on main?

@andyfaff
Copy link
Member
andyfaff commented Dec 20, 2023

We could add something like https://cirrus-ci.org/guide/notifications/#email-action, only for failures on main?

Yes and no. I'd rather have a visible badge on the scipy/scipy GH landing page rather than getting emailed everyday.

@rgommers
Copy link
Member Author

I'd rather have a visible badge on the scipy/scipy GH landing page rather than getting emailed everyday.

That would work too perhaps - but I personally am unlikely to notice. After the 2.0 branch split we'll probably go back to weekly cron job triggers instead of daily, so emails wouldn't be too bad.

@rgommers
Copy link
Member Author

The highway_qsort issue is present on wheel builds from main as well, so unrelated to this PR. I opened gh-25445 for it.

Moving ahead with this change, working towards getting the new Accelerate wheel builds in.

@rgommers rgommers merged commit 84da596 into numpy:main Dec 21, 2023
@rgommers rgommers deleted the show-meson-log branch December 21, 2023 15:45
@rgommers rgommers added this to the 2.0.0 release milestone Dec 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
36 - Build Build related PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0