コンテンツにスキップ

コンソール

吉里吉里Z (現行版) には独立したコンソールウィンドウは存在しません。 コマンドラインから起動したときに その端末 (コマンドライン) 上に ログメッセージが出力され、必要に応じて REPL を起動して対話的に TJS 式を評価することができます。

メッセージ表示

コマンドラインから起動すると、起動した端末上に吉里吉里システムや ユーザスクリプトが Debug.message などで 出力するデバッグメッセージが流れます。表示レベルは コマンドラインオプション-loglevel= で調整可能です。

Win32 ビルドは windowed subsystem として作られているため、 cmd.exe / PowerShell 等から起動すると親プロセスのコンソールが そのまま使われます。SDL ビルドは console subsystem なので 端末上で常にメッセージが見えます。

対話シェル ( REPL )

KRKRZ_REPL=ON でビルドされたバイナリにコマンドライン引数 -repl ( または -repl=yes ) を付けて起動すると、対話型 TJS シェル ( REPL ) が利用できます。Windows / macOS / Linux に対応します。

krkrz -repl data/        # SDL 版
krkrz64 -repl data/      # Win32 版

-repl を付けない場合は REPL は起動しません ( TTY 自動判定はありません )。 明示的に無効化したい場合は -repl=no / -repl=off / -repl=false / -repl=0 を指定します。

Win32 ( windowed subsystem ) 版は REPL 起動時に AttachConsole で親プロセス のコンソールを取得し、無ければ AllocConsole で新規確保します。

新規コンソールを強制する ( -repl=new )

-repl=new ( 別名 -repl=window / -repl=separate ) を指定すると、親や 継承したコンソールに attach せず、必ず新規コンソールウィンドウを開きます。 ターミナルや別アプリから GUI を起動しつつ、REPL を起動元のコンソールに 食い込ませたくない場合に使います。

Windows Terminal には載りません

本 exe は GUI ( windowed ) subsystem のため、実行中に確保するコンソールは 「既定のターミナル アプリ」設定や wt.exe 経由に関わらず従来の conhost に なります ( GUI アプリは端末の擬似コンソールに参加できないため )。

ブラウザ REPL ビューワー ( -replweb )

-replweb=<port> ( 例 -replweb=8899 ) を指定すると、127.0.0.1:<port> に 軽量な HTTP + SSE サーバが立ち上がり、ブラウザから REPL とデバッグ窓を操作 できます ( KRKRZ_REPL_WEB=ON でビルドされている場合、既定 ON )。

krkrz64 data/ -replweb=8899      # → http://127.0.0.1:8899/ を開く

コンソール ( conhost ) の制約を受けず、テキスト選択・コピー・貼り付け・ スクロール・検索がすべてブラウザネイティブに効くのが利点です。複数のブラウザ ( タブ ) から同時に接続でき、同じログが流れます。

画面構成

上部にタブとコントローラが並びます。

タブ 内容
Console 上=ログ / 下=入力。ログはレベル別に色分けされ、フィルタで絞り込み・Clear ができます。入力欄は式・文の評価、↑↓ で履歴、.help 等の特殊コマンドが使えます
Watch 監視式。式を登録しておくと値を並べて表示し、指定間隔で自動更新します。追加・削除・ダブルクリックでのインライン編集ができます
Pad スクリプトエディタ。複数行の TJS を書いて Ctrl+Enter でまるごと実行します。ストレージへの読込 / 保存も ( 保存は下記 -replwebpad が要ります )

右上のコントローラは吉里吉里2 のコントローラ窓に相当します。

  • イベントSystem.eventDisabled の表示と切替。 ゲーム側が変更しても表示は追従します
  • 終了 … アプリケーションを終了します

これらは吉里吉里2 が本体に内蔵していたデバッグ窓 ( コンソール / コントローラ / 監視式 / スクリプトエディタ ) をプラットフォーム非依存な形で復活させたものです。

表示言語

既定は本体の言語設定に従います ( -language= や OS 言語が反映され、エンジンの メッセージと同じ言語になります )。上部の言語セレクタでその場で切り替えられ、 選択はそのブラウザに記憶されます。対応は日本語 / 英語で、それ以外の言語設定の 場合はエンジンと同じ落とし方で英語になります。

