CakeML / CakeML/cakeml

Target names are confusing

Open
#769 1 comment 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.