Oracle Solaris Studio Fortran 95 コンパイラバージョン 8.7 は、Oracle Solaris Studio 12.4 リリースのコンポーネントです。
x86 の Intel Ivy Bridge プロセッサのための新しい -xarch、-xchip、および -xtarget 値。
SPARC T5、M5、M6、および M10+ プロセッサのための新しい -xarch、-xchip、および -xtarget 値。
Ivy Bridge アセンブラ命令のサポート。
Ivy Bridge 組み込み関数のサポートで、これは solstudio-install-dir/lib/compilers/include/cc/immintrin.h から見つけることができます。
x86 の -m32 について、-xarch=generic のデフォルト値を sse2 に設定。
x86 での -xlinkopt のサポート。最新の Intel プロセッサ用に調整された大型エンタープライズアプリケーションのための、モジュール間および手続き間のコード配列最適化。大規模アプリケーションでは、バイナリを完全に最適化することで、最大 5% のパフォーマンス向上が実現できます。
拡張された -xs オプションにより、実行可能ファイルのサイズと、デバッグのためにオブジェクトファイルを保持する必要性とのトレードオフを制御します。
Linux での -xanalyze および -xannotate のサポート。
-xopenmp=parallel の同義語としての -fopenmp のサポート。
モジュールを使用するアプリケーションのコンパイル時間が大幅に改善され、モジュール処理によるメモリーオーバーフローが解消されました。
ソースファイル内で !$pragma ident を使用して、コンパイル済みオブジェクトのソースバージョンを識別できます。
f90 ソースファイルの場合、形式は次のとおりです。
!$pragma ident "$Id: <Identification String> $"
<Identification String> の前後にはスペースが必要です。
例:
!$PRAGMA IDENT "$Id: Identification String $" program foobar character (LEN=120) :: versionid parameter (versionid = "$Id: string $") character*120 v2 data v2/"$Id$"/ print *,"hello world",versionid,v2 end program
Linux プラットフォームでは、ident コマンドを使用して識別文字列を表示できます。Oracle Solaris では、mcs –p コマンドを使用できます。
あるいは、上記の例の versionid のように、識別文字列がすでにパラメータ定数として含まれているソースファイルでは、次のコマンドを使用して versionid パラメータ定数の値を識別文字列に変えることができます。
–qoption f90comp –ident=versionid
宣言内で使用される文字型で、LEN 型パラメータとして遅延型パラメータ (コロン) のサポート。例:
character(LEN=:), pointer :: str
手続きポインタのサポート。
ISO_C_BINDING モジュールに対する Fortran 2003 規格の C_F_PROCPOINTER 関数のサポート。C_FUNLOC 関数は、手続きポインタを引数として使用できるように拡張されました。
ABSTRACT インタフェースに対する Fortran 2003 機能のサポート。
オブジェクト指向の Fortran の完全サポート。GENERIC、DEFERRED、NON_OVERRIDABLE、PASS、および NOPASS 属性による型束縛手続きが使用できるようになりました。
構造型と汎用関数が同じ名前を持つことが可能な Fortran 2003 機能のサポート。
TARGET オブジェクトを INTENT(IN) ポインタ仮引数に渡すことが可能な Fortran 2008 機能のサポート。
構造型のルーチンをファイナライズできる Fortran 2003 の機能のサポート。
新しいコンパイラオプション
-fma は、浮動小数点の積和演算 (FMA) 命令の自動生成を有効にします。
-fserialio は、プログラムが一度に複数のスレッド内で I/O を実行しないことを指定します。
(x86) -preserve_argvalues は、レジスタベースの関数引数のコピーをスタック内に保存します。
-xdebuginfo は、デバッグおよび可観測性情報の出力量を制御します。
-xglobalize は、ファイルの静的変数のグローバル化を制御します (関数は制御しません)。
-xinline_param は、コンパイラが関数呼び出しをインライン化するタイミングを判断するために使用するヒューリスティックを変更できます。
-xinline_report は、コンパイラによる関数のインライン化に関する報告を生成し、標準出力に書き込みます。
-xipo_build を設定すると、最初のコンパイラ経由の受け渡し時には最適化されず、リンク時にのみ最適化されることによって、コンパイルの時間が短縮されます。
-xkeep_unref は、参照されない関数および変数の定義を維持します。
-keepmod は、コンパイル時に変更されないモジュールを保持します。デフォルトは -xkeepmod=yes で、この指定により、新しいモジュールファイルが作成されると、以前のコンパイルから変更が何もなくても、古い動作を置換します。
-xM は、メイクファイル依存関係を自動的に生成します。新しい -keepmod=yes オプションと組み合わせることで、モジュールを使用する Fortran アプリケーション上でもっとも最適な増分構築が可能になります。
-xpatchpadding は、各関数の開始前にメモリー領域を予約します。
(Oracle Solaris) -xsegment_align を指定すると、ドライバはリンク行で特殊なマップファイルをインクルードします。
-xthroughput は、システム上で多数のプロセスが同時に実行されている状況でアプリケーションが実行されることを示します。
-xunboundsym は、動的に結合されたシンボルへの参照がプログラムに含まれているかどうかを指定します。
SPARC プラットフォーム上のライブラリ libfmaxlai、libfmaxvai、libfminlai、libfminvai、libfprodai、および libfsumai は、2005 年の Sun Studio 10 リリースから Studio Fortran で使用されていません。
これらのライブラリは将来のリリースで削除されます。その時点において、Sun Studio 10 リリース以前に Studio コンパイラによって生成されたオブジェクトファイルおよび実行可能ファイルは使用できなくなり、新しい Studio コンパイラで再コンパイルする必要があります。これらのいずれかのライブラリを必要とする古いオブジェクトファイルおよび実行可能ファイルを持っていて、再コンパイルの実行が可能でない場合、古いコンパイラインストール環境を保持するか、必要な特定のライブラリを古いコンパイラインストール環境から新しいコンパイラインストール環境にコピーするようにします。