ブラウザとアプリの寿命

ブラウザを閉じるとアプリも終了します ( 既定 5 秒。-replwebidle=no で無効 )。 ブラウザを UI にした構成で本体だけ残り続けるのを防ぐためです。 最初の接続が来るまでは終了しませんので、ブラウザを開かないエージェント駆動や、 -replweb を単なる API 面として使う構成は影響を受けません。

逆にアプリが終了するとブラウザのページも自動的に閉じます ( 閉じられない通常タブでは「終了しました」表示に切り替わります )。

オプション

オプション 内容
-replweb=[ホスト:]ポート 待ち受け。既定バインドは 127.0.0.1 ( ローカル専用 )。0.0.0.0:8899 で全インタフェース ( 別マシンのブラウザから接続可。ネットワーク露出のため信頼できる環境のみ )。no / 0 / off / false で無効
-replwebopen=app\|tab\|no ブラウザの自動オープン。既定は「ループバック かつ コンソール無し ( GUI 起動 )」のときだけアプリモードで開きます。端末から起動したときは開かないので、開かせたいときは -replwebopen=app
-replwebidle=<秒> ブラウザが居なくなってから終了するまでの秒数 ( 既定 5、no で無効 )
-replwebpad=<dir> Pad タブの [保存] を許可するストレージパスの接頭辞。既定は書込禁止
-replwatchfile=<path> 監視式リストの保存先 ( 既定はカレントの .krkrz_watchno で無効 )

詳細は コマンドラインオプション を参照してください。

  • 実装は WIN32 ( Winsock ) / POSIX ソケット両対応 ( サーバ機構はプラットフォーム 非依存。各 OS のソケットライブラリ初期化が要る環境ではそれを先に行うこと )。
  • -repl ( コンソール ) / -replfile / -replsocket と独立に、同時起動も可能です。
  • 現在の URL は TJS から System.replWebURL で取得できます ( 未起動なら空文字列 )。
  • スクリプトやプラグインから独自のエンドポイントを足すこともできます ( WebServer クラス )。HTTP API の一覧と、 ブラウザ以外 ( curl ) からの叩き方は REPL ( 対話型 TJS シェル ) を参照してください。

操作と結果表示 ( 共通 )

以下はコンソール / ブラウザ / -replfile のどのフロントでも同じです。

入力

プロンプトは krkrz> です。継続入力中は ... に変わります。 TJS の式や文を入力して改行すると評価され、結果が表示されます ( ; を省略した式も評価されます )。括弧やクォートが閉じていない場合は 継続入力モードに入り、複数行の入力が可能です。 入力履歴はコンソール REPL ではカレントディレクトリの .krkrz_history に 保存されます ( ブラウザ側の履歴はページ内だけで、↑↓ で辿れます )。

. で始まる行は特殊コマンドです ( exit / quit / Ctrl+D で REPL を抜けて アプリケーションも終了、.help で一覧 )。メモリ観測・画面キャプチャ・監視式など 一通り揃っており、コンソール / -replfile / -replweb の 3 つとも同じものが 使えます。一覧は REPL ( 対話型 TJS シェル ) にまとめて あります ( ここに再掲すると片方だけ古くなるため )。

結果表示

評価結果は Debug.prettyPrint と同じ整形で 表示されます。

  • void(void) 、null オブジェクト → (null)
  • 数値 / 文字列 / オクテット列 → 式表記でそのまま
  • 配列 → [ e1, e2, ... ] ( compact では [e1, e2, ...] )
  • 辞書 → %[ "key" => value, ... ]
  • 関数 / クラス / プロパティ → (function) / (class) / (property)
  • その他オブジェクト → (object: 0x...)
  • 展開深さに達した場合 → [...] / %[...]
  • 循環参照 → (recursion)

REPL 実行中、エンジンが出力するログはレベル別に色分けされ ( VERBOSE=灰、DEBUG=シアン、INFO=デフォルト、WARNING=黄、 ERROR=赤、CRITICAL=太字赤 )、プロンプト行の上に割り込み表示されます。