# 過去の割り当てコホート [English](README.md) | 日本語 この文書は [Historical allocation cohorts](README.md) の日本語訳です。 `cohorts.tsv` は、第24章の `SpillStats` で測定した212件のコンパイル項目を固定したものです。 コホート20〜24の項目数は、それぞれ39、52、24、30、67です。 ソースファイルは内容で重複を除き、最初に参照したテストの名前を付けています。 マニフェストには、テストの識別情報、ターゲット、ABI、元の停止フェーズを保持しています。 `Win64` は、第25章で使う ABI の表記 `win64` に変更しています。 引数の型は i64、再実行のシードは全項目で123です。 これらの入力は、この最終監査で新たな正しさの回帰テストを追加する前に、 第24章のテストから取得しました。比較のための安定したコーパスです。 変更する場合は、比較可能性が失われる理由を説明する必要があります。 人工的なアロケータの回帰テストや命令の回帰テストでの割り当ては、これらのコホートには含めません。 第25章では、以前のソースをすべて無変更で解析できるわけではありません。適応のための変更を明記します。 - String、Scan、連結された S のコンストラクタでは、`new S { field=...; }` を、 宣言されたコンストラクタとその引数に置き換えています。 レシーバーを明示するスキャナ関数は、操作を保ったままインスタンスメソッドにしています。 - 保存した `Chapter21Test-testStringExport`、`Chapter21AllocTest-testString`、 `Chapter23AllocTest-testString` のソースは、必須の非 null フィールド `cs` を初期化するために、 `new String = { u8[] data -> cs=data; };` を宣言しています。 これによって10件の再実行項目(4件、3件、3件)を修正していますが、 等価性・ハッシュの本体やマニフェストの構成項目は変えていません。 これらの適応済みソースが新しい比較基準です。以前のコンストラクタなしのフィクスチャと 同一入力として、その集計値を比較することはできません。 - 短絡評価の右辺で初期化する2つのループは、同等のガード付きブロックにしています。 割り当て、副作用、最終結果を保持しています。 - 単純な I/O のケースには、以前の `write` の束縛と表示用の補助関数を直接含めています。 Bubble Sort には、名前空間の接頭辞を平坦化し、コンストラクタを明示し、 置換用バッファを可変にした、以前のライブラリの本体を含めています。 これにより、第25章で大幅に改訂した例に差し替えるのではなく、以前のワークロードを保持しています。 - 元の Newton の浮動小数点数版2種類を含め、ほかのソース本文は保持しています。 すべての項目を **RegAlloc まで**再実行し、スケジューリング済みのレジスタ制約を確認します。 過去のフェーズの列は来歴情報であり、第25章で以前のネイティブ実行ハーネスを動かすことを約束するものではありません。 適応済み Bubble Sort は、割り当ての比較可能性のために、過去の `i32 errno="C"` 宣言を保持しています。 直接のデータ束縛は現在、3つのターゲットすべてでエンコードできますが、 errno がスレッドローカルまたはアクセサ経由の libc とは、この宣言をリンクできません。 現在のシステムライブラリのコードは、代わりに `libc.errno()` を使います。 このコーパスを、過去のランタイムの実行カバレッジとして数えてはいけません。 その後 `SpillStats` は、シード456で現在のシステムライブラリをエンコーディングまでコンパイルし、 既存のシードとネイティブ検査を使って Chapter25Test を実行します。 これらを合わせてコホート25とします。ライブラリまたはテストが失敗すると、レポートも失敗します。 部分的な集計値では改善を示せません。現在のコンパイラの実行検証は、通常の章全体のテストスイートが担います。