ACLE Module implementation status
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 694
- Forks
- 336
- Avg merge
- 5d 14h
- Merged PRs (30d)
- 9
Description
The ACLE module appears to be woefully incomplete in terms of features, documentation, and tests.
I wanted to replace the following line of inline assembly:
unsafe { asm!("mrs $0, ID_AA64PFR0_EL1" : "=r"(aa64pfr0)); }
in libstd with the C intrinsic _arm__rsr64("ID_AA64PFR0_EL1");. There is a core::arch::aarch64::__rsr64 intrinsic, but it errored for "ID_AA64PFR0_EL1" with "trait bound not satisfied" and I had to look at the code to discover that the intrinsic is generic, is bounded by the sealed RSR64 trait, and this trait is not implemented for any types (does this mean that the intrinsic is useless?).
I suppose that the register type and trait implementations are missing, but taking a look at the available system and co-processor registers, it appears that dozens of them are missing. We have, however, no list of missing features, nor any document explaining how to implement them.
AFAICT, this problem would have been avoided had we exposed the same API as C.
It would be useful if those knowledgable with the ARM C intrinsics could post or point to comprehensive list of the types that would need to be implemented to support the C API.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the core::arch::aarch64::__rsr64 intrinsic, its sealed RSR64 trait, and the related libstd inline assembly mentioned in the issue. Compare these with the ARM C intrinsic _arm__rsr64 and the available system and coprocessor registers. Done would require a scoped inventory of missing ACLE types and implementations, with corresponding documentation and tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100