Sun WorkShop の新機能 |
新機能のご紹介
このマニュアルでは、Sun WorkShopTM 6 のコンパイラとツールの新しい機能について説明します。これらの新機能については、表にまとめられています。一部の機能については、各表の次の節で詳しく説明しています。
Sun WorkShop 6 リリースへのアップグレードをお勧めする理由
- ANSI/ISO C++ への準拠の強化
- OpenMP 並列化指令が追加された Fortran 95 コンパイラ
- UltraSPARCTM III のサポート
- より使いやすくなったプログラミング環境
- 新しいパフォーマンス解析ツール
- Fortran 95 区間演算
- インストールの改良
- HTML 形式による マニュアル、マニュアルページ、README、オンラインヘルプ
Sun WorkShop 6 C コンパイラ
表 1 は、Sun WorkShop 6 C コンパイラの新機能です。これらの機能により、C コンパイラと
lint
ソースコードチェッカーがより優れたものとなっています。
Sun WorkShop 6 C++ コンパイラ
表 2 では、Sun WorkShopTM 6 C++ コンパイラのリリースで利用できる新機能を一覧表示します。一部の製品の機能については、表の次の節でさらに詳しく説明しています。
部分的特殊化
テンプレートは完全に特殊化できます。つまり、特定のテンプレート引数に対する実装が定義されました。以下のコード例を参照してください。
template<class T, class U> class A { ... }; //初期テンプレートtemplate<> class A<int, double> { ... }; //特殊化テンプレートは部分的に特殊化することもできます。つまり、一部のテンプレートパラメータのみを指定したり、複数のパラメータを特定の型のカテゴリに制限することができます。その結果行われた部分的特殊化は、それ自体もテンプレートとして使用できます。以下は、上記の例の初期テンプレートを使用した例です。
- 初期テンプレートパラメータが
int
型である場合の特殊テンプレートの定義。以下のコード例を参照してください。
template<classU> class A<int> { ... };- 初期テンプレートパラメータが任意のポインタ型である場合の特殊なテンプレートの定義。以下のコード例を参照してください。
template<class T, class U> class A<T*> { ... };- 初期テンプレートパラメータが任意の型のポインタのポインタで、2 番目のテンプレートパラメータが
char
型である場合の特殊なテンプレートの定義。以下のコード例を参照してください。
template<class T> class A<T**, char> { ... };明示的関数テンプレート引数
関数の引数からテンプレートの引数を推察できない場合、
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 は、形式の違いを認識できないので、エラーを出します。
Sun WorkShop 6 Fortran コンパイラ
Sun WorkShop 6 には、Sun WorkShopTM 6 Fortran 77 と Sun WorkShopTM 6 Fortran 95 の各コンパイラが含まれます。
Sun WorkShop 6 Fortran 77 コンパイラ
表 3 は、Sun WorkShop 6 Fortran 77 コンパイラの新機能です。一部の機能について詳細は、「Fortran コンパイラの新機能」を参照してください。
1) ライセンス供与Fortran 77 コンパイラの並列化機能には、Sun WorkShop HPC ライセンスが必要です。Sun WorkShop 6 Fortran 95 コンパイラ
表 4 は、Sun WorkShop 6 Fortran 95 コンパイラの新機能です。一部の機能について詳細は、「Fortran コンパイラの新機能」を参照してください。
Fortran コンパイラの新機能
以下の節では、Fortran コンパイラのいくつかの新機能についてさらに詳しく説明します。
入出力操作に対する FORM="BINARY" の効果
WRITE
文:データはバイナリとしてファイルに書き込まれ、出力リストに指定されているバイト数が転送されます。READ
文:データは入力リスト上の変数に読み込まれ、同リストで要求されているバイト数が転送されます。ファイルにはレコードマークがないので、「記録終了」のエラー検出は行われません。検出対象のエラーは、「ファイル終了」やシステム異常エラーだけです。INQUIRE
文:FORM="BINARY"
で開いたファイルに対するINQUIRE
は、以下を返します。
FORM="BINARY"
と
ACCESS="SEQUENTIAL"
SEQUENTIAL="YES"
DIRECT="NO"
FORMATTED="NO"
UNFORMATTED="YES"
RECL=NEXTREC= は未定義。
BACKSPACE
文:使用は許可されていないので、エラーが出力されます。ENDFILE
文:通常どおり、現在位置でファイルを切り捨てます。REWIND
文:通常どおり、データの先頭にファイルを再配置します。OpenMP
このリリースの Fortran 95 は、ソースコード指令のセット、実行時ライブラリルーチン、環境変数などをはじめとする、明示的並列化のための OpenMP インタフェースを実装しています。OpenMP の暫定ドキュメントが README として入っています。OpenMP の仕様については、
http://www.openmp.org/
を参照してください。Fortran コンパイラで受け付ける OpenMP を含むすべての指令については、『Fortran ユーザーズガイド』の付録 E にまとめられています。Fortran コンパイラの並列化機能について詳しくは、『Fortran プログラミングガイド』を参照してください。
注 - Fortran のコンパイラの並列化機能には、Sun WorkShop HPC ライセンスが必要です。
区間演算拡張機能
このリリースの Fortran 95 には、区間演算拡張機能が実装されています。「Sun Workshop 6 Fortran 95 区間演算」を参照してください。
ハイパーリンクされたコンパイラの診断
Sun WorkShop を使用してアプリケーションの構築やコンパイルを行う場合、「構築」ウィンドウ内の
f77
とf95
の診断メッセージにヘルプページへのハイパー リンクが追加されました。このエラーメッセージをクリックすると、ヘルプブラウザが立ち上がり、特定のエラー診断に関する詳しい情報が表示されます。Fortran プラットフォーム
この 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
) に問い合わせてください。Sun Workshop 6 Fortran 95 区間演算
組み込み
INTERVAL
データ型のサポートは、Sun WorkShop 6 Fortran 95 コンパイラの新しい機能です。新しい 2 つのコンパイラフラグ
-xia
と-xinterval
により、コンパイラは区間特有の言語を認識し、区間命令を実現するためのコードを生成します。区間演算とは
区間演算を使用すると、各区間に含まれる数の集合について算術演算の値が求められます。区間とは、その区間の下位の境界から上位の境界までの間にあるすべての実数の集合を意味します。区間演算結果はどれもすべての可能な結果の集合が必ず含まれるひとつの新しい区間です。
Sun WorkShop 6 Fortran 95 を使用すれば、区間プログラムを作成して算術演算の値で厳密な境界を計算するのは容易です。
- 変数を
INTERVAL
型として宣言します。INTERVAL
組み込み関数や演算子、関係演算子、および書式編集記述子を使用して通常の Fortran コードを作成します。-xia
コマンド行オプションを使用してコードをコンパイルします。最適な結果を得るためには、狭幅の区間結果を計算する既存の区間アルゴリズムを使用します。そして、この狭幅の区間結果を計算するアルゴリズムを考案することが、区間分析の主な目的です。
区間演算が重要である理由
- 区間演算を使用すると、入力データエラー、マシンの丸め、それらの相互作用など、あらゆるソースからのエラーに確実な範囲を設けてコンピュータで計算を実行 できます。
- 区間アルゴリズムにより、非線形的な問題の解決、たとえば、方程式の非線形システムや非線形プログラミングを行なうことが可能になります。
区間がより一般的になるにつれて、区間ソルバーのライブラリが線形および非線形を問わずあらゆる問題に対するシャープな区間解決法の計算に利用できるようになり、さらにエラーのあらゆる原因を考慮できるようになります。これらのライブラリを用いることによって、科学者やエンジニア、商用アプリケーションの開発者は、それまでは手の届かなかった問題を解決するプログラムを開発できるようになります。
詳細情報の入手先
『Fortran 95 区間演算プログラミングリファレンス』または区間演算の README に記載されているオンラインリソースの一覧を参照してください。
Sun Workshop 6
dbx
表 5 は、Sun WorkShop 6 dbx の新機能です。
Sun WorkShop 6
表 6 は、Sun WorkShop 6 の新機能です。一部の製品の機能については、表の次の節でさらに詳しく説明しています。
テキスト編集
以下の 2 つの節は、新しく追加された Sun WorkShop 6 テキスト編集機能を説明しています。
式のバルーン評価
式のバルーン評価は、テキストエディタにおいて現時点でマウスでポイントしている数式の現在値を即時に表示します。数式のタイプを調べたり、ポインタを間接参照したりすることもできます。詳細については、オンラインヘルプの「テキスト編集」の「式のバルーン評価」の使用を参照してください。
NEdit と Vim テキストエディタ
テキストエディタは、構築、デバッグ、ブラウズを含む Sun WorkShop 統合開発支援ツールセットの中心に位置します。Sun WorkShop プログラミング環境では、数式の評価、ブレークポイントの設定、関数の検討をテキストエディタから行うことができます。
X/Motif システムへのグラフィカルユーザーインタフェースを備えたプレーンテキストエディタである NEdit、および UNIX システムでの改良版 vi 標準テキストエディタである Vim は、このリリースでの新しい統合テキストエディタです。以下は、Sun WorkShop 6 とともに提供される統合エディタのリストです。
- NEdit (version 5.1)
- XEmacs (version 20.4 またはこれと互換のあるバージョン)
- GNU Emacs (version 19.28 またはこれと互換のあるバージョン)
- Vi
- Vim (version 5.3、グラフィカルユーザーインタフェースオプションあり)
各エディタの選び方の詳細については、以下を参照してください。
プログラムのデバッグ
以下の節は、新しく追加されたデバッグ機能について説明しています。
「ボタン編集」ウィンドウ
「ボタン編集」ウィンドウにより、エディタウィンドウと「デバッグ」ウィンドウのツールバーをカスタマイズしたり、「デバッグ用カスタムボタン」ウィンドウのボタンを追加、削除、または編集したりできるようになりました。
詳細については、「ツールバーオプション」を参照してください。
「デバッグ」ウィンドウ
以下の節では、「デバッグ」ウィンドウに組み込まれたいくつかの変更について説明しています。
セッションステータスとコンテキスト情報
デフォルトの設定では、「状態」、「停止位置」、「評価コンテキスト」、「セッション数」などの情報は、これまでのようにはツールバーの下に表示されません。この情報を表示させたい場合は、「デバッグオプション」ダイアログの「ウィンドウレイアウト」タブの中の「画面の上部にコンテキスト / ステータスの 3 行を表示」を選択します。詳細については、Sun WorkShop オンラインヘルプの「デバッグウィンドウの使い方」の「セッションステータス情報とコンテキスト情報の表示」を参照してください。
「データ」区画
「データ」区画は、「データ履歴」と「プログラム入出力」のタブ、およびオプションの「データ表示」タブと置き換えられました。
- 「データ履歴」タブには、「データ」区画が表示されます。詳細については、Sun WorkShop オンラインヘルプの「デバッグウィンドウの使い方」の「データ履歴」タブを参照してください。
- 「プログラム入出力」タブは、別の「プログラム入出力」ウィンドウではなく、「デバッグ」ウィンドウ内にプログラムの入出力に関する情報を表示します。デフォルトではこのタブにプログラムの入出力情報が表示されるようになりましたが、「デバッグオプション」ダイアログボックスの「デバッグ出力」タブの「プログラム出力」区画を使用して、プログラムの入出力を行なう場所を選択できます。詳細については、Sun WorkShop オンラインヘルプの「デバッグウィンドウの使い方」の「データ履歴」タブを参照してください。
- 「データ表示」タブは、「デバッグオプション」ダイアログボックスの「データ表示ウィンドウ」タブの「データ表示ウィンドウ 以下として表示」区画で「デバッグウィンドウのタブ」を選択した場合に (別の「データ表示」ウィンドウの代わりに) 含まれます。詳細については、Sun WorkShop オンラインヘルプの「デバッグウィンドウの使い方」の「データ履歴」タブを参照してください。
セッション区画とスレッド区画
「セッション」区画と「スレッド」区画を切り替えるためのラジオボタンが、「セッション」、「スレッド」、および「ブレークポイント」のタブと置き換えられました。
- 「セッション」タブは「セッション」区画を表示します。このタブの上で右マウスボタンを押すと、ポップアップメニューが表示されます。「セッションタブ」を参照してください。詳細については、Sun WorkShop オンラインヘルプの「デバッグウィンドウの使い方」の「データ履歴」タブを参照してください。
- 「スレッド」タブは「スレッド」区画を表示します。「スレッドタブ」を参照してください。詳細については、Sun WorkShop オンラインヘルプの「デバッグウィンドウの使い方」の「データ履歴」タブを参照してください。
- 「ブレークポイント」タブは、プログラムに割り当てられているブレークポイントやトレースポイントをスクロール可能な一覧として表示します。このタブの上で右マウスボタンを押すと、ポップアップメニューが表示されるので、各ブレークポイントごとに瞬時に使用可能、使用禁止、削除、あるいはソースを表示することができます。このポップアップメニューには「追加」項目が含まれており、この項目を選択すると、ブレークポイントの追加、使用可能、使用禁止、変更、削除などの操作を行える別の「ブレークポイント」ウィンドウが表示されます。詳細については、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 が作成してくれるメークファイルによる新しいプログラムの作成や単純なプログラムの構築 (オンラインヘルプの「プロジェクトの取り扱い」の「新規プロジェクトの作成」を参照)。
- 既存のプロジェクトの設定値の変更。設定値には、プロジェクトのコンパイル方法やソースブラウズ情報を生成させるかどうかの選択があります (オンラインヘルプの「プロジェクトの取り扱い」の「WorkShop のターゲット」を参照)。
このほか、プロジェクトを読み込まない状態で Sun WorkShop 6 プログラミング環境を使用することも可能です。ピックリストは、開発プロジェクトに関連するファイル、プログラム、ディレクトリ、ターゲットを記録します (詳細については、「WorkShop のターゲット」を参照)。各ファイルをアクセスし、ターゲットを構築し、実行形式ファイルをデバッグするといった操作を、WorkShop のメインウィンドウから行なうことができます。構築ターゲット情報は常に一定ではないため編集できません。この情報は、構築ターゲットへアクセス、追加、削除するたびに変更されます。
Sun WorkShop 6 TeamWare
表 7 は、Sun WorkShop 6 TeamWare の新機能です。
メニュー再編成の設定
Sun Workshop TeamWare 6 では、次のような変更がメニューに加えられています。
プットバックの妥当性検査
プットバック妥当性検査をオンにすると許可されたワークスペースだけがプットバックを行えるようになります。プットバックを行う場合、「パスワード」(統合要求 ID:Integration Request Identifier) の入力を指示するプロンプトが表示されます。この機能は統合要求 ID を記録するだけで、チェックは行いません。統合要求 ID のチェックを行うには、そのための妥当性検査プログラムを自分自身で作成する必要があります。詳細については、Sun WorkShop オンラインヘルプの「ワークスペースの管理」の「プットバックの妥当性検査」を参照してください。
SCCS 管理フラグ
SCCS 管理フラグを設定するには、「バージョン管理」で「ファイル」 「ファイル情報」を選択します。たとえばプットバック中に「バージョン管理」に MR (修正要求文字列) の入力要求を出させるようにするには、妥当性検査プログラムの名前を「妥当性検査プログラム」テキストフィールドに指定してください。
ワークスペースの履歴表示
このリリースの Sun WorkShop TeamWare には、ワークスペース履歴ファイルに入っている情報を簡単に表示できる機能が含まれています (「ワークスペース」 「履歴の表示」を選択)。ワークスペース履歴ビューワを利用すれば、ワークスペースのトランザクション履歴、トランザクション詳細、コメント、およびコマンドログを表示できます。エントリのソートやフィルタリングができるほか、コメントやコマンドログの検索も行えます。
Sun WorkShop 6 Visual
表 9 では、Sun WorkShop 6 Visual で利用できる新機能を一覧表示します。一部の製品の機能については、表の次の節でさらに詳しく説明しています。
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 にマップするための次のサポートが追加されています。
Sun WorkShop 6 Performance Library
Sun Performance LibraryTM は、線形代数およびその他数に集中した問題を解決するための最適化された高速数値演算のサブルーチンです。Sun Performance Library は、
http://www.netlib.org
にある Netlib で利用できるパブリックドメインアプリケーションのコレクションに基づいています。これらのルーチンは機能強化され 、バンドルされて Sun Performance Library となりました。表 11 は、Sun WorkShop 6 Performance Library の新機能です。一部の製品の機能については、表の次の節でさらに詳しく説明しています。
Fortran 95 言語機能サポート
F95 の文
USE SUNPERG
をプログラムに含めることにより、Performance Library のモジュールと定義を利用することができます。これにより、以下の機能が得られます。
- 型への非依存性。FORTRAN 77 のルーチンでは、名前の一部として型を指定する必要がありました。Fortran 95では、特定のデータ型のルーチンは、そのルーチンに引き渡した引数のデータ型によって決めることができます。
- コンパイル時チェック。FORTRAN 77 では、一般的には、どのようなパラメータを特定のルーチンに引き渡すべきかをコンパイラが知ることはできません。Fortran 95 では、
USE SUNPERF
文を使用することにより、コンパイラは各 Sun Performance Library ルーチンに引き渡される各パラメータの数、型、サイズ、および形状がどのようなものであるべきかを知ることができます。コンパイラは、呼び出しの内容をその期待値と照合し、コンパイル中にエラーを見つけ出します。- 省略可能なパラメータ。FORTRAN 77 では、すべてのパラメータをすべてのルーチンについて順に指定する必要があります。Fortran 95 では、一部のパラメータが省略可能となっています。Sun Performance Library では、すべての増分パラメータ (
INCX、INCY
など)、ワークスペース、先頭次元 (LDA
、LDB
など)、長さ/サイズパラメータが省略可能です。これらの機能の使い方や例については、『Sun Performance Library ユーザーズガイド』を参照してください。
Sun Performance Library のライセンス供与に関する変更。
Sun Performance Library は、もはやライセンスを必要としません。しかし、
-1sunperf
ではなく、引き続き-xlic_lib=sunperf
を使用してリンクする必要があります。-xlic_lib=sunperf
を使用して、次のことを確実に行ってください。
- アプリケーションを正しいサポートライブラリにリンクします。このリリースでは、Sun Performance Library は Fortran 77 ではなく Fortran 95 でコンパイルされています。
-xlic_lib
を使うと、Fortran 77 の実行時ライブラリではなく Fortran 95 の実行時ライブラリにリンクします。- 正しいバージョンの Sun Performance Library を使用します。
-subparallel
を使って構築したプログラムと-subparallel
を使わないで構築したプログラム、および異なる-xarch
の値では、サポートする Sun Performance Library のバージョンが異なります。-xlic_lib=sunperf
を指定すると、ドライバは、使用中のコマン ド行オプションに最適な Sun Performance Library のバージョンを使用します。Sun WorkShop 6 Analyzer
Sun WorkShop 6 Analyzer は、Sun WorkShop 5.0 に装備された Analyzer を全面的に書き換えたものです。
表 12 は、Sun WorkShop 6 Analyzer の新機能です。一部の製品の機能については、表の次の節でさらに詳しく説明しています。
関数リスト
新リリースでは、「関数リスト」が主ディスプレイであり、Analyzer 起動時にデフォルトで表示されます。
関数リストでは同時に複数の種類の測定値が表示されるので、ディスプレイの型だけを変更するように「データ」リストボックスが変更されました。「ディスプレイリスト」オプションメニューは削除されました。
このリリースでは、「関数リスト」に記載されている測定値を秒/カウントによる絶対値またはプログラム全体の値に対する百分率、またはその両方の形で確認できます。「関数リスト」ディスプレイから「メトリックの選択」ダイアログボックスを呼び出して、以下が実行できます。
「呼び出し元 - 呼び出し先」ウィンドウ
「関数リスト」から新機能である「呼び出し元 - 呼び出し先」ウィンドウにアクセスできます。このウィンドウには、関数の呼び出し元からその関数の呼び出し先に測定値がどのように帰属されるのかが示されます。「呼び出し元 - 呼び出し先」ウィンドウでは、選択されている関数がディスプレイ中央に表示され、この関数の呼び出し側は上のパネルに、この関数の呼び出し元は下のパネルに示されます。選択された関数について、この関数内部における使用率が、帰属測定値によって示されます。上の呼び出し元については、選択されている関数内とこの関数が呼び出す全関数内における使用率が、コールスタックを呼び出し元までたどって示されます。下の呼び出し元については、選択されている関数からの呼び出しに帰属する呼び出し元測定値の割合が示されます。
呼び出し元パネルと呼び出し先パネルのどちらかで関数をクリックすれば、「呼び出し元 - 呼び出し先」ウィンドウでプログラムの構造内をナビゲートできます。ディスプレイは、新たに選択された関数を基準としてセンタリングし直します。
注釈付きソースコードの生成
新リリースでは、選択した関数について注釈付きソースコードを生成し、その結果を編集ウィンドウに表示できるようになりました。ソースコードには、「関数リスト」と同じ測定値セットを使った、行単位の測定値の注釈が付きます。コンパイラの並列化のコメントと Fortran 95 の copyin/copyout のコメントも、ソースとインタリーブさ れた状態で入ります。ソースコードディスプレイでは、
-g
によるコンパイルを必要とし、最適化コードに対して有効となります (-g
では最適化と並列化を使用不可にすることはできなくなりました)。注釈付き逆アセンブリ
選択した関数について注釈付き逆アセンブリを生成し、その結果を編集ウィンドウに表示できるようになりました。逆アセンブルには、「関数リスト」と同じセットを使った、命令単位の測定値の注釈が付きます。また逆アセンブルには、コンパイラのコメントとインタリーブされたソースも入ります。
測定値
Sun WorkShop 6 Analyzerでは、以下のとおり、新しい測定値が加わり、既存の測定値が変更されました。
- 実行プロファイルデータは、新リリースでは時間ベースのプロファイリングと呼びます。実行プロファイルデータには常に呼び出された関数の回数が含まれます。
- ヒストグラムデータは、新リリースでは排他的測定値と呼びます。
- 累積データ測定値は、新リリースでは包含的測定値と呼びます。
- クロックベースのプロファイルデータは以下の測定値を生成します。
- 新しい種類のデータであるスレッド同期待機遅延追跡が装備され、以下の測定値を生成します。
その他の変更事項
Sun WorkShop 6 Analyzer では、その他にも以下の変更を加えています。
- 「概要」ディスプレイでサンプルをクリックしてサブセットを選択する方法は、このリリースでは使用できなくなっています。「標本の選択」テキストボックスと矢 印ボタンは新リリースの Analyzer には備わっていないので、「表示」メニューに選択コマンドが表示されることはありません。サンプル、スレッド、LWP のフィルタ選択は、すべて「フィルタの選択」ダイアログボックスで行なってください。
- Analyzer の中から実験記録ファイルを削除できなくなっています。「実験」 「削除」 コマンドはなくなり、代わりに Analyzer から実験を解除できる 「実 験」 「解除」 コマンドが用意されています。
er_rm
コマンドによって削除しないかぎり、実験記録ファイルはディスク上に存在したままとなります。er_export
ASCII データのフォーマットが完全に変更されました。(er_export
はデバッグをする場合に限り使用されます)。Sun WorkShop 6 インストール
表 13 は、Sun WorkShop 6 の新しいインストール機能です。
表 13 Sun WorkShop 6 インストール Web Start Web Start は、新しい GUI インストールソフトウェアです。 FLEXlm 7.0 FLEXlm 7.0 は、Sun WorkShop 6 とともに提供されるライセンスマネージャソフトウェアです。
Sun WorkShop 6 マニュアル、マニュアルページ、README、および HTML オンラインヘルプ
Sun Workshop および Sun Workshop TeamWare のマニュアル、マニュアルページと README は、テキスト形式のファイルととともに HTML 形式のファイルも用意されています。オンラインヘルプははこのバージョンから HTML 形式に変わっています。
この HTML ドキュメントには、
<インストールディレクトリ>/SUNWspro/ws6/lib/locale/ja/html/index.html
を出発点としてアクセスできます。デフォルトの <インストールディレクトリ> は/opt
です。
注 - この節の情報は、使用中の Sun WorkShop 6 の製品が/opt
ディレクトリにインストールされているとみなします。Sun WorkShop 6 ソフトウェアが/opt
にインストールされていない場合は、システム管理者にお問い合わせください。
HTML 形式で利用できる Sun WorkShop のマニュアルを表示するには、NetscapeTM Communicator 4.0 または同互換の Netscape バージョンが必要です。NetscapeTM Communicator は SolarisTM 7 オペレーティング環境 と SolarisTM 8 オペレーティング環境に含まれています。
Solaris 2.6 オペレーティング環境を使用していて、Netscape Communicator 4.0 または同互換バージョンがお手元にない場合は、(Solaris 2.5.1 オペレーティング 環境用の) Netscape Communicator 4.7 をダウンロードできます。Solaris 2.5.1 オペレーティング環境用の Netscape Communicator 4.7 は、Solaris 2.6 オペレー ティング環境と互換性があります。
Netscape Communicator 4.7 をダウンロードするには、以下の Netscape Communications Corporation の Web サイトを参照してください。
http://www.netscape.com/download/index.html
Sun WorkShop のオンラインヘルプ (HTML 形式) では、JavaScript が使用可能になっていなければなりません。JavaScript は Netscape のデフォルトの設定では、使用可能になっています。
サン・マイクロシステムズ株式会社 Copyright information. All rights reserved. |
ホーム | 目次 | 前ページへ | 次ページへ | 索引 |