Support 32-bit architectures (arm32v7 / WASM32)
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 1.3k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 169
Description
This discussion aims to outline what would be required to add comprehensive support for the arm32v7 hardware architecture. Because it was in the top 3 best-selling computers of all time, and edge hardware is likely to remain in service for quite some time, and because edge is a particularly strong use case for Arrow.
And secondarily, consider how that might also benefit independent efforts to support WASM32.
Here are some of my own ideas:
1. Perform tests and clippy static checks for both amd64 and armhf. amd64 must pass, armhf can fail until official support is completed.
2. Tests that are specifically 64-bit in nature should not be attempted on 32-bit platforms (use `#[cfg(target_pointer_width = "64")]` around the test function). The POC at #6678 outlines most of these.
3. Scrutinize test coverage for `DecimalType`, `Decimal128Type` and `Decimal256Type` which do not work on armhf.
4. Scrutinize test coverage for `Time64MicrosecondType` and `Time64NanosecondType`, which do not work on armhf.
5. Consider adding a badge to the README outlining current hardware platform support.
Contributor guide
Research direction
Start by reviewing the proof of concept in issue #6678 and the existing test and clippy setup for armhf. Examine coverage for DecimalType, Decimal128Type, Decimal256Type, Time64MicrosecondType, and Time64NanosecondType, then define what passing arm32v7 support and the proposed README platform badge should demonstrate.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, wasm
- Domain
- embedded-iot, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100