Sun WorkShop 6 update 1 の新機能 ホーム目次前ページへ次ページへ索引


第 2 章

Sun WorkShop 6 の新機能のご紹介

この章では、Sun WorkShopTM 6 のコンパイラとツールの新しい機能について説明します。これらの新機能については、表にまとめられています。一部の機能については、各表の次の節で詳しく説明しています。

この章の内容は次のとおりです。

主な特長

以下の機能が、このリリースの特長です。

C コンパイラ

表 2-1 は、Sun WorkShop 6 C コンパイラの新機能です。これらの機能により、C コンパイラと lint ソースコードチェッカーがより優れたものとなっています。

表 2-1   C コンパイラの新機能  
機能 説明
__func__ 新リリースの C コンパイラは、あらゆる関数定義に指定される静的な一定の文字配列 __func__ を事前定義します。この配列は、関数名によって初期化され、静的関数のスコープ配列を使用できる場所であればどこにでも使用できます。たとえば、包含する関数の名前を出力する場合に使えます。
可変引数マクロ C プリプロセッサは、#define マクロについて可変数の引数を受け付けます。マクロ定義の識別子リストの一部として省略符号 (...) が含まれている場合、マクロ起動時に使用される引数は、マクロ定義内のパラメータより多くなります。
SUNW_MP_THR_IDLE 新リリースではスレッドがタスクを終了した後や「スリープ状態」時にもシステム資源を使い続けるかどうかを制御する、SUNW_MP_THR_IDLE という環境変数を使用できます。
大規模配列 新リリースの C コンパイラは、大規模な配列オブジェクトをサポートします。『C ユーザーズガイド』の付録 A を参照してください。
-errchk=locfmtchk 新リリースの lint は、新しいフラグ -errchk=locfmtchk を受け付けます。このフラグは、lint の 1 回目のパスにおいて printf に似た書式の文字列があるかどうかを検査します。
lint が受け付ける新しい
指令 (PRINTFLIKE (n))
新リリースの lint は、ポインタによる printf() ファミリへの呼び出しすべてを識別する新しい指令を受け付けます。こういった、ポインタによる呼び出しの引数整合性を lint によってチェックできます。
-errwarn=t 新リリースの C コンパイラと lint ソースコードチェッカーは、新しいオプション -errwarn=t をサポートします。このオプションが指定されている場合、指定した警告のどれかが発行されるとコンパイラはエラーステータスを出力して終了します。
-errchk 新リリースの lint-errchk には、新しい値 signext が用意されています。この値は、-errchk=longptr64,signext のように longptr64 オプションと組み合わせて使えます。このオプションは、64 ビットの開発環境への移行を行いやすくするため、符号拡張について警告します。
-xchar_byte_order -xchar_byte_order オプションは、複数文字の文字定数から成る文字を、指定されたバイト順序で配置することによって整定数を生成します。
-xinline 新リリースの -xinline オプションには、
%auto function_nameno% function_name の 2 つの値が追加されました。%auto-xO4 の最適化レベルで適用され、それによって -xinline にリストされている関数以外の関数も、自動的にインライン化します。%no function-name は、関数 function-name をインライン化しないことをコンパイラに指示します。
-xmemalign 新リリースの C コンパイラには、-xmemalign というオプションが新たに用意されています。このオプションはメモリーアクセスが境界整列していない可能性に備えて生成されるコードを制御し、アクセスが境界整列していないときにプログラムの動作を制御します。
-xprefetch 新リリースでは、sun_prefetch.h ヘッダーファイルと -xprefetch オプションを使うことによって明示的な先読み命令を指定できます。
-xvector -xvector オプションは、ベクトルライブラリ関数への呼び出しを自動生成します。


C++ コンパイラ

表 2-2 では、Sun WorkShop 6 C++ コンパイラのリリースで利用できる新機能を一覧表示します。一部の製品の機能については、表の次の節でさらに詳しく説明しています。

