Gforth は 2 つの部分から成ります。 実行可能「エンジン」(gforth
または gforth-fast
という名前)と、イメージ・ファイルです。 Gforth を開始するには、 通常は gforth
とするだけです。 これにより、
デフォルトのイメージ・ファイル gforth.fi が自動的にロードされます。 他の多くの場合、 デフォルトの Gforth
イメージは以下のように呼び出されます:
gforth [file | -e forth-code] ...
これにより、 ファイルの内容や、 (訳注:コマンドラインに記述された、) Forth コードが、 指定の順序で通訳(interpret)されます。
gforth
エンジンに加えて、 gforth-fast
というエンジンもあります。 これは高速ですが、
表示されるエラー・メッセージ(see Error messages)の情報が少なく、 そして、 一部のエラーのキャッチ(特に、
スタック・アンダーフローや整数除算エラーなど)が遅れて発生するか、 あるいはまったく発生しません。 デバッグ済みの、
パフォーマンスが重要なプログラムに対して使用するべきです。
さらに、 gforth-itc
というエンジンがあり、 下位互換性が必要な状況(see Direct or Indirect Threaded?)で役に立ちます。
一般に、 コマンドラインは以下のようになります:
gforth[-fast] [engine options] [image options]
エンジン・オプションは、 コマンド・ラインの他の部分より前に指定する必要があります。 それらは以下のとおりです:
--image-file file
¶-i file
デフォルトの gforth.fi の代わりに、 指定の Forth イメージ・ファイルをロードします(see Image Files)。
--appl-image file
¶指定のイメージ・ファイルをロードし、 これ以降のコマンドライン引数は(エンジンのオプションとして処理するのではなく)、
すべてそのイメージが処理する為に残します。 これは、 gforthmi --application ...
で構築された、 Unix
上で実行可能なアプリケーション・イメージを構築する場合に便利です。
--path path
¶-p path
デフォルトである環境変数 GFORTHPATH
、 またはインストール時に指定されたパス(例:
/usr/local/share/gforth/0.2.0:.)と作業ディレクトリ .
の代わりに、
指定のパスを使用してイメージ・ファイルと Forth ソース・コード・ファイルを検索します。 パスは ‘:’
で区切られたディレクトリのリストとして指定されます(以前のバージョンには他の OS 用に ‘;’ がありましたが、 Cygwin は現在は
/cygdrive/<letter>
のみを受け入れ、 かつ、 私達は OS/2 や MS-DOS のサポートは終了してしまったため、
どこでも全部 ‘:’ になりました)。
--dictionary-size size
¶-m size
イメージで指定されているデフォルト(通常は 256K)を使用する代わりに、 Forth
ディクショナリー用のスペースに指定サイズ(size)のスペースを割り当てます。
このオプションと、下記のオプションのサイズ(size)指定は整数と単位で構成されます(例: 4M
)。 単位は b
(バイト)、 e
(elementの略。セル単位)、 k
(キロバイト)、 M
(メガバイト)、
G
(ギガバイト)、 T
(テラバイト)のいずれかになります。 単位が指定されていない場合 e
が使用されます。
--data-stack-size size
¶-d size
イメージで指定されているデフォルト(通常は 16K) を使用する代わりに、
データ・スタックに指定のサイズ(size)のスペースを割り当てます。サイズ(size)指定は整数と単位で構成されます(例:
4M
)。 単位は b
(バイト)、 e
(elementの略。セル単位)、 k
(キロバイト)、
M
(メガバイト)、 G
(ギガバイト)、 T
(テラバイト)のいずれかになります。
単位が指定されていない場合 e
が使用されます。
--return-stack-size size
¶-r size
イメージで指定されたデフォルト(通常は 15K)を使用する代わりに、 リターン・スタックに指定のサイズ(size)のスペースを割り当てます。
サイズ(size)指定は整数と単位で構成されます(例: 4M
)。 単位は b
(バイト)、 e
(elementの略。セル単位)、 k
(キロバイト)、 M
(メガバイト)、 G
(ギガバイト)、
T
(テラバイト)のいずれかになります。 単位が指定されていない場合 e
が使用されます。
--fp-stack-size size
¶-f size
イメージで指定されているデフォルト(通常は 15.5K)を使用する代わりに、
浮動小数点スタックに指定のサイズ(size)のスペースを割り当てます。この場合、単位指定子 e
は浮動小数点数を参照します。
サイズ(size)指定は整数と単位で構成されます(例: 4M
)。 単位は b
(バイト)、 e
(elementの略。セル単位)、 k
(キロバイト)、 M
(メガバイト)、 G
(ギガバイト)、
T
(テラバイト)のいずれかになります。 単位が指定されていない場合 e
が使用されます。
--locals-stack-size size
¶-l size
イメージで指定されているデフォルト(通常は 14.5K)を使用する代わりに、 ローカル・スタック(locals
stack)に指定サイズ(size)のスペースを割り当てます。 サイズ(size)指定は整数と単位で構成されます(例:
4M
)。 単位は b
(バイト)、 e
(elementの略。セル単位)、 k
(キロバイト)、
M
(メガバイト)、 G
(ギガバイト)、 T
(テラバイト)のいずれかになります。
単位が指定されていない場合 e
が使用されます。
--vm-commit
¶通常 Gforth は、 ディクショナリーとスタックに十分な仮想メモリー(virtual memory)がない場合でも起動しようとします(OS
がサポートしていれば MAP_NORESERVE
を使用します)。 したがって、
あなたは非常に大きなディクショナリーやスタックを要求することができ、 利用可能なのを超える仮想メモリーを使用しない限り、
すべて問題ありません(ただし、それを超えて使用すると、 プロセスが強制終了(kill)されます)。 このオプションを使用すると、 OS
のデフォルトの割り当てポリシーを使用するようになります。 とりわけ、 オーバーコミットしない OS (Solaris など) の場合、 これは、
大きなディクショナリーやスタックを要求することはできませんし、 要求すべきではないことを意味しますが、 しかし、 Gforth
が正常に起動する事に成功したならば、 メモリー不足によって強制終了(kill)させられることはありません。
--help
¶-h
コマンドライン・オプションに関するメッセージを出力します
--version
¶-v
バージョンを出力して終了(exit)
--debug
¶起動時のデバッグに役立ついくつかの情報を出力します。
--offset-image
¶それ以外の場合に使用される位置とはわずかに異なる位置でディクショナリーを開始します (データ再配置可能イメージ(data-relocatable images)の作成に役立ちます see Data-Relocatable Image Files)。
--no-offset-im
¶ディクショナリーを通常の位置で開始します。
--clear-dictionary
¶イメージをロードする前に、 ディクショナリー内の全てのバイトを 0 に初期化します(see Data-Relocatable Image Files)。
--die-on-signal
¶通常、 Gforth はほとんどのシグナル(例えば、 ユーザー割り込みの SIGINT や、 セグメンテーション違反 SIGSEGV)を Forth の
THROW
に変換することで処理します。 このオプションを使用すると、 Gforth
はそのようなシグナルを受信すると終了(exit)します。 このオプションは、
(最初のシグナルから回復する前に別のシグナルが発生するなど、)エンジンやイメージがひどく壊れている可能性がある場合に役立ちます。 このオプションは、
そのような場合の無限ループを回避します。
--no-dynamic
¶--dynamic
レプリケーション(replication)を伴う動的スーパー命令(dynamic superinstructions)を無効または有効にします(see Dynamic Superinstructions)。
--no-super
¶動的スーパー命令(dynamic superinstructions)を無効にし、 動的レプリケーション(dynamic replication)のみを使用します。 これは、 スレッド化コード(threaded code)にパッチを適用する場合に便利です(see Dynamic Superinstructions)。
--ss-number=N
¶エンジンにコンパイル済みの最初の N 個の静的スーパー命令(static
superinstructions)のみを使用します(デフォルトでは全てを使用します。 注意: gforth-fast
のみのオプションです)。 このオプションは、 静的スーパー命令(static
superinstructions)のパフォーマンスへの影響を測定するのに役立ちます。
--ss-min-codesize
¶--ss-min-ls
--ss-min-lsu
--ss-min-nexts
指定のメトリックを使用して、 静的スーパー命令の選択(static superinstruction
selection)をするためにプリミティブまたは静的スーパー命令のコストを決定します。 Codesize
はプリミティブまたは静的スーパー命令のネイティブ・コード・サイズ、 そして、 ls
はロードとストアの数、 そして、 lsu
はロードとストアと更新の数、 そして、 nexts
は(動的スーパー命令を考慮しない)ディスパッチの数です。 ここで、
すべてのプリミティブまたは静的スーパー命令のコストは 1 です。 デフォルトでは、 動的コード生成を使用する場合は codesize
、
それ以外の場合は nexts
です。
--ss-greedy
¶このオプションは、 静的スーパー命令のパフォーマンスへの影響を測定するのに役立ちます。 デフォルトでは、 静的スーパー命令の選択には最適な最短パス・アルゴリズム(shortest-path algorithm)が使用されます。 --ss-greedy を使用すると、 そのアルゴリズムは、 現在検討中の静的スーパー命令以降は静的スーパー命令に結合されないと想定するように変更されます。 --ss-min-nexts を使用すると、 その時点で利用可能な最長のスーパー命令を常に選択する貪欲なアルゴリズムと同じ結果が生成されます。 たとえば、スーパー命令 AB と BCD がある場合、 シーケンス A B C D に対して、 最適アルゴリズムは A BCD を選択し、 貪欲アルゴリズムは AB C D を選択します。
--print-metrics
¶静的スーパー命令の選択中に使用されるいくつかのメトリックを出力します。 code size
は、
動的に生成されたコードの実際のサイズです。 Metric codesize
は、静的スーパー命令の選択によって確認できるコードサイズ・メトリック(codesize metrics)の合計で、 code size
とは異なります。 これは、 すべてのプリミティブと静的スーパー命令が動的に生成されるコードにコンパイルされるわけではないことと、
マーカーがあるためです。 他のメトリクスは ss-min-... オプションに対応します。
このオプションは、--ss-... オプションの効果を評価するのに役立ちます。
上記にて説明したように、 デフォルト・イメージである gforth.fi のイメージ固有のコマンドライン引数は、 一連のファイル名と、
指定した順序で通訳(interpret)される -e forth-code
オプションで構成されます。 -e
forth-code
または --evaluate forth-code
オプションは Forth
コードを評価(evaluate)します。 このオプションは引数を 1 つだけ取ります。 あなたが、もし、 さらに多くの Forth
ワードを評価したい場合は、 ワードを引用符で囲むか、 -e
を複数回使用する必要があります。
コマンド・ラインの処理後に(対話モードに入るのではなく、)終了(exit)するには、 コマンド・ラインに -e bye
を追加します。
Forth プログラムではコマンド・ライン引数を処理することもできます(see OS command line arguments)。
複数のバージョンの Gforth がインストールされている場合、 gforth
は最後にインストールされたバージョンを呼び出します。
gforth-<version>
は特定のバージョンを呼び出します。 あなたの環境に環境変数 GFORTHPATH
がある場合、 --path
オプションを使用してこの環境変数をオーバーライドできます。
起動時、 イメージ・オプションを処理する前に、 環境変数 GFORTH_ENV
で指定されたユーザー初期化ファイル、
またはその環境変数が設定されていない場合は(存在する場合、) ~/.config/gforthrc0 がインクルードされます。
GFORTH_ENV
が「off
」の場合は何もインクルードしません。 すべてのイメージ・オプションを処理した後、
ブート・メッセージを出力する直前に、 オプション --no-rc
が指定されていない限り、 ホーム・ディレクトリのユーザー初期化ファイル
~/.config/gforthrc がインクルードされます。
警告レベルは以下のように設定できます