Skip to content

Conversation

SwayamInSync
Copy link
Member

closes #119
I took inspiration from NumPy's workflow for this https://github.com/numpy/numpy/blob/main/.github/workflows/linux_qemu.yml
Since little-endian are already available in our current CI so here only big-endian testing.

Things seem to work and one test case is failing. Making the PR because CI is seems to work as expected

@SwayamInSync
Copy link
Member Author

SwayamInSync commented Sep 17, 2025

I am guessing there might be more failures, eg: str and repr methods of dtype that uses dragon4, we can extensively test them later or maybe in this PR, whatever sounds good

@SwayamInSync SwayamInSync marked this pull request as draft September 18, 2025 17:59
@SwayamInSync
Copy link
Member Author

Self note:
Interesting so endianness detection macors are working, somehow bit representation is not leading to the correct number or might be some other platform dependent intereference, will need to check further for this

But the main purpose of this PR is CI and that is working

@SwayamInSync SwayamInSync marked this pull request as ready for review September 18, 2025 20:04
@SwayamInSync
Copy link
Member Author

@ngoldbaum this is ready now, let me know your review

@SwayamInSync SwayamInSync changed the title Testing for Big-Endian CI CI: Adding and testing Big-Endian support for quaddtype Sep 19, 2025
@juntyr
Copy link
Contributor

juntyr commented Sep 19, 2025

Thanks @SwayamInSync for your work on this!

#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
npy_uint64 hi;
npy_uint64 lo;
#else
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! glad you chased this down. While BigEndian machines are rare these days it's nice to have fully correct code and it's important for it to be reflected in the source code that this representation is endian-dependent.

path: ~/docker_${{ matrix.BUILD_PROP[1] }}
key: container-quaddtype-${{ runner.os }}-${{ matrix.BUILD_PROP[1] }}-${{ matrix.BUILD_PROP[2] }}-${{ hashFiles('quaddtype/pyproject.toml') }}

- name: Create cross-compilation container
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step takes 10 minutes. It might be possible to add some caching to make that quicker. Just a note for a future improvement.

@ngoldbaum
Copy link
Member

Thanks @SwayamInSync!

@ngoldbaum ngoldbaum merged commit c4c1def into numpy:main Sep 19, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Test little and big endian architectures in CI
3 participants