Target names are confusing
- Dominant language
- Standard ML
- Stars
- 1.2k
- Forks
- 104
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 16
Description
* x64: This isn't wrong, but it's the Microsoft name for the target in a codebase that otherwise largely assumes Unix?
* arm8: There are Armv8 chips that support only 64-bit mode, that support only 32-bit mode, and that support both. As such it is nonsensical (although common) to use "v8" to mean "64 bit". The Arm ARM calls the modes AArch64 and AArch32, the former of which is also the autoconf and LLVM name, why don't we use that?
* arm7: The question here is whether the Armv8 ARM is allowed to retroactively rename 32-bit mode AArch32 or whether we want to continue to describe it as the last 32-bit-only version. As long as we don't support any of the new v8 32-bit features it's not really wrong.
* riscv, mips: These are currently implemented for 64-bit only, although they support a large number of variants and autotools/llvm normally encode some of those variants in the triple. As backend selectors these are probably fine, but it makes me wonder whether we need a more general triple system?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the target-name definitions and backend selectors for x64, arm8, arm7, riscv, and mips. Compare their naming with the AArch64/AArch32 and autotools/LLVM conventions mentioned here, then decide whether consistent renaming is sufficient or a broader target-triple system is needed.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100