spaceこれまで幾度か遭遇してきたメッセージ。コンパイル時やビルド時では発生せず、実行時に発生する。processコマンドに与える引数によって解決。メソッドをたくさん呼び出している治郎吉商店のコーディングスタイルのプロジェクトでは、スタックメモリのサイズが小さすぎると、このメッセージが表示されることがあった。process(“A00_main”;0;”A00_main”;*)のように4Dにサイズを任せることによって回避できる。今回はそれが原因ではない。ネットで調べてみると、4D社のナレッジベースにTipsがあった。スタックに空きがありませんスタックメモリはメソッド呼び出しで消費されるので、再帰が循環すると無限に消費していきやがて枯渇する。これがエラーの原因だった。会計ジロウには、レポート機能があり、科目を集計してそれをいくつかまとめて小計、それをまとめて中計、のような機能がある。スペースにキーと親キーを持たせておいて、親の親の親のような構造を再帰呼び出しで遡って、金額がどこのスペースに集計されなくてはならないかを制御用のテーブルのデータで定義している。この実装では、データの作り方によっては循環参照になってしまい、再帰呼び出しが完了しなくなる恐れがあった。それはわかっていたのに、自分でそういうデータを作ってしまった。