Add support for targets with 32-bit ptrs
- Dominant language
- Rust
- Stars
- 9.3k
- Forks
- 2.4k
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 344
Description
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
When [testing Ballista on a Raspberry Pi cluster](https://github.com/apache/arrow-datafusion/issues/243) using a 32-bit OS, it was noted that whilst we don't _officially_ support 32-bit builds at present, we only actually have one specific test case that fails for that arch. To ensure our continued robustness across architectures, I'd like to add some minimal CI support to ensure that this doesn't slip.
**Describe the solution you'd like**
- Add a new CI check that runs the tests using a 32-bit Linux build
- Fix any existing arch-related assumptions in the codebase (e.g. hardcoding ptr sizes at 8 bytes instead of `std::mem::size_of::()`)
**Describe alternatives you've considered**
- Explicitly disallowing compilation for 32-bit targets: this might impact on future possibilities like targeting wasm32 for Rust-in-browser use cases (less important for DataFusion than Arrow perhaps, but I can personally envisage at least one use case for this)
- Doing nothing: this feels lazy 🤷♂️
**Additional context**
This work will depend on apache/arrow-rs#262 (equivalent work for Arrow proper).
Contributor guide
Research direction
Start by reviewing the existing CI configuration and the test that fails on 32-bit targets, then check the dependency on apache/arrow-rs#262. Identify hardcoded pointer-size assumptions such as 8-byte values, add a 32-bit Linux test job, and confirm the test suite passes for that target.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system, ci-cd
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100