表 2-2   C++ コンパイラの新機能  
機能 説明
部分的特殊化 テンプレートは部分的に特殊化することができます。つまり、一部のテンプレートパラメータのみを指定したり、または複数のパラメータを特定の型のカテゴリに制限することができます。
明示的関数テンプレート引数 関数の引数からテンプレートの引数を推察できない場合、新リリースでは f<template args>(function args) の構文を使って明示的に指定できます。
関数テンプレートの型名でないパラメータ 新リリースでは、以下のような、関数テンプレートの型名でないパラメータをサポートします。
template<int I> void foo( int a[I] ) { ... }
template<int I> void foo( mytype<I> m ) { ... }
メンバーテンプレート 新リリースの標準モードでは、クラスとクラステンプレートにメンバーとしてテンプレートを持たせることができます。
定義分離テンプレート編成に対する制約の解除 新リリースのコンパイラでは、-instances != extern (つまり、-instances=explicit-instances=global-instances=semiexplicit、または -instances=static) における "定義分離テンプレート編成" に対する制約が解除されています 。-instances の設定値にかかわりなく、定義検索時に個別のソースファイルを含めるのがコンパイラのデフォルトの動作となっています。
先読み命令 ヘッダーファイル sun_prefetch.h とともに新しいオプション -xprefetch を使用すると、UltraSPARC II など先読みをサポートするアーキテクチャ (-xarch=v8plus, v9plus, v9plusa, v9, v9a) では先読み命令を指定できます。
外部インライン関数 このバージョンのコンパイラでは、外部インライン関数を使用できます。インライン関数に局所的な静的データが入っている場合は、すべてのコンパイル単位でその静的データのコピーが 1 つだけ使用されます。ただし、異なる翻訳単位で取得したインライン関数のアドレスは等しいとはみなしません。
静的変数破棄の順序付け 規格により、静的記憶期間のあるオブジェクトを破棄する順序がさらに詳しく定義されました。静的オブジェクトは、作成した順序とは逆の順序で破棄する必要があります。以前の言語の定義では、いくつかの局面での規定が放置されていました。
副集合の初期設定 (中括弧初期設定を使用できる型に関し) クラスオブジェクトの中括弧初期設定を使用している場合、C++ 標準では、それ自体が集合クラス であるメンバーは、自分自身の型の値で初期設定できるようになりました。
自分専用の C++ 標準ライブラリの使い方 -library=no%Cstd オプションを指定することで、コンパイラ付属のバージョンの代わりに、自分専用の C++ 標準ライブラリのバージョンを使用できます。
キャッシュバージョン指定 C++ コンパイラには、キャッシュバージョンの違いを検出し、適切なエラーメッセージを出力する機能があります。
ビットフィールドサイズに関する制限の削除 ビットフィールドのサイズを 32 以下にするという制限は削除されました。ビットフィールドのサイズは任意になりました。
関数のポインタと void* の相互間の変換に関する警告 以前のコンパイラは関数のポインタと void* で相互間の変換に関する警告を必ず出しましたが、現在では +w2 オプションを使用する場合に限り警告が出されます。
新規オプションおよび変更されたオプション 以下のリストでは、新規オプションと変更されたオプションを示します。

  • 新規オプション
    -xcrossfile
    -Bsymbolic
    -features=[no%]strictdestrorder
    -template=extdef

  • 変更されたオプション
    -fast
    -library=[no%]Catd,+p
    -ptr,-xprefetch

    詳細は、『C++ ユーザーズガイド』を参照してください。HTML で作成されたこのマニュアルを利用するには、ブラウザで file:/opt/SUNWspro/docs/ja/index.html
    にアクセスしてください。

  • 部分的特殊化

    テンプレートは完全に特殊化できます。つまり、特定のテンプレート引数に対する実装が定義されました。以下のコード例を参照してください。

    template<class T, class U> class A { ... }; //初期テンプレート
    
    template<> class A<int, double> { ... }; //特殊化
    

    テンプレートは部分的に特殊化することもできます。つまり、一部のテンプレートパラメータのみを指定したり、複数のパラメータを特定の型のカテゴリに制限することができます。その結果行われた部分的特殊化は、それ自体もテンプレートとして使用できます。以下は、上記の例の初期テンプレートを使用した例です。

    明示的関数テンプレート引数

    関数の引数からテンプレートの引数を推察できない場合、f<template args>(function args) の構文を使って明示的に指定できます。
    以下は、その一例です。

    template<class Mytype> Mytype* construct(float,float);
    
    ...
    
    int* x = construct<int>(a, b);
    

    関数テンプレートの型名でないパラメータ

    新リリースでは、次のような関数テンプレートの型名でないパラメータをサポートします。

    template<int I> void foo( int a[I] ) { ... }
    
    template<int I> void foo( mytype<I> m ) { ... }
    

    新リリースでは、次の例にあるように、型名でないテンプレートパラメータが入った式を関数パラメータリストに使用することはできません。

    // 以下はサポートされません
    
    template<int I> void foo( mytype<2*I> ) { ... }
    
    template<int I, int J> void foo( int a[I+J] ) { ... }
    

    メンバーテンプレート

    標準モードでのクラスとクラステンプレートには、次のコード例のように、メンバーとしてテンプレートを持たせることができます。

    template <class T1>
    
    class OuterClass { 
    
    public: 
    
    	// クラスメンバーテンプレート
    
    	template <class T2>
    
    			class MemberClass 
    
    	{
    
    		T2 MCmember; 
    
    		T1 OCmember;
    
    	};
    
    	template<class T3> operator T3() { ... }
    
    ... 
    
    };
    


    注 - メンバーテンプレートは、互換モード (-compat [=4]) ではサポートされていません。

    定義分離テンプレート編成に対する制約の解除

    新リリースのコンパイラでは、-instances != extern (-instances=explicit-instances=global-instances=semiexplicit、または -instances=static) における「定義分離テンプレート編成」に対する制約が解除されています 。-instances の設定値にかかわりなく、定義検索時に個別のソースファイルを含めるのがコンパイラのデフォルトの動作となっています。

    この制約を再び有効にするには、-template=no%extdef オプションを使用してください。ただし、-template=no%extdef オプションが指定されている場合、コンパイラは -instances=extern が指定されても個別のソースファイルを検索しません。

    静的変数破棄の順序付け

    規格により、静的記憶期間のあるオブジェクトを破棄する順序がさらに詳しく定義されました。静的オブジェクトは、生成した順序とは逆の順序で破棄する必要があります。以前の言語の定義では、いくつかの局面での規定が放置されていました。

    厳しくなったこの順序付けは標準モードの場合に限り実装されます。互換モード (-compat[=4]) では、破棄の順序は以前と同様に実装されます。

    プログラムが破棄について特定の順序に依存しており、しかも旧コンパイラで動作していた場合、標準モードでは、この規格で要求される順序によってプログラムが破壊されてしまう可能性があります。この場合、-features=no%strictdestrorder コマンドオプションを使用すると、破棄の厳格な順序付けが行われなくなります。

    副集合の初期設定

    (中括弧初期設定を使用できる型に関し) クラスオブジェクトの中括弧初期設定を使用している場合、C++ 標準では、それ自体が集合クラスであるメンバーは、自分自身の型の値で初期設定できるようになりました。以下のコード例を参照してください。

    struct S {  // 集合の型
    
    int i, j;
    
    };
    
    struct T { // 集合の型
    
    S s; // 集合のメンバー
    
    int k;
    
    };
    
    T t1 = { {1, 2}, 3 }; // 従来の初期化
    
    S s1 = { 1, 2 };
    
    T t2 = { s1, 3 }; // 副集合の初期設定
    

    自分専用の C++ 標準ライブラリの使い方

    コンパイラ付属のライブラリの代わりに、自分専用の C++ 標準ライブラリを使用する場合は、-library=no%Cstd オプションを指定します。このオプションは、以下のヘッダーを検索しないようにします。

    <algorithm> <bitset> <complex> <deque> <fstream> <functional> <iomanip> <ios> <iosfwd> <iostream> <istream> <iterator> <limits> <list> <locale> <map> <memory> <numeric> <ostream> <queue> <set> <sstream> <stack> <stdexcept> <streambuf> <string> <strstream> <utility> <valarray> <vector>

    -library=no%Cstd を指定すると、前述のヘッダーを実装する libCstd ライブラリがプログラムに自動的にリンクされなくなります。上記のヘッダーで宣言されている機能を使用するには、-I オプションを使用して代わりに使用するヘッダーのあるディレクトリを指定し、プログラムを、代替ヘッダーの実装を含むライブラリまたは一連のオブジェクトファイルとリンクする必要があります。

    上に記載したヘッダーの一部だけを入れ替えたり、libCstd を、別のライブラリの実装の全部または一部とリンクすることは安全ではありません。たとえば、文字列クラスだけを置き換えて libCstd を使用することはできません。コンパイラ付属のライブラリを使用するか、または上記に記載したすべての機能を置き換えてください。

    残りのヘッダー (<exception>、<new>、<typeinfo>、および C から継承したすべてのヘッダー) は、コンパイラ自体または Solaris にとって必要不可欠で、-library=no%Cstd オプションでその使用の有無を制御することはできません。また、ライブラリ libCrun のリンクも -library=no%Cstd オプションでは制御できません。

    libCrun の機能を置き換えることはできません。標準ライブラリを置き換える場合は、コードをコンパイラ付属の <exception>、<new>、および <typeinfo> と共にコンパイルする必要があります。標準モード (デフォルトモード) では、C++ プログラムは必ず libCrun にリンクしてください。


    注 - このオプションは、自分の責任において使用してください。自分専用のバージョンの C++ 標準ライブラリを使用しても、最適な結果が得られないことがあります。

    キャッシュバージョン指定

    C++ コンパイラはキャッシュバージョンの違いを検出し、適切なエラーメッセージを出す機能があります。コンパイラでは、それぞれのテンプレートキャッシュディレクトリにテンプレートのキャッシュバージョンを固有に識別するバージョンを示す文字列を付けます。コンパイラの後続のリリースもキャッシュのバージョンを示す文字列を使用しますが、これらのバージョンは現行のバージョンと違うことがあります。

    このコンパイラと後続のコンパイラはキャッシュディレクトリ内からバージョンストリングを検出して、適宜エラーを出します。たとえば、後続のコンパイラは異なるテンプレートキャッシュバージョンを使用し、このコンパイラのリリースによって生成されるキャッシュディレクトリを処理しようとすると以下のエラーを出力する場合があります。

    SunWS_cache: Error: Database version mismatch
    
    /SunWS_cache/CC_version
    

    同様に、このリリースのコンパイラでは、将来リリースされるコンパイラによって生成されたキャッシュディレクトリを検出するとエラーを出力します。

    Sun WorkShop C++ コンパイラ 5.0 によって生成されるテンプレートキャッシュディレクトリにはバージョン指定が行われていません。ただし、Sun WorkShop 6 C++ コンパイラでは、エラーや警告が出されることなくキャッシュディレクトリが処理されます。これらのキャッシュディレクトリは、Sun WorkShop 6 C++ コンパイラによって使用されるキャッシュディレクトリ形式に変換されます。

    Sun WorkShop 6 C++ コンパイラまたはそれ以降のリリースによって生成されるテンプレートキャッシュディレクトリは、Sun WorkShop C++ コンパイラ 5.0 では使用できません。Sun WorkShop C++ コンパイラ 5.0 は、形式の違いを認識できないので、エラーを出力します。

    Fortran コンパイラ

    Sun WorkShop 6 には、Sun WorkShopTM Fortran コンパイラ f77 と Sun WorkShopTM Fortran コンパイラ f95 が含まれます。

    この Sun WorkShop 6 リリースの Fortran コンパイラでサポートしている Solaris SPARCTM プラットフォーム版オペレーティング環境のバージョンは、2.6、7、および 8 に限定されます。Solaris Intel IA-32 プラットフォームについては、サンは Fortran のコンパイラと Sun Performance Library の開発を中止しました。このリリースでは、サンは Solaris Intel IA-32 プラットフォーム用の ForteTM for High Performance Computing または ForteTM Fortran デスクトップ版 (かつての Sun Performance WorkShop Fortran) を提供していません。Solaris Intel IA-32 プラットフォームのソフトウェア開発支援ツールの製品ラインについては、Portland Group (http://www.pgroup.com) に問い合わせてください。

    Fortran 77 コンパイラ

    表 2-3 は、Sun WorkShop 6 Fortran 77 コンパイラの新機能です。一部の機能について詳細は、「Fortran コンパイラの新機能」を参照してください。

    表 2-3   FORTRAN 77 コンパイラの新機能  
    機能 説明
    入出力操作に対する FORM="BINARY" の効果 この新しいオプションを OPEN(..) 文の中で指定すると、レコードマークなしの順番探査ファイル (書式なし) としてファイルが取り扱われます。この結果、連続したバイトストリームとしてデータが読み書きされ、他のベンダーシステムとの互換性が確保されます。この機能は、Fortran 95 と Fortran 77 の両方のコンパイラに実装されています。
    最適化コードのデバッグ 新リリースでは -g を使用したコンパイルに対する制約が緩和され、デバッグ用 (-g) のフラグとともに -O4-O5 でのコンパイル、またはすべての並列化フラグ (-parallel-explicitpar-autopar) によるコンパイルが可能になりました。
    新しいコマンド行フラグ 新リリースの f77 には、次のコマンド行フラグが追加されています (f77(1) マニュアルページ参照)。
    • -aligncommon - 指定のバイト境界に共通ブロック要素を整列します。
    • -r8const - 単精度データ定数を REAL*8 に拡張します。
    • -xmemalign - データ要素の一般的整列を指定します。
    拡張コマンド行フラグ 次の f77 コマンド行フラグが拡張されました (f77(1) マニュアルページ参照):
    • -fast - -05-fsimple=2-xvector=yes-pad=common を設定します。
    • -xprefetch - 明示的なプラグマ prefetch 命令を使用可能にし、UltraSPARC プラットフォームで先読み命令を生成します。
    • -xtypemap - データ型のサイズを指定することができます。
    Cray スタイルの指令1 Cray スタイルの並列化指令に AUTOSCOPE を追加。
    ハイパーリンクされたコンパイラの診断 Sun WorkShop の「構築」ウィンドウの f77 のエラーメッセージには、メッセージを説明するヘルプページへのハイパーリンクが追加されました。


    1) ライセンス供与 Fortran 77 コンパイラの並列化機能には、Sun WorkShop HPC ライセンスが必要です。

    Fortran 95 コンパイラ

    表 2-4 は、Sun WorkShop 6 Fortran 95 コンパイラの新機能です。一部の機能について詳細は、「Fortran コンパイラの新機能」を参照してください。

    表 2-4   Fortran 95 コンパイラの新機能  
    機能 説明
    標準への準拠 Fortran 95 コンパイラは、Fortran 95 の規格に完全に準拠しています。
    新しいコマンド Fortran 95 コンパイラは、f90f95 のどちらのコマンドによっても起動できます。f95 コマンドは新しいコマンドです。f90f95 と同等のコマンドです。
    ファイル拡張子 コンパイラは、拡張子 .f90.F90 のほか、.f95.F95 のソースファイルも受け付けます。
    入出力操作に対する FORM="BINARY" の効果 この新オプションを OPEN(..) 文の中で指定すると、レコードマークなしの順番探査ファイル (書式なし) としてファイルが取り扱われます。この結果、連続したバイトストリームとしてデータが読み書きされ、他のベンダーシステムとの互換性が確保されます。この機能は、Fortran 95 と Fortran 77 の両方のコンパイラで実装されています。『FORTRAN 77 言語リファレンス』を参照してください。
    最適化コードのデバッグ -g を使用したコンパイルに対する制約が緩和され、デバッグ用 (-g) のフラグとともに -O4 -O5 でのコンパイルや、すべての並列化フラグ (-parallel-explicitpar-autopar) によるコンパイルが可能になりました。
    F77 フラグ f77 コンパイラフラグのほとんどは、f95 で実装されています。詳細については、f95(1) マニュアルページを参照してください。具体的なフラグは、次のとおりです。

    -erroff 指定したエラーメッセージを非表示にします。

    -errtags タグ付きのエラーメッセージを表示します。

    -ext_names 下線付きまたは下線なしの外部名を作成します。

    -fpp ソースコードプリプロセッサを指定します。

    -loopinfo どのループが並列化されているかを示します。

    -sbfast ブラウザテーブル情報を作成します。

    -silent コンパイラメッセージを抑止します。

    -U 小文字と大文字の区別を許可します。

    -u IMPLICIT NONE を意味します。

    -xcrossfile ファイル間の最適化を使用可能にします。

    -xF アナライザのための関数レベルの順序変更を可能にします。

    -xinline 関数をインラインでコンパイルします。

    -xtypemap デフォルトのデータサイズを指定します。
    新しいフラグ 次の新しいフラグが f95 で実装されています。

    -aligncommon 指定のバイト境界に共通ブロック要素を整列します。

    -mp=openmp OpenMP 指令を受け付けます。

    -r8const 単精度定数を REAL*8 に高めます。

    -xia 区間演算拡張機能の処理を使用可能にします。(推奨)

    -xinterval 区間演算拡張機能の処理を使用可能にします。

    -xmemalign データ要素の適切な境界への整列を指定します。

    -xrecursive RECURSIVE 属性なしの再帰的呼び出しを許可します。
    拡張フラグ 以下の f95 コマンド行フラグが拡張されました (f95(1) マニュアルページ参照)。

    -fast


    -xprefetch



    -xtypemap
    -05 -fsimple=2 -xvector=yes -pad=common を設定します。

    明示的なプラグマ prefetch 指令を使用可能にし、UltraSPARC プラットフォームで先読み命令を生成します。

    可能なデータ型指定の拡張セットを含んでいます。
    OpenMP このリリースの Fortran 95 は、ソースコード指令のセット、実行時ライブラリルーチン、環境変数を含む、明示的並列化のための OpenMP インタフェースを実装しています。『Fortran ユーザーズガイド』を参照してください。
    Cray スタイルの指令 Cray スタイルの並列化指令に追加された AUTOSCOPE
    区間演算拡張機能 このリリースの Fortran 95 では、組み込みの INTERVAL データ型のサポートが実装されています。
    ライセンス Fortran 95 コンパイラの並列化機能には、Sun WorkShop HPC ライセンスが必要です。
    ハイパーリンクされたコンパイラの診断 Sun WorkShop 「構築」ウィンドウでは、f95 のエラーメッセージをオンラインヘルプへのリンクとして解釈されるようになりました。


    Fortran コンパイラの新機能

    以下の節では、Fortran コンパイラのいくつかの新機能についてさらに詳しく説明します。

    入出力操作に対する FORM="BINARY" の効果

    OpenMP

    このリリースの Fortran 95 は、ソースコード指令のセット、実行時ライブラリルーチン、環境変数などをはじめとする、明示的並列化のための OpenMP インタフェースを実装しています。OpenMP の暫定ドキュメントが README として入っています。OpenMP の仕様については、http://www.openmp.org/ を参照してください。

    Fortran コンパイラで受け付ける OpenMP を含むすべての指令については、『Fortran ユーザーズガイド』の付録 E にまとめられています。Fortran コンパイラの並列化機能について詳しくは、『Fortran プログラミングガイド』を参照してください。


    注 - Fortran のコンパイラの並列化機能には、Sun WorkShop HPC ライセンスが必要です。

    区間演算拡張機能

    このリリースの Fortran 95 には、区間演算拡張機能が実装されています。「Fortran 95 区間演算」を参照してください。

    ハイパーリンクされたコンパイラの診断

    Sun WorkShop を使用してアプリケーションの構築やコンパイルを行う場合、「構築」ウィンドウ内の f77f95 の診断メッセージにヘルプページへのハイパーリンクが追加されました。このエラーメッセージをクリックすると、ヘルプブラウザが立ち上がり、特定のエラー診断に関する詳しい情報が表示されます。

    Fortran 95 区間演算

    組み込み INTERVAL データ型のサポートは、Sun WorkShop 6 Fortran 95 コンパイラの新しい機能です。

    新しい 2 つのコンパイラフラグ -xia-xinterval により、コンパイラは区間特有の言語を認識し、区間命令を実現するためのコードを生成します。

    区間演算とは

    区間演算を使用すると、各区間に含まれる数の集合について算術演算の値が求められます。区間とは、その区間の下位の境界から上位の境界までの間にあるすべての実数の集合を意味します。区間演算結果はどれもすべての可能な結果の集合が必ず含まれるひとつの新しい区間です。

    Sun WorkShop 6 Fortran 95 を使用すれば、区間プログラムを作成して算術演算の値で厳密な境界を計算するのは容易です。

    最適な結果を得るためには、狭幅の区間結果を計算する既存の区間アルゴリズムを使用します。そして、この狭幅の区間結果を計算するアルゴリズムを考案することが、区間分析の主な目的です。

    区間演算が重要である理由

    区間演算は次の理由により重要です。

    区間がより一般的になるにつれて、区間ソルバーのライブラリが線形および非線形を問わずあらゆる問題に対するシャープな区間解決法の計算に利用できるようになり、さらにエラーのあらゆる原因を考慮できるようになります。これらのライブラリを用いることによって、科学者やエンジニア、商用アプリケーションの開発者は、それまでは手の届かなかった問題を解決するプログラムを開発できるようになります。

    詳細情報の入手先

    『Fortran 95 区間演算プログラミングリファレンス』または区間演算の README に記載されているオンラインリソースの一覧を参照してください。

    dbx

    表 2-5 は、Sun WorkShop 6 dbx の新機能です。

    表 2-5   dbx の新機能  
    機能 説明
    firedhandlers ksh
    変数
    読み取り専用 ksh 変数 firedhandlers が追加されています。この変数を delete コマンドと handler コマンドと併用すれば、clear コマンドの代わりとして使用できます。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の「変数」、「delete コマンド」、 「handler コマンド」を参照してください。
    ブレークポイントの部分的消去 新リリースの clear コマンドによって、クラス内、メソッド内、関数内のブレークポイントを部分的に消去することが容易になります。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の 「clear コマンド」を参照してください。
    トレース出力 トレースの出力をファイルにリダイレクトできます。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の 「trace コマンド」を参照してください。
    新しい dbx 環境変数
    • 新しい dbx 環境変数 stack_find_source は、プログラム停止時にデバッグ可能ソースコードが含まれているフレームまでコールスタックを dbx が自動的に上方移動させるかどうかを制御します。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の 「stack_find_source 環境変数」を参照してください。
    • 新しい dbx 環境変数 proc_exclusive_attach は、別のデバッガやデバッグツールの制御下にあるプロセスに dbx を接続できるかどうかを制御します。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の 「proc_exclusive_attach 環境変数」を参照してください。
    • 新しい dbx 環境変数 step_granularity は、step コマンドと next コマンドが文、行、ソースコードのどれを処理対象とするかを制御します。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の 「step_granularity 環境変数」を参照してください。
    • 新しい dbx 環境変数 mt_scalable は、資源の使用量を削減することによって、多くの LWP (軽量プロセス) を使うマルチスレッドアプリケーションのデバッグを行いやすくします。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の 「mt_scalable 環境変数」を参照してください。
    • 新しい dbx 環境変数 rtc_error_stack は、スタックトレースが RTC 内部構造に対応するフレームを表示するかどうかを決定します。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の 「rtc_error_stack 環境変数」を参照してください。

    • 新しい dbx 環境変数 rtc_inherit は、デバッグプログラムから実行されている子プロセスで実行時検査を行うかどうかを決定します。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の 「rtc_inherit 環境変数」を参照してください。
    • 新しい dbx 環境変数 rtc_use_traps は、実行時チェックでの 8 メガバイトコード制限の回避を有効にします。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の 「rtc_use_traps 環境変数」を参照してください。
    C++ メンバー関数におけるブレークポイント C++ インラインメンバー関数のブレークポイントは、正しく動作します。ハンドラ条件 (-if) も正しく評価され
    ます。
    LWP 関連コマンド このリリースでは、マルチスレッドアプリケーションのデバッグ時だけではなく、いつでも LWP 関連のコマンドを利用できます。詳細は、Sun WorkShop オンラインヘルプの「dbx コマンドの使用」の「lwp コマンド」と「lwps コマンド」を参照してください。
    実行中のプロセスの中断 Control-C を押してもハングアップしたプロセスが停止しない場合は、3 回連続して Control-C を押すと、ハングアップしたプロセスを強制的に停止できます。Sun WorkShop オンラインヘルプの「dbx コマンドの使い方」の節の「実行中のプロセスの中断」を参照してください。
    全行番号情報 -g オプションと -o オプションによるコンパイル時に、全行番号情報が記録されるようになりました。これで、step コマンドと next コマンドを使用して、最適化コードを順次実行していくことができます。ただし、現行の行は、コードスケジューリングの都合上、順方向と逆方向にジャンプします。dbx 内から出力される変数値は、最適化コードでは引き続き信頼に欠けます。


    Sun WorkShop 6

    表 2-6 は、Sun WorkShop 6 の新機能です。一部の製品の機能については、表の次の節でさらに詳しく説明しています。

    表 2-6   Sun WorkShop 6  
    機能 説明
    テキスト編集
    式のバルーン評価 式のバルーン評価は、テキストエディタで現在マウスでポイントしている数式の現在値をその場で表示します。数式のタイプを調べたり、ポインタを間接参照したりすることもできます。
    NEdit と Vim テキスト
    エディタ
    今回のリリースでは NEdit と Vim が統合型テキストエディタとして加わりました (英語環境でのみ使用できます。日本語環境では使用できません)。
    プログラムのデバッグ
    「ボタン編集」
    ウィンドウ
    「ボタン編集」ウィンドウにより、次の処理が行えます。 エディタウィンドウと「デバッグ」ウィンドウのツールバーのカスタマイズ。「デバッグ用カスタムボタン」ウィンドウのボタンの追加、削除、または編集。
    デバッグウィンドウ 「データ履歴」区画が、「データ履歴」タブ、「プログラム入出力」タブ、それにオプションの「データ表示」タブと置き換えられました。 「セッション」区画と「スレッド」区画を切り替えるためのラジオボタンが、「セッション」タブ、「スレッド」タブ、および「ブレークポイント」タブと置き換えられました。
    「デバッグオプション」ダイアログボックス オプションのカテゴリを切り替える「カテゴリ」リストボックスは、ダイアログボックスの右側のタブに置き換えられています。
    新しいデバッグ
    オプション
    「デバッグ」ウィンドウの「プログラム入出力」タブにプログラムへの入出力指示に関する選択肢が追加されました。 デバッグ可能なソースコードではないプログラム内の関数で実行が停止した場合に、コールスタックを最初のデバッグ可能ソースコードまでポップするよう選択できるようになりました。 実行単位を「行」に設定するよう選択できるようになったため、含まれている文の数に関係なく、次の 1 コマンドを特定の 1 行に対して実行できます。 デフォルトの設定では、ツールバーの下に「状態」、「停止位置」、「評価コンテキスト」、セッション数などの情報は表示されなくなりましたが、従来どおり表示されるよう選択することもできます。 プログラムの main() モジュールがデバッグ情報付きでコンパイルされない場合でも、デバッガが警告を出させないよう選択できるようになりました。 「データ表示」ウィンドウを「デバッグ」ウィンドウのタブとして、または別のウィンドウとして表示するよう選択できるようになりました。 -xs フラグ付きでコンパイルされたモジュールをデバッグセッションの開始時に読み込むのではなく、それらのモジュールのデバッグ情報が必要となった時点で読み込むよう選択できるようになりました。 多数 (300 以上) の LWP (軽量プロセス) を使用するプロセスをデバッグする必要がある場合、デバッグ時にリソースの使用量が少なくなるよう設定できます。 デバッガに dbx がデバッグ対象プログラムを排他的に制御しているかどうかをチェックさせないよう選択できます。 デバッガが、dbx の機能にとって欠かせない一定の共有ライブラリを除外できるようにすることが可能になりました。
    削除されたデバッグ
    オプション
    「マルチスレッド使用のプログラムのウォッチポイントを許可」のオプションが「デバッグオプション」ダイアログから削除されました。
    プロジェクトの取り扱い
    プロジェクトと
    ワークセット
    この Sun WorkShop のリリースでは、プロジェクトを使って開発プロジェクトに関連付けられたファイル、プログラム、およびターゲットを追跡し、メークファイルを作成しなくてもプログラムを構築できます。
    新しいマニュアルページ
    makeprd(1) Sun WorkShop プロジェクトファイルビルダ
    nedit(1) Motif UI スタイルのテキストエディタ (英語のみ)
    vim(1) vi の改良版といえるプログラマ用テキストエディタ (英語
    のみ)
    xemacs(1) 次世代 Emacs


    テキスト編集

    以下の 2 つの節は、新しく追加された Sun WorkShop 6 テキスト編集機能を説明しています。

    式のバルーン評価

    式のバルーン評価は、テキストエディタにおいて現時点でマウスでポイントしている数式の現在値を即時に表示します。数式のタイプを調べたり、ポインタを間接参照したりすることもできます。詳細については、オンラインヘルプの「テキスト編集」の「式のバルーン評価」の使用を参照してください。

    NEdit と Vim テキストエディタ

    テキストエディタは、構築、デバッグ、ブラウズを含む Sun WorkShop 統合開発支援ツールセットの中心に位置します。Sun WorkShop プログラミング環境では、数式の評価、ブレークポイントの設定、関数の検討をテキストエディタから行うことができます。

    X/Motif システムへのグラフィカルユーザーインタフェースを備えたプレーンテキストエディタである NEdit、および UNIX システムでの改良版 vi 標準テキストエディタである Vim は、このリリースでの新しい統合テキストエディタです。以下は、Sun WorkShop 6 とともに提供される統合エディタのリストです。

    各エディタの選び方の詳細については、以下を参照してください。

    プログラムのデバッグ

    以下の節は、新しく追加されたデバッグ機能について説明しています。

    「ボタン編集」ウィンドウ

    「ボタン編集」ウィンドウにより、エディタウィンドウと「デバッグ」ウィンドウのツールバーをカスタマイズしたり、「デバッグ用カスタムボタン」ウィンドウのボタンを追加、削除、または編集したりできるようになりました。

    詳細については、「ツールバーオプション」を参照してください。

    「デバッグ」ウィンドウ

    以下の節では、「デバッグ」ウィンドウに組み込まれたいくつかの変更について説明しています。

    セッションステータスとコンテキスト情報

    デフォルトの設定では、「状態」、「停止位置」、「評価コンテキスト」、「セッション数」などの情報は、これまでのようにはツールバーの下に表示されません。この情報を表示させたい場合は、「デバッグオプション」ダイアログの「ウィンドウレイアウト」タブの中の「画面の上部にコンテキスト / ステータスの 3 行を表示」を選択します。詳細については、Sun WorkShop オンラインヘルプの「デバッグウィンドウの使い方」の「セッションステータス情報とコンテキスト情報の表示」を参照してください。

    「データ」区画

    「データ」区画は、「データ履歴」と「プログラム入出力」のタブ、およびオプションの「データ表示」タブと置き換えられました。

    セッション区画とスレッド区画

    「セッション」区画と「スレッド」区画を切り替えるためのラジオボタンが、「セッション」、「スレッド」、および「ブレークポイント」のタブと置き換えられました。

    「デバッグオプション」ダイアログボックス

    「デバッグオプション」ダイアログボックスには、以下の新機能が追加されました。

    「カテゴリ」タブ

    「デバッグオプション」ダイアログボックスの「カテゴリ」リストボックスは、オプションのカテゴリを切り替えるためのウィンドウの右側に表示されるタブと置き換えられました。

    新しい「プログラム出力」オプション

    プログラムの入出力を、「デバッグ」ウィンドウの「プログラム入出力」タブに変更する選択肢が追加されました。以前と同様、別の「プログラム入出力」ウィンドウ、「dbx コマンド」ウィンドウ、あるいはカスタム pty にプログラムの入出力先を変更することもできます。「プログラムの入出力先のリダイレクト」を参照してください。

    新しい「コールスタック」オプション

    デバッグセッション中、プログラムが -g フラグ付きでコンパイルされなかった場合、デバッグ可能なソースコードでないプログラム内の関数で実行が停止する場合があります。このバージョンでは、コールスタックをこのケースで最初のデバッグ可能なソースコードにポップするよう選択できるようになりました。詳細については、Sun WorkShop オンラインヘルプの「デバッグウィンドウの使い方」の「実行停止時にスタックをさかのぼる」を参照してください。

    新しい「ステップ実行」オプション

    デフォルトの設定では、デバッグのステップ実行単位は「文」に設定されます。したがって、1 つのソースコード行に複数の文が含まれている場合、その行をステップ実行するのにその文の数だけ next コマンドが必要です。新バージョンでは、ステップ実行単位に「行」を設定できるようになったため、行に含まれている文の数に関係なく、next コマンド 1 つで行全体をステップ実行できます。詳細については、Sun WorkShop オンラインヘルプの「ステップ実行単位の設定」を参照してください。

    新しい「ウィンドウレイアウト」オプション

    デフォルトの設定では、「状態」、「停止位置」、「評価コンテキスト」、および「セッション数」の情報は、ツールバーの下に表示されなくなりました。これらの情報を表示させたい場合には、「デバッグオプション」ダイアログボックスの「ウィンドウレイアウト」タブで「画面の上部にコンテキスト / ステータスの 3 行を表示」を選択します。詳細については、Sun WorkShop オンラインヘルプの「セッションステータス情報とコンテキスト情報の表示」を参照してください。

    新しい「ウィンドウ動作」オプション

    デフォルトの設定では、デバッガはプログラムの main() モジュールにデバッグ情報が付随していない場合に警告を出します。新バージョンでは、この警告を表示させないようにすることができます。詳細については、Sun WorkShop オンラインヘルプの「デバッグ情報を使用しないで main() モジュールをコンパイルした時に警告を表示させる」を参照してください。

    新しい「データ表示」オプション

    「データ表示」ウィンドウを「デバッグ」ウィンドウのタブとして表示させたり、別のウィンドウとして表示させることができるようになりました。詳細については、Sun WorkShop オンラインヘルプの「データ表示」ウィンドウの表示方法を参照してください。

    新しい「デバッグパフォーマンス」オプション

    -xs フラグ付きでコンパイルされたモジュールを、デバッグセッションの開始時に読み込むのではなく、それらのモジュールのデバッグ情報が必要となった時点で読み込むよう選択できるようになりました。このオプションの追加により、モジュールが -xs フラグ付きでコンパイルされたときのデバッグ開始時間を短縮することができます。デフォルトでは、このデバッグオプションはオンです。詳細については、Sun WorkShop オンラインヘルプの「-xs を使ってコンパイルしたモジュールの読み込みを遅延する」を参照してください。

    新しい「フォークおよびスレッド」オプション

    多数 (最大 300) の LWP (軽量プロセス) を伴うプロセスをデバッグする場合、新しくデバッグ時のリソース使用量を削減するよう設定できるようになりました。ただし、それによってデバッグのパフォーマンスは低下することがあります。詳細については、Sun WorkShop オンラインヘルプの「大量の LWP のデバッグ」を参照してください。

    新しい拡張オプション

    デフォルトの設定では、デバッガは、dbx がデバッグ対象プログラムを排他的に制御するかどうかを検査します。このため、dbx は他のツールがすでのそのプログラムに接続されていると、そのプログラムに接続できません。このバージョンでは、この動作を解除することができるようになっています。詳細については、Sun WorkShop オンラインヘルプの「プログラムの排他的制御が dbx にあることを確認する」を参照してください。

    デフォルトでは、デバッガは dbx の機能にとって重要な一部の共有ライブラリの除外を許可していません。新バージョンでは、これらのライブラリを除外できるようになりましたが、その場合には中核のファイルしかデバッグできません。詳細については、Sun WorkShop オンラインヘルプの「重要な dbx ライブラリの取り込みが必要」を参照してください。

    プロジェクトの取り扱い

    この Sun WorkShop のリリースでは、プロジェクトを使って開発プロジェクトに関連付けられたファイル、プログラム、およびターゲットを追跡し、メークファイルを作成しなくてもプログラムを構築することができます。プロジェクトは、実行プログラム、静的ライブラリまたは静的アーカイブ、共用ライブラリ、Fortran アプリケーション、複雑なアプリケーション、またはユーザーメークファイルアプリケーションの構築に使用されるファイルおよびコンパイラ、デバッガ、構築関連のオプションが含まれるリストです。

    以前のバージョンの Sun WorkShop では、プロジェクトの代わりにワークセットが使用されていました。プロジェクトは依然としてワークセットの性質を持っていますが (プロジェクトに関連するファイルやディレクトリを簡単にアクセスできるようにするメニューピックリストは引き続き存在)、プロジェクトはユーザーがどのようなソースファイルをどのように作成したいか、ユーザーのプログラムをよく把握しています。Sun WorkShop のワークセットが手元にある場合は、それらを読み込み時に自動的に Sun WorkShop 6 のプロジェクトに変換できます。詳細については、Sun WorkShop オンラインヘルプの「ワークセットをプロジェクトに変換する」を参照してください。

    Sun WorkShop を起動すると、「Sun WorkShop にようこそ」ダイアログボックスが開き、すぐに Sun WorkShop プロジェクトとプロジェクトウィザードにアクセスできます。Sun WorkShop には、WorkShop のメインウィンドウの「プロジェクトメニュー」から利用できるプロジェクト機能があり、以下を実行できます。

    このほか、プロジェクトを読み込まない状態で Sun WorkShop 6 プログラミング環境を使用することも可能です。ピックリストは、開発プロジェクトに関連するファイル、プログラム、ディレクトリ、ターゲットを記録します (詳細については、「WorkShop のターゲット」を参照)。各ファイルをアクセスし、ターゲットを構築し、実行形式ファイルをデバッグするといった操作を、WorkShop のメインウィンドウから行うことができます。構築ターゲット情報は常に一定ではないため編集できません。この情報は、構築ターゲットへアクセス、追加、削除するたびに変更されます。

    Sun WorkShop TeamWare 6

    表 2-7 は、Sun WorkShop TeamWare 6 の新機能です。一部の製品機能については、表の次の節でさらに詳しく説明しています。

    表 2-7   Sun WorkShop TeamWare 6 の新機能  
    機能 説明
    自動フリーズポイント
    機能
    自動フリーズポイント機能は、特定のトランザクションの前または後にフリーズポイントファイルを自動的に作成します。フリーズポイントファイルの作成する時間をブリングオーバー、プットバック、取消し時、または衝突解決の前または後にするかを選択できます。
    「バージョン管理」の「カスタマイズ
    メニュー」
    「カスタマイズメニュー」機能は、「バージョン管理」ウィンドウに「カスタマイズ」という新しいメニューを追加し、ユーザー固有のコマンドにアクセスできるようにします。カスタマイズメニューの作成については、オンラインヘルプの「管理ファイル」の節の「カスタマイズメニューの作成」を参照してください。
    デルタコメント この新オプションは、デルタ番号、所有者、コメントなどのデルタコメントをトランザクション出力と電子メール通知に追加します。「ワークスペース管理」で、「ワークスペース」/「作成ブリングオーバー」/「更新ブリングオーバー」/「プットバック」を選択して「デルタコメント」ボックスを 選択するか、または -d オプションを付けて bringoverputback コマンドを使用します。
    ファイルマージの
    「相違ナビゲータ」
    マージされていない 2 個のファイルの間に、「相違ナビゲータ」が表示されます。「相違ナビゲータ」の左右どちらかにあるスライドボックスをクリックすると 2 個のファイルのうち、どちらかがスクロールされ、最上部または最下部にある矢印をクリックすると両方のファイルにおいて同じ距離だけ移動します。
    メニュー再編成の設定 Sun WorkShop TeamWare 6 では、ワークスペース属性のユーザーインタフェースが変更されています。
    プットバックの妥当性検査 プットバックの妥当性検査をオンにすると、許可されたワークスペースだけがプットバックを行えるようになります。プットバックを行えるユーザーを管理し、特定のパスワードを要求するように設定することができます。
    SCCS 管理フラグ ファイルに対して SCCS 管理フラグを設定できます。
    ワークスペース完全性検査 workspace コマンドで使用できる新オプション。
    check [ -W ] [ -s ] wsname ... は、ファイル、アクセスモード、親子関係、履歴ファイルの状態をチェックします。コマンドは、ワークスペースに問題がない場合は 0 を、エラーがある場合は 1 の終了コードで終了します。
    ワークスペースの履歴表示 このリリースの Sun WorkShop TeamWare には、ワークスペース履歴ファイルに入っている情報を簡単に表示できる機能が含まれています。
    ワークスペースのラベル この機能により、チームメンバーがすぐに理解できるような、意味のある名前をワークスペースに指定できます。「ワークスペース」で「プロパティ」を選択して、「説明」タブを選びます。
    新しいマニュアル
    ページ
    description(4)


    メニュー再編成の設定

    Sun WorkShop TeamWare 6 では、次のような変更がメニューに加えられています。

    表 2-8   Sun WorkShop TeamWare 6 メニューの変更  
    TeamWare 2.2 TeamWare 6
    ワークスペース管理:
    ファイル 親ワークスペースの読み込み ワークスペース 親ワークスペースの読み込み
    ファイル 子ワークスペースの読み込み ワークスペース 子ワークスペースの読み込み
    ファイル 空の子ワークスペース作成 ワークスペース 子ワークスペースの作成


    編集 削除 ワークスペース 削除
    編集 名前変更 ワークスペース 名前変更
    編集 ワークスペース 親の変更
    編集 更新 名前テーブル ワークスペース 名前テーブル更新


    トランザクション ブリングオーバー 作成 アクション 作成ブリングオーバー
    トランザクション ブリングオーバー 更新 アクション 更新ブリングオーバー
    オプション ワークスペース ワークスペース 属性
    オプション ワークスペース ロック編集 ワークスペース ロック編集


    新規 表示 再描画
    新規 ワークスペース 属性 フリーズポイント
    新規 ワークスペース 属性 プットバックの妥当性検査
    新規 オプション ワークスペース管理 子ワークスペース読み込み: 選択する/ すべて
    バージョン管理
    新規 ファイル ファイル情報
    新規 コマンド アンチェックアウト


    プットバックの妥当性検査

    プットバック妥当性検査をオンにすると許可されたワークスペースだけがプットバックを行えるようになります。プットバックを行う場合、「パスワード」(統合要求 ID:Integration Request Identifier) の入力を指示するプロンプトが表示されます。この機能は統合要求 ID を記録するだけで、チェックは行いません。統合要求 ID のチェックを行うには、そのための妥当性検査プログラムを自分自身で作成する必要があります。詳細については、Sun WorkShop オンラインヘルプの「ワークスペースの管理」の「プットバックの妥当性検査」を参照してください。

    SCCS 管理フラグ

    SCCS 管理フラグを設定するには、「バージョン管理」で「ファイル」 「ファイル情報」を選択します。たとえばプットバック中に「バージョン管理」に MR (修正要求文字列) の入力要求を出させるようにするには、妥当性検査プログラムの名前を「妥当性検査プログラム」テキストフィールドに指定してください。

    ワークスペースの履歴表示

    このリリースの Sun WorkShop TeamWare には、ワークスペース履歴ファイルに入っている情報を簡単に表示できる機能が含まれています (「ワークスペース」 「履歴の表示」を選択)。ワークスペース履歴ビューアを利用すれば、ワークスペースのトランザクション履歴、トランザクション詳細、コメント、およびコマンドログを表示できます。エントリのソートやフィルタリングができるほか、コメントやコマンドログの検索も行えます。

    Sun WorkShop Visual 6

    表 2-9 では、Sun WorkShop Visual 6 で利用できる新機能を一覧表示します。一部の製品の機能については、表の次の節でさらに詳しく説明しています。

    表 2-9   Sun WorkShop Visual 6
    機能 説明
    Swing サポート 新リリースの Visual 6 は、Java 1.0、1.1 に加え Java Swing コードも生成できます。Visual 6 は Motif ウィジェットの Swing コンポーネントを生成するばかりではなく、マップ可能資源の種類も増えています。画像、シェルアイコン、シェルのサイズ変更・削除応答、リスト内容、行/列エントリ位置合わせといった拡張機能を含むトグルの Swing コードを生成できるようになっています。
    Windows 拡張サポート Windows MFC への X イベントのマッピングサポートがさらに強化されています。
    Sun WorkShop
    プロジェクトとの統合
    Sun WorkShop プロジェクトウィザードと併用することによって、グラフィカルユーザーインタフェースを持つプロジェクトを作成できます。


    Swing サポート

    新リリースの Visual 6 は、Java 1.0、1.1 に加え Java Swing コードも生成できます。Visual 6 は Motif ウィジェットの Swing コンポーネントを生成するばかりではなく、マップ可能リソースの種類も増えています。画像、シェルアイコン、シェルサイズ変更、削除応答、リスト内容、行/列エントリ位置合わせといった拡張機能が入ったトグルの Swing コードを生成できるようになっています。

    標準クラスに等価性が欠落している Java に Motif コンポーネントをマップする MWT クラスライブラリを Swing に移植することによって、見た目と使い心地の整合性が改善されています。一部の Motif コンポーネントは該当する Swing コンポーネントに直接マップされるようになっているので、MWT にそれほど依存しなくとも Motif 互換のインタフェースを用意できるようになっています。

    Java Layout エミュレーションウィジェットに適宜手が加えられた結果、Java Layout 特性における動作の整合性が改善されています。

    他社製 (Motif 以外) コンポーネントのクロスプラットフォームコードをサポートする動きの一環として、新リリースの Visual 6 ではあらゆる統合コンポーネントのデフォルトの基本クラス指定を行なうことができるようになっています。このクラス指定は、一般的言語ベースで行うことも、個別のバリアントについて行うこともできます。たとえば、Java、Java 1.0、1.1 のデフォルトクラスや Swing 固有のクラスを指定できます。コンポーネント MFC クラスを指定することもできます。ターゲット言語において正しい種類のオブジェクトを作成するには他社コンポーネントを 1 つ 1 つ手作業で設定しなければならなかった従来の問題が解決されています。他社固有のリソースはマップされません。特定のコンポーネントを複数のネイティブオブジェクトにマップしなければならない状況や、組み込み要素を考慮すれば複合コンポーネントをマップできる状況については、対応していません。

    Windows 拡張サポート

    Visual 6 には、X イベントを Windows MFC にマップするための次のサポートが追加されています。

    表 2-10   X イベントを Windows MFC にマップする  
    MouseMotion
    (マウスの動き)
    ボタンの押し下げの有無にかかわらず、あらゆるマウス移動について汎用ハンドラを生成します
    ButtonPress Left、Center、Right の 3 種類の押し下げハンドラすべてを生成します
    ButtonRelease Left、Center、Right の 3 種類の解放ハンドラすべてを生成します
    EnterWindow MouseActivate
    ExposureMask EraseBkgnd
    KeyPressMask WM_KEYDOWN
    KeyRelease WM_KEYUP
    KeymapstateMask WM_SYSKEYUP/WM_SYSKEYDOWN
    LeaveWindowMask WM_KILL_FOCUS
    ResizeRedirect WM_SIZE
    PropertyChangeMask ON_WM_PAINT
    VisibilityChangeMask WM_SHOWWINDOW


    Sun Performance Library

    Sun Performance LibraryTM は、線形代数およびその他数に集中した問題を解決するための最適化された高速数値演算のサブルーチンです。Sun Performance Library は、http://www.netlib.org にある Netlib で利用できるパブリックドメインアプリケーションのコレクションに基づいています。これらのルーチンは機能強化され 、バンドルされて Sun Performance Library となりました。

    表 2-11 は、Sun Performance Library の Sun WorkShop 6 リリースで使用できる新機能です。一部の製品の機能については、表の次の節でさらに詳しく説明しています。

    表 2-11   Sun Performance Library の新機能  
    機能 説明
    LAPACK 3.0 のサポート LAPACK 3.0 サブルーチンが追加されました。Sun Performance Library の以前のバージョンは、LAPACK 2.0 に基づいていました。 Sun Performance Library の現行バージョンでは、引き続き LAPACK 2.0 と LAPACK 1.X との互換性を保っています。
    スパースソルバーパッケージ スパースソルバーパッケージは、直接的な方法およびユーザー指定の順序付けを含むフィルリダクション順序付けのアルゴリズムを使用して、スパース行列 (対称的、構造上対称的、および非対称的な係数行列) を解決するルーチンを提供します。
    UltraSPARC-III のサポート UltraSPARC-III がサポートされるようになりました。UltraSPARC-III に固有のコードを使用するには、32 ビットコードの場合は -xarch=v8plusb、64 ビットコードの場合は -xarch=v9b のオプションを付けてコンパイルします。
    Fortran 95 言語機能サポート Fortran 95 言語の機能をサポートするようになりました。プログラムに F95 の文 USE SUNPERF を含めることによって、Performance Library のモジュールと定義を使用できます。
    Sun Performance Library のライセンス供与に関する変更 Sun Performance Library は、ライセンスを必要としなくなりました。しかし、引き続き -xlic_lib=sunperf を使用して、アプリケーションを正しいサポートライブラリと確実にリンクし、正しいバージョンの Sun Performance Library を選択してください。


    Fortran 95 言語機能サポート

    F95 の文 USE SUNPERG をプログラムに含めることにより、Performance Library のモジュールと定義を利用することができます。これにより、以下の機能が得られます。

    これらの機能の使い方や例については、『Sun Performance Library ユーザーズガイド』を参照してください。

    Sun Performance Library のライセンス供与に関する変更

    Sun Performance Library は、もはやライセンスを必要としません。しかし、-lsunperf ではなく、引き続き -xlic_lib=sunperf を使用してリンクする必要があります。-xlic_lib=sunperf を使用して、次のことを確実に行ってください。

    標本アナライザ

    Sun WorkShop 6 標本アナライザは、Sun WorkShop 5.0 に装備されたアナライザを全面的に書き換えたものです。

    表 2-12 は、Sun WorkShop 6 標本アナライザの新機能です。一部の製品の機能については、表の次の節でさらに詳しく説明しています。

    表 2-12   標本アナライザの新機能  
    機能 説明
    関数分析
    主ディスプレイ (関数リスト) 新リリースにおける主ディスプレイは「関数リスト」であり、アナライザ起動時にデフォルトで表示されます。
    複数の測定値 新リリースの「関数リスト」では同時に複数の種類の測定値が表示されるので、一度に表示させたい測定値 1 つを選択する必要はありません。「関数リスト」は測定値を絶対値または百分率で表示します。
    「概要メトリック」ウィンドウ 「表示」メニューから利用できる新しい「概要メトリック」ウィンドウでは、選択されている関数について記録されている測定値を、値と百分率の両方で表示します。「概要メトリック」ウィンドウの内容は、関数リスト表示に表示される内容と無関係です。
    「呼び出し元 - 呼び出し先」ウィンドウ 「関数リスト」から新機能である「呼び出し元 - 呼び出し先」ウィンドウにアクセスできます。このウィンドウには、関数の呼び出し側からその関数の被呼び出し側に測定値がどのように帰属されるのかが示されます。
    注釈付きソースコードの生成 選択した関数について注釈付きソースコードを生成し、その結果を編集ウィンドウに表示できるようになりました。
    注釈付き逆アセンブリの生成 選択した関数について注釈付き逆アセンブリを生成し、その結果を編集ウィンドウに表示できるようになりました。
    サンプル、スレッド、LWP によるデータのフィルタリング 新リリースでは、サンプル、スレッド、または LWP あるいはこれらを組み合わせたものによるデータのフィルタリングを「フィルタの選択」ダイアログボックスで行えます。この結果、選択されたサブセットから取り出されたデータだけを示すように、あらゆるディスプレイとウィンドウが更新されます。
    スレッド同期待機
    測定値
    新リリースでは、指定のしきい値を超える同期イベント数とこれらのイベントからの総遅延との 2 種類のスレッド同期待機測定値を利用できます。「測定値」の詳細は、「測定値」を参照してください。
    複数の実験のロード 新リリースでは、複数の実験を一度にアナライザにロードできます。これらの実験の測定値が「関数リスト」ディスプレイに表示されます。


    主ディスプレイ (関数リスト)

    新リリースでは、「関数リスト」が主ディスプレイであり、アナライザ起動時にデフォルトで表示されます。

    関数リストでは同時に複数の種類の測定値が表示されるので、ディスプレイの型だけを変更するように「データ」リストボックスが変更されました。「ディスプレイリスト」オプションメニューは削除されました。

    このリリースでは、「関数リスト」に記載されている測定値を秒/カウントによる絶対値またはプログラム全体の値に対する百分率、またはその両方の形で確認できます。「関数リスト」ディスプレイから「メトリックの選択」ダイアログボックスを呼び出して、以下が実行できます。

    「呼び出し元 - 呼び出し先」ウィンドウ

    「関数リスト」から新機能である「呼び出し元 - 呼び出し先」ウィンドウにアクセスできます。このウィンドウには、関数の呼び出し元からその関数の呼び出し先に測定値がどのように帰属されるのかが示されます。「呼び出し元 - 呼び出し先」ウィンドウでは、選択されている関数がディスプレイ中央に表示され、この関数の呼び出し側は上のパネルに、この関数の呼び出し元は下のパネルに示されます。選択された関数について、この関数内部における使用率が、帰属測定値によって示されます。上の呼び出し元については、選択されている関数内とこの関数が呼び出す全関数内における使用率が、呼び出しスタックを呼び出し元までたどって示されます。下の呼び出し元については、選択されている関数からの呼び出しに帰属する呼び出し元測定値の割合が示されます。

    呼び出し元パネルと呼び出し先パネルのどちらかで関数をクリックすれば、「呼び出し元 - 呼び出し先」ウィンドウでプログラムの構造内をナビゲートできます。ディスプレイは、新たに選択された関数を基準としてセンタリングし直します。

    注釈付きソースコードの生成

    新リリースでは、選択した関数について注釈付きソースコードを生成し、その結果を編集ウィンドウに表示できるようになりました。ソースコードには、「関数リスト」と同じ測定値セットを使った、行単位の測定値の注釈が付きます。コンパイラの並列化のコメントと Fortran 95 の copyin/copyout のコメントも、ソースとインタリーブされた状態で入ります。ソースコードディスプレイでは、-g によるコンパイルを必要とし、最適化コードに対して有効となります (-g では最適化と並列化を使用不可にすることはできなくなりました)。

    注釈付き逆アセンブリの生成

    選択した関数について注釈付き逆アセンブリを生成し、その結果を編集ウィンドウに表示できるようになりました。逆アセンブリには、「関数リスト」と同じセットを使った、命令単位の測定値の注釈が付きます。また逆アセンブリには、コンパイラのコメントとインタリーブされたソースも入ります。

    測定値

    Sun WorkShop 6 アナライザでは、以下のとおり、新しい測定値が加わり、既存の測定値が変更されました。

    その他の変更事項

    Sun WorkShop 6 標本アナライザでは、その他にも以下の変更を加えています。

    インストール

    表 2-13 は、Sun WorkShop 6 の新しいインストール機能です。

    表 2-13   インストールの新機能
    機能 説明
    Web Start Web Start は、新しい GUI インストールソフトウェアです。
    FLEXlm 7.0 FLEXlm 7.0 は、Sun WorkShop 6 とともに提供されるライセンスマネージャソフトウェアです。


    HTML 形式のドキュメント

    Sun WorkShop 6 および Sun WorkShop TeamWare 6 のマニュアル、マニュアルページと README は、テキスト形式のファイルとともに HTML 形式のファイルも用意されています。オンラインヘルプはこのバージョンから HTML 形式に変わっています。

    HTML 形式で利用できる Sun WorkShop 6 のマニュアルを表示するには、NetscapeTM Communicator 4.0 または同互換の Netscape バージョンが必要です。NetscapeTM Communicator は SolarisTM 7 オペレーティング環境 と SolarisTM 8 オペレーティング環境に含まれています。

    Solaris 2.6 オペレーティング環境を使用していて Netscape Communicator 4.0 または同互換バージョンがお手元にない場合は、以下の Netscape Communications Corporation の Web サイトから Netscape Communicator 4.7 をダウンロードできます。

    http://www.netscape.com/download/index.html

    Sun WorkShop のオンラインヘルプ (HTML 形式) では、JavaScript が使用可能になっていなければなりません。JavaScript は Netscape のデフォルトの設定では、使用可能になっています。

    HTML 形式のインストール済み Sun WorkShop 6 ドキュメントにアクセスするには、ブラウザで次のファイルを指定してください。

    file:/opt/SUNWspro/docs/index.html

    Sun WorkShop ソフトウェアが /opt 以外のディレクトリにインストールされている場合は、システム管理者に実際のパスをお尋ねください。


    サン・マイクロシステムズ株式会社
    Copyright information. All rights reserved.
    ホーム   |   目次   |   前ページへ   |   次ページへ   |   索引