挙動を指定する引数コマンド < 引数コマンド一覧 < [click go-back button to go-back] < Viiviの小部屋 < 入り口 / Entrance
以下の引数コマンドは Viivi の評価や入出力における挙動を変更するために指定します.
-aps <SYMBOL>
aps
は "append predefined symbol" の略です.<SYMBOL>
は現在のベースレベルに束縛を追加するシンボルです.<SYMBOL>
が現在のベースレベル上に束縛関係をもっていないときには,
現在のベースレベルにその束縛関係を追加します.<SYMBOL>
が現在のベースレベル上に束縛関係を既にもっているときには何もしません.-dps <SYMBOL>
でシンボルを登録解除できます. $ viivi -K -B 1 -aps atan
R5RS の syntax 群だけしか登録されていない現在のベースレベル 1 に
atan
を追加登録します.#<procedure:atan>
に束縛されたシンボル atan
が使えるようになります.-B <BITSET>
B
は "base-level" の頭文字です.<BITSET>
は以下に示す定義済みオブジェクトのグループを表す整数値
(2^n [n=0,1,...,5])
のビットセットです. 1 syntax として R5RS で定義されているオブジェクトのグループ
2 library-syntax として R5RS で定義されているオブジェクトのグループ
4 procedure として R5RS で定義されているオブジェクトのグループ
8 library-procedure として R5RS で定義されているオブジェクトのグループ
16 optional-procedure として R5RS で定義されているオブジェクトのグループ
32 Viivi 独自に定義されているオブジェクトのグループ
ひとつ前のベースレベルへは引数コマンド -Bx によって復帰することができます. $ viivi -K -B 5
R5RS で syntax (1 で表される ) および procedure (4 で表される ) として
定義されているオブジェクトだけを定義済みとしてもつベースレベルを生成し,
現在のベースレベルとして使用します.-BX
BX
は "base-level" の頭文字
B
に「閉じる」動作を表す
X
を続けたものです.-B
によって作られたものでない場合には何もしません. $ viivi -K -B 5 -i test1.scm -B 31 -i test2.scm -Bx -i test3.scm
最初に R5RS で
syntax
(1 で表される) および
procedure
(4 で表される ) として定義されている
定義済みオブジェクト群だけからなる環境 (ベースレベル B5 とします) を生成し,
test1.scm
からの入力を評価します.(31=1+2+4+8+16)
からなる環境 (ベースレベル B31 とします) を生成し,
test2.scm
からの入力を評価します.test3.scm
からの入力を評価します.-D <BITSET>
記号
D
は "direct input" の頭文字です.
この引数コマンドを用いると,ユーザは
#<procedure:cons>
,
#<nil>
,
#<unspecified>
のような直接入力式を Scheme コード内で使えるようになります.
この機能により,ユーザは
(間に仲介する束縛関係について心配することなく)
Scheme オブジェクトに直接アクセスすることができます.
また同時に,ユーザは
#<hashcode:12345678>
のようなハッシュコード参照を用いて
特定の Scheme オブジェクトインスタンスにアクセスすることができます.
パラメタ
<BITSET>
は
(1,2,4,8)
のビットセットで,
<...>
という形式で直接入力できる Scheme オブジェクトの種類を表します.
1 定義済みオブジェクト (定数および手続き) を直接入力できるようにする
[例]
#<constant:MATH-E> ... 自然対数の底の定数値
#<procedure:cons> ... R5RS で定義された手続き cons
2 #<nil>
によって空リストオブジェクトを直接入力できるようにする
4 #<unspecified>
オブジェクトを直接入力できるようにする
8 #<hashcode:xxxxxxxx>
または #<#xxxxxxxx>
形式を用いて,
そのハッシュコードをもつ Scheme オブジェクトインスタンスを
直接入力できるようにする
$ viivi -K -D 3
引数コマンド
"-D 3
"
により,
定義済み Scheme オブジェクト (定数と手続き) と空リストオブジェクトを直接入力できるようにする.(viivi-set! direct-input-objects-bitset <BITSET>)
-dps <SYMBOL>
dps
は "delete predefined symbol" の略です.<SYMBOL>
は現在のベースレベルから束縛を登録解除するシンボルです.<SYMBOL>
が現在のベースレベル上に束縛関係をもっているときには,
現在のベースレベルにその束縛関係を追加します.<SYMBOL>
が現在のベースレベル上に束縛関係を既にもっていないときには何もしません.-aps <SYMBOL>
でシンボルを登録できます. $ viivi -K -dps cons
デフォルトのベースレベルから
cons
を登録解除します.#<procedure:cons>
に束縛されたシンボル cons
は使えなくなります.-g
-g
は一般的に多くの処理系で用いられているデバッグのためのオプションです.-Tinfo 0 -Titem 31
と同じ.
-g:full
-g
すべての追加情報と項目をトレース出力するように設定します .-Tinfo 7 -Titem 31
と同じ.
-g:none
-T false
と同じ.
-hi <BOOLEAN>
hi
は "halt at new input-ports" の略です.<BOOLEAN>
には,IDE モードで新しい入力ポート窓を開いたときに一時停止するかしないかを与えます. true IDE モードで新しい入力ポート窓を開いたら一時停止する (デフォルト)
false 新しい入力ポート窓を開いても一時停止しない
$ viivi -G -hi false -i test.scm
IDE モードで新しい入力ポート窓
#<input-port:test.scm>
を
開いても一時停止しない.(viivi-set! halt-at-new-input-port [#t|#f])
-ho <BOOLEAN>
ho
は "halt at new output-ports" の略です.<BOOLEAN>
には,IDE モードで新しい出力ポート窓を開いたときに一時停止するかしないかを与えます. true IDE モードで新しい出力ポート窓を開いたら一時停止する
false 新しい出力ポート窓を開いても一時停止しない (デフォルト)
$ viivi -G -ho true -o result.out
IDE モードで新しい出力ポート窓
#<output-port:result.out>
を
開くとき一時停止する.(viivi-set! halt-at-new-output-port [#t|#f])
-lang <LANGUAGE>
lang
は "language" の略です.<LANGUAGE>
には,メッセージを表示する (自然) 言語を文字列で指定します. ja 日本語
en 英語
だけが指定可能です.C
ロケール)
が使われます. $ viivi -G -lang en
英語でメッセージを表示するように指定します.-P <STRING>
P
は "prompt" の頭文字です.<STRING>
には,Viivi のプロンプトに設定する文字列を指定します. $ viivi -P 'EXP1>>'
プロンプトを
「EXP1>>
」
に変更します.(viivi-set! prompt <STRING>)
-srand <LONG>
srand
は Java API のメソッド名 "srand()" に由来しています.<LONG>
には乱数発生装置を初期化するための long 値を与えます. 0 現在時刻を表す long 値を初期化パラメタとする (デフォルト)
1 以上の long 値 与えた long 値を初期化パラメタとする
乱数を複数個発生させる場合でも,この初期化設定は最初に一度呼び出すだけで機能します. $ viivi -K -srand 32345963
乱数発生装置の初期化に,与えられたパラメタの long 値 32345963 を用います.(random-seed [<LONG>])
-T <BOOLEAN>
T
は "Trace-output" の頭文字です.<BOOLEAN>
にはトレース出力を許すか否かを示す boolean 値
true
または
false
を与えます. true トレース出力を許す (デフォルト)
false トレース出力を許さない
パラメタに true が与えられた場合,
カーネルモードではトレース出力を行います. $ viivi -K -T false
カーネルモードで立ち上げますがトレース出力は行いません.-Tfold <INTEGER>
Tfold
は "trace line folding number" の略です.<INTEGER>
には折りたたむトレース線の本数を整数値で指定します.<INTEGER>=20
です.
<INTEGER> 折りたたむトレース線の本数
$ viivi -K -Tfold 10
折りたたむトレース線の本数を 10 本にします.(viivi-set! trace-line-folding-number <INTEGER>)
-Tinfo <BITSET>
Tinfo
は "trace output additional information" の略です.<BITSET>
には以下のビットフラグを組み合わせて,各項目ごとにトレース出力する追加情報をビットセットで指定します.<BITSET>=0
(すべてなし) です.
1 束縛値やデータ構造の更新前の値
2 トークンの位置情報
4 ハッシュコード
$ viivi -K -Tinfo 5
トレース出力の際に,束縛値やデータ構造の更新前の値と,ハッシュコードをあわせて出力します.(viivi-set! trace-output-additional-information-bitset <BITSET>)
-Titem <BITSET>
Titem
は "trace output items" の略です.<BITSET>
には以下のビットフラグを組み合わせて,入力と出力以外にトレース出力する項目をビットセットで指定します.<BITSET>=31
(すべてあり) です.
1 評価カウント
2 手続き呼び出し
4 束縛の生成/更新
8 データ構造の生成/更新
16 マクロ展開
$ viivi -K -Titem 6
手続き呼び出しと,束縛の生成/更新に関する副作用だけをトレース出力します.(viivi-set! trace-output-items-bitset <BITSET>)
-u <BOOLEAN>
u
は "flush" の中の文字です.<BOOLEAN>
には,
出力ポートへの書き出しが起きるたびに毎回フラッシュする
(その出力ポートのバッファにたまったデータを強制的に流し出す)
か否かを指定します. true 毎回フラッシュする (デフォルト)
false 毎回はフラッシュしない (指定の効果はプラットフォームに依存する)
[例] $ viivi -K -u true
毎出力後に出力ポートのバッファにたまったデータを強制的に流し出します.(viivi-set! flush-each-output <BOOLEAN>)
-v <BITSET>
v
は "verbosity" (饒舌[じょうぜつ]性) の中の頭文字です.<BITSET>
は,次に示す出力項目を表す整数値
(2^n [n=0,1,...,4])
のビットセットです.
1 プロンプト (指定はカーネルモードでのみ有効)
2 display, newline, write などによる副作用の出力
4 トップレベルでの評価値出力
8 立ち上げ時のタイトル出力 (指定はカーネルモードでのみ有効)
16 立ち上げ時の使用許諾書出力 (指定はカーネルモードでのみ有効)
[例] $ viivi -K -v 3
プロンプトと,副作用による出力だけを表示するように設定します.(viivi-set! verbosity-bitset <BITSET>)
-w <BOOLEAN>
記号
w
は "overwrite" の中の文字です.
R5RS には Scheme プログラム内で既存の出力ファイルを開くとき,
上書きモードで開くか,それとも追記モードで開くかの区別がありません.
Viivi ではこの引数コマンドを使うことにより,
このあと Scheme プログラム内から既存の出力ファイルを開く際に,
上書きモードで開くか追記モードで開くかを指定できます.
true 出力ファイルを上書きモードで開く (デフォルト)
false 出力ファイルを追記モードで開く
デフォルトでは Scheme プログラム内からは上書きモードで既存の出力ファイルを開きます.-w false
"
を指定したあとで出力ファイルを開いてください.
転写出力ファイルだけは例外で,常に追記モードで開きます.
ネットワークポートや仮想出力ポートへの出力はこの設定による影響を受けません.
[例]
$ viivi -i ioTest1.scm -w false -i ioTest2.scm
まず
ioTest1.scm
からの入力を評価しますが,
その Scheme コード内で出力ファイルを開く場合には上書きモードが使われます.ioTest2.scm
からの入力を評価しますが,
その Scheme コード内で出力ファイルを開く場合には追記モードが使われます.
[同機能]
・手続き呼び出し:
(viivi-set! open-output-files-overwritten? <BOOLEAN>)
・設定パネル : kernel 設定パネル → 「入出力」 → 「既存の出力ファイルのオープン」
挙動を指定する引数コマンド < 引数コマンド一覧 < [click go-back button to go-back] < Viiviの小部屋 < 入り口 / Entrance
2022/03/02 開設
Copyright(C) 2003-2022 ilma <ilma@viivi.io> All rights reserved.