V8 バージョンの番号付けの仕組み
V8 のバージョン番号は x.y.z.w
形式です。ここで,
x.y
は、Chromium マイルストーンを 10 で割ったものです(例: M60 →6.0
)z
は、新しい LKGR があるたびに自動的に増加します(通常、1 日数回)w
は、ブランチポイントの後に手作業でバックマージするパッチに対して増加します
w
が 0
の場合、バージョン番号からは省略されます。例: v5.9.211(「v5.9.211.0」ではなく)は、パッチをバックマージした後に v5.9.211.1 に増加します。
どの V8 バージョンを使用する必要がありますか? #
V8 のエンベダーは、通常、Chrome に付属する V8 のマイナーバージョンに対応するブランチの先頭を使用する必要があります。
最新の安定版 Chrome に対応する V8 のマイナーバージョンを見つける #
これを見つけるには、次の手順に従います。
- https://chromiumdash.appspot.com/releases にアクセスします。
- テーブルで最新の安定版 Chrome バージョンを見つけます。
- (i)をクリックし、
V8
列を確認します。
対応するブランチの先頭を見つける #
V8 のバージョン関連のブランチは、https://chromium.googlesource.com/v8/v8.git のオンラインリポジトリには表示されません。代わりに、タグのみが表示されます。そのブランチの先頭を見つけるには、次の形式の URL にアクセスします。
https://chromium.googlesource.com/v8/v8.git/+/branch-heads/<minor-version>
例: 前述の V8 マイナーバージョン 12.1 の場合、https://chromium.googlesource.com/v8/v8.git/+/branch-heads/12.1 にアクセスし、「バージョン 12.1.285.2」というタイトルのコミットを見つけます。
注意: 前述のマイナーな V8 バージョンに対応する数値的に最大のタグを単純に見つけ出すべきではありません。そういったタグは、サポートされていない場合があるためです。例えば、マイナーリリースをどこに切り取るかを決定する前にタグ付けされる場合があります。そのようなバージョンは、バックポートなどは受けません。
例: V8 タグ 5.9.212
、5.9.213
、5.9.214
、5.9.214.1
、...、および 5.9.223
は、5.9.211.33 のブランチ先頭よりも数値的に大きいにもかかわらず、廃止されています。
対応するブランチの先頭をチェックアウトする #
すでにソースがある場合は、先頭をかなり直接的にチェックアウトできます。depot_tools
を使用してソースを取得した場合、次のコマンドを実行できるはずです。
git branch --remotes | grep branch-heads/
関連するブランチをリストします。先ほど見つけたマイナー V8 バージョンに対応するブランチをチェックアウトし、それを使用する必要があります。最終的にたどり着くタグは、エンベダーにとって適切な V8 バージョンです。
depot_tools
を使用していない場合は、.git/config
を編集して、次の行を [remote "origin"]
セクションに追加します。
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*