6.7.5 テンプレート |
|
OpenVMS I64 では,.OBJ ファイルは EOBJ ではなく ELF 形式で実装されます。また I64 リンカと連動し, C++ テンプレートおよびインライン関数を使用した場合に発生するリンク時の重複定義の問題を解決するために Windows および UNIX プラットフォームの両方でよく使用される COMDAT セクションの概念をサポートします。 Alpha では,リンカに単一の定義インスタンスを提示するリポジトリ・メカニズムによってこれらの問題を処理します。 I64 ではこの処理にリポジトリ・メカニズムは必要なく,リンカが自動的に重複を解消します。このため,Alpha でサポートされるリポジトリ・ベースのテンプレート・インスタンス化オプションは, IPF ではサポートされません。リポジトリでオブジェクトを処理しようとする Alpha ビルド・プロシージャは I64 では使えないので,変更が必要になります (I64 ではリポジトリにはオブジェクトがなく,デマングラ・データベースです)。ほとんどの場合,コンパイラの COMDAT インスタンス化の使用により,ビルド・プロシージャでリポジトリを直接扱う必要はなくなります。
OpenVMS I64 では,Javatm Version 1.4.2-1 がサポートされます。 OpenVMS Alpha の Java と OpenVMS I64 の Java の間に相違点はありません。
OpenVMS Alpha でコンパイルされた大部分の VAX MACRO プログラムは,まったく変更せずに OpenVMS I64 で再コンパイルできます。しかし,非標準戻り値を返すルーチンを呼び出すプログラムや,JSB インストラクションを使用して,他の言語で作成されたルーチンを呼び出すプログラムでは,ソース・ファイルに新しいディレクティブを追加する必要があります。詳細については,『OpenVMS MACRO-32 Porting and User's Guide』を参照してください。
Alpha と I64 の両方で HP Pascal Version 5.9 が利用できます。
OpenVMS Alpha 上の Pascal と OpenVMS I64 上の Pascal では,明らかになっている言語上の違いはありません。唯一の違いは,HP のほかの I64 コンパイラと同様に,浮動小数点のデフォルト・データ・タイプが VAX 形式ではなく IEEE 形式である点です。
6.10.1 /ARCH および /OPTIMIZE=TUNE 修飾子 |
|
「コンパイル・アンド・ゴー」の互換性を維持するために, /ARCH および /OPTIMIZE=TUNE 修飾子に対する Alpha 固有のキーワードがコンパイラ起動コマンドで受け付けられます。これらの値が無視されることを示す情報メッセージが出力されます。
/ARCH および /OPTIMIZE=TUNE 修飾子に対する I64 固有のキーワードは,OpenVMS I64 コンパイラで定義されていますが,これは開発用に提供されるものです。これらの修飾子の動作は予測できないため,使用すべきではありません。