制限値¶
無限ループなどで応答が返らなくなることを防ぐための制限です。負数は 0 になり、0 は「制限しない」を意味します。
$呼び出し回数制限¶
() による呼び出しが入れ子になる深さの上限です。既定は 200。
超えると 呼び出し回数超過 とログに出て、そこは (名前) の形のまま残ります。
$呼び出し総数制限¶
1 回のリクエスト(読み込み・終了時の処理を含む)の中で行える、(名前) による呼び出しと、繰り返しの 1 周の合計回数の上限です。既定は 100000(Mc201-8以降)。
$呼び出し回数制限 は入れ子の深さしか見ないため、@あ が (あ)(あ) を含むような分岐する再帰や、本体が空の長い繰り返し((times、1000、(times、1000、(times、1000、))) など)は、いつまでも終わりません。この上限を超えると、呼び出し総数超過 とログに出て、それ以降の呼び出しは (名前) の形のまま残り、繰り返しは打ち切られます。
- 数えるのは、
(名前)の呼び出し(単語群・文・変数・内蔵関数・SAORI のいずれも)と、times for while の 1 周です。loopは本体を(名前)で呼ぶので、その呼び出しが数えられます。 - 数え直すのは、リクエストごと(読み込み・終了時の処理は、それぞれまとめて 1 回)です。
- 単語の呼び出し 1 回は数マイクロ秒で、既定の 10 万回なら 1 秒未満で打ち切られます。大きな表を作るような辞書では、
*初期化などで$呼び出し総数制限=10000000のように増やしてください。0で制限しません。
$ジャンプ回数制限¶
1 回の応答の中で、> ≫ ≧ によるジャンプを行える回数の上限です。既定は 20000。
超えると ジャンプ回数超過 とログに出て、そこでトークを打ち切ります。
$括弧展開サイズ制限¶
1 つの文字列を () 展開した結果の長さ(文字数)の上限です。既定は 262144(256×1024)。
超えると 括弧展開サイズ超過 とログに出て、その時点までの結果を使います。
括弧の入れ子の深さ¶
() の中に () を書く入れ子の深さは、最大 1000 段です(変更できません。Mc201-8以降)。超えた ( は展開せず、そのまま出力し、括弧の入れ子が深すぎます とログに出ます。スタックを使い果たして異常終了することを防ぐためのもので、通常の辞書では届きません。