Skip to content

sol/foundation に libfnd のファイル・プロセス・コンソール API を追加する #91

Closed

Description

@src3453

背景: KAN-7 の Foundation ABI/PROTECTED WAX 出力に続き、libfnd 実装後の高水準 API を sol に提供する。

根拠: doc/spec_Foundation.md §13、doc/spec_Foundation_API.md §11・§14、doc/spec_sol.md。``

作業と受け入れ条件:

  • 既存 sol/foundation/fnd.sol を確認し、不足する stream/file/dir/cwd/console/process とハンドル後始末の wrapper を追加する。
  • C ABI の構造体配置、i64/ミリ秒、出力引数、負の status と sol の真=0/偽=1 を区別して仕様化する。
  • 実ゲストの例で open/read/write/close、列挙、子の起動/待機、エラーと資源解放を確認する。未実装サービスの結果を成功として扱わない。
  • compiler/VM/LSP を変える場合は VS Code 同梱コピーも同期し、Foundation focused tests と生成 WAX の実行を確認する。

先行: KAN-15。関連: KAN-17/KAN-19。

実装・完了報告の要旨(2026-10-22、ローカル main commit 77249b6 / 54ac58e):

  • sol/foundation/libfnd.sol と libfnd_bridge.c を追加し、実際の C libfnd(起動/argv/役割、stream/file/stat/cwd/console、exec/wait、alloc/free/strerror)を呼ぶ。tools/solc/build_foundation.py が C stack ABI へ橋渡しし、静的 PROTECTED WAX v2 または fnd WAL を import する WAX v3 を生成する。examples/foundation-sol/ に親(slot 5)と子(slot 6)のサンプル。
  • KAN-15 完了後に C libfnd へ fnd_dir_open/next/rewind、dir_make/remove、file_delete、sync を追加し sol から利用可能にした(WAL fnd 1.1、1.0 のシグネチャは不変)。ファイル書き込み・ディレクトリ列挙の実ゲスト確認まで完了。seek/truncate など C API 自体が未提供の操作は明記し、成功する stub としては公開していない。
  • 検証: compiler/LSP/Foundation 97 件、libfnd 7 件+Scalar 再実行 1 件、シェル 16 件成功。シェルテスト 1 件の失敗は KAN-37 に分離。compiler/VM/LSP の意味は変更していない。
  • 詳細な実施ログは Jira 側の KAN-33 に残っている(契約は sol/foundation/README.md と API 仕様を参照)。

移行元: KAN-33(Jira 状態: 完了)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions