多くのユーザーがシステム用に特別にコンパイルする必要があるため、ソースとバイナリの両方の形式で無料で配布されているプロジェクトに取り組んでいます。古いホスト システム、および主にそのコンパイラとの下位互換性を維持するには、ある程度の考慮が必要です。
GCC 3.2 (2003!)、ICC 9、MSVC (C++ ではなく、ほとんど放棄されたソフトウェア)、および Sun のコンパイラ (私たちがまだ気にかけている古いバージョン) など、これらの最も厄介なもののいくつかは、言語機能のサポートを欠いています。開発をより簡単にします。ユーザーがこれらのコンパイラーを使い続けることを可能にすると、パフォーマンスが大幅に低下するケースも確実にあり、これは私たちが提供する目的に反します。
では、どの時点で十分であると言えますか? 特定のコンパイラのサポートを中止するためのいくつかの議論を見ることができます。
- 生成されたコードのパフォーマンスの低下 (新しいバージョンと比較して、ここで質問されます)
- 言語機能のサポートの欠如
- 開発システムでの可用性が低い (GCC よりもプロプライエタリのほうが多いが、古い GCC を取得するとシステム管理者の問題もある)
- 修正されていないバグの可能性 (ICC と xlC で ICE を分離しました。他に何が潜んでいる可能性がありますか?)
私は他のいくつかを逃したと確信しており、それらに重みを付ける方法がわかりません。それで、私が逃した議論は何ですか?他にどのような技術的考慮事項が関係していますか?
注: この質問は以前はより広義に表現されていたため、多くの回答者は、意思決定は基本的にエンジニアリング プロセスではなく、ビジネス プロセスであると指摘しています。私は「ビジネス」の考慮事項を認識していますが、それは私がここでもっと探しているものではありません. 古いコンパイラをサポートしなければならなかった、またはそれらを廃止することを選択した人々の経験と、それが彼らの開発にどのように影響したかを聞きたいです。