問題タブ [compiler-version]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# コンパイラはバージョンまたはプラットフォームの定数を設定しますか?
対象となるプラットフォームのバージョンを検出するために、C# コンパイラに定義済みの定数はありますか?
プロジェクト オプションでプラットフォームを設定できますが、.NET 2 および .NET 3.5 の単一ソースを作成するにはどうすればよいですか?
編集:コードを一度書いて、 #if CLR_VERSION35 のようなもので動作を切り替えてから、さまざまな構成を変更できるようにしたいです。
逆の質問: CLR35 および CLR20 構成を作成した場合、これに基づいてターゲット プラットフォームを選択することは可能ですか? このオプションは VS2008 では利用できず、MSBUILD についてはまだよくわかりません。
g++ - 異なる g++ バージョンで生成されたコードのベンチマーク
私は、パフォーマンスに非常に敏感なアプリケーション ドメインのランタイム システムに取り組んでいます。最近実装された言語構造を回避し、古いバージョン用に合成するなど、古いバージョンのコンパイラとの下位互換性を維持するために多くの努力を払っています。
しかし、私は、この取り組みが、膨大な量のパフォーマンスを犠牲にしているコンパイラ リリースを引き続き使用できるようにすることで、ユーザーに不利益をもたらすことを懸念しています。残念ながら、リリース間の実行パフォーマンスの実際の比較を見つけることができませんでした。この問題に関するレポートへのリンクを誰かが持っている場合は、投稿してください。
幅広いリリース (3.2 に戻すことができれば、それは素晴らしいことです) とアプリケーション/テストをカバーするベンチマークをぜひ見てみたいと思います。
backwards-compatibility - 古いコンパイラ バージョンのサポートを終了する際の技術的な考慮事項は?
多くのユーザーがシステム用に特別にコンパイルする必要があるため、ソースとバイナリの両方の形式で無料で配布されているプロジェクトに取り組んでいます。古いホスト システム、および主にそのコンパイラとの下位互換性を維持するには、ある程度の考慮が必要です。
GCC 3.2 (2003!)、ICC 9、MSVC (C++ ではなく、ほとんど放棄されたソフトウェア)、および Sun のコンパイラ (私たちがまだ気にかけている古いバージョン) など、これらの最も厄介なもののいくつかは、言語機能のサポートを欠いています。開発をより簡単にします。ユーザーがこれらのコンパイラーを使い続けることを可能にすると、パフォーマンスが大幅に低下するケースも確実にあり、これは私たちが提供する目的に反します。
では、どの時点で十分であると言えますか? 特定のコンパイラのサポートを中止するためのいくつかの議論を見ることができます。
- 生成されたコードのパフォーマンスの低下 (新しいバージョンと比較して、ここで質問されます)
- 言語機能のサポートの欠如
- 開発システムでの可用性が低い (GCC よりもプロプライエタリのほうが多いが、古い GCC を取得するとシステム管理者の問題もある)
- 修正されていないバグの可能性 (ICC と xlC で ICE を分離しました。他に何が潜んでいる可能性がありますか?)
私は他のいくつかを逃したと確信しており、それらに重みを付ける方法がわかりません。それで、私が逃した議論は何ですか?他にどのような技術的考慮事項が関係していますか?
注: この質問は以前はより広義に表現されていたため、多くの回答者は、意思決定は基本的にエンジニアリング プロセスではなく、ビジネス プロセスであると指摘しています。私は「ビジネス」の考慮事項を認識していますが、それは私がここでもっと探しているものではありません. 古いコンパイラをサポートしなければならなかった、またはそれらを廃止することを選択した人々の経験と、それが彼らの開発にどのように影響したかを聞きたいです。
linux - アップグレードのために新しいgccバージョンを選択する
CentOS5.4でC++アプリケーションを開発しましたが、gccのバグであることが確認されているクラスコンストラクターでローカル変数をデバッグできないなど、gcc 4.1.2でいくつかの不便な状況に遭遇しました(スコープ変数でも同じ問題)。より高いgccバージョンへのアップグレードを検討しています。実稼働環境にはどのバージョンを選択する必要がありますか?gcc.orgから最新のリリースを取得し、ビルドして使用を開始できますか?CentOSリポジトリのrpmのみを使用する必要がありますか?
ありがとう。
java - Java-src / main /javaをjava1.4でコンパイルし、src / test/javaを1.5でコンパイルします
Java1.4でのみコンパイルする必要のあるプロジェクトがあります。しかし、私はmockitoを使用していくつかの単体テストを作成することを計画しています。src/main/java
でコンパイルするjdk 1.4
が、でsrc/test/java
コンパイルするようにpomで指定する方法が必要ですjdk 1.5
。
これを行う方法はありますか?はいの場合、どのようなpomの変更を行う必要がありますか?
御時間ありがとうございます!!!
c++ - __cplusplusディレクティブはさまざまなコンパイラでどのように定義されていますか?
私のコンパイラはそれを199711Lに拡張します。どういう意味ですか?__cplusplus>199711LはC++11を意味することを読みました。このマクロの可能な拡張とは何ですか?それは何を意味しますか?
eclipse - Eclipse 上の Maven プロジェクトは、更新後に Java コンパイラのバージョン (1.8 から 1.5) を元に戻します (alt f5)
タイトルで述べたように、私はこの問題を抱えています: Maven プロジェクトのコンパイラ バージョンを編集しようとすると (プロジェクトを右クリック -> 設定 -> コンパイラ...適用、OK )、alt-f5を押した後(更新) 以前の設定をすべて失い、設定メニューを再入力すると、Java コンパイラが 1.5 に戻っていることがわかります (常に JDK 8 ですが、1.8 ではなく 1.5 です)。
Preferences -> Facet でコンパイラを設定したり、maven プラグインを pom に追加したりするなど、多くの方法と組み合わせを試しましたが、実際に機能するソリューションが見つかりません。
私のグローバル設定では、Java ランタイム環境が正しく JDK 8 1.8 に設定されていることに注意してください。
誰でも私を助けることができますか?前もって感謝します、
ジュリオ