gawkをインストールする
この付録では、サポートされている様々なプラットフォームにgawkをイ
ンストールするやり方を説明する。本来の開発者はUNIX(といつかは、GNU)をサ
ポートし、他のプラットフォームに対する移植は寄付(contribute)によって行わ
れている。gawkの配布キット中にある`ACKNOWLEDGMENT'というファ
イルには各プラットフォームへの移植者とその電子メイルアドレスがリストアッ
プされている、彼らの名前はセクション 問題やバグの報告を参照.
にもある。
gawk の配布パッケージ
このセクションではまずgawkの配布パッケージの入手と展開の方法。
そしてサブディレクトリ中のファイルについて説明する。
gawk Distributiongawkを注文することもできる。
ソフトウェアの配布はUNIX、MS-DOS、VMSに対するものを
テープかCD-ROMで受けることができる。
注文先の住所は
直接 FSF に注文することは、FSFに対する援助となり、 また、より多くのフリーソフトウェアの生産の一因になる。Free Software Foundation
59 Temple Place--Suite 330
Boston, MA 02111-1307 USA
Phone: +1-617-542-5942
Fax (including Japan): +1-617-542-2652
E-mail:gnu@gnu.org
gnudist.gnu.orgというホストの`/gnu/gawk'というディレクトリ
から匿名ftpを使ってgawkを入手することができる。
以下にGNUソフトウェアを入手できるftpサイトの一覧を載せる。
"site:directory"のような形の場合、
directoryはGNUソフトウェアが置かれているディレクトリを
表わしている。
あなたがいる場所に地理的に近いサイトを使うのが良いだろう。
cair-archive.kaist.ac.kr:/pub/gnu
ftp.cs.titech.ac.jp
ftp.nectec.or.th:/pub/mirrors/gnu
utsun.s.u-tokyo.ac.jp:/ftpsync/prep
archie.au:/gnu
archie.oz or archie.oz.au for ACSnet)
ftp.sun.ac.za:/pub/gnu
ftp.technion.ac.il:/pub/unsupported/gnu
archive.eu.net
ftp.denet.dk
ftp.eunet.ch
ftp.funet.fi:/pub/gnu
ftp.ieunet.ie:pub/gnu
ftp.informatik.rwth-aachen.de:/pub/gnu
ftp.informatik.tu-muenchen.de
ftp.luth.se:/pub/unix/gnu
ftp.mcc.ac.uk
ftp.stacken.kth.se
ftp.sunet.se:/pub/gnu
ftp.univ-lyon1.fr:pub/gnu
ftp.win.tue.nl:/pub/gnu
irisa.irisa.fr:/pub/gnu
isy.liu.se
nic.switch.ch:/mirror/gnu
src.doc.ic.ac.uk:/gnu
unix.hensa.ac.uk:/pub/uunet/systems/gnu
ftp.inf.utfsm.cl:/pub/gnu
ftp.unicamp.br:/pub/gnu
ftp.cs.ubc.ca:/mirror2/gnu
col.hp.com:/mirrors/gnu
f.ms.uky.edu:/pub3/gnu
ftp.cc.gatech.edu:/pub/gnu
ftp.cs.columbia.edu:/archives/gnu/prep
ftp.digex.net:/pub/gnu
ftp.hawaii.edu:/mirrors/gnu
ftp.kpc.com:/pub/mirror/gnu
ftp.uu.net:/systems/gnu
gatekeeper.dec.com:/pub/GNU
jaguar.utah.edu:/gnustuff
labrea.stanford.edu
mrcnext.cso.uiuc.edu:/pub/gnu
vixen.cso.uiuc.edu:/gnu
wuarchive.wustl.edu:/systems/gnu
gawkは
GNU Zipプログラム、gzipで圧縮したtarファイルとして
配布されている。
配布キットを受け取ったら(たとえば`gawk-3.0.4.tar.gz')、
最初にgzipを使ってファイルを伸長し、さらにtarを使って
展開する。これを以下のようなパイプラインにgawkの配布キットを
通すことでできる。
# System Vでは、tarのフラグに'o'を追加する gzip -d -c gawk-3.0.4.tar.gz | tar -xvpf -
これにより、`gawk-3.0.4'という名前のディレクトリが カレントディレクトリに作成される
配布キットのファイル名は`gawk-V.R.n.tar.gz'.のよ
うな形式であり、VはgawkのメジャーバージョンをRはV
でのリリース番号を、そしてnは小規模なバグ修正などが行われた
パッチレベルを表わしている。現在のパッチレベルは4
であるが、配布キット を入手するときにはもっとも高いバージョン、リリース
番号、パッチレベルの
ものを入手すべきである(リリース番号が90以上のものは"ベータ"レベルであり、
non-production softwareであることを表わている。実験することを考えていな
いかぎり、このようなバージョンを入手すべきではない)。
もしUNIXシステムを使っていないのなら、そのシステム向けに アレンジされたものを入手して展開する必要があるだろう。 あなたのそばにいるエキスパートに相談するのが良いだろう。
gawk Distribution
gawkの配布キットには、幾つかのCソースファイル、
ドキュメントファイル、
コンフィギュレーションに関連したファイルとサブディレクトリ
(セクション UNIX上での gawkのコンパイルとインストールを参照)、
UNIX以外のオペレーティングシステム用のサブディレクトリと
ファイルがある。
gawkの実際のソースコードである。
gawkのため、
その他のファイルは様々なハードウェア、ソフトウェアの
ためのものである。
gawkが既に移植され、test suiteの実行も成功して
いるシステムのリスト。
gawkの変更点のリスト。
gawkの性能上の限界となる項目のリスト。
これらのほとんどのものはハードウェアやオペレーティングシステム
ソフトウェアによるもので、gawkそれ自身の限界ではない。
awkの仕様で正しくないところと、
gawkがその問題をどのように厚かっているかの説明
gawkがAI(Artificial Intelligence, 人工知能)プログラミングに
向いた言語であることを示す短い発言。
awkリファレンスのための、troffソース。
GNU troff (groff)のような新しいバージョンのtroffは
カラーバージョンを生成することが要とされる。あなたの使っているのが
古いtroffであった場合の操作説明は`README.card'という
ファイルを参照のこと。
gawkを説明するマニュアルページのtroffのソース。
これはUNIXユーザーの便宜のため配布されている。
makeinfoを使用する。
igawkプログラムに関して説明している
マニュアルページのtroffソース。
gawkを様々な
UNIXシステム用にコンフィグレーションするときに使用するものである。
詳しい説明は
セクション UNIX上での gawkのコンパイルとインストールを参照.
configureが`Makefile'を生成するのに使用する
`Makefile.in'が含まれる。gawkの作成手順の一部として、
セクション awkの関数ライブラリを参照,
からライブラリ関数が、
セクション ライブラリを使う簡単な方法を参照,
からigawkプログラムが、そ
れらを使用するためにファイルの展開が行われる。
gawkを作成するときに必要なファイル。
詳しくは
セクション Atari STでの gawk のインストールを参照.
gawkを作成するときに必要なファイル。
詳しくは
セクション MS-DOS および OS/2 でのインストールとコンパイルを参照.
gawkを作成するときに必要なファイル。
詳しくは
セクション VMS上でのgawkのコンパイルとインストールを参照.
gawkのテスト用スクリプトのセット。
作成したgawkに対してテストを実行するには、gawkの
トップディレクトリから`make check'とタイプすれば良い。
gawkが`make chekck'で行ったテストに合格すれば、
移植(またはインストール)が成功したと考えてよい。
gawkのコンパイルとインストール
通常は、gawkをコンパイルとインストールを行うには
たった二つのコマンドをタイプするだけでできる。しかし、
あなたの使っているのが一般的なシステムでない場合、
あなた自信でgawkをconfigureする必要があるかもしれない。
gawk for Unix
gawkの配布キットを展開した後で、`gawk-3.0.4'へ
cdする。gawkはconfigureプログラムを実行することに
より、使用しているUNIXシステム用に自動的にコンフィグレーションを行う。
configureはBourne シェルのスクリプトであり、GNU の
autoconfを使用して自動的に生成されたものである
(autoconfソフトウェアは、Free Software Foundationから入手できる
Autoconf--Generating Automatic Configuration Scripts,
で詳しく説明されている)
gawkのコンフィグレーションは、単にconfigureを実行するだけである。
sh ./configure
これにより使用しているシステム用に調整された`Makefile' と
`config.h'が作成される。`config.h'というファイルは使用してい
るシステム に関する様々な項目を記述している。あなたは`Makefile'中
にあるコンパイラに渡すコマンドラインオプション(最適化のレベルとかデバ
ッグ用にコンパ イルするとか)を制御するCFLAG変数を変更したくなる
ことがあるかもしれない。
その代わりに、CC や CFLAGSのようなmakeの変数の
大部分に対しては、configureの実行するときにコマンドラインで
指定することで、(オプションなどの)追加を行うことができる。
CC=cc CFLAGS=-g sh ./configure
詳しくはgawkの配布キットの`INSTALL'というファイルを
参照のこと。
configureを実行した後で、編集された`Makefile'を
make
のようにして使用して
少し待てば、gawkの実行ファイルができあがる。
それですべては終わり!
(もしこの手順がうまくいかなければ、バグレポートを送って欲しい。
セクション 問題やバグの報告を参照.)
(This section is of interest only if you know something about using the C language and the Unix operating system.)
gawkのソースコードは、通常可能な限り標準に従おうとする。これは、
gawkはANSI 標準Cライブラリや、POSIX 標準オペレーティングシステムイ
ンターフェースで規定されているライブラリ関数を使用するということである。
ANSI Cコンパイラを使っているときには、関数プロトタイプはコンパイル時のチ
ェックをより厳密にするために使われる。
多くのUNIXシステムでは、ANSIとPOSIXを両方ともサポートしているということ
はない。gawk配布キットの`missing'というサブディレクトリには、
そういった欠けていることが多いサブルーチンを置き換えるものが入っている。
configureによって作成される`config.h'というファイルは、gawk
をコンパイルしようとしている特定のオペレーティングシステムの機能を説
明する定義から構成されている。このファイルによって記述されることは三つあ
り、それは正しくインクルードできるように使用できるヘッダーファイル、使用
しているCライブラリで実際に使える標準関数、その他のそして使用しているUNI
Xの種々雑多な事実、という三つである。たとえば、構造体statに@code
{st_blksize}という要素がなかったとすると、`HAVE_ST_BLKSIZE'が
undefineされる。
`config.h'.
Cコンパイラがconfigureを失敗させるようなことがありうるが、それは
おそらくライブラリ関数が使用できなくてエラーになるようなことがなかったと
きだろう。これに対処するために、、`custom.h'というファイルを編集す
ることができる。あなたの使うシステムに適切な#ifdefを使い、
configureが定義すべきだがそうなっていない定数を#defineし、
あるい はconfigure定義すべきでないのに定義されているような定数を
#undefにする。`custom.h'は`config.h'により自動的にインク
ルード される。
なにかの理由であなたのシステムではautoconfが作成したconfigure
プログラムがうまく働かない可能性がある。このような問題に直面した場合
には、`configure.in'というファイルをautoconfの入力にする。あ
なたはこのファイルを変更することもできるし、あなたのシステムできちんと動
作する新しいconfigureを生成するこもできる。gawkのコンフィ
グレーションで起きた問題のレポートの方法は、
セクション 問題やバグの報告を参照.。
同じ方法が、`configure.in'や`custom.h'の更新についても使用できる。
gawkのコンパイルとインストール
このセクションでは、VMSの元でのgawkのコンパイルと
インストールの方法を説明する。
gawk on VMS
VMSの元でgawkをコンパイルするために、必要なすべてのCCコマ
ンドとLINKコマンドを発行するDCLコマンドプロシージャ、
MMSユーティリティで使うための`Makefile'がある。ソースディレ
クトリから
$ @[.VMS]VMSBUILD.COM
もしくは
$ MMS/DESCRIPTION=[.VMS]DESCRIP.MMS GAWK
のどちらかを使用する。 使用するCコンパイラに応じて、以下のテーブルにある手順の 何れか一つを使用する。
CC/OPTIMIZE=NOLINEを使用する。
gawkはVAX C V3.2、GNU C 1.40、GNU C 2.3
を使ったVAX/VMS 5.5-1 の元でテストされた。
VMS V4.6以上のものでは変更なしで動作するはずである。
gawk on VMS
gawkをインストールするために、ドル記号で始まるシンボルを持った
DCLの"foreign" コマンドを必要とする。
$ GAWK :== $disk1:[gnubin]GAWK
(`$disk1:[gnubin]'を実際にgawk.exeが置かれている場所に置き換
える。)このシンボルはgawkを実行したいと考えるすべてのユーザーの
`login.com'に置かれるようにする。それによって、ユーザーがログインした
ときはいつでもこれが定義される。あるいは、このシンボルをすべてのユーザー
がgawkを実行できるようにシステムワイドな`sylogin.com'に置く
こともできる。
Optionally, the help entry can be loaded into a VMS help library:
$ LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP
(You may want to substitute a site-specific help library rather than the standard VMS library `HELPLIB'.) After loading the help text,
$ HELP GAWK
will provide information about both the gawk implementation and the
awk programming language.
論理名`AWK_LIBRARU'はawkプログラムのデフォルトの
置き場所を指定することができる。
`-f'オプションで、デバイスやディレクトリパスの情報が
ない形でファイル名が指定されていた場合、gawkは
最初にカレントディレクトリを検索し、そこでファイルが見つからなければ
次いで`AWK_LIBRARY'で指定されるディレクトリを検索する。
これらの両方の検索を行った後でもなおファイルが見つからなかった場合には
gawkはファイル名に`.awk'という拡張子を付加して
ファイルの検索を再度試みる。`AWK_LIBRARY'が定義されていなければ、
ファイルの検索は再検索が行われることなく失敗する。
gawk on VMS
コマンドラインの解釈とクォーティング(quoting)の規則は、
VMSのものと重大な違いがある。そのため、このマニュアルや
他のソースから持ってきたサンプルプログラムは、しばしば
ちょっとした変更が必要となる。この違いは小さなもの(minor)であり、
awkプログラムは正しく実行されるだろう。
以下に幾つかのちょっとしたテストを挙げる。
$ gawk -- "BEGIN {print ""Hello, World!""}"
$ gawk -"W" version
! could also be -"W version" or "-W version"
大文字の場合と、大小文字が混ざっている場合には クォートしなければならないことに注意。
VMSへのgawkの移植には、オリジナルのシェルスタイルインターフェース
(詳しくはヘルプエントリを参照)に加えて、DCLスタイルのインターフェ
ースが含まれている。二つのコマンドライン解析の副作用の一つは、パラメータ
(先のプログラムの様にクォートされた文字列のような)が一つだけしかなかった
ときコマンドは曖昧になる。これに対処するために、通常DCLスタイルの
解析ではなくUNIXスタイルの解析を強制的に行わせる`--'オプションフラ
グが通常は必要となる。もしその他のダッシュタイプのオプション(もしくは処
理対象のファイルのような、複数のパラメータ)があったとすると、それは曖昧
ではなく、`--'も省略することができる。
`-f'オプションによって指定されたawkのプログラムファイルを検
索するときのデフォルトの検索パスは、"SYS$DISK:[],AWK_LIBRARY:"で
ある。論理名`AWKPATH'はこのデフォルトをオーバーライドできる。
`AWKPATH'の書式はカンマで区切られたディレクトリ指定のリストである。
これが定義されているとき、その値は単一の解釈(translation)であって複数の
RMS検索リストではないように、クォートした方が良い。
gawk on VMS POSIX
上にあるような手順を無視したとしても、`vms/gawk.hlp'は
ヘルプライブラリで使うことができる。
必要ならば`chmod +x'を使用して
configureスクリプトを実行可能にしておくこと。
実行は次のようなコマンドで行う。
$ POSIX psx> CC=vms/posix-cc.sh configure psx> make CC=c89 make gawk
最初のコマンドは、configureの期待するCコンパイラを作るためのスクリプ
トを使ってテンプレートから`config.h'と`Makefile'を生成する。
二番目のコマンドはCコンパイラを直接使ってgawkのコンパイルと
リンクを行う。このとき、makeの出すCCを再定義できない
とい警告は無視する。configureは実行に際して非常に長い時間が
かかるけれども、少なくともそれが実行されているということを示す
フィードバックがある。
これはVAX/VMS V6.2, VMS POSIX V2.0 及び DEC C V5.2.でテストされた。
一度ビルドすれば、gawkは他のシェルユーティリティと同じように動作
する。normal VMSへのgawkの移植とは異なり、VMS POSIX環境では特別な
コマンドライン操作は必要ではない。
もしDOS担当保守者達によるバイナリ配布キットを入手したならば、gawk
と必要なサポートファイルは`gnu'というディレクトリの下に展開される。
実行ファイルは`gnu/bin'に、ライブラリは`gnu/lib/awk'に、マニュ
アルページは`gnu/man'に置かれる。これはユーザーのドライブの`/gnu'
ディレクトリに単純にインストールするようにデザインされているが、
AWKPATHがセットされている場所であればどこにでもファイルを置くことがで
きる。インストールするディレクトリに関係なく、(`gnu/bin'にある)
`igawk.cmd'や`igawk.bat'の最初の一行を編集する必要があるかもしれ
ない。
バイナリ配布キットは内容を説明する別々のファイルを含んでいるだろう。特に、
二つ以上のgawkの実行ファイルが入っているかもしれない。OS/2のバイ
ナリ配布キットは異なったアレンジが加えられているかもしれないが、インスト
ールは同様である。
OS/2用、MS-DOS用のgawkは
セクション AWKPATH環境変数を参照.
で説明されているようにプログラムを検索する。
しかしながら、AWKPATH変数中の区切りには
(コロンではなく)セミコロンが使用される。
もしAWKPATHがセットされていないか、内容が空であれば
デフォルトの検索パス".;c:/lib/awk;c:/gnu/lib/awk"が
使用される。
(MS-DOSのcommand.comやOS/2のcmd.exeに対立するものとしての)
shに似たシェルがawkプログラミングには便利だろう。Ian
StewartsonはMS-DOS、OS/2のために素晴らしいシェルを作成した。また、OS/2のた
めにkshクローンを作成し、GNU BashをOS/2で使えるようにした。
gawkの配布キットにある`README_d/README.pc'というファイルにはこれ
らのシェルに関する情報がある。StewartonのシェルをDOSで使う人は、コマンド
ラインの取り扱いのドキュメントの記述を確かめたほうが良いだろう。特にこの
ようなシェルの元で使うgawkの設定は変更する必要があるだろうし、
ignoretypeオプションは特に重要なものであるだろう。
gawkはMS-DOSやOS/2用に、DJ Delorieや
(DJGPP、MS-DOSのみ)、Eberhard Mattesによる(EMX、MS-DOSおよびOS/2)
GNU開発ツールを使ってコンパイルすることができる。
Microsoft CはMS-DOSおよびOS/2用の16bitバージョンを作成するために
使用することができる。gawkの配布キット中にある
`README_d/README.pc' というファイルにはコンパイル時のオプションに関する
重要な注意書がある。
gawkをビルドするために、`pc'というディレクトリにある
ファイル(`ChangeLog'は除く)
をgawkの他のソースがあるディレクトリにコピーする。
`Makefile'にはコメントがついたコンフィグレーションセクションが
あり、正しく動作させるために使用するmakeユーティリティに応じて
編集する必要があるかもしれない。
`Makefile'にはさまざまなMS-DOS、OS/2バージョンをビルドするためのタ
ーゲットが多数ある。ターゲットのリストはmakeユーティリティをター
ゲットを指定せずに起動すると出力される。例えば、DJGPPを使ってgawk
をビルドするには`make djgpp'と入力する。
makeを使って標準テストの実行とgawkをインストールするには、
更に別のsh、sed、cpといったUNIXライクツールが必要と
なる。テストを実行するために、`test/*.ok'というファイル群をDOSスタ
イルの行末に変換する必要があるかもしれない。テストのほとんどはStewartson
のシェルとcompanion ユーティリティや適切な GNUユーティリティを一緒に使っ
たときに正しく動作する。しかし、多少の`test/Makefile'の編集が必要
である。`pc/Makefile.tst'を、`README_d/README.pc'というファイ
ルを置き換える形でコピーするのをお勧めする。
gawk のインストール
様々なAtariのモデルがあるが、どのモデルであってもgawkのインストー
ルにほとんど差はない。コンパイルされた実行形式のgawkはほとんどの
awkプログラムでは大きなメモリーを必要とはしないし、モトローラのプ
ロセッサを搭載したすべてのモデルで実行できる(それが正確ではないとしても
STと呼ぶ)
gawkを使うためには、テキスト形式にしろグラフィックス形式であるに
しろ、コマンドライン上のすべてのキャラクタを大文字にマッピングしたりしな
いシェルが必要となる。オプションフラグの大小文字を保存することは、非常に
重要である(セクション コマンドラインオプションを参照)。今日ではこれはデフォ
ルトであり、一部の非常に古いマシンでのみこの問題が生じることになるだろう。
もし、あなたのシステムがオプションフラグの大小文字を保存しないのであれば、
あなたの使っているツールをアップグレードする必要がある。入出力リダイレク
トのサポートは、他の環境からawkプログラムを持ってくることを簡単に
するために必要である。パイプはあればいいが、必需というほどでもない。
gawk on the Atari ST
sizeof(int)と sizeof(void *)とが異なる場合の
適切なgawkソースのコンパイルには、ANSI Cコンパイラが
必要となる。最初にgccが移植が行われた。
intは4バイトの大きさがあるように実行したいかもしれないが、
他の様々な作業はきちんと動作する。
gawkのソースのコンパイルをするときに、一部の大きなソースファイル
(特に`regex.c')では多くのメモリが必要になるかもしれない。もしこれら
のファイルをコンパイルしているときにメモリ不足になってしまったならば、こ
れらのファイルに対する最適化オプションのレベルを下げることを試みると良い
かもしれない。
its results with the sample versions and possibly make adjustments.
LinuxやMiNT、あるいは同様なオペレーティングシステム上で
妥当なシェル(Bashもそうだ)を実行している場合には、
configureユーティリティがうまく行くというチャンスがある。
そういった環境ではない場合には、サブディレクトリ`atari'にある
`config.h'と`Makefile.st'というサンプルバージョンを
編集し、メインソースディレクトリにコピーする。
configureが何かを生成したとしても、それは
その結果とサンプルバージョンとの比較に使える程のものである。
一部のgawkソースコードは
`atarist'というプリプロセッサ定義に依存している。
これは基本的にはTOS環境でgccを使っていることを仮定している。
もしあなたの環境でこれが正しくなければ、これらのセクションを
適切なものに修正する。同様に、
セクション Running gawk on the Atari STを参照.
にあるAWKPATHとenvsepに関する注意を参照すること。
リリースされているように、サンプルの`config.h'ではsystem関数
がライブラリにはないとしている。これは真ではないし、`atari/system.c'
にはこの関数が提供されている。あなたの使用しているシェルとオペレーティ
ングシステムの特定の組み合わせによって、あなたはsystemが使用可能
であるように、ファイルを変更したいと思うかもしれない。
gawk on the Atari ST
実行形式のgawkを置くべき場所は、通常は
使用しているシェルがそれを見つけることのできる
PATHにあるディレクトリのいずれかである。
実行している間、gawkは幾つかの一時ファイルを作成する。TOS用の
gccライブラリを使用しているときには、gawkはTEMPか
@code {TMPDIR}という環境変数をこの順番で参照する。もしどちらかが見つかれ
ば、その環境変数の値が一時ファイルを作成するディレクトリとして仮定される。
このディレクトリは実際に存在していなければならない。またメモリを節約する
ことができるのならば、このディレクトリをRAMディスクに置くことは良い考えで
ある。TEMPもTMPDIRも見つからなければ、gawkはカレント
ディレクトリに一時ファイルを作成する。
STバージョンのgawkは、それに対するプログラムファイルを
セクション AWKPATH環境変数を参照.
にある様に検索する。変数AWKPATHのデフォルトの値は
`Makefile'中で定義されているDEPPATHが採用される。
配布キットにあるST用の、gcc/TOS の`Makefile'
では、DEPPATHに".,c:\lib\awk,c:\gnu\lib\awk"
をセットしている。この検索パスはAWKPATHに望みの値を
セットすることによって、陽に変更を行うことができる。
STでは、変数AWKPATHの要素を区切るのにコロンを使えない
ことに注意すること。コロンは別の意味に予約されているからである。
その代わりに、個々のパスを区切るのにカンマを使用する。
リコンパイルするときに`atari/gawkmisc.atr'にあるenvsep
という変数の値を別の値で初期化することによって、この分割キャラクタを
変更することができる。
gawkがプログラム中で入出力のリダイレクトを行うことを許しているに
もかかわらず、STがTOSの元で動作しているときには使用に際しては注意すべき
である。一部のファイルハンドルのプールを処理するOSルーチンの環境では特定
のイベントの記録を失ってしまう。これはコンピュータをクラッシュさせ、リブ
ートしなければならなくなる。しばしばウォームリブートするのに十分である。
幸いにも、これは頻繁に発生するものではなく、むしろ esoteric situation(難
解な状況?)で発生する。特に、awkプログラムを呼び出しているシェルで
標準出力をファイルにリダイレクトしていて、そのawkプログラム中で他
のprint文がデフォルトの標準出力を使っていて一部のprint文で
"/dev/stdout"にリダイレクトしているような状況を避ける。
gawkがST用のgccと(gccの)通常ライブラリを使ってコンパイルさ
れているとき、`/'と`\'の両方をパスの区切りとして使用できる。こ
れは便利であるが、この内`/'というキャラクタはあなたのファイル名から
取り除いた方が良く、これが関数systemを通じて呼び出された外部プロ
グラムに問題を生じさせる可能性があることに注意すること。gawkが作
成したファイルが他のプログラムから使われる可能性があるときにはいつでも、
バックスラッシュのみを使用する。同様にawkでは、文字列中のバックス
ラッシュはそれがバックスラッシュという文字そのものとして扱われるためには
二つ並べなければならないことに注意すること(セクション エスケープシーケンスを参照)。
gawk のインストール
gawkをwuarchive.wustl.eduの`pub/aminet/dev/gcc'という
ディレクトリから匿名(anonymous)FTPを通じて入手できる
Amigaシステム上のUNIXエミュレーション環境に
インストールすることができる。
これにはpdkshに基づいたシェルが含まれている。
この環境の基本的なコンポーネントはUNIXエミュレーションライブラリ、
`ixemul.lib'である。
ftp.ninemoons.com の`pub/ade/current'という
ディレクトリから入手できるunixエミュレーション環境を使っている
Amiga にgawkをインストールすることができる。
これはpdkshに基づいたシェルも含まれている。この環境の基本的な
構成要素は、`ixemul.lib'というunixエミュレーションのライブラリである。
より完璧なAmiga用の配布キットは 以下の住所から入手できる Geek Gadgets CD-ROMにある。
CRONUS
1840 E. Warner Road #105-265
Tempe, AZ 85284 USA
US Toll Free: (800) 804-0833
Phone: +1-602-491-0442
FAX: +1-602-491-0048
Email:info@ninemoons.com
WWW:http://www.ninemoons.com
Anonymousftpsite:ftp.ninemoons.com
一度配布キットを受け取れば、単純にconfigureを実行することにより
gawkのコンフィグレーションができる。
configure -v m68k-amigaos
この後makefを実行すれば、すべて設定されているはずだ!
(もしこういった手順がうまく行かなければ、それをバグレポートにして
送って欲しい。セクション 問題やバグの報告を参照.)
There is nothing more dangerous than a bored archeologist. The Hitchhiker's Guide to the Galaxy
もしあなたがgawkを使っていて問題にあったり、バグを見つけたなら、
それを開発者達にレポートして欲しい。私達はレポート全てに対応できる
とは約束できないが、できる限りの修正を行うだろう。
バグを報告する前に、本当にそれがバグであるかどうかを確かめて欲しい。ドキュメ ントを注意深く読みかえし、あなたがやろうとしたことができるかどうかを確認する。 もし、それで何かはっきりしないことがあれば、それもまた報告して欲しい。なぜな ら、それはドキュメントのバグであるからだ。
バグを報告したり、自分で修正しようとする前に、発見した問題を再現する最小限の
プログラムと入力データを作ろうとしてみて欲しい。そしてそのプログラムと入力デー
タ、あなたが使っているUnixシステムの種類と gawkの実行結果を送って欲し
い。そしてあなたが動作するだろうと考えたことも。これは本当にドキュメンテーショ
ンの問題かどうかを決定するのに役立つ。
問題点が明確になったら、それは以下の二ヶ所のアドレスのいずれかに 送ることができる。
メイルにはあなたの使っているgawkのバージョン番号も忘れないように
お願いする。バージョンは、`gawk -- version'とすれば得ることができる。
そして、そのメイルのカーボンコピーを Arnold Robbinsにも送って欲しい。
彼のメイルアドレスは`arnold@gnu.org'である。
重要! gawkに関するバグリポートを
インターネットのニューズグループcomp.lang.awkで
行わないように。gawkの開発者達は時折このニューズグループを
見てはいるが、その投稿を私達が見るだろうという保証はない。
先程説明した手順が正式なバグレポートの手順である。
バグレポート以外に、提案もいつでも受け付ける。あなたがドキュメントのなかで不明瞭で あると考える疑問や、曖昧であると思う機能があれば、Arnold Robbinsに尋ねて欲 しい。彼はあなたの疑問を解決しようとするだろう。彼に対する電子メイルは、先 に挙げたインターネットのアドレスで出すことができる。
UNIX以外のシステムに移植されたgawkでバグを発見した場合、移植を行なっ
た人物に電子メイルを送って欲しい。そのような人々を以下に挙げるし、そのリス
トは配布キットの中の `README'というファイルにもある。この
マニュアルの内容と`README'中の情報が矛盾していたりしたら、
READMEの方を信用するように。
UNIX以外のシステムに移植されたgawkを保守しているのは以下の人達である。
もしあなたが見つけたバグがUNIX環境下のgawkでも発生するものならば、 バグレポートのコピーを通常のGNUのバグリストと、Arnold Robbinsにも 送って欲しい。そのためのアドレスは先に説明した通りである。
awk処理系
It's kind of fun to put comments like this in your awk code.
// Do C++ comments work? answer: yes! of course
Michael Brennan
自由に入手することのできるawk処理系が二つある。
このセクションでは簡単にそれらを入手できる場所を説明する。
awk
awkを自由に配布できるよう
にしている。これは、匿名ftpを使ってnetlib.bell-labs.comというホスト
にアクセスし、`/netlib/research'というディレクトリに移動すれば入手
する事ができる。このとき、"バイナリモード"か"イメージモード"を使用し、
`awk.bundle.gzip'を検索する。
これはGNU gzipユーティリティで圧縮されたシェルアーカイブである。
GNU gunzipユーティリティを使用することで
伸長することができる。
このバージョンは、World Wide WebのBrian Kernighanのホームページ
{http://cm.bell-labs.com/who/bwk
から入手することもできる。
このバージョンはANSI Cのコンパイラを必要とする。GCC(GNU C コンパイラ)は
問題なく使える。
mawk
amwkと呼ばれるawkを独自に作成した。
これはgawkと同じように、GPL
(セクション GNU GENERAL PUBLIC LICENSEを参照)に従い入手することができる。
ftp.whidbey.netというホストから匿名ftpによって、mawkが
入手可能である。接続した後、ディレクトリを`/pub/brennan'に変更し、
"binary"モードか"image"モードにしてから、`mawk1.3.3.tar.gz'
(もしくはそれ以後の最新バージョン)というファイルを指定する。
このファイルを展開するにはgunzipを使用する。
このインストールはgawkをインストールするときと同様である。
(セクション UNIX上での gawkのコンパイルとインストールを参照).