Target Triple

Rustのコンパイラソースコードの中で使用されていた"Triple"という言葉の意味がわからなかったので調べた。

Target Triplet - OSDev Wiki

Target Triplets describe a platform on which code runs and are a core concept in the GNU build system. They contain three fields: the name of the CPU family/model, the vendor, and the operating system name.

サポートするターゲットを表す表現方法を Target Triple と呼んでいる。 ターゲットの指定が以下の3つのフィールドから成っていることが、Tripleと呼ぶ理由らしい。

  • CPU family/model
  • Vendor
  • OS

具体例としては、以下のようなターゲット指定が挙げられる。(よく見るやつ)

なお、clangのドキュメントでは以下のようにフィールド指定が定義されている。
Cross-compilation using Clang

The triple has the general format <arch><sub>-<vendor>-<sys>-<abi>, where: