リリースノート - v0.9.0
v0.9.0
Section titled “v0.9.0”タイトル: 境界付き処理とコンテキストに基づく評価を改善
バージョン: v0.9.0
リリース: v0.9.0
比較: v0.8.1…v0.9.0
推奨ネットワーク互換性 ⚠️
Section titled “推奨ネットワーク互換性 ⚠️”| ネットワーク | 互換性 |
|---|---|
| mainnet | ⛔ |
| preprod-testnet | ✅ |
| preview-testnet | ✅ |
| musashi | ✅ |
このリリースでは、入力と出力の安全性を強化し、キャンセルとメトリクスに対応した検証済み評価を追加し、再生実行をより予測可能にしました。
安全性とフォーマット
Section titled “安全性とフォーマット”- 改善 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 にはコンテキストと上限が必要です。
Docs authored by Doc Holiday