コンテンツにスキップ

リリースノート - v0.9.0

タイトル: 境界付き処理とコンテキストに基づく評価を改善

バージョン: v0.9.0

リリース: v0.9.0

比較: v0.8.1…v0.9.0

ネットワーク互換性
mainnet⛔
preprod-testnet✅
preview-testnet✅
musashi✅

このリリースでは、入力と出力の安全性を強化し、キャンセルとメトリクスに対応した検証済み評価を追加し、再生実行をより予測可能にしました。

  • 改善 FLAT のデコードとテキスト解析: 入力に 16 MiB、プログラムノードに 1,048,576、コレクションの要素数に 524,288 のデフォルト上限を設定し、コンストラクターフィールドにはプロトコルに応じた上限を適用します。Plutigo は、処理を開始する前に、上限を超える入力、ノード数、コレクション幅を拒否します。PrettyWithLimits と PrettyTermWithLimits は深さと出力の上限を設定でき、Pretty と PrettyTerm は安全なデフォルト値を使用し、上限に達した場合は空文字列を返します。NameToDeBruijn は深さマップを定数時間で検索し、内側のスコープで隠れていた名前を正しく復元します。
  • 拡張 cek.EvaluateText: 呼び出し元が指定する台帳言語とプロトコルコンテキスト、フェーズ 1 検証、実行バージョンのゲーティング、キャンセル、Machine.RunContext に対応しました。Plutigo は EvalContext とマシンのコストモデルを検証し、無効なコストを拒否し、整数の折り返しを許可せずに予算とコストの算術を飽和させます。オプションの CEK メトリクスは、ステップ数、最大フレーム深度、組み込み関数ごとの呼び出し回数と予算を報告します。再生の読み込みと実行はコンテキストと上限を受け取り、デコード前にコーパスとケースの予算を適用し、キャンセルを伝播して、キャンセルされたケースが成功することを防ぎます。利用者向けドキュメントと実行可能な例で更新された API を説明し、使用例に新しい動作を反映しました。また、PV11 組み込み関数の可用性に関する適合性カバレッジを追加しました。破壊的変更: NewMachine には nil ではない有効な EvalContext が必要になり、再生の読み込み API と実行 API にはコンテキストと上限が必要です。

Doc Holiday logo

Docs authored by Doc Holiday

ページを編集

最終更新日: